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 SellSelectedTarget()
        {
            if (state != State.Normal)
            {
                throw new InvalidOperationException("Trying to sell tower whilst not in Normal state");
            }
            if (currentSelectedTarget == null)
            {
                throw new InvalidOperationException("Selected Target is null");
            }
            int sellValue = currentSelectedTarget.GetSellLevel();

            if (sellValue > 0)
            {
                XEventBus.Instance.Post(EventId.AddCurrency, new XEventArgs(sellValue));
                currentSelectedTarget.Sell();
            }
            DeselectTarget();
        }