innit bruv

This commit is contained in:
CocoWaff 2024-01-02 20:10:53 -05:00
commit 5ca556bd4e
68 changed files with 3691 additions and 0 deletions

2
.gitattributes vendored Normal file
View File

@ -0,0 +1,2 @@
# Normalize EOL for all files that Git considers text files.
* text=auto eol=lf

2
.gitignore vendored Normal file
View File

@ -0,0 +1,2 @@
# Godot 4+ specific ignores
.godot/

BIN
Audio/Exit.wav Normal file

Binary file not shown.

24
Audio/Exit.wav.import Normal file
View File

@ -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

BIN
Audio/GhostCage.wav Normal file

Binary file not shown.

View File

@ -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

BIN
Audio/GhostMove.wav Normal file

Binary file not shown.

View File

@ -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

BIN
Audio/Snore.wav Normal file

Binary file not shown.

24
Audio/Snore.wav.import Normal file
View File

@ -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

BIN
Audio/reset.wav Normal file

Binary file not shown.

24
Audio/reset.wav.import Normal file
View File

@ -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

120
Entities/Cage.tscn Normal file
View File

@ -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"]

185
Entities/Chloek.tscn Normal file
View File

@ -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"]

187
Entities/EvilEye.tscn Normal file
View File

@ -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"]

29
Entities/Exit.tscn Normal file
View File

@ -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"]

148
Entities/Ghost.tscn Normal file
View File

@ -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"]

129
Entities/Lazer.tscn Normal file
View File

@ -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"]

19
Entities/entrance.tscn Normal file
View File

@ -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")

BIN
Icon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 236 B

34
Icon.png.import Normal file
View File

@ -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

23
Levels/0.tscn Normal file
View File

@ -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")

44
Levels/1.tscn Normal file

File diff suppressed because one or more lines are too long

44
Levels/2.tscn Normal file
View File

@ -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)

89
Levels/3.tscn Normal file
View File

@ -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)

72
Levels/4.tscn Normal file

File diff suppressed because one or more lines are too long

60
Levels/5.tscn Normal file

File diff suppressed because one or more lines are too long

23
Levels/6.tscn Normal file
View File

@ -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")

17
Levels/7.tscn Normal file
View File

@ -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")

21
OoB.tscn Normal file
View File

@ -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")

75
Scripts/Cage.cs Normal file
View File

@ -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<Area2D>("Probe");
sprite = GetNode<AnimatedSprite2D>("CageSprite");
GhostCaged = GetNode<AudioStreamPlayer>("GhostCaged");
cageTrigger = GetNode<Area2D>("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");
}
}
}
}

165
Scripts/Chloek.cs Normal file
View File

@ -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<Area2D>("Probe");
sprite = GetNode<AnimatedSprite2D>("ChloekSprite");
Interact = GetNode<AudioStreamPlayer>("Interact");
Reset = GetNode<AudioStreamPlayer>("Reset");
Snore = GetNode<AudioStreamPlayer>("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.
}
}
}

13
Scripts/Entrance.cs Normal file
View File

@ -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<StaticBody2D>("/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<Chloek>("/root/OutofBody/Chloek").spriteMovement = Position;
}
}

146
Scripts/EvilEye.cs Normal file
View File

@ -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<Area2D>("FacingProbe");
lidSprite = GetNode<AnimatedSprite2D>("EvilEyeLid");
ballSprite = GetNode<AnimatedSprite2D>("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<PackedScene>("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;
}
}
}
}

14
Scripts/Exit.cs Normal file
View File

@ -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<OoB>("/root/OutofBody").Level = GetNode<OoB>("/root/OutofBody").Level + 1;
}
}
}

187
Scripts/Ghost.cs Normal file
View File

@ -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<StaticBody2D>("/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<StaticBody2D>("/root/OutofBody/Chloek")) //if probe detects player
{
blocked = false; // allow moving
}
}
private void _on_ghost_area_area_entered(Area2D area)
{
if (area == GetNode<Area2D>("/root/OutofBody/Chloek/Probe"))
{
facing = true; //the player is facing the ghost
}
}
private void _on_ghost_area_area_exited(Area2D area)
{
if (area == GetNode<Area2D>("/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<Area2D>("Probe");
sprite = GetNode<AnimatedSprite2D>("GhostSprite");
GhostMove = GetNode<AudioStreamPlayer>("GhostMove");
GhostCage = GetNode<AudioStreamPlayer>("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;
}
}
}
}

66
Scripts/OoB.cs Normal file
View File

@ -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<AudioStreamPlayer>("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<PackedScene>("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<PackedScene>("res://Levels/" + Level.ToString() + ".tscn");
var instanceLevel = packedLevel.Instantiate();
AddChild(instanceLevel);
}
}
}

64
Scripts/lazer.cs Normal file
View File

@ -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<Area2D>("Probe");
sprite = GetNode<AnimatedSprite2D>("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
}
}

7
Sharp of Body.csproj Normal file
View File

@ -0,0 +1,7 @@
<Project Sdk="Godot.NET.Sdk/4.2.1">
<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>
<EnableDynamicLoading>true</EnableDynamicLoading>
<RootNamespace>SharpofBody</RootNamespace>
</PropertyGroup>
</Project>

7
Sharp of Body.csproj.old Normal file
View File

@ -0,0 +1,7 @@
<Project Sdk="Godot.NET.Sdk/4.1.2">
<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>
<EnableDynamicLoading>true</EnableDynamicLoading>
<RootNamespace>SharpofBody</RootNamespace>
</PropertyGroup>
</Project>

View File

@ -0,0 +1,7 @@
<Project Sdk="Godot.NET.Sdk/4.1.3">
<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>
<EnableDynamicLoading>true</EnableDynamicLoading>
<RootNamespace>SharpofBody</RootNamespace>
</PropertyGroup>
</Project>

View File

@ -0,0 +1,7 @@
<Project Sdk="Godot.NET.Sdk/4.2.0">
<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>
<EnableDynamicLoading>true</EnableDynamicLoading>
<RootNamespace>SharpofBody</RootNamespace>
</PropertyGroup>
</Project>

19
Sharp of Body.sln Normal file
View File

@ -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

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

View File

@ -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

BIN
Sprite Sheets/OoBchloek.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

@ -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

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

@ -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

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

BIN
Sprite Sheets/Stairs.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 454 B

View File

@ -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

BIN
Sprite Sheets/ending.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

View File

@ -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

BIN
Sprite Sheets/ending.png~ Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

BIN
Sprite Sheets/orb.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 262 B

View File

@ -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

BIN
Sprite Sheets/orb.png~ Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 279 B

BIN
Sprite Sheets/title.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

View File

@ -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

BIN
Tile Maps/OoB Floors.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

@ -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

BIN
Tile Maps/OoB Walls.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 824 B

View File

@ -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

1038
Tile Maps/Walls.tscn Normal file

File diff suppressed because it is too large Load Diff

16
default_bus_layout.tres Normal file
View File

@ -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"

108
export_presets.cfg Normal file
View File

@ -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

78
project.godot Normal file
View File

@ -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"