Files
2026-02-01 14:06:04 +02:00

48 lines
1.4 KiB
C#

using Godot;
public partial class TurretUpgrader : Node
{
[Export] private Turret _turret;
[Export] private Area2D _clickArea;
[Export] private Control _ui;
[Export] private Label _costLabel;
[Export] private Label _damageLabel;
[Export] private Label _fireRateLabel;
public override void _Ready()
{
_clickArea.InputEvent += OnClickAreaInputEvent;
_clickArea.MouseEntered += MouseEntered;
_clickArea.MouseExited += MouseExited;
}
private void OnClickAreaInputEvent(Node viewport, InputEvent @event, long shapeIdx)
{
if (@event is not InputEventMouseButton m)
{
return;
}
if (m.ButtonIndex != MouseButton.Right) return;
if (!GameController.Instance.TryRemoveCurrency(_turret.UpgradeCost)) return;
_turret.Upgrade();
_costLabel.Text = _turret.UpgradeCost.ToString();
_damageLabel.Text = _turret.Damage.ToString();
_fireRateLabel.Text = _turret.FireRate.ToString();
}
private void MouseEntered()
{
if (_ui == null) return;
_ui.Visible = true;
_costLabel.Text = _turret.UpgradeCost.ToString();
_damageLabel.Text = _turret.Damage.ToString();
_fireRateLabel.Text = _turret.FireRate.ToString();
}
private void MouseExited()
{
if (_ui == null) return;
_ui.Visible = false;
}
}