Merge pull request 'viable :)' (#3) from abstralexis/gmtk-2024:main into main
Reviewed-on: #3
BIN
Viruling.png
Normal file
After Width: | Height: | Size: 862 B |
|
@ -2,16 +2,16 @@
|
|||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://dp6yumdudwpwh"
|
||||
path="res://.godot/imported/icon.svg-218a8f2b3041327d8a5756f3a245f83b.ctex"
|
||||
uid="uid://c6t1kvgqxw41"
|
||||
path="res://.godot/imported/Viruling.png-5d3cd601c37eed748f0f12753f50a57d.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://icon.svg"
|
||||
dest_files=["res://.godot/imported/icon.svg-218a8f2b3041327d8a5756f3a245f83b.ctex"]
|
||||
source_file="res://Viruling.png"
|
||||
dest_files=["res://.godot/imported/Viruling.png-5d3cd601c37eed748f0f12753f50a57d.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
|
@ -32,6 +32,3 @@ process/hdr_as_srgb=false
|
|||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
svg/scale=1.0
|
||||
editor/scale_with_editor_scale=false
|
||||
editor/convert_colors_with_editor_theme=false
|
BIN
assets/BossDeath.wav
Normal file
24
assets/BossDeath.wav.import
Normal file
|
@ -0,0 +1,24 @@
|
|||
[remap]
|
||||
|
||||
importer="wav"
|
||||
type="AudioStreamWAV"
|
||||
uid="uid://b8ma022qh77r4"
|
||||
path="res://.godot/imported/BossDeath.wav-fa0a8d6f4ca7fd9b743724f33f88cb7b.sample"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/BossDeath.wav"
|
||||
dest_files=["res://.godot/imported/BossDeath.wav-fa0a8d6f4ca7fd9b743724f33f88cb7b.sample"]
|
||||
|
||||
[params]
|
||||
|
||||
force/8_bit=false
|
||||
force/mono=false
|
||||
force/max_rate=false
|
||||
force/max_rate_hz=44100
|
||||
edit/trim=false
|
||||
edit/normalize=false
|
||||
edit/loop_mode=0
|
||||
edit/loop_begin=0
|
||||
edit/loop_end=-1
|
||||
compress/mode=0
|
BIN
assets/BossHurt.wav
Normal file
24
assets/BossHurt.wav.import
Normal file
|
@ -0,0 +1,24 @@
|
|||
[remap]
|
||||
|
||||
importer="wav"
|
||||
type="AudioStreamWAV"
|
||||
uid="uid://cnmafa4b6u74p"
|
||||
path="res://.godot/imported/BossHurt.wav-eaaac76384c014124d3b7e9b32e908ce.sample"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/BossHurt.wav"
|
||||
dest_files=["res://.godot/imported/BossHurt.wav-eaaac76384c014124d3b7e9b32e908ce.sample"]
|
||||
|
||||
[params]
|
||||
|
||||
force/8_bit=false
|
||||
force/mono=false
|
||||
force/max_rate=false
|
||||
force/max_rate_hz=44100
|
||||
edit/trim=false
|
||||
edit/normalize=false
|
||||
edit/loop_mode=0
|
||||
edit/loop_begin=0
|
||||
edit/loop_end=-1
|
||||
compress/mode=0
|
BIN
assets/BossIntroMusic.wav
Normal file
24
assets/BossIntroMusic.wav.import
Normal file
|
@ -0,0 +1,24 @@
|
|||
[remap]
|
||||
|
||||
importer="wav"
|
||||
type="AudioStreamWAV"
|
||||
uid="uid://d37cinthwqhf7"
|
||||
path="res://.godot/imported/BossIntroMusic.wav-33288472673dc957cd89887e73d90336.sample"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/BossIntroMusic.wav"
|
||||
dest_files=["res://.godot/imported/BossIntroMusic.wav-33288472673dc957cd89887e73d90336.sample"]
|
||||
|
||||
[params]
|
||||
|
||||
force/8_bit=false
|
||||
force/mono=false
|
||||
force/max_rate=false
|
||||
force/max_rate_hz=44100
|
||||
edit/trim=false
|
||||
edit/normalize=false
|
||||
edit/loop_mode=0
|
||||
edit/loop_begin=0
|
||||
edit/loop_end=-1
|
||||
compress/mode=0
|
BIN
assets/BossMusicLoop.wav
Normal file
24
assets/BossMusicLoop.wav.import
Normal file
|
@ -0,0 +1,24 @@
|
|||
[remap]
|
||||
|
||||
importer="wav"
|
||||
type="AudioStreamWAV"
|
||||
uid="uid://cnp62dnwbxnp8"
|
||||
path="res://.godot/imported/BossMusicLoop.wav-66cd282f6e4ded0eea46ef96dd3d81e6.sample"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/BossMusicLoop.wav"
|
||||
dest_files=["res://.godot/imported/BossMusicLoop.wav-66cd282f6e4ded0eea46ef96dd3d81e6.sample"]
|
||||
|
||||
[params]
|
||||
|
||||
force/8_bit=false
|
||||
force/mono=false
|
||||
force/max_rate=false
|
||||
force/max_rate_hz=44100
|
||||
edit/trim=false
|
||||
edit/normalize=false
|
||||
edit/loop_mode=0
|
||||
edit/loop_begin=0
|
||||
edit/loop_end=-1
|
||||
compress/mode=0
|
BIN
assets/PunchVFX.aseprite
Normal file
14
assets/PunchVFX.aseprite.import
Normal file
|
@ -0,0 +1,14 @@
|
|||
[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/SpawnMinions.wav
Normal file
24
assets/SpawnMinions.wav.import
Normal file
|
@ -0,0 +1,24 @@
|
|||
[remap]
|
||||
|
||||
importer="wav"
|
||||
type="AudioStreamWAV"
|
||||
uid="uid://cmyg0u83rcuq6"
|
||||
path="res://.godot/imported/SpawnMinions.wav-48d48c5e4ba8fc0fba518139f80d9bb8.sample"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/SpawnMinions.wav"
|
||||
dest_files=["res://.godot/imported/SpawnMinions.wav-48d48c5e4ba8fc0fba518139f80d9bb8.sample"]
|
||||
|
||||
[params]
|
||||
|
||||
force/8_bit=false
|
||||
force/mono=false
|
||||
force/max_rate=false
|
||||
force/max_rate_hz=44100
|
||||
edit/trim=false
|
||||
edit/normalize=false
|
||||
edit/loop_mode=0
|
||||
edit/loop_begin=0
|
||||
edit/loop_end=-1
|
||||
compress/mode=0
|
BIN
assets/export/boss-.png
Normal file
After Width: | Height: | Size: 72 KiB |
34
assets/export/boss-.png.import
Normal file
|
@ -0,0 +1,34 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://cg4nwnugx0q4w"
|
||||
path="res://.godot/imported/boss-.png-ca4585ea11fab0b8b110355d230efe54.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/export/boss-.png"
|
||||
dest_files=["res://.godot/imported/boss-.png-ca4585ea11fab0b8b110355d230efe54.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
BIN
assets/export/punch-.png
Normal file
After Width: | Height: | Size: 707 B |
34
assets/export/punch-.png.import
Normal file
|
@ -0,0 +1,34 @@
|
|||
[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
|
BIN
assets/export/shitpost-.png
Normal file
After Width: | Height: | Size: 178 KiB |
34
assets/export/shitpost-.png.import
Normal file
|
@ -0,0 +1,34 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://bjc73l7m3gdkx"
|
||||
path="res://.godot/imported/shitpost-.png-a08331b57c20d55e1623d36ac16acbfd.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/export/shitpost-.png"
|
||||
dest_files=["res://.godot/imported/shitpost-.png-a08331b57c20d55e1623d36ac16acbfd.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
BIN
assets/eye monster.aseprite
Normal file
14
assets/eye monster.aseprite.import
Normal file
|
@ -0,0 +1,14 @@
|
|||
[remap]
|
||||
|
||||
importer="aseprite_wizard.plugin.noop"
|
||||
type="PackedDataContainer"
|
||||
uid="uid://72ry77oxgd4h"
|
||||
path="res://.godot/imported/eye monster.aseprite-bda5e8f0a21d0890b31ff6bb283fb6bb.res"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/eye monster.aseprite"
|
||||
dest_files=["res://.godot/imported/eye monster.aseprite-bda5e8f0a21d0890b31ff6bb283fb6bb.res"]
|
||||
|
||||
[params]
|
||||
|
BIN
assets/weegee.aseprite
Normal file
14
assets/weegee.aseprite.import
Normal file
|
@ -0,0 +1,14 @@
|
|||
[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]
|
||||
|
|
@ -1,7 +1,8 @@
|
|||
[gd_scene load_steps=35 format=3 uid="uid://n65kl0jalqdt"]
|
||||
[gd_scene load_steps=36 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"]
|
||||
[ext_resource type="AudioStream" uid="uid://dfrc2luquqqlw" path="res://assets/Explode.wav" id="3_qvljj"]
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_6iqis"]
|
||||
atlas = ExtResource("1_bdup0")
|
||||
|
@ -288,3 +289,24 @@ shape = SubResource("RectangleShape2D_k4vrw")
|
|||
position = Vector2(-42, 1)
|
||||
shape = SubResource("RectangleShape2D_s2a15")
|
||||
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
|
||||
|
|
|
@ -1,8 +1,9 @@
|
|||
[gd_scene load_steps=79 format=3 uid="uid://cjiuycwqqxaxn"]
|
||||
[gd_scene load_steps=88 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_g0lnn"]
|
||||
[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="Texture2D" uid="uid://cliy3s4yykb3k" path="res://assets/export/health-.png" id="5_1x6di"]
|
||||
|
||||
|
@ -612,6 +613,63 @@ size = Vector2(28, 64)
|
|||
[sub_resource type="RectangleShape2D" id="RectangleShape2D_mst3b"]
|
||||
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"]
|
||||
atlas = ExtResource("5_1x6di")
|
||||
region = Rect2(128, 16, 64, 16)
|
||||
|
@ -723,6 +781,24 @@ position = Vector2(29, -3)
|
|||
shape = SubResource("RectangleShape2D_mst3b")
|
||||
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="."]
|
||||
editor_description = "
|
||||
|
||||
|
|
565
components/the_hive_mind.tscn
Normal file
|
@ -0,0 +1,565 @@
|
|||
[gd_scene load_steps=54 format=3 uid="uid://dtl5b66gt0vqe"]
|
||||
|
||||
[ext_resource type="Script" path="res://scripts/the_hive_mind.gd" id="1_8hjbo"]
|
||||
[ext_resource type="Texture2D" uid="uid://cg4nwnugx0q4w" path="res://assets/export/boss-.png" id="2_idpn7"]
|
||||
[ext_resource type="AudioStream" uid="uid://b8ma022qh77r4" path="res://assets/BossDeath.wav" id="2_k6sr5"]
|
||||
[ext_resource type="AudioStream" uid="uid://cnmafa4b6u74p" path="res://assets/BossHurt.wav" id="3_3acad"]
|
||||
[ext_resource type="AudioStream" uid="uid://cmyg0u83rcuq6" path="res://assets/SpawnMinions.wav" id="4_upx6s"]
|
||||
[ext_resource type="PackedScene" uid="uid://bxbpvgteyfh02" path="res://components/Viruling.tscn" id="6_4pi6j"]
|
||||
[ext_resource type="PackedScene" uid="uid://n65kl0jalqdt" path="res://components/Crawler.tscn" id="7_l2u1x"]
|
||||
[ext_resource type="Script" path="res://scripts/killbox.gd" id="8_q47xa"]
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_bcbj6"]
|
||||
atlas = ExtResource("2_idpn7")
|
||||
region = Rect2(640, 128, 128, 128)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_thjt0"]
|
||||
atlas = ExtResource("2_idpn7")
|
||||
region = Rect2(768, 128, 128, 128)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_8j6ir"]
|
||||
atlas = ExtResource("2_idpn7")
|
||||
region = Rect2(0, 256, 128, 128)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_hi7ro"]
|
||||
atlas = ExtResource("2_idpn7")
|
||||
region = Rect2(128, 256, 128, 128)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_1kt1a"]
|
||||
atlas = ExtResource("2_idpn7")
|
||||
region = Rect2(256, 256, 128, 128)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_gw5sd"]
|
||||
atlas = ExtResource("2_idpn7")
|
||||
region = Rect2(384, 256, 128, 128)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_hp5j4"]
|
||||
atlas = ExtResource("2_idpn7")
|
||||
region = Rect2(512, 256, 128, 128)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_q8y80"]
|
||||
atlas = ExtResource("2_idpn7")
|
||||
region = Rect2(640, 256, 128, 128)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_jc8et"]
|
||||
atlas = ExtResource("2_idpn7")
|
||||
region = Rect2(768, 256, 128, 128)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_xmo5e"]
|
||||
atlas = ExtResource("2_idpn7")
|
||||
region = Rect2(256, 128, 128, 128)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_ghmej"]
|
||||
atlas = ExtResource("2_idpn7")
|
||||
region = Rect2(384, 128, 128, 128)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_llhc7"]
|
||||
atlas = ExtResource("2_idpn7")
|
||||
region = Rect2(512, 128, 128, 128)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_4dbfp"]
|
||||
atlas = ExtResource("2_idpn7")
|
||||
region = Rect2(512, 384, 128, 128)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_wb3a2"]
|
||||
atlas = ExtResource("2_idpn7")
|
||||
region = Rect2(640, 384, 128, 128)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_he7rf"]
|
||||
atlas = ExtResource("2_idpn7")
|
||||
region = Rect2(768, 384, 128, 128)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_ax3cp"]
|
||||
atlas = ExtResource("2_idpn7")
|
||||
region = Rect2(0, 512, 128, 128)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_hjg0v"]
|
||||
atlas = ExtResource("2_idpn7")
|
||||
region = Rect2(128, 512, 128, 128)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_4ag5t"]
|
||||
atlas = ExtResource("2_idpn7")
|
||||
region = Rect2(256, 512, 128, 128)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_06rwn"]
|
||||
atlas = ExtResource("2_idpn7")
|
||||
region = Rect2(384, 512, 128, 128)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_ahmxm"]
|
||||
atlas = ExtResource("2_idpn7")
|
||||
region = Rect2(512, 512, 128, 128)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_k7jpd"]
|
||||
atlas = ExtResource("2_idpn7")
|
||||
region = Rect2(640, 512, 128, 128)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_88rr7"]
|
||||
atlas = ExtResource("2_idpn7")
|
||||
region = Rect2(768, 512, 128, 128)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_ddbg0"]
|
||||
atlas = ExtResource("2_idpn7")
|
||||
region = Rect2(0, 640, 128, 128)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_l3dtv"]
|
||||
atlas = ExtResource("2_idpn7")
|
||||
region = Rect2(128, 640, 128, 128)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_6limw"]
|
||||
atlas = ExtResource("2_idpn7")
|
||||
region = Rect2(256, 640, 128, 128)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_7wlho"]
|
||||
atlas = ExtResource("2_idpn7")
|
||||
region = Rect2(384, 640, 128, 128)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_pmt7a"]
|
||||
atlas = ExtResource("2_idpn7")
|
||||
region = Rect2(512, 640, 128, 128)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_iohuh"]
|
||||
atlas = ExtResource("2_idpn7")
|
||||
region = Rect2(640, 640, 128, 128)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_4dp48"]
|
||||
atlas = ExtResource("2_idpn7")
|
||||
region = Rect2(768, 640, 128, 128)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_c5ycb"]
|
||||
atlas = ExtResource("2_idpn7")
|
||||
region = Rect2(0, 0, 128, 128)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_v3n5k"]
|
||||
atlas = ExtResource("2_idpn7")
|
||||
region = Rect2(128, 0, 128, 128)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_h3yrt"]
|
||||
atlas = ExtResource("2_idpn7")
|
||||
region = Rect2(256, 0, 128, 128)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_m8wg0"]
|
||||
atlas = ExtResource("2_idpn7")
|
||||
region = Rect2(384, 0, 128, 128)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_lcu77"]
|
||||
atlas = ExtResource("2_idpn7")
|
||||
region = Rect2(512, 0, 128, 128)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_vf6fs"]
|
||||
atlas = ExtResource("2_idpn7")
|
||||
region = Rect2(640, 0, 128, 128)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_v2iwn"]
|
||||
atlas = ExtResource("2_idpn7")
|
||||
region = Rect2(768, 0, 128, 128)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_a4gbi"]
|
||||
atlas = ExtResource("2_idpn7")
|
||||
region = Rect2(0, 128, 128, 128)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_ctccy"]
|
||||
atlas = ExtResource("2_idpn7")
|
||||
region = Rect2(128, 128, 128, 128)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_m552a"]
|
||||
atlas = ExtResource("2_idpn7")
|
||||
region = Rect2(0, 384, 128, 128)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_q2at8"]
|
||||
atlas = ExtResource("2_idpn7")
|
||||
region = Rect2(128, 384, 128, 128)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_ek1sc"]
|
||||
atlas = ExtResource("2_idpn7")
|
||||
region = Rect2(256, 384, 128, 128)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_t1kh1"]
|
||||
atlas = ExtResource("2_idpn7")
|
||||
region = Rect2(384, 384, 128, 128)
|
||||
|
||||
[sub_resource type="SpriteFrames" id="SpriteFrames_ok00g"]
|
||||
animations = [{
|
||||
"frames": [{
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_bcbj6")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_thjt0")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_8j6ir")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_thjt0")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_hi7ro")
|
||||
}],
|
||||
"loop": true,
|
||||
"name": &"blink middle",
|
||||
"speed": 10.0
|
||||
}, {
|
||||
"frames": [{
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_1kt1a")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_gw5sd")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_hp5j4")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_q8y80")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_jc8et")
|
||||
}],
|
||||
"loop": true,
|
||||
"name": &"blink right",
|
||||
"speed": 10.0
|
||||
}, {
|
||||
"frames": [{
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_xmo5e")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_ghmej")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_llhc7")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_ghmej")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_xmo5e")
|
||||
}],
|
||||
"loop": true,
|
||||
"name": &"blinkleft",
|
||||
"speed": 10.0
|
||||
}, {
|
||||
"frames": [{
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_4dbfp")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_wb3a2")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_he7rf")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_ax3cp")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_hjg0v")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_4ag5t")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_06rwn")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_ahmxm")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_k7jpd")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_88rr7")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_ddbg0")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_l3dtv")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_6limw")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_7wlho")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_pmt7a")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_iohuh")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_4dp48")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_4dp48")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_4dp48")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_4dp48")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_4dp48")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_4dp48")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_4dp48")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_4dp48")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_4dp48")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_4dp48")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_4dp48")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_4dp48")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_4dp48")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_4dp48")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_4dp48")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_4dp48")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_4dp48")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_4dp48")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_4dp48")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_4dp48")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_4dp48")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_4dp48")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_4dp48")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_4dp48")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_4dp48")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_4dp48")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_4dp48")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_4dp48")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_4dp48")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_4dp48")
|
||||
}],
|
||||
"loop": true,
|
||||
"name": &"death",
|
||||
"speed": 10.0
|
||||
}, {
|
||||
"frames": [{
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_c5ycb")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_v3n5k")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_v3n5k")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_h3yrt")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_v3n5k")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_h3yrt")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_m8wg0")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_lcu77")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_vf6fs")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_v2iwn")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_vf6fs")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_vf6fs")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_vf6fs")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_v2iwn")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_a4gbi")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_ctccy")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_xmo5e")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_xmo5e")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_xmo5e")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_xmo5e")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_xmo5e")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_xmo5e")
|
||||
}],
|
||||
"loop": true,
|
||||
"name": &"intro",
|
||||
"speed": 10.0
|
||||
}, {
|
||||
"frames": [{
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_m552a")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_q2at8")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_ek1sc")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_t1kh1")
|
||||
}],
|
||||
"loop": true,
|
||||
"name": &"ow",
|
||||
"speed": 10.0
|
||||
}]
|
||||
|
||||
[sub_resource type="RectangleShape2D" id="RectangleShape2D_qg4uq"]
|
||||
size = Vector2(92, 85)
|
||||
|
||||
[sub_resource type="RectangleShape2D" id="RectangleShape2D_5444k"]
|
||||
size = Vector2(95, 742)
|
||||
|
||||
[node name="Node2D" type="CharacterBody2D"]
|
||||
script = ExtResource("1_8hjbo")
|
||||
|
||||
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."]
|
||||
texture_filter = 1
|
||||
position = Vector2(3, -24)
|
||||
scale = Vector2(0.859375, 1.01847)
|
||||
sprite_frames = SubResource("SpriteFrames_ok00g")
|
||||
animation = &"death"
|
||||
metadata/_aseprite_wizard_config_ = {
|
||||
"layer": "",
|
||||
"o_ex_p": "",
|
||||
"o_folder": "res://assets/export",
|
||||
"o_name": "boss-",
|
||||
"only_visible": true,
|
||||
"slice": "",
|
||||
"source": "res://assets/eye monster.aseprite"
|
||||
}
|
||||
metadata/_aseprite_wizard_interface_config_ = {
|
||||
"output_section": true,
|
||||
"slice_section": true
|
||||
}
|
||||
metadata/_aseprite_wizard_source_file_hash_ = "2be594506ac4abc8bc55332b51eee3ab"
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
|
||||
position = Vector2(1, -1)
|
||||
shape = SubResource("RectangleShape2D_qg4uq")
|
||||
|
||||
[node name="BossDeathSFX" type="AudioStreamPlayer2D" parent="."]
|
||||
stream = ExtResource("2_k6sr5")
|
||||
|
||||
[node name="BossHurtSFX" type="AudioStreamPlayer2D" parent="."]
|
||||
stream = ExtResource("3_3acad")
|
||||
|
||||
[node name="SpawnMinionsSFX" type="AudioStreamPlayer2D" parent="."]
|
||||
stream = ExtResource("4_upx6s")
|
||||
|
||||
[node name="Viruling" parent="." instance=ExtResource("6_4pi6j")]
|
||||
position = Vector2(-113, 22)
|
||||
|
||||
[node name="Viruling2" parent="." instance=ExtResource("6_4pi6j")]
|
||||
position = Vector2(-96, -18)
|
||||
|
||||
[node name="Viruling3" parent="." instance=ExtResource("6_4pi6j")]
|
||||
position = Vector2(-60, -57)
|
||||
|
||||
[node name="Viruling4" parent="." instance=ExtResource("6_4pi6j")]
|
||||
position = Vector2(-20, -85)
|
||||
|
||||
[node name="Viruling5" parent="." instance=ExtResource("6_4pi6j")]
|
||||
position = Vector2(28, -85)
|
||||
|
||||
[node name="Viruling6" parent="." instance=ExtResource("6_4pi6j")]
|
||||
position = Vector2(71, -61)
|
||||
|
||||
[node name="Viruling7" parent="." instance=ExtResource("6_4pi6j")]
|
||||
position = Vector2(106, -21)
|
||||
|
||||
[node name="Viruling8" parent="." instance=ExtResource("6_4pi6j")]
|
||||
position = Vector2(129, 20)
|
||||
|
||||
[node name="Crawler" parent="." instance=ExtResource("7_l2u1x")]
|
||||
position = Vector2(-56, 10)
|
||||
|
||||
[node name="Crawler2" parent="." instance=ExtResource("7_l2u1x")]
|
||||
position = Vector2(62, 10)
|
||||
|
||||
[node name="Killzone" type="Area2D" parent="."]
|
||||
script = ExtResource("8_q47xa")
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="Killzone"]
|
||||
position = Vector2(-395.5, -42)
|
||||
shape = SubResource("RectangleShape2D_5444k")
|
||||
debug_color = Color(0.48345, 0.580537, 0.241573, 0.42)
|
||||
|
||||
[node name="HurtTimer" type="Timer" parent="."]
|
||||
wait_time = 0.5
|
||||
one_shot = true
|
||||
|
||||
[node name="IntroAnimTimer" type="Timer" parent="."]
|
||||
wait_time = 2.1
|
||||
one_shot = true
|
||||
|
||||
[node name="DeathTimer" type="Timer" parent="."]
|
||||
wait_time = 4.6
|
||||
one_shot = true
|
1
icon.svg
|
@ -1 +0,0 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" width="128" height="128"><rect width="124" height="124" x="2" y="2" fill="#363d52" stroke="#212532" stroke-width="4" rx="14"/><g fill="#fff" transform="translate(12.322 12.322)scale(.101)"><path d="M105 673v33q407 354 814 0v-33z"/><path fill="#478cbf" d="m105 673 152 14q12 1 15 14l4 67 132 10 8-61q2-11 15-15h162q13 4 15 15l8 61 132-10 4-67q3-13 15-14l152-14V427q30-39 56-81-35-59-83-108-43 20-82 47-40-37-88-64 7-51 8-102-59-28-123-42-26 43-46 89-49-7-98 0-20-46-46-89-64 14-123 42 1 51 8 102-48 27-88 64-39-27-82-47-48 49-83 108 26 42 56 81zm0 33v39c0 276 813 276 814 0v-39l-134 12-5 69q-2 10-14 13l-162 11q-12 0-16-11l-10-65H446l-10 65q-4 11-16 11l-162-11q-12-3-14-13l-5-69z"/><path d="M483 600c0 34 58 34 58 0v-86c0-34-58-34-58 0z"/><circle cx="725" cy="526" r="90"/><circle cx="299" cy="526" r="90"/></g><g fill="#414042" transform="translate(12.322 12.322)scale(.101)"><circle cx="307" cy="532" r="60"/><circle cx="717" cy="532" r="60"/></g></svg>
|
Before Width: | Height: | Size: 994 B |
59
levels/Credits.tscn
Normal file
|
@ -0,0 +1,59 @@
|
|||
[gd_scene load_steps=2 format=3 uid="uid://bt2ku416ksp10"]
|
||||
|
||||
[ext_resource type="Texture2D" uid="uid://dhru80es00beu" path="res://levels/Layer 1.png" id="1_kmg23"]
|
||||
|
||||
[node name="Credits" type="ColorRect"]
|
||||
custom_minimum_size = Vector2(100, 100)
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
offset_left = -2.0
|
||||
offset_top = -2.0
|
||||
offset_right = 2.0
|
||||
offset_bottom = 4.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
color = Color(0.301961, 0, 0.00392157, 1)
|
||||
|
||||
[node name="TextureRect" type="TextureRect" parent="."]
|
||||
texture_filter = 1
|
||||
layout_mode = 0
|
||||
offset_left = 149.0
|
||||
offset_top = -8.0
|
||||
offset_right = 511.0
|
||||
offset_bottom = 105.0
|
||||
texture = ExtResource("1_kmg23")
|
||||
metadata/_aseprite_wizard_config_ = {
|
||||
"i_mode": 1,
|
||||
"keep_anim_length": false,
|
||||
"layer": "Layer 1",
|
||||
"o_ex_p": "",
|
||||
"o_folder": "",
|
||||
"o_name": "",
|
||||
"only_visible": true,
|
||||
"player": "",
|
||||
"slice": "",
|
||||
"source": "res://assets/claustrophemia.aseprite"
|
||||
}
|
||||
metadata/_aseprite_wizard_source_file_hash_ = "784e92f64bd88aac2d53a52103f858ed"
|
||||
metadata/_aseprite_wizard_interface_config_ = {
|
||||
"layer_section": true,
|
||||
"output_section": true,
|
||||
"slice_section": true
|
||||
}
|
||||
|
||||
[node name="RichTextLabel" type="RichTextLabel" parent="."]
|
||||
layout_mode = 0
|
||||
offset_left = 29.0
|
||||
offset_top = 93.0
|
||||
offset_right = 607.0
|
||||
offset_bottom = 331.0
|
||||
text = "Thank you for playing our GMTK Game Jam 2024 Game! We had to on-the-spot learn Godot to produce this, so I hope it is not too dreadful!
|
||||
|
||||
Credits:
|
||||
Newt: Programming
|
||||
Alexis: Programming, Music, Dev Art
|
||||
Lucy Blight: Art
|
||||
|
||||
Trans rights! <3
|
||||
"
|
BIN
levels/Layer 1.png
Normal file
After Width: | Height: | Size: 1.8 KiB |
34
levels/Layer 1.png.import
Normal file
|
@ -0,0 +1,34 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://dhru80es00beu"
|
||||
path="res://.godot/imported/Layer 1.png-642cc09a7cb1df4fcf844334e7e8e1b6.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://levels/Layer 1.png"
|
||||
dest_files=["res://.godot/imported/Layer 1.png-642cc09a7cb1df4fcf844334e7e8e1b6.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
BIN
levels/claustrophemia.png
Normal file
After Width: | Height: | Size: 1.8 KiB |
34
levels/claustrophemia.png.import
Normal file
|
@ -0,0 +1,34 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://bsdwrrhlrdp72"
|
||||
path="res://.godot/imported/claustrophemia.png-7be057f1f07accab4de7a9180782c768.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://levels/claustrophemia.png"
|
||||
dest_files=["res://.godot/imported/claustrophemia.png-7be057f1f07accab4de7a9180782c768.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
|
132
levels/level1/bos3731.tmp
Normal file
|
@ -0,0 +1,132 @@
|
|||
[gd_scene load_steps=12 format=3 uid="uid://cvxh2yfe8k664"]
|
||||
|
||||
[ext_resource type="Script" path="res://scripts/boss_stage.gd" id="1_cybs5"]
|
||||
[ext_resource type="PackedScene" uid="uid://clptnshbcs6cn" path="res://components/Bars.tscn" id="1_ihlt6"]
|
||||
[ext_resource type="Texture2D" uid="uid://bynsxkfd4t4cn" path="res://assets/export/stage1.png" id="2_0o3y0"]
|
||||
[ext_resource type="PackedScene" uid="uid://cjiuycwqqxaxn" path="res://components/Player.tscn" id="3_fynww"]
|
||||
[ext_resource type="PackedScene" uid="uid://bab4ac3s2n0o1" path="res://components/Borders.tscn" id="4_n41rv"]
|
||||
[ext_resource type="Texture2D" uid="uid://fnp2h8e01hi0" path="res://assets/export/go-.png" id="5_hkn60"]
|
||||
[ext_resource type="Texture2D" uid="uid://dailayr5c75eu" path="res://assets/export/top-bottom-.png" id="7_dawgr"]
|
||||
[ext_resource type="PackedScene" uid="uid://dtl5b66gt0vqe" path="res://components/the_hive_mind.tscn" id="8_lv2xv"]
|
||||
[ext_resource type="AudioStream" uid="uid://d37cinthwqhf7" path="res://assets/BossIntroMusic.wav" id="8_rtuc5"]
|
||||
[ext_resource type="AudioStream" uid="uid://cnp62dnwbxnp8" path="res://assets/BossMusicLoop.wav" id="9_68bqq"]
|
||||
|
||||
[sub_resource type="RectangleShape2D" id="RectangleShape2D_pla12"]
|
||||
size = Vector2(488.625, 129.5)
|
||||
|
||||
[node name="BossStage" type="Node2D"]
|
||||
position = Vector2(345, 240)
|
||||
script = ExtResource("1_cybs5")
|
||||
next_stage = "res://levels/Credits.tscn"
|
||||
|
||||
[node name="Bars" parent="." instance=ExtResource("1_ihlt6")]
|
||||
z_index = 1
|
||||
offset_left = -344.0
|
||||
offset_top = -240.0
|
||||
offset_right = -304.0
|
||||
offset_bottom = -200.0
|
||||
metadata/_edit_use_anchors_ = true
|
||||
|
||||
[node name="Background" type="Sprite2D" parent="."]
|
||||
position = Vector2(-27, -60)
|
||||
scale = Vector2(1.01667, 1)
|
||||
texture = ExtResource("2_0o3y0")
|
||||
|
||||
[node name="TheHiveMind" parent="." instance=ExtResource("8_lv2xv")]
|
||||
position = Vector2(-21, 11)
|
||||
collision_layer = 32768
|
||||
collision_mask = 32768
|
||||
|
||||
[node name="Player" parent="." instance=ExtResource("3_fynww")]
|
||||
position = Vector2(-240, 22)
|
||||
|
||||
[node name="Borders" parent="." instance=ExtResource("4_n41rv")]
|
||||
position = Vector2(-272, -240)
|
||||
|
||||
[node name="GoArrow" type="Sprite2D" parent="."]
|
||||
texture_filter = 1
|
||||
position = Vector2(171, -146)
|
||||
texture = ExtResource("5_hkn60")
|
||||
metadata/_aseprite_wizard_config_ = {
|
||||
"i_mode": 1,
|
||||
"keep_anim_length": false,
|
||||
"layer": "",
|
||||
"o_ex_p": "",
|
||||
"o_folder": "res://assets/export",
|
||||
"o_name": "go-",
|
||||
"only_visible": true,
|
||||
"player": "",
|
||||
"slice": "",
|
||||
"source": "res://assets/Go.aseprite"
|
||||
}
|
||||
metadata/_aseprite_wizard_interface_config_ = {
|
||||
"output_section": true
|
||||
}
|
||||
metadata/_aseprite_wizard_source_file_hash_ = "db984f52c5ed02484bd4226782968210"
|
||||
|
||||
[node name="BlinkTimer" type="Timer" parent="."]
|
||||
wait_time = 0.5
|
||||
one_shot = true
|
||||
|
||||
[node name="Floor" type="StaticBody2D" parent="."]
|
||||
|
||||
[node name="Sprite2D" type="Sprite2D" parent="Floor"]
|
||||
texture_filter = 1
|
||||
position = Vector2(-24.2499, 121.125)
|
||||
scale = Vector2(0.984663, 0.361805)
|
||||
texture = ExtResource("7_dawgr")
|
||||
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(-27.2499, 120.125)
|
||||
shape = SubResource("RectangleShape2D_pla12")
|
||||
|
||||
[node name="Ceiling" type="StaticBody2D" parent="."]
|
||||
|
||||
[node name="Sprite2D" type="Sprite2D" parent="Ceiling"]
|
||||
texture_filter = 1
|
||||
position = Vector2(-21, -269)
|
||||
scale = Vector2(1, 0.358333)
|
||||
texture = ExtResource("7_dawgr")
|
||||
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(-22.3125, -268)
|
||||
shape = SubResource("RectangleShape2D_pla12")
|
||||
|
||||
[node name="BossIntroMusic" type="AudioStreamPlayer2D" parent="."]
|
||||
stream = ExtResource("8_rtuc5")
|
||||
|
||||
[node name="BossMusicLoop" type="AudioStreamPlayer2D" parent="."]
|
||||
stream = ExtResource("9_68bqq")
|
131
levels/level1/bos8D9D.tmp
Normal file
|
@ -0,0 +1,131 @@
|
|||
[gd_scene load_steps=12 format=3 uid="uid://cvxh2yfe8k664"]
|
||||
|
||||
[ext_resource type="Script" path="res://scripts/boss_stage.gd" id="1_cybs5"]
|
||||
[ext_resource type="PackedScene" uid="uid://clptnshbcs6cn" path="res://components/Bars.tscn" id="1_ihlt6"]
|
||||
[ext_resource type="Texture2D" uid="uid://bynsxkfd4t4cn" path="res://assets/export/stage1.png" id="2_0o3y0"]
|
||||
[ext_resource type="PackedScene" uid="uid://cjiuycwqqxaxn" path="res://components/Player.tscn" id="3_fynww"]
|
||||
[ext_resource type="PackedScene" uid="uid://bab4ac3s2n0o1" path="res://components/Borders.tscn" id="4_n41rv"]
|
||||
[ext_resource type="Texture2D" uid="uid://fnp2h8e01hi0" path="res://assets/export/go-.png" id="5_hkn60"]
|
||||
[ext_resource type="Texture2D" uid="uid://dailayr5c75eu" path="res://assets/export/top-bottom-.png" id="7_dawgr"]
|
||||
[ext_resource type="PackedScene" uid="uid://dtl5b66gt0vqe" path="res://components/the_hive_mind.tscn" id="8_lv2xv"]
|
||||
[ext_resource type="AudioStream" uid="uid://d37cinthwqhf7" path="res://assets/BossIntroMusic.wav" id="8_rtuc5"]
|
||||
[ext_resource type="AudioStream" uid="uid://cnp62dnwbxnp8" path="res://assets/BossMusicLoop.wav" id="9_68bqq"]
|
||||
|
||||
[sub_resource type="RectangleShape2D" id="RectangleShape2D_pla12"]
|
||||
size = Vector2(488.625, 129.5)
|
||||
|
||||
[node name="BossStage" type="Node2D"]
|
||||
position = Vector2(345, 240)
|
||||
script = ExtResource("1_cybs5")
|
||||
|
||||
[node name="Bars" parent="." instance=ExtResource("1_ihlt6")]
|
||||
z_index = 1
|
||||
offset_left = -344.0
|
||||
offset_top = -240.0
|
||||
offset_right = -304.0
|
||||
offset_bottom = -200.0
|
||||
metadata/_edit_use_anchors_ = true
|
||||
|
||||
[node name="Background" type="Sprite2D" parent="."]
|
||||
position = Vector2(-27, -60)
|
||||
scale = Vector2(1.01667, 1)
|
||||
texture = ExtResource("2_0o3y0")
|
||||
|
||||
[node name="TheHiveMind" parent="." instance=ExtResource("8_lv2xv")]
|
||||
position = Vector2(-21, 11)
|
||||
collision_layer = 32768
|
||||
collision_mask = 32768
|
||||
|
||||
[node name="Player" parent="." instance=ExtResource("3_fynww")]
|
||||
position = Vector2(-240, 22)
|
||||
|
||||
[node name="Borders" parent="." instance=ExtResource("4_n41rv")]
|
||||
position = Vector2(-272, -240)
|
||||
|
||||
[node name="GoArrow" type="Sprite2D" parent="."]
|
||||
texture_filter = 1
|
||||
position = Vector2(171, -146)
|
||||
texture = ExtResource("5_hkn60")
|
||||
metadata/_aseprite_wizard_config_ = {
|
||||
"i_mode": 1,
|
||||
"keep_anim_length": false,
|
||||
"layer": "",
|
||||
"o_ex_p": "",
|
||||
"o_folder": "res://assets/export",
|
||||
"o_name": "go-",
|
||||
"only_visible": true,
|
||||
"player": "",
|
||||
"slice": "",
|
||||
"source": "res://assets/Go.aseprite"
|
||||
}
|
||||
metadata/_aseprite_wizard_interface_config_ = {
|
||||
"output_section": true
|
||||
}
|
||||
metadata/_aseprite_wizard_source_file_hash_ = "db984f52c5ed02484bd4226782968210"
|
||||
|
||||
[node name="BlinkTimer" type="Timer" parent="."]
|
||||
wait_time = 0.5
|
||||
one_shot = true
|
||||
|
||||
[node name="Floor" type="StaticBody2D" parent="."]
|
||||
|
||||
[node name="Sprite2D" type="Sprite2D" parent="Floor"]
|
||||
texture_filter = 1
|
||||
position = Vector2(-24.2499, 121.125)
|
||||
scale = Vector2(0.984663, 0.361805)
|
||||
texture = ExtResource("7_dawgr")
|
||||
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(-27.2499, 120.125)
|
||||
shape = SubResource("RectangleShape2D_pla12")
|
||||
|
||||
[node name="Ceiling" type="StaticBody2D" parent="."]
|
||||
|
||||
[node name="Sprite2D" type="Sprite2D" parent="Ceiling"]
|
||||
texture_filter = 1
|
||||
position = Vector2(-21, -269)
|
||||
scale = Vector2(1, 0.358333)
|
||||
texture = ExtResource("7_dawgr")
|
||||
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(-22.3125, -268)
|
||||
shape = SubResource("RectangleShape2D_pla12")
|
||||
|
||||
[node name="BossIntroMusic" type="AudioStreamPlayer2D" parent="."]
|
||||
stream = ExtResource("8_rtuc5")
|
||||
|
||||
[node name="BossMusicLoop" type="AudioStreamPlayer2D" parent="."]
|
||||
stream = ExtResource("9_68bqq")
|
|
@ -1,3 +1,132 @@
|
|||
[gd_scene format=3 uid="uid://cvxh2yfe8k664"]
|
||||
[gd_scene load_steps=12 format=3 uid="uid://cvxh2yfe8k664"]
|
||||
|
||||
[ext_resource type="Script" path="res://scripts/boss_stage.gd" id="1_cybs5"]
|
||||
[ext_resource type="PackedScene" uid="uid://clptnshbcs6cn" path="res://components/Bars.tscn" id="1_ihlt6"]
|
||||
[ext_resource type="Texture2D" uid="uid://bynsxkfd4t4cn" path="res://assets/export/stage1.png" id="2_0o3y0"]
|
||||
[ext_resource type="PackedScene" uid="uid://cjiuycwqqxaxn" path="res://components/Player.tscn" id="3_fynww"]
|
||||
[ext_resource type="PackedScene" uid="uid://bab4ac3s2n0o1" path="res://components/Borders.tscn" id="4_n41rv"]
|
||||
[ext_resource type="Texture2D" uid="uid://fnp2h8e01hi0" path="res://assets/export/go-.png" id="5_hkn60"]
|
||||
[ext_resource type="Texture2D" uid="uid://dailayr5c75eu" path="res://assets/export/top-bottom-.png" id="7_dawgr"]
|
||||
[ext_resource type="PackedScene" uid="uid://dtl5b66gt0vqe" path="res://components/the_hive_mind.tscn" id="8_lv2xv"]
|
||||
[ext_resource type="AudioStream" uid="uid://d37cinthwqhf7" path="res://assets/BossIntroMusic.wav" id="8_rtuc5"]
|
||||
[ext_resource type="AudioStream" uid="uid://cnp62dnwbxnp8" path="res://assets/BossMusicLoop.wav" id="9_68bqq"]
|
||||
|
||||
[sub_resource type="RectangleShape2D" id="RectangleShape2D_pla12"]
|
||||
size = Vector2(488.625, 129.5)
|
||||
|
||||
[node name="BossStage" type="Node2D"]
|
||||
position = Vector2(345, 240)
|
||||
script = ExtResource("1_cybs5")
|
||||
next_stage = "res://levels/Credits.tscn"
|
||||
|
||||
[node name="Bars" parent="." instance=ExtResource("1_ihlt6")]
|
||||
z_index = 1
|
||||
offset_left = -344.0
|
||||
offset_top = -240.0
|
||||
offset_right = -304.0
|
||||
offset_bottom = -200.0
|
||||
metadata/_edit_use_anchors_ = true
|
||||
|
||||
[node name="Background" type="Sprite2D" parent="."]
|
||||
position = Vector2(-27, -60)
|
||||
scale = Vector2(1.01667, 1)
|
||||
texture = ExtResource("2_0o3y0")
|
||||
|
||||
[node name="TheHiveMind" parent="." instance=ExtResource("8_lv2xv")]
|
||||
position = Vector2(-21, 11)
|
||||
collision_layer = 32768
|
||||
collision_mask = 32768
|
||||
|
||||
[node name="Player" parent="." instance=ExtResource("3_fynww")]
|
||||
position = Vector2(-240, 22)
|
||||
|
||||
[node name="Borders" parent="." instance=ExtResource("4_n41rv")]
|
||||
position = Vector2(-272, -240)
|
||||
|
||||
[node name="GoArrow" type="Sprite2D" parent="."]
|
||||
texture_filter = 1
|
||||
position = Vector2(171, -146)
|
||||
texture = ExtResource("5_hkn60")
|
||||
metadata/_aseprite_wizard_config_ = {
|
||||
"i_mode": 1,
|
||||
"keep_anim_length": false,
|
||||
"layer": "",
|
||||
"o_ex_p": "",
|
||||
"o_folder": "res://assets/export",
|
||||
"o_name": "go-",
|
||||
"only_visible": true,
|
||||
"player": "",
|
||||
"slice": "",
|
||||
"source": "res://assets/Go.aseprite"
|
||||
}
|
||||
metadata/_aseprite_wizard_interface_config_ = {
|
||||
"output_section": true
|
||||
}
|
||||
metadata/_aseprite_wizard_source_file_hash_ = "db984f52c5ed02484bd4226782968210"
|
||||
|
||||
[node name="BlinkTimer" type="Timer" parent="."]
|
||||
wait_time = 0.5
|
||||
one_shot = true
|
||||
|
||||
[node name="Floor" type="StaticBody2D" parent="."]
|
||||
|
||||
[node name="Sprite2D" type="Sprite2D" parent="Floor"]
|
||||
texture_filter = 1
|
||||
position = Vector2(-24.2499, 121.125)
|
||||
scale = Vector2(0.984663, 0.361805)
|
||||
texture = ExtResource("7_dawgr")
|
||||
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(-27.2499, 120.125)
|
||||
shape = SubResource("RectangleShape2D_pla12")
|
||||
|
||||
[node name="Ceiling" type="StaticBody2D" parent="."]
|
||||
|
||||
[node name="Sprite2D" type="Sprite2D" parent="Ceiling"]
|
||||
texture_filter = 1
|
||||
position = Vector2(-21, -269)
|
||||
scale = Vector2(1, 0.358333)
|
||||
texture = ExtResource("7_dawgr")
|
||||
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(-22.3125, -268)
|
||||
shape = SubResource("RectangleShape2D_pla12")
|
||||
|
||||
[node name="BossIntroMusic" type="AudioStreamPlayer2D" parent="."]
|
||||
stream = ExtResource("8_rtuc5")
|
||||
|
||||
[node name="BossMusicLoop" type="AudioStreamPlayer2D" parent="."]
|
||||
stream = ExtResource("9_68bqq")
|
||||
|
|
|
@ -37,7 +37,7 @@ scale = Vector2(1.01667, 1)
|
|||
texture = ExtResource("4_d2h5p")
|
||||
|
||||
[node name="Player" parent="." instance=ExtResource("5_kc5l1")]
|
||||
position = Vector2(-40, -49)
|
||||
position = Vector2(-154, -43)
|
||||
|
||||
[node name="Borders" parent="." instance=ExtResource("6_47554")]
|
||||
position = Vector2(-272, -240)
|
||||
|
@ -71,10 +71,10 @@ one_shot = true
|
|||
script = ExtResource("9_2n06p")
|
||||
|
||||
[node name="Crawler2" parent="Level2Spawner" instance=ExtResource("9_sqnor")]
|
||||
position = Vector2(-200, -41)
|
||||
position = Vector2(-306, -39)
|
||||
|
||||
[node name="Crawler" parent="Level2Spawner" instance=ExtResource("9_sqnor")]
|
||||
position = Vector2(168, -41)
|
||||
position = Vector2(307, -42)
|
||||
|
||||
[node name="Floor" type="StaticBody2D" parent="."]
|
||||
|
||||
|
|
|
@ -10,13 +10,13 @@ config_version=5
|
|||
|
||||
[application]
|
||||
|
||||
config/name="claustrophemia"
|
||||
config/name="CLAUSTROPHEMIA"
|
||||
config/version="0.0.1"
|
||||
run/main_scene="res://MainMenu.tscn"
|
||||
config/features=PackedStringArray("4.3", "Forward Plus")
|
||||
boot_splash/bg_color=Color(0, 0, 0, 1)
|
||||
boot_splash/show_image=false
|
||||
config/icon="res://icon.svg"
|
||||
config/icon="res://Viruling.png"
|
||||
|
||||
[aseprite]
|
||||
|
||||
|
|
55
scripts/boss_stage.gd
Normal file
|
@ -0,0 +1,55 @@
|
|||
extends Node2D
|
||||
|
||||
@export var next_stage: String
|
||||
|
||||
@onready var right_border = $Borders/Right/CollisionShape2D
|
||||
@onready var right_trigger = $Borders/Right/Trigger
|
||||
@onready var intro_music = $BossIntroMusic
|
||||
@onready var music_loop = $BossMusicLoop
|
||||
@onready var go_arrow = $GoArrow
|
||||
@onready var blink_timer = $BlinkTimer
|
||||
@onready var hive_mind = $TheHiveMind
|
||||
|
||||
var go_arrow_blink_on = false
|
||||
var completed = false
|
||||
var intro_played = false
|
||||
|
||||
# Called when the node enters the scene tree for the first time.
|
||||
func _ready() -> void:
|
||||
go_arrow.hide()
|
||||
|
||||
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
||||
func _process(delta: float) -> void:
|
||||
# ----- Background Music (BG Media) ------
|
||||
if !intro_played:
|
||||
intro_played = true
|
||||
intro_music.play()
|
||||
if intro_played and !intro_music.playing and !completed:
|
||||
if !music_loop.playing:
|
||||
music_loop.play()
|
||||
else:
|
||||
music_loop.stop()
|
||||
# ----------------------------------------
|
||||
|
||||
# ------ goeth the arrow bruv ------
|
||||
if !completed:
|
||||
completed = hive_mind.is_complete()
|
||||
else:
|
||||
toggle_go_arrow()
|
||||
right_border.shape = null
|
||||
right_trigger.body_entered.connect(_on_trigger)
|
||||
# -------------- waow --------------
|
||||
|
||||
func toggle_go_arrow() -> void:
|
||||
if blink_timer.is_stopped():
|
||||
blink_timer.start()
|
||||
if go_arrow_blink_on:
|
||||
go_arrow.hide()
|
||||
go_arrow_blink_on = false
|
||||
else:
|
||||
go_arrow.show()
|
||||
go_arrow_blink_on = true
|
||||
|
||||
func _on_trigger(body: Node) -> void:
|
||||
if body is Player:
|
||||
get_tree().change_scene_to_file(next_stage)
|
|
@ -4,18 +4,29 @@ class_name Crawler extends Entity
|
|||
@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
|
||||
|
||||
const HEALTH = 40
|
||||
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 _ready() -> void:
|
||||
whip.visible = false
|
||||
|
||||
func face_player():
|
||||
var player_position = player.global_position
|
||||
|
@ -36,13 +47,19 @@ 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()
|
||||
print(distanceToPlayer)
|
||||
|
||||
if distanceToPlayer > desiredDistance:
|
||||
velocity.x = speed
|
||||
velocity.x = speed * speed_mult
|
||||
face_player()
|
||||
|
||||
if not sprite.flip_h:
|
||||
|
@ -50,7 +67,46 @@ func _physics_process(delta: float) -> void:
|
|||
|
||||
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 away")
|
||||
|
||||
if speed_mult != 0:
|
||||
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")
|
||||
|
|
|
@ -12,6 +12,7 @@ class_name Player extends Entity
|
|||
@onready var player_death_sfx = $PlayerDeathSfx
|
||||
@onready var hurt_timer = $HurtTimer
|
||||
@onready var health_bar = $HealthBar
|
||||
@onready var punch_vfx = $PunchHitbox/AnimatedSprite2D
|
||||
|
||||
var jumping = false
|
||||
var facing_right = true
|
||||
|
@ -103,6 +104,7 @@ func _process(delta: float) -> void:
|
|||
|
||||
if attack_timer.is_stopped() and Input.is_action_just_pressed("attack"):
|
||||
attack_timer.start()
|
||||
punch_vfx.play("default")
|
||||
|
||||
if is_on_floor():
|
||||
animated_sprite.play("Right" if right_punch else "Left")
|
||||
|
|
|
@ -1,15 +1,21 @@
|
|||
extends Node2D
|
||||
|
||||
@onready var complete = false
|
||||
@onready var wave_1 = [$Crawler, $Crawler2]
|
||||
|
||||
# Called when the node enters the scene tree for the first time.
|
||||
func _ready() -> void:
|
||||
pass # Replace with function body.
|
||||
|
||||
for crawler in wave_1:
|
||||
crawler.charge()
|
||||
|
||||
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
||||
func _process(delta: float) -> void:
|
||||
pass
|
||||
for crawler in wave_1:
|
||||
if crawler.is_dying:
|
||||
wave_1.erase(crawler)
|
||||
|
||||
if wave_1 == []:
|
||||
complete = true
|
||||
|
||||
func is_complete() -> bool:
|
||||
return complete
|
||||
|
|
108
scripts/the_hive_mind.gd
Normal file
|
@ -0,0 +1,108 @@
|
|||
class_name HiveMind extends Entity
|
||||
|
||||
@onready var wave_1 = [$Viruling, $Viruling2, $Viruling3]
|
||||
@onready var wave_2 = [$Viruling4, $Viruling5, $Crawler]
|
||||
@onready var wave_3 = [$Viruling6, $Viruling7, $Viruling8, $Crawler2]
|
||||
@onready var hurtbox = $CollisionShape2D
|
||||
@onready var spawn_sfx = $SpawnMinionsSFX
|
||||
@onready var boss_hurt_sfx = $BossHurtSFX
|
||||
@onready var boss_death_sfx = $BossDeathSFX
|
||||
@onready var hurt_timer = $HurtTimer
|
||||
@onready var death_timer = $DeathTimer
|
||||
@onready var sprite = $AnimatedSprite2D
|
||||
@onready var intro_timer = $IntroAnimTimer
|
||||
|
||||
var complete = false
|
||||
var wave_2_start = false
|
||||
var wave_3_start = false
|
||||
var shields_down = false
|
||||
var hurting = false
|
||||
var is_dying = false
|
||||
var is_intro_anim = true
|
||||
|
||||
func _init() -> void:
|
||||
super._init(100, 0, 0)
|
||||
|
||||
func _ready():
|
||||
intro_timer.start()
|
||||
hurtbox.disabled = true
|
||||
if !spawn_sfx.playing:
|
||||
spawn_sfx.play
|
||||
for enemy in wave_1:
|
||||
if enemy.has_method("charge"):
|
||||
enemy.call("charge")
|
||||
|
||||
func _process(delta: float) -> void:
|
||||
# ----- Make sure no damage taken before shields down ------
|
||||
if !shields_down:
|
||||
health = 100
|
||||
# ----------------------------------------------------------
|
||||
|
||||
# --- Wave death counters -------
|
||||
for enemy in wave_1:
|
||||
if enemy.is_dying:
|
||||
wave_1.erase(enemy)
|
||||
for enemy in wave_2:
|
||||
if enemy.is_dying:
|
||||
wave_2.erase(enemy)
|
||||
for enemy in wave_3:
|
||||
if enemy.is_dying:
|
||||
wave_3.erase(enemy)
|
||||
# -------------------------------
|
||||
|
||||
# ------- Wave start calls ------------------
|
||||
if wave_1 == [] and !wave_2_start:
|
||||
if !spawn_sfx.playing:
|
||||
spawn_sfx.play()
|
||||
wave_2_start = true
|
||||
for enemy in wave_2:
|
||||
enemy.charge()
|
||||
hurt_timer.start()
|
||||
|
||||
if wave_1 == [] and wave_2 == [] and !wave_3_start:
|
||||
if !spawn_sfx.playing:
|
||||
spawn_sfx.play()
|
||||
wave_3_start = true
|
||||
for enemy in wave_3:
|
||||
enemy.charge()
|
||||
hurt_timer.start()
|
||||
|
||||
if wave_1 == [] and wave_2 == [] and wave_3 == []:
|
||||
shields_down = true
|
||||
hurtbox.disabled = false
|
||||
if death_timer.is_stopped() and !is_dying:
|
||||
death_timer.start()
|
||||
is_dying = true
|
||||
complete = true
|
||||
# -----------------------------------------
|
||||
|
||||
# ------- Anims ----------
|
||||
if is_intro_anim and !intro_timer.is_stopped():
|
||||
sprite.play("intro")
|
||||
elif is_intro_anim and intro_timer.is_stopped():
|
||||
is_intro_anim = false
|
||||
elif !is_dying:
|
||||
if hurt_timer.is_stopped():
|
||||
sprite.play("blinkleft")
|
||||
else:
|
||||
sprite.play("ow")
|
||||
else:
|
||||
sprite.play("death")
|
||||
if death_timer.is_stopped():
|
||||
queue_free()
|
||||
else:
|
||||
if !boss_death_sfx.playing:
|
||||
boss_death_sfx.play()
|
||||
# ----------------------------------------
|
||||
|
||||
# The hive mind is static. Don't worry abt this.
|
||||
func _physics_process(delta: float) -> void:
|
||||
pass
|
||||
|
||||
func hurt_anim() -> void:
|
||||
if shields_down and !hurting:
|
||||
hurting = true
|
||||
hurt_timer.start()
|
||||
|
||||
func is_complete() -> bool:
|
||||
return complete
|