public IDeepGoal getActiveDeepGoal() { if (StatisticsTracker.guildmastersElected.value == 0) { return(DeepGoalsTypes.NONE); } return(DeepGoalsTypes.getFirstActiveGoal()); //IDeepGoal goal = DeepGoalsTypes.getFirstActiveGoal(); //if(goal.minQuestDifficulty() >= StatisticsTracker.maxQuestDifficulty.value) // return goal; //return DeepGoalsTypes.NONE; }
public IDeepGoal register() { DeepGoalsTypes.register(this); return(this); }
private static void electGuildmaster(Master master) { foreach (Industry ind in Main.instance.player.builtItems) { ind.apprentices = 0; } DeepGoalsTypes.clearActiveGoal(); Main.instance.player.reset(); BigInteger renown = Main.instance.player.totalRenown; //Debug.Log(Main.instance.player.totalRenown + " | " + Main.instance.player.renown); Main.instance.player.skillPoints += renown / 10000; Main.instance.player.totalSkillPoints += renown / 10000; Main.instance.player.currentGuildmaster = master; Main.instance.player.totalRenown = 0; Main.instance.player.renown = 0; Main.instance.player.journeymen = 0; Main.instance.player.maxApprentices = 0; List <ItemStack> allRelics = new List <ItemStack>(); allRelics.AddRange(QuestManager.availableRelics); QuestManager.availableRelics.Clear(); allRelics.AddRange(Main.instance.player.unidentifiedRelics); Main.instance.player.unidentifiedRelics.Clear(); foreach (ItemStack stack in Main.instance.player.miscInventory) { if (stack.relicData != null) { allRelics.Add(stack); } } Main.instance.player.miscInventory.Clear(); List <ItemStack> specialItems = new List <ItemStack>(); specialItems.AddRange(allRelics.FindAll(x => x.isSpecial())); allRelics.RemoveAll(x => x.isSpecial()); allRelics.Sort((a, b) => { int besta = 0; int vala = a.antiquity * 10; foreach (RelicInfo ri in a.relicData) { besta = Math.Max(besta, ri.notoriety); vala += ri.notoriety; } int bestb = 0; int valb = b.antiquity * 10; foreach (RelicInfo ri in b.relicData) { bestb = Math.Max(bestb, ri.notoriety); valb += ri.notoriety; } besta += vala; bestb += valb; return(bestb.CompareTo(besta)); }); allRelics.RemoveRange(Math.Min(10, allRelics.Count - 1), allRelics.Count - Math.Min(10, allRelics.Count - 1)); allRelics.AddRange(specialItems); int best = 0; foreach (ItemStack stack in allRelics) { best = Math.Max(++stack.antiquity, best); if (stack.antiquity >= 50) { StatisticsTracker.impressiveAntiquity.setAchieved(); } if (stack.antiquity <= 0) { //Debug.Log("How the hell did this happen?"); //Debug.Log(stack.getDisplayName() + " has 0 antiquity."); ItemStack s = stack; List <string> strList = new List <string>(); if (s.enchants.Count > 0) { //strList.Add("Enchanted:"); foreach (string en in s.enchants.Select(x => x.name).Distinct()) { int num = s.enchants.Count(x => x.name == en); if (num > 1) { strList.Add(en + " (x" + num + ")"); } else { strList.Add(en); } } } string str = string.Join(", ", strList.ToArray()); strList.Clear(); strList.Add(s.antiquity + " Antiquity"); if (s.enchants.Count > 0) { strList.Add("Enchanted:"); strList.Add(" - " + str); } foreach (RelicInfo inf in s.relicData) { strList.Add(inf.heroName + "\n " + inf.questDescription + " (" + inf.notoriety + ")"); if (strList.Count > 3) { break; } } str = string.Join("\n", strList.ToArray()); //Debug.Log(str); } stack.isIDedByPlayer = false; if (stack.relicData.Any(x => x.relicName == "Lost")) { stack.relicData = null; QuestManager.makeRelic(stack, new Main.FirstRelics(), 1, "Unknown"); } else { stack.relicData = null; QuestManager.availableRelics.Add(QuestManager.makeRelic(stack, new AntiquityRelics(), 1, "Unknown")); } } StatisticsTracker.relicAntiquity.resetValue(); StatisticsTracker.relicAntiquity.setValue(best); ///Kongregate statistics reporting #if UNITY_WEBGL KongregateAPI.submitStat("relicAntiquity", best); KongregateAPI.submitStat("guildmastersElected", 1); #endif int pts = 15 + SkillList.GuildmasterRating.getMultiplier(); availableMasters[0] = Master.createRandomMaster(pts); availableMasters[1] = Master.createRandomMaster(pts); availableMasters[2] = Master.createRandomMaster(pts); GuiManager.instance.guildmasterArea.transform.Find("OwnedTxt").GetComponent <Text>().text = Main.instance.player.currentGuildmaster.getDisplay(); if (!StatisticsTracker.firstGuildmaster.isAchieved()) { StatisticsTracker.firstGuildmaster.setAchieved(); StatisticsTracker.maxQuestDifficulty.addValue(2); StatisticsTracker.minQuestDifficulty.addValue(1); } closeNewGuildmaster(); GuiManager.instance.guildArea.transform.Find("SkillPanel").Find("Skills").gameObject.SetActive(Main.instance.player.totalSkillPoints > 0); skillDisp.transform.parent.gameObject.SetActive(Main.instance.player.totalSkillPoints > 0); skillDisp.text = Main.AsCurrency(Main.instance.player.skillPoints); StatisticsTracker.guildmastersElected.addValue(1); closeNewGuildmaster(); }
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); }
public void GetObjectData(SerializationInfo info, StreamingContext context) { info.AddValue("SaveVersion", 24); info.AddValue("money", money.ToString()); info.AddValue("moneyFloor", moneyFloor.ToString()); //info.AddValue("lifetimeMoney", StatisticsTracker.lifetimeMoney.ToString()); info.AddValue("renown", renown.ToString()); info.AddValue("totalRenown", totalRenown.ToString()); info.AddValue("maxVendors", maxVendors); info.AddValue("currentVendors", currentVendors); info.AddValue("maxApprentices", maxApprentices); info.AddValue("journeymen", journeymen); info.AddValue("currentApprentices", currentApprentices); info.AddValue("totalQuestsCompleted", totalQuestsCompletedRenown); info.AddValue("questsCompleted", questsCompletedRenown); info.AddValue("skillPoints", skillPoints.ToString()); info.AddValue("totalSkillPoints", totalSkillPoints.ToString()); info.AddValue("resetLevel", resetLevel); info.AddValue("researchTime", researchTime); info.AddValue("miscInventorySize", miscInventory.Count); for (int i = 0; i < miscInventory.Count; i++) { info.AddValue("miscInventory_" + i, miscInventory[i], typeof(ItemStack)); } info.AddValue("unidentifiedRelicsSize", unidentifiedRelics.Count); for (int i = 0; i < unidentifiedRelics.Count; i++) { info.AddValue("unidentifiedRelics_" + i, unidentifiedRelics[i], typeof(ItemStack)); } info.AddValue("builtItemsSize", builtItems.Count); for (int i = 0; i < builtItems.Count; i++) { info.AddValue("buildItemID_" + i, builtItems[i].saveName); info.AddValue("builtItems_" + i, builtItems[i], typeof(Industry)); } FieldInfo[] fields = typeof(Industries).GetFields(); info.AddValue("allIndustries", fields.Length); for (int i = 0; i < fields.Length; i++) { FieldInfo field = fields[i]; Industry item = (Industry)field.GetValue(null); info.AddValue("allIndustriesID_" + i, item.saveName); info.AddValue("allIndustriesX_" + i, item.getGridPos().x); info.AddValue("allIndustriesY_" + i, item.getGridPos().y); info.AddValue("allIndustriesAB_" + i, item.doAutobuild); info.AddValue("allIndustriesABLvl_" + i, item.autoBuildLevel); info.AddValue("allIndustriesABMag_" + i, item.autoBuildMagnitude); info.AddValue("allIndustriesABVend_" + i, item.startingVendors); } //Debug.Log("Saving " + QuestManager.activeQuests.Count + " active quests"); info.AddValue("activeQuestsSize", QuestManager.activeQuests.Count); for (int i = 0; i < QuestManager.activeQuests.Count; i++) { info.AddValue("activeQuests_" + i, QuestManager.activeQuests[i], typeof(Quest)); } //Debug.Log("Saving " + QuestManager.availableQuests.Count + " available quests"); info.AddValue("availableQuestsSize", QuestManager.availableQuests.Count); for (int i = 0; i < QuestManager.availableQuests.Count; i++) { info.AddValue("availableQuests_" + i, QuestManager.availableQuests[i], typeof(Quest)); } info.AddValue("availableRelicsSize", QuestManager.availableRelics.Count); for (int i = 0; i < QuestManager.availableRelics.Count; i++) { info.AddValue("availableRelics_" + i, QuestManager.availableRelics[i], typeof(ItemStack)); } info.AddValue("questTypeCompletion", questTypeCompletion, typeof(Dictionary <string, long>)); info.AddValue("newQuestTimer", QuestManager.getNewQuestTimer()); info.AddValue("questEquipTimer", QuestManager.getEquipTimer()); GuildManager.writeSaveData(ref info, ref context); StatisticsTracker.serializeAllStats(ref info, ref context); info.AddValue("currentGuildmaster", currentGuildmaster, typeof(Master)); DeepGoalsTypes.serialize(ref info, ref context); info.AddValue("ResearchManager.lastViewDate", ResearchManager.lastViewDate.ToLongTimeString()); TutorialManager.serialize(ref info, ref context); }