47 lines
1.0 KiB
C#
47 lines
1.0 KiB
C#
using Godot;
|
|
using System;
|
|
|
|
public partial class PegAction : Node2D
|
|
{
|
|
public string _category;
|
|
public int _priority, _cost, _range, _usesMax, _usesRemaining, _triggers = 0;
|
|
public Sprite2D _image;
|
|
|
|
public override void _Ready()
|
|
{
|
|
base._Ready();
|
|
_image = GetNode<Sprite2D>("Image");
|
|
}
|
|
|
|
public virtual Tween CreateAnimation(Peg PEG)
|
|
{
|
|
return null;
|
|
}
|
|
|
|
public virtual void DoImmediately(Peg PEG)
|
|
{
|
|
|
|
}
|
|
|
|
public virtual bool MeetsCriteria(Peg PEG)
|
|
{
|
|
if (PEG.GetType().ToString() == "Spearman")
|
|
{
|
|
GD.Print(Name,": ",PEG._staminaRemaining >= _cost, "&&", _usesRemaining > 0, "&&", (PEG._address - Target(PEG)).Length() <= _range);
|
|
}
|
|
return PEG._staminaRemaining >= _cost
|
|
&& _usesRemaining > 0
|
|
&& (PEG._address - Target(PEG)).Length() <= _range;
|
|
}
|
|
|
|
public virtual void Reset()
|
|
{
|
|
_usesRemaining = _usesMax;
|
|
}
|
|
|
|
public virtual Vector2I Target(Peg PEG)
|
|
{
|
|
return PEG._address;
|
|
}
|
|
}
|