Beispiel #1
0
    public virtual void Show(TowerAgent target)
    {
        if (target == null)
        {
            return;
        }
        myTower = target;
        AdjustPosition();
        this.gameObject.SetActive(true);

        int sellValue = myTower.GetSellLevel();


        if (upgradeButton != null)
        {
            upgradeButton.interactable =
                BattleField.instance.currency.CanAfford(myTower.GetCostForNextLevel());
            bool maxLevel = target.isAtMaxLevel;
            upgradeButton.gameObject.SetActive(!maxLevel);
            if (!maxLevel)
            {
                //Debug.Log(target.GetNextUpgradeAgents()[0].UpgradeDescription.ToUpper());
            }
        }
        XEventBus.Instance.Register(EventId.CurrencyChanged, OnCurrencyChanged);
    }
Beispiel #2
0
 public void OnCurrencyChanged(XEventArgs args)
 {
     if (myTower != null && upgradeButton != null)
     {
         upgradeButton.interactable =
             BattleField.instance.currency.CanAfford(myTower.GetCostForNextLevel());
     }
 }
Beispiel #3
0
        public void UpgradeSelectedTarget()
        {
            if (state != State.Normal)
            {
                throw new InvalidOperationException("Trying to upgrade whilst not in Normal state");
            }
            if (currentSelectedTarget == null)
            {
                throw new InvalidOperationException("Selected Target is null");
            }
            if (currentSelectedTarget.isAtMaxLevel)
            {
                return;
            }
            int  upgradeCost       = currentSelectedTarget.GetCostForNextLevel();
            bool successfulUpgrade = BattleField.instance.currency.TryPurchase(upgradeCost);

            if (successfulUpgrade)
            {
                currentSelectedTarget.UpgradeTarget();
            }

            DeselectTarget();
        }