diff --git a/Assets/Scenes/DEVSCENES/EnemyTest.tscn b/Assets/Scenes/DEVSCENES/EnemyTest.tscn index cf16a07..d15c366 100644 --- a/Assets/Scenes/DEVSCENES/EnemyTest.tscn +++ b/Assets/Scenes/DEVSCENES/EnemyTest.tscn @@ -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="."] diff --git a/Assets/Scenes/DEVSCENES/IQEnemy.cs b/Assets/Scenes/DEVSCENES/IQEnemy.cs index 2f2bdee..14d2cf6 100644 --- a/Assets/Scenes/DEVSCENES/IQEnemy.cs +++ b/Assets/Scenes/DEVSCENES/IQEnemy.cs @@ -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 } diff --git a/Assets/Scenes/DEVSCENES/IQEnemy.tscn b/Assets/Scenes/DEVSCENES/IQEnemy.tscn index b2b79fe..7e11358 100644 --- a/Assets/Scenes/DEVSCENES/IQEnemy.tscn +++ b/Assets/Scenes/DEVSCENES/IQEnemy.tscn @@ -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") diff --git a/Assets/Scenes/Persistant/Player.tscn b/Assets/Scenes/Persistant/Player.tscn index 0f641bd..01c9161 100644 --- a/Assets/Scenes/Persistant/Player.tscn +++ b/Assets/Scenes/Persistant/Player.tscn @@ -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="."]