private void SkillUpgradeSlotClicked(SkillUpgradeSlot slot) { var status = DarkestDungeonManager.Campaign.Estate.GetUpgradeStatus(slot.Tree.Id, slot.Hero, slot.Upgrade); if (status == UpgradeStatus.Available) { bool isFree = false; for (int i = 0; i < slot.Tree.Tags.Count; i++) { if (DarkestDungeonManager.Campaign.EventModifiers.HasFreeUpgrade(slot.Tree.Tags[i])) { isFree = true; DarkestDungeonManager.Campaign.EventModifiers.RemoveUpgradeTag(slot.Tree.Tags[i]); break; } } float discount = 1 - DarkestDungeonManager.Campaign.Estate.Guild.Discount; if (DarkestDungeonManager.Campaign.Estate.BuyUpgrade(slot.Tree.Id, slot.Hero, slot.Upgrade, discount, isFree)) { EstateSceneManager.Instanse.CurrencyPanel.CurrencyDecreased("gold"); EstateSceneManager.Instanse.CurrencyPanel.UpdateCurrency(); DarkestDungeonManager.Campaign.Estate.ReskillCombatHero(slot.Hero); UpdateHeroOverview(); } } else if (status == UpgradeStatus.Locked) { DarkestSoundManager.PlayOneShot("event:/ui/town/button_click_locked"); } }
private void SetUpgradeSlotAvailable(SkillUpgradeSlot slot, float discount) { slot.Background.gameObject.SetActive(false); slot.Icon.sprite = availableUpgradeIcon; slot.CostFrame.gameObject.SetActive(true); bool isFree = false; for (int i = 0; i < slot.Tree.Tags.Count; i++) { if (DarkestDungeonManager.Campaign.EventModifiers.HasFreeUpgrade(slot.Tree.Tags[i])) { isFree = true; } } if (isFree || DarkestDungeonManager.Campaign.Estate.CanPayPrice(slot.Upgrade.Cost[0], discount)) { slot.CostFrame.HeirloomOneAmount.color = Color.white; } else { slot.CostFrame.HeirloomOneAmount.color = Color.red; } if (isFree) { slot.CostFrame.HeirloomOneAmount.text = "0"; } else { slot.CostFrame.HeirloomOneAmount.text = Mathf.RoundToInt(slot.Upgrade.Cost[0].Amount * discount).ToString(); } }
public void UpdateUpgradeSlot(UpgradeStatus status, SkillUpgradeSlot slot, float discount = 1) { switch (status) { case UpgradeStatus.Available: SetUpgradeSlotAvailable(slot, discount); break; case UpgradeStatus.Locked: SetUpgradeSlotLocked(slot); break; case UpgradeStatus.Purchased: SetUpgradeSlotPurchased(slot); break; } }
private void SetUpgradeSlotLocked(SkillUpgradeSlot slot) { slot.Background.gameObject.SetActive(false); slot.Icon.sprite = lockedUpgradeIcon; slot.CostFrame.gameObject.SetActive(false); }
public void SetUpgradeSlotLocked(SkillUpgradeSlot slot) { slot.background.gameObject.SetActive(false); slot.icon.sprite = lockedUpgradeIcon; slot.costFrame.gameObject.SetActive(false); }