Пример #1
0
        IEnumerator RestartGameProcedure()
        {
            audioManager.Fadeout();

            Time.timeScale = 1;
            fading         = true;
            Vector3 newPos = Camera.main.transform.position;

            newPos.z += 5; // TODO: fix
            blackFade.transform.position = newPos;

            PersistentEngine.SetPause(false);

            yield return(new WaitForSeconds(1.5f));

            if (PersistentEngine.GetDemo())
            {
                PersistentEngine.SetState("Global level", 1);
                PersistentEngine.SetState("Global loadingLevel", 1, true);
            }
            else
            {
                PersistentEngine.SetState("Global level", 1);
                PersistentEngine.SetState("Global loadingLevel", 1, true);
            }
            SceneManager.LoadScene("loadingScreen");
        }
Пример #2
0
        private void LoadLevelInternal(int level)
        {
            PersistentEngine.SetState("Global level", level);
            PersistentEngine.SetState("Global loadingLevel", level, true);

            SceneManager.LoadScene(level);
        }
Пример #3
0
        public static void ContinueFromSavedGame(int slot)
        {
            audioManager.Fadeout();

            PersistentEngine.SetState("Global Savegame", slot, true);

            PersistentEngine g = GameObject.Find("Global").GetComponent <PersistentEngine>();

            g.ContinueGame();
        }
Пример #4
0
        public static void StartLevel(int levelNumber)
        {
            audioManager.Fadeout();
            PersistentEngine g = GameObject.Find("Global").GetComponent <PersistentEngine>();

            RemoveAllSavedData();
            PersistentEngine.SetState("Global level", levelNumber);
            PersistentEngine.SetState("Global loadingLevel", levelNumber, true);
            PersistentEngine.SetPause(false);
            g.StartSelectedLevel();
        }
Пример #5
0
        public static void StartNewGame(int slot)
        {
            audioManager.Fadeout();
            PersistentEngine g = GameObject.Find("Global").GetComponent <PersistentEngine>();

            savePath = defaultSavePath.Remove(defaultSavePath.Length - 4);

            savePath = savePath + slot + ".txt";

            currentSlot = slot;

            PersistentEngine.SetState("Global Savegame", slot, true);

            RemoveAllSavedData();
            g.RestartGame();
        }
Пример #6
0
        bool Switch()
        {
            state++;

            if (state > states.Length - 1)
            {
                state = 0;
            }

            switchedFlag = true;

            PersistentEngine.SetState(gameObject.name + "_RotatingState", state);

            ProcessState();

            return(true);
        }
Пример #7
0
        public void SaveState(bool saveFile = false)
        {
            if (!allowSaving)
            {
                return;
            }

            var fields = this.GetType().GetFields(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic).Where(field => field.IsDefined(typeof(SaveStateAttribute), true));

            foreach (FieldInfo field in fields)
            {
                if (field.FieldType.IsEnum)
                {
                    PersistentEngine.SetState(GetObjectIdentifier(sceneName) + field.Name, (int)field.GetValue(this), saveFile);
                }
                else
                if (PersistentEngine.IsNumericType(field))
                {
                    PersistentEngine.SetState(GetObjectIdentifier(sceneName) + field.Name, (int)field.GetValue(this), saveFile);
                }
                else
                if (PersistentEngine.IsBooleanType(field))
                {
                    var val = (bool)field.GetValue(this) == true ? 1 : 0;
                    GetObjectIdentifier(sceneName);
                    PersistentEngine.SetState(GetObjectIdentifier(sceneName) + field.Name, val, saveFile);
                }
                else if (PersistentEngine.IsStringType(field))
                {
                    var val = field.GetValue(this);
                    GetObjectIdentifier(sceneName);
                    try
                    {
                        PersistentEngine.SetStateStr(GetObjectIdentifier(sceneName) + field.Name, (string)val, saveFile);
                    }
                    catch
                    {
                        PersistentEngine.SetState(GetObjectIdentifier(sceneName) + field.Name, null, saveFile);
                    }
                }
            }
        }