Esempio n. 1
0
        /// <summary>
        /// Start action!
        /// </summary>
        public override void GainControl(float delta)
        {
            base.GainControl(delta);

            casting.Reset();
            inprogress.Reset();
            cooldown.Reset();
            state = CharacterActionTimedState.Casting;
        }
Esempio n. 2
0
        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);
        }