Exemple #1
0
        private void ChangeState(AuditorState newState)
        {
            AuditorState oldState = State;

            if (State != newState)
            {
                if (newState == AuditorState.MoveToLoad)
                {
                    timer = 0f;
                    State = AuditorState.MoveToLoad;
                    GameEvents.OnAuditorStateChanged(oldState, State, this);
                }
                else if (newState == AuditorState.Loading)
                {
                    timer -= MoveInterval;
                    State  = AuditorState.Loading;
                    GameEvents.OnAuditorStateChanged(oldState, State, this);
                    if (timer >= LoadInterval)
                    {
                        ChangeState(AuditorState.MoveToUnload);
                    }
                }
                else if (newState == AuditorState.MoveToUnload)
                {
                    timer -= LoadInterval;
                    State  = AuditorState.MoveToUnload;
                    GameEvents.OnAuditorStateChanged(oldState, State, this);
                    if (timer >= MoveInterval)
                    {
                        ChangeState(AuditorState.Unloading);
                    }
                }
                else if (newState == AuditorState.Unloading)
                {
                    timer -= MoveInterval;
                    State  = AuditorState.Unloading;
                    GameEvents.OnAuditorStateChanged(oldState, State, this);
                    if (timer > UnloadInterval)
                    {
                        ChangeState(AuditorState.Completed);
                    }
                }
                else if (newState == AuditorState.Completed)
                {
                    State = AuditorState.Completed;
                    GameEvents.OnAuditorStateChanged(oldState, State, this);
                }
            }
        }