Пример #1
0
    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();
    }
Пример #2
0
        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());
        }
Пример #3
0
        /// <summary>
        /// Uninitializes this object.
        /// </summary>
        public void Uninitialize()
        {
            m_state = m_state.Uninitialize();

            OnPreUninitialize();
            OnUninitialize();
            OnPostUninitialize();

            Uninitialized?.Invoke(this);
        }
Пример #4
0
        /// <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());
        }
Пример #6
0
        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;
        }
Пример #7
0
    /// <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);
    }
Пример #8
0
    /// <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;
        }
    }
Пример #9
0
    /// <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);
 }
Пример #11
0
 public bool Equals(InitializeState other)
 {
     return(Value == other.Value);
 }