diff --git a/Resources/Items/Ammo1.tres b/Resources/Items/Ammo1.tres new file mode 100644 index 00000000..97a34e1d --- /dev/null +++ b/Resources/Items/Ammo1.tres @@ -0,0 +1,14 @@ +[gd_resource type="Resource" script_class="LootItem" load_steps=3 format=3 uid="uid://ct1fa2huvy34n"] + +[ext_resource type="Script" path="res://Scripts/Resources/LootItem.cs" id="1_31o2l"] +[ext_resource type="SpriteFrames" uid="uid://pmwatoyt2ase" path="res://Resources/Sprites/Ammo_Inventory_Sprite.tres" id="1_fubhk"] + +[resource] +script = ExtResource("1_31o2l") +Item = 3 +Amount = 100 +Max = 800 +PickupIfMaxed = false +ConsumeOnUse = false +InventorySprite = ExtResource("1_fubhk") +WorldSprite = ExtResource("1_fubhk") diff --git a/Resources/Items/Ammo1.tscn b/Resources/Items/Ammo1.tscn new file mode 100644 index 00000000..401314f7 --- /dev/null +++ b/Resources/Items/Ammo1.tscn @@ -0,0 +1,11 @@ +[gd_scene load_steps=4 format=3 uid="uid://j1pbuvw2kduo"] + +[ext_resource type="PackedScene" uid="uid://dxs3ks2ucaxl4" path="res://Scenes/Items/Red_Keycard.tscn" id="1_v0ux4"] +[ext_resource type="Resource" uid="uid://ct1fa2huvy34n" path="res://Resources/Items/Ammo1.tres" id="2_2eoli"] +[ext_resource type="SpriteFrames" uid="uid://pmwatoyt2ase" path="res://Resources/Sprites/Ammo_Inventory_Sprite.tres" id="2_8g7mw"] + +[node name="Ammo1" instance=ExtResource("1_v0ux4")] +LootTable = [ExtResource("2_2eoli")] + +[node name="AnimatedSprite2D" parent="." index="1"] +sprite_frames = ExtResource("2_8g7mw") diff --git a/Resources/Items/Blue_Keycard.tres b/Resources/Items/Blue_Keycard.tres new file mode 100644 index 00000000..e930115a --- /dev/null +++ b/Resources/Items/Blue_Keycard.tres @@ -0,0 +1,9 @@ +[gd_resource type="Resource" script_class="LootItem" load_steps=2 format=3 uid="uid://cj5aa7btaw6q0"] + +[ext_resource type="Script" path="res://Scripts/Resources/LootItem.cs" id="1_k8cnp"] + +[resource] +script = ExtResource("1_k8cnp") +Item = 1 +Amount = 1 +Max = 1 diff --git a/Resources/Items/Green_Keycard.tres b/Resources/Items/Green_Keycard.tres new file mode 100644 index 00000000..2da9e079 --- /dev/null +++ b/Resources/Items/Green_Keycard.tres @@ -0,0 +1,9 @@ +[gd_resource type="Resource" script_class="LootItem" load_steps=2 format=3 uid="uid://cspcgkr0tane2"] + +[ext_resource type="Script" path="res://Scripts/Resources/LootItem.cs" id="1_t0s5w"] + +[resource] +script = ExtResource("1_t0s5w") +Item = 2 +Amount = 1 +Max = 1 diff --git a/Resources/Items/Red_Keycard.tres b/Resources/Items/Red_Keycard.tres index 4c7b06cc..cc8a2170 100644 --- a/Resources/Items/Red_Keycard.tres +++ b/Resources/Items/Red_Keycard.tres @@ -1,5 +1,7 @@ -[gd_resource type="Resource" script_class="LootItem" load_steps=2 format=3 uid="uid://dibquna7fww7t"] +[gd_resource type="Resource" script_class="LootItem" load_steps=4 format=3 uid="uid://dibquna7fww7t"] +[ext_resource type="SpriteFrames" uid="uid://cikw4v6n0folb" path="res://Resources/Sprites/Red_Keycard_Overworld_Sprite.tres" id="1_1j6xs"] +[ext_resource type="Texture2D" uid="uid://bao53hesxreoh" path="res://Resources/Sprites/Red_Keycard_Inventory_Texture.tres" id="1_glhfu"] [ext_resource type="Script" path="res://Scripts/Resources/LootItem.cs" id="1_istlt"] [resource] @@ -7,3 +9,7 @@ script = ExtResource("1_istlt") Item = 0 Amount = 1 Max = 1 +PickupIfMaxed = false +ConsumeOnUse = false +InventorySprite = ExtResource("1_glhfu") +WorldSprite = ExtResource("1_1j6xs") diff --git a/Resources/Sprites/Ammo_Inventory_Sprite.tres b/Resources/Sprites/Ammo_Inventory_Sprite.tres new file mode 100644 index 00000000..47d410b1 --- /dev/null +++ b/Resources/Sprites/Ammo_Inventory_Sprite.tres @@ -0,0 +1,18 @@ +[gd_resource type="SpriteFrames" load_steps=3 format=3 uid="uid://pmwatoyt2ase"] + +[ext_resource type="Texture2D" uid="uid://c5g0qg6u2gm6f" path="res://Sprites/Items/Ammo1.png" id="1_opgo2"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_0k673"] +atlas = ExtResource("1_opgo2") +region = Rect2(0, 0, 16, 16) + +[resource] +animations = [{ +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_0k673") +}], +"loop": true, +"name": &"default", +"speed": 5.0 +}] diff --git a/Resources/Sprites/Red_Keycard_Inventory_Sprite.tres b/Resources/Sprites/Red_Keycard_Inventory_Sprite.tres new file mode 100644 index 00000000..b8df39d2 --- /dev/null +++ b/Resources/Sprites/Red_Keycard_Inventory_Sprite.tres @@ -0,0 +1,18 @@ +[gd_resource type="SpriteFrames" load_steps=3 format=3 uid="uid://bnvusxrrd2351"] + +[ext_resource type="Texture2D" uid="uid://c53bchw2krocb" path="res://Sprites/Red_Keycard.png" id="1_l8v2c"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_us62y"] +atlas = ExtResource("1_l8v2c") +region = Rect2(0, 0, 16, 16) + +[resource] +animations = [{ +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_us62y") +}], +"loop": true, +"name": &"default", +"speed": 5.0 +}] diff --git a/Resources/Sprites/Red_Keycard_Inventory_Texture.tres b/Resources/Sprites/Red_Keycard_Inventory_Texture.tres new file mode 100644 index 00000000..952fa7d6 --- /dev/null +++ b/Resources/Sprites/Red_Keycard_Inventory_Texture.tres @@ -0,0 +1,7 @@ +[gd_resource type="AtlasTexture" load_steps=2 format=3 uid="uid://bao53hesxreoh"] + +[ext_resource type="Texture2D" uid="uid://bad6gbl2gity3" path="res://Sprites/Items/RedKeycard_Small.png" id="1_eer7d"] + +[resource] +atlas = ExtResource("1_eer7d") +region = Rect2(0, 0, 16.0056, 16) diff --git a/Resources/Sprites/Red_Keycard_Overworld_Sprite.tres b/Resources/Sprites/Red_Keycard_Overworld_Sprite.tres new file mode 100644 index 00000000..e78c3fa9 --- /dev/null +++ b/Resources/Sprites/Red_Keycard_Overworld_Sprite.tres @@ -0,0 +1,25 @@ +[gd_resource type="SpriteFrames" load_steps=4 format=3 uid="uid://cikw4v6n0folb"] + +[ext_resource type="Texture2D" uid="uid://bad6gbl2gity3" path="res://Sprites/Items/RedKeycard_Small.png" id="1_shn5c"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_o0au0"] +atlas = ExtResource("1_shn5c") +region = Rect2(0, 0, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_fx6tu"] +atlas = ExtResource("1_shn5c") +region = Rect2(16, 0, 16, 16) + +[resource] +animations = [{ +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_o0au0") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_fx6tu") +}], +"loop": true, +"name": &"default", +"speed": 5.0 +}] diff --git a/Scenes/Enemy.tscn b/Scenes/Enemy.tscn index 4cae04fe..2bf0e438 100644 --- a/Scenes/Enemy.tscn +++ b/Scenes/Enemy.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=9 format=3 uid="uid://v8s3kubgb2qg"] +[gd_scene load_steps=10 format=3 uid="uid://v8s3kubgb2qg"] [ext_resource type="Texture2D" uid="uid://b4ynnb14mb4uq" path="res://Sprites/Reisen.png" id="1_4w8mj"] [ext_resource type="Script" path="res://Scripts/Enemy.cs" id="1_lpwdj"] @@ -18,11 +18,15 @@ radius = 4.0 [sub_resource type="CircleShape2D" id="CircleShape2D_v711r"] radius = 85.0529 -[node name="Enemy" type="Area2D" node_paths=PackedStringArray("EquippedWeapon") groups=["Destroyable"]] +[sub_resource type="RectangleShape2D" id="RectangleShape2D_m1rsg"] +size = Vector2(8, 12) + +[node name="Enemy" type="CharacterBody2D" node_paths=PackedStringArray("EquippedWeapon") groups=["Destroyable"]] collision_layer = 16 collision_mask = 9 script = ExtResource("1_lpwdj") EquippedWeapon = NodePath("Weapon") +NavigationEnabled = true metadata/_edit_group_ = true [node name="Sprite2D" type="Sprite2D" parent="."] @@ -33,6 +37,7 @@ visible = false shape = SubResource("CircleShape2D_8gtts") [node name="RigidBody2D" type="RigidBody2D" parent="."] +collision_layer = 16 [node name="CollisionShape2D" type="CollisionShape2D" parent="RigidBody2D"] visible = false @@ -40,11 +45,11 @@ position = Vector2(0, 5) shape = SubResource("CircleShape2D_cacb5") [node name="PlayerDetection" type="Area2D" parent="."] +visible = false collision_layer = 16 collision_mask = 2 [node name="PlayerDetectionArea" type="CollisionShape2D" parent="PlayerDetection"] -visible = false shape = SubResource("CircleShape2D_v711r") [node name="ShootTimer" type="Timer" parent="."] @@ -57,7 +62,21 @@ BulletCapacity = 4 BulletSpeed = 50.0 [node name="NavigationAgent2D" type="NavigationAgent2D" parent="."] +target_desired_distance = 64.0 +path_max_distance = 800.0 +path_postprocessing = 1 +avoidance_enabled = true +debug_enabled = true +debug_path_custom_color = Color(1, 0, 0, 1) + +[node name="DamageHitbox" type="Area2D" parent="."] +collision_layer = 16 +collision_mask = 9 + +[node name="CollisionShape2D" type="CollisionShape2D" parent="DamageHitbox"] +shape = SubResource("RectangleShape2D_m1rsg") -[connection signal="area_entered" from="." to="." method="_on_area_entered"] [connection signal="area_entered" from="PlayerDetection" to="." method="_on_player_detection_area_entered"] [connection signal="area_exited" from="PlayerDetection" to="." method="_on_player_detection_area_exited"] +[connection signal="velocity_computed" from="NavigationAgent2D" to="." method="_on_navigation_agent_2d_velocity_computed"] +[connection signal="area_entered" from="DamageHitbox" to="." method="_on_damage_hitbox_area_entered"] diff --git a/Scenes/HUD/HUD.tscn b/Scenes/HUD/HUD.tscn index e4bb5ff9..936e832b 100644 --- a/Scenes/HUD/HUD.tscn +++ b/Scenes/HUD/HUD.tscn @@ -26,21 +26,10 @@ animations = [{ "speed": 5.0 }] -[node name="HUD" type="CanvasLayer"] +[node name="HUD" type="CanvasLayer" node_paths=PackedStringArray("_healthLabel", "_itemsContainer")] script = ExtResource("1_m0hb0") - -[node name="HealthLabel" type="Label" parent="."] -anchors_preset = 2 -anchor_top = 1.0 -anchor_bottom = 1.0 -offset_left = 1.0 -offset_top = -160.0 -offset_right = 306.0 -offset_bottom = -82.0 -grow_vertical = 0 -theme_override_fonts/font = ExtResource("2_0xmx2") -theme_override_font_sizes/font_size = 12 -text = "100/100" +_healthLabel = NodePath("VBoxContainer/HealthLabel") +_itemsContainer = NodePath("VBoxContainer/ItemsContainer") [node name="GameOver" type="Label" parent="."] visible = false @@ -69,3 +58,24 @@ position = Vector2(67, 47) sprite_frames = SubResource("SpriteFrames_78fwv") frame = 1 frame_progress = 0.8514 + +[node name="VBoxContainer" type="VBoxContainer" parent="."] +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +size_flags_horizontal = 3 +size_flags_vertical = 3 + +[node name="HealthLabel" type="Label" parent="VBoxContainer"] +layout_mode = 2 +theme_override_fonts/font = ExtResource("2_0xmx2") +theme_override_font_sizes/font_size = 12 +text = "100/100" + +[node name="ItemsContainer" type="VBoxContainer" parent="VBoxContainer"] +layout_mode = 2 + +[node name="TextureRect" type="TextureRect" parent="VBoxContainer/ItemsContainer"] +layout_mode = 2 diff --git a/Scenes/Items/Ammo1.tscn b/Scenes/Items/Ammo1.tscn new file mode 100644 index 00000000..cc67d3f5 --- /dev/null +++ b/Scenes/Items/Ammo1.tscn @@ -0,0 +1,11 @@ +[gd_scene load_steps=4 format=3 uid="uid://cmr6fclttrpkb"] + +[ext_resource type="PackedScene" uid="uid://dxs3ks2ucaxl4" path="res://Scenes/Items/Red_Keycard.tscn" id="1_i3l7m"] +[ext_resource type="Resource" uid="uid://ct1fa2huvy34n" path="res://Resources/Items/Ammo1.tres" id="2_j10i4"] +[ext_resource type="SpriteFrames" uid="uid://pmwatoyt2ase" path="res://Resources/Sprites/Ammo_Inventory_Sprite.tres" id="3_6n103"] + +[node name="Ammo1" instance=ExtResource("1_i3l7m")] +LootTable = [ExtResource("2_j10i4")] + +[node name="AnimatedSprite2D" parent="." index="1"] +sprite_frames = ExtResource("3_6n103") diff --git a/Scenes/Items/Blue_Keycard.tscn b/Scenes/Items/Blue_Keycard.tscn new file mode 100644 index 00000000..96ee1d16 --- /dev/null +++ b/Scenes/Items/Blue_Keycard.tscn @@ -0,0 +1,33 @@ +[gd_scene load_steps=7 format=3 uid="uid://d0yes7huiyisw"] + +[ext_resource type="PackedScene" uid="uid://dxs3ks2ucaxl4" path="res://Scenes/Items/Red_Keycard.tscn" id="1_8f4hq"] +[ext_resource type="Resource" uid="uid://cj5aa7btaw6q0" path="res://Resources/Items/Blue_Keycard.tres" id="2_woclw"] +[ext_resource type="Texture2D" uid="uid://bvybqletsvqgk" path="res://Sprites/Items/BlueKeycard_Small.png" id="3_k20dr"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_kprwo"] +atlas = ExtResource("3_k20dr") +region = Rect2(0, 0, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_kems3"] +atlas = ExtResource("3_k20dr") +region = Rect2(16, 0, 16, 16) + +[sub_resource type="SpriteFrames" id="SpriteFrames_gbw5v"] +animations = [{ +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_kprwo") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_kems3") +}], +"loop": true, +"name": &"default", +"speed": 5.0 +}] + +[node name="BlueKeycard" instance=ExtResource("1_8f4hq")] +LootTable = [ExtResource("2_woclw")] + +[node name="AnimatedSprite2D" parent="." index="1"] +sprite_frames = SubResource("SpriteFrames_gbw5v") diff --git a/Scenes/Items/Green_Keycard.tscn b/Scenes/Items/Green_Keycard.tscn new file mode 100644 index 00000000..57147ee4 --- /dev/null +++ b/Scenes/Items/Green_Keycard.tscn @@ -0,0 +1,31 @@ +[gd_scene load_steps=6 format=3 uid="uid://r25rq6ijgm6m"] + +[ext_resource type="PackedScene" uid="uid://dxs3ks2ucaxl4" path="res://Scenes/Items/Red_Keycard.tscn" id="1_o26qb"] +[ext_resource type="Texture2D" uid="uid://bvkjnc3ggp7ba" path="res://Sprites/Items/GreenKeycard_Small.png" id="2_lts72"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_3c71u"] +atlas = ExtResource("2_lts72") +region = Rect2(0, 0, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_tdlc7"] +atlas = ExtResource("2_lts72") +region = Rect2(16, 0, 16, 16) + +[sub_resource type="SpriteFrames" id="SpriteFrames_y8q6b"] +animations = [{ +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_3c71u") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_tdlc7") +}], +"loop": true, +"name": &"default", +"speed": 5.0 +}] + +[node name="GreenKeyCard" instance=ExtResource("1_o26qb")] + +[node name="AnimatedSprite2D" parent="." index="1"] +sprite_frames = SubResource("SpriteFrames_y8q6b") diff --git a/Scenes/Items/Red_Keycard.tscn b/Scenes/Items/Red_Keycard.tscn new file mode 100644 index 00000000..5281b84f --- /dev/null +++ b/Scenes/Items/Red_Keycard.tscn @@ -0,0 +1,19 @@ +[gd_scene load_steps=5 format=3 uid="uid://dxs3ks2ucaxl4"] + +[ext_resource type="Script" path="res://Scripts/Interactables/ItemPickup.cs" id="1_cvvxn"] +[ext_resource type="SpriteFrames" uid="uid://cikw4v6n0folb" path="res://Resources/Sprites/Red_Keycard_Overworld_Sprite.tres" id="3_htu4x"] +[ext_resource type="Resource" uid="uid://dibquna7fww7t" path="res://Resources/Items/Red_Keycard.tres" id="4_84krq"] + +[sub_resource type="CircleShape2D" id="CircleShape2D_6vv2s"] + +[node name="RedKeyCard" type="Area2D" groups=["Interactable"]] +collision_layer = 4 +collision_mask = 2 +script = ExtResource("1_cvvxn") +LootTable = [ExtResource("4_84krq")] + +[node name="CollisionShape2D" type="CollisionShape2D" parent="."] +shape = SubResource("CircleShape2D_6vv2s") + +[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."] +sprite_frames = ExtResource("3_htu4x") diff --git a/Scenes/Red_Keycard.tscn b/Scenes/Red_Keycard.tscn deleted file mode 100644 index 135fa094..00000000 --- a/Scenes/Red_Keycard.tscn +++ /dev/null @@ -1,21 +0,0 @@ -[gd_scene load_steps=5 format=3 uid="uid://dxs3ks2ucaxl4"] - -[ext_resource type="Script" path="res://Scenes/Interactable.cs" id="1_8ev2v"] -[ext_resource type="Texture2D" uid="uid://c53bchw2krocb" path="res://Sprites/Red_Keycard.png" id="2_onmup"] -[ext_resource type="Script" path="res://Scripts/Pickupper.cs" id="3_t6rqq"] - -[sub_resource type="RectangleShape2D" id="RectangleShape2D_x0adl"] - -[node name="ControlPad" type="Area2D" groups=["Interactable"]] -collision_layer = 4 -collision_mask = 2 -script = ExtResource("1_8ev2v") - -[node name="CollisionShape2D" type="CollisionShape2D" parent="."] -shape = SubResource("RectangleShape2D_x0adl") - -[node name="Sprite2D" type="Sprite2D" parent="."] -texture = ExtResource("2_onmup") - -[node name="Pickupper" type="Node2D" parent="."] -script = ExtResource("3_t6rqq") diff --git a/Scenes/Weapons/bullet.tscn b/Scenes/Weapons/bullet.tscn index 406565f9..982fff7e 100644 --- a/Scenes/Weapons/bullet.tscn +++ b/Scenes/Weapons/bullet.tscn @@ -11,6 +11,7 @@ collision_layer = 8 collision_mask = 85 script = ExtResource("1_jvxw3") Speed = 200.0 +Owner = 1 metadata/_edit_group_ = true [node name="Sprite2D" type="Sprite2D" parent="."] diff --git a/Scenes/enemyBullet.tscn b/Scenes/enemyBullet.tscn index c46edfc7..e4ba4924 100644 --- a/Scenes/enemyBullet.tscn +++ b/Scenes/enemyBullet.tscn @@ -11,6 +11,7 @@ collision_layer = 128 collision_mask = 71 script = ExtResource("1_s0j1e") Speed = 200.0 +Owner = 2 metadata/_edit_group_ = true [node name="Sprite2D" type="Sprite2D" parent="."] diff --git a/Scenes/naviogation_test.tscn b/Scenes/naviogation_test.tscn new file mode 100644 index 00000000..6fc31433 --- /dev/null +++ b/Scenes/naviogation_test.tscn @@ -0,0 +1,75 @@ +[gd_scene load_steps=10 format=4 uid="uid://c4yvclwjr2g3s"] + +[ext_resource type="TileSet" uid="uid://6k28roiljylj" path="res://Tilesets/factory_tileset.tres" id="1_0ej5m"] +[ext_resource type="Script" path="res://Scripts/TilemapAvoidance.cs" id="2_8fanf"] +[ext_resource type="Texture2D" uid="uid://b4ynnb14mb4uq" path="res://Sprites/Reisen.png" id="2_jwyql"] +[ext_resource type="Script" path="res://Scripts/Actors/NavigationTestEnemy.cs" id="2_ow6o3"] + +[sub_resource type="CircleShape2D" id="CircleShape2D_uexe4"] +radius = 6.0 + +[sub_resource type="AtlasTexture" id="AtlasTexture_dbu6i"] +atlas = ExtResource("2_jwyql") +region = Rect2(0, 0, 8, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_gx747"] +atlas = ExtResource("2_jwyql") +region = Rect2(8, 0, 8, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_yqxl3"] +atlas = ExtResource("2_jwyql") +region = Rect2(16, 0, 8, 16) + +[sub_resource type="SpriteFrames" id="SpriteFrames_s36lq"] +animations = [{ +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_dbu6i") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_gx747") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_yqxl3") +}], +"loop": true, +"name": &"default", +"speed": 5.0 +}] + +[node name="Node2D" type="Node2D"] + +[node name="Floor" type="TileMapLayer" parent="." node_paths=PackedStringArray("_solidLayer")] +tile_map_data = PackedByteArray("AAAHAAIAAAAAAAEAAAAHAAMAAAAAAAEAAAAIAAMAAAAAAAEAAAAIAAQAAAAAAAEAAAAIAAUAAAAAAAEAAAAHAAUAAAAAAAEAAAAGAAUAAAAAAAEAAAAFAAQAAAAAAAEAAAAGAAIAAAAAAAEAAAAIAAIAAAACAAMAAAAJAAMAAAAAAAEAAAAJAAQAAAAAAAEAAAAJAAUAAAAGAAEAAAAHAAQAAAAAAAEAAAAKAAMAAAAAAAEAAAAKAAQAAAAAAAEAAAAIAAYAAAAGAAEAAAAHAAYAAAAAAAEAAAAGAAYAAAAAAAEAAAALAAQAAAAAAAEAAAAKAAUAAAAGAAEAAAAGAAQAAAAAAAEAAAAGAAcAAAAAAAMAAAAHAAcAAAAAAAMAAAAIAAcAAAAGAAEAAAAJAAcAAAAGAAEAAAAKAAcAAAAGAAEAAAALAAcAAAAGAAEAAAAMAAcAAAAAAAMAAAALAAUAAAAAAAMAAAAMAAUAAAAAAAMAAAAMAAQAAAAAAAMAAAAMAAMAAAACAAMAAAANAAYAAAAAAAMAAAANAAUAAAAAAAMAAAANAAQAAAAAAAMAAAANAAMAAAAAAAMAAAANAAIAAAAAAAMAAAANAAcAAAAAAAMAAAANAAgAAAACAAMAAAAMAAgAAAACAAMAAAALAAgAAAACAAMAAAAKAAgAAAAGAAEAAAAJAAgAAAAGAAEAAAAIAAgAAAACAAMAAAAHAAgAAAACAAMAAAAGAAgAAAACAAMAAAAGAAkAAAACAAMAAAAHAAkAAAACAAMAAAAHAAoAAAACAAMAAAAIAAoAAAACAAMAAAAIAAkAAAACAAMAAAAJAAkAAAACAAMAAAAKAAkAAAACAAMAAAALAAkAAAACAAMAAAAMAAkAAAACAAMAAAANAAkAAAACAAMAAAAMAAoAAAACAAMAAAALAAoAAAACAAMAAAAKAAoAAAACAAMAAAAJAAoAAAACAAMAAAAGAAoAAAACAAMAAAAJAAsAAAACAAMAAAAKAAsAAAACAAMAAAALAAsAAAACAAMAAAAMAAsAAAACAAMAAAANAAoAAAACAAMAAAADAAgAAAAAAAMAAAAFAAoAAAACAAMAAAAEAAoAAAACAAMAAAADAAoAAAACAAMAAAACAAoAAAAAAAMAAAACAAsAAAACAAMAAAACAAwAAAACAAMAAAACAA0AAAACAAMAAAABAA0AAAACAAMAAAABAA4AAAACAAMAAAAFAAYAAAAAAAMAAAAFAAcAAAAAAAMAAAAFAAgAAAAAAAMAAAAEAAgAAAAAAAMAAAAEAAcAAAAAAAMAAAAEAAYAAAAAAAMAAAAFAAUAAAAAAAMAAAAEAAUAAAAAAAMAAAAEAAQAAAAAAAMAAAAEAAMAAAACAAMAAAAEAAkAAAAAAAMAAAADAAkAAAAAAAMAAAAFAAkAAAAAAAMAAAACAAMAAAAAAAMAAAACAAQAAAAAAAMAAAACAAUAAAAAAAMAAAACAAYAAAAAAAMAAAACAAcAAAAAAAMAAAACAAgAAAAAAAMAAAACAAkAAAAAAAMAAAAEAAsAAAACAAMAAAADAAsAAAACAAMAAAAFAAsAAAACAAMAAAAGAAsAAAACAAMAAAAHAAsAAAACAAMAAAAIAAsAAAACAAMAAAAIAAwAAAACAAMAAAAHAAwAAAACAAMAAAAGAAwAAAACAAMAAAAFAAwAAAACAAMAAAAEAAwAAAACAAMAAAADAAwAAAACAAMAAAAJAAwAAAACAAMAAAAKAAwAAAACAAMAAAALAAwAAAACAAMAAAAMAAwAAAACAAMAAAANAAwAAAACAAMAAAANAA0AAAACAAMAAAAMAA0AAAACAAMAAAALAA4AAAACAAMAAAAKAA4AAAACAAMAAAAJAA4AAAACAAMAAAAIAA4AAAACAAMAAAAHAA4AAAACAAMAAAAGAA4AAAACAAMAAAAFAA4AAAACAAMAAAAEAA4AAAACAAMAAAADAA4AAAACAAMAAAACAA4AAAACAAMAAAADAA0AAAACAAMAAAAEAA0AAAACAAMAAAAFAA0AAAACAAMAAAAGAA0AAAACAAMAAAAHAA0AAAACAAMAAAAIAA0AAAACAAMAAAAJAA0AAAACAAMAAAAKAA0AAAACAAMAAAALAA0AAAACAAMAAAANAAsAAAACAAMAAAAMAAYAAAACAAMAAAALAAYAAAACAAMAAAAKAAYAAAACAAMAAAAJAAYAAAACAAMAAAALAAMAAAACAAMAAAALAAIAAAACAAMAAAAMAAIAAAACAAMAAAAKAAIAAAACAAMAAAAJAAIAAAACAAMAAAAGAAMAAAACAAMAAAAFAAMAAAACAAMAAAAEAAIAAAACAAMAAAAFAAIAAAACAAMAAAADAAIAAAACAAMAAAADAAMAAAACAAMAAAADAAQAAAACAAMAAAADAAUAAAACAAMAAAADAAYAAAACAAMAAAADAAcAAAACAAMAAAABAAcAAAACAAMAAAABAAYAAAACAAMAAAABAAUAAAACAAMAAAAAAAUAAAACAAMAAAAAAAQAAAACAAMAAAAAAAMAAAACAAMAAAAAAAYAAAACAAMAAAABAAQAAAACAAMAAAABAAMAAAACAAMAAAABAAIAAAACAAMAAAABAAEAAAACAAMAAAAAAAAAAAACAAMAAAABAAAAAAACAAMAAAACAAAAAAACAAMAAAADAAAAAAACAAMAAAAEAAAAAAACAAMAAAAFAAAAAAACAAMAAAAGAAAAAAACAAMAAAAHAAAAAAACAAMAAAAIAAAAAAACAAMAAAAJAAAAAAACAAMAAAAKAAAAAAACAAMAAAAJAAEAAAACAAMAAAAIAAEAAAACAAMAAAAHAAEAAAACAAMAAAAGAAEAAAACAAMAAAAFAAEAAAACAAMAAAAEAAEAAAACAAMAAAADAAEAAAACAAMAAAACAAEAAAACAAMAAAACAAIAAAACAAMAAAALAAAAAAACAAMAAAAMAAAAAAACAAMAAAAMAAEAAAACAAMAAAALAAEAAAACAAMAAAAKAAEAAAACAAMAAAANAAEAAAACAAMAAAANAAAAAAACAAMAAAAOAAEAAAACAAMAAAAOAAIAAAACAAMAAAAOAAMAAAACAAMAAAAOAAQAAAACAAMAAAAOAAUAAAACAAMAAAAOAAYAAAACAAMAAAAOAAcAAAACAAMAAAAOAAgAAAACAAMAAAAOAAkAAAACAAMAAAAOAAoAAAACAAMAAAAOAAsAAAACAAMAAAAOAAwAAAACAAMAAAAOAA0AAAACAAMAAAAOAA4AAAACAAMAAAANAA4AAAACAAMAAAAMAA4AAAACAAMAAAAAAA0AAAACAAMAAAAAAAwAAAACAAMAAAAAAAsAAAACAAMAAAAAAAoAAAACAAMAAAABAAwAAAACAAMAAAAAAA4AAAACAAMAAAABAAsAAAACAAMAAAABAAgAAAACAAMAAAAAAAcAAAACAAMAAAAAAAgAAAACAAMAAAAAAAkAAAACAAMAAAABAAoAAAACAAMAAAABAAkAAAACAAMAAAAAAAIAAAACAAMAAAAAAAEAAAACAAMAAAAOAAAAAAACAAMAAAA=") +tile_set = ExtResource("1_0ej5m") +script = ExtResource("2_8fanf") +_solidLayer = NodePath("../Walls") + +[node name="Walls" type="TileMapLayer" parent="."] +tile_map_data = PackedByteArray("AAADAAYAAAABAAEAAAADAAcAAAABAAEAAAADAAUAAAABAAEAAAADAAQAAAABAAEAAAADAAMAAAABAAEAAAADAAIAAAABAAEAAAAGAAMAAAABAAEAAAAFAAMAAAABAAEAAAAFAAIAAAABAAEAAAAEAAIAAAABAAEAAAAKAAIAAAABAAEAAAAJAAIAAAABAAEAAAALAAIAAAABAAEAAAAMAAIAAAABAAEAAAALAAMAAAABAAEAAAAJAAYAAAABAAEAAAAKAAYAAAABAAEAAAALAAYAAAABAAEAAAAMAAYAAAABAAEAAAAPAAEAAAABAAEAAAAPAAIAAAABAAEAAAAPAAMAAAABAAEAAAAPAAQAAAABAAEAAAAPAAUAAAABAAEAAAAPAAYAAAABAAEAAAAPAAcAAAABAAEAAAAPAAgAAAABAAEAAAAPAAkAAAABAAEAAAAPAAoAAAABAAEAAAAPAAsAAAABAAEAAAAPAAwAAAABAAEAAAAPAA0AAAABAAEAAAAPAA4AAAABAAEAAAAPAA8AAAABAAEAAAAOAA8AAAABAAEAAAANAA8AAAABAAEAAAAMAA8AAAABAAEAAAALAA8AAAABAAEAAAAKAA8AAAABAAEAAAAJAA8AAAABAAEAAAAIAA8AAAABAAEAAAAHAA8AAAABAAEAAAAGAA8AAAABAAEAAAAFAA8AAAABAAEAAAAEAA8AAAABAAEAAAADAA8AAAABAAEAAAACAA8AAAABAAEAAAABAA8AAAABAAEAAAAAAA8AAAABAAEAAAD//w8AAAABAAEAAAD//w4AAAABAAEAAAD//w0AAAABAAEAAAD//wwAAAABAAEAAAD//wsAAAABAAEAAAD//woAAAABAAEAAAD//wkAAAABAAEAAAD//wgAAAABAAEAAAD//wcAAAABAAEAAAD//wYAAAABAAEAAAD//wUAAAABAAEAAAD+/wUAAAABAAEAAAD+/wQAAAABAAEAAAD+/wMAAAABAAEAAAD+/wIAAAABAAEAAAD//wIAAAABAAEAAAD//wEAAAABAAEAAAD+/wEAAAABAAEAAAD+/wAAAAABAAEAAAAFAP//AAABAAEAAAAGAP//AAABAAEAAAAHAP//AAABAAEAAAAIAP//AAABAAEAAAAJAP//AAABAAEAAAAKAP//AAABAAEAAAALAP//AAABAAEAAAAMAP//AAABAAEAAAANAP//AAABAAEAAAAOAP//AAABAAEAAAAOAAAAAAABAAEAAAAPAAAAAAABAAEAAAD9//7/AAABAAEAAAD+//3/AAABAAEAAAD///3/AAABAAEAAAD///z/AAABAAEAAAAAAPz/AAABAAEAAAABAPz/AAABAAEAAAACAPz/AAABAAEAAAADAPz/AAABAAEAAAAEAPz/AAABAAEAAAAFAPz/AAABAAEAAAAGAPz/AAABAAEAAAAGAP3/AAABAAEAAAAHAP3/AAABAAEAAAAIAP3/AAABAAEAAAAIAP7/AAABAAEAAAAJAP7/AAABAAEAAAD8////AAABAAEAAAD9////AAABAAEAAAD9/wAAAAABAAEAAAAGAAwAAAABAAEAAAAHAAwAAAABAAEAAAAIAAwAAAABAAEAAAAJAAoAAAAEAAUAAAAKAAoAAAAEAAUAAAALAAoAAAAEAAUAAAALAAsAAAAEAAUAAAAMAAsAAAAEAAUAAAAMAAwAAAAEAAUAAAAMAA0AAAAEAAUAAAADAAoAAAAEAAUAAAACAAoAAAAEAAUAAAABAAoAAAAEAAUAAAABAAkAAAAEAAUAAAAAAAkAAAAEAAUAAAAAAAgAAAAEAAUAAAAGAAkAAAAEAAUAAAAHAAkAAAAEAAUAAAAHAAoAAAAEAAUAAAAGAAoAAAAEAAUAAAAGAAUAAAAEAAUAAAAFAAUAAAAEAAUAAAABAP//AAAEAAUAAAACAP//AAAEAAUAAAA=") +tile_set = ExtResource("1_0ej5m") + +[node name="Enemy" type="CharacterBody2D" parent="."] +position = Vector2(88, 129) +collision_layer = 16 +script = ExtResource("2_ow6o3") +_movementSpeed = 50.0 +metadata/_edit_group_ = true + +[node name="NavigationAgent2D" type="NavigationAgent2D" parent="Enemy"] +target_desired_distance = 64.0 +path_max_distance = 200.0 +path_postprocessing = 1 +debug_enabled = true +debug_use_custom = true +debug_path_custom_color = Color(1, 0.0235294, 0.0156863, 1) + +[node name="CollisionShape2D" type="CollisionShape2D" parent="Enemy"] +shape = SubResource("CircleShape2D_uexe4") + +[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="Enemy"] +sprite_frames = SubResource("SpriteFrames_s36lq") +frame = 2 +frame_progress = 0.620075 + +[connection signal="velocity_computed" from="Enemy/NavigationAgent2D" to="Enemy" method="_on_navigation_agent_2d_velocity_computed"] diff --git a/Scenes/test.tscn b/Scenes/test.tscn index c3d23680..e281af1f 100644 --- a/Scenes/test.tscn +++ b/Scenes/test.tscn @@ -1,305 +1,30 @@ -[gd_scene load_steps=39 format=4 uid="uid://bv451a8wgty4u"] +[gd_scene load_steps=25 format=4 uid="uid://bv451a8wgty4u"] [ext_resource type="Script" path="res://Scripts/GameManager.cs" id="1_8tmoj"] [ext_resource type="PackedScene" uid="uid://bghghp5ep4w2j" path="res://Scenes/player.tscn" id="2_8mh54"] +[ext_resource type="TileSet" uid="uid://6k28roiljylj" path="res://Tilesets/factory_tileset.tres" id="3_kgs2x"] +[ext_resource type="Script" path="res://Scripts/TilemapAvoidance.cs" id="4_p1fl3"] [ext_resource type="PackedScene" uid="uid://rp4jhx0tuh24" path="res://Scenes/fragola.tscn" id="4_s7wq6"] -[ext_resource type="PackedScene" uid="uid://bj28qiai2x2ar" path="res://Scenes/Props/Barrel.tscn" id="5_3uba3"] [ext_resource type="PackedScene" uid="uid://uaf5r6cd71hu" path="res://Scenes/Props/LargeTank.tscn" id="6_nkauc"] [ext_resource type="Script" path="res://Scenes/CameraController.gd" id="6_t8ide"] [ext_resource type="PackedScene" uid="uid://crmwuwhltmdq7" path="res://Scenes/Props/MediumTank.tscn" id="7_lmrl1"] -[ext_resource type="Texture2D" uid="uid://tphqodqyere1" path="res://Tilesets/factory.png" id="8_0km4o"] [ext_resource type="PackedScene" uid="uid://7cpk3c3d8cl7" path="res://Scenes/Props/MediumLiquidTank.tscn" id="8_2wpw7"] [ext_resource type="PackedScene" uid="uid://byms2dhliyux0" path="res://Scenes/teleporter.tscn" id="10_mc6y5"] -[ext_resource type="PackedScene" uid="uid://e80xujqyjoh" path="res://Scenes/Props/Box_Vertical.tscn" id="10_yqt7i"] [ext_resource type="PackedScene" uid="uid://crph24e6e0v0q" path="res://Scenes/Interactable/Control_Pad.tscn" id="12_hfkf1"] [ext_resource type="PackedScene" uid="uid://l84on3kv2s52" path="res://Scenes/Door_Horizontal.tscn" id="12_i7i2m"] [ext_resource type="PackedScene" uid="uid://bnhck5eh0tqxf" path="res://Scenes/Props/MediumTerminal.tscn" id="13_acrmt"] -[ext_resource type="PackedScene" uid="uid://bqq3q37hugdlj" path="res://Scenes/Door.tscn" id="14_y363m"] [ext_resource type="PackedScene" uid="uid://bgk7fgwiis425" path="res://Scenes/Props/Box_Red.tscn" id="15_m0y0j"] [ext_resource type="PackedScene" uid="uid://bc64lr3vlwchq" path="res://Scenes/Door_Vertical.tscn" id="15_mgtvp"] [ext_resource type="PackedScene" uid="uid://cxjumgf8bhr3l" path="res://Scenes/Elevator.tscn" id="16_n40rt"] [ext_resource type="PackedScene" uid="uid://cdr4m7pydqk6u" path="res://Scenes/Interactable/control_pad_red_keycard.tscn" id="17_e3v0b"] [ext_resource type="Script" path="res://Scripts/InventoryManager.cs" id="18_dvo37"] [ext_resource type="PackedScene" uid="uid://v8s3kubgb2qg" path="res://Scenes/Enemy.tscn" id="18_ixcwn"] -[ext_resource type="PackedScene" uid="uid://dxs3ks2ucaxl4" path="res://Scenes/Red_Keycard.tscn" id="19_8fb73"] +[ext_resource type="Resource" uid="uid://dibquna7fww7t" path="res://Resources/Items/Red_Keycard.tres" id="18_t6ass"] +[ext_resource type="PackedScene" uid="uid://dxs3ks2ucaxl4" path="res://Scenes/Items/Red_Keycard.tscn" id="19_8fb73"] [ext_resource type="PackedScene" uid="uid://dkwi1hu1bixoe" path="res://Scenes/HUD/HUD.tscn" id="22_krk0o"] [ext_resource type="Script" path="res://Scenes/CameraTarget.gd" id="24_0c2yt"] [ext_resource type="PackedScene" uid="uid://djf0y08ix66fn" path="res://Scenes/Interactable/Chest.tscn" id="25_4b2ed"] -[sub_resource type="NavigationPolygon" id="NavigationPolygon_lnwgu"] -vertices = PackedVector2Array(8, 8, -8, 8, -8, -8, 8, -8) -polygons = Array[PackedInt32Array]([PackedInt32Array(0, 1, 2, 3)]) -outlines = Array[PackedVector2Array]([PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)]) -agent_radius = 0.0 - -[sub_resource type="NavigationPolygon" id="NavigationPolygon_ml1qs"] -vertices = PackedVector2Array(8, 8, -8, 8, -8, -8, 8, -8) -polygons = Array[PackedInt32Array]([PackedInt32Array(0, 1, 2, 3)]) -outlines = Array[PackedVector2Array]([PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)]) -agent_radius = 0.0 - -[sub_resource type="NavigationPolygon" id="NavigationPolygon_h4p0b"] -vertices = PackedVector2Array(8, 8, -8, 8, -8, -8, 8, -8) -polygons = Array[PackedInt32Array]([PackedInt32Array(0, 1, 2, 3)]) -outlines = Array[PackedVector2Array]([PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)]) -agent_radius = 0.0 - -[sub_resource type="NavigationPolygon" id="NavigationPolygon_1miy6"] -vertices = PackedVector2Array(8, 8, -8, 8, -8, -8, 8, -8) -polygons = Array[PackedInt32Array]([PackedInt32Array(0, 1, 2, 3)]) -outlines = Array[PackedVector2Array]([PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)]) -agent_radius = 0.0 - -[sub_resource type="NavigationPolygon" id="NavigationPolygon_uanwu"] -vertices = PackedVector2Array(8, 8, -8, 8, -8, -8, 8, -8) -polygons = Array[PackedInt32Array]([PackedInt32Array(0, 1, 2, 3)]) -outlines = Array[PackedVector2Array]([PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)]) -agent_radius = 0.0 - -[sub_resource type="NavigationPolygon" id="NavigationPolygon_6t4b1"] -vertices = PackedVector2Array(8, 8, -8, 8, -8, -8, 8, -8) -polygons = Array[PackedInt32Array]([PackedInt32Array(0, 1, 2, 3)]) -outlines = Array[PackedVector2Array]([PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)]) -agent_radius = 0.0 - -[sub_resource type="NavigationPolygon" id="NavigationPolygon_ajuv4"] -vertices = PackedVector2Array(8, 8, -8, 8, -8, -8, 8, -8) -polygons = Array[PackedInt32Array]([PackedInt32Array(0, 1, 2, 3)]) -outlines = Array[PackedVector2Array]([PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)]) -agent_radius = 0.0 - -[sub_resource type="NavigationPolygon" id="NavigationPolygon_3ass8"] -vertices = PackedVector2Array(8, 8, -8, 8, -8, -8, 8, -8) -polygons = Array[PackedInt32Array]([PackedInt32Array(0, 1, 2, 3)]) -outlines = Array[PackedVector2Array]([PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)]) -agent_radius = 0.0 - -[sub_resource type="NavigationPolygon" id="NavigationPolygon_2t186"] -vertices = PackedVector2Array(8, 8, -8, 8, -8, -8, 8, -8) -polygons = Array[PackedInt32Array]([PackedInt32Array(0, 1, 2, 3)]) -outlines = Array[PackedVector2Array]([PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)]) -agent_radius = 0.0 - -[sub_resource type="NavigationPolygon" id="NavigationPolygon_63d1d"] -vertices = PackedVector2Array(8, 8, -8, 8, -8, -8, 8, -8) -polygons = Array[PackedInt32Array]([PackedInt32Array(0, 1, 2, 3)]) -outlines = Array[PackedVector2Array]([PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)]) -agent_radius = 0.0 - -[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_jwf4b"] -resource_name = "Factory" -texture = ExtResource("8_0km4o") -0:0/0 = 0 -1:0/0 = 0 -2:0/0 = 0 -3:0/0 = 0 -3:0/0/physics_layer_1/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -4:0/0 = 0 -5:0/0 = 0 -6:0/0 = 0 -7:0/0 = 0 -8:0/0 = 0 -9:0/0 = 0 -0:1/0 = 0 -1:1/0 = 0 -1:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -2:1/0 = 0 -3:1/0 = 0 -3:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, -8, 8, 8, 8, 8, -8) -4:1/0 = 0 -4:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -5:1/0 = 0 -5:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -6:1/0 = 0 -6:1/0/navigation_layer_0/polygon = SubResource("NavigationPolygon_uanwu") -7:1/0 = 0 -8:1/0 = 0 -9:1/0 = 0 -0:2/0 = 0 -1:2/0 = 0 -2:2/0 = 0 -3:2/0 = 0 -4:2/0 = 0 -5:2/0 = 0 -6:2/0 = 0 -6:2/0/navigation_layer_0/polygon = SubResource("NavigationPolygon_6t4b1") -7:2/0 = 0 -8:2/0 = 0 -9:2/0 = 0 -0:3/0 = 0 -0:3/0/navigation_layer_0/polygon = SubResource("NavigationPolygon_lnwgu") -1:3/0 = 0 -1:3/0/navigation_layer_0/polygon = SubResource("NavigationPolygon_ml1qs") -2:3/0 = 0 -2:3/0/navigation_layer_0/polygon = SubResource("NavigationPolygon_h4p0b") -3:3/0 = 0 -3:3/0/navigation_layer_0/polygon = SubResource("NavigationPolygon_1miy6") -4:3/animation_columns = 2 -4:3/0 = 0 -5:3/0 = 0 -7:3/0 = 0 -8:3/0 = 0 -9:3/0 = 0 -0:4/0 = 0 -0:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -1:4/0 = 0 -1:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -2:4/0 = 0 -2:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -3:4/0 = 0 -3:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -4:4/0 = 0 -5:4/0 = 0 -6:4/0 = 0 -7:4/0 = 0 -8:4/0 = 0 -9:4/0 = 0 -0:5/0 = 0 -0:5/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -1:5/0 = 0 -1:5/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -2:5/0 = 0 -2:5/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -3:5/0 = 0 -3:5/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -4:5/0 = 0 -4:5/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -5:5/0 = 0 -5:5/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -6:5/0 = 0 -6:5/0/navigation_layer_0/polygon = SubResource("NavigationPolygon_ajuv4") -7:5/0 = 0 -7:5/0/navigation_layer_0/polygon = SubResource("NavigationPolygon_ajuv4") -8:5/0 = 0 -8:5/0/navigation_layer_0/polygon = SubResource("NavigationPolygon_ajuv4") -9:5/0 = 0 -0:6/0 = 0 -0:6/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -1:6/0 = 0 -1:6/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -2:6/0 = 0 -2:6/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -3:6/0 = 0 -3:6/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -5:6/0 = 0 -5:6/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -6:6/0 = 0 -6:6/0/navigation_layer_0/polygon = SubResource("NavigationPolygon_3ass8") -7:6/0 = 0 -8:6/0 = 0 -8:6/0/navigation_layer_0/polygon = SubResource("NavigationPolygon_63d1d") -9:6/0 = 0 -0:7/0 = 0 -0:7/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -1:7/0 = 0 -1:7/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -2:7/0 = 0 -2:7/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -3:7/0 = 0 -3:7/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -5:7/0 = 0 -5:7/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -6:7/0 = 0 -6:7/0/navigation_layer_0/polygon = SubResource("NavigationPolygon_2t186") -7:7/0 = 0 -7:7/0/navigation_layer_0/polygon = SubResource("NavigationPolygon_2t186") -8:7/0 = 0 -8:7/0/navigation_layer_0/polygon = SubResource("NavigationPolygon_63d1d") -9:7/0 = 0 -0:8/0 = 0 -1:8/0 = 0 -2:8/0 = 0 -3:8/0 = 0 -4:8/0 = 0 -5:8/0 = 0 -6:8/0 = 0 -7:8/0 = 0 -8:8/0 = 0 -9:8/0 = 0 -0:9/0 = 0 -1:9/0 = 0 -2:9/0 = 0 -3:9/0 = 0 -4:9/0 = 0 -5:9/0 = 0 -6:9/0 = 0 -7:9/0 = 0 -8:9/0 = 0 -9:9/0 = 0 -0:10/0 = 0 -1:10/0 = 0 -2:10/0 = 0 -3:10/0 = 0 -4:10/0 = 0 -5:10/0 = 0 -6:10/0 = 0 -7:10/0 = 0 -8:10/0 = 0 -9:10/0 = 0 -0:11/0 = 0 -1:11/0 = 0 -2:11/0 = 0 -3:11/0 = 0 -4:11/0 = 0 -5:11/0 = 0 -6:11/0 = 0 -7:11/0 = 0 -8:11/0 = 0 -9:11/0 = 0 -0:12/0 = 0 -1:12/0 = 0 -2:12/0 = 0 -3:12/0 = 0 -4:12/0 = 0 -5:12/0 = 0 -6:12/0 = 0 -7:12/0 = 0 -8:12/0 = 0 -9:12/0 = 0 -0:13/0 = 0 -1:13/0 = 0 -2:13/0 = 0 -3:13/0 = 0 -4:13/0 = 0 -5:13/0 = 0 -6:13/0 = 0 -7:13/0 = 0 -8:13/0 = 0 -9:13/0 = 0 -0:14/0 = 0 -1:14/0 = 0 -2:14/0 = 0 -3:14/0 = 0 -4:14/0 = 0 -5:14/0 = 0 -6:14/0 = 0 -7:14/0 = 0 -8:14/0 = 0 -9:14/0 = 0 -6:3/0 = 0 -6:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-4, -6, -4, 0, 4, 0, 4, -6) - -[sub_resource type="TileSetScenesCollectionSource" id="TileSetScenesCollectionSource_qg3vu"] -resource_name = "Props" -scenes/1/scene = ExtResource("5_3uba3") -scenes/2/scene = ExtResource("15_m0y0j") -scenes/3/scene = ExtResource("12_hfkf1") -scenes/4/scene = ExtResource("14_y363m") -scenes/5/scene = ExtResource("6_nkauc") -scenes/6/scene = ExtResource("8_2wpw7") -scenes/7/scene = ExtResource("7_lmrl1") -scenes/8/scene = ExtResource("13_acrmt") -scenes/9/scene = ExtResource("10_yqt7i") - -[sub_resource type="TileSet" id="TileSet_d7en2"] -physics_layer_0/collision_layer = 1 -physics_layer_0/collision_mask = 30 -physics_layer_1/collision_layer = 32 -physics_layer_1/collision_mask = 18 -navigation_layer_0/layers = 1 -sources/0 = SubResource("TileSetAtlasSource_jwf4b") -sources/1 = SubResource("TileSetScenesCollectionSource_qg3vu") - [node name="GameScene" type="Node2D" node_paths=PackedStringArray("PlayerSpawnMarker")] position = Vector2(38, 39) script = ExtResource("1_8tmoj") @@ -311,18 +36,20 @@ PlayerSpawnMarker = NodePath("PlayerStartPosition") [node name="Liquids" type="TileMapLayer" parent="Factory Tilemaps"] use_parent_material = true tile_map_data = PackedByteArray("AACt//7/AAAEAAMAAACt////AAAEAAMAAACt/wAAAAAEAAMAAACu/wEAAAAEAAMAAACu/wIAAAAEAAMAAACt/wIAAAAEAAMAAACs/wIAAAAEAAMAAACr/wEAAAAEAAMAAACr/wAAAAAEAAMAAACs/wAAAAAEAAMAAACu////AAAEAAMAAACv////AAAEAAMAAACw////AAAEAAMAAACw/wAAAAAEAAMAAACv/wAAAAAEAAMAAACv/wEAAAAEAAMAAACt/wEAAAAEAAMAAACs/wEAAAAEAAMAAACu/wAAAAAEAAMAAACx////AAAEAAMAAACx/wAAAAAEAAMAAACr/wIAAAAEAAMAAACw/wEAAAAEAAMAAACv/wIAAAAEAAMAAACt/wMAAAAEAAMAAACy////AAAEAAMAAACy/wAAAAAEAAMAAACx/wEAAAAEAAMAAACw/wIAAAAEAAMAAACv/wMAAAAEAAMAAACu/wMAAAAEAAMAAACy/wEAAAAEAAMAAACx/wIAAAAEAAMAAACw/wMAAAAEAAMAAACz/wAAAAAEAAMAAAC0/wAAAAAEAAMAAACz/wEAAAAEAAMAAACy/wIAAAAEAAMAAACx/wMAAAAEAAMAAACz/wIAAAAEAAMAAAC0/wEAAAAEAAMAAAC1/wAAAAAEAAMAAAC2////AAAEAAMAAAC2/wAAAAAEAAMAAAC1/wEAAAAEAAMAAAC0/wIAAAAEAAMAAACz/wMAAAAEAAMAAACy/wMAAAAEAAMAAACx/wQAAAAEAAMAAAC0////AAAEAAMAAACz////AAAEAAMAAACs////AAAEAAMAAACr////AAAEAAMAAACq/wEAAAAEAAMAAACq/wIAAAAEAAMAAACw/wQAAAAEAAMAAACv/wQAAAAEAAMAAACu/wQAAAAEAAMAAACt/wQAAAAEAAMAAACs/wMAAAAEAAMAAACr/wMAAAAEAAMAAACq/wMAAAAEAAMAAACv//7/AAAEAAMAAACw//7/AAAEAAMAAACx//7/AAAEAAMAAACy//7/AAAEAAMAAACz//7/AAAEAAMAAAC0//7/AAAEAAMAAACs//7/AAAEAAMAAACu//7/AAAEAAMAAAC1////AAAEAAMAAAC1//7/AAAEAAMAAAC2/wEAAAAEAAMAAAC2/wIAAAAEAAMAAAC2/wMAAAAEAAMAAAC1/wMAAAAEAAMAAAC1/wQAAAAEAAMAAAC0/wQAAAAEAAMAAACz/wQAAAAEAAMAAACy/wQAAAAEAAMAAAC2/wQAAAAEAAMAAAC0/wMAAAAEAAMAAAC1/wIAAAAEAAMAAACr//7/AAAEAAMAAACq////AAAEAAMAAACp////AAAEAAMAAACp/wAAAAAEAAMAAACp/wEAAAAEAAMAAACp/wIAAAAEAAMAAACs/wQAAAAEAAMAAACr/wQAAAAEAAMAAACq/wQAAAAEAAMAAACp/wQAAAAEAAMAAACp/wMAAAAEAAMAAACq/wAAAAAEAAMAAACp//7/AAAEAAMAAACq//7/AAAEAAMAAAC2//7/AAAEAAMAAACp//3/AAAHAAEAAACq//3/AAAHAAEAAACr//3/AAAHAAEAAACs//3/AAAHAAEAAACt//3/AAAHAAEAAACu//3/AAAHAAEAAACv//3/AAAHAAEAAACw//3/AAAHAAEAAACx//3/AAAHAAEAAACy//3/AAAHAAEAAACz//3/AAAHAAEAAAC0//3/AAAHAAEAAAC1//3/AAAHAAEAAAC2//3/AAAHAAEAAACl//3/AAAHAAEAAACm//3/AAAHAAEAAACn//3/AAAHAAEAAACo//3/AAAHAAEAAACk//3/AAAHAAEAAACj//3/AAAHAAEAAACi//3/AAAHAAEAAACh//3/AAAHAAEAAACg//3/AAAHAAEAAACf//3/AAAHAAEAAACe//3/AAAHAAEAAACd//3/AAAHAAEAAACd//7/AAAEAAMAAACe//7/AAAEAAMAAACf//7/AAAEAAMAAACg//7/AAAEAAMAAACh//7/AAAEAAMAAACi//7/AAAEAAMAAACj//7/AAAEAAMAAACk//7/AAAEAAMAAACl//7/AAAEAAMAAACl////AAAEAAMAAACm////AAAEAAMAAACn////AAAEAAMAAACn//7/AAAEAAMAAACo//7/AAAEAAMAAACm//7/AAAEAAMAAACo////AAAEAAMAAACo/wAAAAAEAAMAAACo/wEAAAAEAAMAAACo/wIAAAAEAAMAAACo/wMAAAAEAAMAAACo/wQAAAAEAAMAAACn/wQAAAAEAAMAAACm/wQAAAAEAAMAAACl/wQAAAAEAAMAAACk/wQAAAAEAAMAAACj/wQAAAAEAAMAAACi/wQAAAAEAAMAAACh/wQAAAAEAAMAAACg/wQAAAAEAAMAAACg/wMAAAAEAAMAAACf/wMAAAAEAAMAAACe/wMAAAAEAAMAAACe/wQAAAAEAAMAAACd/wQAAAAEAAMAAACf/wQAAAAEAAMAAACd/wMAAAAEAAMAAACd/wIAAAAEAAMAAACd/wEAAAAEAAMAAACd/wAAAAAEAAMAAACd////AAAEAAMAAACe////AAAEAAMAAACe/wAAAAAEAAMAAACe/wEAAAAEAAMAAACe/wIAAAAEAAMAAACf////AAAEAAMAAACf/wAAAAAEAAMAAACf/wEAAAAEAAMAAACf/wIAAAAEAAMAAACg////AAAEAAMAAACg/wAAAAAEAAMAAACg/wEAAAAEAAMAAACg/wIAAAAEAAMAAACh////AAAEAAMAAACh/wAAAAAEAAMAAACh/wEAAAAEAAMAAACh/wIAAAAEAAMAAACh/wMAAAAEAAMAAACi/wEAAAAEAAMAAACi/wAAAAAEAAMAAACi////AAAEAAMAAACi/wIAAAAEAAMAAACj/wAAAAAEAAMAAACj////AAAEAAMAAACj/wEAAAAEAAMAAACj/wIAAAAEAAMAAACi/wMAAAAEAAMAAACk////AAAEAAMAAACk/wAAAAAEAAMAAACk/wEAAAAEAAMAAACk/wIAAAAEAAMAAACj/wMAAAAEAAMAAACl/wAAAAAEAAMAAACl/wIAAAAEAAMAAACl/wEAAAAEAAMAAACm/wAAAAAEAAMAAACm/wEAAAAEAAMAAACm/wIAAAAEAAMAAACl/wMAAAAEAAMAAACn/wEAAAAEAAMAAACn/wAAAAAEAAMAAACn/wIAAAAEAAMAAACm/wMAAAAEAAMAAACk/wMAAAAEAAMAAACn/wMAAAAEAAMAAACb////AAAEAAMAAADU//P/AAAEAAMAAADV//P/AAAEAAMAAADV//L/AAAEAAMAAADU//L/AAAEAAMAAADW//L/AAAEAAMAAADW//P/AAAEAAMAAACc//3/AAAHAAEAAACc//7/AAAEAAMAAACb//7/AAAEAAMAAACa//7/AAAEAAMAAACZ//7/AAAEAAMAAACa////AAAEAAMAAACc/wAAAAAEAAMAAACc/wEAAAAEAAMAAACc/wIAAAAEAAMAAACb/wMAAAAEAAMAAACb/wQAAAAEAAMAAACa/wQAAAAEAAMAAACZ/wQAAAAEAAMAAACZ/wMAAAAEAAMAAACZ/wIAAAAEAAMAAACZ/wEAAAAEAAMAAACZ/wAAAAAEAAMAAACa/wAAAAAEAAMAAACc////AAAEAAMAAACb/wAAAAAEAAMAAACb/wEAAAAEAAMAAACa/wEAAAAEAAMAAACZ////AAAEAAMAAACa/wMAAAAEAAMAAACb/wIAAAAEAAMAAACa/wIAAAAEAAMAAACc/wMAAAAEAAMAAACc/wQAAAAEAAMAAACb//3/AAAHAAEAAACa//3/AAAHAAEAAACZ//3/AAAHAAEAAAA=") -tile_set = SubResource("TileSet_d7en2") +tile_set = ExtResource("3_kgs2x") navigation_enabled = false -[node name="Floor" type="TileMapLayer" parent="Factory Tilemaps"] +[node name="Floor" type="TileMapLayer" parent="Factory Tilemaps" node_paths=PackedStringArray("_solidLayer")] use_parent_material = true tile_map_data = PackedByteArray("AADO//j/AAAAAAEAAADP//j/AAAAAAEAAADN//j/AAAAAAEAAADM//r/AAAAAAMAAADM//n/AAAAAAEAAADM//j/AAAAAAEAAADP//f/AAABAAMAAADP//z/AAAAAAMAAADO//z/AAAAAAMAAADN//z/AAAAAAMAAADM//v/AAAAAAMAAADM//z/AAAAAAMAAADQ//n/AAAAAAEAAADQ//j/AAAAAAEAAADR//j/AAAAAAEAAADR//f/AAABAAMAAADQ//z/AAAAAAMAAADR//z/AAAAAAMAAADR//3/AAAGAAEAAADS//z/AAAAAAMAAADS//v/AAAAAAMAAADS//r/AAAAAAMAAADS//n/AAAAAAEAAADS//f/AAAAAAEAAADQ//f/AAABAAMAAADS//j/AAAAAAEAAADM//b/AAACAAMAAADM//X/AAACAAMAAADN//X/AAACAAMAAADN//b/AAACAAMAAADO//b/AAACAAMAAADP//b/AAACAAMAAADP//X/AAACAAMAAADO//X/AAACAAMAAADQ//X/AAACAAMAAADR//X/AAACAAMAAADR//b/AAACAAMAAADQ//b/AAACAAMAAADR//r/AAAAAAMAAADQ//r/AAAAAAMAAADQ//v/AAAAAAMAAADP//v/AAAAAAMAAADO//v/AAAAAAMAAADN//v/AAAAAAMAAADN//r/AAAAAAMAAADN//n/AAAAAAEAAADO//n/AAAAAAEAAADP//n/AAAAAAEAAADP//r/AAAAAAMAAADO//r/AAAAAAMAAADR//v/AAAAAAMAAADR//n/AAAAAAEAAADN//f/AAADAAMAAADM//f/AAADAAMAAADO//f/AAADAAMAAADT//f/AAAAAAEAAADU//f/AAAAAAEAAADV//f/AAAAAAEAAADW//f/AAAAAAEAAADX//f/AAAAAAEAAADX//j/AAAAAAEAAADW//j/AAAAAAEAAADW//n/AAAAAAEAAADV//n/AAAAAAEAAADU//n/AAAAAAEAAADT//n/AAAAAAEAAADT//j/AAAAAAEAAADU//j/AAAAAAEAAADV//j/AAAAAAEAAADY//j/AAAAAAEAAADY//n/AAAAAAEAAADX//r/AAAAAAMAAADW//r/AAAAAAMAAADV//v/AAAAAAMAAADU//r/AAAAAAMAAADT//r/AAAAAAMAAADT//v/AAAAAAMAAADT//z/AAAAAAMAAADU//z/AAAAAAMAAADV//z/AAAAAAMAAADW//v/AAAAAAMAAADX//v/AAAAAAMAAADY//v/AAAAAAMAAADZ//v/AAAAAAMAAADZ//r/AAAAAAMAAADY//r/AAAAAAMAAADV//r/AAAAAAMAAADU//v/AAAAAAMAAADX//n/AAAAAAEAAADZ//z/AAAAAAMAAADY//z/AAAAAAMAAADX//z/AAAAAAMAAADW//z/AAAAAAMAAADQ//3/AAAGAAEAAADP//3/AAAGAAEAAADO//3/AAAGAAEAAADN//3/AAAGAAEAAADM//3/AAAGAAEAAADM//7/AAAGAAEAAADN//7/AAAGAAEAAADN////AAAGAAEAAADO//7/AAAGAAEAAADP//7/AAAGAAEAAADQ//7/AAAGAAEAAADS//3/AAAGAAEAAADT//3/AAAGAAEAAADU//3/AAAGAAEAAADV//3/AAAGAAEAAADW//3/AAAGAAEAAADX//3/AAADAAMAAADY//3/AAADAAMAAADZ//3/AAADAAMAAADZ//7/AAAAAAEAAADY//7/AAAAAAEAAADX//7/AAAAAAEAAADW//7/AAAGAAEAAADV//7/AAAGAAEAAADU//7/AAAGAAEAAADT//7/AAAGAAEAAADS//7/AAAGAAEAAADS////AAAGAAEAAADR////AAAGAAEAAADQ////AAAGAAEAAADP////AAAGAAEAAADO////AAAGAAEAAADR//7/AAAGAAEAAADY////AAAAAAEAAADZ////AAAAAAEAAADX////AAAAAAEAAADW////AAAGAAEAAADV////AAAGAAEAAADU////AAAGAAEAAADT////AAAGAAEAAADM////AAAGAAEAAADM/wAAAAAGAAEAAADN/wAAAAAGAAEAAADO/wAAAAAGAAEAAADP/wAAAAAGAAEAAADQ/wAAAAAGAAEAAADR/wAAAAAGAAEAAADS/wAAAAAGAAEAAADT/wAAAAAGAAEAAADU/wAAAAAGAAEAAADV/wAAAAAGAAEAAADW/wAAAAAGAAEAAADX/wAAAAAAAAEAAADY/wAAAAAAAAEAAADZ/wAAAAAAAAEAAADY//f/AAAAAAEAAADZ//f/AAAAAAEAAADZ//j/AAAAAAEAAADZ//n/AAAAAAEAAADR//P/AAADAAEAAADQ//P/AAADAAEAAADP//P/AAADAAEAAADM//L/AAABAAEAAADN//L/AAABAAEAAADO//L/AAABAAEAAADP//L/AAABAAEAAADQ//L/AAABAAEAAADR//L/AAABAAEAAADT//T/AAABAAcAAADU//T/AAABAAcAAADV//T/AAABAAcAAADW//T/AAABAAcAAADX//T/AAABAAcAAADY//T/AAABAAcAAADS//T/AAAAAAcAAADS//P/AAAAAAYAAADS//L/AAAAAAYAAADR//H/AAABAAcAAADQ//H/AAABAAcAAADP//H/AAABAAcAAADO//H/AAABAAcAAADN//H/AAABAAcAAADM//H/AAABAAcAAADL//L/AAACAAYAAADL//P/AAACAAYAAADL//T/AAACAAYAAADL//X/AAACAAYAAADL//b/AAACAAYAAADL//f/AAACAAYAAADL//j/AAACAAYAAADL//n/AAACAAYAAADL//r/AAACAAYAAADL//v/AAACAAYAAADL//z/AAACAAYAAADL//3/AAACAAYAAADL//7/AAACAAYAAADa/wEAAAAAAAYAAADa/wIAAAAAAAYAAADa/wMAAAAAAAYAAADa/wQAAAAAAAYAAADa/wUAAAAAAAYAAADV/wIAAAAAAAMAAADV/wMAAAAAAAMAAADU/wMAAAAAAAMAAADT/wMAAAAAAAMAAADT/wIAAAAAAAMAAADU/wIAAAAAAAMAAADS/wIAAAAAAAMAAADS/wEAAAAAAAMAAADT/wEAAAAAAAMAAADU/wEAAAAAAAMAAADV/wEAAAAAAAMAAADR/wIAAAAAAAMAAADQ/wIAAAAAAAMAAADP/wIAAAAAAAMAAADP/wEAAAAAAAMAAADO/wEAAAAAAAMAAADN/wEAAAAAAAMAAADM/wEAAAAAAAMAAADM/wIAAAAAAAMAAADM/wMAAAAAAAMAAADM/wQAAAAAAAMAAADN/wQAAAAAAAMAAADN/wMAAAAAAAMAAADO/wMAAAAAAAMAAADO/wIAAAAAAAMAAADQ/wEAAAAAAAMAAADR/wEAAAAAAAMAAADN/wIAAAAAAAMAAADN/wUAAAAAAAMAAADO/wUAAAAAAAMAAADO/wYAAAAAAAMAAADP/wYAAAAAAAMAAADP/wUAAAAAAAMAAADQ/wUAAAAAAAMAAADR/wQAAAAAAAMAAADR/wMAAAAAAAMAAADS/wMAAAAAAAMAAADQ/wMAAAAAAAMAAADP/wMAAAAAAAMAAADQ/wQAAAAAAAMAAADP/wQAAAAAAAMAAADO/wQAAAAAAAMAAADW/wMAAAAAAAMAAADX/wMAAAAAAAMAAADX/wIAAAAAAAMAAADW/wIAAAAAAAMAAADW/wEAAAAAAAMAAADX/wEAAAAAAAMAAADY/wEAAAAAAAMAAADZ/wEAAAAAAAMAAADZ/wIAAAAAAAMAAADZ/wMAAAAAAAMAAADZ/wQAAAAAAAMAAADY/wQAAAAAAAMAAADY/wUAAAAAAAMAAADY/wYAAAAAAAMAAADY/wcAAAAAAAMAAADX/wcAAAAAAAMAAADX/wYAAAAAAAMAAADX/wUAAAAAAAMAAADX/wQAAAAAAAMAAADY/wIAAAAAAAMAAADZ/wUAAAAAAAMAAADZ/wYAAAAAAAMAAADZ/wcAAAAAAAMAAADY/wMAAAAAAAMAAADW/wcAAAAAAAMAAADV/wcAAAAAAAMAAADU/wcAAAAAAAMAAADT/wcAAAAAAAMAAADS/wcAAAAAAAMAAADR/wcAAAAAAAMAAADQ/wcAAAAAAAMAAADQ/wYAAAAAAAMAAADR/wYAAAAAAAMAAADS/wYAAAAAAAMAAADS/wUAAAAAAAMAAADT/wUAAAAAAAMAAADU/wUAAAAAAAMAAADV/wUAAAAAAAMAAADW/wUAAAAAAAMAAADW/wYAAAAAAAMAAADU/wYAAAAAAAMAAADT/wYAAAAAAAMAAADV/wYAAAAAAAMAAADW/wQAAAAAAAMAAADV/wQAAAAAAAMAAADU/wQAAAAAAAMAAADT/wQAAAAAAAMAAADS/wQAAAAAAAMAAADP/wcAAAAAAAMAAADO/wcAAAAAAAMAAADN/wYAAAAAAAMAAADM/wYAAAAAAAMAAADM/wUAAAAAAAMAAADN/wcAAAAAAAMAAADR/wUAAAAAAAMAAADM/wcAAAAAAAMAAADM/wgAAAAAAAMAAADN/wgAAAAAAAMAAADO/wgAAAAAAAMAAADP/wgAAAAAAAMAAADQ/wgAAAAAAAMAAADR/wgAAAAAAAMAAADS/wgAAAAAAAMAAADT/wgAAAAAAAMAAADU/wgAAAAAAAMAAADV/wgAAAAAAAMAAADW/wgAAAAAAAMAAADX/wgAAAAAAAMAAADY/wgAAAAAAAMAAADZ/wgAAAAAAAMAAADY/wkAAAAAAAMAAADX/wkAAAAAAAMAAADW/wkAAAAAAAMAAADV/wkAAAAAAAMAAADU/wkAAAAAAAMAAADT/wkAAAAAAAMAAADS/wkAAAAAAAMAAADR/wkAAAAAAAMAAADQ/wkAAAAAAAMAAADP/wkAAAAAAAMAAADO/wkAAAAAAAMAAADN/wkAAAAAAAMAAADM/wkAAAAAAAMAAADZ/wkAAAAAAAMAAADL////AAACAAYAAADL/wAAAAACAAYAAADL/wEAAAACAAYAAADL/wIAAAACAAYAAADL/wMAAAACAAYAAADL/wQAAAACAAYAAADL/wUAAAACAAYAAADL/wYAAAACAAYAAADL/wcAAAACAAYAAADa/wYAAAAAAAYAAADa/wcAAAAAAAYAAADa/wgAAAAAAAYAAADa/wkAAAAAAAYAAADK/wgAAAABAAcAAADJ/wgAAAABAAcAAADI/wgAAAABAAcAAADH/wgAAAABAAcAAADG/wgAAAABAAcAAADM/woAAAAAAAMAAADN/woAAAAAAAMAAADO/woAAAAAAAMAAADP/woAAAAAAAMAAADQ/woAAAAAAAMAAADR/woAAAAAAAMAAADS/woAAAAAAAMAAADT/woAAAAAAAMAAADU/woAAAAAAAMAAADV/woAAAAAAAMAAADW/woAAAAAAAMAAADX/woAAAAAAAMAAADY/woAAAAAAAMAAADZ/woAAAAAAAMAAADZ/wsAAAAAAAMAAADY/wsAAAAAAAMAAADY/wwAAAAAAAMAAADX/wwAAAAAAAMAAADW/wwAAAAAAAMAAADV/wwAAAAAAAMAAADU/wwAAAAAAAMAAADT/wwAAAAAAAMAAADT/wsAAAAAAAMAAADS/wsAAAAAAAMAAADR/wsAAAAAAAMAAADQ/wsAAAAAAAMAAADP/wsAAAAAAAMAAADO/wsAAAAAAAMAAADN/wsAAAAAAAMAAADM/wsAAAAAAAMAAADK/wsAAAAAAAMAAADJ/wsAAAAAAAMAAADI/wsAAAAAAAMAAADH/wsAAAAAAAMAAADG/wsAAAAAAAMAAADG/wwAAAAAAAMAAADF/wwAAAAAAAMAAADF/wsAAAAAAAMAAADH/wwAAAAAAAMAAADI/wwAAAAAAAMAAADJ/wwAAAAAAAMAAADK/wwAAAAAAAMAAADL/wwAAAAAAAMAAADM/wwAAAAAAAMAAADN/wwAAAAAAAMAAADO/wwAAAAAAAMAAADP/wwAAAAAAAMAAADQ/wwAAAAAAAMAAADR/wwAAAAAAAMAAADS/wwAAAAAAAMAAADU/wsAAAAAAAMAAADV/wsAAAAAAAMAAADW/wsAAAAAAAMAAADX/wsAAAAAAAMAAADY/w0AAAAAAAMAAADZ/w0AAAAAAAMAAADZ/wwAAAAAAAMAAADX/w0AAAAAAAMAAADW/w0AAAAAAAMAAADV/w0AAAAAAAMAAADU/w0AAAAAAAMAAADT/w0AAAAAAAMAAADS/w0AAAAAAAMAAADR/w0AAAAAAAMAAADQ/w0AAAAAAAMAAADP/w0AAAAAAAMAAADO/w0AAAAAAAMAAADN/w0AAAAAAAMAAADM/w0AAAAAAAMAAADK/w0AAAAAAAMAAADJ/w0AAAAAAAMAAADI/w0AAAAAAAMAAADH/w0AAAAAAAMAAADG/w0AAAAAAAMAAADF/w0AAAAAAAMAAADF/w4AAAABAAUAAADG/w4AAAABAAUAAADH/w4AAAABAAUAAADI/w4AAAABAAUAAADJ/w4AAAABAAUAAADK/w4AAAABAAUAAADM/w4AAAAAAAMAAADN/w4AAAAAAAMAAADO/w4AAAAAAAMAAADP/w4AAAAAAAMAAADQ/w4AAAAAAAMAAADR/w4AAAAAAAMAAADS/w4AAAAAAAMAAADT/w4AAAAAAAMAAADU/w4AAAAAAAMAAADV/w4AAAAAAAMAAADW/w4AAAAAAAMAAADX/w4AAAAAAAMAAADY/w4AAAAAAAMAAADZ/w4AAAAAAAMAAADM/w8AAAABAAUAAADN/w8AAAABAAUAAADO/w8AAAABAAUAAADP/w8AAAABAAUAAADQ/w8AAAABAAUAAADR/w8AAAABAAUAAADS/w8AAAABAAUAAADT/w8AAAABAAUAAADU/w8AAAABAAUAAADV/w8AAAABAAUAAADW/w8AAAABAAUAAADX/w8AAAABAAUAAADY/w8AAAABAAUAAADZ/w8AAAABAAUAAADa/w4AAAAAAAYAAADa/w0AAAAAAAYAAADa/wwAAAAAAAYAAADa/wsAAAAAAAYAAADa/woAAAAAAAYAAADD/wgAAAABAAcAAADC/wgAAAABAAcAAADB/wgAAAABAAcAAADA/wgAAAABAAcAAAC//wgAAAABAAcAAADE/w4AAAABAAUAAADD/w4AAAABAAUAAADC/w4AAAABAAUAAADB/w4AAAABAAUAAADA/w4AAAABAAUAAAC//w4AAAABAAUAAADE/w0AAAAAAAMAAADE/wwAAAAAAAMAAADE/wsAAAAAAAMAAADD/wsAAAAAAAMAAADC/wsAAAAAAAMAAADB/wsAAAAAAAMAAADA/wsAAAAAAAMAAAC//wsAAAAAAAMAAAC//wwAAAAAAAMAAAC+/wwAAAAAAAMAAADA/wwAAAAAAAMAAADB/wwAAAAAAAMAAADC/wwAAAAAAAMAAADD/wwAAAAAAAMAAADD/w0AAAAAAAMAAADC/w0AAAAAAAMAAADB/w0AAAAAAAMAAADA/w0AAAAAAAMAAAC//w0AAAAAAAMAAAC+/w0AAAAAAAQAAAC+/wsAAAAFAAEAAAC9/w0AAAAGAAEAAAC9/wwAAAAGAAEAAAC9/wsAAAAGAAEAAAC8/wsAAAAGAAEAAAC8/wwAAAAGAAEAAAC8/w0AAAAGAAEAAAC7/w0AAAAGAAEAAAC7/wwAAAAGAAEAAAC7/wsAAAAGAAEAAAC6/wsAAAAGAAEAAAC6/wwAAAAGAAEAAAC5/wwAAAAGAAEAAAC4/wwAAAAGAAEAAAC5/w0AAAAGAAEAAAC5/wsAAAAGAAEAAAC4/w0AAAAGAAEAAAC3/wwAAAAGAAEAAAC6/w0AAAAGAAEAAAC3/wsAAAAGAAEAAAC4/wsAAAAGAAEAAAC3/w0AAAAGAAEAAACy/wAAAAAGAAIAAACy/wEAAAAGAAIAAACx/wEAAAAGAAIAAACw/wEAAAAGAAIAAACv/wEAAAAGAAIAAACu/wEAAAAGAAIAAACu/wAAAAAGAAIAAACt/wAAAAAGAAIAAACv/wAAAAAGAAIAAACw/wAAAAAGAAIAAACx/wAAAAAGAAIAAACt/wEAAAAGAAIAAACv////AAAGAAIAAACv//7/AAAGAAIAAACw//7/AAAGAAIAAACw////AAAGAAIAAACv//3/AAAGAAIAAACw//3/AAAGAAIAAACz/wAAAAAGAAIAAAC0/wAAAAAGAAIAAAC0/wEAAAAGAAIAAAC1/wEAAAAGAAIAAAC1/wAAAAAGAAIAAAC2/wAAAAAGAAIAAACz/wEAAAAGAAIAAAC2/wEAAAAGAAIAAACx////AAAGAAIAAACy////AAAGAAIAAACz////AAAGAAIAAAC0////AAAGAAIAAAC1////AAAGAAIAAAC2////AAAGAAIAAACx//7/AAAGAAIAAACx//3/AAAGAAIAAACs/wEAAAAGAAIAAACr/wEAAAAGAAIAAACq/wEAAAAGAAIAAACp/wEAAAAGAAIAAACp/wAAAAAGAAIAAACq/wAAAAAGAAIAAACr/wAAAAAGAAIAAACs/wAAAAAGAAIAAACp////AAAGAAIAAACq////AAAGAAIAAACr////AAAGAAIAAACs////AAAGAAIAAACt////AAAGAAIAAACu////AAAGAAIAAACu//7/AAAGAAIAAACu//3/AAAGAAIAAACp/wIAAAAGAAIAAACq/wIAAAAGAAIAAACr/wIAAAAGAAIAAACs/wIAAAAGAAIAAACt/wIAAAAGAAIAAACu/wIAAAAGAAIAAACv/wIAAAAGAAIAAACw/wIAAAAGAAIAAACx/wIAAAAGAAIAAACy/wIAAAAGAAIAAACz/wIAAAAGAAIAAAC0/wIAAAAGAAIAAAC1/wIAAAAGAAIAAAC2/wIAAAAGAAIAAACp//v/AAABAAEAAACq//v/AAABAAEAAACq//z/AAABAAEAAACr//z/AAABAAEAAACp//z/AAABAAEAAACs//z/AAABAAEAAACt//z/AAABAAEAAACu//z/AAABAAEAAACv//z/AAABAAEAAACw//z/AAABAAEAAACx//z/AAABAAEAAACy//z/AAABAAEAAACz//z/AAABAAEAAAC0//z/AAABAAEAAAC1//z/AAABAAEAAAC2//z/AAABAAEAAAC2//v/AAABAAEAAAC1//v/AAABAAEAAAC0//v/AAABAAEAAACz//v/AAABAAEAAACy//v/AAABAAEAAACx//v/AAABAAEAAACw//v/AAABAAEAAACv//v/AAABAAEAAACu//v/AAABAAEAAACt//v/AAABAAEAAACs//v/AAABAAEAAACr//v/AAABAAEAAACp//r/AAABAAcAAACq//r/AAABAAcAAACr//r/AAABAAcAAACs//r/AAABAAcAAACt//r/AAABAAcAAACu//r/AAABAAcAAACv//r/AAABAAcAAACw//r/AAABAAcAAACx//r/AAABAAcAAACy//r/AAABAAcAAACz//r/AAABAAcAAAC0//r/AAABAAcAAAC1//r/AAABAAcAAAC2//r/AAABAAcAAAC3/wAAAAACAAMAAAC3/wEAAAACAAMAAAC4/wEAAAACAAMAAAC4/wAAAAACAAMAAAC3/wIAAAAAAAUAAAC3//z/AAAAAAYAAAC3//v/AAAAAAYAAAC3/wQAAAAAAAYAAAC2/wUAAAABAAUAAAC1/wUAAAABAAUAAAC0/wUAAAABAAUAAACz/wUAAAABAAUAAACy/wUAAAABAAUAAACx/wUAAAABAAUAAACw/wUAAAABAAUAAACv/wUAAAABAAUAAACu/wUAAAABAAUAAACt/wUAAAABAAUAAACs/wUAAAABAAUAAACr/wUAAAABAAUAAACq/wUAAAABAAUAAACp/wUAAAABAAUAAAC5/wEAAAACAAMAAAC6/wEAAAACAAMAAAC5/wAAAAACAAMAAAC6/wAAAAACAAMAAAC7/wAAAAACAAMAAAC7/wEAAAACAAMAAAC8/wEAAAACAAMAAAC8/wAAAAACAAMAAAC3/wMAAAAAAAYAAADL/w4AAAACAAYAAADL/w0AAAAAAAQAAADL/wkAAAAAAAQAAADL/wgAAAACAAYAAAC+/woAAAAFAAEAAAC9/w4AAAABAAUAAAC8/w4AAAABAAUAAAC7/w4AAAABAAUAAAC+/wkAAAAAAAQAAADM//P/AAADAAEAAADN//P/AAADAAEAAADO//P/AAADAAEAAAC9/wkAAAAGAAEAAAC8/wkAAAAGAAEAAAC7/wkAAAAGAAEAAAC6/wkAAAAGAAEAAAC5/wkAAAAGAAEAAAC4/wkAAAAGAAEAAAC3/wkAAAAGAAEAAAC3/woAAAAGAAEAAAC2/woAAAAGAAEAAAC2/wkAAAAGAAEAAAC4/woAAAAGAAEAAAC5/woAAAAGAAEAAAC6/woAAAAGAAEAAAC7/woAAAAGAAEAAAC8/woAAAAGAAEAAAC9/woAAAAGAAEAAAC2/wsAAAAGAAEAAAC2/wwAAAAGAAEAAAC2/w0AAAAGAAEAAAC5/wgAAAACAAMAAAC6/wgAAAACAAMAAAC5/wcAAAACAAMAAAC6/wcAAAACAAMAAAC4/wUAAAACAAMAAAC5/wUAAAACAAMAAAC5/wYAAAACAAMAAAC6/wUAAAACAAMAAAC6/wYAAAACAAMAAAC7/wUAAAACAAMAAAC8/wUAAAACAAMAAAC9/wUAAAACAAMAAAC+/wUAAAACAAMAAAC//wUAAAACAAMAAADA/wUAAAACAAMAAADB/wQAAAACAAMAAADB/wMAAAACAAMAAADB/wIAAAACAAMAAADA/wMAAAACAAMAAADA/wQAAAACAAMAAADA/wIAAAACAAMAAADA/wEAAAACAAMAAADA/wAAAAACAAMAAAC//wEAAAACAAMAAAC+/wEAAAACAAMAAAC9/wEAAAACAAMAAAC9/wAAAAACAAMAAAC+/wAAAAACAAMAAAC//wAAAAACAAMAAADB/wAAAAACAAMAAADB/wEAAAACAAMAAADB/wUAAAACAAMAAADF/woAAAACAAMAAADE/woAAAACAAMAAADE/wkAAAACAAMAAADF/wkAAAACAAMAAADE/wgAAAACAAMAAADF/wgAAAACAAMAAADE/wcAAAACAAMAAADD/wcAAAACAAMAAADD/wYAAAACAAMAAADD/wUAAAACAAMAAADE/wUAAAACAAMAAADF/wUAAAACAAMAAADG/wUAAAACAAMAAADH/wUAAAACAAMAAADI/wUAAAACAAMAAADJ/wUAAAACAAMAAADJ/wYAAAACAAMAAADI/wYAAAACAAMAAADI/wcAAAACAAMAAADH/wcAAAACAAMAAADG/wcAAAACAAMAAADG/wYAAAACAAMAAADF/wYAAAACAAMAAADE/wYAAAACAAMAAADH/wYAAAACAAMAAADF/wcAAAACAAMAAADJ/wcAAAACAAMAAADK//L/AAAAAAMAAADJ//L/AAAAAAMAAADI//L/AAAAAAMAAADH//L/AAAAAAMAAADG//L/AAAAAAMAAADF//L/AAAAAAMAAADF//P/AAAAAAMAAADG//P/AAAAAAMAAADH//T/AAAAAAMAAADI//P/AAAAAAMAAADJ//P/AAAAAAMAAADG//T/AAAAAAMAAADH//P/AAAAAAMAAADK//P/AAAAAAMAAADK//T/AAAAAAMAAADK//X/AAAAAAMAAADK//b/AAAAAAMAAADJ//f/AAAAAAEAAADJ//b/AAAAAAMAAADJ//X/AAAAAAMAAADJ//T/AAAAAAMAAADF//T/AAAAAAMAAADF//X/AAAAAAMAAADG//b/AAAAAAMAAADH//b/AAAAAAMAAADH//X/AAAAAAMAAADI//T/AAAAAAMAAADG//X/AAAAAAMAAADI//X/AAAAAAMAAADI//b/AAAAAAMAAADI//f/AAABAAMAAADI//j/AAAAAAEAAADI//n/AAAAAAEAAADK//f/AAAAAAEAAADK//j/AAAAAAEAAADJ//j/AAAAAAEAAADH//f/AAABAAMAAADG//f/AAAAAAEAAADH//j/AAAAAAEAAADG//n/AAAAAAEAAADG//r/AAAAAAEAAADF//r/AAAAAAEAAADF//n/AAAAAAEAAADF//j/AAAAAAEAAADE//f/AAAAAAEAAADE//b/AAAAAAMAAADF//b/AAAAAAMAAADF//f/AAAAAAEAAADF//v/AAAAAAEAAADE//r/AAAAAAEAAADE//n/AAAAAAEAAADE//j/AAAAAAEAAADE//X/AAAAAAMAAADE//T/AAAAAAMAAADE//P/AAAAAAMAAADE//v/AAAAAAEAAADH//n/AAAAAAEAAADH//r/AAAAAAEAAADG//j/AAAAAAEAAADH//v/AAAAAAEAAADH//z/AAAAAAEAAADI//r/AAAAAAEAAADJ//n/AAAAAAEAAADJ//r/AAAAAAEAAADJ//v/AAAAAAEAAADK//r/AAAAAAEAAADK//n/AAAAAAEAAADK//v/AAAAAAEAAADI//v/AAAAAAEAAADI//z/AAAAAAEAAADG//z/AAAAAAEAAADG//v/AAAAAAEAAADF//z/AAAAAAEAAADE//z/AAAAAAEAAADJ//z/AAAAAAEAAADK//z/AAAAAAEAAADE//L/AAAAAAMAAADE//3/AAAAAAEAAADE//7/AAAAAAEAAADF//7/AAAAAAEAAADG//7/AAAAAAEAAADH//7/AAAAAAEAAADI//7/AAAAAAEAAADJ//7/AAAAAAEAAADK//7/AAAAAAEAAADK//3/AAAAAAEAAADJ//3/AAAAAAEAAADI//3/AAAAAAEAAADH//3/AAAAAAEAAADG//3/AAAAAAEAAADF//3/AAAAAAEAAACo////AAAGAAIAAACo/wAAAAAGAAIAAACo/wEAAAAGAAIAAACn/wEAAAAGAAIAAACn/wIAAAAGAAIAAACm/wEAAAAGAAIAAACm/wAAAAAGAAIAAACn/wAAAAAGAAIAAACn////AAAGAAIAAACo/wIAAAAGAAIAAACm/wIAAAAGAAIAAACl/wIAAAAGAAIAAACk/wIAAAAGAAIAAACk/wEAAAAGAAIAAACk/wAAAAAGAAIAAACl/wAAAAAGAAIAAACl////AAAGAAIAAACm////AAAGAAIAAACl/wEAAAAGAAIAAACk////AAAGAAIAAACj/wEAAAAGAAIAAACj/wIAAAAGAAIAAACi/wIAAAAGAAIAAACi/wEAAAAGAAIAAACi/wAAAAAGAAIAAACi////AAAGAAIAAACj////AAAGAAIAAACj/wAAAAAGAAIAAACi//7/AAAGAAIAAACi//3/AAAGAAIAAACj//3/AAAGAAIAAACj//7/AAAGAAIAAACj//z/AAAAAAMAAACi//z/AAAAAAMAAACi//v/AAAAAAMAAACj//v/AAAAAAMAAACi//r/AAAAAAMAAACj//r/AAAAAAMAAACk//n/AAAAAAMAAACj//n/AAAAAAMAAACi//n/AAAAAAMAAACh//n/AAAAAAMAAACh//j/AAAAAAMAAACh//f/AAAAAAMAAACi//f/AAAAAAMAAACj//f/AAAAAAMAAACj//j/AAAAAAMAAACk//j/AAAAAAMAAACi//j/AAAAAAMAAACk//f/AAAAAAMAAACk//b/AAAAAAMAAACj//b/AAAAAAMAAACi//b/AAAAAAMAAACh//X/AAAAAAMAAACh//b/AAAAAAMAAACi//X/AAAAAAMAAACj//X/AAAAAAMAAACk//X/AAAAAAMAAACg//f/AAAAAAMAAACg//b/AAAAAAMAAACf//b/AAAAAAMAAACe//b/AAAAAAMAAACe//f/AAAAAAMAAACf//f/AAAAAAMAAACe//X/AAAAAAMAAACe//T/AAAAAAMAAACd//T/AAAAAAMAAACc//T/AAAAAAMAAACc//X/AAAAAAMAAACc//b/AAAGAAIAAACd//b/AAAAAAMAAACd//X/AAAAAAMAAACd//f/AAAAAAMAAACc//f/AAAGAAIAAACc//j/AAAAAAMAAACd//j/AAAAAAMAAACe//j/AAAAAAMAAACe//n/AAAAAAMAAACd//n/AAAAAAMAAACc//n/AAAAAAMAAACb//n/AAAAAAMAAACb//j/AAAAAAMAAACb//f/AAAGAAIAAACb//T/AAAAAAMAAACb//X/AAAAAAMAAACb//b/AAAGAAIAAACa//j/AAAAAAMAAACa//n/AAAAAAMAAACZ//j/AAAAAAMAAACZ//f/AAAAAAMAAACZ//b/AAAAAAMAAACZ//X/AAAAAAMAAACZ//T/AAAAAAMAAACa//T/AAAAAAMAAACa//X/AAAAAAMAAACa//b/AAAAAAMAAACa//f/AAAAAAMAAACZ//n/AAAAAAMAAACY//n/AAAAAAMAAACY//j/AAAAAAMAAACY//f/AAAAAAMAAACY//b/AAAAAAMAAACY//X/AAAAAAMAAACY//T/AAAAAAMAAACi/+3/AAAAAAMAAACi/+z/AAAAAAMAAACi/+v/AAAAAAMAAACj/+v/AAAAAAMAAACj/+z/AAAAAAMAAACj/+3/AAAAAAMAAACh/+3/AAAAAAMAAACh/+7/AAAAAAMAAACh/+//AAAAAAMAAACh//D/AAAAAAMAAACh//H/AAAAAAMAAACi//H/AAAAAAMAAACi//D/AAAAAAMAAACi/+//AAAAAAMAAACi/+7/AAAAAAMAAACj/+7/AAAAAAMAAACk/+3/AAAAAAMAAACk/+7/AAAAAAMAAACk/+//AAAAAAMAAACk//D/AAAAAAMAAACj//D/AAAAAAMAAACj//H/AAAAAAMAAACj//L/AAAAAAMAAACj//P/AAAAAAMAAACj//T/AAAAAAMAAACk//T/AAAAAAMAAACk//P/AAAAAAMAAACk//L/AAAAAAMAAACk//H/AAAAAAMAAACj/+//AAAAAAMAAACZ//P/AAAAAAMAAACZ//L/AAAAAAMAAACZ//H/AAAAAAMAAACZ//D/AAAAAAMAAACZ/+//AAAAAAMAAACY/+//AAAAAAMAAACY//D/AAAAAAMAAACY//H/AAAAAAMAAACY//L/AAAAAAMAAACY//P/AAAAAAMAAACX//j/AAAAAAMAAACX//n/AAAAAAMAAACX//f/AAAAAAMAAACX//b/AAAAAAMAAACX//X/AAAAAAMAAACX//T/AAAAAAMAAACX//P/AAAAAAMAAACX//L/AAAAAAMAAACX//H/AAAAAAMAAACX//D/AAAAAAMAAACX/+//AAAAAAMAAAC4/wQAAAACAAMAAAC5/wQAAAACAAMAAAC6/wQAAAACAAMAAAC7/wQAAAACAAMAAAC8/wQAAAACAAMAAAC9/wQAAAACAAMAAAC+/wQAAAACAAMAAAC//wQAAAACAAMAAAA=") -tile_set = SubResource("TileSet_d7en2") +tile_set = ExtResource("3_kgs2x") +script = ExtResource("4_p1fl3") +_solidLayer = NodePath("../Solid2") [node name="Solid2" type="TileMapLayer" parent="Factory Tilemaps" groups=["Solid"]] use_parent_material = true -tile_map_data = PackedByteArray("AADL//L/AAAAAAQAAADL//P/AAAAAAQAAADL//T/AAAAAAQAAADL//X/AAAAAAQAAADL//b/AAAAAAQAAADL//f/AAAAAAQAAADL//j/AAAAAAQAAADL//n/AAAAAAQAAADL//r/AAAAAAQAAADL//v/AAAAAAQAAADL//z/AAAAAAQAAADS//T/AAAAAAcAAADM//H/AAABAAcAAADN//H/AAABAAcAAADO//H/AAABAAcAAADP//H/AAABAAcAAADT//T/AAABAAcAAADU//T/AAABAAcAAADV//T/AAABAAcAAADW//T/AAABAAcAAADX//T/AAABAAcAAADO//f/AAADAAAAAADN//f/AAADAAAAAADM//f/AAADAAAAAADS//f/AAADAAAAAADO//r/AAADAAAAAADN//r/AAADAAAAAADM//r/AAADAAAAAADS//r/AAADAAAAAADT//r/AAADAAAAAADU//r/AAADAAAAAADV//r/AAADAAAAAADW//r/AAADAAAAAADX//r/AAADAAAAAADa//f/AAAAAAYAAADa//n/AAAAAAYAAADa//r/AAAAAAYAAADa//v/AAAAAAYAAADa//z/AAAAAAYAAADa//3/AAAAAAYAAADa//7/AAAAAAYAAADL//3/AAAAAAQAAADL//7/AAAAAAQAAADa////AAAAAAYAAADa/wAAAAAAAAYAAADY//r/AAADAAAAAADZ//r/AAADAAAAAADM//3/AAAEAAUAAADN//3/AAAEAAUAAADO//3/AAAEAAUAAADP//3/AAAEAAUAAADQ//3/AAAEAAUAAADR//3/AAAEAAUAAADS//3/AAAEAAUAAADT//3/AAAFAAUAAADX//3/AAADAAUAAADY//3/AAAEAAUAAADZ//3/AAAEAAUAAADX//7/AAADAAcAAADY////AAAEAAUAAADZ////AAAEAAUAAADT//7/AAAFAAcAAADS//7/AAAEAAUAAADR//7/AAAEAAUAAADQ//7/AAAEAAUAAADP//7/AAAEAAUAAADO//7/AAAEAAUAAADN//7/AAAEAAUAAADM//7/AAAEAAUAAADX/wEAAAAFAAcAAADW/wEAAAAEAAUAAADV/wEAAAAEAAUAAADU/wEAAAAEAAUAAADT/wEAAAAEAAUAAADX/wAAAAADAAYAAAC2////AAADAAAAAAC1////AAADAAAAAAC0////AAADAAAAAACz////AAADAAAAAACy////AAADAAAAAACx////AAADAAAAAACx//7/AAADAAAAAACx//3/AAADAAAAAAC2/wIAAAADAAAAAAC1/wIAAAADAAAAAAC0/wIAAAADAAAAAACz/wIAAAADAAAAAACy/wIAAAADAAAAAACx/wIAAAADAAAAAACw/wIAAAADAAAAAACv/wIAAAADAAAAAACu/wIAAAADAAAAAACt/wIAAAADAAAAAACs/wIAAAADAAAAAACu////AAADAAAAAACu//7/AAADAAAAAACu//3/AAADAAAAAACt////AAADAAAAAACs////AAADAAAAAACr////AAADAAAAAACq////AAADAAAAAACp////AAADAAAAAACr/wIAAAADAAAAAACq/wIAAAADAAAAAACp/wIAAAADAAAAAADQ/wEAAAADAAUAAADR/wEAAAAEAAUAAADS/wEAAAAEAAUAAADQ/wIAAAADAAYAAADQ/wMAAAADAAcAAADR/wMAAAAEAAUAAADX////AAADAAUAAADY//7/AAAEAAUAAADZ//7/AAAEAAUAAADL/wkAAAAEAAQAAADM/wAAAQAAAAAAAQDM/wEAAQAAAAAAAQDM/wIAAQAAAAAAAQDM/wMAAQAAAAAAAQDR//b/AQAAAAAAAgDH//L/AQAAAAAABQDG//f/AAADAAAAAADG//r/AQAAAAAABwDR//X/AQAAAAAAAQDM//T/AAABAAEAAADN//T/AAABAAEAAADO//T/AAABAAEAAADP//T/AAABAAEAAADQ//T/AAABAAEAAADR//T/AAABAAEAAADS//X/AAAEAAEAAADS//b/AAAEAAEAAADT//X/AAABAAEAAADT//b/AAABAAEAAADV//b/AAABAAEAAADV//X/AAABAAEAAADX//b/AAABAAEAAADX//X/AAABAAEAAADZ//b/AAABAAEAAADZ//X/AAABAAEAAADa//j/AAAAAAYAAADL////AAACAAYAAADL/wAAAAACAAYAAADL/wEAAAACAAYAAADL/wIAAAACAAYAAADL/wMAAAACAAYAAADL/wQAAAACAAYAAADL/wUAAAACAAYAAADL/wYAAAACAAYAAADL/wcAAAACAAYAAADL/wgAAAACAAYAAADa/wEAAAAAAAYAAADa/wIAAAAAAAYAAADa/wMAAAAAAAYAAADa/wQAAAAAAAYAAADa/wUAAAAAAAYAAADa/wYAAAAAAAYAAADa/wcAAAAAAAYAAADa/wgAAAAAAAYAAADa/wkAAAAAAAYAAADa/woAAAAAAAYAAADa/wsAAAAAAAYAAADa/wwAAAAAAAYAAADa/w0AAAAAAAYAAADa/w4AAAAAAAYAAADZ/w8AAAABAAUAAADY/w8AAAABAAUAAADX/w8AAAABAAUAAADW/w8AAAABAAUAAADV/w8AAAABAAUAAADU/w8AAAABAAUAAADT/w8AAAABAAUAAADS/w8AAAABAAUAAADR/w8AAAABAAUAAADQ/w8AAAABAAUAAADP/w8AAAABAAUAAADO/w8AAAABAAUAAADN/w8AAAABAAUAAADM/w8AAAABAAUAAADL/w4AAAACAAYAAADL/w0AAAAFAAQAAADK/w4AAAABAAUAAADJ/w4AAAABAAUAAADI/w4AAAABAAUAAADH/w4AAAABAAUAAADG/w4AAAABAAUAAADF/w4AAAABAAUAAADE/w4AAAABAAUAAADL/wsAAAAFAAEAAADL/woAAAAFAAEAAADK/woAAAABAAEAAADI/woAAAABAAEAAADH/woAAAABAAEAAADH/wkAAAABAAEAAADI/wkAAAABAAEAAADK/wkAAAABAAEAAADB/woAAAABAAEAAADC/woAAAABAAEAAADC/wkAAAABAAEAAADB/wkAAAABAAEAAAC//woAAAABAAEAAAC//wkAAAABAAEAAADJ/wkAAAADAAEAAADG/woAAAADAAEAAADG/wkAAAADAAEAAADD/woAAAADAAEAAADD/wkAAAADAAEAAADA/woAAAADAAEAAADA/wkAAAADAAEAAADD/w4AAAABAAUAAADC/w4AAAABAAUAAADB/w4AAAABAAUAAADA/w4AAAABAAUAAAC//w4AAAABAAUAAADU//b/AAADAAEAAADU//X/AAADAAEAAADW//b/AAADAAEAAADW//X/AAADAAEAAADY//b/AAADAAEAAADY//X/AAADAAEAAADT/wkAAQAAAAAAAgDU/wkAAQAAAAAAAgDU/woAAQAAAAAAAgDT/woAAQAAAAAAAgDT/wsAAQAAAAAAAgDU/wsAAQAAAAAAAgDU/wwAAQAAAAAAAgDT/wwAAQAAAAAAAgDS/wwAAQAAAAAAAgDR/wwAAQAAAAAAAgDR/wsAAQAAAAAAAgDS/wsAAQAAAAAAAgDS/woAAQAAAAAAAgDR/woAAQAAAAAAAgDS/wkAAQAAAAAAAgDR/wkAAQAAAAAAAgDM/woAAAAGAAMAAAC+/w0AAAAFAAQAAAC+/wkAAAAEAAQAAADB/wsAAQAAAAAAAgC8/w0AAQAAAAAAAgDA/wsAAQAAAAAAAQDZ/w0AAQAAAAAAAQDZ/w4AAQAAAAAAAQDY/w4AAQAAAAAAAQDM/w4AAQAAAAAAAQC9/wgAAAACAAEAAAC8/wgAAAACAAEAAAC7/wgAAAACAAEAAAC4/wgAAAACAAEAAAC3/wgAAAACAAEAAAC2/wgAAAACAAEAAAC1/wgAAAACAAYAAAC1/wkAAAACAAYAAAC1/woAAAACAAYAAAC1/wsAAAACAAYAAAC1/wwAAAACAAYAAAC1/w0AAAACAAYAAAC2/w4AAAABAAUAAAC3/w4AAAABAAUAAAC4/w4AAAABAAUAAAC5/w4AAAABAAUAAAC6/w4AAAABAAUAAAC7/w4AAAABAAUAAAC8/w4AAAABAAUAAAC9/w4AAAABAAUAAAC1/w4AAAAAAAkAAAC+/wgAAAAAAAYAAAC+/wcAAAAAAAYAAAC7/wcAAAACAAEAAAC8/wcAAAACAAEAAAC9/wcAAAACAAEAAAC4/wcAAAACAAEAAAC3/wcAAAACAAEAAAC2/wcAAAACAAEAAAC2/wYAAAABAAcAAAC4/wYAAAADAAQAAAC7/wYAAAACAAQAAAC8/wYAAAABAAQAAAC9/wYAAAABAAQAAAC5/wMAAAADAAEAAAC6/wMAAAADAAEAAAC7/wMAAAABAAEAAAC4/wMAAAABAAEAAAC3/wMAAAAAAAQAAAC3/wQAAAAAAAQAAAC//wMAAAAFAAEAAAC+/wMAAAABAAEAAAC9/wMAAAADAAEAAAC8/wMAAAABAAEAAAC4/wIAAAABAAEAAAC5/wIAAAADAAEAAAC6/wIAAAADAAEAAAC7/wIAAAABAAEAAAC8/wIAAAABAAEAAAC9/wIAAAADAAEAAAC+/wIAAAABAAEAAAC//wIAAAAFAAEAAAC3/wYAAAABAAcAAAC3/wUAAAACAAYAAAC1/wcAAAACAAYAAAC5//7/AAADAAEAAAC5////AAADAAEAAAC8//7/AAADAAEAAAC8////AAADAAEAAAC9////AAABAAEAAAC+////AAABAAEAAAC/////AAABAAEAAADA////AAADAAEAAADB////AAABAAEAAADB//7/AAABAAEAAADA//7/AAADAAEAAAC///7/AAABAAEAAAC+//7/AAABAAEAAAC9//7/AAABAAEAAAC3////AAABAAEAAAC4////AAABAAEAAAC4//7/AAABAAEAAAC3//7/AAABAAEAAAC6//7/AAABAAEAAAC7//7/AAABAAEAAAC7////AAABAAEAAAC6////AAABAAEAAADC//7/AAAAAAYAAADC////AAAAAAYAAADC/wAAAAAAAAYAAADC/wEAAAAAAAYAAADC/wIAAAAAAAYAAADC/wMAAAAAAAQAAADC/wQAAAAAAAQAAADC/wUAAAAAAAQAAAC+/wYAAAABAAUAAAC//wYAAAABAAUAAADA/wYAAAABAAUAAADB/wYAAAABAAUAAAC4//3/AAABAAcAAAC5//3/AAABAAcAAAC6//3/AAABAAcAAAC7//3/AAABAAcAAAC8//3/AAABAAcAAAC9//3/AAABAAcAAAC+//3/AAABAAcAAAC///3/AAABAAcAAADA//3/AAABAAcAAADB//3/AAABAAcAAAC3//3/AAAAAAcAAAC3/wIAAAAFAAQAAADQ/wgAAAAGAAUAAADR/wgAAAAHAAUAAADS/wgAAAAHAAUAAADT/wgAAAAHAAUAAADU/wgAAAAHAAUAAADV/wgAAAAIAAUAAADV/wkAAAAIAAYAAADV/woAAAAIAAYAAADV/wsAAAAIAAYAAADV/wwAAAAIAAYAAADV/w0AAAAIAAcAAADU/w0AAAAHAAcAAADT/w0AAAAHAAcAAADS/w0AAAAHAAcAAADR/w0AAAAHAAcAAADQ/w0AAAAGAAcAAADQ/wwAAAAGAAYAAADQ/wsAAAAGAAYAAADQ/woAAAAGAAYAAADQ/wkAAAAGAAYAAADG/wgAAAACAAQAAADD/wgAAAADAAQAAADC/wcAAAACAAYAAADC/wYAAAACAAYAAADD/wMAAAACAAEAAADE/wMAAAACAAEAAADF/wMAAAACAAEAAADG/wMAAAACAAEAAADH/wMAAAACAAEAAADI/wMAAAACAAEAAADJ/wMAAAACAAEAAADJ/wQAAAACAAEAAADI/wQAAAACAAEAAADH/wQAAAACAAEAAADG/wQAAAACAAEAAADF/wQAAAACAAEAAADE/wQAAAACAAEAAADD/wQAAAACAAEAAADK/wMAAAAAAAYAAADK/wQAAAAAAAYAAADK/wUAAAAAAAYAAADK/wYAAAAAAAYAAADK/wcAAAAAAAYAAADJ/wgAAAABAAQAAADI/wgAAAABAAQAAADH/wgAAAABAAQAAADJ/woAAAADAAEAAADI/wsAAQAAAAAACQDD/wsAAQAAAAAACQDC/wsAAQAAAAAACQDY//f/AQAAAAAABgDZ//n/AQAAAAAAAQDY//n/AQAAAAAAAQDJ//f/AAADAAAAAADK//f/AAADAAAAAADF//f/AAADAAAAAADK////AAABAAUAAADJ////AAABAAUAAADI////AAABAAUAAADH////AAABAAUAAADG////AAABAAUAAADF////AAABAAUAAADE////AAABAAUAAADD//7/AAACAAYAAADD//3/AAACAAYAAADD//z/AAACAAYAAADD//v/AAACAAYAAADD//r/AAACAAYAAADD//n/AAACAAYAAADD//j/AAACAAYAAADD//f/AAACAAYAAADD//b/AAACAAYAAADD//X/AAACAAYAAADD//T/AAACAAYAAADD//P/AAACAAYAAADD//L/AAACAAYAAADD//H/AAACAAYAAADE/+//AAABAAcAAADF/+//AAABAAcAAADG/+//AAABAAcAAADH/+//AAABAAcAAADI/+//AAABAAcAAADJ/+//AAABAAcAAADK/+//AAABAAcAAADL//H/AAAAAAYAAADL//D/AAAAAAYAAADD//D/AAACAAYAAADE//D/AAABAAEAAADF//D/AAABAAEAAADG//D/AAABAAEAAADH//D/AAABAAEAAADI//D/AAABAAEAAADJ//D/AAABAAEAAADK//D/AAABAAEAAADK//H/AAABAAEAAADJ//H/AAABAAEAAADI//H/AAABAAEAAADH//H/AAABAAEAAADG//H/AAABAAEAAADF//H/AAABAAEAAADE//H/AAABAAEAAADE//f/AAADAAAAAAC9/woAAAAGAAMAAACh//z/AAAFAAEAAACh//v/AAAFAAEAAACk//z/AAAEAAEAAACk//v/AAAEAAEAAACf//j/AAAAAAUAAACg//j/AAACAAUAAACg//n/AAACAAYAAACh//r/AAADAAQAAACk//r/AAACAAQAAACl//n/AAAAAAYAAACl//j/AAAAAAYAAACl//f/AAAAAAYAAACl//b/AAAAAAYAAACl//X/AAAAAAYAAACl//r/AAABAAcAAACm//r/AAABAAcAAACn//r/AAABAAcAAACo//r/AAABAAcAAACl//z/AAABAAEAAACm//z/AAABAAEAAACn//z/AAABAAEAAACo//z/AAABAAEAAACo//v/AAABAAEAAACn//v/AAABAAEAAACm//v/AAABAAEAAACl//v/AAABAAEAAACo////AAADAAAAAACn////AAADAAAAAACm////AAADAAAAAACl////AAADAAAAAACk////AAADAAAAAACo/wIAAAADAAAAAACn/wIAAAADAAAAAACm/wIAAAADAAAAAACl/wIAAAADAAAAAACk/wIAAAADAAAAAACj/wIAAAADAAAAAACi/wIAAAADAAAAAACk//7/AAADAAAAAACk//3/AAADAAAAAACh//3/AAADAAAAAACh//7/AAADAAAAAACh////AAADAAAAAACh/wAAAAADAAAAAACh/wEAAAADAAAAAACh/wIAAAADAAAAAACh//T/AAABAAEAAACi//T/AAAFAAEAAACi//P/AAAFAAEAAACh//P/AAABAAEAAACi//L/AAADAAQAAACh//L/AAABAAQAAACg//P/AAACAAcAAACg//T/AAABAAEAAACg//X/AAABAAEAAACf//X/AAABAAEAAACf//T/AAABAAEAAACf//P/AAAAAAcAAACe//P/AAABAAEAAACd//P/AAABAAEAAACc//P/AAABAAEAAACY//r/AAABAAQAAACZ//r/AAABAAQAAACa//r/AAABAAQAAACb//r/AAABAAQAAACc//r/AAABAAQAAACd//r/AAABAAQAAACe//r/AAABAAQAAACf//n/AAAAAAYAAACe//H/AAABAAcAAACd//H/AAABAAcAAACc//H/AAABAAcAAACb//H/AAABAAcAAACa//H/AAAAAAcAAACe//L/AAABAAEAAACd//L/AAABAAEAAACc//L/AAABAAEAAACb//L/AAABAAEAAACa//L/AAABAAEAAACa//P/AAABAAEAAACb//P/AAABAAEAAACa/+//AAAAAAYAAACa//D/AAAAAAYAAACf//L/AAAAAAYAAACg//v/AAABAAEAAACf//v/AAABAAEAAACe//v/AAABAAEAAACd//v/AAABAAEAAACc//v/AAABAAEAAACb//v/AAABAAEAAACb//z/AAABAAEAAACc//z/AAABAAEAAACd//z/AAABAAEAAACe//z/AAABAAEAAACf//z/AAABAAEAAACg//z/AAABAAEAAACa//z/AAABAAEAAACa//v/AAABAAEAAACZ//v/AAABAAEAAACZ//z/AAABAAEAAACg//r/AAABAAcAAACf//r/AAABAAcAAACl//L/AAAAAAYAAACl//P/AAAAAAYAAACl//T/AAAAAAYAAACl//H/AAAAAAYAAACl//D/AAAAAAYAAACl/+//AAAAAAYAAACl/+7/AAAAAAYAAACg//H/AAACAAYAAACg//D/AAACAAYAAACg/+//AAACAAYAAACg/+7/AAACAAYAAACg/+3/AAACAAYAAACh/+z/AAAFAAEAAACh/+v/AAAFAAEAAACk/+z/AAAEAAEAAACk/+v/AAAEAAEAAACl/+3/AAAAAAYAAACl/+z/AAAAAAYAAACl/+v/AAAAAAYAAACg/+v/AAACAAYAAACg/+z/AAACAAYAAAA=") -tile_set = SubResource("TileSet_d7en2") +tile_map_data = PackedByteArray("AADL//L/AAAAAAQAAADL//P/AAAAAAQAAADL//T/AAAAAAQAAADL//X/AAAAAAQAAADL//b/AAAAAAQAAADL//f/AAAAAAQAAADL//j/AAAAAAQAAADL//n/AAAAAAQAAADL//r/AAAAAAQAAADL//v/AAAAAAQAAADL//z/AAAAAAQAAADS//T/AAAAAAcAAADM//H/AAABAAcAAADN//H/AAABAAcAAADO//H/AAABAAcAAADP//H/AAABAAcAAADT//T/AAABAAcAAADU//T/AAABAAcAAADV//T/AAABAAcAAADW//T/AAABAAcAAADX//T/AAABAAcAAADO//f/AAADAAAAAADN//f/AAADAAAAAADM//f/AAADAAAAAADS//f/AAADAAAAAADO//r/AAADAAAAAADN//r/AAADAAAAAADM//r/AAADAAAAAADS//r/AAADAAAAAADT//r/AAADAAAAAADU//r/AAADAAAAAADV//r/AAADAAAAAADW//r/AAADAAAAAADX//r/AAADAAAAAADa//f/AAAAAAYAAADa//n/AAAAAAYAAADa//r/AAAAAAYAAADa//v/AAAAAAYAAADa//z/AAAAAAYAAADa//3/AAAAAAYAAADa//7/AAAAAAYAAADL//3/AAAAAAQAAADL//7/AAAAAAQAAADa////AAAAAAYAAADa/wAAAAAAAAYAAADY//r/AAADAAAAAADZ//r/AAADAAAAAADM//3/AAAEAAUAAADN//3/AAAEAAUAAADO//3/AAAEAAUAAADP//3/AAAEAAUAAADQ//3/AAAEAAUAAADR//3/AAAEAAUAAADS//3/AAAEAAUAAADT//3/AAAFAAUAAADX//3/AAADAAUAAADY//3/AAAEAAUAAADZ//3/AAAEAAUAAADX//7/AAADAAcAAADY////AAAEAAUAAADZ////AAAEAAUAAADT//7/AAAFAAcAAADS//7/AAAEAAUAAADR//7/AAAEAAUAAADQ//7/AAAEAAUAAADP//7/AAAEAAUAAADO//7/AAAEAAUAAADN//7/AAAEAAUAAADM//7/AAAEAAUAAADX/wEAAAAFAAcAAADW/wEAAAAEAAUAAADV/wEAAAAEAAUAAADU/wEAAAAEAAUAAADT/wEAAAAEAAUAAADX/wAAAAADAAYAAAC2////AAADAAAAAAC1////AAADAAAAAAC0////AAADAAAAAACz////AAADAAAAAACy////AAADAAAAAACx////AAADAAAAAACx//7/AAADAAAAAACx//3/AAADAAAAAAC2/wIAAAADAAAAAAC1/wIAAAADAAAAAAC0/wIAAAADAAAAAACz/wIAAAADAAAAAACy/wIAAAADAAAAAACx/wIAAAADAAAAAACw/wIAAAADAAAAAACv/wIAAAADAAAAAACu/wIAAAADAAAAAACt/wIAAAADAAAAAACs/wIAAAADAAAAAACu////AAADAAAAAACu//7/AAADAAAAAACu//3/AAADAAAAAACt////AAADAAAAAACs////AAADAAAAAACr////AAADAAAAAACq////AAADAAAAAACp////AAADAAAAAACr/wIAAAADAAAAAACq/wIAAAADAAAAAACp/wIAAAADAAAAAADQ/wEAAAADAAUAAADR/wEAAAAEAAUAAADS/wEAAAAEAAUAAADQ/wIAAAADAAYAAADQ/wMAAAADAAcAAADR/wMAAAAEAAUAAADX////AAADAAUAAADY//7/AAAEAAUAAADZ//7/AAAEAAUAAADL/wkAAAAEAAQAAADM/wAAAQAAAAAAAQDM/wEAAQAAAAAAAQDM/wIAAQAAAAAAAQDM/wMAAQAAAAAAAQDR//b/AQAAAAAAAgDH//L/AQAAAAAABQDG//f/AAADAAAAAADG//r/AQAAAAAABwDR//X/AQAAAAAAAQDM//T/AAABAAEAAADN//T/AAABAAEAAADO//T/AAABAAEAAADP//T/AAABAAEAAADQ//T/AAABAAEAAADR//T/AAABAAEAAADS//X/AAAEAAEAAADS//b/AAAEAAEAAADT//X/AAABAAEAAADT//b/AAABAAEAAADV//b/AAABAAEAAADV//X/AAABAAEAAADX//b/AAABAAEAAADX//X/AAABAAEAAADZ//b/AAABAAEAAADZ//X/AAABAAEAAADa//j/AAAAAAYAAADL////AAACAAYAAADL/wAAAAACAAYAAADL/wEAAAACAAYAAADL/wIAAAACAAYAAADL/wMAAAACAAYAAADL/wQAAAACAAYAAADL/wUAAAACAAYAAADL/wYAAAACAAYAAADL/wcAAAACAAYAAADL/wgAAAACAAYAAADa/wEAAAAAAAYAAADa/wIAAAAAAAYAAADa/wMAAAAAAAYAAADa/wQAAAAAAAYAAADa/wUAAAAAAAYAAADa/wYAAAAAAAYAAADa/wcAAAAAAAYAAADa/wgAAAAAAAYAAADa/wkAAAAAAAYAAADa/woAAAAAAAYAAADa/wsAAAAAAAYAAADa/wwAAAAAAAYAAADa/w0AAAAAAAYAAADa/w4AAAAAAAYAAADZ/w8AAAABAAUAAADY/w8AAAABAAUAAADX/w8AAAABAAUAAADW/w8AAAABAAUAAADV/w8AAAABAAUAAADU/w8AAAABAAUAAADT/w8AAAABAAUAAADS/w8AAAABAAUAAADR/w8AAAABAAUAAADQ/w8AAAABAAUAAADP/w8AAAABAAUAAADO/w8AAAABAAUAAADN/w8AAAABAAUAAADM/w8AAAABAAUAAADL/w4AAAACAAYAAADL/w0AAAAFAAQAAADK/w4AAAABAAUAAADJ/w4AAAABAAUAAADI/w4AAAABAAUAAADH/w4AAAABAAUAAADG/w4AAAABAAUAAADF/w4AAAABAAUAAADE/w4AAAABAAUAAADL/wsAAAAFAAEAAADL/woAAAAFAAEAAADK/woAAAABAAEAAADI/woAAAABAAEAAADH/woAAAABAAEAAADH/wkAAAABAAEAAADI/wkAAAABAAEAAADK/wkAAAABAAEAAADB/woAAAABAAEAAADC/woAAAABAAEAAADC/wkAAAABAAEAAADB/wkAAAABAAEAAAC//woAAAABAAEAAAC//wkAAAABAAEAAADJ/wkAAAADAAEAAADG/woAAAADAAEAAADG/wkAAAADAAEAAADD/woAAAADAAEAAADD/wkAAAADAAEAAADA/woAAAADAAEAAADA/wkAAAADAAEAAADD/w4AAAABAAUAAADC/w4AAAABAAUAAADB/w4AAAABAAUAAADA/w4AAAABAAUAAAC//w4AAAABAAUAAADU//b/AAADAAEAAADU//X/AAADAAEAAADW//b/AAADAAEAAADW//X/AAADAAEAAADY//b/AAADAAEAAADY//X/AAADAAEAAADT/wkAAQAAAAAAAgDU/wkAAQAAAAAAAgDU/woAAQAAAAAAAgDT/woAAQAAAAAAAgDT/wsAAQAAAAAAAgDU/wsAAQAAAAAAAgDU/wwAAQAAAAAAAgDT/wwAAQAAAAAAAgDS/wwAAQAAAAAAAgDR/wwAAQAAAAAAAgDR/wsAAQAAAAAAAgDS/wsAAQAAAAAAAgDS/woAAQAAAAAAAgDR/woAAQAAAAAAAgDS/wkAAQAAAAAAAgDR/wkAAQAAAAAAAgDM/woAAAAGAAMAAAC+/w0AAAAFAAQAAAC+/wkAAAAEAAQAAADB/wsAAQAAAAAAAgC8/w0AAQAAAAAAAgDA/wsAAQAAAAAAAQDZ/w0AAQAAAAAAAQDZ/w4AAQAAAAAAAQDY/w4AAQAAAAAAAQDM/w4AAQAAAAAAAQC9/wgAAAACAAEAAAC8/wgAAAACAAEAAAC7/wgAAAACAAEAAAC4/wgAAAACAAEAAAC3/wgAAAACAAEAAAC2/wgAAAACAAEAAAC1/wgAAAACAAYAAAC1/wkAAAACAAYAAAC1/woAAAACAAYAAAC1/wsAAAACAAYAAAC1/wwAAAACAAYAAAC1/w0AAAACAAYAAAC2/w4AAAABAAUAAAC3/w4AAAABAAUAAAC4/w4AAAABAAUAAAC5/w4AAAABAAUAAAC6/w4AAAABAAUAAAC7/w4AAAABAAUAAAC8/w4AAAABAAUAAAC9/w4AAAABAAUAAAC1/w4AAAAAAAkAAAC+/wgAAAAAAAYAAAC+/wcAAAAAAAYAAAC7/wcAAAACAAEAAAC8/wcAAAACAAEAAAC9/wcAAAACAAEAAAC4/wcAAAACAAEAAAC3/wcAAAACAAEAAAC2/wcAAAACAAEAAAC2/wYAAAABAAcAAAC4/wYAAAADAAQAAAC7/wYAAAACAAQAAAC8/wYAAAABAAQAAAC9/wYAAAABAAQAAAC5/wMAAAADAAEAAAC6/wMAAAADAAEAAAC7/wMAAAABAAEAAAC4/wMAAAABAAEAAAC3/wMAAAAAAAQAAAC3/wQAAAAAAAQAAAC//wMAAAAFAAEAAAC+/wMAAAABAAEAAAC9/wMAAAADAAEAAAC8/wMAAAABAAEAAAC4/wIAAAABAAEAAAC5/wIAAAADAAEAAAC6/wIAAAADAAEAAAC7/wIAAAABAAEAAAC8/wIAAAABAAEAAAC9/wIAAAADAAEAAAC+/wIAAAABAAEAAAC//wIAAAAFAAEAAAC3/wYAAAABAAcAAAC3/wUAAAACAAYAAAC1/wcAAAACAAYAAAC5//7/AAADAAEAAAC5////AAADAAEAAAC8//7/AAADAAEAAAC8////AAADAAEAAAC9////AAABAAEAAAC+////AAABAAEAAAC/////AAABAAEAAADA////AAADAAEAAADB////AAABAAEAAADB//7/AAABAAEAAADA//7/AAADAAEAAAC///7/AAABAAEAAAC+//7/AAABAAEAAAC9//7/AAABAAEAAAC3////AAABAAEAAAC4////AAABAAEAAAC4//7/AAABAAEAAAC3//7/AAABAAEAAAC6//7/AAABAAEAAAC7//7/AAABAAEAAAC7////AAABAAEAAAC6////AAABAAEAAADC//7/AAAAAAYAAADC////AAAAAAYAAADC/wAAAAAAAAYAAADC/wEAAAAAAAYAAADC/wIAAAAAAAYAAADC/wMAAAAAAAQAAADC/wQAAAAAAAQAAADC/wUAAAAAAAQAAAC+/wYAAAABAAUAAAC//wYAAAABAAUAAADA/wYAAAABAAUAAADB/wYAAAABAAUAAAC4//3/AAABAAcAAAC5//3/AAABAAcAAAC6//3/AAABAAcAAAC7//3/AAABAAcAAAC8//3/AAABAAcAAAC9//3/AAABAAcAAAC+//3/AAABAAcAAAC///3/AAABAAcAAADA//3/AAABAAcAAADB//3/AAABAAcAAAC3//3/AAAAAAcAAAC3/wIAAAAFAAQAAADQ/wgAAAAGAAUAAADR/wgAAAAHAAUAAADS/wgAAAAHAAUAAADT/wgAAAAHAAUAAADU/wgAAAAHAAUAAADV/wgAAAAIAAUAAADV/wkAAAAIAAYAAADV/woAAAAIAAYAAADV/wsAAAAIAAYAAADV/wwAAAAIAAYAAADV/w0AAAAIAAcAAADU/w0AAAAHAAcAAADT/w0AAAAHAAcAAADS/w0AAAAHAAcAAADR/w0AAAAHAAcAAADQ/w0AAAAGAAcAAADQ/wwAAAAGAAYAAADQ/wsAAAAGAAYAAADQ/woAAAAGAAYAAADQ/wkAAAAGAAYAAADG/wgAAAACAAQAAADD/wgAAAADAAQAAADC/wcAAAACAAYAAADC/wYAAAACAAYAAADD/wMAAAACAAEAAADE/wMAAAACAAEAAADF/wMAAAACAAEAAADG/wMAAAACAAEAAADH/wMAAAACAAEAAADI/wMAAAACAAEAAADJ/wMAAAACAAEAAADJ/wQAAAACAAEAAADI/wQAAAACAAEAAADH/wQAAAACAAEAAADG/wQAAAACAAEAAADF/wQAAAACAAEAAADE/wQAAAACAAEAAADD/wQAAAACAAEAAADK/wMAAAAAAAYAAADK/wQAAAAAAAYAAADK/wUAAAAAAAYAAADK/wYAAAAAAAYAAADK/wcAAAAAAAYAAADJ/wgAAAABAAQAAADI/wgAAAABAAQAAADH/wgAAAABAAQAAADJ/woAAAADAAEAAADI/wsAAQAAAAAACQDD/wsAAQAAAAAACQDC/wsAAQAAAAAACQDY//f/AQAAAAAABgDZ//n/AQAAAAAAAQDY//n/AQAAAAAAAQDJ//f/AAADAAAAAADK//f/AAADAAAAAADF//f/AAADAAAAAADK////AAABAAUAAADJ////AAABAAUAAADI////AAABAAUAAADH////AAABAAUAAADG////AAABAAUAAADF////AAABAAUAAADE////AAABAAUAAADD//7/AAACAAYAAADD//3/AAACAAYAAADD//z/AAACAAYAAADD//v/AAACAAYAAADD//r/AAACAAYAAADD//n/AAACAAYAAADD//j/AAACAAYAAADD//f/AAACAAYAAADD//b/AAACAAYAAADD//X/AAACAAYAAADD//T/AAACAAYAAADD//P/AAACAAYAAADD//L/AAACAAYAAADD//H/AAACAAYAAADE/+//AAABAAcAAADF/+//AAABAAcAAADG/+//AAABAAcAAADH/+//AAABAAcAAADI/+//AAABAAcAAADJ/+//AAABAAcAAADK/+//AAABAAcAAADL//H/AAAAAAYAAADL//D/AAAAAAYAAADD//D/AAACAAYAAADE//D/AAABAAEAAADF//D/AAABAAEAAADG//D/AAABAAEAAADH//D/AAABAAEAAADI//D/AAABAAEAAADJ//D/AAABAAEAAADK//D/AAABAAEAAADK//H/AAABAAEAAADJ//H/AAABAAEAAADI//H/AAABAAEAAADH//H/AAABAAEAAADG//H/AAABAAEAAADF//H/AAABAAEAAADE//H/AAABAAEAAADE//f/AAADAAAAAAC9/woAAAAGAAMAAACh//z/AAAFAAEAAACh//v/AAAFAAEAAACk//z/AAAEAAEAAACk//v/AAAEAAEAAACf//j/AAAAAAUAAACg//j/AAACAAUAAACg//n/AAACAAYAAACh//r/AAADAAQAAACk//r/AAACAAQAAACl//n/AAAAAAYAAACl//j/AAAAAAYAAACl//f/AAAAAAYAAACl//b/AAAAAAYAAACl//X/AAAAAAYAAACl//r/AAABAAcAAACm//r/AAABAAcAAACn//r/AAABAAcAAACo//r/AAABAAcAAACl//z/AAABAAEAAACm//z/AAABAAEAAACn//z/AAABAAEAAACo//z/AAABAAEAAACo//v/AAABAAEAAACn//v/AAABAAEAAACm//v/AAABAAEAAACl//v/AAABAAEAAACo////AAADAAAAAACn////AAADAAAAAACm////AAADAAAAAACl////AAADAAAAAACk////AAADAAAAAACo/wIAAAADAAAAAACn/wIAAAADAAAAAACm/wIAAAADAAAAAACl/wIAAAADAAAAAACk/wIAAAADAAAAAACj/wIAAAADAAAAAACi/wIAAAADAAAAAACk//7/AAADAAAAAACk//3/AAADAAAAAACh//3/AAADAAAAAACh//7/AAADAAAAAACh////AAADAAAAAACh/wAAAAADAAAAAACh/wEAAAADAAAAAACh/wIAAAADAAAAAACh//T/AAABAAEAAACi//T/AAAFAAEAAACi//P/AAAFAAEAAACh//P/AAABAAEAAACi//L/AAADAAQAAACh//L/AAABAAQAAACg//P/AAACAAcAAACg//T/AAABAAEAAACg//X/AAABAAEAAACf//X/AAABAAEAAACf//T/AAABAAEAAACf//P/AAAAAAcAAACe//P/AAABAAEAAACd//P/AAABAAEAAACc//P/AAABAAEAAACY//r/AAABAAQAAACZ//r/AAABAAQAAACa//r/AAABAAQAAACb//r/AAABAAQAAACc//r/AAABAAQAAACd//r/AAABAAQAAACe//r/AAABAAQAAACf//n/AAAAAAYAAACe//H/AAABAAcAAACd//H/AAABAAcAAACc//H/AAABAAcAAACb//H/AAABAAcAAACa//H/AAAAAAcAAACe//L/AAABAAEAAACd//L/AAABAAEAAACc//L/AAABAAEAAACb//L/AAABAAEAAACa//L/AAABAAEAAACa//P/AAABAAEAAACb//P/AAABAAEAAACa/+//AAAAAAYAAACa//D/AAAAAAYAAACf//L/AAAAAAYAAACg//v/AAABAAEAAACf//v/AAABAAEAAACe//v/AAABAAEAAACd//v/AAABAAEAAACc//v/AAABAAEAAACb//v/AAABAAEAAACb//z/AAABAAEAAACc//z/AAABAAEAAACd//z/AAABAAEAAACe//z/AAABAAEAAACf//z/AAABAAEAAACg//z/AAABAAEAAACa//z/AAABAAEAAACa//v/AAABAAEAAACZ//v/AAABAAEAAACZ//z/AAABAAEAAACg//r/AAABAAcAAACf//r/AAABAAcAAACl//L/AAAAAAYAAACl//P/AAAAAAYAAACl//T/AAAAAAYAAACl//H/AAAAAAYAAACl//D/AAAAAAYAAACl/+//AAAAAAYAAACl/+7/AAAAAAYAAACg//H/AAACAAYAAACg//D/AAACAAYAAACg/+//AAACAAYAAACg/+7/AAACAAYAAACg/+3/AAACAAYAAACh/+z/AAAFAAEAAACh/+v/AAAFAAEAAACk/+z/AAAEAAEAAACk/+v/AAAEAAEAAACl/+3/AAAAAAYAAACl/+z/AAAAAAYAAACl/+v/AAAAAAYAAACg/+v/AAACAAYAAACg/+z/AAACAAYAAADU//3/AQAAAAAAAgA=") +tile_set = ExtResource("3_kgs2x") [node name="LargeTank" parent="Factory Tilemaps" instance=ExtResource("6_nkauc")] position = Vector2(-640, 54) @@ -454,3 +181,6 @@ script = ExtResource("24_0c2yt") [node name="PlayerStartPosition" type="Marker2D" parent="."] position = Vector2(-790, -161) + +[node name="RedKeyCard2" parent="." instance=ExtResource("19_8fb73")] +position = Vector2(-824, -152) diff --git a/Scripts/Actors/NavigationTestEnemy.cs b/Scripts/Actors/NavigationTestEnemy.cs new file mode 100644 index 00000000..fd3126c3 --- /dev/null +++ b/Scripts/Actors/NavigationTestEnemy.cs @@ -0,0 +1,87 @@ +using Godot; +using System; + +public partial class NavigationTestEnemy : CharacterBody2D +{ + [Export] + private float _movementSpeed = 300.0f; + public const float JumpVelocity = -400.0f; + + private NavigationAgent2D _navigationAgent; + + public override void _Ready() + { + _navigationAgent = GetNode("NavigationAgent2D"); + } + + public override void _PhysicsProcess(double delta) + { + var mousePosition = GetGlobalMousePosition(); + _navigationAgent.TargetPosition = mousePosition; + + var currentAgentPosition = GlobalPosition; + + var nexPathPosition = _navigationAgent.GetNextPathPosition(); + + var newVelocity = currentAgentPosition.DirectionTo(nexPathPosition) * (_movementSpeed); + + // Navigation is over, can do other things + if (_navigationAgent.IsNavigationFinished()) + { + + return; + } + + if (_navigationAgent.AvoidanceEnabled) + { + _navigationAgent.SetVelocity(newVelocity); + + } + else + { + _on_navigation_agent_2d_velocity_computed(newVelocity); + } + + MoveAndSlide(); + } + + public void _on_navigation_agent_2d_velocity_computed(Vector2 safeVelocity) + { + this.Velocity = safeVelocity; + + } + + // public override void _PhysicsProcess(double delta) + // { + // Vector2 velocity = Velocity; + // + // // Add the gravity. + // if (!IsOnFloor()) + // { + // velocity += GetGravity() * (float)delta; + // } + // + // // Handle Jump. + // if (Input.IsActionJustPressed("ui_accept") && IsOnFloor()) + // { + // velocity.Y = JumpVelocity; + // } + // + // // Get the input direction and handle the movement/deceleration. + // // As good practice, you should replace UI actions with custom gameplay actions. + // Vector2 direction = Input.GetVector("ui_left", "ui_right", "ui_up", "ui_down"); + // if (direction != Vector2.Zero) + // { + // velocity.X = direction.X * Speed; + // } + // else + // { + // velocity.X = Mathf.MoveToward(Velocity.X, 0, Speed); + // } + // + // Velocity = velocity; + // MoveAndSlide(); + // } + + +} diff --git a/Scripts/Bullet.cs b/Scripts/Bullet.cs index d918b4b4..bcae18ea 100644 --- a/Scripts/Bullet.cs +++ b/Scripts/Bullet.cs @@ -9,6 +9,9 @@ public partial class Bullet : Area2D [Export] public float Damage = 1f; + + [Export] + public BulletOwner Owner = BulletOwner.None; private Vector2 _direction = Vector2.Right; @@ -87,3 +90,10 @@ public partial class Bullet : Area2D } } } + +public enum BulletOwner +{ + None, + Player, + Enemy +} diff --git a/Scripts/Enemy.cs b/Scripts/Enemy.cs index 07433715..1ccf6c68 100644 --- a/Scripts/Enemy.cs +++ b/Scripts/Enemy.cs @@ -3,7 +3,7 @@ using Godot; using System; using System.Diagnostics; -public partial class Enemy : Area2D, IDestructible +public partial class Enemy : CharacterBody2D { private InteractionController _cachedPlayer; private EnemyState _currentState = EnemyState.Idle; @@ -12,6 +12,8 @@ public partial class Enemy : Area2D, IDestructible [Export] public float WalkSpeed = 2500f; + [Export] public float PlayerDisengageRange = 500f; + [Export] public Weapon EquippedWeapon; private float _currentHealth = 0f; @@ -20,6 +22,10 @@ public partial class Enemy : Area2D, IDestructible private NavigationAgent2D _navigationAgent; + private bool _isPlayerInRange = false; + + private Vector2? _lastPlayerPosition = null; + [Export] public bool NavigationEnabled { get; set; } = false; // Called when the node enters the scene tree for the first time. @@ -29,13 +35,13 @@ public partial class Enemy : Area2D, IDestructible _navigationAgent = GetNode("NavigationAgent2D"); - CallDeferred("Setup"); + //CallDeferred("Setup"); } - private void Setup() - { - - } + // private void Setup() + // { + // + // } // Called every frame. 'delta' is the elapsed time since the previous frame. public override void _Process(double delta) @@ -45,10 +51,7 @@ public partial class Enemy : Area2D, IDestructible case EnemyState.Idle: break; - - case EnemyState.Primed: - // Have the raycast follow the player and shoot if visible - //HandlePlayerDetection(); + case EnemyState.Alert: break; //case EnemyState.Shooting: @@ -61,24 +64,72 @@ public partial class Enemy : Area2D, IDestructible public override void _PhysicsProcess(double delta) { - HandlePlayerDetection(); - if (NavigationEnabled) + switch (_currentState) { - var moveLocation = _navigationAgent.GetNextPathPosition(); + case EnemyState.Idle: + HandlePlayerDetection(); + + break; + case EnemyState.Alert: + + // Update last known player position if it's in range + if (_isPlayerInRange) + { + _lastPlayerPosition = _cachedPlayer.GlobalPosition; + } + + if (_lastPlayerPosition.HasValue) + { + _navigationAgent.SetTargetPosition(_lastPlayerPosition.Value); + } + + var currentAgentPosition = GlobalPosition; - if (_currentState is EnemyState.Primed) - { - this.Position = moveLocation; - } + var nextPathPosition = _navigationAgent.GetNextPathPosition(); + + var newVelocity = currentAgentPosition.DirectionTo(nextPathPosition) * (float)(WalkSpeed * delta); + + + // Navigation is over, can do other things like shooting + if (_navigationAgent.IsNavigationFinished()) + { + // Shoot player + Shoot(); + + // TODO: If player totally left the max range it should stop shooting and go back to idle + + return; + } + + if (_navigationAgent.AvoidanceEnabled) + { + _navigationAgent.SetVelocity(newVelocity); + + } + else + { + _on_navigation_agent_2d_velocity_computed(newVelocity); + } + + MoveAndSlide(); + + break; + case EnemyState.Patrolling: + break; + default: + throw new ArgumentOutOfRangeException(); } - - + } + + public void _on_navigation_agent_2d_velocity_computed(Vector2 safeVelocity) + { + this.Velocity = safeVelocity; } private void HandlePlayerDetection() { - if (_cachedPlayer == null || _currentState is not EnemyState.Primed) + if (_cachedPlayer == null) { return; } @@ -86,21 +137,22 @@ public partial class Enemy : Area2D, IDestructible if (IsPlayerInSight()) { // Update player position only if player is in sight - if (NavigationEnabled) - { - _navigationAgent.SetTargetPosition(_cachedPlayer.GlobalPosition); - } - Shoot(); - + // if (NavigationEnabled) + // { + // _navigationAgent.SetTargetPosition(_cachedPlayer.GlobalPosition); + // } + //Shoot(); + _currentState = EnemyState.Alert; } } private void Shoot() { - if (EquippedWeapon == null) return; + if (EquippedWeapon == null || !_lastPlayerPosition.HasValue) return; - EquippedWeapon.ShootDirection = (_cachedPlayer.GlobalPosition - this.GlobalPosition).Normalized(); + // Shoot at the player's last known position + EquippedWeapon.ShootDirection = (_lastPlayerPosition.Value - this.GlobalPosition).Normalized(); EquippedWeapon.Shoot(); @@ -147,19 +199,31 @@ public partial class Enemy : Area2D, IDestructible Debug.WriteLine("Enemy detection area Entered by interaction controller"); _cachedPlayer = player; - if (_currentState is EnemyState.Idle) - { - _currentState = EnemyState.Primed; - } + + _isPlayerInRange = true; + // if (_currentState is EnemyState.Idle) + // { + // _currentState = EnemyState.Primed; + // } } } private void _on_player_detection_area_exited(Area2D area) { - if (_currentState is EnemyState.Primed) - { - _currentState = EnemyState.Idle; - } + _isPlayerInRange = false; + + // if (_currentState is EnemyState.Primed) + // { + // _currentState = EnemyState.Idle; + // } + } + + private void _on_damage_hitbox_area_entered(Area2D area) + { + if (area is not Bullet bullet) return; + GD.Print("Enemy Received damage"); + this.Hit(bullet.Damage); + bullet.QueueFree(); } // Bullets collision @@ -167,7 +231,7 @@ public partial class Enemy : Area2D, IDestructible { } - + private void Explode() { Debug.WriteLine("Ded"); @@ -194,7 +258,7 @@ public partial class Enemy : Area2D, IDestructible private enum EnemyState { Idle, - Primed, + Alert, Patrolling } } diff --git a/Scripts/GameManager.cs b/Scripts/GameManager.cs index bb5fd5b6..55d35fd3 100644 --- a/Scripts/GameManager.cs +++ b/Scripts/GameManager.cs @@ -41,7 +41,10 @@ public partial class GameManager : Node2D _player.HealthChanged += (newHealth, maxHealth) => _hud.UpdateHealth(newHealth, maxHealth); _player.InteractableAreaEntered += (interactable) => _hud.UpdateInteractable(interactable); - + + Inventory.ItemAdded += (item) => _hud.AddInventoryItem(item); + Inventory.ItemRemoved += (item) => _hud.RemoveInventoryItem(item); + //_player.Connect(nameof(_player.HealthChanged), _hud, nameof(_hud.UpdateHealth)); } diff --git a/Scripts/Hud.cs b/Scripts/Hud.cs index ffc66362..d7afaa0c 100644 --- a/Scripts/Hud.cs +++ b/Scripts/Hud.cs @@ -1,12 +1,13 @@ using Godot; using System; +using Cirno.Scripts.Resources; public partial class Hud : CanvasLayer { [Signal] public delegate void StartGameEventHandler(); - private Label _healthLabel; + //private Label _healthLabel; [Export] public PackedScene SelectorScene { get; set; } @@ -14,10 +15,13 @@ public partial class Hud : CanvasLayer [Export] private Node2D _selector; + [Export] private Label _healthLabel; + [Export] private Container _itemsContainer; + public override void _Ready() { // Assuming the HUD has a Label node named "HealthLabel" - _healthLabel = GetNode