আপনি কী বোঝাতে চেয়েছেন যে ক্রিয়াকলাপগুলি একাধিক বাঁক নেবে (অর্থাত্, সরাসরি 50 টার্নে ঘুমানো)?
আমি যা করব তা হ'ল একটি অবজেক্ট রাখা, প্লেয়ার কর্নার অ্যাকশন। কারেন্ট অ্যাকশনে অ্যাকশনটির কতগুলি টার্ন দরকার, ক্রিয়াটির রেজোলিউশন কী, এবং সেই রাজ্যগুলির তালিকা রয়েছে যা এই ক্রিয়া বাতিল করে (বিপদে, আক্রমণাত্মক আক্রমণ, খুব গরম ইত্যাদি)। প্রতিটি পালা, আমরা প্লেয়ার ইনপুট চেক করার আগে, আমরা প্লেয়ারটি বর্তমানে কোনও অ্যাকশনের মাঝখানে ছিল কিনা তা পরীক্ষা করে দেখি, তারপরে এমন কিছু করার ...
if(!player.currentAction.interrupted())
{
if(player.currentAction.complete() == true)
{
player.currentAction.doAction(); //Some actions, like casting a spell, would have something happen here. Others, like sleeping, may or may not, depending on how you coded it.
player.currentAction = null;
}
else player.currentAction.decreaseTimer(); //Decrease our timer by one.
}
else
{
player.currentAction.interrupt(); //Let the player know he's been interrupted. Bungle the spell, cancel sleep, etc.
player.currentAction = null;
}