52 lines
1.3 KiB
C#
52 lines
1.3 KiB
C#
using Godot;
|
|
using System;
|
|
|
|
public partial class Tower : Sprite2D
|
|
{
|
|
public bool _hovered, _aiming;
|
|
public Commander _commander;
|
|
public Area2D _area;
|
|
public override void _Ready()
|
|
{
|
|
base._Ready();
|
|
_area = GetNode<Area2D>("Area");
|
|
}
|
|
public override void _Process(double delta)
|
|
{
|
|
base._Process(delta);
|
|
if (_commander?._actions > 0)
|
|
{
|
|
if (Input.IsActionJustPressed("leftClick"))
|
|
{
|
|
if (_hovered)
|
|
{
|
|
_aiming = true;
|
|
_commander.LoadAttack();
|
|
}
|
|
}
|
|
if (_aiming)
|
|
{
|
|
if (Input.IsActionJustReleased("rightClick"))
|
|
{
|
|
Vector2 offset = (GlobalPosition - GetGlobalMousePosition()) * 500;
|
|
_commander.ShootCurrentAttack(offset);
|
|
_aiming = false;
|
|
}
|
|
else if (Input.IsActionJustReleased("leftClick"))
|
|
{
|
|
_commander.UnloadAttack();
|
|
_aiming = false;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
public void OnMouseEntered(){
|
|
_hovered = true;
|
|
}
|
|
public void OnMouseExited(){
|
|
_hovered = true;
|
|
}
|
|
|
|
}
|