optimized enemy code

This commit is contained in:
=
2026-01-27 09:58:47 -07:00
parent 4ca341f416
commit 47a1e88b5f
4 changed files with 43 additions and 6 deletions

View File

@@ -228,7 +228,7 @@ _data = {
[node name="Level1" type="Node2D"]
[node name="PlayArea" type="TileMapLayer" parent="."]
tile_map_data = PackedByteArray("AAD//wAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAACAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAHAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAJAAAAAAAAAAEAAAAKAAAAAAAAAAEAAAD//wEAAAAAAAEAAAAAAAEAAAAAAAEAAAABAAEAAAAAAAEAAAACAAEAAAAAAAEAAAADAAEAAAAAAAEAAAAEAAEAAAAAAAEAAAAFAAEAAAAAAAEAAAAGAAEAAAAAAAEAAAAHAAEAAAAAAAEAAAAIAAEAAAAAAAEAAAAJAAEAAAAAAAEAAAAKAAEAAAAAAAEAAAALAAEAAAAAAAAAAAAMAAEAAAAAAAAAAAANAAEAAAAAAAAAAAAOAAEAAAAAAAAAAAAPAAEAAAAAAAAAAAAQAAEAAAAAAAAAAAARAAEAAAAAAAAAAAASAAEAAAAAAAEAAAASAAAAAAAAAAEAAAATAAAAAAAAAAEAAAAUAAAAAAAAAAAAAAAUAAEAAAAAAAEAAAATAAEAAAAAAAEAAAASAP//AAAAAAEAAAASAP7/AAAAAAEAAAASAP3/AAAAAAEAAAASAPz/AAAAAAEAAAATAPz/AAAAAAEAAAATAP3/AAAAAAEAAAATAP7/AAAAAAEAAAATAP//AAAAAAEAAAASAPv/AAAAAAAAAAATAPv/AAAAAAAAAAAKAP//AAAAAAAAAAAJAP//AAAAAAAAAAD+/wEAAAAAAAEAAAD+/wAAAAAAAAEAAAD+////AAAAAAEAAAD+//7/AAAAAAEAAAD+//3/AAAAAAEAAAD+//z/AAAAAAEAAAD9//z/AAAAAAEAAAD9//v/AAAAAAAAAAD+//v/AAAAAAAAAAD9//3/AAAAAAEAAAD9//7/AAAAAAEAAAD9////AAAAAAEAAAD9/wAAAAAAAAEAAAD9/wEAAAAAAAEAAAAHAPz/AAAAAAAAAAAGAPz/AAAAAAAAAAAMAPz/AAAAAAAAAAADAPv/AAAAAAAAAAACAPv/AAAAAAAAAAANAPz/AAAAAAAAAAAOAPz/AAAAAAAAAAA=")
tile_map_data = PackedByteArray("AAD//wAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAACAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAHAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAJAAAAAAAAAAEAAAAKAAAAAAAAAAEAAAD//wEAAAAAAAEAAAAAAAEAAAAAAAEAAAABAAEAAAAAAAEAAAACAAEAAAAAAAEAAAADAAEAAAAAAAEAAAAEAAEAAAAAAAEAAAAFAAEAAAAAAAEAAAAGAAEAAAAAAAEAAAAHAAEAAAAAAAEAAAAIAAEAAAAAAAEAAAAJAAEAAAAAAAEAAAAKAAEAAAAAAAEAAAALAAEAAAAAAAAAAAAMAAEAAAAAAAAAAAANAAEAAAAAAAAAAAAOAAEAAAAAAAAAAAAPAAEAAAAAAAAAAAAQAAEAAAAAAAAAAAARAAEAAAAAAAAAAAASAAEAAAAAAAEAAAASAAAAAAAAAAEAAAATAAAAAAAAAAEAAAAUAAAAAAAAAAAAAAAUAAEAAAAAAAEAAAATAAEAAAAAAAEAAAASAP//AAAAAAEAAAASAP7/AAAAAAEAAAASAP3/AAAAAAEAAAASAPz/AAAAAAEAAAATAPz/AAAAAAEAAAATAP3/AAAAAAEAAAATAP7/AAAAAAEAAAATAP//AAAAAAEAAAASAPv/AAAAAAAAAAATAPv/AAAAAAAAAAAKAP//AAAAAAAAAAAJAP//AAAAAAAAAAD+/wEAAAAAAAEAAAD+/wAAAAAAAAEAAAD+////AAAAAAEAAAD+//7/AAAAAAEAAAD+//3/AAAAAAEAAAD+//z/AAAAAAEAAAD9//z/AAAAAAEAAAD9//v/AAAAAAAAAAD+//v/AAAAAAAAAAD9//3/AAAAAAEAAAD9//7/AAAAAAEAAAD9////AAAAAAEAAAD9/wAAAAAAAAEAAAD9/wEAAAAAAAEAAAAMAPz/AAAAAAAAAAADAPv/AAAAAAAAAAACAPv/AAAAAAAAAAANAPz/AAAAAAAAAAAOAPz/AAAAAAAAAAAGAP3/AAAAAAAAAAAHAP3/AAAAAAAAAAA=")
tile_set = SubResource("TileSet_q0ben")
[node name="Background" type="TileMapLayer" parent="."]
@@ -243,6 +243,13 @@ tile_set = SubResource("TileSet_q0ben")
position = Vector2(208, -7)
metadata/IQ = 40
[node name="IQEnemy2" parent="Enemies" instance=ExtResource("8_s63xy")]
position = Vector2(90, -19)
[node name="IQEnemy3" parent="Enemies" instance=ExtResource("8_s63xy")]
position = Vector2(115, -83)
metadata/IQ = 30
[node name="StaticThreats" type="Node" parent="."]
[node name="TextInteractables" type="Node" parent="."]

View File

@@ -100,16 +100,21 @@ public partial class IQEnemy : CharacterBody2D
// Add gravity.
if (GroundDetected == false){Velocity = new Vector2(Velocity[0],Velocity[1] + 10);}
#region 20IQ
if (IQ >= 0 && IQ <= 20){ // Goomba ahh diddy blud
if (GroundDetected && LedgeDetected == false){Flip();}
if (WallDetected){Flip();}
if (GroundDetected && LedgeDetected == false){Flip();} // Flip when presented with a ledge
if (WallDetected){Flip();} // Flip when comeing in contact with a wall
if (GroundDetected){Velocity = new Vector2(WalkSpeed * VAH.Scale[0], Velocity[1]);} // Walk
}
#endregion
#region 30IQ
if (IQ > 20 && IQ <= 30){ // Goomba w/ hopps (no judy)
Velocity = new Vector2(WalkSpeed * VAH.Scale[0], Velocity[1]); // Walk
if (WallDetected && GroundDetected && Velocity[1] == 0){Velocity = new Vector2(Velocity[0], JumpHeight);} // Jump
if (WallDetected && GroundDetected && Velocity[1] > 0){Flip();} // Wall too high
}
#endregion
#region 40IQ
if (IQ > 30 && IQ <= 40){ // Adds jumping when reaching edge as feature (also adding directional x force)
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
@@ -118,6 +123,27 @@ public partial class IQEnemy : CharacterBody2D
if (GroundDetected && LedgeDetected == false && Velocity[1] == 0){Velocity = new Vector2(Velocity[0], JumpHeight);} // Jump at ledge
if (WallDetected && GroundDetected && Velocity[1] > 0){Flip();} // Wall too high
}
#endregion
#region 60IQ
if (IQ > 40 && IQ <= 60){ // Concious of what side of the enemy the player is on
}
#endregion
#region 80IQ
if (IQ > 60 && IQ <= 80){ // Maintan distance to avoid melee attacks and optimise ranged attacks
}
#endregion
#region 1000IQ
if (IQ > 80 && IQ <= 100){ // Basic Pathfinding
}
#endregion
#region 120IQ
if (IQ > 100 && IQ <= 120){ // Advanced Pathfindinhg
}
#endregion
#region 140IQ
if (IQ > 120 && IQ <= 140){ // Advanced movement options
}
#endregion
MoveAndSlide(); // Updates physics applied this frame
}

View File

@@ -4,6 +4,7 @@
[ext_resource type="Texture2D" uid="uid://c0pno0ac25r7i" path="res://Assets/Sprites/knight.png" id="2_o0b1e"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_41iyt"]
size = Vector2(14, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_a1e3t"]
atlas = ExtResource("2_o0b1e")
@@ -133,8 +134,10 @@ collision_mask = 3
script = ExtResource("1_p53ib")
metadata/IQ = 20
metadata/AbilityRegenerate = true
metadata/_edit_vertical_guides_ = [-36.0]
[node name="Hitbox" type="CollisionShape2D" parent="."]
position = Vector2(0, 2)
shape = SubResource("RectangleShape2D_41iyt")
[node name="VisualsAndHitboxes" type="Node2D" parent="."]
@@ -161,7 +164,7 @@ shape = SubResource("RectangleShape2D_bc7hl")
collision_layer = 0
[node name="CollisionShape2D" type="CollisionShape2D" parent="VisualsAndHitboxes/LedgeDetector"]
position = Vector2(12, 12)
position = Vector2(11, 13)
scale = Vector2(0.1, 0.1)
shape = SubResource("RectangleShape2D_bc7hl")
@@ -169,6 +172,6 @@ shape = SubResource("RectangleShape2D_bc7hl")
collision_layer = 0
[node name="CollisionShape2D" type="CollisionShape2D" parent="VisualsAndHitboxes/WallDetector"]
position = Vector2(12, 9.536743e-07)
position = Vector2(11, 9.536743e-07)
scale = Vector2(0.1, 0.1)
shape = SubResource("RectangleShape2D_bc7hl")

View File

@@ -130,7 +130,8 @@ animations = [{
size = Vector2(12, 28)
[node name="Player" type="CharacterBody2D"]
collision_layer = 2
collision_layer = 4
collision_mask = 3
script = ExtResource("1_b2ifw")
[node name="AreaDetector" type="Area2D" parent="."]