public void Initialize() { _states = new Dictionary <EGameState, AGameState>(); InitializeState initializeState = new InitializeState(); initializeState.Initialize(EGameState.INITIALIZE); _states.Add(EGameState.INITIALIZE, initializeState); LoadingState loadingState = new LoadingState(); loadingState.Initialize(EGameState.LOADING); _states.Add(EGameState.LOADING, loadingState); MainMenuState mainMenuState = new MainMenuState(); mainMenuState.Initialize(EGameState.MAINMENU); _states.Add(EGameState.MAINMENU, mainMenuState); GameState gameState = new GameState(); gameState.Initialize(EGameState.GAME); _states.Add(EGameState.GAME, gameState); _currentStateType = EGameState.INITIALIZE; CurrentState.EnterState(); }
public GameState GetRandomStartState() { //Pick random starting state Random rand = new Random(); InitializeState init = beginningStates [rand.Next(0, beginningStates.Length)]; //TODO; put this back return(init()); }
/// <summary> /// Uninitializes this object. /// </summary> public void Uninitialize() { m_state = m_state.Uninitialize(); OnPreUninitialize(); OnUninitialize(); OnPostUninitialize(); Uninitialized?.Invoke(this); }
/// <summary> /// Initializes this object. /// </summary> public void Initialize() { m_state = m_state.Initialize(); OnPreInitialize(); OnInitialize(); OnPostInitialize(); Initialized?.Invoke(this); }
public void Initialize() { var state = new InitializeState(); Assert.False(state); Assert.True(state.ValidateState(false)); Assert.DoesNotThrow(() => state = state.Initialize()); Assert.True(state); Assert.True(state.ValidateState(true)); Assert.Throws <InitializeStateException>(() => state.Initialize()); }
public void InitilizeState(InitializeState state, string text, int progress = 0) { if (state == InitializeState.Processed) { InitializeProgressBar.Visible = true; } else { InitializeProgressBar.Visible = false; } InitializeProgressBar.Value = progress; InitializeText.Text = text; }
/// <summary> /// 改变游戏流程 /// </summary> /// <param name="nState">当前状态</param> /// <returns>是否成功</returns> public bool SetState(InitializeState nState) { if (nState == m_nState) { return(false); } // 当游戏流程退出 OnExit(m_nState); // 改变流程 //Trace.Log("InitializeState.SetState():" + m_nState.ToString() + "->" + nState.ToString()); m_nState = nState; // 当游戏流程进入 OnEnter(m_nState); return(true); }
/// <summary> /// 当游戏流程退出 /// </summary> /// <param name="nState">旧状态</param> private void OnExit(InitializeState nState) { // 流程 switch (nState) { case InitializeState.None: // 无用的 { } break; case InitializeState.Init: // 初始化 { } break; case InitializeState.CheckVer: // 版本检查(包括下载操作) { ResVerManager rvm = GetComponent <ResVerManager>(); if (rvm != null) { ResNode.DestroyRes(ref rvm); } ResDownManager rdm = GetComponent <ResDownManager>(); if (rdm != null) { ResNode.DestroyRes(ref rdm); } } break; case InitializeState.Create: // 系统模块创建(调用Game.Create()) { } break; case InitializeState.Login: // 登录 { //ResNode.DestroyRes(ref m_loginManager); //登录完成之后需要隐藏登陆窗口和注销事件订阅 //Game.m_singleton.UIManager.LoginUI.HideWindow(); //Game.m_singleton.UIManager.LoginUI.UnRegLoginEvent(); } break; //case InitializeState.Home: // 主城游戏 //{ //} //break; case InitializeState.Play: // 副本游戏中 { //Game.m_singleton.EctypeManager.CloseEctype(); } break; case InitializeState.Logout: // 登出 { } break; case InitializeState.Error: // 错误 { } break; case InitializeState.Close: // 关闭 { } break; } }
/// <summary> /// 当游戏流程进入 /// </summary> /// <param name="nState">新状态</param> /// <param name="nOldState">旧状态</param> private void OnEnter(InitializeState nState) { // 流程 switch (nState) { case InitializeState.None: // 无用的 { } break; case InitializeState.Init: // 初始化 { //播放Logo动画 //Game.m_singleton.UIManager.LogoUI.ShowWindow(); Initialize.mainCam.backgroundColor = Color.black; } break; case InitializeState.CheckVer: // 版本检查(包括下载操作) { // 创建资源下载管理器 ResDownManager rdm = gameObject.AddComponent <ResDownManager>(); // 创建资源版本管理器 ResVerManager rvm = gameObject.AddComponent <ResVerManager>(); rvm.StartVerCheck(); } break; case InitializeState.Create: // 系统模块创建(调用Game.Create()) { // 偷偷在登录界面后台用协程加载 gameObject.AddComponent <LightingEffectFactory>(); gameObject.AddComponent <AnimationEffectFactory>(); #if USE_TIMMER_BEHAVIOUR gameObject.AddComponent <UpdateBehaviourOnTimerManager>(); #endif // 启动创建游戏所有模块 StartCoroutine(CreateEnumerator()); } break; case InitializeState.Login: // 登录 { //if (SFGFxMovieManager.Instance != null) //{ // SFGFxMovieManager.Instance.InitGameCreateDefaultMovie(); //} //// 播放登陆音乐 //PlayLoginAudio(true); //// 启动登录管理流程 //m_loginManager = gameObject.AddComponent<LoginManager>(); //m_loginManager.StartEx(Game.m_singleton.bIsDebug); //Initialize.mainCam.backgroundColor = new Color(125.0f / 255.0f, 125.0f / 255.0f, 255.0f / 255.0f); } break; //case InitializeState.Home: // 主城 //{ //} // break; case InitializeState.Play: // 游戏中 { } break; case InitializeState.Logout: // 登出 { } break; case InitializeState.Error: // 错误 { } break; case InitializeState.Close: // 关闭 { } break; } }
protected override void CreateStates() { StatePreRun = new PreRunState(this); StateRun = new RunState(this); StatePreStop = new PreStopState(this); StateStop = new StopState(this); StatePreInitialize = new PreInitializeState(this); StateInitialize = new InitializeState(this); StateRundown = new RundownState(this); StatePreEmergency = new PreEmergencyState(this); StateEmergency = new EmergencyState(this); StateEmergencyReset = new EmergencyResetState(this); StatePreAlarm = new PreAlarmState(this); StateAlarm = new AlarmState(this); StatePreWarning = new PreWarningState(this); StateWarning = new WarningState(this); StatePreSuspend = new PreSuspendState(this); StateSuspend = new SuspendState(this); }
public bool Equals(InitializeState other) { return(Value == other.Value); }