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"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://de8ehypelmgbq"
|
||||
uid="uid://cme75i5kh0atg"
|
||||
path="res://.godot/imported/turquoise_room.png-c5069b9c77ead1e405c18230bcfa1a9a.ctex"
|
||||
metadata={
|
||||
"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="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="Texture2D" uid="uid://bqgunp07jecl7" path="res://assets/bosses/claw.png" id="4_vi6v3"]
|
||||
[ext_resource type="Script" uid="uid://t8ykexnisuw3" path="res://scenes/claw.gd" id="6_6wr5o"]
|
||||
[ext_resource type="PackedScene" uid="uid://b5m10vpq0kk8n" path="res://scenes/boss_spawner.tscn" id="4_cwigj"]
|
||||
[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="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="Arena" type="Sprite2D" parent="." unique_id=138900999]
|
||||
z_index = -2
|
||||
position = Vector2(491, 321)
|
||||
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")]
|
||||
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")
|
||||
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]
|
||||
|
||||
|
|
@ -35,18 +190,51 @@ position = Vector2(221, 521)
|
|||
[node name="Marker2D4" type="Marker2D" parent="BossMachine/Spanwpoints" unique_id=468086628]
|
||||
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]
|
||||
position = Vector2(470, 200)
|
||||
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 spawn_points : Node2D
|
||||
@export var spawn_scene : PackedScene
|
||||
@export var anim_player : AnimationPlayer
|
||||
@export var movable : Node2D
|
||||
|
||||
var target_pos := Vector2(0, 0)
|
||||
@onready var marker : Sprite2D = $DangerRound
|
||||
@onready var claw : Claw = $DangerRound/Claw
|
||||
|
||||
enum s { Follow, Smash, Spawn, Laser}
|
||||
var state = s.Follow
|
||||
|
|
@ -29,12 +31,21 @@ func spawn_minions(times : int):
|
|||
points.shuffle()
|
||||
for i in range(times):
|
||||
var p = points[i].global_position
|
||||
await create_tween().tween_property(marker, "global_position", p, 1).finished
|
||||
await claw.pickup()
|
||||
await create_tween().tween_property(movable, "global_position", p, 1).finished
|
||||
anim_player.play("grab")
|
||||
await anim_player.animation_finished
|
||||
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():
|
||||
await claw.smash();
|
||||
anim_player.play("smash")
|
||||
await anim_player.animation_finished
|
||||
if randf() < 0.7:
|
||||
state = s.Follow
|
||||
else:
|
||||
|
|
@ -52,4 +63,4 @@ func follow(delta : float):
|
|||
following = max_follow_time;
|
||||
|
||||
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"]
|
||||
|
||||
[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="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"]
|
||||
|
|
|
|||
|
|
@ -2,10 +2,14 @@ extends Sprite2D
|
|||
|
||||
@export var start_mask : MaskData
|
||||
@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")
|
||||
if player.global_position.distance_to(global_position) < 50:
|
||||
if Input.is_action_pressed("interact"):
|
||||
player.equip_mask(start_mask)
|
||||
spawn.start_next_wave()
|
||||
|
||||
if (event.is_action_pressed("interact") and
|
||||
player.global_position.distance_to(global_position) < 50):
|
||||
player.equip_mask(start_mask)
|
||||
spawn.start_next_wave()
|
||||
triggered = true
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
[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="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://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"]
|
||||
|
|
@ -9,15 +9,15 @@
|
|||
[ext_resource type="PackedScene" uid="uid://ya6jfltqnl1b" path="res://scenes/heart_enemy.tscn" id="7_rwd0d"]
|
||||
|
||||
[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)
|
||||
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)])
|
||||
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), PackedInt32Array(36, 37, 32, 35)])
|
||||
outlines = Array[PackedVector2Array]([PackedVector2Array(-102, -527, 1504, -541, 1514, 539, -133, 553)])
|
||||
|
||||
[sub_resource type="RectangleShape2D" id="RectangleShape2D_kiokp"]
|
||||
size = Vector2(486.032, 52.7081)
|
||||
|
||||
[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]
|
||||
|
||||
|
|
@ -49,7 +49,7 @@ shape = SubResource("RectangleShape2D_kiokp")
|
|||
collision_layer = 8
|
||||
|
||||
[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
|
||||
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")
|
||||
nav_agent = NavigationAgent2D.new()
|
||||
add_child(nav_agent)
|
||||
move_speed = move_speed + (randf() - 0.5) * 10.0
|
||||
|
||||
func _physics_process(delta: float) -> void:
|
||||
if not target_node: return
|
||||
|
|
@ -32,6 +33,9 @@ func _physics_process(delta: float) -> void:
|
|||
else:
|
||||
_handle_attack_charge(delta)
|
||||
|
||||
if not nav_agent.is_target_reachable():
|
||||
velocity = Vector2.ZERO;
|
||||
|
||||
_sprite_anim()
|
||||
|
||||
super._physics_process(delta)
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ signal hit_entity(entity : Entity);
|
|||
signal hit_obstacle;
|
||||
|
||||
|
||||
var from_player = true
|
||||
@export var from_player = true
|
||||
var enabled = true
|
||||
@export var deal_damage = true
|
||||
@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
|
||||
|
||||
func _on_hitbox_hit_obstacle() -> void:
|
||||
queue_free()
|
||||
pass
|
||||
|
||||
func _on_hitbox_hit_entity(entity: Entity) -> void:
|
||||
queue_free()
|
||||
|
|
|
|||