basic targeting system

This commit is contained in:
2026-01-21 12:32:58 +01:00
parent fa029b9e53
commit 04121f18a4
8 changed files with 115 additions and 14 deletions

View File

@@ -4,16 +4,36 @@ using System;
public partial class PlayerUi : Control
{
private TextureRect[] _dashIcons = new TextureRect[3];
private TextureRect _enemyTarget;
public enum TargetState
{
NoTarget,
TargetTooFar,
TargetInRange,
}
public record TargetProperties(TargetState State, Vector2 Position);
public override void _Ready()
{
base._Ready();
_dashIcons[0] = GetNode<TextureRect>("%Dash1");
_dashIcons[1] = GetNode<TextureRect>("%Dash2");
_dashIcons[2] = GetNode<TextureRect>("%Dash3");
_enemyTarget = GetNode<TextureRect>("%EnemyTarget");
}
public void SetEnemyTargetProperties(TargetProperties targetProperties)
{
var (state, position) = targetProperties;
var visible = state != TargetState.NoTarget;
_enemyTarget.SetVisible(visible);
_enemyTarget.SetPosition(position);
}
public void SetNumberOfDashesLeft(int numberOfDashes)
{
int index = 1;