added the game

This commit is contained in:
JHDev2006
2025-09-13 16:30:32 +01:00
parent 5ef689109b
commit 3773bdaf64
3616 changed files with 263702 additions and 0 deletions

View File

@@ -0,0 +1,23 @@
[gd_scene load_steps=4 format=3 uid="uid://cwv4ic558ayun"]
[ext_resource type="AudioStream" uid="uid://chknkfu4c0gsp" path="res://Assets/Audio/BGM/Overworld.mp3" id="1_6s2eu"]
[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"]
process_mode = 3
script = ExtResource("1_gwo7i")
[node name="Music" type="AudioStreamPlayer" parent="."]
process_mode = 3
stream = ExtResource("1_6s2eu")
bus = &"Music"
parameters/looping = true
[node name="MusicOverride" type="AudioStreamPlayer" parent="."]
bus = &"Music"
[node name="ResourceSetterNew" type="Node" parent="."]
script = ExtResource("3_yp3lf")
mode = 3
metadata/_custom_type_script = "uid://cbal8ms2oe1ik"

View File

@@ -0,0 +1,20 @@
[gd_scene load_steps=5 format=3 uid="uid://qbdhck2rgjwk"]
[ext_resource type="Script" uid="uid://ckwnap31rqfru" path="res://Scripts/Classes/Singletons/SettingsManager.gd" id="1_4dj5d"]
[ext_resource type="Script" uid="uid://26yissv8bnqw" path="res://Scripts/UI/WindowChanger.gd" id="2_uhh15"]
[ext_resource type="Script" uid="uid://bdgvsycico544" path="res://Scripts/UI/AudioAdjuster.gd" id="3_mxpdm"]
[ext_resource type="Script" uid="uid://hb401vacltfw" path="res://Scripts/Parts/VisualsSetter.gd" id="4_uhh15"]
[node name="Settings" type="Node"]
script = ExtResource("1_4dj5d")
[node name="Apply" type="Node" parent="."]
[node name="Video" type="Node" parent="Apply"]
script = ExtResource("2_uhh15")
[node name="Audio" type="Node" parent="Apply"]
script = ExtResource("3_mxpdm")
[node name="Visuals" type="Node" parent="Apply"]
script = ExtResource("4_uhh15")

View File

@@ -0,0 +1,148 @@
[gd_scene load_steps=21 format=3 uid="uid://by6ndsjhlkmbt"]
[ext_resource type="Texture2D" uid="uid://coe8j7vfyvmh8" path="res://Assets/Sprites/Blocks/BooOnOffBlock.png" id="1_j75mb"]
[ext_resource type="Script" uid="uid://be2x40pxmueyo" path="res://Scripts/Classes/Blocks/BooOnOffBlock.gd" id="1_mttsc"]
[ext_resource type="Script" uid="uid://cnheej0sxmoxg" path="res://Scripts/Parts/PlayerDetection.gd" id="3_ds5j0"]
[ext_resource type="Script" uid="uid://cbal8ms2oe1ik" path="res://Scripts/Classes/Components/ResourceSetterNew.gd" id="3_sf1e4"]
[ext_resource type="JSON" path="res://Assets/Sprites/Blocks/BooOnOffBlockRed.json" id="4_ofstd"]
[ext_resource type="Script" uid="uid://d4a7yp6e55u8t" path="res://Scripts/Classes/Components/TrackJoint.gd" id="6_y6qjl"]
[sub_resource type="AtlasTexture" id="AtlasTexture_mttsc"]
atlas = ExtResource("1_j75mb")
region = Rect2(64, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_ds5j0"]
atlas = ExtResource("1_j75mb")
region = Rect2(0, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_wpfka"]
atlas = ExtResource("1_j75mb")
region = Rect2(16, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_ejjud"]
atlas = ExtResource("1_j75mb")
region = Rect2(32, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_iufm8"]
atlas = ExtResource("1_j75mb")
region = Rect2(48, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_ly3ab"]
atlas = ExtResource("1_j75mb")
region = Rect2(64, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_b85kh"]
atlas = ExtResource("1_j75mb")
region = Rect2(64, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_3r05r"]
atlas = ExtResource("1_j75mb")
region = Rect2(80, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_vqjxh"]
atlas = ExtResource("1_j75mb")
region = Rect2(96, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_374u5"]
atlas = ExtResource("1_j75mb")
region = Rect2(112, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_qg086"]
atlas = ExtResource("1_j75mb")
region = Rect2(0, 0, 16, 16)
[sub_resource type="SpriteFrames" id="SpriteFrames_xp1gv"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_mttsc")
}],
"loop": true,
"name": &"Default",
"speed": 5.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_ds5j0")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_wpfka")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_ejjud")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_iufm8")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_ly3ab")
}],
"loop": false,
"name": &"Off",
"speed": 15.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_b85kh")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_3r05r")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_vqjxh")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_374u5")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_qg086")
}],
"loop": false,
"name": &"On",
"speed": 15.0
}]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_fe1rr"]
size = Vector2(16, 16)
[sub_resource type="RectangleShape2D" id="RectangleShape2D_ds5j0"]
size = Vector2(12, 12)
[node name="BooOnOffBlock" type="AnimatableBody2D" groups=["BooBlocks"]]
collision_layer = 6
collision_mask = 0
sync_to_physics = false
script = ExtResource("1_mttsc")
[node name="Sprite" type="AnimatedSprite2D" parent="."]
sprite_frames = SubResource("SpriteFrames_xp1gv")
animation = &"Default"
autoplay = "Default"
[node name="ResourceSetter" type="Node" parent="Sprite" node_paths=PackedStringArray("node_to_affect")]
script = ExtResource("3_sf1e4")
node_to_affect = NodePath("..")
property_name = "sprite_frames"
resource_json = ExtResource("4_ofstd")
metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
[node name="Collision" type="CollisionShape2D" parent="."]
visible = false
shape = SubResource("RectangleShape2D_fe1rr")
disabled = true
[node name="PlayerDetection" type="Area2D" parent="."]
visible = false
script = ExtResource("3_ds5j0")
metadata/_custom_type_script = "uid://cnheej0sxmoxg"
[node name="CollisionShape2D" type="CollisionShape2D" parent="PlayerDetection"]
shape = SubResource("RectangleShape2D_ds5j0")
[node name="TrackJoint" type="Node" parent="."]
script = ExtResource("6_y6qjl")
offset = Vector2(0, 0)
metadata/_custom_type_script = "uid://d4a7yp6e55u8t"
[connection signal="player_entered" from="PlayerDetection" to="." method="on_player_entered"]
[connection signal="player_exited" from="PlayerDetection" to="." method="on_player_exited"]

View File

@@ -0,0 +1,113 @@
[gd_scene load_steps=16 format=3 uid="uid://c1xle3fplnxtr"]
[ext_resource type="PackedScene" uid="uid://by6ndsjhlkmbt" path="res://Scenes/Prefabs/Blocks/BooRaceBlocks/BooOnOffBlock.tscn" id="1_snfqb"]
[ext_resource type="Texture2D" uid="uid://coe8j7vfyvmh8" path="res://Assets/Sprites/Blocks/BooOnOffBlock.png" id="2_vdgbk"]
[ext_resource type="JSON" path="res://Assets/Sprites/Blocks/BooBlueOnOffBlock.json" id="3_yech7"]
[sub_resource type="AtlasTexture" id="AtlasTexture_snfqb"]
atlas = ExtResource("2_vdgbk")
region = Rect2(0, 16, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_nofac"]
atlas = ExtResource("2_vdgbk")
region = Rect2(0, 16, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_ptbl1"]
atlas = ExtResource("2_vdgbk")
region = Rect2(16, 16, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_aqmci"]
atlas = ExtResource("2_vdgbk")
region = Rect2(32, 16, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_h7e20"]
atlas = ExtResource("2_vdgbk")
region = Rect2(48, 16, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_s8xmr"]
atlas = ExtResource("2_vdgbk")
region = Rect2(64, 16, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_2kj2p"]
atlas = ExtResource("2_vdgbk")
region = Rect2(64, 16, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_4r68e"]
atlas = ExtResource("2_vdgbk")
region = Rect2(80, 16, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_l1ywa"]
atlas = ExtResource("2_vdgbk")
region = Rect2(96, 16, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_uyt6e"]
atlas = ExtResource("2_vdgbk")
region = Rect2(112, 16, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_jpy10"]
atlas = ExtResource("2_vdgbk")
region = Rect2(0, 16, 16, 16)
[sub_resource type="SpriteFrames" id="SpriteFrames_yh3se"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_snfqb")
}],
"loop": true,
"name": &"Default",
"speed": 5.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_nofac")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_ptbl1")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_aqmci")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_h7e20")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_s8xmr")
}],
"loop": false,
"name": &"Off",
"speed": 15.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_2kj2p")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_4r68e")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_l1ywa")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_uyt6e")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_jpy10")
}],
"loop": false,
"name": &"On",
"speed": 15.0
}]
[node name="BooOnOffBlock" instance=ExtResource("1_snfqb")]
active = true
[node name="Sprite" parent="." index="0"]
sprite_frames = SubResource("SpriteFrames_yh3se")
animation = &"Off"
[node name="ResourceSetter" parent="Sprite" index="0"]
resource_json = ExtResource("3_yech7")
[node name="Collision" parent="." index="1"]
disabled = false

View File

@@ -0,0 +1,133 @@
[gd_scene load_steps=19 format=3 uid="uid://5ua3p0lfl1bf"]
[ext_resource type="Script" uid="uid://bm72ggve5kda5" path="res://Scripts/Classes/Blocks/BooOnOffSwitch.gd" id="1_ldgc7"]
[ext_resource type="Texture2D" uid="uid://b00h2ocjft42e" path="res://Assets/Sprites/Blocks/BooOnOffSwitch.png" id="2_b0kgh"]
[ext_resource type="Script" uid="uid://cbal8ms2oe1ik" path="res://Scripts/Classes/Components/ResourceSetterNew.gd" id="3_afw5n"]
[ext_resource type="PackedScene" uid="uid://cijkvfkthetn5" path="res://Scenes/Parts/BlockAnimations.tscn" id="3_b0kgh"]
[ext_resource type="JSON" path="res://Assets/Sprites/Blocks/BooOnOffSwitch.json" id="4_bllja"]
[sub_resource type="AtlasTexture" id="AtlasTexture_yh77s"]
atlas = ExtResource("2_b0kgh")
region = Rect2(0, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_ldgc7"]
atlas = ExtResource("2_b0kgh")
region = Rect2(0, 16, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_mcsv7"]
atlas = ExtResource("2_b0kgh")
region = Rect2(16, 16, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_60tvi"]
atlas = ExtResource("2_b0kgh")
region = Rect2(32, 16, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_f7t61"]
atlas = ExtResource("2_b0kgh")
region = Rect2(48, 16, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_hbxxr"]
atlas = ExtResource("2_b0kgh")
region = Rect2(0, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_h8ett"]
atlas = ExtResource("2_b0kgh")
region = Rect2(0, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_ykmgv"]
atlas = ExtResource("2_b0kgh")
region = Rect2(16, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_whks1"]
atlas = ExtResource("2_b0kgh")
region = Rect2(32, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_la0ug"]
atlas = ExtResource("2_b0kgh")
region = Rect2(48, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_dxm0r"]
atlas = ExtResource("2_b0kgh")
region = Rect2(0, 16, 16, 16)
[sub_resource type="SpriteFrames" id="SpriteFrames_yh77s"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_yh77s")
}],
"loop": true,
"name": &"Default",
"speed": 5.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_ldgc7")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_mcsv7")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_60tvi")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_f7t61")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_hbxxr")
}],
"loop": false,
"name": &"Off",
"speed": 15.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_h8ett")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_ykmgv")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_whks1")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_la0ug")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_dxm0r")
}],
"loop": false,
"name": &"On",
"speed": 15.0
}]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_uwq65"]
size = Vector2(16, 16)
[node name="BooOnOffSwitch" type="AnimatableBody2D" node_paths=PackedStringArray("visuals") groups=["BooBlocks", "BooSwitchBlocks"]]
collision_layer = 6
collision_mask = 0
script = ExtResource("1_ldgc7")
visuals = NodePath("Sprite")
metadata/_custom_type_script = "uid://b5ejlbl0vp1gm"
[node name="Sprite" type="AnimatedSprite2D" parent="."]
sprite_frames = SubResource("SpriteFrames_yh77s")
animation = &"On"
autoplay = "Default"
[node name="ResourceSetter" type="Node" parent="Sprite" node_paths=PackedStringArray("node_to_affect")]
script = ExtResource("3_afw5n")
node_to_affect = NodePath("..")
property_name = "sprite_frames"
resource_json = ExtResource("4_bllja")
metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
[node name="Collision" type="CollisionShape2D" parent="."]
visible = false
shape = SubResource("RectangleShape2D_uwq65")
[node name="BlockAnimations" parent="." instance=ExtResource("3_b0kgh")]
[connection signal="player_block_hit" from="." to="." method="on_block_hit" unbinds=1]
[connection signal="player_block_hit" from="." to="BlockAnimations" method="bounce_block" unbinds=1]

View File

@@ -0,0 +1,174 @@
[gd_scene load_steps=21 format=3 uid="uid://dgq7enviy1qhw"]
[ext_resource type="Script" uid="uid://du5hnwdhv7x66" path="res://Scripts/Classes/Blocks/TimedBooBlock.gd" id="1_hessd"]
[ext_resource type="Script" uid="uid://cbal8ms2oe1ik" path="res://Scripts/Classes/Components/ResourceSetterNew.gd" id="3_5y3wt"]
[ext_resource type="Script" uid="uid://caq1qiwmy0mox" path="res://Scripts/Parts/BetterAnimatedSprite.gd" id="3_7bqom"]
[ext_resource type="Texture2D" uid="uid://bi13n4mw0to20" path="res://Assets/Sprites/Blocks/TimedBooBlock.png" id="3_46g6h"]
[ext_resource type="JSON" path="res://Assets/Sprites/Blocks/TimedBooBlock.json" id="4_7bqom"]
[ext_resource type="PackedScene" uid="uid://cijkvfkthetn5" path="res://Scenes/Parts/BlockAnimations.tscn" id="4_tgrgf"]
[sub_resource type="AtlasTexture" id="AtlasTexture_slvan"]
atlas = ExtResource("3_46g6h")
region = Rect2(48, 16, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_mewnl"]
atlas = ExtResource("3_46g6h")
region = Rect2(64, 16, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_mcix7"]
atlas = ExtResource("3_46g6h")
region = Rect2(80, 16, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_mmpdk"]
atlas = ExtResource("3_46g6h")
region = Rect2(32, 16, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_n5dg2"]
atlas = ExtResource("3_46g6h")
region = Rect2(16, 16, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_ibap3"]
atlas = ExtResource("3_46g6h")
region = Rect2(0, 16, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_7gr33"]
atlas = ExtResource("3_46g6h")
region = Rect2(32, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_2kb58"]
atlas = ExtResource("3_46g6h")
region = Rect2(16, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_huvet"]
atlas = ExtResource("3_46g6h")
region = Rect2(0, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_i3exc"]
atlas = ExtResource("3_46g6h")
region = Rect2(48, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_r3ncx"]
atlas = ExtResource("3_46g6h")
region = Rect2(64, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_8firs"]
atlas = ExtResource("3_46g6h")
region = Rect2(80, 0, 16, 16)
[sub_resource type="SpriteFrames" id="SpriteFrames_7ajl0"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_slvan")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_mewnl")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_mcix7")
}],
"loop": false,
"name": &"BlueToRed",
"speed": 15.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_mmpdk")
}],
"loop": true,
"name": &"Off1",
"speed": 5.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_n5dg2")
}],
"loop": true,
"name": &"Off2",
"speed": 5.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_ibap3")
}],
"loop": true,
"name": &"Off3",
"speed": 5.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_7gr33")
}],
"loop": true,
"name": &"On1",
"speed": 5.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_2kb58")
}],
"loop": true,
"name": &"On2",
"speed": 5.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_huvet")
}],
"loop": true,
"name": &"On3",
"speed": 5.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_i3exc")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_r3ncx")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_8firs")
}],
"loop": false,
"name": &"RedToBlue",
"speed": 15.0
}]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_ce8wa"]
size = Vector2(16, 16)
[node name="TimedBooBlock" type="AnimatableBody2D" node_paths=PackedStringArray("visuals") groups=["BooBlocks"]]
collision_layer = 6
script = ExtResource("1_hessd")
visuals = NodePath("Sprite")
destructable = false
metadata/_custom_type_script = "uid://b5ejlbl0vp1gm"
[node name="Sprite" type="AnimatedSprite2D" parent="."]
sprite_frames = SubResource("SpriteFrames_7ajl0")
animation = &"Off3"
autoplay = "Off3"
script = ExtResource("3_7bqom")
do_offset = false
metadata/_custom_type_script = "uid://caq1qiwmy0mox"
[node name="ResourceSetterNew" type="Node" parent="Sprite" node_paths=PackedStringArray("node_to_affect")]
script = ExtResource("3_5y3wt")
node_to_affect = NodePath("..")
property_name = "sprite_frames"
resource_json = ExtResource("4_7bqom")
metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
visible = false
shape = SubResource("RectangleShape2D_ce8wa")
[node name="Timer" type="Timer" parent="."]
[node name="BlockAnimations" parent="." instance=ExtResource("4_tgrgf")]
[connection signal="player_block_hit" from="." to="." method="block_hit" unbinds=1]
[connection signal="player_block_hit" from="." to="BlockAnimations" method="bounce_block" unbinds=1]
[connection signal="shell_block_hit" from="." to="." method="block_hit" unbinds=1]
[connection signal="shell_block_hit" from="." to="BlockAnimations" method="bounce_block" unbinds=1]
[connection signal="timeout" from="Timer" to="." method="on_timeout"]

View File

@@ -0,0 +1,74 @@
[gd_scene load_steps=12 format=3 uid="uid://dsa8lpl7n8ge0"]
[ext_resource type="Script" uid="uid://y53avulrmfx1" path="res://Scripts/Classes/Blocks/BrickBlock.gd" id="1_ci56s"]
[ext_resource type="PackedScene" uid="uid://55lw62f6ol33" path="res://Scenes/Prefabs/Particles/BrickDestructionParticles.tscn" id="2_x80g6"]
[ext_resource type="Script" uid="uid://cbal8ms2oe1ik" path="res://Scripts/Classes/Components/ResourceSetterNew.gd" id="3_j224x"]
[ext_resource type="PackedScene" uid="uid://cijkvfkthetn5" path="res://Scenes/Parts/BlockAnimations.tscn" id="3_nyd82"]
[ext_resource type="Script" uid="uid://caq1qiwmy0mox" path="res://Scripts/Parts/BetterAnimatedSprite.gd" id="3_x80g6"]
[ext_resource type="JSON" path="res://Assets/Sprites/Tilesets/Terrain/BrickBlock.json" id="4_b3g5f"]
[ext_resource type="Script" uid="uid://ctfbuoxtnnl0q" path="res://Scripts/Classes/Components/EditorPropertyExposer.gd" id="6_e3l5j"]
[ext_resource type="Script" uid="uid://bul1nbd2in1gn" path="res://Scripts/Classes/Components/PSwitcher.gd" id="7_43oa6"]
[ext_resource type="Script" uid="uid://d4a7yp6e55u8t" path="res://Scripts/Classes/Components/TrackJoint.gd" id="8_7ej1a"]
[ext_resource type="Script" uid="uid://maqpreddu5kg" path="res://Scripts/Classes/Components/LevelPersistance.gd" id="9_10eph"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_b3g5f"]
size = Vector2(16, 16)
[node name="BrickBlock" type="AnimatableBody2D" node_paths=PackedStringArray("visuals") groups=["Blocks"]]
z_index = -1
collision_layer = 6
collision_mask = 0
script = ExtResource("1_ci56s")
visuals = NodePath("Sprite")
destruction_particle_scene = ExtResource("2_x80g6")
metadata/_custom_type_script = "uid://b5ejlbl0vp1gm"
[node name="Sprite" type="AnimatedSprite2D" parent="."]
script = ExtResource("3_x80g6")
do_offset = false
metadata/_custom_type_script = "uid://caq1qiwmy0mox"
[node name="ResourceSetterNew" type="Node" parent="Sprite" node_paths=PackedStringArray("node_to_affect")]
script = ExtResource("3_j224x")
node_to_affect = NodePath("..")
property_name = "sprite_frames"
resource_json = ExtResource("4_b3g5f")
metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
[node name="Collision" type="CollisionShape2D" parent="."]
visible = false
shape = SubResource("RectangleShape2D_b3g5f")
[node name="BlockAnimations" parent="." instance=ExtResource("3_nyd82")]
[node name="EditorPropertyExposer" type="Node" parent="."]
script = ExtResource("6_e3l5j")
properties = Array[String](["item", "item_amount", "mushroom_if_small"])
filters = Dictionary[String, String]({
"item": "can_be_stored"
})
[node name="PSwitcher" type="Node" parent="."]
script = ExtResource("7_43oa6")
new_scene = "uid://chjxyhlwohmi6"
[node name="TrackJoint" type="Node" parent="."]
script = ExtResource("8_7ej1a")
offset = Vector2(0, 0)
disable_physics = false
metadata/_custom_type_script = "uid://d4a7yp6e55u8t"
[node name="LevelPersistance" type="Node" parent="."]
script = ExtResource("9_10eph")
metadata/_custom_type_script = "uid://maqpreddu5kg"
[node name="VisibleOnScreenEnabler2D" type="VisibleOnScreenEnabler2D" parent="."]
[connection signal="block_destroyed" from="." to="LevelPersistance" method="set_as_active_2"]
[connection signal="block_emptied" from="." to="LevelPersistance" method="set_as_active"]
[connection signal="player_block_hit" from="." to="." method="on_block_hit"]
[connection signal="player_block_hit" from="." to="BlockAnimations" method="bounce_block" unbinds=1]
[connection signal="shell_block_hit" from="." to="." method="on_shell_block_hit"]
[connection signal="shell_block_hit" from="." to="BlockAnimations" method="bounce_block" unbinds=1]
[connection signal="enabled" from="LevelPersistance" to="." method="spawn_empty_block"]
[connection signal="enabled_2" from="LevelPersistance" to="." method="queue_free"]

View File

@@ -0,0 +1,28 @@
[gd_scene load_steps=4 format=3 uid="uid://cqvr7a6e84oti"]
[ext_resource type="PackedScene" uid="uid://dsa8lpl7n8ge0" path="res://Scenes/Prefabs/Blocks/BrickBlocks/BrickBlock.tscn" id="1_ihag5"]
[ext_resource type="PackedScene" uid="uid://clxssds8sj8pf" path="res://Scenes/Prefabs/Entities/Items/SpinningCoin.tscn" id="2_1q8s7"]
[ext_resource type="Texture2D" uid="uid://b6o28xa83npb1" path="res://Assets/Sprites/Items/StaticCoin.png" id="3_cjcdh"]
[node name="BrickBlock" instance=ExtResource("1_ihag5")]
item = ExtResource("2_1q8s7")
item_amount = 99
[node name="Sprite2D" type="Sprite2D" parent="." index="4"]
texture = ExtResource("3_cjcdh")
region_enabled = true
region_rect = Rect2(0, 0, 16, 16)
region_filter_clip_enabled = true
[node name="Timer" type="Timer" parent="Sprite2D" index="0"]
wait_time = 0.001
autostart = true
[node name="Timer" type="Timer" parent="." index="6"]
process_callback = 0
wait_time = 3.85
one_shot = true
[connection signal="player_block_hit" from="." to="Timer" method="start" flags=6 unbinds=1]
[connection signal="timeout" from="Sprite2D/Timer" to="Sprite2D" method="queue_free"]
[connection signal="timeout" from="Timer" to="." method="set_coin_count"]

View File

@@ -0,0 +1,40 @@
[gd_scene load_steps=8 format=3 uid="uid://dn1btottv42sd"]
[ext_resource type="PackedScene" uid="uid://dsa8lpl7n8ge0" path="res://Scenes/Prefabs/Blocks/BrickBlocks/BrickBlock.tscn" id="1_37s05"]
[ext_resource type="PackedScene" uid="uid://beq7b3hp44onn" path="res://Scenes/Prefabs/Entities/Items/SuperMushroom.tscn" id="2_olu46"]
[ext_resource type="Texture2D" uid="uid://bsyugykvflalf" path="res://Assets/Sprites/Items/1UP.png" id="3_l5hxg"]
[ext_resource type="JSON" path="res://Assets/Sprites/Items/OneUp.json" id="4_vb4rs"]
[ext_resource type="Script" uid="uid://5octqlf4ohel" path="res://Scripts/Classes/Components/ScoreNoteSpawner.gd" id="5_m0jmq"]
[sub_resource type="AtlasTexture" id="AtlasTexture_3yqrr"]
atlas = ExtResource("3_l5hxg")
region = Rect2(16, 0, 16, 16)
[sub_resource type="PackedScene" id="PackedScene_jtx2j"]
_bundled = {
"base_scene": 0,
"conn_count": 0,
"conns": PackedInt32Array(),
"editable_instances": [],
"names": PackedStringArray("OneUp", "metadata/is_oneup", "Mushroom", "texture", "region_enabled", "region_rect", "ResourceSetterNew", "resource_json", "ScoreNoteSpawner", "Node", "script", "metadata/_custom_type_script"),
"node_count": 4,
"node_paths": [NodePath("."), NodePath("./Mushroom"), NodePath(".")],
"nodes": PackedInt32Array(-1, -1, 2147483647, 0, -1, 1, 1, 1, 0, 1073741824, -1, 2147483647, 262146, -1, 3, 3, 2, 4, 3, 5, 4, 0, 1073741825, -1, 2147483647, 262150, -1, 1, 7, 5, 0, 1073741826, 0, 9, 1310728, -1, 2, 10, 6, 11, 7, 0),
"variants": [ExtResource("2_olu46"), true, SubResource("AtlasTexture_3yqrr"), false, Rect2(16, 0, 16, 16), ExtResource("4_vb4rs"), ExtResource("5_m0jmq"), "uid://5octqlf4ohel"],
"version": 3
}
[node name="BrickBlock" instance=ExtResource("1_37s05")]
item = SubResource("PackedScene_jtx2j")
[node name="Sprite2D" type="Sprite2D" parent="." index="4"]
texture = ExtResource("3_l5hxg")
region_enabled = true
region_rect = Rect2(16, 0, 16, 16)
region_filter_clip_enabled = true
[node name="Timer" type="Timer" parent="Sprite2D" index="0"]
wait_time = 0.001
autostart = true
[connection signal="timeout" from="Sprite2D/Timer" to="Sprite2D" method="queue_free"]

View File

@@ -0,0 +1,34 @@
[gd_scene load_steps=6 format=3 uid="uid://cih0lt6mbg3g8"]
[ext_resource type="PackedScene" uid="uid://dsa8lpl7n8ge0" path="res://Scenes/Prefabs/Blocks/BrickBlocks/BrickBlock.tscn" id="1_i2ug8"]
[ext_resource type="PackedScene" uid="uid://beq7b3hp44onn" path="res://Scenes/Prefabs/Entities/Items/SuperMushroom.tscn" id="2_2ppk5"]
[ext_resource type="JSON" path="res://Assets/Sprites/Items/PoisonMushroom.json" id="3_drx8b"]
[ext_resource type="Texture2D" uid="uid://011dooyd0elr" path="res://Assets/Sprites/Items/PoisonMushroom.png" id="3_vkmdw"]
[sub_resource type="PackedScene" id="PackedScene_mt4hv"]
_bundled = {
"base_scene": 0,
"conn_count": 0,
"conns": PackedInt32Array(),
"editable_instances": [],
"names": PackedStringArray("SuperMushroom", "metadata/is_poison", "Mushroom", "region_enabled", "region_rect", "ResourceSetterNew", "resource_json"),
"node_count": 3,
"node_paths": [NodePath("."), NodePath("./Mushroom")],
"nodes": PackedInt32Array(-1, -1, 2147483647, 0, -1, 1, 1, 1, 0, 1073741824, -1, 2147483647, 262146, -1, 2, 3, 2, 4, 3, 0, 1073741825, -1, 2147483647, 262149, -1, 1, 6, 4, 0),
"variants": [ExtResource("2_2ppk5"), false, false, Rect2(32, 0, 16, 16), ExtResource("3_drx8b")],
"version": 3
}
[node name="BrickBlock" instance=ExtResource("1_i2ug8")]
item = SubResource("PackedScene_mt4hv")
[node name="Sprite2D" type="Sprite2D" parent="." index="4"]
texture = ExtResource("3_vkmdw")
region_enabled = true
region_rect = Rect2(32, 0, 16, 16)
[node name="Timer" type="Timer" parent="Sprite2D" index="0"]
wait_time = 0.001
autostart = true
[connection signal="timeout" from="Sprite2D/Timer" to="Sprite2D" method="queue_free"]

View File

@@ -0,0 +1,25 @@
[gd_scene load_steps=5 format=3 uid="uid://cor5javglnirw"]
[ext_resource type="PackedScene" uid="uid://dsa8lpl7n8ge0" path="res://Scenes/Prefabs/Blocks/BrickBlocks/BrickBlock.tscn" id="1_esw26"]
[ext_resource type="PackedScene" uid="uid://dbjqtjhb2t4cn" path="res://Scenes/Prefabs/Entities/Items/FireFlower.tscn" id="2_2eoa6"]
[ext_resource type="Texture2D" uid="uid://hfh5i32uji5t" path="res://Assets/Sprites/Items/SuperMushroom.png" id="3_ddqrk"]
[ext_resource type="Script" uid="uid://cpwloakvp672a" path="res://Scripts/Parts/EditorVisibleNode.gd" id="3_esw26"]
[node name="BrickBlock" instance=ExtResource("1_esw26")]
item = ExtResource("2_2eoa6")
mushroom_if_small = true
[node name="EditorVisibleNode" type="Node2D" parent="." index="3"]
script = ExtResource("3_esw26")
[node name="Sprite2D" type="Sprite2D" parent="EditorVisibleNode" index="0"]
texture = ExtResource("3_ddqrk")
region_enabled = true
region_rect = Rect2(0, 0, 16, 16)
region_filter_clip_enabled = true
[node name="Timer" type="Timer" parent="EditorVisibleNode/Sprite2D" index="0"]
wait_time = 0.001
autostart = true
[connection signal="timeout" from="EditorVisibleNode/Sprite2D/Timer" to="EditorVisibleNode/Sprite2D" method="queue_free"]

View File

@@ -0,0 +1,11 @@
[gd_scene load_steps=3 format=3 uid="uid://dpukj2ja3i3qj"]
[ext_resource type="PackedScene" uid="uid://cor5javglnirw" path="res://Scenes/Prefabs/Blocks/BrickBlocks/PowerUpBrickBlock.tscn" id="1_5t0h4"]
[ext_resource type="PackedScene" uid="uid://5qg8po86pew4" path="res://Scenes/Prefabs/Entities/Items/SuperStar.tscn" id="2_6m2bg"]
[node name="BrickBlock" instance=ExtResource("1_5t0h4")]
item = ExtResource("2_6m2bg")
mushroom_if_small = false
[node name="Sprite2D" parent="EditorVisibleNode" index="0"]
region_rect = Rect2(0, 32, 16, 16)

View File

@@ -0,0 +1,91 @@
[gd_scene load_steps=15 format=3 uid="uid://dh2fvaypdfgsl"]
[ext_resource type="Texture2D" uid="uid://cwvkbxng585yv" path="res://Assets/Sprites/Blocks/DeathBlock.png" id="1_sauix"]
[ext_resource type="Script" uid="uid://caq1qiwmy0mox" path="res://Scripts/Parts/BetterAnimatedSprite.gd" id="2_6cjqp"]
[ext_resource type="Script" uid="uid://cbal8ms2oe1ik" path="res://Scripts/Classes/Components/ResourceSetterNew.gd" id="3_ubant"]
[ext_resource type="Script" uid="uid://cqif1li7otvpl" path="res://Scripts/Parts/SpriteFramesToJsonConverter.gd" id="4_aopyt"]
[ext_resource type="JSON" path="res://Assets/Sprites/Blocks/DeathBlock.json" id="4_ubant"]
[ext_resource type="Script" uid="uid://cmvlgsjmsk0v5" path="res://Scripts/Classes/Resources/ThemedResource.gd" id="5_l5v6c"]
[ext_resource type="Script" uid="uid://d4a7yp6e55u8t" path="res://Scripts/Classes/Components/TrackJoint.gd" id="7_aopyt"]
[sub_resource type="GDScript" id="GDScript_l5v6c"]
script/source = "extends StaticBody2D
func on_player_entered(player: Player) -> void:
player.die()
"
[sub_resource type="AtlasTexture" id="AtlasTexture_icrp6"]
atlas = ExtResource("1_sauix")
region = Rect2(0, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_wsxqq"]
atlas = ExtResource("1_sauix")
region = Rect2(16, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_ubant"]
atlas = ExtResource("1_sauix")
region = Rect2(32, 0, 16, 16)
[sub_resource type="SpriteFrames" id="SpriteFrames_60x7i"]
animations = [{
"frames": [{
"duration": 10.0,
"texture": SubResource("AtlasTexture_icrp6")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_wsxqq")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_ubant")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_wsxqq")
}],
"loop": true,
"name": &"default",
"speed": 10.0
}]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_eg0rv"]
size = Vector2(16, 16)
[sub_resource type="Resource" id="Resource_p4bel"]
script = ExtResource("5_l5v6c")
Overworld = SubResource("SpriteFrames_60x7i")
metadata/_custom_type_script = "uid://cmvlgsjmsk0v5"
[node name="DeathBlock" type="StaticBody2D"]
collision_layer = 390
collision_mask = 0
script = SubResource("GDScript_l5v6c")
[node name="Sprite" type="AnimatedSprite2D" parent="."]
sprite_frames = SubResource("SpriteFrames_60x7i")
autoplay = "default"
frame_progress = 0.116988
script = ExtResource("2_6cjqp")
do_offset = false
metadata/_custom_type_script = "uid://caq1qiwmy0mox"
[node name="ResourceSetterNew" type="Node" parent="Sprite" node_paths=PackedStringArray("node_to_affect")]
script = ExtResource("3_ubant")
node_to_affect = NodePath("..")
property_name = "sprite_frames"
resource_json = ExtResource("4_ubant")
metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
shape = SubResource("RectangleShape2D_eg0rv")
[node name="ThemedToJSONConverter" type="Node" parent="."]
script = ExtResource("4_aopyt")
resource = SubResource("Resource_p4bel")
json_file_path = "res://Assets/Sprites/Blocks/DeathBlock.json"
metadata/_custom_type_script = "uid://cqif1li7otvpl"
[node name="TrackJoint" type="Node" parent="."]
script = ExtResource("7_aopyt")
offset = Vector2(0, 0)
metadata/_custom_type_script = "uid://d4a7yp6e55u8t"

View File

@@ -0,0 +1,41 @@
[gd_scene load_steps=8 format=3 uid="uid://cs40ecju70hnp"]
[ext_resource type="Script" uid="uid://b5ejlbl0vp1gm" path="res://Scripts/Classes/Blocks/BlockClass.gd" id="1_8rosd"]
[ext_resource type="Texture2D" uid="uid://dt0qtxu2l646n" path="res://Assets/Sprites/Tilesets/Terrain/Overworld.png" id="1_v8f21"]
[ext_resource type="Script" uid="uid://cbal8ms2oe1ik" path="res://Scripts/Classes/Components/ResourceSetterNew.gd" id="2_8rosd"]
[ext_resource type="PackedScene" uid="uid://b4cf70v1da8cb" path="res://Scenes/Prefabs/Particles/DecoBlockDestructionParticles.tscn" id="2_abwd6"]
[ext_resource type="JSON" path="res://Assets/Sprites/Tilesets/Terrain/TerrainTiles.json" id="3_i7a3s"]
[ext_resource type="Script" uid="uid://d4a7yp6e55u8t" path="res://Scripts/Classes/Components/TrackJoint.gd" id="5_i7a3s"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_74q7l"]
size = Vector2(16, 16)
[node name="EmptyBlock" type="AnimatableBody2D" node_paths=PackedStringArray("visuals")]
collision_layer = 6
collision_mask = 0
script = ExtResource("1_8rosd")
visuals = NodePath("Sprite")
destruction_particle_scene = ExtResource("2_abwd6")
metadata/_custom_type_script = "uid://b5ejlbl0vp1gm"
metadata/is_empty = true
[node name="Sprite" type="Sprite2D" parent="."]
texture = ExtResource("1_v8f21")
region_enabled = true
region_rect = Rect2(64, 32, 16, 16)
[node name="ResourceSetterNew" type="Node" parent="Sprite" node_paths=PackedStringArray("node_to_affect")]
script = ExtResource("2_8rosd")
node_to_affect = NodePath("..")
property_name = "texture"
mode = 1
resource_json = ExtResource("3_i7a3s")
metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
shape = SubResource("RectangleShape2D_74q7l")
[node name="TrackJoint" type="Node" parent="."]
script = ExtResource("5_i7a3s")
offset = Vector2(0, 0)
metadata/_custom_type_script = "uid://d4a7yp6e55u8t"

View File

@@ -0,0 +1,173 @@
[gd_scene load_steps=15 format=3 uid="uid://bv38ynjkpisyk"]
[ext_resource type="Script" uid="uid://dbu4juvw4veul" path="res://Scripts/Classes/Blocks/DonutBlock.gd" id="1_asdop"]
[ext_resource type="Texture2D" uid="uid://s2miqaqyk4bm" path="res://Assets/Sprites/Blocks/DonutBlock.png" id="1_ydbi0"]
[ext_resource type="Script" uid="uid://cnheej0sxmoxg" path="res://Scripts/Parts/PlayerDetection.gd" id="2_asdop"]
[ext_resource type="Script" uid="uid://cbal8ms2oe1ik" path="res://Scripts/Classes/Components/ResourceSetterNew.gd" id="3_3jqqs"]
[ext_resource type="JSON" path="res://Assets/Sprites/Blocks/DonutBlock.json" id="4_woaa1"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_skbwb"]
size = Vector2(16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_3jqqs"]
atlas = ExtResource("1_ydbi0")
region = Rect2(16, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_woaa1"]
atlas = ExtResource("1_ydbi0")
region = Rect2(0, 0, 16, 16)
[sub_resource type="SpriteFrames" id="SpriteFrames_6bmau"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_3jqqs")
}],
"loop": true,
"name": &"Fall",
"speed": 5.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_woaa1")
}],
"loop": true,
"name": &"Idle",
"speed": 5.0
}]
[sub_resource type="Animation" id="Animation_633oe"]
resource_name = "Grow"
length = 0.5
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Sprite:offset")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector2(0, 0)]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("Sprite:scale")
tracks/1/interp = 2
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0, 0.5),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Vector2(0, 0), Vector2(1, 1)]
}
[sub_resource type="Animation" id="Animation_vf85a"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Sprite:offset")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector2(0, 0)]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("Sprite:scale")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector2(1, 1)]
}
[sub_resource type="Animation" id="Animation_aq712"]
resource_name = "Shake"
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Sprite:offset")
tracks/0/interp = 2
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.1, 0.2),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 0,
"values": [Vector2(-1, 0), Vector2(1, 0), Vector2(0, 0)]
}
tracks/1/type = "method"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath(".")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(1),
"transitions": PackedFloat32Array(1),
"values": [{
"args": [],
"method": &"start_falling"
}]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_srhyq"]
_data = {
&"Grow": SubResource("Animation_633oe"),
&"RESET": SubResource("Animation_vf85a"),
&"Shake": SubResource("Animation_aq712")
}
[sub_resource type="RectangleShape2D" id="RectangleShape2D_obema"]
size = Vector2(15, 2)
[node name="DonutBlock" type="StaticBody2D"]
collision_layer = 6
collision_mask = 0
script = ExtResource("1_asdop")
[node name="Collision" type="CollisionShape2D" parent="."]
shape = SubResource("RectangleShape2D_skbwb")
[node name="Sprite" type="AnimatedSprite2D" parent="."]
sprite_frames = SubResource("SpriteFrames_6bmau")
animation = &"Idle"
autoplay = "Idle"
frame_progress = 0.0124768
[node name="ResourceSetterNew" type="Node" parent="Sprite" node_paths=PackedStringArray("node_to_affect")]
script = ExtResource("3_3jqqs")
node_to_affect = NodePath("..")
property_name = "sprite_frames"
resource_json = ExtResource("4_woaa1")
metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
libraries = {
&"": SubResource("AnimationLibrary_srhyq")
}
[node name="PlayerDetection" type="Area2D" parent="."]
script = ExtResource("2_asdop")
metadata/_custom_type_script = "uid://cnheej0sxmoxg"
[node name="CollisionShape2D" type="CollisionShape2D" parent="PlayerDetection"]
position = Vector2(0, -9)
shape = SubResource("RectangleShape2D_obema")
[node name="FallTimer" type="Timer" parent="."]
wait_time = 5.0
one_shot = true
[connection signal="player_entered" from="PlayerDetection" to="." method="on_player_entered" unbinds=1]
[connection signal="player_exited" from="PlayerDetection" to="." method="on_player_exited" unbinds=1]
[connection signal="timeout" from="FallTimer" to="." method="respawn"]

View File

@@ -0,0 +1,35 @@
[gd_scene load_steps=7 format=3 uid="uid://dipap63c1nrnn"]
[ext_resource type="Script" uid="uid://b5ejlbl0vp1gm" path="res://Scripts/Classes/Blocks/BlockClass.gd" id="1_c5ati"]
[ext_resource type="Script" uid="uid://cbal8ms2oe1ik" path="res://Scripts/Classes/Components/ResourceSetterNew.gd" id="2_fuckyou"]
[ext_resource type="PackedScene" uid="uid://bxxjd0qf60t5q" path="res://Scenes/Prefabs/Particles/EmptyBlockDestructionParticles.tscn" id="2_g8nyw"]
[ext_resource type="Script" uid="uid://caq1qiwmy0mox" path="res://Scripts/Parts/BetterAnimatedSprite.gd" id="3_g8nyw"]
[ext_resource type="JSON" path="res://Assets/Sprites/Tilesets/Terrain/EmptyBlock.json" id="5_v5vjc"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_74q7l"]
size = Vector2(16, 16)
[node name="EmptyBlock" type="AnimatableBody2D"]
z_index = -1
collision_layer = 6
collision_mask = 0
sync_to_physics = false
script = ExtResource("1_c5ati")
destruction_particle_scene = ExtResource("2_g8nyw")
metadata/_custom_type_script = "uid://b5ejlbl0vp1gm"
metadata/is_empty = true
[node name="Sprite" type="AnimatedSprite2D" parent="."]
script = ExtResource("3_g8nyw")
do_offset = false
metadata/_custom_type_script = "uid://caq1qiwmy0mox"
[node name="ResourceSetterNew" type="Node" parent="Sprite" node_paths=PackedStringArray("node_to_affect")]
script = ExtResource("2_fuckyou")
node_to_affect = NodePath("..")
property_name = "sprite_frames"
resource_json = ExtResource("5_v5vjc")
metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
shape = SubResource("RectangleShape2D_74q7l")

View File

@@ -0,0 +1,30 @@
[gd_scene load_steps=6 format=3 uid="uid://cn7wwtug5xman"]
[ext_resource type="Texture2D" uid="uid://ln7uey6c4mf" path="res://Assets/Sprites/Blocks/PSwitchBlock.png" id="1_e8kpq"]
[ext_resource type="Script" uid="uid://cq6f682453q6o" path="res://Scripts/Classes/Components/ResourceSetter.gd" id="2_tb55n"]
[ext_resource type="Script" uid="uid://cmvlgsjmsk0v5" path="res://Scripts/Classes/Resources/ThemedResource.gd" id="3_wy3br"]
[ext_resource type="Script" uid="uid://bul1nbd2in1gn" path="res://Scripts/Classes/Components/PSwitcher.gd" id="4_3uy5e"]
[sub_resource type="Resource" id="Resource_312ms"]
script = ExtResource("3_wy3br")
Overworld = ExtResource("1_e8kpq")
metadata/_custom_type_script = "uid://cmvlgsjmsk0v5"
[node name="EmptyPSwitchBlock" type="Node2D"]
[node name="Sprite" type="Sprite2D" parent="."]
texture = ExtResource("1_e8kpq")
region_enabled = true
region_rect = Rect2(16, 0, 16, 16)
[node name="ResourceSetter" type="Node" parent="Sprite" node_paths=PackedStringArray("node_to_affect")]
script = ExtResource("2_tb55n")
node_to_affect = NodePath("..")
property_name = "texture"
themed_resource = SubResource("Resource_312ms")
metadata/_custom_type_script = "uid://cq6f682453q6o"
[node name="PSwitcher" type="Node" parent="."]
script = ExtResource("4_3uy5e")
new_scene = "uid://q3aaukgw01nw"
metadata/_custom_type_script = "uid://bul1nbd2in1gn"

View File

@@ -0,0 +1,162 @@
[gd_scene load_steps=22 format=3 uid="uid://svkvxdk8fsyj"]
[ext_resource type="Script" uid="uid://bvplls3ae0oqr" path="res://Scripts/Classes/Entities/Objects/OnOffFanRed.gd" id="1_lggcr"]
[ext_resource type="Texture2D" uid="uid://dkwk6x3je28oi" path="res://Assets/Sprites/Blocks/Fan.png" id="2_lggcr"]
[ext_resource type="Script" uid="uid://caq1qiwmy0mox" path="res://Scripts/Parts/BetterAnimatedSprite.gd" id="3_shbxw"]
[ext_resource type="Texture2D" uid="uid://dy3p03djelkb3" path="res://Assets/Sprites/Particles/Leaves.png" id="4_3g67n"]
[ext_resource type="Script" uid="uid://cbal8ms2oe1ik" path="res://Scripts/Classes/Components/ResourceSetterNew.gd" id="5_254o8"]
[ext_resource type="JSON" path="res://Assets/Sprites/Blocks/Fan.json" id="5_lkjwe"]
[ext_resource type="JSON" path="res://Assets/Sprites/Particles/WindParticles.json" id="6_vnvew"]
[ext_resource type="Script" uid="uid://ctfbuoxtnnl0q" path="res://Scripts/Classes/Components/EditorPropertyExposer.gd" id="7_cdvdi"]
[ext_resource type="Script" uid="uid://d4a7yp6e55u8t" path="res://Scripts/Classes/Components/TrackJoint.gd" id="8_yp1rr"]
[sub_resource type="AtlasTexture" id="AtlasTexture_lkjwe"]
atlas = ExtResource("2_lggcr")
region = Rect2(0, 0, 16, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_shbxw"]
atlas = ExtResource("2_lggcr")
region = Rect2(16, 0, 16, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_3g67n"]
atlas = ExtResource("2_lggcr")
region = Rect2(32, 0, 16, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_254o8"]
atlas = ExtResource("2_lggcr")
region = Rect2(48, 0, 16, 48)
[sub_resource type="SpriteFrames" id="SpriteFrames_vnvew"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_lkjwe")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_shbxw")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_3g67n")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_254o8")
}],
"loop": true,
"name": &"On",
"speed": 30.0
}]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_wvrj8"]
size = Vector2(16, 48)
[sub_resource type="RectangleShape2D" id="RectangleShape2D_4qr7a"]
size = Vector2(256, 36)
[sub_resource type="CanvasItemMaterial" id="CanvasItemMaterial_wo6ri"]
particles_animation = true
particles_anim_h_frames = 2
particles_anim_v_frames = 1
particles_anim_loop = false
[sub_resource type="Curve" id="Curve_56hbg"]
_data = [Vector2(0, 1), 0.0, 0.0, 0, 0, Vector2(0.894444, 1), 0.0, 0.0, 0, 0, Vector2(1, 0), 0.0, 0.0, 0, 0]
point_count = 3
[sub_resource type="CurveTexture" id="CurveTexture_8c2la"]
curve = SubResource("Curve_56hbg")
[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_ixtv2"]
particle_flag_disable_z = true
emission_shape_scale = Vector3(1, 15, 1)
emission_shape = 3
emission_box_extents = Vector3(1, 1, 1)
spread = 0.0
initial_velocity_min = 100.0
initial_velocity_max = 500.0
angular_velocity_min = -720.0
angular_velocity_max = 720.0
gravity = Vector3(0, 0, 0)
alpha_curve = SubResource("CurveTexture_8c2la")
anim_offset_max = 1.0
[sub_resource type="GDScript" id="GDScript_gfuw1"]
script/source = "extends Node
@export var sprite: AnimatedSprite2D = null
func _process(_delta: float) -> void:
$\"..\".global_rotation_degrees = [0, 180, -90, 90][owner.direction]
sprite.global_rotation_degrees = [0, 0, 90, 90][owner.direction]
sprite.flip_h = owner.direction == 1 or owner.direction == 2
"
[node name="Fan" type="AnimatableBody2D"]
collision_layer = 6
collision_mask = 0
sync_to_physics = false
script = ExtResource("1_lggcr")
active = true
[node name="RotationJoint" type="Node2D" parent="."]
[node name="Sprite" type="AnimatedSprite2D" parent="."]
sprite_frames = SubResource("SpriteFrames_vnvew")
animation = &"On"
autoplay = "On"
frame_progress = 0.9855531
script = ExtResource("3_shbxw")
do_offset = false
metadata/_custom_type_script = "uid://caq1qiwmy0mox"
[node name="ResourceSetterNew" type="Node" parent="Sprite" node_paths=PackedStringArray("node_to_affect")]
script = ExtResource("5_254o8")
node_to_affect = NodePath("..")
property_name = "sprite_frames"
resource_json = ExtResource("5_lkjwe")
metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
[node name="Collision" type="CollisionShape2D" parent="."]
shape = SubResource("RectangleShape2D_wvrj8")
[node name="Hitbox" type="Area2D" parent="."]
[node name="Shape" type="CollisionShape2D" parent="Hitbox"]
position = Vector2(128, 0)
shape = SubResource("RectangleShape2D_4qr7a")
[node name="Particles" type="GPUParticles2D" parent="."]
unique_name_in_owner = true
material = SubResource("CanvasItemMaterial_wo6ri")
emitting = false
texture = ExtResource("4_3g67n")
lifetime = 0.5
process_material = SubResource("ParticleProcessMaterial_ixtv2")
[node name="ResourceSetterNew" type="Node" parent="Particles" node_paths=PackedStringArray("node_to_affect")]
script = ExtResource("5_254o8")
node_to_affect = NodePath("..")
property_name = "texture"
mode = 1
resource_json = ExtResource("6_vnvew")
metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
[node name="Node" type="Node" parent="." node_paths=PackedStringArray("sprite")]
process_mode = 3
script = SubResource("GDScript_gfuw1")
sprite = NodePath("../Sprite")
[node name="EditorPropertyExposer" type="Node" parent="."]
script = ExtResource("7_cdvdi")
properties = Array[String](["direction", "strength"])
metadata/_custom_type_script = "uid://ctfbuoxtnnl0q"
[node name="TrackJoint" type="Node" parent="."]
script = ExtResource("8_yp1rr")
offset = Vector2(0, 0)
disable_physics = false
metadata/_custom_type_script = "uid://d4a7yp6e55u8t"
[node name="RemoteTransform2D" type="RemoteTransform2D" parent="."]
remote_path = NodePath("../Sprite")
update_rotation = false
update_scale = false

View File

@@ -0,0 +1,41 @@
[gd_scene load_steps=8 format=3 uid="uid://canoj6slqk5ee"]
[ext_resource type="PackedScene" uid="uid://58uk17ixtt4r" path="res://Scenes/Prefabs/Blocks/InvisibleBlocks/InvisibleQuestionBlock.tscn" id="1_etg4d"]
[ext_resource type="PackedScene" uid="uid://beq7b3hp44onn" path="res://Scenes/Prefabs/Entities/Items/SuperMushroom.tscn" id="2_r7sg8"]
[ext_resource type="Texture2D" uid="uid://bsyugykvflalf" path="res://Assets/Sprites/Items/1UP.png" id="3_anjgk"]
[ext_resource type="JSON" path="res://Assets/Sprites/Items/OneUp.json" id="4_x1m83"]
[ext_resource type="Script" uid="uid://5octqlf4ohel" path="res://Scripts/Classes/Components/ScoreNoteSpawner.gd" id="5_tx2wx"]
[sub_resource type="AtlasTexture" id="AtlasTexture_3yqrr"]
atlas = ExtResource("3_anjgk")
region = Rect2(16, 0, 16, 16)
[sub_resource type="PackedScene" id="PackedScene_vm6bi"]
_bundled = {
"base_scene": 0,
"conn_count": 0,
"conns": PackedInt32Array(),
"editable_instances": [],
"names": PackedStringArray("OneUp", "metadata/is_oneup", "Mushroom", "texture", "region_enabled", "region_rect", "ResourceSetterNew", "resource_json", "ScoreNoteSpawner", "Node", "script", "metadata/_custom_type_script"),
"node_count": 4,
"node_paths": [NodePath("."), NodePath("./Mushroom"), NodePath(".")],
"nodes": PackedInt32Array(-1, -1, 2147483647, 0, -1, 1, 1, 1, 0, 1073741824, -1, 2147483647, 262146, -1, 3, 3, 2, 4, 3, 5, 4, 0, 1073741825, -1, 2147483647, 262150, -1, 1, 7, 5, 0, 1073741826, 0, 9, 1310728, -1, 2, 10, 6, 11, 7, 0),
"variants": [ExtResource("2_r7sg8"), true, SubResource("AtlasTexture_3yqrr"), false, Rect2(16, 0, 16, 16), ExtResource("4_x1m83"), ExtResource("5_tx2wx"), "uid://5octqlf4ohel"],
"version": 3
}
[node name="InvisibleQuestionBlock" instance=ExtResource("1_etg4d")]
item = SubResource("PackedScene_vm6bi")
[node name="Sprite2D" type="Sprite2D" parent="." index="6"]
texture = ExtResource("3_anjgk")
region_enabled = true
region_rect = Rect2(16, 0, 16, 16)
[node name="Timer" type="Timer" parent="Sprite2D" index="0"]
wait_time = 0.001
autostart = true
[connection signal="timeout" from="Sprite2D/Timer" to="Sprite2D" method="queue_free"]
[editable path="BlockAnimations"]

View File

@@ -0,0 +1,76 @@
[gd_scene load_steps=15 format=3 uid="uid://n1xyk5g5r4h6"]
[ext_resource type="PackedScene" uid="uid://58uk17ixtt4r" path="res://Scenes/Prefabs/Blocks/InvisibleBlocks/InvisibleQuestionBlock.tscn" id="1_okju0"]
[ext_resource type="Script" uid="uid://cjkurwybsaywm" path="res://Scripts/Classes/Entities/Items/PowerUpItem.gd" id="2_xbua8"]
[ext_resource type="Script" uid="uid://cbal8ms2oe1ik" path="res://Scripts/Classes/Components/ResourceSetterNew.gd" id="4_ftruy"]
[ext_resource type="JSON" path="res://Assets/Sprites/Items/FireFlower.json" id="5_3bcnt"]
[ext_resource type="Script" uid="uid://bx6r8sjar6cwr" path="res://Scripts/Classes/Components/BasicStaticMovement.gd" id="6_n8jdl"]
[ext_resource type="Texture2D" uid="uid://hfh5i32uji5t" path="res://Assets/Sprites/Items/SuperMushroom.png" id="6_xbua8"]
[sub_resource type="AtlasTexture" id="AtlasTexture_db8fa"]
region = Rect2(0, 16, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_11cns"]
region = Rect2(16, 16, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_brn7u"]
region = Rect2(32, 16, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_fwmx2"]
region = Rect2(48, 16, 16, 16)
[sub_resource type="SpriteFrames" id="SpriteFrames_gid51"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_db8fa")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_11cns")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_brn7u")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_fwmx2")
}],
"loop": true,
"name": &"default",
"speed": 15.0
}]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_16uf3"]
size = Vector2(12, 12)
[sub_resource type="RectangleShape2D" id="RectangleShape2D_kjjbq"]
size = Vector2(8, 8)
[sub_resource type="PackedScene" id="PackedScene_sst3l"]
_bundled = {
"conn_count": 1,
"conns": PackedInt32Array(1073741831, 1073741830, 35, 34, 2, 0, 0),
"editable_instances": [],
"names": PackedStringArray("FireFlower", "CharacterBody2D", "z_index", "collision_layer", "collision_mask", "script", "power_up_state", "metadata/_custom_type_script", "Sprite", "AnimatedSprite2D", "position", "sprite_frames", "autoplay", "frame_progress", "ResourceSetterNew", "Node", "script", "node_to_affect", "property_name", "resource_json", "metadata/_custom_type_script", "Hitbox", "Area2D", "Shape", "CollisionShape2D", "position", "shape", "Collision", "CollisionShape2D", "position", "shape", "StaticEntityMovement", "Node", "script", "on_area_entered", "area_entered"),
"node_count": 7,
"node_paths": [NodePath("."), NodePath("./Sprite"), NodePath("."), NodePath("./Hitbox"), NodePath("."), NodePath("."), NodePath("."), NodePath("Hitbox")],
"nodes": PackedInt32Array(-1, -1, 1, 0, -1, 6, 2, 0, 3, 1, 4, 2, 5, 3, 6, 4, 7, 5, 0, 1073741824, 0, 9, 8, -1, 4, 10, 6, 11, 7, 12, 8, 13, 9, 0, 1073741825, 0, 15, 14, -1, 5, 16, 10, 1073741841, 11, 18, 12, 19, 13, 20, 14, 0, 1073741826, 0, 22, 21, -1, 0, 0, 1073741827, 0, 24, 23, -1, 2, 25, 15, 26, 16, 0, 1073741828, 0, 28, 27, -1, 2, 29, 17, 30, 18, 0, 1073741829, 0, 32, 31, -1, 1, 33, 19, 0),
"variants": [-1, 8, 2, ExtResource("2_xbua8"), "Fire", "uid://cjkurwybsaywm", Vector2(0, -8), SubResource("SpriteFrames_gid51"), "default", 0.157931, ExtResource("4_ftruy"), NodePath(".."), "sprite_frames", ExtResource("5_3bcnt"), "uid://cbal8ms2oe1ik", Vector2(0, -8), SubResource("RectangleShape2D_16uf3"), Vector2(0, -4), SubResource("RectangleShape2D_kjjbq"), ExtResource("6_n8jdl")],
"version": 3
}
[node name="InvisibleQuestionBlock" instance=ExtResource("1_okju0")]
item = SubResource("PackedScene_sst3l")
mushroom_if_small = true
[node name="Sprite2D" type="Sprite2D" parent="." index="6"]
texture = ExtResource("6_xbua8")
region_enabled = true
region_rect = Rect2(0, 0, 16, 16)
[node name="Timer" type="Timer" parent="Sprite2D" index="0"]
wait_time = 0.001
autostart = true
[connection signal="timeout" from="Sprite2D/Timer" to="Sprite2D" method="queue_free"]
[editable path="BlockAnimations"]

View File

@@ -0,0 +1,54 @@
[gd_scene load_steps=9 format=3 uid="uid://58uk17ixtt4r"]
[ext_resource type="PackedScene" uid="uid://bc1mrna4kybhv" path="res://Scenes/Prefabs/Blocks/QuestionBlocks/QuestionBlock.tscn" id="1_8myna"]
[ext_resource type="Texture2D" uid="uid://bylhrj768sua2" path="res://Assets/Sprites/Blocks/InvisibleBlock.png" id="2_qh1vn"]
[ext_resource type="Script" uid="uid://s5e3ps0g7nya" path="res://Scripts/Classes/Blocks/InvisibleQuestionBlock.gd" id="2_u3lik"]
[ext_resource type="Script" uid="uid://cpwloakvp672a" path="res://Scripts/Parts/EditorVisibleNode.gd" id="4_f783k"]
[ext_resource type="Script" uid="uid://cbal8ms2oe1ik" path="res://Scripts/Classes/Components/ResourceSetterNew.gd" id="5_8tag8"]
[ext_resource type="JSON" path="res://Assets/Sprites/Blocks/InvisibleBlock.json" id="6_xdyfy"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_f783k"]
size = Vector2(16, 1)
[sub_resource type="AtlasTexture" id="AtlasTexture_nrsus"]
atlas = ExtResource("2_qh1vn")
region = Rect2(0, 0, 16, 16)
[node name="InvisibleQuestionBlock" instance=ExtResource("1_8myna")]
collision_layer = 1
script = ExtResource("2_u3lik")
combo_meter_amount = 10
[node name="Sprite" parent="." index="0"]
visible = false
[node name="Collision" parent="." index="1"]
visible = true
rotation = 3.14159
disabled = true
[node name="Hitbox" type="Area2D" parent="." index="3"]
position = Vector2(0, 8)
[node name="CollisionShape2D" type="CollisionShape2D" parent="Hitbox" index="0"]
shape = SubResource("RectangleShape2D_f783k")
[node name="Node2D" type="Node2D" parent="." index="4"]
visibility_layer = 2
script = ExtResource("4_f783k")
[node name="EditorIcon" type="Sprite2D" parent="Node2D" index="0"]
texture = SubResource("AtlasTexture_nrsus")
[node name="ResourceSetter" type="Node" parent="Node2D/EditorIcon" index="0" node_paths=PackedStringArray("node_to_affect")]
script = ExtResource("5_8tag8")
node_to_affect = NodePath("..")
property_name = "texture"
mode = 1
resource_json = ExtResource("6_xdyfy")
use_cache = false
metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
[connection signal="area_entered" from="Hitbox" to="." method="on_area_entered"]
[editable path="BlockAnimations"]

View File

@@ -0,0 +1,72 @@
[gd_scene load_steps=9 format=3 uid="uid://b4uqa4y5o63xy"]
[ext_resource type="PackedScene" uid="uid://bxvcax2wc48xh" path="res://Scenes/Prefabs/Blocks/NoteBlock.tscn" id="1_2p7lf"]
[ext_resource type="Script" uid="uid://2gxl5hj6mf6a" path="res://Scripts/Classes/Blocks/MusicNoteBlock.gd" id="2_1gaxc"]
[ext_resource type="JSON" path="res://Assets/Sprites/Blocks/MusicNoteBlock.json" id="3_d6amy"]
[ext_resource type="Script" uid="uid://cpwloakvp672a" path="res://Scripts/Parts/EditorVisibleNode.gd" id="3_lw6l2"]
[ext_resource type="Texture2D" uid="uid://b8su0m8876337" path="res://Assets/Sprites/Editor/NoteBlockNotes.png" id="4_d6amy"]
[ext_resource type="Script" uid="uid://d4a7yp6e55u8t" path="res://Scripts/Classes/Components/TrackJoint.gd" id="6_gpide"]
[sub_resource type="AudioStreamGenerator" id="AudioStreamGenerator_1gaxc"]
[sub_resource type="GDScript" id="GDScript_lw6l2"]
script/source = "extends Node
func _process(_delta: float) -> void:
%Note.frame = owner.note
%Octave.frame = owner.octave + 11
"
[node name="NoteBlock" instance=ExtResource("1_2p7lf")]
script = ExtResource("2_1gaxc")
play_on_load = false
instrument = 0
note = 3
octave = 2
play_sfx = false
[node name="ResourceSetterNew" parent="Sprite" index="0"]
resource_json = ExtResource("3_d6amy")
[node name="EditorPropertyExposer" parent="." index="3"]
properties = Array[String](["instrument", "note", "octave", "play_on_load"])
[node name="Instrument" type="AudioStreamPlayer2D" parent="." index="4"]
process_mode = 3
stream = SubResource("AudioStreamGenerator_1gaxc")
volume_db = 24.0
bus = &"SFX"
[node name="LevelEditorVisibleNode" type="Node2D" parent="." index="5"]
script = ExtResource("3_lw6l2")
metadata/_custom_type_script = "uid://cpwloakvp672a"
[node name="Note" type="Sprite2D" parent="LevelEditorVisibleNode" index="0"]
unique_name_in_owner = true
position = Vector2(1, -5)
texture = ExtResource("4_d6amy")
hframes = 12
vframes = 2
frame = 1
[node name="Octave" type="Sprite2D" parent="LevelEditorVisibleNode" index="1"]
unique_name_in_owner = true
position = Vector2(6, -5)
texture = ExtResource("4_d6amy")
hframes = 12
vframes = 2
frame = 12
[node name="Node" type="Node" parent="." index="6"]
process_mode = 3
script = SubResource("GDScript_lw6l2")
[node name="VisibleOnScreenNotifier2D" type="VisibleOnScreenNotifier2D" parent="." index="7"]
[node name="TrackJoint" type="Node" parent="." index="8"]
script = ExtResource("6_gpide")
offset = Vector2(0, 0)
metadata/_custom_type_script = "uid://d4a7yp6e55u8t"
[connection signal="bounced" from="." to="." method="play_sfx_preview"]
[connection signal="screen_entered" from="VisibleOnScreenNotifier2D" to="." method="on_screen_entered"]

View File

@@ -0,0 +1,153 @@
[gd_scene load_steps=15 format=3 uid="uid://bxvcax2wc48xh"]
[ext_resource type="Script" uid="uid://c0diue1hemrxq" path="res://Scripts/Classes/Blocks/NoteBlock.gd" id="1_lhrvd"]
[ext_resource type="Script" uid="uid://cbal8ms2oe1ik" path="res://Scripts/Classes/Components/ResourceSetterNew.gd" id="2_jg54v"]
[ext_resource type="JSON" path="res://Assets/Sprites/Blocks/NoteBlock.json" id="4_lhrvd"]
[ext_resource type="Texture2D" uid="uid://bk4q17a2esuy1" path="res://Assets/Sprites/Blocks/NoteBlock.png" id="4_pp28j"]
[ext_resource type="Script" uid="uid://d4a7yp6e55u8t" path="res://Scripts/Classes/Components/TrackJoint.gd" id="6_4015b"]
[ext_resource type="Script" uid="uid://ctfbuoxtnnl0q" path="res://Scripts/Classes/Components/EditorPropertyExposer.gd" id="6_jg54v"]
[sub_resource type="AtlasTexture" id="AtlasTexture_ibsa0"]
atlas = ExtResource("4_pp28j")
region = Rect2(0, 0, 16, 16)
[sub_resource type="SpriteFrames" id="SpriteFrames_26wi5"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_ibsa0")
}],
"loop": true,
"name": &"default",
"speed": 5.0
}]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_jg54v"]
size = Vector2(14, 9.5)
[sub_resource type="RectangleShape2D" id="RectangleShape2D_4015b"]
size = Vector2(16, 16)
[sub_resource type="Animation" id="Animation_4015b"]
resource_name = "BounceDown"
length = 0.24
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Sprite:position")
tracks/0/interp = 2
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.10000001, 0.20000002),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 0,
"values": [Vector2(0, 0), Vector2(0, 12), Vector2(0, 0)]
}
tracks/1/type = "method"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath(".")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0.1),
"transitions": PackedFloat32Array(1),
"values": [{
"args": [],
"method": &"bounce_bodies"
}]
}
[sub_resource type="Animation" id="Animation_lhrvd"]
resource_name = "BounceUp"
length = 0.24
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Sprite:position")
tracks/0/interp = 2
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.10000001, 0.20000002),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 0,
"values": [Vector2(0, 0), Vector2(0, -8), Vector2(0, 0)]
}
[sub_resource type="Animation" id="Animation_jg54v"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Sprite:position")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector2(0, 0)]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_pp28j"]
_data = {
&"BounceDown": SubResource("Animation_4015b"),
&"BounceUp": SubResource("Animation_lhrvd"),
&"RESET": SubResource("Animation_jg54v")
}
[node name="NoteBlock" type="AnimatableBody2D" node_paths=PackedStringArray("visuals")]
collision_layer = 6
sync_to_physics = false
script = ExtResource("1_lhrvd")
visuals = NodePath("Sprite")
destructable = false
metadata/_custom_type_script = "uid://b5ejlbl0vp1gm"
[node name="Sprite" type="AnimatedSprite2D" parent="."]
sprite_frames = SubResource("SpriteFrames_26wi5")
autoplay = "default"
[node name="ResourceSetterNew" type="Node" parent="Sprite" node_paths=PackedStringArray("node_to_affect")]
script = ExtResource("2_jg54v")
node_to_affect = NodePath("..")
property_name = "sprite_frames"
resource_json = ExtResource("4_lhrvd")
metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
[node name="Area" type="Area2D" parent="Sprite"]
unique_name_in_owner = true
priority = -1
[node name="Shape" type="CollisionShape2D" parent="Sprite/Area"]
position = Vector2(0, -12.25)
shape = SubResource("RectangleShape2D_jg54v")
[node name="RemoteTransform2D" type="RemoteTransform2D" parent="Sprite"]
remote_path = NodePath("../../Collision")
[node name="Collision" type="CollisionShape2D" parent="."]
shape = SubResource("RectangleShape2D_4015b")
[node name="Animations" type="AnimationPlayer" parent="."]
unique_name_in_owner = true
libraries = {
&"": SubResource("AnimationLibrary_pp28j")
}
[node name="EditorPropertyExposer" type="Node" parent="."]
script = ExtResource("6_jg54v")
properties = Array[String](["item", "item_amount"])
filters = Dictionary[String, String]({
"item": "can_note_store"
})
[node name="TrackJoint" type="Node" parent="."]
script = ExtResource("6_4015b")
offset = Vector2(0, 0)
disable_physics = false
metadata/_custom_type_script = "uid://d4a7yp6e55u8t"
[connection signal="player_block_hit" from="." to="." method="bounce_up" unbinds=1]
[connection signal="shell_block_hit" from="." to="." method="bounce_up" unbinds=1]
[connection signal="area_entered" from="Sprite/Area" to="." method="on_area_entered"]

View File

@@ -0,0 +1,42 @@
[gd_scene load_steps=7 format=3 uid="uid://c685xkxf085tc"]
[ext_resource type="PackedScene" uid="uid://by6ndsjhlkmbt" path="res://Scenes/Prefabs/Blocks/BooRaceBlocks/BooOnOffBlock.tscn" id="1_x3cu1"]
[ext_resource type="Texture2D" uid="uid://dql2td7sut6m8" path="res://Assets/Sprites/Blocks/OnOffBlock.png" id="2_m1hcn"]
[ext_resource type="JSON" path="res://Assets/Sprites/Blocks/OnOffBlockRed.json" id="3_m1hcn"]
[sub_resource type="AtlasTexture" id="AtlasTexture_ieqkm"]
atlas = ExtResource("2_m1hcn")
region = Rect2(16, 16, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_y0v5j"]
atlas = ExtResource("2_m1hcn")
region = Rect2(0, 16, 16, 16)
[sub_resource type="SpriteFrames" id="SpriteFrames_boqyf"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_ieqkm")
}],
"loop": false,
"name": &"Off",
"speed": 15.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_y0v5j")
}],
"loop": false,
"name": &"On",
"speed": 15.0
}]
[node name="OnOffBlock" instance=ExtResource("1_x3cu1")]
[node name="Sprite" parent="." index="0"]
sprite_frames = SubResource("SpriteFrames_boqyf")
animation = &"Off"
autoplay = ""
[node name="ResourceSetter" parent="Sprite" index="0"]
resource_json = ExtResource("3_m1hcn")

View File

@@ -0,0 +1,46 @@
[gd_scene load_steps=7 format=3 uid="uid://b5cw2667exll"]
[ext_resource type="PackedScene" uid="uid://by6ndsjhlkmbt" path="res://Scenes/Prefabs/Blocks/BooRaceBlocks/BooOnOffBlock.tscn" id="1_gov4d"]
[ext_resource type="Texture2D" uid="uid://dql2td7sut6m8" path="res://Assets/Sprites/Blocks/OnOffBlock.png" id="2_pg6um"]
[ext_resource type="JSON" path="res://Assets/Sprites/Blocks/BlueOnOffBlock.json" id="3_pg6um"]
[sub_resource type="AtlasTexture" id="AtlasTexture_pg6um"]
atlas = ExtResource("2_pg6um")
region = Rect2(16, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_85gn6"]
atlas = ExtResource("2_pg6um")
region = Rect2(0, 0, 16, 16)
[sub_resource type="SpriteFrames" id="SpriteFrames_m455b"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_pg6um")
}],
"loop": false,
"name": &"Off",
"speed": 15.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_85gn6")
}],
"loop": false,
"name": &"On",
"speed": 15.0
}]
[node name="OnOffBlock" instance=ExtResource("1_gov4d")]
active = true
[node name="Sprite" parent="." index="0"]
sprite_frames = SubResource("SpriteFrames_m455b")
animation = &"On"
autoplay = "On"
[node name="ResourceSetter" parent="Sprite" index="0"]
resource_json = ExtResource("3_pg6um")
[node name="Collision" parent="." index="1"]
disabled = false

View File

@@ -0,0 +1,64 @@
[gd_scene load_steps=10 format=3 uid="uid://3pvbcy3lkl7r"]
[ext_resource type="PackedScene" uid="uid://lglmgqp3emy4" path="res://Scenes/Prefabs/Blocks/OnOffFanRed.tscn" id="1_d1mvb"]
[ext_resource type="Texture2D" uid="uid://d0o6wgsrow8t1" path="res://Assets/Sprites/Blocks/OnOffFan.png" id="2_doyjh"]
[ext_resource type="JSON" path="res://Assets/Sprites/Blocks/OffFan.json" id="3_doyjh"]
[sub_resource type="AtlasTexture" id="AtlasTexture_b8pdc"]
atlas = ExtResource("2_doyjh")
region = Rect2(0, 48, 16, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_11aaj"]
atlas = ExtResource("2_doyjh")
region = Rect2(0, 48, 16, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_q1sv5"]
atlas = ExtResource("2_doyjh")
region = Rect2(16, 48, 16, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_f12lw"]
atlas = ExtResource("2_doyjh")
region = Rect2(32, 48, 16, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_qypud"]
atlas = ExtResource("2_doyjh")
region = Rect2(48, 48, 16, 48)
[sub_resource type="SpriteFrames" id="SpriteFrames_riapl"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_b8pdc")
}],
"loop": true,
"name": &"Off",
"speed": 5.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_11aaj")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_q1sv5")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_f12lw")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_qypud")
}],
"loop": true,
"name": &"On",
"speed": 30.0
}]
[node name="OnOffFanBlue" instance=ExtResource("1_d1mvb")]
active = true
[node name="Sprite" parent="." index="1"]
sprite_frames = SubResource("SpriteFrames_riapl")
animation = &"On"
frame_progress = 0.6434357
[node name="ResourceSetterNew" parent="Sprite" index="0"]
resource_json = ExtResource("3_doyjh")

View File

@@ -0,0 +1,173 @@
[gd_scene load_steps=23 format=3 uid="uid://lglmgqp3emy4"]
[ext_resource type="Script" uid="uid://bvplls3ae0oqr" path="res://Scripts/Classes/Entities/Objects/OnOffFanRed.gd" id="1_gfuw1"]
[ext_resource type="Texture2D" uid="uid://d0o6wgsrow8t1" path="res://Assets/Sprites/Blocks/OnOffFan.png" id="1_y6e5m"]
[ext_resource type="Script" uid="uid://caq1qiwmy0mox" path="res://Scripts/Parts/BetterAnimatedSprite.gd" id="2_xmnks"]
[ext_resource type="Texture2D" uid="uid://dy3p03djelkb3" path="res://Assets/Sprites/Particles/Leaves.png" id="4_wvhkg"]
[ext_resource type="Script" uid="uid://cbal8ms2oe1ik" path="res://Scripts/Classes/Components/ResourceSetterNew.gd" id="5_ak3jd"]
[ext_resource type="JSON" path="res://Assets/Sprites/Blocks/OnFan.json" id="5_elapr"]
[ext_resource type="JSON" path="res://Assets/Sprites/Particles/WindParticles.json" id="6_elapr"]
[ext_resource type="Script" uid="uid://ctfbuoxtnnl0q" path="res://Scripts/Classes/Components/EditorPropertyExposer.gd" id="7_wvhkg"]
[ext_resource type="Script" uid="uid://d4a7yp6e55u8t" path="res://Scripts/Classes/Components/TrackJoint.gd" id="8_ak3jd"]
[sub_resource type="AtlasTexture" id="AtlasTexture_fo8qw"]
atlas = ExtResource("1_y6e5m")
region = Rect2(0, 0, 16, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_oa48t"]
atlas = ExtResource("1_y6e5m")
region = Rect2(0, 0, 16, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_gfuw1"]
atlas = ExtResource("1_y6e5m")
region = Rect2(16, 0, 16, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_wvhkg"]
atlas = ExtResource("1_y6e5m")
region = Rect2(32, 0, 16, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_ak3jd"]
atlas = ExtResource("1_y6e5m")
region = Rect2(48, 0, 16, 48)
[sub_resource type="SpriteFrames" id="SpriteFrames_elapr"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_fo8qw")
}],
"loop": true,
"name": &"Off",
"speed": 5.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_oa48t")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_gfuw1")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_wvhkg")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_ak3jd")
}],
"loop": true,
"name": &"On",
"speed": 30.0
}]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_wvrj8"]
size = Vector2(16, 48)
[sub_resource type="RectangleShape2D" id="RectangleShape2D_4qr7a"]
size = Vector2(256, 36)
[sub_resource type="CanvasItemMaterial" id="CanvasItemMaterial_wo6ri"]
particles_animation = true
particles_anim_h_frames = 2
particles_anim_v_frames = 1
particles_anim_loop = false
[sub_resource type="Curve" id="Curve_56hbg"]
_data = [Vector2(0, 1), 0.0, 0.0, 0, 0, Vector2(0.894444, 1), 0.0, 0.0, 0, 0, Vector2(1, 0), 0.0, 0.0, 0, 0]
point_count = 3
[sub_resource type="CurveTexture" id="CurveTexture_8c2la"]
curve = SubResource("Curve_56hbg")
[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_ixtv2"]
particle_flag_disable_z = true
emission_shape_scale = Vector3(1, 15, 1)
emission_shape = 3
emission_box_extents = Vector3(1, 1, 1)
spread = 0.0
initial_velocity_min = 100.0
initial_velocity_max = 500.0
angular_velocity_min = -720.0
angular_velocity_max = 720.0
gravity = Vector3(0, 0, 0)
alpha_curve = SubResource("CurveTexture_8c2la")
anim_offset_max = 1.0
[sub_resource type="GDScript" id="GDScript_gfuw1"]
script/source = "extends Node
@export var sprite: AnimatedSprite2D = null
func _process(_delta: float) -> void:
$\"..\".global_rotation_degrees = [0, 180, -90, 90][owner.direction]
sprite.global_rotation_degrees = [0, 0, 90, 90][owner.direction]
sprite.flip_h = owner.direction == 1 or owner.direction == 2
"
[node name="OnOffFanRed" type="AnimatableBody2D" groups=["BooBlocks"]]
collision_layer = 6
collision_mask = 0
sync_to_physics = false
script = ExtResource("1_gfuw1")
[node name="RotationJoint" type="Node2D" parent="."]
[node name="Sprite" type="AnimatedSprite2D" parent="."]
top_level = true
sprite_frames = SubResource("SpriteFrames_elapr")
animation = &"Off"
frame_progress = 0.50883424
script = ExtResource("2_xmnks")
do_offset = false
metadata/_custom_type_script = "uid://caq1qiwmy0mox"
[node name="ResourceSetterNew" type="Node" parent="Sprite" node_paths=PackedStringArray("node_to_affect")]
script = ExtResource("5_ak3jd")
node_to_affect = NodePath("..")
property_name = "sprite_frames"
resource_json = ExtResource("5_elapr")
metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
[node name="Collision" type="CollisionShape2D" parent="."]
shape = SubResource("RectangleShape2D_wvrj8")
[node name="Hitbox" type="Area2D" parent="."]
[node name="Shape" type="CollisionShape2D" parent="Hitbox"]
position = Vector2(128, 0)
shape = SubResource("RectangleShape2D_4qr7a")
[node name="Particles" type="GPUParticles2D" parent="."]
unique_name_in_owner = true
material = SubResource("CanvasItemMaterial_wo6ri")
emitting = false
texture = ExtResource("4_wvhkg")
lifetime = 0.5
process_material = SubResource("ParticleProcessMaterial_ixtv2")
[node name="ResourceSetterNew" type="Node" parent="Particles" node_paths=PackedStringArray("node_to_affect")]
script = ExtResource("5_ak3jd")
node_to_affect = NodePath("..")
property_name = "texture"
mode = 1
resource_json = ExtResource("6_elapr")
metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
[node name="Node" type="Node" parent="." node_paths=PackedStringArray("sprite")]
process_mode = 3
script = SubResource("GDScript_gfuw1")
sprite = NodePath("../Sprite")
[node name="EditorPropertyExposer" type="Node" parent="."]
script = ExtResource("7_wvhkg")
properties = Array[String](["direction", "strength"])
metadata/_custom_type_script = "uid://ctfbuoxtnnl0q"
[node name="TrackJoint" type="Node" parent="."]
script = ExtResource("8_ak3jd")
offset = Vector2(0, 0)
disable_physics = false
metadata/_custom_type_script = "uid://d4a7yp6e55u8t"
[node name="RemoteTransform2D" type="RemoteTransform2D" parent="."]
remote_path = NodePath("../Sprite")
update_rotation = false
update_scale = false

View File

@@ -0,0 +1,72 @@
[gd_scene load_steps=10 format=3 uid="uid://c0020qrw11oy4"]
[ext_resource type="PackedScene" uid="uid://5ua3p0lfl1bf" path="res://Scenes/Prefabs/Blocks/BooRaceBlocks/BooOnOffSwitch.tscn" id="1_bblk7"]
[ext_resource type="Texture2D" uid="uid://sy6ivu4qc0o3" path="res://Assets/Sprites/Blocks/OnOffSwitch.png" id="2_xglou"]
[ext_resource type="JSON" path="res://Assets/Sprites/Blocks/OnOffSwitch.json" id="3_xglou"]
[sub_resource type="AtlasTexture" id="AtlasTexture_cs2ia"]
atlas = ExtResource("2_xglou")
region = Rect2(0, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_8o30n"]
atlas = ExtResource("2_xglou")
region = Rect2(16, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_heqbn"]
atlas = ExtResource("2_xglou")
region = Rect2(0, 16, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_hi63j"]
atlas = ExtResource("2_xglou")
region = Rect2(16, 16, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_i1gmf"]
atlas = ExtResource("2_xglou")
region = Rect2(0, 0, 16, 16)
[sub_resource type="SpriteFrames" id="SpriteFrames_d785i"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_cs2ia")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_8o30n")
}],
"loop": true,
"name": &"Off",
"speed": 5.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_heqbn")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_hi63j")
}],
"loop": true,
"name": &"On",
"speed": 5.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_i1gmf")
}],
"loop": true,
"name": &"default",
"speed": 5.0
}]
[node name="OnOffSwitch" instance=ExtResource("1_bblk7")]
destructable = false
[node name="Sprite" parent="." index="0"]
sprite_frames = SubResource("SpriteFrames_d785i")
animation = &"Off"
autoplay = "Off"
[node name="ResourceSetter" parent="Sprite" index="0"]
resource_json = ExtResource("3_xglou")
[connection signal="shell_block_hit" from="." to="." method="on_block_hit" unbinds=1]
[connection signal="shell_block_hit" from="." to="BlockAnimations" method="bounce_block" unbinds=1]

View File

@@ -0,0 +1,27 @@
[gd_scene load_steps=5 format=3 uid="uid://q3aaukgw01nw"]
[ext_resource type="Texture2D" uid="uid://ln7uey6c4mf" path="res://Assets/Sprites/Blocks/PSwitchBlock.png" id="1_8hxb6"]
[ext_resource type="Script" uid="uid://bul1nbd2in1gn" path="res://Scripts/Classes/Components/PSwitcher.gd" id="2_13wn0"]
[ext_resource type="Script" uid="uid://364rywt44hy6" path="res://Scripts/Classes/UI/PackSprite.gd" id="2_ok1ms"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_13wn0"]
size = Vector2(16, 16)
[node name="PSwitchBlock" type="StaticBody2D"]
collision_layer = 6
collision_mask = 0
[node name="Sprite" type="Sprite2D" parent="."]
texture = ExtResource("1_8hxb6")
region_enabled = true
region_rect = Rect2(0, 0, 16, 16)
script = ExtResource("2_ok1ms")
metadata/_custom_type_script = "uid://364rywt44hy6"
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
shape = SubResource("RectangleShape2D_13wn0")
[node name="PSwitcher" type="Node" parent="."]
script = ExtResource("2_13wn0")
new_scene = "uid://cn7wwtug5xman"
metadata/_custom_type_script = "uid://bul1nbd2in1gn"

View File

@@ -0,0 +1,33 @@
[gd_scene load_steps=8 format=3 uid="uid://bao37nqa7h7cm"]
[ext_resource type="PackedScene" uid="uid://urrtgm0h110y" path="res://Scenes/Prefabs/Blocks/QuestionBlocks/StarQuestionBlock.tscn" id="1_ub15u"]
[ext_resource type="PackedScene" uid="uid://beq7b3hp44onn" path="res://Scenes/Prefabs/Entities/Items/SuperMushroom.tscn" id="2_c153q"]
[ext_resource type="Texture2D" uid="uid://bsyugykvflalf" path="res://Assets/Sprites/Items/1UP.png" id="3_gaiqt"]
[ext_resource type="JSON" path="res://Assets/Sprites/Items/OneUp.json" id="4_1kwpx"]
[ext_resource type="Script" uid="uid://5octqlf4ohel" path="res://Scripts/Classes/Components/ScoreNoteSpawner.gd" id="5_8uw6t"]
[sub_resource type="AtlasTexture" id="AtlasTexture_3yqrr"]
atlas = ExtResource("3_gaiqt")
region = Rect2(16, 0, 16, 16)
[sub_resource type="PackedScene" id="PackedScene_dklm2"]
_bundled = {
"base_scene": 0,
"conn_count": 0,
"conns": PackedInt32Array(),
"editable_instances": [],
"names": PackedStringArray("OneUp", "metadata/is_oneup", "Mushroom", "texture", "region_enabled", "region_rect", "ResourceSetterNew", "resource_json", "ScoreNoteSpawner", "Node", "script", "metadata/_custom_type_script"),
"node_count": 4,
"node_paths": [NodePath("."), NodePath("./Mushroom"), NodePath(".")],
"nodes": PackedInt32Array(-1, -1, 2147483647, 0, -1, 1, 1, 1, 0, 1073741824, -1, 2147483647, 262146, -1, 3, 3, 2, 4, 3, 5, 4, 0, 1073741825, -1, 2147483647, 262150, -1, 1, 7, 5, 0, 1073741826, 0, 9, 1310728, -1, 2, 10, 6, 11, 7, 0),
"variants": [ExtResource("2_c153q"), true, SubResource("AtlasTexture_3yqrr"), false, Rect2(16, 0, 16, 16), ExtResource("4_1kwpx"), ExtResource("5_8uw6t"), "uid://5octqlf4ohel"],
"version": 3
}
[node name="QuestionBlock" instance=ExtResource("1_ub15u")]
item = SubResource("PackedScene_dklm2")
[node name="Sprite2D" parent="ItemPreview" index="0"]
region_rect = Rect2(16, 0, 16, 16)
[editable path="BlockAnimations"]

View File

@@ -0,0 +1,34 @@
[gd_scene load_steps=7 format=3 uid="uid://um8m5iu20qj3"]
[ext_resource type="PackedScene" uid="uid://bc1mrna4kybhv" path="res://Scenes/Prefabs/Blocks/QuestionBlocks/QuestionBlock.tscn" id="1_l2pjc"]
[ext_resource type="PackedScene" uid="uid://beq7b3hp44onn" path="res://Scenes/Prefabs/Entities/Items/SuperMushroom.tscn" id="2_cyrh8"]
[ext_resource type="JSON" path="res://Assets/Sprites/Items/PoisonMushroom.json" id="3_0pdxv"]
[ext_resource type="Texture2D" uid="uid://011dooyd0elr" path="res://Assets/Sprites/Items/PoisonMushroom.png" id="3_rsq7m"]
[ext_resource type="Script" uid="uid://cpwloakvp672a" path="res://Scripts/Parts/EditorVisibleNode.gd" id="3_whgk1"]
[sub_resource type="PackedScene" id="PackedScene_qyrv6"]
_bundled = {
"base_scene": 0,
"conn_count": 0,
"conns": PackedInt32Array(),
"editable_instances": [],
"names": PackedStringArray("SuperMushroom", "metadata/is_poison", "Mushroom", "region_enabled", "region_rect", "ResourceSetterNew", "resource_json"),
"node_count": 3,
"node_paths": [NodePath("."), NodePath("./Mushroom")],
"nodes": PackedInt32Array(-1, -1, 2147483647, 0, -1, 1, 1, 1, 0, 1073741824, -1, 2147483647, 262146, -1, 2, 3, 2, 4, 3, 0, 1073741825, -1, 2147483647, 262149, -1, 1, 6, 4, 0),
"variants": [ExtResource("2_cyrh8"), false, false, Rect2(32, 0, 16, 16), ExtResource("3_0pdxv")],
"version": 3
}
[node name="QuestionBlock" instance=ExtResource("1_l2pjc")]
item = SubResource("PackedScene_qyrv6")
[node name="Node2D" type="Node2D" parent="." index="3"]
script = ExtResource("3_whgk1")
[node name="Sprite2D" type="Sprite2D" parent="Node2D" index="0"]
texture = ExtResource("3_rsq7m")
region_enabled = true
region_rect = Rect2(32, 0, 16, 16)
[editable path="BlockAnimations"]

View File

@@ -0,0 +1,21 @@
[gd_scene load_steps=5 format=3 uid="uid://cmgahojpgp2cq"]
[ext_resource type="PackedScene" uid="uid://bc1mrna4kybhv" path="res://Scenes/Prefabs/Blocks/QuestionBlocks/QuestionBlock.tscn" id="1_gy3k6"]
[ext_resource type="PackedScene" uid="uid://dbjqtjhb2t4cn" path="res://Scenes/Prefabs/Entities/Items/FireFlower.tscn" id="2_h6l2a"]
[ext_resource type="Script" uid="uid://cpwloakvp672a" path="res://Scripts/Parts/EditorVisibleNode.gd" id="3_32rpa"]
[ext_resource type="Texture2D" uid="uid://hfh5i32uji5t" path="res://Assets/Sprites/Items/SuperMushroom.png" id="4_h6l2a"]
[node name="QuestionBlock" instance=ExtResource("1_gy3k6")]
item = ExtResource("2_h6l2a")
mushroom_if_small = true
[node name="ItemPreview" type="Node2D" parent="." index="3"]
script = ExtResource("3_32rpa")
[node name="Sprite2D" type="Sprite2D" parent="ItemPreview" index="0"]
texture = ExtResource("4_h6l2a")
region_enabled = true
region_rect = Rect2(0, 0, 16, 16)
region_filter_clip_enabled = true
[editable path="BlockAnimations"]

View File

@@ -0,0 +1,105 @@
[gd_scene load_steps=17 format=3 uid="uid://bc1mrna4kybhv"]
[ext_resource type="Script" uid="uid://b5ejlbl0vp1gm" path="res://Scripts/Classes/Blocks/BlockClass.gd" id="1_bxree"]
[ext_resource type="Texture2D" uid="uid://uh7uhdkv3e6s" path="res://Assets/Sprites/Blocks/QuestionBlock.png" id="1_wt4d5"]
[ext_resource type="PackedScene" uid="uid://clxssds8sj8pf" path="res://Scenes/Prefabs/Entities/Items/SpinningCoin.tscn" id="2_ntyfr"]
[ext_resource type="PackedScene" uid="uid://dt58tjrnarms0" path="res://Scenes/Prefabs/Particles/QuestionBlockDestructionParticles.tscn" id="3_mvk7u"]
[ext_resource type="PackedScene" uid="uid://cijkvfkthetn5" path="res://Scenes/Parts/BlockAnimations.tscn" id="3_ntyfr"]
[ext_resource type="Script" uid="uid://cbal8ms2oe1ik" path="res://Scripts/Classes/Components/ResourceSetterNew.gd" id="4_qf42s"]
[ext_resource type="JSON" path="res://Assets/Sprites/Blocks/QuestionBlock.json" id="5_mkj8t"]
[ext_resource type="Script" uid="uid://ctfbuoxtnnl0q" path="res://Scripts/Classes/Components/EditorPropertyExposer.gd" id="7_aekuo"]
[ext_resource type="Script" uid="uid://d4a7yp6e55u8t" path="res://Scripts/Classes/Components/TrackJoint.gd" id="8_ov42f"]
[ext_resource type="Script" uid="uid://maqpreddu5kg" path="res://Scripts/Classes/Components/LevelPersistance.gd" id="9_j1txv"]
[sub_resource type="AtlasTexture" id="AtlasTexture_w6pbl"]
atlas = ExtResource("1_wt4d5")
region = Rect2(0, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_bxree"]
atlas = ExtResource("1_wt4d5")
region = Rect2(16, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_ntyfr"]
atlas = ExtResource("1_wt4d5")
region = Rect2(32, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_aukm0"]
atlas = ExtResource("1_wt4d5")
region = Rect2(48, 0, 16, 16)
[sub_resource type="SpriteFrames" id="SpriteFrames_qf42s"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_w6pbl")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_bxree")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_ntyfr")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_aukm0")
}],
"loop": true,
"name": &"default",
"speed": 1.0
}]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_mkj8t"]
size = Vector2(16, 16)
[node name="QuestionBlock" type="AnimatableBody2D" node_paths=PackedStringArray("visuals") groups=["Blocks"]]
collision_layer = 6
collision_mask = 0
sync_to_physics = false
script = ExtResource("1_bxree")
visuals = NodePath("Sprite")
item = ExtResource("2_ntyfr")
destruction_particle_scene = ExtResource("3_mvk7u")
combo_meter_amount = 30
[node name="Sprite" type="AnimatedSprite2D" parent="."]
sprite_frames = SubResource("SpriteFrames_qf42s")
autoplay = "default"
frame_progress = 0.2849915
[node name="ResourceSetterNew" type="Node" parent="Sprite" node_paths=PackedStringArray("node_to_affect")]
script = ExtResource("4_qf42s")
node_to_affect = NodePath("..")
property_name = "sprite_frames"
resource_json = ExtResource("5_mkj8t")
metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
[node name="Collision" type="CollisionShape2D" parent="."]
visible = false
shape = SubResource("RectangleShape2D_mkj8t")
[node name="BlockAnimations" parent="." instance=ExtResource("3_ntyfr")]
[node name="EditorPropertyExposer" type="Node" parent="."]
script = ExtResource("7_aekuo")
properties = Array[String](["item", "item_amount", "mushroom_if_small"])
filters = Dictionary[String, String]({
"item": "can_be_stored"
})
[node name="TrackJoint" type="Node" parent="."]
script = ExtResource("8_ov42f")
offset = Vector2(0, 0)
metadata/_custom_type_script = "uid://d4a7yp6e55u8t"
[node name="LevelPersistance" type="Node" parent="."]
script = ExtResource("9_j1txv")
metadata/_custom_type_script = "uid://maqpreddu5kg"
[connection signal="block_destroyed" from="." to="LevelPersistance" method="set_as_active_2"]
[connection signal="block_emptied" from="." to="LevelPersistance" method="set_as_active"]
[connection signal="player_block_hit" from="." to="." method="player_mushroom_check"]
[connection signal="player_block_hit" from="." to="." method="dispense_item" unbinds=1]
[connection signal="player_block_hit" from="." to="BlockAnimations" method="bounce_block" unbinds=1]
[connection signal="shell_block_hit" from="." to="." method="dispense_item" unbinds=1]
[connection signal="shell_block_hit" from="." to="BlockAnimations" method="bounce_block" unbinds=1]
[connection signal="enabled" from="LevelPersistance" to="." method="spawn_empty_block"]
[connection signal="enabled_2" from="LevelPersistance" to="." method="queue_free"]

View File

@@ -0,0 +1,80 @@
[gd_scene load_steps=17 format=3 uid="uid://urrtgm0h110y"]
[ext_resource type="PackedScene" uid="uid://cmgahojpgp2cq" path="res://Scenes/Prefabs/Blocks/QuestionBlocks/PowerUpQuestionBlock.tscn" id="1_t6w6o"]
[ext_resource type="Script" uid="uid://dbeg86pjflojw" path="res://Scripts/Classes/Entities/Items/SuperStar.gd" id="2_2y0ea"]
[ext_resource type="AudioStream" uid="uid://73b2bhjg5idd" path="res://Assets/Audio/BGM/StarMan.mp3" id="3_fs4uy"]
[ext_resource type="Texture2D" uid="uid://1o654l3577lv" path="res://Assets/Sprites/Items/SuperStar.png" id="4_2tflf"]
[ext_resource type="Script" uid="uid://cbal8ms2oe1ik" path="res://Scripts/Classes/Components/ResourceSetterNew.gd" id="5_a44we"]
[ext_resource type="JSON" path="res://Assets/Sprites/Items/StarMan.json" id="6_6b3t1"]
[ext_resource type="Script" uid="uid://dlq6o2rg1x7in" path="res://Scripts/Classes/Components/BasicEnemyMovement.gd" id="7_r72oo"]
[sub_resource type="AudioStreamInteractive" id="AudioStreamInteractive_og7mc"]
clip_count = 1
clip_0/name = &"Star Man"
clip_0/stream = ExtResource("3_fs4uy")
clip_0/auto_advance = 0
[sub_resource type="AtlasTexture" id="AtlasTexture_ptmgm"]
atlas = ExtResource("4_2tflf")
region = Rect2(0, 32, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_aowox"]
atlas = ExtResource("4_2tflf")
region = Rect2(16, 32, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_53gld"]
atlas = ExtResource("4_2tflf")
region = Rect2(32, 32, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_orqf5"]
atlas = ExtResource("4_2tflf")
region = Rect2(48, 32, 16, 16)
[sub_resource type="SpriteFrames" id="SpriteFrames_og7mc"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_ptmgm")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_aowox")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_53gld")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_orqf5")
}],
"loop": true,
"name": &"default",
"speed": 15.0
}]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_sc6oi"]
custom_solver_bias = 1.0
size = Vector2(8, 8)
[sub_resource type="RectangleShape2D" id="RectangleShape2D_yyobd"]
size = Vector2(16, 16)
[sub_resource type="PackedScene" id="PackedScene_3tsvi"]
_bundled = {
"conn_count": 1,
"conns": PackedInt32Array(1073741831, 1073741830, 39, 38, 2, 0, 0),
"editable_instances": [],
"names": PackedStringArray("SuperStar", "CharacterBody2D", "z_index", "collision_layer", "collision_mask", "script", "star_bgm", "metadata/_custom_type_script", "Sprite", "AnimatedSprite2D", "position", "sprite_frames", "autoplay", "frame_progress", "ResourceSetterNew", "Node", "script", "node_to_affect", "property_name", "resource_json", "metadata/_custom_type_script", "Collision", "CollisionShape2D", "position", "shape", "Hitbox", "Area2D", "CollisionShape2D", "CollisionShape2D", "position", "shape", "BasicEnemyMovement", "Node", "script", "ledge_detection_cast", "move_speed", "bounce_on_land", "bounce_height", "on_area_entered", "area_entered"),
"node_count": 7,
"node_paths": [NodePath("."), NodePath("./Sprite"), NodePath("."), NodePath("."), NodePath("./Hitbox"), NodePath("."), NodePath("."), NodePath("Hitbox")],
"nodes": PackedInt32Array(-1, -1, 1, 0, -1, 6, 2, 0, 3, 1, 4, 2, 5, 3, 6, 4, 7, 5, 0, 1073741824, 0, 9, 8, -1, 4, 10, 6, 11, 7, 12, 8, 13, 9, 0, 1073741825, 0, 15, 14, -1, 5, 16, 10, 1073741841, 11, 18, 12, 19, 13, 20, 14, 0, 1073741826, 0, 22, 21, -1, 2, 23, 15, 24, 16, 0, 1073741827, 0, 26, 25, -1, 0, 0, 1073741828, 0, 28, 27, -1, 2, 29, 17, 30, 18, 0, 1073741829, 0, 32, 31, -1, 5, 33, 19, 1073741858, 20, 35, 21, 36, 22, 37, 23, 0),
"variants": [-1, 8, 2, ExtResource("2_2y0ea"), SubResource("AudioStreamInteractive_og7mc"), "uid://cjkurwybsaywm", Vector2(0, -8), SubResource("SpriteFrames_og7mc"), "default", 0.792139, ExtResource("5_a44we"), NodePath(".."), "sprite_frames", ExtResource("6_6b3t1"), "uid://cbal8ms2oe1ik", Vector2(0, -4), SubResource("RectangleShape2D_sc6oi"), Vector2(0, -8), SubResource("RectangleShape2D_yyobd"), ExtResource("7_r72oo"), NodePath(""), 70, true, -250],
"version": 3
}
[node name="QuestionBlock" instance=ExtResource("1_t6w6o")]
item = SubResource("PackedScene_3tsvi")
mushroom_if_small = false
[node name="Sprite2D" parent="ItemPreview" index="0"]
region_rect = Rect2(16, 32, 16, 16)
[editable path="BlockAnimations"]

View File

@@ -0,0 +1,180 @@
[gd_scene load_steps=27 format=3 uid="uid://dmxufw748fe32"]
[ext_resource type="Script" uid="uid://bpydbpyjk1mt4" path="res://Scripts/Classes/Entities/Enemy.gd" id="1_gcnju"]
[ext_resource type="Texture2D" uid="uid://do13c2crob4td" path="res://Assets/Sprites/Blocks/SpikeBlock.png" id="2_dftxp"]
[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://d4a7yp6e55u8t" path="res://Scripts/Classes/Components/TrackJoint.gd" id="10_xfdnj"]
[sub_resource type="AtlasTexture" id="AtlasTexture_v0way"]
atlas = ExtResource("2_dftxp")
region = Rect2(0, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_l3otb"]
atlas = ExtResource("2_dftxp")
region = Rect2(16, 0, 16, 16)
[sub_resource type="SpriteFrames" id="SpriteFrames_bcd7j"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_v0way")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_l3otb")
}],
"loop": true,
"name": &"default",
"speed": 5.0
}]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_cgdwi"]
size = Vector2(16, 16)
[sub_resource type="RectangleShape2D" id="RectangleShape2D_r7ue2"]
size = Vector2(16.5, 16.6)
[sub_resource type="AtlasTexture" id="AtlasTexture_fgcqp"]
atlas = ExtResource("2_dftxp")
region = Rect2(0, 32, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_kxpbe"]
atlas = ExtResource("2_dftxp")
region = Rect2(16, 32, 16, 16)
[sub_resource type="SpriteFrames" id="SpriteFrames_aqm7k"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_fgcqp")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_kxpbe")
}],
"loop": true,
"name": &"default",
"speed": 5.0
}]
[sub_resource type="AtlasTexture" id="AtlasTexture_13gtq"]
atlas = ExtResource("2_dftxp")
region = Rect2(0, 16, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_wxl8r"]
atlas = ExtResource("2_dftxp")
region = Rect2(16, 16, 16, 16)
[sub_resource type="SpriteFrames" id="SpriteFrames_31p57"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_13gtq")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_wxl8r")
}],
"loop": true,
"name": &"default",
"speed": 5.0
}]
[sub_resource type="SpriteFrames" id="SpriteFrames_f51es"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_v0way")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_l3otb")
}],
"loop": true,
"name": &"default",
"speed": 5.0
}]
[sub_resource type="AtlasTexture" id="AtlasTexture_jnbok"]
atlas = ExtResource("2_dftxp")
region = Rect2(0, 48, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_jtvf6"]
atlas = ExtResource("2_dftxp")
region = Rect2(16, 48, 16, 16)
[sub_resource type="SpriteFrames" id="SpriteFrames_f65v7"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_jnbok")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_jtvf6")
}],
"loop": true,
"name": &"default",
"speed": 5.0
}]
[sub_resource type="Resource" id="Resource_ji0bc"]
script = ExtResource("8_w3ysb")
Overworld = SubResource("SpriteFrames_f51es")
Underground = SubResource("SpriteFrames_31p57")
Snow = SubResource("SpriteFrames_f65v7")
GhostHouse = SubResource("SpriteFrames_31p57")
Castle = SubResource("SpriteFrames_aqm7k")
metadata/_custom_type_script = "uid://cmvlgsjmsk0v5"
[node name="SpikeBlock" type="CharacterBody2D" groups=["Enemies"]]
disable_mode = 1
collision_layer = 2
collision_mask = 2
script = ExtResource("1_gcnju")
metadata/_custom_type_script = "uid://bpydbpyjk1mt4"
[node name="Sprite" type="AnimatedSprite2D" parent="."]
sprite_frames = SubResource("SpriteFrames_bcd7j")
autoplay = "default"
frame_progress = 0.177236
script = ExtResource("3_4g6tc")
do_offset = false
metadata/_custom_type_script = "uid://caq1qiwmy0mox"
[node name="ResourceSetterNew" type="Node" parent="Sprite" node_paths=PackedStringArray("node_to_affect")]
script = ExtResource("4_w3ysb")
node_to_affect = NodePath("..")
property_name = "sprite_frames"
resource_json = ExtResource("4_dftxp")
metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
[node name="Collision" type="CollisionShape2D" parent="."]
shape = SubResource("RectangleShape2D_cgdwi")
[node name="PlayerDetection" type="Area2D" parent="."]
script = ExtResource("6_l3otb")
metadata/_custom_type_script = "uid://cnheej0sxmoxg"
[node name="CollisionShape2D" type="CollisionShape2D" parent="PlayerDetection"]
shape = SubResource("RectangleShape2D_r7ue2")
[node name="VisibleOnScreenEnabler2D" type="VisibleOnScreenEnabler2D" parent="."]
[node name="ScoreNoteSpawner" type="Node" parent="."]
script = ExtResource("7_bcd7j")
metadata/_custom_type_script = "uid://5octqlf4ohel"
[node name="ThemedToJSONConverter" type="Node" parent="."]
script = ExtResource("7_4g6tc")
resource = SubResource("Resource_ji0bc")
json_file_path = "res://Assets/Sprites/Blocks/SpikeBlock.json"
metadata/_custom_type_script = "uid://cqif1li7otvpl"
[node name="TrackJoint" type="Node" parent="."]
script = ExtResource("10_xfdnj")
offset = Vector2(0, 0)
metadata/_custom_type_script = "uid://d4a7yp6e55u8t"
[connection signal="player_entered" from="PlayerDetection" to="." method="damage_player"]

View File

@@ -0,0 +1,77 @@
[gd_scene load_steps=12 format=3 uid="uid://b8dalotrk2oci"]
[ext_resource type="Texture2D" uid="uid://btt618edhifoj" path="res://Assets/Sprites/Blocks/TurnBlock.png" id="1_fh7wk"]
[ext_resource type="Script" uid="uid://7evxxqgv6e3j" path="res://Scripts/Classes/Blocks/SpinningTurnBlock.gd" id="2_aiilm"]
[ext_resource type="Script" uid="uid://caq1qiwmy0mox" path="res://Scripts/Parts/BetterAnimatedSprite.gd" id="3_aiilm"]
[ext_resource type="Script" uid="uid://cbal8ms2oe1ik" path="res://Scripts/Classes/Components/ResourceSetterNew.gd" id="4_pd7sm"]
[ext_resource type="JSON" path="res://Assets/Sprites/Blocks/TurnBlock.json" id="5_gaxhp"]
[sub_resource type="AtlasTexture" id="AtlasTexture_8yy4r"]
atlas = ExtResource("1_fh7wk")
region = Rect2(0, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_pm24u"]
atlas = ExtResource("1_fh7wk")
region = Rect2(16, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_keywi"]
atlas = ExtResource("1_fh7wk")
region = Rect2(32, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_2j2lx"]
atlas = ExtResource("1_fh7wk")
region = Rect2(48, 0, 16, 16)
[sub_resource type="SpriteFrames" id="SpriteFrames_rksv1"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_8yy4r")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_pm24u")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_keywi")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_2j2lx")
}],
"loop": true,
"name": &"default",
"speed": 10.0
}]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_fh7wk"]
size = Vector2(16, 16)
[node name="SpinningTurnBlock" type="Node2D"]
z_index = -1
script = ExtResource("2_aiilm")
[node name="Sprite" type="AnimatedSprite2D" parent="."]
sprite_frames = SubResource("SpriteFrames_rksv1")
autoplay = "default"
frame = 1
script = ExtResource("3_aiilm")
do_offset = false
metadata/_custom_type_script = "uid://caq1qiwmy0mox"
[node name="ResourceSetterNew" type="Node" parent="Sprite" node_paths=PackedStringArray("node_to_affect")]
script = ExtResource("4_pd7sm")
node_to_affect = NodePath("..")
property_name = "sprite_frames"
resource_json = ExtResource("5_gaxhp")
metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
[node name="Timer" type="Timer" parent="."]
wait_time = 5.0
one_shot = true
autostart = true
[node name="PlayerDetectionArea" type="Area2D" parent="."]
[node name="CollisionShape2D" type="CollisionShape2D" parent="PlayerDetectionArea"]
shape = SubResource("RectangleShape2D_fh7wk")
[connection signal="timeout" from="Timer" to="." method="on_timeout"]

View File

@@ -0,0 +1,94 @@
[gd_scene load_steps=15 format=3 uid="uid://bx23j813jg0bl"]
[ext_resource type="Texture2D" uid="uid://dnjx65qkbf1aq" path="res://Assets/Sprites/Blocks/SpringBlock.png" id="1_5ga5m"]
[ext_resource type="Script" uid="uid://cdlufmypvdtun" path="res://Scripts/Classes/Blocks/SpringBlock.gd" id="1_omsgc"]
[ext_resource type="Script" uid="uid://caq1qiwmy0mox" path="res://Scripts/Parts/BetterAnimatedSprite.gd" id="2_wexil"]
[ext_resource type="Script" uid="uid://cnheej0sxmoxg" path="res://Scripts/Parts/PlayerDetection.gd" id="3_wexil"]
[ext_resource type="Script" uid="uid://cq6f682453q6o" path="res://Scripts/Classes/Components/ResourceSetter.gd" id="4_a8j4k"]
[ext_resource type="Script" uid="uid://cmvlgsjmsk0v5" path="res://Scripts/Classes/Resources/ThemedResource.gd" id="5_3xejn"]
[ext_resource type="Script" uid="uid://d4a7yp6e55u8t" path="res://Scripts/Classes/Components/TrackJoint.gd" id="7_3xejn"]
[sub_resource type="AtlasTexture" id="AtlasTexture_omsgc"]
atlas = ExtResource("1_5ga5m")
region = Rect2(16, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_3aauc"]
atlas = ExtResource("1_5ga5m")
region = Rect2(0, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_a8j4k"]
atlas = ExtResource("1_5ga5m")
region = Rect2(0, 0, 16, 16)
[sub_resource type="SpriteFrames" id="SpriteFrames_3xejn"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_omsgc")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_3aauc")
}],
"loop": false,
"name": &"Bounce",
"speed": 15.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_a8j4k")
}],
"loop": true,
"name": &"Idle",
"speed": 5.0
}]
[sub_resource type="Resource" id="Resource_e7kaa"]
script = ExtResource("5_3xejn")
Overworld = SubResource("SpriteFrames_3xejn")
metadata/_custom_type_script = "uid://cmvlgsjmsk0v5"
[sub_resource type="RectangleShape2D" id="RectangleShape2D_e7kaa"]
size = Vector2(16, 8)
[sub_resource type="RectangleShape2D" id="RectangleShape2D_omsgc"]
size = Vector2(14, 8)
[node name="SpringBlock" type="AnimatableBody2D"]
collision_layer = 6
sync_to_physics = false
script = ExtResource("1_omsgc")
[node name="Sprite" type="AnimatedSprite2D" parent="."]
sprite_frames = SubResource("SpriteFrames_3xejn")
animation = &"Bounce"
autoplay = "Idle"
script = ExtResource("2_wexil")
do_offset = false
metadata/_custom_type_script = "uid://caq1qiwmy0mox"
[node name="ResourceSetter" type="Node" parent="Sprite" node_paths=PackedStringArray("node_to_affect")]
script = ExtResource("4_a8j4k")
node_to_affect = NodePath("..")
property_name = "sprite_frames"
themed_resource = SubResource("Resource_e7kaa")
metadata/_custom_type_script = "uid://cq6f682453q6o"
[node name="Collision" type="CollisionShape2D" parent="."]
position = Vector2(0, 4)
shape = SubResource("RectangleShape2D_e7kaa")
[node name="PlayerDetection" type="Area2D" parent="."]
position = Vector2(0, -4)
script = ExtResource("3_wexil")
metadata/_custom_type_script = "uid://cnheej0sxmoxg"
[node name="CollisionShape2D" type="CollisionShape2D" parent="PlayerDetection"]
shape = SubResource("RectangleShape2D_omsgc")
[node name="TrackJoint" type="Node" parent="."]
script = ExtResource("7_3xejn")
offset = Vector2(0, 0)
disable_physics = false
metadata/_custom_type_script = "uid://d4a7yp6e55u8t"
[connection signal="player_entered" from="PlayerDetection" to="." method="on_player_entered"]

View File

@@ -0,0 +1,55 @@
[gd_scene load_steps=9 format=3 uid="uid://b4al7s87fo1nd"]
[ext_resource type="PackedScene" uid="uid://bx23j813jg0bl" path="res://Scenes/Prefabs/Blocks/SpringBlock.tscn" id="1_uhtsl"]
[ext_resource type="Texture2D" uid="uid://bd25s0rlv8axh" path="res://Assets/Sprites/Blocks/SuperSpringBlock.png" id="2_wkxon"]
[ext_resource type="Script" uid="uid://cmvlgsjmsk0v5" path="res://Scripts/Classes/Resources/ThemedResource.gd" id="3_0fxaq"]
[sub_resource type="AtlasTexture" id="AtlasTexture_06t86"]
atlas = ExtResource("2_wkxon")
region = Rect2(16, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_kxegq"]
atlas = ExtResource("2_wkxon")
region = Rect2(0, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_1h38u"]
atlas = ExtResource("2_wkxon")
region = Rect2(0, 0, 16, 16)
[sub_resource type="SpriteFrames" id="SpriteFrames_nqm1f"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_06t86")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_kxegq")
}],
"loop": false,
"name": &"Bounce",
"speed": 15.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_1h38u")
}],
"loop": true,
"name": &"Idle",
"speed": 5.0
}]
[sub_resource type="Resource" id="Resource_it1ds"]
script = ExtResource("3_0fxaq")
Overworld = SubResource("SpriteFrames_nqm1f")
metadata/_custom_type_script = "uid://cmvlgsjmsk0v5"
[node name="SpringBlock" instance=ExtResource("1_uhtsl")]
is_super = true
[node name="Sprite" parent="." index="0"]
sprite_frames = SubResource("SpriteFrames_nqm1f")
frame = 1
frame_progress = 1.0
[node name="ResourceSetter" parent="Sprite" index="0"]
themed_resource = SubResource("Resource_it1ds")

View File

@@ -0,0 +1,126 @@
[gd_scene load_steps=17 format=3 uid="uid://d2ainv86lt68a"]
[ext_resource type="PackedScene" uid="uid://by6ndsjhlkmbt" path="res://Scenes/Prefabs/Blocks/BooRaceBlocks/BooOnOffBlock.tscn" id="1_qn0kk"]
[ext_resource type="Texture2D" uid="uid://cv27sth0k3amk" path="res://Assets/Sprites/Blocks/SwitchSpike.png" id="2_kmalu"]
[ext_resource type="JSON" path="res://Assets/Sprites/Blocks/SwitchSpikeBlock.json" id="3_gfl4j"]
[ext_resource type="Script" uid="uid://cnheej0sxmoxg" path="res://Scripts/Parts/PlayerDetection.gd" id="3_kmalu"]
[sub_resource type="AtlasTexture" id="AtlasTexture_m1hcn"]
atlas = ExtResource("2_kmalu")
region = Rect2(80, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_prw4m"]
atlas = ExtResource("2_kmalu")
region = Rect2(96, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_ieqkm"]
atlas = ExtResource("2_kmalu")
region = Rect2(112, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_y0v5j"]
atlas = ExtResource("2_kmalu")
region = Rect2(0, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_boqyf"]
atlas = ExtResource("2_kmalu")
region = Rect2(16, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_m8vhp"]
atlas = ExtResource("2_kmalu")
region = Rect2(32, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_yyfct"]
atlas = ExtResource("2_kmalu")
region = Rect2(48, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_tnmt2"]
atlas = ExtResource("2_kmalu")
region = Rect2(64, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_gfl4j"]
atlas = ExtResource("2_kmalu")
region = Rect2(0, 0, 16, 16)
[sub_resource type="SpriteFrames" id="SpriteFrames_cjipk"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_m1hcn")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_prw4m")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_ieqkm")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_y0v5j")
}],
"loop": false,
"name": &"Off",
"speed": 15.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_boqyf")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_m8vhp")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_yyfct")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_tnmt2")
}],
"loop": false,
"name": &"On",
"speed": 15.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_gfl4j")
}],
"loop": true,
"name": &"Rest",
"speed": 5.0
}]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_gfl4j"]
size = Vector2(17, 18)
[sub_resource type="RectangleShape2D" id="RectangleShape2D_fe1rr"]
size = Vector2(16, 16)
[node name="SwitchSpikeBlock" node_paths=PackedStringArray("hurtbox") instance=ExtResource("1_qn0kk")]
hurtbox = NodePath("PlayerHurtBox/CollisionShape2D")
[node name="Sprite" parent="." index="0"]
sprite_frames = SubResource("SpriteFrames_cjipk")
animation = &"Rest"
autoplay = "Rest"
[node name="ResourceSetter" parent="Sprite" index="0"]
resource_json = ExtResource("3_gfl4j")
[node name="Collision" parent="." index="1"]
visible = true
[node name="PlayerHurtBox" type="Area2D" parent="." index="3"]
script = ExtResource("3_kmalu")
metadata/_custom_type_script = "uid://cnheej0sxmoxg"
[node name="CollisionShape2D" type="CollisionShape2D" parent="PlayerHurtBox" index="0"]
shape = SubResource("RectangleShape2D_gfl4j")
disabled = true
[node name="StaticBody2D" type="StaticBody2D" parent="." index="4"]
[node name="StaticBody2D2" type="StaticBody2D" parent="." index="5"]
collision_layer = 6
collision_mask = 0
[node name="Collision" type="CollisionShape2D" parent="StaticBody2D2" index="0"]
shape = SubResource("RectangleShape2D_fe1rr")
[connection signal="player_entered" from="PlayerHurtBox" to="." method="damage_player"]

View File

@@ -0,0 +1,98 @@
[gd_scene load_steps=14 format=3 uid="uid://0q874wkbxcrr"]
[ext_resource type="PackedScene" uid="uid://d2ainv86lt68a" path="res://Scenes/Prefabs/Blocks/SwitchSpikeBlock.tscn" id="1_nuql5"]
[ext_resource type="Texture2D" uid="uid://cv27sth0k3amk" path="res://Assets/Sprites/Blocks/SwitchSpike.png" id="2_s2uey"]
[ext_resource type="JSON" path="res://Assets/Sprites/Blocks/SwitchSpikeBlockAlt.json" id="3_s2uey"]
[sub_resource type="AtlasTexture" id="AtlasTexture_k8y7p"]
atlas = ExtResource("2_s2uey")
region = Rect2(80, 16, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_yyfhm"]
atlas = ExtResource("2_s2uey")
region = Rect2(96, 16, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_jo8o0"]
atlas = ExtResource("2_s2uey")
region = Rect2(112, 16, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_kbjhk"]
atlas = ExtResource("2_s2uey")
region = Rect2(0, 16, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_aevfu"]
atlas = ExtResource("2_s2uey")
region = Rect2(16, 16, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_8cf4e"]
atlas = ExtResource("2_s2uey")
region = Rect2(32, 16, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_e6uvi"]
atlas = ExtResource("2_s2uey")
region = Rect2(48, 16, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_2f4s2"]
atlas = ExtResource("2_s2uey")
region = Rect2(64, 16, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_8lvdt"]
atlas = ExtResource("2_s2uey")
region = Rect2(64, 16, 16, 16)
[sub_resource type="SpriteFrames" id="SpriteFrames_twrdj"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_k8y7p")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_yyfhm")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_jo8o0")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_kbjhk")
}],
"loop": false,
"name": &"Off",
"speed": 15.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_aevfu")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_8cf4e")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_e6uvi")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_2f4s2")
}],
"loop": false,
"name": &"On",
"speed": 15.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_8lvdt")
}],
"loop": true,
"name": &"Rest",
"speed": 5.0
}]
[node name="SwitchSpikeBlock" instance=ExtResource("1_nuql5")]
active = true
[node name="Sprite" parent="." index="0"]
sprite_frames = SubResource("SpriteFrames_twrdj")
[node name="ResourceSetter" parent="Sprite" index="0"]
resource_json = ExtResource("3_s2uey")
[node name="CollisionShape2D" parent="PlayerHurtBox" index="0"]
disabled = false

View File

@@ -0,0 +1,97 @@
[gd_scene load_steps=15 format=3 uid="uid://cpsdyhprded5d"]
[ext_resource type="Script" uid="uid://cn8jml0dmf128" path="res://Scripts/Classes/Blocks/FallThroughBlock.gd" id="1_k7nc4"]
[ext_resource type="Script" uid="uid://caq1qiwmy0mox" path="res://Scripts/Parts/BetterAnimatedSprite.gd" id="3_aqge3"]
[ext_resource type="Script" uid="uid://cbal8ms2oe1ik" path="res://Scripts/Classes/Components/ResourceSetterNew.gd" id="3_mdw74"]
[ext_resource type="Script" uid="uid://cnheej0sxmoxg" path="res://Scripts/Parts/PlayerDetection.gd" id="4_6pcvn"]
[ext_resource type="JSON" path="res://Assets/Sprites/Blocks/TrickBlock.json" id="4_aqge3"]
[sub_resource type="CompressedTexture2D" id="CompressedTexture2D_hyhae"]
[sub_resource type="AtlasTexture" id="AtlasTexture_2ob4o"]
atlas = SubResource("CompressedTexture2D_hyhae")
region = Rect2(0, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_byvq0"]
atlas = SubResource("CompressedTexture2D_hyhae")
region = Rect2(48, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_w5se2"]
atlas = SubResource("CompressedTexture2D_hyhae")
region = Rect2(32, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_6idsv"]
atlas = SubResource("CompressedTexture2D_hyhae")
region = Rect2(16, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_1v6hd"]
atlas = SubResource("CompressedTexture2D_hyhae")
region = Rect2(0, 0, 16, 16)
[sub_resource type="SpriteFrames" id="SpriteFrames_7od47"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_2ob4o")
}],
"loop": true,
"name": &"Idle",
"speed": 5.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_byvq0")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_w5se2")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_6idsv")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_1v6hd")
}],
"loop": true,
"name": &"Turn",
"speed": 15.0
}]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_tjbwr"]
size = Vector2(16, 16)
[sub_resource type="RectangleShape2D" id="RectangleShape2D_e7ak7"]
size = Vector2(16, 16)
[node name="TrickBlock" type="StaticBody2D"]
collision_layer = 6
collision_mask = 0
script = ExtResource("1_k7nc4")
[node name="Sprite" type="AnimatedSprite2D" parent="."]
sprite_frames = SubResource("SpriteFrames_7od47")
animation = &"Turn"
autoplay = "Idle"
script = ExtResource("3_aqge3")
do_offset = false
metadata/_custom_type_script = "uid://caq1qiwmy0mox"
[node name="ResourceSetterNew" type="Node" parent="Sprite" node_paths=PackedStringArray("node_to_affect")]
script = ExtResource("3_mdw74")
node_to_affect = NodePath("..")
property_name = "sprite_frames"
resource_json = ExtResource("4_aqge3")
metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
[node name="Collision" type="CollisionShape2D" parent="."]
shape = SubResource("RectangleShape2D_tjbwr")
[node name="PlayerDetection" type="Area2D" parent="."]
script = ExtResource("4_6pcvn")
metadata/_custom_type_script = "uid://cnheej0sxmoxg"
[node name="Collision" type="CollisionShape2D" parent="PlayerDetection"]
position = Vector2(0, -2)
shape = SubResource("RectangleShape2D_e7ak7")
[connection signal="player_entered" from="PlayerDetection" to="." method="on_player_entered"]
[connection signal="player_exited" from="PlayerDetection" to="." method="on_player_exited"]

View File

@@ -0,0 +1,92 @@
[gd_scene load_steps=15 format=3 uid="uid://bn651dli8j2rj"]
[ext_resource type="Script" uid="uid://dm44kedpj4m80" path="res://Scripts/Classes/Blocks/TurnBlock.gd" id="1_keywi"]
[ext_resource type="Texture2D" uid="uid://btt618edhifoj" path="res://Assets/Sprites/Blocks/TurnBlock.png" id="2_2j2lx"]
[ext_resource type="PackedScene" uid="uid://fqeqexyd7j0j" path="res://Scenes/Prefabs/Particles/TurnBlockDestructionParticles.tscn" id="2_rlxbk"]
[ext_resource type="Script" uid="uid://cbal8ms2oe1ik" path="res://Scripts/Classes/Components/ResourceSetterNew.gd" id="3_wx1p4"]
[ext_resource type="JSON" path="res://Assets/Sprites/Blocks/TurnBlock.json" id="4_keywi"]
[ext_resource type="PackedScene" uid="uid://cijkvfkthetn5" path="res://Scenes/Parts/BlockAnimations.tscn" id="5_xbwt3"]
[ext_resource type="Script" uid="uid://ctfbuoxtnnl0q" path="res://Scripts/Classes/Components/EditorPropertyExposer.gd" id="6_2qcru"]
[ext_resource type="Script" uid="uid://d4a7yp6e55u8t" path="res://Scripts/Classes/Components/TrackJoint.gd" id="7_2j2lx"]
[sub_resource type="AtlasTexture" id="AtlasTexture_8yy4r"]
atlas = ExtResource("2_2j2lx")
region = Rect2(0, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_pm24u"]
atlas = ExtResource("2_2j2lx")
region = Rect2(16, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_keywi"]
atlas = ExtResource("2_2j2lx")
region = Rect2(32, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_2j2lx"]
atlas = ExtResource("2_2j2lx")
region = Rect2(48, 0, 16, 16)
[sub_resource type="SpriteFrames" id="SpriteFrames_rlxbk"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_8yy4r")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_pm24u")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_keywi")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_2j2lx")
}],
"loop": true,
"name": &"default",
"speed": 10.0
}]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_b3g5f"]
size = Vector2(16, 16)
[node name="TurnBlock" type="AnimatableBody2D" node_paths=PackedStringArray("visuals") groups=["Blocks"]]
z_index = -1
collision_layer = 6
collision_mask = 0
script = ExtResource("1_keywi")
visuals = NodePath("Sprite")
destruction_particle_scene = ExtResource("2_rlxbk")
metadata/_custom_type_script = "uid://b5ejlbl0vp1gm"
[node name="Sprite" type="AnimatedSprite2D" parent="."]
sprite_frames = SubResource("SpriteFrames_rlxbk")
speed_scale = 0.0
[node name="ResourceSetterNew" type="Node" parent="Sprite" node_paths=PackedStringArray("node_to_affect")]
script = ExtResource("3_wx1p4")
node_to_affect = NodePath("..")
property_name = "sprite_frames"
resource_json = ExtResource("4_keywi")
metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
[node name="Collision" type="CollisionShape2D" parent="."]
visible = false
shape = SubResource("RectangleShape2D_b3g5f")
[node name="BlockAnimations" parent="." instance=ExtResource("5_xbwt3")]
[node name="EditorPropertyExposer" type="Node" parent="."]
script = ExtResource("6_2qcru")
properties = Array[String](["item", "item_amount", "mushroom_if_small"])
filters = Dictionary[String, String]({
"item": "can_be_stored"
})
[node name="TrackJoint" type="Node" parent="."]
script = ExtResource("7_2j2lx")
offset = Vector2(0, 0)
metadata/_custom_type_script = "uid://d4a7yp6e55u8t"
[connection signal="player_block_hit" from="." to="." method="on_block_hit"]
[connection signal="player_block_hit" from="." to="BlockAnimations" method="bounce_block" unbinds=1]
[connection signal="shell_block_hit" from="." to="." method="on_shell_block_hit"]
[connection signal="shell_block_hit" from="." to="BlockAnimations" method="bounce_block" unbinds=1]

View File

@@ -0,0 +1,43 @@
[gd_scene load_steps=8 format=4 uid="uid://cw6ypkkhofyuq"]
[ext_resource type="Texture2D" uid="uid://cntkcqc74qp50" path="res://Assets/Sprites/Tilesets/Deco/OverworldDeco.png" id="1_l50eh"]
[ext_resource type="Script" uid="uid://cve2q420hiur1" path="res://Scripts/Parts/Tileset.gd" id="2_j65d4"]
[ext_resource type="Script" uid="uid://73oviwf6bbys" path="res://Scripts/Classes/Components/TilesetTextureSetter.gd" id="3_qfs4k"]
[ext_resource type="Script" uid="uid://cbal8ms2oe1ik" path="res://Scripts/Classes/Components/ResourceSetterNew.gd" id="4_qfs4k"]
[ext_resource type="JSON" path="res://Assets/Sprites/Tilesets/Deco/DecoTiles.json" id="5_x6td3"]
[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_3eywr"]
texture = ExtResource("1_l50eh")
0:0/0 = 0
1:0/0 = 0
2:0/0 = 0
3:0/0 = 0
4:0/0 = 0
0:1/0 = 0
1:1/0 = 0
2:1/0 = 0
3:1/0 = 0
4:1/0 = 0
[sub_resource type="TileSet" id="TileSet_b50pv"]
sources/0 = SubResource("TileSetAtlasSource_3eywr")
[node name="DecoTiles" type="TileMapLayer"]
z_index = -10
tile_map_data = PackedByteArray("AAD7////AAAAAAAAAAD8////AAABAAAAAAD9////AAABAAAAAAD+////AAACAAAAAAAaAP//AAAAAAAAAAAbAP//AAABAAAAAAAcAP//AAACAAAAAAAsAP//AAAAAAAAAAAtAP//AAABAAAAAAAuAP//AAABAAAAAAAvAP//AAACAAAAAABJAP//AAAAAAAAAABKAP//AAABAAAAAABLAP//AAACAAAAAABdAP//AAABAAAAAABeAP//AAACAAAAAABbAP//AAAAAAAAAABcAP//AAABAAAAAABoAP//AAACAAAAAABnAP//AAAAAAAAAAB6AP//AAAAAAAAAAB7AP//AAABAAAAAAB8AP//AAACAAAAAACOAP//AAABAAAAAACPAP//AAACAAAAAACMAP//AAAAAAAAAACNAP//AAABAAAAAACYAP//AAAAAAAAAACZAP//AAABAAAAAACpAP//AAAAAAAAAACqAP//AAABAAAAAACrAP//AAACAAAAAAAHAP//AAAAAAAAAAAIAP//AAACAAAAAAA=")
tile_set = SubResource("TileSet_b50pv")
script = ExtResource("2_j65d4")
[node name="TilesetTextureSetter" type="Node" parent="." node_paths=PackedStringArray("tile_map")]
script = ExtResource("3_qfs4k")
tile_map = NodePath("..")
metadata/_custom_type_script = "uid://73oviwf6bbys"
[node name="ResourceSetter" type="Node" parent="." node_paths=PackedStringArray("node_to_affect", "property_node")]
script = ExtResource("4_qfs4k")
node_to_affect = NodePath("../TilesetTextureSetter")
property_node = NodePath("..")
property_name = "texture"
mode = 1
resource_json = ExtResource("5_x6td3")
metadata/_custom_type_script = "uid://cbal8ms2oe1ik"

View File

@@ -0,0 +1,40 @@
[gd_scene load_steps=7 format=4 uid="uid://bch3ww1n42g7v"]
[ext_resource type="Texture2D" uid="uid://cnexuteg5rvye" path="res://Assets/Sprites/Tilesets/Deco/DecoTemplate.png" id="1_fb4vb"]
[ext_resource type="Script" uid="uid://73oviwf6bbys" path="res://Scripts/Classes/Components/TilesetTextureSetter.gd" id="2_fb4vb"]
[ext_resource type="Script" uid="uid://cbal8ms2oe1ik" path="res://Scripts/Classes/Components/ResourceSetterNew.gd" id="3_fb4vb"]
[ext_resource type="JSON" path="res://Assets/Sprites/Tilesets/Deco/DecoTiles.json" id="4_07uk3"]
[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_3eywr"]
texture = ExtResource("1_fb4vb")
0:0/0 = 0
1:0/0 = 0
2:0/0 = 0
3:0/0 = 0
4:0/0 = 0
0:1/0 = 0
1:1/0 = 0
2:1/0 = 0
3:1/0 = 0
4:1/0 = 0
[sub_resource type="TileSet" id="TileSet_b50pv"]
sources/0 = SubResource("TileSetAtlasSource_3eywr")
[node name="DecoTiles" type="TileMapLayer"]
z_index = -10
tile_map_data = PackedByteArray("AAD+////AAABAAEAAAD/////AAABAAEAAAAAAP//AAABAAEAAAABAP//AAABAAEAAAAZAP//AAABAAEAAAAuAP//AAABAAEAAAAvAP//AAABAAEAAAAwAP//AAABAAEAAAAxAP//AAABAAEAAABeAP//AAABAAEAAABfAP//AAABAAEAAABgAP//AAABAAEAAABhAP//AAABAAEAAAB2AP//AAABAAEAAAB3AP//AAABAAEAAACOAP//AAABAAEAAACPAP//AAABAAEAAACQAP//AAABAAEAAACRAP//AAABAAEAAACmAP//AAABAAEAAADBAP//AAABAAEAAAD7//7/AAADAAAAAAD7////AAADAAEAAAAHAP7/AAADAAAAAAAHAP//AAADAAEAAAAIAP7/AAADAAAAAAAIAP//AAADAAEAAAAYAP7/AAADAAAAAAAYAP//AAADAAEAAAArAP7/AAADAAAAAAArAP//AAADAAEAAAA3AP7/AAADAAAAAAA3AP//AAADAAEAAAA4AP7/AAADAAAAAAA4AP//AAADAAEAAABbAP7/AAADAAAAAABbAP//AAADAAEAAABnAP7/AAADAAAAAABnAP//AAADAAEAAABoAP7/AAADAAAAAABoAP//AAADAAEAAAB4AP7/AAADAAAAAACLAP7/AAADAAAAAACLAP//AAADAAEAAACXAP7/AAADAAAAAACXAP//AAADAAEAAACYAP7/AAADAAAAAACYAP//AAADAAEAAAC7AP7/AAADAAAAAAC7AP//AAADAAEAAACVAP//AAAAAAEAAACVAP3/AAAEAAAAAACVAP7/AAAEAAEAAACNAP3/AAAEAAAAAACNAP7/AAAEAAEAAACNAP//AAAAAAEAAABlAP3/AAAEAAAAAABlAP7/AAAEAAEAAABlAP//AAAAAAEAAABdAP3/AAAEAAAAAABdAP7/AAAEAAEAAABdAP//AAAAAAEAAABLAP3/AAAEAAAAAABLAP7/AAAEAAEAAABLAP//AAAAAAEAAAA1AP3/AAAEAAAAAAA1AP7/AAAEAAEAAAA1AP//AAAAAAEAAAAtAP3/AAAEAAAAAAAtAP7/AAAEAAEAAAAtAP//AAAAAAEAAAAbAP3/AAAEAAAAAAAbAP7/AAAEAAEAAAAbAP//AAAAAAEAAAAFAP3/AAAEAAAAAAAFAP7/AAAEAAEAAAAFAP//AAAAAAEAAAD9//3/AAAEAAAAAAD9//7/AAAEAAEAAAD9////AAAAAAEAAAB4AP//AAADAAEAAAA=")
tile_set = SubResource("TileSet_b50pv")
[node name="TilesetTextureSetter" type="Node" parent="." node_paths=PackedStringArray("tile_map")]
script = ExtResource("2_fb4vb")
tile_map = NodePath("..")
metadata/_custom_type_script = "uid://73oviwf6bbys"
[node name="ResourceSetter" type="Node" parent="." node_paths=PackedStringArray("node_to_affect")]
script = ExtResource("3_fb4vb")
node_to_affect = NodePath("../TilesetTextureSetter")
property_name = "texture"
mode = 1
resource_json = ExtResource("4_07uk3")
metadata/_custom_type_script = "uid://cbal8ms2oe1ik"

View File

@@ -0,0 +1,57 @@
[gd_scene load_steps=9 format=3 uid="uid://diqn7e5hqpbsk"]
[ext_resource type="Script" uid="uid://b5jrj8u7cx8id" path="res://Scripts/Parts/TilePropertyValue.gd" id="1_gida3"]
[ext_resource type="Texture2D" uid="uid://bnv2ocqgws3p7" path="res://Assets/Sprites/UI/Panel.png" id="2_6srr6"]
[ext_resource type="Texture2D" uid="uid://7qtdxl2cjxeh" path="res://Assets/Sprites/UI/Checkbox.png" id="3_qo1tt"]
[sub_resource type="CompressedTexture2D" id="CompressedTexture2D_n7jgg"]
[sub_resource type="StyleBoxTexture" id="StyleBoxTexture_0slfq"]
texture = ExtResource("2_6srr6")
texture_margin_left = 2.0
texture_margin_top = 2.0
texture_margin_right = 2.0
texture_margin_bottom = 2.0
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_n7jgg"]
[sub_resource type="AtlasTexture" id="AtlasTexture_gida3"]
atlas = ExtResource("3_qo1tt")
region = Rect2(16, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_6srr6"]
atlas = ExtResource("3_qo1tt")
region = Rect2(0, 0, 16, 16)
[node name="TilePropertyBOOL" type="HBoxContainer"]
script = ExtResource("1_gida3")
[node name="Label" type="Label" parent="."]
unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 3
text = "PROPERTY_NAME:"
uppercase = true
[node name="CheckBox" type="CheckBox" parent="."]
layout_mode = 2
size_flags_horizontal = 0
size_flags_vertical = 0
theme_override_icons/icon = SubResource("CompressedTexture2D_n7jgg")
theme_override_styles/normal = SubResource("StyleBoxTexture_0slfq")
theme_override_styles/pressed = SubResource("StyleBoxTexture_0slfq")
theme_override_styles/hover = SubResource("StyleBoxTexture_0slfq")
theme_override_styles/hover_pressed = SubResource("StyleBoxTexture_0slfq")
theme_override_styles/disabled = SubResource("StyleBoxTexture_0slfq")
theme_override_styles/focus = SubResource("StyleBoxEmpty_n7jgg")
theme_override_icons/checked = SubResource("AtlasTexture_gida3")
theme_override_icons/unchecked = SubResource("AtlasTexture_6srr6")
theme_override_icons/radio_checked = SubResource("CompressedTexture2D_n7jgg")
theme_override_icons/radio_unchecked = SubResource("CompressedTexture2D_n7jgg")
theme_override_icons/checked_disabled = SubResource("CompressedTexture2D_n7jgg")
theme_override_icons/unchecked_disabled = SubResource("CompressedTexture2D_n7jgg")
theme_override_icons/radio_checked_disabled = SubResource("CompressedTexture2D_n7jgg")
theme_override_icons/radio_unchecked_disabled = SubResource("CompressedTexture2D_n7jgg")
[connection signal="start_value_changed" from="." to="CheckBox" method="set_pressed_no_signal"]
[connection signal="toggled" from="CheckBox" to="." method="set_value"]

View File

@@ -0,0 +1,35 @@
[gd_scene load_steps=3 format=3 uid="uid://87lcnsa0epi1"]
[ext_resource type="Script" uid="uid://codql1f5eca56" path="res://Scripts/Classes/Editor/OptionButtonThatIsntFuckingBlurry.gd" id="1_r12ps"]
[sub_resource type="GDScript" id="GDScript_dvo62"]
script/source = "extends TilePropertyContainer
func _ready() -> void:
$Label.text = tile_property_name.replace(\"_\", \" \")
for i in values:
$OptionButton.add_item(values[i].to_upper(), i)
"
[node name="TilePropertyEnum" type="HBoxContainer"]
custom_minimum_size = Vector2(0, 24)
offset_right = 145.0
offset_bottom = 24.0
script = SubResource("GDScript_dvo62")
[node name="Label" type="Label" parent="."]
unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 3
text = "PROPERTY_NAME:"
uppercase = true
[node name="OptionButton" type="OptionButton" parent="."]
custom_minimum_size = Vector2(64, 0)
layout_mode = 2
size_flags_horizontal = 3
script = ExtResource("1_r12ps")
metadata/_custom_type_script = "uid://codql1f5eca56"
[connection signal="start_value_changed" from="." to="OptionButton" method="select"]
[connection signal="item_selected" from="OptionButton" to="." method="set_value"]

View File

@@ -0,0 +1,49 @@
[gd_scene load_steps=2 format=3 uid="uid://4pi0tdru3c4v"]
[sub_resource type="GDScript" id="GDScript_ok74a"]
script/source = "extends TilePropertyContainer
func _ready() -> void:
%Label.text = (tile_property_name).replace(\"_\", \" \") + \":\"
$HSlider.min_value = min_value
$HSlider.step = property_step
$HSlider.max_value = max_value
func _process(_delta: float) -> void:
%Value.text = str(int($HSlider.value))
"
[node name="TilePropertyIntRange" type="HBoxContainer"]
anchors_preset = 10
anchor_right = 1.0
offset_bottom = 16.0
grow_horizontal = 2
script = SubResource("GDScript_ok74a")
[node name="Label" type="Label" parent="."]
unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 2
text = "PROPERTY_NAME:"
uppercase = true
[node name="HSlider" type="HSlider" parent="."]
unique_name_in_owner = true
custom_minimum_size = Vector2(96, 0)
layout_mode = 2
size_flags_horizontal = 10
[node name="Value" type="Label" parent="HSlider"]
unique_name_in_owner = true
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
text = "0"
horizontal_alignment = 1
vertical_alignment = 1
[connection signal="start_value_changed" from="." to="HSlider" method="set_value_no_signal"]
[connection signal="value_changed" from="HSlider" to="." method="set_value"]

View File

@@ -0,0 +1,39 @@
[gd_scene load_steps=2 format=3 uid="uid://dse5pwhodrqcr"]
[sub_resource type="GDScript" id="GDScript_ok74a"]
script/source = "extends TilePropertyContainer
func _ready() -> void:
%Label.text = (tile_property_name).replace(\"_\", \" \") + \":\"
$HSlider.min_value = min_value
$HSlider.step = property_step
$HSlider.max_value = max_value
func _process(_delta: float) -> void:
%Value.text = str(int($HSlider.value))
"
[node name="TilePropertyIntRange" type="HBoxContainer"]
anchors_preset = 10
anchor_right = 1.0
offset_bottom = 16.0
grow_horizontal = 2
script = SubResource("GDScript_ok74a")
[node name="Label" type="Label" parent="."]
unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 2
text = "PROPERTY_NAME:"
uppercase = true
[node name="HSlider" type="SpinBox" parent="."]
layout_mode = 2
[node name="Value" type="Label" parent="."]
unique_name_in_owner = true
visible = false
layout_mode = 2
[connection signal="start_value_changed" from="." to="HSlider" method="set_value_no_signal"]
[connection signal="value_changed" from="HSlider" to="." method="set_value"]

View File

@@ -0,0 +1,52 @@
[gd_scene load_steps=6 format=3 uid="uid://clfxxcxk3fobh"]
[ext_resource type="Script" uid="uid://c1jo8djcruqbf" path="res://Scripts/Parts/TilePropertySceneRef.gd" id="1_p4kuk"]
[ext_resource type="Texture2D" uid="uid://bnv2ocqgws3p7" path="res://Assets/Sprites/UI/Panel.png" id="2_xqybm"]
[ext_resource type="Script" uid="uid://cbal8ms2oe1ik" path="res://Scripts/Classes/Components/ResourceSetterNew.gd" id="3_v8h6y"]
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_p4kuk"]
[sub_resource type="StyleBoxTexture" id="StyleBoxTexture_v8h6y"]
texture = ExtResource("2_xqybm")
texture_margin_left = 2.0
texture_margin_top = 2.0
texture_margin_right = 2.0
texture_margin_bottom = 2.0
[node name="TilePropertySCENE" type="HBoxContainer"]
script = ExtResource("1_p4kuk")
[node name="Label" type="Label" parent="."]
unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 0
text = "PROPERTY_NAME:"
uppercase = true
[node name="SceneName" type="Label" parent="."]
unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 0
text = "PROPERTY_NAME:"
uppercase = true
[node name="Button" type="Button" parent="."]
custom_minimum_size = Vector2(16, 0)
layout_mode = 2
size_flags_horizontal = 10
theme_override_colors/font_color = Color(1, 1, 1, 1)
theme_override_styles/focus = SubResource("StyleBoxEmpty_p4kuk")
theme_override_styles/disabled = SubResource("StyleBoxTexture_v8h6y")
theme_override_styles/hover = SubResource("StyleBoxTexture_v8h6y")
theme_override_styles/pressed = SubResource("StyleBoxTexture_v8h6y")
theme_override_styles/normal = SubResource("StyleBoxTexture_v8h6y")
text = "+"
[node name="ResourceSetterNew" type="Node" parent="."]
script = ExtResource("3_v8h6y")
property_name = "texture"
mode = 1
use_cache = false
metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
[connection signal="pressed" from="Button" to="." method="open_tile_selection_menu"]

View File

@@ -0,0 +1,153 @@
[gd_scene load_steps=8 format=3 uid="uid://l0lulnbn7v6b"]
[ext_resource type="Script" uid="uid://dq6c5tah580o" path="res://Scripts/Classes/Editor/TilePropertyString.gd" id="1_yptip"]
[ext_resource type="StyleBox" uid="uid://comkghpj0djcl" path="res://Resources/UI/Panel.tres" id="2_4ea2j"]
[ext_resource type="StyleBox" uid="uid://btw30ed0dg4bt" path="res://Resources/UI/Tab.tres" id="3_yptip"]
[ext_resource type="Script" uid="uid://dja6281w30iv0" path="res://Scripts/UI/TextValidator.gd" id="4_ibhoq"]
[sub_resource type="StyleBoxLine" id="StyleBoxLine_yptip"]
color = Color(1, 1, 1, 1)
[sub_resource type="FontFile" id="FontFile_yptip"]
cache/0/16/0/ascent = 0.0
cache/0/16/0/descent = 0.0
cache/0/16/0/underline_position = 0.0
cache/0/16/0/underline_thickness = 0.0
cache/0/16/0/scale = 1.0
cache/0/15/0/ascent = 0.0
cache/0/15/0/descent = 0.0
cache/0/15/0/underline_position = 0.0
cache/0/15/0/underline_thickness = 0.0
cache/0/15/0/scale = 1.0
cache/0/14/0/ascent = 0.0
cache/0/14/0/descent = 0.0
cache/0/14/0/underline_position = 0.0
cache/0/14/0/underline_thickness = 0.0
cache/0/14/0/scale = 1.0
cache/0/13/0/ascent = 0.0
cache/0/13/0/descent = 0.0
cache/0/13/0/underline_position = 0.0
cache/0/13/0/underline_thickness = 0.0
cache/0/13/0/scale = 1.0
cache/0/12/0/ascent = 0.0
cache/0/12/0/descent = 0.0
cache/0/12/0/underline_position = 0.0
cache/0/12/0/underline_thickness = 0.0
cache/0/12/0/scale = 1.0
cache/0/11/0/ascent = 0.0
cache/0/11/0/descent = 0.0
cache/0/11/0/underline_position = 0.0
cache/0/11/0/underline_thickness = 0.0
cache/0/11/0/scale = 1.0
cache/0/10/0/ascent = 0.0
cache/0/10/0/descent = 0.0
cache/0/10/0/underline_position = 0.0
cache/0/10/0/underline_thickness = 0.0
cache/0/10/0/scale = 1.0
cache/0/9/0/ascent = 0.0
cache/0/9/0/descent = 0.0
cache/0/9/0/underline_position = 0.0
cache/0/9/0/underline_thickness = 0.0
cache/0/9/0/scale = 1.0
cache/0/8/0/ascent = 0.0
cache/0/8/0/descent = 0.0
cache/0/8/0/underline_position = 0.0
cache/0/8/0/underline_thickness = 0.0
cache/0/8/0/scale = 1.0
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_yptip"]
bg_color = Color(0.09620471, 0.09620475, 0.09620468, 1)
border_width_left = 1
border_width_top = 1
border_width_right = 1
border_width_bottom = 1
border_color = Color(1, 1, 1, 1)
expand_margin_left = 1.0
expand_margin_top = 1.0
expand_margin_right = 1.0
expand_margin_bottom = 1.0
[node name="TilePropertyBOOL" type="HBoxContainer"]
offset_right = 184.0
offset_bottom = 16.0
script = ExtResource("1_yptip")
tile_property_name = "text"
[node name="Label" type="Label" parent="."]
unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 3
text = "PROPERTY_NAME:"
uppercase = true
[node name="Value" type="Label" parent="."]
unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 3
text = "aadadadawsdad"
text_overrun_behavior = 3
uppercase = true
[node name="Button" type="Button" parent="."]
layout_mode = 2
text = "…"
[node name="CanvasLayer" type="CanvasLayer" parent="."]
visible = false
[node name="Panel" type="PanelContainer" parent="CanvasLayer"]
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = -119.0
offset_top = -93.0
offset_right = 119.0
offset_bottom = 93.0
grow_horizontal = 2
grow_vertical = 2
theme_override_styles/panel = ExtResource("2_4ea2j")
[node name="VBoxContainer" type="VBoxContainer" parent="CanvasLayer/Panel"]
layout_mode = 2
[node name="Label" type="Label" parent="CanvasLayer/Panel/VBoxContainer"]
layout_mode = 2
size_flags_horizontal = 4
text = "EDIT TEXT"
[node name="HSeparator" type="HSeparator" parent="CanvasLayer/Panel/VBoxContainer/Label"]
layout_mode = 1
anchors_preset = 12
anchor_top = 1.0
anchor_right = 1.0
anchor_bottom = 1.0
offset_top = -4.0
grow_horizontal = 2
grow_vertical = 0
theme_override_styles/separator = SubResource("StyleBoxLine_yptip")
[node name="TextEdit" type="TextEdit" parent="CanvasLayer/Panel/VBoxContainer"]
layout_mode = 2
size_flags_vertical = 3
theme_override_fonts/font = SubResource("FontFile_yptip")
theme_override_font_sizes/font_size = 12
theme_override_styles/normal = SubResource("StyleBoxFlat_yptip")
theme_override_styles/focus = SubResource("StyleBoxFlat_yptip")
context_menu_enabled = false
emoji_menu_enabled = false
caret_blink = true
[node name="Button" type="Button" parent="CanvasLayer/Panel/VBoxContainer"]
layout_mode = 2
theme_override_styles/normal = ExtResource("3_yptip")
text = "SUBMIT"
[node name="TextValidator" type="Node" parent="."]
script = ExtResource("4_ibhoq")
metadata/_custom_type_script = "uid://dja6281w30iv0"
[connection signal="start_value_changed" from="." to="CanvasLayer/Panel/VBoxContainer/TextEdit" method="set_text"]
[connection signal="pressed" from="Button" to="." method="open_menu"]
[connection signal="pressed" from="CanvasLayer/Panel/VBoxContainer/Button" to="." method="on_pressed"]

View File

@@ -0,0 +1,19 @@
[gd_scene load_steps=2 format=3 uid="uid://byv4sv3cayrmo"]
[ext_resource type="Script" uid="uid://ben0fq5kf141g" path="res://Scripts/Parts/TilePropertyTrackPath.gd" id="1_hlygm"]
[node name="TilePropertyTrackPath" type="HBoxContainer"]
script = ExtResource("1_hlygm")
[node name="Label" type="Label" parent="."]
unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 3
text = "PROPERTY_NAME:"
uppercase = true
[node name="Button" type="Button" parent="."]
layout_mode = 2
text = "EDIT"
[connection signal="pressed" from="Button" to="." method="on_pressed"]

View File

@@ -0,0 +1,104 @@
[gd_scene load_steps=9 format=3 uid="uid://knfs0rx7n1ry"]
[ext_resource type="Script" uid="uid://dx0yj4sc1lnpu" path="res://Scripts/Classes/Editor/EditorTileSelector.gd" id="1_ecw13"]
[ext_resource type="Script" uid="uid://cbal8ms2oe1ik" path="res://Scripts/Classes/Components/ResourceSetterNew.gd" id="3_bh0ve"]
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_irc6t"]
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_ru7c4"]
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_xy0d6"]
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_bh0ve"]
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_ecw13"]
bg_color = Color(0, 0, 0, 1)
draw_center = false
border_width_left = 1
border_width_top = 1
border_width_right = 1
border_width_bottom = 1
border_color = Color(0, 1, 0, 1)
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_xy0d6"]
bg_color = Color(0, 0, 0, 0.580392)
[node name="EditorTileSelector" type="Control"]
custom_minimum_size = Vector2(16, 16)
layout_mode = 3
anchors_preset = 0
mouse_default_cursor_shape = 2
script = ExtResource("1_ecw13")
[node name="Button" type="Button" parent="."]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
mouse_default_cursor_shape = 2
theme_override_styles/normal = SubResource("StyleBoxEmpty_irc6t")
theme_override_styles/pressed = SubResource("StyleBoxEmpty_ru7c4")
theme_override_styles/hover = SubResource("StyleBoxEmpty_xy0d6")
theme_override_styles/disabled = SubResource("StyleBoxEmpty_bh0ve")
theme_override_styles/focus = SubResource("StyleBoxFlat_ecw13")
[node name="Icon" type="NinePatchRect" parent="Button"]
unique_name_in_owner = true
show_behind_parent = true
layout_mode = 0
offset_right = 16.0
offset_bottom = 16.0
[node name="SecondaryIcon" type="NinePatchRect" parent="Button/Icon"]
unique_name_in_owner = true
layout_mode = 0
offset_right = 16.0
offset_bottom = 16.0
[node name="ResourceSetterNew" type="Node" parent="." node_paths=PackedStringArray("node_to_affect")]
script = ExtResource("3_bh0ve")
node_to_affect = NodePath("../Button/Icon")
property_name = "texture"
mode = 1
use_cache = false
metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
[node name="ResourceSetterNew2" type="Node" parent="." node_paths=PackedStringArray("node_to_affect")]
script = ExtResource("3_bh0ve")
node_to_affect = NodePath("../Button/Icon/SecondaryIcon")
property_name = "texture"
mode = 1
use_cache = false
metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
[node name="CanvasLayer" type="CanvasLayer" parent="."]
[node name="NamePanel" type="Node2D" parent="CanvasLayer"]
unique_name_in_owner = true
visible = false
[node name="Panel" type="PanelContainer" parent="CanvasLayer/NamePanel"]
unique_name_in_owner = true
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_top = -8.0
offset_right = 1.0
offset_bottom = 8.0
grow_horizontal = 2
grow_vertical = 2
mouse_filter = 2
theme_override_styles/panel = SubResource("StyleBoxFlat_xy0d6")
[node name="NameLabel" type="Label" parent="CanvasLayer/NamePanel/Panel"]
unique_name_in_owner = true
layout_mode = 2
uppercase = true
[connection signal="mouse_entered" from="Button" to="." method="on_mouse_entered"]
[connection signal="mouse_exited" from="Button" to="." method="on_mouse_exited"]
[connection signal="pressed" from="Button" to="." method="on_pressed"]

View File

@@ -0,0 +1,123 @@
[gd_scene load_steps=18 format=3 uid="uid://byu7xm153ktle"]
[ext_resource type="Script" uid="uid://dkg8usmlrm1d3" path="res://Scripts/Classes/Entities/Enemies/Barrel.gd" id="1_dkmpo"]
[ext_resource type="Texture2D" uid="uid://t6lvjxubql7l" path="res://Assets/Sprites/Enemies/Barrel.png" id="2_dkmpo"]
[ext_resource type="Script" uid="uid://caq1qiwmy0mox" path="res://Scripts/Parts/BetterAnimatedSprite.gd" id="3_7nplu"]
[ext_resource type="Script" uid="uid://dlq6o2rg1x7in" path="res://Scripts/Classes/Components/BasicEnemyMovement.gd" id="4_8jya4"]
[ext_resource type="Script" uid="uid://cbal8ms2oe1ik" path="res://Scripts/Classes/Components/ResourceSetterNew.gd" id="4_m378g"]
[ext_resource type="Script" uid="uid://chj8hu207lrh" path="res://Scripts/Classes/Components/EnemyPlayerDetection.gd" id="4_ynq8o"]
[ext_resource type="JSON" path="res://Assets/Sprites/Enemies/Barrel.json" id="5_momh1"]
[ext_resource type="Script" uid="uid://5octqlf4ohel" path="res://Scripts/Classes/Components/ScoreNoteSpawner.gd" id="8_m378g"]
[ext_resource type="Script" uid="uid://ba18grqjixded" path="res://Scripts/Classes/Components/ExplosionDetection.gd" id="9_momh1"]
[ext_resource type="Script" uid="uid://bbww34oiexbx2" path="res://Scripts/Classes/Components/ShellDetection.gd" id="10_fyuy0"]
[ext_resource type="Script" uid="uid://cmg61722ktg2m" path="res://Scripts/Classes/Components/BlockBouncingDetection.gd" id="11_y4k56"]
[ext_resource type="Script" uid="uid://dkjpfs3sm3go3" path="res://Scripts/Classes/Components/BlockHitter.gd" id="12_d7wml"]
[sub_resource type="AtlasTexture" id="AtlasTexture_fyuy0"]
atlas = ExtResource("2_dkmpo")
region = Rect2(0, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_y4k56"]
atlas = ExtResource("2_dkmpo")
region = Rect2(16, 0, 16, 16)
[sub_resource type="SpriteFrames" id="SpriteFrames_d7wml"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_fyuy0")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_y4k56")
}],
"loop": true,
"name": &"default",
"speed": 15.0
}]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_7nplu"]
size = Vector2(8, 8)
[sub_resource type="RectangleShape2D" id="RectangleShape2D_m378g"]
size = Vector2(9, 8)
[node name="Barrel" type="CharacterBody2D" node_paths=PackedStringArray("on_screen_enabler", "score_note_adder") groups=["Enemies"]]
collision_layer = 16
collision_mask = 18
floor_constant_speed = true
floor_max_angle = 1.55334
floor_snap_length = 4.0
script = ExtResource("1_dkmpo")
on_screen_enabler = NodePath("VisibleOnScreenEnabler2D")
score_note_adder = NodePath("ScoreNoteSpawner")
metadata/_custom_type_script = "uid://bpydbpyjk1mt4"
[node name="Sprite" type="AnimatedSprite2D" parent="."]
position = Vector2(0, -8)
sprite_frames = SubResource("SpriteFrames_d7wml")
autoplay = "default"
frame_progress = 0.16310313
script = ExtResource("3_7nplu")
metadata/_custom_type_script = "uid://caq1qiwmy0mox"
[node name="ResourceSetterNew" type="Node" parent="Sprite" node_paths=PackedStringArray("node_to_affect")]
script = ExtResource("4_m378g")
node_to_affect = NodePath("..")
property_name = "sprite_frames"
resource_json = ExtResource("5_momh1")
metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
[node name="VisibleOnScreenEnabler2D" type="VisibleOnScreenEnabler2D" parent="."]
self_modulate = Color(1, 1, 1, 0)
position = Vector2(0, -8)
[node name="Collision" type="CollisionShape2D" parent="."]
position = Vector2(0, -4)
shape = SubResource("RectangleShape2D_7nplu")
[node name="Hitbox" type="Area2D" parent="."]
collision_mask = 5
[node name="CollisionShape2D" type="CollisionShape2D" parent="Hitbox"]
position = Vector2(-0.5, -8)
shape = SubResource("RectangleShape2D_m378g")
[node name="EnemyPlayerDetection" type="Node" parent="." node_paths=PackedStringArray("hitbox")]
script = ExtResource("4_ynq8o")
hitbox = NodePath("../Hitbox")
metadata/_custom_type_script = "uid://chj8hu207lrh"
[node name="BasicEnemyMovement" type="Node" parent="."]
script = ExtResource("4_8jya4")
metadata/_custom_type_script = "uid://dlq6o2rg1x7in"
[node name="ScoreNoteSpawner" type="Node" parent="."]
script = ExtResource("8_m378g")
metadata/_custom_type_script = "uid://5octqlf4ohel"
[node name="ExplosionDetection" type="Node" parent="." node_paths=PackedStringArray("hitbox")]
script = ExtResource("9_momh1")
hitbox = NodePath("../Hitbox")
metadata/_custom_type_script = "uid://ba18grqjixded"
[node name="ShellDetection" type="Node" parent="." node_paths=PackedStringArray("hitbox")]
script = ExtResource("10_fyuy0")
hitbox = NodePath("../Hitbox")
metadata/_custom_type_script = "uid://bbww34oiexbx2"
[node name="BlockBouncingDetection" type="Node" parent="."]
script = ExtResource("11_y4k56")
metadata/_custom_type_script = "uid://cmg61722ktg2m"
[node name="BlockHitter" type="Node" parent="." node_paths=PackedStringArray("hitbox")]
script = ExtResource("12_d7wml")
hitbox = NodePath("../Hitbox")
[connection signal="invincible_player_hit" from="EnemyPlayerDetection" to="ScoreNoteSpawner" method="spawn_note" binds= [200]]
[connection signal="invincible_player_hit" from="EnemyPlayerDetection" to="." method="destroy" unbinds=1]
[connection signal="player_hit" from="EnemyPlayerDetection" to="." method="damage_player"]
[connection signal="player_stomped_on" from="EnemyPlayerDetection" to="." method="damage_player"]
[connection signal="explosion_entered" from="ExplosionDetection" to="." method="die_from_object"]
[connection signal="explosion_entered" from="ExplosionDetection" to="ScoreNoteSpawner" method="spawn_note" binds= [200]]
[connection signal="moving_shell_entered" from="ShellDetection" to="." method="die_from_object"]
[connection signal="block_bounced" from="BlockBouncingDetection" to="." method="bounce_up" unbinds=1]

View File

@@ -0,0 +1,113 @@
[gd_scene load_steps=16 format=3 uid="uid://b6drci0vml1as"]
[ext_resource type="Script" uid="uid://coocdv3t4548x" path="res://Scripts/Classes/Entities/Enemies/Blooper.gd" id="1_qryyi"]
[ext_resource type="Script" uid="uid://cbal8ms2oe1ik" path="res://Scripts/Classes/Components/ResourceSetterNew.gd" id="3_6d25s"]
[ext_resource type="Script" uid="uid://caq1qiwmy0mox" path="res://Scripts/Parts/BetterAnimatedSprite.gd" id="3_vrg07"]
[ext_resource type="Texture2D" uid="uid://c25807pd3b6fh" path="res://Assets/Sprites/Enemies/Blooper.png" id="3_xxfro"]
[ext_resource type="Script" uid="uid://chj8hu207lrh" path="res://Scripts/Classes/Components/EnemyPlayerDetection.gd" id="4_n7b35"]
[ext_resource type="JSON" path="res://Assets/Sprites/Enemies/Blooper.json" id="4_vrg07"]
[ext_resource type="Script" uid="uid://dri2d5jtu0fbq" path="res://Scripts/Classes/Components/FireballDetection.gd" id="5_aukyh"]
[ext_resource type="Script" uid="uid://c3gg32ivrlq8n" path="res://Scripts/Classes/Components/GibSpawner.gd" id="6_mpdyb"]
[ext_resource type="Script" uid="uid://5octqlf4ohel" path="res://Scripts/Classes/Components/ScoreNoteSpawner.gd" id="7_mpdyb"]
[ext_resource type="Script" uid="uid://d4a7yp6e55u8t" path="res://Scripts/Classes/Components/TrackJoint.gd" id="10_e03yh"]
[ext_resource type="Script" uid="uid://ba18grqjixded" path="res://Scripts/Classes/Components/ExplosionDetection.gd" id="11_2xaie"]
[sub_resource type="AtlasTexture" id="AtlasTexture_aukyh"]
atlas = ExtResource("3_xxfro")
region = Rect2(16, 0, 16, 24)
[sub_resource type="AtlasTexture" id="AtlasTexture_mpdyb"]
atlas = ExtResource("3_xxfro")
region = Rect2(0, 0, 16, 24)
[sub_resource type="SpriteFrames" id="SpriteFrames_6d25s"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_aukyh")
}],
"loop": true,
"name": &"Fall",
"speed": 5.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_mpdyb")
}],
"loop": true,
"name": &"Rise",
"speed": 5.0
}]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_qryyi"]
size = Vector2(8, 8)
[node name="Blooper" type="CharacterBody2D" node_paths=PackedStringArray("on_screen_enabler", "score_note_adder") groups=["Enemies"]]
script = ExtResource("1_qryyi")
on_screen_enabler = NodePath("VisibleOnScreenEnabler2D")
score_note_adder = NodePath("ScoreNoteSpawner")
metadata/_custom_type_script = "uid://bpydbpyjk1mt4"
[node name="Sprite" type="AnimatedSprite2D" parent="."]
sprite_frames = SubResource("SpriteFrames_6d25s")
animation = &"Rise"
autoplay = "Fall"
script = ExtResource("3_vrg07")
do_offset = false
metadata/_custom_type_script = "uid://caq1qiwmy0mox"
[node name="ResourceSetterNew" type="Node" parent="Sprite" node_paths=PackedStringArray("node_to_affect")]
script = ExtResource("3_6d25s")
node_to_affect = NodePath("..")
property_name = "sprite_frames"
resource_json = ExtResource("4_vrg07")
metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
[node name="Hitbox" type="Area2D" parent="."]
position = Vector2(0, 4)
[node name="CollisionShape2D" type="CollisionShape2D" parent="Hitbox"]
position = Vector2(0, -5)
shape = SubResource("RectangleShape2D_qryyi")
[node name="EnemyPlayerDetection" type="Node" parent="." node_paths=PackedStringArray("hitbox")]
script = ExtResource("4_n7b35")
hitbox = NodePath("../Hitbox")
metadata/_custom_type_script = "uid://chj8hu207lrh"
[node name="FireballDetection" type="Node" parent="." node_paths=PackedStringArray("hitbox")]
script = ExtResource("5_aukyh")
hitbox = NodePath("../Hitbox")
metadata/_custom_type_script = "uid://dri2d5jtu0fbq"
[node name="GibSpawner" type="Node" parent="." node_paths=PackedStringArray("visuals")]
script = ExtResource("6_mpdyb")
visuals = NodePath("../Sprite")
metadata/_custom_type_script = "uid://c3gg32ivrlq8n"
[node name="VisibleOnScreenEnabler2D" type="VisibleOnScreenEnabler2D" parent="."]
[node name="ScoreNoteSpawner" type="Node" parent="."]
script = ExtResource("7_mpdyb")
add_score = true
metadata/_custom_type_script = "uid://5octqlf4ohel"
[node name="TrackJoint" type="Node" parent="."]
script = ExtResource("10_e03yh")
offset = Vector2(0, 0)
metadata/_custom_type_script = "uid://d4a7yp6e55u8t"
[node name="ExplosionDetection" type="Node" parent="." node_paths=PackedStringArray("hitbox")]
script = ExtResource("11_2xaie")
hitbox = NodePath("../Hitbox")
metadata/_custom_type_script = "uid://ba18grqjixded"
[connection signal="killed" from="." to="GibSpawner" method="summon_gib"]
[connection signal="invincible_player_hit" from="EnemyPlayerDetection" to="." method="die_from_object"]
[connection signal="invincible_player_hit" from="EnemyPlayerDetection" to="ScoreNoteSpawner" method="spawn_note" binds= [200]]
[connection signal="player_hit" from="EnemyPlayerDetection" to="." method="damage_player"]
[connection signal="player_stomped_on" from="EnemyPlayerDetection" to="GibSpawner" method="stomp_die"]
[connection signal="fireball_hit" from="FireballDetection" to="." method="die_from_object"]
[connection signal="fireball_hit" from="FireballDetection" to="ScoreNoteSpawner" method="spawn_note" binds= [200]]
[connection signal="explosion_entered" from="ExplosionDetection" to="." method="die_from_object"]
[connection signal="explosion_entered" from="ExplosionDetection" to="ScoreNoteSpawner" method="spawn_note" binds= [200]]

View File

@@ -0,0 +1,201 @@
[gd_scene load_steps=26 format=3 uid="uid://b07v70sioegsj"]
[ext_resource type="Script" uid="uid://br4ltfynb4eqr" path="res://Scripts/Classes/Entities/Enemies/BobOmb.gd" id="1_v5mno"]
[ext_resource type="Texture2D" uid="uid://c7g10h3o7nevn" path="res://Assets/Sprites/Enemies/BobOmb.png" id="2_3rlau"]
[ext_resource type="PackedScene" uid="uid://d075e1520ngrv" path="res://Scenes/Prefabs/Entities/Objects/BobOmbHeld.tscn" id="2_fur3j"]
[ext_resource type="Script" uid="uid://caq1qiwmy0mox" path="res://Scripts/Parts/BetterAnimatedSprite.gd" id="3_b6iml"]
[ext_resource type="Script" uid="uid://cbal8ms2oe1ik" path="res://Scripts/Classes/Components/ResourceSetterNew.gd" id="4_6tynh"]
[ext_resource type="Script" uid="uid://5octqlf4ohel" path="res://Scripts/Classes/Components/ScoreNoteSpawner.gd" id="4_afkce"]
[ext_resource type="Script" uid="uid://dri2d5jtu0fbq" path="res://Scripts/Classes/Components/FireballDetection.gd" id="5_vjas1"]
[ext_resource type="JSON" path="res://Assets/Sprites/Enemies/BobOmb.json" id="5_xehcv"]
[ext_resource type="Script" uid="uid://chj8hu207lrh" path="res://Scripts/Classes/Components/EnemyPlayerDetection.gd" id="6_v5mno"]
[ext_resource type="Script" uid="uid://cmg61722ktg2m" path="res://Scripts/Classes/Components/BlockBouncingDetection.gd" id="7_rol8r"]
[ext_resource type="Script" uid="uid://bbww34oiexbx2" path="res://Scripts/Classes/Components/ShellDetection.gd" id="8_6tynh"]
[ext_resource type="Script" uid="uid://c3gg32ivrlq8n" path="res://Scripts/Classes/Components/GibSpawner.gd" id="9_v5mno"]
[ext_resource type="Script" uid="uid://dlq6o2rg1x7in" path="res://Scripts/Classes/Components/BasicEnemyMovement.gd" id="12_xehcv"]
[ext_resource type="Script" uid="uid://d4a7yp6e55u8t" path="res://Scripts/Classes/Components/TrackJoint.gd" id="14_5kc73"]
[ext_resource type="Script" uid="uid://ba18grqjixded" path="res://Scripts/Classes/Components/ExplosionDetection.gd" id="15_d14db"]
[sub_resource type="AtlasTexture" id="AtlasTexture_vjas1"]
atlas = ExtResource("2_3rlau")
region = Rect2(48, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_v5mno"]
atlas = ExtResource("2_3rlau")
region = Rect2(32, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_rol8r"]
atlas = ExtResource("2_3rlau")
region = Rect2(32, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_fur3j"]
atlas = ExtResource("2_3rlau")
region = Rect2(64, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_5kc73"]
atlas = ExtResource("2_3rlau")
region = Rect2(80, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_6tynh"]
atlas = ExtResource("2_3rlau")
region = Rect2(0, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_xehcv"]
atlas = ExtResource("2_3rlau")
region = Rect2(16, 0, 16, 16)
[sub_resource type="SpriteFrames" id="SpriteFrames_fur3j"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_vjas1")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_v5mno")
}],
"loop": true,
"name": &"Flash",
"speed": 10.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_rol8r")
}],
"loop": true,
"name": &"Hit",
"speed": 5.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_fur3j")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_5kc73")
}],
"loop": true,
"name": &"LitWalk",
"speed": 5.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_6tynh")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_xehcv")
}],
"loop": true,
"name": &"Walk",
"speed": 5.0
}]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_5kc73"]
size = Vector2(8, 8)
[sub_resource type="RectangleShape2D" id="RectangleShape2D_d14db"]
size = Vector2(12, 14)
[node name="BobOmb" type="CharacterBody2D" node_paths=PackedStringArray("on_screen_enabler", "score_note_adder") groups=["Enemies"]]
collision_layer = 16
collision_mask = 54
script = ExtResource("1_v5mno")
held_scene = ExtResource("2_fur3j")
on_screen_enabler = NodePath("VisibleOnScreenEnabler2D")
score_note_adder = NodePath("ScoreNoteSpawner")
metadata/_custom_type_script = "uid://bpydbpyjk1mt4"
[node name="Sprite" type="AnimatedSprite2D" parent="."]
position = Vector2(0, -8)
scale = Vector2(-1, 1)
sprite_frames = SubResource("SpriteFrames_fur3j")
animation = &"Walk"
autoplay = "Walk"
offset = Vector2(-1, 1)
flip_h = true
script = ExtResource("3_b6iml")
metadata/_custom_type_script = "uid://caq1qiwmy0mox"
[node name="ResourceSetterNew" type="Node" parent="Sprite" node_paths=PackedStringArray("node_to_affect")]
script = ExtResource("4_6tynh")
node_to_affect = NodePath("..")
property_name = "sprite_frames"
resource_json = ExtResource("5_xehcv")
metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
[node name="LCollision" type="CollisionShape2D" parent="."]
visible = false
position = Vector2(0, -4)
rotation = -1.5708
shape = SubResource("RectangleShape2D_5kc73")
one_way_collision = true
[node name="RCollision" type="CollisionShape2D" parent="."]
visible = false
position = Vector2(0, -4)
rotation = 1.5708
shape = SubResource("RectangleShape2D_5kc73")
one_way_collision = true
[node name="Hitbox" type="Area2D" parent="."]
collision_mask = 7
[node name="Shape" type="CollisionShape2D" parent="Hitbox"]
position = Vector2(0, -5)
shape = SubResource("RectangleShape2D_d14db")
[node name="ScoreNoteSpawner" type="Node" parent="."]
script = ExtResource("4_afkce")
metadata/_custom_type_script = "uid://5octqlf4ohel"
[node name="VisibleOnScreenEnabler2D" type="VisibleOnScreenEnabler2D" parent="."]
position = Vector2(0, -8)
[node name="FireballDetection" type="Node" parent="." node_paths=PackedStringArray("hitbox")]
script = ExtResource("5_vjas1")
hitbox = NodePath("../Hitbox")
metadata/_custom_type_script = "uid://dri2d5jtu0fbq"
[node name="EnemyPlayerDetection" type="Node" parent="." node_paths=PackedStringArray("hitbox")]
script = ExtResource("6_v5mno")
hitbox = NodePath("../Hitbox")
metadata/_custom_type_script = "uid://chj8hu207lrh"
[node name="BlockBouncingDetection" type="Node" parent="." node_paths=PackedStringArray("hitbox")]
script = ExtResource("7_rol8r")
detection_type = 1
hitbox = NodePath("../Hitbox")
metadata/_custom_type_script = "uid://cmg61722ktg2m"
[node name="ShellDetection" type="Node" parent="." node_paths=PackedStringArray("hitbox")]
script = ExtResource("8_6tynh")
hitbox = NodePath("../Hitbox")
metadata/_custom_type_script = "uid://bbww34oiexbx2"
[node name="GibSpawner" type="Node" parent="." node_paths=PackedStringArray("visuals")]
script = ExtResource("9_v5mno")
visuals = NodePath("../Sprite")
metadata/_custom_type_script = "uid://c3gg32ivrlq8n"
[node name="BasicEnemyMovement" type="Node" parent="." node_paths=PackedStringArray("visuals")]
script = ExtResource("12_xehcv")
visuals = NodePath("../Sprite")
[node name="TrackJoint" type="Node" parent="." node_paths=PackedStringArray("movement_node")]
script = ExtResource("14_5kc73")
movement_node = NodePath("../BasicEnemyMovement")
metadata/_custom_type_script = "uid://d4a7yp6e55u8t"
[node name="ExplosionDetection" type="Node" parent="." node_paths=PackedStringArray("hitbox")]
script = ExtResource("15_d14db")
hitbox = NodePath("../Hitbox")
metadata/_custom_type_script = "uid://ba18grqjixded"
[connection signal="killed" from="." to="GibSpawner" method="summon_gib"]
[connection signal="fireball_hit" from="FireballDetection" to="." method="fireball_hit"]
[connection signal="invincible_player_hit" from="EnemyPlayerDetection" to="." method="die_from_object"]
[connection signal="invincible_player_hit" from="EnemyPlayerDetection" to="ScoreNoteSpawner" method="spawn_note" binds= [200]]
[connection signal="player_hit" from="EnemyPlayerDetection" to="." method="damage_player"]
[connection signal="player_stomped_on" from="EnemyPlayerDetection" to="." method="stomped_on"]
[connection signal="block_bounced" from="BlockBouncingDetection" to="." method="fireball_hit"]
[connection signal="moving_shell_entered" from="ShellDetection" to="." method="die_from_object"]
[connection signal="explosion_entered" from="ExplosionDetection" to="." method="die_from_object"]
[connection signal="explosion_entered" from="ExplosionDetection" to="ScoreNoteSpawner" method="spawn_note" binds= [200]]

View File

@@ -0,0 +1,78 @@
[gd_scene load_steps=11 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"]
[ext_resource type="Script" uid="uid://cbal8ms2oe1ik" path="res://Scripts/Classes/Components/ResourceSetterNew.gd" id="2_ilcde"]
[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"]
[sub_resource type="AtlasTexture" id="AtlasTexture_wu7y3"]
atlas = ExtResource("1_mkqqf")
region = Rect2(0, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_7u2yg"]
atlas = ExtResource("1_mkqqf")
region = Rect2(16, 0, 16, 16)
[sub_resource type="SpriteFrames" id="SpriteFrames_i46bk"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_wu7y3")
}],
"loop": true,
"name": &"Move",
"speed": 5.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_7u2yg")
}],
"loop": true,
"name": &"WhiteIdle",
"speed": 5.0
}]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_ilcde"]
size = Vector2(12, 12)
[node name="Boo" type="Node2D" groups=["Enemies"]]
script = ExtResource("1_ilcde")
[node name="Sprite" type="AnimatedSprite2D" parent="."]
position = Vector2(0, -8)
scale = Vector2(-1, 1)
sprite_frames = SubResource("SpriteFrames_i46bk")
animation = &"WhiteIdle"
flip_h = true
[node name="ResourceSetterNew" type="Node" parent="Sprite" node_paths=PackedStringArray("node_to_affect")]
script = ExtResource("2_ilcde")
node_to_affect = NodePath("..")
property_name = "sprite_frames"
resource_json = ExtResource("3_xhmhl")
metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
[node name="Hitbox" type="Area2D" parent="."]
position = Vector2(0, -8)
[node name="CollisionShape2D" type="CollisionShape2D" parent="Hitbox"]
shape = SubResource("RectangleShape2D_ilcde")
[node name="VisibleOnScreenEnabler2D" type="VisibleOnScreenEnabler2D" parent="."]
position = Vector2(0, -8)
[node name="ScoreNoteSpawner" type="Node" parent="."]
script = ExtResource("5_xhmhl")
add_score = true
play_sfx = true
metadata/_custom_type_script = "uid://5octqlf4ohel"
[node name="TrackJoint" type="Node" parent="."]
script = ExtResource("6_7u2yg")
disable_physics = false
metadata/_custom_type_script = "uid://d4a7yp6e55u8t"
[connection signal="killed" from="." to="ScoreNoteSpawner" method="spawn_note" binds= [1000]]
[connection signal="area_entered" from="Hitbox" to="." method="on_area_entered"]

View File

@@ -0,0 +1,392 @@
[gd_scene load_steps=16 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"]
[ext_resource type="Texture2D" uid="uid://dsncqqhfsnq6s" path="res://Assets/Sprites/Editor/RotationIcon.png" id="2_1eh5v"]
[ext_resource type="Script" uid="uid://caq1qiwmy0mox" path="res://Scripts/Parts/BetterAnimatedSprite.gd" id="2_vavt3"]
[ext_resource type="Script" uid="uid://cpwloakvp672a" path="res://Scripts/Parts/EditorVisibleNode.gd" id="3_5b8ig"]
[ext_resource type="Script" uid="uid://cq6f682453q6o" path="res://Scripts/Classes/Components/ResourceSetter.gd" id="4_4rg7w"]
[ext_resource type="Resource" uid="uid://c8ojbqg4q4qh6" path="res://Resources/ThemedResources/EditorRotationIcon.tres" id="5_4rg7w"]
[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"]
[sub_resource type="AtlasTexture" id="AtlasTexture_7u2yg"]
atlas = ExtResource("1_bek6j")
region = Rect2(16, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_wu7y3"]
atlas = ExtResource("1_bek6j")
region = Rect2(0, 0, 16, 16)
[sub_resource type="SpriteFrames" id="SpriteFrames_8qb0a"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_7u2yg")
}],
"loop": true,
"name": &"Hide",
"speed": 5.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_wu7y3")
}],
"loop": true,
"name": &"WhiteMove",
"speed": 5.0
}]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_1eh5v"]
size = Vector2(12, 12)
[sub_resource type="GDScript" id="GDScript_vavt3"]
script/source = "extends Node
var length := 80
func _physics_process(delta: float) -> void:
var idx := 0
var spread = 30
length = owner.length
%RotationJoint.flip_h = owner.direction == 1
if owner.spread_boos:
spread = (360 / owner.boo_amount)
for i in %Boos.get_children():
i.show()
if idx < owner.boo_amount:
i.global_position = owner.global_position + Vector2.from_angle(deg_to_rad(%RotationJoint.global_rotation_degrees + (spread * idx))).normalized() * length
else:
i.global_position = Vector2(-999, 999)
idx += 1
"
[node name="BooBuddies" type="Node2D" groups=["Enemies"]]
script = ExtResource("1_vavt3")
[node name="RotationJoint" type="Sprite2D" parent="."]
unique_name_in_owner = true
z_index = 50
z_as_relative = false
texture = ExtResource("2_1eh5v")
script = ExtResource("3_5b8ig")
[node name="ResourceSetter" type="Node" parent="RotationJoint" node_paths=PackedStringArray("node_to_affect")]
script = ExtResource("4_4rg7w")
node_to_affect = NodePath("..")
property_name = "texture"
themed_resource = ExtResource("5_4rg7w")
metadata/_custom_type_script = "uid://cq6f682453q6o"
[node name="Boos" type="Node2D" parent="."]
unique_name_in_owner = true
[node name="Boo1" type="Node2D" parent="Boos"]
visible = false
[node name="Sprite" type="AnimatedSprite2D" parent="Boos/Boo1"]
sprite_frames = SubResource("SpriteFrames_8qb0a")
animation = &"WhiteMove"
autoplay = "WhiteMove"
flip_h = true
script = ExtResource("2_vavt3")
do_offset = false
metadata/_custom_type_script = "uid://caq1qiwmy0mox"
[node name="ResourceSetterNew" type="Node" parent="Boos/Boo1/Sprite" node_paths=PackedStringArray("node_to_affect")]
script = ExtResource("8_ifdhg")
node_to_affect = NodePath("..")
property_name = "sprite_frames"
resource_json = ExtResource("9_ifdhg")
metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
[node name="Hitbox" type="Area2D" parent="Boos/Boo1"]
[node name="Shape" type="CollisionShape2D" parent="Boos/Boo1/Hitbox"]
shape = SubResource("RectangleShape2D_1eh5v")
[node name="Boo2" type="Node2D" parent="Boos"]
visible = false
[node name="Sprite" type="AnimatedSprite2D" parent="Boos/Boo2"]
sprite_frames = SubResource("SpriteFrames_8qb0a")
animation = &"WhiteMove"
autoplay = "WhiteMove"
flip_h = true
script = ExtResource("2_vavt3")
do_offset = false
metadata/_custom_type_script = "uid://caq1qiwmy0mox"
[node name="ResourceSetterNew" type="Node" parent="Boos/Boo2/Sprite" node_paths=PackedStringArray("node_to_affect")]
script = ExtResource("8_ifdhg")
node_to_affect = NodePath("..")
property_name = "sprite_frames"
resource_json = ExtResource("9_ifdhg")
metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
[node name="Hitbox" type="Area2D" parent="Boos/Boo2"]
[node name="Shape" type="CollisionShape2D" parent="Boos/Boo2/Hitbox"]
shape = SubResource("RectangleShape2D_1eh5v")
[node name="Boo3" type="Node2D" parent="Boos"]
visible = false
[node name="Sprite" type="AnimatedSprite2D" parent="Boos/Boo3"]
sprite_frames = SubResource("SpriteFrames_8qb0a")
animation = &"WhiteMove"
autoplay = "WhiteMove"
flip_h = true
script = ExtResource("2_vavt3")
do_offset = false
metadata/_custom_type_script = "uid://caq1qiwmy0mox"
[node name="ResourceSetterNew" type="Node" parent="Boos/Boo3/Sprite" node_paths=PackedStringArray("node_to_affect")]
script = ExtResource("8_ifdhg")
node_to_affect = NodePath("..")
property_name = "sprite_frames"
resource_json = ExtResource("9_ifdhg")
metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
[node name="Hitbox" type="Area2D" parent="Boos/Boo3"]
[node name="Shape" type="CollisionShape2D" parent="Boos/Boo3/Hitbox"]
shape = SubResource("RectangleShape2D_1eh5v")
[node name="Boo4" type="Node2D" parent="Boos"]
visible = false
[node name="Sprite" type="AnimatedSprite2D" parent="Boos/Boo4"]
sprite_frames = SubResource("SpriteFrames_8qb0a")
animation = &"WhiteMove"
autoplay = "WhiteMove"
flip_h = true
script = ExtResource("2_vavt3")
do_offset = false
metadata/_custom_type_script = "uid://caq1qiwmy0mox"
[node name="ResourceSetterNew" type="Node" parent="Boos/Boo4/Sprite" node_paths=PackedStringArray("node_to_affect")]
script = ExtResource("8_ifdhg")
node_to_affect = NodePath("..")
property_name = "sprite_frames"
resource_json = ExtResource("9_ifdhg")
metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
[node name="Hitbox" type="Area2D" parent="Boos/Boo4"]
[node name="Shape" type="CollisionShape2D" parent="Boos/Boo4/Hitbox"]
shape = SubResource("RectangleShape2D_1eh5v")
[node name="Boo5" type="Node2D" parent="Boos"]
visible = false
[node name="Sprite" type="AnimatedSprite2D" parent="Boos/Boo5"]
sprite_frames = SubResource("SpriteFrames_8qb0a")
animation = &"WhiteMove"
autoplay = "WhiteMove"
flip_h = true
script = ExtResource("2_vavt3")
do_offset = false
metadata/_custom_type_script = "uid://caq1qiwmy0mox"
[node name="ResourceSetterNew" type="Node" parent="Boos/Boo5/Sprite" node_paths=PackedStringArray("node_to_affect")]
script = ExtResource("8_ifdhg")
node_to_affect = NodePath("..")
property_name = "sprite_frames"
resource_json = ExtResource("9_ifdhg")
metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
[node name="Hitbox" type="Area2D" parent="Boos/Boo5"]
[node name="Shape" type="CollisionShape2D" parent="Boos/Boo5/Hitbox"]
shape = SubResource("RectangleShape2D_1eh5v")
[node name="Boo6" type="Node2D" parent="Boos"]
visible = false
[node name="Sprite" type="AnimatedSprite2D" parent="Boos/Boo6"]
sprite_frames = SubResource("SpriteFrames_8qb0a")
animation = &"WhiteMove"
autoplay = "WhiteMove"
flip_h = true
script = ExtResource("2_vavt3")
do_offset = false
metadata/_custom_type_script = "uid://caq1qiwmy0mox"
[node name="ResourceSetterNew" type="Node" parent="Boos/Boo6/Sprite" node_paths=PackedStringArray("node_to_affect")]
script = ExtResource("8_ifdhg")
node_to_affect = NodePath("..")
property_name = "sprite_frames"
resource_json = ExtResource("9_ifdhg")
metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
[node name="Hitbox" type="Area2D" parent="Boos/Boo6"]
[node name="Shape" type="CollisionShape2D" parent="Boos/Boo6/Hitbox"]
shape = SubResource("RectangleShape2D_1eh5v")
[node name="Boo7" type="Node2D" parent="Boos"]
visible = false
[node name="Sprite" type="AnimatedSprite2D" parent="Boos/Boo7"]
sprite_frames = SubResource("SpriteFrames_8qb0a")
animation = &"WhiteMove"
autoplay = "WhiteMove"
flip_h = true
script = ExtResource("2_vavt3")
do_offset = false
metadata/_custom_type_script = "uid://caq1qiwmy0mox"
[node name="ResourceSetterNew" type="Node" parent="Boos/Boo7/Sprite" node_paths=PackedStringArray("node_to_affect")]
script = ExtResource("8_ifdhg")
node_to_affect = NodePath("..")
property_name = "sprite_frames"
resource_json = ExtResource("9_ifdhg")
metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
[node name="Hitbox" type="Area2D" parent="Boos/Boo7"]
[node name="Shape" type="CollisionShape2D" parent="Boos/Boo7/Hitbox"]
shape = SubResource("RectangleShape2D_1eh5v")
[node name="Boo8" type="Node2D" parent="Boos"]
visible = false
[node name="Sprite" type="AnimatedSprite2D" parent="Boos/Boo8"]
sprite_frames = SubResource("SpriteFrames_8qb0a")
animation = &"WhiteMove"
autoplay = "WhiteMove"
flip_h = true
script = ExtResource("2_vavt3")
do_offset = false
metadata/_custom_type_script = "uid://caq1qiwmy0mox"
[node name="ResourceSetterNew" type="Node" parent="Boos/Boo8/Sprite" node_paths=PackedStringArray("node_to_affect")]
script = ExtResource("8_ifdhg")
node_to_affect = NodePath("..")
property_name = "sprite_frames"
resource_json = ExtResource("9_ifdhg")
metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
[node name="Hitbox" type="Area2D" parent="Boos/Boo8"]
[node name="Shape" type="CollisionShape2D" parent="Boos/Boo8/Hitbox"]
shape = SubResource("RectangleShape2D_1eh5v")
[node name="Boo9" type="Node2D" parent="Boos"]
visible = false
[node name="Sprite" type="AnimatedSprite2D" parent="Boos/Boo9"]
sprite_frames = SubResource("SpriteFrames_8qb0a")
animation = &"WhiteMove"
autoplay = "WhiteMove"
flip_h = true
script = ExtResource("2_vavt3")
do_offset = false
metadata/_custom_type_script = "uid://caq1qiwmy0mox"
[node name="ResourceSetterNew" type="Node" parent="Boos/Boo9/Sprite" node_paths=PackedStringArray("node_to_affect")]
script = ExtResource("8_ifdhg")
node_to_affect = NodePath("..")
property_name = "sprite_frames"
resource_json = ExtResource("9_ifdhg")
metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
[node name="Hitbox" type="Area2D" parent="Boos/Boo9"]
[node name="Shape" type="CollisionShape2D" parent="Boos/Boo9/Hitbox"]
shape = SubResource("RectangleShape2D_1eh5v")
[node name="Boo10" type="Node2D" parent="Boos"]
visible = false
[node name="Sprite" type="AnimatedSprite2D" parent="Boos/Boo10"]
sprite_frames = SubResource("SpriteFrames_8qb0a")
animation = &"WhiteMove"
autoplay = "WhiteMove"
flip_h = true
script = ExtResource("2_vavt3")
do_offset = false
metadata/_custom_type_script = "uid://caq1qiwmy0mox"
[node name="ResourceSetterNew" type="Node" parent="Boos/Boo10/Sprite" node_paths=PackedStringArray("node_to_affect")]
script = ExtResource("8_ifdhg")
node_to_affect = NodePath("..")
property_name = "sprite_frames"
resource_json = ExtResource("9_ifdhg")
metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
[node name="Hitbox" type="Area2D" parent="Boos/Boo10"]
[node name="Shape" type="CollisionShape2D" parent="Boos/Boo10/Hitbox"]
shape = SubResource("RectangleShape2D_1eh5v")
[node name="Boo11" type="Node2D" parent="Boos"]
visible = false
[node name="Sprite" type="AnimatedSprite2D" parent="Boos/Boo11"]
sprite_frames = SubResource("SpriteFrames_8qb0a")
animation = &"WhiteMove"
autoplay = "WhiteMove"
flip_h = true
script = ExtResource("2_vavt3")
do_offset = false
metadata/_custom_type_script = "uid://caq1qiwmy0mox"
[node name="ResourceSetterNew" type="Node" parent="Boos/Boo11/Sprite" node_paths=PackedStringArray("node_to_affect")]
script = ExtResource("8_ifdhg")
node_to_affect = NodePath("..")
property_name = "sprite_frames"
resource_json = ExtResource("9_ifdhg")
metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
[node name="Hitbox" type="Area2D" parent="Boos/Boo11"]
[node name="Shape" type="CollisionShape2D" parent="Boos/Boo11/Hitbox"]
shape = SubResource("RectangleShape2D_1eh5v")
[node name="Boo12" type="Node2D" parent="Boos"]
visible = false
[node name="Sprite" type="AnimatedSprite2D" parent="Boos/Boo12"]
sprite_frames = SubResource("SpriteFrames_8qb0a")
animation = &"WhiteMove"
autoplay = "WhiteMove"
flip_h = true
script = ExtResource("2_vavt3")
do_offset = false
metadata/_custom_type_script = "uid://caq1qiwmy0mox"
[node name="ResourceSetterNew" type="Node" parent="Boos/Boo12/Sprite" node_paths=PackedStringArray("node_to_affect")]
script = ExtResource("8_ifdhg")
node_to_affect = NodePath("..")
property_name = "sprite_frames"
resource_json = ExtResource("9_ifdhg")
metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
[node name="Hitbox" type="Area2D" parent="Boos/Boo12"]
[node name="Shape" type="CollisionShape2D" parent="Boos/Boo12/Hitbox"]
shape = SubResource("RectangleShape2D_1eh5v")
[node name="BooPositioner" type="Node" parent="."]
process_mode = 3
script = SubResource("GDScript_vavt3")
[node name="EditorPropertyExposer" type="Node" parent="."]
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"]

View File

@@ -0,0 +1,420 @@
[gd_scene load_steps=41 format=3 uid="uid://duptcik2j0b04"]
[ext_resource type="Texture2D" uid="uid://d3sxabber73q6" path="res://Assets/Sprites/Enemies/Bowser.png" id="1_8mi7o"]
[ext_resource type="Script" uid="uid://wtypg4d0l6j2" path="res://Scripts/Classes/Entities/Enemies/Bowser.gd" id="1_ma5fd"]
[ext_resource type="AudioStream" uid="uid://cssh58oe85in8" path="res://Assets/Audio/SFX/BowserFall.wav" id="3_mliv7"]
[ext_resource type="Script" uid="uid://caq1qiwmy0mox" path="res://Scripts/Parts/BetterAnimatedSprite.gd" id="4_2qn7a"]
[ext_resource type="Script" uid="uid://dri2d5jtu0fbq" path="res://Scripts/Classes/Components/FireballDetection.gd" id="4_kfwlq"]
[ext_resource type="Texture2D" uid="uid://3xmhfi556p3s" path="res://Assets/Sprites/Items/Hammer.png" id="4_vubm2"]
[ext_resource type="Script" uid="uid://cbal8ms2oe1ik" path="res://Scripts/Classes/Components/ResourceSetterNew.gd" id="5_17x2r"]
[ext_resource type="Script" uid="uid://cq6f682453q6o" path="res://Scripts/Classes/Components/ResourceSetter.gd" id="5_v5oyl"]
[ext_resource type="JSON" path="res://Assets/Sprites/Enemies/Bowser.json" id="6_nf6hu"]
[ext_resource type="Script" uid="uid://cmvlgsjmsk0v5" path="res://Scripts/Classes/Resources/ThemedResource.gd" id="6_pvhfi"]
[ext_resource type="Script" uid="uid://c3gg32ivrlq8n" path="res://Scripts/Classes/Components/GibSpawner.gd" id="6_va0n6"]
[ext_resource type="JSON" path="res://Assets/Sprites/Enemies/Goomba.json" id="9_exf4b"]
[ext_resource type="Script" uid="uid://5octqlf4ohel" path="res://Scripts/Classes/Components/ScoreNoteSpawner.gd" id="11_pvhfi"]
[ext_resource type="Script" uid="uid://cqif1li7otvpl" path="res://Scripts/Parts/SpriteFramesToJsonConverter.gd" id="14_nf6hu"]
[ext_resource type="Script" uid="uid://ctfbuoxtnnl0q" path="res://Scripts/Classes/Components/EditorPropertyExposer.gd" id="15_nf6hu"]
[ext_resource type="JSON" path="res://Assets/Sprites/Items/Hammer.json" id="15_yggkc"]
[ext_resource type="Script" uid="uid://d4a7yp6e55u8t" path="res://Scripts/Classes/Components/TrackJoint.gd" id="17_5b235"]
[ext_resource type="Script" uid="uid://bbww34oiexbx2" path="res://Scripts/Classes/Components/ShellDetection.gd" id="19_ymlbw"]
[ext_resource type="Script" uid="uid://chj8hu207lrh" path="res://Scripts/Classes/Components/EnemyPlayerDetection.gd" id="20_ckuah"]
[ext_resource type="Script" uid="uid://ba18grqjixded" path="res://Scripts/Classes/Components/ExplosionDetection.gd" id="21_mcog5"]
[sub_resource type="AtlasTexture" id="AtlasTexture_6fvct"]
atlas = ExtResource("1_8mi7o")
region = Rect2(0, 0, 48, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_17x2r"]
atlas = ExtResource("1_8mi7o")
region = Rect2(0, 48, 48, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_nf6hu"]
atlas = ExtResource("1_8mi7o")
region = Rect2(0, 0, 48, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_exf4b"]
atlas = ExtResource("1_8mi7o")
region = Rect2(48, 0, 48, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_5b235"]
atlas = ExtResource("1_8mi7o")
region = Rect2(0, 48, 48, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_yggkc"]
atlas = ExtResource("1_8mi7o")
region = Rect2(48, 48, 48, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_ymlbw"]
atlas = ExtResource("1_8mi7o")
region = Rect2(0, 0, 48, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_ckuah"]
atlas = ExtResource("1_8mi7o")
region = Rect2(48, 0, 48, 48)
[sub_resource type="SpriteFrames" id="SpriteFrames_mcog5"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_6fvct")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_17x2r")
}],
"loop": true,
"name": &"Fall",
"speed": 15.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_nf6hu")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_exf4b")
}],
"loop": true,
"name": &"FireBreathe",
"speed": 10.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_5b235")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_yggkc")
}],
"loop": true,
"name": &"FireCharge",
"speed": 10.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_ymlbw")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_ckuah")
}],
"loop": true,
"name": &"Idle",
"speed": 15.0
}]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_ma5fd"]
size = Vector2(20, 24)
[sub_resource type="Animation" id="Animation_pvhfi"]
resource_name = "Hurt"
length = 0.2
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("SpriteScaleJoint:scale")
tracks/0/interp = 2
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.2),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Vector2(1.2, 1.2), Vector2(1, 1)]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("SpriteScaleJoint/Sprite/ColorRect:self_modulate")
tracks/1/interp = 2
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0, 0.2),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Color(1, 1, 1, 1), Color(1, 1, 1, 0)]
}
[sub_resource type="Animation" id="Animation_2qn7a"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("SpriteScaleJoint:scale")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector2(1, 1)]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("SpriteScaleJoint/Sprite/ColorRect:self_modulate")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Color(1, 1, 1, 0)]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_6fvct"]
_data = {
&"Hurt": SubResource("Animation_pvhfi"),
&"RESET": SubResource("Animation_2qn7a")
}
[sub_resource type="SpriteFrames" id="SpriteFrames_ckuah"]
animations = [{
"frames": [],
"loop": true,
"name": &"Idle",
"speed": 5.0
}]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_va0n6"]
size = Vector2(16, 18)
[sub_resource type="Animation" id="Animation_vubm2"]
resource_name = "Move"
length = 1.5
loop_mode = 2
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("SpriteScaleJoint:position")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 1.5),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Vector2(-8, -13), Vector2(8, -13)]
}
[sub_resource type="Animation" id="Animation_vgx23"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("SpriteScaleJoint:position")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector2(-8, -13)]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_v5oyl"]
_data = {
&"Move": SubResource("Animation_vubm2"),
&"RESET": SubResource("Animation_vgx23")
}
[sub_resource type="Resource" id="Resource_5b235"]
script = ExtResource("6_pvhfi")
Overworld = ExtResource("3_mliv7")
metadata/_custom_type_script = "uid://cmvlgsjmsk0v5"
[sub_resource type="Resource" id="Resource_exf4b"]
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"]]
z_index = 1
collision_layer = 16
collision_mask = 2
script = ExtResource("1_ma5fd")
on_screen_enabler = NodePath("VisibleOnScreenEnabler2D")
score_note_adder = NodePath("ScoreNoteSpawner")
metadata/block_launch_velocity = -50.0
[node name="SpriteScaleJoint" type="Node2D" parent="."]
position = Vector2(-8, -13)
[node name="Sprite" type="AnimatedSprite2D" parent="SpriteScaleJoint"]
clip_children = 2
position = Vector2(0, -11)
scale = Vector2(-1, 1)
sprite_frames = SubResource("SpriteFrames_mcog5")
animation = &"Idle"
autoplay = "Idle"
frame_progress = 0.687669
offset = Vector2(0, 1)
flip_h = true
script = ExtResource("4_2qn7a")
do_offset = false
metadata/_custom_type_script = "uid://caq1qiwmy0mox"
[node name="Hitbox" type="Area2D" parent="SpriteScaleJoint/Sprite"]
position = Vector2(0, 24)
rotation = 3.14159
scale = Vector2(1, -1)
[node name="CollisionShape2D" type="CollisionShape2D" parent="SpriteScaleJoint/Sprite/Hitbox"]
visible = false
position = Vector2(0, -12)
shape = SubResource("RectangleShape2D_ma5fd")
[node name="RemoteTransform2D" type="RemoteTransform2D" parent="SpriteScaleJoint/Sprite"]
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")]
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"]
modulate = Color(1, 1, 1, 0.552941)
self_modulate = Color(1, 1, 1, 0)
offset_left = -35.1663
offset_top = -22.0
offset_right = 28.8337
offset_bottom = 42.0
color = Color(1, 0, 0, 1)
[node name="HurtAnimation" type="AnimationPlayer" parent="SpriteScaleJoint"]
root_node = NodePath("../..")
libraries = {
&"": SubResource("AnimationLibrary_6fvct")
}
[node name="DeathSprite" type="AnimatedSprite2D" parent="SpriteScaleJoint"]
visible = false
position = Vector2(8, 5)
sprite_frames = SubResource("SpriteFrames_ckuah")
animation = &"Idle"
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")]
script = ExtResource("5_17x2r")
node_to_affect = NodePath("..")
property_name = "sprite_frames"
resource_json = ExtResource("9_exf4b")
use_cache = false
metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
[node name="Collision" type="CollisionShape2D" parent="."]
visible = false
position = Vector2(0, -9)
shape = SubResource("RectangleShape2D_va0n6")
[node name="MoveAnimation" type="AnimationPlayer" parent="."]
libraries = {
&"": SubResource("AnimationLibrary_v5oyl")
}
autoplay = "Move"
[node name="JumpTimer" type="Timer" parent="."]
one_shot = true
[node name="HammerTime" type="Timer" parent="."]
one_shot = true
[node name="FlameTimer" type="Timer" parent="."]
wait_time = 0.5
one_shot = true
[node name="FallSFX" type="AudioStreamPlayer2D" parent="."]
stream = ExtResource("3_mliv7")
bus = &"SFX"
[node name="ResourceSetter" type="Node" parent="FallSFX" 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")]
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")]
script = ExtResource("6_va0n6")
visuals = NodePath("../SpriteScaleJoint/DeathSprite")
metadata/_custom_type_script = "uid://c3gg32ivrlq8n"
[node name="ScoreNoteSpawner" type="Node" parent="."]
script = ExtResource("11_pvhfi")
add_score = true
metadata/_custom_type_script = "uid://5octqlf4ohel"
[node name="Hammer" type="Sprite2D" parent="."]
visible = false
show_behind_parent = true
position = Vector2(-16, -32)
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")]
script = ExtResource("5_17x2r")
node_to_affect = NodePath("..")
property_node = NodePath("..")
property_name = "texture"
mode = 1
resource_json = ExtResource("15_yggkc")
metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
[node name="VisibleOnScreenEnabler2D" type="VisibleOnScreenEnabler2D" parent="."]
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="."]
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="."]
script = ExtResource("15_nf6hu")
properties = Array[String](["can_hammer", "can_fire"])
[node name="TrackJoint" type="Node" parent="."]
script = ExtResource("17_5b235")
metadata/_custom_type_script = "uid://d4a7yp6e55u8t"
[node name="ShellDetection" type="Node" parent="." 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")]
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")]
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="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"]
[connection signal="timeout" from="FlameTimer" to="." method="breathe_fire"]
[connection signal="fireball_hit" from="FireballDetection" to="." method="fireball_hit" unbinds=1]
[connection signal="screen_entered" from="VisibleOnScreenEnabler2D" to="." method="play_music" flags=6]
[connection signal="attached" from="TrackJoint" to="MoveAnimation" method="play" binds= ["RESET"]]
[connection signal="moving_shell_entered" from="ShellDetection" to="ShellDetection" method="destroy_shell"]
[connection signal="moving_shell_entered" from="ShellDetection" to="." method="fireball_hit" unbinds=1]
[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"]
[connection signal="explosion_entered" from="ExplosionDetection" to="." method="fireball_hit" unbinds=1]

View File

@@ -0,0 +1,65 @@
[gd_scene load_steps=10 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"]
[sub_resource type="AtlasTexture" id="AtlasTexture_iikig"]
atlas = ExtResource("1_4hwux")
region = Rect2(0, 0, 24, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_jqext"]
atlas = ExtResource("1_4hwux")
region = Rect2(24, 0, 24, 16)
[sub_resource type="SpriteFrames" id="SpriteFrames_oy8b6"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_iikig")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_jqext")
}],
"loop": true,
"name": &"default",
"speed": 15.0
}]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_ohhuu"]
size = Vector2(12, 4)
[node name="BowserFlame" type="Node2D" groups=["Enemies"]]
script = ExtResource("1_dq7qg")
[node name="Sprite" type="AnimatedSprite2D" parent="."]
scale = Vector2(-1, 1)
sprite_frames = SubResource("SpriteFrames_oy8b6")
autoplay = "default"
frame_progress = 0.67141116
flip_h = true
script = ExtResource("3_ktnk0")
do_offset = false
metadata/_custom_type_script = "uid://caq1qiwmy0mox"
[node name="ResourceSetterNew" type="Node" parent="Sprite" node_paths=PackedStringArray("node_to_affect")]
script = ExtResource("4_ktnk0")
node_to_affect = NodePath("..")
property_name = "sprite_frames"
resource_json = ExtResource("5_0e5kh")
metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
[node name="Hitbox" type="Area2D" parent="."]
[node name="Shape" type="CollisionShape2D" parent="Hitbox"]
shape = SubResource("RectangleShape2D_ohhuu")
[node name="VisibleOnScreenEnabler2D" type="VisibleOnScreenEnabler2D" parent="."]
position = Vector2(-2.38419e-07, 0)
scale = Vector2(1.6, 1)
[connection signal="area_entered" from="Hitbox" to="." method="on_area_entered"]
[connection signal="screen_entered" from="VisibleOnScreenEnabler2D" to="." method="play_sfx"]
[connection signal="screen_exited" from="VisibleOnScreenEnabler2D" to="." method="queue_free"]

View File

@@ -0,0 +1,13 @@
[gd_scene load_steps=3 format=3 uid="uid://bjysym6bhxljv"]
[ext_resource type="PackedScene" uid="uid://pfhvflypjq6y" path="res://Scenes/Prefabs/Entities/Enemies/TrueBowser.tscn" id="1_qcxx5"]
[ext_resource type="JSON" path="res://Assets/Sprites/Enemies/BowsersBro.json" id="2_qcxx5"]
[node name="BowsersBro" instance=ExtResource("1_qcxx5")]
music_enabled = false
[node name="ResourceSetterNew" parent="SpriteScaleJoint/Sprite" index="2"]
resource_json = ExtResource("2_qcxx5")
[node name="ResourceSetterNew" parent="SpriteScaleJoint/DeathSprite" index="0"]
resource_json = ExtResource("2_qcxx5")

View File

@@ -0,0 +1,91 @@
[gd_scene load_steps=13 format=3 uid="uid://c1wl10xa3jara"]
[ext_resource type="Script" uid="uid://7b27p232kp7w" path="res://Scripts/Classes/Entities/Enemies/BulletBill.gd" id="1_52tat"]
[ext_resource type="Script" uid="uid://caq1qiwmy0mox" path="res://Scripts/Parts/BetterAnimatedSprite.gd" id="2_dwbhe"]
[ext_resource type="Script" uid="uid://cbal8ms2oe1ik" path="res://Scripts/Classes/Components/ResourceSetterNew.gd" id="3_4je76"]
[ext_resource type="JSON" path="res://Assets/Sprites/Enemies/BulletBill.json" id="4_myh77"]
[ext_resource type="Script" uid="uid://chj8hu207lrh" path="res://Scripts/Classes/Components/EnemyPlayerDetection.gd" id="5_edyyd"]
[ext_resource type="Script" uid="uid://c3gg32ivrlq8n" path="res://Scripts/Classes/Components/GibSpawner.gd" id="6_jwkii"]
[ext_resource type="Script" uid="uid://bbww34oiexbx2" path="res://Scripts/Classes/Components/ShellDetection.gd" id="9_4je76"]
[ext_resource type="Script" uid="uid://5octqlf4ohel" path="res://Scripts/Classes/Components/ScoreNoteSpawner.gd" id="9_dwbhe"]
[ext_resource type="Script" uid="uid://33no4mylhh1r" path="res://Scripts/Classes/Components/OffScreenDespawner.gd" id="11_myh77"]
[ext_resource type="Script" uid="uid://b8vmbtoaaq5nc" path="res://Scripts/Parts/EditorToggleDetection.gd" id="12_0vqq3"]
[ext_resource type="Script" uid="uid://ba18grqjixded" path="res://Scripts/Classes/Components/ExplosionDetection.gd" id="13_871w6"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_dwbhe"]
size = Vector2(12, 12)
[node name="BulletBill" type="CharacterBody2D" node_paths=PackedStringArray("on_screen_enabler", "score_note_adder") groups=["Enemies"]]
z_index = -2
script = ExtResource("1_52tat")
on_screen_enabler = NodePath("VisibleOnScreenEnabler2D")
score_note_adder = NodePath("ScoreNoteSpawner")
metadata/_custom_type_script = "uid://bpydbpyjk1mt4"
[node name="Sprite" type="AnimatedSprite2D" parent="."]
position = Vector2(0, -8)
scale = Vector2(-1, 1)
flip_h = true
script = ExtResource("2_dwbhe")
metadata/_custom_type_script = "uid://caq1qiwmy0mox"
[node name="ResourceSetterNew" type="Node" parent="Sprite" node_paths=PackedStringArray("node_to_affect")]
script = ExtResource("3_4je76")
node_to_affect = NodePath("..")
property_name = "sprite_frames"
resource_json = ExtResource("4_myh77")
metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
[node name="Hitbox" type="Area2D" parent="."]
position = Vector2(0, -4)
[node name="CollisionShape2D" type="CollisionShape2D" parent="Hitbox"]
position = Vector2(0, -4)
shape = SubResource("RectangleShape2D_dwbhe")
[node name="VisibleOnScreenEnabler2D" type="VisibleOnScreenEnabler2D" parent="."]
position = Vector2(0, -8)
[node name="EnemyPlayerDetection" type="Node" parent="." node_paths=PackedStringArray("hitbox")]
script = ExtResource("5_edyyd")
hitbox = NodePath("../Hitbox")
metadata/_custom_type_script = "uid://chj8hu207lrh"
[node name="GibSpawner" type="Node" parent="." node_paths=PackedStringArray("visuals")]
script = ExtResource("6_jwkii")
visuals = NodePath("../Sprite")
metadata/_custom_type_script = "uid://c3gg32ivrlq8n"
[node name="ScoreNoteSpawner" type="Node" parent="."]
script = ExtResource("9_dwbhe")
metadata/_custom_type_script = "uid://5octqlf4ohel"
[node name="ShellDetection" type="Node" parent="." node_paths=PackedStringArray("hitbox")]
script = ExtResource("9_4je76")
hitbox = NodePath("../Hitbox")
metadata/_custom_type_script = "uid://bbww34oiexbx2"
[node name="LevelEditorToggleDetection" type="Node" parent="."]
script = ExtResource("12_0vqq3")
metadata/_custom_type_script = "uid://b8vmbtoaaq5nc"
[node name="ExplosionDetection" type="Node" parent="." node_paths=PackedStringArray("hitbox")]
script = ExtResource("13_871w6")
hitbox = NodePath("../Hitbox")
metadata/_custom_type_script = "uid://ba18grqjixded"
[node name="OffScreenDespawner" type="Node" parent="."]
script = ExtResource("11_myh77")
[connection signal="killed" from="." to="GibSpawner" method="summon_gib"]
[connection signal="screen_entered" from="VisibleOnScreenEnabler2D" to="." method="on_screen_entered"]
[connection signal="screen_exited" from="VisibleOnScreenEnabler2D" to="OffScreenDespawner" method="on_screen_exited"]
[connection signal="invincible_player_hit" from="EnemyPlayerDetection" to="." method="die_from_object"]
[connection signal="invincible_player_hit" from="EnemyPlayerDetection" to="ScoreNoteSpawner" method="spawn_note" binds= [200]]
[connection signal="player_hit" from="EnemyPlayerDetection" to="." method="damage_player"]
[connection signal="player_stomped_on" from="EnemyPlayerDetection" to="GibSpawner" method="stomp_die"]
[connection signal="moving_shell_entered" from="ShellDetection" to="." method="die_from_object"]
[connection signal="level_start" from="LevelEditorToggleDetection" to="." method="on_screen_entered"]
[connection signal="level_start" from="LevelEditorToggleDetection" to="." method="_ready"]
[connection signal="explosion_entered" from="ExplosionDetection" to="." method="die_from_object"]
[connection signal="explosion_entered" from="ExplosionDetection" to="ScoreNoteSpawner" method="spawn_note" binds= [200]]

View File

@@ -0,0 +1,176 @@
[gd_scene load_steps=22 format=3 uid="uid://doo8617qiyp77"]
[ext_resource type="Script" uid="uid://q8gx0l64pcjh" path="res://Scripts/Classes/Entities/Enemies/KoopaTroopa.gd" id="1_ua110"]
[ext_resource type="Texture2D" uid="uid://bs5aslhhgk8bv" path="res://Assets/Sprites/Enemies/BuzzyBeetle.png" id="2_5xvna"]
[ext_resource type="Script" uid="uid://caq1qiwmy0mox" path="res://Scripts/Parts/BetterAnimatedSprite.gd" id="2_obcjq"]
[ext_resource type="Script" uid="uid://cbal8ms2oe1ik" path="res://Scripts/Classes/Components/ResourceSetterNew.gd" id="3_eu017"]
[ext_resource type="JSON" path="res://Assets/Sprites/Enemies/BuzzyBeetle.json" id="4_316n2"]
[ext_resource type="PackedScene" uid="uid://bupy7th8ln45c" path="res://Scenes/Parts/Wing.tscn" id="5_0ayui"]
[ext_resource type="Script" uid="uid://chj8hu207lrh" path="res://Scripts/Classes/Components/EnemyPlayerDetection.gd" id="5_eu017"]
[ext_resource type="JSON" path="res://Assets/Sprites/Enemies/BuzzyBeetleShell.json" id="5_obcjq"]
[ext_resource type="Script" uid="uid://dri2d5jtu0fbq" path="res://Scripts/Classes/Components/FireballDetection.gd" id="6_316n2"]
[ext_resource type="Script" uid="uid://c3gg32ivrlq8n" path="res://Scripts/Classes/Components/GibSpawner.gd" id="7_5xvna"]
[ext_resource type="Script" uid="uid://cmg61722ktg2m" path="res://Scripts/Classes/Components/BlockBouncingDetection.gd" id="8_n5sq7"]
[ext_resource type="Script" uid="uid://bbww34oiexbx2" path="res://Scripts/Classes/Components/ShellDetection.gd" id="9_2w4oo"]
[ext_resource type="Script" uid="uid://5octqlf4ohel" path="res://Scripts/Classes/Components/ScoreNoteSpawner.gd" id="10_8v4fy"]
[ext_resource type="Script" uid="uid://dq860i312isk" path="res://Scripts/Classes/Components/IcicleDetection.gd" id="11_bxryo"]
[ext_resource type="Script" uid="uid://dlq6o2rg1x7in" path="res://Scripts/Classes/Components/BasicEnemyMovement.gd" id="14_eu017"]
[ext_resource type="Script" uid="uid://ba18grqjixded" path="res://Scripts/Classes/Components/ExplosionDetection.gd" id="15_316n2"]
[ext_resource type="Script" uid="uid://d4a7yp6e55u8t" path="res://Scripts/Classes/Components/TrackJoint.gd" id="17_n5sq7"]
[sub_resource type="AtlasTexture" id="AtlasTexture_n5sq7"]
atlas = ExtResource("2_5xvna")
region = Rect2(0, 0, 16, 16)
[sub_resource type="SpriteFrames" id="SpriteFrames_2w4oo"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_n5sq7")
}],
"loop": true,
"name": &"default",
"speed": 5.0
}]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_fop3r"]
size = Vector2(12, 12)
[sub_resource type="RectangleShape2D" id="RectangleShape2D_y8bq4"]
size = Vector2(12, 12)
[node name="BuzzyBeetle" type="CharacterBody2D" node_paths=PackedStringArray("on_screen_enabler", "score_note_adder") groups=["Enemies"]]
disable_mode = 1
collision_layer = 16
collision_mask = 50
script = ExtResource("1_ua110")
shell_scene = "uid://csdbt4vd14fsg"
on_screen_enabler = NodePath("VisibleOnScreenEnabler2D")
score_note_adder = NodePath("ScoreNoteSpawner")
metadata/_custom_type_script = "uid://bpydbpyjk1mt4"
[node name="Sprite" type="AnimatedSprite2D" parent="."]
position = Vector2(0, -8)
scale = Vector2(-1, 1)
sprite_frames = SubResource("SpriteFrames_2w4oo")
offset = Vector2(0, 1)
flip_h = true
script = ExtResource("2_obcjq")
metadata/_custom_type_script = "uid://caq1qiwmy0mox"
[node name="ResourceSetterNew" type="Node" parent="Sprite" node_paths=PackedStringArray("node_to_affect")]
script = ExtResource("3_eu017")
node_to_affect = NodePath("..")
property_name = "sprite_frames"
resource_json = ExtResource("4_316n2")
metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
[node name="Wing" parent="Sprite" instance=ExtResource("5_0ayui")]
unique_name_in_owner = true
visible = false
position = Vector2(-9, 1)
frame_progress = 0.539258
flip_h = true
[node name="DeathSprite" type="AnimatedSprite2D" parent="."]
visible = false
position = Vector2(0, -7)
script = ExtResource("2_obcjq")
metadata/_custom_type_script = "uid://caq1qiwmy0mox"
[node name="ResourceSetterNew" type="Node" parent="DeathSprite" node_paths=PackedStringArray("node_to_affect")]
script = ExtResource("3_eu017")
node_to_affect = NodePath("..")
property_name = "sprite_frames"
resource_json = ExtResource("5_obcjq")
metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
[node name="Collision" type="CollisionShape2D" parent="."]
visible = false
position = Vector2(0, -6)
rotation = 1.5708
shape = SubResource("RectangleShape2D_fop3r")
one_way_collision = true
[node name="Collision2" type="CollisionShape2D" parent="."]
visible = false
position = Vector2(0, -6)
rotation = -1.5708
shape = SubResource("RectangleShape2D_fop3r")
one_way_collision = true
[node name="Hitbox" type="Area2D" parent="."]
visible = false
[node name="Shape" type="CollisionShape2D" parent="Hitbox"]
position = Vector2(0, -6)
shape = SubResource("RectangleShape2D_y8bq4")
[node name="LedgeDetectionCast" type="RayCast2D" parent="."]
position = Vector2(-8, -2)
target_position = Vector2(0, 3)
collision_mask = 2
[node name="VisibleOnScreenEnabler2D" type="VisibleOnScreenEnabler2D" parent="."]
self_modulate = Color(1, 1, 1, 0)
position = Vector2(0, -11)
scale = Vector2(1, 1.3)
[node name="EnemyPlayerDetection" type="Node" parent="." node_paths=PackedStringArray("hitbox")]
script = ExtResource("5_eu017")
hitbox = NodePath("../Hitbox")
metadata/_custom_type_script = "uid://chj8hu207lrh"
[node name="FireballDetection" type="Node" parent="." node_paths=PackedStringArray("hitbox")]
script = ExtResource("6_316n2")
hitbox = NodePath("../Hitbox")
play_sfx_on_hit = true
metadata/_custom_type_script = "uid://dri2d5jtu0fbq"
[node name="GibSpawner" type="Node" parent="." node_paths=PackedStringArray("visuals")]
script = ExtResource("7_5xvna")
visuals = NodePath("../DeathSprite")
metadata/_custom_type_script = "uid://c3gg32ivrlq8n"
[node name="BlockBouncingDetection" type="Node" parent="."]
script = ExtResource("8_n5sq7")
metadata/_custom_type_script = "uid://cmg61722ktg2m"
[node name="ShellDetection" type="Node" parent="." node_paths=PackedStringArray("hitbox")]
script = ExtResource("9_2w4oo")
hitbox = NodePath("../Hitbox")
[node name="ScoreNoteSpawner" type="Node" parent="."]
script = ExtResource("10_8v4fy")
add_score = true
metadata/_custom_type_script = "uid://5octqlf4ohel"
[node name="IcicleDetection" type="Node" parent="." node_paths=PackedStringArray("hitbox")]
script = ExtResource("11_bxryo")
hitbox = NodePath("../Hitbox")
metadata/_custom_type_script = "uid://dq860i312isk"
[node name="BasicEnemyMovement" type="Node" parent="."]
script = ExtResource("14_eu017")
auto_call = false
[node name="ExplosionDetection" type="Node" parent="." node_paths=PackedStringArray("hitbox")]
script = ExtResource("15_316n2")
hitbox = NodePath("../Hitbox")
[node name="TrackJoint" type="Node" parent="." node_paths=PackedStringArray("movement_node")]
script = ExtResource("17_n5sq7")
movement_node = NodePath("../BasicEnemyMovement")
metadata/_custom_type_script = "uid://d4a7yp6e55u8t"
[connection signal="killed" from="." to="GibSpawner" method="summon_gib"]
[connection signal="invincible_player_hit" from="EnemyPlayerDetection" to="." method="die_from_object"]
[connection signal="invincible_player_hit" from="EnemyPlayerDetection" to="ScoreNoteSpawner" method="spawn_note" binds= [200]]
[connection signal="player_hit" from="EnemyPlayerDetection" to="." method="damage_player"]
[connection signal="player_stomped_on" from="EnemyPlayerDetection" to="." method="stomped_on"]
[connection signal="block_bounced" from="BlockBouncingDetection" to="ScoreNoteSpawner" method="spawn_note" binds= [200]]
[connection signal="block_bounced" from="BlockBouncingDetection" to="." method="block_bounced" unbinds=1]
[connection signal="moving_shell_entered" from="ShellDetection" to="." method="die_from_object"]
[connection signal="icicle_detected" from="IcicleDetection" to="." method="die_from_object"]
[connection signal="explosion_entered" from="ExplosionDetection" to="." method="die_from_object"]
[connection signal="explosion_entered" from="ExplosionDetection" to="ScoreNoteSpawner" method="spawn_note" binds= [200]]

View File

@@ -0,0 +1,214 @@
[gd_scene load_steps=25 format=3 uid="uid://bxsay5e6dhcqb"]
[ext_resource type="Script" uid="uid://n123x5yuqpjd" path="res://Scripts/Classes/Entities/Enemies/DryBones.gd" id="1_8c647"]
[ext_resource type="Texture2D" uid="uid://c5snfukhcacyf" path="res://Assets/Sprites/Enemies/DryBones.png" id="2_qya46"]
[ext_resource type="Script" uid="uid://caq1qiwmy0mox" path="res://Scripts/Parts/BetterAnimatedSprite.gd" id="3_kio7v"]
[ext_resource type="Script" uid="uid://cbal8ms2oe1ik" path="res://Scripts/Classes/Components/ResourceSetterNew.gd" id="4_br3pe"]
[ext_resource type="Script" uid="uid://chj8hu207lrh" path="res://Scripts/Classes/Components/EnemyPlayerDetection.gd" id="4_y8gga"]
[ext_resource type="Script" uid="uid://dri2d5jtu0fbq" path="res://Scripts/Classes/Components/FireballDetection.gd" id="5_br3pe"]
[ext_resource type="JSON" path="res://Assets/Sprites/Enemies/DryBones.json" id="5_l4h6l"]
[ext_resource type="Script" uid="uid://bbww34oiexbx2" path="res://Scripts/Classes/Components/ShellDetection.gd" id="6_l4h6l"]
[ext_resource type="Script" uid="uid://5octqlf4ohel" path="res://Scripts/Classes/Components/ScoreNoteSpawner.gd" id="7_qya46"]
[ext_resource type="Script" uid="uid://dlq6o2rg1x7in" path="res://Scripts/Classes/Components/BasicEnemyMovement.gd" id="10_br3pe"]
[ext_resource type="Script" uid="uid://ba18grqjixded" path="res://Scripts/Classes/Components/ExplosionDetection.gd" id="11_l4h6l"]
[sub_resource type="AtlasTexture" id="AtlasTexture_w4qtl"]
atlas = ExtResource("2_qya46")
region = Rect2(48, 0, 24, 32)
[sub_resource type="AtlasTexture" id="AtlasTexture_2ewll"]
atlas = ExtResource("2_qya46")
region = Rect2(72, 0, 24, 32)
[sub_resource type="AtlasTexture" id="AtlasTexture_6txc0"]
atlas = ExtResource("2_qya46")
region = Rect2(72, 0, 24, 32)
[sub_resource type="AtlasTexture" id="AtlasTexture_ihwve"]
atlas = ExtResource("2_qya46")
region = Rect2(48, 0, 24, 32)
[sub_resource type="AtlasTexture" id="AtlasTexture_1jnbq"]
atlas = ExtResource("2_qya46")
region = Rect2(24, 0, 24, 32)
[sub_resource type="AtlasTexture" id="AtlasTexture_g0gtr"]
atlas = ExtResource("2_qya46")
region = Rect2(0, 0, 24, 32)
[sub_resource type="AtlasTexture" id="AtlasTexture_3rrs2"]
atlas = ExtResource("2_qya46")
region = Rect2(24, 0, 24, 32)
[sub_resource type="SpriteFrames" id="SpriteFrames_bqbi3"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_w4qtl")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_2ewll")
}],
"loop": false,
"name": &"Crumble",
"speed": 5.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_6txc0")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_ihwve")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_1jnbq")
}],
"loop": false,
"name": &"GetUp",
"speed": 5.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_g0gtr")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_3rrs2")
}],
"loop": true,
"name": &"Walk",
"speed": 5.0
}]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_cngyw"]
size = Vector2(8, 8)
[sub_resource type="RectangleShape2D" id="RectangleShape2D_tsi1c"]
size = Vector2(12, 14)
[sub_resource type="Animation" id="Animation_qya46"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Sprite:offset")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector2(0, 1)]
}
[sub_resource type="Animation" id="Animation_8c647"]
resource_name = "Shake"
length = 0.1
loop_mode = 2
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Sprite:offset")
tracks/0/interp = 2
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.1),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Vector2(-2, 1), Vector2(2, 1)]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_kio7v"]
_data = {
&"RESET": SubResource("Animation_qya46"),
&"Shake": SubResource("Animation_8c647")
}
[node name="DryBones" type="CharacterBody2D" node_paths=PackedStringArray("on_screen_enabler", "score_note_adder") groups=["Enemies"]]
collision_layer = 16
collision_mask = 50
script = ExtResource("1_8c647")
on_screen_enabler = NodePath("VisibleOnScreenEnabler2D")
score_note_adder = NodePath("ScoreNoteSpawner")
metadata/_custom_type_script = "uid://bpydbpyjk1mt4"
[node name="Sprite" type="AnimatedSprite2D" parent="."]
position = Vector2(0, -16)
scale = Vector2(-1, 1)
sprite_frames = SubResource("SpriteFrames_bqbi3")
animation = &"Walk"
autoplay = "Walk"
offset = Vector2(0, 1)
flip_h = true
script = ExtResource("3_kio7v")
metadata/_custom_type_script = "uid://caq1qiwmy0mox"
[node name="ResourceSetterNew" type="Node" parent="Sprite" node_paths=PackedStringArray("node_to_affect")]
script = ExtResource("4_br3pe")
node_to_affect = NodePath("..")
property_name = "sprite_frames"
resource_json = ExtResource("5_l4h6l")
metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
[node name="LCollision" type="CollisionShape2D" parent="."]
position = Vector2(0, -4)
rotation = 1.5708
shape = SubResource("RectangleShape2D_cngyw")
one_way_collision = true
[node name="RCollision" type="CollisionShape2D" parent="."]
position = Vector2(0, -4)
rotation = -1.5708
shape = SubResource("RectangleShape2D_cngyw")
one_way_collision = true
[node name="Hitbox" type="Area2D" parent="."]
[node name="Shape" type="CollisionShape2D" parent="Hitbox"]
position = Vector2(0, -7)
shape = SubResource("RectangleShape2D_tsi1c")
[node name="EnemyPlayerDetection" type="Node" parent="." node_paths=PackedStringArray("hitbox")]
script = ExtResource("4_y8gga")
hitbox = NodePath("../Hitbox")
metadata/_custom_type_script = "uid://chj8hu207lrh"
[node name="FireballDetection" type="Node" parent="." node_paths=PackedStringArray("hitbox")]
script = ExtResource("5_br3pe")
hitbox = NodePath("../Hitbox")
play_sfx_on_hit = true
metadata/_custom_type_script = "uid://dri2d5jtu0fbq"
[node name="ShellDetection" type="Node" parent="." node_paths=PackedStringArray("hitbox")]
script = ExtResource("6_l4h6l")
hitbox = NodePath("../Hitbox")
metadata/_custom_type_script = "uid://bbww34oiexbx2"
[node name="ShakeAnimation" type="AnimationPlayer" parent="."]
libraries = {
&"": SubResource("AnimationLibrary_kio7v")
}
[node name="VisibleOnScreenEnabler2D" type="VisibleOnScreenEnabler2D" parent="."]
position = Vector2(0, -9)
rect = Rect2(-10, -13, 20, 23)
[node name="ScoreNoteSpawner" type="Node" parent="."]
script = ExtResource("7_qya46")
metadata/_custom_type_script = "uid://5octqlf4ohel"
[node name="BasicEnemyMovement" type="Node" parent="."]
script = ExtResource("10_br3pe")
[node name="ExplosionDetection" type="Node" parent="." node_paths=PackedStringArray("hitbox")]
script = ExtResource("11_l4h6l")
hitbox = NodePath("../Hitbox")
metadata/_custom_type_script = "uid://ba18grqjixded"
[connection signal="killed" from="." to="." method="summon_particle" unbinds=1]
[connection signal="invincible_player_hit" from="EnemyPlayerDetection" to="." method="die_from_object"]
[connection signal="invincible_player_hit" from="EnemyPlayerDetection" to="ScoreNoteSpawner" method="spawn_note" binds= [200]]
[connection signal="player_hit" from="EnemyPlayerDetection" to="." method="damage_player"]
[connection signal="player_stomped_on" from="EnemyPlayerDetection" to="." method="stomped_on"]
[connection signal="moving_shell_entered" from="ShellDetection" to="." method="die_from_object"]
[connection signal="explosion_entered" from="ExplosionDetection" to="." method="die_from_object"]
[connection signal="explosion_entered" from="ExplosionDetection" to="ScoreNoteSpawner" method="spawn_note" binds= [200]]

View File

@@ -0,0 +1,205 @@
[gd_scene load_steps=28 format=3 uid="uid://cwhvsfp31cuu6"]
[ext_resource type="Script" uid="uid://cemetiu57dblq" path="res://Scripts/Classes/Entities/Enemies/FighterFly.gd" id="1_unlki"]
[ext_resource type="Texture2D" uid="uid://gnac5qwog2ar" path="res://Assets/Sprites/Enemies/FighterFly.png" id="2_jslnt"]
[ext_resource type="Script" uid="uid://caq1qiwmy0mox" path="res://Scripts/Parts/BetterAnimatedSprite.gd" id="3_j4row"]
[ext_resource type="Script" uid="uid://cbal8ms2oe1ik" path="res://Scripts/Classes/Components/ResourceSetterNew.gd" id="4_unlki"]
[ext_resource type="JSON" path="res://Assets/Sprites/Enemies/FighterFly.json" id="5_d7ynx"]
[ext_resource type="Script" uid="uid://chj8hu207lrh" path="res://Scripts/Classes/Components/EnemyPlayerDetection.gd" id="5_s0as8"]
[ext_resource type="Script" uid="uid://c3gg32ivrlq8n" path="res://Scripts/Classes/Components/GibSpawner.gd" id="6_d7ynx"]
[ext_resource type="Script" uid="uid://cmg61722ktg2m" path="res://Scripts/Classes/Components/BlockBouncingDetection.gd" id="7_nm5h2"]
[ext_resource type="Script" uid="uid://dri2d5jtu0fbq" path="res://Scripts/Classes/Components/FireballDetection.gd" id="8_s7wf1"]
[ext_resource type="Script" uid="uid://bbww34oiexbx2" path="res://Scripts/Classes/Components/ShellDetection.gd" id="9_wbo1r"]
[ext_resource type="Script" uid="uid://5octqlf4ohel" path="res://Scripts/Classes/Components/ScoreNoteSpawner.gd" id="10_0bgxg"]
[ext_resource type="Script" uid="uid://dq860i312isk" path="res://Scripts/Classes/Components/IcicleDetection.gd" id="11_aeemo"]
[ext_resource type="Script" uid="uid://dlq6o2rg1x7in" path="res://Scripts/Classes/Components/BasicEnemyMovement.gd" id="12_g551b"]
[ext_resource type="Script" uid="uid://cqif1li7otvpl" path="res://Scripts/Parts/SpriteFramesToJsonConverter.gd" id="14_unlki"]
[ext_resource type="Script" uid="uid://cmvlgsjmsk0v5" path="res://Scripts/Classes/Resources/ThemedResource.gd" id="15_s0as8"]
[ext_resource type="Script" uid="uid://ba18grqjixded" path="res://Scripts/Classes/Components/ExplosionDetection.gd" id="16_s0as8"]
[sub_resource type="AtlasTexture" id="AtlasTexture_nm5h2"]
atlas = ExtResource("2_jslnt")
region = Rect2(0, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_s7wf1"]
atlas = ExtResource("2_jslnt")
region = Rect2(16, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_d7ynx"]
atlas = ExtResource("2_jslnt")
region = Rect2(32, 0, 16, 16)
[sub_resource type="SpriteFrames" id="SpriteFrames_wbo1r"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_nm5h2")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_s7wf1")
}],
"loop": true,
"name": &"Fly",
"speed": 15.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_d7ynx")
}],
"loop": true,
"name": &"Idle",
"speed": 5.0
}]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_e62ic"]
size = Vector2(12, 12)
[sub_resource type="RectangleShape2D" id="RectangleShape2D_qm5my"]
size = Vector2(14, 14)
[sub_resource type="AtlasTexture" id="AtlasTexture_wbo1r"]
atlas = ExtResource("2_jslnt")
region = Rect2(0, 16, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_0bgxg"]
atlas = ExtResource("2_jslnt")
region = Rect2(16, 16, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_aeemo"]
atlas = ExtResource("2_jslnt")
region = Rect2(32, 16, 16, 16)
[sub_resource type="SpriteFrames" id="SpriteFrames_g551b"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_wbo1r")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_0bgxg")
}],
"loop": true,
"name": &"Fly",
"speed": 15.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_aeemo")
}],
"loop": true,
"name": &"Idle",
"speed": 5.0
}]
[sub_resource type="Resource" id="Resource_g1y3b"]
script = ExtResource("15_s0as8")
Overworld = SubResource("SpriteFrames_wbo1r")
Underground = SubResource("SpriteFrames_g551b")
metadata/_custom_type_script = "uid://cmvlgsjmsk0v5"
[node name="FighterFly" type="CharacterBody2D" node_paths=PackedStringArray("on_screen_enabler", "score_note_adder") groups=["Enemies"]]
collision_layer = 16
collision_mask = 50
script = ExtResource("1_unlki")
on_screen_enabler = NodePath("VisibleOnScreenEnabler2D")
score_note_adder = NodePath("ScoreNoteSpawner")
[node name="Sprite" type="AnimatedSprite2D" parent="."]
position = Vector2(0, -8)
sprite_frames = SubResource("SpriteFrames_wbo1r")
animation = &"Idle"
autoplay = "Fly"
frame_progress = 0.526965
script = ExtResource("3_j4row")
metadata/_custom_type_script = "uid://caq1qiwmy0mox"
[node name="ResourceSetterNew" type="Node" parent="Sprite" node_paths=PackedStringArray("node_to_affect")]
script = ExtResource("4_unlki")
node_to_affect = NodePath("..")
property_name = "sprite_frames"
resource_json = ExtResource("5_d7ynx")
metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
[node name="Collision" type="CollisionShape2D" parent="."]
position = Vector2(0, -6)
rotation = 1.5707964
shape = SubResource("RectangleShape2D_e62ic")
one_way_collision = true
[node name="Collision2" type="CollisionShape2D" parent="."]
position = Vector2(0, -6)
rotation = -1.5707964
shape = SubResource("RectangleShape2D_e62ic")
one_way_collision = true
[node name="Hitbox" type="Area2D" parent="."]
[node name="Shape" type="CollisionShape2D" parent="Hitbox"]
visible = false
position = Vector2(0, -7)
shape = SubResource("RectangleShape2D_qm5my")
[node name="EnemyPlayerDetection" type="Node" parent="." node_paths=PackedStringArray("hitbox")]
script = ExtResource("5_s0as8")
hitbox = NodePath("../Hitbox")
[node name="VisibleOnScreenEnabler2D" type="VisibleOnScreenEnabler2D" parent="."]
self_modulate = Color(1, 1, 1, 0)
position = Vector2(0, -8)
[node name="GibSpawner" type="Node" parent="." node_paths=PackedStringArray("visuals")]
script = ExtResource("6_d7ynx")
visuals = NodePath("../Sprite")
[node name="BlockBouncingDetection" type="Node" parent="."]
script = ExtResource("7_nm5h2")
[node name="FireballDetection" type="Node" parent="." node_paths=PackedStringArray("hitbox")]
script = ExtResource("8_s7wf1")
hitbox = NodePath("../Hitbox")
[node name="ShellDetection" type="Node" parent="." node_paths=PackedStringArray("hitbox")]
script = ExtResource("9_wbo1r")
hitbox = NodePath("../Hitbox")
metadata/_custom_type_script = "uid://bbww34oiexbx2"
[node name="ScoreNoteSpawner" type="Node" parent="."]
script = ExtResource("10_0bgxg")
add_score = true
[node name="Node" type="Node" parent="." node_paths=PackedStringArray("hitbox")]
script = ExtResource("11_aeemo")
hitbox = NodePath("../Hitbox")
[node name="BasicEnemyMovement" type="Node" parent="." node_paths=PackedStringArray("visuals")]
script = ExtResource("12_g551b")
move_speed = 30
bounce_on_land = true
bounce_height = -150
visuals = NodePath("../Sprite")
metadata/_custom_type_script = "uid://dlq6o2rg1x7in"
[node name="ThemedToJSONConverter" type="Node" parent="."]
script = ExtResource("14_unlki")
resource = SubResource("Resource_g1y3b")
json_file_path = "res://Assets/Sprites/Enemies/FighterFly.json"
metadata/_custom_type_script = "uid://cqif1li7otvpl"
[node name="ExplosionDetection" type="Node" parent="." node_paths=PackedStringArray("hitbox")]
script = ExtResource("16_s0as8")
hitbox = NodePath("../Hitbox")
metadata/_custom_type_script = "uid://ba18grqjixded"
[connection signal="killed" from="." to="GibSpawner" method="summon_gib"]
[connection signal="invincible_player_hit" from="EnemyPlayerDetection" to="." method="die_from_object"]
[connection signal="invincible_player_hit" from="EnemyPlayerDetection" to="ScoreNoteSpawner" method="spawn_note" binds= [100]]
[connection signal="player_hit" from="EnemyPlayerDetection" to="." method="damage_player"]
[connection signal="player_stomped_on" from="EnemyPlayerDetection" to="." method="damage_player"]
[connection signal="block_bounced" from="BlockBouncingDetection" to="." method="die_from_object"]
[connection signal="block_bounced" from="BlockBouncingDetection" to="ScoreNoteSpawner" method="spawn_note" binds= [100]]
[connection signal="fireball_hit" from="FireballDetection" to="." method="die_from_object"]
[connection signal="fireball_hit" from="FireballDetection" to="ScoreNoteSpawner" method="spawn_note" binds= [100]]
[connection signal="moving_shell_entered" from="ShellDetection" to="." method="die_from_object"]
[connection signal="icicle_detected" from="Node" to="." method="die_from_object"]
[connection signal="explosion_entered" from="ExplosionDetection" to="." method="die_from_object"]
[connection signal="explosion_entered" from="ExplosionDetection" to="ScoreNoteSpawner" method="spawn_note" binds= [100]]

View File

@@ -0,0 +1,180 @@
[gd_scene load_steps=24 format=3 uid="uid://dnx48rakxib6u"]
[ext_resource type="Script" uid="uid://dv18do583a3x0" path="res://Scripts/Classes/Entities/Enemies/Goomba.gd" id="1_4f3if"]
[ext_resource type="Texture2D" uid="uid://bvgp1xgj7cauc" path="res://Assets/Sprites/Enemies/Goomba.png" id="1_rvg4p"]
[ext_resource type="Script" uid="uid://chj8hu207lrh" path="res://Scripts/Classes/Components/EnemyPlayerDetection.gd" id="2_4f3if"]
[ext_resource type="Script" uid="uid://caq1qiwmy0mox" path="res://Scripts/Parts/BetterAnimatedSprite.gd" id="3_75r84"]
[ext_resource type="Script" uid="uid://c3gg32ivrlq8n" path="res://Scripts/Classes/Components/GibSpawner.gd" id="4_7ob4c"]
[ext_resource type="Script" uid="uid://cbal8ms2oe1ik" path="res://Scripts/Classes/Components/ResourceSetterNew.gd" id="5_75r84"]
[ext_resource type="Script" uid="uid://cmg61722ktg2m" path="res://Scripts/Classes/Components/BlockBouncingDetection.gd" id="5_ncruo"]
[ext_resource type="JSON" path="res://Assets/Sprites/Enemies/Goomba.json" id="6_magh7"]
[ext_resource type="Script" uid="uid://dri2d5jtu0fbq" path="res://Scripts/Classes/Components/FireballDetection.gd" id="6_yt1if"]
[ext_resource type="Script" uid="uid://bbww34oiexbx2" path="res://Scripts/Classes/Components/ShellDetection.gd" id="7_d04bf"]
[ext_resource type="Script" uid="uid://5octqlf4ohel" path="res://Scripts/Classes/Components/ScoreNoteSpawner.gd" id="8_e62ic"]
[ext_resource type="Script" uid="uid://dq860i312isk" path="res://Scripts/Classes/Components/IcicleDetection.gd" id="11_067r1"]
[ext_resource type="Script" uid="uid://blfnd65xcx78c" path="res://Scripts/Classes/Components/LedgeDetectionCast.gd" id="13_dpode"]
[ext_resource type="Script" uid="uid://dlq6o2rg1x7in" path="res://Scripts/Classes/Components/BasicEnemyMovement.gd" id="13_magh7"]
[ext_resource type="Script" uid="uid://ba18grqjixded" path="res://Scripts/Classes/Components/ExplosionDetection.gd" id="14_3aros"]
[ext_resource type="Script" uid="uid://d0mqkvopasu8k" path="res://Scripts/Classes/Components/SecondQuestReplaceComponent.gd" id="15_dpode"]
[ext_resource type="Script" uid="uid://d4a7yp6e55u8t" path="res://Scripts/Classes/Components/TrackJoint.gd" id="17_6o7qg"]
[ext_resource type="Script" uid="uid://maqpreddu5kg" path="res://Scripts/Classes/Components/LevelPersistance.gd" id="18_hkf3f"]
[sub_resource type="AtlasTexture" id="AtlasTexture_magh7"]
atlas = ExtResource("1_rvg4p")
region = Rect2(32, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_hkf3f"]
atlas = ExtResource("1_rvg4p")
region = Rect2(0, 0, 16, 16)
[sub_resource type="SpriteFrames" id="SpriteFrames_u44np"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_magh7")
}],
"loop": true,
"name": &"Stomped",
"speed": 5.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_hkf3f")
}],
"loop": true,
"name": &"Walk",
"speed": 5.0
}]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_e62ic"]
size = Vector2(12, 12)
[sub_resource type="RectangleShape2D" id="RectangleShape2D_qm5my"]
size = Vector2(14, 15)
[node name="Goomba" type="CharacterBody2D" node_paths=PackedStringArray("on_screen_enabler", "score_note_adder") groups=["Enemies"]]
collision_layer = 16
collision_mask = 50
floor_constant_speed = true
floor_max_angle = 1.3613569
script = ExtResource("1_4f3if")
on_screen_enabler = NodePath("VisibleOnScreenEnabler2D")
score_note_adder = NodePath("ScoreNoteSpawner")
[node name="Sprite" type="AnimatedSprite2D" parent="."]
position = Vector2(0, -8)
scale = Vector2(-1, 1)
sprite_frames = SubResource("SpriteFrames_u44np")
animation = &"Walk"
autoplay = "Walk"
frame_progress = 0.274184
offset = Vector2(0, 1)
flip_h = true
script = ExtResource("3_75r84")
metadata/_custom_type_script = "uid://caq1qiwmy0mox"
[node name="ResourceSetterNew" type="Node" parent="Sprite" node_paths=PackedStringArray("node_to_affect", "property_node")]
script = ExtResource("5_75r84")
node_to_affect = NodePath("..")
property_node = NodePath("../..")
property_name = "sprite_frames"
resource_json = ExtResource("6_magh7")
[node name="LCollision" type="CollisionShape2D" parent="."]
position = Vector2(0, -6)
rotation = 1.5708
shape = SubResource("RectangleShape2D_e62ic")
one_way_collision = true
[node name="RCollision" type="CollisionShape2D" parent="."]
position = Vector2(0, -6)
rotation = -1.5708
shape = SubResource("RectangleShape2D_e62ic")
one_way_collision = true
[node name="Hitbox" type="Area2D" parent="."]
collision_mask = 7
[node name="Shape" type="CollisionShape2D" parent="Hitbox"]
position = Vector2(0, -6.5)
shape = SubResource("RectangleShape2D_qm5my")
[node name="EnemyPlayerDetection" type="Node" parent="." node_paths=PackedStringArray("hitbox")]
script = ExtResource("2_4f3if")
hitbox = NodePath("../Hitbox")
[node name="VisibleOnScreenEnabler2D" type="VisibleOnScreenEnabler2D" parent="."]
self_modulate = Color(1, 1, 1, 0)
position = Vector2(0, -8)
[node name="GibSpawner" type="Node" parent="." node_paths=PackedStringArray("visuals")]
script = ExtResource("4_7ob4c")
visuals = NodePath("../Sprite")
[node name="BlockBouncingDetection" type="Node" parent="." node_paths=PackedStringArray("hitbox")]
script = ExtResource("5_ncruo")
detection_type = 1
hitbox = NodePath("../Hitbox")
[node name="FireballDetection" type="Node" parent="." node_paths=PackedStringArray("hitbox")]
script = ExtResource("6_yt1if")
hitbox = NodePath("../Hitbox")
[node name="ShellDetection" type="Node" parent="." node_paths=PackedStringArray("hitbox")]
script = ExtResource("7_d04bf")
hitbox = NodePath("../Hitbox")
metadata/_custom_type_script = "uid://bbww34oiexbx2"
[node name="ScoreNoteSpawner" type="Node" parent="."]
script = ExtResource("8_e62ic")
add_score = true
[node name="IcicleDetection" type="Node" parent="." node_paths=PackedStringArray("hitbox")]
script = ExtResource("11_067r1")
hitbox = NodePath("../Hitbox")
metadata/_custom_type_script = "uid://dq860i312isk"
[node name="Node2D" type="Node2D" parent="."]
[node name="LedgeDetectionCast" type="RayCast2D" parent="."]
position = Vector2(-2, -2)
target_position = Vector2(0, 3)
collision_mask = 2
script = ExtResource("13_dpode")
[node name="BasicEnemyMovement" type="Node" parent="."]
script = ExtResource("13_magh7")
[node name="ExplosionDetection" type="Node" parent="." node_paths=PackedStringArray("hitbox")]
script = ExtResource("14_3aros")
hitbox = NodePath("../Hitbox")
[node name="SecondQuestReplacer" type="Node" parent="."]
script = ExtResource("15_dpode")
new_scene = "uid://doo8617qiyp77"
metadata/_custom_type_script = "uid://d0mqkvopasu8k"
[node name="TrackJoint" type="Node" parent="." node_paths=PackedStringArray("movement_node")]
script = ExtResource("17_6o7qg")
movement_node = NodePath("../BasicEnemyMovement")
[node name="LevelPersistance" type="Node" parent="."]
script = ExtResource("18_hkf3f")
metadata/_custom_type_script = "uid://maqpreddu5kg"
[connection signal="killed" from="." to="GibSpawner" method="summon_gib"]
[connection signal="killed" from="." to="LevelPersistance" method="set_as_active" unbinds=1]
[connection signal="invincible_player_hit" from="EnemyPlayerDetection" to="." method="die_from_object"]
[connection signal="invincible_player_hit" from="EnemyPlayerDetection" to="ScoreNoteSpawner" method="spawn_note" binds= [100]]
[connection signal="player_hit" from="EnemyPlayerDetection" to="." method="damage_player"]
[connection signal="player_stomped_on" from="EnemyPlayerDetection" to="." method="stomped_on"]
[connection signal="player_stomped_on" from="EnemyPlayerDetection" to="LevelPersistance" method="set_as_active" unbinds=1]
[connection signal="block_bounced" from="BlockBouncingDetection" to="." method="die_from_object"]
[connection signal="block_bounced" from="BlockBouncingDetection" to="ScoreNoteSpawner" method="spawn_note" binds= [100]]
[connection signal="fireball_hit" from="FireballDetection" to="." method="die_from_object"]
[connection signal="fireball_hit" from="FireballDetection" to="ScoreNoteSpawner" method="spawn_note" binds= [100]]
[connection signal="moving_shell_entered" from="ShellDetection" to="." method="die_from_object"]
[connection signal="icicle_detected" from="IcicleDetection" to="." method="die_from_object" flags=3]
[connection signal="explosion_entered" from="ExplosionDetection" to="." method="die_from_object"]
[connection signal="explosion_entered" from="ExplosionDetection" to="ScoreNoteSpawner" method="spawn_note" binds= [100]]
[connection signal="enabled" from="LevelPersistance" to="." method="queue_free"]

View File

@@ -0,0 +1,16 @@
[gd_scene load_steps=3 format=3 uid="uid://bkxaywyw6emlc"]
[ext_resource type="PackedScene" uid="uid://dnx48rakxib6u" path="res://Scenes/Prefabs/Entities/Enemies/Goomba.tscn" id="1_lifw8"]
[ext_resource type="JSON" path="res://Assets/Sprites/Enemies/Goombrat.json" id="2_mhe8b"]
[node name="Goombrat" instance=ExtResource("1_lifw8")]
[node name="ResourceSetterNew" parent="Sprite" index="0"]
resource_json = ExtResource("2_mhe8b")
[node name="LedgeDetectionCast" parent="." index="13"]
position = Vector2(-4, -5)
target_position = Vector2(0, 8)
[node name="BasicEnemyMovement" parent="." index="14" node_paths=PackedStringArray("ledge_detection_cast")]
ledge_detection_cast = NodePath("../LedgeDetectionCast")

View File

@@ -0,0 +1,210 @@
[gd_scene load_steps=24 format=3 uid="uid://bdirphnfabey8"]
[ext_resource type="Texture2D" uid="uid://dbq7oso3fo4n6" path="res://Assets/Sprites/Enemies/CheepCheep.png" id="1_123qd"]
[ext_resource type="Script" uid="uid://b475vfhcp2f30" path="res://Scripts/Classes/Entities/Enemies/SwimmingCheepCheep.gd" id="1_a3qb1"]
[ext_resource type="Script" uid="uid://caq1qiwmy0mox" path="res://Scripts/Parts/BetterAnimatedSprite.gd" id="3_1gkhc"]
[ext_resource type="Script" uid="uid://chj8hu207lrh" path="res://Scripts/Classes/Components/EnemyPlayerDetection.gd" id="3_a5qfu"]
[ext_resource type="Script" uid="uid://cbal8ms2oe1ik" path="res://Scripts/Classes/Components/ResourceSetterNew.gd" id="4_1gkhc"]
[ext_resource type="Script" uid="uid://dri2d5jtu0fbq" path="res://Scripts/Classes/Components/FireballDetection.gd" id="4_cd02n"]
[ext_resource type="JSON" path="res://Assets/Sprites/Enemies/GreenCheepCheep.json" id="5_8m1k0"]
[ext_resource type="Script" uid="uid://c3gg32ivrlq8n" path="res://Scripts/Classes/Components/GibSpawner.gd" id="5_qwki7"]
[ext_resource type="Script" uid="uid://5octqlf4ohel" path="res://Scripts/Classes/Components/ScoreNoteSpawner.gd" id="6_qwki7"]
[ext_resource type="Script" uid="uid://d4a7yp6e55u8t" path="res://Scripts/Classes/Components/TrackJoint.gd" id="10_8m1k0"]
[ext_resource type="Script" uid="uid://ctfbuoxtnnl0q" path="res://Scripts/Classes/Components/EditorPropertyExposer.gd" id="11_21r3x"]
[ext_resource type="Script" uid="uid://b8vmbtoaaq5nc" path="res://Scripts/Parts/EditorToggleDetection.gd" id="12_si7cd"]
[ext_resource type="Script" uid="uid://ba18grqjixded" path="res://Scripts/Classes/Components/ExplosionDetection.gd" id="13_m2mkg"]
[sub_resource type="AtlasTexture" id="AtlasTexture_si7cd"]
atlas = ExtResource("1_123qd")
region = Rect2(0, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_m2mkg"]
atlas = ExtResource("1_123qd")
region = Rect2(16, 0, 16, 16)
[sub_resource type="SpriteFrames" id="SpriteFrames_pyihc"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_si7cd")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_m2mkg")
}],
"loop": true,
"name": &"default",
"speed": 5.0
}]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_cd02n"]
size = Vector2(10, 10)
[sub_resource type="Animation" id="Animation_a3qb1"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Sprite:frame")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [0]
}
[sub_resource type="Animation" id="Animation_iib8n"]
resource_name = "Swim"
length = 0.4
loop_mode = 1
step = 0.1
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Sprite:frame")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.2),
"transitions": PackedFloat32Array(1, 1),
"update": 1,
"values": [0, 1]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_a5qfu"]
_data = {
&"RESET": SubResource("Animation_a3qb1"),
&"Swim": SubResource("Animation_iib8n")
}
[sub_resource type="Animation" id="Animation_b7un4"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Sprite:position")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector2(0, -8)]
}
[sub_resource type="Animation" id="Animation_qwki7"]
resource_name = "Wave"
length = 2.0
loop_mode = 2
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Sprite:position")
tracks/0/interp = 2
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 1, 2),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 0,
"values": [Vector2(0, -16), Vector2(0, -8), Vector2(0, 0)]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_reflr"]
_data = {
&"RESET": SubResource("Animation_b7un4"),
&"Wave": SubResource("Animation_qwki7")
}
[node name="CheepCheep" type="CharacterBody2D" node_paths=PackedStringArray("on_screen_enabler", "score_note_adder") groups=["Enemies"]]
script = ExtResource("1_a3qb1")
on_screen_enabler = NodePath("Sprite/VisibleOnScreenEnabler2D")
score_note_adder = NodePath("ScoreNoteSpawner")
[node name="Sprite" type="AnimatedSprite2D" parent="."]
position = Vector2(0, -8)
scale = Vector2(-1, 1)
sprite_frames = SubResource("SpriteFrames_pyihc")
flip_h = true
script = ExtResource("3_1gkhc")
metadata/_custom_type_script = "uid://caq1qiwmy0mox"
[node name="Hitbox" type="Area2D" parent="Sprite"]
position = Vector2(0, 8)
rotation = 3.14159
scale = Vector2(1, -1)
[node name="Collision" type="CollisionShape2D" parent="Sprite/Hitbox"]
position = Vector2(0, -8)
shape = SubResource("RectangleShape2D_cd02n")
[node name="VisibleOnScreenEnabler2D" type="VisibleOnScreenEnabler2D" parent="Sprite"]
rotation = 3.14159
scale = Vector2(1, -1)
enable_node_path = NodePath("../..")
[node name="ResourceSetterNew" type="Node" parent="Sprite" node_paths=PackedStringArray("node_to_affect")]
script = ExtResource("4_1gkhc")
node_to_affect = NodePath("..")
property_name = "sprite_frames"
resource_json = ExtResource("5_8m1k0")
metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
[node name="Animations" type="AnimationPlayer" parent="."]
libraries = {
&"": SubResource("AnimationLibrary_a5qfu")
}
autoplay = "Swim"
[node name="EnemyPlayerDetection" type="Node" parent="." node_paths=PackedStringArray("hitbox")]
script = ExtResource("3_a5qfu")
hitbox = NodePath("../Sprite/Hitbox")
metadata/_custom_type_script = "uid://chj8hu207lrh"
[node name="WaveAnimations" type="AnimationPlayer" parent="."]
libraries = {
&"": SubResource("AnimationLibrary_reflr")
}
[node name="FireballDetection" type="Node" parent="." node_paths=PackedStringArray("hitbox")]
script = ExtResource("4_cd02n")
hitbox = NodePath("../Sprite/Hitbox")
metadata/_custom_type_script = "uid://dri2d5jtu0fbq"
[node name="GibSpawner" type="Node" parent="." node_paths=PackedStringArray("visuals")]
script = ExtResource("5_qwki7")
visuals = NodePath("../Sprite")
metadata/_custom_type_script = "uid://c3gg32ivrlq8n"
[node name="ScoreNoteSpawner" type="Node" parent="."]
script = ExtResource("6_qwki7")
add_score = true
metadata/_custom_type_script = "uid://5octqlf4ohel"
[node name="TrackJoint" type="Node" parent="."]
script = ExtResource("10_8m1k0")
metadata/_custom_type_script = "uid://d4a7yp6e55u8t"
[node name="PropertyExposer" type="Node" parent="."]
script = ExtResource("11_21r3x")
properties = Array[String](["movement_type"])
metadata/_custom_type_script = "uid://ctfbuoxtnnl0q"
[node name="LevelEditorToggleDetection" type="Node" parent="."]
script = ExtResource("12_si7cd")
metadata/_custom_type_script = "uid://b8vmbtoaaq5nc"
[node name="ExplosionDetection" type="Node" parent="." node_paths=PackedStringArray("hitbox")]
script = ExtResource("13_m2mkg")
hitbox = NodePath("../Sprite/Hitbox")
metadata/_custom_type_script = "uid://ba18grqjixded"
[connection signal="killed" from="." to="GibSpawner" method="summon_gib"]
[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="GibSpawner" method="stomp_die"]
[connection signal="fireball_hit" from="FireballDetection" to="." method="die_from_object"]
[connection signal="fireball_hit" from="FireballDetection" to="ScoreNoteSpawner" method="spawn_note" binds= [200]]
[connection signal="toggled" from="LevelEditorToggleDetection" to="." method="_ready"]
[connection signal="explosion_entered" from="ExplosionDetection" to="." method="die_from_object"]
[connection signal="explosion_entered" from="ExplosionDetection" to="ScoreNoteSpawner" method="spawn_note" binds= [200]]

View File

@@ -0,0 +1,12 @@
[gd_scene load_steps=2 format=3 uid="uid://4fwln7wo5cja"]
[ext_resource type="PackedScene" uid="uid://r6dlmokkdyar" path="res://Scenes/Prefabs/Entities/Enemies/GreenKoopaTroopa.tscn" id="1_j41ky"]
[node name="GreenKoopaTroopa" instance=ExtResource("1_j41ky")]
winged = true
[node name="Wing" parent="Sprite" index="1"]
visible = true
[node name="BasicEnemyMovement" parent="." index="14"]
bounce_height = -250

View File

@@ -0,0 +1,200 @@
[gd_scene load_steps=25 format=3 uid="uid://r6dlmokkdyar"]
[ext_resource type="Script" uid="uid://q8gx0l64pcjh" path="res://Scripts/Classes/Entities/Enemies/KoopaTroopa.gd" id="1_ykjo1"]
[ext_resource type="Texture2D" uid="uid://cy6v7tdtxebs5" path="res://Assets/Sprites/Enemies/KoopaTroopa.png" id="2_ykjo1"]
[ext_resource type="Script" uid="uid://caq1qiwmy0mox" path="res://Scripts/Parts/BetterAnimatedSprite.gd" id="3_2rsfy"]
[ext_resource type="Script" uid="uid://chj8hu207lrh" path="res://Scripts/Classes/Components/EnemyPlayerDetection.gd" id="4_1sj6f"]
[ext_resource type="Script" uid="uid://cbal8ms2oe1ik" path="res://Scripts/Classes/Components/ResourceSetterNew.gd" id="4_71l08"]
[ext_resource type="Script" uid="uid://dri2d5jtu0fbq" path="res://Scripts/Classes/Components/FireballDetection.gd" id="5_8y4pd"]
[ext_resource type="JSON" path="res://Assets/Sprites/Enemies/GreenKoopaTroopa.json" id="5_mook0"]
[ext_resource type="JSON" path="res://Assets/Sprites/Enemies/GreenKoopaShell.json" id="6_71l08"]
[ext_resource type="Script" uid="uid://c3gg32ivrlq8n" path="res://Scripts/Classes/Components/GibSpawner.gd" id="6_fop3r"]
[ext_resource type="PackedScene" uid="uid://bupy7th8ln45c" path="res://Scenes/Parts/Wing.tscn" id="6_gkyfa"]
[ext_resource type="Script" uid="uid://cmg61722ktg2m" path="res://Scripts/Classes/Components/BlockBouncingDetection.gd" id="7_fop3r"]
[ext_resource type="Script" uid="uid://blfnd65xcx78c" path="res://Scripts/Classes/Components/LedgeDetectionCast.gd" id="8_gkyfa"]
[ext_resource type="Script" uid="uid://bbww34oiexbx2" path="res://Scripts/Classes/Components/ShellDetection.gd" id="8_y8bq4"]
[ext_resource type="Script" uid="uid://5octqlf4ohel" path="res://Scripts/Classes/Components/ScoreNoteSpawner.gd" id="9_gf50m"]
[ext_resource type="Script" uid="uid://dq860i312isk" path="res://Scripts/Classes/Components/IcicleDetection.gd" id="12_iydhw"]
[ext_resource type="Script" uid="uid://dlq6o2rg1x7in" path="res://Scripts/Classes/Components/BasicEnemyMovement.gd" id="15_71l08"]
[ext_resource type="Script" uid="uid://ba18grqjixded" path="res://Scripts/Classes/Components/ExplosionDetection.gd" id="16_dgip2"]
[ext_resource type="Script" uid="uid://d4a7yp6e55u8t" path="res://Scripts/Classes/Components/TrackJoint.gd" id="18_rldwo"]
[ext_resource type="Script" uid="uid://maqpreddu5kg" path="res://Scripts/Classes/Components/LevelPersistance.gd" id="19_j14in"]
[sub_resource type="AtlasTexture" id="AtlasTexture_71l08"]
atlas = ExtResource("2_ykjo1")
region = Rect2(0, 0, 16, 32)
[sub_resource type="AtlasTexture" id="AtlasTexture_dgip2"]
atlas = ExtResource("2_ykjo1")
region = Rect2(16, 0, 16, 32)
[sub_resource type="SpriteFrames" id="SpriteFrames_anxyg"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_71l08")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_dgip2")
}],
"loop": true,
"name": &"Walk",
"speed": 5.0
}]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_fop3r"]
size = Vector2(12, 12)
[sub_resource type="RectangleShape2D" id="RectangleShape2D_y8bq4"]
size = Vector2(12, 13)
[node name="GreenKoopaTroopa" type="CharacterBody2D" node_paths=PackedStringArray("on_screen_enabler", "score_note_adder") groups=["Enemies"]]
disable_mode = 1
collision_layer = 16
collision_mask = 50
script = ExtResource("1_ykjo1")
shell_scene = "uid://bowadxqfmg636"
on_screen_enabler = NodePath("VisibleOnScreenEnabler2D")
score_note_adder = NodePath("ScoreNoteSpawner")
metadata/_custom_type_script = "uid://bpydbpyjk1mt4"
[node name="Sprite" type="AnimatedSprite2D" parent="."]
position = Vector2(0, -16)
scale = Vector2(-1, 1)
sprite_frames = SubResource("SpriteFrames_anxyg")
animation = &"Walk"
autoplay = "Walk"
offset = Vector2(0, 1)
flip_h = true
script = ExtResource("3_2rsfy")
metadata/_custom_type_script = "uid://caq1qiwmy0mox"
[node name="ResourceSetterNew" type="Node" parent="Sprite" node_paths=PackedStringArray("node_to_affect")]
script = ExtResource("4_71l08")
node_to_affect = NodePath("..")
property_name = "sprite_frames"
resource_json = ExtResource("5_mook0")
metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
[node name="Wing" parent="Sprite" instance=ExtResource("6_gkyfa")]
unique_name_in_owner = true
visible = false
position = Vector2(-8, 3)
autoplay = "Flap"
frame_progress = 0.0
flip_h = true
[node name="DeathSprite" type="AnimatedSprite2D" parent="."]
visible = false
position = Vector2(0, -8)
script = ExtResource("3_2rsfy")
metadata/_custom_type_script = "uid://caq1qiwmy0mox"
[node name="ResourceSetterNew" type="Node" parent="DeathSprite" node_paths=PackedStringArray("node_to_affect")]
script = ExtResource("4_71l08")
node_to_affect = NodePath("..")
property_name = "sprite_frames"
resource_json = ExtResource("6_71l08")
metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
[node name="Collision" type="CollisionShape2D" parent="."]
visible = false
position = Vector2(0, -6)
rotation = 1.5708
shape = SubResource("RectangleShape2D_fop3r")
one_way_collision = true
[node name="Collision2" type="CollisionShape2D" parent="."]
visible = false
position = Vector2(0, -6)
rotation = -1.5708
shape = SubResource("RectangleShape2D_fop3r")
one_way_collision = true
[node name="Hitbox" type="Area2D" parent="."]
collision_mask = 7
[node name="Shape" type="CollisionShape2D" parent="Hitbox"]
position = Vector2(0, -5.5)
shape = SubResource("RectangleShape2D_y8bq4")
[node name="LedgeDetectionCast" type="RayCast2D" parent="."]
position = Vector2(-8, -2)
target_position = Vector2(0, 3)
collision_mask = 2
script = ExtResource("8_gkyfa")
metadata/_custom_type_script = "uid://blfnd65xcx78c"
[node name="VisibleOnScreenEnabler2D" type="VisibleOnScreenEnabler2D" parent="."]
self_modulate = Color(1, 1, 1, 0)
position = Vector2(0, -11)
scale = Vector2(1, 1.3)
[node name="EnemyPlayerDetection" type="Node" parent="." node_paths=PackedStringArray("hitbox")]
script = ExtResource("4_1sj6f")
hitbox = NodePath("../Hitbox")
metadata/_custom_type_script = "uid://chj8hu207lrh"
[node name="FireballDetection" type="Node" parent="." node_paths=PackedStringArray("hitbox")]
script = ExtResource("5_8y4pd")
hitbox = NodePath("../Hitbox")
metadata/_custom_type_script = "uid://dri2d5jtu0fbq"
[node name="GibSpawner" type="Node" parent="." node_paths=PackedStringArray("visuals")]
script = ExtResource("6_fop3r")
visuals = NodePath("../DeathSprite")
metadata/_custom_type_script = "uid://c3gg32ivrlq8n"
[node name="BlockBouncingDetection" type="Node" parent="." node_paths=PackedStringArray("hitbox")]
script = ExtResource("7_fop3r")
detection_type = 1
hitbox = NodePath("../Hitbox")
metadata/_custom_type_script = "uid://cmg61722ktg2m"
[node name="ShellDetection" type="Node" parent="." node_paths=PackedStringArray("hitbox")]
script = ExtResource("8_y8bq4")
hitbox = NodePath("../Hitbox")
[node name="ScoreNoteSpawner" type="Node" parent="."]
script = ExtResource("9_gf50m")
add_score = true
metadata/_custom_type_script = "uid://5octqlf4ohel"
[node name="IcicleDetection" type="Node" parent="." node_paths=PackedStringArray("hitbox")]
script = ExtResource("12_iydhw")
hitbox = NodePath("../Hitbox")
metadata/_custom_type_script = "uid://dq860i312isk"
[node name="BasicEnemyMovement" type="Node" parent="."]
script = ExtResource("15_71l08")
auto_call = false
[node name="ExplosionDetection" type="Node" parent="." node_paths=PackedStringArray("hitbox")]
script = ExtResource("16_dgip2")
hitbox = NodePath("../Hitbox")
[node name="TrackJoint" type="Node" parent="." node_paths=PackedStringArray("movement_node")]
script = ExtResource("18_rldwo")
movement_node = NodePath("../BasicEnemyMovement")
metadata/_custom_type_script = "uid://d4a7yp6e55u8t"
[node name="LevelPersistance" type="Node" parent="."]
script = ExtResource("19_j14in")
metadata/_custom_type_script = "uid://maqpreddu5kg"
[connection signal="killed" from="." to="GibSpawner" method="summon_gib"]
[connection signal="killed" from="." to="LevelPersistance" method="set_as_active" unbinds=1]
[connection signal="invincible_player_hit" from="EnemyPlayerDetection" to="." method="die_from_object"]
[connection signal="invincible_player_hit" from="EnemyPlayerDetection" to="ScoreNoteSpawner" method="spawn_note" binds= [200]]
[connection signal="player_hit" from="EnemyPlayerDetection" to="." method="damage_player"]
[connection signal="player_stomped_on" from="EnemyPlayerDetection" to="." method="stomped_on"]
[connection signal="player_stomped_on" from="EnemyPlayerDetection" to="LevelPersistance" method="set_as_active" unbinds=1]
[connection signal="fireball_hit" from="FireballDetection" to="." method="die_from_object"]
[connection signal="fireball_hit" from="FireballDetection" to="ScoreNoteSpawner" method="spawn_note" binds= [200]]
[connection signal="block_bounced" from="BlockBouncingDetection" to="ScoreNoteSpawner" method="spawn_note" binds= [200]]
[connection signal="block_bounced" from="BlockBouncingDetection" to="." method="block_bounced" unbinds=1]
[connection signal="moving_shell_entered" from="ShellDetection" to="." method="die_from_object"]
[connection signal="icicle_detected" from="IcicleDetection" to="." method="die_from_object"]
[connection signal="explosion_entered" from="ExplosionDetection" to="." method="die_from_object"]
[connection signal="explosion_entered" from="ExplosionDetection" to="ScoreNoteSpawner" method="spawn_note" binds= [200]]
[connection signal="enabled" from="LevelPersistance" to="." method="queue_free"]

View File

@@ -0,0 +1,19 @@
[gd_scene load_steps=4 format=3 uid="uid://w2ubxsaw6ofp"]
[ext_resource type="PackedScene" uid="uid://4fwln7wo5cja" path="res://Scenes/Prefabs/Entities/Enemies/GreenKoopaParaTroopa.tscn" id="1_pd6rg"]
[ext_resource type="Script" uid="uid://cpwloakvp672a" path="res://Scripts/Parts/EditorVisibleNode.gd" id="2_6kidr"]
[ext_resource type="Texture2D" uid="uid://dpdrrkqtcedgm" path="res://Assets/Sprites/Tilesets/DottedLine.png" id="3_kfyly"]
[node name="GreenKoopaTroopa" instance=ExtResource("1_pd6rg")]
metadata/fly_2 = true
[node name="LevelEditorVisibleNode" type="Node2D" parent="." index="18"]
script = ExtResource("2_6kidr")
metadata/_custom_type_script = "uid://cpwloakvp672a"
[node name="Line2D" type="Line2D" parent="LevelEditorVisibleNode" index="0"]
texture_repeat = 2
points = PackedVector2Array(0, 0, -96, 0)
width = 1.0
texture = ExtResource("3_kfyly")
texture_mode = 1

View File

@@ -0,0 +1,7 @@
[gd_scene load_steps=2 format=3 uid="uid://b0or5x44nv260"]
[ext_resource type="PackedScene" uid="uid://duptcik2j0b04" path="res://Scenes/Prefabs/Entities/Enemies/Bowser.tscn" id="1_176p2"]
[node name="HammerBowser" instance=ExtResource("1_176p2")]
can_hammer = true
can_fire = false

View File

@@ -0,0 +1,331 @@
[gd_scene load_steps=36 format=3 uid="uid://kr7i2kf6rew0"]
[ext_resource type="Script" uid="uid://b8gdlotx0at6x" path="res://Scripts/Classes/Entities/Enemies/HammerBro.gd" id="1_8mo24"]
[ext_resource type="Texture2D" uid="uid://l3l3icupve4t" path="res://Assets/Sprites/Enemies/HammerBro.png" id="2_8mo24"]
[ext_resource type="Texture2D" uid="uid://3xmhfi556p3s" path="res://Assets/Sprites/Items/Hammer.png" id="3_dywvb"]
[ext_resource type="Script" uid="uid://caq1qiwmy0mox" path="res://Scripts/Parts/BetterAnimatedSprite.gd" id="3_hx42c"]
[ext_resource type="Script" uid="uid://chj8hu207lrh" path="res://Scripts/Classes/Components/EnemyPlayerDetection.gd" id="5_i0wjw"]
[ext_resource type="JSON" path="res://Assets/Sprites/Items/Hammer.json" id="6_0w8yj"]
[ext_resource type="Script" uid="uid://cmg61722ktg2m" path="res://Scripts/Classes/Components/BlockBouncingDetection.gd" id="6_1mp8k"]
[ext_resource type="Script" uid="uid://cmvlgsjmsk0v5" path="res://Scripts/Classes/Resources/ThemedResource.gd" id="6_hx42c"]
[ext_resource type="Script" uid="uid://cbal8ms2oe1ik" path="res://Scripts/Classes/Components/ResourceSetterNew.gd" id="7_pvn5i"]
[ext_resource type="Script" uid="uid://dri2d5jtu0fbq" path="res://Scripts/Classes/Components/FireballDetection.gd" id="7_scjjh"]
[ext_resource type="JSON" path="res://Assets/Sprites/Enemies/HammerBro.json" id="8_0w8yj"]
[ext_resource type="Script" uid="uid://c3gg32ivrlq8n" path="res://Scripts/Classes/Components/GibSpawner.gd" id="8_1mp8k"]
[ext_resource type="Script" uid="uid://5octqlf4ohel" path="res://Scripts/Classes/Components/ScoreNoteSpawner.gd" id="9_scjjh"]
[ext_resource type="Script" uid="uid://bbww34oiexbx2" path="res://Scripts/Classes/Components/ShellDetection.gd" id="12_hx42c"]
[ext_resource type="Script" uid="uid://cqif1li7otvpl" path="res://Scripts/Parts/SpriteFramesToJsonConverter.gd" id="15_2r2js"]
[ext_resource type="Script" uid="uid://ba18grqjixded" path="res://Scripts/Classes/Components/ExplosionDetection.gd" id="16_0w8yj"]
[ext_resource type="Script" uid="uid://d4a7yp6e55u8t" path="res://Scripts/Classes/Components/TrackJoint.gd" id="17_2r2js"]
[sub_resource type="AtlasTexture" id="AtlasTexture_pvn5i"]
atlas = ExtResource("2_8mo24")
region = Rect2(32, 0, 16, 24)
[sub_resource type="AtlasTexture" id="AtlasTexture_0w8yj"]
atlas = ExtResource("2_8mo24")
region = Rect2(48, 0, 16, 24)
[sub_resource type="AtlasTexture" id="AtlasTexture_2r2js"]
atlas = ExtResource("2_8mo24")
region = Rect2(0, 0, 16, 24)
[sub_resource type="AtlasTexture" id="AtlasTexture_dq4jl"]
atlas = ExtResource("2_8mo24")
region = Rect2(16, 0, 16, 24)
[sub_resource type="SpriteFrames" id="SpriteFrames_cl1av"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_pvn5i")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_0w8yj")
}],
"loop": true,
"name": &"Hammer",
"speed": 5.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_2r2js")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_dq4jl")
}],
"loop": true,
"name": &"Idle",
"speed": 5.0
}]
[sub_resource type="AtlasTexture" id="AtlasTexture_hx42c"]
atlas = ExtResource("3_dywvb")
region = Rect2(0, 0, 16, 16)
[sub_resource type="Animation" id="Animation_1mp8k"]
resource_name = "Movement"
loop_mode = 2
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Sprite:position")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 1),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Vector2(8, -12), Vector2(-8, -12)]
}
[sub_resource type="Animation" id="Animation_scjjh"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Sprite:position")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector2(0, -12)]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_2vqj5"]
_data = {
&"Movement": SubResource("Animation_1mp8k"),
&"RESET": SubResource("Animation_scjjh")
}
[sub_resource type="RectangleShape2D" id="RectangleShape2D_dywvb"]
size = Vector2(8, 16)
[sub_resource type="RectangleShape2D" id="RectangleShape2D_2vqj5"]
size = Vector2(12, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_eel5y"]
atlas = ExtResource("2_8mo24")
region = Rect2(32, 24, 16, 24)
[sub_resource type="AtlasTexture" id="AtlasTexture_cl1av"]
atlas = ExtResource("2_8mo24")
region = Rect2(48, 24, 16, 24)
[sub_resource type="AtlasTexture" id="AtlasTexture_ccgvu"]
atlas = ExtResource("2_8mo24")
region = Rect2(0, 24, 16, 24)
[sub_resource type="AtlasTexture" id="AtlasTexture_2u435"]
atlas = ExtResource("2_8mo24")
region = Rect2(16, 24, 16, 24)
[sub_resource type="SpriteFrames" id="SpriteFrames_6r0gb"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_eel5y")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_cl1av")
}],
"loop": true,
"name": &"Hammer",
"speed": 5.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_ccgvu")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_2u435")
}],
"loop": true,
"name": &"Idle",
"speed": 5.0
}]
[sub_resource type="SpriteFrames" id="SpriteFrames_5o1ie"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_eel5y")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_cl1av")
}],
"loop": true,
"name": &"Hammer",
"speed": 5.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_ccgvu")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_2u435")
}],
"loop": true,
"name": &"Idle",
"speed": 5.0
}]
[sub_resource type="Resource" id="Resource_pvn5i"]
script = ExtResource("6_hx42c")
Overworld = SubResource("SpriteFrames_cl1av")
Underground = SubResource("SpriteFrames_5o1ie")
Castle = SubResource("SpriteFrames_6r0gb")
metadata/_custom_type_script = ExtResource("6_hx42c")
[node name="HammerBro" type="CharacterBody2D" node_paths=PackedStringArray("on_screen_enabler", "score_note_adder") groups=["Enemies"]]
collision_layer = 16
collision_mask = 2
script = ExtResource("1_8mo24")
on_screen_enabler = NodePath("VisibleOnScreenEnabler2D")
score_note_adder = NodePath("ScoreNoteSpawner")
metadata/_custom_type_script = "uid://bpydbpyjk1mt4"
[node name="Sprite" type="AnimatedSprite2D" parent="."]
position = Vector2(0, -12)
scale = Vector2(-1, 1)
sprite_frames = SubResource("SpriteFrames_cl1av")
animation = &"Idle"
frame_progress = 0.755197
offset = Vector2(2, 0)
flip_h = true
script = ExtResource("3_hx42c")
metadata/_custom_type_script = "uid://caq1qiwmy0mox"
[node name="Hammer" type="Sprite2D" parent="Sprite"]
visible = false
show_behind_parent = true
position = Vector2(0, -17)
texture = SubResource("AtlasTexture_hx42c")
flip_h = true
[node name="ResourceSetterNew" type="Node" parent="Sprite/Hammer" node_paths=PackedStringArray("node_to_affect")]
script = ExtResource("7_pvn5i")
node_to_affect = NodePath("..")
property_name = "texture"
mode = 1
resource_json = ExtResource("6_0w8yj")
metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
[node name="ResourceSetterNew" type="Node" parent="Sprite" node_paths=PackedStringArray("node_to_affect")]
script = ExtResource("7_pvn5i")
node_to_affect = NodePath("..")
property_name = "sprite_frames"
resource_json = ExtResource("8_0w8yj")
metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
[node name="MovementAnimations" type="AnimationPlayer" parent="."]
libraries = {
&"": SubResource("AnimationLibrary_2vqj5")
}
[node name="Collision" type="CollisionShape2D" parent="."]
visible = false
position = Vector2(0, -8)
shape = SubResource("RectangleShape2D_dywvb")
[node name="BlockDetect" type="RayCast2D" parent="."]
position = Vector2(0, 17)
target_position = Vector2(0, 24)
collision_mask = 2
hit_from_inside = true
[node name="UpBlock" type="RayCast2D" parent="."]
visible = false
position = Vector2(0, -32)
target_position = Vector2(0, -24)
collision_mask = 2
hit_from_inside = true
[node name="JumpTimer" type="Timer" parent="."]
wait_time = 4.0
one_shot = true
[node name="HammerTimer" type="Timer" parent="."]
one_shot = true
[node name="EnemyPlayerDetection" type="Node" parent="." node_paths=PackedStringArray("hitbox")]
script = ExtResource("5_i0wjw")
hitbox = NodePath("../Hitbox")
metadata/_custom_type_script = "uid://chj8hu207lrh"
[node name="Hitbox" type="Area2D" parent="."]
[node name="Shape" type="CollisionShape2D" parent="Hitbox"]
visible = false
position = Vector2(0, -8)
shape = SubResource("RectangleShape2D_2vqj5")
[node name="BlockBouncingDetection" type="Node" parent="." node_paths=PackedStringArray("hitbox")]
script = ExtResource("6_1mp8k")
hitbox = NodePath("../Hitbox")
metadata/_custom_type_script = "uid://cmg61722ktg2m"
[node name="FireballDetection" type="Node" parent="." node_paths=PackedStringArray("hitbox")]
script = ExtResource("7_scjjh")
hitbox = NodePath("../Hitbox")
metadata/_custom_type_script = "uid://dri2d5jtu0fbq"
[node name="GibSpawner" type="Node" parent="." node_paths=PackedStringArray("visuals")]
script = ExtResource("8_1mp8k")
visuals = NodePath("../Sprite")
metadata/_custom_type_script = "uid://c3gg32ivrlq8n"
[node name="VisibleOnScreenEnabler2D" type="VisibleOnScreenEnabler2D" parent="."]
self_modulate = Color(1, 1, 1, 0)
position = Vector2(0, -15)
scale = Vector2(1, 1.7)
[node name="ScoreNoteSpawner" type="Node" parent="."]
script = ExtResource("9_scjjh")
add_score = true
metadata/_custom_type_script = "uid://5octqlf4ohel"
[node name="Timer" type="Timer" parent="."]
wait_time = 10.0
one_shot = true
[node name="ShellDetection" type="Node" parent="." node_paths=PackedStringArray("hitbox")]
script = ExtResource("12_hx42c")
hitbox = NodePath("../Hitbox")
metadata/_custom_type_script = "uid://bbww34oiexbx2"
[node name="ThemedToJSONConverter" type="Node" parent="."]
script = ExtResource("15_2r2js")
resource = SubResource("Resource_pvn5i")
json_file_path = "res://Assets/Sprites/Enemies/HammerBro.json"
metadata/_custom_type_script = "uid://cqif1li7otvpl"
[node name="ExplosionDetection" type="Node" parent="." node_paths=PackedStringArray("hitbox")]
script = ExtResource("16_0w8yj")
hitbox = NodePath("../Hitbox")
[node name="TrackJoint" type="Node" parent="."]
script = ExtResource("17_2r2js")
metadata/_custom_type_script = "uid://d4a7yp6e55u8t"
[connection signal="killed" from="." to="GibSpawner" method="summon_gib"]
[connection signal="timeout" from="JumpTimer" to="." method="jump" binds= [false]]
[connection signal="timeout" from="HammerTimer" to="." method="do_hammer_throw"]
[connection signal="invincible_player_hit" from="EnemyPlayerDetection" to="." method="die_from_object"]
[connection signal="invincible_player_hit" from="EnemyPlayerDetection" to="ScoreNoteSpawner" method="spawn_note" binds= [1000]]
[connection signal="player_hit" from="EnemyPlayerDetection" to="." method="damage_player"]
[connection signal="player_stomped_on" from="EnemyPlayerDetection" to="GibSpawner" method="stomp_die" binds= [false]]
[connection signal="player_stomped_on" from="EnemyPlayerDetection" to="ScoreNoteSpawner" method="spawn_note" binds= [1000]]
[connection signal="block_bounced" from="BlockBouncingDetection" to="." method="die_from_object"]
[connection signal="block_bounced" from="BlockBouncingDetection" to="ScoreNoteSpawner" method="spawn_note" binds= [1000]]
[connection signal="fireball_hit" from="FireballDetection" to="." method="die_from_object"]
[connection signal="fireball_hit" from="FireballDetection" to="ScoreNoteSpawner" method="spawn_note" binds= [1000]]
[connection signal="gib_about_to_spawn" from="GibSpawner" to="Sprite/Hammer" method="hide"]
[connection signal="screen_entered" from="VisibleOnScreenEnabler2D" to="." method="on_screen_entered"]
[connection signal="timeout" from="Timer" to="." method="charge"]
[connection signal="moving_shell_entered" from="ShellDetection" to="." method="die_from_object"]
[connection signal="explosion_entered" from="ExplosionDetection" to="." method="die_from_object"]
[connection signal="explosion_entered" from="ExplosionDetection" to="ScoreNoteSpawner" method="spawn_note" binds= [1000]]
[connection signal="attached" from="TrackJoint" to="MovementAnimations" method="play" binds= ["RESET"]]

View File

@@ -0,0 +1,85 @@
[gd_scene load_steps=9 format=3 uid="uid://b0gkypf5ow67f"]
[ext_resource type="Script" uid="uid://cx0ak5ctcg0mi" path="res://Scripts/Classes/Entities/Enemies/Icicle.gd" id="1_dnx1i"]
[ext_resource type="Texture2D" uid="uid://rbln0ee0fknc" path="res://Assets/Sprites/Enemies/Icicle.png" id="2_1h8cl"]
[ext_resource type="Script" uid="uid://cnheej0sxmoxg" path="res://Scripts/Parts/PlayerDetection.gd" id="3_1h8cl"]
[ext_resource type="Script" uid="uid://364rywt44hy6" path="res://Scripts/Classes/UI/PackSprite.gd" id="3_dnx1i"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_dnx1i"]
size = Vector2(10, 8)
[sub_resource type="Animation" id="Animation_dnx1i"]
resource_name = "Shake"
length = 0.2
loop_mode = 1
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Sprite:offset")
tracks/0/interp = 2
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.10000001),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Vector2(-1, 0), Vector2(1, 0)]
}
[sub_resource type="Animation" id="Animation_5y583"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Sprite:offset")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector2(0, 0)]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_2sios"]
_data = {
&"RESET": SubResource("Animation_5y583"),
&"Shake": SubResource("Animation_dnx1i")
}
[node name="Icicle" type="CharacterBody2D"]
collision_layer = 0
collision_mask = 55
script = ExtResource("1_dnx1i")
metadata/_custom_type_script = "uid://bpydbpyjk1mt4"
[node name="Sprite" type="Sprite2D" parent="."]
position = Vector2(0, -8)
texture = ExtResource("2_1h8cl")
script = ExtResource("3_dnx1i")
metadata/_custom_type_script = "uid://364rywt44hy6"
[node name="Collision" type="CollisionShape2D" parent="."]
visible = false
position = Vector2(0, -12)
shape = SubResource("RectangleShape2D_dnx1i")
[node name="Hitbox" type="Area2D" parent="."]
visible = false
script = ExtResource("3_1h8cl")
metadata/_custom_type_script = "uid://cnheej0sxmoxg"
[node name="Shape" type="CollisionShape2D" parent="Hitbox"]
position = Vector2(0, -6)
shape = SubResource("RectangleShape2D_dnx1i")
[node name="VisibleOnScreenEnabler2D" type="VisibleOnScreenEnabler2D" parent="."]
self_modulate = Color(1, 1, 1, 0)
position = Vector2(0, -8)
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
libraries = {
&"": SubResource("AnimationLibrary_2sios")
}
[connection signal="player_entered" from="Hitbox" to="." method="damage_player"]
[connection signal="player_entered" from="Hitbox" to="." method="destroy" unbinds=1]

View File

@@ -0,0 +1,192 @@
[gd_scene load_steps=25 format=3 uid="uid://4bb81eil6a4c"]
[ext_resource type="Texture2D" uid="uid://c3a7sv3y1fjja" path="res://Assets/Sprites/Enemies/LakituCloud.png" id="1_0ier6"]
[ext_resource type="Script" uid="uid://bohpv3almqrvg" path="res://Scripts/Classes/Entities/Enemies/Lakitu.gd" id="1_iwyhq"]
[ext_resource type="Script" uid="uid://caq1qiwmy0mox" path="res://Scripts/Parts/BetterAnimatedSprite.gd" id="2_3a3ug"]
[ext_resource type="PackedScene" uid="uid://dinpjmg0q23rv" path="res://Scenes/Prefabs/Entities/Enemies/Spiny.tscn" id="2_hs1pg"]
[ext_resource type="Texture2D" uid="uid://chrv5ve7vlsjs" path="res://Assets/Sprites/Enemies/Lakitu.png" id="2_iwyhq"]
[ext_resource type="Script" uid="uid://cbal8ms2oe1ik" path="res://Scripts/Classes/Components/ResourceSetterNew.gd" id="4_as0ro"]
[ext_resource type="JSON" path="res://Assets/Sprites/Enemies/Lakitu.json" id="5_p3xbt"]
[ext_resource type="Script" uid="uid://chj8hu207lrh" path="res://Scripts/Classes/Components/EnemyPlayerDetection.gd" id="5_tn6a8"]
[ext_resource type="Script" uid="uid://c3gg32ivrlq8n" path="res://Scripts/Classes/Components/GibSpawner.gd" id="6_nr0pc"]
[ext_resource type="Script" uid="uid://dri2d5jtu0fbq" path="res://Scripts/Classes/Components/FireballDetection.gd" id="7_mgtbd"]
[ext_resource type="Script" uid="uid://cqif1li7otvpl" path="res://Scripts/Parts/SpriteFramesToJsonConverter.gd" id="7_nr0pc"]
[ext_resource type="JSON" path="res://Assets/Sprites/Enemies/LakituCloud.json" id="7_p3xbt"]
[ext_resource type="Script" uid="uid://cmvlgsjmsk0v5" path="res://Scripts/Classes/Resources/ThemedResource.gd" id="8_mgtbd"]
[ext_resource type="Script" uid="uid://ctfbuoxtnnl0q" path="res://Scripts/Classes/Components/EditorPropertyExposer.gd" id="14_v233d"]
[ext_resource type="Script" uid="uid://5octqlf4ohel" path="res://Scripts/Classes/Components/ScoreNoteSpawner.gd" id="15_q7b5d"]
[ext_resource type="Script" uid="uid://bbww34oiexbx2" path="res://Scripts/Classes/Components/ShellDetection.gd" id="16_r67tm"]
[ext_resource type="Script" uid="uid://ba18grqjixded" path="res://Scripts/Classes/Components/ExplosionDetection.gd" id="17_6pdgp"]
[sub_resource type="SpriteFrames" id="SpriteFrames_as0ro"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": ExtResource("1_0ier6")
}],
"loop": true,
"name": &"default",
"speed": 5.0
}]
[sub_resource type="AtlasTexture" id="AtlasTexture_3k8mm"]
atlas = ExtResource("2_iwyhq")
region = Rect2(0, 0, 16, 24)
[sub_resource type="AtlasTexture" id="AtlasTexture_sfar6"]
atlas = ExtResource("2_iwyhq")
region = Rect2(16, 0, 16, 24)
[sub_resource type="SpriteFrames" id="SpriteFrames_3772b"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_3k8mm")
}],
"loop": true,
"name": &"Idle",
"speed": 5.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_sfar6")
}],
"loop": true,
"name": &"Throw",
"speed": 5.0
}]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_3a3ug"]
size = Vector2(10, 16)
[sub_resource type="SpriteFrames" id="SpriteFrames_p3xbt"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": ExtResource("1_0ier6")
}],
"loop": true,
"name": &"default",
"speed": 5.0
}]
[sub_resource type="Resource" id="Resource_3a3ug"]
script = ExtResource("8_mgtbd")
Overworld = SubResource("SpriteFrames_p3xbt")
metadata/_custom_type_script = "uid://cmvlgsjmsk0v5"
[node name="Lakitu" type="CharacterBody2D" node_paths=PackedStringArray("on_screen_enabler", "score_note_adder") groups=["Enemies"]]
script = ExtResource("1_iwyhq")
item = ExtResource("2_hs1pg")
on_screen_enabler = NodePath("VisibleOnScreenEnabler2D")
score_note_adder = NodePath("ScoreNoteSpawner")
metadata/_custom_type_script = "uid://bpydbpyjk1mt4"
[node name="Cloud" type="AnimatedSprite2D" parent="."]
sprite_frames = SubResource("SpriteFrames_as0ro")
script = ExtResource("2_3a3ug")
do_offset = false
metadata/_custom_type_script = "uid://caq1qiwmy0mox"
[node name="Sprite" type="AnimatedSprite2D" parent="Cloud"]
show_behind_parent = true
position = Vector2(0, -7)
scale = Vector2(-1, 1)
sprite_frames = SubResource("SpriteFrames_3772b")
animation = &"Throw"
autoplay = "Idle"
flip_h = true
script = ExtResource("2_3a3ug")
do_offset = false
metadata/_custom_type_script = "uid://caq1qiwmy0mox"
[node name="ResourceSetterNew" type="Node" parent="Cloud/Sprite" node_paths=PackedStringArray("node_to_affect")]
script = ExtResource("4_as0ro")
node_to_affect = NodePath("..")
property_name = "sprite_frames"
resource_json = ExtResource("5_p3xbt")
metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
[node name="Hitbox" type="Area2D" parent="Cloud"]
[node name="CollisionShape2D" type="CollisionShape2D" parent="Cloud/Hitbox"]
visible = false
position = Vector2(0, -8)
shape = SubResource("RectangleShape2D_3a3ug")
[node name="ResourceSetterNew" type="Node" parent="Cloud" node_paths=PackedStringArray("node_to_affect")]
script = ExtResource("4_as0ro")
node_to_affect = NodePath("..")
property_name = "sprite_frames"
resource_json = ExtResource("7_p3xbt")
metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
[node name="VisibleOnScreenEnabler2D" type="VisibleOnScreenEnabler2D" parent="."]
self_modulate = Color(1, 1, 1, 0)
position = Vector2(4.03897e-28, -1.13687e-13)
scale = Vector2(1.6, 2.1)
rect = Rect2(-14.999998, -10, 29.999996, 20)
[node name="ThrowTimer" type="Timer" parent="."]
wait_time = 2.0
[node name="EnemyPlayerDetection" type="Node" parent="." node_paths=PackedStringArray("hitbox")]
script = ExtResource("5_tn6a8")
hitbox = NodePath("../Cloud/Hitbox")
metadata/_custom_type_script = "uid://chj8hu207lrh"
[node name="GibSpawner" type="Node" parent="." node_paths=PackedStringArray("visuals")]
script = ExtResource("6_nr0pc")
visuals = NodePath("../Cloud/Sprite")
metadata/_custom_type_script = "uid://c3gg32ivrlq8n"
[node name="FireballDetection" type="Node" parent="." node_paths=PackedStringArray("hitbox")]
script = ExtResource("7_mgtbd")
hitbox = NodePath("../Cloud/Hitbox")
metadata/_custom_type_script = "uid://dri2d5jtu0fbq"
[node name="ThemedToJSONConverter" type="Node" parent="."]
script = ExtResource("7_nr0pc")
resource = SubResource("Resource_3a3ug")
json_file_path = "res://Assets/Sprites/Enemies/LakituCloud.json"
metadata/_custom_type_script = "uid://cqif1li7otvpl"
[node name="EditorPropertyExposer" type="Node" parent="."]
script = ExtResource("14_v233d")
properties = Array[String](["item"])
filters = Dictionary[String, String]({
"item": "can_lakitu_throw"
})
[node name="ScoreNoteSpawner" type="Node" parent="."]
script = ExtResource("15_q7b5d")
metadata/_custom_type_script = "uid://5octqlf4ohel"
[node name="WallCheck" type="RayCast2D" parent="."]
target_position = Vector2(0, -8)
collision_mask = 6
hit_from_inside = true
[node name="ShellDetection" type="Node" parent="." node_paths=PackedStringArray("hitbox")]
script = ExtResource("16_r67tm")
hitbox = NodePath("../Cloud/Hitbox")
metadata/_custom_type_script = "uid://bbww34oiexbx2"
[node name="ExplosionDetection" type="Node" parent="." node_paths=PackedStringArray("hitbox")]
script = ExtResource("17_6pdgp")
hitbox = NodePath("../Cloud/Hitbox")
metadata/_custom_type_script = "uid://ba18grqjixded"
[connection signal="killed" from="." to="GibSpawner" method="summon_gib"]
[connection signal="killed" from="." to="." method="summon_cloud_particle" unbinds=1]
[connection signal="screen_entered" from="VisibleOnScreenEnabler2D" to="." method="on_screen_entered"]
[connection signal="timeout" from="ThrowTimer" to="." method="on_timeout"]
[connection signal="invincible_player_hit" from="EnemyPlayerDetection" to="." method="die_from_object"]
[connection signal="invincible_player_hit" from="EnemyPlayerDetection" to="ScoreNoteSpawner" method="spawn_note" flags=3 binds= [200]]
[connection signal="player_hit" from="EnemyPlayerDetection" to="." method="damage_player"]
[connection signal="player_stomped_on" from="EnemyPlayerDetection" to="GibSpawner" method="stomp_die"]
[connection signal="player_stomped_on" from="EnemyPlayerDetection" to="." method="summon_cloud_particle" unbinds=1]
[connection signal="fireball_hit" from="FireballDetection" to="." method="die_from_object"]
[connection signal="fireball_hit" from="FireballDetection" to="ScoreNoteSpawner" method="spawn_note" binds= [200]]
[connection signal="moving_shell_entered" from="ShellDetection" to="." method="die_from_object"]
[connection signal="explosion_entered" from="ExplosionDetection" to="." method="die_from_object"]

View File

@@ -0,0 +1,116 @@
[gd_scene load_steps=15 format=3 uid="uid://cwyxi1uihf35y"]
[ext_resource type="Script" uid="uid://mshpvsyuw15j" path="res://Scripts/Classes/Entities/Enemies/LeapingCheepCheep.gd" id="1_pbhdk"]
[ext_resource type="Texture2D" uid="uid://dbq7oso3fo4n6" path="res://Assets/Sprites/Enemies/CheepCheep.png" id="2_pbhdk"]
[ext_resource type="Script" uid="uid://cbal8ms2oe1ik" path="res://Scripts/Classes/Components/ResourceSetterNew.gd" id="3_11skd"]
[ext_resource type="JSON" path="res://Assets/Sprites/Enemies/RedCheepCheep.json" id="4_hwpvb"]
[ext_resource type="Script" uid="uid://chj8hu207lrh" path="res://Scripts/Classes/Components/EnemyPlayerDetection.gd" id="4_w3x8m"]
[ext_resource type="Script" uid="uid://c3gg32ivrlq8n" path="res://Scripts/Classes/Components/GibSpawner.gd" id="5_upc6k"]
[ext_resource type="Script" uid="uid://dri2d5jtu0fbq" path="res://Scripts/Classes/Components/FireballDetection.gd" id="6_l756v"]
[ext_resource type="Script" uid="uid://5octqlf4ohel" path="res://Scripts/Classes/Components/ScoreNoteSpawner.gd" id="6_upc6k"]
[ext_resource type="Script" uid="uid://bbww34oiexbx2" path="res://Scripts/Classes/Components/ShellDetection.gd" id="7_813ad"]
[ext_resource type="Script" uid="uid://ba18grqjixded" path="res://Scripts/Classes/Components/ExplosionDetection.gd" id="10_hwpvb"]
[sub_resource type="AtlasTexture" id="AtlasTexture_ojki6"]
atlas = ExtResource("2_pbhdk")
region = Rect2(0, 16, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_w3x8m"]
atlas = ExtResource("2_pbhdk")
region = Rect2(16, 16, 16, 16)
[sub_resource type="SpriteFrames" id="SpriteFrames_upc6k"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_ojki6")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_w3x8m")
}],
"loop": true,
"name": &"default",
"speed": 5.0
}]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_ojki6"]
size = Vector2(12, 12)
[node name="LeapingCheepCheep" type="CharacterBody2D" node_paths=PackedStringArray("on_screen_enabler", "score_note_adder") groups=["Enemies"]]
script = ExtResource("1_pbhdk")
on_screen_enabler = NodePath("VisibleOnScreenNotifier2D")
score_note_adder = NodePath("ScoreNoteSpawner")
metadata/_custom_type_script = "uid://bpydbpyjk1mt4"
[node name="Sprite" type="AnimatedSprite2D" parent="."]
position = Vector2(0, -8)
scale = Vector2(-1, 1)
sprite_frames = SubResource("SpriteFrames_upc6k")
autoplay = "default"
frame_progress = 0.0672909
flip_h = true
[node name="ResourceSetterNew" type="Node" parent="Sprite" node_paths=PackedStringArray("node_to_affect")]
script = ExtResource("3_11skd")
node_to_affect = NodePath("..")
property_name = "sprite_frames"
resource_json = ExtResource("4_hwpvb")
metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
[node name="Hitbox" type="Area2D" parent="."]
[node name="Shape" type="CollisionShape2D" parent="Hitbox"]
position = Vector2(0, -6)
shape = SubResource("RectangleShape2D_ojki6")
[node name="EnemyPlayerDetection" type="Node" parent="." node_paths=PackedStringArray("hitbox")]
script = ExtResource("4_w3x8m")
hitbox = NodePath("../Hitbox")
metadata/_custom_type_script = "uid://chj8hu207lrh"
[node name="GibSpawner" type="Node" parent="." node_paths=PackedStringArray("visuals")]
script = ExtResource("5_upc6k")
visuals = NodePath("../Sprite")
metadata/_custom_type_script = "uid://c3gg32ivrlq8n"
[node name="VisibleOnScreenNotifier2D" type="VisibleOnScreenNotifier2D" parent="."]
position = Vector2(0, -8)
[node name="ScoreNoteSpawner" type="Node" parent="."]
script = ExtResource("6_upc6k")
add_score = true
metadata/_custom_type_script = "uid://5octqlf4ohel"
[node name="FireballDetection" type="Node" parent="." node_paths=PackedStringArray("hitbox")]
script = ExtResource("6_l756v")
hitbox = NodePath("../Hitbox")
metadata/_custom_type_script = "uid://dri2d5jtu0fbq"
[node name="ShellDetection" type="Node" parent="." node_paths=PackedStringArray("hitbox")]
script = ExtResource("7_813ad")
hitbox = NodePath("../Hitbox")
metadata/_custom_type_script = "uid://bbww34oiexbx2"
[node name="Line2D" type="Line2D" parent="."]
visible = false
top_level = true
visibility_layer = 2
texture_repeat = 2
width = 1.0
texture_mode = 1
[node name="ExplosionDetection" type="Node" parent="." node_paths=PackedStringArray("hitbox")]
script = ExtResource("10_hwpvb")
hitbox = NodePath("../Hitbox")
metadata/_custom_type_script = "uid://ba18grqjixded"
[connection signal="killed" from="." to="GibSpawner" method="summon_gib"]
[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="GibSpawner" method="stomp_die"]
[connection signal="screen_exited" from="VisibleOnScreenNotifier2D" to="." method="queue_free"]
[connection signal="fireball_hit" from="FireballDetection" to="." method="die_from_object"]
[connection signal="fireball_hit" from="FireballDetection" to="ScoreNoteSpawner" method="spawn_note" binds= [200]]
[connection signal="moving_shell_entered" from="ShellDetection" to="." method="die_from_object"]
[connection signal="explosion_entered" from="ExplosionDetection" to="." method="die_from_object"]
[connection signal="explosion_entered" from="ExplosionDetection" to="ScoreNoteSpawner" method="spawn_note" binds= [200]]

View File

@@ -0,0 +1,32 @@
[gd_scene load_steps=5 format=3 uid="uid://crdxibqdds04v"]
[ext_resource type="PackedScene" uid="uid://b07v70sioegsj" path="res://Scenes/Prefabs/Entities/Enemies/BobOmb.tscn" id="1_w8ebw"]
[ext_resource type="PackedScene" uid="uid://d075e1520ngrv" path="res://Scenes/Prefabs/Entities/Objects/BobOmbHeld.tscn" id="2_i60fb"]
[ext_resource type="JSON" path="res://Assets/Sprites/Enemies/LitBobOmb.json" id="3_j2qyw"]
[sub_resource type="PackedScene" id="PackedScene_j2qyw"]
_bundled = {
"base_scene": 0,
"conn_count": 0,
"conns": PackedInt32Array(),
"editable_instances": [],
"names": PackedStringArray("BobOmbHeld", "timer"),
"node_count": 1,
"node_paths": [],
"nodes": PackedInt32Array(-1, -1, 2147483647, 0, -1, 1, 1, 1, 0),
"variants": [ExtResource("2_i60fb"), 1.0],
"version": 3
}
[node name="LitBobOmb" instance=ExtResource("1_w8ebw")]
held_scene = SubResource("PackedScene_j2qyw")
[node name="ResourceSetterNew" parent="Sprite" index="0"]
resource_json = ExtResource("3_j2qyw")
[node name="Timer" type="Timer" parent="." index="12"]
wait_time = 3.0
one_shot = true
[connection signal="ready" from="." to="Timer" method="start"]
[connection signal="timeout" from="Timer" to="." method="summon_held"]

View File

@@ -0,0 +1,194 @@
[gd_scene load_steps=25 format=3 uid="uid://bym2j03wxhk3t"]
[ext_resource type="Script" uid="uid://dw05x347cr8jj" path="res://Scripts/Classes/Entities/Enemies/MontyMole.gd" id="1_pcto2"]
[ext_resource type="Texture2D" uid="uid://c6c6uh8sicml2" path="res://Assets/Sprites/Enemies/MontyMole.png" id="2_pcto2"]
[ext_resource type="Script" uid="uid://caq1qiwmy0mox" path="res://Scripts/Parts/BetterAnimatedSprite.gd" id="3_tar16"]
[ext_resource type="Script" uid="uid://cbal8ms2oe1ik" path="res://Scripts/Classes/Components/ResourceSetterNew.gd" id="4_p5vf8"]
[ext_resource type="Texture2D" uid="uid://byy3k1pdrp77" path="res://Assets/Sprites/Particles/Smoke.png" id="4_tar16"]
[ext_resource type="JSON" path="res://Assets/Sprites/Enemies/MontyMole.json" id="5_6jmde"]
[ext_resource type="Script" uid="uid://chj8hu207lrh" path="res://Scripts/Classes/Components/EnemyPlayerDetection.gd" id="7_6jmde"]
[ext_resource type="Script" uid="uid://bbww34oiexbx2" path="res://Scripts/Classes/Components/ShellDetection.gd" id="8_s1n1q"]
[ext_resource type="Script" uid="uid://dri2d5jtu0fbq" path="res://Scripts/Classes/Components/FireballDetection.gd" id="9_006vu"]
[ext_resource type="Script" uid="uid://c3gg32ivrlq8n" path="res://Scripts/Classes/Components/GibSpawner.gd" id="10_7mwc3"]
[ext_resource type="Script" uid="uid://5octqlf4ohel" path="res://Scripts/Classes/Components/ScoreNoteSpawner.gd" id="11_006vu"]
[ext_resource type="Script" uid="uid://cmg61722ktg2m" path="res://Scripts/Classes/Components/BlockBouncingDetection.gd" id="12_7mwc3"]
[ext_resource type="Script" uid="uid://ba18grqjixded" path="res://Scripts/Classes/Components/ExplosionDetection.gd" id="13_pan54"]
[sub_resource type="AtlasTexture" id="AtlasTexture_p5vf8"]
atlas = ExtResource("2_pcto2")
region = Rect2(0, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_6jmde"]
atlas = ExtResource("2_pcto2")
region = Rect2(16, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_jf612"]
atlas = ExtResource("2_pcto2")
region = Rect2(32, 0, 16, 16)
[sub_resource type="SpriteFrames" id="SpriteFrames_w1rqq"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_p5vf8")
}],
"loop": true,
"name": &"Jump",
"speed": 5.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_6jmde")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_jf612")
}],
"loop": true,
"name": &"Walk",
"speed": 10.0
}]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_s1n1q"]
size = Vector2(8, 8)
[sub_resource type="RectangleShape2D" id="RectangleShape2D_mcmqd"]
size = Vector2(12, 13)
[sub_resource type="AtlasTexture" id="AtlasTexture_w1rqq"]
atlas = ExtResource("4_tar16")
region = Rect2(0, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_s1n1q"]
atlas = ExtResource("4_tar16")
region = Rect2(16, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_006vu"]
atlas = ExtResource("4_tar16")
region = Rect2(32, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_7mwc3"]
atlas = ExtResource("4_tar16")
region = Rect2(48, 0, 16, 16)
[sub_resource type="SpriteFrames" id="SpriteFrames_pan54"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_w1rqq")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_s1n1q")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_006vu")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_7mwc3")
}],
"loop": true,
"name": &"default",
"speed": 20.0
}]
[node name="MontyMole" type="CharacterBody2D" node_paths=PackedStringArray("on_screen_enabler", "score_note_adder") groups=["Enemies"]]
collision_layer = 16
collision_mask = 54
script = ExtResource("1_pcto2")
on_screen_enabler = NodePath("VisibleOnScreenEnabler2D")
score_note_adder = NodePath("ScoreNoteSpawner")
metadata/_custom_type_script = "uid://bpydbpyjk1mt4"
[node name="Sprite" type="AnimatedSprite2D" parent="."]
position = Vector2(0, -8)
scale = Vector2(-1, 1)
sprite_frames = SubResource("SpriteFrames_w1rqq")
animation = &"Walk"
autoplay = "Walk"
frame_progress = 0.825465
offset = Vector2(0, 1)
flip_h = true
script = ExtResource("3_tar16")
metadata/_custom_type_script = "uid://caq1qiwmy0mox"
[node name="ResourceSetterNew" type="Node" parent="Sprite" node_paths=PackedStringArray("node_to_affect")]
script = ExtResource("4_p5vf8")
node_to_affect = NodePath("..")
property_name = "sprite_frames"
resource_json = ExtResource("5_6jmde")
metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
[node name="LCollision" type="CollisionShape2D" parent="."]
position = Vector2(0, -4)
rotation = -1.5708
shape = SubResource("RectangleShape2D_s1n1q")
one_way_collision = true
[node name="RCollision" type="CollisionShape2D" parent="."]
position = Vector2(0, -4)
rotation = 1.5708
shape = SubResource("RectangleShape2D_s1n1q")
one_way_collision = true
[node name="Hitbox" type="Area2D" parent="."]
collision_mask = 7
[node name="Shape" type="CollisionShape2D" parent="Hitbox"]
position = Vector2(0, -5.5)
shape = SubResource("RectangleShape2D_mcmqd")
[node name="DigParticle" type="AnimatedSprite2D" parent="."]
visible = false
show_behind_parent = true
position = Vector2(0, -16)
sprite_frames = SubResource("SpriteFrames_pan54")
frame_progress = 0.140432
[node name="VisibleOnScreenEnabler2D" type="VisibleOnScreenEnabler2D" parent="."]
position = Vector2(0, -8)
[node name="EnemyPlayerDetection" type="Node" parent="." node_paths=PackedStringArray("hitbox")]
script = ExtResource("7_6jmde")
hitbox = NodePath("../Hitbox")
metadata/_custom_type_script = "uid://chj8hu207lrh"
[node name="ShellDetection" type="Node" parent="." node_paths=PackedStringArray("hitbox")]
script = ExtResource("8_s1n1q")
hitbox = NodePath("../Hitbox")
metadata/_custom_type_script = "uid://bbww34oiexbx2"
[node name="FireballDetection" type="Node" parent="." node_paths=PackedStringArray("hitbox")]
script = ExtResource("9_006vu")
hitbox = NodePath("../Hitbox")
metadata/_custom_type_script = "uid://dri2d5jtu0fbq"
[node name="GibSpawner" type="Node" parent="." node_paths=PackedStringArray("visuals")]
script = ExtResource("10_7mwc3")
visuals = NodePath("../Sprite")
metadata/_custom_type_script = "uid://c3gg32ivrlq8n"
[node name="ScoreNoteSpawner" type="Node" parent="."]
script = ExtResource("11_006vu")
add_score = true
metadata/_custom_type_script = "uid://5octqlf4ohel"
[node name="BlockBouncingDetection" type="Node" parent="."]
script = ExtResource("12_7mwc3")
metadata/_custom_type_script = "uid://cmg61722ktg2m"
[node name="ExplosionDetection" type="Node" parent="." node_paths=PackedStringArray("hitbox")]
script = ExtResource("13_pan54")
hitbox = NodePath("../Hitbox")
metadata/_custom_type_script = "uid://ba18grqjixded"
[connection signal="killed" from="." to="GibSpawner" method="summon_gib"]
[connection signal="invincible_player_hit" from="EnemyPlayerDetection" to="." method="die_from_object"]
[connection signal="invincible_player_hit" from="EnemyPlayerDetection" to="ScoreNoteSpawner" method="spawn_note" binds= [200]]
[connection signal="player_hit" from="EnemyPlayerDetection" to="." method="damage_player"]
[connection signal="player_stomped_on" from="EnemyPlayerDetection" to="GibSpawner" method="stomp_die"]
[connection signal="moving_shell_entered" from="ShellDetection" to="." method="die_from_object"]
[connection signal="fireball_hit" from="FireballDetection" to="." method="die_from_object"]
[connection signal="fireball_hit" from="FireballDetection" to="ScoreNoteSpawner" method="spawn_note" binds= [200]]
[connection signal="block_bounced" from="BlockBouncingDetection" to="." method="die_from_object"]
[connection signal="block_bounced" from="BlockBouncingDetection" to="ScoreNoteSpawner" method="spawn_note" binds= [200]]
[connection signal="explosion_entered" from="ExplosionDetection" to="." method="die_from_object"]
[connection signal="explosion_entered" from="ExplosionDetection" to="ScoreNoteSpawner" method="spawn_note" binds= [200]]

View File

@@ -0,0 +1,96 @@
[gd_scene load_steps=15 format=3 uid="uid://bi1hb03wk001p"]
[ext_resource type="Script" uid="uid://bpydbpyjk1mt4" path="res://Scripts/Classes/Entities/Enemy.gd" id="1_cgdwi"]
[ext_resource type="Texture2D" uid="uid://dg7yxoq44gaae" path="res://Assets/Sprites/Enemies/Muncher.png" id="2_ad4wf"]
[ext_resource type="Script" uid="uid://caq1qiwmy0mox" path="res://Scripts/Parts/BetterAnimatedSprite.gd" id="2_fcan1"]
[ext_resource type="Script" uid="uid://cbal8ms2oe1ik" path="res://Scripts/Classes/Components/ResourceSetterNew.gd" id="4_6tj01"]
[ext_resource type="Script" uid="uid://cnheej0sxmoxg" path="res://Scripts/Parts/PlayerDetection.gd" id="4_ad4wf"]
[ext_resource type="JSON" path="res://Assets/Sprites/Enemies/Muncher.json" id="5_cgdwi"]
[ext_resource type="Script" uid="uid://5octqlf4ohel" path="res://Scripts/Classes/Components/ScoreNoteSpawner.gd" id="5_r7ue2"]
[ext_resource type="Script" uid="uid://bx6r8sjar6cwr" path="res://Scripts/Classes/Components/BasicStaticMovement.gd" id="8_3kryf"]
[sub_resource type="AtlasTexture" id="AtlasTexture_r7ue2"]
atlas = ExtResource("2_ad4wf")
region = Rect2(0, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_60xif"]
atlas = ExtResource("2_ad4wf")
region = Rect2(16, 0, 16, 16)
[sub_resource type="SpriteFrames" id="SpriteFrames_6tj01"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_r7ue2")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_60xif")
}],
"loop": true,
"name": &"default",
"speed": 5.0
}]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_cgdwi"]
size = Vector2(15.9, 16)
[sub_resource type="RectangleShape2D" id="RectangleShape2D_r7ue2"]
size = Vector2(17, 18.5)
[sub_resource type="RectangleShape2D" id="RectangleShape2D_3kryf"]
size = Vector2(16, 16)
[node name="Muncher" type="CharacterBody2D" node_paths=PackedStringArray("on_screen_enabler", "score_note_adder") groups=["Enemies"]]
disable_mode = 1
collision_layer = 20
collision_mask = 4114
script = ExtResource("1_cgdwi")
on_screen_enabler = NodePath("VisibleOnScreenEnabler2D")
score_note_adder = NodePath("ScoreNoteSpawner")
metadata/_custom_type_script = "uid://bpydbpyjk1mt4"
metadata/block_spawn_offset = Vector2(0, -8)
[node name="Sprite" type="AnimatedSprite2D" parent="."]
sprite_frames = SubResource("SpriteFrames_6tj01")
frame_progress = 0.602985
script = ExtResource("2_fcan1")
do_offset = false
metadata/_custom_type_script = "uid://caq1qiwmy0mox"
[node name="ResourceSetterNew" type="Node" parent="Sprite" node_paths=PackedStringArray("node_to_affect")]
script = ExtResource("4_6tj01")
node_to_affect = NodePath("..")
property_name = "sprite_frames"
resource_json = ExtResource("5_cgdwi")
metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
[node name="Collision" type="CollisionShape2D" parent="."]
shape = SubResource("RectangleShape2D_cgdwi")
one_way_collision = true
[node name="PlayerDetection" type="Area2D" parent="."]
script = ExtResource("4_ad4wf")
metadata/_custom_type_script = "uid://cnheej0sxmoxg"
[node name="CollisionShape2D" type="CollisionShape2D" parent="PlayerDetection"]
position = Vector2(0, -0.75)
shape = SubResource("RectangleShape2D_r7ue2")
[node name="VisibleOnScreenEnabler2D" type="VisibleOnScreenEnabler2D" parent="."]
[node name="ScoreNoteSpawner" type="Node" parent="."]
script = ExtResource("5_r7ue2")
metadata/_custom_type_script = "uid://5octqlf4ohel"
[node name="Movement" type="Node" parent="."]
script = ExtResource("8_3kryf")
[node name="AnimatableBody2D" type="AnimatableBody2D" parent="."]
collision_layer = 33
collision_mask = 0
sync_to_physics = false
[node name="CollisionShape2D" type="CollisionShape2D" parent="AnimatableBody2D"]
shape = SubResource("RectangleShape2D_3kryf")
[connection signal="player_entered" from="PlayerDetection" to="." method="damage_player"]

View File

@@ -0,0 +1,292 @@
[gd_scene load_steps=20 format=3 uid="uid://1rxw4k4wq3ni"]
[ext_resource type="Texture2D" uid="uid://dbq6cn2hp6ijx" path="res://Assets/Sprites/Enemies/PiranhaPlant.png" id="1_2imih"]
[ext_resource type="Script" uid="uid://d23hoj2qc2whq" path="res://Scripts/Classes/Entities/Enemies/PiranhaPlant.gd" id="1_jbk0f"]
[ext_resource type="Script" uid="uid://cbal8ms2oe1ik" path="res://Scripts/Classes/Components/ResourceSetterNew.gd" id="3_471w1"]
[ext_resource type="JSON" path="res://Assets/Sprites/Enemies/PiranhaPlant.json" id="4_xp8sq"]
[ext_resource type="Script" uid="uid://chj8hu207lrh" path="res://Scripts/Classes/Components/EnemyPlayerDetection.gd" id="6_471w1"]
[ext_resource type="Script" uid="uid://dri2d5jtu0fbq" path="res://Scripts/Classes/Components/FireballDetection.gd" id="7_471w1"]
[ext_resource type="Script" uid="uid://5octqlf4ohel" path="res://Scripts/Classes/Components/ScoreNoteSpawner.gd" id="8_xp8sq"]
[ext_resource type="Script" uid="uid://cpwloakvp672a" path="res://Scripts/Parts/EditorVisibleNode.gd" id="9_tmwyr"]
[ext_resource type="Script" uid="uid://bbww34oiexbx2" path="res://Scripts/Classes/Components/ShellDetection.gd" id="10_uohcg"]
[ext_resource type="Script" uid="uid://d0mqkvopasu8k" path="res://Scripts/Classes/Components/SecondQuestReplaceComponent.gd" id="10_xreuf"]
[ext_resource type="Script" uid="uid://ba18grqjixded" path="res://Scripts/Classes/Components/ExplosionDetection.gd" id="11_8y1e5"]
[sub_resource type="AtlasTexture" id="AtlasTexture_xp8sq"]
atlas = ExtResource("1_2imih")
region = Rect2(0, 24, 16, 24)
[sub_resource type="AtlasTexture" id="AtlasTexture_uohcg"]
atlas = ExtResource("1_2imih")
region = Rect2(16, 24, 16, 24)
[sub_resource type="SpriteFrames" id="SpriteFrames_q2sci"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_xp8sq")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_uohcg")
}],
"loop": true,
"name": &"default",
"speed": 5.0
}]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_k3xt6"]
size = Vector2(6, 13)
[sub_resource type="Animation" id="Animation_471w1"]
resource_name = "Hide"
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Sprite:position")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector2(0, 12)]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("Sprite:visible")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [false]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("Sprite/Hitbox:monitoring")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [false]
}
[sub_resource type="Animation" id="Animation_6l0c7"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Sprite:position")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector2(0, -12)]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("Sprite:visible")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [false]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("Sprite/Hitbox:monitoring")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [false]
}
[sub_resource type="Animation" id="Animation_t8k64"]
resource_name = "Rise"
length = 4.5
step = 0.1
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Sprite:position")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.5, 2, 2.5),
"transitions": PackedFloat32Array(1, 1, 1, 1),
"update": 0,
"values": [Vector2(0, 12), Vector2(0, -12), Vector2(0, -12), Vector2(0, 12)]
}
tracks/1/type = "method"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("Timer")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0, 4.5),
"transitions": PackedFloat32Array(1, 1),
"values": [{
"args": [],
"method": &"stop"
}, {
"args": [-1],
"method": &"start"
}]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("Sprite:visible")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0, 4.5),
"transitions": PackedFloat32Array(1, 1),
"update": 1,
"values": [true, false]
}
tracks/3/type = "value"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("Sprite/Hitbox:monitoring")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(0, 2.5),
"transitions": PackedFloat32Array(1, 1),
"update": 1,
"values": [true, false]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_471w1"]
_data = {
&"Hide": SubResource("Animation_471w1"),
&"RESET": SubResource("Animation_6l0c7"),
&"Rise": SubResource("Animation_t8k64")
}
[node name="PirannhaPlant" type="CharacterBody2D" node_paths=PackedStringArray("on_screen_enabler", "score_note_adder") groups=["Enemies"]]
z_index = -5
script = ExtResource("1_jbk0f")
on_screen_enabler = NodePath("VisibleOnScreenEnabler2D")
score_note_adder = NodePath("ScoreNoteSpawner")
metadata/_custom_type_script = "uid://bpydbpyjk1mt4"
[node name="Sprite" type="AnimatedSprite2D" parent="."]
visible = false
position = Vector2(0, -12)
sprite_frames = SubResource("SpriteFrames_q2sci")
autoplay = "default"
frame_progress = 0.985799
offset = Vector2(0, 1)
[node name="Hitbox" type="Area2D" parent="Sprite"]
position = Vector2(0, 12)
monitoring = false
[node name="CollisionShape2D" type="CollisionShape2D" parent="Sprite/Hitbox"]
position = Vector2(0, -6)
shape = SubResource("RectangleShape2D_k3xt6")
[node name="UpsideDownExtension" type="CollisionShape2D" parent="Sprite/Hitbox"]
position = Vector2(0, -14)
shape = SubResource("RectangleShape2D_k3xt6")
debug_color = Color(0, 0.6, 0, 0.419608)
[node name="ResourceSetterNew" type="Node" parent="Sprite" node_paths=PackedStringArray("node_to_affect")]
script = ExtResource("3_471w1")
node_to_affect = NodePath("..")
property_name = "sprite_frames"
resource_json = ExtResource("4_xp8sq")
metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
[node name="Animation" type="AnimationPlayer" parent="."]
libraries = {
&"": SubResource("AnimationLibrary_471w1")
}
autoplay = "Hide"
[node name="Timer" type="Timer" parent="."]
wait_time = 0.5
autostart = true
[node name="VisibleOnScreenEnabler2D" type="VisibleOnScreenEnabler2D" parent="."]
self_modulate = Color(1, 1, 1, 0)
position = Vector2(0, -5)
scale = Vector2(1, 2.9)
[node name="EnemyPlayerDetection" type="Node" parent="." node_paths=PackedStringArray("hitbox")]
script = ExtResource("6_471w1")
hitbox = NodePath("../Sprite/Hitbox")
metadata/_custom_type_script = "uid://chj8hu207lrh"
[node name="FireballDetection" type="Node" parent="." node_paths=PackedStringArray("hitbox")]
script = ExtResource("7_471w1")
hitbox = NodePath("../Sprite/Hitbox")
metadata/_custom_type_script = "uid://dri2d5jtu0fbq"
[node name="ScoreNoteSpawner" type="Node" parent="."]
script = ExtResource("8_xp8sq")
add_score = true
play_sfx = true
metadata/_custom_type_script = "uid://5octqlf4ohel"
[node name="ShellDetection" type="Node" parent="." node_paths=PackedStringArray("hitbox")]
script = ExtResource("10_uohcg")
hitbox = NodePath("../Sprite/Hitbox")
metadata/_custom_type_script = "uid://bbww34oiexbx2"
[node name="LevelEditorVisibleNode" type="Node2D" parent="."]
script = ExtResource("9_tmwyr")
metadata/_custom_type_script = "uid://cpwloakvp672a"
[node name="Sprite" type="AnimatedSprite2D" parent="LevelEditorVisibleNode"]
position = Vector2(0, -12)
sprite_frames = SubResource("SpriteFrames_q2sci")
autoplay = "default"
frame_progress = 0.985799
offset = Vector2(0, 1)
[node name="ResourceSetterNew" type="Node" parent="LevelEditorVisibleNode/Sprite" node_paths=PackedStringArray("node_to_affect")]
script = ExtResource("3_471w1")
node_to_affect = NodePath("..")
property_name = "sprite_frames"
resource_json = ExtResource("4_xp8sq")
metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
[node name="SecondQuestReplacer" type="Node" parent="."]
script = ExtResource("10_xreuf")
new_scene = "uid://kj5pw3xhq8f7"
metadata/_custom_type_script = "uid://d0mqkvopasu8k"
[node name="ExplosionDetection" type="Node" parent="." node_paths=PackedStringArray("hitbox")]
script = ExtResource("11_8y1e5")
hitbox = NodePath("../Sprite/Hitbox")
metadata/_custom_type_script = "uid://ba18grqjixded"
[connection signal="timeout" from="Timer" to="." method="on_timeout"]
[connection signal="invincible_player_hit" from="EnemyPlayerDetection" to="." method="die_from_object"]
[connection signal="invincible_player_hit" from="EnemyPlayerDetection" to="ScoreNoteSpawner" method="spawn_note" binds= [200]]
[connection signal="player_hit" from="EnemyPlayerDetection" to="." method="damage_player"]
[connection signal="player_stomped_on" from="EnemyPlayerDetection" to="." method="damage_player"]
[connection signal="fireball_hit" from="FireballDetection" to="." method="die_from_object"]
[connection signal="fireball_hit" from="FireballDetection" to="ScoreNoteSpawner" method="spawn_note" binds= [200]]
[connection signal="moving_shell_entered" from="ShellDetection" to="." method="die_from_object"]
[connection signal="moving_shell_entered" from="ShellDetection" to="ScoreNoteSpawner" method="play_death_sfx" unbinds=1]
[connection signal="explosion_entered" from="ExplosionDetection" to="." method="die_from_object"]
[connection signal="explosion_entered" from="ExplosionDetection" to="ScoreNoteSpawner" method="spawn_note" binds= [200]]

View File

@@ -0,0 +1,86 @@
[gd_scene load_steps=13 format=3 uid="uid://cxdj1ea1rt1r4"]
[ext_resource type="Texture2D" uid="uid://c67dr3ubb25yq" path="res://Assets/Sprites/Enemies/Podoboo.png" id="1_arivf"]
[ext_resource type="Script" uid="uid://bha5utvbhxppl" path="res://Scripts/Classes/Entities/Enemies/Podoboo.gd" id="1_i2k1r"]
[ext_resource type="Script" uid="uid://caq1qiwmy0mox" path="res://Scripts/Parts/BetterAnimatedSprite.gd" id="3_ct78r"]
[ext_resource type="Script" uid="uid://cbal8ms2oe1ik" path="res://Scripts/Classes/Components/ResourceSetterNew.gd" id="4_31csk"]
[ext_resource type="JSON" path="res://Assets/Sprites/Enemies/Podoboo.json" id="5_q2nhk"]
[ext_resource type="Script" uid="uid://ctfbuoxtnnl0q" path="res://Scripts/Classes/Components/EditorPropertyExposer.gd" id="6_31csk"]
[ext_resource type="Script" uid="uid://chj8hu207lrh" path="res://Scripts/Classes/Components/EnemyPlayerDetection.gd" id="7_jhnsj"]
[ext_resource type="Script" uid="uid://c3gg32ivrlq8n" path="res://Scripts/Classes/Components/GibSpawner.gd" id="8_g8i2d"]
[ext_resource type="Script" uid="uid://5octqlf4ohel" path="res://Scripts/Classes/Components/ScoreNoteSpawner.gd" id="9_g8i2d"]
[sub_resource type="AtlasTexture" id="AtlasTexture_jhnsj"]
atlas = ExtResource("1_arivf")
region = Rect2(0, 0, 16, 16)
[sub_resource type="SpriteFrames" id="SpriteFrames_g8i2d"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_jhnsj")
}],
"loop": true,
"name": &"default",
"speed": 5.0
}]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_i2k1r"]
size = Vector2(8, 8)
[node name="Podoboo" type="Node2D" groups=["Enemies"]]
script = ExtResource("1_i2k1r")
[node name="Sprite" type="AnimatedSprite2D" parent="."]
sprite_frames = SubResource("SpriteFrames_g8i2d")
autoplay = "default"
script = ExtResource("3_ct78r")
do_offset = false
metadata/_custom_type_script = "uid://caq1qiwmy0mox"
[node name="ResourceSetterNew" type="Node" parent="Sprite" node_paths=PackedStringArray("node_to_affect", "property_node")]
script = ExtResource("4_31csk")
node_to_affect = NodePath("..")
property_node = NodePath("../..")
property_name = "sprite_frames"
resource_json = ExtResource("5_q2nhk")
metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
[node name="Hitbox" type="Area2D" parent="."]
[node name="Shape" type="CollisionShape2D" parent="Hitbox"]
visible = false
shape = SubResource("RectangleShape2D_i2k1r")
[node name="VisibleOnScreenEnabler2D" type="VisibleOnScreenEnabler2D" parent="."]
rect = Rect2(-10, -9999, 20, 100000000)
show_rect = false
[node name="EditorPropertyExposer" type="Node" parent="."]
script = ExtResource("6_31csk")
properties = Array[String](["jump_delay"])
[node name="Timer" type="Timer" parent="."]
one_shot = true
[node name="EnemyPlayerDetection" type="Node" parent="." node_paths=PackedStringArray("hitbox")]
script = ExtResource("7_jhnsj")
hitbox = NodePath("../Hitbox")
metadata/_custom_type_script = "uid://chj8hu207lrh"
[node name="GibSpawner" type="Node" parent="." node_paths=PackedStringArray("visuals")]
script = ExtResource("8_g8i2d")
visuals = NodePath("../Sprite")
gib_type = 2
metadata/_custom_type_script = "uid://c3gg32ivrlq8n"
[node name="ScoreNoteSpawner" type="Node" parent="."]
script = ExtResource("9_g8i2d")
add_score = true
metadata/_custom_type_script = "uid://5octqlf4ohel"
[connection signal="killed" from="." to="GibSpawner" method="summon_gib" binds= [0, true]]
[connection signal="killed" from="." to="ScoreNoteSpawner" method="spawn_note" binds= [500]]
[connection signal="invincible_player_hit" from="EnemyPlayerDetection" to="." method="die" unbinds=1]
[connection signal="player_hit" from="EnemyPlayerDetection" to="." method="damage_player"]
[connection signal="player_stomped_on" from="EnemyPlayerDetection" to="." method="damage_player"]

View File

@@ -0,0 +1,386 @@
[gd_scene load_steps=22 format=3 uid="uid://beggmeixrin75"]
[ext_resource type="Script" uid="uid://b1b6aiai213ci" path="res://Scripts/Classes/Entities/Enemies/Pokey.gd" id="1_b54ls"]
[ext_resource type="Texture2D" uid="uid://dj46y8vhqlqjw" path="res://Assets/Sprites/Enemies/Pokey.png" id="2_8aome"]
[ext_resource type="Script" uid="uid://caq1qiwmy0mox" path="res://Scripts/Parts/BetterAnimatedSprite.gd" id="3_b54ls"]
[ext_resource type="Script" uid="uid://c3gg32ivrlq8n" path="res://Scripts/Classes/Components/GibSpawner.gd" id="4_30hxr"]
[ext_resource type="Script" uid="uid://cbal8ms2oe1ik" path="res://Scripts/Classes/Components/ResourceSetterNew.gd" id="4_bjt0v"]
[ext_resource type="JSON" path="res://Assets/Sprites/Enemies/Pokey.json" id="5_rjgwh"]
[ext_resource type="Script" uid="uid://dri2d5jtu0fbq" path="res://Scripts/Classes/Components/FireballDetection.gd" id="5_t1h12"]
[ext_resource type="Script" uid="uid://chj8hu207lrh" path="res://Scripts/Classes/Components/EnemyPlayerDetection.gd" id="6_bjt0v"]
[ext_resource type="Script" uid="uid://bbww34oiexbx2" path="res://Scripts/Classes/Components/ShellDetection.gd" id="7_rjgwh"]
[ext_resource type="Script" uid="uid://dq860i312isk" path="res://Scripts/Classes/Components/IcicleDetection.gd" id="8_1jb5g"]
[ext_resource type="Script" uid="uid://cmg61722ktg2m" path="res://Scripts/Classes/Components/BlockBouncingDetection.gd" id="9_klwvr"]
[ext_resource type="Script" uid="uid://ba18grqjixded" path="res://Scripts/Classes/Components/ExplosionDetection.gd" id="10_wuthq"]
[ext_resource type="Script" uid="uid://dlq6o2rg1x7in" path="res://Scripts/Classes/Components/BasicEnemyMovement.gd" id="11_8aome"]
[ext_resource type="Script" uid="uid://5octqlf4ohel" path="res://Scripts/Classes/Components/ScoreNoteSpawner.gd" id="12_b54ls"]
[ext_resource type="Script" uid="uid://ctfbuoxtnnl0q" path="res://Scripts/Classes/Components/EditorPropertyExposer.gd" id="13_30hxr"]
[sub_resource type="AtlasTexture" id="AtlasTexture_g6vo0"]
atlas = ExtResource("2_8aome")
region = Rect2(32, 0, 32, 32)
[sub_resource type="AtlasTexture" id="AtlasTexture_usxvm"]
atlas = ExtResource("2_8aome")
region = Rect2(0, 0, 32, 32)
[sub_resource type="SpriteFrames" id="SpriteFrames_86hsc"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_g6vo0")
}],
"loop": true,
"name": &"Body",
"speed": 5.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_usxvm")
}],
"loop": true,
"name": &"Head",
"speed": 5.0
}]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_rjgwh"]
resource_local_to_scene = true
size = Vector2(12, 16)
[sub_resource type="RectangleShape2D" id="RectangleShape2D_mpg4k"]
size = Vector2(12, 12)
[sub_resource type="GDScript" id="GDScript_30hxr"]
script/source = "extends Node
func _process(delta: float) -> void:
for i in %Parts.get_child_count():
var node = %Parts.get_child(i)
node.visible = i <= owner.length - 1
node.play(\"Head\" if i == owner.length - 1 else \"Body\")
"
[node name="Pokey" type="CharacterBody2D" node_paths=PackedStringArray("on_screen_enabler", "score_note_adder") groups=["Enemies"]]
collision_layer = 16
collision_mask = 50
script = ExtResource("1_b54ls")
on_screen_enabler = NodePath("VisibleOnScreenEnabler2D")
score_note_adder = NodePath("ScoreNoteSpawner")
metadata/_custom_type_script = "uid://bpydbpyjk1mt4"
[node name="Parts" type="Node2D" parent="."]
unique_name_in_owner = true
position = Vector2(0, -8)
scale = Vector2(-1, 1)
[node name="Part1" type="AnimatedSprite2D" parent="Parts"]
sprite_frames = SubResource("SpriteFrames_86hsc")
animation = &"Body"
flip_h = true
script = ExtResource("3_b54ls")
do_offset = false
metadata/_custom_type_script = "uid://caq1qiwmy0mox"
[node name="ResourceSetterNew" type="Node" parent="Parts/Part1" node_paths=PackedStringArray("node_to_affect")]
script = ExtResource("4_bjt0v")
node_to_affect = NodePath("..")
property_name = "sprite_frames"
resource_json = ExtResource("5_rjgwh")
metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
[node name="GibSpawner" type="Node" parent="Parts/Part1" node_paths=PackedStringArray("visuals")]
script = ExtResource("4_30hxr")
visuals = NodePath("..")
metadata/_custom_type_script = "uid://c3gg32ivrlq8n"
[node name="Part2" type="AnimatedSprite2D" parent="Parts"]
position = Vector2(0, -16)
sprite_frames = SubResource("SpriteFrames_86hsc")
animation = &"Body"
flip_h = true
script = ExtResource("3_b54ls")
do_offset = false
metadata/_custom_type_script = "uid://caq1qiwmy0mox"
[node name="ResourceSetterNew" type="Node" parent="Parts/Part2" node_paths=PackedStringArray("node_to_affect")]
script = ExtResource("4_bjt0v")
node_to_affect = NodePath("..")
property_name = "sprite_frames"
resource_json = ExtResource("5_rjgwh")
metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
[node name="GibSpawner" type="Node" parent="Parts/Part2" node_paths=PackedStringArray("visuals")]
script = ExtResource("4_30hxr")
visuals = NodePath("..")
play_death_sfx = false
metadata/_custom_type_script = "uid://c3gg32ivrlq8n"
[node name="Part3" type="AnimatedSprite2D" parent="Parts"]
position = Vector2(0, -32)
sprite_frames = SubResource("SpriteFrames_86hsc")
animation = &"Head"
flip_h = true
script = ExtResource("3_b54ls")
do_offset = false
metadata/_custom_type_script = "uid://caq1qiwmy0mox"
[node name="ResourceSetterNew" type="Node" parent="Parts/Part3" node_paths=PackedStringArray("node_to_affect")]
script = ExtResource("4_bjt0v")
node_to_affect = NodePath("..")
property_name = "sprite_frames"
resource_json = ExtResource("5_rjgwh")
metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
[node name="GibSpawner" type="Node" parent="Parts/Part3" node_paths=PackedStringArray("visuals")]
script = ExtResource("4_30hxr")
visuals = NodePath("..")
play_death_sfx = false
metadata/_custom_type_script = "uid://c3gg32ivrlq8n"
[node name="Part4" type="AnimatedSprite2D" parent="Parts"]
visible = false
position = Vector2(0, -48)
sprite_frames = SubResource("SpriteFrames_86hsc")
animation = &"Head"
flip_h = true
script = ExtResource("3_b54ls")
do_offset = false
metadata/_custom_type_script = "uid://caq1qiwmy0mox"
[node name="ResourceSetterNew" type="Node" parent="Parts/Part4" node_paths=PackedStringArray("node_to_affect")]
script = ExtResource("4_bjt0v")
node_to_affect = NodePath("..")
property_name = "sprite_frames"
resource_json = ExtResource("5_rjgwh")
metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
[node name="GibSpawner" type="Node" parent="Parts/Part4" node_paths=PackedStringArray("visuals")]
script = ExtResource("4_30hxr")
visuals = NodePath("..")
play_death_sfx = false
metadata/_custom_type_script = "uid://c3gg32ivrlq8n"
[node name="Part5" type="AnimatedSprite2D" parent="Parts"]
visible = false
position = Vector2(0, -64)
sprite_frames = SubResource("SpriteFrames_86hsc")
animation = &"Head"
flip_h = true
script = ExtResource("3_b54ls")
do_offset = false
metadata/_custom_type_script = "uid://caq1qiwmy0mox"
[node name="ResourceSetterNew" type="Node" parent="Parts/Part5" node_paths=PackedStringArray("node_to_affect")]
script = ExtResource("4_bjt0v")
node_to_affect = NodePath("..")
property_name = "sprite_frames"
resource_json = ExtResource("5_rjgwh")
metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
[node name="GibSpawner" type="Node" parent="Parts/Part5" node_paths=PackedStringArray("visuals")]
script = ExtResource("4_30hxr")
visuals = NodePath("..")
play_death_sfx = false
metadata/_custom_type_script = "uid://c3gg32ivrlq8n"
[node name="Part6" type="AnimatedSprite2D" parent="Parts"]
visible = false
position = Vector2(0, -80)
sprite_frames = SubResource("SpriteFrames_86hsc")
animation = &"Head"
flip_h = true
script = ExtResource("3_b54ls")
do_offset = false
metadata/_custom_type_script = "uid://caq1qiwmy0mox"
[node name="ResourceSetterNew" type="Node" parent="Parts/Part6" node_paths=PackedStringArray("node_to_affect")]
script = ExtResource("4_bjt0v")
node_to_affect = NodePath("..")
property_name = "sprite_frames"
resource_json = ExtResource("5_rjgwh")
metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
[node name="GibSpawner" type="Node" parent="Parts/Part6" node_paths=PackedStringArray("visuals")]
script = ExtResource("4_30hxr")
visuals = NodePath("..")
play_death_sfx = false
metadata/_custom_type_script = "uid://c3gg32ivrlq8n"
[node name="Part7" type="AnimatedSprite2D" parent="Parts"]
visible = false
position = Vector2(0, -96)
sprite_frames = SubResource("SpriteFrames_86hsc")
animation = &"Head"
flip_h = true
script = ExtResource("3_b54ls")
do_offset = false
metadata/_custom_type_script = "uid://caq1qiwmy0mox"
[node name="ResourceSetterNew" type="Node" parent="Parts/Part7" node_paths=PackedStringArray("node_to_affect")]
script = ExtResource("4_bjt0v")
node_to_affect = NodePath("..")
property_name = "sprite_frames"
resource_json = ExtResource("5_rjgwh")
metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
[node name="GibSpawner" type="Node" parent="Parts/Part7" node_paths=PackedStringArray("visuals")]
script = ExtResource("4_30hxr")
visuals = NodePath("..")
play_death_sfx = false
metadata/_custom_type_script = "uid://c3gg32ivrlq8n"
[node name="Part8" type="AnimatedSprite2D" parent="Parts"]
visible = false
position = Vector2(0, -112)
sprite_frames = SubResource("SpriteFrames_86hsc")
animation = &"Head"
flip_h = true
script = ExtResource("3_b54ls")
do_offset = false
metadata/_custom_type_script = "uid://caq1qiwmy0mox"
[node name="ResourceSetterNew" type="Node" parent="Parts/Part8" node_paths=PackedStringArray("node_to_affect")]
script = ExtResource("4_bjt0v")
node_to_affect = NodePath("..")
property_name = "sprite_frames"
resource_json = ExtResource("5_rjgwh")
metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
[node name="GibSpawner" type="Node" parent="Parts/Part8" node_paths=PackedStringArray("visuals")]
script = ExtResource("4_30hxr")
visuals = NodePath("..")
play_death_sfx = false
metadata/_custom_type_script = "uid://c3gg32ivrlq8n"
[node name="Part9" type="AnimatedSprite2D" parent="Parts"]
visible = false
position = Vector2(0, -128)
sprite_frames = SubResource("SpriteFrames_86hsc")
animation = &"Head"
flip_h = true
script = ExtResource("3_b54ls")
do_offset = false
metadata/_custom_type_script = "uid://caq1qiwmy0mox"
[node name="ResourceSetterNew" type="Node" parent="Parts/Part9" node_paths=PackedStringArray("node_to_affect")]
script = ExtResource("4_bjt0v")
node_to_affect = NodePath("..")
property_name = "sprite_frames"
resource_json = ExtResource("5_rjgwh")
metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
[node name="GibSpawner" type="Node" parent="Parts/Part9" node_paths=PackedStringArray("visuals")]
script = ExtResource("4_30hxr")
visuals = NodePath("..")
play_death_sfx = false
metadata/_custom_type_script = "uid://c3gg32ivrlq8n"
[node name="Part10" type="AnimatedSprite2D" parent="Parts"]
visible = false
position = Vector2(0, -144)
sprite_frames = SubResource("SpriteFrames_86hsc")
animation = &"Head"
flip_h = true
script = ExtResource("3_b54ls")
do_offset = false
metadata/_custom_type_script = "uid://caq1qiwmy0mox"
[node name="ResourceSetterNew" type="Node" parent="Parts/Part10" node_paths=PackedStringArray("node_to_affect")]
script = ExtResource("4_bjt0v")
node_to_affect = NodePath("..")
property_name = "sprite_frames"
resource_json = ExtResource("5_rjgwh")
metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
[node name="GibSpawner" type="Node" parent="Parts/Part10" node_paths=PackedStringArray("visuals")]
script = ExtResource("4_30hxr")
visuals = NodePath("..")
play_death_sfx = false
metadata/_custom_type_script = "uid://c3gg32ivrlq8n"
[node name="Collision" type="CollisionShape2D" parent="."]
position = Vector2(0, -8)
shape = SubResource("RectangleShape2D_rjgwh")
[node name="FireballDetection" type="Node" parent="." node_paths=PackedStringArray("hitbox")]
script = ExtResource("5_t1h12")
hitbox = NodePath("../HeadHitbox")
play_sfx_on_hit = true
metadata/_custom_type_script = "uid://dri2d5jtu0fbq"
[node name="FireballDetection2" type="Node" parent="." node_paths=PackedStringArray("hitbox")]
script = ExtResource("5_t1h12")
hitbox = NodePath("../BodyHitbox")
play_sfx_on_hit = true
metadata/_custom_type_script = "uid://dri2d5jtu0fbq"
[node name="EnemyPlayerDetection" type="Node" parent="." node_paths=PackedStringArray("hitbox")]
script = ExtResource("6_bjt0v")
hitbox = NodePath("../BodyHitbox")
metadata/_custom_type_script = "uid://chj8hu207lrh"
[node name="ShellDetection" type="Node" parent="." node_paths=PackedStringArray("hitbox")]
script = ExtResource("7_rjgwh")
hitbox = NodePath("../BodyHitbox")
metadata/_custom_type_script = "uid://bbww34oiexbx2"
[node name="IcicleDetection" type="Node" parent="." node_paths=PackedStringArray("hitbox")]
script = ExtResource("8_1jb5g")
hitbox = NodePath("../HeadHitbox")
metadata/_custom_type_script = "uid://dq860i312isk"
[node name="BlockBouncingDetection" type="Node" parent="." node_paths=PackedStringArray("hitbox")]
script = ExtResource("9_klwvr")
detection_type = 1
hitbox = NodePath("../BodyHitbox")
metadata/_custom_type_script = "uid://cmg61722ktg2m"
[node name="ExplosionDetection" type="Node" parent="." node_paths=PackedStringArray("hitbox")]
script = ExtResource("10_wuthq")
hitbox = NodePath("../BodyHitbox")
metadata/_custom_type_script = "uid://ba18grqjixded"
[node name="BodyHitbox" type="Area2D" parent="."]
position = Vector2(0, -8)
scale = Vector2(0.9, 1)
[node name="Collision" type="CollisionShape2D" parent="BodyHitbox"]
shape = SubResource("RectangleShape2D_rjgwh")
[node name="HeadHitbox" type="Area2D" parent="."]
position = Vector2(0, -8)
[node name="CollisionShape2D" type="CollisionShape2D" parent="HeadHitbox"]
shape = SubResource("RectangleShape2D_mpg4k")
[node name="VisibleOnScreenEnabler2D" type="VisibleOnScreenEnabler2D" parent="."]
position = Vector2(0, -168)
rect = Rect2(-10, 0, 20, 176)
[node name="BasicEnemyMovement" type="Node" parent="." node_paths=PackedStringArray("visuals")]
script = ExtResource("11_8aome")
visuals = NodePath("../Parts")
metadata/_custom_type_script = "uid://dlq6o2rg1x7in"
[node name="ScoreNoteSpawner" type="Node" parent="."]
script = ExtResource("12_b54ls")
add_score = true
metadata/_custom_type_script = "uid://5octqlf4ohel"
[node name="EditorPropertyExposer" type="Node" parent="."]
script = ExtResource("13_30hxr")
properties = Array[String](["length"])
[node name="PartHandler" type="Node" parent="."]
process_mode = 3
script = SubResource("GDScript_30hxr")
[connection signal="killed" from="." to="." method="summon_part_gibs" unbinds=1]
[connection signal="fireball_hit" from="FireballDetection" to="." method="die_from_object"]
[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"]
[connection signal="moving_shell_entered" from="ShellDetection" to="." method="die_from_object"]
[connection signal="icicle_detected" from="IcicleDetection" to="." method="die_from_object"]
[connection signal="block_bounced" from="BlockBouncingDetection" to="." method="die_from_object"]
[connection signal="explosion_entered" from="ExplosionDetection" to="." method="die_from_object"]

View File

@@ -0,0 +1,374 @@
[gd_scene load_steps=37 format=3 uid="uid://bbrkol4k3yobq"]
[ext_resource type="Script" uid="uid://b43onpjaw542l" path="res://Scripts/Classes/Entities/Enemies/RaceBoo.gd" id="1_d640j"]
[ext_resource type="Texture2D" uid="uid://c3l6ynlufxcfp" path="res://Assets/Sprites/Enemies/Boo.png" id="2_5odtl"]
[ext_resource type="Script" uid="uid://caq1qiwmy0mox" path="res://Scripts/Parts/BetterAnimatedSprite.gd" id="3_4ikdy"]
[ext_resource type="Texture2D" uid="uid://dtemc0qgag20j" path="res://Assets/Sprites/UI/BooIcon.png" id="3_5odtl"]
[ext_resource type="Script" uid="uid://cbal8ms2oe1ik" path="res://Scripts/Classes/Components/ResourceSetterNew.gd" id="4_6dgmd"]
[ext_resource type="JSON" path="res://Assets/Sprites/Enemies/RaceBoo.json" id="5_6dgmd"]
[ext_resource type="Texture2D" uid="uid://sgrcmlktp2dk" path="res://Assets/Sprites/Particles/SRankParticles.png" id="6_6dgmd"]
[ext_resource type="Script" uid="uid://364rywt44hy6" path="res://Scripts/Classes/UI/PackSprite.gd" id="7_sfl3g"]
[ext_resource type="Script" uid="uid://cq6f682453q6o" path="res://Scripts/Classes/Components/ResourceSetter.gd" id="9_xux50"]
[ext_resource type="Texture2D" uid="uid://cr6iro3hmjl7f" path="res://Assets/Sprites/Particles/GoldParticles.png" id="10_4hd5m"]
[ext_resource type="Script" uid="uid://cmvlgsjmsk0v5" path="res://Scripts/Classes/Resources/ThemedResource.gd" id="11_kx23c"]
[ext_resource type="Texture2D" uid="uid://dboi14xptkew3" path="res://Assets/Sprites/UI/BooWarning.png" id="12_4hd5m"]
[sub_resource type="AtlasTexture" id="AtlasTexture_mm3k3"]
atlas = ExtResource("2_5odtl")
region = Rect2(16, 48, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_nk4wu"]
atlas = ExtResource("2_5odtl")
region = Rect2(0, 48, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_ede5m"]
atlas = ExtResource("2_5odtl")
region = Rect2(16, 64, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_pinst"]
atlas = ExtResource("2_5odtl")
region = Rect2(0, 64, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_u5tsp"]
atlas = ExtResource("2_5odtl")
region = Rect2(16, 16, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_xx8pl"]
atlas = ExtResource("2_5odtl")
region = Rect2(0, 16, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_jrwk8"]
atlas = ExtResource("2_5odtl")
region = Rect2(16, 32, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_fwe35"]
atlas = ExtResource("2_5odtl")
region = Rect2(0, 32, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_e7l5x"]
atlas = ExtResource("2_5odtl")
region = Rect2(16, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_d7k1s"]
atlas = ExtResource("2_5odtl")
region = Rect2(0, 0, 16, 16)
[sub_resource type="SpriteFrames" id="SpriteFrames_f71ce"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_mm3k3")
}],
"loop": true,
"name": &"BlackIdle",
"speed": 5.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_nk4wu")
}],
"loop": true,
"name": &"BlackMove",
"speed": 5.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_ede5m")
}],
"loop": true,
"name": &"GoldIdle",
"speed": 5.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_pinst")
}],
"loop": true,
"name": &"GoldMove",
"speed": 5.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_u5tsp")
}],
"loop": true,
"name": &"GreenIdle",
"speed": 5.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_xx8pl")
}],
"loop": true,
"name": &"GreenMove",
"speed": 5.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_jrwk8")
}],
"loop": true,
"name": &"RedIdle",
"speed": 5.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_fwe35")
}],
"loop": true,
"name": &"RedMove",
"speed": 5.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_e7l5x")
}],
"loop": true,
"name": &"WhiteIdle",
"speed": 5.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_d7k1s")
}],
"loop": true,
"name": &"WhiteMove",
"speed": 5.0
}]
[sub_resource type="Animation" id="Animation_cst5p"]
resource_name = "Bob"
loop_mode = 2
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath(".:position")
tracks/0/interp = 2
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 1),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Vector2(0, -8), Vector2(0, 8)]
}
[sub_resource type="Animation" id="Animation_m7tca"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath(".:position")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector2(0, -16)]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_4ikdy"]
_data = {
&"Bob": SubResource("Animation_cst5p"),
&"RESET": SubResource("Animation_m7tca")
}
[sub_resource type="Animation" id="Animation_5odtl"]
resource_name = "CloseFlash"
length = 0.5
loop_mode = 1
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath(".:modulate")
tracks/0/interp = 0
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.25),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Color(1, 1, 1, 1), Color(1, 1, 1, 0)]
}
[sub_resource type="Animation" id="Animation_6dgmd"]
resource_name = "Fine"
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath(".:modulate")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Color(1, 1, 1, 1)]
}
[sub_resource type="Animation" id="Animation_4ikdy"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath(".:modulate")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Color(1, 1, 1, 1)]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_sfl3g"]
_data = {
&"CloseFlash": SubResource("Animation_5odtl"),
&"Fine": SubResource("Animation_6dgmd"),
&"RESET": SubResource("Animation_4ikdy")
}
[sub_resource type="CanvasItemMaterial" id="CanvasItemMaterial_sfl3g"]
particles_animation = true
particles_anim_h_frames = 7
particles_anim_v_frames = 1
particles_anim_loop = false
[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_f71ce"]
particle_flag_disable_z = true
emission_shape = 6
emission_ring_axis = Vector3(0, 0, 1)
emission_ring_height = 8.0
emission_ring_radius = 10.0
emission_ring_inner_radius = 8.0
emission_ring_cone_angle = 90.0
gravity = Vector3(0, 0, 0)
anim_speed_min = 2.0
anim_speed_max = 2.0
[sub_resource type="Resource" id="Resource_2ic4s"]
script = ExtResource("11_kx23c")
Overworld = ExtResource("10_4hd5m")
metadata/_custom_type_script = "uid://cmvlgsjmsk0v5"
[sub_resource type="Animation" id="Animation_kx23c"]
resource_name = "Blink"
length = 0.5
loop_mode = 1
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("TextureRect:visible")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.25),
"transitions": PackedFloat32Array(1, 1),
"update": 1,
"values": [true, false]
}
[sub_resource type="Animation" id="Animation_2ic4s"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("TextureRect:visible")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [true]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_it5le"]
_data = {
&"Blink": SubResource("Animation_kx23c"),
&"RESET": SubResource("Animation_2ic4s")
}
[node name="RaceBoo" type="Node2D" groups=["Enemies"]]
physics_interpolation_mode = 2
script = ExtResource("1_d640j")
[node name="Sprite" type="AnimatedSprite2D" parent="."]
process_mode = 3
position = Vector2(0, -16)
sprite_frames = SubResource("SpriteFrames_f71ce")
animation = &"BlackIdle"
flip_h = true
script = ExtResource("3_4ikdy")
metadata/_custom_type_script = "uid://caq1qiwmy0mox"
[node name="Animation" type="AnimationPlayer" parent="Sprite"]
libraries = {
&"": SubResource("AnimationLibrary_4ikdy")
}
autoplay = "Bob"
[node name="VisibleOnScreenNotifier2D" type="VisibleOnScreenNotifier2D" parent="Sprite"]
[node name="ResourceSetterNew" type="Node" parent="Sprite" node_paths=PackedStringArray("node_to_affect")]
script = ExtResource("4_6dgmd")
node_to_affect = NodePath("..")
property_name = "sprite_frames"
resource_json = ExtResource("5_6dgmd")
metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
[node name="RemoteTransform2D" type="RemoteTransform2D" parent="Sprite"]
remote_path = NodePath("../../GoldParticles")
[node name="OffScreenIcon" type="Sprite2D" parent="."]
physics_interpolation_mode = 2
visible = false
top_level = true
visibility_layer = 2
texture = ExtResource("3_5odtl")
hframes = 5
region_rect = Rect2(0, 0, 16, 16)
script = ExtResource("7_sfl3g")
metadata/_custom_type_script = "uid://364rywt44hy6"
[node name="Animation" type="AnimationPlayer" parent="OffScreenIcon"]
libraries = {
&"": SubResource("AnimationLibrary_sfl3g")
}
[node name="GoldParticles" type="GPUParticles2D" parent="."]
z_index = 1
material = SubResource("CanvasItemMaterial_sfl3g")
position = Vector2(0, -16)
texture = ExtResource("6_6dgmd")
randomness = 0.12
process_material = SubResource("ParticleProcessMaterial_f71ce")
[node name="ResourceSetter" type="Node" parent="GoldParticles" node_paths=PackedStringArray("node_to_affect")]
script = ExtResource("9_xux50")
node_to_affect = NodePath("..")
property_name = "texture"
themed_resource = SubResource("Resource_2ic4s")
metadata/_custom_type_script = "uid://cq6f682453q6o"
[node name="Warning" type="CanvasLayer" parent="."]
visible = false
[node name="TextureRect" type="TextureRect" parent="Warning"]
anchors_preset = 3
anchor_left = 1.0
anchor_top = 1.0
anchor_right = 1.0
anchor_bottom = 1.0
offset_left = -45.0
offset_top = -34.0
grow_horizontal = 0
grow_vertical = 0
texture = ExtResource("12_4hd5m")
stretch_mode = 3
[node name="AnimationPlayer" type="AnimationPlayer" parent="Warning"]
libraries = {
&"": SubResource("AnimationLibrary_it5le")
}
autoplay = "Blink"
speed_scale = 1.5

View File

@@ -0,0 +1,44 @@
[gd_scene load_steps=8 format=3 uid="uid://d04e1qv3si8j"]
[ext_resource type="PackedScene" uid="uid://bdirphnfabey8" path="res://Scenes/Prefabs/Entities/Enemies/GreenCheepCheep.tscn" id="1_ie2kx"]
[ext_resource type="Texture2D" uid="uid://dbq7oso3fo4n6" path="res://Assets/Sprites/Enemies/CheepCheep.png" id="2_y5sv7"]
[ext_resource type="JSON" path="res://Assets/Sprites/Enemies/RedCheepCheep.json" id="3_871bq"]
[ext_resource type="Script" uid="uid://cbal8ms2oe1ik" path="res://Scripts/Classes/Components/ResourceSetterNew.gd" id="4_plbrw"]
[sub_resource type="AtlasTexture" id="AtlasTexture_mrggu"]
atlas = ExtResource("2_y5sv7")
region = Rect2(0, 16, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_dduxq"]
atlas = ExtResource("2_y5sv7")
region = Rect2(16, 16, 16, 16)
[sub_resource type="SpriteFrames" id="SpriteFrames_a8obf"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_mrggu")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_dduxq")
}],
"loop": true,
"name": &"default",
"speed": 5.0
}]
[node name="CheepCheep" instance=ExtResource("1_ie2kx")]
move_speed = 45
[node name="Sprite" parent="." index="0"]
sprite_frames = SubResource("SpriteFrames_a8obf")
[node name="ResourceSetterNew" parent="Sprite" index="2"]
resource_json = ExtResource("3_871bq")
[node name="ResourceSetterNew2" type="Node" parent="Sprite" index="3" node_paths=PackedStringArray("node_to_affect")]
script = ExtResource("4_plbrw")
node_to_affect = NodePath("..")
property_name = "sprite_frames"
resource_json = ExtResource("3_871bq")
metadata/_custom_type_script = "uid://cbal8ms2oe1ik"

View File

@@ -0,0 +1,23 @@
[gd_scene load_steps=4 format=3 uid="uid://doguqwqut2s5e"]
[ext_resource type="PackedScene" uid="uid://cmvugag0kupgu" path="res://Scenes/Prefabs/Entities/Enemies/RedKoopaTroopa.tscn" id="1_7ppsp"]
[ext_resource type="Script" uid="uid://cpwloakvp672a" path="res://Scripts/Parts/EditorVisibleNode.gd" id="2_7ppsp"]
[ext_resource type="Texture2D" uid="uid://dpdrrkqtcedgm" path="res://Assets/Sprites/Tilesets/DottedLine.png" id="3_q8ix4"]
[node name="RedKoopaTroopa" instance=ExtResource("1_7ppsp")]
winged = true
[node name="Wing" parent="Sprite" index="1"]
visible = true
frame_progress = 0.539258
[node name="Node2D" type="Node2D" parent="." index="15"]
script = ExtResource("2_7ppsp")
[node name="Line2D" type="Line2D" parent="Node2D" index="0"]
visibility_layer = 2
texture_repeat = 2
points = PackedVector2Array(0, 0, 0, 96)
width = 1.0
texture = ExtResource("3_q8ix4")
texture_mode = 1

View File

@@ -0,0 +1,21 @@
[gd_scene load_steps=4 format=3 uid="uid://cmvugag0kupgu"]
[ext_resource type="PackedScene" uid="uid://r6dlmokkdyar" path="res://Scenes/Prefabs/Entities/Enemies/GreenKoopaTroopa.tscn" id="1_3ce3s"]
[ext_resource type="JSON" path="res://Assets/Sprites/Enemies/RedKoopaTroopa.json" id="2_ji0l7"]
[ext_resource type="JSON" path="res://Assets/Sprites/Enemies/RedKoopaShell.json" id="3_870t0"]
[node name="RedKoopaTroopa" instance=ExtResource("1_3ce3s")]
shell_scene = "uid://dam4dqebjgk1n"
metadata/is_red = true
[node name="ResourceSetterNew" parent="Sprite" index="0"]
resource_json = ExtResource("2_ji0l7")
[node name="ResourceSetterNew" parent="DeathSprite" index="0"]
resource_json = ExtResource("3_870t0")
[node name="LedgeDetectionCast" parent="." index="5"]
position = Vector2(-2, -2)
[node name="BasicEnemyMovement" parent="." index="14" node_paths=PackedStringArray("ledge_detection_cast")]
ledge_detection_cast = NodePath("../LedgeDetectionCast")

View File

@@ -0,0 +1,50 @@
[gd_scene load_steps=7 format=3 uid="uid://kj5pw3xhq8f7"]
[ext_resource type="PackedScene" uid="uid://1rxw4k4wq3ni" path="res://Scenes/Prefabs/Entities/Enemies/PiranhaPlant.tscn" id="1_6wd2m"]
[ext_resource type="Texture2D" uid="uid://dbq6cn2hp6ijx" path="res://Assets/Sprites/Enemies/PiranhaPlant.png" id="2_jkccd"]
[ext_resource type="JSON" path="res://Assets/Sprites/Enemies/RedPiranhaPlant.json" id="3_jkccd"]
[sub_resource type="AtlasTexture" id="AtlasTexture_xlwxk"]
atlas = ExtResource("2_jkccd")
region = Rect2(0, 0, 16, 24)
[sub_resource type="AtlasTexture" id="AtlasTexture_4qm6i"]
atlas = ExtResource("2_jkccd")
region = Rect2(16, 0, 16, 24)
[sub_resource type="SpriteFrames" id="SpriteFrames_ep4ch"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_xlwxk")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_4qm6i")
}],
"loop": true,
"name": &"default",
"speed": 10.0
}]
[node name="RedPirannhaPlant" instance=ExtResource("1_6wd2m")]
player_range = 16
[node name="Sprite" parent="." index="0"]
sprite_frames = SubResource("SpriteFrames_ep4ch")
frame_progress = 0.762071
[node name="CollisionShape2D" parent="Sprite/Hitbox" index="0"]
visible = false
position = Vector2(0, -9.75)
[node name="ResourceSetterNew" parent="Sprite" index="1"]
resource_json = ExtResource("3_jkccd")
[node name="Animation" parent="." index="1"]
speed_scale = 2.0
[node name="ResourceSetterNew" parent="LevelEditorVisibleNode/Sprite" index="0"]
resource_json = ExtResource("3_jkccd")
[node name="SecondQuestReplacer" parent="." index="9"]
new_scene = ""

View File

@@ -0,0 +1,407 @@
[gd_scene load_steps=34 format=3 uid="uid://c3m38c2skawpj"]
[ext_resource type="Script" uid="uid://bfsh8bhcmknkh" path="res://Scripts/Classes/Entities/Enemies/RockyWrench.gd" id="1_pl7bt"]
[ext_resource type="Texture2D" uid="uid://bfora2lrmtyj4" path="res://Assets/Sprites/Enemies/RockyWrench.png" id="2_8y80u"]
[ext_resource type="Script" uid="uid://cbal8ms2oe1ik" path="res://Scripts/Classes/Components/ResourceSetterNew.gd" id="3_4h1b4"]
[ext_resource type="Script" uid="uid://caq1qiwmy0mox" path="res://Scripts/Parts/BetterAnimatedSprite.gd" id="3_wom81"]
[ext_resource type="JSON" path="res://Assets/Sprites/Enemies/RockyWrench.json" id="4_pl7bt"]
[ext_resource type="Script" uid="uid://cnheej0sxmoxg" path="res://Scripts/Parts/PlayerDetection.gd" id="5_4h1b4"]
[ext_resource type="Script" uid="uid://bx6r8sjar6cwr" path="res://Scripts/Classes/Components/BasicStaticMovement.gd" id="5_8y80u"]
[ext_resource type="Script" uid="uid://chj8hu207lrh" path="res://Scripts/Classes/Components/EnemyPlayerDetection.gd" id="7_pl7bt"]
[ext_resource type="Texture2D" uid="uid://cop8x5m20cqal" path="res://Assets/Sprites/Items/WrenchProjectile.png" id="7_w66sd"]
[ext_resource type="Script" uid="uid://c3gg32ivrlq8n" path="res://Scripts/Classes/Components/GibSpawner.gd" id="8_nqvoc"]
[ext_resource type="JSON" path="res://Assets/Sprites/Items/WrenchProjectile.json" id="9_kxgad"]
[ext_resource type="Script" uid="uid://dri2d5jtu0fbq" path="res://Scripts/Classes/Components/FireballDetection.gd" id="9_nxn7i"]
[ext_resource type="Script" uid="uid://bbww34oiexbx2" path="res://Scripts/Classes/Components/ShellDetection.gd" id="10_w66sd"]
[ext_resource type="Script" uid="uid://ba18grqjixded" path="res://Scripts/Classes/Components/ExplosionDetection.gd" id="13_h21ug"]
[ext_resource type="Script" uid="uid://5octqlf4ohel" path="res://Scripts/Classes/Components/ScoreNoteSpawner.gd" id="14_el25t"]
[sub_resource type="AtlasTexture" id="AtlasTexture_nqvoc"]
atlas = ExtResource("2_8y80u")
region = Rect2(16, 0, 16, 32)
[sub_resource type="AtlasTexture" id="AtlasTexture_3dqyr"]
atlas = ExtResource("2_8y80u")
region = Rect2(48, 0, 16, 32)
[sub_resource type="AtlasTexture" id="AtlasTexture_nxn7i"]
atlas = ExtResource("2_8y80u")
region = Rect2(64, 0, 16, 32)
[sub_resource type="AtlasTexture" id="AtlasTexture_w66sd"]
atlas = ExtResource("2_8y80u")
region = Rect2(0, 0, 16, 32)
[sub_resource type="AtlasTexture" id="AtlasTexture_wom81"]
atlas = ExtResource("2_8y80u")
region = Rect2(32, 0, 16, 32)
[sub_resource type="SpriteFrames" id="SpriteFrames_h21ug"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_nqvoc")
}],
"loop": true,
"name": &"Aim",
"speed": 5.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_3dqyr")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_nxn7i")
}],
"loop": true,
"name": &"Die",
"speed": 10.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_w66sd")
}],
"loop": true,
"name": &"Idle",
"speed": 5.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_wom81")
}],
"loop": false,
"name": &"Throw",
"speed": 15.0
}]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_pl7bt"]
size = Vector2(14, 21)
[sub_resource type="RectangleShape2D" id="RectangleShape2D_nqvoc"]
size = Vector2(11, 13)
[sub_resource type="AtlasTexture" id="AtlasTexture_bn4i0"]
atlas = ExtResource("7_w66sd")
region = Rect2(32, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_ytcl6"]
atlas = ExtResource("7_w66sd")
region = Rect2(0, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_tf2mk"]
atlas = ExtResource("7_w66sd")
region = Rect2(16, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_nfd5u"]
atlas = ExtResource("7_w66sd")
region = Rect2(48, 0, 16, 16)
[sub_resource type="SpriteFrames" id="SpriteFrames_el25t"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_bn4i0")
}],
"loop": true,
"name": &"Idle",
"speed": 5.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_ytcl6")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_tf2mk")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_nfd5u")
}],
"loop": true,
"name": &"Spin",
"speed": 15.0
}]
[sub_resource type="Animation" id="Animation_nqvoc"]
resource_name = "PeekOut"
length = 3.0
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Sprite:position")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.5, 2, 2.25),
"transitions": PackedFloat32Array(1, 1, 1, 1),
"update": 0,
"values": [Vector2(0, 12), Vector2(0, 9), Vector2(0, 9), Vector2(0, 12)]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("Sprite/Wrench:visible")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [false]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath(".:can_stomp")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0, 2.2666667),
"transitions": PackedFloat32Array(1, 1),
"update": 1,
"values": [true, false]
}
[sub_resource type="Animation" id="Animation_4h1b4"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Sprite:position")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector2(0, 12)]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("Sprite/Wrench:visible")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [false]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath(".:can_stomp")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [false]
}
[sub_resource type="Animation" id="Animation_pl7bt"]
resource_name = "Throw"
length = 3.0
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Sprite:position")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.5, 2.0333333, 2.2666667),
"transitions": PackedFloat32Array(1, 1, 1, 1),
"update": 0,
"values": [Vector2(0, 12), Vector2(0, 0), Vector2(0, 0), Vector2(0, 12)]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("Sprite/Wrench:visible")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0, 1),
"transitions": PackedFloat32Array(1, 1),
"update": 1,
"values": [true, false]
}
tracks/2/type = "method"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath(".")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(1),
"transitions": PackedFloat32Array(1),
"values": [{
"args": [],
"method": &"throw_wrench"
}]
}
tracks/3/type = "value"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath(".:can_stomp")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(0, 3.7333336),
"transitions": PackedFloat32Array(1, 1),
"update": 1,
"values": [true, false]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_3dqyr"]
_data = {
&"PeekOut": SubResource("Animation_nqvoc"),
&"RESET": SubResource("Animation_4h1b4"),
&"Throw": SubResource("Animation_pl7bt")
}
[sub_resource type="RectangleShape2D" id="RectangleShape2D_h4tv3"]
size = Vector2(14, 4)
[node name="RockyWrench" type="CharacterBody2D" node_paths=PackedStringArray("on_screen_enabler", "score_note_adder") groups=["Enemies"]]
z_index = -5
collision_layer = 0
collision_mask = 2
script = ExtResource("1_pl7bt")
on_screen_enabler = NodePath("VisibleOnScreenEnabler2D")
score_note_adder = NodePath("ScoreNoteSpawner")
metadata/_custom_type_script = "uid://bpydbpyjk1mt4"
[node name="Sprite" type="AnimatedSprite2D" parent="."]
position = Vector2(0, 12)
scale = Vector2(-1, 1)
sprite_frames = SubResource("SpriteFrames_h21ug")
animation = &"Idle"
frame_progress = 0.31085846
flip_h = true
script = ExtResource("3_wom81")
do_offset = false
metadata/_custom_type_script = "uid://caq1qiwmy0mox"
[node name="ResourceSetterNew" type="Node" parent="Sprite" node_paths=PackedStringArray("node_to_affect")]
script = ExtResource("3_4h1b4")
node_to_affect = NodePath("..")
property_name = "sprite_frames"
resource_json = ExtResource("4_pl7bt")
metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
[node name="StompHitbox" type="Area2D" parent="Sprite"]
position = Vector2(0, -11)
script = ExtResource("5_4h1b4")
metadata/_custom_type_script = "uid://cnheej0sxmoxg"
[node name="CollisionShape2D" type="CollisionShape2D" parent="Sprite/StompHitbox"]
position = Vector2(0, 2.5)
shape = SubResource("RectangleShape2D_pl7bt")
[node name="EnemyPlayerDetection" type="Node" parent="Sprite/StompHitbox" node_paths=PackedStringArray("hitbox")]
script = ExtResource("7_pl7bt")
hitbox = NodePath("..")
metadata/_custom_type_script = "uid://chj8hu207lrh"
[node name="RemoteTransform2D" type="RemoteTransform2D" parent="Sprite"]
position = Vector2(0, -14)
remote_path = NodePath("../../AnimatableBody2D")
[node name="EntityHitbox" type="Area2D" parent="Sprite"]
position = Vector2(0, -12)
[node name="CollisionShape2D" type="CollisionShape2D" parent="Sprite/EntityHitbox"]
position = Vector2(-0.5, 7.5)
shape = SubResource("RectangleShape2D_nqvoc")
[node name="EnemyPlayerDetection" type="Node" parent="Sprite/EntityHitbox" node_paths=PackedStringArray("hitbox")]
script = ExtResource("7_pl7bt")
hitbox = NodePath("..")
metadata/_custom_type_script = "uid://chj8hu207lrh"
[node name="Wrench" type="AnimatedSprite2D" parent="Sprite"]
visible = false
position = Vector2(-3, -14)
sprite_frames = SubResource("SpriteFrames_el25t")
animation = &"Idle"
autoplay = "Idle"
script = ExtResource("3_wom81")
do_offset = false
metadata/_custom_type_script = "uid://caq1qiwmy0mox"
[node name="ResourceSetterNew" type="Node" parent="Sprite/Wrench" node_paths=PackedStringArray("node_to_affect")]
script = ExtResource("3_4h1b4")
node_to_affect = NodePath("..")
property_name = "sprite_frames"
resource_json = ExtResource("9_kxgad")
metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
[node name="BasicStaticMovement" type="Node" parent="."]
script = ExtResource("5_8y80u")
metadata/_custom_type_script = "uid://bx6r8sjar6cwr"
[node name="Animations" type="AnimationPlayer" parent="."]
libraries = {
&"": SubResource("AnimationLibrary_3dqyr")
}
[node name="AnimatableBody2D" type="AnimatableBody2D" parent="."]
position = Vector2(0, -2)
rotation = 3.1415927
scale = Vector2(1, -1)
[node name="PlayerPlatform" type="CollisionShape2D" parent="AnimatableBody2D"]
shape = SubResource("RectangleShape2D_h4tv3")
one_way_collision = true
[node name="Collision" type="CollisionShape2D" parent="."]
position = Vector2(0, -2)
shape = SubResource("RectangleShape2D_h4tv3")
[node name="GibSpawner" type="Node" parent="." node_paths=PackedStringArray("visuals")]
script = ExtResource("8_nqvoc")
visuals = NodePath("../Sprite")
metadata/_custom_type_script = "uid://c3gg32ivrlq8n"
[node name="FireballDetection" type="Node" parent="." node_paths=PackedStringArray("hitbox")]
script = ExtResource("9_nxn7i")
hitbox = NodePath("../Sprite/EntityHitbox")
metadata/_custom_type_script = "uid://dri2d5jtu0fbq"
[node name="ShellDetection" type="Node" parent="." node_paths=PackedStringArray("hitbox")]
script = ExtResource("10_w66sd")
hitbox = NodePath("../Sprite/EntityHitbox")
metadata/_custom_type_script = "uid://bbww34oiexbx2"
[node name="Timer" type="Timer" parent="."]
one_shot = true
[node name="VisibleOnScreenEnabler2D" type="VisibleOnScreenEnabler2D" parent="."]
rect = Rect2(-10, -10, 20, 29)
[node name="ExplosionDetection" type="Node" parent="." node_paths=PackedStringArray("hitbox")]
script = ExtResource("13_h21ug")
hitbox = NodePath("../Sprite/EntityHitbox")
metadata/_custom_type_script = "uid://ba18grqjixded"
[node name="ScoreNoteSpawner" type="Node" parent="."]
script = ExtResource("14_el25t")
add_score = true
metadata/_custom_type_script = "uid://5octqlf4ohel"
[connection signal="killed" from="." to="GibSpawner" method="summon_gib"]
[connection signal="player_stomped_on" from="Sprite/StompHitbox/EnemyPlayerDetection" to="." method="on_player_stomped_on"]
[connection signal="invincible_player_hit" from="Sprite/EntityHitbox/EnemyPlayerDetection" to="." method="die_from_object"]
[connection signal="player_hit" from="Sprite/EntityHitbox/EnemyPlayerDetection" to="." method="damage_player"]
[connection signal="gib_about_to_spawn" from="GibSpawner" to="Sprite/Wrench" method="hide"]
[connection signal="gib_about_to_spawn" from="GibSpawner" to="Sprite" method="set_flip_v" binds= [true]]
[connection signal="gib_about_to_spawn" from="GibSpawner" to="Sprite" method="play" binds= ["Dead"]]
[connection signal="gib_about_to_spawn" from="GibSpawner" to="Sprite" method="set_offset" binds= [Vector2(0, -8)]]
[connection signal="fireball_hit" from="FireballDetection" to="." method="die_from_object"]
[connection signal="fireball_hit" from="FireballDetection" to="ScoreNoteSpawner" method="spawn_note" binds= [500]]
[connection signal="moving_shell_entered" from="ShellDetection" to="." method="die_from_object"]
[connection signal="timeout" from="Timer" to="." method="on_timeout"]
[connection signal="explosion_entered" from="ExplosionDetection" to="." method="die_from_object"]
[connection signal="explosion_entered" from="ExplosionDetection" to="ScoreNoteSpawner" method="spawn_note" binds= [500]]

View File

@@ -0,0 +1,158 @@
[gd_scene load_steps=22 format=3 uid="uid://cs40v66vkl6qi"]
[ext_resource type="Script" uid="uid://dv18do583a3x0" path="res://Scripts/Classes/Entities/Enemies/Goomba.gd" id="1_vwosn"]
[ext_resource type="Texture2D" uid="uid://caea5pxv4aawt" path="res://Assets/Sprites/Enemies/SideStepper.png" id="2_vwosn"]
[ext_resource type="Script" uid="uid://caq1qiwmy0mox" path="res://Scripts/Parts/BetterAnimatedSprite.gd" id="3_qknq8"]
[ext_resource type="JSON" path="res://Assets/Sprites/Enemies/SideStepper.json" id="5_7cy7x"]
[ext_resource type="Script" uid="uid://chj8hu207lrh" path="res://Scripts/Classes/Components/EnemyPlayerDetection.gd" id="5_orhyp"]
[ext_resource type="Script" uid="uid://c3gg32ivrlq8n" path="res://Scripts/Classes/Components/GibSpawner.gd" id="6_qknq8"]
[ext_resource type="Script" uid="uid://cmg61722ktg2m" path="res://Scripts/Classes/Components/BlockBouncingDetection.gd" id="7_0qgy2"]
[ext_resource type="Script" uid="uid://dri2d5jtu0fbq" path="res://Scripts/Classes/Components/FireballDetection.gd" id="8_5lh26"]
[ext_resource type="Script" uid="uid://bbww34oiexbx2" path="res://Scripts/Classes/Components/ShellDetection.gd" id="9_22ule"]
[ext_resource type="Script" uid="uid://5octqlf4ohel" path="res://Scripts/Classes/Components/ScoreNoteSpawner.gd" id="10_j1ueu"]
[ext_resource type="Script" uid="uid://dq860i312isk" path="res://Scripts/Classes/Components/IcicleDetection.gd" id="11_bwulv"]
[ext_resource type="Script" uid="uid://dlq6o2rg1x7in" path="res://Scripts/Classes/Components/BasicEnemyMovement.gd" id="12_sl01l"]
[ext_resource type="Script" uid="uid://cbal8ms2oe1ik" path="res://Scripts/Classes/Components/ResourceSetterNew.gd" id="14_0qgy2"]
[ext_resource type="Script" uid="uid://ba18grqjixded" path="res://Scripts/Classes/Components/ExplosionDetection.gd" id="14_orhyp"]
[sub_resource type="AtlasTexture" id="AtlasTexture_7cy7x"]
atlas = ExtResource("2_vwosn")
region = Rect2(32, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_orhyp"]
atlas = ExtResource("2_vwosn")
region = Rect2(48, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_22ule"]
atlas = ExtResource("2_vwosn")
region = Rect2(0, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_j1ueu"]
atlas = ExtResource("2_vwosn")
region = Rect2(16, 0, 16, 16)
[sub_resource type="SpriteFrames" id="SpriteFrames_877ec"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_7cy7x")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_orhyp")
}],
"loop": true,
"name": &"Angry",
"speed": 10.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_22ule")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_j1ueu")
}],
"loop": true,
"name": &"Walk",
"speed": 5.0
}]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_e62ic"]
size = Vector2(12, 12)
[sub_resource type="RectangleShape2D" id="RectangleShape2D_qm5my"]
size = Vector2(14, 14)
[node name="SideStepper" type="CharacterBody2D" node_paths=PackedStringArray("on_screen_enabler", "score_note_adder") groups=["Enemies"]]
collision_layer = 16
collision_mask = 50
script = ExtResource("1_vwosn")
on_screen_enabler = NodePath("VisibleOnScreenEnabler2D")
score_note_adder = NodePath("ScoreNoteSpawner")
[node name="Sprite" type="AnimatedSprite2D" parent="."]
position = Vector2(0, -8)
sprite_frames = SubResource("SpriteFrames_877ec")
animation = &"Walk"
frame_progress = 0.9589298
offset = Vector2(0, 1)
script = ExtResource("3_qknq8")
metadata/_custom_type_script = "uid://caq1qiwmy0mox"
[node name="ResourceSetterNew" type="Node" parent="Sprite" node_paths=PackedStringArray("node_to_affect")]
script = ExtResource("14_0qgy2")
node_to_affect = NodePath("..")
property_name = "sprite_frames"
resource_json = ExtResource("5_7cy7x")
metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
[node name="LCollision" type="CollisionShape2D" parent="."]
position = Vector2(0, -6)
rotation = 1.5707964
shape = SubResource("RectangleShape2D_e62ic")
one_way_collision = true
[node name="RCollision" type="CollisionShape2D" parent="."]
position = Vector2(0, -6)
rotation = -1.5707964
shape = SubResource("RectangleShape2D_e62ic")
one_way_collision = true
[node name="Hitbox" type="Area2D" parent="."]
[node name="Shape" type="CollisionShape2D" parent="Hitbox"]
visible = false
position = Vector2(0, -7)
shape = SubResource("RectangleShape2D_qm5my")
[node name="EnemyPlayerDetection" type="Node" parent="." node_paths=PackedStringArray("hitbox")]
script = ExtResource("5_orhyp")
hitbox = NodePath("../Hitbox")
[node name="VisibleOnScreenEnabler2D" type="VisibleOnScreenEnabler2D" parent="."]
self_modulate = Color(1, 1, 1, 0)
position = Vector2(0, -8)
[node name="GibSpawner" type="Node" parent="." node_paths=PackedStringArray("visuals")]
script = ExtResource("6_qknq8")
visuals = NodePath("../Sprite")
[node name="BlockBouncingDetection" type="Node" parent="."]
script = ExtResource("7_0qgy2")
[node name="FireballDetection" type="Node" parent="." node_paths=PackedStringArray("hitbox")]
script = ExtResource("8_5lh26")
hitbox = NodePath("../Hitbox")
[node name="ShellDetection" type="Node" parent="." node_paths=PackedStringArray("hitbox")]
script = ExtResource("9_22ule")
hitbox = NodePath("../Hitbox")
metadata/_custom_type_script = "uid://bbww34oiexbx2"
[node name="ScoreNoteSpawner" type="Node" parent="."]
script = ExtResource("10_j1ueu")
add_score = true
[node name="IcicleDetection" type="Node" parent="." node_paths=PackedStringArray("hitbox")]
script = ExtResource("11_bwulv")
hitbox = NodePath("../Hitbox")
[node name="BasicEnemyMovement" type="Node" parent="."]
script = ExtResource("12_sl01l")
metadata/_custom_type_script = "uid://dlq6o2rg1x7in"
[node name="ExplosionDetection" type="Node" parent="." node_paths=PackedStringArray("hitbox")]
script = ExtResource("14_orhyp")
hitbox = NodePath("../Hitbox")
metadata/_custom_type_script = "uid://ba18grqjixded"
[connection signal="killed" from="." to="GibSpawner" method="summon_gib"]
[connection signal="invincible_player_hit" from="EnemyPlayerDetection" to="." method="die_from_object"]
[connection signal="invincible_player_hit" from="EnemyPlayerDetection" to="ScoreNoteSpawner" method="spawn_note" binds= [100]]
[connection signal="player_hit" from="EnemyPlayerDetection" to="." method="damage_player"]
[connection signal="player_stomped_on" from="EnemyPlayerDetection" to="." method="damage_player"]
[connection signal="block_bounced" from="BlockBouncingDetection" to="." method="damage"]
[connection signal="fireball_hit" from="FireballDetection" to="." method="damage"]
[connection signal="moving_shell_entered" from="ShellDetection" to="." method="die_from_object"]
[connection signal="icicle_detected" from="IcicleDetection" to="." method="die_from_object"]
[connection signal="explosion_entered" from="ExplosionDetection" to="." method="die_from_object"]
[connection signal="explosion_entered" from="ExplosionDetection" to="ScoreNoteSpawner" method="spawn_note" binds= [200]]

View File

@@ -0,0 +1,154 @@
[gd_scene load_steps=23 format=3 uid="uid://b526l00ycqca3"]
[ext_resource type="Script" uid="uid://dv18do583a3x0" path="res://Scripts/Classes/Entities/Enemies/Goomba.gd" id="1_ngqvx"]
[ext_resource type="Texture2D" uid="uid://dtqjo5uvw6s0g" path="res://Assets/Sprites/Enemies/Sigebou.png" id="2_jkcbp"]
[ext_resource type="Script" uid="uid://caq1qiwmy0mox" path="res://Scripts/Parts/BetterAnimatedSprite.gd" id="3_fqftj"]
[ext_resource type="Script" uid="uid://cmvlgsjmsk0v5" path="res://Scripts/Classes/Resources/ThemedResource.gd" id="4_6tape"]
[ext_resource type="Script" uid="uid://cbal8ms2oe1ik" path="res://Scripts/Classes/Components/ResourceSetterNew.gd" id="4_bhka3"]
[ext_resource type="JSON" path="res://Assets/Sprites/Enemies/Sigebou.json" id="5_7b1wr"]
[ext_resource type="Script" uid="uid://chj8hu207lrh" path="res://Scripts/Classes/Components/EnemyPlayerDetection.gd" id="5_bhka3"]
[ext_resource type="Script" uid="uid://c3gg32ivrlq8n" path="res://Scripts/Classes/Components/GibSpawner.gd" id="6_7b1wr"]
[ext_resource type="Script" uid="uid://cmg61722ktg2m" path="res://Scripts/Classes/Components/BlockBouncingDetection.gd" id="7_g6e7j"]
[ext_resource type="Script" uid="uid://dri2d5jtu0fbq" path="res://Scripts/Classes/Components/FireballDetection.gd" id="8_eg68x"]
[ext_resource type="Script" uid="uid://bbww34oiexbx2" path="res://Scripts/Classes/Components/ShellDetection.gd" id="9_rqo8s"]
[ext_resource type="Script" uid="uid://5octqlf4ohel" path="res://Scripts/Classes/Components/ScoreNoteSpawner.gd" id="10_y7r83"]
[ext_resource type="Script" uid="uid://dq860i312isk" path="res://Scripts/Classes/Components/IcicleDetection.gd" id="11_i4utn"]
[ext_resource type="Script" uid="uid://cqif1li7otvpl" path="res://Scripts/Parts/SpriteFramesToJsonConverter.gd" id="12_6tape"]
[ext_resource type="Script" uid="uid://dlq6o2rg1x7in" path="res://Scripts/Classes/Components/BasicEnemyMovement.gd" id="12_n4k0p"]
[sub_resource type="AtlasTexture" id="AtlasTexture_bhka3"]
atlas = ExtResource("2_jkcbp")
region = Rect2(0, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_7b1wr"]
atlas = ExtResource("2_jkcbp")
region = Rect2(16, 0, 16, 16)
[sub_resource type="SpriteFrames" id="SpriteFrames_g6e7j"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_bhka3")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_7b1wr")
}],
"loop": true,
"name": &"default",
"speed": 5.0
}]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_e62ic"]
size = Vector2(12, 12)
[sub_resource type="RectangleShape2D" id="RectangleShape2D_qm5my"]
size = Vector2(14, 14)
[sub_resource type="SpriteFrames" id="SpriteFrames_eg68x"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_bhka3")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_7b1wr")
}],
"loop": true,
"name": &"default",
"speed": 5.0
}]
[sub_resource type="Resource" id="Resource_rqo8s"]
script = ExtResource("4_6tape")
Overworld = SubResource("SpriteFrames_eg68x")
metadata/_custom_type_script = "uid://cmvlgsjmsk0v5"
[node name="Sigebou" type="CharacterBody2D" node_paths=PackedStringArray("on_screen_enabler", "score_note_adder") groups=["Enemies"]]
collision_layer = 16
collision_mask = 50
script = ExtResource("1_ngqvx")
on_screen_enabler = NodePath("VisibleOnScreenEnabler2D")
score_note_adder = NodePath("ScoreNoteSpawner")
[node name="Sprite" type="AnimatedSprite2D" parent="."]
position = Vector2(0, -8)
scale = Vector2(-1, 1)
sprite_frames = SubResource("SpriteFrames_g6e7j")
autoplay = "default"
frame_progress = 0.809314
flip_h = true
script = ExtResource("3_fqftj")
metadata/_custom_type_script = "uid://caq1qiwmy0mox"
[node name="ResourceSetterNew" type="Node" parent="Sprite" node_paths=PackedStringArray("node_to_affect")]
script = ExtResource("4_bhka3")
node_to_affect = NodePath("..")
property_name = "sprite_frames"
resource_json = ExtResource("5_7b1wr")
metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
[node name="Collision" type="CollisionShape2D" parent="."]
visible = false
position = Vector2(0, -6)
shape = SubResource("RectangleShape2D_e62ic")
[node name="Hitbox" type="Area2D" parent="."]
position = Vector2(0, -8)
[node name="Shape" type="CollisionShape2D" parent="Hitbox"]
shape = SubResource("RectangleShape2D_qm5my")
[node name="EnemyPlayerDetection" type="Node" parent="." node_paths=PackedStringArray("hitbox")]
script = ExtResource("5_bhka3")
hitbox = NodePath("../Hitbox")
[node name="VisibleOnScreenEnabler2D" type="VisibleOnScreenEnabler2D" parent="."]
self_modulate = Color(1, 1, 1, 0)
position = Vector2(0, -8)
[node name="GibSpawner" type="Node" parent="." node_paths=PackedStringArray("visuals")]
script = ExtResource("6_7b1wr")
visuals = NodePath("../Sprite")
gib_type = 2
[node name="BlockBouncingDetection" type="Node" parent="."]
script = ExtResource("7_g6e7j")
[node name="FireballDetection" type="Node" parent="." node_paths=PackedStringArray("hitbox")]
script = ExtResource("8_eg68x")
hitbox = NodePath("../Hitbox")
play_sfx_on_hit = true
[node name="ShellDetection" type="Node" parent="." node_paths=PackedStringArray("hitbox")]
script = ExtResource("9_rqo8s")
hitbox = NodePath("../Hitbox")
metadata/_custom_type_script = "uid://bbww34oiexbx2"
[node name="ScoreNoteSpawner" type="Node" parent="."]
script = ExtResource("10_y7r83")
add_score = true
[node name="Node" type="Node" parent="." node_paths=PackedStringArray("hitbox")]
script = ExtResource("11_i4utn")
hitbox = NodePath("../Hitbox")
[node name="BasicEnemyMovement" type="Node" parent="." node_paths=PackedStringArray("visuals")]
script = ExtResource("12_n4k0p")
visuals = NodePath("../Sprite")
metadata/_custom_type_script = "uid://dlq6o2rg1x7in"
[node name="ThemedToJSONConverter" type="Node" parent="."]
script = ExtResource("12_6tape")
resource = SubResource("Resource_rqo8s")
json_file_path = "res://Assets/Sprites/Enemies/Sigebou.json"
metadata/_custom_type_script = "uid://cqif1li7otvpl"
[connection signal="killed" from="." to="GibSpawner" method="summon_gib"]
[connection signal="invincible_player_hit" from="EnemyPlayerDetection" to="." method="die_from_object"]
[connection signal="invincible_player_hit" from="EnemyPlayerDetection" to="ScoreNoteSpawner" method="spawn_note" binds= [100]]
[connection signal="player_hit" from="EnemyPlayerDetection" to="." method="damage_player"]
[connection signal="player_stomped_on" from="EnemyPlayerDetection" to="." method="damage_player"]
[connection signal="block_bounced" from="BlockBouncingDetection" to="." method="die_from_object"]
[connection signal="block_bounced" from="BlockBouncingDetection" to="ScoreNoteSpawner" method="spawn_note" binds= [100]]
[connection signal="moving_shell_entered" from="ShellDetection" to="." method="die_from_object"]
[connection signal="icicle_detected" from="Node" to="." method="die_from_object"]

View File

@@ -0,0 +1,310 @@
[gd_scene load_steps=30 format=3 uid="uid://dbob4iexex6yp"]
[ext_resource type="Script" uid="uid://4isgtypd8yqc" path="res://Scripts/Classes/Entities/Enemies/Spike.gd" id="1_5cp2h"]
[ext_resource type="Texture2D" uid="uid://drf0xqp7af1bx" path="res://Assets/Sprites/Enemies/Spike.png" id="2_dd7on"]
[ext_resource type="Script" uid="uid://caq1qiwmy0mox" path="res://Scripts/Parts/BetterAnimatedSprite.gd" id="3_5cp2h"]
[ext_resource type="Texture2D" uid="uid://dtn3el3cobo42" path="res://Assets/Sprites/Items/SpikeBall.png" id="3_m8jkd"]
[ext_resource type="Script" uid="uid://chj8hu207lrh" path="res://Scripts/Classes/Components/EnemyPlayerDetection.gd" id="3_wml2i"]
[ext_resource type="Script" uid="uid://c3gg32ivrlq8n" path="res://Scripts/Classes/Components/GibSpawner.gd" id="4_w6nqc"]
[ext_resource type="Script" uid="uid://cbal8ms2oe1ik" path="res://Scripts/Classes/Components/ResourceSetterNew.gd" id="5_ddx5o"]
[ext_resource type="Script" uid="uid://5octqlf4ohel" path="res://Scripts/Classes/Components/ScoreNoteSpawner.gd" id="5_w6nqc"]
[ext_resource type="JSON" path="res://Assets/Sprites/Enemies/Spike.json" id="6_dhnkc"]
[ext_resource type="Script" uid="uid://dri2d5jtu0fbq" path="res://Scripts/Classes/Components/FireballDetection.gd" id="6_iboug"]
[ext_resource type="JSON" path="res://Assets/Sprites/Items/SpikeBall.json" id="7_l0d5l"]
[ext_resource type="Script" uid="uid://bbww34oiexbx2" path="res://Scripts/Classes/Components/ShellDetection.gd" id="7_m8jkd"]
[ext_resource type="Script" uid="uid://dlq6o2rg1x7in" path="res://Scripts/Classes/Components/BasicEnemyMovement.gd" id="12_dhnkc"]
[ext_resource type="Script" uid="uid://bx6r8sjar6cwr" path="res://Scripts/Classes/Components/BasicStaticMovement.gd" id="13_vg6vt"]
[ext_resource type="Script" uid="uid://ctfbuoxtnnl0q" path="res://Scripts/Classes/Components/EditorPropertyExposer.gd" id="14_px5di"]
[ext_resource type="Script" uid="uid://ba18grqjixded" path="res://Scripts/Classes/Components/ExplosionDetection.gd" id="15_5pdnx"]
[sub_resource type="AtlasTexture" id="AtlasTexture_5cp2h"]
atlas = ExtResource("2_dd7on")
region = Rect2(32, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_w1p0q"]
atlas = ExtResource("2_dd7on")
region = Rect2(48, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_ddx5o"]
atlas = ExtResource("2_dd7on")
region = Rect2(64, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_dhnkc"]
atlas = ExtResource("2_dd7on")
region = Rect2(80, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_wml2i"]
atlas = ExtResource("2_dd7on")
region = Rect2(16, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_w6nqc"]
atlas = ExtResource("2_dd7on")
region = Rect2(0, 0, 16, 16)
[sub_resource type="SpriteFrames" id="SpriteFrames_0q3vy"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_5cp2h")
}, {
"duration": 2.0,
"texture": SubResource("AtlasTexture_w1p0q")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_ddx5o")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_dhnkc")
}],
"loop": false,
"name": &"GrabBall",
"speed": 10.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_wml2i")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_w6nqc")
}],
"loop": true,
"name": &"Idle",
"speed": 5.0
}]
[sub_resource type="Animation" id="Animation_vg6vt"]
resource_name = "BallSpawn"
tracks/0/type = "method"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Sprite")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"values": [{
"args": [&"GrabBall", 1.0, false],
"method": &"play"
}]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("Sprite/Ball:visible")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [true]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("Sprite/Ball:position")
tracks/2/interp = 2
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0, 0.3, 0.4, 0.866667, 0.966667, 1),
"transitions": PackedFloat32Array(1, 1, 1e-05, 1, 1, 1),
"update": 0,
"values": [Vector2(0, 0), Vector2(0, -17), Vector2(0, -14), Vector2(0, -14), Vector2(-3, -14), Vector2(0, -14)]
}
[sub_resource type="Animation" id="Animation_5cp2h"]
resource_name = "Idle"
tracks/0/type = "method"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Sprite")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"values": [{
"args": [&"Idle", 1.0, false],
"method": &"play"
}]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("Sprite/Ball:visible")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [false]
}
[sub_resource type="Animation" id="Animation_w1p0q"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Sprite/Ball:visible")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [false]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("Sprite/Ball:position")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector2(0, 0)]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_px5di"]
_data = {
&"BallSpawn": SubResource("Animation_vg6vt"),
&"Idle": SubResource("Animation_5cp2h"),
&"RESET": SubResource("Animation_w1p0q")
}
[sub_resource type="RectangleShape2D" id="RectangleShape2D_r5um5"]
size = Vector2(10, 8)
[sub_resource type="RectangleShape2D" id="RectangleShape2D_dd7on"]
size = Vector2(10, 12)
[node name="Spike" type="CharacterBody2D" node_paths=PackedStringArray("on_screen_enabler", "score_note_adder") groups=["Enemies"]]
collision_layer = 16
collision_mask = 2
script = ExtResource("1_5cp2h")
on_screen_enabler = NodePath("VisibleOnScreenEnabler2D")
score_note_adder = NodePath("ScoreNoteSpawner")
metadata/_custom_type_script = "uid://bpydbpyjk1mt4"
[node name="Sprite" type="AnimatedSprite2D" parent="."]
position = Vector2(0, -8)
scale = Vector2(-1, 1)
sprite_frames = SubResource("SpriteFrames_0q3vy")
animation = &"GrabBall"
autoplay = "Idle"
frame = 3
frame_progress = 1.0
offset = Vector2(0, 1)
flip_h = true
script = ExtResource("3_5cp2h")
metadata/_custom_type_script = "uid://caq1qiwmy0mox"
[node name="Animations" type="AnimationPlayer" parent="Sprite"]
unique_name_in_owner = true
root_node = NodePath("../..")
libraries = {
&"": SubResource("AnimationLibrary_px5di")
}
[node name="ResourceSetterNew" type="Node" parent="Sprite" node_paths=PackedStringArray("node_to_affect")]
script = ExtResource("5_ddx5o")
node_to_affect = NodePath("..")
property_name = "sprite_frames"
resource_json = ExtResource("6_dhnkc")
metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
[node name="Ball" type="Sprite2D" parent="Sprite"]
unique_name_in_owner = true
visible = false
show_behind_parent = true
rotation = 3.14159
scale = Vector2(1, -1)
texture = ExtResource("3_m8jkd")
[node name="ResourceSetterNew" type="Node" parent="Sprite/Ball" node_paths=PackedStringArray("node_to_affect")]
script = ExtResource("5_ddx5o")
node_to_affect = NodePath("..")
property_name = "texture"
mode = 1
resource_json = ExtResource("7_l0d5l")
metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
[node name="Collision" type="CollisionShape2D" parent="."]
position = Vector2(0, -4)
shape = SubResource("RectangleShape2D_r5um5")
[node name="Hitbox" type="Area2D" parent="."]
[node name="CollisionShape2D" type="CollisionShape2D" parent="Hitbox"]
position = Vector2(0, -6)
shape = SubResource("RectangleShape2D_dd7on")
[node name="EnemyPlayerDetection" type="Node" parent="." node_paths=PackedStringArray("hitbox")]
script = ExtResource("3_wml2i")
hitbox = NodePath("../Hitbox")
metadata/_custom_type_script = "uid://chj8hu207lrh"
[node name="GibSpawner" type="Node" parent="." node_paths=PackedStringArray("visuals")]
script = ExtResource("4_w6nqc")
visuals = NodePath("../Sprite")
metadata/_custom_type_script = "uid://c3gg32ivrlq8n"
[node name="ScoreNoteSpawner" type="Node" parent="."]
script = ExtResource("5_w6nqc")
metadata/_custom_type_script = "uid://5octqlf4ohel"
[node name="FireballDetection" type="Node" parent="." node_paths=PackedStringArray("hitbox")]
script = ExtResource("6_iboug")
hitbox = NodePath("../Hitbox")
play_sfx_on_hit = true
metadata/_custom_type_script = "uid://dri2d5jtu0fbq"
[node name="ShellDetection" type="Node" parent="." node_paths=PackedStringArray("hitbox")]
script = ExtResource("7_m8jkd")
hitbox = NodePath("../Hitbox")
metadata/_custom_type_script = "uid://bbww34oiexbx2"
[node name="ThrowTimer" type="Timer" parent="."]
wait_time = 5.0
[node name="VisibleOnScreenEnabler2D" type="VisibleOnScreenEnabler2D" parent="."]
position = Vector2(0, -9)
[node name="Movement" type="Node" parent="." node_paths=PackedStringArray("visuals")]
script = ExtResource("12_dhnkc")
auto_call = false
visuals = NodePath("../Sprite")
[node name="TurnTimer" type="Timer" parent="."]
wait_time = 2.0
[node name="StaticMovement" type="Node" parent="." node_paths=PackedStringArray("visuals")]
script = ExtResource("13_vg6vt")
auto_call = false
visuals = NodePath("../Sprite")
[node name="EditorPropertyExposer" type="Node" parent="."]
script = ExtResource("14_px5di")
properties = Array[String](["can_move"])
[node name="ExplosionDetection" type="Node" parent="." node_paths=PackedStringArray("hitbox")]
script = ExtResource("15_5pdnx")
hitbox = NodePath("../Hitbox")
metadata/_custom_type_script = "uid://ba18grqjixded"
[connection signal="killed" from="." to="GibSpawner" method="summon_gib"]
[connection signal="invincible_player_hit" from="EnemyPlayerDetection" to="." method="die_from_object"]
[connection signal="invincible_player_hit" from="EnemyPlayerDetection" to="ScoreNoteSpawner" method="spawn_note" binds= [500]]
[connection signal="player_hit" from="EnemyPlayerDetection" to="." method="damage_player"]
[connection signal="player_stomped_on" from="EnemyPlayerDetection" to="GibSpawner" method="stomp_die"]
[connection signal="fireball_hit" from="FireballDetection" to="." method="die_from_object"]
[connection signal="fireball_hit" from="FireballDetection" to="ScoreNoteSpawner" method="spawn_note" binds= [500]]
[connection signal="moving_shell_entered" from="ShellDetection" to="." method="die_from_object"]
[connection signal="timeout" from="ThrowTimer" to="." method="throw_ball"]
[connection signal="timeout" from="TurnTimer" to="." method="on_timeout"]
[connection signal="explosion_entered" from="ExplosionDetection" to="." method="die_from_object"]
[connection signal="explosion_entered" from="ExplosionDetection" to="ScoreNoteSpawner" method="spawn_note" binds= [500]]

View File

@@ -0,0 +1,171 @@
[gd_scene load_steps=22 format=3 uid="uid://dinpjmg0q23rv"]
[ext_resource type="Script" uid="uid://bds7rntb0btee" path="res://Scripts/Classes/Entities/Enemies/Spiny.gd" id="1_u8w4p"]
[ext_resource type="Texture2D" uid="uid://diemx33h3bxa2" path="res://Assets/Sprites/Enemies/Spiny.png" id="2_u8w4p"]
[ext_resource type="Script" uid="uid://cbal8ms2oe1ik" path="res://Scripts/Classes/Components/ResourceSetterNew.gd" id="3_velug"]
[ext_resource type="JSON" path="res://Assets/Sprites/Enemies/Spiny.json" id="4_a74i7"]
[ext_resource type="Script" uid="uid://chj8hu207lrh" path="res://Scripts/Classes/Components/EnemyPlayerDetection.gd" id="4_qcd6q"]
[ext_resource type="Script" uid="uid://c3gg32ivrlq8n" path="res://Scripts/Classes/Components/GibSpawner.gd" id="5_f6841"]
[ext_resource type="Script" uid="uid://bbww34oiexbx2" path="res://Scripts/Classes/Components/ShellDetection.gd" id="6_velug"]
[ext_resource type="Script" uid="uid://dri2d5jtu0fbq" path="res://Scripts/Classes/Components/FireballDetection.gd" id="7_a74i7"]
[ext_resource type="Script" uid="uid://cmg61722ktg2m" path="res://Scripts/Classes/Components/BlockBouncingDetection.gd" id="8_j3bt6"]
[ext_resource type="Script" uid="uid://dlq6o2rg1x7in" path="res://Scripts/Classes/Components/BasicEnemyMovement.gd" id="10_a74i7"]
[ext_resource type="Script" uid="uid://ba18grqjixded" path="res://Scripts/Classes/Components/ExplosionDetection.gd" id="11_yhsi8"]
[ext_resource type="Script" uid="uid://5octqlf4ohel" path="res://Scripts/Classes/Components/ScoreNoteSpawner.gd" id="12_7f13k"]
[ext_resource type="Script" uid="uid://d4a7yp6e55u8t" path="res://Scripts/Classes/Components/TrackJoint.gd" id="13_7f13k"]
[ext_resource type="Script" uid="uid://33no4mylhh1r" path="res://Scripts/Classes/Components/OffScreenDespawner.gd" id="14_878x2"]
[sub_resource type="AtlasTexture" id="AtlasTexture_evl61"]
atlas = ExtResource("2_u8w4p")
region = Rect2(0, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_s2w10"]
atlas = ExtResource("2_u8w4p")
region = Rect2(16, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_qcd6q"]
atlas = ExtResource("2_u8w4p")
region = Rect2(0, 16, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_r3qkt"]
atlas = ExtResource("2_u8w4p")
region = Rect2(16, 16, 16, 16)
[sub_resource type="SpriteFrames" id="SpriteFrames_evl61"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_evl61")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_s2w10")
}],
"loop": true,
"name": &"Egg",
"speed": 10.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_qcd6q")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_r3qkt")
}],
"loop": true,
"name": &"Walk",
"speed": 5.0
}]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_s2w10"]
custom_solver_bias = 1.0
size = Vector2(10, 8)
[sub_resource type="RectangleShape2D" id="RectangleShape2D_f6841"]
custom_solver_bias = 1.0
size = Vector2(10, 10)
[node name="Spiny" type="CharacterBody2D" node_paths=PackedStringArray("on_screen_enabler", "score_note_adder") groups=["Enemies"]]
collision_layer = 16
collision_mask = 50
script = ExtResource("1_u8w4p")
on_screen_enabler = NodePath("VisibleOnScreenEnabler2D")
score_note_adder = NodePath("ScoreNoteSpawner")
metadata/_custom_type_script = "uid://bpydbpyjk1mt4"
[node name="Sprite" type="AnimatedSprite2D" parent="."]
position = Vector2(0, -8)
scale = Vector2(-1, 1)
sprite_frames = SubResource("SpriteFrames_evl61")
animation = &"Walk"
autoplay = "Walk"
offset = Vector2(0, 1)
flip_h = true
[node name="ResourceSetterNew" type="Node" parent="Sprite" node_paths=PackedStringArray("node_to_affect")]
script = ExtResource("3_velug")
node_to_affect = NodePath("..")
property_name = "sprite_frames"
resource_json = ExtResource("4_a74i7")
metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
[node name="Hitbox" type="Area2D" parent="."]
[node name="Shape" type="CollisionShape2D" parent="Hitbox"]
position = Vector2(0, -4)
shape = SubResource("RectangleShape2D_s2w10")
[node name="RCollision" type="CollisionShape2D" parent="."]
visible = false
position = Vector2(0, -5)
rotation = 1.5708
shape = SubResource("RectangleShape2D_f6841")
one_way_collision = true
[node name="LCollision" type="CollisionShape2D" parent="."]
visible = false
position = Vector2(0, -5)
rotation = -1.5708
shape = SubResource("RectangleShape2D_f6841")
one_way_collision = true
[node name="EnemyPlayerDetection" type="Node" parent="." node_paths=PackedStringArray("hitbox")]
script = ExtResource("4_qcd6q")
hitbox = NodePath("../Hitbox")
metadata/_custom_type_script = "uid://chj8hu207lrh"
[node name="VisibleOnScreenEnabler2D" type="VisibleOnScreenEnabler2D" parent="."]
position = Vector2(0, -8)
[node name="GibSpawner" type="Node" parent="." node_paths=PackedStringArray("visuals")]
script = ExtResource("5_f6841")
visuals = NodePath("../Sprite")
metadata/_custom_type_script = "uid://c3gg32ivrlq8n"
[node name="ShellDetection" type="Node" parent="." node_paths=PackedStringArray("hitbox")]
script = ExtResource("6_velug")
hitbox = NodePath("../Hitbox")
metadata/_custom_type_script = "uid://bbww34oiexbx2"
[node name="FireballDetection" type="Node" parent="." node_paths=PackedStringArray("hitbox")]
script = ExtResource("7_a74i7")
hitbox = NodePath("../Hitbox")
metadata/_custom_type_script = "uid://dri2d5jtu0fbq"
[node name="BlockBouncingDetection" type="Node" parent="."]
script = ExtResource("8_j3bt6")
metadata/_custom_type_script = "uid://cmg61722ktg2m"
[node name="BasicEnemyMovement" type="Node" parent="."]
script = ExtResource("10_a74i7")
[node name="ExplosionDetection" type="Node" parent="." node_paths=PackedStringArray("hitbox")]
script = ExtResource("11_yhsi8")
hitbox = NodePath("../Hitbox")
[node name="ScoreNoteSpawner" type="Node" parent="."]
script = ExtResource("12_7f13k")
add_score = true
metadata/_custom_type_script = "uid://5octqlf4ohel"
[node name="TrackJoint" type="Node" parent="." node_paths=PackedStringArray("movement_node")]
script = ExtResource("13_7f13k")
movement_node = NodePath("../BasicEnemyMovement")
metadata/_custom_type_script = "uid://d4a7yp6e55u8t"
[node name="OffScreenDespawner" type="Node" parent="."]
script = ExtResource("14_878x2")
metadata/_custom_type_script = "uid://33no4mylhh1r"
[connection signal="killed" from="." to="GibSpawner" method="summon_gib"]
[connection signal="invincible_player_hit" from="EnemyPlayerDetection" to="." method="die_from_object"]
[connection signal="invincible_player_hit" from="EnemyPlayerDetection" to="ScoreNoteSpawner" method="spawn_note" binds= [200]]
[connection signal="player_hit" from="EnemyPlayerDetection" to="." method="damage_player"]
[connection signal="player_stomped_on" from="EnemyPlayerDetection" to="." method="damage_player"]
[connection signal="screen_exited" from="VisibleOnScreenEnabler2D" to="OffScreenDespawner" method="on_screen_exited"]
[connection signal="moving_shell_entered" from="ShellDetection" to="." method="die_from_object"]
[connection signal="fireball_hit" from="FireballDetection" to="." method="die_from_object"]
[connection signal="fireball_hit" from="FireballDetection" to="ScoreNoteSpawner" method="spawn_note" binds= [200]]
[connection signal="block_bounced" from="BlockBouncingDetection" to="." method="die_from_object"]
[connection signal="block_bounced" from="BlockBouncingDetection" to="ScoreNoteSpawner" method="spawn_note" binds= [200]]
[connection signal="explosion_entered" from="ExplosionDetection" to="." method="die_from_object"]
[connection signal="explosion_entered" from="ExplosionDetection" to="ScoreNoteSpawner" method="spawn_note" binds= [200]]

View File

@@ -0,0 +1,150 @@
[gd_scene load_steps=19 format=3 uid="uid://dq6syqkg4qjf0"]
[ext_resource type="Script" uid="uid://bxfc7hxw13s6q" path="res://Scripts/Classes/Entities/Enemies/Thwomp.gd" id="1_bl7l2"]
[ext_resource type="Texture2D" uid="uid://dw5k3dr3kedw3" path="res://Assets/Sprites/Enemies/Thwomp.png" id="2_kdp37"]
[ext_resource type="Script" uid="uid://cbal8ms2oe1ik" path="res://Scripts/Classes/Components/ResourceSetterNew.gd" id="3_bl7l2"]
[ext_resource type="JSON" path="res://Assets/Sprites/Enemies/Thwomp.json" id="4_426pe"]
[ext_resource type="Script" uid="uid://chj8hu207lrh" path="res://Scripts/Classes/Components/EnemyPlayerDetection.gd" id="5_gvuxk"]
[ext_resource type="Script" uid="uid://cmg61722ktg2m" path="res://Scripts/Classes/Components/BlockBouncingDetection.gd" id="6_5xuvp"]
[ext_resource type="Script" uid="uid://c3gg32ivrlq8n" path="res://Scripts/Classes/Components/GibSpawner.gd" id="7_01c5y"]
[ext_resource type="Script" uid="uid://dri2d5jtu0fbq" path="res://Scripts/Classes/Components/FireballDetection.gd" id="8_5xuvp"]
[ext_resource type="Script" uid="uid://dq860i312isk" path="res://Scripts/Classes/Components/IcicleDetection.gd" id="9_01c5y"]
[ext_resource type="Script" uid="uid://d4a7yp6e55u8t" path="res://Scripts/Classes/Components/TrackJoint.gd" id="10_f8b23"]
[ext_resource type="Script" uid="uid://5octqlf4ohel" path="res://Scripts/Classes/Components/ScoreNoteSpawner.gd" id="11_jkv5r"]
[sub_resource type="AtlasTexture" id="AtlasTexture_bl7l2"]
atlas = ExtResource("2_kdp37")
region = Rect2(48, 0, 24, 32)
[sub_resource type="AtlasTexture" id="AtlasTexture_426pe"]
atlas = ExtResource("2_kdp37")
region = Rect2(0, 0, 24, 32)
[sub_resource type="AtlasTexture" id="AtlasTexture_elu2h"]
atlas = ExtResource("2_kdp37")
region = Rect2(24, 0, 24, 32)
[sub_resource type="SpriteFrames" id="SpriteFrames_gvuxk"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_bl7l2")
}],
"loop": true,
"name": &"Fall",
"speed": 5.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_426pe")
}],
"loop": true,
"name": &"Idle",
"speed": 5.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_elu2h")
}],
"loop": true,
"name": &"Look",
"speed": 5.0
}]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_5xuvp"]
size = Vector2(24, 31)
[sub_resource type="RectangleShape2D" id="RectangleShape2D_f8b23"]
size = Vector2(20, 30)
[sub_resource type="RectangleShape2D" id="RectangleShape2D_gvuxk"]
size = Vector2(16, 1)
[node name="Thwomp" type="CharacterBody2D" node_paths=PackedStringArray("on_screen_enabler", "score_note_adder") groups=["Enemies"]]
collision_layer = 16
collision_mask = 6
script = ExtResource("1_bl7l2")
on_screen_enabler = NodePath("VisibleOnScreenEnabler2D")
score_note_adder = NodePath("ScoreNoteSpawner")
metadata/_custom_type_script = "uid://bpydbpyjk1mt4"
[node name="Sprite" type="AnimatedSprite2D" parent="."]
unique_name_in_owner = true
position = Vector2(0, -16)
sprite_frames = SubResource("SpriteFrames_gvuxk")
animation = &"Idle"
autoplay = "Idle"
offset = Vector2(0, 1)
[node name="ResourceSetterNew" type="Node" parent="Sprite" node_paths=PackedStringArray("node_to_affect")]
script = ExtResource("3_bl7l2")
node_to_affect = NodePath("..")
property_name = "sprite_frames"
resource_json = ExtResource("4_426pe")
metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
[node name="Collision" type="CollisionShape2D" parent="."]
position = Vector2(0, -15.5)
shape = SubResource("RectangleShape2D_5xuvp")
one_way_collision = true
[node name="VisibleOnScreenEnabler2D" type="VisibleOnScreenEnabler2D" parent="."]
position = Vector2(0, -16)
rect = Rect2(-16, -24, 32, 512)
[node name="Hitbox" type="Area2D" parent="."]
[node name="CollisionShape2D" type="CollisionShape2D" parent="Hitbox"]
position = Vector2(0, -16)
shape = SubResource("RectangleShape2D_f8b23")
[node name="EnemyPlayerDetection" type="Node" parent="." node_paths=PackedStringArray("hitbox")]
script = ExtResource("5_gvuxk")
hitbox = NodePath("../Hitbox")
metadata/_custom_type_script = "uid://chj8hu207lrh"
[node name="BlockBouncingDetection" type="Node" parent="." node_paths=PackedStringArray("hitbox")]
script = ExtResource("6_5xuvp")
detection_type = 1
hitbox = NodePath("../Hitbox")
metadata/_custom_type_script = "uid://cmg61722ktg2m"
[node name="GibSpawner" type="Node" parent="." node_paths=PackedStringArray("visuals")]
script = ExtResource("7_01c5y")
visuals = NodePath("../Sprite")
metadata/_custom_type_script = "uid://c3gg32ivrlq8n"
[node name="BlockBreakingHitbox" type="Area2D" parent="."]
unique_name_in_owner = true
collision_layer = 0
collision_mask = 6
[node name="CollisionShape2D" type="CollisionShape2D" parent="BlockBreakingHitbox"]
position = Vector2(0, 0.5)
shape = SubResource("RectangleShape2D_gvuxk")
[node name="FireballDetection" type="Node" parent="." node_paths=PackedStringArray("hitbox")]
script = ExtResource("8_5xuvp")
hitbox = NodePath("../Hitbox")
play_sfx_on_hit = true
metadata/_custom_type_script = "uid://dri2d5jtu0fbq"
[node name="IcicleDetection" type="Node" parent="." node_paths=PackedStringArray("hitbox")]
script = ExtResource("9_01c5y")
hitbox = NodePath("../Hitbox")
metadata/_custom_type_script = "uid://dq860i312isk"
[node name="TrackJoint" type="Node" parent="."]
script = ExtResource("10_f8b23")
disable_physics = false
metadata/_custom_type_script = "uid://d4a7yp6e55u8t"
[node name="ScoreNoteSpawner" type="Node" parent="."]
script = ExtResource("11_jkv5r")
metadata/_custom_type_script = "uid://5octqlf4ohel"
[connection signal="killed" from="." to="GibSpawner" method="summon_gib"]
[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"]
[connection signal="block_bounced" from="BlockBouncingDetection" to="." method="die_from_object"]

View File

@@ -0,0 +1,17 @@
[gd_scene load_steps=3 format=3 uid="uid://pfhvflypjq6y"]
[ext_resource type="PackedScene" uid="uid://duptcik2j0b04" path="res://Scenes/Prefabs/Entities/Enemies/Bowser.tscn" id="1_xtf8a"]
[ext_resource type="JSON" path="res://Assets/Sprites/Enemies/Bowser.json" id="4_ryqkh"]
[node name="TrueBowser" instance=ExtResource("1_xtf8a")]
can_hammer = true
metadata/is_real = true
[node name="ResourceSetterNew" parent="SpriteScaleJoint/DeathSprite" index="0"]
resource_json = ExtResource("4_ryqkh")
[node name="GibSpawner" parent="." index="8" node_paths=PackedStringArray("visuals")]
visuals = NodePath("../SpriteScaleJoint/Sprite")
gib_type = 1
[connection signal="fireball_hit" from="FireballDetection" to="." method="fireball_hit" unbinds=1]

View File

@@ -0,0 +1,13 @@
[gd_scene load_steps=2 format=3 uid="uid://b4w3brnky14rv"]
[ext_resource type="Script" uid="uid://sfu6fevr0yop" path="res://Scripts/Parts/EntityGib.gd" id="1_fif4p"]
[node name="EntityGib" type="Node2D"]
script = ExtResource("1_fif4p")
[node name="Timer" type="Timer" parent="."]
wait_time = 4.0
one_shot = true
autostart = true
[connection signal="timeout" from="Timer" to="." method="queue_free"]

View File

@@ -0,0 +1,309 @@
[gd_scene load_steps=22 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"]
[ext_resource type="Texture2D" uid="uid://byy3k1pdrp77" path="res://Assets/Sprites/Particles/Smoke.png" id="3_dvv3e"]
[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"]
[sub_resource type="AtlasTexture" id="AtlasTexture_vnd2t"]
atlas = ExtResource("2_4aiuq")
region = Rect2(0, 0, 18, 18)
[sub_resource type="AtlasTexture" id="AtlasTexture_axqny"]
atlas = ExtResource("2_4aiuq")
region = Rect2(18, 0, 18, 18)
[sub_resource type="AtlasTexture" id="AtlasTexture_vk8m3"]
atlas = ExtResource("2_4aiuq")
region = Rect2(36, 0, 18, 18)
[sub_resource type="AtlasTexture" id="AtlasTexture_vewww"]
atlas = ExtResource("2_4aiuq")
region = Rect2(54, 0, 18, 18)
[sub_resource type="AtlasTexture" id="AtlasTexture_o5yus"]
atlas = ExtResource("2_4aiuq")
region = Rect2(0, 0, 1, 1)
[sub_resource type="SpriteFrames" id="SpriteFrames_h02ee"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_vnd2t")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_axqny")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_vk8m3")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_vewww")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_o5yus")
}],
"loop": false,
"name": &"default",
"speed": 20.0
}]
[sub_resource type="AtlasTexture" id="AtlasTexture_4hp3l"]
atlas = ExtResource("3_dvv3e")
region = Rect2(0, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_g2rj1"]
atlas = ExtResource("3_dvv3e")
region = Rect2(16, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_ccfgr"]
atlas = ExtResource("3_dvv3e")
region = Rect2(32, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_ei4ln"]
atlas = ExtResource("3_dvv3e")
region = Rect2(48, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_4umcr"]
atlas = ExtResource("3_dvv3e")
region = Rect2(64, 0, 16, 16)
[sub_resource type="SpriteFrames" id="SpriteFrames_pd384"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_4hp3l")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_g2rj1")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_ccfgr")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_ei4ln")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_4umcr")
}],
"loop": false,
"name": &"default",
"speed": 10.0
}]
[sub_resource type="Animation" id="Animation_vrsgy"]
resource_name = "Go"
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("CloudTL:position")
tracks/0/interp = 2
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 1),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Vector2(-8, -8), Vector2(-40, -40)]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("CloudTR:position")
tracks/1/interp = 2
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0, 1),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Vector2(8, -8), Vector2(40, -40)]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("CloudBR:position")
tracks/2/interp = 2
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0, 1),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Vector2(8, 8), Vector2(40, 40)]
}
tracks/3/type = "value"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("CloudBL:position")
tracks/3/interp = 2
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(0, 1),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Vector2(-8, 8), Vector2(-40, 40)]
}
tracks/4/type = "method"
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/path = NodePath(".")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/keys = {
"times": PackedFloat32Array(1),
"transitions": PackedFloat32Array(1),
"values": [{
"args": [],
"method": &"queue_free"
}]
}
tracks/5/type = "value"
tracks/5/imported = false
tracks/5/enabled = true
tracks/5/path = NodePath("Hitbox/Shape:disabled")
tracks/5/interp = 1
tracks/5/loop_wrap = true
tracks/5/keys = {
"times": PackedFloat32Array(0, 0.06),
"transitions": PackedFloat32Array(1, 1),
"update": 1,
"values": [false, true]
}
[sub_resource type="Animation" id="Animation_anr6o"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("CloudTL:position")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector2(-8, -8)]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("CloudTR:position")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector2(8, -8)]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("CloudBR:position")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector2(8, 8)]
}
tracks/3/type = "value"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("CloudBL:position")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector2(-8, 8)]
}
tracks/4/type = "value"
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/path = NodePath("Hitbox/Shape:disabled")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [false]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_6tdk1"]
_data = {
&"Go": SubResource("Animation_vrsgy"),
&"RESET": SubResource("Animation_anr6o")
}
[sub_resource type="CircleShape2D" id="CircleShape2D_6tdk1"]
radius = 24.0
[node name="Explosion" type="Node2D"]
script = ExtResource("1_aklik")
metadata/is_explosion = true
[node name="Sprite" type="AnimatedSprite2D" parent="."]
sprite_frames = SubResource("SpriteFrames_h02ee")
autoplay = "default"
frame = 4
frame_progress = 1.0
[node name="CloudTL" type="AnimatedSprite2D" parent="."]
position = Vector2(-8, -8)
sprite_frames = SubResource("SpriteFrames_pd384")
autoplay = "default"
frame = 4
frame_progress = 1.0
script = ExtResource("4_hjivi")
metadata/_custom_type_script = "uid://caq1qiwmy0mox"
[node name="CloudTR" type="AnimatedSprite2D" parent="."]
position = Vector2(8, -8)
sprite_frames = SubResource("SpriteFrames_pd384")
autoplay = "default"
frame = 4
frame_progress = 1.0
script = ExtResource("4_hjivi")
metadata/_custom_type_script = "uid://caq1qiwmy0mox"
[node name="CloudBR" type="AnimatedSprite2D" parent="."]
position = Vector2(8, 8)
sprite_frames = SubResource("SpriteFrames_pd384")
autoplay = "default"
frame = 4
frame_progress = 1.0
script = ExtResource("4_hjivi")
metadata/_custom_type_script = "uid://caq1qiwmy0mox"
[node name="CloudBL" type="AnimatedSprite2D" parent="."]
position = Vector2(-8, 8)
sprite_frames = SubResource("SpriteFrames_pd384")
autoplay = "default"
frame = 4
frame_progress = 1.0
script = ExtResource("4_hjivi")
metadata/_custom_type_script = "uid://caq1qiwmy0mox"
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
libraries = {
&"": SubResource("AnimationLibrary_6tdk1")
}
autoplay = "Go"
[node name="SFX" type="AudioStreamPlayer2D" parent="."]
stream = ExtResource("5_8imqq")
autoplay = true
max_distance = 256.0
bus = &"SFX"
[node name="Hitbox" type="Area2D" parent="."]
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"]
[connection signal="body_entered" from="Hitbox" to="." method="on_body_entered"]

View File

@@ -0,0 +1,21 @@
[gd_scene load_steps=4 format=3 uid="uid://dplnidrqshecd"]
[ext_resource type="PackedScene" uid="uid://chjxyhlwohmi6" path="res://Scenes/Prefabs/Entities/Items/Coin.tscn" id="1_iq4uk"]
[ext_resource type="PackedScene" uid="uid://bxuxtgn5wg108" path="res://Scenes/Prefabs/Entities/Items/SpinningBlueCoin.tscn" id="2_4rq0g"]
[ext_resource type="JSON" path="res://Assets/Sprites/Items/BlueCoin.json" id="2_r2p65"]
[node name="Coin" instance=ExtResource("1_iq4uk")]
spinning_coin_scene = ExtResource("2_4rq0g")
[node name="Sprite" parent="." index="0"]
animation = &"Idle"
autoplay = "Idle"
frame_progress = 0.0
[node name="ResourceSetterNew" parent="Sprite" index="0"]
resource_json = ExtResource("2_r2p65")
[node name="PSwitcher" parent="." index="4"]
new_scene = "uid://rjs2k335jmb5"
[connection signal="area_entered" from="Hitbox" to="." method="area_entered"]

View File

@@ -0,0 +1,47 @@
[gd_scene load_steps=9 format=3 uid="uid://rjs2k335jmb5"]
[ext_resource type="Script" uid="uid://cpwloakvp672a" path="res://Scripts/Parts/EditorVisibleNode.gd" id="1_isf0s"]
[ext_resource type="Script" uid="uid://caq1qiwmy0mox" path="res://Scripts/Parts/BetterAnimatedSprite.gd" id="2_3gxgc"]
[ext_resource type="Texture2D" uid="uid://c82ui0uuhsyle" path="res://Assets/Sprites/Items/BlueCoin.png" id="2_558gv"]
[ext_resource type="Script" uid="uid://cbal8ms2oe1ik" path="res://Scripts/Classes/Components/ResourceSetterNew.gd" id="2_ssesj"]
[ext_resource type="JSON" path="res://Assets/Sprites/Items/BlueCoin.json" id="3_3gxgc"]
[ext_resource type="Script" uid="uid://bul1nbd2in1gn" path="res://Scripts/Classes/Components/PSwitcher.gd" id="4_ssesj"]
[sub_resource type="AtlasTexture" id="AtlasTexture_ip28o"]
atlas = ExtResource("2_558gv")
region = Rect2(0, 0, 16, 16)
[sub_resource type="SpriteFrames" id="SpriteFrames_3gxgc"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_ip28o")
}],
"loop": true,
"name": &"Idle",
"speed": 5.0
}]
[node name="BlueCoinInactive" type="Node2D"]
script = ExtResource("1_isf0s")
metadata/_custom_type_script = "uid://cpwloakvp672a"
[node name="Sprite" type="AnimatedSprite2D" parent="."]
modulate = Color(1, 1, 1, 0.497)
sprite_frames = SubResource("SpriteFrames_3gxgc")
animation = &"Idle"
script = ExtResource("2_3gxgc")
do_offset = false
metadata/_custom_type_script = "uid://caq1qiwmy0mox"
[node name="ResourceSetterNew" type="Node" parent="Sprite" node_paths=PackedStringArray("node_to_affect")]
script = ExtResource("2_ssesj")
node_to_affect = NodePath("..")
property_name = "sprite_frames"
resource_json = ExtResource("3_3gxgc")
metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
[node name="PSwitcher" type="Node" parent="."]
script = ExtResource("4_ssesj")
new_scene = "uid://dplnidrqshecd"
metadata/_custom_type_script = "uid://bul1nbd2in1gn"

View File

@@ -0,0 +1,171 @@
[gd_scene load_steps=16 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")
region = Rect2(0, 0, 16, 16)
[sub_resource type="SpriteFrames" id="SpriteFrames_qa2fo"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_c30tx")
}],
"loop": true,
"name": &"default",
"speed": 5.0
}]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_ydslq"]
size = Vector2(12, 12)
[sub_resource type="Animation" id="Animation_heiyr"]
resource_name = "Appear"
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath(".:visible")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [true]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath(".:position")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0, 0.5),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Vector2(-24, -8), Vector2(-24, -16)]
}
tracks/2/type = "method"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("..")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(1),
"transitions": PackedFloat32Array(1),
"values": [{
"args": [],
"method": &"queue_free"
}]
}
tracks/3/type = "method"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("../Sprite")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"values": [{
"args": [],
"method": &"queue_free"
}]
}
[sub_resource type="Animation" id="Animation_ybxan"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath(".:visible")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [false]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath(".:position")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector2(-24, -8)]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_ov4xw"]
_data = {
&"Appear": SubResource("Animation_heiyr"),
&"RESET": SubResource("Animation_ybxan")
}
[node name="ClockItem" type="CharacterBody2D"]
script = ExtResource("1_heiyr")
metadata/_custom_type_script = "uid://cjkurwybsaywm"
[node name="Sprite" type="AnimatedSprite2D" parent="."]
position = Vector2(0, -8)
sprite_frames = SubResource("SpriteFrames_qa2fo")
offset = Vector2(0, 1)
script = ExtResource("2_heiyr")
do_offset = false
metadata/_custom_type_script = "uid://caq1qiwmy0mox"
[node name="ResourceSetterNew" type="Node" parent="Sprite" node_paths=PackedStringArray("node_to_affect")]
script = ExtResource("3_ov4xw")
node_to_affect = NodePath("..")
property_name = "sprite_frames"
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")
[node name="Label" type="Label" parent="."]
visible = false
offset_left = -24.0
offset_top = -8.0
offset_right = 24.0
offset_bottom = 8.0
text = "+100"
horizontal_alignment = 1
uppercase = true
[node name="TextShadowColourChanger" type="Node" parent="Label" node_paths=PackedStringArray("labels")]
script = ExtResource("6_ggci8")
labels = [NodePath("..")]
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"]
libraries = {
&"": SubResource("AnimationLibrary_ov4xw")
}
[connection signal="player_entered" from="Sprite/Hitbox" to="." method="collect_item"]

View File

@@ -0,0 +1,107 @@
[gd_scene load_steps=17 format=3 uid="uid://chjxyhlwohmi6"]
[ext_resource type="Script" uid="uid://cexcll4frt0t6" path="res://Scripts/Classes/Entities/Items/Coin.gd" id="1_c6elg"]
[ext_resource type="Texture2D" uid="uid://b6o28xa83npb1" path="res://Assets/Sprites/Items/StaticCoin.png" id="2_7vxr7"]
[ext_resource type="PackedScene" uid="uid://clxssds8sj8pf" path="res://Scenes/Prefabs/Entities/Items/SpinningCoin.tscn" id="2_k3746"]
[ext_resource type="Script" uid="uid://cmg61722ktg2m" path="res://Scripts/Classes/Components/BlockBouncingDetection.gd" id="3_korlu"]
[ext_resource type="Script" uid="uid://cbal8ms2oe1ik" path="res://Scripts/Classes/Components/ResourceSetterNew.gd" id="3_uahob"]
[ext_resource type="JSON" path="res://Assets/Sprites/Items/Coin.json" id="4_thymr"]
[ext_resource type="Script" uid="uid://bul1nbd2in1gn" path="res://Scripts/Classes/Components/PSwitcher.gd" id="6_uahob"]
[ext_resource type="Script" uid="uid://d4a7yp6e55u8t" path="res://Scripts/Classes/Components/TrackJoint.gd" id="7_thymr"]
[ext_resource type="Script" uid="uid://maqpreddu5kg" path="res://Scripts/Classes/Components/LevelPersistance.gd" id="8_apfal"]
[sub_resource type="AtlasTexture" id="AtlasTexture_uahob"]
atlas = ExtResource("2_7vxr7")
region = Rect2(0, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_thymr"]
atlas = ExtResource("2_7vxr7")
region = Rect2(16, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_apfal"]
atlas = ExtResource("2_7vxr7")
region = Rect2(32, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_k3746"]
atlas = ExtResource("2_7vxr7")
region = Rect2(48, 0, 16, 16)
[sub_resource type="SpriteFrames" id="SpriteFrames_nu35s"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_uahob")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_thymr")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_apfal")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_k3746")
}],
"loop": true,
"name": &"default",
"speed": 10.0
}]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_edpyv"]
size = Vector2(12, 12)
[sub_resource type="RectangleShape2D" id="RectangleShape2D_qjj6w"]
size = Vector2(8, 8)
[node name="Coin" type="Node2D" groups=["Coins"]]
z_index = -2
script = ExtResource("1_c6elg")
spinning_coin_scene = ExtResource("2_k3746")
[node name="Sprite" type="AnimatedSprite2D" parent="."]
sprite_frames = SubResource("SpriteFrames_nu35s")
autoplay = "default"
frame_progress = 0.487032
[node name="ResourceSetterNew" type="Node" parent="Sprite" node_paths=PackedStringArray("node_to_affect")]
script = ExtResource("3_uahob")
node_to_affect = NodePath("..")
property_name = "sprite_frames"
resource_json = ExtResource("4_thymr")
metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
[node name="Hitbox" type="Area2D" parent="."]
visible = false
[node name="Shape" type="CollisionShape2D" parent="Hitbox"]
shape = SubResource("RectangleShape2D_edpyv")
[node name="BlockBouncingDetection" type="Node" parent="." node_paths=PackedStringArray("hitbox")]
script = ExtResource("3_korlu")
detection_type = 1
hitbox = NodePath("../BlockHitbox")
metadata/_custom_type_script = "uid://cmg61722ktg2m"
[node name="BlockHitbox" type="Area2D" parent="."]
collision_layer = 0
collision_mask = 6
[node name="Shape" type="CollisionShape2D" parent="BlockHitbox"]
position = Vector2(0, 12)
shape = SubResource("RectangleShape2D_qjj6w")
[node name="PSwitcher" type="Node" parent="."]
script = ExtResource("6_uahob")
new_scene = "uid://dsa8lpl7n8ge0"
[node name="TrackJoint" type="Node" parent="."]
script = ExtResource("7_thymr")
offset = Vector2(0, 0)
metadata/_custom_type_script = "uid://d4a7yp6e55u8t"
[node name="LevelPersistance" type="Node" parent="."]
script = ExtResource("8_apfal")
[connection signal="collected" from="." to="LevelPersistance" method="set_as_active"]
[connection signal="area_entered" from="Hitbox" to="." method="area_entered"]
[connection signal="block_bounced" from="BlockBouncingDetection" to="." method="summon_block_coin" unbinds=1]
[connection signal="enabled" from="LevelPersistance" to="." method="queue_free"]

View File

@@ -0,0 +1,93 @@
[gd_scene load_steps=14 format=3 uid="uid://dbjqtjhb2t4cn"]
[ext_resource type="Script" uid="uid://cjkurwybsaywm" path="res://Scripts/Classes/Entities/Items/PowerUpItem.gd" id="1_paqft"]
[ext_resource type="Texture2D" uid="uid://qwqprcst4mtg" path="res://Assets/Sprites/Items/FireFlower.png" id="2_x8n8e"]
[ext_resource type="Script" uid="uid://cbal8ms2oe1ik" path="res://Scripts/Classes/Components/ResourceSetterNew.gd" id="3_db8fa"]
[ext_resource type="JSON" path="res://Assets/Sprites/Items/FireFlower.json" id="4_11cns"]
[ext_resource type="Script" uid="uid://bx6r8sjar6cwr" path="res://Scripts/Classes/Components/BasicStaticMovement.gd" id="5_11cns"]
[ext_resource type="Script" uid="uid://d4a7yp6e55u8t" path="res://Scripts/Classes/Components/TrackJoint.gd" id="6_brn7u"]
[sub_resource type="AtlasTexture" id="AtlasTexture_db8fa"]
atlas = ExtResource("2_x8n8e")
region = Rect2(0, 16, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_11cns"]
atlas = ExtResource("2_x8n8e")
region = Rect2(16, 16, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_brn7u"]
atlas = ExtResource("2_x8n8e")
region = Rect2(32, 16, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_fwmx2"]
atlas = ExtResource("2_x8n8e")
region = Rect2(48, 16, 16, 16)
[sub_resource type="SpriteFrames" id="SpriteFrames_gid51"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_db8fa")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_11cns")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_brn7u")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_fwmx2")
}],
"loop": true,
"name": &"default",
"speed": 15.0
}]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_16uf3"]
size = Vector2(8, 4)
[sub_resource type="RectangleShape2D" id="RectangleShape2D_kjjbq"]
size = Vector2(8, 8)
[node name="FireFlower" type="CharacterBody2D"]
z_index = -1
collision_layer = 8
collision_mask = 2
script = ExtResource("1_paqft")
power_up_state = "Fire"
metadata/_custom_type_script = "uid://cjkurwybsaywm"
[node name="Sprite" type="AnimatedSprite2D" parent="."]
position = Vector2(0, -8)
sprite_frames = SubResource("SpriteFrames_gid51")
autoplay = "default"
frame_progress = 0.157931
[node name="ResourceSetterNew" type="Node" parent="Sprite" node_paths=PackedStringArray("node_to_affect")]
script = ExtResource("3_db8fa")
node_to_affect = NodePath("..")
property_name = "sprite_frames"
resource_json = ExtResource("4_11cns")
metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
[node name="Hitbox" type="Area2D" parent="."]
[node name="Shape" type="CollisionShape2D" parent="Hitbox"]
position = Vector2(0, -10)
shape = SubResource("RectangleShape2D_16uf3")
[node name="Collision" type="CollisionShape2D" parent="."]
position = Vector2(0, -4)
shape = SubResource("RectangleShape2D_kjjbq")
[node name="StaticEntityMovement" type="Node" parent="."]
script = ExtResource("5_11cns")
auto_call = false
[node name="TrackJoint" type="Node" parent="." node_paths=PackedStringArray("movement_node")]
script = ExtResource("6_brn7u")
movement_node = NodePath("../StaticEntityMovement")
metadata/_custom_type_script = "uid://d4a7yp6e55u8t"
[connection signal="physics_tick" from="." to="StaticEntityMovement" method="handle_movement"]
[connection signal="area_entered" from="Hitbox" to="." method="on_area_entered"]

Some files were not shown because too many files have changed in this diff Show More