Исправил обновление цены прокачки

This commit is contained in:
2026-05-21 08:52:19 +03:00
parent 2f8f3a7d41
commit e2835e4359
3 changed files with 17 additions and 1 deletions
+1 -1
View File
@@ -25,7 +25,7 @@ public class Turret : MonoBehaviour
public float Damage => _damage; public float Damage => _damage;
public float Distance => _distance; public float Distance => _distance;
public int SellPrice => Mathf.RoundToInt(_price * _sellingMultiplier); public int SellPrice => Mathf.RoundToInt(_price * _sellingMultiplier);
public int UpgradeCost => Mathf.RoundToInt(_price * _upgradeCostMultiplier); public int UpgradeCost => Mathf.CeilToInt(_price * _upgradeCostMultiplier);
private void Start() private void Start()
{ {
+8
View File
@@ -10,6 +10,7 @@ public class TurretUpdater : MonoBehaviour
[SerializeField] private Button _sellButton; [SerializeField] private Button _sellButton;
[SerializeField] private Button _upgradeButton; [SerializeField] private Button _upgradeButton;
[SerializeField] private UnityEvent<Turret> _onTurretClicked; [SerializeField] private UnityEvent<Turret> _onTurretClicked;
[SerializeField] private UnityEvent<Turret> _onTurretUpgraded;
public event UnityAction<Turret> OnTurretClicked public event UnityAction<Turret> OnTurretClicked
{ {
@@ -17,6 +18,12 @@ public class TurretUpdater : MonoBehaviour
remove => _onTurretClicked.RemoveListener(value); remove => _onTurretClicked.RemoveListener(value);
} }
public event UnityAction<Turret> OnTurretUpgraded
{
add => _onTurretUpgraded.AddListener(value);
remove => _onTurretUpgraded.RemoveListener(value);
}
private Turret _clickedTurret; private Turret _clickedTurret;
private bool _isDestroyingTurret; private bool _isDestroyingTurret;
@@ -81,6 +88,7 @@ public class TurretUpdater : MonoBehaviour
_wallet.TakeMoney(ClickedTurret.UpgradeCost); _wallet.TakeMoney(ClickedTurret.UpgradeCost);
ClickedTurret.Upgrade(); ClickedTurret.Upgrade();
_onTurretUpgraded?.Invoke(ClickedTurret);
} }
private void SellTurret() private void SellTurret()
+8
View File
@@ -1,5 +1,6 @@
using UnityEngine; using UnityEngine;
using UnityEngine.UI; using UnityEngine.UI;
using static UnityEngine.GraphicsBuffer;
public class TurretUpgradeViewer : MonoBehaviour public class TurretUpgradeViewer : MonoBehaviour
{ {
@@ -15,12 +16,14 @@ public class TurretUpgradeViewer : MonoBehaviour
{ {
_wallet.OnMoneyChanged += OnMoneyChanged; _wallet.OnMoneyChanged += OnMoneyChanged;
_turretUpdater.OnTurretClicked += OnTurretClicked; _turretUpdater.OnTurretClicked += OnTurretClicked;
_turretUpdater.OnTurretUpgraded += UpdateBtn;
} }
private void OnDisable() private void OnDisable()
{ {
_wallet.OnMoneyChanged -= OnMoneyChanged; _wallet.OnMoneyChanged -= OnMoneyChanged;
_turretUpdater.OnTurretClicked -= OnTurretClicked; _turretUpdater.OnTurretClicked -= OnTurretClicked;
_turretUpdater.OnTurretUpgraded -= UpdateBtn;
} }
private void OnMoneyChanged(int newMoney) private void OnMoneyChanged(int newMoney)
@@ -37,6 +40,11 @@ public class TurretUpgradeViewer : MonoBehaviour
} }
_viewerHolder.gameObject.SetActive(true); _viewerHolder.gameObject.SetActive(true);
UpdateBtn(turret);
}
private void UpdateBtn(Turret turret)
{
_upgradeCost = turret.UpgradeCost; _upgradeCost = turret.UpgradeCost;
_upgradeCostText.text = _upgradeCost.ToString(); _upgradeCostText.text = _upgradeCost.ToString();
_upgradeButton.interactable = _wallet.Money >= _upgradeCost; _upgradeButton.interactable = _wallet.Money >= _upgradeCost;