Example #1
0
        // Token: 0x0600002E RID: 46 RVA: 0x00002DF4 File Offset: 0x00000FF4
        public override bool HasKilled(string name)
        {
            global::PlayerData playerData = global::GameManager.instance.playerData;
            string             boolName   = "killed" + name;

            return(playerData.GetBool(boolName));
        }
Example #2
0
        public bool LoadGame(int saveSlot)
        {
            if (!Platform.IsSaveSlotIndexValid(saveSlot))
            {
                Debug.LogErrorFormat("Cannot load from invalid save slot index {0}", new object[]
                {
                    saveSlot
                });
                return(false);
            }
            if (!Platform.Current.IsSaveSlotInUse(saveSlot))
            {
                Debug.LogErrorFormat("Cannot load from empty save slot index {0}", new object[]
                {
                    saveSlot
                });
                return(false);
            }
            bool result;

            try
            {
                bool   flag = this.gameConfig.useSaveEncryption && !Platform.Current.IsFileSystemProtected;
                string json;
                if (flag)
                {
                    BinaryFormatter binaryFormatter     = new BinaryFormatter();
                    MemoryStream    serializationStream = new MemoryStream(Platform.Current.ReadSaveSlot(saveSlot));
                    string          encryptedString     = (string)binaryFormatter.Deserialize(serializationStream);
                    json = Encryption.Decrypt(encryptedString);
                }
                else
                {
                    json = Encoding.UTF8.GetString(Platform.Current.ReadSaveSlot(saveSlot));
                }
                Debug.Log("[API] - Loading Game:" + json);
                SaveGameData       saveGameData = JsonUtility.FromJson <SaveGameData>(json);
                global::PlayerData instance     = saveGameData.playerData;
                SceneData          instance2    = saveGameData.sceneData;
                ModHooks.Instance.OnAfterSaveGameLoad(saveGameData);
                global::PlayerData.instance = instance;
                this.playerData             = instance;
                SceneData.instance          = instance2;
                this.sceneData = instance2;
                this.profileID = saveSlot;
                this.inputHandler.RefreshPlayerData();
                ModHooks.Instance.OnSavegameLoad(saveSlot);
                result = true;
            }
            catch (Exception ex)
            {
                Debug.LogFormat("Error loading save file for slot {0}: {1}", new object[]
                {
                    saveSlot,
                    ex
                });
                result = false;
            }
            return(result);
        }
Example #3
0
        // Token: 0x06000031 RID: 49 RVA: 0x00002F80 File Offset: 0x00001180
        public override bool HasEntryFor(string name)
        {
            global::PlayerData playerData = global::GameManager.instance.playerData;
            string             name2      = "killed" + name;

            return(typeof(global::PlayerData).GetField(name2, BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic) != null);
        }
Example #4
0
        // Token: 0x06000030 RID: 48 RVA: 0x00002E64 File Offset: 0x00001064
        public override void RecordKillFor(string name)
        {
            global::PlayerData playerData = global::GameManager.instance.playerData;
            string             boolName   = "killed" + name;
            string             intName    = "kills" + name;
            string             boolName2  = "newData" + name;
            bool flag  = false;
            bool flag2 = !playerData.GetBool(boolName);

            if (flag2)
            {
                flag = true;
                playerData.SetBool(boolName, true);
                playerData.SetBool(boolName2, true);
            }
            bool flag3 = false;
            int  num   = playerData.GetInt(intName);
            bool flag4 = num > 0;

            if (flag4)
            {
                num--;
                playerData.SetInt(intName, num);
                bool flag5 = num <= 0;
                if (flag5)
                {
                    flag3 = true;
                }
            }
            bool @bool = playerData.GetBool("hasJournal");

            if (@bool)
            {
                bool flag6 = false;
                bool flag7 = flag3;
                if (flag7)
                {
                    flag6 = true;
                    playerData.SetInt("journalEntriesCompleted", playerData.GetInt("journalEntriesCompleted") + 1);
                }
                else
                {
                    bool flag8 = flag;
                    if (flag8)
                    {
                        flag6 = true;
                        playerData.SetInt("journalNotesCompleted", playerData.GetInt("journalNotesCompleted") + 1);
                    }
                }
                bool flag9 = flag6;
                if (flag9)
                {
                    this.DisplayJournalUpdate(flag3);
                }
            }
        }
Example #5
0
 public bool LoadGame(int saveSlot)
 {
     if (saveSlot >= 0)
     {
         string saveFilename = this.GetSaveFilename(saveSlot);
         if (!string.IsNullOrEmpty(saveFilename) && File.Exists(Application.persistentDataPath + saveFilename))
         {
             try
             {
                 string          toDecrypt       = string.Empty;
                 string          json            = string.Empty;
                 BinaryFormatter binaryFormatter = new BinaryFormatter();
                 FileStream      fileStream      = File.Open(Application.persistentDataPath + saveFilename, FileMode.Open);
                 if (this.gameConfig.useSaveEncryption)
                 {
                     toDecrypt = (string)binaryFormatter.Deserialize(fileStream);
                 }
                 else
                 {
                     json = (string)binaryFormatter.Deserialize(fileStream);
                 }
                 fileStream.Close();
                 if (this.gameConfig.useSaveEncryption)
                 {
                     json = StringEncrypt.DecryptData(toDecrypt);
                 }
                 Logger.LogFine("[API] - Loading Game:" + json);
                 SaveGameData       saveGameData = JsonUtility.FromJson <SaveGameData>(json);
                 global::PlayerData instance     = saveGameData.playerData;
                 SceneData          instance2    = saveGameData.sceneData;
                 ModHooks.Instance.OnAfterSaveGameLoad(saveGameData);
                 global::PlayerData.instance = instance;
                 this.playerData             = instance;
                 SceneData.instance          = instance2;
                 this.sceneData = instance2;
                 this.profileID = saveSlot;
                 this.inputHandler.RefreshPlayerData();
                 ModHooks.Instance.OnSavegameLoad(saveSlot);
                 return(true);
             }
             catch (Exception ex)
             {
                 Debug.LogFormat("Error loading save file for slot {0}: {1}", new object[]
                 {
                     saveSlot,
                     ex
                 });
                 return(false);
             }
         }
         Debug.Log("Save file not found for slot " + saveSlot);
         return(false);
     }
     Debug.LogError("Save game slot not valid: " + saveSlot);
     return(false);
 }
Example #6
0
 public SaveStats GetSaveStatsForSlot(int saveSlot)
 {
     if (saveSlot > 0)
     {
         string saveFilename = this.GetSaveFilename(saveSlot);
         if (!string.IsNullOrEmpty(saveFilename) && File.Exists(Application.persistentDataPath + saveFilename))
         {
             try
             {
                 string          toDecrypt       = string.Empty;
                 string          json            = string.Empty;
                 BinaryFormatter binaryFormatter = new BinaryFormatter();
                 FileStream      fileStream      = File.Open(Application.persistentDataPath + saveFilename, FileMode.Open);
                 if (this.gameConfig.useSaveEncryption)
                 {
                     toDecrypt = (string)binaryFormatter.Deserialize(fileStream);
                 }
                 else
                 {
                     json = (string)binaryFormatter.Deserialize(fileStream);
                 }
                 fileStream.Close();
                 if (this.gameConfig.useSaveEncryption)
                 {
                     json = StringEncrypt.DecryptData(toDecrypt);
                 }
                 SaveGameData       saveGameData = JsonUtility.FromJson <SaveGameData>(json);
                 global::PlayerData playerData   = saveGameData.playerData;
                 SaveStats          stats        = new SaveStats(playerData.maxHealthBase, playerData.geo, playerData.mapZone,
                                                                 playerData.playTime, playerData.MPReserveMax, playerData.permadeathMode,
                                                                 playerData.completionPercentage, playerData.unlockedCompletionRate)
                 {
                     Name       = saveGameData.Name,
                     LoadedMods = saveGameData.LoadedMods
                 };
                 return(stats);
             }
             catch (Exception ex)
             {
                 Debug.LogError(string.Concat(new object[]
                 {
                     "Error while loading save file for slot ",
                     saveSlot,
                     " Exception: ",
                     ex
                 }));
                 return(null);
             }
         }
         return(null);
     }
     Debug.LogError("Save game slot not valid: " + saveSlot);
     return(null);
 }
Example #7
0
        public SaveStats GetSaveStatsForSlot(int saveSlot)
        {
            if (!Platform.IsSaveSlotIndexValid(saveSlot))
            {
                Debug.LogErrorFormat("Cannot get save stats for invalid slot {0}", new object[]
                {
                    saveSlot
                });
                return(null);
            }
            if (!Platform.Current.IsSaveSlotInUse(saveSlot))
            {
                return(null);
            }
            SaveStats result;

            try
            {
                bool   flag = this.gameConfig.useSaveEncryption && !Platform.Current.IsFileSystemProtected;
                string json;
                if (flag)
                {
                    BinaryFormatter binaryFormatter     = new BinaryFormatter();
                    MemoryStream    serializationStream = new MemoryStream(Platform.Current.ReadSaveSlot(saveSlot));
                    string          encryptedString     = (string)binaryFormatter.Deserialize(serializationStream);
                    json = Encryption.Decrypt(encryptedString);
                }
                else
                {
                    json = Encoding.UTF8.GetString(Platform.Current.ReadSaveSlot(saveSlot));
                }
                SaveGameData       saveGameData = JsonUtility.FromJson <SaveGameData>(json);
                global::PlayerData playerData   = saveGameData.playerData;
                SaveStats          saveStats    = new SaveStats(playerData.maxHealthBase, playerData.geo, playerData.mapZone, playerData.playTime, playerData.MPReserveMax, playerData.permadeathMode, playerData.completionPercentage, playerData.unlockedCompletionRate)
                {
                    Name       = saveGameData.Name,
                    LoadedMods = saveGameData.LoadedMods
                };
                result = saveStats;
            }
            catch (Exception ex)
            {
                Debug.LogError(string.Concat(new object[]
                {
                    "Error while loading save file for slot ",
                    saveSlot,
                    " Exception: ",
                    ex
                }));
                result = null;
            }
            return(result);
        }
Example #8
0
        // Token: 0x0600002F RID: 47 RVA: 0x00002E24 File Offset: 0x00001024
        public override int KillsLeft(string name)
        {
            global::PlayerData playerData = global::GameManager.instance.playerData;
            string             intName    = "kills" + name;
            int  num  = playerData.GetInt(intName);
            bool flag = num < 0;

            if (flag)
            {
                num = 0;
            }
            return(num);
        }
Example #9
0
    public void Save()
    {
        //create formatter and save file
        BinaryFormatter bf   = new BinaryFormatter();
        FileStream      file = File.Create(Application.persistentDataPath + "/playerInfo.dat");
        //create object to save data to
        PlayerData data = new global::PlayerData();

        data.savelevel = level;


        //write the obj to the file and closes it
        bf.Serialize(file, data);
        file.Close();
    }
Example #10
0
 public SaveGameData(global::PlayerData playerData, SceneData sceneData) : base(playerData, sceneData)
 {
 }
Example #11
0
        public void GetSaveStatsForSlot(int saveSlot, Action <global::SaveStats> callback)
        {
            if (!Platform.IsSaveSlotIndexValid(saveSlot))
            {
                Debug.LogErrorFormat
                (
                    "Cannot get save stats for invalid slot {0}",
                    new object[]
                {
                    saveSlot
                }
                );
                if (callback != null)
                {
                    CoreLoop.InvokeNext(delegate { callback(null); });
                }

                return;
            }

            Platform.Current.ReadSaveSlot
            (
                saveSlot,
                delegate(byte[] fileBytes)
            {
                if (fileBytes == null)
                {
                    if (callback != null)
                    {
                        CoreLoop.InvokeNext(delegate { callback(null); });
                    }

                    return;
                }

                try
                {
                    bool flag = this.gameConfig.useSaveEncryption && !Platform.Current.IsFileSystemProtected;
                    string json;
                    if (flag)
                    {
                        BinaryFormatter binaryFormatter  = new BinaryFormatter();
                        MemoryStream serializationStream = new MemoryStream(fileBytes);
                        string encryptedString           = (string)binaryFormatter.Deserialize(serializationStream);
                        json = Encryption.Decrypt(encryptedString);
                    }
                    else
                    {
                        json = Encoding.UTF8.GetString(fileBytes);
                    }

                    SaveGameData saveGameData;
                    try
                    {
                        saveGameData = JsonConvert.DeserializeObject <SaveGameData>(json, new JsonSerializerSettings()
                        {
                            ContractResolver = ShouldSerializeContractResolver.Instance,
                            TypeNameHandling = TypeNameHandling.Auto
                        });
                    }
                    catch (Exception)
                    {
                        // Not a huge deal, this happens on saves with mod data which haven't been converted yet.
                        Logger.APILogger.LogWarn($"Failed to get save stats for slot {saveSlot} using Json.NET, falling back");

                        saveGameData = JsonUtility.FromJson <SaveGameData>(json);
                    }

                    global::PlayerData playerData = saveGameData.playerData;
                    SaveStats saveStats           = new SaveStats
                                                    (
                        playerData.maxHealthBase,
                        playerData.geo,
                        playerData.mapZone,
                        playerData.playTime,
                        playerData.MPReserveMax,
                        playerData.permadeathMode,
                        playerData.bossRushMode,
                        playerData.completionPercentage,
                        playerData.unlockedCompletionRate
                                                    );
                    if (callback != null)
                    {
                        CoreLoop.InvokeNext(delegate { callback(saveStats); });
                    }
                }
                catch (Exception ex)
                {
                    Debug.LogError
                    (
                        string.Concat
                        (
                            new object[]
                    {
                        "Error while loading save file for slot ",
                        saveSlot,
                        " Exception: ",
                        ex
                    }
                        )
                    );
                    if (callback != null)
                    {
                        CoreLoop.InvokeNext(delegate { callback(null); });
                    }
                }
            }
            );
        }
Example #12
0
        public void LoadGame(int saveSlot, Action <bool> callback)
        {
            if (!Platform.IsSaveSlotIndexValid(saveSlot))
            {
                Debug.LogErrorFormat
                (
                    "Cannot load from invalid save slot index {0}",
                    new object[]
                {
                    saveSlot
                }
                );
                if (callback != null)
                {
                    CoreLoop.InvokeNext(delegate { callback(false); });
                }

                return;
            }

            Platform.Current.ReadSaveSlot
            (
                saveSlot,
                delegate(byte[] fileBytes)
            {
                bool obj;
                try
                {
                    bool flag = this.gameConfig.useSaveEncryption && !Platform.Current.IsFileSystemProtected;
                    string json;
                    if (flag)
                    {
                        BinaryFormatter binaryFormatter  = new BinaryFormatter();
                        MemoryStream serializationStream = new MemoryStream(fileBytes);
                        string encryptedString           = (string)binaryFormatter.Deserialize(serializationStream);
                        json = Encryption.Decrypt(encryptedString);
                    }
                    else
                    {
                        json = Encoding.UTF8.GetString(fileBytes);
                    }

                    SaveGameData saveGameData;

                    try
                    {
                        saveGameData = JsonConvert.DeserializeObject <SaveGameData>(json, new JsonSerializerSettings()
                        {
                            ContractResolver = ShouldSerializeContractResolver.Instance,
                            TypeNameHandling = TypeNameHandling.Auto
                        });
                    }
                    catch (Exception e)
                    {
                        Logger.APILogger.LogError("Failed to read save using Json.NET (GameManager::LoadGame), falling back.");
                        Logger.APILogger.LogError(e);

                        saveGameData = JsonUtility.FromJson <SaveGameData>(json);
                    }

                    global::PlayerData instance = saveGameData.playerData;
                    SceneData instance2         = saveGameData.sceneData;
                    global::PlayerData.instance = instance;
                    this.playerData             = instance;
                    SceneData.instance          = instance2;
                    ModHooks.Instance.OnAfterSaveGameLoad(saveGameData);
                    this.sceneData = instance2;
                    this.profileID = saveSlot;
                    this.inputHandler.RefreshPlayerData();
                    ModHooks.Instance.OnSavegameLoad(saveSlot);
                    obj = true;
                }
                catch (Exception ex)
                {
                    Debug.LogFormat
                    (
                        "Error loading save file for slot {0}: {1}",
                        new object[]
                    {
                        saveSlot,
                        ex
                    }
                    );
                    obj = false;
                }

                if (callback != null)
                {
                    callback(obj);
                }
            }
            );
        }
 public void GetSaveStatsForSlot(int saveSlot, Action <global::SaveStats> callback)
 {
     if (!Platform.IsSaveSlotIndexValid(saveSlot))
     {
         Debug.LogErrorFormat("Cannot get save stats for invalid slot {0}", new object[]
         {
             saveSlot
         });
         if (callback != null)
         {
             CoreLoop.InvokeNext(delegate
             {
                 callback(null);
             });
         }
         return;
     }
     Platform.Current.ReadSaveSlot(saveSlot, delegate(byte[] fileBytes)
     {
         if (fileBytes == null)
         {
             if (callback != null)
             {
                 CoreLoop.InvokeNext(delegate
                 {
                     callback(null);
                 });
             }
             return;
         }
         try
         {
             bool flag = this.gameConfig.useSaveEncryption && !Platform.Current.IsFileSystemProtected;
             string json;
             if (flag)
             {
                 BinaryFormatter binaryFormatter  = new BinaryFormatter();
                 MemoryStream serializationStream = new MemoryStream(fileBytes);
                 string encryptedString           = (string)binaryFormatter.Deserialize(serializationStream);
                 json = Encryption.Decrypt(encryptedString);
             }
             else
             {
                 json = Encoding.UTF8.GetString(fileBytes);
             }
             SaveGameData saveGameData     = JsonUtility.FromJson <SaveGameData>(json);
             global::PlayerData playerData = saveGameData.playerData;
             SaveStats saveStats           = new SaveStats(playerData.maxHealthBase, playerData.geo, playerData.mapZone,
                                                           playerData.playTime, playerData.MPReserveMax, playerData.permadeathMode, playerData.bossRushMode,
                                                           playerData.completionPercentage, playerData.unlockedCompletionRate);
             if (callback != null)
             {
                 CoreLoop.InvokeNext(delegate
                 {
                     callback(saveStats);
                 });
             }
         }
         catch (Exception ex)
         {
             Debug.LogError(string.Concat(new object[]
             {
                 "Error while loading save file for slot ",
                 saveSlot,
                 " Exception: ",
                 ex
             }));
             if (callback != null)
             {
                 CoreLoop.InvokeNext(delegate
                 {
                     callback(null);
                 });
             }
         }
     });
 }