void Start() { RunFSM tmpRunFSM = new RunFSM(); AttackFSM tmpAttackFSM = new AttackFSM(); manager = new FSMManager(2); manager.AddState(tmpRunFSM); manager.AddState(tmpAttackFSM); }
private void UpdateAttackFSM(AttackFSM attackFSM) { if (!attackFSM.IsAttacking) { return; } if (attackFSM.IsUnlocked()) { attackFSM.Update(); } }
public EatResponse OnEvent(EventId id, object cookie) { BuffEventData buffEventData = (BuffEventData)cookie; if (buffEventData.BuffObj.BuffType.Modify != BuffModify.Stun) { return(EatResponse.NotEaten); } AttackFSM attackFSM = null; if (buffEventData.Target.ShooterComp != null) { attackFSM = buffEventData.Target.ShooterComp.AttackFSM; } if (attackFSM != null) { attackFSM.Stun(buffEventData.BuffObj.BuffType.Duration); } return(EatResponse.NotEaten); }