public EnemyEntityFSM() { CurrentState = EnemyEntityState.Iddle; transitions = new Dictionary<StateTransition, EnemyEntityState> { { new StateTransition(EnemyEntityState.Iddle, EnemyCommand.Chase), EnemyEntityState.Chasing }, { new StateTransition(EnemyEntityState.Iddle, EnemyCommand.Jump), EnemyEntityState.Jumping }, { new StateTransition(EnemyEntityState.Iddle, EnemyCommand.Attack), EnemyEntityState.Attacking }, { new StateTransition(EnemyEntityState.Iddle, EnemyCommand.Die), EnemyEntityState.Dead }, { new StateTransition(EnemyEntityState.Chasing, EnemyCommand.Attack), EnemyEntityState.Attacking }, { new StateTransition(EnemyEntityState.Chasing, EnemyCommand.Jump), EnemyEntityState.Jumping }, { new StateTransition(EnemyEntityState.Chasing, EnemyCommand.Stop), EnemyEntityState.Iddle }, { new StateTransition(EnemyEntityState.Chasing, EnemyCommand.Die), EnemyEntityState.Dead }, { new StateTransition(EnemyEntityState.Jumping, EnemyCommand.Stop), EnemyEntityState.Iddle }, { new StateTransition(EnemyEntityState.Jumping, EnemyCommand.Die), EnemyEntityState.Dead }, { new StateTransition(EnemyEntityState.Attacking, EnemyCommand.Stop), EnemyEntityState.Iddle }, { new StateTransition(EnemyEntityState.Attacking, EnemyCommand.Die), EnemyEntityState.Dead }, }; }
public EnemyEntityFSM() { CurrentState = EnemyEntityState.Iddle; transitions = new Dictionary <StateTransition, EnemyEntityState> { { new StateTransition(EnemyEntityState.Iddle, EnemyCommand.Chase), EnemyEntityState.Chasing }, { new StateTransition(EnemyEntityState.Iddle, EnemyCommand.Jump), EnemyEntityState.Jumping }, { new StateTransition(EnemyEntityState.Iddle, EnemyCommand.Attack), EnemyEntityState.Attacking }, { new StateTransition(EnemyEntityState.Iddle, EnemyCommand.Die), EnemyEntityState.Dead }, { new StateTransition(EnemyEntityState.Chasing, EnemyCommand.Attack), EnemyEntityState.Attacking }, { new StateTransition(EnemyEntityState.Chasing, EnemyCommand.Jump), EnemyEntityState.Jumping }, { new StateTransition(EnemyEntityState.Chasing, EnemyCommand.Stop), EnemyEntityState.Iddle }, { new StateTransition(EnemyEntityState.Chasing, EnemyCommand.Die), EnemyEntityState.Dead }, { new StateTransition(EnemyEntityState.Jumping, EnemyCommand.Stop), EnemyEntityState.Iddle }, { new StateTransition(EnemyEntityState.Jumping, EnemyCommand.Die), EnemyEntityState.Dead }, { new StateTransition(EnemyEntityState.Attacking, EnemyCommand.Stop), EnemyEntityState.Iddle }, { new StateTransition(EnemyEntityState.Attacking, EnemyCommand.Die), EnemyEntityState.Dead }, }; }
public EnemyEntityState MoveNext(EnemyCommand command) { CurrentState = GetNext(command); return CurrentState; }
public StateTransition(EnemyEntityState currentState, EnemyCommand command) { CurrentState = currentState; Command = command; }
public EnemyEntityState MoveNext(EnemyCommand command) { CurrentState = GetNext(command); return(CurrentState); }