small boss progess
7
assets/bosses/.comments/cajita.png.xml
Normal file
|
|
@ -0,0 +1,7 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<comment version="3.0">
|
||||||
|
<caption>cajita</caption>
|
||||||
|
<note/>
|
||||||
|
<place/>
|
||||||
|
<categories/>
|
||||||
|
</comment>
|
||||||
7
assets/bosses/.comments/chica-2.png.xml
Normal file
|
|
@ -0,0 +1,7 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<comment version="3.0">
|
||||||
|
<caption>chica</caption>
|
||||||
|
<note/>
|
||||||
|
<place/>
|
||||||
|
<categories/>
|
||||||
|
</comment>
|
||||||
7
assets/bosses/.comments/claw-1.png.xml
Normal file
|
|
@ -0,0 +1,7 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<comment version="3.0">
|
||||||
|
<caption>Capa 21</caption>
|
||||||
|
<note/>
|
||||||
|
<place/>
|
||||||
|
<categories/>
|
||||||
|
</comment>
|
||||||
7
assets/bosses/.comments/claw-2.png.xml
Normal file
|
|
@ -0,0 +1,7 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<comment version="3.0">
|
||||||
|
<caption>claw</caption>
|
||||||
|
<note/>
|
||||||
|
<place/>
|
||||||
|
<categories/>
|
||||||
|
</comment>
|
||||||
7
assets/bosses/.comments/claw-3.png.xml
Normal file
|
|
@ -0,0 +1,7 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<comment version="3.0">
|
||||||
|
<caption>claw</caption>
|
||||||
|
<note/>
|
||||||
|
<place/>
|
||||||
|
<categories/>
|
||||||
|
</comment>
|
||||||
7
assets/bosses/.comments/tubito.png.xml
Normal file
|
|
@ -0,0 +1,7 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<comment version="3.0">
|
||||||
|
<caption>tubito</caption>
|
||||||
|
<note/>
|
||||||
|
<place/>
|
||||||
|
<categories/>
|
||||||
|
</comment>
|
||||||
BIN
assets/bosses/cajita.png
Normal file
|
After Width: | Height: | Size: 10 KiB |
40
assets/bosses/cajita.png.import
Normal file
|
|
@ -0,0 +1,40 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://bu5dfvirq7mxq"
|
||||||
|
path="res://.godot/imported/cajita.png-e07e4380bc9c608cadbaf6f97152d4fd.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/bosses/cajita.png"
|
||||||
|
dest_files=["res://.godot/imported/cajita.png-e07e4380bc9c608cadbaf6f97152d4fd.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/uastc_level=0
|
||||||
|
compress/rdo_quality_loss=0.0
|
||||||
|
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/channel_remap/red=0
|
||||||
|
process/channel_remap/green=1
|
||||||
|
process/channel_remap/blue=2
|
||||||
|
process/channel_remap/alpha=3
|
||||||
|
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/bosses/claw-1.png
Normal file
|
After Width: | Height: | Size: 7.5 KiB |
40
assets/bosses/claw-1.png.import
Normal file
|
|
@ -0,0 +1,40 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://onur5q1rodqt"
|
||||||
|
path="res://.godot/imported/claw-1.png-74633acc67bcf5fdd19a10d827abf02a.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/bosses/claw-1.png"
|
||||||
|
dest_files=["res://.godot/imported/claw-1.png-74633acc67bcf5fdd19a10d827abf02a.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/uastc_level=0
|
||||||
|
compress/rdo_quality_loss=0.0
|
||||||
|
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/channel_remap/red=0
|
||||||
|
process/channel_remap/green=1
|
||||||
|
process/channel_remap/blue=2
|
||||||
|
process/channel_remap/alpha=3
|
||||||
|
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/bosses/claw-2.png
Normal file
|
After Width: | Height: | Size: 9.3 KiB |
40
assets/bosses/claw-2.png.import
Normal file
|
|
@ -0,0 +1,40 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://bo3g57ir520jf"
|
||||||
|
path="res://.godot/imported/claw-2.png-a2f8b57df06d156197d72c31ddcc6084.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/bosses/claw-2.png"
|
||||||
|
dest_files=["res://.godot/imported/claw-2.png-a2f8b57df06d156197d72c31ddcc6084.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/uastc_level=0
|
||||||
|
compress/rdo_quality_loss=0.0
|
||||||
|
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/channel_remap/red=0
|
||||||
|
process/channel_remap/green=1
|
||||||
|
process/channel_remap/blue=2
|
||||||
|
process/channel_remap/alpha=3
|
||||||
|
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/bosses/claw-3.png
Normal file
|
After Width: | Height: | Size: 9.6 KiB |
40
assets/bosses/claw-3.png.import
Normal file
|
|
@ -0,0 +1,40 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://x4frpycwroby"
|
||||||
|
path="res://.godot/imported/claw-3.png-1644032674af70a88eb8a8f7dbb7dceb.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/bosses/claw-3.png"
|
||||||
|
dest_files=["res://.godot/imported/claw-3.png-1644032674af70a88eb8a8f7dbb7dceb.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/uastc_level=0
|
||||||
|
compress/rdo_quality_loss=0.0
|
||||||
|
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/channel_remap/red=0
|
||||||
|
process/channel_remap/green=1
|
||||||
|
process/channel_remap/blue=2
|
||||||
|
process/channel_remap/alpha=3
|
||||||
|
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/bosses/claw-4.png
Normal file
|
After Width: | Height: | Size: 8.9 KiB |
40
assets/bosses/claw-4.png.import
Normal file
|
|
@ -0,0 +1,40 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://cqq6a8fjw8k7b"
|
||||||
|
path="res://.godot/imported/claw-4.png-caa2fa1eda7917b02ae1e4ea3edfe0d0.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/bosses/claw-4.png"
|
||||||
|
dest_files=["res://.godot/imported/claw-4.png-caa2fa1eda7917b02ae1e4ea3edfe0d0.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/uastc_level=0
|
||||||
|
compress/rdo_quality_loss=0.0
|
||||||
|
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/channel_remap/red=0
|
||||||
|
process/channel_remap/green=1
|
||||||
|
process/channel_remap/blue=2
|
||||||
|
process/channel_remap/alpha=3
|
||||||
|
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/bosses/tubito.png
Normal file
|
After Width: | Height: | Size: 4.5 KiB |
40
assets/bosses/tubito.png.import
Normal file
|
|
@ -0,0 +1,40 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://cnkgyhhnig57y"
|
||||||
|
path="res://.godot/imported/tubito.png-e115e72f2588a58d6ea1a4d3dbc48014.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/bosses/tubito.png"
|
||||||
|
dest_files=["res://.godot/imported/tubito.png-e115e72f2588a58d6ea1a4d3dbc48014.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/uastc_level=0
|
||||||
|
compress/rdo_quality_loss=0.0
|
||||||
|
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/channel_remap/red=0
|
||||||
|
process/channel_remap/green=1
|
||||||
|
process/channel_remap/blue=2
|
||||||
|
process/channel_remap/alpha=3
|
||||||
|
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/enemies/cajita.png
Normal file
|
After Width: | Height: | Size: 10 KiB |
40
assets/enemies/cajita.png.import
Normal file
|
|
@ -0,0 +1,40 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://csdsskhqdg45r"
|
||||||
|
path="res://.godot/imported/cajita.png-8265182f3d1d2f82cb2d181787b51b06.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/enemies/cajita.png"
|
||||||
|
dest_files=["res://.godot/imported/cajita.png-8265182f3d1d2f82cb2d181787b51b06.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/uastc_level=0
|
||||||
|
compress/rdo_quality_loss=0.0
|
||||||
|
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/channel_remap/red=0
|
||||||
|
process/channel_remap/green=1
|
||||||
|
process/channel_remap/blue=2
|
||||||
|
process/channel_remap/alpha=3
|
||||||
|
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
|
||||||
|
Before Width: | Height: | Size: 1 MiB After Width: | Height: | Size: 1 MiB |
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
importer="texture"
|
importer="texture"
|
||||||
type="CompressedTexture2D"
|
type="CompressedTexture2D"
|
||||||
uid="uid://de8ehypelmgbq"
|
uid="uid://cme75i5kh0atg"
|
||||||
path="res://.godot/imported/turquoise_room.png-c5069b9c77ead1e405c18230bcfa1a9a.ctex"
|
path="res://.godot/imported/turquoise_room.png-c5069b9c77ead1e405c18230bcfa1a9a.ctex"
|
||||||
metadata={
|
metadata={
|
||||||
"vram_texture": false
|
"vram_texture": false
|
||||||
|
|
|
||||||
BIN
assets/vfx/cable.aseprite
Normal file
BIN
assets/vfx/cable.png
Normal file
|
After Width: | Height: | Size: 90 B |
40
assets/vfx/cable.png.import
Normal file
|
|
@ -0,0 +1,40 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://cyrbml83j7s7b"
|
||||||
|
path="res://.godot/imported/cable.png-c2c8b43340a2d639c617c8a1787efc2d.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/vfx/cable.png"
|
||||||
|
dest_files=["res://.godot/imported/cable.png-c2c8b43340a2d639c617c8a1787efc2d.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/uastc_level=0
|
||||||
|
compress/rdo_quality_loss=0.0
|
||||||
|
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/channel_remap/red=0
|
||||||
|
process/channel_remap/green=1
|
||||||
|
process/channel_remap/blue=2
|
||||||
|
process/channel_remap/alpha=3
|
||||||
|
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
|
||||||
|
|
@ -4,22 +4,177 @@
|
||||||
[ext_resource type="PackedScene" uid="uid://ncgwx0yjn2gt" path="res://scenes/player.tscn" id="2_84w8w"]
|
[ext_resource type="PackedScene" uid="uid://ncgwx0yjn2gt" path="res://scenes/player.tscn" id="2_84w8w"]
|
||||||
[ext_resource type="Texture2D" uid="uid://bb7yept5f8ya0" path="res://assets/vfx/danger_round.png" id="3_6wr5o"]
|
[ext_resource type="Texture2D" uid="uid://bb7yept5f8ya0" path="res://assets/vfx/danger_round.png" id="3_6wr5o"]
|
||||||
[ext_resource type="Script" uid="uid://clccy2s0llda3" path="res://scenes/boss_machine.gd" id="3_84w8w"]
|
[ext_resource type="Script" uid="uid://clccy2s0llda3" path="res://scenes/boss_machine.gd" id="3_84w8w"]
|
||||||
[ext_resource type="Texture2D" uid="uid://bqgunp07jecl7" path="res://assets/bosses/claw.png" id="4_vi6v3"]
|
[ext_resource type="PackedScene" uid="uid://b5m10vpq0kk8n" path="res://scenes/boss_spawner.tscn" id="4_cwigj"]
|
||||||
[ext_resource type="Script" uid="uid://t8ykexnisuw3" path="res://scenes/claw.gd" id="6_6wr5o"]
|
[ext_resource type="Texture2D" uid="uid://cyrbml83j7s7b" path="res://assets/vfx/cable.png" id="5_nvwov"]
|
||||||
|
[ext_resource type="Script" uid="uid://ejd25ul4j5pp" path="res://scripts/hitbox.gd" id="6_io3m0"]
|
||||||
[ext_resource type="Texture2D" uid="uid://1wosmyr2md2i" path="res://assets/bosses/chica-2.png" id="7_6wr5o"]
|
[ext_resource type="Texture2D" uid="uid://1wosmyr2md2i" path="res://assets/bosses/chica-2.png" id="7_6wr5o"]
|
||||||
|
[ext_resource type="Script" uid="uid://dr78dot5agp2p" path="res://scripts/cable.gd" id="8_cwigj"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://bu5dfvirq7mxq" path="res://assets/bosses/cajita.png" id="8_t0ayj"]
|
||||||
|
[ext_resource type="Script" uid="uid://mc1fw6f5texh" path="res://scripts/line_connect.gd" id="10_nvwov"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://onur5q1rodqt" path="res://assets/bosses/claw-1.png" id="10_vfq8f"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://bo3g57ir520jf" path="res://assets/bosses/claw-2.png" id="11_nvwov"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://x4frpycwroby" path="res://assets/bosses/claw-3.png" id="12_1400f"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://cqq6a8fjw8k7b" path="res://assets/bosses/claw-4.png" id="13_4pbd4"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://cnkgyhhnig57y" path="res://assets/bosses/tubito.png" id="14_0dfqf"]
|
||||||
|
|
||||||
|
[sub_resource type="NavigationPolygon" id="NavigationPolygon_cwigj"]
|
||||||
|
vertices = PackedVector2Array(665.21094, -180.10156, 674.77344, 257.85938, -333.97656, 245.13281, -290.95313, -190.89063)
|
||||||
|
polygons = Array[PackedInt32Array]([PackedInt32Array(0, 1, 2, 3)])
|
||||||
|
outlines = Array[PackedVector2Array]([PackedVector2Array(-300, -201, 675, -190, 685, 268, -345, 255)])
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id="Animation_6wr5o"]
|
||||||
|
length = 0.001
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/path = NodePath("MovePoint/Claw:position")
|
||||||
|
tracks/0/interp = 1
|
||||||
|
tracks/0/loop_wrap = true
|
||||||
|
tracks/0/keys = {
|
||||||
|
"times": PackedFloat32Array(0),
|
||||||
|
"transitions": PackedFloat32Array(1),
|
||||||
|
"update": 0,
|
||||||
|
"values": [Vector2(2, -224.99994)]
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id="Animation_cwigj"]
|
||||||
|
resource_name = "grab"
|
||||||
|
length = 1.5
|
||||||
|
tracks/0/type = "method"
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/path = NodePath(".")
|
||||||
|
tracks/0/interp = 1
|
||||||
|
tracks/0/loop_wrap = true
|
||||||
|
tracks/0/keys = {
|
||||||
|
"times": PackedFloat32Array(0.7),
|
||||||
|
"transitions": PackedFloat32Array(1),
|
||||||
|
"values": [{
|
||||||
|
"args": [],
|
||||||
|
"method": &"spawn_enemies"
|
||||||
|
}]
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id="Animation_vi6v3"]
|
||||||
|
resource_name = "smash"
|
||||||
|
length = 1.5
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/path = NodePath("MovePoint/Hitbox:monitoring")
|
||||||
|
tracks/0/interp = 1
|
||||||
|
tracks/0/loop_wrap = true
|
||||||
|
tracks/0/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 0.2, 0.52),
|
||||||
|
"transitions": PackedFloat32Array(1, 1, 1),
|
||||||
|
"update": 1,
|
||||||
|
"values": [false, true, false]
|
||||||
|
}
|
||||||
|
tracks/1/type = "value"
|
||||||
|
tracks/1/imported = false
|
||||||
|
tracks/1/enabled = true
|
||||||
|
tracks/1/path = NodePath("MovePoint/Claw:position")
|
||||||
|
tracks/1/interp = 2
|
||||||
|
tracks/1/loop_wrap = true
|
||||||
|
tracks/1/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 0.13333334, 0.2, 0.3, 0.81),
|
||||||
|
"transitions": PackedFloat32Array(1, 1, 1, 1, 1),
|
||||||
|
"update": 0,
|
||||||
|
"values": [Vector2(2, -224.99994), Vector2(2, -18), Vector2(2, -24), Vector2(2, -18), Vector2(2, -224.99994)]
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="AnimationLibrary" id="AnimationLibrary_cwigj"]
|
||||||
|
_data = {
|
||||||
|
&"RESET": SubResource("Animation_6wr5o"),
|
||||||
|
&"grab": SubResource("Animation_cwigj"),
|
||||||
|
&"smash": SubResource("Animation_vi6v3")
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="RectangleShape2D" id="RectangleShape2D_i50kd"]
|
||||||
|
size = Vector2(115, 60.500046)
|
||||||
|
|
||||||
|
[sub_resource type="SpriteFrames" id="SpriteFrames_ix723"]
|
||||||
|
animations = [{
|
||||||
|
"frames": [{
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": ExtResource("10_vfq8f")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": ExtResource("12_1400f")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": ExtResource("11_nvwov")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": ExtResource("13_4pbd4")
|
||||||
|
}],
|
||||||
|
"loop": true,
|
||||||
|
"name": &"default",
|
||||||
|
"speed": 5.0
|
||||||
|
}]
|
||||||
|
|
||||||
[node name="BossArena" type="Node2D" unique_id=1817081539]
|
[node name="BossArena" type="Node2D" unique_id=1817081539]
|
||||||
|
|
||||||
[node name="Arena" type="Sprite2D" parent="." unique_id=138900999]
|
[node name="Arena" type="Sprite2D" parent="." unique_id=138900999]
|
||||||
|
z_index = -2
|
||||||
position = Vector2(491, 321)
|
position = Vector2(491, 321)
|
||||||
texture = ExtResource("1_7okkn")
|
texture = ExtResource("1_7okkn")
|
||||||
|
|
||||||
|
[node name="NavigationRegion2D" type="NavigationRegion2D" parent="." unique_id=956156033]
|
||||||
|
position = Vector2(332, 406)
|
||||||
|
navigation_polygon = SubResource("NavigationPolygon_cwigj")
|
||||||
|
|
||||||
[node name="Player" parent="." unique_id=1743724931 instance=ExtResource("2_84w8w")]
|
[node name="Player" parent="." unique_id=1743724931 instance=ExtResource("2_84w8w")]
|
||||||
position = Vector2(332, 406)
|
position = Vector2(332, 406)
|
||||||
|
|
||||||
[node name="BossMachine" type="Node2D" parent="." unique_id=1366822299 node_paths=PackedStringArray("spawn_points")]
|
[node name="BossMachine" type="Node2D" parent="." unique_id=1366822299 node_paths=PackedStringArray("spawn_points", "anim_player", "movable")]
|
||||||
script = ExtResource("3_84w8w")
|
script = ExtResource("3_84w8w")
|
||||||
spawn_points = NodePath("Spanwpoints")
|
spawn_points = NodePath("Spanwpoints")
|
||||||
|
spawn_scene = ExtResource("4_cwigj")
|
||||||
|
anim_player = NodePath("AnimationPlayer")
|
||||||
|
movable = NodePath("MovePoint")
|
||||||
|
|
||||||
|
[node name="Cable" type="Line2D" parent="BossMachine" unique_id=1685386266 node_paths=PackedStringArray("target_a", "target_b")]
|
||||||
|
z_index = -1
|
||||||
|
texture_repeat = 2
|
||||||
|
points = PackedVector2Array(400, 54.00006, 433.4146, 90.60722, 455.5857, 112.35656, 478.41217, 132.03459, 501.99182, 149.33456, 526.36475, 163.98936, 551.5204, 175.74184, 577.39026, 184.33817, 603.8364, 189.54301, 630.6511, 191.17232, 657.5769, 189.12798, 684.3383, 183.41934, 710.6758, 174.16643, 736.37134, 161.5936, 761.3873, 145.8899, 785.66644, 127.2229, 809.08386, 105.892075, 831.61316, 82.49083, 853.4609, 57.882732, 875, 33)
|
||||||
|
width = 4.28
|
||||||
|
texture = ExtResource("5_nvwov")
|
||||||
|
texture_mode = 1
|
||||||
|
joint_mode = 2
|
||||||
|
script = ExtResource("8_cwigj")
|
||||||
|
target_a = NodePath("../MovePoint/Cajita/CableEnd")
|
||||||
|
target_b = NodePath("CableStart")
|
||||||
|
|
||||||
|
[node name="CableStart" type="Marker2D" parent="BossMachine/Cable" unique_id=895744519]
|
||||||
|
position = Vector2(875, 33)
|
||||||
|
|
||||||
|
[node name="LineConnect" type="Line2D" parent="BossMachine" unique_id=829074019 node_paths=PackedStringArray("p1", "p2")]
|
||||||
|
position = Vector2(339, 52.00003)
|
||||||
|
points = PackedVector2Array(-9, 32.99997, -9, 81.99997)
|
||||||
|
width = 30.0
|
||||||
|
texture = ExtResource("14_0dfqf")
|
||||||
|
texture_mode = 2
|
||||||
|
script = ExtResource("10_nvwov")
|
||||||
|
p1 = NodePath("../MovePoint/Cajita/ShaftStart")
|
||||||
|
p2 = NodePath("../MovePoint/Claw/ShaftEnd")
|
||||||
|
|
||||||
|
[node name="Cable2" type="Line2D" parent="BossMachine" unique_id=1698104848 node_paths=PackedStringArray("target_a", "target_b")]
|
||||||
|
z_index = -1
|
||||||
|
texture_repeat = 2
|
||||||
|
points = PackedVector2Array(375, 16, 373.8593, 43.191643, 373.0625, 61.10778, 372.23343, 78.42529, 371.35992, 95.06819, 370.42853, 110.982735, 369.4226, 126.13191, 368.31882, 140.49055, 367.08148, 154.0409, 365.65115, 166.7671, 363.91754, 178.64566, 361.64096, 189.61905, 358.13318, 199.45197, 350.2255, 205.54736, 343.66098, 196.34799, 340.47632, 184.70204, 338.34995, 172.23978, 336.70596, 159.31265, 335.30392, 146.16144, 334, 133)
|
||||||
|
width = 5.825
|
||||||
|
texture = ExtResource("5_nvwov")
|
||||||
|
texture_mode = 1
|
||||||
|
joint_mode = 2
|
||||||
|
script = ExtResource("8_cwigj")
|
||||||
|
target_a = NodePath("../MovePoint/Cajita/CableStart")
|
||||||
|
target_b = NodePath("../MovePoint/Claw/CableEnd2")
|
||||||
|
rope_length = 200.0
|
||||||
|
iterations = 10
|
||||||
|
|
||||||
|
[node name="AnimationPlayer" type="AnimationPlayer" parent="BossMachine" unique_id=1359039881]
|
||||||
|
libraries/ = SubResource("AnimationLibrary_cwigj")
|
||||||
|
|
||||||
[node name="Spanwpoints" type="Node2D" parent="BossMachine" unique_id=4456145]
|
[node name="Spanwpoints" type="Node2D" parent="BossMachine" unique_id=4456145]
|
||||||
|
|
||||||
|
|
@ -35,18 +190,51 @@ position = Vector2(221, 521)
|
||||||
[node name="Marker2D4" type="Marker2D" parent="BossMachine/Spanwpoints" unique_id=468086628]
|
[node name="Marker2D4" type="Marker2D" parent="BossMachine/Spanwpoints" unique_id=468086628]
|
||||||
position = Vector2(228, 334)
|
position = Vector2(228, 334)
|
||||||
|
|
||||||
[node name="DangerRound" type="Sprite2D" parent="BossMachine" unique_id=2022174099]
|
|
||||||
self_modulate = Color(1, 0.22745098, 0.42352942, 1)
|
|
||||||
position = Vector2(215, 405.365)
|
|
||||||
scale = Vector2(4, 2.96)
|
|
||||||
texture = ExtResource("3_6wr5o")
|
|
||||||
|
|
||||||
[node name="Claw" type="Sprite2D" parent="BossMachine/DangerRound" unique_id=1906559880]
|
|
||||||
position = Vector2(0, -60)
|
|
||||||
scale = Vector2(0.25, 0.33783785)
|
|
||||||
texture = ExtResource("4_vi6v3")
|
|
||||||
script = ExtResource("6_6wr5o")
|
|
||||||
|
|
||||||
[node name="Girl" type="Sprite2D" parent="BossMachine" unique_id=927639132]
|
[node name="Girl" type="Sprite2D" parent="BossMachine" unique_id=927639132]
|
||||||
position = Vector2(470, 200)
|
position = Vector2(470, 200)
|
||||||
texture = ExtResource("7_6wr5o")
|
texture = ExtResource("7_6wr5o")
|
||||||
|
|
||||||
|
[node name="MovePoint" type="Node2D" parent="BossMachine" unique_id=1751762232]
|
||||||
|
position = Vector2(330, 427)
|
||||||
|
|
||||||
|
[node name="Cajita" type="Sprite2D" parent="BossMachine/MovePoint" unique_id=2011291166]
|
||||||
|
position = Vector2(9, -374.99997)
|
||||||
|
texture = ExtResource("8_t0ayj")
|
||||||
|
|
||||||
|
[node name="CableStart" type="Marker2D" parent="BossMachine/MovePoint/Cajita" unique_id=1979592832]
|
||||||
|
position = Vector2(36, -36.00003)
|
||||||
|
|
||||||
|
[node name="ShaftStart" type="Marker2D" parent="BossMachine/MovePoint/Cajita" unique_id=1442721591]
|
||||||
|
position = Vector2(-9, 32.99997)
|
||||||
|
|
||||||
|
[node name="CableEnd" type="Marker2D" parent="BossMachine/MovePoint/Cajita" unique_id=200717428]
|
||||||
|
position = Vector2(61, 2.0000305)
|
||||||
|
|
||||||
|
[node name="Hitbox" type="Area2D" parent="BossMachine/MovePoint" unique_id=713433656]
|
||||||
|
monitoring = false
|
||||||
|
script = ExtResource("6_io3m0")
|
||||||
|
from_player = false
|
||||||
|
metadata/_custom_type_script = "uid://ejd25ul4j5pp"
|
||||||
|
|
||||||
|
[node name="CollisionShape2D" type="CollisionShape2D" parent="BossMachine/MovePoint/Hitbox" unique_id=1479358985]
|
||||||
|
shape = SubResource("RectangleShape2D_i50kd")
|
||||||
|
|
||||||
|
[node name="Claw" type="AnimatedSprite2D" parent="BossMachine/MovePoint" unique_id=218316761]
|
||||||
|
z_as_relative = false
|
||||||
|
position = Vector2(2, -224.99994)
|
||||||
|
sprite_frames = SubResource("SpriteFrames_ix723")
|
||||||
|
frame = 3
|
||||||
|
frame_progress = 0.31943718
|
||||||
|
|
||||||
|
[node name="CableEnd2" type="Marker2D" parent="BossMachine/MovePoint/Claw" unique_id=241840135]
|
||||||
|
position = Vector2(2, -69.00006)
|
||||||
|
|
||||||
|
[node name="ShaftEnd" type="Marker2D" parent="BossMachine/MovePoint/Claw" unique_id=1645182021]
|
||||||
|
position = Vector2(-2, -68.00006)
|
||||||
|
|
||||||
|
[node name="DangerRound" type="Sprite2D" parent="BossMachine/MovePoint" unique_id=2022174099]
|
||||||
|
self_modulate = Color(1, 0.22745098, 0.42352942, 1)
|
||||||
|
z_index = -1
|
||||||
|
position = Vector2(1, 3.0517578e-05)
|
||||||
|
scale = Vector2(4, 2.96)
|
||||||
|
texture = ExtResource("3_6wr5o")
|
||||||
|
|
|
||||||
|
|
@ -2,9 +2,11 @@ extends Node2D
|
||||||
|
|
||||||
@export var speed = 300;
|
@export var speed = 300;
|
||||||
@export var spawn_points : Node2D
|
@export var spawn_points : Node2D
|
||||||
|
@export var spawn_scene : PackedScene
|
||||||
|
@export var anim_player : AnimationPlayer
|
||||||
|
@export var movable : Node2D
|
||||||
|
|
||||||
var target_pos := Vector2(0, 0)
|
var target_pos := Vector2(0, 0)
|
||||||
@onready var marker : Sprite2D = $DangerRound
|
|
||||||
@onready var claw : Claw = $DangerRound/Claw
|
|
||||||
|
|
||||||
enum s { Follow, Smash, Spawn, Laser}
|
enum s { Follow, Smash, Spawn, Laser}
|
||||||
var state = s.Follow
|
var state = s.Follow
|
||||||
|
|
@ -29,12 +31,21 @@ func spawn_minions(times : int):
|
||||||
points.shuffle()
|
points.shuffle()
|
||||||
for i in range(times):
|
for i in range(times):
|
||||||
var p = points[i].global_position
|
var p = points[i].global_position
|
||||||
await create_tween().tween_property(marker, "global_position", p, 1).finished
|
await create_tween().tween_property(movable, "global_position", p, 1).finished
|
||||||
await claw.pickup()
|
anim_player.play("grab")
|
||||||
|
await anim_player.animation_finished
|
||||||
state = s.Follow
|
state = s.Follow
|
||||||
|
|
||||||
|
func spawn_enemies():
|
||||||
|
for j in range(3):
|
||||||
|
var enemy = spawn_scene.instantiate()
|
||||||
|
enemy.global_position = movable.global_position
|
||||||
|
add_child(enemy)
|
||||||
|
await get_tree().create_timer(0.1).timeout
|
||||||
|
|
||||||
func smash():
|
func smash():
|
||||||
await claw.smash();
|
anim_player.play("smash")
|
||||||
|
await anim_player.animation_finished
|
||||||
if randf() < 0.7:
|
if randf() < 0.7:
|
||||||
state = s.Follow
|
state = s.Follow
|
||||||
else:
|
else:
|
||||||
|
|
@ -52,4 +63,4 @@ func follow(delta : float):
|
||||||
following = max_follow_time;
|
following = max_follow_time;
|
||||||
|
|
||||||
func move_to(pos : Vector2, delta : float):
|
func move_to(pos : Vector2, delta : float):
|
||||||
marker.global_position = marker.global_position.move_toward(pos, delta * speed)
|
movable.global_position = movable.global_position.move_toward(pos, delta * speed)
|
||||||
|
|
|
||||||
24
scenes/boss_spawner.tscn
Normal file
|
|
@ -0,0 +1,24 @@
|
||||||
|
[gd_scene format=3 uid="uid://b5m10vpq0kk8n"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" uid="uid://cojrjktxjgd6c" path="res://scripts/boss_spawner.gd" id="1_2trd2"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://d1jtklq43eomd" path="res://assets/enemies/blue-1.png" id="2_w6jr5"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://dvlr5hamruqrd" path="res://scenes/enemy_base.tscn" id="3_ft6eo"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://c0e666ifvdck6" path="res://assets/enemies/cerdipulpo_1.png" id="4_m15x1"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://ya6jfltqnl1b" path="res://scenes/heart_enemy.tscn" id="5_826mk"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://df5v6y1jiuc1x" path="res://assets/enemies/purple-1.png" id="6_omqto"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://bgb7ayjiy37t7" path="res://scenes/enemy_purple.tscn" id="7_0d2hh"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://trbpyx771jjf" path="res://assets/enemies/orange-8.png" id="8_is1el"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://1fqyupmquole" path="res://scenes/star_enemy.tscn" id="9_03vnn"]
|
||||||
|
|
||||||
|
[sub_resource type="CircleShape2D" id="CircleShape2D_2trd2"]
|
||||||
|
radius = 15.033297
|
||||||
|
|
||||||
|
[node name="BossSpawner" type="RigidBody2D" unique_id=768543663]
|
||||||
|
script = ExtResource("1_2trd2")
|
||||||
|
enemies = Array[Array]([[ExtResource("2_w6jr5"), ExtResource("3_ft6eo")], [ExtResource("4_m15x1"), ExtResource("5_826mk")], [ExtResource("6_omqto"), ExtResource("7_0d2hh")], [ExtResource("8_is1el"), ExtResource("9_03vnn")]])
|
||||||
|
|
||||||
|
[node name="CollisionShape2D" type="CollisionShape2D" parent="." unique_id=371157067]
|
||||||
|
shape = SubResource("CircleShape2D_2trd2")
|
||||||
|
|
||||||
|
[node name="Sprite2D" type="Sprite2D" parent="." unique_id=65910902]
|
||||||
|
texture = ExtResource("2_w6jr5")
|
||||||
|
|
@ -1,16 +0,0 @@
|
||||||
class_name Claw extends Sprite2D
|
|
||||||
|
|
||||||
func smash():
|
|
||||||
await get_tree().create_timer(0.8).timeout
|
|
||||||
var t = create_tween()
|
|
||||||
|
|
||||||
t.tween_property(self, "position:y", 0, 0.1);
|
|
||||||
await t.tween_property(self, "position:y", -80, 1).finished;
|
|
||||||
|
|
||||||
|
|
||||||
func pickup():
|
|
||||||
await get_tree().create_timer(0.2).timeout
|
|
||||||
var t = create_tween()
|
|
||||||
|
|
||||||
t.tween_property(self, "position:y", 0, 0.4);
|
|
||||||
await t.tween_property(self, "position:y", -80, 1).finished;
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
[gd_scene format=3 uid="uid://ncgwx0yjn2gt"]
|
[gd_scene format=3 uid="uid://ncgwx0yjn2gt"]
|
||||||
|
|
||||||
[ext_resource type="Script" uid="uid://sbseykg05177" path="res://scripts/player.gd" id="1_ur7pv"]
|
[ext_resource type="Script" uid="uid://sbseykg05177" path="res://scripts/player.gd" id="1_ur7pv"]
|
||||||
[ext_resource type="Resource" uid="uid://butr81mog5qjy" path="res://resources/purple_attack.tres" id="2_3v2ag"]
|
[ext_resource type="Resource" uid="uid://cf7x0uuj6wnil" path="res://resources/scythe.tres" id="2_3v2ag"]
|
||||||
[ext_resource type="PackedScene" uid="uid://bp45yth1y3ia5" path="res://scenes/player_explosion.tscn" id="3_3v2ag"]
|
[ext_resource type="PackedScene" uid="uid://bp45yth1y3ia5" path="res://scenes/player_explosion.tscn" id="3_3v2ag"]
|
||||||
[ext_resource type="Script" uid="uid://synocbtvgrf4" path="res://scripts/shadow.gd" id="4_3v2ag"]
|
[ext_resource type="Script" uid="uid://synocbtvgrf4" path="res://scripts/shadow.gd" id="4_3v2ag"]
|
||||||
[ext_resource type="Texture2D" uid="uid://d3abeekjumqyb" path="res://assets/player/maske1.png" id="5_jej6c"]
|
[ext_resource type="Texture2D" uid="uid://d3abeekjumqyb" path="res://assets/player/maske1.png" id="5_jej6c"]
|
||||||
|
|
|
||||||
|
|
@ -2,10 +2,14 @@ extends Sprite2D
|
||||||
|
|
||||||
@export var start_mask : MaskData
|
@export var start_mask : MaskData
|
||||||
@export var spawn : RoomSpawn
|
@export var spawn : RoomSpawn
|
||||||
|
var triggered = false
|
||||||
|
|
||||||
func _process(delta: float) -> void:
|
func _input(event: InputEvent) -> void:
|
||||||
|
if triggered: return
|
||||||
var player : Player = get_tree().get_first_node_in_group("player")
|
var player : Player = get_tree().get_first_node_in_group("player")
|
||||||
if player.global_position.distance_to(global_position) < 50:
|
|
||||||
if Input.is_action_pressed("interact"):
|
if (event.is_action_pressed("interact") and
|
||||||
|
player.global_position.distance_to(global_position) < 50):
|
||||||
player.equip_mask(start_mask)
|
player.equip_mask(start_mask)
|
||||||
spawn.start_next_wave()
|
spawn.start_next_wave()
|
||||||
|
triggered = true
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
[gd_scene format=3 uid="uid://bkjiwmc3yua2s"]
|
[gd_scene format=3 uid="uid://bkjiwmc3yua2s"]
|
||||||
|
|
||||||
[ext_resource type="PackedScene" uid="uid://ncgwx0yjn2gt" path="res://scenes/player.tscn" id="1_kiokp"]
|
[ext_resource type="PackedScene" uid="uid://ncgwx0yjn2gt" path="res://scenes/player.tscn" id="1_kiokp"]
|
||||||
[ext_resource type="Texture2D" uid="uid://de8ehypelmgbq" path="res://assets/enviroment/turquoise_room.png" id="2_2diqr"]
|
[ext_resource type="Texture2D" uid="uid://cme75i5kh0atg" path="res://assets/enviroment/turquoise_room.png" id="2_2diqr"]
|
||||||
[ext_resource type="Script" uid="uid://dr2icqss6nekh" path="res://scripts/room_spawn.gd" id="3_2diqr"]
|
[ext_resource type="Script" uid="uid://dr2icqss6nekh" path="res://scripts/room_spawn.gd" id="3_2diqr"]
|
||||||
[ext_resource type="Script" uid="uid://beuumo3n5tycr" path="res://scripts/wave_node.gd" id="4_o7h1l"]
|
[ext_resource type="Script" uid="uid://beuumo3n5tycr" path="res://scripts/wave_node.gd" id="4_o7h1l"]
|
||||||
[ext_resource type="Script" uid="uid://dm2ayvfebi7x5" path="res://scripts/spawner.gd" id="5_rwd0d"]
|
[ext_resource type="Script" uid="uid://dm2ayvfebi7x5" path="res://scripts/spawner.gd" id="5_rwd0d"]
|
||||||
|
|
@ -9,15 +9,15 @@
|
||||||
[ext_resource type="PackedScene" uid="uid://ya6jfltqnl1b" path="res://scenes/heart_enemy.tscn" id="7_rwd0d"]
|
[ext_resource type="PackedScene" uid="uid://ya6jfltqnl1b" path="res://scenes/heart_enemy.tscn" id="7_rwd0d"]
|
||||||
|
|
||||||
[sub_resource type="NavigationPolygon" id="NavigationPolygon_kiokp"]
|
[sub_resource type="NavigationPolygon" id="NavigationPolygon_kiokp"]
|
||||||
vertices = PackedVector2Array(1047.2266, 532.96094, -122.703125, 542.90625, -121.78125, 510.84375, 1503.8984, 529.0781, 1429, 529.71875, 1373.5391, -529.8828, 1494.0938, -530.90625, 212.04688, -241.00781, 382.3672, -241.82813, 646.78906, 97.89844, 480.7422, 102.27344, 136.10938, 6.46875, 134.04688, -165.79688, 489.72656, 447.0703, -29.859375, 450.92188, -24.117188, 9.7421875, 79.32031, 9.5390625, 79.24219, 6.9921875, -97.74219, -138.49219, -115.671875, 298.25, -92.27344, -517.0781, 62.929688, -518.4297, 78.52344, -16, -86.703125, -143.64063, 893.8906, -419.96094, 918.4375, -402.72656, 891.09375, -401.96094, 635.8828, -417.10156, 737.0781, 95.53906, 474.14844, -242.27344, 633.8906, -243.04688, 905.02344, 91.140625, 1291.8203, -75, 1043.1328, -75, 1036.0313, -326.1328, 1287.1797, -332.72656)
|
vertices = PackedVector2Array(1047.2266, 532.96094, -122.703125, 542.90625, -121.78125, 510.84375, 1503.8984, 529.0781, 1429, 529.71875, 1373.5391, -529.8828, 1494.0938, -530.90625, 212.04688, -241.00781, 382.3672, -241.82813, 646.78906, 97.89844, 480.7422, 102.27344, 136.10938, 6.46875, 134.04688, -165.79688, 489.72656, 447.0703, -29.859375, 450.92188, -24.117188, 9.7421875, 79.32031, 9.5390625, 79.24219, 6.9921875, -97.74219, -138.49219, -115.671875, 298.25, -92.27344, -517.0781, 62.929688, -518.4297, 78.52344, -16, -86.703125, -143.64063, 893.8906, -419.96094, 918.4375, -402.72656, 891.09375, -401.96094, 635.8828, -417.10156, 737.0781, 95.53906, 474.14844, -242.27344, 633.8906, -243.04688, 905.02344, 91.140625, 1037.1484, -75, 1018.8828, -51.851563, 1010.8125, -337.9375, 1027.9609, -325.92188, 1287.1797, -332.72656, 1291.8203, -75)
|
||||||
polygons = Array[PackedInt32Array]([PackedInt32Array(0, 1, 2), PackedInt32Array(3, 4, 5, 6), PackedInt32Array(7, 8, 9, 10, 11, 12), PackedInt32Array(10, 13, 14, 15, 16), PackedInt32Array(15, 17, 16), PackedInt32Array(10, 16, 11), PackedInt32Array(18, 19, 20), PackedInt32Array(21, 22, 23, 20), PackedInt32Array(23, 18, 20), PackedInt32Array(24, 25, 26, 27), PackedInt32Array(28, 29, 30, 31), PackedInt32Array(30, 27, 26, 31), PackedInt32Array(32, 33, 34, 35)])
|
polygons = Array[PackedInt32Array]([PackedInt32Array(0, 1, 2), PackedInt32Array(3, 4, 5, 6), PackedInt32Array(7, 8, 9, 10, 11, 12), PackedInt32Array(10, 13, 14, 15, 16), PackedInt32Array(15, 17, 16), PackedInt32Array(10, 16, 11), PackedInt32Array(18, 19, 20), PackedInt32Array(21, 22, 23, 20), PackedInt32Array(23, 18, 20), PackedInt32Array(24, 25, 26, 27), PackedInt32Array(28, 29, 30, 31), PackedInt32Array(30, 27, 26, 31), PackedInt32Array(32, 33, 34, 35), PackedInt32Array(36, 37, 32, 35)])
|
||||||
outlines = Array[PackedVector2Array]([PackedVector2Array(-102, -527, 1504, -541, 1514, 539, -133, 553)])
|
outlines = Array[PackedVector2Array]([PackedVector2Array(-102, -527, 1504, -541, 1514, 539, -133, 553)])
|
||||||
|
|
||||||
[sub_resource type="RectangleShape2D" id="RectangleShape2D_kiokp"]
|
[sub_resource type="RectangleShape2D" id="RectangleShape2D_kiokp"]
|
||||||
size = Vector2(486.032, 52.7081)
|
size = Vector2(486.032, 52.7081)
|
||||||
|
|
||||||
[sub_resource type="RectangleShape2D" id="RectangleShape2D_2diqr"]
|
[sub_resource type="RectangleShape2D" id="RectangleShape2D_2diqr"]
|
||||||
size = Vector2(486.88434, 122.73932)
|
size = Vector2(486.88434, 97.862274)
|
||||||
|
|
||||||
[node name="World2" type="Node2D" unique_id=219609187]
|
[node name="World2" type="Node2D" unique_id=219609187]
|
||||||
|
|
||||||
|
|
@ -49,7 +49,7 @@ shape = SubResource("RectangleShape2D_kiokp")
|
||||||
collision_layer = 8
|
collision_layer = 8
|
||||||
|
|
||||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="NavigationRegion2D/StaticBody2D3" unique_id=783263591]
|
[node name="CollisionShape2D" type="CollisionShape2D" parent="NavigationRegion2D/StaticBody2D3" unique_id=783263591]
|
||||||
position = Vector2(969.5878, -150.63795)
|
position = Vector2(957.15424, -150.28679)
|
||||||
rotation = 1.5425601
|
rotation = 1.5425601
|
||||||
shape = SubResource("RectangleShape2D_2diqr")
|
shape = SubResource("RectangleShape2D_2diqr")
|
||||||
|
|
||||||
|
|
|
||||||
18
scripts/boss_spawner.gd
Normal file
|
|
@ -0,0 +1,18 @@
|
||||||
|
extends RigidBody2D
|
||||||
|
|
||||||
|
@export var enemies : Array[Array]
|
||||||
|
@onready var sprite : Sprite2D = $Sprite2D
|
||||||
|
|
||||||
|
func _ready() -> void:
|
||||||
|
var this_enemy = enemies.pick_random()
|
||||||
|
sprite.texture = this_enemy[0]
|
||||||
|
|
||||||
|
angular_velocity = (randf() - 0.5) * 46;
|
||||||
|
linear_velocity.y = -300;
|
||||||
|
linear_velocity.x = (randf() - 0.5) * 300
|
||||||
|
|
||||||
|
await get_tree().create_timer(randf() * 0.2 + 0.6).timeout
|
||||||
|
queue_free()
|
||||||
|
var enemy : Enemy = this_enemy[1].instantiate()
|
||||||
|
enemy.global_position = global_position
|
||||||
|
get_tree().root.add_child(enemy)
|
||||||
1
scripts/boss_spawner.gd.uid
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
uid://cojrjktxjgd6c
|
||||||
64
scripts/cable.gd
Normal file
|
|
@ -0,0 +1,64 @@
|
||||||
|
@tool
|
||||||
|
extends Line2D
|
||||||
|
|
||||||
|
@export_group("Targets")
|
||||||
|
@export var target_a: Node2D
|
||||||
|
@export var target_b: Node2D
|
||||||
|
|
||||||
|
@export_group("Cable Settings")
|
||||||
|
@export var segment_count: int = 20
|
||||||
|
@export var rope_length: float = 300.0
|
||||||
|
@export var gravity: Vector2 = Vector2(0, 9.8)
|
||||||
|
@export var iterations: int = 5
|
||||||
|
|
||||||
|
var points_pos: Array[Vector2] = []
|
||||||
|
var points_prev: Array[Vector2] = []
|
||||||
|
var segment_dist: float
|
||||||
|
|
||||||
|
func _ready():
|
||||||
|
segment_dist = rope_length / segment_count
|
||||||
|
|
||||||
|
var start_pos = target_a.global_position if target_a else global_position
|
||||||
|
for i in range(segment_count):
|
||||||
|
points_pos.append(start_pos)
|
||||||
|
points_prev.append(start_pos)
|
||||||
|
|
||||||
|
points = PackedVector2Array(points_pos)
|
||||||
|
|
||||||
|
func _physics_process(delta: float):
|
||||||
|
if not target_a or not target_b:
|
||||||
|
return
|
||||||
|
|
||||||
|
_update_points(delta)
|
||||||
|
|
||||||
|
for i in range(iterations):
|
||||||
|
_apply_constraints()
|
||||||
|
|
||||||
|
var local_points = PackedVector2Array()
|
||||||
|
for p in points_pos:
|
||||||
|
local_points.append(to_local(p))
|
||||||
|
points = local_points
|
||||||
|
|
||||||
|
func _update_points(delta: float):
|
||||||
|
for i in range(segment_count):
|
||||||
|
var velocity = points_pos[i] - points_prev[i]
|
||||||
|
points_prev[i] = points_pos[i]
|
||||||
|
points_pos[i] += velocity + gravity * delta * 50.0
|
||||||
|
|
||||||
|
func _apply_constraints():
|
||||||
|
points_pos[0] = target_a.global_position
|
||||||
|
points_pos[segment_count - 1] = target_b.global_position
|
||||||
|
|
||||||
|
for i in range(segment_count - 1):
|
||||||
|
var p1 = points_pos[i]
|
||||||
|
var p2 = points_pos[i+1]
|
||||||
|
var diff = p1 - p2
|
||||||
|
var distance = diff.length()
|
||||||
|
var error = distance - segment_dist
|
||||||
|
var percent = error / distance
|
||||||
|
var offset = diff * percent * 0.5
|
||||||
|
|
||||||
|
if i != 0:
|
||||||
|
points_pos[i] -= offset
|
||||||
|
if i + 1 != segment_count - 1:
|
||||||
|
points_pos[i+1] += offset
|
||||||
1
scripts/cable.gd.uid
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
uid://dr78dot5agp2p
|
||||||
|
|
@ -14,6 +14,7 @@ func _ready() -> void:
|
||||||
target_node = get_tree().get_first_node_in_group("player")
|
target_node = get_tree().get_first_node_in_group("player")
|
||||||
nav_agent = NavigationAgent2D.new()
|
nav_agent = NavigationAgent2D.new()
|
||||||
add_child(nav_agent)
|
add_child(nav_agent)
|
||||||
|
move_speed = move_speed + (randf() - 0.5) * 10.0
|
||||||
|
|
||||||
func _physics_process(delta: float) -> void:
|
func _physics_process(delta: float) -> void:
|
||||||
if not target_node: return
|
if not target_node: return
|
||||||
|
|
@ -32,6 +33,9 @@ func _physics_process(delta: float) -> void:
|
||||||
else:
|
else:
|
||||||
_handle_attack_charge(delta)
|
_handle_attack_charge(delta)
|
||||||
|
|
||||||
|
if not nav_agent.is_target_reachable():
|
||||||
|
velocity = Vector2.ZERO;
|
||||||
|
|
||||||
_sprite_anim()
|
_sprite_anim()
|
||||||
|
|
||||||
super._physics_process(delta)
|
super._physics_process(delta)
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@ signal hit_entity(entity : Entity);
|
||||||
signal hit_obstacle;
|
signal hit_obstacle;
|
||||||
|
|
||||||
|
|
||||||
var from_player = true
|
@export var from_player = true
|
||||||
var enabled = true
|
var enabled = true
|
||||||
@export var deal_damage = true
|
@export var deal_damage = true
|
||||||
@export var dmg = 1
|
@export var dmg = 1
|
||||||
|
|
|
||||||
9
scripts/line_connect.gd
Normal file
|
|
@ -0,0 +1,9 @@
|
||||||
|
@tool
|
||||||
|
extends Line2D
|
||||||
|
|
||||||
|
@export var p1 : Node2D
|
||||||
|
@export var p2 : Node2D
|
||||||
|
|
||||||
|
func _physics_process(delta: float) -> void:
|
||||||
|
points[0] = to_local(p1.global_position)
|
||||||
|
points[1] = to_local(p2.global_position)
|
||||||
1
scripts/line_connect.gd.uid
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
uid://mc1fw6f5texh
|
||||||
|
|
@ -18,7 +18,7 @@ func _physics_process(delta: float) -> void:
|
||||||
position += dir * speed * delta
|
position += dir * speed * delta
|
||||||
|
|
||||||
func _on_hitbox_hit_obstacle() -> void:
|
func _on_hitbox_hit_obstacle() -> void:
|
||||||
queue_free()
|
pass
|
||||||
|
|
||||||
func _on_hitbox_hit_entity(entity: Entity) -> void:
|
func _on_hitbox_hit_entity(entity: Entity) -> void:
|
||||||
queue_free()
|
queue_free()
|
||||||
|
|
|
||||||