क्या आपका मतलब है कि क्रियाओं में कई मोड़ आते हैं (यानी, 50 के लिए नींद सीधे आती है)?
मैं क्या करूँगा एक वस्तु, खिलाड़ी रखो। currentAction में हो सकता है कि कार्रवाई को कितने मोड़ की आवश्यकता होगी, कार्रवाई का संकल्प क्या है, और उन राज्यों की एक सूची है जो कार्रवाई को रद्द करते हैं (खतरे में, हमला किया जा रहा है, बहुत गर्म, आदि)। प्रत्येक मोड़, खिलाड़ी इनपुट के लिए जाँच करने से पहले, हम यह देखना चाहेंगे कि क्या खिलाड़ी इस समय किसी कार्रवाई के बीच में था, तो कुछ ऐसा करें ...
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;
}