From 88ecd78c4e6309105732d1ab1a635ba3f9866dcd Mon Sep 17 00:00:00 2001 From: = Date: Tue, 27 Jan 2026 20:47:30 -0700 Subject: [PATCH] Enemy is consious of relative player location --- Assets/Scenes/DEVSCENES/EnemyTest.tscn | 4 +++- Assets/Scenes/DEVSCENES/IQEnemy.cs | 11 +++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/Assets/Scenes/DEVSCENES/EnemyTest.tscn b/Assets/Scenes/DEVSCENES/EnemyTest.tscn index d15c366..b0d5939 100644 --- a/Assets/Scenes/DEVSCENES/EnemyTest.tscn +++ b/Assets/Scenes/DEVSCENES/EnemyTest.tscn @@ -241,12 +241,14 @@ tile_set = SubResource("TileSet_q0ben") [node name="IQEnemy" parent="Enemies" instance=ExtResource("8_s63xy")] position = Vector2(208, -7) -metadata/IQ = 40 +metadata/IQ = 60 [node name="IQEnemy2" parent="Enemies" instance=ExtResource("8_s63xy")] +visible = false position = Vector2(90, -19) [node name="IQEnemy3" parent="Enemies" instance=ExtResource("8_s63xy")] +visible = false position = Vector2(115, -83) metadata/IQ = 30 diff --git a/Assets/Scenes/DEVSCENES/IQEnemy.cs b/Assets/Scenes/DEVSCENES/IQEnemy.cs index 14d2cf6..68d01ad 100644 --- a/Assets/Scenes/DEVSCENES/IQEnemy.cs +++ b/Assets/Scenes/DEVSCENES/IQEnemy.cs @@ -126,6 +126,17 @@ public partial class IQEnemy : CharacterBody2D #endregion #region 60IQ if (IQ > 40 && IQ <= 60){ // Concious of what side of the enemy the player is on + var CurrentLevel = GetTree().Root.GetChildren(); + float DistanceFromPlayerX = GlobalPosition[0] - CurrentLevel[2].GetNode("Player").GlobalPosition[0]; + if (DistanceFromPlayerX > (30.0f / (IQ / 4))){ if (VAH.Scale[0] > 0){Flip();}} // left of player + if (DistanceFromPlayerX < (-30.0f / (IQ / 4))){ if (VAH.Scale[0] < 0){Flip();}} // right of player + + if (DistanceFromPlayerX < (-30.0f / (IQ / 4)) && GroundDetected && GlobalPosition[0] > CurrentLevel[2].GetNode("Player").GlobalPosition[1]) {Velocity = new Vector2(Velocity[0], JumpHeight);} // Jump when player is overhead + if (GroundDetected){Velocity = new Vector2(WalkSpeed * VAH.Scale[0], Velocity[1]);} // Walk on ground + else{Velocity = new Vector2(WalkSpeed * VAH.Scale[0] * 2, Velocity[1]);} // Walk on air + if (WallDetected && GroundDetected && Velocity[1] == 0){Velocity = new Vector2(Velocity[0], JumpHeight);} // Jump + //if (GroundDetected && LedgeDetected == false && Velocity[1] == 0){Velocity = new Vector2(Velocity[0] * 50, JumpHeight);} // Jump at ledge + if (GroundDetected && LedgeDetected == false && Velocity[1] == 0){Velocity = new Vector2(Velocity[0], JumpHeight);} // Jump at ledge } #endregion #region 80IQ