public static void SaveBattleground(BattlegroundData battlegroundData) { FileStream fs = File.Create(BattlegroundSaveFile); BinaryFormatter bf = new BinaryFormatter(); SerializedBattlegroundData gameData = new SerializedBattlegroundData(); gameData.Player = DataSerialization.Serialize(battlegroundData.Player); gameData.Enemies = DataSerialization.Serialize(battlegroundData.Enemies); gameData.MapInfos = DataSerialization.Serialize(battlegroundData.MapInfos); gameData.CurrentUnitId = battlegroundData.CurrentUnitId; bf.Serialize(fs, gameData); fs.Close(); }
public static BattlegroundData LoadBattleground() { if (File.Exists(BattlegroundSaveFile)) { FileStream fs = File.Open(BattlegroundSaveFile, FileMode.Open); if (fs == null || fs.Length == 0) { Debug.Log("Failed to load BattlegroundSaveFile (null or empty)"); return(null); } BinaryFormatter bf = new BinaryFormatter(); SerializedBattlegroundData gameData = (SerializedBattlegroundData)bf.Deserialize(fs); fs.Close(); BattlegroundData battlegroundData = new BattlegroundData(); Dictionary <string, string> skillsDb = DataSerialization.ReadDatabasePathById(skillsDatabasePreset); Dictionary <string, string> itemsDb = DataSerialization.ReadDatabasePathById(itemsDatabasePreset); battlegroundData.Player = DataSerialization.Deserialize <Player>(gameData.Player, skillsDb, itemsDb); battlegroundData.Enemies = DataSerialization.Deserialize <Enemy>(gameData.Enemies, skillsDb, itemsDb); battlegroundData.MapInfos = DataSerialization.Deserialize(gameData.MapInfos, materialsDatabasePreset, battlegroundData.Player, battlegroundData.Enemies); if (battlegroundData.MapInfos.Map != null) { SetCurrentCell(battlegroundData.Player, gameData.Player, battlegroundData.MapInfos.Map); SetCurrentCell(battlegroundData.Enemies, gameData.Enemies, battlegroundData.MapInfos.Map); } battlegroundData.CurrentUnitId = gameData.CurrentUnitId; return(battlegroundData); } else { Debug.Log("(Load) BattlegroundSaveFile doesn't exist!"); return(null); } }