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; } }); }
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")); } }
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); }