Compare commits

..

No commits in common. "137d216c80aa6bfc906f16ddd1beba74b248b077" and "d3685d4f4b1d020e70f784fa6e97306667afaa4e" have entirely different histories.

32 changed files with 131 additions and 883 deletions

View file

@ -1,54 +0,0 @@
[gd_scene load_steps=3 format=3 uid="uid://e0g6tbtsqv6j"]
[ext_resource type="Script" path="res://scripts/menu.gd" id="1_gas10"]
[ext_resource type="Texture2D" uid="uid://077ffi13hk2e" path="res://assets/export/claustrophemia-Layer 1.png" id="2_cmrlt"]
[node name="Main Menu" type="ColorRect"]
offset_right = 640.0
offset_bottom = 360.0
color = Color(0.300955, 0, 0.00368265, 1)
script = ExtResource("1_gas10")
[node name="Logo" type="TextureRect" parent="."]
texture_filter = 1
layout_mode = 0
offset_left = 128.0
offset_top = 16.0
offset_right = 512.0
offset_bottom = 144.0
texture = ExtResource("2_cmrlt")
stretch_mode = 4
metadata/_aseprite_wizard_interface_config_ = {
"layer_section": true,
"output_section": true,
"slice_section": false
}
metadata/_aseprite_wizard_config_ = {
"i_mode": 1,
"keep_anim_length": false,
"layer": "Layer 1",
"o_ex_p": "",
"o_folder": "res://assets/export",
"o_name": "claustrophemia-",
"only_visible": true,
"player": "",
"slice": "",
"source": "res://assets/claustrophemia.aseprite"
}
metadata/_aseprite_wizard_source_file_hash_ = "784e92f64bd88aac2d53a52103f858ed"
[node name="StartButton" type="Button" parent="."]
layout_mode = 0
offset_left = 256.0
offset_top = 144.0
offset_right = 384.0
offset_bottom = 192.0
text = "Start"
[node name="ExitButton" type="Button" parent="."]
layout_mode = 0
offset_left = 256.0
offset_top = 216.0
offset_right = 384.0
offset_bottom = 264.0
text = "Exit"

Binary file not shown.

View file

@ -1,14 +0,0 @@
[remap]
importer="aseprite_wizard.plugin.noop"
type="PackedDataContainer"
uid="uid://sg2ms6cssj01"
path="res://.godot/imported/PunchVFX.aseprite-b06de0b1aa18d48e800d94ff6cf92f62.res"
[deps]
source_file="res://assets/PunchVFX.aseprite"
dest_files=["res://.godot/imported/PunchVFX.aseprite-b06de0b1aa18d48e800d94ff6cf92f62.res"]
[params]

BIN
assets/bars.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

View file

@ -2,16 +2,16 @@
importer="texture" importer="texture"
type="CompressedTexture2D" type="CompressedTexture2D"
uid="uid://cavipaqyic82h" uid="uid://8trlh7j2pkam"
path="res://.godot/imported/bars.png-97588dd9444fb86009feab97b6cb4d08.ctex" path="res://.godot/imported/bars.jpg-cab2dec6a2095b0b47f5525c278f01e5.ctex"
metadata={ metadata={
"vram_texture": false "vram_texture": false
} }
[deps] [deps]
source_file="res://assets/bars.png" source_file="res://assets/bars.jpg"
dest_files=["res://.godot/imported/bars.png-97588dd9444fb86009feab97b6cb4d08.ctex"] dest_files=["res://.godot/imported/bars.jpg-cab2dec6a2095b0b47f5525c278f01e5.ctex"]
[params] [params]

Binary file not shown.

Before

Width:  |  Height:  |  Size: 82 KiB

Binary file not shown.

View file

@ -1,14 +0,0 @@
[remap]
importer="aseprite_wizard.plugin.noop"
type="PackedDataContainer"
uid="uid://6ogqpgqsd83w"
path="res://.godot/imported/claustrophemia.aseprite-f800c1af6f87740b4ecb05a00a7741c7.res"
[deps]
source_file="res://assets/claustrophemia.aseprite"
dest_files=["res://.godot/imported/claustrophemia.aseprite-f800c1af6f87740b4ecb05a00a7741c7.res"]
[params]

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

View file

@ -1,34 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bxf5icvrw7alr"
path="res://.godot/imported/claustrophemia-.png-faa5007b0a73aedbed11008a68ca763a.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/export/claustrophemia-.png"
dest_files=["res://.godot/imported/claustrophemia-.png-faa5007b0a73aedbed11008a68ca763a.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.

Before

Width:  |  Height:  |  Size: 1.8 KiB

View file

@ -1,34 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://077ffi13hk2e"
path="res://.godot/imported/claustrophemia-Layer 1.png-340cf2338b1f4cd63ac6677ea123b1b3.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/export/claustrophemia-Layer 1.png"
dest_files=["res://.godot/imported/claustrophemia-Layer 1.png-340cf2338b1f4cd63ac6677ea123b1b3.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.

Before

Width:  |  Height:  |  Size: 339 B

View file

@ -1,34 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://chmuy3pixpc0"
path="res://.godot/imported/claustrophemia-Layer 2.png-bb1d196f7f0b657546f2472a58e5ab33.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/export/claustrophemia-Layer 2.png"
dest_files=["res://.godot/imported/claustrophemia-Layer 2.png-bb1d196f7f0b657546f2472a58e5ab33.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.

Before

Width:  |  Height:  |  Size: 707 B

View file

@ -1,34 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cv731yjx5v71a"
path="res://.godot/imported/punch-.png-0d4c585a346b088b7f81847a43a045e4.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/export/punch-.png"
dest_files=["res://.godot/imported/punch-.png-0d4c585a346b088b7f81847a43a045e4.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.

View file

@ -1,14 +0,0 @@
[remap]
importer="aseprite_wizard.plugin.noop"
type="PackedDataContainer"
uid="uid://boc2fqbk18m6"
path="res://.godot/imported/weegee.aseprite-3b2165eb9806715fac46d106c4ddf9ee.res"
[deps]
source_file="res://assets/weegee.aseprite"
dest_files=["res://.godot/imported/weegee.aseprite-3b2165eb9806715fac46d106c4ddf9ee.res"]
[params]

View file

@ -1,6 +1,6 @@
[gd_scene load_steps=2 format=3 uid="uid://clptnshbcs6cn"] [gd_scene load_steps=2 format=3 uid="uid://clptnshbcs6cn"]
[ext_resource type="Texture2D" uid="uid://cavipaqyic82h" path="res://assets/bars.png" id="1_xyrd0"] [ext_resource type="Texture2D" uid="uid://8trlh7j2pkam" path="res://assets/bars.jpg" id="1_ryukb"]
[node name="Bars" type="Control"] [node name="Bars" type="Control"]
layout_mode = 3 layout_mode = 3
@ -10,6 +10,6 @@ offset_bottom = 40.0
[node name="TextureRect" type="TextureRect" parent="."] [node name="TextureRect" type="TextureRect" parent="."]
layout_mode = 0 layout_mode = 0
offset_right = 40.0 offset_right = 640.0
offset_bottom = 40.0 offset_bottom = 360.0
texture = ExtResource("1_xyrd0") texture = ExtResource("1_ryukb")

View file

@ -1,291 +0,0 @@
[gd_scene load_steps=35 format=3 uid="uid://n65kl0jalqdt"]
[ext_resource type="Texture2D" uid="uid://b447sysxt4rhp" path="res://assets/export/crawler-.png" id="1_bdup0"]
[ext_resource type="Script" path="res://scripts/crawler.gd" id="1_dcux3"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_k4vrw"]
size = Vector2(57, 63)
[sub_resource type="AtlasTexture" id="AtlasTexture_6iqis"]
atlas = ExtResource("1_bdup0")
region = Rect2(0, 0, 128, 64)
[sub_resource type="AtlasTexture" id="AtlasTexture_hk6n7"]
atlas = ExtResource("1_bdup0")
region = Rect2(128, 128, 128, 64)
[sub_resource type="AtlasTexture" id="AtlasTexture_i7pjq"]
atlas = ExtResource("1_bdup0")
region = Rect2(256, 128, 128, 64)
[sub_resource type="AtlasTexture" id="AtlasTexture_0bqgy"]
atlas = ExtResource("1_bdup0")
region = Rect2(384, 128, 128, 64)
[sub_resource type="AtlasTexture" id="AtlasTexture_b7rtd"]
atlas = ExtResource("1_bdup0")
region = Rect2(512, 128, 128, 64)
[sub_resource type="AtlasTexture" id="AtlasTexture_ma61w"]
atlas = ExtResource("1_bdup0")
region = Rect2(640, 128, 128, 64)
[sub_resource type="AtlasTexture" id="AtlasTexture_gxbrf"]
atlas = ExtResource("1_bdup0")
region = Rect2(0, 192, 128, 64)
[sub_resource type="AtlasTexture" id="AtlasTexture_jnxq4"]
atlas = ExtResource("1_bdup0")
region = Rect2(128, 192, 128, 64)
[sub_resource type="AtlasTexture" id="AtlasTexture_61s2s"]
atlas = ExtResource("1_bdup0")
region = Rect2(256, 192, 128, 64)
[sub_resource type="AtlasTexture" id="AtlasTexture_4h7cf"]
atlas = ExtResource("1_bdup0")
region = Rect2(384, 192, 128, 64)
[sub_resource type="AtlasTexture" id="AtlasTexture_4x8lu"]
atlas = ExtResource("1_bdup0")
region = Rect2(512, 192, 128, 64)
[sub_resource type="AtlasTexture" id="AtlasTexture_3grt7"]
atlas = ExtResource("1_bdup0")
region = Rect2(640, 192, 128, 64)
[sub_resource type="AtlasTexture" id="AtlasTexture_kw6t0"]
atlas = ExtResource("1_bdup0")
region = Rect2(0, 256, 128, 64)
[sub_resource type="AtlasTexture" id="AtlasTexture_jc8y7"]
atlas = ExtResource("1_bdup0")
region = Rect2(128, 256, 128, 64)
[sub_resource type="AtlasTexture" id="AtlasTexture_bhh5b"]
atlas = ExtResource("1_bdup0")
region = Rect2(256, 256, 128, 64)
[sub_resource type="AtlasTexture" id="AtlasTexture_2w283"]
atlas = ExtResource("1_bdup0")
region = Rect2(384, 256, 128, 64)
[sub_resource type="AtlasTexture" id="AtlasTexture_xmmn0"]
atlas = ExtResource("1_bdup0")
region = Rect2(512, 256, 128, 64)
[sub_resource type="AtlasTexture" id="AtlasTexture_5emai"]
atlas = ExtResource("1_bdup0")
region = Rect2(512, 64, 128, 64)
[sub_resource type="AtlasTexture" id="AtlasTexture_6rkkd"]
atlas = ExtResource("1_bdup0")
region = Rect2(640, 64, 128, 64)
[sub_resource type="AtlasTexture" id="AtlasTexture_vb5jc"]
atlas = ExtResource("1_bdup0")
region = Rect2(0, 128, 128, 64)
[sub_resource type="AtlasTexture" id="AtlasTexture_3efcj"]
atlas = ExtResource("1_bdup0")
region = Rect2(128, 0, 128, 64)
[sub_resource type="AtlasTexture" id="AtlasTexture_bygap"]
atlas = ExtResource("1_bdup0")
region = Rect2(256, 0, 128, 64)
[sub_resource type="AtlasTexture" id="AtlasTexture_i5vmv"]
atlas = ExtResource("1_bdup0")
region = Rect2(384, 0, 128, 64)
[sub_resource type="AtlasTexture" id="AtlasTexture_f1jsj"]
atlas = ExtResource("1_bdup0")
region = Rect2(512, 0, 128, 64)
[sub_resource type="AtlasTexture" id="AtlasTexture_l74ua"]
atlas = ExtResource("1_bdup0")
region = Rect2(640, 0, 128, 64)
[sub_resource type="AtlasTexture" id="AtlasTexture_iy6u6"]
atlas = ExtResource("1_bdup0")
region = Rect2(0, 64, 128, 64)
[sub_resource type="AtlasTexture" id="AtlasTexture_4xmi3"]
atlas = ExtResource("1_bdup0")
region = Rect2(128, 64, 128, 64)
[sub_resource type="AtlasTexture" id="AtlasTexture_4c0s3"]
atlas = ExtResource("1_bdup0")
region = Rect2(256, 64, 128, 64)
[sub_resource type="AtlasTexture" id="AtlasTexture_3jc57"]
atlas = ExtResource("1_bdup0")
region = Rect2(384, 64, 128, 64)
[sub_resource type="SpriteFrames" id="SpriteFrames_e3bx4"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_6iqis")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_hk6n7")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_i7pjq")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_0bqgy")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_b7rtd")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_ma61w")
}],
"loop": true,
"name": &"Whip",
"speed": 10.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_6iqis")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_gxbrf")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_jnxq4")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_61s2s")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_4h7cf")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_4x8lu")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_3grt7")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_kw6t0")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_jc8y7")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_bhh5b")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_2w283")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_xmmn0")
}],
"loop": true,
"name": &"death",
"speed": 10.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_6iqis")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_5emai")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_6rkkd")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_5emai")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_vb5jc")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_5emai")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_6iqis")
}],
"loop": true,
"name": &"jump away",
"speed": 10.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_6iqis")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_3efcj")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_bygap")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_i5vmv")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_f1jsj")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_l74ua")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_iy6u6")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_4xmi3")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_4c0s3")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_3jc57")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_3jc57")
}],
"loop": true,
"name": &"walk",
"speed": 10.0
}]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_s2a15"]
size = Vector2(48, 28)
[node name="Crawler" type="CharacterBody2D"]
script = ExtResource("1_dcux3")
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
position = Vector2(-3.5, -0.5)
shape = SubResource("RectangleShape2D_k4vrw")
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."]
texture_filter = 1
position = Vector2(-34, 0)
sprite_frames = SubResource("SpriteFrames_e3bx4")
animation = &"Whip"
frame_progress = 0.551191
metadata/_aseprite_wizard_config_ = {
"layer": "",
"o_ex_p": "",
"o_folder": "res://assets/export",
"o_name": "crawler-",
"only_visible": true,
"slice": "",
"source": "res://assets/crawler_walk.aseprite"
}
metadata/_aseprite_wizard_interface_config_ = {
"output_section": true
}
metadata/_aseprite_wizard_source_file_hash_ = "5428848d159be8aa5f91cd42b4e9cfca"
[node name="WhipArea" type="Area2D" parent="."]
[node name="Area2D" type="CollisionShape2D" parent="WhipArea"]
position = Vector2(-42, 2)
shape = SubResource("RectangleShape2D_s2a15")
debug_color = Color(0.949698, 0.110143, 0.492661, 0.42)

View file

@ -1,8 +1,10 @@
[gd_scene load_steps=36 format=3 uid="uid://n65kl0jalqdt"] [gd_scene load_steps=35 format=3 uid="uid://n65kl0jalqdt"]
[ext_resource type="Texture2D" uid="uid://b447sysxt4rhp" path="res://assets/export/crawler-.png" id="1_bdup0"] [ext_resource type="Texture2D" uid="uid://b447sysxt4rhp" path="res://assets/export/crawler-.png" id="1_bdup0"]
[ext_resource type="Script" path="res://scripts/crawler.gd" id="1_dcux3"] [ext_resource type="Script" path="res://scripts/crawler.gd" id="1_dcux3"]
[ext_resource type="AudioStream" uid="uid://dfrc2luquqqlw" path="res://assets/Explode.wav" id="3_qvljj"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_k4vrw"]
size = Vector2(57, 63)
[sub_resource type="AtlasTexture" id="AtlasTexture_6iqis"] [sub_resource type="AtlasTexture" id="AtlasTexture_6iqis"]
atlas = ExtResource("1_bdup0") atlas = ExtResource("1_bdup0")
@ -251,20 +253,22 @@ animations = [{
"speed": 10.0 "speed": 10.0
}] }]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_k4vrw"]
size = Vector2(60.5, 63)
[sub_resource type="RectangleShape2D" id="RectangleShape2D_s2a15"] [sub_resource type="RectangleShape2D" id="RectangleShape2D_s2a15"]
size = Vector2(48, 28) size = Vector2(48, 28)
[node name="Crawler" type="CharacterBody2D"] [node name="Crawler" type="CharacterBody2D"]
script = ExtResource("1_dcux3") script = ExtResource("1_dcux3")
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
position = Vector2(-3.5, -0.5)
shape = SubResource("RectangleShape2D_k4vrw")
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."] [node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."]
texture_filter = 1 texture_filter = 1
position = Vector2(-34, 0) position = Vector2(-34, 0)
sprite_frames = SubResource("SpriteFrames_e3bx4") sprite_frames = SubResource("SpriteFrames_e3bx4")
animation = &"Whip" animation = &"Whip"
frame_progress = 0.990945
metadata/_aseprite_wizard_config_ = { metadata/_aseprite_wizard_config_ = {
"layer": "", "layer": "",
"o_ex_p": "", "o_ex_p": "",
@ -279,34 +283,9 @@ metadata/_aseprite_wizard_interface_config_ = {
} }
metadata/_aseprite_wizard_source_file_hash_ = "5428848d159be8aa5f91cd42b4e9cfca" metadata/_aseprite_wizard_source_file_hash_ = "5428848d159be8aa5f91cd42b4e9cfca"
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
position = Vector2(-2, 0)
shape = SubResource("RectangleShape2D_k4vrw")
[node name="WhipArea" type="Area2D" parent="."] [node name="WhipArea" type="Area2D" parent="."]
[node name="Area2D" type="CollisionShape2D" parent="WhipArea"] [node name="Area2D" type="CollisionShape2D" parent="WhipArea"]
position = Vector2(-42, 1) position = Vector2(-42, 2)
shape = SubResource("RectangleShape2D_s2a15") shape = SubResource("RectangleShape2D_s2a15")
debug_color = Color(0.949698, 0.110143, 0.492661, 0.42) debug_color = Color(0.949698, 0.110143, 0.492661, 0.42)
[node name="ExplosionSFX" type="AudioStreamPlayer2D" parent="."]
position = Vector2(-34, 0)
stream = ExtResource("3_qvljj")
volume_db = 10.0
[node name="DeathTimer" type="Timer" parent="."]
wait_time = 1.1
one_shot = true
[node name="HurtTimer" type="Timer" parent="."]
wait_time = 0.6
one_shot = true
[node name="AttackTimer" type="Timer" parent="."]
wait_time = 0.5
one_shot = true
[node name="Recharge" type="Timer" parent="."]
wait_time = 0.5
one_shot = true

View file

@ -1,9 +1,8 @@
[gd_scene load_steps=88 format=3 uid="uid://cjiuycwqqxaxn"] [gd_scene load_steps=79 format=3 uid="uid://cjiuycwqqxaxn"]
[ext_resource type="Script" path="res://scripts/player.gd" id="1_oy25y"] [ext_resource type="Script" path="res://scripts/player.gd" id="1_oy25y"]
[ext_resource type="Texture2D" uid="uid://d4mjdwhmho5vs" path="res://assets/export/player-Layer 5.png" id="2_g0lnn"] [ext_resource type="Texture2D" uid="uid://d4mjdwhmho5vs" path="res://assets/export/player-Layer 5.png" id="2_g0lnn"]
[ext_resource type="AudioStream" uid="uid://cir5d1qi0hcev" path="res://assets/PlayerHurt.wav" id="3_ggoam"] [ext_resource type="AudioStream" uid="uid://cir5d1qi0hcev" path="res://assets/PlayerHurt.wav" id="3_ggoam"]
[ext_resource type="Texture2D" uid="uid://cv731yjx5v71a" path="res://assets/export/punch-.png" id="3_jp05m"]
[ext_resource type="AudioStream" uid="uid://du0f57xgcxuxf" path="res://assets/PlayerDeathSound.wav" id="4_8skcp"] [ext_resource type="AudioStream" uid="uid://du0f57xgcxuxf" path="res://assets/PlayerDeathSound.wav" id="4_8skcp"]
[ext_resource type="Texture2D" uid="uid://cliy3s4yykb3k" path="res://assets/export/health-.png" id="5_1x6di"] [ext_resource type="Texture2D" uid="uid://cliy3s4yykb3k" path="res://assets/export/health-.png" id="5_1x6di"]
@ -613,63 +612,6 @@ size = Vector2(28, 64)
[sub_resource type="RectangleShape2D" id="RectangleShape2D_mst3b"] [sub_resource type="RectangleShape2D" id="RectangleShape2D_mst3b"]
size = Vector2(27, 41) size = Vector2(27, 41)
[sub_resource type="AtlasTexture" id="AtlasTexture_1n7yn"]
atlas = ExtResource("3_jp05m")
region = Rect2(0, 0, 32, 32)
[sub_resource type="AtlasTexture" id="AtlasTexture_dtbdr"]
atlas = ExtResource("3_jp05m")
region = Rect2(32, 0, 32, 32)
[sub_resource type="AtlasTexture" id="AtlasTexture_dhtio"]
atlas = ExtResource("3_jp05m")
region = Rect2(64, 0, 32, 32)
[sub_resource type="AtlasTexture" id="AtlasTexture_t4yk0"]
atlas = ExtResource("3_jp05m")
region = Rect2(0, 32, 32, 32)
[sub_resource type="AtlasTexture" id="AtlasTexture_1emd7"]
atlas = ExtResource("3_jp05m")
region = Rect2(32, 32, 32, 32)
[sub_resource type="AtlasTexture" id="AtlasTexture_ccqcb"]
atlas = ExtResource("3_jp05m")
region = Rect2(64, 32, 32, 32)
[sub_resource type="AtlasTexture" id="AtlasTexture_g0kbm"]
atlas = ExtResource("3_jp05m")
region = Rect2(0, 64, 32, 32)
[sub_resource type="SpriteFrames" id="SpriteFrames_sbboq"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_1n7yn")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_dtbdr")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_dhtio")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_t4yk0")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_1emd7")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_ccqcb")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_g0kbm")
}],
"loop": true,
"name": &"default",
"speed": 10.0
}]
[sub_resource type="AtlasTexture" id="AtlasTexture_5bnwc"] [sub_resource type="AtlasTexture" id="AtlasTexture_5bnwc"]
atlas = ExtResource("5_1x6di") atlas = ExtResource("5_1x6di")
region = Rect2(128, 16, 64, 16) region = Rect2(128, 16, 64, 16)
@ -781,24 +723,6 @@ position = Vector2(29, -3)
shape = SubResource("RectangleShape2D_mst3b") shape = SubResource("RectangleShape2D_mst3b")
debug_color = Color(2.11775e-06, 0.631094, 0.465774, 0.42) debug_color = Color(2.11775e-06, 0.631094, 0.465774, 0.42)
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="PunchHitbox"]
texture_filter = 1
position = Vector2(26, -6)
sprite_frames = SubResource("SpriteFrames_sbboq")
metadata/_aseprite_wizard_config_ = {
"layer": "",
"o_ex_p": "",
"o_folder": "res://assets/export",
"o_name": "punch-",
"only_visible": true,
"slice": "",
"source": "res://assets/PunchVFX.aseprite"
}
metadata/_aseprite_wizard_interface_config_ = {
"output_section": true
}
metadata/_aseprite_wizard_source_file_hash_ = "4c71a20217ed605bc54873905f5606e3"
[node name="AttackTimer" type="Timer" parent="."] [node name="AttackTimer" type="Timer" parent="."]
editor_description = " editor_description = "

View file

@ -209,7 +209,6 @@ shape = SubResource("CircleShape2D_kpyhc")
debug_color = Color(0.972226, 0, 0.442516, 0.42) debug_color = Color(0.972226, 0, 0.442516, 0.42)
[node name="AttackTimer" type="Timer" parent="."] [node name="AttackTimer" type="Timer" parent="."]
wait_time = 0.5
one_shot = true one_shot = true
[node name="DeathTimer" type="Timer" parent="."] [node name="DeathTimer" type="Timer" parent="."]

View file

@ -6,14 +6,14 @@
[ext_resource type="PackedScene" uid="uid://cjiuycwqqxaxn" path="res://components/Player.tscn" id="2_sxo5w"] [ext_resource type="PackedScene" uid="uid://cjiuycwqqxaxn" path="res://components/Player.tscn" id="2_sxo5w"]
[ext_resource type="PackedScene" uid="uid://bab4ac3s2n0o1" path="res://components/Borders.tscn" id="3_04xvl"] [ext_resource type="PackedScene" uid="uid://bab4ac3s2n0o1" path="res://components/Borders.tscn" id="3_04xvl"]
[ext_resource type="PackedScene" uid="uid://bxbpvgteyfh02" path="res://components/Viruling.tscn" id="5_w7lww"] [ext_resource type="PackedScene" uid="uid://bxbpvgteyfh02" path="res://components/Viruling.tscn" id="5_w7lww"]
[ext_resource type="PackedScene" uid="uid://clptnshbcs6cn" path="res://components/Bars.tscn" id="6_u2jd3"] [ext_resource type="PackedScene" path="res://components/Bars.tscn" id="6_u2jd3"]
[ext_resource type="Texture2D" uid="uid://dailayr5c75eu" path="res://assets/export/top-bottom-.png" id="7_gw1ay"] [ext_resource type="Texture2D" uid="uid://dailayr5c75eu" path="res://assets/export/top-bottom-.png" id="7_gw1ay"]
[ext_resource type="Script" path="res://scripts/stage_1_spawner.gd" id="8_rl47p"] [ext_resource type="Script" path="res://scripts/level_1_spawner.gd" id="8_rl47p"]
[ext_resource type="Script" path="res://scripts/killbox.gd" id="10_oh0qe"] [ext_resource type="Script" path="res://scripts/killbox.gd" id="10_oh0qe"]
[ext_resource type="Texture2D" uid="uid://fnp2h8e01hi0" path="res://assets/export/go-.png" id="11_2n86p"] [ext_resource type="Texture2D" uid="uid://fnp2h8e01hi0" path="res://assets/export/go-.png" id="11_2n86p"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_h5wua"] [sub_resource type="RectangleShape2D" id="RectangleShape2D_h5wua"]
size = Vector2(485.25, 101) size = Vector2(492, 101)
[sub_resource type="RectangleShape2D" id="RectangleShape2D_wlwhn"] [sub_resource type="RectangleShape2D" id="RectangleShape2D_wlwhn"]
size = Vector2(46, 359) size = Vector2(46, 359)
@ -28,7 +28,6 @@ position = Vector2(-344, -240)
stream = ExtResource("2_qcnna") stream = ExtResource("2_qcnna")
[node name="Bars" parent="." instance=ExtResource("6_u2jd3")] [node name="Bars" parent="." instance=ExtResource("6_u2jd3")]
z_index = 1
offset_left = -344.0 offset_left = -344.0
offset_top = -240.0 offset_top = -240.0
offset_right = -304.0 offset_right = -304.0
@ -48,34 +47,7 @@ position = Vector2(-272, -240)
[node name="Floor" type="StaticBody2D" parent="."] [node name="Floor" type="StaticBody2D" parent="."]
[node name="Sprite2D" type="Sprite2D" parent="Floor"] [node name="Sprite2D" type="Sprite2D" parent="Floor"]
texture_filter = 1 z_index = 1
position = Vector2(-22.75, 70)
scale = Vector2(0.984663, 0.284722)
texture = ExtResource("7_gw1ay")
metadata/_aseprite_wizard_config_ = {
"i_mode": 1,
"keep_anim_length": false,
"layer": "",
"o_ex_p": "",
"o_folder": "res://assets/export",
"o_name": "top-bottom-",
"only_visible": true,
"player": "",
"slice": "",
"source": "res://assets/TopBottom.aseprite"
}
metadata/_aseprite_wizard_interface_config_ = {
"output_section": true
}
metadata/_aseprite_wizard_source_file_hash_ = "1b764edd2623a4481e3cf82f9aa840f7"
[node name="CollisionShape2D" type="CollisionShape2D" parent="Floor"]
position = Vector2(-24.25, 70)
shape = SubResource("RectangleShape2D_h5wua")
[node name="Ceiling" type="StaticBody2D" parent="."]
[node name="Sprite2D" type="Sprite2D" parent="Ceiling"]
texture_filter = 1 texture_filter = 1
position = Vector2(-28, -191) position = Vector2(-28, -191)
scale = Vector2(1, 0.283333) scale = Vector2(1, 0.283333)
@ -98,10 +70,39 @@ metadata/_aseprite_wizard_interface_config_ = {
} }
metadata/_aseprite_wizard_source_file_hash_ = "1b764edd2623a4481e3cf82f9aa840f7" metadata/_aseprite_wizard_source_file_hash_ = "1b764edd2623a4481e3cf82f9aa840f7"
[node name="CollisionShape2D" type="CollisionShape2D" parent="Ceiling"] [node name="CollisionShape2D" type="CollisionShape2D" parent="Floor"]
position = Vector2(-26.625, -190) position = Vector2(-28, 69)
shape = SubResource("RectangleShape2D_h5wua") shape = SubResource("RectangleShape2D_h5wua")
[node name="Ceiling" type="StaticBody2D" parent="."]
[node name="CollisionShape2D" type="CollisionShape2D" parent="Ceiling"]
position = Vector2(-29, -190)
shape = SubResource("RectangleShape2D_h5wua")
[node name="Sprite2D" type="Sprite2D" parent="Ceiling"]
z_index = 1
texture_filter = 1
position = Vector2(-28.5, 68.25)
scale = Vector2(0.99591, 0.284722)
texture = ExtResource("7_gw1ay")
metadata/_aseprite_wizard_config_ = {
"i_mode": 1,
"keep_anim_length": false,
"layer": "",
"o_ex_p": "",
"o_folder": "res://assets/export",
"o_name": "top-bottom-",
"only_visible": true,
"player": "",
"slice": "",
"source": "res://assets/TopBottom.aseprite"
}
metadata/_aseprite_wizard_interface_config_ = {
"output_section": true
}
metadata/_aseprite_wizard_source_file_hash_ = "1b764edd2623a4481e3cf82f9aa840f7"
[node name="Level1Spawner" type="Node2D" parent="."] [node name="Level1Spawner" type="Node2D" parent="."]
script = ExtResource("8_rl47p") script = ExtResource("8_rl47p")

View file

@ -1,18 +1,17 @@
[gd_scene load_steps=12 format=3 uid="uid://cnpspjqlc7b52"] [gd_scene load_steps=11 format=3 uid="uid://cnpspjqlc7b52"]
[ext_resource type="Script" path="res://scripts/stage_2_controller.gd" id="1_pqela"] [ext_resource type="Script" path="res://scripts/stage_2.gd" id="1_pqela"]
[ext_resource type="AudioStream" uid="uid://ce3soc3run6um" path="res://assets/Level1BGAudio.wav" id="2_v7wia"] [ext_resource type="AudioStream" uid="uid://ce3soc3run6um" path="res://assets/Level1BGAudio.wav" id="2_v7wia"]
[ext_resource type="PackedScene" uid="uid://clptnshbcs6cn" path="res://components/Bars.tscn" id="3_n5aqu"] [ext_resource type="PackedScene" path="res://components/Bars.tscn" id="3_n5aqu"]
[ext_resource type="Texture2D" uid="uid://bynsxkfd4t4cn" path="res://assets/export/stage1.png" id="4_d2h5p"] [ext_resource type="Texture2D" uid="uid://bynsxkfd4t4cn" path="res://assets/export/stage1.png" id="4_d2h5p"]
[ext_resource type="PackedScene" uid="uid://cjiuycwqqxaxn" path="res://components/Player.tscn" id="5_kc5l1"] [ext_resource type="PackedScene" uid="uid://cjiuycwqqxaxn" path="res://components/Player.tscn" id="5_kc5l1"]
[ext_resource type="PackedScene" uid="uid://bab4ac3s2n0o1" path="res://components/Borders.tscn" id="6_47554"] [ext_resource type="PackedScene" uid="uid://bab4ac3s2n0o1" path="res://components/Borders.tscn" id="6_47554"]
[ext_resource type="Texture2D" uid="uid://dailayr5c75eu" path="res://assets/export/top-bottom-.png" id="7_gl8tg"] [ext_resource type="Texture2D" uid="uid://dailayr5c75eu" path="res://assets/export/top-bottom-.png" id="7_gl8tg"]
[ext_resource type="Texture2D" uid="uid://fnp2h8e01hi0" path="res://assets/export/go-.png" id="8_usr2a"] [ext_resource type="Texture2D" uid="uid://fnp2h8e01hi0" path="res://assets/export/go-.png" id="8_usr2a"]
[ext_resource type="Script" path="res://scripts/stage_2_spawner.gd" id="9_2n06p"] [ext_resource type="Script" path="res://scripts/level_2_spawner.gd" id="9_2n06p"]
[ext_resource type="PackedScene" uid="uid://n65kl0jalqdt" path="res://components/Crawler.tscn" id="9_sqnor"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_6gxrd"] [sub_resource type="RectangleShape2D" id="RectangleShape2D_a73r6"]
size = Vector2(485.25, 129.5) size = Vector2(492, 144.5)
[node name="World" type="Node2D"] [node name="World" type="Node2D"]
position = Vector2(344, 241) position = Vector2(344, 241)
@ -24,7 +23,6 @@ position = Vector2(-344, -240)
stream = ExtResource("2_v7wia") stream = ExtResource("2_v7wia")
[node name="Bars" parent="." instance=ExtResource("3_n5aqu")] [node name="Bars" parent="." instance=ExtResource("3_n5aqu")]
z_index = 1
offset_left = -344.0 offset_left = -344.0
offset_top = -240.0 offset_top = -240.0
offset_right = -304.0 offset_right = -304.0
@ -37,11 +35,70 @@ scale = Vector2(1.01667, 1)
texture = ExtResource("4_d2h5p") texture = ExtResource("4_d2h5p")
[node name="Player" parent="." instance=ExtResource("5_kc5l1")] [node name="Player" parent="." instance=ExtResource("5_kc5l1")]
position = Vector2(-154, -43) position = Vector2(-247, -41)
[node name="Borders" parent="." instance=ExtResource("6_47554")] [node name="Borders" parent="." instance=ExtResource("6_47554")]
position = Vector2(-272, -240) position = Vector2(-272, -240)
[node name="Floor" type="StaticBody2D" parent="."]
[node name="Sprite2D" type="Sprite2D" parent="Floor"]
z_index = 1
texture_filter = 1
position = Vector2(-28, -168.5)
scale = Vector2(1, 0.408333)
texture = ExtResource("7_gl8tg")
flip_v = true
metadata/_aseprite_wizard_config_ = {
"i_mode": 1,
"keep_anim_length": false,
"layer": "",
"o_ex_p": "",
"o_folder": "res://assets/export",
"o_name": "top-bottom-",
"only_visible": true,
"player": "",
"slice": "",
"source": "res://assets/TopBottom.aseprite"
}
metadata/_aseprite_wizard_interface_config_ = {
"output_section": true
}
metadata/_aseprite_wizard_source_file_hash_ = "1b764edd2623a4481e3cf82f9aa840f7"
[node name="CollisionShape2D" type="CollisionShape2D" parent="Floor"]
position = Vector2(-28, 69)
shape = SubResource("RectangleShape2D_a73r6")
[node name="Ceiling" type="StaticBody2D" parent="."]
[node name="CollisionShape2D" type="CollisionShape2D" parent="Ceiling"]
position = Vector2(-29, -168.25)
shape = SubResource("RectangleShape2D_a73r6")
[node name="Sprite2D" type="Sprite2D" parent="Ceiling"]
z_index = 1
texture_filter = 1
position = Vector2(-28.5, 57.75)
scale = Vector2(0.99591, 0.343055)
texture = ExtResource("7_gl8tg")
metadata/_aseprite_wizard_config_ = {
"i_mode": 1,
"keep_anim_length": false,
"layer": "",
"o_ex_p": "",
"o_folder": "res://assets/export",
"o_name": "top-bottom-",
"only_visible": true,
"player": "",
"slice": "",
"source": "res://assets/TopBottom.aseprite"
}
metadata/_aseprite_wizard_interface_config_ = {
"output_section": true
}
metadata/_aseprite_wizard_source_file_hash_ = "1b764edd2623a4481e3cf82f9aa840f7"
[node name="GoArrow" type="Sprite2D" parent="."] [node name="GoArrow" type="Sprite2D" parent="."]
texture_filter = 1 texture_filter = 1
position = Vector2(174, -50) position = Vector2(174, -50)
@ -69,66 +126,3 @@ one_shot = true
[node name="Level2Spawner" type="Node2D" parent="."] [node name="Level2Spawner" type="Node2D" parent="."]
script = ExtResource("9_2n06p") script = ExtResource("9_2n06p")
[node name="Crawler2" parent="Level2Spawner" instance=ExtResource("9_sqnor")]
position = Vector2(-306, -39)
[node name="Crawler" parent="Level2Spawner" instance=ExtResource("9_sqnor")]
position = Vector2(307, -42)
[node name="Floor" type="StaticBody2D" parent="."]
[node name="Sprite2D" type="Sprite2D" parent="Floor"]
texture_filter = 1
position = Vector2(-22.75, 56.125)
scale = Vector2(0.984663, 0.361805)
texture = ExtResource("7_gl8tg")
metadata/_aseprite_wizard_config_ = {
"i_mode": 1,
"keep_anim_length": false,
"layer": "",
"o_ex_p": "",
"o_folder": "res://assets/export",
"o_name": "top-bottom-",
"only_visible": true,
"player": "",
"slice": "",
"source": "res://assets/TopBottom.aseprite"
}
metadata/_aseprite_wizard_interface_config_ = {
"output_section": true
}
metadata/_aseprite_wizard_source_file_hash_ = "1b764edd2623a4481e3cf82f9aa840f7"
[node name="CollisionShape2D" type="CollisionShape2D" parent="Floor"]
position = Vector2(-24.25, 55.75)
shape = SubResource("RectangleShape2D_6gxrd")
[node name="Ceiling" type="StaticBody2D" parent="."]
[node name="Sprite2D" type="Sprite2D" parent="Ceiling"]
texture_filter = 1
position = Vector2(-28, -177.5)
scale = Vector2(1, 0.358333)
texture = ExtResource("7_gl8tg")
flip_v = true
metadata/_aseprite_wizard_config_ = {
"i_mode": 1,
"keep_anim_length": false,
"layer": "",
"o_ex_p": "",
"o_folder": "res://assets/export",
"o_name": "top-bottom-",
"only_visible": true,
"player": "",
"slice": "",
"source": "res://assets/TopBottom.aseprite"
}
metadata/_aseprite_wizard_interface_config_ = {
"output_section": true
}
metadata/_aseprite_wizard_source_file_hash_ = "1b764edd2623a4481e3cf82f9aa840f7"
[node name="CollisionShape2D" type="CollisionShape2D" parent="Ceiling"]
position = Vector2(-24, -177)
shape = SubResource("RectangleShape2D_6gxrd")

View file

@ -12,9 +12,8 @@ config_version=5
config/name="claustrophemia" config/name="claustrophemia"
config/version="0.0.1" config/version="0.0.1"
run/main_scene="res://MainMenu.tscn" run/main_scene="res://levels/level1/stage1.tscn"
config/features=PackedStringArray("4.3", "Forward Plus") config/features=PackedStringArray("4.3", "Forward Plus")
boot_splash/bg_color=Color(0, 0, 0, 1)
boot_splash/show_image=false boot_splash/show_image=false
config/icon="res://icon.svg" config/icon="res://icon.svg"
@ -63,6 +62,11 @@ jump={
, 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":0,"physical_keycode":32,"key_label":0,"unicode":32,"location":0,"echo":false,"script":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":0,"physical_keycode":32,"key_label":0,"unicode":32,"location":0,"echo":false,"script":null)
] ]
} }
trigger_completed={
"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":0,"physical_keycode":4194323,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null)
]
}
toggle_fullscreen={ toggle_fullscreen={
"deadzone": 0.5, "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":0,"physical_keycode":4194342,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) "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":0,"physical_keycode":4194342,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null)

View file

@ -1,111 +1,3 @@
class_name Crawler extends Entity class_name Crawler extends Entity
@onready var player = get_parent().get_parent().get_node("Player");
@onready var sprite = $AnimatedSprite2D
@onready var main_collider = $CollisionShape2D
@onready var whip = $WhipArea
@onready var speed_mult = 0
@onready var is_dying = false
@onready var explosion_sfx = $ExplosionSFX
@onready var death_timer = $DeathTimer
@onready var hurting = false
@onready var hurt_timer = $HurtTimer
@onready var attack_timer = $AttackTimer
@onready var recharge_timer = $Recharge
## Crawl towards the player but stay within striking distance and not super close ## Crawl towards the player but stay within striking distance and not super close
const HEALTH = 45
const SPEED_MULTIPLIER = 50
const ATTACK_DAMAGE = 20
var death_timer_started = false
var attacking = true
func _init() -> void:
super._init(HEALTH, SPEED_MULTIPLIER, ATTACK_DAMAGE)
func _ready() -> void:
whip.visible = false
func face_player():
var player_position = player.global_position
var crawler_position = global_position
if player_position.x > crawler_position.x and not sprite.flip_h:
sprite.flip_h = true
main_collider.position.x -= 62
position.x += 62
whip.position.x += 10
elif player_position.x < crawler_position.x and sprite.flip_h:
sprite.flip_h = false
main_collider.position.x += 62
position.x -= 62
whip.position.x -= 10
func _physics_process(delta: float) -> void:
var distanceToPlayer = global_position.distance_to(player.global_position)
var desiredDistance = 70
if health <= 0 and !death_timer_started:
is_dying = true
death_timer_started = true
death_timer.start()
if !is_dying:
if !hurting:
if sprite.flip_h:
desiredDistance -= 69
face_player()
if distanceToPlayer > desiredDistance:
velocity.x = speed * speed_mult
face_player()
if not sprite.flip_h:
velocity.x *= -1
sprite.play("walk")
else:
if recharge_timer.is_stopped():
attacking = true
whip.visible = true
whip.connect("body_entered", whip_hit)
attack_timer.start()
if attacking and !attack_timer.is_stopped():
velocity.x = 0
sprite.play("Whip")
elif attacking and attack_timer.is_stopped():
recharge_timer.start()
whip.visible = false
whip.disconnect("body_entered", whip_hit)
attacking = false
if hurt_timer.is_stopped():
hurting = false
else:
sprite.play("jump back")
move_and_slide()
else:
sprite.play("death")
explosion_sfx.play()
speed_mult = 0
if death_timer.is_stopped():
queue_free()
func charge() -> void:
speed_mult = 1
func hurt_anim():
hurting = true
hurt_timer.start()
func whip_hit(node: Node) -> void:
if node is Player:
node.health -= ATTACK_DAMAGE
node.take_knockback(50)
if node.has_method("hurt_anim"):
node.call("hurt_anim")

View file

@ -1,21 +1,15 @@
extends Node2D extends Node2D
@onready var complete = false @onready var complete = false
@onready var wave_1 = [$Crawler, $Crawler2]
# Called when the node enters the scene tree for the first time. # Called when the node enters the scene tree for the first time.
func _ready() -> void: func _ready() -> void:
for crawler in wave_1: pass # Replace with function body.
crawler.charge()
# Called every frame. 'delta' is the elapsed time since the previous frame. # Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta: float) -> void: func _process(delta: float) -> void:
for crawler in wave_1: pass
if crawler.is_dying:
wave_1.erase(crawler)
if wave_1 == []:
complete = true
func is_complete() -> bool: func is_complete() -> bool:
return complete return complete

View file

@ -1,14 +0,0 @@
extends Control
@onready var start_button = $StartButton
@onready var exit_button = $ExitButton
func _ready() -> void:
start_button.button_down.connect(start_game)
exit_button.button_down.connect(exit_game)
func start_game() -> void:
get_tree().change_scene_to_file("res://levels/level1/stage1.tscn")
func exit_game() -> void:
get_tree().quit()

View file

@ -12,7 +12,6 @@ class_name Player extends Entity
@onready var player_death_sfx = $PlayerDeathSfx @onready var player_death_sfx = $PlayerDeathSfx
@onready var hurt_timer = $HurtTimer @onready var hurt_timer = $HurtTimer
@onready var health_bar = $HealthBar @onready var health_bar = $HealthBar
@onready var punch_vfx = $PunchHitbox/AnimatedSprite2D
var jumping = false var jumping = false
var facing_right = true var facing_right = true
@ -21,7 +20,7 @@ var hurting = false
var is_dying = false var is_dying = false
var is_death_sfx = false var is_death_sfx = false
const ATTACK_DAMAGE = 20 const ATTACK_DAMAGE = 25
const INITIAL_HEALTH = 50 const INITIAL_HEALTH = 50
const SPEED_MULTIPLIER = 300 const SPEED_MULTIPLIER = 300
const ATTACK_KNOCKBACK = 5000 const ATTACK_KNOCKBACK = 5000
@ -100,11 +99,10 @@ func _process(delta: float) -> void:
# Reset to start on death # Reset to start on death
if death_timer.is_stopped(): if death_timer.is_stopped():
get_tree().change_scene_to_file("res://MainMenu.tscn") get_tree().change_scene_to_file("res://levels/level1/stage1.tscn")
if attack_timer.is_stopped() and Input.is_action_just_pressed("attack"): if attack_timer.is_stopped() and Input.is_action_just_pressed("attack"):
attack_timer.start() attack_timer.start()
punch_vfx.play("default")
if is_on_floor(): if is_on_floor():
animated_sprite.play("Right" if right_punch else "Left") animated_sprite.play("Right" if right_punch else "Left")