/*--------------------------------------------
     * OnMyStateExit[ S ] - state-specific actions when we leave a state
     */
    private void OnMyStateExit(GameStateType state)
    {
        string exitMessage = "EXIT state: " + state.ToString();

        PostMessage(exitMessage);

        switch (state)
        {
        case GameStateType.GamePlaying:
            OnMyStateExitGamePlaying();
            break;

        case GameStateType.GameWon:
            // do nothing
            break;

        case GameStateType.GameLost:
            // do nothing
            break;

        case GameStateType.Other:
            // cope with game starting in state 'Other'
            // do nothing
            break;
        }
    }
예제 #2
0
    public void ChangeState(GameStateType type)
    {
        State = type;
        switch (type)
        {
        case GameStateType.GameStartState: ChangeState(startState);
            break;

        case GameStateType.FighterEnterState: ChangeState(fighterEnterState);
            break;

        case GameStateType.FighterOverState: ChangeState(fighterOverState);
            break;

        case GameStateType.FightingState: ChangeState(fighting);
            break;

        case GameStateType.MainState: ChangeState(mainState);
            break;

        case GameStateType.LoginState: ChangeState(loginState);
            break;

        case GameStateType.StartupAuditorState: ChangeState(startupAuditorState);
            break;

        default:
            throw new System.Exception(string.Format("{0} 状态不能执行!", type.ToString()));
        }
    }
    //--------- OnMyStateEnter[ S ] - state specific actions ---------
    private void OnMyStateEnter(GameStateType state)
    {
        string enterMessage = "ENTER state: " + state.ToString();
        PostMessage(enterMessage);

        switch (state){
        case GameStateType.GamePlaying:
            OnMyStateEnterGamePlaying();
            break;
        case GameStateType.GameWon:
            // do nothing
            break;
        case GameStateType.GameLost:
            // do nothing
            break;
        }
    }
예제 #4
0
        protected void ProcessStateStarted(GameStateType stateType)
        {
            if (GameStateType.Game_Starting == stateType)
            {
                ProcessGameStarted();
            }

            if (null == m_xtw)
            {
                return;
            }

            if (GameStateType.Game_Ended == stateType)
            {
                ProcessGameEnded();
            }
            else if (GameStateType.Game_Resetting == stateType)
            {
                ProcessGameReset();
            }

            // Process other states that we can handle generically
            lock (this)
            {
                if (
                    GameStateType.Build == stateType ||
                    GameStateType.Allocation == stateType ||
                    GameStateType.Water == stateType ||
                    GameStateType.Revenue == stateType)
                {
                    if (GameStateType.Build == stateType)
                    {
                        RecordRoundStart();
                    }

                    RecordPhaseStart(stateType.ToString());
                    RecordSnapshot();
                    m_xtw.WriteStartElement(EventsElement);
                }
            }
        }
    /*--------------------------------------------
     * OnMyStateEnter[ S ] - state-specific actions when we enter a state
     */
    private void OnMyStateEnter(GameStateType state)
    {
        string enterMessage = "ENTER state: " + state.ToString();

        PostMessage(enterMessage);

        switch (state)
        {
        case GameStateType.GamePlaying:
            OnMyStateEnterGamePlaying();
            break;

        case GameStateType.GameWon:
            // do nothing
            break;

        case GameStateType.GameLost:
            // do nothing
            break;
        }
    }
예제 #6
0
 public static string TransformStateToString(GameStateType state)
 {
     return(state.ToString());
 }
예제 #7
0
 protected void UpdateLabel(GameStateType newState)
 {
     LabelBehaviour.Text = string.Format("Phase\n{0}", newState.ToString().ToUpper());
 }
예제 #8
0
 protected void UpdateLabel(GameStateType newState)
 {
     LabelBehaviour.Text = string.Format("Phase\n{0}", newState.ToString().ToUpper());
 }
예제 #9
0
        protected void ProcessStateStarted(GameStateType stateType)
        {
            if (GameStateType.Game_Starting == stateType)
                ProcessGameStarted();

            if (null == m_xtw)
                return;

            if (GameStateType.Game_Ended == stateType)
                ProcessGameEnded();
            else if (GameStateType.Game_Resetting == stateType)
                ProcessGameReset();

            // Process other states that we can handle generically
            lock (this)
            {
                if (
                    GameStateType.Build == stateType
                    || GameStateType.Allocation == stateType
                    || GameStateType.Water == stateType
                    || GameStateType.Revenue == stateType)
                {
                    if (GameStateType.Build == stateType)
                        RecordRoundStart();

                    RecordPhaseStart(stateType.ToString());
                    RecordSnapshot();
                    m_xtw.WriteStartElement(EventsElement);
                }
            }
        }
예제 #10
0
    //--------- OnMyStateExit[ S ] - state specific actions ---------
    private void OnMyStateExit(GameStateType state)
    {
        string exitMessage = "EXIT state: " + state.ToString();
        PostMessage(exitMessage);

        switch (state){
        case GameStateType.GamePlaying:
            OnMyStateExitGamePlaying();
            break;
        case GameStateType.GameWon:
            // do nothing
            break;
        case GameStateType.GameLost:
            // do nothing
            break;
        case GameStateType.Other:
            // cope with game starting in state 'Other'
            // do nothing
            break;
        }
    }