Line of sight for enemy

This commit is contained in:
2024-09-04 17:49:40 -07:00
parent 3dffa12eb8
commit d24b28acd5
5 changed files with 32 additions and 3 deletions

View File

@@ -17,6 +17,8 @@ public interface IEnemy : ICharacterBody3D
public EnemyStatInfo EnemyStatInfo { get; set; }
public NavigationAgent3D NavAgent { get; set; }
public Area3D LineOfSight { get; set; }
}
[Meta(typeof(IAutoNode))]
@@ -43,6 +45,8 @@ public partial class Enemy : CharacterBody3D, IEnemy, IProvide<IEnemyLogic>
[Node] public NavigationAgent3D NavAgent { get; set; } = default!;
[Node] public Area3D LineOfSight { get; set; } = default!;
public void Setup()
{
EnemyLogic = new EnemyLogic();
@@ -55,6 +59,12 @@ public partial class Enemy : CharacterBody3D, IEnemy, IProvide<IEnemyLogic>
{
CurrentHP = new AutoProp<double>(EnemyStatInfo.MaximumHP);
CurrentHP.Sync += OnHPChanged;
LineOfSight.BodyEntered += LineOfSight_BodyEntered;
}
private void LineOfSight_BodyEntered(Node3D body)
{
EnemyLogic.Input(new EnemyLogic.Input.Alerted());
}
public void OnResolved()