public void ChangeState(SummonedUnitState state) { currentFsm.OnExit(); currentFsm = fsms[state]; this.state = state; fsms[state].OnEnter(); DebugUtils.Log(DebugUtils.Type.AI_Summon, string.Format("Summon {0} enter {1} state", id, this.state)); }
public virtual void InitializeFsm() { fsmBorn = new SummonedUnitFsmBorn(this); fsmIdle = new SummonedUnitFsmIdle(this); fsmFight = new SummonedUnitFsmFight(this); fsmDying = new SummonedUnitFsmDying(this); fsmDeath = new SummonedUnitFsmDeath(this); fsms = new Dictionary <SummonedUnitState, Fsm>(); fsms.Add(SummonedUnitState.Born, fsmBorn); fsms.Add(SummonedUnitState.Idle, fsmIdle); fsms.Add(SummonedUnitState.Fight, fsmFight); fsms.Add(SummonedUnitState.Dying, fsmDying); fsms.Add(SummonedUnitState.Death, fsmDeath); currentFsm = fsmBorn; state = SummonedUnitState.Born; }