Exemplo n.º 1
0
/// <summary>
/// clean the death sections in the ini file that have no remaining keys. the death section that is empty is "shifted" and all other sections replace it down the line.
/// </summary>
        private void ShiftDeleteDeathSection(string DeathSection, int DeathSectionNumber)
        {
            bool DeathKeysExist = false;

            for (int i = 0; i < InventoryItems.Length; i++)                                    //iterate through all inventory items
            {
                if (ini.ReadValue(DeathSection, InventoryItems[i].ItemID, 0) >= 1)             // if the object value is nonzero
                {
                    DeathKeysExist = true;                                                     //at least one death key is 1 or above
                }
            }

            if (!DeathKeysExist)
            {
                ini.SectionDelete(DeathSection);                                                                   // delete the section if none of the death keys are 1 or greater

                for (; ini.IsSectionExists("Death" + ((DeathSectionNumber + 1).ToString())); DeathSectionNumber++) //iterate through the remaining sections, re-writing previous ones
                {
                    //write level
                    ini.WriteValue(DeathSection, "Level", ini.ReadValue("Death" + ((DeathSectionNumber + 1).ToString()), "Level", "Default"));

                    //write X and Y Values
                    ini.WriteValue(DeathSection, "x", ini.ReadValue("Death" + ((DeathSectionNumber + 1).ToString()), "x", 0.0f));
                    ini.WriteValue(DeathSection, "y", ini.ReadValue("Death" + ((DeathSectionNumber + 1).ToString()), "y", 0.0f));

                    for (int i = 0; i < InventoryItems.Length; i++)
                    {
                        if (ini.ReadValue("Death" + ((DeathSectionNumber + 1).ToString()), InventoryItems[i].ItemID, 0) >= 1)
                        {
                            ini.WriteValue(DeathSection, InventoryItems[i].ItemID, ini.ReadValue("Death" + ((DeathSectionNumber + 1).ToString()), InventoryItems[i].ItemID, 0));       //write the a death key for each inventory item found
                        }
                    }

                    ini.SectionDelete("Death" + ((DeathSectionNumber + 1).ToString()));   //delete remaining section
                }

                ini.SectionDelete("Death" + ((DeathSectionNumber).ToString()));
            }
        }
Exemplo n.º 2
0
    public void SaveCities()
    {
        numberOfCities = 0;
        if (!encrypted)
        {
            INIParser ini = new INIParser();

            File.Delete(Application.dataPath + "/SAVES/" + saveName + ".SAV");
            ini.Open(Application.dataPath + "/SAVES/" + saveName + ".SAV");
            ini.SectionDelete("NUMBER_OF_CITIES");
            foreach (GameObject g in StaticCitiesList.Cities)
            {
                numberOfCities += 1;
                City cityInfo = g.GetComponent <City>();
                //print(cityInfo._Y);
                ini.WriteValue("City" + numberOfCities, "CityName", cityInfo._CityName);
                //City ints
                ini.WriteValue("City" + numberOfCities, "XPos", cityInfo._X * 10000f);
                ini.WriteValue("City" + numberOfCities, "YPos", cityInfo._Y * 10000f);
                ini.WriteValue("City" + numberOfCities, "ZPos", cityInfo._Z * 10000f);
                ini.WriteValue("City" + numberOfCities, "Castle", cityInfo._Castle);
                ini.WriteValue("City" + numberOfCities, "KnightsCastle", cityInfo._KnightsCastle);
                ini.WriteValue("City" + numberOfCities, "Wall", cityInfo._Wall);
                ini.WriteValue("City" + numberOfCities, "SecondWall", cityInfo._SecondWall);
                ini.WriteValue("City" + numberOfCities, "ThirdWall", cityInfo._ThirdWall);
                ini.WriteValue("City" + numberOfCities, "GuardTowers", cityInfo._GuardTowers);
                ini.WriteValue("City" + numberOfCities, "Barracks", cityInfo._Barracks);
                ini.WriteValue("City" + numberOfCities, "PatrollCentre", cityInfo._PatrollCentre);
                ini.WriteValue("City" + numberOfCities, "Blacksmith", cityInfo._Blacksmith);
                ini.WriteValue("City" + numberOfCities, "Housing", cityInfo._Housing);
                ini.WriteValue("City" + numberOfCities, "Aphothecary", cityInfo._Aphothecary);
                ini.WriteValue("City" + numberOfCities, "Treasurery", cityInfo._Treasurery);
                ini.WriteValue("City" + numberOfCities, "Granary", cityInfo._Granary);
                ini.WriteValue("City" + numberOfCities, "StorageHouse", cityInfo._StorageHouse);
                ini.WriteValue("City" + numberOfCities, "TradingGuild", cityInfo._TradingGuild);
                ini.WriteValue("City" + numberOfCities, "School", cityInfo._School);
                ini.WriteValue("City" + numberOfCities, "Mill", cityInfo._Mill);
                ini.WriteValue("City" + numberOfCities, "GoldMine", cityInfo._GoldMine);
                ini.WriteValue("City" + numberOfCities, "IronMine", cityInfo._IronMine);
                ini.WriteValue("City" + numberOfCities, "CoalMine", cityInfo._CoalMine);
                ini.WriteValue("City" + numberOfCities, "WoodcuttersCamp", cityInfo._WoodcuttersCamp);
                ini.WriteValue("City" + numberOfCities, "WoodMill", cityInfo._WoodMill);
                ini.WriteValue("City" + numberOfCities, "Plains", cityInfo._Plains);
            }
            ini.WriteValue("NUMBER_OF_CITIES", "ammount", numberOfCities);
            ini.Close();
        }
        else
        {
            SaveCityData    saveCityData = new SaveCityData();
            BinaryFormatter bf           = new BinaryFormatter();
            FileStream      file         = File.Create(Application.dataPath + "/SAVES/save.SAV");

            foreach (GameObject g in StaticCitiesList.Cities)
            {
                numberOfCities += 1;
                City cityInfo = g.GetComponent <City>();

                saveCityData.CityName = cityInfo._CityName;
                //City ints
                saveCityData.castle          = cityInfo._Castle;
                saveCityData.knightsCastle   = cityInfo._KnightsCastle;
                saveCityData.wall            = cityInfo._Wall;
                saveCityData.secondWall      = cityInfo._SecondWall;
                saveCityData.thirdWall       = cityInfo._ThirdWall;
                saveCityData.guardTowers     = cityInfo._GuardTowers;
                saveCityData.barracks        = cityInfo._Barracks;
                saveCityData.patrollCentre   = cityInfo._PatrollCentre;
                saveCityData.blacksmith      = cityInfo._Blacksmith;
                saveCityData.housing         = cityInfo._Housing;
                saveCityData.aphothecary     = cityInfo._Aphothecary;
                saveCityData.treasurery      = cityInfo._Treasurery;
                saveCityData.granary         = cityInfo._Granary;
                saveCityData.storageHouse    = cityInfo._StorageHouse;
                saveCityData.tradingGuild    = cityInfo._TradingGuild;
                saveCityData.school          = cityInfo._School;
                saveCityData.mill            = cityInfo._Mill;
                saveCityData.goldMine        = cityInfo._GoldMine;
                saveCityData.ironMine        = cityInfo._IronMine;
                saveCityData.coalMine        = cityInfo._CoalMine;
                saveCityData.woodcuttersCamp = cityInfo._WoodcuttersCamp;
                saveCityData.woodMill        = cityInfo._WoodMill;
                saveCityData.plains          = cityInfo._Plains;

                bf.Serialize(file, saveCityData);
            }
            CityCount cityCount = new CityCount();
            cityCount.cities = numberOfCities;

            bf.Serialize(file, cityCount);

            file.Close();
        }
    }