Esempio n. 1
0
    private void BuildingUpgradeSlotClicked(BuildingUpgradeSlot slot)
    {
        var status = DarkestDungeonManager.Campaign.Estate.GetUpgradeStatus(slot.Tree.Id, slot.UpgradeInfo);

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

            if (DarkestDungeonManager.Campaign.Estate.BuyUpgrade(slot.Tree.Id, slot.UpgradeInfo, isFree))
            {
                EstateSceneManager.Instanse.CurrencyPanel.UpdateCurrency();
                UpdateUpgradeTrees(true);
            }
        }
        else if (status == UpgradeStatus.Locked)
        {
            DarkestSoundManager.PlayOneShot("event:/ui/town/button_click_locked");
        }
    }
Esempio n. 2
0
    private void SetUpgradeSlotAvailable(BuildingUpgradeSlot slot)
    {
        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.UpgradeInfo.Cost[1]))
        {
            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 = slot.UpgradeInfo.Cost[1].Amount.ToString();
        }

        if (!(slot.CostFrame.HeirloomTwoIcon == null || slot.UpgradeInfo.Cost.Count < 3))
        {
            if (DarkestDungeonManager.Campaign.Estate.CanPayPrice(slot.UpgradeInfo.Cost[2]))
            {
                slot.CostFrame.HeirloomTwoAmount.color = Color.white;
            }
            else
            {
                slot.CostFrame.HeirloomTwoAmount.color = Color.red;
            }

            if (isFree)
            {
                slot.CostFrame.HeirloomTwoAmount.text = "0";
            }
            else
            {
                slot.CostFrame.HeirloomTwoAmount.text = slot.UpgradeInfo.Cost[2].Amount.ToString();
            }
        }
    }
Esempio n. 3
0
    public void UpdateUpgradeSlot(UpgradeStatus status, BuildingUpgradeSlot slot)
    {
        switch (status)
        {
        case UpgradeStatus.Available:
            SetUpgradeSlotAvailable(slot);
            break;

        case UpgradeStatus.Locked:
            SetUpgradeSlotLocked(slot);
            break;

        case UpgradeStatus.Purchased:
            SetUpgradeSlotPurchased(slot);
            break;
        }
    }
Esempio n. 4
0
 private void SetUpgradeSlotLocked(BuildingUpgradeSlot slot)
 {
     slot.Background.gameObject.SetActive(false);
     slot.Icon.sprite = lockedUpgradeIcon;
     slot.CostFrame.gameObject.SetActive(false);
 }
Esempio n. 5
0
 public void SetUpgradeSlotLocked(BuildingUpgradeSlot slot)
 {
     slot.background.gameObject.SetActive(false);
     slot.icon.sprite = lockedUpgradeIcon;
     slot.costFrame.gameObject.SetActive(false);
 }