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,181 @@
[gd_scene load_steps=16 format=3 uid="uid://d1wjw5tobpb3w"]
[ext_resource type="Script" uid="uid://toi3fh8d7cs4" path="res://Scripts/Classes/BooRaceHandler.gd" id="1_1pu8q"]
[ext_resource type="Texture2D" uid="uid://d0jy2sbxh706d" path="res://Assets/Sprites/UI/RaceCountdown.png" id="2_csmob"]
[ext_resource type="Script" uid="uid://bafdl3y53ly60" path="res://Scripts/Classes/UI/PackAnimatedSprite2D.gd" id="3_6r3jq"]
[ext_resource type="Script" uid="uid://cq6f682453q6o" path="res://Scripts/Classes/Components/ResourceSetter.gd" id="4_qeaax"]
[ext_resource type="Script" uid="uid://cmvlgsjmsk0v5" path="res://Scripts/Classes/Resources/ThemedResource.gd" id="5_reyer"]
[ext_resource type="AudioStream" uid="uid://bri3u342yy5hk" path="res://Assets/Audio/SFX/RaceCountdown.wav" id="6_qeaax"]
[sub_resource type="AtlasTexture" id="AtlasTexture_5ptkl"]
atlas = ExtResource("2_csmob")
region = Rect2(0, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_6r3jq"]
atlas = ExtResource("2_csmob")
region = Rect2(16, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_axajb"]
atlas = ExtResource("2_csmob")
region = Rect2(32, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_qeaax"]
atlas = ExtResource("2_csmob")
region = Rect2(0, 16, 32, 16)
[sub_resource type="SpriteFrames" id="SpriteFrames_xhbjt"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_5ptkl")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_6r3jq")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_axajb")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_qeaax")
}],
"loop": false,
"name": &"default",
"speed": 1.0
}]
[sub_resource type="Resource" id="Resource_xhbjt"]
script = ExtResource("5_reyer")
Overworld = SubResource("SpriteFrames_xhbjt")
metadata/_custom_type_script = "uid://cmvlgsjmsk0v5"
[sub_resource type="Animation" id="Animation_6r3jq"]
resource_name = "CountdownBeep"
length = 4.0
step = 1.0
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("CanvasLayer: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("CanvasLayer/Control/Control/Sprite:frame")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0.01, 1, 2, 3),
"transitions": PackedFloat32Array(1, 1, 1, 1),
"update": 1,
"values": [0, 1, 2, 3]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("CanvasLayer/Control/Control/Sprite:visible")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0, 4),
"transitions": PackedFloat32Array(1, 1),
"update": 1,
"values": [true, false]
}
[sub_resource type="Animation" id="Animation_axajb"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("CanvasLayer: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("CanvasLayer/Control/Control/Sprite:frame")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [0]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("CanvasLayer/Control/Control/Sprite:visible")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [true]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_qeaax"]
_data = {
&"CountdownBeep": SubResource("Animation_6r3jq"),
&"RESET": SubResource("Animation_axajb")
}
[node name="BooRaceHandler" type="Node"]
script = ExtResource("1_1pu8q")
[node name="CanvasLayer" type="CanvasLayer" parent="."]
visible = false
[node name="Control" type="CenterContainer" parent="CanvasLayer"]
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
[node name="Control" type="Control" parent="CanvasLayer/Control"]
layout_mode = 2
[node name="Sprite" type="AnimatedSprite2D" parent="CanvasLayer/Control/Control"]
sprite_frames = SubResource("SpriteFrames_xhbjt")
autoplay = "default"
speed_scale = 0.0
script = ExtResource("3_6r3jq")
[node name="ResourceSetter" type="Node" parent="CanvasLayer/Control/Control/Sprite" node_paths=PackedStringArray("node_to_affect")]
process_mode = 3
script = ExtResource("4_qeaax")
node_to_affect = NodePath("..")
property_name = "sprite_frames"
themed_resource = SubResource("Resource_xhbjt")
metadata/_custom_type_script = "uid://cq6f682453q6o"
[node name="Countdown" type="AudioStreamPlayer" parent="."]
stream = ExtResource("6_qeaax")
autoplay = true
bus = &"SFX"
[node name="Animation" type="AnimationPlayer" parent="."]
libraries = {
&"": SubResource("AnimationLibrary_qeaax")
}
[node name="Timer" type="Timer" parent="."]
process_mode = 1
wait_time = 5.0
[connection signal="timeout" from="Timer" to="." method="on_timeout"]

View File

@@ -0,0 +1,13 @@
[gd_scene load_steps=4 format=3 uid="uid://dmv5rl1ckkwsk"]
[ext_resource type="PackedScene" uid="uid://csl71p1unsc8p" path="res://Scenes/Prefabs/LevelObjects/CheepCheepGenerator.tscn" id="1_4xckd"]
[ext_resource type="PackedScene" uid="uid://blbarreyjem4l" path="res://Scenes/Prefabs/Entities/Enemies/BowserFlame.tscn" id="2_fevce"]
[ext_resource type="Texture2D" uid="uid://dtgpkjj1dy7pu" path="res://Assets/Sprites/Editor/BowserFlameGenerator.png" id="3_fevce"]
[node name="EntityGenerator" instance=ExtResource("1_4xckd")]
y_pos = 1
direction = 0
entity_scene = ExtResource("2_fevce")
[node name="Sprite" parent="LevelEditorVisibleNode" index="0"]
texture = ExtResource("3_fevce")

View File

@@ -0,0 +1,68 @@
[gd_scene load_steps=11 format=3 uid="uid://bqhtste1il47d"]
[ext_resource type="Script" uid="uid://0btfo4kjnnrg" path="res://Scripts/Parts/BulletBillCannon.gd" id="1_je07o"]
[ext_resource type="Script" uid="uid://cpwloakvp672a" path="res://Scripts/Parts/EditorVisibleNode.gd" id="2_vkq2x"]
[ext_resource type="Texture2D" uid="uid://di0lgq3cojy41" path="res://Assets/Sprites/Editor/BillCannon.png" id="3_xxt5v"]
[ext_resource type="Script" uid="uid://cq6f682453q6o" path="res://Scripts/Classes/Components/ResourceSetter.gd" id="4_guvwn"]
[ext_resource type="Script" uid="uid://cmvlgsjmsk0v5" path="res://Scripts/Classes/Resources/ThemedResource.gd" id="5_84pyo"]
[ext_resource type="Script" uid="uid://ctfbuoxtnnl0q" path="res://Scripts/Classes/Components/EditorPropertyExposer.gd" id="6_guvwn"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_mi286"]
size = Vector2(48, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_rc5av"]
atlas = ExtResource("3_xxt5v")
region = Rect2(16, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_1ilyi"]
atlas = ExtResource("3_xxt5v")
region = Rect2(0, 0, 16, 16)
[sub_resource type="Resource" id="Resource_0rden"]
script = ExtResource("5_84pyo")
Overworld = SubResource("AtlasTexture_1ilyi")
Underground = SubResource("AtlasTexture_rc5av")
Castle = SubResource("AtlasTexture_rc5av")
metadata/_custom_type_script = "uid://cmvlgsjmsk0v5"
[node name="BulletBillCannon" type="Node2D" groups=["Enemies"]]
visibility_layer = 2
script = ExtResource("1_je07o")
[node name="PlayerDetect" type="Area2D" parent="."]
[node name="Shape" type="CollisionShape2D" parent="PlayerDetect"]
shape = SubResource("RectangleShape2D_mi286")
[node name="VisibleOnScreenEnabler2D" type="VisibleOnScreenEnabler2D" parent="."]
[node name="Node2D" type="Node2D" parent="."]
script = ExtResource("2_vkq2x")
[node name="Sprite2D" type="Sprite2D" parent="Node2D"]
texture = ExtResource("3_xxt5v")
region_enabled = true
region_rect = Rect2(0, 0, 16, 16)
region_filter_clip_enabled = true
[node name="ResourceSetter" type="Node" parent="Node2D/Sprite2D" node_paths=PackedStringArray("node_to_affect")]
script = ExtResource("4_guvwn")
node_to_affect = NodePath("..")
property_name = "texture"
themed_resource = SubResource("Resource_0rden")
metadata/_custom_type_script = "uid://cq6f682453q6o"
[node name="EditorPropertyExposer" type="Node" parent="."]
script = ExtResource("6_guvwn")
properties = Array[String](["item"])
filters = Dictionary[String, String]({
"item": "can_be_stored"
})
[node name="BlockCheck" type="Node2D" parent="."]
[node name="RayCast2D" type="RayCast2D" parent="BlockCheck"]
position = Vector2(9, 0)
target_position = Vector2(8, 0)
collision_mask = 6
hit_from_inside = true

View File

@@ -0,0 +1,31 @@
[gd_scene load_steps=7 format=3 uid="uid://bn1kect7h2dlp"]
[ext_resource type="Script" uid="uid://bq0pc2vhp35t2" path="res://Scripts/Parts/EntityGenerator.gd" id="1_k54ss"]
[ext_resource type="PackedScene" uid="uid://c1wl10xa3jara" path="res://Scenes/Prefabs/Entities/Enemies/BulletBill.tscn" id="2_8rftf"]
[ext_resource type="Script" uid="uid://cpwloakvp672a" path="res://Scripts/Parts/EditorVisibleNode.gd" id="2_558ys"]
[ext_resource type="Texture2D" uid="uid://0uhljpmjcqbh" path="res://Assets/Sprites/Editor/BulletBillGenerator.png" id="3_8rftf"]
[ext_resource type="Script" uid="uid://cnheej0sxmoxg" path="res://Scripts/Parts/PlayerDetection.gd" id="4_wggyr"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_558ys"]
size = Vector2(20, 2048)
[node name="EntityGenerator" type="Node2D" groups=["EntityGenerators"]]
script = ExtResource("1_k54ss")
entity_scene = ExtResource("2_8rftf")
[node name="LevelEditorVisibleNode" type="Node2D" parent="."]
script = ExtResource("2_558ys")
metadata/_custom_type_script = "uid://cpwloakvp672a"
[node name="Sprite" type="Sprite2D" parent="LevelEditorVisibleNode"]
texture = ExtResource("3_8rftf")
[node name="PlayerDetection" type="Area2D" parent="."]
visible = false
script = ExtResource("4_wggyr")
metadata/_custom_type_script = "uid://cnheej0sxmoxg"
[node name="CollisionShape2D" type="CollisionShape2D" parent="PlayerDetection"]
shape = SubResource("RectangleShape2D_558ys")
[connection signal="player_entered" from="PlayerDetection" to="." method="activate" unbinds=1]

View File

@@ -0,0 +1,32 @@
[gd_scene load_steps=5 format=3 uid="uid://vgcgj3k2k8oy"]
[ext_resource type="Script" uid="uid://bdq0373j5n5o0" path="res://Scripts/Parts/CameraRightLimit.gd" id="1_y3riq"]
[ext_resource type="Script" uid="uid://cpwloakvp672a" path="res://Scripts/Parts/EditorVisibleNode.gd" id="2_y0tan"]
[ext_resource type="Texture2D" uid="uid://c8ir37jmcm4f4" path="res://Assets/Sprites/Editor/CameraLock.png" id="3_c8trh"]
[ext_resource type="Texture2D" uid="uid://dpdrrkqtcedgm" path="res://Assets/Sprites/Tilesets/DottedLine.png" id="4_ouaip"]
[node name="CameraRightLimit" type="Node2D"]
script = ExtResource("1_y3riq")
metadata/_custom_type_script = "uid://bdq0373j5n5o0"
[node name="LevelEditorVisibleNode" type="Node2D" parent="."]
script = ExtResource("2_y0tan")
metadata/_custom_type_script = "uid://cpwloakvp672a"
[node name="Sprite2D" type="Sprite2D" parent="LevelEditorVisibleNode"]
position = Vector2(8, 0)
texture = ExtResource("3_c8trh")
[node name="Line2D" type="Line2D" parent="LevelEditorVisibleNode"]
texture_repeat = 2
position = Vector2(1, 0)
points = PackedVector2Array(0, -512, 0, 512)
width = 1.0
default_color = Color(0, 0, 0, 1)
texture = ExtResource("4_ouaip")
texture_mode = 1
[node name="VisibleOnScreenNotifier2D" type="VisibleOnScreenNotifier2D" parent="."]
position = Vector2(8, 0)
[connection signal="screen_entered" from="VisibleOnScreenNotifier2D" to="." method="_enter_tree"]

View File

@@ -0,0 +1,227 @@
[gd_scene load_steps=23 format=3 uid="uid://dtpyjucfl16sw"]
[ext_resource type="Script" uid="uid://drigdwsriqtma" path="res://Scripts/Parts/CastleBridge.gd" id="1_7m65m"]
[ext_resource type="Texture2D" uid="uid://boc6yagywb1lu" path="res://Assets/Sprites/Tilesets/Terrain/Castle.png" id="1_030qv"]
[ext_resource type="PackedScene" uid="uid://c3mc7ptiywhvw" path="res://Scenes/Parts/CastleBridgeSegment.tscn" id="2_rdab3"]
[ext_resource type="Texture2D" uid="uid://iiepujg1uywt" path="res://Assets/Sprites/Items/BridgeAxe.png" id="2_wg8ck"]
[ext_resource type="Script" uid="uid://caq1qiwmy0mox" path="res://Scripts/Parts/BetterAnimatedSprite.gd" id="4_s4k02"]
[ext_resource type="Script" uid="uid://bdq0373j5n5o0" path="res://Scripts/Parts/CameraRightLimit.gd" id="4_tmf7w"]
[ext_resource type="Script" uid="uid://cq6f682453q6o" path="res://Scripts/Classes/Components/ResourceSetter.gd" id="5_vt2ac"]
[ext_resource type="Script" uid="uid://cmvlgsjmsk0v5" path="res://Scripts/Classes/Resources/ThemedResource.gd" id="8_geany"]
[ext_resource type="Script" uid="uid://cbal8ms2oe1ik" path="res://Scripts/Classes/Components/ResourceSetterNew.gd" id="9_m5y50"]
[ext_resource type="JSON" path="res://Assets/Sprites/Items/BridgeAxe.json" id="10_kvynl"]
[ext_resource type="Script" uid="uid://ctfbuoxtnnl0q" path="res://Scripts/Classes/Components/EditorPropertyExposer.gd" id="10_wgdlx"]
[ext_resource type="Script" uid="uid://cpwloakvp672a" path="res://Scripts/Parts/EditorVisibleNode.gd" id="11_puc3y"]
[ext_resource type="Texture2D" uid="uid://dlldh5aks0wff" path="res://Assets/Sprites/Editor/GhostTile.png" id="12_do8w3"]
[ext_resource type="Script" uid="uid://b8vmbtoaaq5nc" path="res://Scripts/Parts/EditorToggleDetection.gd" id="13_do8w3"]
[sub_resource type="AtlasTexture" id="AtlasTexture_7m65m"]
atlas = ExtResource("2_wg8ck")
region = Rect2(0, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_tmf7w"]
atlas = ExtResource("2_wg8ck")
region = Rect2(16, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_xijkc"]
atlas = ExtResource("2_wg8ck")
region = Rect2(32, 0, 16, 16)
[sub_resource type="SpriteFrames" id="SpriteFrames_13fwi"]
animations = [{
"frames": [{
"duration": 10.0,
"texture": SubResource("AtlasTexture_7m65m")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_tmf7w")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_xijkc")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_tmf7w")
}],
"loop": true,
"name": &"default",
"speed": 10.0
}]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_7m65m"]
size = Vector2(2, 8)
[sub_resource type="Resource" id="Resource_8q7qv"]
script = ExtResource("8_geany")
Overworld = ExtResource("1_030qv")
metadata/_custom_type_script = "uid://cmvlgsjmsk0v5"
[sub_resource type="WorldBoundaryShape2D" id="WorldBoundaryShape2D_tmf7w"]
normal = Vector2(-1, 0)
[sub_resource type="GDScript" id="GDScript_wgdlx"]
script/source = "@tool
extends Node
@onready var bridge: Node2D = $\"../Bridge\"
func _process(_delta: float) -> void:
var idx := 0
for i in bridge.get_children():
if owner.length > idx:
i.show()
i.position.x = idx * -16 + 192
else:
i.hide()
i.global_position.x = -999
idx += 1
"
[node name="CastleBridge" type="Node2D" groups=["CastleBridges"]]
process_mode = 3
script = ExtResource("1_7m65m")
[node name="Bridge" type="Node2D" parent="."]
[node name="CastleBridgeSegment" parent="Bridge" instance=ExtResource("2_rdab3")]
position = Vector2(192, 0)
[node name="CastleBridgeSegment2" parent="Bridge" instance=ExtResource("2_rdab3")]
position = Vector2(176, 0)
[node name="CastleBridgeSegment3" parent="Bridge" instance=ExtResource("2_rdab3")]
position = Vector2(160, 0)
[node name="CastleBridgeSegment4" parent="Bridge" instance=ExtResource("2_rdab3")]
position = Vector2(144, 0)
[node name="CastleBridgeSegment5" parent="Bridge" instance=ExtResource("2_rdab3")]
position = Vector2(128, 0)
[node name="CastleBridgeSegment6" parent="Bridge" instance=ExtResource("2_rdab3")]
position = Vector2(112, 0)
[node name="CastleBridgeSegment7" parent="Bridge" instance=ExtResource("2_rdab3")]
position = Vector2(96, 0)
[node name="CastleBridgeSegment8" parent="Bridge" instance=ExtResource("2_rdab3")]
position = Vector2(80, 0)
[node name="CastleBridgeSegment9" parent="Bridge" instance=ExtResource("2_rdab3")]
position = Vector2(64, 0)
[node name="CastleBridgeSegment10" parent="Bridge" instance=ExtResource("2_rdab3")]
position = Vector2(48, 0)
[node name="CastleBridgeSegment11" parent="Bridge" instance=ExtResource("2_rdab3")]
position = Vector2(32, 0)
[node name="CastleBridgeSegment12" parent="Bridge" instance=ExtResource("2_rdab3")]
position = Vector2(16, 0)
[node name="CastleBridgeSegment13" parent="Bridge" instance=ExtResource("2_rdab3")]
[node name="CastleBridgeSegment14" parent="Bridge" instance=ExtResource("2_rdab3")]
visible = false
position = Vector2(-999, 0)
[node name="CastleBridgeSegment15" parent="Bridge" instance=ExtResource("2_rdab3")]
visible = false
position = Vector2(-999, 0)
[node name="CastleBridgeSegment16" parent="Bridge" instance=ExtResource("2_rdab3")]
visible = false
position = Vector2(-999, 0)
[node name="CastleBridgeSegment17" parent="Bridge" instance=ExtResource("2_rdab3")]
visible = false
position = Vector2(-999, 0)
[node name="CastleBridgeSegment18" parent="Bridge" instance=ExtResource("2_rdab3")]
visible = false
position = Vector2(-999, 0)
[node name="CastleBridgeSegment19" parent="Bridge" instance=ExtResource("2_rdab3")]
visible = false
position = Vector2(-999, 0)
[node name="CastleBridgeSegment20" parent="Bridge" instance=ExtResource("2_rdab3")]
visible = false
position = Vector2(-999, 0)
[node name="Axe" type="AnimatedSprite2D" parent="."]
position = Vector2(208, -32)
sprite_frames = SubResource("SpriteFrames_13fwi")
autoplay = "default"
frame_progress = 0.124132
script = ExtResource("4_s4k02")
do_offset = false
metadata/_custom_type_script = "uid://caq1qiwmy0mox"
[node name="Hitbox" type="Area2D" parent="Axe"]
[node name="CollisionShape2D" type="CollisionShape2D" parent="Axe/Hitbox"]
shape = SubResource("RectangleShape2D_7m65m")
[node name="Sprite2D14" type="Sprite2D" parent="Axe"]
position = Vector2(-16, 16)
texture = ExtResource("1_030qv")
region_enabled = true
region_rect = Rect2(208, 128, 16, 16)
region_filter_clip_enabled = true
[node name="ResourceSetterNew" type="Node" parent="Axe/Sprite2D14" node_paths=PackedStringArray("node_to_affect")]
script = ExtResource("5_vt2ac")
node_to_affect = NodePath("..")
property_name = "texture"
themed_resource = SubResource("Resource_8q7qv")
metadata/_custom_type_script = "uid://cq6f682453q6o"
[node name="CameraRightLimit" type="Node2D" parent="Axe"]
position = Vector2(24, 8)
script = ExtResource("4_tmf7w")
metadata/_custom_type_script = "uid://bdq0373j5n5o0"
[node name="StaticBody2D" type="StaticBody2D" parent="Axe"]
[node name="CollisionShape2D" type="CollisionShape2D" parent="Axe/StaticBody2D"]
position = Vector2(8, 0)
shape = SubResource("WorldBoundaryShape2D_tmf7w")
[node name="ResourceSetterNew" type="Node" parent="Axe" node_paths=PackedStringArray("node_to_affect")]
script = ExtResource("9_m5y50")
node_to_affect = NodePath("..")
property_name = "sprite_frames"
resource_json = ExtResource("10_kvynl")
metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
[node name="Camera" type="Camera2D" parent="."]
position = Vector2(216, -56)
process_callback = 0
limit_left = -256
limit_top = -208
limit_bottom = 32
editor_draw_limits = true
[node name="EditorPropertyExposer" type="Node" parent="."]
script = ExtResource("10_wgdlx")
properties = Array[String](["length"])
metadata/_custom_type_script = "uid://ctfbuoxtnnl0q"
[node name="Node" type="Node" parent="."]
process_mode = 3
script = SubResource("GDScript_wgdlx")
[node name="LevelEditorVisibleNode" type="Node2D" parent="."]
script = ExtResource("11_puc3y")
metadata/_custom_type_script = "uid://cpwloakvp672a"
[node name="Sprite2D" type="Sprite2D" parent="LevelEditorVisibleNode"]
z_index = 4096
position = Vector2(192, 0)
texture = ExtResource("12_do8w3")
[node name="EditorToggleDetection" type="Node" parent="."]
script = ExtResource("13_do8w3")
[connection signal="area_entered" from="Axe/Hitbox" to="." method="on_area_entered" flags=3]
[connection signal="toggled" from="EditorToggleDetection" to="Axe/CameraRightLimit" method="_enter_tree"]

View File

@@ -0,0 +1,76 @@
[gd_scene load_steps=9 format=3 uid="uid://c75cko8tyt467"]
[ext_resource type="Script" uid="uid://v5rwovoqjpag" path="res://Scripts/Parts/CastleChallengeEnd.gd" id="1_nomt5"]
[ext_resource type="Texture2D" uid="uid://jucsm1aw6fv5" path="res://Assets/Sprites/Tilesets/ChallengeCastleEnd.png" id="3_nomt5"]
[ext_resource type="Script" uid="uid://bdq0373j5n5o0" path="res://Scripts/Parts/CameraRightLimit.gd" id="8_che3x"]
[sub_resource type="Animation" id="Animation_d5sl2"]
length = 0.001
[sub_resource type="Animation" id="Animation_griru"]
resource_name = "Speak"
length = 5.0
step = 0.1
[sub_resource type="AnimationLibrary" id="AnimationLibrary_y2uvy"]
_data = {
&"RESET": SubResource("Animation_d5sl2"),
&"Speak": SubResource("Animation_griru")
}
[sub_resource type="RectangleShape2D" id="RectangleShape2D_an0bx"]
[sub_resource type="WorldBoundaryShape2D" id="WorldBoundaryShape2D_d5sl2"]
normal = Vector2(-1, 0)
[node name="CastleChallengeEnd" type="Node2D"]
script = ExtResource("1_nomt5")
[node name="Animation" type="AnimationPlayer" parent="."]
libraries = {
&"": SubResource("AnimationLibrary_y2uvy")
}
[node name="StaticBody2D" type="StaticBody2D" parent="."]
position = Vector2(48, -8)
[node name="CollisionShape2D" type="CollisionShape2D" parent="StaticBody2D"]
position = Vector2(-4, 0)
shape = SubResource("RectangleShape2D_an0bx")
[node name="CameraRightLimit" type="Node2D" parent="."]
position = Vector2(128, -80)
script = ExtResource("8_che3x")
reset_on_delete = false
metadata/_custom_type_script = "uid://bdq0373j5n5o0"
[node name="CollisionShape2D" type="CollisionShape2D" parent="CameraRightLimit"]
shape = SubResource("WorldBoundaryShape2D_d5sl2")
[node name="Sprite2D" type="Sprite2D" parent="."]
z_index = -10
position = Vector2(0, -32)
texture = ExtResource("3_nomt5")
vframes = 2
[node name="Overlay" type="Sprite2D" parent="Sprite2D"]
z_index = 10
z_as_relative = false
texture = ExtResource("3_nomt5")
vframes = 2
frame = 1
region_rect = Rect2(99, 0, 65, 92)
[node name="Overlay2" type="Sprite2D" parent="Sprite2D"]
show_behind_parent = true
z_index = 10
z_as_relative = false
texture = ExtResource("3_nomt5")
vframes = 2
frame = 1
region_rect = Rect2(0, 80, 80, 48)
[node name="Sprite2D2" type="Sprite2D" parent="Sprite2D"]
show_behind_parent = true
texture = ExtResource("3_nomt5")
vframes = 2

View File

@@ -0,0 +1,66 @@
[gd_scene load_steps=3 format=3 uid="uid://ckrna543ixu1b"]
[ext_resource type="PackedScene" uid="uid://c2ntyej6ddm72" path="res://Scenes/Prefabs/LevelObjects/CastleToad.tscn" id="1_ln8qg"]
[ext_resource type="JSON" path="res://Assets/Sprites/Players/PeachNPC.json" id="2_dujhx"]
[node name="CastleToad" instance=ExtResource("1_ln8qg")]
play_end_music = true
[node name="ResourceSetterNew" parent="Sprite" index="0"]
resource_json = ExtResource("2_dujhx")
[node name="ThankYou" parent="StandardMSG" index="0"]
text = "CUTSCENE_CASTLE_PEACH_1"
[node name="AnotherCastle" parent="StandardMSG" index="1"]
text = ""
[node name="EndingSpeech" type="Node2D" parent="." index="2"]
[node name="AnotherCastle4" type="Label" parent="EndingSpeech" index="0"]
visible = false
visibility_layer = 2
offset_left = -112.0
offset_top = -104.0
offset_right = 112.0
offset_bottom = -76.0
theme_override_colors/font_shadow_color = Color(0.298039, 0.298039, 0.298039, 1)
text = "CUTSCENE_CASTLE_PEACH_2"
horizontal_alignment = 1
vertical_alignment = 3
autowrap_mode = 2
uppercase = true
[node name="AnotherCastle5" type="Label" parent="EndingSpeech" index="1"]
visible = false
visibility_layer = 2
offset_left = -112.0
offset_top = -88.0
offset_right = 112.0
offset_bottom = -60.0
theme_override_colors/font_shadow_color = Color(0.298039, 0.298039, 0.298039, 1)
text = "CUTSCENE_CASTLE_PEACH_3"
horizontal_alignment = 1
vertical_alignment = 3
autowrap_mode = 2
uppercase = true
[node name="AnotherCastle6" type="Label" parent="EndingSpeech" index="2"]
visible = false
visibility_layer = 2
offset_left = -112.0
offset_top = -64.0
offset_right = 112.0
offset_bottom = -36.0
theme_override_colors/font_shadow_color = Color(0.298039, 0.298039, 0.298039, 1)
text = "CUTSCENE_CASTLE_PEACH_4"
horizontal_alignment = 1
vertical_alignment = 3
autowrap_mode = 2
uppercase = true
[node name="TextShadowColourChanger" parent="." index="6" node_paths=PackedStringArray("labels")]
labels = [NodePath("../StandardMSG/ThankYou"), NodePath("../StandardMSG/AnotherCastle"), NodePath("../SpeedrunMSG/ThankYou"), NodePath("../SpeedrunMSG/Time"), NodePath("../SpeedrunMSG/PBMessage"), NodePath("../EndingSpeech/AnotherCastle4"), NodePath("../EndingSpeech/AnotherCastle5"), NodePath("../EndingSpeech/AnotherCastle6")]
[node name="LabelFontChanger" parent="." index="7" node_paths=PackedStringArray("labels")]
labels = [NodePath("../StandardMSG/ThankYou"), NodePath("../StandardMSG/AnotherCastle"), NodePath("../EndingSpeech/AnotherCastle4"), NodePath("../EndingSpeech/AnotherCastle5"), NodePath("../EndingSpeech/AnotherCastle6"), NodePath("../SpeedrunMSG/ThankYou"), NodePath("../SpeedrunMSG/Time"), NodePath("../SpeedrunMSG/PBMessage")]

View File

@@ -0,0 +1,17 @@
[gd_scene load_steps=2 format=3 uid="uid://o573jl3f2hvk"]
[ext_resource type="PackedScene" uid="uid://ckrna543ixu1b" path="res://Scenes/Prefabs/LevelObjects/CastlePeach.tscn" id="1_v6xdq"]
[node name="CastlePeach" instance=ExtResource("1_v6xdq")]
[node name="ThankYou" parent="StandardMSG" index="0"]
text = "CUTSCENE_SP_PEACH_1"
[node name="AnotherCastle4" parent="EndingSpeech" index="0"]
text = "CUTSCENE_SP_PEACH_2"
[node name="AnotherCastle5" parent="EndingSpeech" index="1"]
text = "CUTSCENE_SP_PEACH_3"
[node name="AnotherCastle6" parent="EndingSpeech" index="2"]
text = ""

View File

@@ -0,0 +1,173 @@
[gd_scene load_steps=16 format=3 uid="uid://c2ntyej6ddm72"]
[ext_resource type="Script" uid="uid://j76u1aqhwey4" path="res://Scripts/Parts/CastleToad.gd" id="1_hytso"]
[ext_resource type="Texture2D" uid="uid://dfildm0squweg" path="res://Assets/Sprites/Players/ToadNPC.png" id="2_griru"]
[ext_resource type="Script" uid="uid://caq1qiwmy0mox" path="res://Scripts/Parts/BetterAnimatedSprite.gd" id="3_puq45"]
[ext_resource type="Script" uid="uid://cbal8ms2oe1ik" path="res://Scripts/Classes/Components/ResourceSetterNew.gd" id="4_ccewg"]
[ext_resource type="Script" uid="uid://bdq0373j5n5o0" path="res://Scripts/Parts/CameraRightLimit.gd" id="4_griru"]
[ext_resource type="JSON" path="res://Assets/Sprites/Players/ToadNPC.json" id="5_i6fb7"]
[ext_resource type="Script" uid="uid://dt2p68xl462v2" path="res://Scripts/Parts/TextShadowColourChanger.gd" id="11_ccewg"]
[ext_resource type="Script" uid="uid://co6tjg3w6qpd8" path="res://Scripts/Parts/LabelFontChanger.gd" id="11_i6fb7"]
[ext_resource type="Script" uid="uid://b8vmbtoaaq5nc" path="res://Scripts/Parts/EditorToggleDetection.gd" id="13_euu1x"]
[sub_resource type="AtlasTexture" id="AtlasTexture_euu1x"]
atlas = ExtResource("2_griru")
region = Rect2(0, 0, 16, 32)
[sub_resource type="AtlasTexture" id="AtlasTexture_2ibpj"]
atlas = ExtResource("2_griru")
region = Rect2(16, 0, 16, 32)
[sub_resource type="AtlasTexture" id="AtlasTexture_4igc4"]
atlas = ExtResource("2_griru")
region = Rect2(0, 0, 16, 32)
[sub_resource type="SpriteFrames" id="SpriteFrames_jvnky"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_euu1x")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_2ibpj")
}],
"loop": true,
"name": &"Emote",
"speed": 5.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_4igc4")
}],
"loop": true,
"name": &"Idle",
"speed": 5.0
}]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_an0bx"]
[sub_resource type="WorldBoundaryShape2D" id="WorldBoundaryShape2D_d5sl2"]
normal = Vector2(-1, 0)
[node name="CastleToad" type="Node2D"]
script = ExtResource("1_hytso")
[node name="Sprite" type="AnimatedSprite2D" parent="."]
position = Vector2(24, -16)
sprite_frames = SubResource("SpriteFrames_jvnky")
animation = &"Emote"
autoplay = "Emote"
frame_progress = 0.91931444
script = ExtResource("3_puq45")
metadata/_custom_type_script = "uid://caq1qiwmy0mox"
[node name="ResourceSetterNew" type="Node" parent="Sprite" node_paths=PackedStringArray("node_to_affect")]
script = ExtResource("4_ccewg")
node_to_affect = NodePath("..")
property_name = "sprite_frames"
resource_json = ExtResource("5_i6fb7")
metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
[node name="StandardMSG" type="Node2D" parent="."]
unique_name_in_owner = true
[node name="ThankYou" type="Label" parent="StandardMSG"]
visible = false
visibility_layer = 2
offset_left = -96.0
offset_top = -128.0
offset_right = 96.0
offset_bottom = -112.0
theme_override_colors/font_shadow_color = Color(0.298039, 0.298039, 0.298039, 1)
text = "CUTSCENE_CASTLE_TOAD_1"
horizontal_alignment = 1
vertical_alignment = 1
uppercase = true
[node name="AnotherCastle" type="Label" parent="StandardMSG"]
visible = false
visibility_layer = 2
offset_left = -96.0
offset_top = -96.0
offset_right = 96.0
offset_bottom = -68.0
theme_override_colors/font_shadow_color = Color(0.298039, 0.298039, 0.298039, 1)
text = "CUTSCENE_CASTLE_TOAD_2"
vertical_alignment = 3
autowrap_mode = 2
uppercase = true
[node name="SpeedrunMSG" type="Node2D" parent="."]
unique_name_in_owner = true
[node name="ThankYou" type="Label" parent="SpeedrunMSG"]
visible = false
visibility_layer = 2
offset_left = -112.0
offset_top = -128.0
offset_right = 112.0
offset_bottom = -112.0
theme_override_colors/font_shadow_color = Color(0.298039, 0.298039, 0.298039, 1)
text = "CUTSCENE_MARATHON_PEACH_1"
horizontal_alignment = 1
uppercase = true
[node name="Time" type="Label" parent="SpeedrunMSG"]
unique_name_in_owner = true
visible = false
visibility_layer = 2
offset_left = -112.0
offset_top = -112.0
offset_right = 112.0
offset_bottom = -84.0
theme_override_colors/font_shadow_color = Color(0.298039, 0.298039, 0.298039, 1)
text = "CUTSCENE_MARATHON_PEACH_2"
horizontal_alignment = 1
vertical_alignment = 3
autowrap_mode = 2
uppercase = true
[node name="PBMessage" type="Label" parent="SpeedrunMSG"]
unique_name_in_owner = true
visible = false
visibility_layer = 2
offset_left = -112.0
offset_top = -88.0
offset_right = 112.0
offset_bottom = -60.0
theme_override_colors/font_shadow_color = Color(0.298039, 0.298039, 0.298039, 1)
text = "CUTSCENE_MARATHON_PEACH_3"
horizontal_alignment = 1
vertical_alignment = 3
autowrap_mode = 2
uppercase = true
[node name="StaticBody2D" type="StaticBody2D" parent="."]
[node name="CollisionShape2D" type="CollisionShape2D" parent="StaticBody2D"]
shape = SubResource("RectangleShape2D_an0bx")
disabled = true
[node name="CameraRightLimit" type="Node2D" parent="."]
position = Vector2(128, -80)
script = ExtResource("4_griru")
metadata/_custom_type_script = "uid://bdq0373j5n5o0"
[node name="CollisionShape2D" type="CollisionShape2D" parent="CameraRightLimit"]
shape = SubResource("WorldBoundaryShape2D_d5sl2")
[node name="TextShadowColourChanger" type="Node" parent="." node_paths=PackedStringArray("labels")]
script = ExtResource("11_ccewg")
labels = [NodePath("../StandardMSG/ThankYou"), NodePath("../StandardMSG/AnotherCastle"), NodePath("../SpeedrunMSG/ThankYou"), NodePath("../SpeedrunMSG/Time"), NodePath("../SpeedrunMSG/PBMessage")]
metadata/_custom_type_script = "uid://dt2p68xl462v2"
[node name="LabelFontChanger" type="Node" parent="." node_paths=PackedStringArray("labels")]
script = ExtResource("11_i6fb7")
labels = [NodePath("../StandardMSG/ThankYou"), NodePath("../StandardMSG/AnotherCastle"), NodePath("../SpeedrunMSG/ThankYou"), NodePath("../SpeedrunMSG/Time"), NodePath("../SpeedrunMSG/PBMessage")]
metadata/_custom_type_script = "uid://co6tjg3w6qpd8"
[node name="LevelEditorToggleDetection" type="Node" parent="." groups=["CastleBridges", "Flagpole"]]
script = ExtResource("13_euu1x")
metadata/_custom_type_script = "uid://b8vmbtoaaq5nc"
[connection signal="toggled" from="LevelEditorToggleDetection" to="." method="_ready"]

View File

@@ -0,0 +1,23 @@
[gd_scene load_steps=4 format=3 uid="uid://h7ys3yw5jvx3"]
[ext_resource type="Texture2D" uid="uid://dq58glgwf2l3" path="res://Assets/Sprites/UI/CheckpointIcon.png" id="1_r4dhm"]
[ext_resource type="Script" uid="uid://dtdc4oaygllfa" path="res://Scripts/Parts/Checkpoint.gd" id="1_vrjdu"]
[sub_resource type="WorldBoundaryShape2D" id="WorldBoundaryShape2D_r4dhm"]
normal = Vector2(-1, 0)
[node name="Checkpoint" type="Node2D"]
script = ExtResource("1_vrjdu")
[node name="Sprite2D" type="Sprite2D" parent="."]
position = Vector2(0, -8)
texture = ExtResource("1_r4dhm")
[node name="Hitbox" type="Area2D" parent="."]
monitorable = false
[node name="CollisionShape2D" type="CollisionShape2D" parent="Hitbox"]
visible = false
shape = SubResource("WorldBoundaryShape2D_r4dhm")
[connection signal="area_entered" from="Hitbox" to="." method="on_area_entered"]

View File

@@ -0,0 +1,110 @@
[gd_scene load_steps=14 format=3 uid="uid://cassl51oehlb6"]
[ext_resource type="Script" uid="uid://hk6ml16axmcc" path="res://Scripts/Classes/Entities/Objects/CheckpointFlag.gd" id="1_5d61x"]
[ext_resource type="Script" uid="uid://dtdc4oaygllfa" path="res://Scripts/Parts/Checkpoint.gd" id="1_dai6d"]
[ext_resource type="Texture2D" uid="uid://3rk8lq7kdaox" path="res://Assets/Sprites/Items/CheckpointFlag.png" id="1_iutnx"]
[ext_resource type="Script" uid="uid://cbal8ms2oe1ik" path="res://Scripts/Classes/Components/ResourceSetterNew.gd" id="3_sdjg4"]
[ext_resource type="JSON" path="res://Assets/Sprites/Items/CheckpointFlag.json" id="4_2u6vm"]
[ext_resource type="Script" uid="uid://5octqlf4ohel" path="res://Scripts/Classes/Components/ScoreNoteSpawner.gd" id="4_dai6d"]
[sub_resource type="AtlasTexture" id="AtlasTexture_dai6d"]
atlas = ExtResource("1_iutnx")
region = Rect2(64, 0, 32, 32)
[sub_resource type="AtlasTexture" id="AtlasTexture_6hnfv"]
atlas = ExtResource("1_iutnx")
region = Rect2(96, 0, 32, 32)
[sub_resource type="AtlasTexture" id="AtlasTexture_sdjg4"]
atlas = ExtResource("1_iutnx")
region = Rect2(0, 0, 32, 32)
[sub_resource type="AtlasTexture" id="AtlasTexture_2u6vm"]
atlas = ExtResource("1_iutnx")
region = Rect2(32, 0, 32, 32)
[sub_resource type="SpriteFrames" id="SpriteFrames_1u6i2"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_dai6d")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_6hnfv")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_sdjg4")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_6hnfv")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_dai6d")
}],
"loop": false,
"name": &"Hit",
"speed": 20.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_2u6vm")
}],
"loop": true,
"name": &"Idle",
"speed": 5.0
}]
[sub_resource type="SpriteFrames" id="SpriteFrames_sdjg4"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_dai6d"]
size = Vector2(8, 32)
[node name="CheckpointFlag" type="Node2D"]
z_index = -5
script = ExtResource("1_dai6d")
metadata/is_flag = true
[node name="Sprite" type="AnimatedSprite2D" parent="."]
process_mode = 3
position = Vector2(8, -16)
sprite_frames = SubResource("SpriteFrames_1u6i2")
animation = &"Hit"
autoplay = "Idle"
[node name="ResourceSetterNew" type="Node" parent="Sprite" node_paths=PackedStringArray("node_to_affect")]
script = ExtResource("3_sdjg4")
node_to_affect = NodePath("..")
property_name = "sprite_frames"
resource_json = ExtResource("4_2u6vm")
metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
[node name="Activated" type="AnimatedSprite2D" parent="."]
visible = false
position = Vector2(8, -16)
sprite_frames = SubResource("SpriteFrames_sdjg4")
[node name="ResourceSetterNew" type="Node" parent="Activated" node_paths=PackedStringArray("node_to_affect")]
script = ExtResource("3_sdjg4")
node_to_affect = NodePath("..")
property_name = "sprite_frames"
metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
[node name="PlayerDetection" type="Area2D" parent="."]
[node name="CollisionShape2D" type="CollisionShape2D" parent="PlayerDetection"]
position = Vector2(2, -16)
shape = SubResource("RectangleShape2D_dai6d")
[node name="Flag" type="Node2D" parent="."]
script = ExtResource("1_5d61x")
[node name="ScoreNoteSpawner" type="Node" parent="."]
script = ExtResource("4_dai6d")
note_offset = Vector2(0, -24)
add_score = true
metadata/_custom_type_script = "uid://5octqlf4ohel"
[connection signal="crossed" from="." to="Flag" method="activate"]
[connection signal="crossed" from="." to="ScoreNoteSpawner" method="spawn_note" binds= [2000]]
[connection signal="tree_exiting" from="." to="." method="on_tree_exiting"]
[connection signal="area_entered" from="PlayerDetection" to="." method="on_area_entered"]

View File

@@ -0,0 +1,13 @@
[gd_scene load_steps=4 format=3 uid="uid://csl71p1unsc8p"]
[ext_resource type="PackedScene" uid="uid://bn1kect7h2dlp" path="res://Scenes/Prefabs/LevelObjects/BulletBillGenerator.tscn" id="1_3kjea"]
[ext_resource type="PackedScene" uid="uid://cwyxi1uihf35y" path="res://Scenes/Prefabs/Entities/Enemies/LeapingCheepCheep.tscn" id="2_kcmvv"]
[ext_resource type="Texture2D" uid="uid://7vndrgnnti11" path="res://Assets/Sprites/Editor/CheepCheepGenerator.png" id="3_y6j8r"]
[node name="EntityGenerator" instance=ExtResource("1_3kjea")]
threshold = 1.0
direction = 1
entity_scene = ExtResource("2_kcmvv")
[node name="Sprite" parent="LevelEditorVisibleNode" index="0"]
texture = ExtResource("3_y6j8r")

View File

@@ -0,0 +1,48 @@
[gd_scene load_steps=8 format=3 uid="uid://bvwo8snk5ixaa"]
[ext_resource type="Script" uid="uid://bosxtidiegjv0" path="res://Scripts/Classes/Entities/Objects/CloudPlatform.gd" id="1_s4l5y"]
[ext_resource type="Texture2D" uid="uid://7g55o2cjwrap" path="res://Assets/Sprites/Tilesets/CloudPlatform.png" id="2_ikg3d"]
[ext_resource type="Script" uid="uid://cbal8ms2oe1ik" path="res://Scripts/Classes/Components/ResourceSetterNew.gd" id="3_1ny6m"]
[ext_resource type="Script" uid="uid://cnheej0sxmoxg" path="res://Scripts/Parts/PlayerDetection.gd" id="3_np2pg"]
[ext_resource type="JSON" path="res://Assets/Sprites/Tilesets/CloudPlatform.json" id="4_fy0hu"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_1ny6m"]
size = Vector2(48, 8)
[sub_resource type="RectangleShape2D" id="RectangleShape2D_fy0hu"]
size = Vector2(42, 8)
[node name="CloudPlatform" type="AnimatableBody2D"]
sync_to_physics = false
script = ExtResource("1_s4l5y")
[node name="Sprite" type="NinePatchRect" parent="."]
offset_left = -24.0
offset_right = 24.0
offset_bottom = 8.0
texture = ExtResource("2_ikg3d")
patch_margin_left = 8
patch_margin_right = 8
axis_stretch_horizontal = 1
[node name="ResourceSetterNew" type="Node" parent="Sprite" node_paths=PackedStringArray("node_to_affect")]
script = ExtResource("3_1ny6m")
node_to_affect = NodePath("..")
property_name = "texture"
mode = 1
resource_json = ExtResource("4_fy0hu")
metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
[node name="Collision" type="CollisionShape2D" parent="."]
position = Vector2(0, 4)
shape = SubResource("RectangleShape2D_1ny6m")
[node name="PlayerDetection" type="Area2D" parent="."]
script = ExtResource("3_np2pg")
metadata/_custom_type_script = "uid://cnheej0sxmoxg"
[node name="CollisionShape2D" type="CollisionShape2D" parent="PlayerDetection"]
position = Vector2(0, -4)
shape = SubResource("RectangleShape2D_fy0hu")
[connection signal="player_entered" from="PlayerDetection" to="." method="on_player_entered"]

View File

@@ -0,0 +1,47 @@
[gd_scene load_steps=5 format=3 uid="uid://cm6nbstl2uceh"]
[ext_resource type="Script" uid="uid://ds3idw2a2udai" path="res://Scripts/Parts/CoinHeavenAllCoinsBonus.gd" id="1_pr18t"]
[ext_resource type="Script" uid="uid://co6tjg3w6qpd8" path="res://Scripts/Parts/LabelFontChanger.gd" id="1_rbqyi"]
[ext_resource type="Resource" uid="uid://8dcuxbc3h2u2" path="res://Resources/ThemedResources/Font.tres" id="2_pr18t"]
[ext_resource type="Script" uid="uid://dt2p68xl462v2" path="res://Scripts/Parts/TextShadowColourChanger.gd" id="3_uimg1"]
[node name="CoinHeavenAllCoinsBonus" type="Node"]
script = ExtResource("1_pr18t")
[node name="CanvasLayer" type="CanvasLayer" parent="."]
visible = false
[node name="VBoxContainer" type="VBoxContainer" parent="CanvasLayer"]
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = -60.0
offset_top = -14.0
offset_right = 60.0
offset_bottom = 14.0
grow_horizontal = 2
grow_vertical = 2
theme_override_constants/separation = -4
[node name="Label" type="Label" parent="CanvasLayer/VBoxContainer"]
layout_mode = 2
text = "PERFECT BONUS!"
horizontal_alignment = 1
[node name="Label2" type="Label" parent="CanvasLayer/VBoxContainer"]
layout_mode = 2
text = "+10,000 POINTS"
horizontal_alignment = 1
[node name="LabelFontChanger" type="Node" parent="." node_paths=PackedStringArray("labels")]
script = ExtResource("1_rbqyi")
labels = [NodePath("../CanvasLayer/VBoxContainer/Label"), NodePath("../CanvasLayer/VBoxContainer/Label2")]
resource = ExtResource("2_pr18t")
metadata/_custom_type_script = "uid://co6tjg3w6qpd8"
[node name="TextShadowColourChanger" type="Node" parent="." node_paths=PackedStringArray("labels")]
script = ExtResource("3_uimg1")
labels = [NodePath("../CanvasLayer/VBoxContainer/Label"), NodePath("../CanvasLayer/VBoxContainer/Label2")]
metadata/_custom_type_script = "uid://dt2p68xl462v2"

View File

@@ -0,0 +1,26 @@
[gd_scene load_steps=3 format=3 uid="uid://6n4m3cwyuea1"]
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_8t45o"]
bg_color = Color(1, 1, 1, 1)
border_width_left = 1
border_width_top = 1
border_width_right = 1
border_width_bottom = 1
border_color = Color(1, 0, 0, 1)
[sub_resource type="RectangleShape2D" id="RectangleShape2D_04v64"]
[node name="DeathPit" type="Area2D"]
[node name="Panel" type="Panel" parent="."]
offset_left = -8.0
offset_top = -8.0
offset_right = 8.0
offset_bottom = 8.0
theme_override_styles/panel = SubResource("StyleBoxFlat_8t45o")
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
position = Vector2(0, 32)
shape = SubResource("RectangleShape2D_04v64")
[connection signal="area_entered" from="." to="." method="area_entered"]

View File

@@ -0,0 +1,94 @@
[gd_scene load_steps=8 format=3 uid="uid://bhqyp8mia3mo3"]
[ext_resource type="Script" uid="uid://duxduhxe8vqdo" path="res://Scripts/Classes/Entities/Objects/EditorLinkedElevator.gd" id="1_0yjq3"]
[ext_resource type="Texture2D" uid="uid://dt0qtxu2l646n" path="res://Assets/Sprites/Tilesets/Terrain/Overworld.png" id="2_lcqnt"]
[ext_resource type="Script" uid="uid://cbal8ms2oe1ik" path="res://Scripts/Classes/Components/ResourceSetterNew.gd" id="3_5tm0t"]
[ext_resource type="JSON" path="res://Assets/Sprites/Tilesets/Terrain/TerrainTiles.json" id="4_ohybb"]
[ext_resource type="PackedScene" uid="uid://6rp3wgax4i51" path="res://Scenes/Prefabs/Entities/Objects/RopeElevatorPlatform.tscn" id="5_5qwbh"]
[ext_resource type="Script" uid="uid://ctfbuoxtnnl0q" path="res://Scripts/Classes/Components/EditorPropertyExposer.gd" id="6_lcqnt"]
[sub_resource type="GDScript" id="GDScript_0yjq3"]
script/source = "extends Node
func _process(_delta: float) -> void:
if LevelEditor.playing_level == false:
update()
func update() -> void:
$\"../CornerR\".position.x = (16 * owner.width) + 48
$\"../Middle\".size.x = (owner.width * 16) + 32
%RPlatform.position.y = (16 * owner.right_height) + 16
%LPlatform.position.y = (16 * owner.left_height) + 16
%LPlatform.rope_top = owner.global_position.y
%RPlatform.rope_top = owner.global_position.y
%RPlatform._process(-1)
%LPlatform._process(-1)
"
[node name="EditorLinkedElevator" type="Node2D"]
script = ExtResource("1_0yjq3")
[node name="CornerL" type="Sprite2D" parent="."]
texture = ExtResource("2_lcqnt")
region_enabled = true
region_rect = Rect2(160, 128, 16, 16)
[node name="ResourceSetterNew" type="Node" parent="CornerL" node_paths=PackedStringArray("node_to_affect")]
script = ExtResource("3_5tm0t")
node_to_affect = NodePath("..")
property_name = "texture"
mode = 1
resource_json = ExtResource("4_ohybb")
metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
[node name="Middle" type="NinePatchRect" parent="."]
offset_left = 8.0
offset_top = -8.0
offset_right = 48.0
offset_bottom = 8.0
texture = ExtResource("2_lcqnt")
region_rect = Rect2(176, 128, 16, 16)
axis_stretch_horizontal = 1
[node name="ResourceSetterNew" type="Node" parent="Middle" node_paths=PackedStringArray("node_to_affect")]
script = ExtResource("3_5tm0t")
node_to_affect = NodePath("..")
property_name = "texture"
mode = 1
resource_json = ExtResource("4_ohybb")
metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
[node name="CornerR" type="Sprite2D" parent="."]
position = Vector2(56, 0)
texture = ExtResource("2_lcqnt")
region_enabled = true
region_rect = Rect2(192, 128, 16, 16)
[node name="ResourceSetterNew" type="Node" parent="CornerR" node_paths=PackedStringArray("node_to_affect")]
script = ExtResource("3_5tm0t")
node_to_affect = NodePath("..")
property_name = "texture"
mode = 1
resource_json = ExtResource("4_ohybb")
metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
[node name="RPlatform" parent="CornerR" node_paths=PackedStringArray("linked_platform") instance=ExtResource("5_5qwbh")]
unique_name_in_owner = true
position = Vector2(0, 16)
linked_platform = NodePath("../../LPlatform")
[node name="LPlatform" parent="." node_paths=PackedStringArray("linked_platform") instance=ExtResource("5_5qwbh")]
unique_name_in_owner = true
position = Vector2(0, 64)
linked_platform = NodePath("../CornerR/RPlatform")
[node name="EditorPropertyExposer" type="Node" parent="."]
script = ExtResource("6_lcqnt")
properties = Array[String](["width", "left_height", "right_height"])
metadata/_custom_type_script = "uid://ctfbuoxtnnl0q"
[node name="Node" type="Node" parent="."]
process_mode = 3
script = SubResource("GDScript_0yjq3")
[connection signal="modifier_applied" from="EditorPropertyExposer" to="Node" method="update"]

View File

@@ -0,0 +1,200 @@
[gd_scene load_steps=19 format=4 uid="uid://bney0cc8cfm5s"]
[ext_resource type="Script" uid="uid://qq26qw7ltflb" path="res://Scripts/Parts/EndCastle.gd" id="1_hwcne"]
[ext_resource type="Script" uid="uid://caq1qiwmy0mox" path="res://Scripts/Parts/BetterAnimatedSprite.gd" id="2_1kswc"]
[ext_resource type="Script" uid="uid://cbal8ms2oe1ik" path="res://Scripts/Classes/Components/ResourceSetterNew.gd" id="3_gbn2t"]
[ext_resource type="Script" uid="uid://bdq0373j5n5o0" path="res://Scripts/Parts/CameraRightLimit.gd" id="4_w7qld"]
[ext_resource type="JSON" path="res://Assets/Sprites/Tilesets/CastleFlag.json" id="4_wqi45"]
[ext_resource type="PackedScene" uid="uid://bikdod5ra10ra" path="res://Scenes/Parts/LargeCastleVisual.tscn" id="6_w7qld"]
[ext_resource type="Script" uid="uid://73oviwf6bbys" path="res://Scripts/Classes/Components/TilesetTextureSetter.gd" id="8_akqko"]
[ext_resource type="Texture2D" uid="uid://dt0qtxu2l646n" path="res://Assets/Sprites/Tilesets/Terrain/Overworld.png" id="10_wqi45"]
[ext_resource type="Texture2D" uid="uid://dkcs5i8l1y4y6" path="res://Assets/Sprites/Tilesets/EndingFinalCastleSprite.png" id="11_wqi45"]
[ext_resource type="JSON" path="res://Assets/Sprites/Tilesets/FinalCastle.json" id="12_kd4m5"]
[ext_resource type="JSON" path="res://Assets/Sprites/Tilesets/Terrain/TerrainTiles.json" id="12_rgjtr"]
[ext_resource type="PackedScene" uid="uid://ct5rrpa7uehkk" path="res://Scenes/Parts/Tiles.tscn" id="13_kd4m5"]
[sub_resource type="Animation" id="Animation_an8pi"]
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(32, -128)]
}
[sub_resource type="Animation" id="Animation_1x3lf"]
resource_name = "Raise"
length = 0.5
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.02, 0.5),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Vector2(32, -128), Vector2(32, -160)]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_fnvmm"]
_data = {
&"RESET": SubResource("Animation_an8pi"),
&"Raise": SubResource("Animation_1x3lf")
}
[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_wqi45"]
texture = ExtResource("10_wqi45")
texture_region_size = Vector2i(8, 8)
5:10/0 = 0
6:10/0 = 0
7:10/0 = 0
8:10/0 = 0
6:7/0 = 0
7:7/0 = 0
7:20/0 = 0
13:20/0 = 0
14:14/0 = 0
14:15/0 = 0
15:15/0 = 0
15:14/0 = 0
12:20/0 = 0
[sub_resource type="TileSet" id="TileSet_kd4m5"]
tile_size = Vector2i(8, 8)
sources/0 = SubResource("TileSetAtlasSource_wqi45")
[sub_resource type="RectangleShape2D" id="RectangleShape2D_6fi1c"]
size = Vector2(6, 20)
[node name="EndFinalCastle" type="Node2D"]
process_mode = 3
script = ExtResource("1_hwcne")
[node name="FlagJoint" type="Node2D" parent="."]
visible = false
z_index = -5
position = Vector2(32, -128)
[node name="Flag" type="AnimatedSprite2D" parent="FlagJoint"]
show_behind_parent = true
z_index = -6
position = Vector2(0, -24.1121)
offset = Vector2(0, -16)
script = ExtResource("2_1kswc")
metadata/_custom_type_script = "uid://caq1qiwmy0mox"
[node name="AnimationPlayer" type="AnimationPlayer" parent="FlagJoint/Flag"]
root_node = NodePath("../..")
libraries = {
&"": SubResource("AnimationLibrary_fnvmm")
}
[node name="ResourceSetterNew" type="Node" parent="FlagJoint/Flag" node_paths=PackedStringArray("node_to_affect")]
script = ExtResource("3_gbn2t")
node_to_affect = NodePath("..")
property_name = "sprite_frames"
resource_json = ExtResource("4_wqi45")
metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
[node name="CameraRightLimit" type="Node2D" parent="."]
position = Vector2(128, 0)
script = ExtResource("4_w7qld")
metadata/_custom_type_script = "uid://bdq0373j5n5o0"
[node name="Framerule" type="Timer" parent="."]
process_callback = 0
wait_time = 0.351
autostart = true
[node name="SmallCastleVisual" parent="." instance=ExtResource("6_w7qld")]
z_index = -10
position = Vector2(0, -40)
[node name="OverlaySprite" type="Sprite2D" parent="."]
visible = false
z_index = 10
position = Vector2(32, -88)
texture = ExtResource("11_wqi45")
hframes = 2
frame = 1
region_rect = Rect2(0, 80, 80, 80)
[node name="ResourceSetterNew" type="Node" parent="OverlaySprite" node_paths=PackedStringArray("node_to_affect", "property_node")]
script = ExtResource("3_gbn2t")
node_to_affect = NodePath("..")
property_node = NodePath("../..")
property_name = "texture"
mode = 1
resource_json = ExtResource("12_kd4m5")
metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
[node name="Wall" parent="." instance=ExtResource("13_kd4m5")]
unique_name_in_owner = true
position = Vector2(8, 0)
tile_map_data = PackedByteArray("AAAGAPr/AAAGAAcAAAAHAPr/AAAGAAcAAAAIAPr/AAAGAAcAAAAJAPr/AAAGAAcAAAAKAPr/AAAGAAcAAAALAPr/AAAGAAcAAAAMAPr/AAAGAAcAAAANAPr/AAAGAAcAAAAOAPr/AAAGAAcAAAAPAPr/AAAGAAcAAAAQAPr/AAAGAAcAAAARAPr/AAAGAAcAAAASAPr/AAAGAAcAAAATAPr/AAAGAAcAAAAUAPr/AAAGAAcAAAAVAPr/AAAGAAcAAAAWAPr/AAAGAAcAAAAXAPr/AAAGAAcAAAAYAPr/AAAGAAcAAAAZAPr/AAAGAAcAAAAaAPr/AAAGAAcAAAAbAPr/AAAGAAcAAAAcAPr/AAAGAAcAAAAdAPr/AAAGAAcAAAAeAPr/AAAGAAcAAAAfAPr/AAAGAAcAAAAgAPr/AAAGAAcAAAAhAPr/AAAGAAcAAAAiAPr/AAAGAAcAAAAjAPr/AAAGAAcAAAAkAPr/AAAGAAcAAAAlAPr/AAAGAAcAAAAmAPr/AAAGAAcAAAAnAPr/AAAGAAcAAAAoAPr/AAAGAAcAAAApAPr/AAAGAAcAAAAqAPr/AAAGAAcAAAArAPr/AAAGAAcAAAAsAPr/AAAGAAcAAAAtAPr/AAAGAAcAAAAuAPr/AAAGAAcAAAAvAPr/AAAGAAcAAAAwAPr/AAAGAAcAAAAxAPr/AAAGAAcAAAAyAPr/AAAGAAcAAAAzAPr/AAAGAAcAAAA0APr/AAAGAAcAAAAHAPv/AAAHAAcAAAAHAPz/AAAHAAcAAAAHAP3/AAAHAAcAAAAHAP7/AAAHAAcAAAAHAP//AAAHAAcAAAAIAPv/AAAHAAcAAAAIAPz/AAAHAAcAAAAIAP3/AAAHAAcAAAAIAP7/AAAHAAcAAAAIAP//AAAHAAcAAAAJAPv/AAAHAAcAAAAJAPz/AAAHAAcAAAAJAP3/AAAHAAcAAAAJAP7/AAAHAAcAAAAJAP//AAAHAAcAAAAKAPv/AAAHAAcAAAAKAPz/AAAHAAcAAAAKAP3/AAAHAAcAAAAKAP7/AAAHAAcAAAAKAP//AAAHAAcAAAALAPv/AAAHAAcAAAALAPz/AAAHAAcAAAALAP3/AAAHAAcAAAALAP7/AAAHAAcAAAALAP//AAAHAAcAAAAMAPv/AAAHAAcAAAAMAPz/AAAHAAcAAAAMAP3/AAAHAAcAAAAMAP7/AAAHAAcAAAAMAP//AAAHAAcAAAANAPv/AAAHAAcAAAANAPz/AAAHAAcAAAANAP3/AAAHAAcAAAANAP7/AAAHAAcAAAANAP//AAAHAAcAAAAOAPv/AAAHAAcAAAAOAPz/AAAHAAcAAAAOAP3/AAAHAAcAAAAOAP7/AAAHAAcAAAAOAP//AAAHAAcAAAAPAPv/AAAHAAcAAAAPAPz/AAAHAAcAAAAPAP3/AAAHAAcAAAAPAP7/AAAHAAcAAAAPAP//AAAHAAcAAAAQAPv/AAAHAAcAAAAQAPz/AAAHAAcAAAAQAP3/AAAHAAcAAAAQAP7/AAAHAAcAAAAQAP//AAAHAAcAAAARAPv/AAAHAAcAAAARAPz/AAAHAAcAAAARAP3/AAAHAAcAAAARAP7/AAAHAAcAAAARAP//AAAHAAcAAAASAPv/AAAHAAcAAAASAPz/AAAHAAcAAAASAP3/AAAHAAcAAAASAP7/AAAHAAcAAAASAP//AAAHAAcAAAATAPv/AAAHAAcAAAATAPz/AAAHAAcAAAATAP3/AAAHAAcAAAATAP7/AAAHAAcAAAATAP//AAAHAAcAAAAUAPv/AAAHAAcAAAAUAPz/AAAHAAcAAAAUAP3/AAAHAAcAAAAUAP7/AAAHAAcAAAAUAP//AAAHAAcAAAAVAPv/AAAHAAcAAAAVAPz/AAAHAAcAAAAVAP3/AAAHAAcAAAAVAP7/AAAHAAcAAAAVAP//AAAHAAcAAAAWAPv/AAAHAAcAAAAWAPz/AAAHAAcAAAAWAP3/AAAHAAcAAAAWAP7/AAAHAAcAAAAWAP//AAAHAAcAAAAXAPv/AAAHAAcAAAAXAPz/AAAHAAcAAAAXAP3/AAAHAAcAAAAXAP7/AAAHAAcAAAAXAP//AAAHAAcAAAAYAPv/AAAHAAcAAAAYAPz/AAAHAAcAAAAYAP3/AAAHAAcAAAAYAP7/AAAHAAcAAAAYAP//AAAHAAcAAAAZAPv/AAAHAAcAAAAZAPz/AAAHAAcAAAAZAP3/AAAHAAcAAAAZAP7/AAAHAAcAAAAZAP//AAAHAAcAAAAaAPv/AAAHAAcAAAAaAPz/AAAHAAcAAAAaAP3/AAAHAAcAAAAaAP7/AAAHAAcAAAAaAP//AAAHAAcAAAAbAPv/AAAHAAcAAAAbAPz/AAAHAAcAAAAbAP3/AAAHAAcAAAAbAP7/AAAHAAcAAAAbAP//AAAHAAcAAAAcAPv/AAAHAAcAAAAcAPz/AAAHAAcAAAAcAP3/AAAHAAcAAAAcAP7/AAAHAAcAAAAcAP//AAAHAAcAAAAdAPv/AAAHAAcAAAAdAPz/AAAHAAcAAAAdAP3/AAAHAAcAAAAdAP7/AAAHAAcAAAAdAP//AAAHAAcAAAAeAPv/AAAHAAcAAAAeAPz/AAAHAAcAAAAeAP3/AAAHAAcAAAAeAP7/AAAHAAcAAAAeAP//AAAHAAcAAAAfAPv/AAAHAAcAAAAfAPz/AAAHAAcAAAAfAP3/AAAHAAcAAAAfAP7/AAAHAAcAAAAfAP//AAAHAAcAAAAgAPv/AAAHAAcAAAAgAPz/AAAHAAcAAAAgAP3/AAAHAAcAAAAgAP7/AAAHAAcAAAAgAP//AAAHAAcAAAAhAPv/AAAHAAcAAAAhAPz/AAAHAAcAAAAhAP3/AAAHAAcAAAAhAP7/AAAHAAcAAAAhAP//AAAHAAcAAAAiAPv/AAAHAAcAAAAiAPz/AAAHAAcAAAAiAP3/AAAHAAcAAAAiAP7/AAAHAAcAAAAiAP//AAAHAAcAAAAjAPv/AAAHAAcAAAAjAPz/AAAHAAcAAAAjAP3/AAAHAAcAAAAjAP7/AAAHAAcAAAAjAP//AAAHAAcAAAAkAPv/AAAHAAcAAAAkAPz/AAAHAAcAAAAkAP3/AAAHAAcAAAAkAP7/AAAHAAcAAAAkAP//AAAHAAcAAAAlAPv/AAAHAAcAAAAlAPz/AAAHAAcAAAAlAP3/AAAHAAcAAAAlAP7/AAAHAAcAAAAlAP//AAAHAAcAAAAmAPv/AAAHAAcAAAAmAPz/AAAHAAcAAAAmAP3/AAAHAAcAAAAmAP7/AAAHAAcAAAAmAP//AAAHAAcAAAAnAPv/AAAHAAcAAAAnAPz/AAAHAAcAAAAnAP3/AAAHAAcAAAAnAP7/AAAHAAcAAAAnAP//AAAHAAcAAAAoAPv/AAAHAAcAAAAoAPz/AAAHAAcAAAAoAP3/AAAHAAcAAAAoAP7/AAAHAAcAAAAoAP//AAAHAAcAAAApAPv/AAAHAAcAAAApAPz/AAAHAAcAAAApAP3/AAAHAAcAAAApAP7/AAAHAAcAAAApAP//AAAHAAcAAAAqAPv/AAAHAAcAAAAqAPz/AAAHAAcAAAAqAP3/AAAHAAcAAAAqAP7/AAAHAAcAAAAqAP//AAAHAAcAAAArAPv/AAAHAAcAAAArAPz/AAAHAAcAAAArAP3/AAAHAAcAAAArAP7/AAAHAAcAAAArAP//AAAHAAcAAAAsAPv/AAAHAAcAAAAsAPz/AAAHAAcAAAAsAP3/AAAHAAcAAAAsAP7/AAAHAAcAAAAsAP//AAAHAAcAAAAtAPv/AAAHAAcAAAAtAPz/AAAHAAcAAAAtAP3/AAAHAAcAAAAtAP7/AAAHAAcAAAAtAP//AAAHAAcAAAAuAPv/AAAHAAcAAAAuAPz/AAAHAAcAAAAuAP3/AAAHAAcAAAAuAP7/AAAHAAcAAAAuAP//AAAHAAcAAAAvAPv/AAAHAAcAAAAvAPz/AAAHAAcAAAAvAP3/AAAHAAcAAAAvAP7/AAAHAAcAAAAvAP//AAAHAAcAAAAwAPv/AAAHAAcAAAAwAPz/AAAHAAcAAAAwAP3/AAAHAAcAAAAwAP7/AAAHAAcAAAAwAP//AAAHAAcAAAAxAPv/AAAHAAcAAAAxAPz/AAAHAAcAAAAxAP3/AAAHAAcAAAAxAP7/AAAHAAcAAAAxAP//AAAHAAcAAAAyAPv/AAAHAAcAAAAyAPz/AAAHAAcAAAAyAP3/AAAHAAcAAAAyAP7/AAAHAAcAAAAyAP//AAAHAAcAAAAzAPv/AAAHAAcAAAAzAPz/AAAHAAcAAAAzAP3/AAAHAAcAAAAzAP7/AAAHAAcAAAAzAP//AAAHAAcAAAA0APv/AAAHAAcAAAA0APz/AAAHAAcAAAA0AP3/AAAHAAcAAAA0AP7/AAAHAAcAAAA0AP//AAAHAAcAAAA1APv/AAAHAAcAAAA1APz/AAAHAAcAAAA1AP3/AAAHAAcAAAA1AP7/AAAHAAcAAAA1AP//AAAHAAcAAAA2APv/AAAHAAcAAAA2APz/AAAHAAcAAAA2AP3/AAAHAAcAAAA2AP7/AAAHAAcAAAA2AP//AAAHAAcAAAAGAPv/AAAHAAcAAAAGAPz/AAAHAAcAAAAGAP3/AAAHAAcAAAAGAP7/AAAHAAcAAAAGAP//AAAHAAcAAAA=")
[node name="Overlay" type="TileMapLayer" parent="."]
visible = false
z_index = 10
position = Vector2(-8, -32)
tile_map_data = PackedByteArray("AAABAAAAAAANABQAAAAFAAAAAAANABQAAAAJAAAAAAANABQAAAACAAAAAAAOAA4AAAACAAEAAAAOAA8AAAADAAAAAAAPAA4AAAADAAEAAAAPAA8AAAACAAIAAAAOAA4AAAACAAMAAAAOAA8AAAADAAIAAAAPAA4AAAADAAMAAAAPAA8AAAAGAAAAAAAOAA4AAAAGAAEAAAAOAA8AAAAHAAAAAAAPAA4AAAAHAAEAAAAPAA8AAAAGAAIAAAAOAA4AAAAGAAMAAAAOAA8AAAAHAAIAAAAPAA4AAAAHAAMAAAAPAA8AAAAEAAAAAAAMABQAAAAIAAAAAAAMABQAAAABAP7/AAAPAA4AAAABAP//AAAPAA8AAAACAP7/AAAOAA4AAAACAP//AAAOAA8AAAADAP7/AAAPAA4AAAADAP//AAAPAA8AAAAEAP7/AAAOAA4AAAAEAP//AAAOAA8AAAAFAP7/AAAPAA4AAAAFAP//AAAPAA8AAAAGAP7/AAAOAA4AAAAGAP//AAAOAA8AAAAHAP7/AAAPAA4AAAAHAP//AAAPAA8AAAAIAP7/AAAOAA4AAAAIAP//AAAOAA8AAAAJAP7/AAAPAA4AAAAJAP//AAAPAA8AAAA=")
tile_set = SubResource("TileSet_kd4m5")
[node name="TilesetTextureSetter" type="Node" parent="Overlay" node_paths=PackedStringArray("tile_map")]
script = ExtResource("8_akqko")
tile_map = NodePath("..")
metadata/_custom_type_script = "uid://73oviwf6bbys"
[node name="ResourceSetter" type="Node" parent="Overlay/TilesetTextureSetter" node_paths=PackedStringArray("node_to_affect")]
script = ExtResource("3_gbn2t")
node_to_affect = NodePath("..")
property_name = "texture"
mode = 1
resource_json = ExtResource("12_rgjtr")
metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
[node name="PlayerDetection" type="StaticBody2D" parent="Overlay"]
position = Vector2(24, 32)
collision_layer = 0
collision_mask = 0
[node name="CollisionShape2D" type="CollisionShape2D" parent="Overlay/PlayerDetection"]
position = Vector2(21, -9)
shape = SubResource("RectangleShape2D_6fi1c")
[node name="Overlay2" type="TileMapLayer" parent="Overlay"]
show_behind_parent = true
tile_map_data = PackedByteArray("AAAEAAAAAAAHABQAAAAEAAEAAAAHABQAAAAEAAIAAAAHABQAAAAEAAMAAAAHABQAAAAFAAAAAAAHABQAAAAFAAEAAAAHABQAAAAFAAIAAAAHABQAAAAFAAMAAAAHABQAAAAIAAAAAAAHABQAAAAIAAEAAAAHABQAAAAIAAIAAAAHABQAAAAIAAMAAAAHABQAAAAJAAAAAAAHABQAAAAJAAEAAAAHABQAAAAJAAIAAAAHABQAAAAJAAMAAAAHABQAAAA=")
tile_set = SubResource("TileSet_kd4m5")
[node name="TilesetTextureSetter" type="Node" parent="Overlay/Overlay2" node_paths=PackedStringArray("tile_map")]
script = ExtResource("8_akqko")
tile_map = NodePath("..")
metadata/_custom_type_script = "uid://73oviwf6bbys"
[node name="ResourceSetter" type="Node" parent="Overlay/Overlay2/TilesetTextureSetter" node_paths=PackedStringArray("node_to_affect")]
script = ExtResource("3_gbn2t")
node_to_affect = NodePath("..")
property_name = "texture"
mode = 1
resource_json = ExtResource("12_rgjtr")
metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
[node name="PlayerDetection" type="StaticBody2D" parent="Overlay/Overlay2"]
position = Vector2(24, 32)
collision_layer = 0
collision_mask = 0
[node name="CollisionShape2D" type="CollisionShape2D" parent="Overlay/Overlay2/PlayerDetection"]
position = Vector2(21, -9)
shape = SubResource("RectangleShape2D_6fi1c")
[connection signal="timeout" from="Framerule" to="." method="on_timeout"]

View File

@@ -0,0 +1,36 @@
[gd_scene load_steps=6 format=3 uid="uid://b5o0j3kfv2xys"]
[ext_resource type="PackedScene" uid="uid://bney0cc8cfm5s" path="res://Scenes/Prefabs/LevelObjects/EndFinalCastle.tscn" id="1_fa5ur"]
[ext_resource type="PackedScene" uid="uid://bem5ht17ukgcs" path="res://Scenes/Parts/LargeSPCastleVisual.tscn" id="2_jlw6s"]
[ext_resource type="Texture2D" uid="uid://gnqt7rl36kxy" path="res://Assets/Sprites/Tilesets/CastleFlag.png" id="2_jp1ee"]
[sub_resource type="AtlasTexture" id="AtlasTexture_uq0jd"]
atlas = ExtResource("2_jp1ee")
region = Rect2(0, 0, 16, 16)
[sub_resource type="SpriteFrames" id="SpriteFrames_t8sum"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_uq0jd")
}],
"loop": true,
"name": &"default",
"speed": 5.0
}]
[node name="EndFinalCastle" instance=ExtResource("1_fa5ur")]
[node name="Flag" parent="FlagJoint" index="0"]
position = Vector2(0, 8.00001)
sprite_frames = SubResource("SpriteFrames_t8sum")
do_offset = false
[node name="SmallCastleVisual" parent="." index="3"]
visible = false
[node name="SmallCastleVisual2" parent="." index="6" instance=ExtResource("2_jlw6s")]
position = Vector2(32, -40)
[node name="Overlay" parent="." index="7"]
visible = true

View File

@@ -0,0 +1,215 @@
[gd_scene load_steps=24 format=3 uid="uid://c6loucilra6da"]
[ext_resource type="Script" uid="uid://dwfnvpioh2kvi" path="res://Scripts/Parts/EndFlagpole.gd" id="1_3rtm4"]
[ext_resource type="Texture2D" uid="uid://3vg41a5plc4e" path="res://Assets/Sprites/Tilesets/FlagPole.png" id="1_hnd65"]
[ext_resource type="Script" uid="uid://cnheej0sxmoxg" path="res://Scripts/Parts/PlayerDetection.gd" id="4_62gix"]
[ext_resource type="JSON" path="res://Assets/Sprites/Tilesets/FlagPole.json" id="4_nykv5"]
[ext_resource type="Script" uid="uid://5octqlf4ohel" path="res://Scripts/Classes/Components/ScoreNoteSpawner.gd" id="5_dm4yn"]
[ext_resource type="Script" uid="uid://cmvlgsjmsk0v5" path="res://Scripts/Classes/Resources/ThemedResource.gd" id="5_jihtx"]
[ext_resource type="Script" uid="uid://cbal8ms2oe1ik" path="res://Scripts/Classes/Components/ResourceSetterNew.gd" id="5_sjcdg"]
[ext_resource type="JSON" path="res://Assets/Sprites/Tilesets/Flag.json" id="6_tpsyw"]
[ext_resource type="FontVariation" uid="uid://cflgloiossd8a" path="res://Resources/ThemedResources/ScoreFont.tres" id="8_sjcdg"]
[ext_resource type="Script" uid="uid://dt2p68xl462v2" path="res://Scripts/Parts/TextShadowColourChanger.gd" id="9_jihtx"]
[ext_resource type="Script" uid="uid://cqif1li7otvpl" path="res://Scripts/Parts/SpriteFramesToJsonConverter.gd" id="12_jgs31"]
[sub_resource type="AtlasTexture" id="AtlasTexture_uwkl1"]
atlas = ExtResource("1_hnd65")
region = Rect2(0, 0, 16, 176)
[sub_resource type="SpriteFrames" id="SpriteFrames_tpsyw"]
[sub_resource type="SegmentShape2D" id="SegmentShape2D_hnd65"]
b = Vector2(0, -152)
[sub_resource type="Animation" id="Animation_3rtm4"]
resource_name = "FlagDown"
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Flag: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, -152), Vector2(-8, -32)]
}
[sub_resource type="Animation" id="Animation_xwflf"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Flag:position")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector2(-8, -152)]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_62gix"]
_data = {
&"FlagDown": SubResource("Animation_3rtm4"),
&"RESET": SubResource("Animation_xwflf")
}
[sub_resource type="CircleShape2D" id="CircleShape2D_c56yc"]
radius = 4.0
[sub_resource type="Animation" id="Animation_uwkl1"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Score:position")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector2(8, -24)]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("Score: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_c56yc"]
resource_name = "ScoreRise"
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Score: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, -24), Vector2(8, -168)]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("Score:visible")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [true]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_jihtx"]
_data = {
&"RESET": SubResource("Animation_uwkl1"),
&"ScoreRise": SubResource("Animation_c56yc")
}
[sub_resource type="AtlasTexture" id="AtlasTexture_jihtx"]
atlas = ExtResource("1_hnd65")
region = Rect2(16, 0, 16, 176)
[sub_resource type="Resource" id="Resource_a0hgu"]
script = ExtResource("5_jihtx")
Overworld = SubResource("AtlasTexture_uwkl1")
Snow = SubResource("AtlasTexture_jihtx")
metadata/_custom_type_script = ExtResource("5_jihtx")
[node name="EndFlagpole" type="Node2D" groups=["Flagpole"]]
z_index = -5
script = ExtResource("1_3rtm4")
[node name="Pole" type="Sprite2D" parent="."]
position = Vector2(0, -88)
texture = SubResource("AtlasTexture_uwkl1")
[node name="ResourceSetterNew" type="Node" parent="Pole" node_paths=PackedStringArray("node_to_affect")]
script = ExtResource("5_sjcdg")
node_to_affect = NodePath("..")
property_name = "texture"
mode = 1
resource_json = ExtResource("4_nykv5")
metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
[node name="Flag" type="AnimatedSprite2D" parent="."]
position = Vector2(-8, -152)
sprite_frames = SubResource("SpriteFrames_tpsyw")
autoplay = "default"
offset = Vector2(-1, 0)
[node name="ResourceSetterNew" type="Node" parent="Flag" node_paths=PackedStringArray("node_to_affect")]
script = ExtResource("5_sjcdg")
node_to_affect = NodePath("..")
property_name = "sprite_frames"
resource_json = ExtResource("6_tpsyw")
metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
[node name="Hitbox" type="Area2D" parent="."]
[node name="Shape" type="CollisionShape2D" parent="Hitbox"]
position = Vector2(0, -16)
shape = SubResource("SegmentShape2D_hnd65")
[node name="Animation" type="AnimationPlayer" parent="."]
libraries = {
&"": SubResource("AnimationLibrary_62gix")
}
[node name="Top" type="Area2D" parent="."]
script = ExtResource("4_62gix")
metadata/_custom_type_script = "uid://cnheej0sxmoxg"
[node name="CollisionShape2D" type="CollisionShape2D" parent="Top"]
position = Vector2(0, -164)
shape = SubResource("CircleShape2D_c56yc")
[node name="ScoreNoteSpawner" type="Node" parent="."]
script = ExtResource("5_dm4yn")
note_offset = Vector2(0, -160)
metadata/_custom_type_script = "uid://5octqlf4ohel"
[node name="Score" type="Label" parent="."]
visible = false
visibility_layer = 2
offset_left = 8.0
offset_top = -24.0
offset_right = 48.0
offset_bottom = -8.0
theme_override_fonts/font = ExtResource("8_sjcdg")
text = "5000"
[node name="Animation2" type="AnimationPlayer" parent="Score"]
root_node = NodePath("../..")
libraries = {
&"": SubResource("AnimationLibrary_jihtx")
}
[node name="TextShadowColourChanger" type="Node" parent="Score" node_paths=PackedStringArray("labels")]
script = ExtResource("9_jihtx")
labels = [NodePath("..")]
metadata/_custom_type_script = "uid://dt2p68xl462v2"
[node name="ThemedToJSONConverter" type="Node" parent="."]
script = ExtResource("12_jgs31")
resource = SubResource("Resource_a0hgu")
json_file_path = "res://Assets/Sprites/Tilesets/FlagPole.json"
metadata/_custom_type_script = "uid://cqif1li7otvpl"
[connection signal="area_entered" from="Hitbox" to="." method="on_area_entered"]
[connection signal="player_entered" from="Top" to="." method="on_player_entered"]
[connection signal="player_entered" from="Top" to="ScoreNoteSpawner" method="spawn_one_up_note" unbinds=1]

View File

@@ -0,0 +1,179 @@
[gd_scene load_steps=20 format=4 uid="uid://byqmn8yi7iuac"]
[ext_resource type="Script" uid="uid://qq26qw7ltflb" path="res://Scripts/Parts/EndCastle.gd" id="1_4yifo"]
[ext_resource type="Script" uid="uid://caq1qiwmy0mox" path="res://Scripts/Parts/BetterAnimatedSprite.gd" id="2_l3xjf"]
[ext_resource type="Script" uid="uid://cbal8ms2oe1ik" path="res://Scripts/Classes/Components/ResourceSetterNew.gd" id="3_7xlhl"]
[ext_resource type="Script" uid="uid://bdq0373j5n5o0" path="res://Scripts/Parts/CameraRightLimit.gd" id="4_1x3lf"]
[ext_resource type="JSON" path="res://Assets/Sprites/Tilesets/CastleFlag.json" id="4_7xlhl"]
[ext_resource type="PackedScene" uid="uid://qn4g0qkjcuiy" path="res://Scenes/Parts/SmallCastleVisual.tscn" id="5_an8pi"]
[ext_resource type="Texture2D" uid="uid://dt0qtxu2l646n" path="res://Assets/Sprites/Tilesets/Terrain/Overworld.png" id="7_xg4af"]
[ext_resource type="Script" uid="uid://73oviwf6bbys" path="res://Scripts/Classes/Components/TilesetTextureSetter.gd" id="8_l3xjf"]
[ext_resource type="JSON" path="res://Assets/Sprites/Tilesets/Terrain/TerrainTiles.json" id="9_oyrq2"]
[ext_resource type="Texture2D" uid="uid://dbacecqyfwr1m" path="res://Assets/Sprites/Tilesets/EndingCastleSprite.png" id="11_2hcdu"]
[ext_resource type="JSON" path="res://Assets/Sprites/Tilesets/SmallCastle.json" id="12_xg4af"]
[ext_resource type="Script" uid="uid://b8vmbtoaaq5nc" path="res://Scripts/Parts/EditorToggleDetection.gd" id="14_oyrq2"]
[sub_resource type="SpriteFrames" id="SpriteFrames_7xlhl"]
[sub_resource type="Animation" id="Animation_fyn5h"]
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, -56)]
}
[sub_resource type="Animation" id="Animation_7xlhl"]
resource_name = "Raise"
length = 0.5
step = 0.0333333
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, 0.5),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Vector2(0, -56), Vector2(0, -80)]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_2hcdu"]
_data = {
&"RESET": SubResource("Animation_fyn5h"),
&"Raise": SubResource("Animation_7xlhl")
}
[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_2hcdu"]
texture = ExtResource("7_xg4af")
texture_region_size = Vector2i(8, 8)
5:10/0 = 0
6:10/0 = 0
7:10/0 = 0
8:10/0 = 0
6:7/0 = 0
7:7/0 = 0
7:20/0 = 0
13:20/0 = 0
14:14/0 = 0
14:15/0 = 0
15:15/0 = 0
15:14/0 = 0
12:20/0 = 0
12:14/0 = 0
12:15/0 = 0
13:15/0 = 0
13:14/0 = 0
10:20/0 = 0
10:21/0 = 0
11:21/0 = 0
11:20/0 = 0
[sub_resource type="TileSet" id="TileSet_xg4af"]
tile_size = Vector2i(8, 8)
sources/0 = SubResource("TileSetAtlasSource_2hcdu")
[sub_resource type="RectangleShape2D" id="RectangleShape2D_4yifo"]
size = Vector2(6, 20)
[node name="EndSmallCastle" type="Node2D"]
process_mode = 3
script = ExtResource("1_4yifo")
[node name="FlagJoint" type="Node2D" parent="."]
z_index = -5
position = Vector2(0, -56)
[node name="Flag" type="AnimatedSprite2D" parent="FlagJoint"]
show_behind_parent = true
position = Vector2(0, -8)
sprite_frames = SubResource("SpriteFrames_7xlhl")
autoplay = "default"
script = ExtResource("2_l3xjf")
metadata/_custom_type_script = "uid://caq1qiwmy0mox"
[node name="ResourceSetterNew" type="Node" parent="FlagJoint/Flag" node_paths=PackedStringArray("node_to_affect")]
script = ExtResource("3_7xlhl")
node_to_affect = NodePath("..")
property_name = "sprite_frames"
resource_json = ExtResource("4_7xlhl")
metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
[node name="AnimationPlayer" type="AnimationPlayer" parent="FlagJoint/Flag"]
libraries = {
&"": SubResource("AnimationLibrary_2hcdu")
}
[node name="CameraRightLimit" type="Node2D" parent="."]
position = Vector2(128, 0)
script = ExtResource("4_1x3lf")
metadata/_custom_type_script = "uid://bdq0373j5n5o0"
[node name="Framerule" type="Timer" parent="."]
process_callback = 0
wait_time = 0.351
autostart = true
[node name="SmallCastleVisual" parent="." instance=ExtResource("5_an8pi")]
position = Vector2(0, -40)
[node name="Overlay" type="TileMapLayer" parent="."]
visible = false
z_index = 10
position = Vector2(-8, -32)
tile_map_data = PackedByteArray("AAABAAAAAAANABQAAAACAAAAAAAOAA4AAAACAAEAAAAOAA8AAAADAAAAAAAPAA4AAAADAAEAAAAPAA8AAAACAAIAAAAOAA4AAAACAAMAAAAOAA8AAAADAAIAAAAPAA4AAAADAAMAAAAPAA8AAAAEAAAAAAAOAA4AAAAEAAEAAAAOAA8AAAAFAAAAAAAPAA4AAAAFAAEAAAAPAA8AAAAEAAIAAAAOAA4AAAAEAAMAAAAOAA8AAAAFAAIAAAAPAA4AAAAFAAMAAAAPAA8AAAAAAP7/AAAKABQAAAAAAP//AAAKABUAAAABAP7/AAALABQAAAABAP//AAALABUAAAACAP7/AAAKABQAAAACAP//AAAKABUAAAADAP7/AAALABQAAAADAP//AAALABUAAAAEAP7/AAAMAA4AAAAEAP//AAAMAA8AAAAFAP7/AAANAA4AAAAFAP//AAANAA8AAAA=")
tile_set = SubResource("TileSet_xg4af")
[node name="TilesetTextureSetter" type="Node" parent="Overlay" node_paths=PackedStringArray("tile_map")]
script = ExtResource("8_l3xjf")
tile_map = NodePath("..")
metadata/_custom_type_script = "uid://73oviwf6bbys"
[node name="ResourceSetter" type="Node" parent="Overlay/TilesetTextureSetter" node_paths=PackedStringArray("node_to_affect")]
script = ExtResource("3_7xlhl")
node_to_affect = NodePath("..")
property_name = "texture"
mode = 1
resource_json = ExtResource("9_oyrq2")
metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
[node name="PlayerDetection" type="StaticBody2D" parent="Overlay"]
position = Vector2(24, 32)
collision_layer = 0
collision_mask = 0
[node name="CollisionShape2D" type="CollisionShape2D" parent="Overlay/PlayerDetection"]
position = Vector2(21, -9)
shape = SubResource("RectangleShape2D_4yifo")
[node name="OverlaySprite" type="Sprite2D" parent="."]
visible = false
z_index = 10
position = Vector2(0, -40)
texture = ExtResource("11_2hcdu")
hframes = 2
frame = 1
region_rect = Rect2(0, 80, 80, 80)
[node name="ResourceSetterNew" type="Node" parent="OverlaySprite" node_paths=PackedStringArray("node_to_affect")]
script = ExtResource("3_7xlhl")
node_to_affect = NodePath("..")
property_name = "texture"
mode = 1
resource_json = ExtResource("12_xg4af")
metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
[node name="LevelEditorToggleDetection" type="Node" parent="."]
script = ExtResource("14_oyrq2")
metadata/_custom_type_script = "uid://b8vmbtoaaq5nc"
[connection signal="timeout" from="Framerule" to="." method="on_timeout"]

View File

@@ -0,0 +1,13 @@
[gd_scene load_steps=3 format=3 uid="uid://csngpd6px3dt4"]
[ext_resource type="PackedScene" uid="uid://bn1kect7h2dlp" path="res://Scenes/Prefabs/LevelObjects/BulletBillGenerator.tscn" id="1_p6gmx"]
[ext_resource type="Texture2D" uid="uid://cyohkov1cy2vb" path="res://Assets/Sprites/Editor/GeneratorStop.png" id="2_bd4qu"]
[node name="EntityGeneratorStopper" instance=ExtResource("1_p6gmx")]
threshold = 99999.0
entity_scene = null
[node name="Sprite" parent="LevelEditorVisibleNode" index="0"]
texture = ExtResource("2_bd4qu")
[connection signal="player_entered" from="PlayerDetection" to="." method="deactivate_all_generators" unbinds=1]

View File

@@ -0,0 +1,38 @@
[gd_scene load_steps=7 format=3 uid="uid://ce7bsqjar4lef"]
[ext_resource type="PackedScene" uid="uid://biq8pga47n6wj" path="res://Scenes/Prefabs/LevelObjects/SnowStormWind.tscn" id="1_06dxk"]
[sub_resource type="Curve" id="Curve_0tjo2"]
_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_68lil"]
curve = SubResource("Curve_0tjo2")
[sub_resource type="Gradient" id="Gradient_trgsh"]
offsets = PackedFloat32Array(0.016129, 1)
colors = PackedColorArray(0.968627, 0.223529, 0.0627451, 1, 1, 0.666667, 0.278431, 1)
[sub_resource type="GradientTexture1D" id="GradientTexture1D_xobr7"]
gradient = SubResource("Gradient_trgsh")
[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_qsyrt"]
particle_flag_disable_z = true
emission_shape_scale = Vector3(1, 15, 1)
emission_shape = 3
emission_box_extents = Vector3(1, 8, 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)
scale_max = 3.0
color_initial_ramp = SubResource("GradientTexture1D_xobr7")
alpha_curve = SubResource("CurveTexture_68lil")
anim_offset_max = 1.0
[node name="WindArea" instance=ExtResource("1_06dxk")]
[node name="GPUParticles2D" parent="CanvasLayer/Control" index="0"]
process_material = SubResource("ParticleProcessMaterial_qsyrt")

View File

@@ -0,0 +1,12 @@
[gd_scene load_steps=4 format=3 uid="uid://bbkh4k47ux3ve"]
[ext_resource type="PackedScene" uid="uid://bn1kect7h2dlp" path="res://Scenes/Prefabs/LevelObjects/BulletBillGenerator.tscn" id="1_6m0au"]
[ext_resource type="Script" uid="uid://dgqdo5cvl41l0" path="res://Scripts/Parts/GravityInverter.gd" id="2_yqpt8"]
[ext_resource type="Texture2D" uid="uid://4fafl7yuo5k0" path="res://Assets/Sprites/Editor/GravityInverter.png" id="3_yqpt8"]
[node name="GravityInverter" instance=ExtResource("1_6m0au")]
script = ExtResource("2_yqpt8")
entity_scene = null
[node name="Sprite" parent="LevelEditorVisibleNode" index="0"]
texture = ExtResource("3_yqpt8")

View File

@@ -0,0 +1,35 @@
[gd_scene load_steps=6 format=3 uid="uid://ds5iugeocqd6a"]
[ext_resource type="Script" uid="uid://bdq0373j5n5o0" path="res://Scripts/Parts/CameraRightLimit.gd" id="1_f6lpd"]
[ext_resource type="Script" uid="uid://cpwloakvp672a" path="res://Scripts/Parts/EditorVisibleNode.gd" id="2_gtkaw"]
[ext_resource type="Texture2D" uid="uid://c8ir37jmcm4f4" path="res://Assets/Sprites/Editor/CameraLock.png" id="3_qhm6g"]
[ext_resource type="Texture2D" uid="uid://dpdrrkqtcedgm" path="res://Assets/Sprites/Tilesets/DottedLine.png" id="4_qhm6g"]
[sub_resource type="WorldBoundaryShape2D" id="WorldBoundaryShape2D_bdd7a"]
normal = Vector2(-1, 0)
[node name="HardCameraRightLimit" type="Node2D"]
script = ExtResource("1_f6lpd")
metadata/_custom_type_script = "uid://bdq0373j5n5o0"
[node name="StaticBody2D" type="StaticBody2D" parent="."]
[node name="CollisionShape2D" type="CollisionShape2D" parent="StaticBody2D"]
shape = SubResource("WorldBoundaryShape2D_bdd7a")
[node name="LevelEditorVisibleNode" type="Node2D" parent="."]
script = ExtResource("2_gtkaw")
metadata/_custom_type_script = "uid://cpwloakvp672a"
[node name="Sprite2D" type="Sprite2D" parent="LevelEditorVisibleNode"]
position = Vector2(8, 0)
texture = ExtResource("3_qhm6g")
[node name="Line2D" type="Line2D" parent="LevelEditorVisibleNode"]
texture_repeat = 2
position = Vector2(1, 0)
points = PackedVector2Array(0, -512, 0, 512)
width = 1.0
default_color = Color(0, 0, 0, 1)
texture = ExtResource("4_qhm6g")
texture_mode = 1

View File

@@ -0,0 +1,34 @@
[gd_scene load_steps=4 format=3 uid="uid://dxyecochur0lo"]
[ext_resource type="PackedScene" uid="uid://dtpyjucfl16sw" path="res://Scenes/Prefabs/LevelObjects/CastleBridge.tscn" id="1_j8urw"]
[ext_resource type="Texture2D" uid="uid://boc6yagywb1lu" path="res://Assets/Sprites/Tilesets/Terrain/Castle.png" id="2_2iyqs"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_74xm1"]
size = Vector2(256, 16)
[node name="CastleBridge" instance=ExtResource("1_j8urw")]
[node name="Shape" parent="Collsion" index="0"]
position = Vector2(72, 0)
shape = SubResource("RectangleShape2D_74xm1")
[node name="Sprite2D16" type="Sprite2D" parent="Bridge" index="0"]
position = Vector2(-48, 0)
texture = ExtResource("2_2iyqs")
region_enabled = true
region_rect = Rect2(64, 48, 16, 16)
region_filter_clip_enabled = true
[node name="Sprite2D15" type="Sprite2D" parent="Bridge" index="1"]
position = Vector2(-32, 0)
texture = ExtResource("2_2iyqs")
region_enabled = true
region_rect = Rect2(64, 48, 16, 16)
region_filter_clip_enabled = true
[node name="Sprite2D14" type="Sprite2D" parent="Bridge" index="2"]
position = Vector2(-16, 0)
texture = ExtResource("2_2iyqs")
region_enabled = true
region_rect = Rect2(64, 48, 16, 16)
region_filter_clip_enabled = true

View File

@@ -0,0 +1,40 @@
[gd_scene load_steps=7 format=3 uid="uid://k1krjice0kia"]
[ext_resource type="Script" uid="uid://d23r1hm6jbgox" path="res://Scripts/Parts/LostLevelsEndingDoor.gd" id="1_nwrya"]
[ext_resource type="Texture2D" uid="uid://dhpa5y7jlbyia" path="res://Assets/Sprites/Items/LostLevelsDoor.png" id="2_jriqu"]
[ext_resource type="Script" uid="uid://bdq0373j5n5o0" path="res://Scripts/Parts/CameraRightLimit.gd" id="4_b0byr"]
[ext_resource type="Script" uid="uid://364rywt44hy6" path="res://Scripts/Classes/UI/PackSprite.gd" id="4_jriqu"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_an0bx"]
[sub_resource type="WorldBoundaryShape2D" id="WorldBoundaryShape2D_d5sl2"]
normal = Vector2(-1, 0)
[node name="LostLevelsEndingDoor" type="Node2D"]
script = ExtResource("1_nwrya")
scene = "uid://b0omfelsiothx"
[node name="StaticBody2D" type="StaticBody2D" parent="."]
[node name="CollisionShape2D" type="CollisionShape2D" parent="StaticBody2D"]
shape = SubResource("RectangleShape2D_an0bx")
[node name="StaticBody2D2" type="StaticBody2D" parent="."]
position = Vector2(40, 0)
[node name="CollisionShape2D" type="CollisionShape2D" parent="StaticBody2D2"]
shape = SubResource("RectangleShape2D_an0bx")
[node name="CameraRightLimit" type="Node2D" parent="."]
position = Vector2(128, -80)
script = ExtResource("4_b0byr")
metadata/_custom_type_script = "uid://bdq0373j5n5o0"
[node name="CollisionShape2D" type="CollisionShape2D" parent="CameraRightLimit"]
shape = SubResource("WorldBoundaryShape2D_d5sl2")
[node name="Sprite2D" type="Sprite2D" parent="."]
position = Vector2(24, -13)
texture = ExtResource("2_jriqu")
script = ExtResource("4_jriqu")
metadata/_custom_type_script = "uid://364rywt44hy6"

View File

@@ -0,0 +1,16 @@
[gd_scene load_steps=4 format=3 uid="uid://dy0tkfsy4wg8"]
[ext_resource type="Script" uid="uid://dhtqnyrj3ndnj" path="res://Scripts/Parts/MoonGravity.gd" id="1_ewtau"]
[ext_resource type="Script" uid="uid://cpwloakvp672a" path="res://Scripts/Parts/EditorVisibleNode.gd" id="1_xeodu"]
[ext_resource type="Texture2D" uid="uid://dfurem6jj7gso" path="res://Assets/Sprites/Editor/MoonGravity.png" id="3_7t04y"]
[node name="MoonGravityOBJ" type="Node2D"]
script = ExtResource("1_xeodu")
metadata/_custom_type_script = "uid://cpwloakvp672a"
[node name="MoonGravity" type="Node" parent="."]
script = ExtResource("1_ewtau")
metadata/_custom_type_script = "uid://dhtqnyrj3ndnj"
[node name="Sprite2D" type="Sprite2D" parent="."]
texture = ExtResource("3_7t04y")

View File

@@ -0,0 +1,18 @@
[gd_scene load_steps=4 format=3 uid="uid://cmcpug8hc74jf"]
[ext_resource type="Script" uid="uid://djg0ved0eqede" path="res://Scripts/Parts/PickAPathPoint.gd" id="1_ix7da"]
[ext_resource type="Script" uid="uid://cnheej0sxmoxg" path="res://Scripts/Parts/PlayerDetection.gd" id="2_eadvl"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_usqbd"]
size = Vector2(16, 48)
[node name="PickAPathPoint" type="Node2D"]
script = ExtResource("1_ix7da")
[node name="Hitbox" type="Area2D" parent="."]
script = ExtResource("2_eadvl")
[node name="CollisionShape2D" type="CollisionShape2D" parent="Hitbox"]
shape = SubResource("RectangleShape2D_usqbd")
[connection signal="player_entered" from="Hitbox" to="." method="on_player_entered"]

View File

@@ -0,0 +1,18 @@
[gd_scene load_steps=4 format=3 uid="uid://b5fyj3qbppnyg"]
[ext_resource type="Script" uid="uid://cnheej0sxmoxg" path="res://Scripts/Parts/PlayerDetection.gd" id="1_bn35g"]
[ext_resource type="Script" uid="uid://0vl2fopusjtd" path="res://Scripts/Parts/PickAPathTeleport.gd" id="1_uweq8"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_usqbd"]
size = Vector2(16, 48)
[node name="PickAPathTeleport" type="Node2D"]
script = ExtResource("1_uweq8")
[node name="Hitbox" type="Area2D" parent="."]
script = ExtResource("1_bn35g")
[node name="CollisionShape2D" type="CollisionShape2D" parent="Hitbox"]
shape = SubResource("RectangleShape2D_usqbd")
[connection signal="player_entered" from="Hitbox" to="." method="on_player_entered"]

View File

@@ -0,0 +1,135 @@
[gd_scene load_steps=12 format=3 uid="uid://da31n0jwfyjo0"]
[ext_resource type="Script" uid="uid://cpwloakvp672a" path="res://Scripts/Parts/EditorVisibleNode.gd" id="1_4di0c"]
[ext_resource type="Script" uid="uid://omwcucf0uvvj" path="res://Scripts/Parts/PipeGenerator.gd" id="1_amwyv"]
[ext_resource type="Texture2D" uid="uid://dtx6lbaom4qld" path="res://Assets/Sprites/Editor/PipeGenerator.png" id="2_amwyv"]
[ext_resource type="Script" uid="uid://ctfbuoxtnnl0q" path="res://Scripts/Classes/Components/EditorPropertyExposer.gd" id="4_f1jdk"]
[ext_resource type="Texture2D" uid="uid://dlldh5aks0wff" path="res://Assets/Sprites/Editor/GhostTile.png" id="4_xu70c"]
[sub_resource type="Animation" id="Animation_xu70c"]
resource_name = "Down"
length = 0.5
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Joint:position")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.5),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Vector2(0, 16), Vector2(0, 0)]
}
[sub_resource type="Animation" id="Animation_a0wqs"]
resource_name = "Left"
length = 0.5
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Joint:position")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.5),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Vector2(-16, 0), Vector2(0, 0)]
}
[sub_resource type="Animation" id="Animation_f1jdk"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Joint: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="Animation" id="Animation_6pkd4"]
resource_name = "Right"
length = 0.5
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Joint:position")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.5),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Vector2(16, 0), Vector2(0, 0)]
}
[sub_resource type="Animation" id="Animation_amwyv"]
resource_name = "Up"
length = 0.5
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Joint:position")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.5),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Vector2(0, -16), Vector2(0, 0)]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_6pkd4"]
_data = {
&"Down": SubResource("Animation_xu70c"),
&"Left": SubResource("Animation_a0wqs"),
&"RESET": SubResource("Animation_f1jdk"),
&"Right": SubResource("Animation_6pkd4"),
&"Up": SubResource("Animation_amwyv")
}
[node name="PipeGenerator" type="Node2D"]
script = ExtResource("1_amwyv")
[node name="Icon" type="Node2D" parent="."]
z_index = 50
z_as_relative = false
script = ExtResource("1_4di0c")
[node name="Sprite2D" type="Sprite2D" parent="Icon"]
texture = ExtResource("2_amwyv")
[node name="ColorRect" type="TextureRect" parent="Icon"]
offset_left = -16.0
offset_bottom = 16.0
texture = ExtResource("4_xu70c")
[node name="Joint" type="RemoteTransform2D" parent="."]
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
libraries = {
&"": SubResource("AnimationLibrary_6pkd4")
}
[node name="Timer" type="Timer" parent="."]
wait_time = 3.0
[node name="EditorPropertyExposer" type="Node" parent="."]
script = ExtResource("4_f1jdk")
properties = Array[String](["item", "direction"])
filters = Dictionary[String, String]({
"item": "can_be_stored"
})
[node name="Check" type="RayCast2D" parent="."]
target_position = Vector2(0, 16)
collision_mask = 6
hit_from_inside = true
[connection signal="timeout" from="Timer" to="." method="on_timeout"]

View File

@@ -0,0 +1,37 @@
[gd_scene load_steps=7 format=3 uid="uid://bsbw8ygiek677"]
[ext_resource type="PackedScene" uid="uid://biq8pga47n6wj" path="res://Scenes/Prefabs/LevelObjects/SnowStormWind.tscn" id="1_j6qfh"]
[sub_resource type="Curve" id="Curve_0tjo2"]
_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_68lil"]
curve = SubResource("Curve_0tjo2")
[sub_resource type="Gradient" id="Gradient_rm4lv"]
colors = PackedColorArray(0.729412, 0.380392, 0.0666667, 1, 1, 0.85098, 0.698039, 1)
[sub_resource type="GradientTexture1D" id="GradientTexture1D_mfqx0"]
gradient = SubResource("Gradient_rm4lv")
[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_xcyfj"]
particle_flag_disable_z = true
emission_shape_scale = Vector3(1, 15, 1)
emission_shape = 3
emission_box_extents = Vector3(1, 8, 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)
scale_max = 3.0
color_initial_ramp = SubResource("GradientTexture1D_mfqx0")
alpha_curve = SubResource("CurveTexture_68lil")
anim_offset_max = 1.0
[node name="SandStormArea" instance=ExtResource("1_j6qfh")]
[node name="GPUParticles2D" parent="CanvasLayer/Control" index="0"]
process_material = SubResource("ParticleProcessMaterial_xcyfj")

View File

@@ -0,0 +1,40 @@
[gd_scene load_steps=7 format=3 uid="uid://biq8pga47n6wj"]
[ext_resource type="PackedScene" uid="uid://ccxhom4wrgfv4" path="res://Scenes/Prefabs/LevelObjects/WindArea.tscn" id="1_trgsh"]
[sub_resource type="Curve" id="Curve_0tjo2"]
_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_68lil"]
curve = SubResource("Curve_0tjo2")
[sub_resource type="Gradient" id="Gradient_trgsh"]
colors = PackedColorArray(0.298039, 0.298039, 0.470588, 1, 1, 1, 1, 1)
[sub_resource type="GradientTexture1D" id="GradientTexture1D_xobr7"]
gradient = SubResource("Gradient_trgsh")
[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_ulo86"]
particle_flag_disable_z = true
emission_shape_scale = Vector3(1, 15, 1)
emission_shape = 3
emission_box_extents = Vector3(1, 8, 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)
scale_max = 3.0
color_initial_ramp = SubResource("GradientTexture1D_xobr7")
alpha_curve = SubResource("CurveTexture_68lil")
anim_offset_max = 1.0
[node name="WindArea" instance=ExtResource("1_trgsh")]
[node name="GPUParticles2D" parent="CanvasLayer/Control" index="0"]
material = null
amount = 128
texture = null
process_material = SubResource("ParticleProcessMaterial_ulo86")

View File

@@ -0,0 +1,22 @@
[gd_scene load_steps=4 format=3 uid="uid://ccwil8rmgvund"]
[ext_resource type="Script" uid="uid://co6tjg3w6qpd8" path="res://Scripts/Parts/LabelFontChanger.gd" id="1_jxnhn"]
[ext_resource type="Resource" uid="uid://8dcuxbc3h2u2" path="res://Resources/ThemedResources/Font.tres" id="2_fxuqy"]
[ext_resource type="Script" uid="uid://dt2p68xl462v2" path="res://Scripts/Parts/TextShadowColourChanger.gd" id="3_8hggr"]
[node name="TextLabel" type="Label"]
visibility_layer = 2
offset_right = 40.0
offset_bottom = 16.0
uppercase = true
[node name="LabelFontChanger" type="Node" parent="." node_paths=PackedStringArray("labels")]
script = ExtResource("1_jxnhn")
labels = [NodePath("..")]
resource = ExtResource("2_fxuqy")
metadata/_custom_type_script = "uid://co6tjg3w6qpd8"
[node name="TextShadowColourChanger" type="Node" parent="." node_paths=PackedStringArray("labels")]
script = ExtResource("3_8hggr")
labels = [NodePath("..")]
metadata/_custom_type_script = "uid://dt2p68xl462v2"

View File

@@ -0,0 +1,40 @@
[gd_scene load_steps=6 format=3 uid="uid://bri8d364obssw"]
[ext_resource type="PackedScene" uid="uid://ccwil8rmgvund" path="res://Scenes/Prefabs/LevelObjects/TextLabel.tscn" id="1_lckm4"]
[ext_resource type="Script" uid="uid://ctfbuoxtnnl0q" path="res://Scripts/Classes/Components/EditorPropertyExposer.gd" id="2_xh6kd"]
[ext_resource type="Script" uid="uid://cpwloakvp672a" path="res://Scripts/Parts/EditorVisibleNode.gd" id="3_4ffmy"]
[ext_resource type="Texture2D" uid="uid://dlldh5aks0wff" path="res://Assets/Sprites/Editor/GhostTile.png" id="4_evdjo"]
[sub_resource type="GDScript" id="GDScript_lckm4"]
script/source = "extends Node2D
@export var text := \"\"
func _process(_delta: float) -> void:
$TextLabel.text = text
"
[node name="TextLabelOBJ" type="Node2D"]
process_mode = 3
script = SubResource("GDScript_lckm4")
[node name="TextLabel" parent="." instance=ExtResource("1_lckm4")]
offset_left = -8.0
offset_top = -8.0
offset_right = 32.0
offset_bottom = 8.0
[node name="EditorPropertyExposer" type="Node" parent="."]
script = ExtResource("2_xh6kd")
properties = Array[String](["text"])
metadata/_custom_type_script = "uid://ctfbuoxtnnl0q"
[node name="LevelEditorVisibleNode" type="Node2D" parent="."]
visibility_layer = 2
position = Vector2(-8, -8)
script = ExtResource("3_4ffmy")
metadata/_custom_type_script = "uid://cpwloakvp672a"
[node name="Sprite2D" type="Sprite2D" parent="LevelEditorVisibleNode"]
position = Vector2(8, 8)
texture = ExtResource("4_evdjo")

View File

@@ -0,0 +1,6 @@
[gd_scene load_steps=2 format=3 uid="uid://dryg466fybrd3"]
[ext_resource type="Script" uid="uid://h7ook78uoctx" path="res://Scripts/Parts/UpsideDownGravityArea.gd" id="1_005jx"]
[node name="UpsideDownGravityArea" type="Area2D"]
script = ExtResource("1_005jx")

View File

@@ -0,0 +1,90 @@
[gd_scene load_steps=8 format=3 uid="uid://cs8iql18nkljw"]
[ext_resource type="PackedScene" uid="uid://bhmlkk0b6od2o" path="res://Scenes/Parts/WarpPipeArea.tscn" id="1_cqjry"]
[ext_resource type="Script" uid="uid://b0scyyxg64wbp" path="res://Scripts/Parts/WarpZone.gd" id="1_ngmjk"]
[ext_resource type="PackedScene" uid="uid://ccwil8rmgvund" path="res://Scenes/Prefabs/LevelObjects/TextLabel.tscn" id="3_xejae"]
[ext_resource type="PackedScene" uid="uid://1rxw4k4wq3ni" path="res://Scenes/Prefabs/Entities/Enemies/PiranhaPlant.tscn" id="4_usbud"]
[ext_resource type="Script" uid="uid://cnheej0sxmoxg" path="res://Scripts/Parts/PlayerDetection.gd" id="5_3hug5"]
[ext_resource type="PackedScene" uid="uid://ds5iugeocqd6a" path="res://Scenes/Prefabs/LevelObjects/HardCameraRightLimit.tscn" id="8_0wmt6"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_xejae"]
size = Vector2(18, 1000)
[node name="WarpZone" type="Node2D" groups=["Labels"]]
script = ExtResource("1_ngmjk")
[node name="Pipes" type="Node2D" parent="."]
[node name="Left" type="Node2D" parent="Pipes"]
position = Vector2(-64, -48)
[node name="Pipe" parent="Pipes/Left" instance=ExtResource("1_cqjry")]
world_num = -1
[node name="TextLabel" parent="Pipes/Left" groups=["Labels"] instance=ExtResource("3_xejae")]
visible = false
offset_left = -8.0
offset_top = -24.0
offset_right = 8.0
offset_bottom = -8.0
text = "1"
[node name="PirannhaPlant" parent="Pipes/Left" groups=["Plants"] instance=ExtResource("4_usbud")]
[node name="Middle" type="Node2D" parent="Pipes"]
position = Vector2(0, -48)
[node name="Pipe" parent="Pipes/Middle" instance=ExtResource("1_cqjry")]
world_num = -1
[node name="TextLabel" parent="Pipes/Middle" groups=["Labels"] instance=ExtResource("3_xejae")]
visible = false
offset_left = -8.0
offset_top = -24.0
offset_right = 8.0
offset_bottom = -8.0
text = "1"
[node name="PirannhaPlant" parent="Pipes/Middle" groups=["Plants"] instance=ExtResource("4_usbud")]
[node name="Right" type="Node2D" parent="Pipes"]
position = Vector2(64, -48)
[node name="Pipe" parent="Pipes/Right" instance=ExtResource("1_cqjry")]
world_num = -1
[node name="TextLabel" parent="Pipes/Right" groups=["Labels"] instance=ExtResource("3_xejae")]
visible = false
offset_left = -8.0
offset_top = -24.0
offset_right = 8.0
offset_bottom = -8.0
text = "1"
[node name="PirannhaPlant" parent="Pipes/Right" groups=["Plants"] instance=ExtResource("4_usbud")]
[node name="TextLabel" parent="." groups=["Labels"] instance=ExtResource("3_xejae")]
visible = false
offset_left = -104.0
offset_top = -120.0
offset_right = 104.0
offset_bottom = -76.0
text = "LEVEL_WARPZONE"
horizontal_alignment = 1
autowrap_mode = 3
[node name="PlayerDetection" type="Area2D" parent="."]
position = Vector2(8, -136)
script = ExtResource("5_3hug5")
metadata/_custom_type_script = "uid://cnheej0sxmoxg"
[node name="CollisionShape2D" type="CollisionShape2D" parent="PlayerDetection"]
position = Vector2(1, -124)
shape = SubResource("RectangleShape2D_xejae")
[node name="HardCameraRightLimit" parent="." instance=ExtResource("8_0wmt6")]
position = Vector2(144, -176)
reset_on_delete = false
lock_camera = true
[connection signal="player_entered" from="PlayerDetection" to="." method="activate" unbinds=1]

View File

@@ -0,0 +1,35 @@
[gd_scene load_steps=5 format=3 uid="uid://b7560x2o4qeuo"]
[ext_resource type="Script" uid="uid://bw7ada2n2vmww" path="res://Scripts/Parts/WaterCurrentArea.gd" id="1_5b2n0"]
[ext_resource type="Texture2D" uid="uid://b7h6b0yqyi2kh" path="res://Assets/Sprites/Particles/Bubble.png" id="1_sh54q"]
[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_ssveo"]
particle_flag_disable_z = true
emission_shape = 3
emission_box_extents = Vector3(32, 8, 1)
direction = Vector3(0, 1, 0)
spread = 0.0
initial_velocity_min = 50.0
initial_velocity_max = 50.0
gravity = Vector3(0, 98, 0)
[sub_resource type="RectangleShape2D" id="RectangleShape2D_5den3"]
size = Vector2(80, 306)
[node name="WaterCurrentArea" type="Node2D"]
script = ExtResource("1_5b2n0")
[node name="Particles" type="GPUParticles2D" parent="."]
visibility_layer = 2
amount = 32
texture = ExtResource("1_sh54q")
lifetime = 5.0
preprocess = 5.0
randomness = 1.0
process_material = SubResource("ParticleProcessMaterial_ssveo")
[node name="Hitbox" type="Area2D" parent="."]
[node name="Shape" type="CollisionShape2D" parent="Hitbox"]
position = Vector2(0, 143)
shape = SubResource("RectangleShape2D_5den3")

View File

@@ -0,0 +1,91 @@
[gd_scene load_steps=14 format=3 uid="uid://ccxhom4wrgfv4"]
[ext_resource type="Texture2D" uid="uid://dy3p03djelkb3" path="res://Assets/Sprites/Particles/Leaves.png" id="1_0tjo2"]
[ext_resource type="Script" uid="uid://d3kftxro4bfnv" path="res://Scripts/Classes/Entities/Objects/WindArea.gd" id="1_68lil"]
[ext_resource type="AudioStream" uid="uid://g5cjhcnpp1fp" path="res://Assets/Audio/SFX/Wind.wav" id="3_qar1j"]
[ext_resource type="Script" uid="uid://cbal8ms2oe1ik" path="res://Scripts/Classes/Components/ResourceSetterNew.gd" id="3_sbjyn"]
[ext_resource type="Script" uid="uid://cq6f682453q6o" path="res://Scripts/Classes/Components/ResourceSetter.gd" id="4_8c2la"]
[ext_resource type="JSON" path="res://Assets/Sprites/Particles/WindParticles.json" id="4_qvx5e"]
[ext_resource type="Script" uid="uid://cmvlgsjmsk0v5" path="res://Scripts/Classes/Resources/ThemedResource.gd" id="5_3arhp"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_68lil"]
size = Vector2(16, 16)
[sub_resource type="CanvasItemMaterial" id="CanvasItemMaterial_qar1j"]
particles_animation = true
particles_anim_h_frames = 2
particles_anim_v_frames = 1
particles_anim_loop = false
[sub_resource type="Curve" id="Curve_0tjo2"]
_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_0tjo2")
[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_wu018"]
particle_flag_disable_z = true
emission_shape_scale = Vector3(1, 15, 1)
emission_shape = 3
emission_box_extents = Vector3(1, 8, 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="Resource" id="Resource_sbjyn"]
script = ExtResource("5_3arhp")
Overworld = ExtResource("3_qar1j")
metadata/_custom_type_script = "uid://cmvlgsjmsk0v5"
[node name="WindArea" type="Area2D"]
script = ExtResource("1_68lil")
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
shape = SubResource("RectangleShape2D_68lil")
debug_color = Color(0, 0.6, 0, 0.419608)
[node name="CanvasLayer" type="CanvasLayer" parent="."]
layer = 0
[node name="Control" type="Control" parent="CanvasLayer"]
layout_mode = 3
anchors_preset = 4
anchor_top = 0.5
anchor_bottom = 0.5
grow_vertical = 2
metadata/_edit_use_anchors_ = true
[node name="Particles" type="GPUParticles2D" parent="CanvasLayer/Control"]
unique_name_in_owner = true
material = SubResource("CanvasItemMaterial_qar1j")
position = Vector2(-64, 0)
emitting = false
amount = 64
texture = ExtResource("1_0tjo2")
lifetime = 2.0
process_material = SubResource("ParticleProcessMaterial_wu018")
[node name="ResourceSetterNew" type="Node" parent="CanvasLayer/Control/Particles" node_paths=PackedStringArray("node_to_affect")]
script = ExtResource("3_sbjyn")
node_to_affect = NodePath("..")
property_name = "texture"
mode = 1
resource_json = ExtResource("4_qvx5e")
metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
[node name="SFX" type="AudioStreamPlayer" parent="."]
stream = ExtResource("3_qar1j")
bus = &"SFX"
[node name="ResourceSetter" type="Node" parent="SFX" node_paths=PackedStringArray("node_to_affect")]
script = ExtResource("4_8c2la")
node_to_affect = NodePath("..")
property_name = "stream"
themed_resource = SubResource("Resource_sbjyn")
metadata/_custom_type_script = "uid://cq6f682453q6o"

View File

@@ -0,0 +1,127 @@
[gd_scene load_steps=16 format=3 uid="uid://c108uri4ql2wh"]
[ext_resource type="PackedScene" uid="uid://bn1kect7h2dlp" path="res://Scenes/Prefabs/LevelObjects/BulletBillGenerator.tscn" id="1_mpgoo"]
[ext_resource type="Script" uid="uid://cxkh8cic78uog" path="res://Scripts/Parts/WindGenerator.gd" id="2_06nk3"]
[ext_resource type="Texture2D" uid="uid://dimtvmmic8y1u" path="res://Assets/Sprites/Editor/WindGenerator.png" id="3_mtw7j"]
[ext_resource type="Texture2D" uid="uid://dy3p03djelkb3" path="res://Assets/Sprites/Particles/Leaves.png" id="4_3cn4y"]
[ext_resource type="Script" uid="uid://cbal8ms2oe1ik" path="res://Scripts/Classes/Components/ResourceSetterNew.gd" id="5_3cn4y"]
[ext_resource type="AudioStream" uid="uid://g5cjhcnpp1fp" path="res://Assets/Audio/SFX/Wind.wav" id="5_u3e45"]
[ext_resource type="JSON" path="res://Assets/Sprites/Particles/WindParticles.json" id="6_u3e45"]
[ext_resource type="Script" uid="uid://cq6f682453q6o" path="res://Scripts/Classes/Components/ResourceSetter.gd" id="6_wacow"]
[ext_resource type="Script" uid="uid://cmvlgsjmsk0v5" path="res://Scripts/Classes/Resources/ThemedResource.gd" id="7_swgot"]
[ext_resource type="Script" uid="uid://ctfbuoxtnnl0q" path="res://Scripts/Classes/Components/EditorPropertyExposer.gd" id="8_mtw7j"]
[sub_resource type="CanvasItemMaterial" id="CanvasItemMaterial_i3xr0"]
particles_animation = true
particles_anim_h_frames = 2
particles_anim_v_frames = 1
particles_anim_loop = false
[sub_resource type="Curve" id="Curve_xqrrq"]
_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_68lil"]
curve = SubResource("Curve_xqrrq")
[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_am6ww"]
particle_flag_disable_z = true
emission_shape_scale = Vector3(1, 15, 1)
emission_shape = 3
emission_box_extents = Vector3(1, 8, 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_68lil")
anim_offset_max = 1.0
[sub_resource type="Resource" id="Resource_tvrnh"]
script = ExtResource("7_swgot")
Overworld = ExtResource("5_u3e45")
metadata/_custom_type_script = "uid://cmvlgsjmsk0v5"
[node name="EntityGenerator" instance=ExtResource("1_mpgoo")]
script = ExtResource("2_06nk3")
wind_force = 4
wind_direction = 0
entity_scene = null
[node name="Sprite" parent="LevelEditorVisibleNode" index="0"]
texture = ExtResource("3_mtw7j")
[node name="CanvasLayer" type="CanvasLayer" parent="." index="2"]
layer = 0
[node name="Left" type="Control" parent="CanvasLayer" index="0"]
visible = false
layout_mode = 3
anchors_preset = 4
anchor_top = 0.5
anchor_bottom = 0.5
grow_vertical = 2
metadata/_edit_use_anchors_ = true
[node name="Particles" type="GPUParticles2D" parent="CanvasLayer/Left" index="0"]
unique_name_in_owner = true
material = SubResource("CanvasItemMaterial_i3xr0")
position = Vector2(-64, 0)
amount = 64
texture = ExtResource("4_3cn4y")
lifetime = 2.0
process_material = SubResource("ParticleProcessMaterial_am6ww")
[node name="ResourceSetterNew" type="Node" parent="CanvasLayer/Left/Particles" index="0" node_paths=PackedStringArray("node_to_affect")]
script = ExtResource("5_3cn4y")
node_to_affect = NodePath("..")
property_name = "texture"
mode = 1
resource_json = ExtResource("6_u3e45")
metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
[node name="Right" type="Control" parent="CanvasLayer" index="1"]
visible = false
layout_mode = 3
anchors_preset = 6
anchor_left = 1.0
anchor_top = 0.5
anchor_right = 1.0
anchor_bottom = 0.5
grow_horizontal = 0
grow_vertical = 2
metadata/_edit_use_anchors_ = true
[node name="Particles" type="GPUParticles2D" parent="CanvasLayer/Right" index="0"]
material = SubResource("CanvasItemMaterial_i3xr0")
position = Vector2(64, 0)
scale = Vector2(-1, 1)
amount = 64
texture = ExtResource("4_3cn4y")
lifetime = 2.0
process_material = SubResource("ParticleProcessMaterial_am6ww")
[node name="ResourceSetterNew" type="Node" parent="CanvasLayer/Right/Particles" index="0" node_paths=PackedStringArray("node_to_affect")]
script = ExtResource("5_3cn4y")
node_to_affect = NodePath("..")
property_name = "texture"
mode = 1
resource_json = ExtResource("6_u3e45")
metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
[node name="SFX" type="AudioStreamPlayer" parent="." index="3"]
stream = ExtResource("5_u3e45")
bus = &"SFX"
[node name="ResourceSetter" type="Node" parent="SFX" index="0" node_paths=PackedStringArray("node_to_affect")]
script = ExtResource("6_wacow")
node_to_affect = NodePath("..")
property_name = "stream"
themed_resource = SubResource("Resource_tvrnh")
metadata/_custom_type_script = "uid://cq6f682453q6o"
[node name="EditorPropertyExposer" type="Node" parent="." index="4"]
script = ExtResource("8_mtw7j")
properties = Array[String](["wind_force", "wind_direction"])
metadata/_custom_type_script = "uid://ctfbuoxtnnl0q"