mirror of
https://github.com/ryzij/Cube-Tower-Defense.git
synced 2026-07-14 01:56:57 +00:00
Исправил обновление цены прокачки
This commit is contained in:
@@ -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()
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -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()
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
Reference in New Issue
Block a user