// 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)); }
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); }
// 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); }
// 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); } } }
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); }
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); }
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); }
// 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); }
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(); }
public SaveGameData(global::PlayerData playerData, SceneData sceneData) : base(playerData, sceneData) { }
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); }); } } } ); }
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); }); } } }); }