Example #1
0
        public void FinishLoad()
        {
            //if(StatisticsTracker.guildmastersElected.value == 0) {
            //renown = totalRenown = 100000;
            //}
            currentVendors = 0;
            //renown = totalRenown = 100000; //for testing
            //if(industriesFromDisk == null) return;
            for (int o = 0; o < industriesFromDisk.Count; o++)
            {
                Industry ind;
                if (Main.saveVersionFromDisk >= 14)
                {
                    ind = GameRegistry.GetIndustryByID(industriesFromDisk[o].name);
                }
                else
                {
#pragma warning disable CS0612 // Type or member is obsolete
                    ind = GameRegistry.GetIndustryByID(industriesFromDisk[o].ID);
#pragma warning restore CS0612 // Type or member is obsolete
                }
                ind.ReadFromCopy(industriesFromDisk[o].ind);
                if (ind.level > 0)
                {
                    CraftingManager.BuildIndustry(ind, true, false);
                    currentVendors += ind.getRawVendors();
                }
            }
            industriesFromDisk.Clear();
            industriesFromDisk = null;
            for (int o = 0; o < questsFromDisk.Count; o++)
            {
                questsFromDisk[o].quest.FinishLoad();
                QuestManager.availableQuests.Add(questsFromDisk[o].quest);
            }
            questsFromDisk.Clear();
            questsFromDisk = null;
            for (int o = 0; o < activeQuestsFromDisk.Count; o++)
            {
                activeQuestsFromDisk[o].quest.FinishLoad();
                QuestManager.activeQuests.Add(activeQuestsFromDisk[o].quest);
            }
            activeQuestsFromDisk.Clear();
            activeQuestsFromDisk = null;
            UpgradeValueWrapper wrap;
            Main.instance.player.upgrades.TryGetValue(UpgradeType.MONEY_INCOME, out wrap);

            Main.instance.player.miscInventory.ForEach(x => {
                if (x.antiquity > 0 || x.relicData != null)
                {
                    x.stackSize = 1;
                }
            });
        }
Example #2
0
        public ItemStack(SerializationInfo info, StreamingContext context)
        {
            bool b = info.GetBoolean("is_produced");

            if (Main.saveVersionFromDisk >= 14)
            {
                string i = info.GetString("item_id");
                if (b)
                {
                    industry = GameRegistry.GetIndustryByID(i);
                    item     = industry.industryItem;
                }
                else
                {
                    item = GameRegistry.GetItemByID(i);
                }
            }
            else
            {
                int i = info.GetInt32("item_id");
                if (b)
                {
#pragma warning disable CS0612 // Type or member is obsolete
                    industry = GameRegistry.GetIndustryByID(i);
#pragma warning restore CS0612 // Type or member is obsolete
                    item = industry.industryItem;
                }
                else
                {
#pragma warning disable CS0612 // Type or member is obsolete
                    item = GameRegistry.GetItemByID(i);
#pragma warning restore CS0612 // Type or member is obsolete
                }
            }
            stackSize = info.GetInt32("stacksize");
            int num;
            if (info.GetBoolean("relic"))
            {
                num       = info.GetInt32("relicDataSize");
                relicData = new List <RelicInfo>();
                for (int o = 0; o < num; o++)
                {
                    relicData.Add((RelicInfo)info.GetValue("relicData_" + o, typeof(RelicInfo)));
                }
            }
            antiquity           = info.GetInt32("antiquity");
            numTimesUsedOnQuest = info.GetInt32("numTimesUsedOnQuest");
            isIDedByPlayer      = info.GetBoolean("isIDedByPlayer");
            num      = info.GetInt32("enchantsSize");
            enchants = new List <Enchantment>();
            for (int o = 0; o < num; o++)
            {
                if (Main.saveVersionFromDisk >= 15)
                {
                    enchants.Add(GameRegistry.GetEnchantmentByID(info.GetString("enchants_" + o)));
                }
                else
                {
                    enchants.Add(GameRegistry.GetEnchantmentByID(info.GetInt32("enchants_" + o)));
                }
            }
            enchants.RemoveAll(x => x == null);
            if (Main.saveVersionFromDisk >= 6)
            {
                wasAddedByJourneyman = info.GetBoolean("wasAddedByJourneyman");
            }
            if (Main.saveVersionFromDisk >= 21)
            {
                addedToInvenTime = DateTime.Parse(info.GetString("addedToInvenTime"));
            }
        }
Example #3
0
        public PlayerInfo(SerializationInfo info, StreamingContext context)
        {
            //Main.instance.player.SetDefaultUpgrades();
#pragma warning disable 0168
            try {
                Main.saveVersionFromDisk = info.GetInt32("SaveVersion");
            }
            catch (Exception ex) {
                Main.saveVersionFromDisk = 0;
            }
#pragma warning restore 0168
            // To future self: this turned into a dirty hack
            // Because how how upgrades were handled
            // :(
            Main.instance.player.builtItems = new List <Industry>();
            Main.instance.player.money      = BigInteger.Parse(info.GetString("money"));
            Main.instance.player.moneyFloor = BigInteger.Parse(info.GetString("moneyFloor"));
            //StatisticsTracker.lifetimeMoney.setValue(BigInteger.Parse(info.GetString("lifetimeMoney")));
            Main.instance.player.renown      = BigInteger.Parse(info.GetString("renown"));
            Main.instance.player.totalRenown = BigInteger.Parse(info.GetString("totalRenown"));

            Main.instance.player.maxVendors     = info.GetInt32("maxVendors");
            Main.instance.player.currentVendors = info.GetInt32("currentVendors");
            Main.instance.player.maxApprentices = info.GetInt32("maxApprentices");
            if (Main.saveVersionFromDisk >= 6)
            {
                Main.instance.player.journeymen = info.GetInt32("journeymen");
            }
            Main.instance.player.currentApprentices         = info.GetInt32("currentApprentices");
            Main.instance.player.totalQuestsCompletedRenown = info.GetInt64("totalQuestsCompleted");
            Main.instance.player.questsCompletedRenown      = info.GetInt64("questsCompleted");


            if (Main.saveVersionFromDisk < 8)
            {
                Main.instance.player.skillPoints = info.GetInt32("skillPoints");
            }
            else
            {
                Main.instance.player.skillPoints      = BigInteger.Parse(info.GetString("skillPoints"));
                Main.instance.player.totalSkillPoints = BigInteger.Parse(info.GetString("totalSkillPoints"));
            }


            Main.instance.player.resetLevel   = info.GetInt32("resetLevel");
            Main.instance.player.researchTime = (float)info.GetDouble("researchTime");

            int num;
            num = info.GetInt32("miscInventorySize");
            //miscInventory = new List<ItemStack>();
            for (int o = 0; o < num; o++)
            {
                Main.instance.player.miscInventory.Add((ItemStack)info.GetValue("miscInventory_" + o, typeof(ItemStack)));
            }
            num = info.GetInt32("unidentifiedRelicsSize");
            //unidentifiedRelics = new List<ItemStack>();
            for (int o = 0; o < num; o++)
            {
                Main.instance.player.unidentifiedRelics.Add((ItemStack)info.GetValue("unidentifiedRelics_" + o, typeof(ItemStack)));
            }
            num = info.GetInt32("builtItemsSize");
            for (int o = 0; o < num; o++)
            {
                Industry temp;
                if (Main.saveVersionFromDisk >= 14)
                {
                    string id = info.GetString("buildItemID_" + o);
                    temp = (Industry)info.GetValue("builtItems_" + o, typeof(Industry));
                    Main.instance.player.industriesFromDisk.Add(new IndustryLoadWrapper(temp, id));
                }
                else
                {
                    int id = info.GetInt32("buildItemID_" + o);
                    temp = (Industry)info.GetValue("builtItems_" + o, typeof(Industry));
                    Main.instance.player.industriesFromDisk.Add(new IndustryLoadWrapper(temp, id));
                }
            }

            if (Main.saveVersionFromDisk >= 13)
            {
                FieldInfo[] fields = typeof(Industries).GetFields();
                num = info.GetInt32("allIndustries");
                for (int o = 0; o < num; o++)
                {
                    if (Main.saveVersionFromDisk >= 14)
                    {
                        Industry item = GameRegistry.GetIndustryByID(info.GetString("allIndustriesID_" + o));
                        item.setGridPos(new Vector3((float)info.GetDouble("allIndustriesX_" + o), (float)info.GetDouble("allIndustriesY_" + o), 0));
                        if (Main.saveVersionFromDisk >= 17)
                        {
                            item.doAutobuild        = info.GetBoolean("allIndustriesAB_" + o);
                            item.autoBuildLevel     = info.GetInt32("allIndustriesABLvl_" + o);
                            item.autoBuildMagnitude = info.GetInt32("allIndustriesABMag_" + o);
                            if (Main.saveVersionFromDisk >= 19)
                            {
                                item.startingVendors = info.GetInt32("allIndustriesABVend_" + o);
                            }
                        }
                    }
                    else
                    {
                        FieldInfo field = fields[o];
                        Industry  item  = (Industry)field.GetValue(null);
                        item.setGridPos(new Vector3((float)info.GetDouble("allIndustriesX_" + o), (float)info.GetDouble("allIndustriesY_" + o), 0));
                    }
                }
            }

            num = info.GetInt32("activeQuestsSize");
            //Debug.Log("Reading " + num + " active quests");
            for (int o = 0; o < num; o++)
            {
                Quest temp = (Quest)info.GetValue("activeQuests_" + o, typeof(Quest));
                //quest obstacle type data from disk isn't actually available yet
                Main.instance.player.activeQuestsFromDisk.Add(new QuestLoadWrapper(temp));
            }
            num = info.GetInt32("availableQuestsSize");
            //Debug.Log("Reading " + num + " available quests");
            for (int o = 0; o < num; o++)
            {
                Quest temp = (Quest)info.GetValue("availableQuests_" + o, typeof(Quest));
                //quest obstacle type data from disk isn't actually available yet
                Main.instance.player.questsFromDisk.Add(new QuestLoadWrapper(temp));
            }
            num = info.GetInt32("availableRelicsSize");
            for (int o = 0; o < num; o++)
            {
                QuestManager.availableRelics.Add((ItemStack)info.GetValue("availableRelics_" + o, typeof(ItemStack)));
            }
            if (Main.saveVersionFromDisk >= 10)
            {
                Main.instance.player._questTypeCompletion = (Dictionary <string, long>)info.GetValue("questTypeCompletion", typeof(Dictionary <string, long>));
            }
            float f = (float)info.GetDouble("newQuestTimer");
            QuestManager.LoadTimerFromSave(f);
            if (Main.saveVersionFromDisk >= 11)
            {
                QuestManager.setEquipTimer((float)info.GetDouble("questEquipTimer"));
            }

            if (Main.saveVersionFromDisk >= 2)
            {
                GuildManager.readSaveData(ref info, ref context);
            }
            if (Main.saveVersionFromDisk >= 7)
            {
                StatisticsTracker.deserializeAllStats(ref info, ref context);
            }
            if (Main.saveVersionFromDisk >= 8)
            {
                Main.instance.player.currentGuildmaster = (Master)info.GetValue("currentGuildmaster", typeof(Master));
            }
            else
            {
                Main.instance.player.currentGuildmaster = new Master();
            }
            if (Main.saveVersionFromDisk >= 12)
            {
                DeepGoalsTypes.deserialize(ref info, ref context);
            }
            if (Main.saveVersionFromDisk >= 22)
            {
                ResearchManager.lastViewDate = DateTime.Parse(info.GetString("ResearchManager.lastViewDate"));
            }
            TutorialManager.deserialize(ref info, ref context);
        }