diff --git a/Assets/Audio/SFX/BreakBridge.wav b/Assets/Audio/SFX/BreakBridge.wav new file mode 100644 index 0000000..5dce976 Binary files /dev/null and b/Assets/Audio/SFX/BreakBridge.wav differ diff --git a/Assets/Audio/SFX/BreakBridge.wav.import b/Assets/Audio/SFX/BreakBridge.wav.import new file mode 100644 index 0000000..52c8234 --- /dev/null +++ b/Assets/Audio/SFX/BreakBridge.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://bh0gqm8tog3wq" +path="res://.godot/imported/BreakBridge.wav-1d4382004003a4caf4778e35b631aec5.sample" + +[deps] + +source_file="res://Assets/Audio/SFX/BreakBridge.wav" +dest_files=["res://.godot/imported/BreakBridge.wav-1d4382004003a4caf4778e35b631aec5.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=0 diff --git a/Scenes/Prefabs/Autoload/AudioManager.tscn b/Scenes/Prefabs/Autoload/AudioManager.tscn index 7b72073..9a1f8cc 100644 --- a/Scenes/Prefabs/Autoload/AudioManager.tscn +++ b/Scenes/Prefabs/Autoload/AudioManager.tscn @@ -4,20 +4,20 @@ [ext_resource type="Script" uid="uid://db0uolj5jvlca" path="res://Scripts/Classes/Singletons/AudioManager.gd" id="1_gwo7i"] [ext_resource type="Script" uid="uid://cbal8ms2oe1ik" path="res://Scripts/Classes/Components/ResourceSetterNew.gd" id="3_yp3lf"] -[node name="AudioManager" type="Node"] +[node name="AudioManager" type="Node" unique_id=190002463] process_mode = 3 script = ExtResource("1_gwo7i") -[node name="Music" type="AudioStreamPlayer" parent="."] +[node name="Music" type="AudioStreamPlayer" parent="." unique_id=1310528240] process_mode = 3 stream = ExtResource("1_6s2eu") bus = &"Music" parameters/looping = true -[node name="MusicOverride" type="AudioStreamPlayer" parent="."] +[node name="MusicOverride" type="AudioStreamPlayer" parent="." unique_id=2076997238] bus = &"Music" -[node name="ResourceSetterNew" type="Node" parent="."] +[node name="ResourceSetterNew" type="Node" parent="." unique_id=1350556774] script = ExtResource("3_yp3lf") mode = 3 metadata/_custom_type_script = "uid://cbal8ms2oe1ik" diff --git a/Scenes/Prefabs/Entities/Enemies/Bowser.tscn b/Scenes/Prefabs/Entities/Enemies/Bowser.tscn index c0d4faf..cd58c31 100644 --- a/Scenes/Prefabs/Entities/Enemies/Bowser.tscn +++ b/Scenes/Prefabs/Entities/Enemies/Bowser.tscn @@ -222,7 +222,7 @@ script = ExtResource("6_pvhfi") Overworld = SubResource("SpriteFrames_mcog5") metadata/_custom_type_script = "uid://cmvlgsjmsk0v5" -[node name="Bowser" type="CharacterBody2D" node_paths=PackedStringArray("on_screen_enabler", "score_note_adder") groups=["Bowser", "Enemies"]] +[node name="Bowser" type="CharacterBody2D" unique_id=1487129753 node_paths=PackedStringArray("on_screen_enabler", "score_note_adder") groups=["Bowser", "Enemies"]] z_index = 1 collision_layer = 16 collision_mask = 2 @@ -231,10 +231,10 @@ on_screen_enabler = NodePath("VisibleOnScreenEnabler2D") score_note_adder = NodePath("ScoreNoteSpawner") metadata/block_launch_velocity = -50.0 -[node name="SpriteScaleJoint" type="Node2D" parent="."] +[node name="SpriteScaleJoint" type="Node2D" parent="." unique_id=239188381] position = Vector2(-8, -13) -[node name="Sprite" type="AnimatedSprite2D" parent="SpriteScaleJoint"] +[node name="Sprite" type="AnimatedSprite2D" parent="SpriteScaleJoint" unique_id=756073436] clip_children = 2 position = Vector2(0, -11) scale = Vector2(-1, 1) @@ -248,30 +248,30 @@ script = ExtResource("4_2qn7a") do_offset = false metadata/_custom_type_script = "uid://caq1qiwmy0mox" -[node name="Hitbox" type="Area2D" parent="SpriteScaleJoint/Sprite"] +[node name="Hitbox" type="Area2D" parent="SpriteScaleJoint/Sprite" unique_id=1256158208] position = Vector2(0, 24) rotation = 3.14159 scale = Vector2(1, -1) -[node name="CollisionShape2D" type="CollisionShape2D" parent="SpriteScaleJoint/Sprite/Hitbox"] +[node name="CollisionShape2D" type="CollisionShape2D" parent="SpriteScaleJoint/Sprite/Hitbox" unique_id=1859867718] visible = false position = Vector2(0, -12) shape = SubResource("RectangleShape2D_ma5fd") -[node name="RemoteTransform2D" type="RemoteTransform2D" parent="SpriteScaleJoint/Sprite"] +[node name="RemoteTransform2D" type="RemoteTransform2D" parent="SpriteScaleJoint/Sprite" unique_id=112798433] position = Vector2(8, -8) rotation = 3.14159 scale = Vector2(1, -1) remote_path = NodePath("../../../Hammer") -[node name="ResourceSetterNew" type="Node" parent="SpriteScaleJoint/Sprite" node_paths=PackedStringArray("node_to_affect")] +[node name="ResourceSetterNew" type="Node" parent="SpriteScaleJoint/Sprite" unique_id=555266942 node_paths=PackedStringArray("node_to_affect")] script = ExtResource("5_17x2r") node_to_affect = NodePath("..") property_name = "sprite_frames" resource_json = ExtResource("6_nf6hu") metadata/_custom_type_script = "uid://cbal8ms2oe1ik" -[node name="ColorRect" type="ColorRect" parent="SpriteScaleJoint/Sprite"] +[node name="ColorRect" type="ColorRect" parent="SpriteScaleJoint/Sprite" unique_id=1674277261] modulate = Color(1, 1, 1, 0.552941) self_modulate = Color(1, 1, 1, 0) offset_left = -35.1663 @@ -280,13 +280,13 @@ offset_right = 28.8337 offset_bottom = 42.0 color = Color(1, 0, 0, 1) -[node name="HurtAnimation" type="AnimationPlayer" parent="SpriteScaleJoint"] +[node name="HurtAnimation" type="AnimationPlayer" parent="SpriteScaleJoint" unique_id=1252199300] root_node = NodePath("../..") libraries = { &"": SubResource("AnimationLibrary_6fvct") } -[node name="DeathSprite" type="AnimatedSprite2D" parent="SpriteScaleJoint"] +[node name="DeathSprite" type="AnimatedSprite2D" parent="SpriteScaleJoint" unique_id=1311530935] visible = false position = Vector2(8, 5) sprite_frames = SubResource("SpriteFrames_ckuah") @@ -295,7 +295,7 @@ script = ExtResource("4_2qn7a") do_offset = false metadata/_custom_type_script = "uid://caq1qiwmy0mox" -[node name="ResourceSetterNew" type="Node" parent="SpriteScaleJoint/DeathSprite" node_paths=PackedStringArray("node_to_affect")] +[node name="ResourceSetterNew" type="Node" parent="SpriteScaleJoint/DeathSprite" unique_id=381174695 node_paths=PackedStringArray("node_to_affect")] script = ExtResource("5_17x2r") node_to_affect = NodePath("..") property_name = "sprite_frames" @@ -303,55 +303,55 @@ resource_json = ExtResource("6_nf6hu") use_cache = false metadata/_custom_type_script = "uid://cbal8ms2oe1ik" -[node name="Collision" type="CollisionShape2D" parent="."] +[node name="Collision" type="CollisionShape2D" parent="." unique_id=2093833923] visible = false position = Vector2(0, -9) shape = SubResource("RectangleShape2D_va0n6") -[node name="MoveAnimation" type="AnimationPlayer" parent="."] +[node name="MoveAnimation" type="AnimationPlayer" parent="." unique_id=725232348] libraries = { &"": SubResource("AnimationLibrary_v5oyl") } -autoplay = "Move" +autoplay = &"Move" -[node name="JumpTimer" type="Timer" parent="."] +[node name="JumpTimer" type="Timer" parent="." unique_id=508462891] one_shot = true -[node name="HammerTime" type="Timer" parent="."] +[node name="HammerTime" type="Timer" parent="." unique_id=1639990064] one_shot = true -[node name="FlameTimer" type="Timer" parent="."] +[node name="FlameTimer" type="Timer" parent="." unique_id=1040115668] wait_time = 0.5 one_shot = true -[node name="FallSFX" type="AudioStreamPlayer2D" parent="."] +[node name="FallSFX" type="AudioStreamPlayer2D" parent="." unique_id=1284726920] stream = ExtResource("3_mliv7") bus = &"SFX" -[node name="ResourceSetter" type="Node" parent="FallSFX" node_paths=PackedStringArray("node_to_affect")] +[node name="ResourceSetter" type="Node" parent="FallSFX" unique_id=1991985954 node_paths=PackedStringArray("node_to_affect")] script = ExtResource("5_v5oyl") node_to_affect = NodePath("..") property_name = "stream" themed_resource = SubResource("Resource_5b235") metadata/_custom_type_script = "uid://cq6f682453q6o" -[node name="FireballDetection" type="Node" parent="." node_paths=PackedStringArray("hitbox")] +[node name="FireballDetection" type="Node" parent="." unique_id=1940832858 node_paths=PackedStringArray("hitbox")] script = ExtResource("4_kfwlq") hitbox = NodePath("../SpriteScaleJoint/Sprite/Hitbox") metadata/_custom_type_script = "uid://dri2d5jtu0fbq" -[node name="GibSpawner" type="Node" parent="." node_paths=PackedStringArray("visuals")] +[node name="GibSpawner" type="Node" parent="." unique_id=383912089 node_paths=PackedStringArray("visuals")] script = ExtResource("6_va0n6") visuals = NodePath("../SpriteScaleJoint/DeathSprite") gib_type = 1 metadata/_custom_type_script = "uid://c3gg32ivrlq8n" -[node name="ScoreNoteSpawner" type="Node" parent="."] +[node name="ScoreNoteSpawner" type="Node" parent="." unique_id=149036831] script = ExtResource("11_pvhfi") add_score = true metadata/_custom_type_script = "uid://5octqlf4ohel" -[node name="Hammer" type="Sprite2D" parent="."] +[node name="Hammer" type="Sprite2D" parent="." unique_id=1682440283] visible = false show_behind_parent = true position = Vector2(-16, -32) @@ -359,7 +359,7 @@ texture = ExtResource("4_vubm2") region_enabled = true region_rect = Rect2(0, 0, 16, 16) -[node name="ResourceSetter" type="Node" parent="Hammer" node_paths=PackedStringArray("node_to_affect", "property_node")] +[node name="ResourceSetter" type="Node" parent="Hammer" unique_id=650587338 node_paths=PackedStringArray("node_to_affect", "property_node")] script = ExtResource("5_17x2r") node_to_affect = NodePath("..") property_node = NodePath("..") @@ -368,43 +368,43 @@ mode = 1 resource_json = ExtResource("15_yggkc") metadata/_custom_type_script = "uid://cbal8ms2oe1ik" -[node name="VisibleOnScreenEnabler2D" type="VisibleOnScreenEnabler2D" parent="."] +[node name="VisibleOnScreenEnabler2D" type="VisibleOnScreenEnabler2D" parent="." unique_id=1469437747] self_modulate = Color(1, 1, 1, 0) position = Vector2(-1.42109e-14, -16) scale = Vector2(1.85, 2.1) -[node name="ThemedToJSONConverter" type="Node" parent="."] +[node name="ThemedToJSONConverter" type="Node" parent="." unique_id=510890767] script = ExtResource("14_nf6hu") resource = SubResource("Resource_exf4b") json_file_path = "res://Assets/Sprites/Enemies/Bowser.json" metadata/_custom_type_script = "uid://cqif1li7otvpl" -[node name="EditorPropertyExposer" type="Node" parent="."] +[node name="EditorPropertyExposer" type="Node" parent="." unique_id=415274022] script = ExtResource("15_nf6hu") properties = Array[String](["can_hammer", "can_fire", "is_real"]) -[node name="TrackJoint" type="Node" parent="."] +[node name="TrackJoint" type="Node" parent="." unique_id=1232552939] script = ExtResource("17_5b235") metadata/_custom_type_script = "uid://d4a7yp6e55u8t" -[node name="ShellDetection" type="Node" parent="." node_paths=PackedStringArray("hitbox")] +[node name="ShellDetection" type="Node" parent="." unique_id=785980241 node_paths=PackedStringArray("hitbox")] script = ExtResource("19_ymlbw") hitbox = NodePath("../SpriteScaleJoint/Sprite/Hitbox") metadata/_custom_type_script = "uid://bbww34oiexbx2" -[node name="EnemyPlayerDetection" type="Node" parent="." node_paths=PackedStringArray("hitbox")] +[node name="EnemyPlayerDetection" type="Node" parent="." unique_id=1200979227 node_paths=PackedStringArray("hitbox")] script = ExtResource("20_ckuah") hitbox = NodePath("../SpriteScaleJoint/Sprite/Hitbox") metadata/_custom_type_script = "uid://chj8hu207lrh" -[node name="ExplosionDetection" type="Node" parent="." node_paths=PackedStringArray("hitbox")] +[node name="ExplosionDetection" type="Node" parent="." unique_id=587090740 node_paths=PackedStringArray("hitbox")] script = ExtResource("21_mcog5") hitbox = NodePath("../SpriteScaleJoint/Sprite/Hitbox") metadata/_custom_type_script = "uid://ba18grqjixded" [connection signal="killed" from="." to="GibSpawner" method="summon_gib"] -[connection signal="killed" from="." to="ScoreNoteSpawner" method="spawn_note" binds= [5000]] [connection signal="killed" from="." to="." method="show_smoke" unbinds=1] +[connection signal="killed" from="." to="ScoreNoteSpawner" method="spawn_note" binds= [5000]] [connection signal="area_entered" from="SpriteScaleJoint/Sprite/Hitbox" to="." method="on_area_entered"] [connection signal="timeout" from="JumpTimer" to="." method="jump"] [connection signal="timeout" from="HammerTime" to="." method="throw_hammers"] diff --git a/Scenes/Prefabs/LevelObjects/CastleBridge.tscn b/Scenes/Prefabs/LevelObjects/CastleBridge.tscn index 00f8811..8f3b207 100644 --- a/Scenes/Prefabs/LevelObjects/CastleBridge.tscn +++ b/Scenes/Prefabs/LevelObjects/CastleBridge.tscn @@ -43,21 +43,21 @@ animations = [{ "texture": SubResource("AtlasTexture_tmf7w") }], "loop": true, -"name": &"default", +"name": &"Idle", "speed": 10.0 }] [sub_resource type="RectangleShape2D" id="RectangleShape2D_7m65m"] size = Vector2(2, 8) +[sub_resource type="WorldBoundaryShape2D" id="WorldBoundaryShape2D_tmf7w"] +normal = Vector2(-1, 0) + [sub_resource type="Resource" id="Resource_8q7qv"] script = ExtResource("8_geany") Overworld = ExtResource("1_030qv") metadata/_custom_type_script = "uid://cmvlgsjmsk0v5" -[sub_resource type="WorldBoundaryShape2D" id="WorldBoundaryShape2D_tmf7w"] -normal = Vector2(-1, 0) - [sub_resource type="GDScript" id="GDScript_wgdlx"] script/source = "@tool extends Node @@ -76,126 +76,145 @@ func _process(_delta: float) -> void: " -[node name="CastleBridge" type="Node2D" groups=["CastleBridges"]] +[node name="CastleBridge" type="Node2D" unique_id=1454074578 groups=["CastleBridges"]] process_mode = 3 script = ExtResource("1_7m65m") -[node name="Bridge" type="Node2D" parent="."] +[node name="Bridge" type="Node2D" parent="." unique_id=1389252244] -[node name="CastleBridgeSegment" parent="Bridge" instance=ExtResource("2_rdab3")] +[node name="CastleBridgeSegment" parent="Bridge" unique_id=1507955674 instance=ExtResource("2_rdab3")] position = Vector2(192, 0) -[node name="CastleBridgeSegment2" parent="Bridge" instance=ExtResource("2_rdab3")] +[node name="CastleBridgeSegment2" parent="Bridge" unique_id=278319918 instance=ExtResource("2_rdab3")] position = Vector2(176, 0) -[node name="CastleBridgeSegment3" parent="Bridge" instance=ExtResource("2_rdab3")] +[node name="CastleBridgeSegment3" parent="Bridge" unique_id=49611166 instance=ExtResource("2_rdab3")] position = Vector2(160, 0) -[node name="CastleBridgeSegment4" parent="Bridge" instance=ExtResource("2_rdab3")] +[node name="CastleBridgeSegment4" parent="Bridge" unique_id=443879360 instance=ExtResource("2_rdab3")] position = Vector2(144, 0) -[node name="CastleBridgeSegment5" parent="Bridge" instance=ExtResource("2_rdab3")] +[node name="CastleBridgeSegment5" parent="Bridge" unique_id=488378564 instance=ExtResource("2_rdab3")] position = Vector2(128, 0) -[node name="CastleBridgeSegment6" parent="Bridge" instance=ExtResource("2_rdab3")] +[node name="CastleBridgeSegment6" parent="Bridge" unique_id=451101729 instance=ExtResource("2_rdab3")] position = Vector2(112, 0) -[node name="CastleBridgeSegment7" parent="Bridge" instance=ExtResource("2_rdab3")] +[node name="CastleBridgeSegment7" parent="Bridge" unique_id=640211980 instance=ExtResource("2_rdab3")] position = Vector2(96, 0) -[node name="CastleBridgeSegment8" parent="Bridge" instance=ExtResource("2_rdab3")] +[node name="CastleBridgeSegment8" parent="Bridge" unique_id=2108951897 instance=ExtResource("2_rdab3")] position = Vector2(80, 0) -[node name="CastleBridgeSegment9" parent="Bridge" instance=ExtResource("2_rdab3")] +[node name="CastleBridgeSegment9" parent="Bridge" unique_id=2114650867 instance=ExtResource("2_rdab3")] position = Vector2(64, 0) -[node name="CastleBridgeSegment10" parent="Bridge" instance=ExtResource("2_rdab3")] +[node name="CastleBridgeSegment10" parent="Bridge" unique_id=1627902871 instance=ExtResource("2_rdab3")] position = Vector2(48, 0) -[node name="CastleBridgeSegment11" parent="Bridge" instance=ExtResource("2_rdab3")] +[node name="CastleBridgeSegment11" parent="Bridge" unique_id=757147707 instance=ExtResource("2_rdab3")] position = Vector2(32, 0) -[node name="CastleBridgeSegment12" parent="Bridge" instance=ExtResource("2_rdab3")] +[node name="CastleBridgeSegment12" parent="Bridge" unique_id=701831054 instance=ExtResource("2_rdab3")] position = Vector2(16, 0) -[node name="CastleBridgeSegment13" parent="Bridge" instance=ExtResource("2_rdab3")] +[node name="CastleBridgeSegment13" parent="Bridge" unique_id=641403732 instance=ExtResource("2_rdab3")] -[node name="CastleBridgeSegment14" parent="Bridge" instance=ExtResource("2_rdab3")] +[node name="CastleBridgeSegment14" parent="Bridge" unique_id=115300263 instance=ExtResource("2_rdab3")] visible = false position = Vector2(-999, 0) -[node name="CastleBridgeSegment15" parent="Bridge" instance=ExtResource("2_rdab3")] +[node name="CastleBridgeSegment15" parent="Bridge" unique_id=1244829237 instance=ExtResource("2_rdab3")] visible = false position = Vector2(-999, 0) -[node name="CastleBridgeSegment16" parent="Bridge" instance=ExtResource("2_rdab3")] +[node name="CastleBridgeSegment16" parent="Bridge" unique_id=676271033 instance=ExtResource("2_rdab3")] visible = false position = Vector2(-999, 0) -[node name="CastleBridgeSegment17" parent="Bridge" instance=ExtResource("2_rdab3")] +[node name="CastleBridgeSegment17" parent="Bridge" unique_id=1847729921 instance=ExtResource("2_rdab3")] visible = false position = Vector2(-999, 0) -[node name="CastleBridgeSegment18" parent="Bridge" instance=ExtResource("2_rdab3")] +[node name="CastleBridgeSegment18" parent="Bridge" unique_id=2122926096 instance=ExtResource("2_rdab3")] visible = false position = Vector2(-999, 0) -[node name="CastleBridgeSegment19" parent="Bridge" instance=ExtResource("2_rdab3")] +[node name="CastleBridgeSegment19" parent="Bridge" unique_id=1657029500 instance=ExtResource("2_rdab3")] visible = false position = Vector2(-999, 0) -[node name="CastleBridgeSegment20" parent="Bridge" instance=ExtResource("2_rdab3")] +[node name="CastleBridgeSegment20" parent="Bridge" unique_id=1471292361 instance=ExtResource("2_rdab3")] visible = false position = Vector2(-999, 0) -[node name="Axe" type="AnimatedSprite2D" parent="."] -process_mode = 1 -position = Vector2(208, -32) +[node name="AxeAnim" type="AnimatedSprite2D" parent="." unique_id=447443895] +process_mode = 3 +position = Vector2(208, -24) sprite_frames = SubResource("SpriteFrames_13fwi") -autoplay = "default" -frame_progress = 0.124132 +animation = &"Idle" +autoplay = "Idle" +offset = Vector2(0, -8) script = ExtResource("4_s4k02") do_offset = false metadata/_custom_type_script = "uid://caq1qiwmy0mox" -[node name="Hitbox" type="Area2D" parent="Axe"] - -[node name="CollisionShape2D" type="CollisionShape2D" parent="Axe/Hitbox"] -shape = SubResource("RectangleShape2D_7m65m") - -[node name="Sprite2D14" type="Sprite2D" parent="Axe"] -position = Vector2(-16, 16) -texture = ExtResource("1_030qv") -region_enabled = true -region_rect = Rect2(208, 128, 16, 16) -region_filter_clip_enabled = true - -[node name="ResourceSetterNew" type="Node" parent="Axe/Sprite2D14" node_paths=PackedStringArray("node_to_affect")] -script = ExtResource("5_vt2ac") -node_to_affect = NodePath("..") -property_name = "texture" -themed_resource = SubResource("Resource_8q7qv") -metadata/_custom_type_script = "uid://cq6f682453q6o" - -[node name="CameraRightLimit" type="Node2D" parent="Axe"] -position = Vector2(24, 8) -script = ExtResource("4_tmf7w") -metadata/_custom_type_script = "uid://bdq0373j5n5o0" - -[node name="StaticBody2D" type="StaticBody2D" parent="Axe"] - -[node name="CollisionShape2D" type="CollisionShape2D" parent="Axe/StaticBody2D"] -position = Vector2(8, 0) -shape = SubResource("WorldBoundaryShape2D_tmf7w") - -[node name="ResourceSetterNew" type="Node" parent="Axe" node_paths=PackedStringArray("node_to_affect")] +[node name="ResourceSetterNew" type="Node" parent="AxeAnim" unique_id=1088984355 node_paths=PackedStringArray("node_to_affect")] script = ExtResource("9_m5y50") node_to_affect = NodePath("..") property_name = "sprite_frames" resource_json = ExtResource("10_kvynl") metadata/_custom_type_script = "uid://cbal8ms2oe1ik" -[node name="Camera" type="Camera2D" parent="."] +[node name="Axe" type="AnimatedSprite2D" parent="." unique_id=99773570] +process_mode = 1 +visible = false +position = Vector2(208, -32) +sprite_frames = SubResource("SpriteFrames_13fwi") +animation = &"Idle" +autoplay = "Idle" +script = ExtResource("4_s4k02") +do_offset = false +metadata/_custom_type_script = "uid://caq1qiwmy0mox" + +[node name="Hitbox" type="Area2D" parent="Axe" unique_id=1816879694] + +[node name="CollisionShape2D" type="CollisionShape2D" parent="Axe/Hitbox" unique_id=1237174637] +shape = SubResource("RectangleShape2D_7m65m") + +[node name="CameraRightLimit" type="Node2D" parent="Axe" unique_id=1025344155] +position = Vector2(24, 8) +script = ExtResource("4_tmf7w") +metadata/_custom_type_script = "uid://bdq0373j5n5o0" + +[node name="StaticBody2D" type="StaticBody2D" parent="Axe" unique_id=1035029581] + +[node name="CollisionShape2D" type="CollisionShape2D" parent="Axe/StaticBody2D" unique_id=725752346] +position = Vector2(8, 0) +shape = SubResource("WorldBoundaryShape2D_tmf7w") + +[node name="ResourceSetterNew" type="Node" parent="Axe" unique_id=634664480 node_paths=PackedStringArray("node_to_affect")] +script = ExtResource("9_m5y50") +node_to_affect = NodePath("..") +property_name = "sprite_frames" +resource_json = ExtResource("10_kvynl") +metadata/_custom_type_script = "uid://cbal8ms2oe1ik" + +[node name="BridgeChain" type="Sprite2D" parent="." unique_id=1002244871] +position = Vector2(192, -16) +texture = ExtResource("1_030qv") +region_enabled = true +region_rect = Rect2(208, 128, 16, 16) +region_filter_clip_enabled = true + +[node name="ResourceSetterNew" type="Node" parent="BridgeChain" unique_id=364332794 node_paths=PackedStringArray("node_to_affect")] +script = ExtResource("5_vt2ac") +node_to_affect = NodePath("..") +property_name = "texture" +themed_resource = SubResource("Resource_8q7qv") +metadata/_custom_type_script = "uid://cq6f682453q6o" + +[node name="Camera" type="Camera2D" parent="." unique_id=1968732919] position = Vector2(216, -56) process_callback = 0 limit_left = -256 @@ -203,25 +222,25 @@ limit_top = -208 limit_bottom = 32 editor_draw_limits = true -[node name="EditorPropertyExposer" type="Node" parent="."] +[node name="EditorPropertyExposer" type="Node" parent="." unique_id=1761088113] script = ExtResource("10_wgdlx") properties = Array[String](["length"]) metadata/_custom_type_script = "uid://ctfbuoxtnnl0q" -[node name="Node" type="Node" parent="."] +[node name="Node" type="Node" parent="." unique_id=1651990252] process_mode = 3 script = SubResource("GDScript_wgdlx") -[node name="LevelEditorVisibleNode" type="Node2D" parent="."] +[node name="LevelEditorVisibleNode" type="Node2D" parent="." unique_id=649003436] script = ExtResource("11_puc3y") metadata/_custom_type_script = "uid://cpwloakvp672a" -[node name="Sprite2D" type="Sprite2D" parent="LevelEditorVisibleNode"] +[node name="Sprite2D" type="Sprite2D" parent="LevelEditorVisibleNode" unique_id=208144054] z_index = 4096 position = Vector2(192, 0) texture = ExtResource("12_do8w3") -[node name="EditorToggleDetection" type="Node" parent="."] +[node name="EditorToggleDetection" type="Node" parent="." unique_id=1042719247] script = ExtResource("13_do8w3") [connection signal="area_entered" from="Axe/Hitbox" to="." method="on_area_entered" flags=3] diff --git a/Scripts/Classes/Entities/Enemies/Bowser.gd b/Scripts/Classes/Entities/Enemies/Bowser.gd index 96f69e6..42ff8eb 100644 --- a/Scripts/Classes/Entities/Enemies/Bowser.gd +++ b/Scripts/Classes/Entities/Enemies/Bowser.gd @@ -62,6 +62,8 @@ func breathe_fire() -> void: return sprite.play("FireCharge") await get_tree().create_timer(1, false).timeout + if ignore_flag_die: + return var flame = BOWSER_FLAME.instantiate() flame.global_position = global_position + Vector2(18 * direction, -20) flame.mode = 1 @@ -77,23 +79,25 @@ func breathe_fire() -> void: await get_tree().create_timer(0.5, false).timeout sprite.play("Idle") -func bridge_fall() -> void: - process_mode = Node.PROCESS_MODE_ALWAYS - direction = 1 - $FlameTimer.queue_free() - $HammerTime.queue_free() - $JumpTimer.queue_free() - sprite.play("Fall") - sprite.reset_physics_interpolation() - $MoveAnimation.queue_free() - can_fall = false - velocity.y = 0 - await get_tree().create_timer(2).timeout - $FallSFX.play() - can_fall = true - $Collision.queue_free() - await get_tree().create_timer(2).timeout - queue_free() +func bridge_fall(start: bool = false) -> void: + if start: + process_mode = Node.PROCESS_MODE_ALWAYS + direction = 1 + sprite.play("Fall") + sprite.reset_physics_interpolation() + $FlameTimer.queue_free() + $HammerTime.queue_free() + $JumpTimer.queue_free() + $MoveAnimation.queue_free() + can_fall = false + velocity.y = 0 + else: + $FallSFX.play() + ignore_flag_die = true + can_fall = true + $Collision.queue_free() + await get_tree().create_timer(5).timeout + queue_free() func throw_hammers() -> void: if can_hammer == false: @@ -102,7 +106,13 @@ func throw_hammers() -> void: await get_tree().create_timer(0.5, false).timeout for i in randi_range(3, 6): $Hammer.show() + if ignore_flag_die: + $Hammer.hide() + return await get_tree().create_timer(0.1, false).timeout + if ignore_flag_die: + $Hammer.hide() + return var node = HAMMER.instantiate() node.velocity.y = -200 node.global_position = $Hammer.global_position diff --git a/Scripts/Classes/Entities/Enemy.gd b/Scripts/Classes/Entities/Enemy.gd index d665643..c373261 100644 --- a/Scripts/Classes/Entities/Enemy.gd +++ b/Scripts/Classes/Entities/Enemy.gd @@ -8,6 +8,7 @@ signal killed(direction: int) @export var score_note_adder: ScoreNoteSpawner = null var direction := -1 +var ignore_flag_die := false func damage_player(player: Player) -> void: player.damage() @@ -31,7 +32,7 @@ func die_from_object(obj: Node2D) -> void: queue_free() func flag_die() -> void: - if on_screen_enabler != null: + if on_screen_enabler != null and ignore_flag_die == false: if on_screen_enabler.is_on_screen(): queue_free() if score_note_adder != null: diff --git a/Scripts/Classes/Singletons/AudioManager.gd b/Scripts/Classes/Singletons/AudioManager.gd index 94ad32d..ea4bee0 100644 --- a/Scripts/Classes/Singletons/AudioManager.gd +++ b/Scripts/Classes/Singletons/AudioManager.gd @@ -11,6 +11,7 @@ const DEFAULT_SFX_LIBRARY := { "power_up": ("res://Assets/Audio/SFX/Powerup.wav"), "item_appear": ("res://Assets/Audio/SFX/ItemAppear.wav"), "block_break": ("res://Assets/Audio/SFX/BreakBlock.wav"), + "bridge_break": ("res://Assets/Audio/SFX/BreakBridge.wav"), "enemy_stomp": ("res://Assets/Audio/SFX/Stomp.wav"), "kick": ("res://Assets/Audio/SFX/Kick.wav"), "fireball": ("res://Assets/Audio/SFX/Fireball.wav"), diff --git a/Scripts/Parts/CastleBridge.gd b/Scripts/Parts/CastleBridge.gd index a89e145..c166b91 100644 --- a/Scripts/Parts/CastleBridge.gd +++ b/Scripts/Parts/CastleBridge.gd @@ -45,20 +45,34 @@ func destroy_bridge(player: Player) -> void: Global.can_time_tick = false axe_touched.emit() $Axe.queue_free() + if $AxeAnim.sprite_frames.has_animation("Cut"): + $AxeAnim.play("Cut") + else: + $AxeAnim.queue_free() if bowser_present: + var bowser_count = 0 for i in get_tree().get_nodes_in_group("Bowser"): - i.bridge_fall() + if i.ignore_flag_die == false: + bowser_count += 1 + i.bridge_fall(true) + if bowser_count <= 0: + return get_tree().paused = true await get_tree().create_timer(0.5).timeout + AudioManager.play_sfx("bridge_break", $BridgeChain.global_position) + $BridgeChain.queue_free() + await get_tree().create_timer(0.067).timeout for i in $Bridge.get_children(): if i.visible: - AudioManager.play_sfx("block_break", i.global_position) - if Settings.file.visuals.bridge_animation == 0: - bridge_piece_break(i) - else: - bridge_piece_fall(i) - await get_tree().create_timer(0.1).timeout - await get_tree().create_timer(1.5).timeout + AudioManager.play_sfx("bridge_break", i.global_position) + if Settings.file.visuals.bridge_animation == 0: + bridge_piece_break(i) + else: + bridge_piece_fall(i) + await get_tree().create_timer(0.067).timeout + for i in get_tree().get_nodes_in_group("Bowser"): + i.bridge_fall(false) + await get_tree().create_timer(1).timeout get_tree().paused = false victory_sequence(player)