commit 5ca556bd4eafa1e580d3c5a07f3b7efa26276928 Author: CocoWaff Date: Tue Jan 2 20:10:53 2024 -0500 innit bruv diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..8ad74f7 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,2 @@ +# Normalize EOL for all files that Git considers text files. +* text=auto eol=lf diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..4709183 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +# Godot 4+ specific ignores +.godot/ diff --git a/Audio/Exit.wav b/Audio/Exit.wav new file mode 100644 index 0000000..11a3c67 Binary files /dev/null and b/Audio/Exit.wav differ diff --git a/Audio/Exit.wav.import b/Audio/Exit.wav.import new file mode 100644 index 0000000..5f65794 --- /dev/null +++ b/Audio/Exit.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://dkmyxyvpl85g0" +path="res://.godot/imported/Exit.wav-42d000ddbf0b6ebf79adbad52d692253.sample" + +[deps] + +source_file="res://Audio/Exit.wav" +dest_files=["res://.godot/imported/Exit.wav-42d000ddbf0b6ebf79adbad52d692253.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=0 diff --git a/Audio/GhostCage.wav b/Audio/GhostCage.wav new file mode 100644 index 0000000..698325e Binary files /dev/null and b/Audio/GhostCage.wav differ diff --git a/Audio/GhostCage.wav.import b/Audio/GhostCage.wav.import new file mode 100644 index 0000000..97862ff --- /dev/null +++ b/Audio/GhostCage.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://cfsd1yxpufm37" +path="res://.godot/imported/GhostCage.wav-45c5901f05c06eb9ef2b68303959329c.sample" + +[deps] + +source_file="res://Audio/GhostCage.wav" +dest_files=["res://.godot/imported/GhostCage.wav-45c5901f05c06eb9ef2b68303959329c.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=0 diff --git a/Audio/GhostMove.wav b/Audio/GhostMove.wav new file mode 100644 index 0000000..020bdca Binary files /dev/null and b/Audio/GhostMove.wav differ diff --git a/Audio/GhostMove.wav.import b/Audio/GhostMove.wav.import new file mode 100644 index 0000000..cada9dd --- /dev/null +++ b/Audio/GhostMove.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://dskvseq1btvs" +path="res://.godot/imported/GhostMove.wav-8c28f92402b9222b3e6ebaa59f53ffe8.sample" + +[deps] + +source_file="res://Audio/GhostMove.wav" +dest_files=["res://.godot/imported/GhostMove.wav-8c28f92402b9222b3e6ebaa59f53ffe8.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=0 diff --git a/Audio/Snore.wav b/Audio/Snore.wav new file mode 100644 index 0000000..9137eab Binary files /dev/null and b/Audio/Snore.wav differ diff --git a/Audio/Snore.wav.import b/Audio/Snore.wav.import new file mode 100644 index 0000000..2865d7a --- /dev/null +++ b/Audio/Snore.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://n8c3n35qsjep" +path="res://.godot/imported/Snore.wav-5bc687a819cd5c05b79dd35641962914.sample" + +[deps] + +source_file="res://Audio/Snore.wav" +dest_files=["res://.godot/imported/Snore.wav-5bc687a819cd5c05b79dd35641962914.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=0 diff --git a/Audio/reset.wav b/Audio/reset.wav new file mode 100644 index 0000000..3e88c16 Binary files /dev/null and b/Audio/reset.wav differ diff --git a/Audio/reset.wav.import b/Audio/reset.wav.import new file mode 100644 index 0000000..125f066 --- /dev/null +++ b/Audio/reset.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://bc85ifri7xmmv" +path="res://.godot/imported/reset.wav-36f86b6021adc185635930bd7464724c.sample" + +[deps] + +source_file="res://Audio/reset.wav" +dest_files=["res://.godot/imported/reset.wav-36f86b6021adc185635930bd7464724c.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=0 diff --git a/Entities/Cage.tscn b/Entities/Cage.tscn new file mode 100644 index 0000000..2f1efaf --- /dev/null +++ b/Entities/Cage.tscn @@ -0,0 +1,120 @@ +[gd_scene load_steps=17 format=3 uid="uid://b8d22amvt6eq5"] + +[ext_resource type="Script" path="res://Scripts/Cage.cs" id="1_4c405"] +[ext_resource type="Texture2D" uid="uid://c38fo4o7uf5c3" path="res://Sprite Sheets/OoB elements.png" id="2_118wr"] +[ext_resource type="Texture2D" uid="uid://s2cmbu5hdci" path="res://Sprite Sheets/RedElements.png" id="3_kud6c"] +[ext_resource type="AudioStream" uid="uid://cfsd1yxpufm37" path="res://Audio/GhostCage.wav" id="4_nqwdl"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_odfan"] +atlas = ExtResource("2_118wr") +region = Rect2(20, 100, 20, 20) + +[sub_resource type="AtlasTexture" id="AtlasTexture_unqc5"] +atlas = ExtResource("2_118wr") +region = Rect2(40, 100, 20, 20) + +[sub_resource type="AtlasTexture" id="AtlasTexture_1j6p8"] +atlas = ExtResource("2_118wr") +region = Rect2(60, 100, 20, 20) + +[sub_resource type="AtlasTexture" id="AtlasTexture_tenkj"] +atlas = ExtResource("2_118wr") +region = Rect2(0, 100, 20, 20) + +[sub_resource type="AtlasTexture" id="AtlasTexture_tnw78"] +atlas = ExtResource("3_kud6c") +region = Rect2(20, 60, 20, 20) + +[sub_resource type="AtlasTexture" id="AtlasTexture_25g0x"] +atlas = ExtResource("3_kud6c") +region = Rect2(40, 60, 20, 20) + +[sub_resource type="AtlasTexture" id="AtlasTexture_vstcx"] +atlas = ExtResource("3_kud6c") +region = Rect2(60, 60, 20, 20) + +[sub_resource type="AtlasTexture" id="AtlasTexture_1kmtk"] +atlas = ExtResource("3_kud6c") +region = Rect2(0, 60, 20, 20) + +[sub_resource type="SpriteFrames" id="SpriteFrames_nv51w"] +animations = [{ +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_odfan") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_unqc5") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_1j6p8") +}], +"loop": true, +"name": &"Active", +"speed": 4.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_tenkj") +}], +"loop": true, +"name": &"Idle", +"speed": 5.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_tnw78") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_25g0x") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_vstcx") +}], +"loop": true, +"name": &"RedActive", +"speed": 4.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_1kmtk") +}], +"loop": true, +"name": &"RedIdle", +"speed": 5.0 +}] + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_2xrrd"] + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_ly7aa"] +size = Vector2(10, 10) + +[sub_resource type="CircleShape2D" id="CircleShape2D_rd330"] +radius = 1.0 + +[node name="Cage" type="StaticBody2D" groups=["Cage", "Obsticals"]] +script = ExtResource("1_4c405") + +[node name="CageSprite" type="AnimatedSprite2D" parent="."] +sprite_frames = SubResource("SpriteFrames_nv51w") +animation = &"RedIdle" + +[node name="CageCollision" type="CollisionShape2D" parent="."] +shape = SubResource("RectangleShape2D_2xrrd") + +[node name="Probe" type="Area2D" parent="."] + +[node name="ProbeCollision" type="CollisionShape2D" parent="Probe"] +shape = SubResource("RectangleShape2D_ly7aa") +debug_color = Color(0.823529, 0, 0.964706, 0.419608) + +[node name="Trigger" type="Area2D" parent="." groups=["Cage"]] + +[node name="TriggerArea" type="CollisionShape2D" parent="Trigger"] +shape = SubResource("CircleShape2D_rd330") +debug_color = Color(1, 0.278431, 0, 0.419608) + +[node name="GhostCaged" type="AudioStreamPlayer" parent="."] +stream = ExtResource("4_nqwdl") + +[connection signal="area_entered" from="Probe" to="." method="_on_probe_area_entered"] diff --git a/Entities/Chloek.tscn b/Entities/Chloek.tscn new file mode 100644 index 0000000..f9becd9 --- /dev/null +++ b/Entities/Chloek.tscn @@ -0,0 +1,185 @@ +[gd_scene load_steps=25 format=3 uid="uid://hf82gpyeklob"] + +[ext_resource type="Script" path="res://Scripts/Chloek.cs" id="1_x07mb"] +[ext_resource type="Texture2D" uid="uid://b46im6jq0mlly" path="res://Sprite Sheets/OoBchloek.png" id="1_xfs1o"] +[ext_resource type="AudioStream" uid="uid://bc85ifri7xmmv" path="res://Audio/reset.wav" id="5_4jtyw"] +[ext_resource type="AudioStream" uid="uid://n8c3n35qsjep" path="res://Audio/Snore.wav" id="6_y2rkm"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_fwbha"] +atlas = ExtResource("1_xfs1o") +region = Rect2(0, 40, 20, 20) + +[sub_resource type="AtlasTexture" id="AtlasTexture_lpsy1"] +atlas = ExtResource("1_xfs1o") +region = Rect2(40, 40, 20, 20) + +[sub_resource type="AtlasTexture" id="AtlasTexture_m1rse"] +atlas = ExtResource("1_xfs1o") +region = Rect2(60, 40, 20, 20) + +[sub_resource type="AtlasTexture" id="AtlasTexture_8xxry"] +atlas = ExtResource("1_xfs1o") +region = Rect2(20, 40, 20, 20) + +[sub_resource type="AtlasTexture" id="AtlasTexture_jfd5m"] +atlas = ExtResource("1_xfs1o") +region = Rect2(0, 0, 20, 20) + +[sub_resource type="AtlasTexture" id="AtlasTexture_biq41"] +atlas = ExtResource("1_xfs1o") +region = Rect2(0, 20, 20, 20) + +[sub_resource type="AtlasTexture" id="AtlasTexture_fhik1"] +atlas = ExtResource("1_xfs1o") +region = Rect2(20, 20, 20, 20) + +[sub_resource type="AtlasTexture" id="AtlasTexture_hfd2b"] +atlas = ExtResource("1_xfs1o") +region = Rect2(40, 20, 20, 20) + +[sub_resource type="AtlasTexture" id="AtlasTexture_hmixo"] +atlas = ExtResource("1_xfs1o") +region = Rect2(60, 20, 20, 20) + +[sub_resource type="AtlasTexture" id="AtlasTexture_tmruu"] +atlas = ExtResource("1_xfs1o") +region = Rect2(0, 0, 20, 20) + +[sub_resource type="AtlasTexture" id="AtlasTexture_i51bp"] +atlas = ExtResource("1_xfs1o") +region = Rect2(20, 0, 20, 20) + +[sub_resource type="AtlasTexture" id="AtlasTexture_e1v3f"] +atlas = ExtResource("1_xfs1o") +region = Rect2(40, 0, 20, 20) + +[sub_resource type="AtlasTexture" id="AtlasTexture_hk5jp"] +atlas = ExtResource("1_xfs1o") +region = Rect2(60, 0, 20, 20) + +[sub_resource type="AtlasTexture" id="AtlasTexture_bksly"] +atlas = ExtResource("1_xfs1o") +region = Rect2(20, 60, 20, 20) + +[sub_resource type="AtlasTexture" id="AtlasTexture_fjfwr"] +atlas = ExtResource("1_xfs1o") +region = Rect2(40, 60, 20, 20) + +[sub_resource type="AtlasTexture" id="AtlasTexture_8sjpi"] +atlas = ExtResource("1_xfs1o") +region = Rect2(0, 60, 20, 20) + +[sub_resource type="SpriteFrames" id="SpriteFrames_0mab5"] +animations = [{ +"frames": [{ +"duration": 0.5, +"texture": SubResource("AtlasTexture_fwbha") +}, { +"duration": 4.0, +"texture": SubResource("AtlasTexture_lpsy1") +}, { +"duration": 0.5, +"texture": SubResource("AtlasTexture_m1rse") +}, { +"duration": 0.5, +"texture": SubResource("AtlasTexture_8xxry") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_jfd5m") +}], +"loop": true, +"name": &"Action", +"speed": 5.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_biq41") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_fhik1") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_hfd2b") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_hmixo") +}], +"loop": true, +"name": &"Eepy", +"speed": 0.5 +}, { +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_tmruu") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_i51bp") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_e1v3f") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_hk5jp") +}], +"loop": false, +"name": &"Idle", +"speed": 1.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_bksly") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_fjfwr") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_bksly") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_8sjpi") +}], +"loop": true, +"name": &"Walk", +"speed": 10.0 +}] + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_fuxcj"] + +[sub_resource type="CircleShape2D" id="CircleShape2D_08gyr"] +radius = 1.0 + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_nebtc"] +size = Vector2(10, 10) + +[node name="Chloek" type="StaticBody2D" groups=["Player"]] +script = ExtResource("1_x07mb") + +[node name="ChloekSprite" type="AnimatedSprite2D" parent="."] +sprite_frames = SubResource("SpriteFrames_0mab5") +animation = &"Action" + +[node name="ChloekCollision" type="CollisionShape2D" parent="."] +shape = SubResource("RectangleShape2D_fuxcj") + +[node name="Probe" type="Area2D" parent="."] +collision_priority = 2.0 + +[node name="ProbeCollision" type="CollisionShape2D" parent="Probe"] +shape = SubResource("CircleShape2D_08gyr") +debug_color = Color(0.227451, 1, 0, 0.419608) + +[node name="ChloekArea" type="Area2D" parent="." groups=["Player"]] + +[node name="ProbeCollision" type="CollisionShape2D" parent="ChloekArea"] +shape = SubResource("RectangleShape2D_nebtc") +debug_color = Color(1, 0, 0.0823529, 0.419608) + +[node name="Reset" type="AudioStreamPlayer" parent="."] +stream = ExtResource("5_4jtyw") + +[node name="Snore" type="AudioStreamPlayer" parent="."] +stream = ExtResource("6_y2rkm") + +[connection signal="body_entered" from="Probe" to="." method="_on_probe_body_entered"] +[connection signal="body_exited" from="Probe" to="." method="_on_probe_body_exited"] +[connection signal="body_entered" from="ChloekArea" to="." method="_on_chloek_area_body_entered"] diff --git a/Entities/EvilEye.tscn b/Entities/EvilEye.tscn new file mode 100644 index 0000000..4a6756e --- /dev/null +++ b/Entities/EvilEye.tscn @@ -0,0 +1,187 @@ +[gd_scene load_steps=24 format=3 uid="uid://ctdil7060o2ft"] + +[ext_resource type="Script" path="res://Scripts/EvilEye.cs" id="1_rs1vb"] +[ext_resource type="Texture2D" uid="uid://c38fo4o7uf5c3" path="res://Sprite Sheets/OoB elements.png" id="2_5twu4"] +[ext_resource type="Texture2D" uid="uid://s2cmbu5hdci" path="res://Sprite Sheets/RedElements.png" id="3_cx72f"] + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_jbvl0"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_58np4"] +atlas = ExtResource("2_5twu4") +region = Rect2(0, 20, 20, 20) + +[sub_resource type="AtlasTexture" id="AtlasTexture_yxe3q"] +atlas = ExtResource("2_5twu4") +region = Rect2(20, 20, 20, 20) + +[sub_resource type="AtlasTexture" id="AtlasTexture_6my5q"] +atlas = ExtResource("2_5twu4") +region = Rect2(40, 20, 20, 20) + +[sub_resource type="AtlasTexture" id="AtlasTexture_k47nl"] +atlas = ExtResource("2_5twu4") +region = Rect2(60, 20, 20, 20) + +[sub_resource type="AtlasTexture" id="AtlasTexture_5i4nk"] +atlas = ExtResource("3_cx72f") +region = Rect2(0, 20, 20, 20) + +[sub_resource type="AtlasTexture" id="AtlasTexture_tvexn"] +atlas = ExtResource("3_cx72f") +region = Rect2(20, 20, 20, 20) + +[sub_resource type="AtlasTexture" id="AtlasTexture_ecmlx"] +atlas = ExtResource("3_cx72f") +region = Rect2(40, 20, 20, 20) + +[sub_resource type="AtlasTexture" id="AtlasTexture_fmj7h"] +atlas = ExtResource("3_cx72f") +region = Rect2(60, 20, 20, 20) + +[sub_resource type="SpriteFrames" id="SpriteFrames_idpyl"] +animations = [{ +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_58np4") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_yxe3q") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_6my5q") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_k47nl") +}], +"loop": true, +"name": &"Idle", +"speed": 10.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_5i4nk") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_tvexn") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_ecmlx") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_fmj7h") +}], +"loop": true, +"name": &"RedIdle", +"speed": 5.0 +}] + +[sub_resource type="AtlasTexture" id="AtlasTexture_touwc"] +atlas = ExtResource("2_5twu4") +region = Rect2(20, 0, 20, 20) + +[sub_resource type="AtlasTexture" id="AtlasTexture_e32cu"] +atlas = ExtResource("2_5twu4") +region = Rect2(40, 0, 20, 20) + +[sub_resource type="AtlasTexture" id="AtlasTexture_bb1a6"] +atlas = ExtResource("2_5twu4") +region = Rect2(60, 0, 20, 20) + +[sub_resource type="AtlasTexture" id="AtlasTexture_v623e"] +atlas = ExtResource("2_5twu4") +region = Rect2(0, 0, 20, 20) + +[sub_resource type="AtlasTexture" id="AtlasTexture_uh28t"] +atlas = ExtResource("3_cx72f") +region = Rect2(20, 0, 20, 20) + +[sub_resource type="AtlasTexture" id="AtlasTexture_syf28"] +atlas = ExtResource("3_cx72f") +region = Rect2(40, 0, 20, 20) + +[sub_resource type="AtlasTexture" id="AtlasTexture_c7xii"] +atlas = ExtResource("3_cx72f") +region = Rect2(60, 0, 20, 20) + +[sub_resource type="AtlasTexture" id="AtlasTexture_byk38"] +atlas = ExtResource("3_cx72f") +region = Rect2(0, 0, 20, 20) + +[sub_resource type="SpriteFrames" id="SpriteFrames_sejyh"] +animations = [{ +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_touwc") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_e32cu") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_bb1a6") +}], +"loop": false, +"name": &"Active", +"speed": 3.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_v623e") +}], +"loop": false, +"name": &"Idle", +"speed": 5.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_uh28t") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_syf28") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_c7xii") +}], +"loop": false, +"name": &"RedActive", +"speed": 3.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_byk38") +}], +"loop": false, +"name": &"RedIdle", +"speed": 5.0 +}] + +[sub_resource type="CircleShape2D" id="CircleShape2D_ufm3y"] +radius = 1.0 + +[node name="EvilEye" type="StaticBody2D" groups=["Obsticals"]] +script = ExtResource("1_rs1vb") + +[node name="EvilEyeCollision" type="CollisionShape2D" parent="."] +shape = SubResource("RectangleShape2D_jbvl0") +debug_color = Color(0, 0.403922, 0.0784314, 0.419608) + +[node name="EvilEyeBall" type="AnimatedSprite2D" parent="."] +sprite_frames = SubResource("SpriteFrames_idpyl") +animation = &"Idle" + +[node name="EvilEyeLid" type="AnimatedSprite2D" parent="."] +sprite_frames = SubResource("SpriteFrames_sejyh") +animation = &"Idle" + +[node name="Area2D" type="Area2D" parent="."] + +[node name="CollisionShape2D" type="CollisionShape2D" parent="Area2D"] +shape = SubResource("CircleShape2D_ufm3y") +debug_color = Color(1, 1, 1, 0.419608) + +[node name="FacingProbe" type="Area2D" parent="."] + +[node name="CollisionShape2D" type="CollisionShape2D" parent="FacingProbe"] +shape = SubResource("CircleShape2D_ufm3y") +debug_color = Color(1, 1, 1, 0.419608) + +[connection signal="area_entered" from="Area2D" to="." method="_on_area_2d_area_entered"] diff --git a/Entities/Exit.tscn b/Entities/Exit.tscn new file mode 100644 index 0000000..4c3b94e --- /dev/null +++ b/Entities/Exit.tscn @@ -0,0 +1,29 @@ +[gd_scene load_steps=6 format=3 uid="uid://b6ox70gr6e6ej"] + +[ext_resource type="Script" path="res://Scripts/Exit.cs" id="1_64j0q"] +[ext_resource type="Texture2D" uid="uid://d3ppe6c48t58p" path="res://Sprite Sheets/Stairs.png" id="2_wx8pc"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_73b6m"] +atlas = ExtResource("2_wx8pc") +region = Rect2(0, 0, 20, 20) + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_1dat3"] + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_v03qc"] +size = Vector2(10, 10) + +[node name="Exit" type="StaticBody2D"] +script = ExtResource("1_64j0q") + +[node name="Sprite2D" type="Sprite2D" parent="."] +texture = SubResource("AtlasTexture_73b6m") + +[node name="ExitShape" type="CollisionShape2D" parent="."] +shape = SubResource("RectangleShape2D_1dat3") + +[node name="ExitArea" type="Area2D" parent="."] + +[node name="ExitAreaShape" type="CollisionShape2D" parent="ExitArea"] +shape = SubResource("RectangleShape2D_v03qc") + +[connection signal="area_entered" from="ExitArea" to="." method="_on_exit_area_area_entered"] diff --git a/Entities/Ghost.tscn b/Entities/Ghost.tscn new file mode 100644 index 0000000..805375c --- /dev/null +++ b/Entities/Ghost.tscn @@ -0,0 +1,148 @@ +[gd_scene load_steps=19 format=3 uid="uid://crtwv7phv71wq"] + +[ext_resource type="Script" path="res://Scripts/Ghost.cs" id="1_1xbhw"] +[ext_resource type="Texture2D" uid="uid://c38fo4o7uf5c3" path="res://Sprite Sheets/OoB elements.png" id="2_cshgs"] +[ext_resource type="AudioStream" uid="uid://dskvseq1btvs" path="res://Audio/GhostMove.wav" id="3_qcwa8"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_lwyws"] +atlas = ExtResource("2_cshgs") +region = Rect2(40, 60, 20, 20) + +[sub_resource type="AtlasTexture" id="AtlasTexture_u44yj"] +atlas = ExtResource("2_cshgs") +region = Rect2(60, 60, 20, 20) + +[sub_resource type="AtlasTexture" id="AtlasTexture_70m7p"] +atlas = ExtResource("2_cshgs") +region = Rect2(40, 80, 20, 20) + +[sub_resource type="AtlasTexture" id="AtlasTexture_f0cly"] +atlas = ExtResource("2_cshgs") +region = Rect2(60, 80, 20, 20) + +[sub_resource type="AtlasTexture" id="AtlasTexture_ojfnu"] +atlas = ExtResource("2_cshgs") +region = Rect2(0, 60, 20, 20) + +[sub_resource type="AtlasTexture" id="AtlasTexture_eslxr"] +atlas = ExtResource("2_cshgs") +region = Rect2(20, 60, 20, 20) + +[sub_resource type="AtlasTexture" id="AtlasTexture_ar12j"] +atlas = ExtResource("2_cshgs") +region = Rect2(20, 80, 20, 20) + +[sub_resource type="AtlasTexture" id="AtlasTexture_11207"] +atlas = ExtResource("2_cshgs") +region = Rect2(0, 80, 20, 20) + +[sub_resource type="AtlasTexture" id="AtlasTexture_36mmi"] +atlas = ExtResource("2_cshgs") +region = Rect2(20, 60, 20, 20) + +[sub_resource type="AtlasTexture" id="AtlasTexture_uilw5"] +atlas = ExtResource("2_cshgs") +region = Rect2(0, 60, 20, 20) + +[sub_resource type="AtlasTexture" id="AtlasTexture_fvhei"] +atlas = ExtResource("2_cshgs") +region = Rect2(0, 80, 20, 20) + +[sub_resource type="SpriteFrames" id="SpriteFrames_heqvb"] +animations = [{ +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_lwyws") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_u44yj") +}], +"loop": true, +"name": &"Idle", +"speed": 6.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_70m7p") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_f0cly") +}], +"loop": true, +"name": &"Moving", +"speed": 11.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_ojfnu") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_eslxr") +}], +"loop": false, +"name": &"Pre-Idle", +"speed": 3.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_ar12j") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_11207") +}], +"loop": false, +"name": &"Stopping", +"speed": 2.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_36mmi") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_uilw5") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_fvhei") +}], +"loop": false, +"name": &"Wind-Up", +"speed": 9.0 +}] + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_wmrwe"] + +[sub_resource type="CircleShape2D" id="CircleShape2D_3sffk"] +radius = 1.0 + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_4d2vn"] +size = Vector2(9.95312, 9.95312) + +[node name="Ghost" type="StaticBody2D" groups=["Ghost", "Obsticals"]] +script = ExtResource("1_1xbhw") + +[node name="GhostSprite" type="AnimatedSprite2D" parent="."] +sprite_frames = SubResource("SpriteFrames_heqvb") +animation = &"Pre-Idle" + +[node name="ObsticalCollision" type="CollisionShape2D" parent="."] +shape = SubResource("RectangleShape2D_wmrwe") + +[node name="Probe" type="Area2D" parent="."] + +[node name="ProbeCollision" type="CollisionShape2D" parent="Probe"] +shape = SubResource("CircleShape2D_3sffk") +debug_color = Color(0.945098, 0.235294, 0, 0.419608) + +[node name="GhostArea" type="Area2D" parent="." groups=["Ghost"]] + +[node name="ProbeCollision" type="CollisionShape2D" parent="GhostArea"] +shape = SubResource("RectangleShape2D_4d2vn") +debug_color = Color(0.443137, 0.6, 0, 0.419608) + +[node name="GhostMove" type="AudioStreamPlayer" parent="."] +stream = ExtResource("3_qcwa8") + +[connection signal="body_entered" from="Probe" to="." method="_on_probe_body_entered"] +[connection signal="body_exited" from="Probe" to="." method="_on_probe_body_exited"] +[connection signal="area_entered" from="GhostArea" to="." method="_on_ghost_area_area_entered"] +[connection signal="area_exited" from="GhostArea" to="." method="_on_ghost_area_area_exited"] diff --git a/Entities/Lazer.tscn b/Entities/Lazer.tscn new file mode 100644 index 0000000..70f6b7f --- /dev/null +++ b/Entities/Lazer.tscn @@ -0,0 +1,129 @@ +[gd_scene load_steps=15 format=3 uid="uid://bisrejbnlhlui"] + +[ext_resource type="Texture2D" uid="uid://c38fo4o7uf5c3" path="res://Sprite Sheets/OoB elements.png" id="1_46tey"] +[ext_resource type="Script" path="res://Scripts/lazer.cs" id="1_nwmk1"] +[ext_resource type="Texture2D" uid="uid://s2cmbu5hdci" path="res://Sprite Sheets/RedElements.png" id="3_g3f15"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_e38kv"] +atlas = ExtResource("1_46tey") +region = Rect2(0, 40, 20, 20) + +[sub_resource type="AtlasTexture" id="AtlasTexture_aqypj"] +atlas = ExtResource("1_46tey") +region = Rect2(20, 40, 20, 20) + +[sub_resource type="AtlasTexture" id="AtlasTexture_v1pfp"] +atlas = ExtResource("1_46tey") +region = Rect2(40, 40, 20, 20) + +[sub_resource type="AtlasTexture" id="AtlasTexture_5s8na"] +atlas = ExtResource("1_46tey") +region = Rect2(60, 40, 20, 20) + +[sub_resource type="AtlasTexture" id="AtlasTexture_hcq4o"] +atlas = ExtResource("3_g3f15") +region = Rect2(0, 40, 20, 20) + +[sub_resource type="AtlasTexture" id="AtlasTexture_scn70"] +atlas = ExtResource("3_g3f15") +region = Rect2(20, 40, 20, 20) + +[sub_resource type="AtlasTexture" id="AtlasTexture_73s05"] +atlas = ExtResource("3_g3f15") +region = Rect2(40, 40, 20, 20) + +[sub_resource type="AtlasTexture" id="AtlasTexture_3p3so"] +atlas = ExtResource("3_g3f15") +region = Rect2(60, 40, 20, 20) + +[sub_resource type="SpriteFrames" id="SpriteFrames_h30y6"] +animations = [{ +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_e38kv") +}], +"loop": true, +"name": &"0", +"speed": 5.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_aqypj") +}], +"loop": true, +"name": &"1", +"speed": 5.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_v1pfp") +}], +"loop": true, +"name": &"2", +"speed": 5.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_5s8na") +}], +"loop": true, +"name": &"3", +"speed": 5.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_hcq4o") +}], +"loop": true, +"name": &"Red0", +"speed": 5.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_scn70") +}], +"loop": true, +"name": &"Red1", +"speed": 5.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_73s05") +}], +"loop": true, +"name": &"Red2", +"speed": 5.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_3p3so") +}], +"loop": true, +"name": &"Red3", +"speed": 5.0 +}] + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_7qsrl"] + +[sub_resource type="CircleShape2D" id="CircleShape2D_6ocbt"] +radius = 1.0 + +[node name="Lazer" type="StaticBody2D" groups=["Lazer", "Obsticals"]] +z_index = 1 +script = ExtResource("1_nwmk1") + +[node name="LazerSprite" type="AnimatedSprite2D" parent="."] +sprite_frames = SubResource("SpriteFrames_h30y6") +animation = &"1" + +[node name="LazerCollision" type="CollisionShape2D" parent="."] +shape = SubResource("RectangleShape2D_7qsrl") +debug_color = Color(0, 0.647059, 0.207843, 0.419608) + +[node name="Probe" type="Area2D" parent="."] + +[node name="ProbeCollision" type="CollisionShape2D" parent="Probe"] +shape = SubResource("CircleShape2D_6ocbt") +debug_color = Color(1, 1, 1, 0.419608) + +[connection signal="body_entered" from="Probe" to="." method="_on_probe_body_entered"] diff --git a/Entities/entrance.tscn b/Entities/entrance.tscn new file mode 100644 index 0000000..e2051cb --- /dev/null +++ b/Entities/entrance.tscn @@ -0,0 +1,19 @@ +[gd_scene load_steps=5 format=3 uid="uid://bbvpjrnarl7qb"] + +[ext_resource type="Script" path="res://Scripts/Entrance.cs" id="1_mdwv8"] +[ext_resource type="Texture2D" uid="uid://d3ppe6c48t58p" path="res://Sprite Sheets/Stairs.png" id="2_i2ie3"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_1k2yg"] +atlas = ExtResource("2_i2ie3") +region = Rect2(0, 20, 20, 20) + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_f1wnt"] + +[node name="Entrance" type="StaticBody2D"] +script = ExtResource("1_mdwv8") + +[node name="EntranceSprite" type="Sprite2D" parent="."] +texture = SubResource("AtlasTexture_1k2yg") + +[node name="EntranceShape" type="CollisionShape2D" parent="."] +shape = SubResource("RectangleShape2D_f1wnt") diff --git a/Icon.png b/Icon.png new file mode 100644 index 0000000..21ca253 Binary files /dev/null and b/Icon.png differ diff --git a/Icon.png.import b/Icon.png.import new file mode 100644 index 0000000..ab0b8da --- /dev/null +++ b/Icon.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://blc3rwn0ou250" +path="res://.godot/imported/Icon.png-33e63688031d53466d4d656c73cf10ca.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Icon.png" +dest_files=["res://.godot/imported/Icon.png-33e63688031d53466d4d656c73cf10ca.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=1 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/Levels/0.tscn b/Levels/0.tscn new file mode 100644 index 0000000..d263462 --- /dev/null +++ b/Levels/0.tscn @@ -0,0 +1,23 @@ +[gd_scene load_steps=5 format=3 uid="uid://chytvp1xokydh"] + +[ext_resource type="PackedScene" uid="uid://dpvsvhuvstab6" path="res://Tile Maps/Walls.tscn" id="1_4fwnf"] +[ext_resource type="PackedScene" uid="uid://bbvpjrnarl7qb" path="res://Entities/entrance.tscn" id="2_e38t4"] +[ext_resource type="PackedScene" uid="uid://b6ox70gr6e6ej" path="res://Entities/Exit.tscn" id="3_nf86x"] +[ext_resource type="Texture2D" uid="uid://cxf3ijccwan4y" path="res://Sprite Sheets/title.png" id="4_ei3cf"] + +[node name="0" type="Node2D" groups=["Level"]] +show_behind_parent = true + +[node name="Walls" parent="." instance=ExtResource("1_4fwnf")] +layer_0/tile_data = PackedInt32Array(393224, 65536, 196608, 327688, 131072, 196608, 262152, 131072, 196608, 196616, 131072, 196608, 131080, 131072, 196608, 65544, 131072, 196608, 8, 131072, 196608, -65528, 131072, 196608, -131064, 131072, 196608, -196600, 131072, 196608, -262136, 131072, 196608, -327672, 131072, 196608, -393208, 131072, 196608, -458744, 65536, 65536, 393223, 131072, 65536, 327687, 65536, 1, 262151, 65536, 1, 196615, 65536, 1, 131079, 0, 65537, 65543, 131072, 131072, 7, 0, 196609, -65529, 65536, 1, -131065, 65536, 1, -196601, 65536, 1, -262137, 65536, 1, -327673, 65536, 1, -393209, 65536, 1, -458745, 131072, 0, 393222, 131072, 65536, 327686, 65536, 1, 262150, 65536, 1, 196614, 0, 65537, 131078, 65536, 0, 65542, 65537, 196613, 6, 65536, 131072, -65530, 0, 196609, -131066, 65536, 1, -196602, 65536, 1, -262138, 65536, 1, -327674, 65536, 1, -393210, 65536, 1, -458746, 131072, 0, 393221, 131072, 65536, 327685, 65536, 1, 262149, 65536, 1, 196613, 131072, 0, 131077, 1, 196608, 65541, 65537, 196610, 5, 1, 65536, -65531, 131072, 65536, -131067, 65536, 1, -196603, 65536, 1, -262139, 65536, 1, -327675, 65536, 1, -393211, 65536, 1, -458747, 131072, 0, 393220, 131072, 65536, 327684, 65536, 1, 262148, 65536, 1, 196612, 131072, 0, 131076, 65537, 65540, 65540, 1, 1, 4, 65537, 4, -65532, 131072, 65536, -131068, 65536, 1, -196604, 65536, 1, -262140, 65536, 1, -327676, 65536, 1, -393212, 65536, 1, -458748, 131072, 0, 393219, 131072, 65536, 327683, 65536, 1, 262147, 65536, 1, 196611, 131072, 0, 131075, 65537, 65540, 65539, 1, 1, 3, 65537, 4, -65533, 131072, 65536, -131069, 65536, 1, -196605, 65536, 1, -262141, 65536, 1, -327677, 65536, 1, -393213, 65536, 1, -458749, 131072, 0, 393218, 131072, 65536, 327682, 65536, 1, 262146, 65536, 1, 196610, 131072, 0, 131074, 65537, 65540, 65538, 1, 1, 2, 65537, 4, -65534, 131072, 65536, -131070, 65536, 1, -196606, 65536, 1, -262142, 65536, 1, -327678, 65536, 1, -393214, 65536, 1, -458750, 131072, 0, 393217, 131072, 65536, 327681, 65536, 1, 262145, 65536, 1, 196609, 131072, 0, 131073, 65537, 65540, 65537, 1, 1, 1, 65537, 4, -65535, 131072, 65536, -131071, 65536, 1, -196607, 65536, 1, -262143, 65536, 1, -327679, 65536, 1, -393215, 65536, 1, -458751, 131072, 0, 393216, 131072, 65536, 327680, 65536, 1, 262144, 65536, 1, 196608, 131072, 0, 131072, 65537, 65540, 65536, 1, 1, 0, 65537, 4, -65536, 131072, 65536, -131072, 65536, 1, -196608, 65536, 1, -262144, 65536, 1, -327680, 65536, 1, -393216, 65536, 1, -458752, 131072, 0, 458751, 131072, 65536, 393215, 65536, 1, 327679, 65536, 1, 262143, 131072, 0, 196607, 65537, 65540, 131071, 1, 1, 65535, 65537, 4, -1, 131072, 65536, -65537, 65536, 1, -131073, 65536, 1, -196609, 65536, 1, -262145, 65536, 1, -327681, 65536, 1, -393217, 131072, 0, 458750, 131072, 65536, 393214, 65536, 1, 327678, 65536, 1, 262142, 131072, 0, 196606, 65537, 65540, 131070, 1, 1, 65534, 65537, 4, -2, 131072, 65536, -65538, 65536, 1, -131074, 65536, 1, -196610, 65536, 1, -262146, 65536, 1, -327682, 65536, 1, -393218, 131072, 0, 458749, 131072, 65536, 393213, 65536, 1, 327677, 65536, 1, 262141, 131072, 0, 196605, 65537, 65540, 131069, 1, 1, 65533, 65537, 4, -3, 131072, 65536, -65539, 65536, 1, -131075, 65536, 1, -196611, 65536, 1, -262147, 65536, 1, -327683, 65536, 1, -393219, 131072, 0, 458748, 131072, 65536, 393212, 65536, 1, 327676, 65536, 1, 262140, 131072, 0, 196604, 65537, 65540, 131068, 1, 1, 65532, 65537, 4, -4, 131072, 65536, -65540, 65536, 1, -131076, 65536, 1, -196612, 65536, 1, -262148, 65536, 1, -327684, 65536, 1, -393220, 131072, 0, 458747, 131072, 65536, 393211, 65536, 1, 327675, 65536, 1, 262139, 131072, 0, 196603, 65537, 65540, 131067, 1, 1, 65531, 65537, 4, -5, 131072, 65536, -65541, 65536, 1, -131077, 65536, 1, -196613, 65536, 1, -262149, 65536, 1, -327685, 65536, 1, -393221, 131072, 0, 458746, 131072, 65536, 393210, 65536, 1, 327674, 65536, 1, 262138, 131072, 0, 196602, 1, 131072, 131066, 65537, 131074, 65530, 1, 0, -6, 131072, 65536, -65542, 65536, 1, -131078, 65536, 1, -196614, 65536, 1, -262150, 65536, 1, -327686, 65536, 1, -393222, 131072, 0, 458745, 131072, 65536, 393209, 65536, 1, 327673, 65536, 1, 262137, 0, 1, 196601, 65536, 65536, 131065, 65537, 131077, 65529, 65536, 196608, -7, 0, 131073, -65543, 65536, 1, -131079, 65536, 1, -196615, 65536, 1, -262151, 65536, 1, -327687, 65536, 1, -393223, 131072, 0, 458744, 131072, 65536, 393208, 65536, 1, 327672, 65536, 1, 262136, 65536, 1, 196600, 0, 1, 131064, 131072, 196608, 65528, 0, 131073, -8, 65536, 1, -65544, 65536, 1, -131080, 65536, 1, -196616, 65536, 1, -262152, 65536, 1, -327688, 65536, 1, -393224, 131072, 0, 458743, 65536, 131072, 393207, 131072, 131072, 327671, 131072, 131072, 262135, 131072, 131072, 196599, 131072, 131072, 131063, 131072, 131072, 65527, 131072, 131072, -9, 131072, 131072, -65545, 131072, 131072, -131081, 131072, 131072, -196617, 131072, 131072, -262153, 131072, 131072, -327689, 131072, 131072, -393225, 65536, 0) + +[node name="Entrance" parent="." instance=ExtResource("2_e38t4")] +position = Vector2(-130, 30) + +[node name="Exit" parent="." instance=ExtResource("3_nf86x")] +position = Vector2(130, 30) + +[node name="Sprite2D" type="Sprite2D" parent="."] +position = Vector2(-0.999999, 12) +scale = Vector2(0.4, 0.4) +texture = ExtResource("4_ei3cf") diff --git a/Levels/1.tscn b/Levels/1.tscn new file mode 100644 index 0000000..1a6de85 --- /dev/null +++ b/Levels/1.tscn @@ -0,0 +1,44 @@ +[gd_scene load_steps=7 format=3 uid="uid://b2y7o42qu00ki"] + +[ext_resource type="PackedScene" uid="uid://dpvsvhuvstab6" path="res://Tile Maps/Walls.tscn" id="1_q1s22"] +[ext_resource type="PackedScene" uid="uid://b6ox70gr6e6ej" path="res://Entities/Exit.tscn" id="2_dxcws"] +[ext_resource type="PackedScene" uid="uid://crtwv7phv71wq" path="res://Entities/Ghost.tscn" id="3_suxgs"] +[ext_resource type="PackedScene" uid="uid://b8d22amvt6eq5" path="res://Entities/Cage.tscn" id="4_nni35"] +[ext_resource type="PackedScene" uid="uid://bbvpjrnarl7qb" path="res://Entities/entrance.tscn" id="5_bnt5r"] +[ext_resource type="PackedScene" uid="uid://ctdil7060o2ft" path="res://Entities/EvilEye.tscn" id="6_5ql55"] + +[node name="1" type="Node2D" groups=["Level"]] +show_behind_parent = true + +[node name="Walls" parent="." instance=ExtResource("1_q1s22")] +layer_0/tile_data = PackedInt32Array(393224, 65536, 196608, 327688, 131072, 196608, 262152, 131072, 196608, 196616, 131072, 196608, 131080, 131072, 196608, 65544, 196608, 458754, 8, 196608, 65536, -65528, 196608, 327682, -131064, 131072, 196608, -196600, 131072, 196608, -262136, 131072, 196608, -327672, 131072, 196608, -393208, 131072, 196608, -458744, 65536, 65536, 393223, 131072, 65536, 327687, 65536, 1, 262151, 65536, 1, 196615, 65536, 1, 131079, 65536, 1, 65543, 131072, 0, 7, 65537, 196613, -65529, 131072, 65536, -131065, 65536, 1, -196601, 65536, 1, -262137, 65536, 1, -327673, 65536, 1, -393209, 65536, 1, -458745, 131072, 0, 393222, 131072, 65536, 327686, 65536, 1, 262150, 65536, 1, 196614, 65536, 1, 131078, 65536, 1, 65542, 131072, 0, 6, 1, 4, -65530, 131072, 65536, -131066, 65536, 1, -196602, 65536, 1, -262138, 65536, 1, -327674, 65536, 1, -393210, 65536, 1, -458746, 131072, 0, 393221, 131072, 65536, 327685, 65536, 1, 262149, 65536, 1, 196613, 65536, 1, 131077, 65536, 1, 65541, 131072, 0, 5, 1, 4, -65531, 131072, 65536, -131067, 65536, 1, -196603, 65536, 1, -262139, 65536, 1, -327675, 65536, 1, -393211, 65536, 1, -458747, 131072, 0, 393220, 131072, 65536, 327684, 65536, 1, 262148, 65536, 1, 196612, 65536, 1, 131076, 65536, 1, 65540, 131072, 0, 4, 1, 4, -65532, 131072, 65536, -131068, 65536, 1, -196604, 65536, 1, -262140, 65536, 1, -327676, 65536, 1, -393212, 65536, 1, -458748, 131072, 0, 393219, 131072, 65536, 327683, 65536, 1, 262147, 65536, 1, 196611, 65536, 1, 131075, 65536, 1, 65539, 131072, 0, 3, 1, 4, -65533, 131072, 65536, -131069, 65536, 1, -196605, 65536, 1, -262141, 65536, 1, -327677, 65536, 1, -393213, 65536, 1, -458749, 131072, 0, 393218, 131072, 65536, 327682, 65536, 1, 262146, 65536, 1, 196610, 65536, 1, 131074, 65536, 1, 65538, 131072, 0, 2, 1, 4, -65534, 131072, 65536, -131070, 65536, 1, -196606, 65536, 1, -262142, 65536, 1, -327678, 65536, 1, -393214, 65536, 1, -458750, 131072, 0, 393217, 131072, 65536, 327681, 65536, 1, 262145, 65536, 1, 196609, 65536, 1, 131073, 0, 65537, 65537, 65536, 0, 1, 1, 4, -65535, 65536, 131072, -131071, 131072, 131072, -196607, 131072, 131072, -262143, 131072, 131072, -327679, 131072, 131072, -393215, 131072, 131072, -458751, 196608, 65538, 393216, 131072, 65536, 327680, 65536, 1, 262144, 65536, 1, 196608, 65536, 1, 131072, 131072, 0, 65536, 65537, 65541, 0, 65537, 6, -65536, 1, 65540, -131072, 1, 65540, -196608, 1, 65540, -262144, 1, 65540, -327680, 1, 65540, -393216, 65537, 5, -458752, 196608, 0, 458751, 196608, 196610, 393215, 131072, 131072, 327679, 131072, 131072, 262143, 131072, 131072, 196607, 196608, 393218, 131071, 131072, 1, 65535, 1, 4, -1, 131072, 65537, -65537, 196608, 327682, -131073, 131072, 196608, -196609, 131072, 196608, -262145, 131072, 196608, -327681, 131072, 196608, -393217, 196608, 2, 458750, 196608, 0, 393214, 65537, 65541, 327678, 1, 65540, 262142, 1, 65540, 196606, 1, 65540, 131070, 1, 65540, 65534, 65537, 6, -2, 65537, 5, -65538, 131072, 65536, -131074, 65536, 1, -196610, 65536, 1, -262146, 65536, 1, -327682, 65536, 1, -393218, 131072, 0, 458749, 196608, 131074, 393213, 131072, 196608, 327677, 131072, 196608, 262141, 131072, 196608, 196605, 131072, 196608, 131069, 65536, 65536, 65533, 1, 4, -3, 65536, 196608, -65539, 0, 131073, -131075, 65536, 1, -196611, 65536, 1, -262147, 65536, 1, -327683, 65536, 1, -393219, 131072, 0, 458748, 131072, 65536, 393212, 65536, 1, 327676, 65536, 1, 262140, 0, 65537, 196604, 131072, 131072, 131068, 65536, 0, 65532, 1, 4, -4, 65536, 131072, -65540, 131072, 131072, -131076, 0, 196609, -196612, 65536, 1, -262148, 65536, 1, -327684, 65536, 1, -393220, 131072, 0, 458747, 131072, 65536, 393211, 65536, 1, 327675, 65536, 1, 262139, 131072, 0, 196603, 1, 196608, 131067, 65537, 196612, 65531, 65537, 196610, -5, 65537, 196612, -65541, 1, 65536, -131077, 131072, 65536, -196613, 65536, 1, -262149, 65536, 1, -327685, 65536, 1, -393221, 131072, 0, 458746, 131072, 65536, 393210, 65536, 1, 327674, 65536, 1, 262138, 131072, 0, 196602, 1, 131072, 131066, 65537, 131076, 65530, 65537, 196609, -6, 1, 1, -65542, 65537, 4, -131078, 131072, 65536, -196614, 65536, 1, -262150, 65536, 1, -327686, 65536, 1, -393222, 131072, 0, 458745, 131072, 65536, 393209, 65536, 1, 327673, 65536, 1, 262137, 0, 1, 196601, 131072, 196608, 131065, 65536, 65536, 65529, 1, 196614, -7, 65537, 131076, -65543, 1, 0, -131079, 131072, 65536, -196615, 65536, 1, -262151, 65536, 1, -327687, 65536, 1, -393223, 131072, 0, 458744, 131072, 65536, 393208, 65536, 1, 327672, 65536, 1, 262136, 65536, 1, 196600, 65536, 1, 131064, 131072, 0, 65528, 65537, 131077, -8, 65536, 196608, -65544, 131072, 196608, -131080, 0, 131073, -196616, 65536, 1, -262152, 65536, 1, -327688, 65536, 1, -393224, 131072, 0, 458743, 65536, 131072, 393207, 131072, 131072, 327671, 131072, 131072, 262135, 131072, 131072, 196599, 131072, 131072, 131063, 196608, 393218, 65527, 196608, 65536, -9, 196608, 262146, -65545, 131072, 131072, -131081, 131072, 131072, -196617, 131072, 131072, -262153, 131072, 131072, -327689, 131072, 131072, -393225, 65536, 0) + +[node name="Exit" parent="." instance=ExtResource("2_dxcws")] +position = Vector2(150, 10) + +[node name="Ghost" parent="." instance=ExtResource("3_suxgs")] +position = Vector2(-110, -10) + +[node name="Ghost2" parent="." instance=ExtResource("3_suxgs")] +position = Vector2(-90, -10) + +[node name="Cage" parent="." instance=ExtResource("4_nni35")] +position = Vector2(-110, 50) +triggerPos = Vector2(-30, -10) + +[node name="Cage2" parent="." instance=ExtResource("4_nni35")] +position = Vector2(-90, 50) +triggerPos = Vector2(10, 30) + +[node name="Entrance" parent="." instance=ExtResource("5_bnt5r")] +position = Vector2(-150, 10) + +[node name="EvilEye" parent="." instance=ExtResource("6_5ql55")] +position = Vector2(10, 30) +activated = true +direction = 3 + +[node name="EvilEye2" parent="." instance=ExtResource("6_5ql55")] +position = Vector2(-30, -10) +activated = true +direction = 4 diff --git a/Levels/2.tscn b/Levels/2.tscn new file mode 100644 index 0000000..4485d8b --- /dev/null +++ b/Levels/2.tscn @@ -0,0 +1,44 @@ +[gd_scene load_steps=7 format=3 uid="uid://cct7y0ssl1fcm"] + +[ext_resource type="PackedScene" uid="uid://dpvsvhuvstab6" path="res://Tile Maps/Walls.tscn" id="1_jfu23"] +[ext_resource type="PackedScene" uid="uid://crtwv7phv71wq" path="res://Entities/Ghost.tscn" id="2_2btfm"] +[ext_resource type="PackedScene" uid="uid://b8d22amvt6eq5" path="res://Entities/Cage.tscn" id="3_rvgy6"] +[ext_resource type="PackedScene" uid="uid://ctdil7060o2ft" path="res://Entities/EvilEye.tscn" id="4_iwwua"] +[ext_resource type="PackedScene" uid="uid://bbvpjrnarl7qb" path="res://Entities/entrance.tscn" id="5_03flp"] +[ext_resource type="PackedScene" uid="uid://b6ox70gr6e6ej" path="res://Entities/Exit.tscn" id="6_2do8j"] + +[node name="2" type="Node2D" groups=["Level"]] +show_behind_parent = true + +[node name="Walls" parent="." instance=ExtResource("1_jfu23")] +layer_0/tile_data = PackedInt32Array(393224, 65536, 196608, 327688, 131072, 196608, 262152, 131072, 196608, 196616, 131072, 196608, 131080, 131072, 196608, 65544, 196608, 458754, 8, 196608, 65536, -65528, 196608, 327682, -131064, 131072, 196608, -196600, 131072, 196608, -262136, 131072, 196608, -327672, 131072, 196608, -393208, 131072, 196608, -458744, 65536, 65536, 393223, 131072, 65536, 327687, 65536, 1, 262151, 65536, 1, 196615, 65536, 1, 131079, 65536, 1, 65543, 131072, 0, 7, 65537, 196613, -65529, 131072, 65536, -131065, 65536, 1, -196601, 65536, 1, -262137, 65536, 1, -327673, 65536, 1, -393209, 65536, 1, -458745, 131072, 0, 393222, 131072, 65536, 327686, 65536, 1, 262150, 65536, 1, 196614, 65536, 1, 131078, 65536, 1, 65542, 131072, 0, 6, 1, 4, -65530, 131072, 65536, -131066, 65536, 1, -196602, 65536, 1, -262138, 65536, 1, -327674, 65536, 1, -393210, 65536, 1, -458746, 131072, 0, 393221, 131072, 65536, 327685, 65536, 1, 262149, 65536, 1, 196613, 65536, 1, 131077, 65536, 1, 65541, 131072, 0, 5, 1, 4, -65531, 131072, 65536, -131067, 65536, 1, -196603, 65536, 1, -262139, 65536, 1, -327675, 65536, 1, -393211, 65536, 1, -458747, 131072, 0, 393220, 131072, 65536, 327684, 65536, 1, 262148, 65536, 1, 196612, 65536, 1, 131076, 65536, 1, 65540, 131072, 0, 4, 1, 4, -65532, 131072, 65536, -131068, 65536, 1, -196604, 65536, 1, -262140, 65536, 1, -327676, 65536, 1, -393212, 65536, 1, -458748, 131072, 0, 393219, 131072, 65536, 327683, 65536, 1, 262147, 65536, 1, 196611, 65536, 1, 131075, 65536, 1, 65539, 131072, 0, 3, 1, 4, -65533, 131072, 65536, -131069, 65536, 1, -196605, 65536, 1, -262141, 65536, 1, -327677, 65536, 1, -393213, 65536, 1, -458749, 131072, 0, 393218, 131072, 65536, 327682, 65536, 1, 262146, 65536, 1, 196610, 65536, 1, 131074, 65536, 1, 65538, 131072, 0, 2, 1, 4, -65534, 131072, 65536, -131070, 65536, 1, -196606, 65536, 1, -262142, 65536, 1, -327678, 65536, 1, -393214, 65536, 1, -458750, 131072, 0, 393217, 131072, 65536, 327681, 65536, 1, 262145, 65536, 1, 196609, 65536, 1, 131073, 65536, 1, 65537, 131072, 0, 1, 1, 4, -65535, 131072, 65536, -131071, 65536, 1, -196607, 65536, 1, -262143, 65536, 1, -327679, 65536, 1, -393215, 65536, 1, -458751, 131072, 0, 393216, 131072, 65536, 327680, 65536, 1, 262144, 65536, 1, 196608, 0, 65537, 131072, 131072, 131072, 65536, 65536, 0, 0, 1, 4, -65536, 65536, 131072, -131072, 131072, 131072, -196608, 0, 196609, -262144, 65536, 1, -327680, 65536, 1, -393216, 65536, 1, -458752, 131072, 0, 458751, 131072, 65536, 393215, 65536, 1, 327679, 65536, 1, 262143, 131072, 0, 196607, 65537, 65541, 131071, 1, 65540, 65535, 65537, 6, -1, 1, 65540, -65537, 65537, 5, -131073, 131072, 65536, -196609, 65536, 1, -262145, 65536, 1, -327681, 65536, 1, -393217, 131072, 0, 458750, 131072, 65536, 393214, 65536, 1, 327678, 65536, 1, 262142, 0, 1, 196606, 131072, 196608, 131070, 65536, 65536, 65534, 1, 4, -2, 131072, 65537, -65538, 196608, 65536, -131074, 0, 65538, -196610, 65536, 1, -262146, 65536, 1, -327682, 65536, 1, -393218, 131072, 0, 458749, 131072, 65536, 393213, 65536, 1, 327677, 0, 65537, 262141, 131072, 131072, 196605, 0, 196609, 131069, 131072, 0, 65533, 1, 65539, -3, 1, 65540, -65539, 65537, 65539, -131075, 131072, 65536, -196611, 65536, 1, -262147, 65536, 1, -327683, 65536, 1, -393219, 131072, 0, 458748, 131072, 65536, 393212, 0, 65537, 327676, 65536, 0, 262140, 65537, 196613, 196604, 65536, 131072, 131068, 65536, 0, 65532, 1, 4, -4, 0, 0, -65540, 1, 4, -131076, 131072, 65536, -196612, 65536, 1, -262148, 65536, 1, -327684, 65536, 1, -393220, 131072, 0, 458747, 131072, 65536, 393211, 131072, 0, 327675, 65537, 65541, 262139, 1, 196610, 196603, 1, 458758, 131067, 1, 65540, 65531, 1, 196610, -5, 65537, 196612, -65541, 1, 6, -131077, 131072, 65536, -196613, 65536, 1, -262149, 65536, 1, -327685, 65536, 1, -393221, 131072, 0, 458746, 131072, 65536, 393210, 0, 1, 327674, 65536, 65536, 262138, 1, 131072, 196602, 1, 0, 131066, 131072, 196609, 65530, 65537, 65540, -6, 1, 1, -65542, 65537, 4, -131078, 131072, 65536, -196614, 65536, 1, -262150, 65536, 1, -327686, 65536, 1, -393222, 131072, 0, 458745, 131072, 65536, 393209, 65536, 1, 327673, 0, 1, 262137, 131072, 196608, 196601, 131072, 196608, 131065, 196608, 2, 65529, 1, 196614, -7, 65537, 131076, -65543, 1, 0, -131079, 131072, 65536, -196615, 65536, 1, -262151, 65536, 1, -327687, 65536, 1, -393223, 131072, 0, 458744, 131072, 65536, 393208, 65536, 1, 327672, 65536, 1, 262136, 65536, 1, 196600, 65536, 1, 131064, 131072, 0, 65528, 65537, 131077, -8, 65536, 196608, -65544, 131072, 196608, -131080, 0, 131073, -196616, 65536, 1, -262152, 65536, 1, -327688, 65536, 1, -393224, 131072, 0, 458743, 65536, 131072, 393207, 131072, 131072, 327671, 131072, 131072, 262135, 131072, 131072, 196599, 131072, 131072, 131063, 196608, 393218, 65527, 196608, 65536, -9, 196608, 262146, -65545, 131072, 131072, -131081, 131072, 131072, -196617, 131072, 131072, -262153, 131072, 131072, -327689, 131072, 131072, -393225, 65536, 0) + +[node name="Entrance" parent="." instance=ExtResource("5_03flp")] +position = Vector2(-150, 10) + +[node name="Exit" parent="." instance=ExtResource("6_2do8j")] +position = Vector2(150, 10) + +[node name="EvilEye" parent="." instance=ExtResource("4_iwwua")] +position = Vector2(-10, 50) +activated = true +direction = 3 + +[node name="EvilEye2" parent="." instance=ExtResource("4_iwwua")] +position = Vector2(-10, -30) +activated = true +direction = 4 + +[node name="Cage" parent="." instance=ExtResource("3_rvgy6")] +position = Vector2(-90, 90) +triggerPos = Vector2(-10, -30) + +[node name="Cage2" parent="." instance=ExtResource("3_rvgy6")] +position = Vector2(-70, 70) +triggerPos = Vector2(-10, 50) + +[node name="Ghost" parent="." instance=ExtResource("2_2btfm")] +position = Vector2(-90, -10) + +[node name="Ghost2" parent="." instance=ExtResource("2_2btfm")] +position = Vector2(-110, -10) diff --git a/Levels/3.tscn b/Levels/3.tscn new file mode 100644 index 0000000..197c8c6 --- /dev/null +++ b/Levels/3.tscn @@ -0,0 +1,89 @@ +[gd_scene load_steps=7 format=3 uid="uid://dah42e0gs8xri"] + +[ext_resource type="PackedScene" uid="uid://dpvsvhuvstab6" path="res://Tile Maps/Walls.tscn" id="1_03cvs"] +[ext_resource type="PackedScene" uid="uid://bbvpjrnarl7qb" path="res://Entities/entrance.tscn" id="2_7ppm3"] +[ext_resource type="PackedScene" uid="uid://b6ox70gr6e6ej" path="res://Entities/Exit.tscn" id="3_05itb"] +[ext_resource type="PackedScene" uid="uid://ctdil7060o2ft" path="res://Entities/EvilEye.tscn" id="4_1ndjk"] +[ext_resource type="PackedScene" uid="uid://crtwv7phv71wq" path="res://Entities/Ghost.tscn" id="5_gfbar"] +[ext_resource type="PackedScene" uid="uid://b8d22amvt6eq5" path="res://Entities/Cage.tscn" id="6_bups4"] + +[node name="3" type="Node2D" groups=["Level"]] +show_behind_parent = true + +[node name="Walls" parent="." instance=ExtResource("1_03cvs")] +layer_0/tile_data = PackedInt32Array(393224, 65536, 196608, 327688, 131072, 196608, 262152, 131072, 196608, 196616, 131072, 196608, 131080, 131072, 196608, 65544, 196608, 458754, 8, 196608, 65536, -65528, 65536, 196611, -131064, 196608, 65536, -196600, 196608, 65536, -262136, 196608, 65536, -327672, 65536, 196611, -393208, 196608, 65536, -458744, 0, 65539, 393223, 131072, 65536, 327687, 65536, 1, 262151, 65536, 1, 196615, 65536, 1, 131079, 65536, 1, 65543, 131072, 0, 7, 65537, 196613, -65529, 196608, 0, -131065, 1, 196608, -196601, 65537, 196612, -262137, 1, 65536, -327673, 131072, 131073, -393209, 65537, 196613, -458745, 196608, 0, 393222, 131072, 65536, 327686, 65536, 1, 262150, 65536, 1, 196614, 65536, 1, 131078, 65536, 1, 65542, 131072, 0, 6, 1, 4, -65530, 196608, 0, -131066, 65537, 65540, -196602, 1, 1, -262138, 65537, 1, -327674, 65537, 196612, -393210, 1, 6, -458746, 196608, 0, 393221, 131072, 65536, 327685, 65536, 1, 262149, 65536, 1, 196613, 65536, 1, 131077, 65536, 1, 65541, 131072, 0, 5, 1, 4, -65531, 196608, 0, -131067, 1, 131072, -196603, 65537, 196609, -262139, 1, 1, -327675, 1, 1, -393211, 65537, 4, -458747, 196608, 0, 393220, 131072, 65536, 327684, 65536, 1, 262148, 65536, 1, 196612, 65536, 1, 131076, 65536, 1, 65540, 131072, 0, 4, 1, 4, -65532, 196608, 131074, -131068, 65536, 65536, -196604, 65537, 65540, -262140, 1, 1, -327676, 1, 1, -393212, 65537, 4, -458748, 196608, 0, 393219, 131072, 65536, 327683, 65536, 1, 262147, 65536, 1, 196611, 0, 65537, 131075, 131072, 131072, 65539, 65536, 0, 3, 1, 4, -65533, 65536, 131072, -131069, 65536, 0, -196605, 1, 131072, -262141, 65537, 131076, -327677, 65537, 131074, -393213, 1, 0, -458749, 196608, 0, 393218, 131072, 65536, 327682, 65536, 1, 262146, 65536, 1, 196610, 131072, 0, 131074, 1, 196608, 65538, 65537, 196612, 2, 65537, 196610, -65534, 65537, 196612, -131070, 1, 65536, -196606, 65536, 196608, -262142, 65536, 65536, -327678, 1, 4, -393214, 65536, 196608, -458750, 196608, 2, 393217, 131072, 65536, 327681, 65536, 1, 262145, 65536, 1, 196609, 131072, 0, 131073, 65537, 65540, 65537, 1, 1, 1, 1, 1, -65535, 1, 1, -131071, 65537, 4, -196607, 131072, 65536, -262143, 131072, 0, -327679, 1, 4, -393215, 131072, 65536, -458751, 131072, 0, 393216, 131072, 65536, 327680, 65536, 1, 262144, 65536, 1, 196608, 131072, 0, 131072, 1, 131072, 65536, 65537, 131076, 0, 65537, 131074, -65536, 65537, 131076, -131072, 1, 0, -196608, 131072, 65536, -262144, 131072, 0, -327680, 1, 4, -393216, 131072, 65536, -458752, 131072, 0, 458751, 131072, 65536, 393215, 65536, 1, 327679, 65536, 1, 262143, 0, 1, 196607, 131072, 196608, 131071, 65536, 65536, 65535, 1, 4, -1, 131072, 65537, -65537, 196608, 65536, -131073, 196608, 262146, -196609, 65536, 0, -262145, 1, 4, -327681, 131072, 65536, -393217, 131072, 0, 458750, 131072, 65536, 393214, 65536, 1, 327678, 65536, 1, 262142, 65536, 1, 196606, 65536, 1, 131070, 131072, 0, 65534, 1, 65539, -2, 1, 65540, -65538, 1, 65540, -131074, 1, 65540, -196610, 1, 65540, -262146, 1, 3, -327682, 131072, 65536, -393218, 131072, 0, 458749, 131072, 65536, 393213, 65536, 1, 327677, 65536, 1, 262141, 65536, 1, 196605, 65536, 1, 131069, 131072, 0, 65533, 1, 4, -3, 65536, 196608, -65539, 196608, 458754, -131075, 196608, 65536, -196611, 131072, 1, -262147, 1, 4, -327683, 131072, 65536, -393219, 131072, 0, 458748, 131072, 65536, 393212, 65536, 1, 327676, 65536, 1, 262140, 65536, 1, 196604, 65536, 1, 131068, 131072, 0, 65532, 1, 4, -4, 131072, 65536, -65540, 131072, 0, -131076, 1, 196608, -196612, 65537, 196612, -262148, 1, 6, -327684, 131072, 65536, -393220, 131072, 0, 458747, 131072, 65536, 393211, 65536, 1, 327675, 65536, 1, 262139, 65536, 1, 196603, 65536, 1, 131067, 131072, 0, 65531, 1, 4, -5, 131072, 65536, -65541, 131072, 0, -131077, 65537, 65540, -196613, 1, 1, -262149, 65537, 4, -327685, 131072, 65536, -393221, 131072, 0, 458746, 131072, 65536, 393210, 65536, 1, 327674, 65536, 1, 262138, 65536, 1, 196602, 65536, 1, 131066, 131072, 0, 65530, 1, 4, -6, 131072, 65536, -65542, 131072, 0, -131078, 65537, 65540, -196614, 1, 1, -262150, 65537, 4, -327686, 131072, 65536, -393222, 131072, 0, 458745, 131072, 65536, 393209, 65536, 1, 327673, 65536, 1, 262137, 65536, 1, 196601, 65536, 1, 131065, 131072, 0, 65529, 1, 4, -7, 131072, 65536, -65543, 131072, 0, -131079, 65537, 65540, -196615, 1, 1, -262151, 65537, 4, -327687, 131072, 65536, -393223, 131072, 0, 458744, 131072, 65536, 393208, 65536, 1, 327672, 65536, 1, 262136, 65536, 1, 196600, 65536, 1, 131064, 131072, 0, 65528, 65537, 131077, -8, 131072, 65536, -65544, 131072, 0, -131080, 1, 131072, -196616, 65537, 131076, -262152, 1, 0, -327688, 131072, 65536, -393224, 131072, 0, 458743, 65536, 131072, 393207, 131072, 131072, 327671, 131072, 131072, 262135, 131072, 131072, 196599, 131072, 131072, 131063, 196608, 393218, 65527, 196608, 65536, -9, 196608, 262146, -65545, 196608, 393218, -131081, 196608, 65536, -196617, 196608, 65536, -262153, 196608, 65536, -327689, 196608, 262146, -393225, 65536, 0) + +[node name="Entrance" parent="." instance=ExtResource("2_7ppm3")] +position = Vector2(-150, 10) + +[node name="Exit" parent="." instance=ExtResource("3_05itb")] +position = Vector2(150, 10) + +[node name="EvilEye" parent="." instance=ExtResource("4_1ndjk")] +position = Vector2(10, 50) +red = true +direction = 3 + +[node name="EvilEye2" parent="." instance=ExtResource("4_1ndjk")] +position = Vector2(10, -30) +activated = true +direction = 4 + +[node name="EvilEye3" parent="." instance=ExtResource("4_1ndjk")] +position = Vector2(30, -30) +activated = true +direction = 4 + +[node name="EvilEye4" parent="." instance=ExtResource("4_1ndjk")] +position = Vector2(30, 50) +red = true +direction = 3 + +[node name="Ghost" parent="." instance=ExtResource("5_gfbar")] +position = Vector2(-110, -70) + +[node name="Ghost2" parent="." instance=ExtResource("5_gfbar")] +position = Vector2(-90, -70) + +[node name="Ghost3" parent="." instance=ExtResource("5_gfbar")] +position = Vector2(-70, -70) + +[node name="Cage" parent="." instance=ExtResource("6_bups4")] +position = Vector2(110, -30) +triggerPos = Vector2(30, -30) + +[node name="Cage2" parent="." instance=ExtResource("6_bups4")] +position = Vector2(70, -70) +red = true +triggerPos = Vector2(10, 50) + +[node name="Cage3" parent="." instance=ExtResource("6_bups4")] +position = Vector2(70, -50) +red = true +triggerPos = Vector2(30, 50) + +[node name="EvilEye5" parent="." instance=ExtResource("4_1ndjk")] +position = Vector2(50, 50) +red = true +direction = 3 + +[node name="EvilEye6" parent="." instance=ExtResource("4_1ndjk")] +position = Vector2(50, -30) +activated = true +direction = 4 + +[node name="Cage4" parent="." instance=ExtResource("6_bups4")] +position = Vector2(150, -110) +triggerPos = Vector2(50, -30) + +[node name="Cage5" parent="." instance=ExtResource("6_bups4")] +position = Vector2(150, -70) +red = true +triggerPos = Vector2(50, 50) + +[node name="Cage6" parent="." instance=ExtResource("6_bups4")] +position = Vector2(150, -50) +triggerPos = Vector2(10, -30) + +[node name="Ghost4" parent="." instance=ExtResource("5_gfbar")] +position = Vector2(-130, -70) diff --git a/Levels/4.tscn b/Levels/4.tscn new file mode 100644 index 0000000..52cab48 --- /dev/null +++ b/Levels/4.tscn @@ -0,0 +1,72 @@ +[gd_scene load_steps=7 format=3 uid="uid://b2b0aqr13eoxi"] + +[ext_resource type="PackedScene" uid="uid://dpvsvhuvstab6" path="res://Tile Maps/Walls.tscn" id="1_c0px3"] +[ext_resource type="PackedScene" uid="uid://bbvpjrnarl7qb" path="res://Entities/entrance.tscn" id="2_d21hp"] +[ext_resource type="PackedScene" uid="uid://b6ox70gr6e6ej" path="res://Entities/Exit.tscn" id="3_j4i5c"] +[ext_resource type="PackedScene" uid="uid://ctdil7060o2ft" path="res://Entities/EvilEye.tscn" id="4_s23w3"] +[ext_resource type="PackedScene" uid="uid://crtwv7phv71wq" path="res://Entities/Ghost.tscn" id="5_nljwp"] +[ext_resource type="PackedScene" uid="uid://b8d22amvt6eq5" path="res://Entities/Cage.tscn" id="6_mmjaf"] + +[node name="4" type="Node2D" groups=["Level"]] +show_behind_parent = true + +[node name="Walls" parent="." instance=ExtResource("1_c0px3")] +layer_0/tile_data = PackedInt32Array(393224, 65536, 196608, 327688, 131072, 196608, 262152, 131072, 196608, 196616, 131072, 196608, 131080, 131072, 196608, 65544, 196608, 458754, 8, 196608, 65536, -65528, 196608, 327682, -131064, 131072, 196608, -196600, 131072, 196608, -262136, 131072, 196608, -327672, 131072, 196608, -393208, 131072, 196608, -458744, 65536, 65536, 393223, 131072, 65536, 327687, 65536, 1, 262151, 65536, 1, 196615, 65536, 1, 131079, 65536, 1, 65543, 131072, 0, 7, 65537, 196613, -65529, 131072, 65536, -131065, 65536, 1, -196601, 65536, 1, -262137, 65536, 1, -327673, 65536, 1, -393209, 65536, 1, -458745, 131072, 0, 393222, 131072, 65536, 327686, 65536, 1, 262150, 65536, 1, 196614, 65536, 1, 131078, 65536, 1, 65542, 131072, 0, 6, 1, 4, -65530, 131072, 65536, -131066, 65536, 1, -196602, 65536, 1, -262138, 65536, 1, -327674, 65536, 1, -393210, 65536, 1, -458746, 131072, 0, 393221, 131072, 65536, 327685, 65536, 1, 262149, 65536, 1, 196613, 65536, 1, 131077, 65536, 1, 65541, 131072, 0, 5, 1, 4, -65531, 131072, 65536, -131067, 65536, 1, -196603, 65536, 1, -262139, 65536, 1, -327675, 65536, 1, -393211, 65536, 1, -458747, 131072, 0, 393220, 131072, 65536, 327684, 65536, 1, 262148, 65536, 1, 196612, 65536, 1, 131076, 65536, 1, 65540, 131072, 0, 4, 1, 4, -65532, 131072, 65536, -131068, 65536, 1, -196604, 65536, 1, -262140, 65536, 1, -327676, 65536, 1, -393212, 65536, 1, -458748, 131072, 0, 393219, 131072, 65536, 327683, 65536, 1, 262147, 65536, 1, 196611, 65536, 1, 131075, 65536, 1, 65539, 131072, 0, 3, 1, 4, -65533, 131072, 65536, -131069, 65536, 1, -196605, 65536, 1, -262141, 65536, 1, -327677, 65536, 1, -393213, 65536, 1, -458749, 131072, 0, 393218, 131072, 65536, 327682, 65536, 1, 262146, 65536, 1, 196610, 0, 65537, 131074, 131072, 131072, 65538, 65536, 0, 2, 1, 4, -65534, 65536, 131072, -131070, 131072, 131072, -196606, 0, 196609, -262142, 65536, 1, -327678, 65536, 1, -393214, 65536, 1, -458750, 131072, 0, 393217, 131072, 65536, 327681, 65536, 1, 262145, 65536, 1, 196609, 131072, 0, 131073, 1, 196608, 65537, 65537, 196612, 1, 65537, 196610, -65535, 65537, 196612, -131071, 1, 65536, -196607, 131072, 65536, -262143, 65536, 1, -327679, 65536, 1, -393215, 65536, 1, -458751, 131072, 0, 393216, 131072, 65536, 327680, 65536, 1, 262144, 65536, 1, 196608, 131072, 0, 131072, 1, 131072, 65536, 65537, 131076, 0, 65537, 131074, -65536, 65537, 131076, -131072, 1, 0, -196608, 131072, 65536, -262144, 65536, 1, -327680, 65536, 1, -393216, 65536, 1, -458752, 131072, 0, 458751, 196608, 196610, 393215, 131072, 131072, 327679, 131072, 131072, 262143, 196608, 393218, 196607, 196608, 327682, 131071, 65536, 65536, 65535, 1, 4, -1, 65536, 196608, -65537, 131072, 196608, -131073, 196608, 65537, -196609, 131072, 131072, -262145, 131072, 131072, -327681, 131072, 131072, -393217, 196608, 65538, 458750, 196608, 0, 393214, 1, 196608, 327678, 65537, 196612, 262142, 1, 65536, 196606, 131072, 65536, 131070, 131072, 0, 65534, 1, 4, -2, 131072, 65536, -65538, 65536, 1, -131074, 131072, 0, -196610, 1, 196608, -262146, 65537, 196612, -327682, 1, 65536, -393218, 196608, 0, 458749, 196608, 0, 393213, 65537, 65540, 327677, 1, 1, 262141, 65537, 4, 196605, 131072, 65536, 131069, 131072, 0, 65533, 1, 4, -3, 131072, 65536, -65539, 65536, 1, -131075, 131072, 0, -196611, 65537, 65540, -262147, 1, 1, -327683, 65537, 4, -393219, 196608, 0, 458748, 196608, 0, 393212, 1, 131072, 327676, 65537, 196609, 262140, 65537, 4, 196604, 65536, 131072, 131068, 196608, 65538, 65532, 1, 4, -4, 196608, 196610, -65540, 131072, 131072, -131076, 65536, 0, -196612, 65537, 65540, -262148, 65537, 65537, -327684, 1, 0, -393220, 196608, 0, 458747, 65536, 65539, 393211, 131072, 1, 327675, 65537, 65540, 262139, 65537, 1, 196603, 1, 65536, 131067, 131072, 131073, 65531, 1, 4, -5, 131072, 131073, -65541, 1, 196608, -131077, 65537, 196612, -196613, 65537, 131073, -262149, 65537, 4, -327685, 65536, 196608, -393221, 196608, 2, 458746, 196608, 0, 393210, 65537, 65541, 327674, 1, 262150, 262138, 65537, 131074, 196602, 1, 393222, 131066, 1, 65540, 65530, 65537, 6, -6, 1, 65540, -65542, 1, 262150, -131078, 65537, 196609, -196614, 65537, 65537, -262150, 1, 0, -327686, 131072, 65536, -393222, 131072, 0, 458745, 196608, 131074, 393209, 131072, 196608, 327673, 65536, 65536, 262137, 65537, 131077, 196601, 65536, 196608, 131065, 65536, 65536, 65529, 1, 4, -7, 65536, 196608, -65543, 65536, 65536, -131079, 1, 131072, -196615, 1, 0, -262151, 65536, 196608, -327687, 0, 131073, -393223, 131072, 0, 458744, 131072, 65536, 393208, 65536, 1, 327672, 0, 1, 262136, 131072, 196608, 196600, 0, 131073, 131064, 131072, 0, 65528, 65537, 131077, -8, 131072, 65536, -65544, 0, 1, -131080, 131072, 196608, -196616, 131072, 196608, -262152, 0, 131073, -327688, 65536, 1, -393224, 131072, 0, 458743, 65536, 131072, 393207, 131072, 131072, 327671, 131072, 131072, 262135, 131072, 131072, 196599, 131072, 131072, 131063, 196608, 393218, 65527, 196608, 65536, -9, 196608, 262146, -65545, 131072, 131072, -131081, 131072, 131072, -196617, 131072, 131072, -262153, 131072, 131072, -327689, 131072, 131072, -393225, 65536, 0) + +[node name="Entrance" parent="." instance=ExtResource("2_d21hp")] +position = Vector2(-150, 10) + +[node name="Exit" parent="." instance=ExtResource("3_j4i5c")] +position = Vector2(150, 10) + +[node name="EvilEye" parent="." instance=ExtResource("4_s23w3")] +position = Vector2(10, 50) +red = true +activated = true +direction = 3 + +[node name="EvilEye2" parent="." instance=ExtResource("4_s23w3")] +position = Vector2(30, 50) +red = true +activated = true +direction = 3 + +[node name="EvilEye3" parent="." instance=ExtResource("4_s23w3")] +position = Vector2(10, -30) +activated = true +direction = 4 + +[node name="EvilEye4" parent="." instance=ExtResource("4_s23w3")] +position = Vector2(30, -30) +activated = true +direction = 4 + +[node name="Ghost" parent="." instance=ExtResource("5_nljwp")] +position = Vector2(-50, -90) + +[node name="Ghost2" parent="." instance=ExtResource("5_nljwp")] +position = Vector2(-50, -70) + +[node name="Ghost3" parent="." instance=ExtResource("5_nljwp")] +position = Vector2(-50, 70) + +[node name="Ghost4" parent="." instance=ExtResource("5_nljwp")] +position = Vector2(-50, 90) + +[node name="Cage" parent="." instance=ExtResource("6_mmjaf")] +position = Vector2(-130, -70) +triggerPos = Vector2(30, -30) + +[node name="Cage2" parent="." instance=ExtResource("6_mmjaf")] +position = Vector2(-110, 110) +red = true +triggerPos = Vector2(30, 50) + +[node name="Cage3" parent="." instance=ExtResource("6_mmjaf")] +position = Vector2(-130, 70) +red = true +triggerPos = Vector2(10, 50) + +[node name="Cage4" parent="." instance=ExtResource("6_mmjaf")] +position = Vector2(-130, -50) +triggerPos = Vector2(10, -30) diff --git a/Levels/5.tscn b/Levels/5.tscn new file mode 100644 index 0000000..2d3cf22 --- /dev/null +++ b/Levels/5.tscn @@ -0,0 +1,60 @@ +[gd_scene load_steps=7 format=3 uid="uid://ctbv6jqcfhea8"] + +[ext_resource type="PackedScene" uid="uid://dpvsvhuvstab6" path="res://Tile Maps/Walls.tscn" id="1_fvqkv"] +[ext_resource type="PackedScene" uid="uid://b6ox70gr6e6ej" path="res://Entities/Exit.tscn" id="2_16168"] +[ext_resource type="PackedScene" uid="uid://bbvpjrnarl7qb" path="res://Entities/entrance.tscn" id="3_v36jm"] +[ext_resource type="PackedScene" uid="uid://ctdil7060o2ft" path="res://Entities/EvilEye.tscn" id="4_8afvm"] +[ext_resource type="PackedScene" uid="uid://b8d22amvt6eq5" path="res://Entities/Cage.tscn" id="5_1k0cp"] +[ext_resource type="PackedScene" uid="uid://crtwv7phv71wq" path="res://Entities/Ghost.tscn" id="6_sb1lc"] + +[node name="5" type="Node2D" groups=["Level"]] +show_behind_parent = true + +[node name="Walls" parent="." instance=ExtResource("1_fvqkv")] +layer_0/tile_data = PackedInt32Array(393224, 65536, 196608, 327688, 131072, 196608, 262152, 131072, 196608, 196616, 131072, 196608, 131080, 131072, 196608, 65544, 196608, 458754, 8, 196608, 65536, -65528, 65536, 196611, -131064, 196608, 65536, -196600, 196608, 65536, -262136, 196608, 327682, -327672, 131072, 196608, -393208, 131072, 196608, -458744, 65536, 65536, 393223, 196608, 196610, 327687, 131072, 131072, 262151, 131072, 131072, 196615, 131072, 131072, 131079, 131072, 131072, 65543, 65536, 0, 7, 65537, 196613, -65529, 131072, 131073, -131065, 1, 196608, -196601, 1, 65536, -262137, 65536, 131072, -327673, 131072, 131072, -393209, 131072, 131072, -458745, 196608, 65538, 393222, 196608, 0, 327686, 65537, 65541, 262150, 1, 65540, 196614, 1, 65540, 131078, 1, 65540, 65542, 1, 65540, 6, 65537, 6, -65530, 1, 65540, -131066, 65537, 65538, -196602, 65537, 2, -262138, 1, 65540, -327674, 1, 65540, -393210, 65537, 65539, -458746, 196608, 0, 393221, 196608, 131074, 327685, 131072, 196608, 262149, 196608, 458754, 196613, 196608, 65536, 131077, 196608, 65536, 65541, 131072, 1, 5, 1, 4, -65531, 0, 0, -131067, 65537, 65540, -196603, 65537, 4, -262139, 131072, 65537, -327675, 131072, 1, -393211, 1, 4, -458747, 196608, 0, 393220, 131072, 65536, 327684, 65536, 1, 262148, 131072, 0, 196612, 65537, 65541, 131076, 1, 65540, 65540, 1, 65540, 4, 1, 131075, -65532, 1, 65540, -131068, 65537, 65538, -196604, 65537, 2, -262140, 1, 65540, -327676, 1, 65540, -393212, 1, 3, -458748, 196608, 0, 393219, 131072, 65536, 327683, 65536, 1, 262147, 0, 1, 196611, 131072, 196608, 131075, 131072, 196608, 65539, 131072, 196608, 3, 131072, 196608, -65533, 65536, 65536, -131069, 65537, 65540, -196605, 65537, 4, -262141, 65536, 196608, -327677, 65536, 65536, -393213, 1, 4, -458749, 196608, 0, 393218, 131072, 65536, 327682, 65536, 1, 262146, 65536, 1, 196610, 65536, 1, 131074, 65536, 1, 65538, 65536, 1, 2, 65536, 1, -65534, 131072, 0, -131070, 65537, 65540, -196606, 65537, 4, -262142, 131072, 65536, -327678, 131072, 0, -393214, 1, 4, -458750, 196608, 0, 393217, 131072, 65536, 327681, 65536, 1, 262145, 65536, 1, 196609, 65536, 1, 131073, 65536, 1, 65537, 65536, 1, 1, 65536, 1, -65535, 131072, 0, -131071, 1, 131072, -196607, 1, 65542, -262143, 65536, 131072, -327679, 65536, 0, -393215, 1, 4, -458751, 196608, 0, 393216, 131072, 65536, 327680, 65536, 1, 262144, 65536, 1, 196608, 65536, 1, 131072, 65536, 1, 65536, 0, 65537, 0, 131072, 131072, -65536, 196608, 393218, -131072, 131072, 1, -196608, 1, 65539, -262144, 1, 65540, -327680, 1, 196611, -393216, 65537, 3, -458752, 196608, 0, 458751, 131072, 65536, 393215, 0, 65537, 327679, 131072, 131072, 262143, 131072, 131072, 196607, 0, 196609, 131071, 131072, 0, 65535, 65537, 196611, -1, 1, 65540, -65537, 1, 327686, -131073, 1, 6, -196609, 0, 0, -262145, 1, 4, -327681, 65536, 196608, -393217, 196608, 2, 458750, 196608, 196610, 393214, 65536, 0, 327678, 1, 196608, 262142, 1, 65536, 196606, 65536, 131072, 131070, 65536, 0, 65534, 1, 4, -2, 0, 0, -65538, 65537, 65540, -131074, 65537, 1, -196610, 65537, 196612, -262146, 1, 6, -327682, 65536, 131072, -393218, 196608, 65538, 458749, 196608, 0, 393213, 65537, 65541, 327677, 1, 131074, 262141, 1, 393222, 196605, 1, 65540, 131069, 1, 65540, 65533, 65537, 6, -3, 1, 65540, -65539, 1, 262150, -131075, 65537, 131074, -196611, 65537, 131076, -262147, 1, 393222, -327683, 65537, 65539, -393219, 196608, 0, 458748, 196608, 131074, 393212, 65536, 65536, 327676, 65537, 131077, 262140, 65536, 196608, 196604, 131072, 196608, 131068, 65536, 65536, 65532, 1, 4, -4, 65536, 196608, -65540, 65536, 65536, -131076, 1, 4, -196612, 131072, 65537, -262148, 131072, 1, -327684, 1, 4, -393220, 196608, 0, 458747, 131072, 65536, 393211, 0, 1, 327675, 131072, 196608, 262139, 0, 131073, 196603, 65536, 1, 131067, 131072, 0, 65531, 1, 4, -5, 131072, 65536, -65541, 131072, 0, -131077, 1, 131078, -196613, 65537, 196612, -262149, 65537, 196612, -327685, 1, 6, -393221, 196608, 0, 458746, 131072, 65536, 393210, 65536, 1, 327674, 65536, 1, 262138, 65536, 1, 196602, 65536, 1, 131066, 131072, 0, 65530, 1, 4, -6, 65536, 131072, -65542, 65536, 0, -131078, 65537, 65540, -196614, 1, 1, -262150, 1, 1, -327686, 65537, 4, -393222, 196608, 0, 458745, 131072, 65536, 393209, 65536, 1, 327673, 65536, 1, 262137, 65536, 1, 196601, 65536, 1, 131065, 131072, 0, 65529, 1, 65539, -7, 1, 65540, -65543, 1, 65540, -131079, 1, 262150, -196615, 65537, 131076, -262151, 65537, 131076, -327687, 1, 0, -393223, 196608, 0, 458744, 131072, 65536, 393208, 65536, 1, 327672, 65536, 1, 262136, 65536, 1, 196600, 65536, 1, 131064, 131072, 0, 65528, 65537, 131077, -8, 65536, 196608, -65544, 131072, 196608, -131080, 131072, 196608, -196616, 131072, 196608, -262152, 131072, 196608, -327688, 131072, 196608, -393224, 196608, 2, 458743, 65536, 131072, 393207, 131072, 131072, 327671, 131072, 131072, 262135, 131072, 131072, 196599, 131072, 131072, 131063, 196608, 393218, 65527, 196608, 65536, -9, 196608, 262146, -65545, 131072, 131072, -131081, 131072, 131072, -196617, 131072, 131072, -262153, 131072, 131072, -327689, 131072, 131072, -393225, 65536, 0) + +[node name="Exit" parent="." instance=ExtResource("2_16168")] +position = Vector2(150, 10) + +[node name="Entrance" parent="." instance=ExtResource("3_v36jm")] +position = Vector2(-150, 10) + +[node name="EvilEye" parent="." instance=ExtResource("4_8afvm")] +position = Vector2(-50, 110) +red = true +activated = true +direction = 3 + +[node name="EvilEye3" parent="." instance=ExtResource("4_8afvm")] +position = Vector2(90, 70) +red = true +activated = true +direction = 3 + +[node name="EvilEye4" parent="." instance=ExtResource("4_8afvm")] +position = Vector2(150, -30) +activated = true +direction = 1 + +[node name="Cage" parent="." instance=ExtResource("5_1k0cp")] +position = Vector2(150, -50) +red = true +triggerPos = Vector2(-50, 110) + +[node name="Cage2" parent="." instance=ExtResource("5_1k0cp")] +position = Vector2(130, 110) +triggerPos = Vector2(150, -30) + +[node name="Cage3" parent="." instance=ExtResource("5_1k0cp")] +position = Vector2(-70, 90) +red = true +triggerPos = Vector2(90, 70) + +[node name="Ghost" parent="." instance=ExtResource("6_sb1lc")] +position = Vector2(-10, -10) + +[node name="Ghost2" parent="." instance=ExtResource("6_sb1lc")] +position = Vector2(-110, -70) + +[node name="Ghost3" parent="." instance=ExtResource("6_sb1lc")] +position = Vector2(-110, -50) diff --git a/Levels/6.tscn b/Levels/6.tscn new file mode 100644 index 0000000..604eae2 --- /dev/null +++ b/Levels/6.tscn @@ -0,0 +1,23 @@ +[gd_scene load_steps=5 format=3 uid="uid://cs4kq18viam5l"] + +[ext_resource type="PackedScene" uid="uid://dpvsvhuvstab6" path="res://Tile Maps/Walls.tscn" id="1_uuhwr"] +[ext_resource type="PackedScene" uid="uid://bbvpjrnarl7qb" path="res://Entities/entrance.tscn" id="2_r5den"] +[ext_resource type="PackedScene" uid="uid://b6ox70gr6e6ej" path="res://Entities/Exit.tscn" id="3_mfm5l"] +[ext_resource type="Texture2D" uid="uid://df3sih1nkiy3" path="res://Sprite Sheets/orb.png" id="4_mewc7"] + +[node name="6" type="Node2D"] +show_behind_parent = true + +[node name="Walls" parent="." instance=ExtResource("1_uuhwr")] +layer_0/tile_data = PackedInt32Array(393224, 65536, 196608, 327688, 131072, 196608, 262152, 131072, 196608, 196616, 131072, 196608, 131080, 131072, 196608, 65544, 131072, 196608, 8, 131072, 196608, -65528, 131072, 196608, -131064, 131072, 196608, -196600, 131072, 196608, -262136, 131072, 196608, -327672, 131072, 196608, -393208, 131072, 196608, -458744, 65536, 65536, 393223, 131072, 65536, 327687, 65536, 1, 262151, 65536, 1, 196615, 65536, 1, 131079, 65536, 1, 65543, 65536, 1, 7, 65536, 1, -65529, 65536, 1, -131065, 65536, 1, -196601, 65536, 1, -262137, 65536, 1, -327673, 65536, 1, -393209, 65536, 1, -458745, 131072, 0, 393222, 131072, 65536, 327686, 65536, 1, 262150, 65536, 1, 196614, 65536, 1, 131078, 65536, 1, 65542, 65536, 1, 6, 65536, 1, -65530, 65536, 1, -131066, 65536, 1, -196602, 65536, 1, -262138, 65536, 1, -327674, 65536, 1, -393210, 65536, 1, -458746, 131072, 0, 393221, 131072, 65536, 327685, 65536, 1, 262149, 65536, 1, 196613, 65536, 1, 131077, 0, 65537, 65541, 131072, 131072, 5, 131072, 131072, -65531, 131072, 131072, -131067, 0, 196609, -196603, 65536, 1, -262139, 65536, 1, -327675, 65536, 1, -393211, 65536, 1, -458747, 131072, 0, 393220, 131072, 65536, 327684, 65536, 1, 262148, 65536, 1, 196612, 0, 65537, 131076, 65536, 0, 65540, 1, 196608, 4, 65537, 196612, -65532, 1, 65536, -131068, 65536, 131072, -196604, 0, 196609, -262140, 65536, 1, -327676, 65536, 1, -393212, 65536, 1, -458748, 131072, 0, 393219, 131072, 65536, 327683, 65536, 1, 262147, 65536, 1, 196611, 131072, 0, 131075, 1, 196608, 65539, 65537, 131073, 3, 1, 1, -65533, 65537, 1, -131069, 1, 65536, -196605, 131072, 65536, -262141, 65536, 1, -327677, 65536, 1, -393213, 65536, 1, -458749, 131072, 0, 393218, 131072, 65536, 327682, 65536, 1, 262146, 0, 65537, 196610, 65536, 0, 131074, 65537, 65540, 65538, 1, 1, 2, 1, 1, -65534, 1, 1, -131070, 65537, 4, -196606, 65536, 131072, -262142, 0, 196609, -327678, 65536, 1, -393214, 65536, 1, -458750, 131072, 0, 393217, 131072, 65536, 327681, 65536, 1, 262145, 131072, 0, 196609, 1, 196608, 131073, 65537, 131073, 65537, 1, 1, 1, 1, 1, -65535, 1, 1, -131071, 65537, 1, -196607, 1, 65536, -262143, 131072, 65536, -327679, 65536, 1, -393215, 65536, 1, -458751, 131072, 0, 393216, 131072, 65536, 327680, 65536, 1, 262144, 131072, 0, 196608, 65537, 65540, 131072, 1, 1, 65536, 1, 1, 0, 1, 1, -65536, 1, 1, -131072, 1, 1, -196608, 65537, 4, -262144, 131072, 65536, -327680, 65536, 1, -393216, 65536, 1, -458752, 131072, 0, 458751, 131072, 65536, 393215, 65536, 1, 327679, 131072, 0, 262143, 1, 131072, 196607, 65537, 196609, 131071, 1, 1, 65535, 1, 1, -1, 1, 1, -65537, 65537, 65537, -131073, 1, 0, -196609, 131072, 65536, -262145, 65536, 1, -327681, 65536, 1, -393217, 131072, 0, 458750, 131072, 65536, 393214, 65536, 1, 327678, 0, 1, 262142, 65536, 65536, 196606, 1, 131072, 131070, 65537, 131076, 65534, 65537, 131074, -2, 65537, 131076, -65538, 1, 0, -131074, 65536, 196608, -196610, 0, 131073, -262146, 65536, 1, -327682, 65536, 1, -393218, 131072, 0, 458749, 131072, 65536, 393213, 65536, 1, 327677, 65536, 1, 262141, 0, 1, 196605, 131072, 196608, 131069, 65536, 65536, 65533, 1, 4, -3, 65536, 196608, -65539, 131072, 196608, -131075, 0, 131073, -196611, 65536, 1, -262147, 65536, 1, -327683, 65536, 1, -393219, 131072, 0, 458748, 131072, 65536, 393212, 65536, 1, 327676, 65536, 1, 262140, 65536, 1, 196604, 65536, 1, 131068, 131072, 0, 65532, 1, 4, -4, 131072, 65536, -65540, 65536, 1, -131076, 65536, 1, -196612, 65536, 1, -262148, 65536, 1, -327684, 65536, 1, -393220, 131072, 0, 458747, 131072, 65536, 393211, 65536, 1, 327675, 65536, 1, 262139, 65536, 1, 196603, 65536, 1, 131067, 131072, 0, 65531, 1, 4, -5, 131072, 65536, -65541, 65536, 1, -131077, 65536, 1, -196613, 65536, 1, -262149, 65536, 1, -327685, 65536, 1, -393221, 131072, 0, 458746, 131072, 65536, 393210, 65536, 1, 327674, 65536, 1, 262138, 65536, 1, 196602, 65536, 1, 131066, 131072, 0, 65530, 1, 4, -6, 131072, 65536, -65542, 65536, 1, -131078, 65536, 1, -196614, 65536, 1, -262150, 65536, 1, -327686, 65536, 1, -393222, 131072, 0, 458745, 131072, 65536, 393209, 65536, 1, 327673, 65536, 1, 262137, 65536, 1, 196601, 65536, 1, 131065, 131072, 0, 65529, 1, 4, -7, 131072, 65536, -65543, 65536, 1, -131079, 65536, 1, -196615, 65536, 1, -262151, 65536, 1, -327687, 65536, 1, -393223, 131072, 0, 458744, 131072, 65536, 393208, 65536, 1, 327672, 65536, 1, 262136, 65536, 1, 196600, 65536, 1, 131064, 131072, 0, 65528, 65537, 131077, -8, 131072, 65536, -65544, 65536, 1, -131080, 65536, 1, -196616, 65536, 1, -262152, 65536, 1, -327688, 65536, 1, -393224, 131072, 0, 458743, 65536, 131072, 393207, 131072, 131072, 327671, 131072, 131072, 262135, 131072, 131072, 196599, 131072, 131072, 131063, 196608, 393218, 65527, 196608, 65536, -9, 196608, 262146, -65545, 131072, 131072, -131081, 131072, 131072, -196617, 131072, 131072, -262153, 131072, 131072, -327689, 131072, 131072, -393225, 65536, 0) + +[node name="Entrance" parent="." instance=ExtResource("2_r5den")] +position = Vector2(-150, 10) + +[node name="Exit" parent="." instance=ExtResource("3_mfm5l")] +visible = false +position = Vector2(70, 10) + +[node name="Orb" type="Sprite2D" parent="."] +position = Vector2(70, 10) +texture = ExtResource("4_mewc7") diff --git a/Levels/7.tscn b/Levels/7.tscn new file mode 100644 index 0000000..6525079 --- /dev/null +++ b/Levels/7.tscn @@ -0,0 +1,17 @@ +[gd_scene load_steps=4 format=3 uid="uid://dw5ynb50358lf"] + +[ext_resource type="PackedScene" uid="uid://dpvsvhuvstab6" path="res://Tile Maps/Walls.tscn" id="1_ns0wd"] +[ext_resource type="PackedScene" uid="uid://bbvpjrnarl7qb" path="res://Entities/entrance.tscn" id="2_1c3h6"] +[ext_resource type="Texture2D" uid="uid://blwjhfghty128" path="res://Sprite Sheets/ending.png" id="3_ctyw7"] + +[node name="7" type="Node2D"] +show_behind_parent = true + +[node name="Walls" parent="." instance=ExtResource("1_ns0wd")] + +[node name="Entrance" parent="." instance=ExtResource("2_1c3h6")] +position = Vector2(-10, 10) + +[node name="Sprite2D" type="Sprite2D" parent="."] +scale = Vector2(0.35, 0.35) +texture = ExtResource("3_ctyw7") diff --git a/OoB.tscn b/OoB.tscn new file mode 100644 index 0000000..6fe0501 --- /dev/null +++ b/OoB.tscn @@ -0,0 +1,21 @@ +[gd_scene load_steps=5 format=3 uid="uid://064vl41gb8mg"] + +[ext_resource type="Script" path="res://Scripts/OoB.cs" id="1_bhg74"] +[ext_resource type="PackedScene" uid="uid://hf82gpyeklob" path="res://Entities/Chloek.tscn" id="3_cpfrx"] +[ext_resource type="PackedScene" uid="uid://chytvp1xokydh" path="res://Levels/0.tscn" id="3_ehgst"] +[ext_resource type="AudioStream" uid="uid://dkmyxyvpl85g0" path="res://Audio/Exit.wav" id="4_gcnb1"] + +[node name="OutofBody" type="Node2D"] +script = ExtResource("1_bhg74") + +[node name="MainCamera" type="Camera2D" parent="."] +top_level = true +zoom = Vector2(3, 3) + +[node name="Chloek" parent="." instance=ExtResource("3_cpfrx")] +position = Vector2(-250, 10) + +[node name="0" parent="." instance=ExtResource("3_ehgst")] + +[node name="ExitDoot" type="AudioStreamPlayer" parent="."] +stream = ExtResource("4_gcnb1") diff --git a/Scripts/Cage.cs b/Scripts/Cage.cs new file mode 100644 index 0000000..f96992a --- /dev/null +++ b/Scripts/Cage.cs @@ -0,0 +1,75 @@ +using Godot; +using System; + +public partial class Cage : StaticBody2D +{ + + private Area2D probe; // probe to detect ghosts triggers + private Area2D cageTrigger; // an area to tell other objects that it has collected a ghost + private AnimatedSprite2D sprite; // animated sprite of cage + private AudioStreamPlayer GhostCaged; //an audio track + public bool activated; //if activated + + [Export] + public bool red; //do you want it cherry flavored? + [Export] // you can edit this in the inspector + public Vector2 triggerPos; // where the trigger will get sent after a ghost is collected + + private void _on_probe_area_entered(Area2D area) + { + if (area.IsInGroup("Ghost")) // if probe detects a ghost's probe + { + cageTrigger.GlobalPosition = triggerPos; //sends trigger to specified position + if(activated == false) + { + GhostCaged.Play(); + area.GetParent().QueueFree(); //deletes the ghost + RemoveFromGroup("Cage"); //the cage is no longer considered a cage for the ghost's collision checks + activated = true; //activation animations can play + } + } + } + + // Called when the node enters the scene tree for the first time. + public override void _Ready() + { + //setting values that can't be preloaded + probe = GetNode("Probe"); + sprite = GetNode("CageSprite"); + GhostCaged = GetNode("GhostCaged"); + cageTrigger = GetNode("Trigger"); + } + + // Called every frame. 'delta' is the elapsed time since the previous frame. + public override void _Process(double delta) + { + animations(); + } + + private void animations() + { + // animations for the cage are determined by it's activation, not a timer like the player or ghost + if(red == false) + { + if (activated == true) + { + sprite.Play("Active"); + } + if (activated == false) + { + sprite.Play("Idle"); + } + } + if(red == true) + { + if (activated == true) + { + sprite.Play("RedActive"); + } + if (activated == false) + { + sprite.Play("RedIdle"); + } + } + } +} diff --git a/Scripts/Chloek.cs b/Scripts/Chloek.cs new file mode 100644 index 0000000..45ba885 --- /dev/null +++ b/Scripts/Chloek.cs @@ -0,0 +1,165 @@ +using Godot; +using System; + +public partial class Chloek : StaticBody2D +{ + private Area2D probe; // probe to find the tile in the in the direction of the player's movement + private AnimatedSprite2D sprite; // animated sprite of player + public Vector2 spriteMovement; // 2d vector dictating sprite's independant movement + private AudioStreamPlayer Interact; + private AudioStreamPlayer Reset; + private AudioStreamPlayer Snore; + private bool canMove = true; // if the player can move + private bool blocked; // if the player shouldn't move + private int pause; //timer for when processing needs to occur + private int idle; // timer for idling based actions (animations mostly) + private int snoreTimer; //timer for snoring + private Vector2 movement; //last movement direction + + private void _on_probe_body_entered(Node2D body) //a bit slow to respond, but it does it's job most of the time + { + if (body.IsInGroup("Wall")) // if probe detects walls + { + blocked = true; // stops from moving + } + if (body.IsInGroup("Obsticals") && !body.IsInGroup("Lazer")) // if probe detects an obstical that isnt a lazer + { + blocked = true; //stops from moving; + } + // previous two can probably be lumped into one if statement + } + + private void _on_probe_body_exited(Node2D body) + { + if (body.IsInGroup("Wall")) //if probe detects walls + { + blocked = false; // allow moving + } + if (body.IsInGroup("Obsticals") && !body.IsInGroup("Lazer")) //if probe detects an obstical that isnt a lazer + { + blocked = false; // allow moving + } + } + + private void _on_chloek_area_body_entered(Node2D body) + { + //this "bounces" the player back if they enter a lazer + //I only need this becuase Lazers break normal collision checks + if (body.IsInGroup("Lazer")) + { + pause = 0; + canMove = true; + probe.Position = movement * -1; + } + } + + public override void _Ready() // on startup + { + // setting starting coditions for variables + probe = GetNode("Probe"); + sprite = GetNode("ChloekSprite"); + Interact = GetNode("Interact"); + Reset = GetNode("Reset"); + Snore = GetNode("Snore"); + spriteMovement = Position; + } + + public override void _PhysicsProcess(double delta) // can update multipul times a frame so movment happens propperly + { + //finished tasks become functions + if (pause == 0) + { + move(); + animations(); + } + else {pause--;} + } + + public void animations() + { + idle++; + if (sprite.GlobalPosition != Position) //if intending to move + { + if (idle > 0) + { + idle = 0; + } + } + + switch (idle) //switch case for all time based animations + { + case 0: sprite.Play("Walk"); break; + case 1: sprite.Play("Idle"); sprite.Stop(); break; + case 1200: sprite.Play("Idle"); break; + case 1900: sprite.Play("Eepy"); break; + } + if(idle >= 1900) + { + if(snoreTimer > 400) + { + Snore.Play(); + snoreTimer = 0; + } + else {snoreTimer++;} + } + else {snoreTimer = 0;} + + spriteMovement = spriteMovement.MoveToward(Position, 1f); // sprite lags behind player position slightly + sprite.GlobalPosition = spriteMovement; //seems redundant but is nessesary + } + + public void move() + { + if (canMove == true && blocked == false) //if player can move and isnt walking into something + { + spriteMovement = Position; //sprite snaps to previous position + Position = probe.GlobalPosition; //player position changes to probe's position + canMove = false; //prevents the player from moving every chance they get + } + else + { + canMove = false; //prevents the player from walking as soon as they aren't blocked + } + } + + public override void _Input(InputEvent @event) + { + if (@event.IsActionPressed("Reset")) + { + Reset.Play(); + } + if(pause == 0) //pauses delay movement enough so that you can't walk into walls + { + if (@event.IsActionPressed("Up")) + { + movement = new Vector2(0,-20); + canMove = true; + pause = 3; + } + + else if (@event.IsActionPressed("Down")) + { + movement = new Vector2(0,20); + canMove = true; + pause = 3; + } + + else if (@event.IsActionPressed("Left")) + { + movement = new Vector2(-20,0); + sprite.FlipH = true; //sprite flips to face left + canMove = true; + pause = 3; + } + + else if (@event.IsActionPressed("Right")) + { + movement = new Vector2(20,0); + sprite.FlipH = false; //sprite flips to face right + canMove = true; + pause = 3; + } + probe.Position = movement; //i could do this without movement, but i need it so that other sections can use it. + } + } +} diff --git a/Scripts/Entrance.cs b/Scripts/Entrance.cs new file mode 100644 index 0000000..a446637 --- /dev/null +++ b/Scripts/Entrance.cs @@ -0,0 +1,13 @@ +using Godot; +using System; + +public partial class Entrance : StaticBody2D +{ + // even more basic than the exit, this just makes sure the player is in the starting location when swapping between levels + public override void _Ready() + { + GetNode("/root/OutofBody/Chloek").GlobalPosition = Position; + // looks funny when this is gone, but this just makes sure that between levels the player's sprite is teleported with the actual player + GetNode("/root/OutofBody/Chloek").spriteMovement = Position; + } +} diff --git a/Scripts/EvilEye.cs b/Scripts/EvilEye.cs new file mode 100644 index 0000000..515563a --- /dev/null +++ b/Scripts/EvilEye.cs @@ -0,0 +1,146 @@ +using Godot; +using System; + +public partial class EvilEye : StaticBody2D +{ + private Area2D probe; // probe for positioning lazer beams + private AnimatedSprite2D lidSprite; // animated sprite of eye lid + private AnimatedSprite2D ballSprite; // animated sprite of eye ball + private bool spriteStop; // for sprites which only happen once + public int frame = 0; // frame of lazer's animation + private int pause; // timer to help with syncing up the lazer beams + + [Export] + public bool red; //do you want it cherry flavored? + [Export] //can be tweaked in inspector + public bool activated; // if activated + [Export] + public int direction; // left-1 right-2 up-3 down-4 + + + private void _on_area_2d_area_entered(Area2D area) + { + if (area.IsInGroup("Cage")) // if probe detects an obstical + { + activated = !activated; //inverts the activation status of the eye (on -> off, off -> on) + } + } + + // Called when the node enters the scene tree for the first time. + public override void _Ready() + { + //setting variables that can't be preloaded + probe = GetNode("FacingProbe"); + lidSprite = GetNode("EvilEyeLid"); + ballSprite = GetNode("EvilEyeBall"); + //fun fact: despite only having one animation, it has to be activated within the code or else it's a still image + if(red == false) + { + ballSprite.Play("Idle"); + } + if(red == true) + { + ballSprite.Play("RedIdle"); + } + //direction for placing newly spawned lazerbeams + switch (direction) + { + case 1: lidSprite.Rotation = 3.1416f; probe.Position = new Vector2(-20,0); break; + case 2: lidSprite.Rotation = 0; probe.Position = new Vector2(20,0); break; + case 3: lidSprite.Rotation = 4.712f; probe.Position = new Vector2(0,-20); break; + case 4: lidSprite.Rotation = 1.5708f; probe.Position = new Vector2(0,20); break; + } + } + + // Called every frame. 'delta' is the elapsed time since the previous frame. + public override void _Process(double delta) + { + //everything below this is so that all of the lazers sync with eachother + if (pause == 0) + { + //allowing the lazers to move + for(int i = 0; i < GetChildCount(); i++) + { + if(GetChild(i).IsInGroup("Lazer")) + { + var child = GetChild(i) as lazer; + child.pause = 0; + } + } + //creates more lazers if activated + if(activated == true) + { + var packedLazer = GD.Load("res://Entities/Lazer.tscn"); + var lazer = packedLazer.Instantiate() as lazer; + lazer.Position = probe.Position; + lazer.direction = direction; + AddChild(lazer); + } + //this syncs animations + if(red == false) + { + for(int i = 0; i < GetChildCount(); i++) + { + if(GetChild(i).IsInGroup("Lazer")) + { + var child = GetChild(i) as lazer; + child.sprite.Play(frame.ToString()); + } + } + } + if(red == true) + { + for(int i = 0; i < GetChildCount(); i++) + { + if(GetChild(i).IsInGroup("Lazer")) + { + var child = GetChild(i) as lazer; + child.sprite.Play("Red" + frame.ToString()); + } + } + } + //small frame timer + frame++; + if(frame > 3) {frame = 0;} + + pause = 3; + } + else + { + pause--; + } + animations(); + } + + private void animations() + { + //since these are one time only animations, I need to stop them from looping + //similar to the cage, these are dependant on activation status and not a timer + if(red == false) + { + if (activated == true && spriteStop == false) + { + lidSprite.Play("Active"); + spriteStop = true; + } + if (activated == false) + { + lidSprite.Play("Idle"); + spriteStop = false; + } + } + if(red == true) + { + if (activated == true && spriteStop == false) + { + lidSprite.Play("RedActive"); + spriteStop = true; + } + if (activated == false) + { + lidSprite.Play("RedIdle"); + spriteStop = false; + } + } + } +} diff --git a/Scripts/Exit.cs b/Scripts/Exit.cs new file mode 100644 index 0000000..cbac30e --- /dev/null +++ b/Scripts/Exit.cs @@ -0,0 +1,14 @@ +using Godot; +using System; + +public partial class Exit : StaticBody2D +{ + // no variable, no nothing, just detects the player and tells the game that it should increment the level counter + private void _on_exit_area_area_entered(Area2D area) + { + if (area.IsInGroup("Player")) //if player is in exit + { + GetNode("/root/OutofBody").Level = GetNode("/root/OutofBody").Level + 1; + } + } +} diff --git a/Scripts/Ghost.cs b/Scripts/Ghost.cs new file mode 100644 index 0000000..b79c5c5 --- /dev/null +++ b/Scripts/Ghost.cs @@ -0,0 +1,187 @@ +using Godot; +using System; + +public partial class Ghost : StaticBody2D +{ + //I just tweaked the player code, cause it works. + + private Area2D probe; // probe to find the tile in the in the direction of the ghost's movement + private AnimatedSprite2D sprite; // animated sprite of ghost + private AudioStreamPlayer GhostMove;//some audio tracks + private AudioStreamPlayer GhostCage; + private Vector2 spriteMovement; // 2d vector dictating sprite's independant movement + private bool canMove = true; // if next step can be taken + private bool blocked; // if the player should noy move + private int pause; //timer for when processing needs to occur + private int idle = 99; // timer for idling based actions (animations mostly) starts high enough to skip certain animations on startup + public bool activated; //if activated by player + public bool facing; //if player is facing + public bool moving; //probably redundant but it works + public float storedSpin; //what the actual rotation of the object is used mostly for the sprite + + private void _on_probe_body_entered(Node2D body) + { + if (body.IsInGroup("Wall")) // if probe detects walls + { + blocked = true; // stops from moving + canMove = false; + activated = false; //stops the constant movement from reoccuring until the player reactivates it + } + if (body.IsInGroup("Obsticals") && !body.IsInGroup("Cage") && !body.IsInGroup("Lazer")) // if probe detects an obstical that isn't a cage or lazer + { + blocked = true; //stops from moving + canMove = false; + activated = false; //stops the constant movement from reoccuring until the player reactivates it + } + if (body == GetNode("/root/OutofBody/Chloek")) // if probe detects the player somehow + { + blocked = true; //stops from moving + canMove = false; + activated = false; //stops the constant movement from reoccuring until the player reactivates it + } + } + + private void _on_probe_body_exited(Node2D body) + { + if (body.IsInGroup("Wall")) //if probe detects walls + { + blocked = false; // allow moving + } + if (body.IsInGroup("Obsticals") && !body.IsInGroup("Lazer")) //if probe detects a non-lazer obstical + { + blocked = false; // allow moving + } + if (body == GetNode("/root/OutofBody/Chloek")) //if probe detects player + { + blocked = false; // allow moving + } + } + + private void _on_ghost_area_area_entered(Area2D area) + { + if (area == GetNode("/root/OutofBody/Chloek/Probe")) + { + facing = true; //the player is facing the ghost + } + } + + private void _on_ghost_area_area_exited(Area2D area) + { + if (area == GetNode("/root/OutofBody/Chloek/Probe")) + { + facing = false; //the player is no longer facing the ghost + } + } + + + public override void _Ready() // on startup + { + // setting starting coditions for variables + probe = GetNode("Probe"); + sprite = GetNode("GhostSprite"); + GhostMove = GetNode("GhostMove"); + GhostCage = GetNode("GhostCage"); + spriteMovement = Position; + } + + public override void _PhysicsProcess(double delta) // updates multipul times a frame so movment happens propperly + { + //finished tasks become functions + if (pause == 0) + { + move(); + } + else {pause--;} + + animations(); + } + + public void animations() + { + idle++; + if (sprite.GlobalPosition != Position) //if intending to move + { + if (idle > 0) + { + idle = 0; + } + } + //all time based animations here + switch (idle) + { + case 0: sprite.Play("Moving"); break; + case 1: sprite.Play("Stopping"); break; + case 60: sprite.Play("Pre-Idle"); break; + case 100: sprite.Play("Idle"); break; + } + + if (idle >= 60) + { + sprite.Rotation = 0; + } + else if (idle == 0) + { + sprite.Rotation = storedSpin; + } + + spriteMovement = spriteMovement.MoveToward(Position, 10f); // sprite moves towards ghost's position + sprite.GlobalPosition = spriteMovement; //seems redundant + } + + public void move() + { + if (canMove == true && blocked == false && facing == true || moving == true && blocked == false && canMove == true) //if ghost can move + { + GhostMove.Play(); + spriteMovement = Position; //sprite snaps to previous position + Position = probe.GlobalPosition; //ghost position changes to probe's position + moving = true; //allows constant movement + } + else + { + //disables constant movement + canMove = false; + activated = false; + moving = false; + } + } + public override void _Input(InputEvent @event) + { + if (@event.IsActionPressed("Action")) + { + //actions are handled by the ghost not the player + activated = true; + canMove = true; + } + if(activated == false) + { + //all rotations are stored as radians not degrees + if (@event.IsActionPressed("Up")) + { + probe.Position = new Vector2(0,-20); + storedSpin = 4.712f; //sprite flips to face up + pause = 3; + } + else if (@event.IsActionPressed("Down")) + { + probe.Position = new Vector2(0,20); + storedSpin = 1.5708f; //sprite flips to face down + pause = 3; + } + + else if (@event.IsActionPressed("Left")) + { + probe.Position = new Vector2(-20,0); + storedSpin = 3.1416f; //sprite flips to face left + pause = 3; + } + + else if (@event.IsActionPressed("Right")) + { + probe.Position = new Vector2(20,0); + storedSpin = 0; //sprite flips to face right + pause = 3; + } + } + } +} diff --git a/Scripts/OoB.cs b/Scripts/OoB.cs new file mode 100644 index 0000000..ca59939 --- /dev/null +++ b/Scripts/OoB.cs @@ -0,0 +1,66 @@ +using Godot; +using System; + +public partial class OoB : Node2D +{ + public int currentLevel = 0; //the current level, so that level only changese when it changes + private AudioStreamPlayer ExitDoot; //just an audio track + [Export] + public int Level = 0; //level counter, 0 is main menue, all else is normal + + public override void _Ready() // on startup + { + ExitDoot = GetNode("ExitDoot"); + } + + // Called every frame. 'delta' is the elapsed time since the previous frame. + public override void _Process(double delta) + { + if(Level != currentLevel) //if the level has changed + { + ExitDoot.Play(); + for(int i = 0; i < GetChildCount(); i++) + { + if(GetChild(i).IsInGroup("Level")) + { + GetChild(i).QueueFree(); //removing current level + } + } + if(Level == 7) + { + for(int i = 0; i < GetChildCount(); i++) + { + if(GetChild(i).IsInGroup("Player")) + { + GetChild(i).QueueFree(); //removing current level + } + } + } + + //making new level + var packedLevel = GD.Load("res://Levels/" + Level.ToString() + ".tscn"); + var instanceLevel = packedLevel.Instantiate(); + AddChild(instanceLevel); + currentLevel = Level; + } + } + + public override void _Input(InputEvent @event) + { + if (@event.IsActionPressed("Reset")) + { + for(int i = 0; i < GetChildCount(); i++) + { + if(GetChild(i).IsInGroup("Level")) + { + GetChild(i).QueueFree(); //removing current level + } + } + + //making new level + var packedLevel = GD.Load("res://Levels/" + Level.ToString() + ".tscn"); + var instanceLevel = packedLevel.Instantiate(); + AddChild(instanceLevel); + } + } +} diff --git a/Scripts/lazer.cs b/Scripts/lazer.cs new file mode 100644 index 0000000..fcad655 --- /dev/null +++ b/Scripts/lazer.cs @@ -0,0 +1,64 @@ +using Godot; +using System; + +public partial class lazer : StaticBody2D +{ + //named lazer because Zs are cooler than Ss + //I just tweaked the ghost code, cause it works. + + private Area2D probe; // probe to find the tile in the in the direction of the lazer's movement + public AnimatedSprite2D sprite; // animated sprite of lazer + private bool destroy; //if lazer should be destroyed + public int pause = 3; //timer for when processing needs to occur + //hmm this seems similar to the one from EvilEye... sure would make it easy to share this variable between them... + public int direction; //left-1 right-2 up-3 down-4 + + private void _on_probe_body_entered(Node2D body) + { + if (body.IsInGroup("Wall")) // if probe detects walls + { + destroy = true; //next update the lazer will be erased + } + if (body.IsInGroup("Obsticals") && !body.IsInGroup("Lazer") && !body.IsInGroup("Ghost")) // if probe detects non-lazer, non-ghost obsticals + { + destroy = true; //next update the lazer will be erased + } + } + + public override void _Ready() // on startup + { + // setting starting coditions for variables + probe = GetNode("Probe"); + sprite = GetNode("LazerSprite"); + //yeah. it's kinda obvious that everything the lazer can do is determined by the evil eye, huh. + switch (direction) + { + case 1: sprite.Rotation = 3.1416f; probe.Position = new Vector2(-20,0); break; + case 2: sprite.Rotation = 0; probe.Position = new Vector2(20,0); break; + case 3: sprite.Rotation = 4.712f; probe.Position = new Vector2(0,-20); break; + case 4: sprite.Rotation = 1.5708f; probe.Position = new Vector2(0,20); break; + } + } + + public override void _PhysicsProcess(double delta) // updates multipul times a frame so movment happens propperly + { + //finished tasks become functions + if (pause == 0) + { + //destruction happens before everything else + //think of it as a permanent break(); + if(destroy == true) + { + QueueFree(); + } + move(); + pause = 3; + //no animations because the lazer gets synced by it's parent + } + } + public void move() + { + //just goes forwards really fast + GlobalPosition = probe.GlobalPosition; //player position changes to probe's position + } +} diff --git a/Sharp of Body.csproj b/Sharp of Body.csproj new file mode 100644 index 0000000..11eafc6 --- /dev/null +++ b/Sharp of Body.csproj @@ -0,0 +1,7 @@ + + + net6.0 + true + SharpofBody + + \ No newline at end of file diff --git a/Sharp of Body.csproj.old b/Sharp of Body.csproj.old new file mode 100644 index 0000000..ddbfa6c --- /dev/null +++ b/Sharp of Body.csproj.old @@ -0,0 +1,7 @@ + + + net6.0 + true + SharpofBody + + \ No newline at end of file diff --git a/Sharp of Body.csproj.old.1 b/Sharp of Body.csproj.old.1 new file mode 100644 index 0000000..81f7afc --- /dev/null +++ b/Sharp of Body.csproj.old.1 @@ -0,0 +1,7 @@ + + + net6.0 + true + SharpofBody + + \ No newline at end of file diff --git a/Sharp of Body.csproj.old.2 b/Sharp of Body.csproj.old.2 new file mode 100644 index 0000000..eaad31f --- /dev/null +++ b/Sharp of Body.csproj.old.2 @@ -0,0 +1,7 @@ + + + net6.0 + true + SharpofBody + + \ No newline at end of file diff --git a/Sharp of Body.sln b/Sharp of Body.sln new file mode 100644 index 0000000..495053b --- /dev/null +++ b/Sharp of Body.sln @@ -0,0 +1,19 @@ +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 2012 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Sharp of Body", "Sharp of Body.csproj", "{5E08DAE9-E4FE-431A-BD44-41A98FD1CC78}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + ExportDebug|Any CPU = ExportDebug|Any CPU + ExportRelease|Any CPU = ExportRelease|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {5E08DAE9-E4FE-431A-BD44-41A98FD1CC78}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5E08DAE9-E4FE-431A-BD44-41A98FD1CC78}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5E08DAE9-E4FE-431A-BD44-41A98FD1CC78}.ExportDebug|Any CPU.ActiveCfg = ExportDebug|Any CPU + {5E08DAE9-E4FE-431A-BD44-41A98FD1CC78}.ExportDebug|Any CPU.Build.0 = ExportDebug|Any CPU + {5E08DAE9-E4FE-431A-BD44-41A98FD1CC78}.ExportRelease|Any CPU.ActiveCfg = ExportRelease|Any CPU + {5E08DAE9-E4FE-431A-BD44-41A98FD1CC78}.ExportRelease|Any CPU.Build.0 = ExportRelease|Any CPU + EndGlobalSection +EndGlobal diff --git a/Sprite Sheets/OoB elements.png b/Sprite Sheets/OoB elements.png new file mode 100644 index 0000000..45eef33 Binary files /dev/null and b/Sprite Sheets/OoB elements.png differ diff --git a/Sprite Sheets/OoB elements.png.import b/Sprite Sheets/OoB elements.png.import new file mode 100644 index 0000000..b8bbe26 --- /dev/null +++ b/Sprite Sheets/OoB elements.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c38fo4o7uf5c3" +path="res://.godot/imported/OoB elements.png-55a74cbec86fc99b23487e8adb8c8365.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Sprite Sheets/OoB elements.png" +dest_files=["res://.godot/imported/OoB elements.png-55a74cbec86fc99b23487e8adb8c8365.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/Sprite Sheets/OoBchloek.png b/Sprite Sheets/OoBchloek.png new file mode 100644 index 0000000..1c8d8bf Binary files /dev/null and b/Sprite Sheets/OoBchloek.png differ diff --git a/Sprite Sheets/OoBchloek.png.import b/Sprite Sheets/OoBchloek.png.import new file mode 100644 index 0000000..7a360e9 --- /dev/null +++ b/Sprite Sheets/OoBchloek.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b46im6jq0mlly" +path="res://.godot/imported/OoBchloek.png-46639d269be2a20e8fcd35f2ede2a88c.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Sprite Sheets/OoBchloek.png" +dest_files=["res://.godot/imported/OoBchloek.png-46639d269be2a20e8fcd35f2ede2a88c.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/Sprite Sheets/RedElements.png b/Sprite Sheets/RedElements.png new file mode 100644 index 0000000..c96f3b2 Binary files /dev/null and b/Sprite Sheets/RedElements.png differ diff --git a/Sprite Sheets/RedElements.png.import b/Sprite Sheets/RedElements.png.import new file mode 100644 index 0000000..5c817c2 --- /dev/null +++ b/Sprite Sheets/RedElements.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://s2cmbu5hdci" +path="res://.godot/imported/RedElements.png-2950f6e44c119a000580cde113dc50f1.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Sprite Sheets/RedElements.png" +dest_files=["res://.godot/imported/RedElements.png-2950f6e44c119a000580cde113dc50f1.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/Sprite Sheets/RedElements.png~ b/Sprite Sheets/RedElements.png~ new file mode 100644 index 0000000..cf64fdb Binary files /dev/null and b/Sprite Sheets/RedElements.png~ differ diff --git a/Sprite Sheets/Stairs.png b/Sprite Sheets/Stairs.png new file mode 100644 index 0000000..37a62ce Binary files /dev/null and b/Sprite Sheets/Stairs.png differ diff --git a/Sprite Sheets/Stairs.png.import b/Sprite Sheets/Stairs.png.import new file mode 100644 index 0000000..ceed472 --- /dev/null +++ b/Sprite Sheets/Stairs.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://d3ppe6c48t58p" +path="res://.godot/imported/Stairs.png-2e6044dc937417741cdfcd17b46031bf.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Sprite Sheets/Stairs.png" +dest_files=["res://.godot/imported/Stairs.png-2e6044dc937417741cdfcd17b46031bf.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/Sprite Sheets/ending.png b/Sprite Sheets/ending.png new file mode 100644 index 0000000..5403c75 Binary files /dev/null and b/Sprite Sheets/ending.png differ diff --git a/Sprite Sheets/ending.png.import b/Sprite Sheets/ending.png.import new file mode 100644 index 0000000..76c6246 --- /dev/null +++ b/Sprite Sheets/ending.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://blwjhfghty128" +path="res://.godot/imported/ending.png-1537741371763dac8b5adfbc9d49b3d1.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Sprite Sheets/ending.png" +dest_files=["res://.godot/imported/ending.png-1537741371763dac8b5adfbc9d49b3d1.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/Sprite Sheets/ending.png~ b/Sprite Sheets/ending.png~ new file mode 100644 index 0000000..744f745 Binary files /dev/null and b/Sprite Sheets/ending.png~ differ diff --git a/Sprite Sheets/orb.png b/Sprite Sheets/orb.png new file mode 100644 index 0000000..d7d7fa0 Binary files /dev/null and b/Sprite Sheets/orb.png differ diff --git a/Sprite Sheets/orb.png.import b/Sprite Sheets/orb.png.import new file mode 100644 index 0000000..462d70a --- /dev/null +++ b/Sprite Sheets/orb.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://df3sih1nkiy3" +path="res://.godot/imported/orb.png-1682212627fc5271622d0c62aa7bf387.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Sprite Sheets/orb.png" +dest_files=["res://.godot/imported/orb.png-1682212627fc5271622d0c62aa7bf387.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/Sprite Sheets/orb.png~ b/Sprite Sheets/orb.png~ new file mode 100644 index 0000000..d083de9 Binary files /dev/null and b/Sprite Sheets/orb.png~ differ diff --git a/Sprite Sheets/title.png b/Sprite Sheets/title.png new file mode 100644 index 0000000..68f5a30 Binary files /dev/null and b/Sprite Sheets/title.png differ diff --git a/Sprite Sheets/title.png.import b/Sprite Sheets/title.png.import new file mode 100644 index 0000000..32beb68 --- /dev/null +++ b/Sprite Sheets/title.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cxf3ijccwan4y" +path="res://.godot/imported/title.png-0955398c8b2e56927687aae36b701aa2.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Sprite Sheets/title.png" +dest_files=["res://.godot/imported/title.png-0955398c8b2e56927687aae36b701aa2.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/Tile Maps/OoB Floors.png b/Tile Maps/OoB Floors.png new file mode 100644 index 0000000..ad01237 Binary files /dev/null and b/Tile Maps/OoB Floors.png differ diff --git a/Tile Maps/OoB Floors.png.import b/Tile Maps/OoB Floors.png.import new file mode 100644 index 0000000..93bc499 --- /dev/null +++ b/Tile Maps/OoB Floors.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://xtmwg12nv46a" +path="res://.godot/imported/OoB Floors.png-119a3c098f20de6107fa1e40c2af116f.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Tile Maps/OoB Floors.png" +dest_files=["res://.godot/imported/OoB Floors.png-119a3c098f20de6107fa1e40c2af116f.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/Tile Maps/OoB Walls.png b/Tile Maps/OoB Walls.png new file mode 100644 index 0000000..6830d44 Binary files /dev/null and b/Tile Maps/OoB Walls.png differ diff --git a/Tile Maps/OoB Walls.png.import b/Tile Maps/OoB Walls.png.import new file mode 100644 index 0000000..31862cc --- /dev/null +++ b/Tile Maps/OoB Walls.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c2qwlucibqbu0" +path="res://.godot/imported/OoB Walls.png-28f4639f7d4f3ff10a3b3302f8834d7d.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Tile Maps/OoB Walls.png" +dest_files=["res://.godot/imported/OoB Walls.png-28f4639f7d4f3ff10a3b3302f8834d7d.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/Tile Maps/Walls.tscn b/Tile Maps/Walls.tscn new file mode 100644 index 0000000..614a4a9 --- /dev/null +++ b/Tile Maps/Walls.tscn @@ -0,0 +1,1038 @@ +[gd_scene load_steps=7 format=3 uid="uid://dpvsvhuvstab6"] + +[ext_resource type="Texture2D" uid="uid://c2qwlucibqbu0" path="res://Tile Maps/OoB Walls.png" id="1_gq2hg"] +[ext_resource type="Texture2D" uid="uid://xtmwg12nv46a" path="res://Tile Maps/OoB Floors.png" id="2_2mhui"] + +[sub_resource type="PhysicsMaterial" id="PhysicsMaterial_ynecb"] + +[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_8j0vh"] +texture = ExtResource("1_gq2hg") +texture_region_size = Vector2i(20, 20) +0:0/0 = 0 +0:0/0/terrain_set = 0 +0:0/0/terrain = 0 +0:0/0/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/0/physics_layer_0/angular_velocity = 0.0 +0:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-10, -10, 10, -10, 10, 10, -10, 10) +1:0/next_alternative_id = 4 +1:0/0 = 0 +1:0/0/terrain_set = 0 +1:0/0/terrain = 0 +1:0/0/physics_layer_0/linear_velocity = Vector2(0, 0) +1:0/0/physics_layer_0/angular_velocity = 0.0 +1:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-10, -10, 10, -10, 10, 10, -10, 10) +1:0/0/terrains_peering_bit/right_side = 0 +1:0/0/terrains_peering_bit/bottom_right_corner = 0 +1:0/0/terrains_peering_bit/bottom_side = 0 +1:0/1 = 1 +1:0/1/flip_h = true +1:0/1/terrain_set = 0 +1:0/1/terrain = 0 +1:0/1/physics_layer_0/linear_velocity = Vector2(0, 0) +1:0/1/physics_layer_0/angular_velocity = 0.0 +1:0/1/physics_layer_0/polygon_0/points = PackedVector2Array(-10, -10, 10, -10, 10, 10, -10, 10) +1:0/1/terrains_peering_bit/bottom_side = 0 +1:0/1/terrains_peering_bit/bottom_left_corner = 0 +1:0/1/terrains_peering_bit/left_side = 0 +1:0/2 = 2 +1:0/2/flip_v = true +1:0/2/terrain_set = 0 +1:0/2/terrain = 0 +1:0/2/physics_layer_0/linear_velocity = Vector2(0, 0) +1:0/2/physics_layer_0/angular_velocity = 0.0 +1:0/2/physics_layer_0/polygon_0/points = PackedVector2Array(-10, -10, 10, -10, 10, 10, -10, 10) +1:0/2/terrains_peering_bit/right_side = 0 +1:0/2/terrains_peering_bit/top_side = 0 +1:0/2/terrains_peering_bit/top_right_corner = 0 +1:0/3 = 3 +1:0/3/flip_h = true +1:0/3/flip_v = true +1:0/3/terrain_set = 0 +1:0/3/terrain = 0 +1:0/3/physics_layer_0/linear_velocity = Vector2(0, 0) +1:0/3/physics_layer_0/angular_velocity = 0.0 +1:0/3/physics_layer_0/polygon_0/points = PackedVector2Array(-10, -10, 10, -10, 10, 10, -10, 10) +1:0/3/terrains_peering_bit/left_side = 0 +1:0/3/terrains_peering_bit/top_left_corner = 0 +1:0/3/terrains_peering_bit/top_side = 0 +2:0/next_alternative_id = 5 +2:0/0 = 0 +2:0/0/terrain_set = 0 +2:0/0/terrain = 0 +2:0/0/physics_layer_0/linear_velocity = Vector2(0, 0) +2:0/0/physics_layer_0/angular_velocity = 0.0 +2:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-10, -10, 10, -10, 10, 10, -10, 10) +2:0/0/terrains_peering_bit/right_side = 0 +2:0/0/terrains_peering_bit/bottom_right_corner = 0 +2:0/0/terrains_peering_bit/bottom_side = 0 +2:0/0/terrains_peering_bit/bottom_left_corner = 0 +2:0/0/terrains_peering_bit/left_side = 0 +2:0/1 = 1 +2:0/1/flip_v = true +2:0/1/terrain_set = 0 +2:0/1/terrain = 0 +2:0/1/physics_layer_0/linear_velocity = Vector2(0, 0) +2:0/1/physics_layer_0/angular_velocity = 0.0 +2:0/1/physics_layer_0/polygon_0/points = PackedVector2Array(-10, -10, 10, -10, 10, 10, -10, 10) +2:0/1/terrains_peering_bit/right_side = 0 +2:0/1/terrains_peering_bit/left_side = 0 +2:0/1/terrains_peering_bit/top_left_corner = 0 +2:0/1/terrains_peering_bit/top_side = 0 +2:0/1/terrains_peering_bit/top_right_corner = 0 +2:0/2 = 2 +2:0/2/transpose = true +2:0/2/terrain_set = 0 +2:0/2/terrain = 0 +2:0/2/physics_layer_0/linear_velocity = Vector2(0, 0) +2:0/2/physics_layer_0/angular_velocity = 0.0 +2:0/2/physics_layer_0/polygon_0/points = PackedVector2Array(-10, -10, 10, -10, 10, 10, -10, 10) +2:0/2/terrains_peering_bit/right_side = 0 +2:0/2/terrains_peering_bit/bottom_right_corner = 0 +2:0/2/terrains_peering_bit/bottom_side = 0 +2:0/2/terrains_peering_bit/top_side = 0 +2:0/2/terrains_peering_bit/top_right_corner = 0 +2:0/3 = 3 +2:0/3/flip_h = true +2:0/3/transpose = true +2:0/3/terrain_set = 0 +2:0/3/terrain = 0 +2:0/3/physics_layer_0/linear_velocity = Vector2(0, 0) +2:0/3/physics_layer_0/angular_velocity = 0.0 +2:0/3/physics_layer_0/polygon_0/points = PackedVector2Array(-10, -10, 10, -10, 10, 10, -10, 10) +2:0/3/terrains_peering_bit/bottom_side = 0 +2:0/3/terrains_peering_bit/bottom_left_corner = 0 +2:0/3/terrains_peering_bit/left_side = 0 +2:0/3/terrains_peering_bit/top_left_corner = 0 +2:0/3/terrains_peering_bit/top_side = 0 +3:0/next_alternative_id = 3 +3:0/0 = 0 +3:0/0/terrain_set = 0 +3:0/0/terrain = 0 +3:0/0/physics_layer_0/linear_velocity = Vector2(0, 0) +3:0/0/physics_layer_0/angular_velocity = 0.0 +3:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-10, -10, 10, -10, 10, 10, -10, 10) +3:0/0/terrains_peering_bit/right_side = 0 +3:0/0/terrains_peering_bit/left_side = 0 +3:0/1 = 1 +3:0/1/transpose = true +3:0/1/terrain_set = 0 +3:0/1/terrain = 0 +3:0/1/physics_layer_0/linear_velocity = Vector2(0, 0) +3:0/1/physics_layer_0/angular_velocity = 0.0 +3:0/1/physics_layer_0/polygon_0/points = PackedVector2Array(-10, -10, 10, -10, 10, 10, -10, 10) +3:0/1/terrains_peering_bit/bottom_side = 0 +3:0/1/terrains_peering_bit/top_side = 0 +0:1/next_alternative_id = 4 +0:1/0 = 0 +0:1/0/terrain_set = 0 +0:1/0/terrain = 0 +0:1/0/physics_layer_0/linear_velocity = Vector2(0, 0) +0:1/0/physics_layer_0/angular_velocity = 0.0 +0:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-10, -10, 10, -10, 10, 10, -10, 10) +0:1/0/terrains_peering_bit/right_side = 0 +0:1/0/terrains_peering_bit/bottom_right_corner = 0 +0:1/0/terrains_peering_bit/bottom_side = 0 +0:1/0/terrains_peering_bit/bottom_left_corner = 0 +0:1/0/terrains_peering_bit/left_side = 0 +0:1/0/terrains_peering_bit/top_left_corner = 0 +0:1/0/terrains_peering_bit/top_side = 0 +0:1/1 = 1 +0:1/1/flip_h = true +0:1/1/terrain_set = 0 +0:1/1/terrain = 0 +0:1/1/physics_layer_0/linear_velocity = Vector2(0, 0) +0:1/1/physics_layer_0/angular_velocity = 0.0 +0:1/1/physics_layer_0/polygon_0/points = PackedVector2Array(-10, -10, 10, -10, 10, 10, -10, 10) +0:1/1/terrains_peering_bit/right_side = 0 +0:1/1/terrains_peering_bit/bottom_right_corner = 0 +0:1/1/terrains_peering_bit/bottom_side = 0 +0:1/1/terrains_peering_bit/bottom_left_corner = 0 +0:1/1/terrains_peering_bit/left_side = 0 +0:1/1/terrains_peering_bit/top_side = 0 +0:1/1/terrains_peering_bit/top_right_corner = 0 +0:1/2 = 2 +0:1/2/flip_v = true +0:1/2/terrain_set = 0 +0:1/2/terrain = 0 +0:1/2/physics_layer_0/linear_velocity = Vector2(0, 0) +0:1/2/physics_layer_0/angular_velocity = 0.0 +0:1/2/physics_layer_0/polygon_0/points = PackedVector2Array(-10, -10, 10, -10, 10, 10, -10, 10) +0:1/2/terrains_peering_bit/right_side = 0 +0:1/2/terrains_peering_bit/bottom_side = 0 +0:1/2/terrains_peering_bit/bottom_left_corner = 0 +0:1/2/terrains_peering_bit/left_side = 0 +0:1/2/terrains_peering_bit/top_left_corner = 0 +0:1/2/terrains_peering_bit/top_side = 0 +0:1/2/terrains_peering_bit/top_right_corner = 0 +0:1/3 = 3 +0:1/3/flip_h = true +0:1/3/flip_v = true +0:1/3/terrain_set = 0 +0:1/3/terrain = 0 +0:1/3/physics_layer_0/linear_velocity = Vector2(0, 0) +0:1/3/physics_layer_0/angular_velocity = 0.0 +0:1/3/physics_layer_0/polygon_0/points = PackedVector2Array(-10, -10, 10, -10, 10, 10, -10, 10) +0:1/3/terrains_peering_bit/right_side = 0 +0:1/3/terrains_peering_bit/bottom_right_corner = 0 +0:1/3/terrains_peering_bit/bottom_side = 0 +0:1/3/terrains_peering_bit/left_side = 0 +0:1/3/terrains_peering_bit/top_left_corner = 0 +0:1/3/terrains_peering_bit/top_side = 0 +0:1/3/terrains_peering_bit/top_right_corner = 0 +1:1/0 = 0 +1:1/0/terrain_set = 0 +1:1/0/terrain = 0 +1:1/0/physics_layer_0/linear_velocity = Vector2(0, 0) +1:1/0/physics_layer_0/angular_velocity = 0.0 +1:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-10, -10, 10, -10, 10, 10, -10, 10) +1:1/0/terrains_peering_bit/right_side = 0 +1:1/0/terrains_peering_bit/bottom_right_corner = 0 +1:1/0/terrains_peering_bit/bottom_side = 0 +1:1/0/terrains_peering_bit/bottom_left_corner = 0 +1:1/0/terrains_peering_bit/left_side = 0 +1:1/0/terrains_peering_bit/top_left_corner = 0 +1:1/0/terrains_peering_bit/top_side = 0 +1:1/0/terrains_peering_bit/top_right_corner = 0 +2:1/next_alternative_id = 4 +2:1/0 = 0 +2:1/0/terrain_set = 0 +2:1/0/terrain = 0 +2:1/0/physics_layer_0/linear_velocity = Vector2(0, 0) +2:1/0/physics_layer_0/angular_velocity = 0.0 +2:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-10, -10, 10, -10, 10, 10, -10, 10) +2:1/0/terrains_peering_bit/bottom_side = 0 +2:1/1 = 1 +2:1/1/flip_v = true +2:1/1/terrain_set = 0 +2:1/1/terrain = 0 +2:1/1/physics_layer_0/linear_velocity = Vector2(0, 0) +2:1/1/physics_layer_0/angular_velocity = 0.0 +2:1/1/physics_layer_0/polygon_0/points = PackedVector2Array(-10, -10, 10, -10, 10, 10, -10, 10) +2:1/1/terrains_peering_bit/top_side = 0 +2:1/2 = 2 +2:1/2/transpose = true +2:1/2/terrain_set = 0 +2:1/2/terrain = 0 +2:1/2/physics_layer_0/linear_velocity = Vector2(0, 0) +2:1/2/physics_layer_0/angular_velocity = 0.0 +2:1/2/physics_layer_0/polygon_0/points = PackedVector2Array(-10, -10, 10, -10, 10, 10, -10, 10) +2:1/2/terrains_peering_bit/right_side = 0 +2:1/3 = 3 +2:1/3/flip_h = true +2:1/3/transpose = true +2:1/3/terrain_set = 0 +2:1/3/terrain = 0 +2:1/3/physics_layer_0/linear_velocity = Vector2(0, 0) +2:1/3/physics_layer_0/angular_velocity = 0.0 +2:1/3/physics_layer_0/polygon_0/points = PackedVector2Array(-10, -10, 10, -10, 10, 10, -10, 10) +2:1/3/terrains_peering_bit/left_side = 0 +3:1/next_alternative_id = 3 +3:1/0 = 0 +3:1/0/terrain_set = 0 +3:1/0/terrain = 0 +3:1/0/physics_layer_0/linear_velocity = Vector2(0, 0) +3:1/0/physics_layer_0/angular_velocity = 0.0 +3:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-10, -10, 10, -10, 10, 10, -10, 10) +3:1/0/terrains_peering_bit/right_side = 0 +3:1/0/terrains_peering_bit/bottom_right_corner = 0 +3:1/0/terrains_peering_bit/bottom_side = 0 +3:1/0/terrains_peering_bit/left_side = 0 +3:1/0/terrains_peering_bit/top_left_corner = 0 +3:1/0/terrains_peering_bit/top_side = 0 +3:1/1 = 1 +3:1/1/flip_h = true +3:1/1/terrain_set = 0 +3:1/1/terrain = 0 +3:1/1/physics_layer_0/linear_velocity = Vector2(0, 0) +3:1/1/physics_layer_0/angular_velocity = 0.0 +3:1/1/physics_layer_0/polygon_0/points = PackedVector2Array(-10, -10, 10, -10, 10, 10, -10, 10) +3:1/1/terrains_peering_bit/right_side = 0 +3:1/1/terrains_peering_bit/bottom_side = 0 +3:1/1/terrains_peering_bit/bottom_left_corner = 0 +3:1/1/terrains_peering_bit/left_side = 0 +3:1/1/terrains_peering_bit/top_side = 0 +3:1/1/terrains_peering_bit/top_right_corner = 0 +0:2/next_alternative_id = 4 +0:2/0 = 0 +0:2/0/terrain_set = 0 +0:2/0/terrain = 0 +0:2/0/physics_layer_0/linear_velocity = Vector2(0, 0) +0:2/0/physics_layer_0/angular_velocity = 0.0 +0:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-10, -10, 10, -10, 10, 10, -10, 10) +0:2/0/terrains_peering_bit/right_side = 0 +0:2/0/terrains_peering_bit/bottom_right_corner = 0 +0:2/0/terrains_peering_bit/bottom_side = 0 +0:2/0/terrains_peering_bit/bottom_left_corner = 0 +0:2/0/terrains_peering_bit/left_side = 0 +0:2/0/terrains_peering_bit/top_side = 0 +0:2/1 = 1 +0:2/1/flip_v = true +0:2/1/terrain_set = 0 +0:2/1/terrain = 0 +0:2/1/physics_layer_0/linear_velocity = Vector2(0, 0) +0:2/1/physics_layer_0/angular_velocity = 0.0 +0:2/1/physics_layer_0/polygon_0/points = PackedVector2Array(-10, -10, 10, -10, 10, 10, -10, 10) +0:2/1/terrains_peering_bit/right_side = 0 +0:2/1/terrains_peering_bit/bottom_side = 0 +0:2/1/terrains_peering_bit/left_side = 0 +0:2/1/terrains_peering_bit/top_left_corner = 0 +0:2/1/terrains_peering_bit/top_side = 0 +0:2/1/terrains_peering_bit/top_right_corner = 0 +0:2/2 = 2 +0:2/2/transpose = true +0:2/2/terrain_set = 0 +0:2/2/terrain = 0 +0:2/2/physics_layer_0/linear_velocity = Vector2(0, 0) +0:2/2/physics_layer_0/angular_velocity = 0.0 +0:2/2/physics_layer_0/polygon_0/points = PackedVector2Array(-10, -10, 10, -10, 10, 10, -10, 10) +0:2/2/terrains_peering_bit/right_side = 0 +0:2/2/terrains_peering_bit/bottom_right_corner = 0 +0:2/2/terrains_peering_bit/bottom_side = 0 +0:2/2/terrains_peering_bit/left_side = 0 +0:2/2/terrains_peering_bit/top_side = 0 +0:2/2/terrains_peering_bit/top_right_corner = 0 +0:2/3 = 3 +0:2/3/flip_h = true +0:2/3/transpose = true +0:2/3/terrain_set = 0 +0:2/3/terrain = 0 +0:2/3/physics_layer_0/linear_velocity = Vector2(0, 0) +0:2/3/physics_layer_0/angular_velocity = 0.0 +0:2/3/physics_layer_0/polygon_0/points = PackedVector2Array(-10, -10, 10, -10, 10, 10, -10, 10) +0:2/3/terrains_peering_bit/right_side = 0 +0:2/3/terrains_peering_bit/bottom_side = 0 +0:2/3/terrains_peering_bit/bottom_left_corner = 0 +0:2/3/terrains_peering_bit/left_side = 0 +0:2/3/terrains_peering_bit/top_left_corner = 0 +0:2/3/terrains_peering_bit/top_side = 0 +1:2/next_alternative_id = 4 +1:2/0 = 0 +1:2/0/terrain_set = 0 +1:2/0/terrain = 0 +1:2/0/physics_layer_0/linear_velocity = Vector2(0, 0) +1:2/0/physics_layer_0/angular_velocity = 0.0 +1:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-10, -10, 10, -10, 10, 10, -10, 10) +1:2/0/terrains_peering_bit/right_side = 0 +1:2/0/terrains_peering_bit/bottom_right_corner = 0 +1:2/0/terrains_peering_bit/bottom_side = 0 +1:2/0/terrains_peering_bit/left_side = 0 +1:2/0/terrains_peering_bit/top_side = 0 +1:2/1 = 1 +1:2/1/flip_h = true +1:2/1/terrain_set = 0 +1:2/1/terrain = 0 +1:2/1/physics_layer_0/linear_velocity = Vector2(0, 0) +1:2/1/physics_layer_0/angular_velocity = 0.0 +1:2/1/physics_layer_0/polygon_0/points = PackedVector2Array(-10, -10, 10, -10, 10, 10, -10, 10) +1:2/1/terrains_peering_bit/right_side = 0 +1:2/1/terrains_peering_bit/bottom_side = 0 +1:2/1/terrains_peering_bit/bottom_left_corner = 0 +1:2/1/terrains_peering_bit/left_side = 0 +1:2/1/terrains_peering_bit/top_side = 0 +1:2/2 = 2 +1:2/2/flip_v = true +1:2/2/terrain_set = 0 +1:2/2/terrain = 0 +1:2/2/physics_layer_0/linear_velocity = Vector2(0, 0) +1:2/2/physics_layer_0/angular_velocity = 0.0 +1:2/2/physics_layer_0/polygon_0/points = PackedVector2Array(-10, -10, 10, -10, 10, 10, -10, 10) +1:2/2/terrains_peering_bit/right_side = 0 +1:2/2/terrains_peering_bit/bottom_side = 0 +1:2/2/terrains_peering_bit/left_side = 0 +1:2/2/terrains_peering_bit/top_side = 0 +1:2/2/terrains_peering_bit/top_right_corner = 0 +1:2/3 = 3 +1:2/3/flip_h = true +1:2/3/flip_v = true +1:2/3/terrain_set = 0 +1:2/3/terrain = 0 +1:2/3/physics_layer_0/linear_velocity = Vector2(0, 0) +1:2/3/physics_layer_0/angular_velocity = 0.0 +1:2/3/physics_layer_0/polygon_0/points = PackedVector2Array(-10, -10, 10, -10, 10, 10, -10, 10) +1:2/3/terrains_peering_bit/right_side = 0 +1:2/3/terrains_peering_bit/bottom_side = 0 +1:2/3/terrains_peering_bit/left_side = 0 +1:2/3/terrains_peering_bit/top_left_corner = 0 +1:2/3/terrains_peering_bit/top_side = 0 +2:2/0 = 0 +2:2/0/terrain_set = 0 +2:2/0/terrain = 0 +2:2/0/physics_layer_0/linear_velocity = Vector2(0, 0) +2:2/0/physics_layer_0/angular_velocity = 0.0 +2:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-10, -10, 10, -10, 10, 10, -10, 10) +2:2/0/terrains_peering_bit/right_side = 0 +2:2/0/terrains_peering_bit/bottom_side = 0 +2:2/0/terrains_peering_bit/left_side = 0 +2:2/0/terrains_peering_bit/top_side = 0 +3:2/next_alternative_id = 8 +3:2/0 = 0 +3:2/0/terrain_set = 0 +3:2/0/terrain = 0 +3:2/0/physics_layer_0/linear_velocity = Vector2(0, 0) +3:2/0/physics_layer_0/angular_velocity = 0.0 +3:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-10, -10, 10, -10, 10, 10, -10, 10) +3:2/0/terrains_peering_bit/right_side = 0 +3:2/0/terrains_peering_bit/bottom_side = 0 +3:2/0/terrains_peering_bit/bottom_left_corner = 0 +3:2/0/terrains_peering_bit/left_side = 0 +3:2/1 = 1 +3:2/1/flip_h = true +3:2/1/terrain_set = 0 +3:2/1/terrain = 0 +3:2/1/physics_layer_0/linear_velocity = Vector2(0, 0) +3:2/1/physics_layer_0/angular_velocity = 0.0 +3:2/1/physics_layer_0/polygon_0/points = PackedVector2Array(-10, -10, 10, -10, 10, 10, -10, 10) +3:2/1/terrains_peering_bit/right_side = 0 +3:2/1/terrains_peering_bit/bottom_right_corner = 0 +3:2/1/terrains_peering_bit/bottom_side = 0 +3:2/1/terrains_peering_bit/left_side = 0 +3:2/2 = 2 +3:2/2/flip_v = true +3:2/2/terrain_set = 0 +3:2/2/terrain = 0 +3:2/2/physics_layer_0/linear_velocity = Vector2(0, 0) +3:2/2/physics_layer_0/angular_velocity = 0.0 +3:2/2/physics_layer_0/polygon_0/points = PackedVector2Array(-10, -10, 10, -10, 10, 10, -10, 10) +3:2/2/terrains_peering_bit/right_side = 0 +3:2/2/terrains_peering_bit/left_side = 0 +3:2/2/terrains_peering_bit/top_left_corner = 0 +3:2/2/terrains_peering_bit/top_side = 0 +3:2/3 = 3 +3:2/3/flip_h = true +3:2/3/flip_v = true +3:2/3/terrain_set = 0 +3:2/3/terrain = 0 +3:2/3/physics_layer_0/linear_velocity = Vector2(0, 0) +3:2/3/physics_layer_0/angular_velocity = 0.0 +3:2/3/physics_layer_0/polygon_0/points = PackedVector2Array(-10, -10, 10, -10, 10, 10, -10, 10) +3:2/3/terrains_peering_bit/right_side = 0 +3:2/3/terrains_peering_bit/left_side = 0 +3:2/3/terrains_peering_bit/top_side = 0 +3:2/3/terrains_peering_bit/top_right_corner = 0 +3:2/4 = 4 +3:2/4/transpose = true +3:2/4/terrain_set = 0 +3:2/4/terrain = 0 +3:2/4/physics_layer_0/linear_velocity = Vector2(0, 0) +3:2/4/physics_layer_0/angular_velocity = 0.0 +3:2/4/physics_layer_0/polygon_0/points = PackedVector2Array(-10, -10, 10, -10, 10, 10, -10, 10) +3:2/4/terrains_peering_bit/right_side = 0 +3:2/4/terrains_peering_bit/bottom_side = 0 +3:2/4/terrains_peering_bit/top_side = 0 +3:2/4/terrains_peering_bit/top_right_corner = 0 +3:2/5 = 5 +3:2/5/flip_h = true +3:2/5/transpose = true +3:2/5/terrain_set = 0 +3:2/5/terrain = 0 +3:2/5/physics_layer_0/linear_velocity = Vector2(0, 0) +3:2/5/physics_layer_0/angular_velocity = 0.0 +3:2/5/physics_layer_0/polygon_0/points = PackedVector2Array(-10, -10, 10, -10, 10, 10, -10, 10) +3:2/5/terrains_peering_bit/bottom_side = 0 +3:2/5/terrains_peering_bit/left_side = 0 +3:2/5/terrains_peering_bit/top_left_corner = 0 +3:2/5/terrains_peering_bit/top_side = 0 +3:2/6 = 6 +3:2/6/flip_v = true +3:2/6/transpose = true +3:2/6/terrain_set = 0 +3:2/6/terrain = 0 +3:2/6/physics_layer_0/linear_velocity = Vector2(0, 0) +3:2/6/physics_layer_0/angular_velocity = 0.0 +3:2/6/physics_layer_0/polygon_0/points = PackedVector2Array(-10, -10, 10, -10, 10, 10, -10, 10) +3:2/6/terrains_peering_bit/right_side = 0 +3:2/6/terrains_peering_bit/bottom_right_corner = 0 +3:2/6/terrains_peering_bit/bottom_side = 0 +3:2/6/terrains_peering_bit/top_side = 0 +3:2/7 = 7 +3:2/7/flip_h = true +3:2/7/flip_v = true +3:2/7/transpose = true +3:2/7/terrain_set = 0 +3:2/7/terrain = 0 +3:2/7/physics_layer_0/linear_velocity = Vector2(0, 0) +3:2/7/physics_layer_0/angular_velocity = 0.0 +3:2/7/physics_layer_0/polygon_0/points = PackedVector2Array(-10, -10, 10, -10, 10, 10, -10, 10) +3:2/7/terrains_peering_bit/bottom_side = 0 +3:2/7/terrains_peering_bit/bottom_left_corner = 0 +3:2/7/terrains_peering_bit/left_side = 0 +3:2/7/terrains_peering_bit/top_side = 0 +0:3/next_alternative_id = 4 +0:3/0 = 0 +0:3/0/terrain_set = 0 +0:3/0/terrain = 0 +0:3/0/physics_layer_0/linear_velocity = Vector2(0, 0) +0:3/0/physics_layer_0/angular_velocity = 0.0 +0:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-10, -10, 10, -10, 10, 10, -10, 10) +0:3/0/terrains_peering_bit/right_side = 0 +0:3/0/terrains_peering_bit/bottom_side = 0 +0:3/1 = 1 +0:3/1/flip_h = true +0:3/1/terrain_set = 0 +0:3/1/terrain = 0 +0:3/1/physics_layer_0/linear_velocity = Vector2(0, 0) +0:3/1/physics_layer_0/angular_velocity = 0.0 +0:3/1/physics_layer_0/polygon_0/points = PackedVector2Array(-10, -10, 10, -10, 10, 10, -10, 10) +0:3/1/terrains_peering_bit/bottom_side = 0 +0:3/1/terrains_peering_bit/left_side = 0 +0:3/2 = 2 +0:3/2/flip_v = true +0:3/2/terrain_set = 0 +0:3/2/terrain = 0 +0:3/2/physics_layer_0/linear_velocity = Vector2(0, 0) +0:3/2/physics_layer_0/angular_velocity = 0.0 +0:3/2/physics_layer_0/polygon_0/points = PackedVector2Array(-10, -10, 10, -10, 10, 10, -10, 10) +0:3/2/terrains_peering_bit/right_side = 0 +0:3/2/terrains_peering_bit/top_side = 0 +0:3/3 = 3 +0:3/3/flip_h = true +0:3/3/flip_v = true +0:3/3/terrain_set = 0 +0:3/3/terrain = 0 +0:3/3/physics_layer_0/linear_velocity = Vector2(0, 0) +0:3/3/physics_layer_0/angular_velocity = 0.0 +0:3/3/physics_layer_0/polygon_0/points = PackedVector2Array(-10, -10, 10, -10, 10, 10, -10, 10) +0:3/3/terrains_peering_bit/left_side = 0 +0:3/3/terrains_peering_bit/top_side = 0 +1:3/next_alternative_id = 4 +1:3/0 = 0 +1:3/0/terrain_set = 0 +1:3/0/terrain = 0 +1:3/0/physics_layer_0/linear_velocity = Vector2(0, 0) +1:3/0/physics_layer_0/angular_velocity = 0.0 +1:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-10, -10, 10, -10, 10, 10, -10, 10) +1:3/0/terrains_peering_bit/right_side = 0 +1:3/0/terrains_peering_bit/bottom_side = 0 +1:3/0/terrains_peering_bit/left_side = 0 +1:3/1 = 1 +1:3/1/flip_v = true +1:3/1/terrain_set = 0 +1:3/1/terrain = 0 +1:3/1/physics_layer_0/linear_velocity = Vector2(0, 0) +1:3/1/physics_layer_0/angular_velocity = 0.0 +1:3/1/physics_layer_0/polygon_0/points = PackedVector2Array(-10, -10, 10, -10, 10, 10, -10, 10) +1:3/1/terrains_peering_bit/right_side = 0 +1:3/1/terrains_peering_bit/left_side = 0 +1:3/1/terrains_peering_bit/top_side = 0 +1:3/2 = 2 +1:3/2/transpose = true +1:3/2/terrain_set = 0 +1:3/2/terrain = 0 +1:3/2/physics_layer_0/linear_velocity = Vector2(0, 0) +1:3/2/physics_layer_0/angular_velocity = 0.0 +1:3/2/physics_layer_0/polygon_0/points = PackedVector2Array(-10, -10, 10, -10, 10, 10, -10, 10) +1:3/2/terrains_peering_bit/right_side = 0 +1:3/2/terrains_peering_bit/bottom_side = 0 +1:3/2/terrains_peering_bit/top_side = 0 +1:3/3 = 3 +1:3/3/flip_h = true +1:3/3/transpose = true +1:3/3/terrain_set = 0 +1:3/3/terrain = 0 +1:3/3/physics_layer_0/linear_velocity = Vector2(0, 0) +1:3/3/physics_layer_0/angular_velocity = 0.0 +1:3/3/physics_layer_0/polygon_0/points = PackedVector2Array(-10, -10, 10, -10, 10, 10, -10, 10) +1:3/3/terrains_peering_bit/bottom_side = 0 +1:3/3/terrains_peering_bit/left_side = 0 +1:3/3/terrains_peering_bit/top_side = 0 + +[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_vssqg"] +texture = ExtResource("2_2mhui") +texture_region_size = Vector2i(20, 20) +0:0/next_alternative_id = 4 +0:0/0 = 0 +0:0/0/terrain_set = 0 +0:0/0/terrain = 1 +0:0/0/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/0/physics_layer_0/angular_velocity = 0.0 +0:0/0/terrains_peering_bit/right_side = 1 +0:0/0/terrains_peering_bit/bottom_right_corner = 1 +0:0/0/terrains_peering_bit/bottom_side = 1 +0:0/1 = 1 +0:0/1/flip_h = true +0:0/1/terrain_set = 0 +0:0/1/terrain = 1 +0:0/1/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/1/physics_layer_0/angular_velocity = 0.0 +0:0/1/terrains_peering_bit/bottom_side = 1 +0:0/1/terrains_peering_bit/bottom_left_corner = 1 +0:0/1/terrains_peering_bit/left_side = 1 +0:0/2 = 2 +0:0/2/flip_v = true +0:0/2/terrain_set = 0 +0:0/2/terrain = 1 +0:0/2/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/2/physics_layer_0/angular_velocity = 0.0 +0:0/2/terrains_peering_bit/right_side = 1 +0:0/2/terrains_peering_bit/top_side = 1 +0:0/2/terrains_peering_bit/top_right_corner = 1 +0:0/3 = 3 +0:0/3/flip_h = true +0:0/3/flip_v = true +0:0/3/terrain_set = 0 +0:0/3/terrain = 1 +0:0/3/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/3/physics_layer_0/angular_velocity = 0.0 +0:0/3/terrains_peering_bit/left_side = 1 +0:0/3/terrains_peering_bit/top_left_corner = 1 +0:0/3/terrains_peering_bit/top_side = 1 +1:0/0 = 0 +1:0/0/terrain_set = 0 +1:0/0/terrain = 1 +1:0/0/physics_layer_0/linear_velocity = Vector2(0, 0) +1:0/0/physics_layer_0/angular_velocity = 0.0 +0:1/0 = 0 +0:1/0/terrain_set = 0 +0:1/0/terrain = 1 +0:1/0/physics_layer_0/linear_velocity = Vector2(0, 0) +0:1/0/physics_layer_0/angular_velocity = 0.0 +0:1/0/terrains_peering_bit/right_side = 1 +0:1/0/terrains_peering_bit/bottom_right_corner = 1 +0:1/0/terrains_peering_bit/bottom_side = 1 +0:1/0/terrains_peering_bit/bottom_left_corner = 1 +0:1/0/terrains_peering_bit/left_side = 1 +0:1/0/terrains_peering_bit/top_left_corner = 1 +0:1/0/terrains_peering_bit/top_side = 1 +0:1/0/terrains_peering_bit/top_right_corner = 1 +1:1/next_alternative_id = 4 +1:1/0 = 0 +1:1/0/terrain_set = 0 +1:1/0/terrain = 1 +1:1/0/physics_layer_0/linear_velocity = Vector2(0, 0) +1:1/0/physics_layer_0/angular_velocity = 0.0 +1:1/0/terrains_peering_bit/right_side = 1 +1:1/0/terrains_peering_bit/bottom_right_corner = 1 +1:1/0/terrains_peering_bit/bottom_side = 1 +1:1/0/terrains_peering_bit/bottom_left_corner = 1 +1:1/0/terrains_peering_bit/left_side = 1 +1:1/0/terrains_peering_bit/top_left_corner = 1 +1:1/0/terrains_peering_bit/top_side = 1 +1:1/1 = 1 +1:1/1/flip_h = true +1:1/1/terrain_set = 0 +1:1/1/terrain = 1 +1:1/1/physics_layer_0/linear_velocity = Vector2(0, 0) +1:1/1/physics_layer_0/angular_velocity = 0.0 +1:1/1/terrains_peering_bit/right_side = 1 +1:1/1/terrains_peering_bit/bottom_right_corner = 1 +1:1/1/terrains_peering_bit/bottom_side = 1 +1:1/1/terrains_peering_bit/bottom_left_corner = 1 +1:1/1/terrains_peering_bit/left_side = 1 +1:1/1/terrains_peering_bit/top_side = 1 +1:1/1/terrains_peering_bit/top_right_corner = 1 +1:1/2 = 2 +1:1/2/flip_v = true +1:1/2/terrain_set = 0 +1:1/2/terrain = 1 +1:1/2/physics_layer_0/linear_velocity = Vector2(0, 0) +1:1/2/physics_layer_0/angular_velocity = 0.0 +1:1/2/terrains_peering_bit/right_side = 1 +1:1/2/terrains_peering_bit/bottom_side = 1 +1:1/2/terrains_peering_bit/bottom_left_corner = 1 +1:1/2/terrains_peering_bit/left_side = 1 +1:1/2/terrains_peering_bit/top_left_corner = 1 +1:1/2/terrains_peering_bit/top_side = 1 +1:1/2/terrains_peering_bit/top_right_corner = 1 +1:1/3 = 3 +1:1/3/flip_h = true +1:1/3/flip_v = true +1:1/3/terrain_set = 0 +1:1/3/terrain = 1 +1:1/3/physics_layer_0/linear_velocity = Vector2(0, 0) +1:1/3/physics_layer_0/angular_velocity = 0.0 +1:1/3/terrains_peering_bit/right_side = 1 +1:1/3/terrains_peering_bit/bottom_right_corner = 1 +1:1/3/terrains_peering_bit/bottom_side = 1 +1:1/3/terrains_peering_bit/left_side = 1 +1:1/3/terrains_peering_bit/top_left_corner = 1 +1:1/3/terrains_peering_bit/top_side = 1 +1:1/3/terrains_peering_bit/top_right_corner = 1 +0:2/next_alternative_id = 4 +0:2/0 = 0 +0:2/0/terrain_set = 0 +0:2/0/terrain = 1 +0:2/0/physics_layer_0/linear_velocity = Vector2(0, 0) +0:2/0/physics_layer_0/angular_velocity = 0.0 +0:2/0/terrains_peering_bit/right_side = 1 +0:2/0/terrains_peering_bit/bottom_right_corner = 1 +0:2/0/terrains_peering_bit/bottom_side = 1 +0:2/0/terrains_peering_bit/left_side = 1 +0:2/0/terrains_peering_bit/top_side = 1 +0:2/1 = 1 +0:2/1/flip_h = true +0:2/1/terrain_set = 0 +0:2/1/terrain = 1 +0:2/1/physics_layer_0/linear_velocity = Vector2(0, 0) +0:2/1/physics_layer_0/angular_velocity = 0.0 +0:2/1/terrains_peering_bit/right_side = 1 +0:2/1/terrains_peering_bit/bottom_side = 1 +0:2/1/terrains_peering_bit/bottom_left_corner = 1 +0:2/1/terrains_peering_bit/left_side = 1 +0:2/1/terrains_peering_bit/top_side = 1 +0:2/2 = 2 +0:2/2/flip_v = true +0:2/2/terrain_set = 0 +0:2/2/terrain = 1 +0:2/2/physics_layer_0/linear_velocity = Vector2(0, 0) +0:2/2/physics_layer_0/angular_velocity = 0.0 +0:2/2/terrains_peering_bit/right_side = 1 +0:2/2/terrains_peering_bit/bottom_side = 1 +0:2/2/terrains_peering_bit/left_side = 1 +0:2/2/terrains_peering_bit/top_side = 1 +0:2/2/terrains_peering_bit/top_right_corner = 1 +0:2/3 = 3 +0:2/3/flip_h = true +0:2/3/flip_v = true +0:2/3/terrain_set = 0 +0:2/3/terrain = 1 +0:2/3/physics_layer_0/linear_velocity = Vector2(0, 0) +0:2/3/physics_layer_0/angular_velocity = 0.0 +0:2/3/terrains_peering_bit/right_side = 1 +0:2/3/terrains_peering_bit/bottom_side = 1 +0:2/3/terrains_peering_bit/left_side = 1 +0:2/3/terrains_peering_bit/top_left_corner = 1 +0:2/3/terrains_peering_bit/top_side = 1 +1:2/next_alternative_id = 4 +1:2/0 = 0 +1:2/0/terrain_set = 0 +1:2/0/terrain = 1 +1:2/0/physics_layer_0/linear_velocity = Vector2(0, 0) +1:2/0/physics_layer_0/angular_velocity = 0.0 +1:2/0/terrains_peering_bit/right_side = 1 +1:2/0/terrains_peering_bit/bottom_right_corner = 1 +1:2/0/terrains_peering_bit/bottom_side = 1 +1:2/0/terrains_peering_bit/bottom_left_corner = 1 +1:2/0/terrains_peering_bit/left_side = 1 +1:2/0/terrains_peering_bit/top_side = 1 +1:2/1 = 1 +1:2/1/flip_v = true +1:2/1/terrain_set = 0 +1:2/1/terrain = 1 +1:2/1/physics_layer_0/linear_velocity = Vector2(0, 0) +1:2/1/physics_layer_0/angular_velocity = 0.0 +1:2/1/terrains_peering_bit/right_side = 1 +1:2/1/terrains_peering_bit/bottom_side = 1 +1:2/1/terrains_peering_bit/left_side = 1 +1:2/1/terrains_peering_bit/top_left_corner = 1 +1:2/1/terrains_peering_bit/top_side = 1 +1:2/1/terrains_peering_bit/top_right_corner = 1 +1:2/2 = 2 +1:2/2/transpose = true +1:2/2/terrain_set = 0 +1:2/2/terrain = 1 +1:2/2/physics_layer_0/linear_velocity = Vector2(0, 0) +1:2/2/physics_layer_0/angular_velocity = 0.0 +1:2/2/terrains_peering_bit/right_side = 1 +1:2/2/terrains_peering_bit/bottom_right_corner = 1 +1:2/2/terrains_peering_bit/bottom_side = 1 +1:2/2/terrains_peering_bit/left_side = 1 +1:2/2/terrains_peering_bit/top_side = 1 +1:2/2/terrains_peering_bit/top_right_corner = 1 +1:2/3 = 3 +1:2/3/flip_h = true +1:2/3/transpose = true +1:2/3/terrain_set = 0 +1:2/3/terrain = 1 +1:2/3/physics_layer_0/linear_velocity = Vector2(0, 0) +1:2/3/physics_layer_0/angular_velocity = 0.0 +1:2/3/terrains_peering_bit/right_side = 1 +1:2/3/terrains_peering_bit/bottom_side = 1 +1:2/3/terrains_peering_bit/bottom_left_corner = 1 +1:2/3/terrains_peering_bit/left_side = 1 +1:2/3/terrains_peering_bit/top_left_corner = 1 +1:2/3/terrains_peering_bit/top_side = 1 +0:3/next_alternative_id = 4 +0:3/0 = 0 +0:3/0/terrain_set = 0 +0:3/0/terrain = 1 +0:3/0/physics_layer_0/linear_velocity = Vector2(0, 0) +0:3/0/physics_layer_0/angular_velocity = 0.0 +0:3/0/terrains_peering_bit/right_side = 1 +0:3/0/terrains_peering_bit/bottom_side = 1 +0:3/0/terrains_peering_bit/left_side = 1 +0:3/1 = 1 +0:3/1/flip_v = true +0:3/1/terrain_set = 0 +0:3/1/terrain = 1 +0:3/1/physics_layer_0/linear_velocity = Vector2(0, 0) +0:3/1/physics_layer_0/angular_velocity = 0.0 +0:3/1/terrains_peering_bit/right_side = 1 +0:3/1/terrains_peering_bit/left_side = 1 +0:3/1/terrains_peering_bit/top_side = 1 +0:3/2 = 2 +0:3/2/transpose = true +0:3/2/terrain_set = 0 +0:3/2/terrain = 1 +0:3/2/physics_layer_0/linear_velocity = Vector2(0, 0) +0:3/2/physics_layer_0/angular_velocity = 0.0 +0:3/2/terrains_peering_bit/right_side = 1 +0:3/2/terrains_peering_bit/bottom_side = 1 +0:3/2/terrains_peering_bit/top_side = 1 +0:3/3 = 3 +0:3/3/flip_h = true +0:3/3/transpose = true +0:3/3/terrain_set = 0 +0:3/3/terrain = 1 +0:3/3/physics_layer_0/linear_velocity = Vector2(0, 0) +0:3/3/physics_layer_0/angular_velocity = 0.0 +0:3/3/terrains_peering_bit/bottom_side = 1 +0:3/3/terrains_peering_bit/left_side = 1 +0:3/3/terrains_peering_bit/top_side = 1 +1:3/next_alternative_id = 4 +1:3/0 = 0 +1:3/0/terrain_set = 0 +1:3/0/terrain = 1 +1:3/0/physics_layer_0/linear_velocity = Vector2(0, 0) +1:3/0/physics_layer_0/angular_velocity = 0.0 +1:3/0/terrains_peering_bit/right_side = 1 +1:3/0/terrains_peering_bit/bottom_side = 1 +1:3/1 = 1 +1:3/1/flip_h = true +1:3/1/terrain_set = 0 +1:3/1/terrain = 1 +1:3/1/physics_layer_0/linear_velocity = Vector2(0, 0) +1:3/1/physics_layer_0/angular_velocity = 0.0 +1:3/1/terrains_peering_bit/bottom_side = 1 +1:3/1/terrains_peering_bit/left_side = 1 +1:3/2 = 2 +1:3/2/flip_v = true +1:3/2/terrain_set = 0 +1:3/2/terrain = 1 +1:3/2/physics_layer_0/linear_velocity = Vector2(0, 0) +1:3/2/physics_layer_0/angular_velocity = 0.0 +1:3/2/terrains_peering_bit/right_side = 1 +1:3/2/terrains_peering_bit/top_side = 1 +1:3/3 = 3 +1:3/3/flip_h = true +1:3/3/flip_v = true +1:3/3/terrain_set = 0 +1:3/3/terrain = 1 +1:3/3/physics_layer_0/linear_velocity = Vector2(0, 0) +1:3/3/physics_layer_0/angular_velocity = 0.0 +1:3/3/terrains_peering_bit/left_side = 1 +1:3/3/terrains_peering_bit/top_side = 1 +0:4/next_alternative_id = 2 +0:4/0 = 0 +0:4/0/terrain_set = 0 +0:4/0/terrain = 1 +0:4/0/physics_layer_0/linear_velocity = Vector2(0, 0) +0:4/0/physics_layer_0/angular_velocity = 0.0 +0:4/0/terrains_peering_bit/right_side = 1 +0:4/0/terrains_peering_bit/left_side = 1 +0:4/1 = 1 +0:4/1/transpose = true +0:4/1/terrain_set = 0 +0:4/1/terrain = 1 +0:4/1/physics_layer_0/linear_velocity = Vector2(0, 0) +0:4/1/physics_layer_0/angular_velocity = 0.0 +0:4/1/terrains_peering_bit/bottom_side = 1 +0:4/1/terrains_peering_bit/top_side = 1 +1:4/next_alternative_id = 4 +1:4/0 = 0 +1:4/0/terrain_set = 0 +1:4/0/terrain = 1 +1:4/0/physics_layer_0/linear_velocity = Vector2(0, 0) +1:4/0/physics_layer_0/angular_velocity = 0.0 +1:4/0/terrains_peering_bit/right_side = 1 +1:4/0/terrains_peering_bit/bottom_right_corner = 1 +1:4/0/terrains_peering_bit/bottom_side = 1 +1:4/0/terrains_peering_bit/bottom_left_corner = 1 +1:4/0/terrains_peering_bit/left_side = 1 +1:4/1 = 1 +1:4/1/flip_v = true +1:4/1/terrain_set = 0 +1:4/1/terrain = 1 +1:4/1/physics_layer_0/linear_velocity = Vector2(0, 0) +1:4/1/physics_layer_0/angular_velocity = 0.0 +1:4/1/terrains_peering_bit/right_side = 1 +1:4/1/terrains_peering_bit/left_side = 1 +1:4/1/terrains_peering_bit/top_left_corner = 1 +1:4/1/terrains_peering_bit/top_side = 1 +1:4/1/terrains_peering_bit/top_right_corner = 1 +1:4/2 = 2 +1:4/2/transpose = true +1:4/2/terrain_set = 0 +1:4/2/terrain = 1 +1:4/2/physics_layer_0/linear_velocity = Vector2(0, 0) +1:4/2/physics_layer_0/angular_velocity = 0.0 +1:4/2/terrains_peering_bit/right_side = 1 +1:4/2/terrains_peering_bit/bottom_right_corner = 1 +1:4/2/terrains_peering_bit/bottom_side = 1 +1:4/2/terrains_peering_bit/top_side = 1 +1:4/2/terrains_peering_bit/top_right_corner = 1 +1:4/3 = 3 +1:4/3/flip_h = true +1:4/3/transpose = true +1:4/3/terrain_set = 0 +1:4/3/terrain = 1 +1:4/3/physics_layer_0/linear_velocity = Vector2(0, 0) +1:4/3/physics_layer_0/angular_velocity = 0.0 +1:4/3/terrains_peering_bit/bottom_side = 1 +1:4/3/terrains_peering_bit/bottom_left_corner = 1 +1:4/3/terrains_peering_bit/left_side = 1 +1:4/3/terrains_peering_bit/top_left_corner = 1 +1:4/3/terrains_peering_bit/top_side = 1 +0:5/next_alternative_id = 2 +0:5/0 = 0 +0:5/0/terrain_set = 0 +0:5/0/terrain = 1 +0:5/0/physics_layer_0/linear_velocity = Vector2(0, 0) +0:5/0/physics_layer_0/angular_velocity = 0.0 +0:5/0/terrains_peering_bit/right_side = 1 +0:5/0/terrains_peering_bit/bottom_right_corner = 1 +0:5/0/terrains_peering_bit/bottom_side = 1 +0:5/0/terrains_peering_bit/left_side = 1 +0:5/0/terrains_peering_bit/top_left_corner = 1 +0:5/0/terrains_peering_bit/top_side = 1 +0:5/1 = 1 +0:5/1/flip_h = true +0:5/1/terrain_set = 0 +0:5/1/terrain = 1 +0:5/1/physics_layer_0/linear_velocity = Vector2(0, 0) +0:5/1/physics_layer_0/angular_velocity = 0.0 +0:5/1/terrains_peering_bit/right_side = 1 +0:5/1/terrains_peering_bit/bottom_side = 1 +0:5/1/terrains_peering_bit/bottom_left_corner = 1 +0:5/1/terrains_peering_bit/left_side = 1 +0:5/1/terrains_peering_bit/top_side = 1 +0:5/1/terrains_peering_bit/top_right_corner = 1 +1:5/next_alternative_id = 4 +1:5/0 = 0 +1:5/0/terrain_set = 0 +1:5/0/terrain = 1 +1:5/0/physics_layer_0/linear_velocity = Vector2(0, 0) +1:5/0/physics_layer_0/angular_velocity = 0.0 +1:5/0/terrains_peering_bit/bottom_side = 1 +1:5/1 = 1 +1:5/1/flip_v = true +1:5/1/terrain_set = 0 +1:5/1/terrain = 1 +1:5/1/physics_layer_0/linear_velocity = Vector2(0, 0) +1:5/1/physics_layer_0/angular_velocity = 0.0 +1:5/1/terrains_peering_bit/top_side = 1 +1:5/2 = 2 +1:5/2/transpose = true +1:5/2/terrain_set = 0 +1:5/2/terrain = 1 +1:5/2/physics_layer_0/linear_velocity = Vector2(0, 0) +1:5/2/physics_layer_0/angular_velocity = 0.0 +1:5/2/terrains_peering_bit/right_side = 1 +1:5/3 = 3 +1:5/3/flip_h = true +1:5/3/transpose = true +1:5/3/terrain_set = 0 +1:5/3/terrain = 1 +1:5/3/physics_layer_0/linear_velocity = Vector2(0, 0) +1:5/3/physics_layer_0/angular_velocity = 0.0 +1:5/3/terrains_peering_bit/left_side = 1 +0:6/next_alternative_id = 8 +0:6/0 = 0 +0:6/0/terrain_set = 0 +0:6/0/terrain = 1 +0:6/0/physics_layer_0/linear_velocity = Vector2(0, 0) +0:6/0/physics_layer_0/angular_velocity = 0.0 +0:6/0/terrains_peering_bit/right_side = 1 +0:6/0/terrains_peering_bit/bottom_side = 1 +0:6/0/terrains_peering_bit/bottom_left_corner = 1 +0:6/0/terrains_peering_bit/left_side = 1 +0:6/1 = 1 +0:6/1/flip_h = true +0:6/1/terrain_set = 0 +0:6/1/terrain = 1 +0:6/1/physics_layer_0/linear_velocity = Vector2(0, 0) +0:6/1/physics_layer_0/angular_velocity = 0.0 +0:6/1/terrains_peering_bit/right_side = 1 +0:6/1/terrains_peering_bit/bottom_right_corner = 1 +0:6/1/terrains_peering_bit/bottom_side = 1 +0:6/1/terrains_peering_bit/left_side = 1 +0:6/2 = 2 +0:6/2/flip_v = true +0:6/2/terrain_set = 0 +0:6/2/terrain = 1 +0:6/2/physics_layer_0/linear_velocity = Vector2(0, 0) +0:6/2/physics_layer_0/angular_velocity = 0.0 +0:6/2/terrains_peering_bit/right_side = 1 +0:6/2/terrains_peering_bit/left_side = 1 +0:6/2/terrains_peering_bit/top_left_corner = 1 +0:6/2/terrains_peering_bit/top_side = 1 +0:6/3 = 3 +0:6/3/flip_h = true +0:6/3/flip_v = true +0:6/3/terrain_set = 0 +0:6/3/terrain = 1 +0:6/3/physics_layer_0/linear_velocity = Vector2(0, 0) +0:6/3/physics_layer_0/angular_velocity = 0.0 +0:6/3/terrains_peering_bit/right_side = 1 +0:6/3/terrains_peering_bit/left_side = 1 +0:6/3/terrains_peering_bit/top_side = 1 +0:6/3/terrains_peering_bit/top_right_corner = 1 +0:6/4 = 4 +0:6/4/transpose = true +0:6/4/terrain_set = 0 +0:6/4/terrain = 1 +0:6/4/physics_layer_0/linear_velocity = Vector2(0, 0) +0:6/4/physics_layer_0/angular_velocity = 0.0 +0:6/4/terrains_peering_bit/right_side = 1 +0:6/4/terrains_peering_bit/bottom_side = 1 +0:6/4/terrains_peering_bit/top_side = 1 +0:6/4/terrains_peering_bit/top_right_corner = 1 +0:6/5 = 5 +0:6/5/flip_h = true +0:6/5/transpose = true +0:6/5/terrain_set = 0 +0:6/5/terrain = 1 +0:6/5/physics_layer_0/linear_velocity = Vector2(0, 0) +0:6/5/physics_layer_0/angular_velocity = 0.0 +0:6/5/terrains_peering_bit/bottom_side = 1 +0:6/5/terrains_peering_bit/left_side = 1 +0:6/5/terrains_peering_bit/top_left_corner = 1 +0:6/5/terrains_peering_bit/top_side = 1 +0:6/6 = 6 +0:6/6/flip_v = true +0:6/6/transpose = true +0:6/6/terrain_set = 0 +0:6/6/terrain = 1 +0:6/6/physics_layer_0/linear_velocity = Vector2(0, 0) +0:6/6/physics_layer_0/angular_velocity = 0.0 +0:6/6/terrains_peering_bit/right_side = 1 +0:6/6/terrains_peering_bit/bottom_right_corner = 1 +0:6/6/terrains_peering_bit/bottom_side = 1 +0:6/6/terrains_peering_bit/top_side = 1 +0:6/7 = 7 +0:6/7/flip_h = true +0:6/7/flip_v = true +0:6/7/transpose = true +0:6/7/terrain_set = 0 +0:6/7/terrain = 1 +0:6/7/physics_layer_0/linear_velocity = Vector2(0, 0) +0:6/7/physics_layer_0/angular_velocity = 0.0 +0:6/7/terrains_peering_bit/bottom_side = 1 +0:6/7/terrains_peering_bit/bottom_left_corner = 1 +0:6/7/terrains_peering_bit/left_side = 1 +0:6/7/terrains_peering_bit/top_side = 1 +1:6/0 = 0 +1:6/0/terrain_set = 0 +1:6/0/terrain = 1 +1:6/0/physics_layer_0/linear_velocity = Vector2(0, 0) +1:6/0/physics_layer_0/angular_velocity = 0.0 +1:6/0/terrains_peering_bit/right_side = 1 +1:6/0/terrains_peering_bit/bottom_side = 1 +1:6/0/terrains_peering_bit/left_side = 1 +1:6/0/terrains_peering_bit/top_side = 1 + +[sub_resource type="TileSet" id="TileSet_askv5"] +tile_size = Vector2i(20, 20) +physics_layer_0/collision_layer = 1 +physics_layer_0/physics_material = SubResource("PhysicsMaterial_ynecb") +terrain_set_0/mode = 0 +terrain_set_0/terrain_0/name = "Wall" +terrain_set_0/terrain_0/color = Color(1, 1, 1, 1) +terrain_set_0/terrain_1/name = "floor" +terrain_set_0/terrain_1/color = Color(0, 0, 0, 1) +sources/0 = SubResource("TileSetAtlasSource_8j0vh") +sources/1 = SubResource("TileSetAtlasSource_vssqg") + +[node name="Walls" type="TileMap" groups=["Wall"]] +tile_set = SubResource("TileSet_askv5") +format = 2 +layer_0/tile_data = PackedInt32Array(393224, 65536, 196608, 327688, 131072, 196608, 262152, 131072, 196608, 196616, 131072, 196608, 131080, 131072, 196608, 65544, 131072, 196608, 8, 131072, 196608, -65528, 131072, 196608, -131064, 131072, 196608, -196600, 131072, 196608, -262136, 131072, 196608, -327672, 131072, 196608, -393208, 131072, 196608, -458744, 65536, 65536, 393223, 131072, 65536, 327687, 65536, 1, 262151, 65536, 1, 196615, 65536, 1, 131079, 65536, 1, 65543, 65536, 1, 7, 65536, 1, -65529, 65536, 1, -131065, 65536, 1, -196601, 65536, 1, -262137, 65536, 1, -327673, 65536, 1, -393209, 65536, 1, -458745, 131072, 0, 393222, 131072, 65536, 327686, 65536, 1, 262150, 65536, 1, 196614, 65536, 1, 131078, 65536, 1, 65542, 65536, 1, 6, 65536, 1, -65530, 65536, 1, -131066, 65536, 1, -196602, 65536, 1, -262138, 65536, 1, -327674, 65536, 1, -393210, 65536, 1, -458746, 131072, 0, 393221, 131072, 65536, 327685, 65536, 1, 262149, 65536, 1, 196613, 65536, 1, 131077, 65536, 1, 65541, 65536, 1, 5, 65536, 1, -65531, 65536, 1, -131067, 65536, 1, -196603, 65536, 1, -262139, 65536, 1, -327675, 65536, 1, -393211, 65536, 1, -458747, 131072, 0, 393220, 131072, 65536, 327684, 65536, 1, 262148, 65536, 1, 196612, 65536, 1, 131076, 65536, 1, 65540, 65536, 1, 4, 65536, 1, -65532, 65536, 1, -131068, 65536, 1, -196604, 65536, 1, -262140, 65536, 1, -327676, 65536, 1, -393212, 65536, 1, -458748, 131072, 0, 393219, 131072, 65536, 327683, 65536, 1, 262147, 65536, 1, 196611, 65536, 1, 131075, 65536, 1, 65539, 65536, 1, 3, 65536, 1, -65533, 65536, 1, -131069, 65536, 1, -196605, 65536, 1, -262141, 65536, 1, -327677, 65536, 1, -393213, 65536, 1, -458749, 131072, 0, 393218, 131072, 65536, 327682, 65536, 1, 262146, 65536, 1, 196610, 65536, 1, 131074, 65536, 1, 65538, 65536, 1, 2, 65536, 1, -65534, 65536, 1, -131070, 65536, 1, -196606, 65536, 1, -262142, 65536, 1, -327678, 65536, 1, -393214, 65536, 1, -458750, 131072, 0, 393217, 131072, 65536, 327681, 65536, 1, 262145, 65536, 1, 196609, 65536, 1, 131073, 65536, 1, 65537, 65536, 1, 1, 65536, 1, -65535, 65536, 1, -131071, 65536, 1, -196607, 65536, 1, -262143, 65536, 1, -327679, 65536, 1, -393215, 65536, 1, -458751, 131072, 0, 393216, 131072, 65536, 327680, 65536, 1, 262144, 65536, 1, 196608, 65536, 1, 131072, 65536, 1, 65536, 65536, 1, 0, 65536, 1, -65536, 65536, 1, -131072, 65536, 1, -196608, 65536, 1, -262144, 65536, 1, -327680, 65536, 1, -393216, 65536, 1, -458752, 131072, 0, 458751, 131072, 65536, 393215, 65536, 1, 327679, 65536, 1, 262143, 65536, 1, 196607, 65536, 1, 131071, 65536, 1, 65535, 65536, 1, -1, 65536, 1, -65537, 65536, 1, -131073, 65536, 1, -196609, 65536, 1, -262145, 65536, 1, -327681, 65536, 1, -393217, 131072, 0, 458750, 131072, 65536, 393214, 65536, 1, 327678, 65536, 1, 262142, 65536, 1, 196606, 65536, 1, 131070, 65536, 1, 65534, 65536, 1, -2, 65536, 1, -65538, 65536, 1, -131074, 65536, 1, -196610, 65536, 1, -262146, 65536, 1, -327682, 65536, 1, -393218, 131072, 0, 458749, 131072, 65536, 393213, 65536, 1, 327677, 65536, 1, 262141, 65536, 1, 196605, 65536, 1, 131069, 65536, 1, 65533, 65536, 1, -3, 65536, 1, -65539, 65536, 1, -131075, 65536, 1, -196611, 65536, 1, -262147, 65536, 1, -327683, 65536, 1, -393219, 131072, 0, 458748, 131072, 65536, 393212, 65536, 1, 327676, 65536, 1, 262140, 65536, 1, 196604, 65536, 1, 131068, 65536, 1, 65532, 65536, 1, -4, 65536, 1, -65540, 65536, 1, -131076, 65536, 1, -196612, 65536, 1, -262148, 65536, 1, -327684, 65536, 1, -393220, 131072, 0, 458747, 131072, 65536, 393211, 65536, 1, 327675, 65536, 1, 262139, 65536, 1, 196603, 65536, 1, 131067, 65536, 1, 65531, 65536, 1, -5, 65536, 1, -65541, 65536, 1, -131077, 65536, 1, -196613, 65536, 1, -262149, 65536, 1, -327685, 65536, 1, -393221, 131072, 0, 458746, 131072, 65536, 393210, 65536, 1, 327674, 65536, 1, 262138, 65536, 1, 196602, 65536, 1, 131066, 65536, 1, 65530, 65536, 1, -6, 65536, 1, -65542, 65536, 1, -131078, 65536, 1, -196614, 65536, 1, -262150, 65536, 1, -327686, 65536, 1, -393222, 131072, 0, 458745, 131072, 65536, 393209, 65536, 1, 327673, 65536, 1, 262137, 65536, 1, 196601, 65536, 1, 131065, 65536, 1, 65529, 65536, 1, -7, 65536, 1, -65543, 65536, 1, -131079, 65536, 1, -196615, 65536, 1, -262151, 65536, 1, -327687, 65536, 1, -393223, 131072, 0, 458744, 131072, 65536, 393208, 65536, 1, 327672, 65536, 1, 262136, 65536, 1, 196600, 65536, 1, 131064, 65536, 1, 65528, 65536, 1, -8, 65536, 1, -65544, 65536, 1, -131080, 65536, 1, -196616, 65536, 1, -262152, 65536, 1, -327688, 65536, 1, -393224, 131072, 0, 458743, 65536, 131072, 393207, 131072, 131072, 327671, 131072, 131072, 262135, 131072, 131072, 196599, 131072, 131072, 131063, 131072, 131072, 65527, 131072, 131072, -9, 131072, 131072, -65545, 131072, 131072, -131081, 131072, 131072, -196617, 131072, 131072, -262153, 131072, 131072, -327689, 131072, 131072, -393225, 65536, 0) diff --git a/default_bus_layout.tres b/default_bus_layout.tres new file mode 100644 index 0000000..3b0e8d2 --- /dev/null +++ b/default_bus_layout.tres @@ -0,0 +1,16 @@ +[gd_resource type="AudioBusLayout" format=3 uid="uid://cwj2e5er4rbr3"] + +[resource] +bus/0/volume_db = -3.76831 +bus/1/name = &"FootSteps" +bus/1/solo = false +bus/1/mute = false +bus/1/bypass_fx = false +bus/1/volume_db = -10.5236 +bus/1/send = &"Master" +bus/2/name = &"Quiet" +bus/2/solo = false +bus/2/mute = false +bus/2/bypass_fx = false +bus/2/volume_db = -18.3165 +bus/2/send = &"Master" diff --git a/export_presets.cfg b/export_presets.cfg new file mode 100644 index 0000000..9040211 --- /dev/null +++ b/export_presets.cfg @@ -0,0 +1,108 @@ +[preset.0] + +name="Linux/X11" +platform="Linux/X11" +runnable=true +dedicated_server=false +custom_features="" +export_filter="all_resources" +include_filter="" +exclude_filter="" +export_path="../../Downloads/OutofBody.x86_64" +encryption_include_filters="" +encryption_exclude_filters="" +encrypt_pck=false +encrypt_directory=false + +[preset.0.options] + +custom_template/debug="" +custom_template/release="" +debug/export_console_wrapper=1 +binary_format/embed_pck=true +texture_format/bptc=true +texture_format/s3tc=true +texture_format/etc=false +texture_format/etc2=false +binary_format/architecture="x86_64" +ssh_remote_deploy/enabled=false +ssh_remote_deploy/host="user@host_ip" +ssh_remote_deploy/port="22" +ssh_remote_deploy/extra_args_ssh="" +ssh_remote_deploy/extra_args_scp="" +ssh_remote_deploy/run_script="#!/usr/bin/env bash +export DISPLAY=:0 +unzip -o -q \"{temp_dir}/{archive_name}\" -d \"{temp_dir}\" +\"{temp_dir}/{exe_name}\" {cmd_args}" +ssh_remote_deploy/cleanup_script="#!/usr/bin/env bash +kill $(pgrep -x -f \"{temp_dir}/{exe_name} {cmd_args}\") +rm -rf \"{temp_dir}\"" +dotnet/include_scripts_content=false +dotnet/include_debug_symbols=true +dotnet/embed_build_outputs=false + +[preset.1] + +name="Windows Desktop" +platform="Windows Desktop" +runnable=true +dedicated_server=false +custom_features="" +export_filter="all_resources" +include_filter="" +exclude_filter="" +export_path="../../Downloads/OutofBody.exe" +encryption_include_filters="" +encryption_exclude_filters="" +encrypt_pck=false +encrypt_directory=false + +[preset.1.options] + +custom_template/debug="" +custom_template/release="" +debug/export_console_wrapper=1 +binary_format/embed_pck=true +texture_format/bptc=true +texture_format/s3tc=true +texture_format/etc=false +texture_format/etc2=false +binary_format/architecture="x86_64" +codesign/enable=false +codesign/timestamp=true +codesign/timestamp_server_url="" +codesign/digest_algorithm=1 +codesign/description="" +codesign/custom_options=PackedStringArray() +application/modify_resources=true +application/icon="" +application/console_wrapper_icon="" +application/icon_interpolation=0 +application/file_version="" +application/product_version="" +application/company_name="" +application/product_name="" +application/file_description="" +application/copyright="" +application/trademarks="" +application/export_angle=0 +ssh_remote_deploy/enabled=false +ssh_remote_deploy/host="user@host_ip" +ssh_remote_deploy/port="22" +ssh_remote_deploy/extra_args_ssh="" +ssh_remote_deploy/extra_args_scp="" +ssh_remote_deploy/run_script="Expand-Archive -LiteralPath '{temp_dir}\\{archive_name}' -DestinationPath '{temp_dir}' +$action = New-ScheduledTaskAction -Execute '{temp_dir}\\{exe_name}' -Argument '{cmd_args}' +$trigger = New-ScheduledTaskTrigger -Once -At 00:00 +$settings = New-ScheduledTaskSettingsSet +$task = New-ScheduledTask -Action $action -Trigger $trigger -Settings $settings +Register-ScheduledTask godot_remote_debug -InputObject $task -Force:$true +Start-ScheduledTask -TaskName godot_remote_debug +while (Get-ScheduledTask -TaskName godot_remote_debug | ? State -eq running) { Start-Sleep -Milliseconds 100 } +Unregister-ScheduledTask -TaskName godot_remote_debug -Confirm:$false -ErrorAction:SilentlyContinue" +ssh_remote_deploy/cleanup_script="Stop-ScheduledTask -TaskName godot_remote_debug -ErrorAction:SilentlyContinue +Unregister-ScheduledTask -TaskName godot_remote_debug -Confirm:$false -ErrorAction:SilentlyContinue +Remove-Item -Recurse -Force '{temp_dir}'" +dotnet/include_scripts_content=false +dotnet/include_debug_symbols=true +dotnet/embed_build_outputs=false diff --git a/project.godot b/project.godot new file mode 100644 index 0000000..959a04e --- /dev/null +++ b/project.godot @@ -0,0 +1,78 @@ +; Engine configuration file. +; It's best edited using the editor UI and not directly, +; since the parameters that go here are not all obvious. +; +; Format: +; [section] ; section goes between [] +; param=value ; assign values to parameters + +config_version=5 + +[application] + +config/name="Out of Body" +config/version="V1.0" +run/main_scene="res://OoB.tscn" +config/features=PackedStringArray("4.2", "C#", "GL Compatibility") +boot_splash/bg_color=Color(0, 0, 0, 1) +boot_splash/show_image=false +boot_splash/fullsize=false +boot_splash/use_filter=false +config/icon="res://Icon.png" + +[audio] + +buses/default_bus_layout="" + +[display] + +window/size/viewport_width=1024 +window/size/viewport_height=768 +window/size/mode=3 +window/size/borderless=true +window/stretch/mode="viewport" +window/stretch/scale_mode="integer" +window/vsync/vsync_mode=0 + +[dotnet] + +project/assembly_name="Sharp of Body" + +[input] + +Up={ +"deadzone": 0.5, +"events": [null, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":4194320,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) +] +} +Down={ +"deadzone": 0.5, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":4194322,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) +] +} +Left={ +"deadzone": 0.5, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":4194319,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) +] +} +Right={ +"deadzone": 0.5, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":4194321,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) +] +} +Action={ +"deadzone": 0.5, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":90,"physical_keycode":0,"key_label":0,"unicode":122,"echo":false,"script":null) +] +} +Reset={ +"deadzone": 0.5, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":82,"physical_keycode":0,"key_label":0,"unicode":114,"echo":false,"script":null) +] +} + +[rendering] + +textures/canvas_textures/default_texture_filter=0 +renderer/rendering_method="gl_compatibility" +renderer/rendering_method.mobile="gl_compatibility"