diff --git a/assets/EnemyHurt.wav b/assets/EnemyHurt.wav new file mode 100644 index 0000000..42e0c1c Binary files /dev/null and b/assets/EnemyHurt.wav differ diff --git a/assets/EnemyHurt.wav.import b/assets/EnemyHurt.wav.import new file mode 100644 index 0000000..de3b942 --- /dev/null +++ b/assets/EnemyHurt.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://dxnxix8qrr6tq" +path="res://.godot/imported/EnemyHurt.wav-fb6c033455c8fd2c64ccfdf0c818a65a.sample" + +[deps] + +source_file="res://assets/EnemyHurt.wav" +dest_files=["res://.godot/imported/EnemyHurt.wav-fb6c033455c8fd2c64ccfdf0c818a65a.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=0 diff --git a/assets/Explode.wav b/assets/Explode.wav new file mode 100644 index 0000000..d7914f7 Binary files /dev/null and b/assets/Explode.wav differ diff --git a/assets/Explode.wav.import b/assets/Explode.wav.import new file mode 100644 index 0000000..cad34eb --- /dev/null +++ b/assets/Explode.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://dfrc2luquqqlw" +path="res://.godot/imported/Explode.wav-1025ed9a84beb2ef982eff388b1bbeea.sample" + +[deps] + +source_file="res://assets/Explode.wav" +dest_files=["res://.godot/imported/Explode.wav-1025ed9a84beb2ef982eff388b1bbeea.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=0 diff --git a/assets/Go.aseprite b/assets/Go.aseprite new file mode 100644 index 0000000..9f00c90 Binary files /dev/null and b/assets/Go.aseprite differ diff --git a/assets/Go.aseprite.import b/assets/Go.aseprite.import new file mode 100644 index 0000000..7b1613b --- /dev/null +++ b/assets/Go.aseprite.import @@ -0,0 +1,14 @@ +[remap] + +importer="aseprite_wizard.plugin.noop" +type="PackedDataContainer" +uid="uid://davrou2v4qw2i" +path="res://.godot/imported/Go.aseprite-25f8aee4e191af232eb3cbeb790ac21b.res" + +[deps] + +source_file="res://assets/Go.aseprite" +dest_files=["res://.godot/imported/Go.aseprite-25f8aee4e191af232eb3cbeb790ac21b.res"] + +[params] + diff --git a/assets/HealthBorder.aseprite b/assets/HealthBorder.aseprite new file mode 100644 index 0000000..bd70093 Binary files /dev/null and b/assets/HealthBorder.aseprite differ diff --git a/assets/HealthBorder.aseprite.import b/assets/HealthBorder.aseprite.import new file mode 100644 index 0000000..1101ecb --- /dev/null +++ b/assets/HealthBorder.aseprite.import @@ -0,0 +1,14 @@ +[remap] + +importer="aseprite_wizard.plugin.noop" +type="PackedDataContainer" +uid="uid://dgqr8sd2xeyni" +path="res://.godot/imported/HealthBorder.aseprite-114a2c214cb1e322dfa2a303d28a908a.res" + +[deps] + +source_file="res://assets/HealthBorder.aseprite" +dest_files=["res://.godot/imported/HealthBorder.aseprite-114a2c214cb1e322dfa2a303d28a908a.res"] + +[params] + diff --git a/assets/Level1BGAudio.wav b/assets/Level1BGAudio.wav new file mode 100644 index 0000000..4f8eeea Binary files /dev/null and b/assets/Level1BGAudio.wav differ diff --git a/assets/Level1BGAudio.wav.import b/assets/Level1BGAudio.wav.import new file mode 100644 index 0000000..2c28fba --- /dev/null +++ b/assets/Level1BGAudio.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://ce3soc3run6um" +path="res://.godot/imported/Level1BGAudio.wav-e7b60b70a4523876968adf4a6c8994a4.sample" + +[deps] + +source_file="res://assets/Level1BGAudio.wav" +dest_files=["res://.godot/imported/Level1BGAudio.wav-e7b60b70a4523876968adf4a6c8994a4.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=0 diff --git a/assets/PlayerCharacter.aseprite b/assets/PlayerCharacter.aseprite index e40f243..73a1b19 100644 Binary files a/assets/PlayerCharacter.aseprite and b/assets/PlayerCharacter.aseprite differ diff --git a/assets/PlayerDeathSound.wav b/assets/PlayerDeathSound.wav new file mode 100644 index 0000000..82221a1 Binary files /dev/null and b/assets/PlayerDeathSound.wav differ diff --git a/assets/PlayerDeathSound.wav.import b/assets/PlayerDeathSound.wav.import new file mode 100644 index 0000000..169d164 --- /dev/null +++ b/assets/PlayerDeathSound.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://du0f57xgcxuxf" +path="res://.godot/imported/PlayerDeathSound.wav-064911359937abe1fa0c8cddb7e84ea4.sample" + +[deps] + +source_file="res://assets/PlayerDeathSound.wav" +dest_files=["res://.godot/imported/PlayerDeathSound.wav-064911359937abe1fa0c8cddb7e84ea4.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=0 diff --git a/assets/PlayerHurt.wav b/assets/PlayerHurt.wav new file mode 100644 index 0000000..0bb8d41 Binary files /dev/null and b/assets/PlayerHurt.wav differ diff --git a/assets/PlayerHurt.wav.import b/assets/PlayerHurt.wav.import new file mode 100644 index 0000000..9e73e87 --- /dev/null +++ b/assets/PlayerHurt.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://cir5d1qi0hcev" +path="res://.godot/imported/PlayerHurt.wav-7dea0e9202985b5dd27d18b772b40ee2.sample" + +[deps] + +source_file="res://assets/PlayerHurt.wav" +dest_files=["res://.godot/imported/PlayerHurt.wav-7dea0e9202985b5dd27d18b772b40ee2.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=0 diff --git a/assets/TopBottom.aseprite b/assets/TopBottom.aseprite new file mode 100644 index 0000000..c3692c8 Binary files /dev/null and b/assets/TopBottom.aseprite differ diff --git a/assets/TopBottom.aseprite.import b/assets/TopBottom.aseprite.import new file mode 100644 index 0000000..2b510b1 --- /dev/null +++ b/assets/TopBottom.aseprite.import @@ -0,0 +1,14 @@ +[remap] + +importer="aseprite_wizard.plugin.noop" +type="PackedDataContainer" +uid="uid://crfosyduwl8ln" +path="res://.godot/imported/TopBottom.aseprite-4492d70b38a804feac46851918def1b1.res" + +[deps] + +source_file="res://assets/TopBottom.aseprite" +dest_files=["res://.godot/imported/TopBottom.aseprite-4492d70b38a804feac46851918def1b1.res"] + +[params] + diff --git a/assets/export/health-.png b/assets/export/health-.png new file mode 100644 index 0000000..85a4d7b Binary files /dev/null and b/assets/export/health-.png differ diff --git a/assets/export/health-.png.import b/assets/export/health-.png.import new file mode 100644 index 0000000..84aa347 --- /dev/null +++ b/assets/export/health-.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cliy3s4yykb3k" +path="res://.godot/imported/health-.png-4c2f44980382af653fa17687a74ed113.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/export/health-.png" +dest_files=["res://.godot/imported/health-.png-4c2f44980382af653fa17687a74ed113.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/export/top-bottom-.png b/assets/export/top-bottom-.png new file mode 100644 index 0000000..955d941 Binary files /dev/null and b/assets/export/top-bottom-.png differ diff --git a/assets/export/top-bottom-.png.import b/assets/export/top-bottom-.png.import new file mode 100644 index 0000000..34133d9 --- /dev/null +++ b/assets/export/top-bottom-.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dailayr5c75eu" +path="res://.godot/imported/top-bottom-.png-f040386dc0350eeaa8c2f46c3e11e100.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/export/top-bottom-.png" +dest_files=["res://.godot/imported/top-bottom-.png-f040386dc0350eeaa8c2f46c3e11e100.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/components/Player.tscn b/components/Player.tscn index 0c2b694..9100115 100644 --- a/components/Player.tscn +++ b/components/Player.tscn @@ -1,324 +1,453 @@ -[gd_scene load_steps=69 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="Texture2D" uid="uid://d4mjdwhmho5vs" path="res://assets/export/player-Layer 5.png" id="2_3onpl"] +[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://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"] -[sub_resource type="AtlasTexture" id="AtlasTexture_5rm71"] -atlas = ExtResource("2_3onpl") -region = Rect2(64, 64, 32, 64) - -[sub_resource type="AtlasTexture" id="AtlasTexture_jamhg"] -atlas = ExtResource("2_3onpl") -region = Rect2(64, 448, 32, 64) - -[sub_resource type="AtlasTexture" id="AtlasTexture_ofsgw"] -atlas = ExtResource("2_3onpl") -region = Rect2(96, 448, 32, 64) - -[sub_resource type="AtlasTexture" id="AtlasTexture_yp03j"] -atlas = ExtResource("2_3onpl") -region = Rect2(128, 448, 32, 64) - -[sub_resource type="AtlasTexture" id="AtlasTexture_qa0a4"] -atlas = ExtResource("2_3onpl") -region = Rect2(160, 448, 32, 64) - -[sub_resource type="AtlasTexture" id="AtlasTexture_p63im"] -atlas = ExtResource("2_3onpl") -region = Rect2(192, 448, 32, 64) - -[sub_resource type="AtlasTexture" id="AtlasTexture_tf3dj"] -atlas = ExtResource("2_3onpl") +[sub_resource type="AtlasTexture" id="AtlasTexture_l521r"] +atlas = ExtResource("2_g0lnn") region = Rect2(0, 0, 32, 64) -[sub_resource type="AtlasTexture" id="AtlasTexture_0cek1"] -atlas = ExtResource("2_3onpl") -region = Rect2(0, 384, 32, 64) - -[sub_resource type="AtlasTexture" id="AtlasTexture_xj08a"] -atlas = ExtResource("2_3onpl") -region = Rect2(32, 384, 32, 64) - -[sub_resource type="AtlasTexture" id="AtlasTexture_vtaxe"] -atlas = ExtResource("2_3onpl") -region = Rect2(64, 384, 32, 64) - -[sub_resource type="AtlasTexture" id="AtlasTexture_3pkk7"] -atlas = ExtResource("2_3onpl") -region = Rect2(96, 384, 32, 64) - -[sub_resource type="AtlasTexture" id="AtlasTexture_tuk3a"] -atlas = ExtResource("2_3onpl") -region = Rect2(128, 384, 32, 64) - -[sub_resource type="AtlasTexture" id="AtlasTexture_jxa3i"] -atlas = ExtResource("2_3onpl") -region = Rect2(160, 384, 32, 64) - -[sub_resource type="AtlasTexture" id="AtlasTexture_52xjq"] -atlas = ExtResource("2_3onpl") -region = Rect2(192, 384, 32, 64) - -[sub_resource type="AtlasTexture" id="AtlasTexture_8ljd1"] -atlas = ExtResource("2_3onpl") -region = Rect2(224, 384, 32, 64) - -[sub_resource type="AtlasTexture" id="AtlasTexture_pcd2c"] -atlas = ExtResource("2_3onpl") -region = Rect2(0, 448, 32, 64) - -[sub_resource type="AtlasTexture" id="AtlasTexture_7y6pf"] -atlas = ExtResource("2_3onpl") -region = Rect2(32, 448, 32, 64) - -[sub_resource type="AtlasTexture" id="AtlasTexture_oqfjm"] -atlas = ExtResource("2_3onpl") -region = Rect2(96, 320, 32, 64) - -[sub_resource type="AtlasTexture" id="AtlasTexture_rasii"] -atlas = ExtResource("2_3onpl") -region = Rect2(128, 320, 32, 64) - -[sub_resource type="AtlasTexture" id="AtlasTexture_smuq0"] -atlas = ExtResource("2_3onpl") -region = Rect2(160, 320, 32, 64) - -[sub_resource type="AtlasTexture" id="AtlasTexture_vqtny"] -atlas = ExtResource("2_3onpl") -region = Rect2(192, 320, 32, 64) - -[sub_resource type="AtlasTexture" id="AtlasTexture_aanm4"] -atlas = ExtResource("2_3onpl") -region = Rect2(224, 320, 32, 64) - -[sub_resource type="AtlasTexture" id="AtlasTexture_iuibj"] -atlas = ExtResource("2_3onpl") -region = Rect2(32, 0, 32, 64) - -[sub_resource type="AtlasTexture" id="AtlasTexture_s0gwv"] -atlas = ExtResource("2_3onpl") -region = Rect2(64, 0, 32, 64) - -[sub_resource type="AtlasTexture" id="AtlasTexture_rc3yv"] -atlas = ExtResource("2_3onpl") -region = Rect2(96, 0, 32, 64) - -[sub_resource type="AtlasTexture" id="AtlasTexture_310mq"] -atlas = ExtResource("2_3onpl") -region = Rect2(128, 0, 32, 64) - -[sub_resource type="AtlasTexture" id="AtlasTexture_4am2b"] -atlas = ExtResource("2_3onpl") -region = Rect2(160, 0, 32, 64) - -[sub_resource type="AtlasTexture" id="AtlasTexture_x8hc4"] -atlas = ExtResource("2_3onpl") -region = Rect2(192, 0, 32, 64) - -[sub_resource type="AtlasTexture" id="AtlasTexture_uv38i"] -atlas = ExtResource("2_3onpl") -region = Rect2(224, 0, 32, 64) - -[sub_resource type="AtlasTexture" id="AtlasTexture_usdlg"] -atlas = ExtResource("2_3onpl") -region = Rect2(0, 64, 32, 64) - -[sub_resource type="AtlasTexture" id="AtlasTexture_oagyd"] -atlas = ExtResource("2_3onpl") -region = Rect2(32, 64, 32, 64) - -[sub_resource type="AtlasTexture" id="AtlasTexture_8wqr8"] -atlas = ExtResource("2_3onpl") +[sub_resource type="AtlasTexture" id="AtlasTexture_qvttr"] +atlas = ExtResource("2_g0lnn") region = Rect2(32, 192, 32, 64) -[sub_resource type="AtlasTexture" id="AtlasTexture_pls5s"] -atlas = ExtResource("2_3onpl") +[sub_resource type="AtlasTexture" id="AtlasTexture_ofguw"] +atlas = ExtResource("2_g0lnn") region = Rect2(64, 192, 32, 64) -[sub_resource type="AtlasTexture" id="AtlasTexture_k24hx"] -atlas = ExtResource("2_3onpl") +[sub_resource type="AtlasTexture" id="AtlasTexture_co8k7"] +atlas = ExtResource("2_g0lnn") region = Rect2(96, 192, 32, 64) -[sub_resource type="AtlasTexture" id="AtlasTexture_wc60g"] -atlas = ExtResource("2_3onpl") +[sub_resource type="AtlasTexture" id="AtlasTexture_41d2d"] +atlas = ExtResource("2_g0lnn") region = Rect2(128, 192, 32, 64) -[sub_resource type="AtlasTexture" id="AtlasTexture_j6fn1"] -atlas = ExtResource("2_3onpl") +[sub_resource type="AtlasTexture" id="AtlasTexture_hbosn"] +atlas = ExtResource("2_g0lnn") region = Rect2(160, 192, 32, 64) -[sub_resource type="AtlasTexture" id="AtlasTexture_nmjeg"] -atlas = ExtResource("2_3onpl") +[sub_resource type="AtlasTexture" id="AtlasTexture_0km57"] +atlas = ExtResource("2_g0lnn") region = Rect2(192, 192, 32, 64) -[sub_resource type="AtlasTexture" id="AtlasTexture_byhmk"] -atlas = ExtResource("2_3onpl") +[sub_resource type="AtlasTexture" id="AtlasTexture_51sll"] +atlas = ExtResource("2_g0lnn") region = Rect2(224, 192, 32, 64) -[sub_resource type="AtlasTexture" id="AtlasTexture_770dj"] -atlas = ExtResource("2_3onpl") +[sub_resource type="AtlasTexture" id="AtlasTexture_px3nn"] +atlas = ExtResource("2_g0lnn") region = Rect2(128, 256, 32, 64) -[sub_resource type="AtlasTexture" id="AtlasTexture_grepc"] -atlas = ExtResource("2_3onpl") +[sub_resource type="AtlasTexture" id="AtlasTexture_ripko"] +atlas = ExtResource("2_g0lnn") region = Rect2(32, 320, 32, 64) -[sub_resource type="AtlasTexture" id="AtlasTexture_g5de2"] -atlas = ExtResource("2_3onpl") +[sub_resource type="AtlasTexture" id="AtlasTexture_561ig"] +atlas = ExtResource("2_g0lnn") region = Rect2(64, 320, 32, 64) -[sub_resource type="AtlasTexture" id="AtlasTexture_y0jgo"] -atlas = ExtResource("2_3onpl") +[sub_resource type="AtlasTexture" id="AtlasTexture_7js0p"] +atlas = ExtResource("2_g0lnn") region = Rect2(160, 256, 32, 64) -[sub_resource type="AtlasTexture" id="AtlasTexture_3pm06"] -atlas = ExtResource("2_3onpl") +[sub_resource type="AtlasTexture" id="AtlasTexture_wjcje"] +atlas = ExtResource("2_g0lnn") region = Rect2(192, 256, 32, 64) -[sub_resource type="AtlasTexture" id="AtlasTexture_36v0p"] -atlas = ExtResource("2_3onpl") +[sub_resource type="AtlasTexture" id="AtlasTexture_q2cd0"] +atlas = ExtResource("2_g0lnn") region = Rect2(224, 256, 32, 64) -[sub_resource type="AtlasTexture" id="AtlasTexture_lftgj"] -atlas = ExtResource("2_3onpl") +[sub_resource type="AtlasTexture" id="AtlasTexture_htmbl"] +atlas = ExtResource("2_g0lnn") region = Rect2(0, 320, 32, 64) -[sub_resource type="AtlasTexture" id="AtlasTexture_1p51i"] -atlas = ExtResource("2_3onpl") +[sub_resource type="AtlasTexture" id="AtlasTexture_rnxuc"] +atlas = ExtResource("2_g0lnn") +region = Rect2(64, 64, 32, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_wo1m8"] +atlas = ExtResource("2_g0lnn") +region = Rect2(64, 448, 32, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_fk6te"] +atlas = ExtResource("2_g0lnn") +region = Rect2(96, 448, 32, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_fbjir"] +atlas = ExtResource("2_g0lnn") +region = Rect2(128, 448, 32, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_3ihru"] +atlas = ExtResource("2_g0lnn") +region = Rect2(160, 448, 32, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_4jlds"] +atlas = ExtResource("2_g0lnn") +region = Rect2(192, 448, 32, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_81wn7"] +atlas = ExtResource("2_g0lnn") +region = Rect2(0, 384, 32, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_ufuyf"] +atlas = ExtResource("2_g0lnn") +region = Rect2(32, 384, 32, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_mf2dl"] +atlas = ExtResource("2_g0lnn") +region = Rect2(64, 384, 32, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_ke4ob"] +atlas = ExtResource("2_g0lnn") +region = Rect2(96, 384, 32, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_yt7ej"] +atlas = ExtResource("2_g0lnn") +region = Rect2(128, 384, 32, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_8ejvg"] +atlas = ExtResource("2_g0lnn") +region = Rect2(160, 384, 32, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_m3wjx"] +atlas = ExtResource("2_g0lnn") +region = Rect2(192, 384, 32, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_drf5o"] +atlas = ExtResource("2_g0lnn") +region = Rect2(224, 384, 32, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_jpfep"] +atlas = ExtResource("2_g0lnn") +region = Rect2(0, 448, 32, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_bwlrc"] +atlas = ExtResource("2_g0lnn") +region = Rect2(32, 448, 32, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_2txm3"] +atlas = ExtResource("2_g0lnn") +region = Rect2(96, 320, 32, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_uaysy"] +atlas = ExtResource("2_g0lnn") +region = Rect2(128, 320, 32, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_o7mn6"] +atlas = ExtResource("2_g0lnn") +region = Rect2(160, 320, 32, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_q0v0p"] +atlas = ExtResource("2_g0lnn") +region = Rect2(192, 320, 32, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_sv0e8"] +atlas = ExtResource("2_g0lnn") +region = Rect2(224, 320, 32, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_mbcqm"] +atlas = ExtResource("2_g0lnn") +region = Rect2(32, 0, 32, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_m8ku5"] +atlas = ExtResource("2_g0lnn") +region = Rect2(64, 0, 32, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_mdsdu"] +atlas = ExtResource("2_g0lnn") +region = Rect2(96, 0, 32, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_24k44"] +atlas = ExtResource("2_g0lnn") +region = Rect2(128, 0, 32, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_idj6d"] +atlas = ExtResource("2_g0lnn") +region = Rect2(160, 0, 32, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_gcw5r"] +atlas = ExtResource("2_g0lnn") +region = Rect2(192, 0, 32, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_cpkux"] +atlas = ExtResource("2_g0lnn") +region = Rect2(224, 0, 32, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_ht6wj"] +atlas = ExtResource("2_g0lnn") +region = Rect2(0, 64, 32, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_vlyrt"] +atlas = ExtResource("2_g0lnn") +region = Rect2(32, 64, 32, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_18fxb"] +atlas = ExtResource("2_g0lnn") region = Rect2(0, 256, 32, 64) -[sub_resource type="AtlasTexture" id="AtlasTexture_m71pv"] -atlas = ExtResource("2_3onpl") +[sub_resource type="AtlasTexture" id="AtlasTexture_6uboo"] +atlas = ExtResource("2_g0lnn") region = Rect2(32, 256, 32, 64) -[sub_resource type="AtlasTexture" id="AtlasTexture_krhxx"] -atlas = ExtResource("2_3onpl") +[sub_resource type="AtlasTexture" id="AtlasTexture_p16r1"] +atlas = ExtResource("2_g0lnn") region = Rect2(64, 256, 32, 64) -[sub_resource type="AtlasTexture" id="AtlasTexture_7fe2a"] -atlas = ExtResource("2_3onpl") +[sub_resource type="AtlasTexture" id="AtlasTexture_aewy4"] +atlas = ExtResource("2_g0lnn") region = Rect2(96, 256, 32, 64) -[sub_resource type="AtlasTexture" id="AtlasTexture_842j5"] -atlas = ExtResource("2_3onpl") +[sub_resource type="AtlasTexture" id="AtlasTexture_3q0vi"] +atlas = ExtResource("2_g0lnn") region = Rect2(96, 64, 32, 64) -[sub_resource type="AtlasTexture" id="AtlasTexture_q85y5"] -atlas = ExtResource("2_3onpl") +[sub_resource type="AtlasTexture" id="AtlasTexture_7te6v"] +atlas = ExtResource("2_g0lnn") region = Rect2(128, 64, 32, 64) -[sub_resource type="AtlasTexture" id="AtlasTexture_ugtgg"] -atlas = ExtResource("2_3onpl") +[sub_resource type="AtlasTexture" id="AtlasTexture_tfxjn"] +atlas = ExtResource("2_g0lnn") region = Rect2(160, 64, 32, 64) -[sub_resource type="AtlasTexture" id="AtlasTexture_8bm1c"] -atlas = ExtResource("2_3onpl") +[sub_resource type="AtlasTexture" id="AtlasTexture_rjqbd"] +atlas = ExtResource("2_g0lnn") region = Rect2(192, 64, 32, 64) -[sub_resource type="AtlasTexture" id="AtlasTexture_2hu87"] -atlas = ExtResource("2_3onpl") +[sub_resource type="AtlasTexture" id="AtlasTexture_dcng7"] +atlas = ExtResource("2_g0lnn") region = Rect2(224, 64, 32, 64) -[sub_resource type="AtlasTexture" id="AtlasTexture_wgg1r"] -atlas = ExtResource("2_3onpl") +[sub_resource type="AtlasTexture" id="AtlasTexture_ma1kj"] +atlas = ExtResource("2_g0lnn") region = Rect2(0, 128, 32, 64) -[sub_resource type="AtlasTexture" id="AtlasTexture_fsjxu"] -atlas = ExtResource("2_3onpl") +[sub_resource type="AtlasTexture" id="AtlasTexture_4mnk0"] +atlas = ExtResource("2_g0lnn") region = Rect2(32, 128, 32, 64) -[sub_resource type="AtlasTexture" id="AtlasTexture_8scku"] -atlas = ExtResource("2_3onpl") +[sub_resource type="AtlasTexture" id="AtlasTexture_uxup4"] +atlas = ExtResource("2_g0lnn") region = Rect2(64, 128, 32, 64) -[sub_resource type="AtlasTexture" id="AtlasTexture_f2w38"] -atlas = ExtResource("2_3onpl") +[sub_resource type="AtlasTexture" id="AtlasTexture_2c0ng"] +atlas = ExtResource("2_g0lnn") region = Rect2(96, 128, 32, 64) -[sub_resource type="AtlasTexture" id="AtlasTexture_vckuv"] -atlas = ExtResource("2_3onpl") +[sub_resource type="AtlasTexture" id="AtlasTexture_72rar"] +atlas = ExtResource("2_g0lnn") region = Rect2(128, 128, 32, 64) -[sub_resource type="AtlasTexture" id="AtlasTexture_c5tjt"] -atlas = ExtResource("2_3onpl") +[sub_resource type="AtlasTexture" id="AtlasTexture_be8t0"] +atlas = ExtResource("2_g0lnn") region = Rect2(160, 128, 32, 64) -[sub_resource type="AtlasTexture" id="AtlasTexture_7r7et"] -atlas = ExtResource("2_3onpl") +[sub_resource type="AtlasTexture" id="AtlasTexture_qypdu"] +atlas = ExtResource("2_g0lnn") region = Rect2(192, 128, 32, 64) -[sub_resource type="AtlasTexture" id="AtlasTexture_0a6bp"] -atlas = ExtResource("2_3onpl") +[sub_resource type="AtlasTexture" id="AtlasTexture_hay5m"] +atlas = ExtResource("2_g0lnn") region = Rect2(224, 128, 32, 64) -[sub_resource type="AtlasTexture" id="AtlasTexture_fojwj"] -atlas = ExtResource("2_3onpl") +[sub_resource type="AtlasTexture" id="AtlasTexture_3722o"] +atlas = ExtResource("2_g0lnn") region = Rect2(0, 192, 32, 64) -[sub_resource type="SpriteFrames" id="SpriteFrames_nn403"] +[sub_resource type="SpriteFrames" id="SpriteFrames_6noqu"] animations = [{ "frames": [{ "duration": 1.0, -"texture": SubResource("AtlasTexture_5rm71") +"texture": SubResource("AtlasTexture_l521r") }, { "duration": 1.0, -"texture": SubResource("AtlasTexture_jamhg") +"texture": SubResource("AtlasTexture_qvttr") }, { "duration": 1.0, -"texture": SubResource("AtlasTexture_ofsgw") +"texture": SubResource("AtlasTexture_ofguw") }, { "duration": 1.0, -"texture": SubResource("AtlasTexture_yp03j") +"texture": SubResource("AtlasTexture_co8k7") }, { "duration": 1.0, -"texture": SubResource("AtlasTexture_qa0a4") +"texture": SubResource("AtlasTexture_41d2d") }, { "duration": 1.0, -"texture": SubResource("AtlasTexture_yp03j") +"texture": SubResource("AtlasTexture_hbosn") }, { "duration": 1.0, -"texture": SubResource("AtlasTexture_p63im") +"texture": SubResource("AtlasTexture_0km57") }, { "duration": 1.0, -"texture": SubResource("AtlasTexture_5rm71") +"texture": SubResource("AtlasTexture_51sll") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_ofguw") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_qvttr") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_l521r") }], "loop": true, -"name": &"air-kick", +"name": &"Jump", "speed": 10.0 }, { "frames": [{ "duration": 1.0, -"texture": SubResource("AtlasTexture_tf3dj") +"texture": SubResource("AtlasTexture_px3nn") }, { "duration": 1.0, -"texture": SubResource("AtlasTexture_0cek1") +"texture": SubResource("AtlasTexture_ripko") }, { "duration": 1.0, -"texture": SubResource("AtlasTexture_xj08a") +"texture": SubResource("AtlasTexture_561ig") }, { "duration": 1.0, -"texture": SubResource("AtlasTexture_vtaxe") +"texture": SubResource("AtlasTexture_ripko") +}], +"loop": true, +"name": &"Left", +"speed": 10.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_px3nn") }, { "duration": 1.0, -"texture": SubResource("AtlasTexture_3pkk7") +"texture": SubResource("AtlasTexture_7js0p") }, { "duration": 1.0, -"texture": SubResource("AtlasTexture_tuk3a") +"texture": SubResource("AtlasTexture_wjcje") }, { "duration": 1.0, -"texture": SubResource("AtlasTexture_jxa3i") +"texture": SubResource("AtlasTexture_q2cd0") }, { "duration": 1.0, -"texture": SubResource("AtlasTexture_52xjq") +"texture": SubResource("AtlasTexture_htmbl") +}], +"loop": true, +"name": &"Right", +"speed": 10.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_rnxuc") }, { "duration": 1.0, -"texture": SubResource("AtlasTexture_8ljd1") +"texture": SubResource("AtlasTexture_wo1m8") }, { "duration": 1.0, -"texture": SubResource("AtlasTexture_pcd2c") +"texture": SubResource("AtlasTexture_fk6te") }, { "duration": 1.0, -"texture": SubResource("AtlasTexture_7y6pf") +"texture": SubResource("AtlasTexture_fbjir") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_3ihru") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_fbjir") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_4jlds") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_rnxuc") +}], +"loop": true, +"name": &"air kick", +"speed": 10.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_l521r") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_81wn7") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_ufuyf") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_mf2dl") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_ke4ob") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_yt7ej") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_8ejvg") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_m3wjx") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_drf5o") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_jpfep") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_bwlrc") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_bwlrc") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_bwlrc") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_bwlrc") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_bwlrc") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_bwlrc") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_bwlrc") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_bwlrc") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_bwlrc") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_bwlrc") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_bwlrc") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_bwlrc") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_bwlrc") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_bwlrc") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_bwlrc") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_bwlrc") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_bwlrc") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_bwlrc") }], "loop": true, "name": &"death", @@ -326,22 +455,22 @@ animations = [{ }, { "frames": [{ "duration": 1.0, -"texture": SubResource("AtlasTexture_oqfjm") +"texture": SubResource("AtlasTexture_2txm3") }, { "duration": 1.0, -"texture": SubResource("AtlasTexture_rasii") +"texture": SubResource("AtlasTexture_uaysy") }, { "duration": 1.0, -"texture": SubResource("AtlasTexture_smuq0") +"texture": SubResource("AtlasTexture_o7mn6") }, { "duration": 1.0, -"texture": SubResource("AtlasTexture_vqtny") +"texture": SubResource("AtlasTexture_q0v0p") }, { "duration": 1.0, -"texture": SubResource("AtlasTexture_aanm4") +"texture": SubResource("AtlasTexture_sv0e8") }, { "duration": 1.0, -"texture": SubResource("AtlasTexture_vqtny") +"texture": SubResource("AtlasTexture_q0v0p") }], "loop": true, "name": &"hurt", @@ -349,34 +478,34 @@ animations = [{ }, { "frames": [{ "duration": 1.0, -"texture": SubResource("AtlasTexture_tf3dj") +"texture": SubResource("AtlasTexture_l521r") }, { "duration": 1.0, -"texture": SubResource("AtlasTexture_iuibj") +"texture": SubResource("AtlasTexture_mbcqm") }, { "duration": 1.0, -"texture": SubResource("AtlasTexture_s0gwv") +"texture": SubResource("AtlasTexture_m8ku5") }, { "duration": 1.0, -"texture": SubResource("AtlasTexture_rc3yv") +"texture": SubResource("AtlasTexture_mdsdu") }, { "duration": 1.0, -"texture": SubResource("AtlasTexture_310mq") +"texture": SubResource("AtlasTexture_24k44") }, { "duration": 1.0, -"texture": SubResource("AtlasTexture_4am2b") +"texture": SubResource("AtlasTexture_idj6d") }, { "duration": 1.0, -"texture": SubResource("AtlasTexture_x8hc4") +"texture": SubResource("AtlasTexture_gcw5r") }, { "duration": 1.0, -"texture": SubResource("AtlasTexture_uv38i") +"texture": SubResource("AtlasTexture_cpkux") }, { "duration": 1.0, -"texture": SubResource("AtlasTexture_usdlg") +"texture": SubResource("AtlasTexture_ht6wj") }, { "duration": 1.0, -"texture": SubResource("AtlasTexture_oagyd") +"texture": SubResource("AtlasTexture_vlyrt") }], "loop": true, "name": &"idle", @@ -384,118 +513,43 @@ animations = [{ }, { "frames": [{ "duration": 1.0, -"texture": SubResource("AtlasTexture_tf3dj") +"texture": SubResource("AtlasTexture_l521r") }, { "duration": 1.0, -"texture": SubResource("AtlasTexture_8wqr8") +"texture": SubResource("AtlasTexture_qvttr") }, { "duration": 1.0, -"texture": SubResource("AtlasTexture_pls5s") +"texture": SubResource("AtlasTexture_ofguw") }, { "duration": 1.0, -"texture": SubResource("AtlasTexture_k24hx") +"texture": SubResource("AtlasTexture_41d2d") }, { "duration": 1.0, -"texture": SubResource("AtlasTexture_wc60g") +"texture": SubResource("AtlasTexture_hbosn") }, { "duration": 1.0, -"texture": SubResource("AtlasTexture_j6fn1") +"texture": SubResource("AtlasTexture_18fxb") }, { "duration": 1.0, -"texture": SubResource("AtlasTexture_nmjeg") +"texture": SubResource("AtlasTexture_6uboo") }, { "duration": 1.0, -"texture": SubResource("AtlasTexture_byhmk") +"texture": SubResource("AtlasTexture_p16r1") }, { "duration": 1.0, -"texture": SubResource("AtlasTexture_pls5s") +"texture": SubResource("AtlasTexture_p16r1") }, { "duration": 1.0, -"texture": SubResource("AtlasTexture_8wqr8") +"texture": SubResource("AtlasTexture_aewy4") }, { "duration": 1.0, -"texture": SubResource("AtlasTexture_tf3dj") -}], -"loop": true, -"name": &"jump", -"speed": 10.0 -}, { -"frames": [{ -"duration": 1.0, -"texture": SubResource("AtlasTexture_770dj") +"texture": SubResource("AtlasTexture_ofguw") }, { "duration": 1.0, -"texture": SubResource("AtlasTexture_grepc") +"texture": SubResource("AtlasTexture_qvttr") }, { "duration": 1.0, -"texture": SubResource("AtlasTexture_g5de2") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_grepc") -}], -"loop": true, -"name": &"left", -"speed": 10.0 -}, { -"frames": [{ -"duration": 1.0, -"texture": SubResource("AtlasTexture_770dj") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_y0jgo") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_3pm06") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_36v0p") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_lftgj") -}], -"loop": true, -"name": &"right", -"speed": 10.0 -}, { -"frames": [{ -"duration": 1.0, -"texture": SubResource("AtlasTexture_tf3dj") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_8wqr8") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_pls5s") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_wc60g") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_j6fn1") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_1p51i") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_m71pv") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_krhxx") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_krhxx") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_7fe2a") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_pls5s") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_8wqr8") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_tf3dj") +"texture": SubResource("AtlasTexture_l521r") }], "loop": true, "name": &"slam", @@ -503,49 +557,49 @@ animations = [{ }, { "frames": [{ "duration": 1.0, -"texture": SubResource("AtlasTexture_5rm71") +"texture": SubResource("AtlasTexture_rnxuc") }, { "duration": 1.0, -"texture": SubResource("AtlasTexture_842j5") +"texture": SubResource("AtlasTexture_3q0vi") }, { "duration": 1.0, -"texture": SubResource("AtlasTexture_q85y5") +"texture": SubResource("AtlasTexture_7te6v") }, { "duration": 1.0, -"texture": SubResource("AtlasTexture_ugtgg") +"texture": SubResource("AtlasTexture_tfxjn") }, { "duration": 1.0, -"texture": SubResource("AtlasTexture_8bm1c") +"texture": SubResource("AtlasTexture_rjqbd") }, { "duration": 1.0, -"texture": SubResource("AtlasTexture_2hu87") +"texture": SubResource("AtlasTexture_dcng7") }, { "duration": 1.0, -"texture": SubResource("AtlasTexture_wgg1r") +"texture": SubResource("AtlasTexture_ma1kj") }, { "duration": 1.0, -"texture": SubResource("AtlasTexture_fsjxu") +"texture": SubResource("AtlasTexture_4mnk0") }, { "duration": 1.0, -"texture": SubResource("AtlasTexture_8scku") +"texture": SubResource("AtlasTexture_uxup4") }, { "duration": 1.0, -"texture": SubResource("AtlasTexture_f2w38") +"texture": SubResource("AtlasTexture_2c0ng") }, { "duration": 1.0, -"texture": SubResource("AtlasTexture_vckuv") +"texture": SubResource("AtlasTexture_72rar") }, { "duration": 1.0, -"texture": SubResource("AtlasTexture_c5tjt") +"texture": SubResource("AtlasTexture_be8t0") }, { "duration": 1.0, -"texture": SubResource("AtlasTexture_7r7et") +"texture": SubResource("AtlasTexture_qypdu") }, { "duration": 1.0, -"texture": SubResource("AtlasTexture_0a6bp") +"texture": SubResource("AtlasTexture_hay5m") }, { "duration": 1.0, -"texture": SubResource("AtlasTexture_fojwj") +"texture": SubResource("AtlasTexture_3722o") }], "loop": true, "name": &"walk", @@ -558,21 +612,95 @@ size = Vector2(28, 64) [sub_resource type="RectangleShape2D" id="RectangleShape2D_mst3b"] size = Vector2(27, 41) +[sub_resource type="AtlasTexture" id="AtlasTexture_5bnwc"] +atlas = ExtResource("5_1x6di") +region = Rect2(128, 16, 64, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_og4rp"] +atlas = ExtResource("5_1x6di") +region = Rect2(0, 0, 64, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_03d4u"] +atlas = ExtResource("5_1x6di") +region = Rect2(64, 16, 64, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_sox5s"] +atlas = ExtResource("5_1x6di") +region = Rect2(0, 16, 64, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_o1ukw"] +atlas = ExtResource("5_1x6di") +region = Rect2(128, 0, 64, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_5qc6y"] +atlas = ExtResource("5_1x6di") +region = Rect2(64, 0, 64, 16) + +[sub_resource type="SpriteFrames" id="SpriteFrames_tbw5i"] +animations = [{ +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_5bnwc") +}], +"loop": true, +"name": &"0", +"speed": 10.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_og4rp") +}], +"loop": true, +"name": &"100", +"speed": 10.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_03d4u") +}], +"loop": true, +"name": &"20", +"speed": 10.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_sox5s") +}], +"loop": true, +"name": &"40", +"speed": 10.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_o1ukw") +}], +"loop": true, +"name": &"60", +"speed": 10.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_5qc6y") +}], +"loop": true, +"name": &"80", +"speed": 10.0 +}] + [node name="Player" type="CharacterBody2D"] collision_mask = 3 script = ExtResource("1_oy25y") [node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."] texture_filter = 1 -sprite_frames = SubResource("SpriteFrames_nn403") -animation = &"slam" -frame_progress = 0.564864 +sprite_frames = SubResource("SpriteFrames_6noqu") +animation = &"death" metadata/_aseprite_wizard_config_ = { "layer": "Layer 5", "o_ex_p": "", "o_folder": "res://assets/export", "o_name": "player-", -"only_visible": true, +"only_visible": false, "slice": "", "source": "res://assets/PlayerCharacter.aseprite" } @@ -581,7 +709,7 @@ metadata/_aseprite_wizard_interface_config_ = { "output_section": true, "slice_section": false } -metadata/_aseprite_wizard_source_file_hash_ = "1296d7aa2023121d72861630c3041e8c" +metadata/_aseprite_wizard_source_file_hash_ = "9b87e116b10fe7a61dc017b05e385632" [node name="CollisionShape2D" type="CollisionShape2D" parent="."] position = Vector2(2, 0) @@ -603,4 +731,36 @@ wait_time = 0.5 one_shot = true [node name="DeathTimer" type="Timer" parent="."] +wait_time = 2.7 one_shot = true + +[node name="HurtTimer" type="Timer" parent="."] +wait_time = 0.6 +one_shot = true + +[node name="PlayerHurtSfx" type="AudioStreamPlayer2D" parent="."] +stream = ExtResource("3_ggoam") + +[node name="PlayerDeathSfx" type="AudioStreamPlayer2D" parent="."] +stream = ExtResource("4_8skcp") +volume_db = 2.0 + +[node name="HealthBar" type="AnimatedSprite2D" parent="."] +texture_filter = 1 +position = Vector2(0, -41) +sprite_frames = SubResource("SpriteFrames_tbw5i") +animation = &"100" +metadata/_aseprite_wizard_config_ = { +"layer": "", +"o_ex_p": "", +"o_folder": "res://assets/export", +"o_name": "health-", +"only_visible": true, +"slice": "", +"source": "res://assets/HealthBorder.aseprite" +} +metadata/_aseprite_wizard_interface_config_ = { +"layer_section": false, +"output_section": true +} +metadata/_aseprite_wizard_source_file_hash_ = "72e00fdcd91dac701215afc35f081aa5" diff --git a/components/Viruling.tscn b/components/Viruling.tscn index 113583f..15e84ef 100644 --- a/components/Viruling.tscn +++ b/components/Viruling.tscn @@ -1,7 +1,8 @@ -[gd_scene load_steps=27 format=3 uid="uid://bxbpvgteyfh02"] +[gd_scene load_steps=28 format=3 uid="uid://bxbpvgteyfh02"] [ext_resource type="Script" path="res://scripts/viruling.gd" id="1_eevnl"] [ext_resource type="Texture2D" uid="uid://djjun1p0rx1ap" path="res://assets/export/viruling-.png" id="1_i45rj"] +[ext_resource type="AudioStream" uid="uid://dfrc2luquqqlw" path="res://assets/Explode.wav" id="3_hno7f"] [sub_resource type="CircleShape2D" id="CircleShape2D_gi7h4"] radius = 17.0294 @@ -213,3 +214,7 @@ one_shot = true [node name="DeathTimer" type="Timer" parent="."] wait_time = 0.55 one_shot = true + +[node name="ExplosionSFX" type="AudioStreamPlayer2D" parent="."] +stream = ExtResource("3_hno7f") +volume_db = 10.0 diff --git a/levels/level1/sta1910.tmp b/levels/level1/sta1910.tmp new file mode 100644 index 0000000..894352c --- /dev/null +++ b/levels/level1/sta1910.tmp @@ -0,0 +1,121 @@ +[gd_scene load_steps=10 format=3 uid="uid://cei5gjgfoginb"] + +[ext_resource type="Script" path="res://scripts/stageController.gd" id="1_m1n7w"] +[ext_resource type="Texture2D" uid="uid://bynsxkfd4t4cn" path="res://assets/export/stage1.png" id="2_48003"] +[ext_resource type="AudioStream" uid="uid://ce3soc3run6um" path="res://assets/Level1BGAudio.wav" id="2_qcnna"] +[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://bxbpvgteyfh02" path="res://components/Viruling.tscn" id="5_w7lww"] +[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"] + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_h5wua"] +size = Vector2(492, 101) + +[node name="World" type="Node2D"] +position = Vector2(344, 240) +script = ExtResource("1_m1n7w") +next_stage = "res://levels/level1/stage2.tscn" + +[node name="BGM" type="AudioStreamPlayer2D" parent="."] +position = Vector2(-344, -240) +stream = ExtResource("2_qcnna") + +[node name="Bars" parent="." instance=ExtResource("6_u2jd3")] +offset_left = -344.0 +offset_top = -240.0 +offset_right = -304.0 +offset_bottom = -200.0 + +[node name="Background" type="Sprite2D" parent="."] +position = Vector2(-28, -64) +scale = Vector2(1.01667, 1) +texture = ExtResource("2_48003") + +[node name="Player" parent="." instance=ExtResource("2_sxo5w")] +position = Vector2(-233, -21) + +[node name="Borders" parent="." instance=ExtResource("3_04xvl")] +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, -191) +scale = Vector2(1, 0.283333) +texture = ExtResource("7_gw1ay") +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_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="Viruling" parent="Level1Spawner" instance=ExtResource("5_w7lww")] +position = Vector2(528, -55) + +[node name="Viruling7" parent="Level1Spawner" instance=ExtResource("5_w7lww")] +position = Vector2(827, 6) + +[node name="Viruling6" parent="Level1Spawner" instance=ExtResource("5_w7lww")] +position = Vector2(923, -27) + +[node name="Viruling5" parent="Level1Spawner" instance=ExtResource("5_w7lww")] +position = Vector2(727, -3) + +[node name="Viruling4" parent="Level1Spawner" instance=ExtResource("5_w7lww")] +position = Vector2(431, -41) + +[node name="Viruling3" parent="Level1Spawner" instance=ExtResource("5_w7lww")] +position = Vector2(334, -4) + +[node name="Viruling2" parent="Level1Spawner" instance=ExtResource("5_w7lww")] +position = Vector2(627, -33) diff --git a/levels/level1/stage1.tscn b/levels/level1/stage1.tscn index 7932815..894352c 100644 --- a/levels/level1/stage1.tscn +++ b/levels/level1/stage1.tscn @@ -1,14 +1,13 @@ -[gd_scene load_steps=9 format=3 uid="uid://cei5gjgfoginb"] +[gd_scene load_steps=10 format=3 uid="uid://cei5gjgfoginb"] [ext_resource type="Script" path="res://scripts/stageController.gd" id="1_m1n7w"] [ext_resource type="Texture2D" uid="uid://bynsxkfd4t4cn" path="res://assets/export/stage1.png" id="2_48003"] +[ext_resource type="AudioStream" uid="uid://ce3soc3run6um" path="res://assets/Level1BGAudio.wav" id="2_qcnna"] [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://bxbpvgteyfh02" path="res://components/Viruling.tscn" id="5_w7lww"] -[ext_resource type="PackedScene" uid="uid://clptnshbcs6cn" path="res://components/Bars.tscn" id="6_u2jd3"] - -[sub_resource type="QuadMesh" id="QuadMesh_seics"] -size = Vector2(480, 64) +[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"] [sub_resource type="RectangleShape2D" id="RectangleShape2D_h5wua"] size = Vector2(492, 101) @@ -18,6 +17,10 @@ position = Vector2(344, 240) script = ExtResource("1_m1n7w") next_stage = "res://levels/level1/stage2.tscn" +[node name="BGM" type="AudioStreamPlayer2D" parent="."] +position = Vector2(-344, -240) +stream = ExtResource("2_qcnna") + [node name="Bars" parent="." instance=ExtResource("6_u2jd3")] offset_left = -344.0 offset_top = -240.0 @@ -29,36 +32,37 @@ position = Vector2(-28, -64) scale = Vector2(1.01667, 1) texture = ExtResource("2_48003") +[node name="Player" parent="." instance=ExtResource("2_sxo5w")] +position = Vector2(-233, -21) + [node name="Borders" parent="." instance=ExtResource("3_04xvl")] position = Vector2(-272, -240) -[node name="Player" parent="." instance=ExtResource("2_sxo5w")] -position = Vector2(-240, -16) - -[node name="Viruling" parent="." instance=ExtResource("5_w7lww")] -position = Vector2(440, -96) - -[node name="Viruling2" parent="." instance=ExtResource("5_w7lww")] -position = Vector2(240, -48) - -[node name="Viruling2" parent="Viruling2" instance=ExtResource("5_w7lww")] -position = Vector2(72, 40) - -[node name="Viruling3" parent="." instance=ExtResource("5_w7lww")] -position = Vector2(424, -32) - -[node name="Viruling4" parent="." instance=ExtResource("5_w7lww")] -position = Vector2(320, -104) - -[node name="Viruling2" parent="Viruling4" instance=ExtResource("5_w7lww")] -position = Vector2(240, -48) - [node name="Floor" type="StaticBody2D" parent="."] -[node name="MeshInstance2D" type="MeshInstance2D" parent="Floor"] -position = Vector2(-28, 68) -scale = Vector2(1.01667, 1.625) -mesh = SubResource("QuadMesh_seics") +[node name="Sprite2D" type="Sprite2D" parent="Floor"] +z_index = 1 +texture_filter = 1 +position = Vector2(-28, -191) +scale = Vector2(1, 0.283333) +texture = ExtResource("7_gw1ay") +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) @@ -66,11 +70,52 @@ shape = SubResource("RectangleShape2D_h5wua") [node name="Ceiling" type="StaticBody2D" parent="."] -[node name="MeshInstance2D" type="MeshInstance2D" parent="Ceiling"] -position = Vector2(-28, -192) -scale = Vector2(1.01667, 1.625) -mesh = SubResource("QuadMesh_seics") - [node name="CollisionShape2D" type="CollisionShape2D" parent="Ceiling"] -position = Vector2(-30, -189.5) +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="Viruling" parent="Level1Spawner" instance=ExtResource("5_w7lww")] +position = Vector2(528, -55) + +[node name="Viruling7" parent="Level1Spawner" instance=ExtResource("5_w7lww")] +position = Vector2(827, 6) + +[node name="Viruling6" parent="Level1Spawner" instance=ExtResource("5_w7lww")] +position = Vector2(923, -27) + +[node name="Viruling5" parent="Level1Spawner" instance=ExtResource("5_w7lww")] +position = Vector2(727, -3) + +[node name="Viruling4" parent="Level1Spawner" instance=ExtResource("5_w7lww")] +position = Vector2(431, -41) + +[node name="Viruling3" parent="Level1Spawner" instance=ExtResource("5_w7lww")] +position = Vector2(334, -4) + +[node name="Viruling2" parent="Level1Spawner" instance=ExtResource("5_w7lww")] +position = Vector2(627, -33) diff --git a/scripts/health_bar.gd b/scripts/health_bar.gd new file mode 100644 index 0000000..2b8ac21 --- /dev/null +++ b/scripts/health_bar.gd @@ -0,0 +1,11 @@ +extends MeshInstance2D + +@onready var border_sprite = $Border + +# Called when the node enters the scene tree for the first time. +func _ready() -> void: + pass # Replace with function body. + +# Called every frame. 'delta' is the elapsed time since the previous frame. +func _process(delta: float) -> void: + pass diff --git a/scripts/player.gd b/scripts/player.gd index c935c3d..2c86b1b 100644 --- a/scripts/player.gd +++ b/scripts/player.gd @@ -8,15 +8,20 @@ extends Entity @onready var collider = $CollisionShape2D @onready var punch_hitbox = $PunchHitbox @onready var death_timer = $DeathTimer +@onready var player_hurt_sfx = $PlayerHurtSfx +@onready var player_death_sfx = $PlayerDeathSfx +@onready var hurt_timer = $HurtTimer +@onready var health_bar = $HealthBar var jumping = false var facing_right = true var right_punch = false var hurting = false var is_dying = false +var is_death_sfx = false const ATTACK_DAMAGE = 25 -const INITIAL_HEALTH = 100 +const INITIAL_HEALTH = 50 const SPEED_MULTIPLIER = 300 const ATTACK_KNOCKBACK = 5000 @@ -44,6 +49,11 @@ func _physics_process(delta): if velocity.y > 1000: velocity.y = 1000 + if is_dying and !player_death_sfx.playing: + player_death_sfx.play() + elif hurting and !player_hurt_sfx.playing and death_timer.is_stopped(): + player_hurt_sfx.play() + # perform horizontal movement var horizontal_direction = Input.get_axis("move_left", "move_right") velocity.x = speed * horizontal_direction @@ -60,17 +70,8 @@ func _physics_process(delta): if horizontal_direction != 0: facing_right = horizontal_direction > 0 - # figure out which animation should be played - # respecting the jump animation above all - if !jumping and !hurting and attack_timer.is_stopped(): - if is_on_floor() && horizontal_direction != 0: - animated_sprite.play("walk") - else: - animated_sprite.play("idle") - super._physics_process(delta) - punch_hitbox.visible = true if !attack_timer.is_stopped() else false func punch_connect(node: Node): @@ -82,12 +83,7 @@ func punch_connect(node: Node): func hurt_anim(): hurting = true - animated_sprite.play("hurt") - animated_sprite.animation_finished.connect(disable_hurt) - -func disable_hurt(): - hurting = false - animated_sprite.animation_finished.disconnect(disable_hurt) + hurt_timer.start() func _process(delta: float) -> void: if health <= 0: @@ -96,6 +92,7 @@ func _process(delta: float) -> void: health = 99999 if is_dying: + animated_sprite.play("death") punch_hitbox.visible = false speed = 0 @@ -107,7 +104,32 @@ func _process(delta: float) -> void: attack_timer.start() if is_on_floor(): - animated_sprite.play("right" if right_punch else "left") + animated_sprite.play("Right" if right_punch else "Left") right_punch = !right_punch else: animated_sprite.play("slam") + + elif attack_timer.is_stopped() and !hurting and !is_dying and !jumping: + var horizontal_direction = Input.get_axis("move_left", "move_right") + if is_on_floor() && horizontal_direction != 0: + animated_sprite.play("walk") + else: + animated_sprite.play("idle") + + if !hurt_timer.is_stopped(): + animated_sprite.play("hurt") + else: + hurting = false + + var health_percentage = health * 100 / INITIAL_HEALTH + if is_dying: + health_bar.play("0") + elif health_percentage > 80: + health_bar.play("100") + elif health_percentage > 60: + health_bar.play("80") + elif health_percentage > 40: + health_bar.play("40") + elif health_percentage > 20: + health_bar.play("20") + diff --git a/scripts/stageController.gd b/scripts/stageController.gd index 248991c..297ca8c 100644 --- a/scripts/stageController.gd +++ b/scripts/stageController.gd @@ -5,6 +5,7 @@ var completed = false; @onready var right_border = $Borders/Right/CollisionShape2D; @onready var right_trigger = $Borders/Right/Trigger; +@onready var bgm = $BGM func _process(delta: float) -> void: if Input.is_action_just_pressed("trigger_completed"): @@ -14,5 +15,8 @@ func _process(delta: float) -> void: right_border.shape = null right_trigger.body_entered.connect(_on_trigger) + if !bgm.playing: + bgm.play() + func _on_trigger(body: Node) -> void: get_tree().change_scene_to_file(next_stage) diff --git a/scripts/viruling.gd b/scripts/viruling.gd index 18e5bd7..a24562b 100644 --- a/scripts/viruling.gd +++ b/scripts/viruling.gd @@ -6,6 +6,7 @@ extends Entity; @onready var collision_shape = collider.shape @onready var attack_timer = $AttackTimer @onready var death_timer = $DeathTimer +@onready var explosion_sfx = $ExplosionSFX var is_dying = false const SPEED_MULTIPLIER = 100 @@ -38,7 +39,9 @@ func _process(delta: float) -> void: health = 99999 if is_dying: + animated_sprite.play("death") + explosion_sfx.play() contact_hitbox.visible = false speed = 0