Update hitboxes for consistency (#608)

Co-authored-by: Joe H <97353363+JHDev2006@users.noreply.github.com>
This commit is contained in:
John Cooper McDonald
2025-10-17 11:12:57 -05:00
committed by GitHub
parent ed297891fd
commit 9a17f140e0
27 changed files with 246 additions and 209 deletions

View File

@@ -5,10 +5,10 @@
[ext_resource type="Script" uid="uid://caq1qiwmy0mox" path="res://Scripts/Parts/BetterAnimatedSprite.gd" id="3_4g6tc"]
[ext_resource type="JSON" path="res://Assets/Sprites/Blocks/SpikeBlock.json" id="4_dftxp"]
[ext_resource type="Script" uid="uid://cbal8ms2oe1ik" path="res://Scripts/Classes/Components/ResourceSetterNew.gd" id="4_w3ysb"]
[ext_resource type="Script" uid="uid://cnheej0sxmoxg" path="res://Scripts/Parts/PlayerDetection.gd" id="6_l3otb"]
[ext_resource type="Script" uid="uid://cqif1li7otvpl" path="res://Scripts/Parts/SpriteFramesToJsonConverter.gd" id="7_4g6tc"]
[ext_resource type="Script" uid="uid://5octqlf4ohel" path="res://Scripts/Classes/Components/ScoreNoteSpawner.gd" id="7_bcd7j"]
[ext_resource type="Script" uid="uid://cmvlgsjmsk0v5" path="res://Scripts/Classes/Resources/ThemedResource.gd" id="8_w3ysb"]
[ext_resource type="Script" uid="uid://chj8hu207lrh" path="res://Scripts/Classes/Components/EnemyPlayerDetection.gd" id="10_6hvsh"]
[ext_resource type="Script" uid="uid://d4a7yp6e55u8t" path="res://Scripts/Classes/Components/TrackJoint.gd" id="10_xfdnj"]
[sub_resource type="AtlasTexture" id="AtlasTexture_v0way"]
@@ -154,9 +154,11 @@ metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
[node name="Collision" type="CollisionShape2D" parent="."]
shape = SubResource("RectangleShape2D_cgdwi")
[node name="Hitbox" type="Area2D" parent="."]
[node name="PlayerDetection" type="Area2D" parent="."]
script = ExtResource("6_l3otb")
metadata/_custom_type_script = "uid://cnheej0sxmoxg"
[node name="Shape" type="CollisionShape2D" parent="Hitbox"]
[node name="CollisionShape2D" type="CollisionShape2D" parent="PlayerDetection"]
shape = SubResource("RectangleShape2D_r7ue2")
[node name="VisibleOnScreenEnabler2D" type="VisibleOnScreenEnabler2D" parent="."]
@@ -176,10 +178,4 @@ script = ExtResource("10_xfdnj")
offset = Vector2(0, 0)
metadata/_custom_type_script = "uid://d4a7yp6e55u8t"
[node name="EnemyPlayerDetection" type="Node" parent="." node_paths=PackedStringArray("hitbox")]
script = ExtResource("10_6hvsh")
hitbox = NodePath("../Hitbox")
metadata/_custom_type_script = "uid://chj8hu207lrh"
[connection signal="player_hit" from="EnemyPlayerDetection" to="." method="damage_player"]
[connection signal="player_stomped_on" from="EnemyPlayerDetection" to="." method="damage_player"]
[connection signal="player_entered" from="PlayerDetection" to="." method="damage_player"]

View File

@@ -1,4 +1,4 @@
[gd_scene load_steps=11 format=3 uid="uid://bpsrc21amnlgb"]
[gd_scene load_steps=12 format=3 uid="uid://bpsrc21amnlgb"]
[ext_resource type="Script" uid="uid://bbp3jg7yg1700" path="res://Scripts/Classes/Entities/Enemies/Boo.gd" id="1_ilcde"]
[ext_resource type="Texture2D" uid="uid://c3l6ynlufxcfp" path="res://Assets/Sprites/Enemies/Boo.png" id="1_mkqqf"]
@@ -6,6 +6,7 @@
[ext_resource type="JSON" path="res://Assets/Sprites/Enemies/Boo.json" id="3_xhmhl"]
[ext_resource type="Script" uid="uid://5octqlf4ohel" path="res://Scripts/Classes/Components/ScoreNoteSpawner.gd" id="5_xhmhl"]
[ext_resource type="Script" uid="uid://d4a7yp6e55u8t" path="res://Scripts/Classes/Components/TrackJoint.gd" id="6_7u2yg"]
[ext_resource type="Script" uid="uid://chj8hu207lrh" path="res://Scripts/Classes/Components/EnemyPlayerDetection.gd" id="7_wu7y3"]
[sub_resource type="AtlasTexture" id="AtlasTexture_wu7y3"]
atlas = ExtResource("1_mkqqf")
@@ -37,12 +38,14 @@ animations = [{
[sub_resource type="RectangleShape2D" id="RectangleShape2D_ilcde"]
size = Vector2(12, 12)
[node name="Boo" type="Node2D" groups=["Enemies"]]
[node name="Boo" type="CharacterBody2D" groups=["Enemies"]]
script = ExtResource("1_ilcde")
metadata/_custom_type_script = "uid://bpydbpyjk1mt4"
[node name="Sprite" type="AnimatedSprite2D" parent="."]
position = Vector2(0, -8)
scale = Vector2(-1, 1)
rotation = -3.1415927
scale = Vector2(1, -1)
sprite_frames = SubResource("SpriteFrames_i46bk")
animation = &"WhiteIdle"
flip_h = true
@@ -74,5 +77,14 @@ script = ExtResource("6_7u2yg")
disable_physics = false
metadata/_custom_type_script = "uid://d4a7yp6e55u8t"
[node name="EnemyPlayerDetection" type="Node" parent="." node_paths=PackedStringArray("hitbox")]
script = ExtResource("7_wu7y3")
hitbox = NodePath("../Hitbox")
metadata/_custom_type_script = "uid://chj8hu207lrh"
[connection signal="killed" from="." to="ScoreNoteSpawner" method="spawn_note" binds= [1000]]
[connection signal="area_entered" from="Hitbox" to="." method="on_area_entered"]
[connection signal="killed" from="." to="." method="summon_smoke_particle" unbinds=1]
[connection signal="hammer_player_hit" from="EnemyPlayerDetection" to="." method="die_from_hammer"]
[connection signal="invincible_player_hit" from="EnemyPlayerDetection" to="." method="die_from_object"]
[connection signal="player_hit" from="EnemyPlayerDetection" to="." method="damage_player"]
[connection signal="player_stomped_on" from="EnemyPlayerDetection" to="." method="damage_player"]

View File

@@ -1,4 +1,4 @@
[gd_scene load_steps=16 format=3 uid="uid://coasuq2vsmlce"]
[gd_scene load_steps=17 format=3 uid="uid://coasuq2vsmlce"]
[ext_resource type="Texture2D" uid="uid://c3l6ynlufxcfp" path="res://Assets/Sprites/Enemies/Boo.png" id="1_bek6j"]
[ext_resource type="Script" uid="uid://djdtghrjbpv2i" path="res://Scripts/Classes/Entities/Enemies/BooBuddies.gd" id="1_vavt3"]
@@ -10,6 +10,7 @@
[ext_resource type="Script" uid="uid://ctfbuoxtnnl0q" path="res://Scripts/Classes/Components/EditorPropertyExposer.gd" id="6_5b8ig"]
[ext_resource type="Script" uid="uid://cbal8ms2oe1ik" path="res://Scripts/Classes/Components/ResourceSetterNew.gd" id="8_ifdhg"]
[ext_resource type="JSON" path="res://Assets/Sprites/Enemies/BooBuddy.json" id="9_ifdhg"]
[ext_resource type="Script" uid="uid://chj8hu207lrh" path="res://Scripts/Classes/Components/EnemyPlayerDetection.gd" id="10_al3pe"]
[sub_resource type="AtlasTexture" id="AtlasTexture_7u2yg"]
atlas = ExtResource("1_bek6j")
@@ -62,8 +63,9 @@ func _physics_process(delta: float) -> void:
idx += 1
"
[node name="BooBuddies" type="Node2D" groups=["Enemies"]]
[node name="BooBuddies" type="CharacterBody2D" groups=["Enemies"]]
script = ExtResource("1_vavt3")
metadata/_custom_type_script = "uid://bpydbpyjk1mt4"
[node name="RotationJoint" type="Sprite2D" parent="."]
unique_name_in_owner = true
@@ -106,6 +108,11 @@ metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
[node name="Shape" type="CollisionShape2D" parent="Boos/Boo1/Hitbox"]
shape = SubResource("RectangleShape2D_1eh5v")
[node name="EnemyPlayerDetection" type="Node" parent="Boos/Boo1" node_paths=PackedStringArray("hitbox")]
script = ExtResource("10_al3pe")
hitbox = NodePath("../Hitbox")
metadata/_custom_type_script = "uid://chj8hu207lrh"
[node name="Boo2" type="Node2D" parent="Boos"]
visible = false
@@ -130,6 +137,11 @@ metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
[node name="Shape" type="CollisionShape2D" parent="Boos/Boo2/Hitbox"]
shape = SubResource("RectangleShape2D_1eh5v")
[node name="EnemyPlayerDetection" type="Node" parent="Boos/Boo2" node_paths=PackedStringArray("hitbox")]
script = ExtResource("10_al3pe")
hitbox = NodePath("../Hitbox")
metadata/_custom_type_script = "uid://chj8hu207lrh"
[node name="Boo3" type="Node2D" parent="Boos"]
visible = false
@@ -154,6 +166,11 @@ metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
[node name="Shape" type="CollisionShape2D" parent="Boos/Boo3/Hitbox"]
shape = SubResource("RectangleShape2D_1eh5v")
[node name="EnemyPlayerDetection" type="Node" parent="Boos/Boo3" node_paths=PackedStringArray("hitbox")]
script = ExtResource("10_al3pe")
hitbox = NodePath("../Hitbox")
metadata/_custom_type_script = "uid://chj8hu207lrh"
[node name="Boo4" type="Node2D" parent="Boos"]
visible = false
@@ -178,6 +195,11 @@ metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
[node name="Shape" type="CollisionShape2D" parent="Boos/Boo4/Hitbox"]
shape = SubResource("RectangleShape2D_1eh5v")
[node name="EnemyPlayerDetection" type="Node" parent="Boos/Boo4" node_paths=PackedStringArray("hitbox")]
script = ExtResource("10_al3pe")
hitbox = NodePath("../Hitbox")
metadata/_custom_type_script = "uid://chj8hu207lrh"
[node name="Boo5" type="Node2D" parent="Boos"]
visible = false
@@ -202,6 +224,11 @@ metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
[node name="Shape" type="CollisionShape2D" parent="Boos/Boo5/Hitbox"]
shape = SubResource("RectangleShape2D_1eh5v")
[node name="EnemyPlayerDetection" type="Node" parent="Boos/Boo5" node_paths=PackedStringArray("hitbox")]
script = ExtResource("10_al3pe")
hitbox = NodePath("../Hitbox")
metadata/_custom_type_script = "uid://chj8hu207lrh"
[node name="Boo6" type="Node2D" parent="Boos"]
visible = false
@@ -226,6 +253,11 @@ metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
[node name="Shape" type="CollisionShape2D" parent="Boos/Boo6/Hitbox"]
shape = SubResource("RectangleShape2D_1eh5v")
[node name="EnemyPlayerDetection" type="Node" parent="Boos/Boo6" node_paths=PackedStringArray("hitbox")]
script = ExtResource("10_al3pe")
hitbox = NodePath("../Hitbox")
metadata/_custom_type_script = "uid://chj8hu207lrh"
[node name="Boo7" type="Node2D" parent="Boos"]
visible = false
@@ -250,6 +282,11 @@ metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
[node name="Shape" type="CollisionShape2D" parent="Boos/Boo7/Hitbox"]
shape = SubResource("RectangleShape2D_1eh5v")
[node name="EnemyPlayerDetection" type="Node" parent="Boos/Boo7" node_paths=PackedStringArray("hitbox")]
script = ExtResource("10_al3pe")
hitbox = NodePath("../Hitbox")
metadata/_custom_type_script = "uid://chj8hu207lrh"
[node name="Boo8" type="Node2D" parent="Boos"]
visible = false
@@ -274,6 +311,11 @@ metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
[node name="Shape" type="CollisionShape2D" parent="Boos/Boo8/Hitbox"]
shape = SubResource("RectangleShape2D_1eh5v")
[node name="EnemyPlayerDetection" type="Node" parent="Boos/Boo8" node_paths=PackedStringArray("hitbox")]
script = ExtResource("10_al3pe")
hitbox = NodePath("../Hitbox")
metadata/_custom_type_script = "uid://chj8hu207lrh"
[node name="Boo9" type="Node2D" parent="Boos"]
visible = false
@@ -298,6 +340,11 @@ metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
[node name="Shape" type="CollisionShape2D" parent="Boos/Boo9/Hitbox"]
shape = SubResource("RectangleShape2D_1eh5v")
[node name="EnemyPlayerDetection" type="Node" parent="Boos/Boo9" node_paths=PackedStringArray("hitbox")]
script = ExtResource("10_al3pe")
hitbox = NodePath("../Hitbox")
metadata/_custom_type_script = "uid://chj8hu207lrh"
[node name="Boo10" type="Node2D" parent="Boos"]
visible = false
@@ -322,6 +369,11 @@ metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
[node name="Shape" type="CollisionShape2D" parent="Boos/Boo10/Hitbox"]
shape = SubResource("RectangleShape2D_1eh5v")
[node name="EnemyPlayerDetection" type="Node" parent="Boos/Boo10" node_paths=PackedStringArray("hitbox")]
script = ExtResource("10_al3pe")
hitbox = NodePath("../Hitbox")
metadata/_custom_type_script = "uid://chj8hu207lrh"
[node name="Boo11" type="Node2D" parent="Boos"]
visible = false
@@ -346,6 +398,11 @@ metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
[node name="Shape" type="CollisionShape2D" parent="Boos/Boo11/Hitbox"]
shape = SubResource("RectangleShape2D_1eh5v")
[node name="EnemyPlayerDetection" type="Node" parent="Boos/Boo11" node_paths=PackedStringArray("hitbox")]
script = ExtResource("10_al3pe")
hitbox = NodePath("../Hitbox")
metadata/_custom_type_script = "uid://chj8hu207lrh"
[node name="Boo12" type="Node2D" parent="Boos"]
visible = false
@@ -370,6 +427,11 @@ metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
[node name="Shape" type="CollisionShape2D" parent="Boos/Boo12/Hitbox"]
shape = SubResource("RectangleShape2D_1eh5v")
[node name="EnemyPlayerDetection" type="Node" parent="Boos/Boo12" node_paths=PackedStringArray("hitbox")]
script = ExtResource("10_al3pe")
hitbox = NodePath("../Hitbox")
metadata/_custom_type_script = "uid://chj8hu207lrh"
[node name="BooPositioner" type="Node" parent="."]
process_mode = 3
script = SubResource("GDScript_vavt3")
@@ -378,15 +440,27 @@ script = SubResource("GDScript_vavt3")
script = ExtResource("6_5b8ig")
properties = Array[String](["length", "direction", "boo_amount", "spread_boos"])
[connection signal="area_entered" from="Boos/Boo1/Hitbox" to="." method="on_area_entered"]
[connection signal="area_entered" from="Boos/Boo2/Hitbox" to="." method="on_area_entered"]
[connection signal="area_entered" from="Boos/Boo3/Hitbox" to="." method="on_area_entered"]
[connection signal="area_entered" from="Boos/Boo4/Hitbox" to="." method="on_area_entered"]
[connection signal="area_entered" from="Boos/Boo5/Hitbox" to="." method="on_area_entered"]
[connection signal="area_entered" from="Boos/Boo6/Hitbox" to="." method="on_area_entered"]
[connection signal="area_entered" from="Boos/Boo7/Hitbox" to="." method="on_area_entered"]
[connection signal="area_entered" from="Boos/Boo8/Hitbox" to="." method="on_area_entered"]
[connection signal="area_entered" from="Boos/Boo9/Hitbox" to="." method="on_area_entered"]
[connection signal="area_entered" from="Boos/Boo10/Hitbox" to="." method="on_area_entered"]
[connection signal="area_entered" from="Boos/Boo11/Hitbox" to="." method="on_area_entered"]
[connection signal="area_entered" from="Boos/Boo12/Hitbox" to="." method="on_area_entered"]
[connection signal="player_hit" from="Boos/Boo1/EnemyPlayerDetection" to="." method="damage_player"]
[connection signal="player_stomped_on" from="Boos/Boo1/EnemyPlayerDetection" to="." method="damage_player"]
[connection signal="player_hit" from="Boos/Boo2/EnemyPlayerDetection" to="." method="damage_player"]
[connection signal="player_stomped_on" from="Boos/Boo2/EnemyPlayerDetection" to="." method="damage_player"]
[connection signal="player_hit" from="Boos/Boo3/EnemyPlayerDetection" to="." method="damage_player"]
[connection signal="player_stomped_on" from="Boos/Boo3/EnemyPlayerDetection" to="." method="damage_player"]
[connection signal="player_hit" from="Boos/Boo4/EnemyPlayerDetection" to="." method="damage_player"]
[connection signal="player_stomped_on" from="Boos/Boo4/EnemyPlayerDetection" to="." method="damage_player"]
[connection signal="player_hit" from="Boos/Boo5/EnemyPlayerDetection" to="." method="damage_player"]
[connection signal="player_stomped_on" from="Boos/Boo5/EnemyPlayerDetection" to="." method="damage_player"]
[connection signal="player_hit" from="Boos/Boo6/EnemyPlayerDetection" to="." method="damage_player"]
[connection signal="player_stomped_on" from="Boos/Boo6/EnemyPlayerDetection" to="." method="damage_player"]
[connection signal="player_hit" from="Boos/Boo7/EnemyPlayerDetection" to="." method="damage_player"]
[connection signal="player_stomped_on" from="Boos/Boo7/EnemyPlayerDetection" to="." method="damage_player"]
[connection signal="player_hit" from="Boos/Boo8/EnemyPlayerDetection" to="." method="damage_player"]
[connection signal="player_stomped_on" from="Boos/Boo8/EnemyPlayerDetection" to="." method="damage_player"]
[connection signal="player_hit" from="Boos/Boo9/EnemyPlayerDetection" to="." method="damage_player"]
[connection signal="player_stomped_on" from="Boos/Boo9/EnemyPlayerDetection" to="." method="damage_player"]
[connection signal="player_hit" from="Boos/Boo10/EnemyPlayerDetection" to="." method="damage_player"]
[connection signal="player_stomped_on" from="Boos/Boo10/EnemyPlayerDetection" to="." method="damage_player"]
[connection signal="player_hit" from="Boos/Boo11/EnemyPlayerDetection" to="." method="damage_player"]
[connection signal="player_stomped_on" from="Boos/Boo11/EnemyPlayerDetection" to="." method="damage_player"]
[connection signal="player_hit" from="Boos/Boo12/EnemyPlayerDetection" to="." method="damage_player"]
[connection signal="player_stomped_on" from="Boos/Boo12/EnemyPlayerDetection" to="." method="damage_player"]

View File

@@ -1,10 +1,11 @@
[gd_scene load_steps=10 format=3 uid="uid://blbarreyjem4l"]
[gd_scene load_steps=11 format=3 uid="uid://blbarreyjem4l"]
[ext_resource type="Texture2D" uid="uid://t5lgshoxlohe" path="res://Assets/Sprites/Items/BowserFlame.png" id="1_4hwux"]
[ext_resource type="Script" uid="uid://btstbvjk6e6aw" path="res://Scripts/Classes/Entities/Enemies/BowserFlame.gd" id="1_dq7qg"]
[ext_resource type="Script" uid="uid://caq1qiwmy0mox" path="res://Scripts/Parts/BetterAnimatedSprite.gd" id="3_ktnk0"]
[ext_resource type="Script" uid="uid://cbal8ms2oe1ik" path="res://Scripts/Classes/Components/ResourceSetterNew.gd" id="4_ktnk0"]
[ext_resource type="JSON" path="res://Assets/Sprites/Items/BowserFlame.json" id="5_0e5kh"]
[ext_resource type="Script" uid="uid://chj8hu207lrh" path="res://Scripts/Classes/Components/EnemyPlayerDetection.gd" id="6_0e5kh"]
[sub_resource type="AtlasTexture" id="AtlasTexture_iikig"]
atlas = ExtResource("1_4hwux")
@@ -31,11 +32,13 @@ animations = [{
[sub_resource type="RectangleShape2D" id="RectangleShape2D_ohhuu"]
size = Vector2(12, 4)
[node name="BowserFlame" type="Node2D" groups=["Enemies"]]
[node name="BowserFlame" type="CharacterBody2D" groups=["Enemies"]]
script = ExtResource("1_dq7qg")
metadata/_custom_type_script = "uid://bpydbpyjk1mt4"
[node name="Sprite" type="AnimatedSprite2D" parent="."]
scale = Vector2(-1, 1)
rotation = -3.1415927
scale = Vector2(1, -1)
sprite_frames = SubResource("SpriteFrames_oy8b6")
autoplay = "default"
frame_progress = 0.67141116
@@ -60,6 +63,12 @@ shape = SubResource("RectangleShape2D_ohhuu")
position = Vector2(-2.38419e-07, 0)
scale = Vector2(1.6, 1)
[connection signal="area_entered" from="Hitbox" to="." method="on_area_entered"]
[node name="EnemyPlayerDetection" type="Node" parent="." node_paths=PackedStringArray("hitbox")]
script = ExtResource("6_0e5kh")
hitbox = NodePath("../Hitbox")
metadata/_custom_type_script = "uid://chj8hu207lrh"
[connection signal="screen_entered" from="VisibleOnScreenEnabler2D" to="." method="play_sfx"]
[connection signal="screen_exited" from="VisibleOnScreenEnabler2D" to="." method="queue_free"]
[connection signal="player_hit" from="EnemyPlayerDetection" to="." method="damage_player"]
[connection signal="player_stomped_on" from="EnemyPlayerDetection" to="." method="damage_player"]

View File

@@ -1,4 +1,4 @@
[gd_scene load_steps=24 format=3 uid="uid://clbvyne1cr8gp"]
[gd_scene load_steps=25 format=3 uid="uid://clbvyne1cr8gp"]
[ext_resource type="Script" uid="uid://ritdlvkpyjd4" path="res://Scripts/Classes/Entities/Objects/Explosion.gd" id="1_aklik"]
[ext_resource type="Texture2D" uid="uid://brjkrkihadwnj" path="res://Assets/Sprites/Particles/FireballExplosion.png" id="2_4aiuq"]
@@ -7,6 +7,7 @@
[ext_resource type="Script" uid="uid://caq1qiwmy0mox" path="res://Scripts/Parts/BetterAnimatedSprite.gd" id="4_hjivi"]
[ext_resource type="AudioStream" uid="uid://d12v455mw8uvu" path="res://Assets/Audio/SFX/Cannon.wav" id="5_8imqq"]
[ext_resource type="JSON" path="res://Assets/Sprites/Particles/FireballExplosion.json" id="5_hjivi"]
[ext_resource type="Script" uid="uid://chj8hu207lrh" path="res://Scripts/Classes/Components/EnemyPlayerDetection.gd" id="8_hjivi"]
[sub_resource type="AtlasTexture" id="AtlasTexture_vnd2t"]
atlas = ExtResource("2_4aiuq")
@@ -243,8 +244,9 @@ _data = {
[sub_resource type="CircleShape2D" id="CircleShape2D_6tdk1"]
radius = 24.0
[node name="Explosion" type="Node2D"]
[node name="Explosion" type="CharacterBody2D"]
script = ExtResource("1_aklik")
metadata/_custom_type_script = "uid://bpydbpyjk1mt4"
metadata/is_explosion = true
[node name="Sprite" type="AnimatedSprite2D" parent="."]
@@ -317,5 +319,10 @@ collision_mask = 255
[node name="Shape" type="CollisionShape2D" parent="Hitbox"]
shape = SubResource("CircleShape2D_6tdk1")
[connection signal="area_entered" from="Hitbox" to="." method="on_area_entered"]
[node name="EnemyPlayerDetection" type="Node" parent="." node_paths=PackedStringArray("hitbox")]
script = ExtResource("8_hjivi")
hitbox = NodePath("../Hitbox")
[connection signal="body_entered" from="Hitbox" to="." method="on_body_entered"]
[connection signal="player_hit" from="EnemyPlayerDetection" to="." method="damage_player"]
[connection signal="player_stomped_on" from="EnemyPlayerDetection" to="." method="damage_player"]

View File

@@ -1,14 +1,12 @@
[gd_scene load_steps=16 format=3 uid="uid://rruc6lnk16rr"]
[gd_scene load_steps=14 format=3 uid="uid://rruc6lnk16rr"]
[ext_resource type="Script" uid="uid://dryofl8epgget" path="res://Scripts/Classes/Entities/Items/ClockItem.gd" id="1_heiyr"]
[ext_resource type="Texture2D" uid="uid://dal8md4ms07j2" path="res://Assets/Sprites/Items/Clock.png" id="1_ybxan"]
[ext_resource type="Script" uid="uid://caq1qiwmy0mox" path="res://Scripts/Parts/BetterAnimatedSprite.gd" id="2_heiyr"]
[ext_resource type="Script" uid="uid://cbal8ms2oe1ik" path="res://Scripts/Classes/Components/ResourceSetterNew.gd" id="3_ov4xw"]
[ext_resource type="JSON" path="res://Assets/Sprites/Items/Clock.json" id="4_newwu"]
[ext_resource type="Script" uid="uid://cnheej0sxmoxg" path="res://Scripts/Parts/PlayerDetection.gd" id="5_fg0gx"]
[ext_resource type="Script" uid="uid://dt2p68xl462v2" path="res://Scripts/Parts/TextShadowColourChanger.gd" id="6_ggci8"]
[ext_resource type="Script" uid="uid://co6tjg3w6qpd8" path="res://Scripts/Parts/LabelFontChanger.gd" id="7_eol0e"]
[ext_resource type="Resource" uid="uid://8dcuxbc3h2u2" path="res://Resources/ThemedResources/Font.tres" id="8_34q7a"]
[sub_resource type="AtlasTexture" id="AtlasTexture_c30tx"]
atlas = ExtResource("1_ybxan")
@@ -136,8 +134,6 @@ resource_json = ExtResource("4_newwu")
metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
[node name="Hitbox" type="Area2D" parent="Sprite"]
script = ExtResource("5_fg0gx")
metadata/_custom_type_script = "uid://cnheej0sxmoxg"
[node name="CollisionShape2D" type="CollisionShape2D" parent="Sprite/Hitbox"]
shape = SubResource("RectangleShape2D_ydslq")
@@ -160,7 +156,6 @@ metadata/_custom_type_script = "uid://dt2p68xl462v2"
[node name="LabelFontChanger" type="Node" parent="Label" node_paths=PackedStringArray("labels")]
script = ExtResource("7_eol0e")
labels = [NodePath("..")]
resource = ExtResource("8_34q7a")
metadata/_custom_type_script = "uid://co6tjg3w6qpd8"
[node name="AnimationPlayer" type="AnimationPlayer" parent="Label"]
@@ -168,4 +163,4 @@ libraries = {
&"": SubResource("AnimationLibrary_ov4xw")
}
[connection signal="player_entered" from="Sprite/Hitbox" to="." method="collect_item"]
[connection signal="area_entered" from="Sprite/Hitbox" to="." method="on_area_entered"]

View File

@@ -1,22 +1,21 @@
[gd_scene load_steps=10 format=3 uid="uid://dn2rawqxpuywe"]
[gd_scene load_steps=9 format=3 uid="uid://dn2rawqxpuywe"]
[ext_resource type="Script" uid="uid://bb01xttxcem1c" path="res://Scripts/Classes/Entities/Items/Hachisuke.gd" id="1_d7uck"]
[ext_resource type="Texture2D" uid="uid://bbdcmhyxmc3pu" path="res://Assets/Sprites/Items/SPItems.png" id="2_wdqsg"]
[ext_resource type="Script" uid="uid://cbal8ms2oe1ik" path="res://Scripts/Classes/Components/ResourceSetterNew.gd" id="3_3unjp"]
[ext_resource type="Script" uid="uid://5octqlf4ohel" path="res://Scripts/Classes/Components/ScoreNoteSpawner.gd" id="3_eh4yc"]
[ext_resource type="Script" uid="uid://cnheej0sxmoxg" path="res://Scripts/Parts/PlayerDetection.gd" id="4_3unjp"]
[ext_resource type="JSON" path="res://Assets/Sprites/Items/Hachisuke.json" id="4_db2kr"]
[sub_resource type="AtlasTexture" id="AtlasTexture_qj4fn"]
atlas = ExtResource("2_wdqsg")
region = Rect2(0, 0, 16, 16)
[sub_resource type="RectangleShape2D" id="RectangleShape2D_kn7db"]
size = Vector2(12, 12)
[sub_resource type="RectangleShape2D" id="RectangleShape2D_6c253"]
size = Vector2(16, 16)
[sub_resource type="RectangleShape2D" id="RectangleShape2D_8f4k7"]
size = Vector2(12, 12)
[node name="Hachisuke" type="CharacterBody2D"]
collision_layer = 8
collision_mask = 6
@@ -40,18 +39,14 @@ script = ExtResource("3_eh4yc")
add_score = true
metadata/_custom_type_script = "uid://5octqlf4ohel"
[node name="PlayerDetection" type="Area2D" parent="."]
position = Vector2(0, -8)
script = ExtResource("4_3unjp")
metadata/_custom_type_script = "uid://cnheej0sxmoxg"
[node name="Shape" type="CollisionShape2D" parent="PlayerDetection"]
shape = SubResource("RectangleShape2D_kn7db")
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
position = Vector2(0, -8)
shape = SubResource("RectangleShape2D_6c253")
[connection signal="player_entered" from="PlayerDetection" to="ScoreNoteSpawner" method="spawn_note" binds= [8000]]
[connection signal="player_entered" from="PlayerDetection" to="." method="play_sfx" unbinds=1]
[connection signal="player_entered" from="PlayerDetection" to="." method="queue_free" unbinds=1]
[node name="Hitbox" type="Area2D" parent="."]
position = Vector2(0, -8)
[node name="CollisionShape2D" type="CollisionShape2D" parent="Hitbox"]
shape = SubResource("RectangleShape2D_8f4k7")
[connection signal="area_entered" from="Hitbox" to="." method="on_area_entered"]

View File

@@ -1,9 +1,10 @@
[gd_scene load_steps=10 format=3 uid="uid://deo08vl26nc4b"]
[gd_scene load_steps=11 format=3 uid="uid://hqrc7ujinbcq"]
[ext_resource type="Script" uid="uid://s1utdly4mtbi" path="res://Scripts/Classes/Entities/Items/Hammer.gd" id="1_3ojke"]
[ext_resource type="Texture2D" uid="uid://3xmhfi556p3s" path="res://Assets/Sprites/Items/Hammer.png" id="1_o34jf"]
[ext_resource type="Script" uid="uid://cbal8ms2oe1ik" path="res://Scripts/Classes/Components/ResourceSetterNew.gd" id="3_k3c6x"]
[ext_resource type="JSON" path="res://Assets/Sprites/Items/Hammer.json" id="4_pmlpp"]
[ext_resource type="Script" uid="uid://chj8hu207lrh" path="res://Scripts/Classes/Components/EnemyPlayerDetection.gd" id="5_pmlpp"]
[sub_resource type="AtlasTexture" id="AtlasTexture_2tvg3"]
atlas = ExtResource("1_o34jf")
@@ -51,17 +52,17 @@ _data = {
[sub_resource type="CircleShape2D" id="CircleShape2D_pmlpp"]
radius = 4.0
[node name="Hammer" type="Node2D" groups=["Enemies"]]
[node name="Hammer" type="CharacterBody2D" groups=["Enemies"]]
script = ExtResource("1_3ojke")
metadata/_custom_type_script = "uid://bpydbpyjk1mt4"
[node name="Sprite" type="Sprite2D" parent="."]
physics_interpolation_mode = 2
texture = SubResource("AtlasTexture_2tvg3")
[node name="ResourceSetterNew" type="Node" parent="Sprite" node_paths=PackedStringArray("node_to_affect", "property_node")]
[node name="ResourceSetterNew" type="Node" parent="Sprite" node_paths=PackedStringArray("node_to_affect")]
script = ExtResource("3_k3c6x")
node_to_affect = NodePath("..")
property_node = NodePath("../..")
property_name = "texture"
mode = 1
resource_json = ExtResource("4_pmlpp")
@@ -78,4 +79,9 @@ autoplay = "Rotate"
[node name="Shape" type="CollisionShape2D" parent="Hitbox"]
shape = SubResource("CircleShape2D_pmlpp")
[connection signal="area_entered" from="Hitbox" to="." method="on_area_entered"]
[node name="EnemyPlayerDetection" type="Node" parent="." node_paths=PackedStringArray("hitbox")]
script = ExtResource("5_pmlpp")
hitbox = NodePath("../Hitbox")
[connection signal="player_hit" from="EnemyPlayerDetection" to="." method="damage_player"]
[connection signal="player_stomped_on" from="EnemyPlayerDetection" to="." method="damage_player"]

View File

@@ -1,31 +1,22 @@
[gd_scene load_steps=8 format=3 uid="uid://bwdwavf4rp1m1"]
[gd_scene load_steps=7 format=3 uid="uid://bwdwavf4rp1m1"]
[ext_resource type="Script" uid="uid://vhxup1pn2v8q" path="res://Scripts/Classes/Entities/Items/HammerItem.gd" id="1_ws752"]
[ext_resource type="Texture2D" uid="uid://bbdcmhyxmc3pu" path="res://Assets/Sprites/Items/SPItems.png" id="2_c0srl"]
[ext_resource type="Script" uid="uid://cnheej0sxmoxg" path="res://Scripts/Parts/PlayerDetection.gd" id="3_uc7h7"]
[ext_resource type="Script" uid="uid://cbal8ms2oe1ik" path="res://Scripts/Classes/Components/ResourceSetterNew.gd" id="4_uc7h7"]
[ext_resource type="JSON" path="res://Assets/Sprites/Items/HammerItem.json" id="5_6qq3q"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_ws752"]
size = Vector2(8, 8)
[sub_resource type="RectangleShape2D" id="RectangleShape2D_uc7h7"]
size = Vector2(10, 10)
[sub_resource type="RectangleShape2D" id="RectangleShape2D_ws752"]
size = Vector2(12, 12)
[node name="HammerItem" type="CharacterBody2D"]
collision_layer = 8
collision_mask = 2
script = ExtResource("1_ws752")
metadata/_custom_type_script = "uid://cjkurwybsaywm"
[node name="Hitbox" type="Area2D" parent="."]
script = ExtResource("3_uc7h7")
metadata/_custom_type_script = "uid://cnheej0sxmoxg"
[node name="Shape" type="CollisionShape2D" parent="Hitbox"]
position = Vector2(0, -8)
shape = SubResource("RectangleShape2D_ws752")
[node name="Sprite" type="Sprite2D" parent="."]
position = Vector2(0, -8)
texture = ExtResource("2_c0srl")
@@ -44,4 +35,10 @@ metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
position = Vector2(0, -5)
shape = SubResource("RectangleShape2D_uc7h7")
[connection signal="player_entered" from="Hitbox" to="." method="on_player_entered"]
[node name="Hitbox" type="Area2D" parent="."]
position = Vector2(0, -8)
[node name="CollisionShape2D" type="CollisionShape2D" parent="Hitbox"]
shape = SubResource("RectangleShape2D_ws752")
[connection signal="area_entered" from="Hitbox" to="." method="on_area_entered"]

View File

@@ -1,10 +1,9 @@
[gd_scene load_steps=18 format=3 uid="uid://ny5glffi0suh"]
[gd_scene load_steps=17 format=3 uid="uid://ny5glffi0suh"]
[ext_resource type="Texture2D" uid="uid://bagrao4ahra76" path="res://Assets/Sprites/Items/Key.png" id="1_883rn"]
[ext_resource type="Script" uid="uid://cjgbt7iof66j0" path="res://Scripts/Classes/Entities/Items/KeyItem.gd" id="1_l02ex"]
[ext_resource type="Script" uid="uid://caq1qiwmy0mox" path="res://Scripts/Parts/BetterAnimatedSprite.gd" id="2_ecusj"]
[ext_resource type="Script" uid="uid://cbal8ms2oe1ik" path="res://Scripts/Classes/Components/ResourceSetterNew.gd" id="3_l02ex"]
[ext_resource type="Script" uid="uid://cnheej0sxmoxg" path="res://Scripts/Parts/PlayerDetection.gd" id="3_m8uts"]
[ext_resource type="JSON" path="res://Assets/Sprites/Items/Key.json" id="4_m8uts"]
[ext_resource type="Texture2D" uid="uid://sgrcmlktp2dk" path="res://Assets/Sprites/Particles/SRankParticles.png" id="7_2yl70"]
@@ -146,8 +145,6 @@ metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
[node name="Hitbox" type="Area2D" parent="."]
position = Vector2(0, -8)
script = ExtResource("3_m8uts")
metadata/_custom_type_script = "uid://cnheej0sxmoxg"
[node name="CollisionShape2D" type="CollisionShape2D" parent="Hitbox"]
shape = SubResource("RectangleShape2D_2u37r")
@@ -165,3 +162,5 @@ amount = 1
texture = ExtResource("7_2yl70")
randomness = 0.12
process_material = SubResource("ParticleProcessMaterial_rls2x")
[connection signal="area_entered" from="Hitbox" to="." method="on_area_entered"]

View File

@@ -1,18 +1,18 @@
[gd_scene load_steps=11 format=3 uid="uid://dhd0gp2xvl53l"]
[gd_scene load_steps=10 format=3 uid="uid://dhd0gp2xvl53l"]
[ext_resource type="Script" uid="uid://bafdl3y53ly60" path="res://Scripts/Classes/UI/PackAnimatedSprite2D.gd" id="2_724cb"]
[ext_resource type="Texture2D" uid="uid://bbdcmhyxmc3pu" path="res://Assets/Sprites/Items/SPItems.png" id="2_wnlnm"]
[ext_resource type="Script" uid="uid://cnheej0sxmoxg" path="res://Scripts/Parts/PlayerDetection.gd" id="3_724cb"]
[ext_resource type="Script" uid="uid://cbal8ms2oe1ik" path="res://Scripts/Classes/Components/ResourceSetterNew.gd" id="3_ke2o5"]
[ext_resource type="JSON" path="res://Assets/Sprites/Items/LuckyStar.json" id="4_4cwfa"]
[sub_resource type="GDScript" id="GDScript_y0edb"]
script/source = "extends PowerUpItem
func player_entered(_player: Player) -> void:
queue_free()
AudioManager.play_global_sfx(\"lucky_star\")
get_tree().call_group(\"Enemies\", \"flag_die\")
func on_area_entered(area: Area2D) -> void:
if area.owner is Player:
queue_free()
AudioManager.play_global_sfx(\"lucky_star\")
get_tree().call_group(\"Enemies\", \"flag_die\")
"
[sub_resource type="AtlasTexture" id="AtlasTexture_ke2o5"]
@@ -59,12 +59,10 @@ property_name = "sprite_frames"
resource_json = ExtResource("4_4cwfa")
metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
[node name="PlayerDetection" type="Area2D" parent="."]
[node name="Hitbox" type="Area2D" parent="."]
position = Vector2(0, -8)
script = ExtResource("3_724cb")
metadata/_custom_type_script = "uid://cnheej0sxmoxg"
[node name="CollisionShape2D" type="CollisionShape2D" parent="PlayerDetection"]
[node name="CollisionShape2D" type="CollisionShape2D" parent="Hitbox"]
shape = SubResource("RectangleShape2D_7yv5x")
[connection signal="player_entered" from="PlayerDetection" to="." method="player_entered"]
[connection signal="area_entered" from="Hitbox" to="." method="on_area_entered"]

View File

@@ -1,10 +1,9 @@
[gd_scene load_steps=18 format=3 uid="uid://cmbpqnq10arts"]
[gd_scene load_steps=17 format=3 uid="uid://cmbpqnq10arts"]
[ext_resource type="Script" uid="uid://xwq5ac650e76" path="res://Scripts/Classes/Entities/Items/RedCoin.gd" id="1_c6tmk"]
[ext_resource type="Texture2D" uid="uid://c8wpxm7b5tgiq" path="res://Assets/Sprites/Items/RedCoin.png" id="2_lwdcj"]
[ext_resource type="Script" uid="uid://caq1qiwmy0mox" path="res://Scripts/Parts/BetterAnimatedSprite.gd" id="3_0r8d3"]
[ext_resource type="Script" uid="uid://cbal8ms2oe1ik" path="res://Scripts/Classes/Components/ResourceSetterNew.gd" id="3_0xloa"]
[ext_resource type="Script" uid="uid://cnheej0sxmoxg" path="res://Scripts/Parts/PlayerDetection.gd" id="3_onh0k"]
[ext_resource type="Script" uid="uid://cmg61722ktg2m" path="res://Scripts/Classes/Components/BlockBouncingDetection.gd" id="4_lwdcj"]
[ext_resource type="JSON" path="res://Assets/Sprites/Items/RedCoin.json" id="5_0fjrw"]
@@ -103,8 +102,6 @@ metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
[node name="Hitbox" type="Area2D" parent="."]
collision_mask = 5
script = ExtResource("3_onh0k")
metadata/_custom_type_script = "uid://cnheej0sxmoxg"
[node name="Shape" type="CollisionShape2D" parent="Hitbox"]
position = Vector2(0, 1.5)
@@ -113,8 +110,8 @@ shape = SubResource("RectangleShape2D_4qu2r")
[node name="BlockBouncingDetection" type="Node" parent="." node_paths=PackedStringArray("hitbox")]
script = ExtResource("4_lwdcj")
detection_type = 1
hitbox = NodePath("../Hitbox")
hitbox = NodePath("")
metadata/_custom_type_script = "uid://cmg61722ktg2m"
[connection signal="player_entered" from="Hitbox" to="." method="on_player_entered"]
[connection signal="area_entered" from="Hitbox" to="." method="on_area_entered"]
[connection signal="block_bounced" from="BlockBouncingDetection" to="." method="summon_bounced_coin" unbinds=1]

View File

@@ -1,8 +1,7 @@
[gd_scene load_steps=10 format=3 uid="uid://ck0spcws71sg5"]
[gd_scene load_steps=9 format=3 uid="uid://ck0spcws71sg5"]
[ext_resource type="Script" uid="uid://caq1qiwmy0mox" path="res://Scripts/Parts/BetterAnimatedSprite.gd" id="1_fcvyr"]
[ext_resource type="Script" uid="uid://cbal8ms2oe1ik" path="res://Scripts/Classes/Components/ResourceSetterNew.gd" id="2_gjj3y"]
[ext_resource type="Script" uid="uid://cnheej0sxmoxg" path="res://Scripts/Parts/PlayerDetection.gd" id="2_neobf"]
[ext_resource type="JSON" path="res://Assets/Sprites/Items/WingItem.json" id="3_1uenh"]
[ext_resource type="Script" uid="uid://bx6r8sjar6cwr" path="res://Scripts/Classes/Components/BasicStaticMovement.gd" id="3_143ya"]
[ext_resource type="Script" uid="uid://5octqlf4ohel" path="res://Scripts/Classes/Components/ScoreNoteSpawner.gd" id="4_gdso8"]
@@ -10,10 +9,13 @@
[sub_resource type="GDScript" id="GDScript_gdso8"]
script/source = "extends PowerUpItem
func player_entered(player: Player) -> void:
AudioManager.play_sfx(\"power_up\", global_position)
player.wing_get()
queue_free()
func on_area_entered(area: Area2D) -> void:
if area.owner is Player:
AudioManager.play_sfx(\"power_up\", global_position)
Global.score += 1000
$ScoreNoteSpawner.spawn_note(1000)
area.owner.wing_get()
queue_free()
"
[sub_resource type="RectangleShape2D" id="RectangleShape2D_fcvyr"]
@@ -42,8 +44,6 @@ resource_json = ExtResource("3_1uenh")
metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
[node name="Hitbox" type="Area2D" parent="."]
script = ExtResource("2_neobf")
metadata/_custom_type_script = "uid://cnheej0sxmoxg"
[node name="CollisionShape2D" type="CollisionShape2D" parent="Hitbox"]
position = Vector2(0, -8)
@@ -62,5 +62,4 @@ script = ExtResource("4_gdso8")
add_score = true
metadata/_custom_type_script = "uid://5octqlf4ohel"
[connection signal="player_entered" from="Hitbox" to="." method="player_entered"]
[connection signal="player_entered" from="Hitbox" to="ScoreNoteSpawner" method="spawn_note" binds= [1000]]
[connection signal="area_entered" from="Hitbox" to="." method="on_area_entered"]

View File

@@ -84,12 +84,12 @@ property_name = "sprite_frames"
resource_json = ExtResource("5_ix70v")
metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
[node name="Hitbox" type="Area2D" parent="."]
[node name="PlayerDetection" type="Area2D" parent="."]
collision_layer = 255
script = ExtResource("3_cgc3p")
metadata/_custom_type_script = "uid://cnheej0sxmoxg"
[node name="CollisionShape2D" type="CollisionShape2D" parent="Hitbox"]
[node name="CollisionShape2D" type="CollisionShape2D" parent="PlayerDetection"]
shape = SubResource("CircleShape2D_tbo6k")
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
@@ -107,4 +107,4 @@ metadata/_custom_type_script = "uid://d4a7yp6e55u8t"
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
shape = SubResource("RectangleShape2D_tbo6k")
[connection signal="player_entered" from="Hitbox" to="." method="bounce_player"]
[connection signal="player_entered" from="PlayerDetection" to="." method="bounce_player"]

View File

@@ -4,7 +4,7 @@
[ext_resource type="Texture2D" uid="uid://pidoncb5gcax" path="res://Assets/Sprites/Items/Fireball.png" id="2_s1hms"]
[sub_resource type="SegmentShape2D" id="SegmentShape2D_s77o2"]
b = Vector2(0, 80)
b = Vector2(0, -40)
[sub_resource type="Animation" id="Animation_vag0n"]
length = 0.001
@@ -47,31 +47,31 @@ _data = {
[node name="Firebar" instance=ExtResource("1_m6o3e")]
[node name="RemoteTransform2D17" type="RemoteTransform2D" parent="RotationJoint" index="6"]
[node name="RemoteTransform2D19" type="RemoteTransform2D" parent="RotationJoint" index="6"]
position = Vector2(0, 48)
remote_path = NodePath("../../Fireballs/Fireball7")
update_rotation = false
update_scale = false
[node name="RemoteTransform2D18" type="RemoteTransform2D" parent="RotationJoint" index="7"]
[node name="RemoteTransform2D20" type="RemoteTransform2D" parent="RotationJoint" index="7"]
position = Vector2(0, 56)
remote_path = NodePath("../../Fireballs/Fireball8")
update_rotation = false
update_scale = false
[node name="RemoteTransform2D19" type="RemoteTransform2D" parent="RotationJoint" index="8"]
[node name="RemoteTransform2D21" type="RemoteTransform2D" parent="RotationJoint" index="8"]
position = Vector2(0, 64)
remote_path = NodePath("../../Fireballs/Fireball9")
update_rotation = false
update_scale = false
[node name="RemoteTransform2D20" type="RemoteTransform2D" parent="RotationJoint" index="9"]
[node name="RemoteTransform2D22" type="RemoteTransform2D" parent="RotationJoint" index="9"]
position = Vector2(0, 72)
remote_path = NodePath("../../Fireballs/Fireball10")
update_rotation = false
update_scale = false
[node name="RemoteTransform2D21" type="RemoteTransform2D" parent="RotationJoint" index="10"]
[node name="RemoteTransform2D23" type="RemoteTransform2D" parent="RotationJoint" index="10"]
position = Vector2(0, 80)
remote_path = NodePath("../../Fireballs/Fireball11")
update_rotation = false
@@ -84,23 +84,28 @@ shape = SubResource("SegmentShape2D_s77o2")
z_index = 4096
z_as_relative = false
[node name="Fireball17" type="Sprite2D" parent="Fireballs" index="6"]
[node name="Fireball19" type="Sprite2D" parent="Fireballs" index="6"]
visible = false
position = Vector2(33.9411, 33.9411)
texture = ExtResource("2_s1hms")
[node name="Fireball18" type="Sprite2D" parent="Fireballs" index="7"]
[node name="Fireball20" type="Sprite2D" parent="Fireballs" index="7"]
visible = false
position = Vector2(39.598, 39.598)
texture = ExtResource("2_s1hms")
[node name="Fireball19" type="Sprite2D" parent="Fireballs" index="8"]
[node name="Fireball21" type="Sprite2D" parent="Fireballs" index="8"]
visible = false
position = Vector2(45.2548, 45.2548)
texture = ExtResource("2_s1hms")
[node name="Fireball20" type="Sprite2D" parent="Fireballs" index="9"]
[node name="Fireball22" type="Sprite2D" parent="Fireballs" index="9"]
visible = false
position = Vector2(50.9117, 50.9117)
texture = ExtResource("2_s1hms")
[node name="Fireball21" type="Sprite2D" parent="Fireballs" index="10"]
[node name="Fireball23" type="Sprite2D" parent="Fireballs" index="10"]
visible = false
position = Vector2(56.5685, 56.5686)
texture = ExtResource("2_s1hms")

View File

@@ -1,20 +1,14 @@
extends Node2D
extends Enemy
var target_player: Player = null
var velocity := Vector2.ZERO
const MOVE_SPEED := 30
const SMOKE_PARTICLE = preload("uid://d08nv4qtfouv1")
var direction := -1
signal killed
func _physics_process(delta: float) -> void:
target_player = get_tree().get_first_node_in_group("Players")
if $TrackJoint.is_attached == false:
handle_movement(delta)
$Sprite.scale.x = direction
$Sprite.scale.x = -direction
func handle_movement(delta: float) -> void:
var target_direction = sign(target_player.global_position.x - global_position.x)
@@ -30,22 +24,6 @@ func handle_movement(delta: float) -> void:
velocity = lerp(velocity, Vector2.ZERO, delta * 5)
global_position += velocity * delta
func on_area_entered(area: Area2D) -> void:
if area.owner is Player:
if area.owner.is_invincible or area.name == "HammerHitbox":
die()
else:
area.owner.damage()
func die() -> void:
summon_smoke_particle()
queue_free()
killed.emit()
func flag_die() -> void:
die()
func summon_smoke_particle() -> void:
var particle = SMOKE_PARTICLE.instantiate()
particle.global_position = global_position

View File

@@ -1,7 +1,6 @@
extends Node2D
extends Enemy
@export_range(25, 180) var length := 80
@export_enum("Clockwise", "C-Clockwise") var direction := 0
@export_range(4, 12) var boo_amount := 10
@export var spread_boos := false
@@ -9,10 +8,3 @@ func _physics_process(delta: float) -> void:
%RotationJoint.global_rotation_degrees = wrap(%RotationJoint.global_rotation_degrees + (45 * [1, -1][direction]) * delta, 0, 360)
for i in $Boos.get_children():
i.get_node("Sprite").scale.x = sign(get_tree().get_first_node_in_group("Players").global_position.x + 1 - i.global_position.x)
func on_area_entered(area: Area2D) -> void:
if area.owner is Player and area.name != "HammerHitbox":
area.owner.damage()
func flag_die() -> void:
queue_free()

View File

@@ -1,10 +1,9 @@
class_name BowserFlame
extends Node2D
extends Enemy
@export_enum("Straight", "Aimed") var mode := 0
var target_y := 0
var direction := -1
func _ready() -> void:
pass
@@ -16,14 +15,7 @@ func movement(delta: float) -> void:
if mode == 1:
global_position.y = move_toward(global_position.y, target_y, delta * 50)
global_position.x += (100 * direction) * delta
$Sprite.scale.x = direction
func flag_die() -> void:
queue_free()
func on_area_entered(area: Area2D) -> void:
if area.owner is Player and area.name != "HammerHitbox":
area.owner.damage()
$Sprite.scale.x = -direction
func play_sfx() -> void:
AudioManager.play_sfx("bowser_flame", global_position)

View File

@@ -1,7 +1,8 @@
extends PowerUpItem
func collect_item(_player: Player) -> void:
AudioManager.play_sfx("clock_get", global_position)
$Label/AnimationPlayer.play("Appear")
Global.time = clamp(Global.time + 100, 0, 999)
Global.score += 1000
func on_area_entered(area: Area2D) -> void:
if area.owner is Player:
AudioManager.play_sfx("clock_get", global_position)
$Label/AnimationPlayer.play("Appear")
Global.time = clamp(Global.time + 100, 0, 999)
Global.score += 1000

View File

@@ -1,4 +1,8 @@
extends PowerUpItem
func play_sfx() -> void:
AudioManager.play_sfx("hachisuke", global_position)
func on_area_entered(area: Area2D) -> void:
if area.owner is Player:
AudioManager.play_sfx("hachisuke", global_position)
Global.score += 8000
$ScoreNoteSpawner.spawn_note(8000)
queue_free()

View File

@@ -1,11 +1,8 @@
class_name Hammer
extends Node2D
var velocity := Vector2(0, -200)
var direction := -1
extends Enemy
func _ready() -> void:
velocity = Vector2(0, -200)
$Sprite.flip_h = direction == 1
$Animations.speed_scale = -direction
velocity.x = 120 * direction
@@ -16,10 +13,3 @@ func _physics_process(delta: float) -> void:
global_position += velocity * delta
velocity.y += (Global.entity_gravity / delta) * delta
velocity.y = clamp(velocity.y, -INF, Global.entity_max_fall_speed)
func flag_die() -> void:
queue_free()
func on_area_entered(area: Area2D) -> void:
if area.owner is Player and area.name != "HammerHitbox":
area.owner.damage()

View File

@@ -1,8 +1,6 @@
extends PowerUpItem
func _physics_process(delta: float) -> void:
pass
func on_player_entered(player: Player) -> void:
player.hammer_get()
queue_free()
func on_area_entered(area: Area2D) -> void:
if area.owner is Player:
area.owner.hammer_get()
queue_free()

View File

@@ -6,11 +6,12 @@ const SMOKE_PARTICLE = preload("uid://d08nv4qtfouv1")
func _ready() -> void:
$AnimationPlayer.play("Float")
func collected() -> void:
total_collected += 1
AudioManager.play_sfx("key_collect", global_position)
summon_smoke_particle()
queue_free()
func on_area_entered(area: Area2D) -> void:
if area.owner is Player:
total_collected += 1
AudioManager.play_sfx("key_collect", global_position)
summon_smoke_particle()
queue_free()
func summon_smoke_particle() -> void:
var node = SMOKE_PARTICLE.instantiate()

View File

@@ -14,8 +14,9 @@ func _ready() -> void:
$Sprite.play("Collected")
set_visibility_layer_bit(0, false)
func on_player_entered(_player: Player) -> void:
collected()
func on_area_entered(area: Area2D) -> void:
if area.owner is Player:
collected()
func collected() -> void:
if already_collected:

View File

@@ -72,6 +72,6 @@ func on_player_entered(_player: Player) -> void:
func on_area_exited(area: Area2D) -> void:
if area.owner is Player:
if area.owner is Player and area.name != "HammerHitbox":
if area.owner.state_machine.state.name == "Climb":
area.owner.state_machine.transition_to("Normal")

View File

@@ -1,18 +1,9 @@
class_name Explosion
extends Node2D
extends Enemy
const destructable_tiles := {Vector2i(4, 0): Rect2(32, 160, 16, 16), Vector2i(4, 2): Rect2(48, 160, 16, 16)}
const BLOCK_DESTRUCTION_PARTICLES = preload("uid://cyw7kk1em8h16")
func on_body_entered(body: Node2D) -> void:
if body is Block:
if body.destructable: body.destroy()
if body is Player:
body.damage()
func on_area_entered(area: Area2D) -> void:
if area.owner is Player and area.name != "HammerHitbox":
area.owner.damage()

View File

@@ -17,4 +17,4 @@ func on_area_exited(area: Area2D) -> void:
player_exited.emit(area.owner)
func is_player_in_area() -> bool:
return get_overlapping_areas().any(func(area: Area2D) -> bool: return area.owner is Player)
return get_overlapping_areas().any(func(area: Area2D) -> bool: return area.owner is Player and area.name != "HammerHitbox")