From e2835e43598cefcc2117831cfe4153ce461fcafa Mon Sep 17 00:00:00 2001 From: kittyegg Date: Thu, 21 May 2026 08:52:19 +0300 Subject: [PATCH] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=B8?= =?UTF-8?q?=D0=BB=20=D0=BE=D0=B1=D0=BD=D0=BE=D0=B2=D0=BB=D0=B5=D0=BD=D0=B8?= =?UTF-8?q?=D0=B5=20=D1=86=D0=B5=D0=BD=D1=8B=20=D0=BF=D1=80=D0=BE=D0=BA?= =?UTF-8?q?=D0=B0=D1=87=D0=BA=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Assets/Scripts/Turret.cs | 2 +- Assets/Scripts/TurretUpdater.cs | 8 ++++++++ Assets/Scripts/UI/TurretUpgradeViewer.cs | 8 ++++++++ 3 files changed, 17 insertions(+), 1 deletion(-) diff --git a/Assets/Scripts/Turret.cs b/Assets/Scripts/Turret.cs index 64bf8bc..4095cb0 100644 --- a/Assets/Scripts/Turret.cs +++ b/Assets/Scripts/Turret.cs @@ -25,7 +25,7 @@ public class Turret : MonoBehaviour public float Damage => _damage; public float Distance => _distance; public int SellPrice => Mathf.RoundToInt(_price * _sellingMultiplier); - public int UpgradeCost => Mathf.RoundToInt(_price * _upgradeCostMultiplier); + public int UpgradeCost => Mathf.CeilToInt(_price * _upgradeCostMultiplier); private void Start() { diff --git a/Assets/Scripts/TurretUpdater.cs b/Assets/Scripts/TurretUpdater.cs index 9763b83..9d00833 100644 --- a/Assets/Scripts/TurretUpdater.cs +++ b/Assets/Scripts/TurretUpdater.cs @@ -10,6 +10,7 @@ public class TurretUpdater : MonoBehaviour [SerializeField] private Button _sellButton; [SerializeField] private Button _upgradeButton; [SerializeField] private UnityEvent _onTurretClicked; + [SerializeField] private UnityEvent _onTurretUpgraded; public event UnityAction OnTurretClicked { @@ -17,6 +18,12 @@ public class TurretUpdater : MonoBehaviour remove => _onTurretClicked.RemoveListener(value); } + public event UnityAction OnTurretUpgraded + { + add => _onTurretUpgraded.AddListener(value); + remove => _onTurretUpgraded.RemoveListener(value); + } + private Turret _clickedTurret; private bool _isDestroyingTurret; @@ -81,6 +88,7 @@ public class TurretUpdater : MonoBehaviour _wallet.TakeMoney(ClickedTurret.UpgradeCost); ClickedTurret.Upgrade(); + _onTurretUpgraded?.Invoke(ClickedTurret); } private void SellTurret() diff --git a/Assets/Scripts/UI/TurretUpgradeViewer.cs b/Assets/Scripts/UI/TurretUpgradeViewer.cs index e2ecb8a..535a19d 100644 --- a/Assets/Scripts/UI/TurretUpgradeViewer.cs +++ b/Assets/Scripts/UI/TurretUpgradeViewer.cs @@ -1,5 +1,6 @@ using UnityEngine; using UnityEngine.UI; +using static UnityEngine.GraphicsBuffer; public class TurretUpgradeViewer : MonoBehaviour { @@ -15,12 +16,14 @@ public class TurretUpgradeViewer : MonoBehaviour { _wallet.OnMoneyChanged += OnMoneyChanged; _turretUpdater.OnTurretClicked += OnTurretClicked; + _turretUpdater.OnTurretUpgraded += UpdateBtn; } private void OnDisable() { _wallet.OnMoneyChanged -= OnMoneyChanged; _turretUpdater.OnTurretClicked -= OnTurretClicked; + _turretUpdater.OnTurretUpgraded -= UpdateBtn; } private void OnMoneyChanged(int newMoney) @@ -37,6 +40,11 @@ public class TurretUpgradeViewer : MonoBehaviour } _viewerHolder.gameObject.SetActive(true); + UpdateBtn(turret); + } + + private void UpdateBtn(Turret turret) + { _upgradeCost = turret.UpgradeCost; _upgradeCostText.text = _upgradeCost.ToString(); _upgradeButton.interactable = _wallet.Money >= _upgradeCost;