예제 #1
0
    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();
    }
예제 #2
0
    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);
        }
    }