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