diff --git a/Scenes/Actors/ActorEnemyTest.tscn b/Scenes/Actors/ActorEnemyTest.tscn index ae6af5da..607c95c8 100644 --- a/Scenes/Actors/ActorEnemyTest.tscn +++ b/Scenes/Actors/ActorEnemyTest.tscn @@ -228,7 +228,7 @@ radius = 85.0529 [node name="ActorEnemyTest" type="CharacterBody2D"] collision_layer = 16 -collision_mask = 115 +collision_mask = 113 script = ExtResource("1_k5cyk") MovementSpeed = 30.0 diff --git a/Scenes/test.tscn b/Scenes/test.tscn index f9634845..253a6b99 100644 --- a/Scenes/test.tscn +++ b/Scenes/test.tscn @@ -517,7 +517,7 @@ text = "Briefing Test" label_settings = ExtResource("14_c4c20") [node name="ActorEnemyTest" parent="Computer4" instance=ExtResource("55_chha6")] -position = Vector2(100, 104) +position = Vector2(142, 51) [node name="Ammo1" parent="." instance=ExtResource("34_17pjh")] position = Vector2(-792, -396) diff --git a/Scripts/Components/Actors/EnemyNavigationMovement.cs b/Scripts/Components/Actors/EnemyNavigationMovement.cs index f45fc3be..db21562c 100644 --- a/Scripts/Components/Actors/EnemyNavigationMovement.cs +++ b/Scripts/Components/Actors/EnemyNavigationMovement.cs @@ -53,7 +53,7 @@ public partial class EnemyNavigationMovement : MovementHandler FacingDirection = Vector2.Down; _actorAi = parent.GetNode("ActorAi"); - _navigationAgent = GetNodeOrNull("NavigationAgent2D"); + _navigationAgent = _parent.GetNodeOrNull("NavigationAgent2D"); _alarmManager = this.GetAlarmManager(); if (_alarmManager != null) @@ -85,6 +85,7 @@ public partial class EnemyNavigationMovement : MovementHandler if (_playerDetection != null && _playerDetection.IsPlayerInSight(_parent.CollisionMask)) { _actorAi.State = EnemyState.Alert; + GD.Print("Switching to alert"); } break; case EnemyState.Alert: @@ -102,7 +103,7 @@ public partial class EnemyNavigationMovement : MovementHandler _navigationAgent.SetTargetPosition(_lastPlayerPosition.Value); } - var currentAgentPosition = GlobalPosition; + var currentAgentPosition = _parent.GlobalPosition; var nextPathPosition = _navigationAgent.GetNextPathPosition(); @@ -116,6 +117,7 @@ public partial class EnemyNavigationMovement : MovementHandler if (IsPlayerInSight) { //Shoot(); + } // TODO: If player totally left the max range it should stop shooting and go back to idle @@ -140,7 +142,9 @@ public partial class EnemyNavigationMovement : MovementHandler if (IsPlayerInSight) { //Shoot(); + } + } break; @@ -151,6 +155,9 @@ public partial class EnemyNavigationMovement : MovementHandler public void _on_navigation_agent_2d_velocity_computed(Vector2 safeVelocity) { _parent.Velocity = safeVelocity; + if (_parent.Velocity.Length() > 0) { + _parent.FacingDirection = _parent.Velocity.Normalized(); + } } diff --git a/Scripts/Enemy.cs b/Scripts/Enemy.cs index e0c576c7..ea12ce66 100644 --- a/Scripts/Enemy.cs +++ b/Scripts/Enemy.cs @@ -307,10 +307,6 @@ public partial class Enemy : CharacterBody2D GD.Print("Assuming direct control"); Ai = AiState.Controlled; } - - - - } public enum EnemyState