public static void AddHover(this Image img, OnHoverDelegate callback, bool redrawOnUpdate) { Button b = img.GetComponent <Button>(); if (b == null) { b = img.gameObject.AddComponent <Button>(); ColorBlock cb = b.colors; cb.pressedColor = Color.white; } b.AddHover(callback, redrawOnUpdate); }
public static void OneTimeSetup() { Transform trans = GuiManager.instance.researchArea.transform; relicList = trans.Find("RelicsList").GetChild(0).GetChild(0); relicList.transform.hierarchyCapacity = 200 * 20; progressBarMat = trans.Find("Research").Find("RelicProgress").GetComponent <Image>().material; trans.Find("Research").Find("Barbg").GetComponent <Button>().onClick.AddListener(delegate { IncrementResearch(); }); timeLeftTxt = trans.Find("Research").Find("TimeLeft").GetComponent <Text>(); relicsLeftTxt = trans.Find("Research").Find("NumUnidentified").GetComponent <Text>(); relicInfo = trans.Find("RelicInfoOpen").GetChild(0); relicInfo.Find("CloseBtn").GetComponent <Button>().onClick.AddListener(delegate { CloseInfo(); }); Button btn = relicInfo.Find("SellBtn").GetComponent <Button>(); btn.onClick.AddListener(delegate { SellItem(); }); btn.AddHover(delegate(Vector3 p) { if (examinedStack != null) { BigInteger val = BigRational.ToBigInt(ItemStack.GetRelicValue(examinedStack)); GuiManager.ShowTooltip(btn.transform.position + Vector3.up * 30, "Sell for $" + Main.AsCurrency(val)); } }, false); Button btn2 = relicInfo.Find("DiscardBtn").GetComponent <Button>(); btn2.onClick.AddListener(delegate { DiscardItem(); }); btn2.AddHover(delegate(Vector3 p) { if (examinedStack != null) { GuiManager.ShowTooltip(btn2.transform.position + Vector3.up * 30, "Discard this artifact back to the unidentified pile.", 3); } }, false); moneyDisp = GuiManager.instance.researchHeader.transform.Find("MoneyArea").GetChild(0).GetComponent <Text>(); relicInfoText = relicInfo.Find("Info Scroll View").GetChild(0).GetChild(0).GetChild(0).GetComponent <Text>(); for (int r = 1; r <= 20; r++) { int rr = r; Image igm = relicInfo.transform.Find("Req" + r).GetComponent <Image>(); igm.AddHover(delegate(Vector3 p) { GuiManager.ShowTooltip(igm.transform.position + Vector3.up * 20, displayReqDetails(rr)); }, false); } }
public static void setupUI() { int i = 0; int X = Mathf.FloorToInt((((RectTransform)relicList).rect.width - 10) / 98); foreach (ItemStack stack in relicsList.Keys) { if (!Main.instance.player.miscInventory.Contains(stack) || !stack.isIDedByPlayer) { Main.Destroy(relicsList[stack]); } } i = 0; Main.instance.player.miscInventory.Sort((x, y) => x.addedToInvenTime.CompareTo(y.addedToInvenTime)); foreach (ItemStack stack in Main.instance.player.miscInventory) { //Debug.Log("i: " + i); //Debug.Log(stack.item.name); if (stack.relicData != null && stack.isIDedByPlayer) { if (stack.stackSize > 1) { stack.stackSize = 1; } //Debug.Log("Relic data"); GameObject go; relicsList.TryGetValue(stack, out go); if (go == null) { go = Main.Instantiate(PrefabManager.instance.INVEN_GUI_LISTITEM_SELLABALE, relicList) as GameObject; //go.transform.SetParent(relicList); if (relicsList.ContainsKey(stack)) { relicsList.Remove(stack); } relicsList.Add(stack, go); } go.transform.localPosition = new Vector3((i % X) * 98 + 5, ((i / X) * -125) - 5, 0); //Debug.Log(go.transform.parent.name + ":" + go.transform.localPosition); Text tx = go.transform.Find("Title").GetComponent <Text>(); tx.text = Main.ToTitleCase(stack.getDisplayName()); go.transform.Find("Img").GetComponent <Image>().sprite = SpriteLoader.getSpriteForResource("items/" + stack.item.name); //go.transform.FindChild("Quantity").GetComponent<Text>().text = ""; ItemStack s = stack; Button btn = go.GetComponent <Button>(); btn.AddHover(delegate(Vector3 p) { 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()); GuiManager.ShowTooltip(btn.transform.position + Vector3.down * 100, str); }, false); btn.onClick.AddListener(delegate { ShowInfo(s); }); int req_num = 1; long ty = (long)stack.getAllReqs(); bool abort = false; for (int r = 1; r <= 5; r++) { if (ty == 0) { abort = true; } while ((ty & 1) == 0 && ty > 0) { req_num++; ty = ty >> 1; if (ty == 0) { abort = true; } } if (abort) { go.transform.Find("Req" + r).gameObject.SetActive(false); } else { go.transform.Find("Req" + r).GetComponent <Image>().sprite = GuiManager.instance.req_icons[req_num - 1]; ty = ty >> 1; ty = ty << 1; } } i++; } } Main.instance.player.miscInventory.Sort((x, y) => y.getDisplayIndex().CompareTo(x.getDisplayIndex())); ((RectTransform)relicList).SetSizeWithCurrentAnchors(RectTransform.Axis.Vertical, ((i / X) * 100 + 10)); relicList.localPosition = Vector3.zero; relicsLeftTxt.text = Main.instance.player.unidentifiedRelics.Count + " unidentified"; }
public static void update() { renownDisp.text = Main.AsCurrency(Main.instance.player.renown) + RENOWN_SYMBOL; //₹ /*BigInteger spentRenown = Main.instance.player.totalRenown - Main.instance.player.renown; * BigInteger totalRenown = BigInteger.CubeRoot(Main.instance.player.lifetimeMoney); * totalRenown /= 10000; * BigInteger renown = totalRenown - spentRenown + Main.instance.player.questsCompleted;*/ BigInteger renown = Main.instance.getCachedNewRenown() + Main.instance.player.questsCompletedRenown; // + Main.instance.player.totalRenown - spentRenown; newRenownDisp.text = Main.AsCurrency(renown + Main.instance.player.renown) + RENOWN_SYMBOL; //𐍈☼ moneyDisp.text = "$" + Main.AsCurrency(Main.instance.player.money); numVend1.text = "" + Main.instance.player.maxVendors; numVend2.text = "" + (Main.instance.player.maxVendors - Main.instance.player.currentVendors); numApp1.text = "" + Main.instance.player.maxApprentices; numApp2.text = "" + (Main.instance.player.maxApprentices - Main.instance.player.currentApprentices); numJour1.text = "" + Main.instance.player.journeymen; buyVendTxt.text = "+1 ($" + Main.AsCurrency(getVendorCost()) + ")"; buyAppTxt.text = "+1 (" + Main.AsCurrency(getApprenticeCost()) + RENOWN_SYMBOL + ")"; buyJourTxt.text = "+1 (" + Main.AsCurrency(getJourneymenCost()) + RENOWN_SYMBOL + ")"; joureffTxt.text = (2 * Main.instance.player.journeymen) + " Items / " + Main.SecondsToTime(QuestManager.getEquipRate() / Main.instance.player.currentGuildmaster.journeymenRateMultiplier()); vendeffTxt.text = (Main.instance.player.GetVendorValue() * 100).ToDecimalString(0) + "%"; if (Main.instance.player.currentGuildmaster.apprenticeRateMultiplier() != 1) { float v = Main.instance.player.GetApprenticeClickAmount(); v *= Main.instance.player.GetApprenticeClickSpeedMultiplier(); appeffTxt.text = Main.instance.GetClickRate() + "sec / sec, (app: " + Mathf.Round(v * 100) / 100 + "sec)"; } else { appeffTxt.text = Main.instance.GetClickRate() + "sec / sec"; } BigInteger mon = Main.instance.player.money; BigInteger diff = BigInteger.Abs((lastMoney - mon)); if (!hasListChanged && diff >= (0.005 * (BigRational)mon)) { int j; bool b; for (j = 0, b = true; j < cashUpgradeList.Count && b; j++) { if (!cashUpgradeList[j].getIsPurchased()) { b = false; } } j--; if (!b) { BigInteger c = cashUpgradeList[j].cost; if ((c > lastMoney && c <= mon) || (c <= lastMoney && c > mon)) { hasListChanged = true; } } lastMoney = mon; } if (hasListChanged) { hasListChanged = false; int i = 0; List <Industry> haveHalfDoubleFor = new List <Industry>(); foreach (Upgrade item in cashUpgradeList) { if (!item.getIsPurchased() && (item.cost < Main.instance.player.money * 10 || i < 10)) { if (item.upgradListGui == null) { GameObject it = Main.Instantiate(PrefabManager.instance.UPGRADE_GUI_LISTITEM, cashList) as GameObject; item.upgradListGui = it; it.name = item.displayName; it.transform.Find("Title").GetComponent <Text>().text = Main.ToTitleCase(item.displayName); it.transform.Find("Cost").GetComponent <Text>().text = "$" + Main.AsCurrency(item.cost); it.transform.Find("Img").GetComponent <Image>().sprite = SpriteLoader.getSpriteForResource("items/" + item.getIconName()); Upgrade _item = item; Button btn = it.GetComponent <Button>(); btn.onClick.AddListener(delegate { buyUpgrade(_item); }); Upgrade up = item; btn.AddHover(delegate(Vector3 p) { GuiManager.ShowTooltip(btn.transform.position + Vector3.right * 90 + Vector3.down * 45, up.getTooltip(), 4f); }, false); } item.upgradListGui.name = item.displayName; item.upgradListGui.transform.localPosition = new Vector3(6, i * -100 - 5, 0); if (item.cost > Main.instance.player.money) { item.upgradListGui.GetComponent <Button>().interactable = false; //item.upgradListGui.GetComponent<Image>().color = Color.red; } else { item.upgradListGui.GetComponent <Button>().interactable = true; //item.upgradListGui.GetComponent<Image>().color = Color.white; } //Hide half-doubles until the industry is level 100 if (item is UpgradeHalveDouble) { UpgradeHalveDouble upgrade = (UpgradeHalveDouble)item; if (upgrade.affectedIndustry.level < 100 || haveHalfDoubleFor.Contains(upgrade.affectedIndustry)) { i--; Main.Destroy(item.upgradListGui); } haveHalfDoubleFor.Add(upgrade.affectedIndustry); } i++; } else { if (item.upgradListGui != null) { Main.Destroy(item.upgradListGui); } } } if (i == 0) { StatisticsTracker.allCashUpgrades.setAchieved(); } ((RectTransform)cashList).SetSizeWithCurrentAnchors(RectTransform.Axis.Vertical, (i * 100 + 10)); i = 0; foreach (Upgrade item in renownUpgradeList) { //Debug.Log(item.cost + " < " + (Main.instance.player.renown * 10) + " || " + i + " < 10"); if (!item.getIsPurchased() && (item.cost < Main.instance.player.renown * 10 || i < 10)) { if (item.upgradListGui == null) { GameObject it = Main.Instantiate(PrefabManager.instance.UPGRADE_GUI_LISTITEM, renownList) as GameObject; item.upgradListGui = it; it.name = item.displayName; it.transform.Find("Title").GetComponent <Text>().text = Main.ToTitleCase(item.displayName); it.transform.Find("Cost").GetComponent <Text>().text = Main.AsCurrency(item.cost) + RENOWN_SYMBOL; it.transform.Find("Img").GetComponent <Image>().sprite = SpriteLoader.getSpriteForResource("items/" + item.getIconName()); Upgrade _item = item; Button btn = it.GetComponent <Button>(); btn.onClick.AddListener(delegate { buyUpgradeRenown(_item); }); Upgrade up = item; btn.AddHover(delegate(Vector3 p) { GuiManager.ShowTooltip(btn.transform.position + Vector3.right * 90 + Vector3.down * 45, up.getTooltip(), 4f); }, false); } item.upgradListGui.name = item.displayName; item.upgradListGui.transform.localPosition = new Vector3(6, i * -100 - 5, 0); if (item.cost > Main.instance.player.renown) { item.upgradListGui.GetComponent <Button>().interactable = false; //item.upgradListGui.GetComponent<Image>().color = Color.red; } else { item.upgradListGui.GetComponent <Button>().interactable = true; //item.upgradListGui.GetComponent<Image>().color = Color.white; if (item.cost > Main.instance.player.renown / 4 * 3) { item.upgradListGui.GetComponent <Image>().color = ColorHelper.ORANGE; } else if (item.cost > Main.instance.player.renown / 4) { item.upgradListGui.GetComponent <Image>().color = Color.yellow; } else { item.upgradListGui.GetComponent <Image>().color = Color.white; } } i++; } else { if (item.upgradListGui != null) { Main.Destroy(item.upgradListGui); } } } if (i == 0) { StatisticsTracker.allRenownUpgrades.setAchieved(); } ((RectTransform)renownList).SetSizeWithCurrentAnchors(RectTransform.Axis.Vertical, (i * 100 + 10)); //listGui.localPosition = Vector3.zero; } }
public static void OneTimeSetup() { moneyDisp = GuiManager.instance.guildHeader.transform.Find("MoneyArea").GetChild(0).GetComponent <Text>(); renownDisp = GuiManager.instance.guildHeader.transform.Find("GuildRenownArea").GetChild(0).GetComponent <Text>(); Transform t = GuiManager.instance.guildHeader.transform.Find("RenownOnReset"); newRenownDisp = t.GetChild(0).GetComponent <Text>(); t.GetComponent <Button>().AddHover(delegate(Vector3 p) { /*BigInteger spentRenown = Main.instance.player.totalRenown - Main.instance.player.renown; * BigInteger totalRenown = BigInteger.CubeRoot(Main.instance.player.lifetimeMoney); * totalRenown /= 10000; * BigInteger renown = totalRenown - spentRenown;*/ BigInteger renown = Main.instance.getCachedNewRenown(); GuiManager.ShowTooltip(p, "Renown from cash earned: " + Main.AsCurrency(renown) + RENOWN_SYMBOL + "\nRenown from completed quests: " + Main.AsCurrency(Main.instance.player.questsCompletedRenown) + RENOWN_SYMBOL, 5f); }); skillDisp = GuiManager.instance.guildHeader.transform.Find("SkillPts").GetChild(0).GetComponent <Text>(); cashList = GuiManager.instance.guildArea.transform.Find("CashUpgrades").GetChild(0).GetChild(0); renownList = GuiManager.instance.guildArea.transform.Find("RenownUpgrades").GetChild(0).GetChild(0); Transform tr = GuiManager.instance.guildArea.transform.Find("PremiumOpenAera"); tr.gameObject.AddComponent <Button>().onClick.AddListener(delegate { HidePremium(); }); premiumList = tr.GetChild(0).GetChild(1).GetChild(0).GetChild(0); GuiManager.instance.guildArea.transform.Find("PremiumBtn").GetComponent <Button>().onClick.AddListener(delegate { ShowPremium(); }); buyVendTxt = GuiManager.instance.buyVendorsArea.transform.Find("BuyOne").GetChild(0).GetComponent <Text>(); buyAppTxt = GuiManager.instance.buyApprenticesArea.transform.Find("BuyOne").GetChild(0).GetComponent <Text>(); buyJourTxt = GuiManager.instance.buyJourneymenArea.transform.Find("BuyOne").GetChild(0).GetComponent <Text>(); numVend1 = GuiManager.instance.buyVendorsArea.transform.Find("OwnedTxt").GetComponent <Text>(); numVend2 = GuiManager.instance.buyVendorsArea.transform.Find("AvailableTxt").GetComponent <Text>(); numApp1 = GuiManager.instance.buyApprenticesArea.transform.Find("OwnedTxt").GetComponent <Text>(); numApp2 = GuiManager.instance.buyApprenticesArea.transform.Find("AvailableTxt").GetComponent <Text>(); numJour1 = GuiManager.instance.buyJourneymenArea.transform.Find("OwnedTxt").GetComponent <Text>(); //numJour2 = GuiManager.instance.buyJourneymenArea.transform.FindChild("AvailableTxt").GetComponent<Text>(); vendeffTxt = GuiManager.instance.buyVendorsArea.transform.Find("EffectivenessTxt").GetComponent <Text>(); //.text = Mathf.RoundToInt(Main.instance.player.GetVendorValue()*100) + "%"; appeffTxt = GuiManager.instance.buyApprenticesArea.transform.Find("EffectivenessTxt").GetComponent <Text>(); //.text = Main.instance.GetClickRate() + "sec / sec"; joureffTxt = GuiManager.instance.buyJourneymenArea.transform.Find("EffectivenessTxt").GetComponent <Text>(); //.text = Main.instance.GetClickRate() + "sec / sec"; int i = 0; List <Upgrade> upgrades = Upgrades.AllCashUps; cashList.transform.hierarchyCapacity = (upgrades.Count + 1) * 5 + 1350; foreach (Upgrade item in upgrades) { GameObject it = Main.Instantiate(PrefabManager.instance.UPGRADE_GUI_LISTITEM, cashList) as GameObject; item.upgradListGui = it; cashUpgradeList.Add(item); it.name = item.displayName; it.transform.localPosition = new Vector3(6, i * -100 - 5, 0); it.transform.Find("Title").GetComponent <Text>().text = Main.ToTitleCase(item.displayName); it.transform.Find("Cost").GetComponent <Text>().text = "$" + Main.AsCurrency(item.cost); it.transform.Find("Img").GetComponent <Image>().sprite = SpriteLoader.getSpriteForResource("items/" + item.getIconName()); Upgrade _item = item; Button btn = it.GetComponent <Button>(); btn.onClick.AddListener(delegate { buyUpgrade(_item); }); if (item.cost > Main.instance.player.money) { btn.interactable = false; } Upgrade up = item; btn.AddHover(delegate(Vector3 p) { GuiManager.ShowTooltip(btn.transform.position + Vector3.right * 90 + Vector3.down * 45, up.getTooltip(), 4f); }, false); i++; } ((RectTransform)cashList).SetSizeWithCurrentAnchors(RectTransform.Axis.Vertical, (i * 100 + 10)); cashList.localPosition = Vector3.zero; i = 0; upgrades = Upgrades.AllRenownUps; renownList.transform.hierarchyCapacity = (upgrades.Count + 1) * 5 + 1375; foreach (Upgrade item in upgrades) { GameObject it = Main.Instantiate(PrefabManager.instance.UPGRADE_GUI_LISTITEM, renownList) as GameObject; item.upgradListGui = it; renownUpgradeList.Add(item); it.name = item.displayName; it.transform.localPosition = new Vector3(6, i * -100 - 5, 0); it.transform.Find("Title").GetComponent <Text>().text = Main.ToTitleCase(item.displayName); it.transform.Find("Cost").GetComponent <Text>().text = Main.AsCurrency(item.cost) + RENOWN_SYMBOL; it.transform.Find("Img").GetComponent <Image>().sprite = SpriteLoader.getSpriteForResource("items/" + item.getIconName()); Upgrade _item = item; Button btn = it.GetComponent <Button>(); btn.onClick.AddListener(delegate { buyUpgradeRenown(_item); }); if (item.cost > Main.instance.player.renown) { btn.interactable = false; } Upgrade up = item; btn.AddHover(delegate(Vector3 p) { GuiManager.ShowTooltip(btn.transform.position + Vector3.right * 90 + Vector3.down * 45, up.getTooltip(), 4f); }, false); i++; } ((RectTransform)renownList).SetSizeWithCurrentAnchors(RectTransform.Axis.Vertical, (i * 100 + 10)); renownList.localPosition = Vector3.zero; lastMoney = Main.instance.player.money; Button btn2 = GuiManager.instance.guildmasterArea.transform.Find("BuyOne").GetComponent <Button>(); btn2.onClick.AddListener(delegate { if (Main.instance.player.totalRenown >= 100000) { NewGuildmaster(); } }); btn2.AddHover(delegate(Vector3 p) { if (Main.instance.player.totalRenown < 100000) { GuiManager.ShowTooltip(btn2.transform.position + Vector3.up * 60, "You need to have earned at least 100,000 renown to attract a new guildmaster.", 2.3f); } }); int pts = 15 + SkillList.GuildmasterRating.getMultiplier(); availableMasters[0] = Master.createRandomMaster(pts); availableMasters[1] = Master.createRandomMaster(pts); availableMasters[2] = Master.createRandomMaster(pts); for (int j = 1; j < availableMasters.Length + 1; j++) { Transform gmb = GuiManager.instance.resetGuildWindow.transform.GetChild(1).Find("Guildmaster" + j); int q = j - 1; gmb.GetComponent <Button>().onClick.AddListener(delegate { electGuildmaster(availableMasters[q]); }); } i = 0; IEnumerator <Skill> list = SkillList.getSkillList(); Transform skillListParent = GuiManager.instance.skillPanel.transform; while (list.MoveNext()) { Skill sk = list.Current; GameObject go = Main.Instantiate(PrefabManager.instance.SKILL_LISTITEM, skillListParent) as GameObject; sk.guiItem = go; go.transform.localPosition = new Vector3(5, i * -110 - 5, 5); ((RectTransform)go.transform).anchorMax = new Vector2(1, 1); ((RectTransform)go.transform).offsetMax = new Vector2(-3, ((RectTransform)go.transform).offsetMax.y); go.transform.Find("Name").GetComponent <Text>().text = Localization.translateToLocal(sk.name); go.transform.Find("Description").GetComponent <Text>().text = string.Format(Localization.translateToLocal(sk.description), sk.getMultiplierForDisplay()); go.transform.Find("Ranks").GetComponent <Text>().text = "" + sk.getRanks(); Transform t1 = go.transform.Find("BuyOne"); t1.GetComponent <Button>().onClick.AddListener(delegate { doBuySkill(sk); }); t1.GetChild(0).GetComponent <Text>().text = Main.AsCurrency(sk.getCost(1)) + " pts"; i++; } ((RectTransform)skillListParent).SetSizeWithCurrentAnchors(RectTransform.Axis.Vertical, (i * 110 + 10)); renownList.localPosition = Vector3.zero; GuiManager.instance.resetGuildWindow.transform.GetChild(1).Find("CloseBtn").GetComponent <Button>().onClick.AddListener(closeNewGuildmaster); GuiManager.instance.resetGuildWindow.transform.GetChild(1).Find("CurrentMaster").GetComponent <Button>().onClick.AddListener(closeNewGuildmaster); }