From 1b314287525b3a5a6ee3b4b578ac5c886e717c3c Mon Sep 17 00:00:00 2001 From: Marco Date: Thu, 17 Apr 2025 17:42:24 +0200 Subject: [PATCH] Player detection for rooms --- Scenes/Maps/RogueliteMaps/Rg1.tscn | 15 ++++++++++++++- Scenes/Maps/RogueliteMaps/RgBig.tscn | 15 ++++++++++++++- Scenes/Maps/RogueliteMaps/RgBigLarge.tscn | 17 +++++++++++++++-- Scenes/Maps/RogueliteMaps/RgLarge.tscn | 15 ++++++++++++++- Scenes/Maps/RogueliteMaps/RgLong.tscn | 15 ++++++++++++++- Scenes/Maps/RogueliteMaps/RgLongx3.tscn | 15 ++++++++++++++- Scripts/Components/FSM/Enemy/Dead.cs | 2 ++ 7 files changed, 87 insertions(+), 7 deletions(-) diff --git a/Scenes/Maps/RogueliteMaps/Rg1.tscn b/Scenes/Maps/RogueliteMaps/Rg1.tscn index 7375a344..5b645fe7 100644 --- a/Scenes/Maps/RogueliteMaps/Rg1.tscn +++ b/Scenes/Maps/RogueliteMaps/Rg1.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=9 format=4 uid="uid://da7hmajaaiohm"] +[gd_scene load_steps=10 format=4 uid="uid://da7hmajaaiohm"] [ext_resource type="Script" uid="uid://b2j00riayxkit" path="res://Scripts/Controllers/RogueliteRoom.cs" id="1_dm6kf"] [ext_resource type="Resource" uid="uid://b5x83li01qrav" path="res://Resources/RogueliteMaps/TestRGMap.tres" id="2_5s4nm"] @@ -15,6 +15,9 @@ outlines = Array[PackedVector2Array]([PackedVector2Array(17, 36, 14, 12, 47, 15, parsed_collision_mask = 353 source_geometry_mode = 1 +[sub_resource type="RectangleShape2D" id="RectangleShape2D_rlq0q"] +size = Vector2(272, 85) + [node name="Map" type="Node2D"] process_mode = 1 script = ExtResource("1_dm6kf") @@ -80,3 +83,13 @@ Direction = 3 [node name="NavigationRegion2D" type="NavigationRegion2D" parent="."] navigation_polygon = SubResource("NavigationPolygon_rlq0q") + +[node name="PlayerEnterDetector" type="Area2D" parent="."] +collision_layer = 0 +collision_mask = 2 + +[node name="CollisionShape2D" type="CollisionShape2D" parent="PlayerEnterDetector"] +position = Vector2(162, 94.5) +shape = SubResource("RectangleShape2D_rlq0q") + +[connection signal="area_entered" from="PlayerEnterDetector" to="." method="OnRoomEntered"] diff --git a/Scenes/Maps/RogueliteMaps/RgBig.tscn b/Scenes/Maps/RogueliteMaps/RgBig.tscn index 695e7558..7fd42043 100644 --- a/Scenes/Maps/RogueliteMaps/RgBig.tscn +++ b/Scenes/Maps/RogueliteMaps/RgBig.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=10 format=4 uid="uid://dngwjgs5bhnx7"] +[gd_scene load_steps=11 format=4 uid="uid://dngwjgs5bhnx7"] [ext_resource type="Script" uid="uid://b2j00riayxkit" path="res://Scripts/Controllers/RogueliteRoom.cs" id="1_xsqjb"] [ext_resource type="Resource" uid="uid://bv0mr43vcfrdh" path="res://Resources/RogueliteMaps/BigMap.tres" id="2_xsqjb"] @@ -16,6 +16,9 @@ outlines = Array[PackedVector2Array]([PackedVector2Array(32, 42, 30, 31, 62, 27, parsed_collision_mask = 353 source_geometry_mode = 1 +[sub_resource type="RectangleShape2D" id="RectangleShape2D_cgxuy"] +size = Vector2(588, 243) + [node name="Map" type="Node2D"] process_mode = 1 script = ExtResource("1_xsqjb") @@ -125,3 +128,13 @@ position = Vector2(288, 184) [node name="BigTank4" parent="." instance=ExtResource("8_tyndx")] position = Vector2(352, 184) + +[node name="PlayerEnterDetector" type="Area2D" parent="."] +collision_layer = 0 +collision_mask = 2 + +[node name="CollisionShape2D" type="CollisionShape2D" parent="PlayerEnterDetector"] +position = Vector2(320, 173.5) +shape = SubResource("RectangleShape2D_cgxuy") + +[connection signal="area_entered" from="PlayerEnterDetector" to="." method="OnRoomEntered"] diff --git a/Scenes/Maps/RogueliteMaps/RgBigLarge.tscn b/Scenes/Maps/RogueliteMaps/RgBigLarge.tscn index fbae99f4..fb7021b7 100644 --- a/Scenes/Maps/RogueliteMaps/RgBigLarge.tscn +++ b/Scenes/Maps/RogueliteMaps/RgBigLarge.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=9 format=4 uid="uid://c3x64n451f3mk"] +[gd_scene load_steps=10 format=4 uid="uid://c3x64n451f3mk"] [ext_resource type="Script" uid="uid://b2j00riayxkit" path="res://Scripts/Controllers/RogueliteRoom.cs" id="1_u4oyu"] [ext_resource type="Resource" uid="uid://n6nb5yco60gi" path="res://Resources/RogueliteMaps/BigLarge.tres" id="2_u4oyu"] @@ -9,12 +9,15 @@ [ext_resource type="Script" uid="uid://ddry5kjj3fr6c" path="res://Scripts/Controllers/DoorMarker.cs" id="7_67kci"] [sub_resource type="NavigationPolygon" id="NavigationPolygon_rlq0q"] -vertices = PackedVector2Array(474, 58, 474, 10, 486, 10, 486, 58, 794, 58, 794, 10, 806, 10, 806, 58, 934, 58, 934, 134, 806, 134, 794, 134, 806, 150, 794, 150, 486, 134, 474, 134, 486, 150, 474, 150, 166, 58, 166, 134, 166, 150, 154, 150, 154, 134, 154, 58, 26, 134, 26, 58, 166, 10, 154, 10) +vertices = PackedVector2Array(474, 58, 474, 10, 486, 10, 486, 58, 794, 58, 794, 10, 806, 10, 806, 58, 934, 58, 934, 294, 806, 294, 794, 294, 806, 310, 794, 310, 486, 294, 474, 294, 486, 310, 474, 310, 166, 58, 166, 294, 166, 310, 154, 310, 154, 294, 154, 58, 26, 294, 26, 58, 166, 10, 154, 10) polygons = Array[PackedInt32Array]([PackedInt32Array(0, 1, 2, 3), PackedInt32Array(4, 5, 6, 7), PackedInt32Array(7, 8, 9, 10), PackedInt32Array(4, 7, 10, 11), PackedInt32Array(10, 12, 13, 11), PackedInt32Array(3, 4, 11, 14), PackedInt32Array(0, 3, 14, 15), PackedInt32Array(14, 16, 17, 15), PackedInt32Array(18, 0, 15, 19), PackedInt32Array(19, 20, 21, 22), PackedInt32Array(18, 19, 22, 23), PackedInt32Array(22, 24, 25, 23), PackedInt32Array(26, 18, 23, 27)]) outlines = Array[PackedVector2Array]([PackedVector2Array(17, 36, 14, 12, 47, 15, 49, 34)]) parsed_collision_mask = 353 source_geometry_mode = 1 +[sub_resource type="RectangleShape2D" id="RectangleShape2D_u4oyu"] +size = Vector2(915, 245) + [node name="Map" type="Node2D"] process_mode = 1 script = ExtResource("1_u4oyu") @@ -102,3 +105,13 @@ Direction = 3 [node name="NavigationRegion2D" type="NavigationRegion2D" parent="."] navigation_polygon = SubResource("NavigationPolygon_rlq0q") + +[node name="PlayerEnterDetector" type="Area2D" parent="."] +collision_layer = 0 +collision_mask = 2 + +[node name="CollisionShape2D" type="CollisionShape2D" parent="PlayerEnterDetector"] +position = Vector2(483.5, 174.5) +shape = SubResource("RectangleShape2D_u4oyu") + +[connection signal="area_entered" from="PlayerEnterDetector" to="." method="OnRoomEntered"] diff --git a/Scenes/Maps/RogueliteMaps/RgLarge.tscn b/Scenes/Maps/RogueliteMaps/RgLarge.tscn index a5ed56eb..a5f40d6a 100644 --- a/Scenes/Maps/RogueliteMaps/RgLarge.tscn +++ b/Scenes/Maps/RogueliteMaps/RgLarge.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=9 format=4 uid="uid://c36nvk7cw3emg"] +[gd_scene load_steps=10 format=4 uid="uid://c36nvk7cw3emg"] [ext_resource type="Script" uid="uid://b2j00riayxkit" path="res://Scripts/Controllers/RogueliteRoom.cs" id="1_5bd7y"] [ext_resource type="Resource" uid="uid://cjtcksew0qy6d" path="res://Resources/RogueliteMaps/TestRGMapLarge.tres" id="2_5bd7y"] @@ -15,6 +15,9 @@ outlines = Array[PackedVector2Array]([PackedVector2Array(17, 36, 14, 12, 47, 15, parsed_collision_mask = 353 source_geometry_mode = 1 +[sub_resource type="RectangleShape2D" id="RectangleShape2D_5bd7y"] +size = Vector2(909, 85) + [node name="Map" type="Node2D"] process_mode = 1 script = ExtResource("1_5bd7y") @@ -102,3 +105,13 @@ Direction = 3 [node name="NavigationRegion2D" type="NavigationRegion2D" parent="."] navigation_polygon = SubResource("NavigationPolygon_rlq0q") + +[node name="PlayerEnterDetector" type="Area2D" parent="."] +collision_layer = 0 +collision_mask = 2 + +[node name="CollisionShape2D" type="CollisionShape2D" parent="PlayerEnterDetector"] +position = Vector2(480.5, 94.5) +shape = SubResource("RectangleShape2D_5bd7y") + +[connection signal="area_entered" from="PlayerEnterDetector" to="." method="OnRoomEntered"] diff --git a/Scenes/Maps/RogueliteMaps/RgLong.tscn b/Scenes/Maps/RogueliteMaps/RgLong.tscn index a9d956fe..fd573f0c 100644 --- a/Scenes/Maps/RogueliteMaps/RgLong.tscn +++ b/Scenes/Maps/RogueliteMaps/RgLong.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=9 format=4 uid="uid://hmu4dw62c10t"] +[gd_scene load_steps=10 format=4 uid="uid://hmu4dw62c10t"] [ext_resource type="Script" uid="uid://b2j00riayxkit" path="res://Scripts/Controllers/RogueliteRoom.cs" id="1_4lag8"] [ext_resource type="Resource" uid="uid://ryfk7g1wqypk" path="res://Resources/RogueliteMaps/TestRGMapLong.tres" id="2_4lag8"] @@ -15,6 +15,9 @@ outlines = Array[PackedVector2Array]([PackedVector2Array(17, 36, 14, 12, 47, 15, parsed_collision_mask = 353 source_geometry_mode = 1 +[sub_resource type="RectangleShape2D" id="RectangleShape2D_4lag8"] +size = Vector2(272, 247) + [node name="Map" type="Node2D"] process_mode = 1 script = ExtResource("1_4lag8") @@ -93,3 +96,13 @@ WallIndex = 1 [node name="NavigationRegion2D" type="NavigationRegion2D" parent="."] navigation_polygon = SubResource("NavigationPolygon_rlq0q") use_edge_connections = false + +[node name="PlayerEnterDetector" type="Area2D" parent="."] +collision_layer = 0 +collision_mask = 2 + +[node name="CollisionShape2D" type="CollisionShape2D" parent="PlayerEnterDetector"] +position = Vector2(162, 175.5) +shape = SubResource("RectangleShape2D_4lag8") + +[connection signal="area_entered" from="PlayerEnterDetector" to="." method="OnRoomEntered"] diff --git a/Scenes/Maps/RogueliteMaps/RgLongx3.tscn b/Scenes/Maps/RogueliteMaps/RgLongx3.tscn index e5829989..a118a33d 100644 --- a/Scenes/Maps/RogueliteMaps/RgLongx3.tscn +++ b/Scenes/Maps/RogueliteMaps/RgLongx3.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=9 format=4 uid="uid://ss7hm1utnvn1"] +[gd_scene load_steps=10 format=4 uid="uid://ss7hm1utnvn1"] [ext_resource type="Script" uid="uid://b2j00riayxkit" path="res://Scripts/Controllers/RogueliteRoom.cs" id="1_g0xrw"] [ext_resource type="Resource" uid="uid://cmgiqsmujujss" path="res://Resources/RogueliteMaps/TestMapLongX3.tres" id="2_g0xrw"] @@ -15,6 +15,9 @@ outlines = Array[PackedVector2Array]([PackedVector2Array(17, 36, 14, 12, 47, 15, parsed_collision_mask = 353 source_geometry_mode = 1 +[sub_resource type="RectangleShape2D" id="RectangleShape2D_g0xrw"] +size = Vector2(272, 406) + [node name="Map" type="Node2D"] process_mode = 1 script = ExtResource("1_g0xrw") @@ -93,3 +96,13 @@ WallIndex = 1 [node name="NavigationRegion2D" type="NavigationRegion2D" parent="."] navigation_polygon = SubResource("NavigationPolygon_rlq0q") use_edge_connections = false + +[node name="PlayerEnterDetector" type="Area2D" parent="."] +collision_layer = 0 +collision_mask = 2 + +[node name="CollisionShape2D" type="CollisionShape2D" parent="PlayerEnterDetector"] +position = Vector2(162, 255) +shape = SubResource("RectangleShape2D_g0xrw") + +[connection signal="area_entered" from="PlayerEnterDetector" to="." method="OnRoomEntered"] diff --git a/Scripts/Components/FSM/Enemy/Dead.cs b/Scripts/Components/FSM/Enemy/Dead.cs index 70118369..02b91963 100644 --- a/Scripts/Components/FSM/Enemy/Dead.cs +++ b/Scripts/Components/FSM/Enemy/Dead.cs @@ -34,6 +34,8 @@ public partial class Dead : EnemyStateBase GameManager.Instance.AddMotivation(StorageModule.EnemyData.MotivationReward); + StorageModule.Root.TriggerDeath(); + StorageModule.Root.QueueFree(); } } \ No newline at end of file