Beispiel #1
0
 BaseGameState GetNextState()
 {
     if (curState.GetType().Equals(typeof(PrepareState)))
     {
         return(beforeState);
     }
     else if (curState.GetType().Equals(typeof(BeforeBattleState)))
     {
         return(battleState);
     }
     else
     {
         return(prepareState);
     }
 }
    void ChangeState(Type type)
    {
        if (_nowState == null)
        {
            _nowState = GetState(type);
            _nowState.Enter(null);
            _willStateType = null;
            return;
        }

        if (_nowState.GetType() == type)
        {
            return;
        }

        if (_willStateType != null && _willStateType == type)
        {
            return;
        }

        _willStateType = type;
        _nowState.Leave();
    }