Example #1
0
    private void EvaluateNewState(InitStates newState)
    {
        switch (newState)
        {
        case InitStates.SpawnPlayer:
            SpawnPlayer();
            CamShake.instance.bounds.m_BoundingShape2D = levelBounds;
            break;

        case InitStates.RespawnPlayer:
            RespawnPlayer();

            break;

        case InitStates.PlayerRespawned:
            if (!resetLevelOnRespawn)
            {
                BeginNewGameState(GameStates.MainPowerOff);
            }
            else
            {
                BeginNewGameState(GameStates.MainPowerOn);
            }
            MusicManager.instance.StopCurrentSong();
            break;

        case InitStates.PlayerSceneLoaded:
            playerTransform = FindObjectOfType <PlayerBehaviour>().transform;
            break;
        }
    }
        /// <summary>
        /// Поменять состояние.
        /// </summary>
        /// <param name="bot"></param>
        /// <param name="state"></param>
        /// <param name="hop"></param>
        public static async void ChangeCurrentStateAndMakeHop(TelegramBotClient bot, long chatId, State state, Hop hop)
        {
            if (bot == null ||
                hop == null ||
                string.IsNullOrEmpty(hop.NextStateName))
            {
                return;
            }

            //Отправить AnswerOnSuccess.
            if (state != null && string.IsNullOrEmpty(state.AnswerOnSuccess) == false)
            {
                await bot.SendTextMessageAsync(chatId, state.AnswerOnSuccess);
            }

            //Поменяем текущее состояние
            ChangeCurrentChatState(chatId, hop.Type, hop.NextStateName);

            //Когда состояние в базе поменяли, тогда нужно выслать приветствие в новом состоянии и клавиатуру нового состояния.
            State st = InitStates.GetStateByName(hop.NextStateName);

            //Формируем приветственное сообщение (не забываем подключить клавиатуру)
            OutboxMessage outMes = new OutboxMessage(st.IntroductionString);

            if (st.ReplyKeyboard != null)
            {
                outMes.ReplyMarkup = st.ReplyKeyboard;
            }
            else
            {
                outMes.ReplyMarkup = new ReplyKeyboardRemove();
            }

            bot.SendOutboxMessage(chatId, outMes);
        }
        /// <summary>
        /// Метод получения текущего состояния чата по ChatId
        /// </summary>
        /// <param name="chatId"></param>
        /// <returns></returns>
        public static State GetCurrentUserState(long chatId)
        {
            if (InitStates.BotStates?.Count == 0)
            {
                return(null);
            }

            using (BotDbContext db = new BotDbContext(HelperDataBase.DB_OPTIONS))
            {
                //Выбираем состояние чата.
                ChatState chatState =
                    (from state in db.ChatState
                     where state.ChatId == chatId
                     select state).FirstOrDefault();

                string stateString = chatState.State;

                //Если состояние чата равно null
                if (string.IsNullOrEmpty(stateString?.Trim(' ')) == true)
                {
                    //То записать в пустую ячейку состояния имя первого состояния.
                    //ToDo Пока берем просто первый элемент из состояний, но нужно самому определять первый элемент.
                    stateString = InitStates.BotStates.FirstOrDefault().Name;

                    //ToDo изменить состояние(установить первое состояние, отправить приветствие, отправить клавиатуру через метод ChangeCurrentStateAndMakeHop
                    //Изменить состояние в базе данных и сохранить изменения
                    ChangeCurrentChatState(chatId, HopType.RootLevelHope, stateString);
                    //chatState.State = stateString;
                    //db.SaveChanges();
                }
                //Найти в общем пуле состояний состояние с таким же именем.
                StateController stateCtrl = new StateController(stateString);
                return(InitStates.GetStateByName(stateCtrl.GetCurrentStateName()));
            }
        }
Example #4
0
    private void EvaluateNewInitState(InitStates newState)
    {
        switch (newState)
        {
        case InitStates.SpawnPlayer:

            break;

        case InitStates.PlayerDead:
            StopAllCoroutines();

            break;

        case InitStates.RespawnPlayer:
            ResetBoss();

            break;

        case InitStates.PlayerRespawned:



            break;
        }
    }
Example #5
0
        public void Add(object parameter)
        {
            HashSet <ulong> values = new HashSet <ulong>();

            foreach (var item in InitStates)
            {
                values.Add(item.Value);
            }
            //ulong max = (ulong)1 << Width.Value;
            ulong     max   = (ulong)1 << (int)_width;
            ulong     i     = 0;
            InitState added = null;

            while (added == null && i < max)
            {
                if (!values.Contains(i))
                {
                    added = new InitState()
                    {
                        Value = i, Amplitude = Complex.Zero
                    };
                }
                i++;
            }

            if (added != null)
            {
                InitStates.Add(added);
            }
        }
Example #6
0
    virtual protected void EvaluateNewState(InitStates newState)
    {
        switch (newState)
        {
        case InitStates.PlayerRespawned:
            ObjectPoolManager.Recycle(gameObject);
            break;

        case InitStates.PlayerDead:
            ObjectPoolManager.Recycle(gameObject);
            break;

        case InitStates.LoadTitleScreen:
            ObjectPoolManager.Recycle(gameObject);
            break;

        case InitStates.LoadMainMenu:
            ObjectPoolManager.Recycle(gameObject);
            break;

        case InitStates.Credits:
            ObjectPoolManager.Recycle(gameObject);
            break;

        case InitStates.ExitLevel:
            ObjectPoolManager.Recycle(gameObject);

            break;
        }
    }
Example #7
0
    virtual protected void EvaluateNewState(InitStates newState)
    {
        switch (newState)
        {
        case InitStates.RespawnPlayer:
            InitStateManager.instance.OnStateChange -= EvaluateNewState;
            ObjectPoolManager.Recycle(gameObject);

            break;

        case InitStates.PlayerDead:
            SetEnemyState(EnemyStates.Wander);
            break;

        case InitStates.LoadTitleScreen:
            ObjectPoolManager.Recycle(gameObject);

            break;

        case InitStates.ExitLevel:
            ObjectPoolManager.Recycle(gameObject);

            break;
        }
    }
Example #8
0
 private void EvaluateNewState(InitStates newState)
 {
     switch (newState)
     {
     case InitStates.Init:
         CreateStartupPools();
         break;
     }
 }
Example #9
0
    private void EvaluateNewState(InitStates newState)
    {
        switch (newState)
        {
        case InitStates.Init:

            break;
        }
    }
Example #10
0
    private void EvaluateNewState(InitStates newState)
    {
        switch (newState)
        {
        case InitStates.RespawnPlayer:
            ResetDestructable();

            break;
        }
    }
Example #11
0
    private void EvaluateNewInitState(InitStates newState)
    {
        switch (newState)
        {
        case InitStates.PlayerRespawned:
            isTriggered = false;

            break;
        }
    }
Example #12
0
 private void CreditsMenuOpened(InitStates newState)
 {
     if (newState == InitStates.Credits)
     {
         Invoke("ShowPhone", 1f);
         if (InitStateManager.currInitState == InitStates.Credits)
         {
             SaveData.current.ClearSave();
         }
     }
 }
Example #13
0
 private void EvaluateNewState(InitStates newState)
 {
     switch (newState)
     {
     case InitStates.RespawnPlayer:
         ResetTasks();
         ResetManager();
         Debug.Log("init");
         break;
     }
 }
Example #14
0
 private void EvaluateNewState(InitStates newState)
 {
     switch (newState)
     {
     case InitStates.RespawnPlayer:
         ResetGuns();
         break;
         //case InitStates.SpawnPlayer:
         //    Init();
         //    break;
     }
 }
Example #15
0
    private void EvaluateNewState(InitStates newState)
    {
        switch (newState)
        {
        case InitStates.LevelClear:
            previousLevelScene = TransitionManager.instance.GetCurrentLevel();
            break;

        case InitStates.MainMenu:
            EvaluateMessages();
            break;
        }
    }
Example #16
0
    private void EvaluateInitState(InitStates newState)
    {
        switch (newState)
        {
        case InitStates.LoadTitleScreen:
            Destroy(gameObject);
            break;

        case InitStates.LoadMainMenu:
            Destroy(gameObject);
            break;
        }
    }
Example #17
0
    private void EvaluateNewState(InitStates newState)
    {
        switch (newState)
        {
        case InitStates.PlayerRespawned:
            FixAllSceneLamps();
            shouldBreakLights = true;
            break;

        case InitStates.ExitLevel:

            break;
        }
    }
Example #18
0
    private void EvaluateNewState(InitStates newState)
    {
        switch (newState)
        {
        case InitStates.PlayerSpawned:
            Init();

            break;

        case InitStates.PlayerRespawned:
            ResetLight();

            break;
        }
    }
Example #19
0
    private void EvaluateInitState(InitStates newstate)
    {
        switch (newstate)
        {
        case InitStates.ExitLevel:
            if (gameObject != false)
            {
                Destroy(gameObject);
            }
            break;

        case InitStates.LoadTitleScreen:


            break;
        }
    }
Example #20
0
    public void Init()
    {
        //Initial state
        currInitState = InitStates.Init;
        //Spawn necessary utillity managers
        Instantiate(audioManager, Vector3.zero, Quaternion.identity);
        Instantiate(transitionManager, Vector3.zero, Quaternion.identity);
        Instantiate(objectPoolManager, Vector3.zero, Quaternion.identity);
        Instantiate(clientManager, Vector3.zero, Quaternion.identity);
        Instantiate(musicManager, Vector3.zero, Quaternion.identity);
        AudioManager.instance.BindToInitManager();
        TransitionManager.instance.BindToInitManager();
        ObjectPoolManager._instance.BindToInitManager();
        clientManager.GetComponent <IInitialisable>().Init();

        OnStateChange?.Invoke(currInitState);
    }
Example #21
0
    private void EvaluateNewState(InitStates newState)
    {
        switch (newState)
        {
        case InitStates.PlayerSpawned:
            Init();
            WeaponManager.instance.Init();

            break;

        case InitStates.PlayerRespawned:
            ResetCharacter();


            break;
        }
    }
Example #22
0
    private void EvaluateNewState(InitStates newState)
    {
        switch (newState)
        {
        case InitStates.Init:
            GameInit();

            break;

        case InitStates.LoadTitleScreen:
            ReturnToTitleScreen();
            break;

        case InitStates.LoadMainMenu:
            StartCoroutine(LoadTabletMenu());
            break;
        }
    }
Example #23
0
    public void BeginNewState(InitStates newState)
    {
        switch (newState)
        {
        case InitStates.InitLevel:
            GameStateManager.instance.BindToInitManager();
            currInitState = newState;
            OnStateChange?.Invoke(currInitState);
            break;

        case InitStates.PlayerSpawned:
            OnStateChange?.Invoke(newState);
            Debug.Log("Player spawned");
            LoadingScreen.instance.cam.SetActive(false);
            LoadingScreen.instance.BeginFade(false);
            currInitState = InitStates.GameRunning;
            BeginNewState(currInitState);


            break;

        case InitStates.GameRunning:
            OnStateChange?.Invoke(newState);
            currGameMode = GameModes.Powercut;
            //LoadingScreen.instance.ToggleScreen(false);
            break;

        case InitStates.LevelLoaded:

            currInitState = newState;
            GameStateManager.instance.BindToInitManager();
            SerialisationManager.Save(SaveName, SaveData.current);
            OnStateChange?.Invoke(currInitState);
            break;

        case InitStates.LevelClear:

            currInitState = newState;
            SerialisationManager.Save(SaveName, SaveData.current);
            OnStateChange?.Invoke(currInitState);

            break;

        case InitStates.ExitLevel:

            LoadingScreen.instance.ToggleScreen(true);
            currInitState = newState;
            SerialisationManager.Save(SaveName, SaveData.current);
            OnStateChange?.Invoke(currInitState);
            break;

        case InitStates.LoadTitleScreen:


            currInitState = newState;
            SerialisationManager.Save(SaveName, SaveData.current);
            OnStateChange?.Invoke(currInitState);

            break;

        case InitStates.TitleScreen:

            LoadingScreen.instance.BeginFade(false);
            currInitState = newState;
            OnStateChange?.Invoke(currInitState);
            currGameMode = GameModes.Menu;

            break;

        case InitStates.Credits:

            LoadingScreen.instance.BeginFade(false);
            currInitState = newState;
            OnStateChange?.Invoke(currInitState);
            currGameMode = GameModes.Menu;

            break;

        case InitStates.LoadMainMenu:


            currInitState = newState;
            OnStateChange?.Invoke(currInitState);

            break;

        case InitStates.MainMenu:

            LoadingScreen.instance.BeginFade(false);
            currInitState = newState;
            currGameMode  = GameModes.Menu;
            SerialisationManager.Save(SaveName, SaveData.current);
            OnStateChange?.Invoke(currInitState);

            break;

        case InitStates.PlayerSceneLoaded:
            OnStateChange?.Invoke(newState);
            PointerManager.instance.SwitchToCrossHair();
            WeaponManager.instance.BindToInitManager();
            FindObjectOfType <LightManager>().BindToInitManager();
            FindObjectOfType <PlayerBehaviour>().BindToInitManager();
            GameStateManager.instance.Init();

            currInitState = InitStates.SpawnPlayer;
            OnStateChange?.Invoke(currInitState);
            break;

        case InitStates.UISceneLoaded:
            currInitState = newState;
            PauseScreen.instance.Resume();
            UIManager.instance.Init();
            UIManager.instance.BindToInitManager();
            OnStateChange?.Invoke(currInitState);
            break;

        case InitStates.PlayerDead:
            currInitState = newState;
            OnStateChange?.Invoke(currInitState);

            break;

        case InitStates.RespawnPlayer:
            LoadingScreen.instance.ToggleScreen(true);
            currInitState = newState;
            OnStateChange?.Invoke(currInitState);
            break;

        case InitStates.PlayerRespawned:
            currInitState = newState;
            OnStateChange?.Invoke(currInitState);
            LoadingScreen.instance.BeginFade(false);
            currInitState = InitStates.GameRunning;
            OnStateChange?.Invoke(currInitState);
            break;
        }
    }
Example #24
0
        public async void Initialize()
        {
            InitState = InitStates.InProgress;
            try
            {
                // Initializes required objects and load settings
                op2 = new Operationsv2();
                LoadRoamingSettings();
                Windows.Storage.ApplicationData.Current.DataChanged += RoamingDataChanged;

                // Checks if connection strings has been saved to apps settings store
                if (localSettings.Values["DbConnString"] != null && localSettings.Values["CardConnString"] != null)
                {
                    // Retrieves connection strings and tests them
                    DbConnectionString = localSettings.Values["DbConnString"].ToString();
                    CardConnString     = localSettings.Values["CardConnString"].ToString();
                    bool DbTest = await op2.TestPayrollDb(DbConnectionString);

                    bool CardTest = await op2.TestDbConnection(CardConnString);

                    // Retrieves calendar Id to be shown in the login screen
                    bool.TryParse(localSettings.Values["EnableCalendar"].ToString(), out enableCalendar);
                    if (enableCalendar)
                    {
                        calendarId = localSettings.Values["CalendarID"].ToString();
                    }

                    if (DbTest == true & CardTest == true)
                    {
                        // Loads connection strings to DataAccess
                        op2.StoreConnString(DbConnectionString, CardConnString);

                        if (localSettings.Values["selectedLocation"] != null)
                        {
                            // Retrieves app location settings and get info from database
                            int.TryParse(localSettings.Values["selectedLocation"].ToString(), out int selectedLocation);
                            appLocation = await op2.GetLocationById(selectedLocation);

                            if (appLocation != null && appLocation.isDisabled != true)
                            {
                                // Retrieves global settings from database
                                MinHours = await op2.GetGlobalSetting("MinHours");

                                int.TryParse(await op2.GetGlobalSetting("DefaultTraineeGroup"), out int studentGroupId);
                                int.TryParse(await op2.GetGlobalSetting("DefaultGroup"), out int defaultGroupId);

                                if (studentGroupId != int.MinValue && defaultGroupId != int.MinValue)
                                {
                                    defaultStudentGroup = await op2.GetUserGroupById(studentGroupId);

                                    defaultOtherGroup = await op2.GetUserGroupById(defaultGroupId);

                                    if (defaultStudentGroup != null && defaultOtherGroup != null)
                                    {
                                        InitState = InitStates.Success;
                                        return;
                                    }
                                }
                                else
                                {
                                    InitState = InitStates.Failed;
                                    return;
                                }
                            }
                            else
                            {
                                InitState = InitStates.Completed;
                                return;
                            }
                        }
                        else
                        {
                            InitState = InitStates.Failed;
                            return;
                        }
                    }
                    else
                    {
                        InitState = InitStates.Failed;
                        return;
                    }
                }
                else
                {
                    InitState = InitStates.Failed;
                }
            }
            catch (Exception ex)
            {
                InitState = InitStates.Failed;
            }
        }
Example #25
0
    private void EvaluateNewState(InitStates newState)
    {
        switch (newState)
        {
        case InitStates.LoadTitleScreen:
            if (isAwake)
            {
                BeginFadeOut();
            }

            break;

        case InitStates.LoadMainMenu:
            if (isAwake)
            {
                BeginFadeOut();
            }

            break;

        case InitStates.TitleScreen:
            if (isAwake)
            {
                currentRecord = InitStateManager.instance.GetRecord();
                PlayFirstTrack();
            }
            break;

        case InitStates.MainMenu:
            if (isAwake)
            {
                currentRecord = InitStateManager.instance.GetRecord();
                PlayFirstTrack();
            }
            break;

        case InitStates.LevelLoaded:
            if (isAwake)
            {
                StopAllCoroutines();
                BeginFadeOut();
                currentRecord = GameStateManager.instance.GetRecord();
                BindToGameState();
            }
            break;

        case InitStates.Credits:
            if (isAwake)
            {
                StopAllCoroutines();
                BeginFadeOut();
                foreach (TrackList tracklist in creditRecord.records)
                {
                    tracklist.ResetRecord();
                }
                currentRecord = creditRecord;
                PlayFirstTrack();
            }
            break;

        case InitStates.PlayerDead:
            if (isAwake)
            {
                BeginFadeOut();
            }
            break;

        case InitStates.RespawnPlayer:
            if (isAwake)
            {
                PlayNextTrack(true);
            }
            break;

        case InitStates.ExitLevel:
            BeginFadeOut();
            break;
        }
    }