public override CharacterActionStatus OnUpdate() { if (status == ContextCreationStatus.Building) { status = contextCreator.UpdateContext(); if (status == ContextCreationStatus.Completed) { ability.Use(contextCreator.GetContext()); contextCreator.Reset(); } else if (status == ContextCreationStatus.Cancelled) { contextCreator.Reset(); } } else { ability.UpdateCast(); } switch (status) { case ContextCreationStatus.Building: return(CharacterActionStatus.Running); case ContextCreationStatus.Completed: return(ability.IsCasting ? CharacterActionStatus.Running : CharacterActionStatus.Completed); case ContextCreationStatus.Cancelled: return(CharacterActionStatus.Cancelled); default: return(CharacterActionStatus.Cancelled); } }
public override void OnStart() { status = ContextCreationStatus.Building; contextCreator.Setup(entity, ability); }