/// <summary> /// Start action! /// </summary> public override void GainControl(float delta) { base.GainControl(delta); casting.Reset(); inprogress.Reset(); cooldown.Reset(); state = CharacterActionTimedState.Casting; }
public override int WantsToUpdate(float delta) { if (state == CharacterActionTimedState.Casting && casting.Fulfilled()) { state = CharacterActionTimedState.InProgress; } if (state == CharacterActionTimedState.InProgress && inprogress.Fulfilled()) { state = CharacterActionTimedState.Cooldown; } if (state == CharacterActionTimedState.Cooldown && cooldown.Fulfilled()) { state = CharacterActionTimedState.Ready; } // NOTE this MUST not used... // return desired priority at the sub-class return(0); }