/*-------------------------------------------- * 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; } }
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; } }
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; } }
public static string TransformStateToString(GameStateType state) { return(state.ToString()); }
protected void UpdateLabel(GameStateType newState) { LabelBehaviour.Text = string.Format("Phase\n{0}", newState.ToString().ToUpper()); }
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); } } }
//--------- 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; } }