Пример #1
0
    private void UpdateGeneralFields(ShopDefinition shopDefinition, UnitySpellDefinition spellInfo)
    {
        titleText.text = spellInfo.name;
        image.sprite   = spellInfo.UISprite;

        if (spellInfo.rank + 1 < spellInfo.upgrades.Count)
        {
            buttonText.text = spellInfo.upgrades[spellInfo.rank + 1].costToUpgrade.ToString();
        }
        else
        {
            buttonText.text = "";
        }
    }
Пример #2
0
    public void UpdateUI(ShopDefinition shopDefinition)
    {
        this.cachedShopDefinition = shopDefinition;
        var spellInfo = InGameWrapper.instance.spellsWrapper.spellData.GetSpellDefinition(shopDefinition.type);

        UpdateGeneralFields(shopDefinition, spellInfo);

        if (spellInfo.rank == UnitySpellDefinition.Unranked)
        {
            ShowAsNewItem(shopDefinition, spellInfo);
        }
        else if (spellInfo.rank != spellInfo.GetMaxRank())
        {
            ShowAsUpdateItem(shopDefinition, spellInfo);
        }
        else
        {
            ShowAsFullyUpgradedItem(shopDefinition, spellInfo);
        }
    }
Пример #3
0
    private void ShowAsNewItem(ShopDefinition shopDefinition, UnitySpellDefinition spellInfo)
    {
        bool affordable = CanAfford(spellInfo.upgrades[UnitySpellDefinition.FirstRank].costToUpgrade);

        button.interactable = affordable;
        button.onClick.RemoveAllListeners();
        if (affordable)
        {
            SetupButtonBehavior(button, shopDefinition, spellInfo);
        }

        rankText.text = "UKNOWN SPELL";

        descriptionText.text = "";
        var thisRank = spellInfo.upgrades[UnitySpellDefinition.FirstRank];

        descriptionText.text += "Damage " + GetAsBlueText(thisRank.damage) + GetTapString();
        descriptionText.text += "Cooldown " + GetAsBlueText(thisRank.Cooldown) + System.Environment.NewLine;
        descriptionText.text += "PushBack " + GetAsBlueText(thisRank.pushBackMultiplier) + GetTapString();
        descriptionText.text += "CastTime " + GetAsBlueText(thisRank.CastTime) + System.Environment.NewLine;
        descriptionText.text += "Travel speed " + GetAsBlueText(thisRank.moveSpeed);
    }
Пример #4
0
    private void ShowAsUpdateItem(ShopDefinition shopDefinition, UnitySpellDefinition spellInfo)
    {
        bool affordable = CanAfford(spellInfo.upgrades[spellInfo.rank + 1].costToUpgrade);

        button.interactable = affordable;
        button.onClick.RemoveAllListeners();
        if (affordable)
        {
            SetupButtonBehavior(button, shopDefinition, spellInfo);
        }

        rankText.text = "RANK " + (spellInfo.rank + 1);

        descriptionText.text = "";
        var thisRank     = spellInfo.upgrades[spellInfo.rank];
        var upgradedRank = spellInfo.upgrades[spellInfo.rank + 1];

        if (!FloatEqual(thisRank.damage, upgradedRank.damage))
        {
            descriptionText.text += "Damage increased from " + thisRank.damage + " to " + GetAsBlueText(upgradedRank.damage) + System.Environment.NewLine;
        }
        if (!FloatEqual(thisRank.pushBackMultiplier, upgradedRank.pushBackMultiplier))
        {
            descriptionText.text += "Pushback increased from " + thisRank.pushBackMultiplier + " to " + GetAsBlueText(upgradedRank.pushBackMultiplier) + System.Environment.NewLine;
        }
        if (!FloatEqual(thisRank.Cooldown, upgradedRank.Cooldown))
        {
            descriptionText.text += "Cooldown decreased from " + thisRank.Cooldown + " to " + GetAsBlueText(upgradedRank.Cooldown) + System.Environment.NewLine;
        }
        if (FloatEqual(thisRank.moveSpeed, upgradedRank.moveSpeed))
        {
            descriptionText.text += "Travel speed increased from " + thisRank.moveSpeed + " to " + GetAsBlueText(upgradedRank.moveSpeed) + System.Environment.NewLine;
        }
        if (FloatEqual(thisRank.CastTime, upgradedRank.CastTime))
        {
            descriptionText.text += "Cast Time decreased from " + thisRank.CastTime + " to " + GetAsBlueText(upgradedRank.CastTime) + System.Environment.NewLine;
        }
    }
Пример #5
0
 private void ShowAsFullyUpgradedItem(ShopDefinition shopDefinition, UnitySpellDefinition spellInfo)
 {
     button.interactable  = false;
     rankText.text        = "MAX RANK";
     descriptionText.text = "Fully upgraded";
 }
Пример #6
0
 private void SetupButtonBehavior(Button button, ShopDefinition shopDefinition, UnitySpellDefinition spellInfo)
 {
     button.onClick.AddListener(delegate { UpgradeSpell(spellInfo); });
 }