From 7477e701d36eb7103c356a778a0777db4c1da87e Mon Sep 17 00:00:00 2001 From: Francisco Ortega Date: Tue, 11 Aug 2026 12:58:26 -0700 Subject: [PATCH 1/4] dd Beach parrot and pirate hat quest Added the parrot and pirate hat interaction. The player can grapple the parrot to drop the hat, pick it up through dialogue, and return it to the skeleton pirate. --- .../2_beach/Beach Art/parrotIdleNoHat.png | 3 + .../Beach Art/parrotIdleNoHat.png.import | 40 ++++++++++ .../Beach Art/parrotNoHatWithShadow.png | 3 + .../parrotNoHatWithShadow.png.import | 40 ++++++++++ .../Beach Art/parrotWithHatWithShadow.png | 3 + .../parrotWithHatWithShadow.png.import | 40 ++++++++++ .../2_beach/Beach Art/pirateHat.png | 3 + .../2_beach/Beach Art/pirateHat.png.import | 40 ++++++++++ .../2_beach/Beach Art/shipwreck.png | 3 + .../2_beach/Beach Art/shipwreck.png.import | 40 ++++++++++ .../skeletonTestSpriteNoShadow01.png | 3 + .../skeletonTestSpriteNoShadow01.png.import | 40 ++++++++++ .../side_quest_001/2_beach/HatPickup.dialogue | 15 ++++ .../2_beach/HatPickup.dialogue.import | 16 ++++ .../2_beach/ShipWrecksdio.dialogue | 6 ++ .../2_beach/ShipWrecksdio.dialogue.import | 16 ++++ .../2_beach/SkeletonPirate.dialogue | 11 +++ .../2_beach/SkeletonPirate.dialogue.import | 16 ++++ .../side_quest_001/2_beach/beach.gd | 3 + .../side_quest_001/2_beach/beach.gd.uid | 1 + .../side_quest_001/2_beach/beach.tscn | 63 +++++++++------ .../side_quest_001/2_beach/parrot.gd | 78 +++++++++++++++++++ .../side_quest_001/2_beach/parrot.gd.uid | 1 + .../side_quest_001/2_beach/parrot.tscn | 63 +++++++++++++++ .../side_quest_001/2_beach/pirate_hat.gd | 9 +++ .../side_quest_001/2_beach/pirate_hat.gd.uid | 1 + .../side_quest_001/2_beach/pirate_hat.tscn | 38 +++++++++ .../side_quest_001/2_beach/ship_wreck.tscn | 44 +++++++++++ .../side_quest_001/2_beach/skeleton_pirate.gd | 3 + .../2_beach/skeleton_pirate.gd.uid | 1 + .../2_beach/skeleton_pirate.tscn | 50 ++++++++++++ 31 files changed, 670 insertions(+), 23 deletions(-) create mode 100644 scenes/quests/lore_quests/side_quest_001/2_beach/Beach Art/parrotIdleNoHat.png create mode 100644 scenes/quests/lore_quests/side_quest_001/2_beach/Beach Art/parrotIdleNoHat.png.import create mode 100644 scenes/quests/lore_quests/side_quest_001/2_beach/Beach Art/parrotNoHatWithShadow.png create mode 100644 scenes/quests/lore_quests/side_quest_001/2_beach/Beach Art/parrotNoHatWithShadow.png.import create mode 100644 scenes/quests/lore_quests/side_quest_001/2_beach/Beach Art/parrotWithHatWithShadow.png create mode 100644 scenes/quests/lore_quests/side_quest_001/2_beach/Beach Art/parrotWithHatWithShadow.png.import create mode 100644 scenes/quests/lore_quests/side_quest_001/2_beach/Beach Art/pirateHat.png create mode 100644 scenes/quests/lore_quests/side_quest_001/2_beach/Beach Art/pirateHat.png.import create mode 100644 scenes/quests/lore_quests/side_quest_001/2_beach/Beach Art/shipwreck.png create mode 100644 scenes/quests/lore_quests/side_quest_001/2_beach/Beach Art/shipwreck.png.import create mode 100644 scenes/quests/lore_quests/side_quest_001/2_beach/Beach Art/skeletonTestSpriteNoShadow01.png create mode 100644 scenes/quests/lore_quests/side_quest_001/2_beach/Beach Art/skeletonTestSpriteNoShadow01.png.import create mode 100644 scenes/quests/lore_quests/side_quest_001/2_beach/HatPickup.dialogue create mode 100644 scenes/quests/lore_quests/side_quest_001/2_beach/HatPickup.dialogue.import create mode 100644 scenes/quests/lore_quests/side_quest_001/2_beach/ShipWrecksdio.dialogue create mode 100644 scenes/quests/lore_quests/side_quest_001/2_beach/ShipWrecksdio.dialogue.import create mode 100644 scenes/quests/lore_quests/side_quest_001/2_beach/SkeletonPirate.dialogue create mode 100644 scenes/quests/lore_quests/side_quest_001/2_beach/SkeletonPirate.dialogue.import create mode 100644 scenes/quests/lore_quests/side_quest_001/2_beach/beach.gd create mode 100644 scenes/quests/lore_quests/side_quest_001/2_beach/beach.gd.uid create mode 100644 scenes/quests/lore_quests/side_quest_001/2_beach/parrot.gd create mode 100644 scenes/quests/lore_quests/side_quest_001/2_beach/parrot.gd.uid create mode 100644 scenes/quests/lore_quests/side_quest_001/2_beach/parrot.tscn create mode 100644 scenes/quests/lore_quests/side_quest_001/2_beach/pirate_hat.gd create mode 100644 scenes/quests/lore_quests/side_quest_001/2_beach/pirate_hat.gd.uid create mode 100644 scenes/quests/lore_quests/side_quest_001/2_beach/pirate_hat.tscn create mode 100644 scenes/quests/lore_quests/side_quest_001/2_beach/ship_wreck.tscn create mode 100644 scenes/quests/lore_quests/side_quest_001/2_beach/skeleton_pirate.gd create mode 100644 scenes/quests/lore_quests/side_quest_001/2_beach/skeleton_pirate.gd.uid create mode 100644 scenes/quests/lore_quests/side_quest_001/2_beach/skeleton_pirate.tscn diff --git a/scenes/quests/lore_quests/side_quest_001/2_beach/Beach Art/parrotIdleNoHat.png b/scenes/quests/lore_quests/side_quest_001/2_beach/Beach Art/parrotIdleNoHat.png new file mode 100644 index 000000000..7cefb0f3e --- /dev/null +++ b/scenes/quests/lore_quests/side_quest_001/2_beach/Beach Art/parrotIdleNoHat.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b9261869da5dd3d155b249fda919668e376a58aeafe379c27a76a546d7e73edd +size 3889 diff --git a/scenes/quests/lore_quests/side_quest_001/2_beach/Beach Art/parrotIdleNoHat.png.import b/scenes/quests/lore_quests/side_quest_001/2_beach/Beach Art/parrotIdleNoHat.png.import new file mode 100644 index 000000000..a44055ab4 --- /dev/null +++ b/scenes/quests/lore_quests/side_quest_001/2_beach/Beach Art/parrotIdleNoHat.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bfpjc20trnauv" +path="res://.godot/imported/parrotIdleNoHat.png-b8aa6a94a3df9eba06891e84e8e96a65.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://scenes/quests/lore_quests/side_quest_001/2_beach/Beach Art/parrotIdleNoHat.png" +dest_files=["res://.godot/imported/parrotIdleNoHat.png-b8aa6a94a3df9eba06891e84e8e96a65.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/scenes/quests/lore_quests/side_quest_001/2_beach/Beach Art/parrotNoHatWithShadow.png b/scenes/quests/lore_quests/side_quest_001/2_beach/Beach Art/parrotNoHatWithShadow.png new file mode 100644 index 000000000..4c79bb1b6 --- /dev/null +++ b/scenes/quests/lore_quests/side_quest_001/2_beach/Beach Art/parrotNoHatWithShadow.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:327a973f05acb6dcf51dc067a572466c099239f5f6936075b89efaca401b4081 +size 3831 diff --git a/scenes/quests/lore_quests/side_quest_001/2_beach/Beach Art/parrotNoHatWithShadow.png.import b/scenes/quests/lore_quests/side_quest_001/2_beach/Beach Art/parrotNoHatWithShadow.png.import new file mode 100644 index 000000000..216a83c29 --- /dev/null +++ b/scenes/quests/lore_quests/side_quest_001/2_beach/Beach Art/parrotNoHatWithShadow.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c110qvp6mmkyq" +path="res://.godot/imported/parrotNoHatWithShadow.png-f308cd6d7bf0cbecf429a92ca8f55bb0.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://scenes/quests/lore_quests/side_quest_001/2_beach/Beach Art/parrotNoHatWithShadow.png" +dest_files=["res://.godot/imported/parrotNoHatWithShadow.png-f308cd6d7bf0cbecf429a92ca8f55bb0.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/scenes/quests/lore_quests/side_quest_001/2_beach/Beach Art/parrotWithHatWithShadow.png b/scenes/quests/lore_quests/side_quest_001/2_beach/Beach Art/parrotWithHatWithShadow.png new file mode 100644 index 000000000..e74f28736 --- /dev/null +++ b/scenes/quests/lore_quests/side_quest_001/2_beach/Beach Art/parrotWithHatWithShadow.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9ce192bc5cc14f6f8539f5e3d9c0b248001c95c083c6a7301d1bbc964bb40efc +size 4365 diff --git a/scenes/quests/lore_quests/side_quest_001/2_beach/Beach Art/parrotWithHatWithShadow.png.import b/scenes/quests/lore_quests/side_quest_001/2_beach/Beach Art/parrotWithHatWithShadow.png.import new file mode 100644 index 000000000..436808efa --- /dev/null +++ b/scenes/quests/lore_quests/side_quest_001/2_beach/Beach Art/parrotWithHatWithShadow.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cxebgfxx0xd10" +path="res://.godot/imported/parrotWithHatWithShadow.png-89f341836dc36e2cd913738175b72598.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://scenes/quests/lore_quests/side_quest_001/2_beach/Beach Art/parrotWithHatWithShadow.png" +dest_files=["res://.godot/imported/parrotWithHatWithShadow.png-89f341836dc36e2cd913738175b72598.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/scenes/quests/lore_quests/side_quest_001/2_beach/Beach Art/pirateHat.png b/scenes/quests/lore_quests/side_quest_001/2_beach/Beach Art/pirateHat.png new file mode 100644 index 000000000..fea6259b0 --- /dev/null +++ b/scenes/quests/lore_quests/side_quest_001/2_beach/Beach Art/pirateHat.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:12d30f5b1482416f359c10370f4d74bd8dd67aba80a15b209c751205d105632b +size 1274 diff --git a/scenes/quests/lore_quests/side_quest_001/2_beach/Beach Art/pirateHat.png.import b/scenes/quests/lore_quests/side_quest_001/2_beach/Beach Art/pirateHat.png.import new file mode 100644 index 000000000..6344beeaa --- /dev/null +++ b/scenes/quests/lore_quests/side_quest_001/2_beach/Beach Art/pirateHat.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://biqmge4huvv4c" +path="res://.godot/imported/pirateHat.png-80691887ed99c058d4bc0423aad9af7b.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://scenes/quests/lore_quests/side_quest_001/2_beach/Beach Art/pirateHat.png" +dest_files=["res://.godot/imported/pirateHat.png-80691887ed99c058d4bc0423aad9af7b.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/scenes/quests/lore_quests/side_quest_001/2_beach/Beach Art/shipwreck.png b/scenes/quests/lore_quests/side_quest_001/2_beach/Beach Art/shipwreck.png new file mode 100644 index 000000000..ed60cef48 --- /dev/null +++ b/scenes/quests/lore_quests/side_quest_001/2_beach/Beach Art/shipwreck.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:393f16b886429d66483e4c57c8e5fdb9bbccc1d7294c642c6c6d3651f100d643 +size 14219 diff --git a/scenes/quests/lore_quests/side_quest_001/2_beach/Beach Art/shipwreck.png.import b/scenes/quests/lore_quests/side_quest_001/2_beach/Beach Art/shipwreck.png.import new file mode 100644 index 000000000..2982632e1 --- /dev/null +++ b/scenes/quests/lore_quests/side_quest_001/2_beach/Beach Art/shipwreck.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://d6pbs8f4m55o" +path="res://.godot/imported/shipwreck.png-050a9771862fb5e1cdf1f7f89b5e742c.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://scenes/quests/lore_quests/side_quest_001/2_beach/Beach Art/shipwreck.png" +dest_files=["res://.godot/imported/shipwreck.png-050a9771862fb5e1cdf1f7f89b5e742c.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/scenes/quests/lore_quests/side_quest_001/2_beach/Beach Art/skeletonTestSpriteNoShadow01.png b/scenes/quests/lore_quests/side_quest_001/2_beach/Beach Art/skeletonTestSpriteNoShadow01.png new file mode 100644 index 000000000..95bbac553 --- /dev/null +++ b/scenes/quests/lore_quests/side_quest_001/2_beach/Beach Art/skeletonTestSpriteNoShadow01.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2043815de9ced049e3cfa90c551416e2fc759f27382eafd519a90da9f185d7ab +size 2517 diff --git a/scenes/quests/lore_quests/side_quest_001/2_beach/Beach Art/skeletonTestSpriteNoShadow01.png.import b/scenes/quests/lore_quests/side_quest_001/2_beach/Beach Art/skeletonTestSpriteNoShadow01.png.import new file mode 100644 index 000000000..7774c53e9 --- /dev/null +++ b/scenes/quests/lore_quests/side_quest_001/2_beach/Beach Art/skeletonTestSpriteNoShadow01.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b2ng6qgpcyrpe" +path="res://.godot/imported/skeletonTestSpriteNoShadow01.png-d1bd547e6f42c5e601485b465d09bbf5.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://scenes/quests/lore_quests/side_quest_001/2_beach/Beach Art/skeletonTestSpriteNoShadow01.png" +dest_files=["res://.godot/imported/skeletonTestSpriteNoShadow01.png-d1bd547e6f42c5e601485b465d09bbf5.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/scenes/quests/lore_quests/side_quest_001/2_beach/HatPickup.dialogue b/scenes/quests/lore_quests/side_quest_001/2_beach/HatPickup.dialogue new file mode 100644 index 000000000..029b0003c --- /dev/null +++ b/scenes/quests/lore_quests/side_quest_001/2_beach/HatPickup.dialogue @@ -0,0 +1,15 @@ +# SPDX-FileCopyrightText: The Threadbare Authors +# SPDX-License-Identifier: MPL-2.0 +~ start +~ PirateHat + +You found the pirate hat. + +- Put hat on the Skeleton's head + do PirateHat.give_hat_to_skeleton() + You took the hat to give to the skeleton. + => END + +- Wear the hat + StoryWeaver: it would fit better on you than me +=> END diff --git a/scenes/quests/lore_quests/side_quest_001/2_beach/HatPickup.dialogue.import b/scenes/quests/lore_quests/side_quest_001/2_beach/HatPickup.dialogue.import new file mode 100644 index 000000000..317cc19d9 --- /dev/null +++ b/scenes/quests/lore_quests/side_quest_001/2_beach/HatPickup.dialogue.import @@ -0,0 +1,16 @@ +[remap] + +importer="dialogue_manager" +importer_version=15 +type="Resource" +uid="uid://n2qflx8hxl0d" +path="res://.godot/imported/HatPickup.dialogue-77eb9d5ddc03a7098485932828292841.tres" + +[deps] + +source_file="res://scenes/quests/lore_quests/side_quest_001/2_beach/HatPickup.dialogue" +dest_files=["res://.godot/imported/HatPickup.dialogue-77eb9d5ddc03a7098485932828292841.tres"] + +[params] + +defaults=true diff --git a/scenes/quests/lore_quests/side_quest_001/2_beach/ShipWrecksdio.dialogue b/scenes/quests/lore_quests/side_quest_001/2_beach/ShipWrecksdio.dialogue new file mode 100644 index 000000000..03505610e --- /dev/null +++ b/scenes/quests/lore_quests/side_quest_001/2_beach/ShipWrecksdio.dialogue @@ -0,0 +1,6 @@ +# SPDX-FileCopyrightText: The Threadbare Authors +# SPDX-License-Identifier: MPL-2.0 +~ start +~ ShipWreck +Once a pirates ship +=> END diff --git a/scenes/quests/lore_quests/side_quest_001/2_beach/ShipWrecksdio.dialogue.import b/scenes/quests/lore_quests/side_quest_001/2_beach/ShipWrecksdio.dialogue.import new file mode 100644 index 000000000..a07bd3c31 --- /dev/null +++ b/scenes/quests/lore_quests/side_quest_001/2_beach/ShipWrecksdio.dialogue.import @@ -0,0 +1,16 @@ +[remap] + +importer="dialogue_manager" +importer_version=15 +type="Resource" +uid="uid://c1vgsbsxx20jl" +path="res://.godot/imported/ShipWrecksdio.dialogue-283803ce28d740afd4d8a19adde44d33.tres" + +[deps] + +source_file="res://scenes/quests/lore_quests/side_quest_001/2_beach/ShipWrecksdio.dialogue" +dest_files=["res://.godot/imported/ShipWrecksdio.dialogue-283803ce28d740afd4d8a19adde44d33.tres"] + +[params] + +defaults=true diff --git a/scenes/quests/lore_quests/side_quest_001/2_beach/SkeletonPirate.dialogue b/scenes/quests/lore_quests/side_quest_001/2_beach/SkeletonPirate.dialogue new file mode 100644 index 000000000..55783d7d7 --- /dev/null +++ b/scenes/quests/lore_quests/side_quest_001/2_beach/SkeletonPirate.dialogue @@ -0,0 +1,11 @@ +# SPDX-FileCopyrightText: The Threadbare Authors +# SPDX-License-Identifier: MPL-2.0 +~ start +~ PirateNPC + +if SkeletonPirate.got_hat + Skeleton: You found my hat! +else + Skeleton: Still no luck? + +=> END diff --git a/scenes/quests/lore_quests/side_quest_001/2_beach/SkeletonPirate.dialogue.import b/scenes/quests/lore_quests/side_quest_001/2_beach/SkeletonPirate.dialogue.import new file mode 100644 index 000000000..106342bbe --- /dev/null +++ b/scenes/quests/lore_quests/side_quest_001/2_beach/SkeletonPirate.dialogue.import @@ -0,0 +1,16 @@ +[remap] + +importer="dialogue_manager" +importer_version=15 +type="Resource" +uid="uid://cne5vo2wh4hnc" +path="res://.godot/imported/SkeletonPirate.dialogue-188122f2301a61178c8833db76b3be31.tres" + +[deps] + +source_file="res://scenes/quests/lore_quests/side_quest_001/2_beach/SkeletonPirate.dialogue" +dest_files=["res://.godot/imported/SkeletonPirate.dialogue-188122f2301a61178c8833db76b3be31.tres"] + +[params] + +defaults=true diff --git a/scenes/quests/lore_quests/side_quest_001/2_beach/beach.gd b/scenes/quests/lore_quests/side_quest_001/2_beach/beach.gd new file mode 100644 index 000000000..a6bd0ebdb --- /dev/null +++ b/scenes/quests/lore_quests/side_quest_001/2_beach/beach.gd @@ -0,0 +1,3 @@ +extends Node2D + +var got_hat: bool = false diff --git a/scenes/quests/lore_quests/side_quest_001/2_beach/beach.gd.uid b/scenes/quests/lore_quests/side_quest_001/2_beach/beach.gd.uid new file mode 100644 index 000000000..81e49b1ff --- /dev/null +++ b/scenes/quests/lore_quests/side_quest_001/2_beach/beach.gd.uid @@ -0,0 +1 @@ +uid://bab107s1dsk1e diff --git a/scenes/quests/lore_quests/side_quest_001/2_beach/beach.tscn b/scenes/quests/lore_quests/side_quest_001/2_beach/beach.tscn index d983f2499..5edd659f4 100644 --- a/scenes/quests/lore_quests/side_quest_001/2_beach/beach.tscn +++ b/scenes/quests/lore_quests/side_quest_001/2_beach/beach.tscn @@ -1,48 +1,53 @@ [gd_scene format=4 uid="uid://btol04dlus5ri"] -[ext_resource type="TileSet" uid="uid://oynx002hv8tl" path="res://tiles/water.tres" id="1_vpp5p"] -[ext_resource type="TileSet" uid="uid://bjx3gvah0ycl1" path="res://tiles/foam_2.tres" id="2_q76ot"] -[ext_resource type="TileSet" uid="uid://b8qnr0owsbhhn" path="res://tiles/exterior_floors.tres" id="3_t4cuw"] -[ext_resource type="TileSet" uid="uid://ciq5guijvlyb0" path="res://tiles/void_chromakey.tres" id="4_6ddwi"] -[ext_resource type="Material" uid="uid://64aeyjitacv3" path="res://scenes/game_elements/props/void/void_chromakey_material.tres" id="4_q76ot"] -[ext_resource type="PackedScene" uid="uid://iu2q66clupc6" path="res://scenes/game_elements/characters/player/player.tscn" id="5_n4bcg"] -[ext_resource type="SpriteFrames" uid="uid://dtoylirwywk0j" path="res://scenes/game_elements/characters/components/sprite_frames/storyweaver_blue.tres" id="6_4l85e"] -[ext_resource type="PackedScene" uid="uid://0ull24fvmhwk" path="res://scenes/game_elements/props/teleporter/teleporter.tscn" id="8_t4cuw"] -[ext_resource type="Script" uid="uid://c8405c212rbn6" path="res://scenes/game_elements/props/background_music/components/background_music.gd" id="9_n4bcg"] -[ext_resource type="AudioStream" uid="uid://dk10o5q87xbct" path="res://assets/first_party/music/Threadbare Loop_Main_Bridge_01.ogg" id="10_4l85e"] +[ext_resource type="Script" uid="uid://c8405c212rbn6" path="res://scenes/game_elements/props/background_music/components/background_music.gd" id="1_4shau"] +[ext_resource type="Script" uid="uid://bab107s1dsk1e" path="res://scenes/quests/lore_quests/side_quest_001/2_beach/beach.gd" id="1_6ebfs"] +[ext_resource type="AudioStream" uid="uid://dk10o5q87xbct" path="res://assets/first_party/music/Threadbare Loop_Main_Bridge_01.ogg" id="2_6ebfs"] +[ext_resource type="TileSet" uid="uid://oynx002hv8tl" path="res://tiles/water.tres" id="3_ui6ug"] +[ext_resource type="TileSet" uid="uid://bjx3gvah0ycl1" path="res://tiles/foam_2.tres" id="4_8heli"] +[ext_resource type="TileSet" uid="uid://b8qnr0owsbhhn" path="res://tiles/exterior_floors.tres" id="5_wenvd"] +[ext_resource type="Material" uid="uid://64aeyjitacv3" path="res://scenes/game_elements/props/void/void_chromakey_material.tres" id="6_i43dg"] +[ext_resource type="TileSet" uid="uid://ciq5guijvlyb0" path="res://tiles/void_chromakey.tres" id="7_c4ums"] +[ext_resource type="PackedScene" uid="uid://0ull24fvmhwk" path="res://scenes/game_elements/props/teleporter/teleporter.tscn" id="8_b1evm"] +[ext_resource type="PackedScene" uid="uid://iu2q66clupc6" path="res://scenes/game_elements/characters/player/player.tscn" id="9_u6ust"] +[ext_resource type="SpriteFrames" uid="uid://dtoylirwywk0j" path="res://scenes/game_elements/characters/components/sprite_frames/storyweaver_blue.tres" id="10_bx42s"] +[ext_resource type="PackedScene" uid="uid://cii1e4n5annct" path="res://scenes/quests/lore_quests/side_quest_001/2_beach/skeleton_pirate.tscn" id="13_4shau"] +[ext_resource type="PackedScene" uid="uid://foolusgqshyi" path="res://scenes/quests/lore_quests/side_quest_001/2_beach/ship_wreck.tscn" id="13_6ebfs"] +[ext_resource type="PackedScene" uid="uid://dsctdr3u8q2xf" path="res://scenes/quests/lore_quests/side_quest_001/2_beach/parrot.tscn" id="14_ui6ug"] [sub_resource type="RectangleShape2D" id="RectangleShape2D_andwd"] size = Vector2(44, 929) [node name="Beach" type="Node2D" unique_id=1032320633] +script = ExtResource("1_6ebfs") [node name="BackgroundMusic" type="Node" parent="." unique_id=558125255] -script = ExtResource("9_n4bcg") -stream = ExtResource("10_4l85e") +script = ExtResource("1_4shau") +stream = ExtResource("2_6ebfs") metadata/_custom_type_script = "uid://c8405c212rbn6" [node name="TileMapLayers" type="Node2D" parent="." unique_id=85660987] [node name="Water" type="TileMapLayer" parent="TileMapLayers" unique_id=1283590803] tile_map_data = PackedByteArray("AAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAkAAAAAAAAAAAAAAAoAAAAAAAAAAAAAAAsAAAAAAAAAAAABAAAAAAAAAAAAAAABAAEAAAAAAAAAAAABAAIAAAAAAAAAAAABAAMAAAAAAAAAAAABAAQAAAAAAAAAAAABAAUAAAAAAAAAAAABAAYAAAAAAAAAAAABAAcAAAAAAAAAAAABAAgAAAAAAAAAAAABAAkAAAAAAAAAAAABAAoAAAAAAAAAAAABAAsAAAAAAAAAAAACAAAAAAAAAAAAAAACAAEAAAAAAAAAAAACAAIAAAAAAAAAAAACAAMAAAAAAAAAAAACAAQAAAAAAAAAAAACAAUAAAAAAAAAAAACAAYAAAAAAAAAAAACAAcAAAAAAAAAAAACAAgAAAAAAAAAAAACAAkAAAAAAAAAAAACAAoAAAAAAAAAAAACAAsAAAAAAAAAAAADAAAAAAAAAAAAAAADAAEAAAAAAAAAAAADAAIAAAAAAAAAAAADAAMAAAAAAAAAAAADAAQAAAAAAAAAAAADAAUAAAAAAAAAAAADAAYAAAAAAAAAAAADAAcAAAAAAAAAAAADAAgAAAAAAAAAAAADAAkAAAAAAAAAAAADAAoAAAAAAAAAAAADAAsAAAAAAAAAAAAAAP//AAAAAAAAAAABAP//AAAAAAAAAAACAP//AAAAAAAAAAADAP//AAAAAAAAAAAAAAwAAAAAAAAAAAABAAwAAAAAAAAAAAACAAwAAAAAAAAAAAADAAwAAAAAAAAAAAA=") -tile_set = ExtResource("1_vpp5p") +tile_set = ExtResource("3_ui6ug") [node name="Foam" type="TileMapLayer" parent="TileMapLayers" unique_id=597327163] tile_map_data = PackedByteArray("AAAEAAAAAgAAAAAAAAAEAAEAAgAAAAAAAAAEAAIAAgAAAAAAAAAEAAMAAgAAAAAAAAAEAAQAAgAAAAAAAAAEAAUAAgAAAAAAAAAEAAYAAgAAAAAAAAAEAAcAAgAAAAAAAAAEAAgAAgAAAAAAAAAEAAkAAgAAAAAAAAAEAAoAAgAAAAAAAAAEAAsAAgAAAAAAAAAEAP//AgAAAAAAAAAEAAwAAgAAAAAAAAA=") -tile_set = ExtResource("2_q76ot") +tile_set = ExtResource("4_8heli") [node name="Sand" type="TileMapLayer" parent="TileMapLayers" unique_id=673198833] tile_map_data = PackedByteArray("AAAEAAEAAQAFAAEAAAAEAAIAAQAFAAEAAAAEAAMAAQAFAAEAAAAEAAQAAQAFAAEAAAAEAAUAAQAFAAEAAAAEAAYAAQAFAAEAAAAEAAcAAQAFAAEAAAAEAAgAAQAFAAEAAAAEAAkAAQAFAAEAAAAEAAoAAQAFAAEAAAAFAAEAAQAGAAEAAAAFAAIAAQAGAAEAAAAFAAMAAQAGAAEAAAAFAAQAAQAGAAEAAAAFAAUAAQAGAAEAAAAFAAYAAQAGAAEAAAAFAAcAAQAGAAEAAAAFAAgAAQAGAAEAAAAFAAkAAQAGAAEAAAAFAAoAAQAGAAEAAAAGAAEAAQAGAAEAAAAGAAIAAQAGAAEAAAAGAAMAAQAGAAEAAAAGAAQAAQAGAAEAAAAGAAUAAQAGAAEAAAAGAAYAAQAGAAEAAAAGAAcAAQAGAAEAAAAGAAgAAQAGAAEAAAAGAAkAAQAGAAEAAAAGAAoAAQAGAAEAAAAHAAEAAQAGAAEAAAAHAAIAAQAGAAEAAAAHAAMAAQAGAAEAAAAHAAQAAQAGAAEAAAAHAAUAAQAGAAEAAAAHAAYAAQAGAAEAAAAHAAcAAQAGAAEAAAAHAAgAAQAGAAEAAAAHAAkAAQAGAAEAAAAHAAoAAQAGAAEAAAAIAAEAAQAGAAEAAAAIAAIAAQAGAAEAAAAIAAMAAQAGAAEAAAAIAAQAAQAGAAEAAAAIAAUAAQAGAAEAAAAIAAYAAQAGAAEAAAAIAAcAAQAGAAEAAAAIAAgAAQAGAAEAAAAIAAkAAQAGAAEAAAAIAAoAAQAGAAEAAAAJAAEAAQAGAAEAAAAJAAIAAQAGAAEAAAAJAAMAAQAGAAEAAAAJAAQAAQAGAAEAAAAJAAUAAQAGAAEAAAAJAAYAAQAGAAEAAAAJAAcAAQAGAAEAAAAJAAgAAQAGAAEAAAAJAAkAAQAGAAEAAAAJAAoAAQAGAAEAAAAKAAEAAQAGAAEAAAAKAAIAAQAGAAEAAAAKAAMAAQAGAAEAAAAKAAQAAQAGAAEAAAAKAAUAAQAGAAEAAAAKAAYAAQAGAAEAAAAKAAcAAQAGAAEAAAAKAAgAAQAGAAEAAAAKAAkAAQAGAAEAAAAKAAoAAQAGAAEAAAALAAEAAQAGAAEAAAALAAIAAQAGAAEAAAALAAMAAQAGAAEAAAALAAQAAQAGAAEAAAALAAUAAQAGAAEAAAALAAYAAQAGAAEAAAALAAcAAQAGAAEAAAALAAgAAQAGAAEAAAALAAkAAQAGAAEAAAALAAoAAQAGAAEAAAAMAAEAAQAGAAEAAAAMAAIAAQAGAAEAAAAMAAMAAQAGAAEAAAAMAAQAAQAGAAEAAAAMAAUAAQAGAAEAAAAMAAYAAQAGAAEAAAAMAAcAAQAGAAEAAAAMAAoAAQAGAAEAAAANAAEAAQAGAAEAAAANAAIAAQAGAAEAAAANAAMAAQAGAAEAAAANAAQAAQAGAAEAAAANAAUAAQAGAAEAAAANAAYAAQAGAAEAAAANAAcAAQAGAAEAAAANAAgAAQAGAAEAAAANAAkAAQAGAAEAAAANAAoAAQAGAAEAAAAOAAEAAQAGAAEAAAAOAAIAAQAGAAEAAAAOAAMAAQAGAAEAAAAOAAQAAQAGAAEAAAAOAAUAAQAGAAEAAAAOAAYAAQAGAAEAAAAOAAcAAQAGAAEAAAAOAAgAAQAGAAEAAAAOAAkAAQAGAAEAAAAOAAoAAQAGAAEAAAAPAAEAAQAGAAEAAAAPAAIAAQAGAAEAAAAPAAMAAQAGAAEAAAAPAAQAAQAGAAEAAAAPAAUAAQAGAAEAAAAPAAYAAQAGAAEAAAAPAAcAAQAGAAEAAAAPAAgAAQAGAAEAAAAPAAkAAQAGAAEAAAAPAAoAAQAGAAEAAAAQAAEAAQAGAAEAAAAQAAIAAQAGAAEAAAAQAAMAAQAGAAEAAAAQAAQAAQAGAAEAAAAQAAUAAQAGAAEAAAAQAAYAAQAGAAEAAAAQAAcAAQAGAAEAAAAQAAgAAQAGAAEAAAAQAAkAAQAGAAEAAAAQAAoAAQAGAAEAAAARAAEAAQAGAAEAAAARAAIAAQAGAAEAAAARAAMAAQAGAAEAAAARAAQAAQAGAAEAAAARAAUAAQAGAAEAAAARAAYAAQAGAAEAAAARAAcAAQAGAAEAAAARAAgAAQAGAAEAAAARAAkAAQAGAAEAAAARAAoAAQAGAAEAAAASAAEAAQAGAAEAAAASAAIAAQAGAAEAAAASAAMAAQAGAAEAAAASAAQAAQAGAAEAAAASAAUAAQAGAAEAAAASAAYAAQAGAAEAAAASAAcAAQAGAAEAAAASAAgAAQAGAAEAAAASAAkAAQAGAAEAAAASAAoAAQAGAAEAAAATAAEAAQAGAAEAAAATAAIAAQAGAAEAAAATAAMAAQAGAAEAAAATAAQAAQAGAAEAAAATAAUAAQAGAAEAAAATAAYAAQAGAAEAAAATAAcAAQAGAAEAAAATAAgAAQAGAAEAAAATAAkAAQAGAAEAAAATAAoAAQAGAAEAAAAUAAEAAQAGAAEAAAAUAAIAAQAGAAEAAAAUAAMAAQAGAAEAAAAUAAQAAQAGAAEAAAAUAAUAAQAGAAEAAAAUAAYAAQAGAAEAAAAUAAcAAQAGAAEAAAAUAAgAAQAGAAEAAAAUAAkAAQAGAAEAAAAUAAoAAQAGAAEAAAAVAAEAAQAGAAEAAAAVAAIAAQAGAAEAAAAVAAMAAQAGAAEAAAAVAAQAAQAGAAEAAAAVAAUAAQAGAAEAAAAVAAYAAQAGAAEAAAAVAAcAAQAGAAEAAAAVAAgAAQAGAAEAAAAVAAkAAQAGAAEAAAAVAAoAAQAGAAEAAAAWAAEAAQAGAAEAAAAWAAIAAQAGAAEAAAAWAAMAAQAGAAEAAAAWAAQAAQAGAAEAAAAWAAUAAQAGAAEAAAAWAAYAAQAGAAEAAAAWAAcAAQAGAAEAAAAWAAgAAQAGAAEAAAAWAAkAAQAGAAEAAAAWAAoAAQAGAAEAAAAXAAEAAQAGAAEAAAAXAAIAAQAGAAEAAAAXAAMAAQAGAAEAAAAXAAQAAQAGAAEAAAAXAAUAAQAGAAEAAAAXAAYAAQAGAAEAAAAXAAcAAQAGAAEAAAAXAAgAAQAGAAEAAAAXAAkAAQAGAAEAAAAXAAoAAQAGAAEAAAAYAAEAAQAGAAEAAAAYAAIAAQAGAAEAAAAYAAMAAQAGAAEAAAAYAAQAAQAGAAEAAAAYAAUAAQAGAAEAAAAYAAYAAQAGAAEAAAAYAAcAAQAGAAEAAAAYAAgAAQAGAAEAAAAYAAkAAQAGAAEAAAAYAAoAAQAGAAEAAAAZAAEAAQAGAAEAAAAZAAIAAQAGAAEAAAAZAAMAAQAGAAEAAAAZAAQAAQAGAAEAAAAZAAUAAQAGAAEAAAAZAAYAAQAGAAEAAAAZAAcAAQAGAAEAAAAZAAgAAQAGAAEAAAAZAAkAAQAGAAEAAAAZAAoAAQAGAAEAAAAMAAgAAQAGAAEAAAAMAAkAAQAGAAEAAAAFAP//AQAGAAEAAAAFAAAAAQAGAAEAAAAGAP//AQAGAAEAAAAGAAAAAQAGAAEAAAAHAP//AQAGAAEAAAAHAAAAAQAGAAEAAAAIAP//AQAGAAEAAAAIAAAAAQAGAAEAAAAJAP//AQAGAAEAAAAJAAAAAQAGAAEAAAAKAP//AQAGAAEAAAAKAAAAAQAGAAEAAAALAP//AQAGAAEAAAALAAAAAQAGAAEAAAAMAP//AQAGAAEAAAAMAAAAAQAGAAEAAAANAP//AQAGAAEAAAANAAAAAQAGAAEAAAAOAP//AQAGAAEAAAAOAAAAAQAGAAEAAAAPAP//AQAGAAEAAAAPAAAAAQAGAAEAAAAQAP//AQAGAAEAAAAQAAAAAQAGAAEAAAARAP//AQAGAAEAAAARAAAAAQAGAAEAAAASAP//AQAGAAEAAAASAAAAAQAGAAEAAAATAP//AQAGAAEAAAATAAAAAQAGAAEAAAAUAP//AQAGAAEAAAAUAAAAAQAGAAEAAAAVAP//AQAGAAEAAAAVAAAAAQAGAAEAAAAWAP//AQAGAAEAAAAWAAAAAQAGAAEAAAAXAP//AQAGAAEAAAAXAAAAAQAGAAEAAAAYAP//AQAGAAEAAAAYAAAAAQAGAAEAAAAZAP//AQAGAAEAAAAZAAAAAQAGAAEAAAAFAAsAAQAGAAEAAAAFAAwAAQAGAAEAAAAGAAsAAQAGAAEAAAAGAAwAAQAGAAEAAAAHAAsAAQAGAAEAAAAHAAwAAQAGAAEAAAAIAAsAAQAGAAEAAAAIAAwAAQAGAAEAAAAJAAsAAQAGAAEAAAAJAAwAAQAGAAEAAAAKAAsAAQAGAAEAAAAKAAwAAQAGAAEAAAALAAsAAQAGAAEAAAALAAwAAQAGAAEAAAAMAAsAAQAGAAEAAAAMAAwAAQAGAAEAAAANAAsAAQAGAAEAAAANAAwAAQAGAAEAAAAOAAsAAQAGAAEAAAAOAAwAAQAGAAEAAAAPAAsAAQAGAAEAAAAPAAwAAQAGAAEAAAAQAAsAAQAGAAEAAAAQAAwAAQAGAAEAAAARAAsAAQAGAAEAAAARAAwAAQAGAAEAAAASAAsAAQAGAAEAAAASAAwAAQAGAAEAAAATAAsAAQAGAAEAAAATAAwAAQAGAAEAAAAUAAsAAQAGAAEAAAAUAAwAAQAGAAEAAAAVAAsAAQAGAAEAAAAVAAwAAQAGAAEAAAAWAAsAAQAGAAEAAAAWAAwAAQAGAAEAAAAXAAsAAQAGAAEAAAAXAAwAAQAGAAEAAAAYAAsAAQAGAAEAAAAYAAwAAQAGAAEAAAAZAAsAAQAGAAEAAAAZAAwAAQAGAAEAAAAEAAsAAQAFAAEAAAAEAAwAAQAFAAEAAAAEAP//AQAFAAEAAAAEAAAAAQAFAAEAAAA=") -tile_set = ExtResource("3_t4cuw") +tile_set = ExtResource("5_wenvd") [node name="Void" type="TileMapLayer" parent="TileMapLayers" unique_id=360323217] texture_filter = 1 -material = ExtResource("4_q76ot") -tile_set = ExtResource("4_6ddwi") +material = ExtResource("6_i43dg") +tile_set = ExtResource("7_c4ums") [node name="OnTheGround" type="Node2D" parent="." unique_id=908085594] -[node name="Teleporter" parent="OnTheGround" unique_id=1779636661 instance=ExtResource("8_t4cuw")] +[node name="Teleporter" parent="OnTheGround" unique_id=1779636661 instance=ExtResource("8_b1evm")] position = Vector2(1632, 389) next_scene = "uid://b73brxwk8s6r4" @@ -50,13 +55,25 @@ next_scene = "uid://b73brxwk8s6r4" position = Vector2(12, -2.5) shape = SubResource("RectangleShape2D_andwd") -[node name="Player" parent="OnTheGround" unique_id=296354958 instance=ExtResource("5_n4bcg")] +[node name="Player" parent="OnTheGround" unique_id=296354958 instance=ExtResource("9_u6ust")] position = Vector2(394, 466) -sprite_frames = ExtResource("6_4l85e") +sprite_frames = ExtResource("10_bx42s") [node name="Camera2D" type="Camera2D" parent="OnTheGround/Player" unique_id=1963665658] limit_left = 0 -limit_top = -320 -limit_right = 2772 -limit_bottom = 680 +limit_top = -60 +limit_right = 1664 +limit_bottom = 825 editor_draw_limits = true + +[node name="ShipWreck" parent="." unique_id=353678631 instance=ExtResource("13_6ebfs")] +position = Vector2(480, 632) +collision_mask = 19 + +[node name="Parrot" parent="." unique_id=1910679806 instance=ExtResource("14_ui6ug")] +position = Vector2(544, 112) +move_distance = 400.0 +speed = 200.0 + +[node name="SkeletonPirate" parent="." unique_id=557614525 instance=ExtResource("13_4shau")] +position = Vector2(1200, 264) diff --git a/scenes/quests/lore_quests/side_quest_001/2_beach/parrot.gd b/scenes/quests/lore_quests/side_quest_001/2_beach/parrot.gd new file mode 100644 index 000000000..10f64ca07 --- /dev/null +++ b/scenes/quests/lore_quests/side_quest_001/2_beach/parrot.gd @@ -0,0 +1,78 @@ +extends Area2D + +@export var move_distance: float = 100.0 +@export var speed: float = 100.0 +@export var hat_scene: PackedScene + +var start_x: float +var direction: int = 1 +var hat_dropped: bool = false + +@onready var animated_sprite: AnimatedSprite2D = $AnimatedSprite2D +@onready var hat_spawn_point: Marker2D = $HatSpawnPoint +@onready var hookable_area: HookableArea = %HookableArea +@onready var hookable_collision: CollisionShape2D = %HookableArea/CollisionShape2D + +func _ready() -> void: + start_x = global_position.x + animated_sprite.play("with_hat") + + +func _process(delta: float) -> void: + if hat_dropped: + return + + global_position.x += speed * direction * delta + + if global_position.x >= start_x + move_distance: + direction = -1 + animated_sprite.flip_h = true + elif global_position.x <= start_x: + direction = 1 + animated_sprite.flip_h = false + + +func got_pulled(_direction: Vector2) -> void: + if hat_dropped: + hookable_area.release_from_pull(true) + return + + hit_by_grapple() + + await get_tree().create_timer(0.1).timeout + hookable_area.release_from_pull(true) + + +func hit_by_grapple() -> void: + if hat_dropped: + return + + hat_dropped = true + + animated_sprite.play("no_hat") + + hookable_area.monitoring = false + hookable_area.monitorable = false + hookable_collision.set_deferred("disabled", true) + + drop_hat() + + +func drop_hat() -> void: + if hat_scene == null: + return + + var hat: Node2D = hat_scene.instantiate() as Node2D + get_tree().current_scene.add_child(hat) + hat.skeleton_pirate = get_tree().current_scene.get_node("SkeletonPirate") + hat.global_position = hat_spawn_point.global_position + + var target_position: Vector2 = hat.global_position + Vector2(0, 40) + + var tween := create_tween() + tween.tween_property( + hat, + "global_position", + target_position, + 0.4 + ).set_trans(Tween.TRANS_QUAD).set_ease(Tween.EASE_IN) diff --git a/scenes/quests/lore_quests/side_quest_001/2_beach/parrot.gd.uid b/scenes/quests/lore_quests/side_quest_001/2_beach/parrot.gd.uid new file mode 100644 index 000000000..71ceb1fc4 --- /dev/null +++ b/scenes/quests/lore_quests/side_quest_001/2_beach/parrot.gd.uid @@ -0,0 +1 @@ +uid://k0wddli2xajo diff --git a/scenes/quests/lore_quests/side_quest_001/2_beach/parrot.tscn b/scenes/quests/lore_quests/side_quest_001/2_beach/parrot.tscn new file mode 100644 index 000000000..9e7ccbacd --- /dev/null +++ b/scenes/quests/lore_quests/side_quest_001/2_beach/parrot.tscn @@ -0,0 +1,63 @@ +[gd_scene format=3 uid="uid://dsctdr3u8q2xf"] + +[ext_resource type="Script" uid="uid://k0wddli2xajo" path="res://scenes/quests/lore_quests/side_quest_001/2_beach/parrot.gd" id="1_4j31g"] +[ext_resource type="PackedScene" uid="uid://d3cj7hwkxcja6" path="res://scenes/quests/lore_quests/side_quest_001/2_beach/pirate_hat.tscn" id="2_wfv5i"] +[ext_resource type="Texture2D" uid="uid://cxebgfxx0xd10" path="res://scenes/quests/lore_quests/side_quest_001/2_beach/Beach Art/parrotWithHatWithShadow.png" id="2_yxlus"] +[ext_resource type="Script" uid="uid://dabvr3pqmyya4" path="res://scenes/game_elements/props/hookable_area/components/hookable_area.gd" id="4_dxqkc"] +[ext_resource type="Texture2D" uid="uid://bfpjc20trnauv" path="res://scenes/quests/lore_quests/side_quest_001/2_beach/Beach Art/parrotIdleNoHat.png" id="4_wfv5i"] + +[sub_resource type="SpriteFrames" id="SpriteFrames_qk4ac"] +animations = [{ +"frames": [{ +"duration": 1.0, +"texture": ExtResource("4_wfv5i") +}], +"loop": 1, +"name": &"no_hat", +"speed": 5.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": ExtResource("2_yxlus") +}], +"loop": 1, +"name": &"with_hat", +"speed": 5.0 +}] + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_wfv5i"] +size = Vector2(96, 160) + +[node name="Parrot" type="Area2D" unique_id=1910679806] +script = ExtResource("1_4j31g") +hat_scene = ExtResource("2_wfv5i") + +[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="." unique_id=1067763320] +scale = Vector2(0.35033226, 0.35033226) +sprite_frames = SubResource("SpriteFrames_qk4ac") +animation = &"with_hat" + +[node name="HookableArea" type="Area2D" parent="." unique_id=1204573480 node_paths=PackedStringArray("controlled_entity", "anchor_point", "indicator_point")] +unique_name_in_owner = true +collision_layer = 4096 +collision_mask = 0 +script = ExtResource("4_dxqkc") +controlled_entity = NodePath("..") +anchor_point = NodePath("AnchorMarker") +indicator_point = NodePath("IndicatorMarker") +weight = 0.0 +metadata/_custom_type_script = "uid://dabvr3pqmyya4" + +[node name="CollisionShape2D" type="CollisionShape2D" parent="HookableArea" unique_id=1757735727] +position = Vector2(0, -32) +shape = SubResource("RectangleShape2D_wfv5i") +debug_color = Color(0.689707, 0.288376, 1, 0.42) + +[node name="AnchorMarker" type="Marker2D" parent="HookableArea" unique_id=1978060129] +position = Vector2(0, -16) + +[node name="IndicatorMarker" type="Marker2D" parent="HookableArea" unique_id=996467047] +position = Vector2(0, -96) + +[node name="HatSpawnPoint" type="Marker2D" parent="." unique_id=1529092765] +position = Vector2(0, 80) diff --git a/scenes/quests/lore_quests/side_quest_001/2_beach/pirate_hat.gd b/scenes/quests/lore_quests/side_quest_001/2_beach/pirate_hat.gd new file mode 100644 index 000000000..c90c49ca4 --- /dev/null +++ b/scenes/quests/lore_quests/side_quest_001/2_beach/pirate_hat.gd @@ -0,0 +1,9 @@ +extends Area2D + +var skeleton_pirate: Node = null + +func give_hat_to_skeleton() -> void: + if skeleton_pirate != null: + skeleton_pirate.got_hat = true + + hide() diff --git a/scenes/quests/lore_quests/side_quest_001/2_beach/pirate_hat.gd.uid b/scenes/quests/lore_quests/side_quest_001/2_beach/pirate_hat.gd.uid new file mode 100644 index 000000000..5255e3848 --- /dev/null +++ b/scenes/quests/lore_quests/side_quest_001/2_beach/pirate_hat.gd.uid @@ -0,0 +1 @@ +uid://ctcrrpo2gg4ii diff --git a/scenes/quests/lore_quests/side_quest_001/2_beach/pirate_hat.tscn b/scenes/quests/lore_quests/side_quest_001/2_beach/pirate_hat.tscn new file mode 100644 index 000000000..98243da45 --- /dev/null +++ b/scenes/quests/lore_quests/side_quest_001/2_beach/pirate_hat.tscn @@ -0,0 +1,38 @@ +[gd_scene format=3 uid="uid://d3cj7hwkxcja6"] + +[ext_resource type="Texture2D" uid="uid://biqmge4huvv4c" path="res://scenes/quests/lore_quests/side_quest_001/2_beach/Beach Art/pirateHat.png" id="1_5jp0m"] +[ext_resource type="Script" uid="uid://ctcrrpo2gg4ii" path="res://scenes/quests/lore_quests/side_quest_001/2_beach/pirate_hat.gd" id="1_n72p6"] +[ext_resource type="Script" uid="uid://edcifob4jc4s" path="res://scenes/game_logic/talk_behavior.gd" id="2_n72p6"] +[ext_resource type="Resource" uid="uid://n2qflx8hxl0d" path="res://scenes/quests/lore_quests/side_quest_001/2_beach/HatPickup.dialogue" id="3_82g1o"] +[ext_resource type="Script" uid="uid://du8wfijr35r35" path="res://scenes/game_elements/props/interact_area/interact_area.gd" id="4_f68v2"] + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_bgb60"] +size = Vector2(52, 50) + +[node name="PirateHat" type="Area2D" unique_id=353678631] +position = Vector2(0, 32) +script = ExtResource("1_n72p6") + +[node name="Sprite2D" type="Sprite2D" parent="." unique_id=1981455494] +position = Vector2(0, -24) +texture = ExtResource("1_5jp0m") + +[node name="TalkBehavior" type="Node" parent="." unique_id=263479407 node_paths=PackedStringArray("interact_area", "extra_context")] +unique_name_in_owner = true +script = ExtResource("2_n72p6") +dialogue = ExtResource("3_82g1o") +title = "PirateHat" +interact_area = NodePath("../InteractArea") +extra_context = [NodePath("..")] +metadata/_custom_type_script = "uid://edcifob4jc4s" + +[node name="InteractArea" type="Area2D" parent="." unique_id=129390305] +unique_name_in_owner = true +collision_layer = 32 +collision_mask = 0 +script = ExtResource("4_f68v2") + +[node name="CollisionShape2D" type="CollisionShape2D" parent="InteractArea" unique_id=465943458] +position = Vector2(0, -29) +shape = SubResource("RectangleShape2D_bgb60") +debug_color = Color(0.600391, 0.54335, 0, 0.42) diff --git a/scenes/quests/lore_quests/side_quest_001/2_beach/ship_wreck.tscn b/scenes/quests/lore_quests/side_quest_001/2_beach/ship_wreck.tscn new file mode 100644 index 000000000..921953641 --- /dev/null +++ b/scenes/quests/lore_quests/side_quest_001/2_beach/ship_wreck.tscn @@ -0,0 +1,44 @@ +[gd_scene format=3 uid="uid://foolusgqshyi"] + +[ext_resource type="Texture2D" uid="uid://d6pbs8f4m55o" path="res://scenes/quests/lore_quests/side_quest_001/2_beach/Beach Art/shipwreck.png" id="1_c2nbw"] +[ext_resource type="Script" uid="uid://edcifob4jc4s" path="res://scenes/game_logic/talk_behavior.gd" id="2_8pckk"] +[ext_resource type="Resource" uid="uid://c1vgsbsxx20jl" path="res://scenes/quests/lore_quests/side_quest_001/2_beach/ShipWrecksdio.dialogue" id="3_c2nbw"] +[ext_resource type="Script" uid="uid://du8wfijr35r35" path="res://scenes/game_elements/props/interact_area/interact_area.gd" id="4_aq03t"] + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_bgb60"] +size = Vector2(52, 50) + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_qk4ac"] +size = Vector2(195.2733, 41.036476) + +[node name="ShipWreck" type="Area2D" unique_id=353678631] + +[node name="Sprite2D" type="Sprite2D" parent="." unique_id=1981455494] +position = Vector2(0, -24) +texture = ExtResource("1_c2nbw") + +[node name="TalkBehavior" type="Node" parent="." unique_id=263479407 node_paths=PackedStringArray("interact_area")] +unique_name_in_owner = true +script = ExtResource("2_8pckk") +dialogue = ExtResource("3_c2nbw") +title = "ShipWreck" +interact_area = NodePath("../InteractArea") +metadata/_custom_type_script = "uid://edcifob4jc4s" + +[node name="InteractArea" type="Area2D" parent="." unique_id=129390305] +unique_name_in_owner = true +collision_layer = 32 +collision_mask = 0 +script = ExtResource("4_aq03t") + +[node name="CollisionShape2D" type="CollisionShape2D" parent="InteractArea" unique_id=465943458] +position = Vector2(0, -29) +scale = Vector2(7.799999, 4.52) +shape = SubResource("RectangleShape2D_bgb60") +debug_color = Color(0.600391, 0.54335, 0, 0.42) + +[node name="CollisionShape2D" type="CollisionShape2D" parent="." unique_id=1757028909] +light_mask = 7 +position = Vector2(3.9999964, 24) +scale = Vector2(1.5158243, -2.3393822) +shape = SubResource("RectangleShape2D_qk4ac") diff --git a/scenes/quests/lore_quests/side_quest_001/2_beach/skeleton_pirate.gd b/scenes/quests/lore_quests/side_quest_001/2_beach/skeleton_pirate.gd new file mode 100644 index 000000000..8c75d986f --- /dev/null +++ b/scenes/quests/lore_quests/side_quest_001/2_beach/skeleton_pirate.gd @@ -0,0 +1,3 @@ +extends Area2D + +var got_hat: bool = false diff --git a/scenes/quests/lore_quests/side_quest_001/2_beach/skeleton_pirate.gd.uid b/scenes/quests/lore_quests/side_quest_001/2_beach/skeleton_pirate.gd.uid new file mode 100644 index 000000000..710cd54f0 --- /dev/null +++ b/scenes/quests/lore_quests/side_quest_001/2_beach/skeleton_pirate.gd.uid @@ -0,0 +1 @@ +uid://d1ukocroowwa4 diff --git a/scenes/quests/lore_quests/side_quest_001/2_beach/skeleton_pirate.tscn b/scenes/quests/lore_quests/side_quest_001/2_beach/skeleton_pirate.tscn new file mode 100644 index 000000000..5e370d9ba --- /dev/null +++ b/scenes/quests/lore_quests/side_quest_001/2_beach/skeleton_pirate.tscn @@ -0,0 +1,50 @@ +[gd_scene format=3 uid="uid://cii1e4n5annct"] + +[ext_resource type="Script" uid="uid://d1ukocroowwa4" path="res://scenes/quests/lore_quests/side_quest_001/2_beach/skeleton_pirate.gd" id="1_1ewha"] +[ext_resource type="Texture2D" uid="uid://b2ng6qgpcyrpe" path="res://scenes/quests/lore_quests/side_quest_001/2_beach/Beach Art/skeletonTestSpriteNoShadow01.png" id="1_nrmci"] +[ext_resource type="Script" uid="uid://du8wfijr35r35" path="res://scenes/game_elements/props/interact_area/interact_area.gd" id="1_u6w37"] +[ext_resource type="Script" uid="uid://edcifob4jc4s" path="res://scenes/game_logic/talk_behavior.gd" id="2_nrmci"] +[ext_resource type="Resource" uid="uid://cne5vo2wh4hnc" path="res://scenes/quests/lore_quests/side_quest_001/2_beach/SkeletonPirate.dialogue" id="4_2blv1"] + +[sub_resource type="SpriteFrames" id="SpriteFrames_0bf00"] +animations = [{ +"frames": [{ +"duration": 1.0, +"texture": ExtResource("1_nrmci") +}], +"loop": 1, +"name": &"Skeleton_Nohat", +"speed": 5.0 +}] + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_lamb0"] +size = Vector2(52, 50) + +[node name="SkeletonPirate" type="Area2D" unique_id=557614525] +script = ExtResource("1_1ewha") + +[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="." unique_id=1138130497] +sprite_frames = SubResource("SpriteFrames_0bf00") +animation = &"Skeleton_Nohat" + +[node name="InteractArea" type="Area2D" parent="." unique_id=1740044931] +unique_name_in_owner = true +position = Vector2(0, 40) +scale = Vector2(1.7873648, 1.967568) +collision_layer = 32 +collision_mask = 0 +script = ExtResource("1_u6w37") + +[node name="CollisionShape2D" type="CollisionShape2D" parent="InteractArea" unique_id=54589182] +position = Vector2(0, -29) +shape = SubResource("RectangleShape2D_lamb0") +debug_color = Color(0.600391, 0.54335, 0, 0.42) + +[node name="TalkBehavior" type="Node" parent="." unique_id=2097537654 node_paths=PackedStringArray("interact_area", "extra_context")] +unique_name_in_owner = true +script = ExtResource("2_nrmci") +dialogue = ExtResource("4_2blv1") +title = "PirateNPC" +interact_area = NodePath("../InteractArea") +extra_context = [NodePath("..")] +metadata/_custom_type_script = "uid://edcifob4jc4s" From 6a1b3766b149fe8509f7f95063032283fae9cc63 Mon Sep 17 00:00:00 2001 From: Francisco Ortega Date: Mon, 17 Aug 2026 11:45:24 -0700 Subject: [PATCH 2/4] Add Beach skeleton and hat interation Added the skeleton pirate interaction, hat pickup dialogue, journal entry, and updated Beach scene. Added logic for returning the pirate hat and changing the skeleton's appearance. --- .../Beach Art/journalEntryTattered.png | 3 ++ .../Beach Art/journalEntryTattered.png.import | 40 +++++++++++++++++++ .../skeletonTestSpriteNoShadow02.png | 3 ++ .../skeletonTestSpriteNoShadow02.png.import | 40 +++++++++++++++++++ .../side_quest_001/2_beach/HatPickup.dialogue | 2 +- .../2_beach/ShipWrecksdio.dialogue | 2 +- .../2_beach/SkeletonPirate.dialogue | 8 +++- .../side_quest_001/2_beach/beach.tscn | 23 ++++++++++- .../2_beach/journal_entry.dialogue | 8 ++++ .../2_beach/journal_entry.dialogue.import | 16 ++++++++ .../side_quest_001/2_beach/journal_entry.tscn | 37 +++++++++++++++++ .../side_quest_001/2_beach/pirate_hat.gd | 1 + .../side_quest_001/2_beach/skeleton_pirate.gd | 11 +++++ .../2_beach/skeleton_pirate.tscn | 9 +++++ .../cinematic/cinematic_placeholder.dialogue | 3 +- 15 files changed, 201 insertions(+), 5 deletions(-) create mode 100644 scenes/quests/lore_quests/side_quest_001/2_beach/Beach Art/journalEntryTattered.png create mode 100644 scenes/quests/lore_quests/side_quest_001/2_beach/Beach Art/journalEntryTattered.png.import create mode 100644 scenes/quests/lore_quests/side_quest_001/2_beach/Beach Art/skeletonTestSpriteNoShadow02.png create mode 100644 scenes/quests/lore_quests/side_quest_001/2_beach/Beach Art/skeletonTestSpriteNoShadow02.png.import create mode 100644 scenes/quests/lore_quests/side_quest_001/2_beach/journal_entry.dialogue create mode 100644 scenes/quests/lore_quests/side_quest_001/2_beach/journal_entry.dialogue.import create mode 100644 scenes/quests/lore_quests/side_quest_001/2_beach/journal_entry.tscn diff --git a/scenes/quests/lore_quests/side_quest_001/2_beach/Beach Art/journalEntryTattered.png b/scenes/quests/lore_quests/side_quest_001/2_beach/Beach Art/journalEntryTattered.png new file mode 100644 index 000000000..03a0627b9 --- /dev/null +++ b/scenes/quests/lore_quests/side_quest_001/2_beach/Beach Art/journalEntryTattered.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4cd421a1692e0339eb467301b59110d47264f540b1708df9bb6906f3bd7a5246 +size 2246 diff --git a/scenes/quests/lore_quests/side_quest_001/2_beach/Beach Art/journalEntryTattered.png.import b/scenes/quests/lore_quests/side_quest_001/2_beach/Beach Art/journalEntryTattered.png.import new file mode 100644 index 000000000..486dd2f46 --- /dev/null +++ b/scenes/quests/lore_quests/side_quest_001/2_beach/Beach Art/journalEntryTattered.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c25ivgkejagoc" +path="res://.godot/imported/journalEntryTattered.png-275430490714e7eea1be3a5167267f58.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://scenes/quests/lore_quests/side_quest_001/2_beach/Beach Art/journalEntryTattered.png" +dest_files=["res://.godot/imported/journalEntryTattered.png-275430490714e7eea1be3a5167267f58.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/scenes/quests/lore_quests/side_quest_001/2_beach/Beach Art/skeletonTestSpriteNoShadow02.png b/scenes/quests/lore_quests/side_quest_001/2_beach/Beach Art/skeletonTestSpriteNoShadow02.png new file mode 100644 index 000000000..2905ec2bf --- /dev/null +++ b/scenes/quests/lore_quests/side_quest_001/2_beach/Beach Art/skeletonTestSpriteNoShadow02.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cb915376f75b75e0ac7ed1ae1c9f092e218b4b4edb0542e3690dd97ab53bd322 +size 3098 diff --git a/scenes/quests/lore_quests/side_quest_001/2_beach/Beach Art/skeletonTestSpriteNoShadow02.png.import b/scenes/quests/lore_quests/side_quest_001/2_beach/Beach Art/skeletonTestSpriteNoShadow02.png.import new file mode 100644 index 000000000..ebd6f9554 --- /dev/null +++ b/scenes/quests/lore_quests/side_quest_001/2_beach/Beach Art/skeletonTestSpriteNoShadow02.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cwyj8hqovd1md" +path="res://.godot/imported/skeletonTestSpriteNoShadow02.png-fc1ddd6fc68b1b23182e88afa2408f22.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://scenes/quests/lore_quests/side_quest_001/2_beach/Beach Art/skeletonTestSpriteNoShadow02.png" +dest_files=["res://.godot/imported/skeletonTestSpriteNoShadow02.png-fc1ddd6fc68b1b23182e88afa2408f22.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/scenes/quests/lore_quests/side_quest_001/2_beach/HatPickup.dialogue b/scenes/quests/lore_quests/side_quest_001/2_beach/HatPickup.dialogue index 029b0003c..5f55bc91b 100644 --- a/scenes/quests/lore_quests/side_quest_001/2_beach/HatPickup.dialogue +++ b/scenes/quests/lore_quests/side_quest_001/2_beach/HatPickup.dialogue @@ -11,5 +11,5 @@ You found the pirate hat. => END - Wear the hat - StoryWeaver: it would fit better on you than me + StoryWeaver: It would fit better on the skeleton than me... => END diff --git a/scenes/quests/lore_quests/side_quest_001/2_beach/ShipWrecksdio.dialogue b/scenes/quests/lore_quests/side_quest_001/2_beach/ShipWrecksdio.dialogue index 03505610e..b5a4ec374 100644 --- a/scenes/quests/lore_quests/side_quest_001/2_beach/ShipWrecksdio.dialogue +++ b/scenes/quests/lore_quests/side_quest_001/2_beach/ShipWrecksdio.dialogue @@ -2,5 +2,5 @@ # SPDX-License-Identifier: MPL-2.0 ~ start ~ ShipWreck -Once a pirates ship +Once a pirate's ship. => END diff --git a/scenes/quests/lore_quests/side_quest_001/2_beach/SkeletonPirate.dialogue b/scenes/quests/lore_quests/side_quest_001/2_beach/SkeletonPirate.dialogue index 55783d7d7..91915234e 100644 --- a/scenes/quests/lore_quests/side_quest_001/2_beach/SkeletonPirate.dialogue +++ b/scenes/quests/lore_quests/side_quest_001/2_beach/SkeletonPirate.dialogue @@ -4,7 +4,13 @@ ~ PirateNPC if SkeletonPirate.got_hat - Skeleton: You found my hat! + Skeleton: Thank you for finding my hat! + Skeleton: It's been a long time since I've seen another living soul step foot on these sands. + StoryWeaver introduced themselves to this mysterious new friend and asked if they knew anything about the island. + Skeleton: I can't remember much before this place. + Skeleton: All I know is that parrot flies into the jungle and only comes back to nap on my shoulder. + Skeleton: Maybe there's something worth looking for in there? + do SkeletonPirate.remove_exit_blocker() else Skeleton: Still no luck? diff --git a/scenes/quests/lore_quests/side_quest_001/2_beach/beach.tscn b/scenes/quests/lore_quests/side_quest_001/2_beach/beach.tscn index 5edd659f4..409325b9a 100644 --- a/scenes/quests/lore_quests/side_quest_001/2_beach/beach.tscn +++ b/scenes/quests/lore_quests/side_quest_001/2_beach/beach.tscn @@ -14,10 +14,15 @@ [ext_resource type="PackedScene" uid="uid://cii1e4n5annct" path="res://scenes/quests/lore_quests/side_quest_001/2_beach/skeleton_pirate.tscn" id="13_4shau"] [ext_resource type="PackedScene" uid="uid://foolusgqshyi" path="res://scenes/quests/lore_quests/side_quest_001/2_beach/ship_wreck.tscn" id="13_6ebfs"] [ext_resource type="PackedScene" uid="uid://dsctdr3u8q2xf" path="res://scenes/quests/lore_quests/side_quest_001/2_beach/parrot.tscn" id="14_ui6ug"] +[ext_resource type="PackedScene" uid="uid://ccqmhljlblxv" path="res://scenes/quests/lore_quests/side_quest_001/2_beach/journal_entry.tscn" id="15_4w5hq"] +[ext_resource type="Script" uid="uid://x1mxt6bmei2o" path="res://scenes/ui_elements/cinematic/cinematic.gd" id="16_lq7j7"] [sub_resource type="RectangleShape2D" id="RectangleShape2D_andwd"] size = Vector2(44, 929) +[sub_resource type="RectangleShape2D" id="RectangleShape2D_qk4ac"] +size = Vector2(64, 896) + [node name="Beach" type="Node2D" unique_id=1032320633] script = ExtResource("1_6ebfs") @@ -43,6 +48,7 @@ tile_set = ExtResource("5_wenvd") [node name="Void" type="TileMapLayer" parent="TileMapLayers" unique_id=360323217] texture_filter = 1 material = ExtResource("6_i43dg") +tile_map_data = PackedByteArray("AAD/////DQADAAMAAAD//wAADQADAAMAAAD//wEADQADAAMAAAD//wIADQADAAMAAAD//wMADQADAAMAAAD//wQADQADAAMAAAD//wcADQADAAMAAAD//wUADQADAAMAAAD//wYADQADAAMAAAD//wgADQADAAMAAAD//wkADQADAAMAAAD//woADQADAAMAAAD//wsADQADAAMAAAD//wwADQADAAMAAAD//w0ADQADAAMAAAAAAA0ADQADAAMAAAABAA0ADQADAAMAAAACAA0ADQADAAMAAAADAA0ADQADAAMAAAAEAA0ADQADAAMAAAAFAA0ADQADAAMAAAAGAA0ADQADAAMAAAAHAA0ADQADAAMAAAAIAA0ADQADAAMAAAAJAA0ADQADAAMAAAAKAA0ADQADAAMAAAALAA0ADQADAAMAAAAMAA0ADQADAAMAAAANAA0ADQADAAMAAAAOAA0ADQADAAMAAAAPAA0ADQADAAMAAAAQAA0ADQADAAMAAAARAA0ADQADAAMAAAASAA0ADQADAAMAAAATAA0ADQADAAMAAAAUAA0ADQADAAMAAAAVAA0ADQADAAMAAAAWAA0ADQADAAMAAAAXAA0ADQADAAMAAAAYAA0ADQADAAMAAAAZAA0ADQADAAMAAAAaAA0ADQADAAMAAAAaAAwADQADAAMAAAAaAAsADQADAAMAAAAaAAoADQADAAMAAAAaAAkADQADAAMAAAAaAAgADQADAAMAAAAaAAcADQADAAMAAAAaAAYADQADAAMAAAAaAAUADQADAAMAAAAaAAQADQADAAMAAAAaAAMADQADAAMAAAAaAAIADQADAAMAAAAaAAEADQADAAMAAAAaAAAADQADAAMAAAAaAP//DQADAAMAAAD///7/DQADAAMAAAAAAP7/DQADAAMAAAABAP7/DQADAAMAAAACAP7/DQADAAMAAAADAP7/DQADAAMAAAAEAP7/DQADAAMAAAAFAP7/DQADAAMAAAAGAP7/DQADAAMAAAAHAP7/DQADAAMAAAAIAP7/DQADAAMAAAAJAP7/DQADAAMAAAAKAP7/DQADAAMAAAALAP7/DQADAAMAAAAMAP7/DQADAAMAAAANAP7/DQADAAMAAAAOAP7/DQADAAMAAAAPAP7/DQADAAMAAAAQAP7/DQADAAMAAAARAP7/DQADAAMAAAASAP7/DQADAAMAAAATAP7/DQADAAMAAAAUAP7/DQADAAMAAAAVAP7/DQADAAMAAAAWAP7/DQADAAMAAAAXAP7/DQADAAMAAAAYAP7/DQADAAMAAAAZAP7/DQADAAMAAAAaAP7/DQADAAMAAAA=") tile_set = ExtResource("7_c4ums") [node name="OnTheGround" type="Node2D" parent="." unique_id=908085594] @@ -75,5 +81,20 @@ position = Vector2(544, 112) move_distance = 400.0 speed = 200.0 -[node name="SkeletonPirate" parent="." unique_id=557614525 instance=ExtResource("13_4shau")] +[node name="SkeletonPirate" parent="." unique_id=557614525 node_paths=PackedStringArray("exit_blocker") instance=ExtResource("13_4shau")] position = Vector2(1200, 264) +exit_blocker = NodePath("../ExitBlocker") + +[node name="JournalEntry" parent="." unique_id=1652672898 instance=ExtResource("15_4w5hq")] +position = Vector2(864, 424) + +[node name="ExitBlocker" type="StaticBody2D" parent="." unique_id=367072975] +position = Vector2(1328, 160) + +[node name="CollisionShape2D" type="CollisionShape2D" parent="ExitBlocker" unique_id=795855433] +position = Vector2(24, 224) +shape = SubResource("RectangleShape2D_qk4ac") + +[node name="Cinematic" type="Node2D" parent="." unique_id=1749248576] +script = ExtResource("16_lq7j7") +metadata/_custom_type_script = "uid://x1mxt6bmei2o" diff --git a/scenes/quests/lore_quests/side_quest_001/2_beach/journal_entry.dialogue b/scenes/quests/lore_quests/side_quest_001/2_beach/journal_entry.dialogue new file mode 100644 index 000000000..5bf63a4fa --- /dev/null +++ b/scenes/quests/lore_quests/side_quest_001/2_beach/journal_entry.dialogue @@ -0,0 +1,8 @@ +# SPDX-FileCopyrightText: The Threadbare Authors +# SPDX-License-Identifier: MPL-2.0 +~ start +~ JournalPage +A weathered piece of pachment. The ink is smudged but still legible +How many fortnights must pass before I hang up my hat? +The crew is tired. [b]Chiffon[/b] is getting restless. And the sea never ends. +I know we're close. [b]The Eternal Quilt[/b] will be mine. diff --git a/scenes/quests/lore_quests/side_quest_001/2_beach/journal_entry.dialogue.import b/scenes/quests/lore_quests/side_quest_001/2_beach/journal_entry.dialogue.import new file mode 100644 index 000000000..1c3a793d2 --- /dev/null +++ b/scenes/quests/lore_quests/side_quest_001/2_beach/journal_entry.dialogue.import @@ -0,0 +1,16 @@ +[remap] + +importer="dialogue_manager" +importer_version=15 +type="Resource" +uid="uid://sq6cwdll3llb" +path="res://.godot/imported/journal_entry.dialogue-787813751f70272f3b346081c1ef2354.tres" + +[deps] + +source_file="res://scenes/quests/lore_quests/side_quest_001/2_beach/journal_entry.dialogue" +dest_files=["res://.godot/imported/journal_entry.dialogue-787813751f70272f3b346081c1ef2354.tres"] + +[params] + +defaults=true diff --git a/scenes/quests/lore_quests/side_quest_001/2_beach/journal_entry.tscn b/scenes/quests/lore_quests/side_quest_001/2_beach/journal_entry.tscn new file mode 100644 index 000000000..34ae3e5c5 --- /dev/null +++ b/scenes/quests/lore_quests/side_quest_001/2_beach/journal_entry.tscn @@ -0,0 +1,37 @@ +[gd_scene format=3 uid="uid://ccqmhljlblxv"] + +[ext_resource type="Texture2D" uid="uid://c25ivgkejagoc" path="res://scenes/quests/lore_quests/side_quest_001/2_beach/Beach Art/journalEntryTattered.png" id="1_10ggn"] +[ext_resource type="Script" uid="uid://du8wfijr35r35" path="res://scenes/game_elements/props/interact_area/interact_area.gd" id="2_3hr8u"] +[ext_resource type="Script" uid="uid://edcifob4jc4s" path="res://scenes/game_logic/talk_behavior.gd" id="3_hqkyr"] +[ext_resource type="Resource" uid="uid://sq6cwdll3llb" path="res://scenes/quests/lore_quests/side_quest_001/2_beach/journal_entry.dialogue" id="4_koq8w"] + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_2x2dk"] +size = Vector2(52, 49.45163) + +[node name="JournalEntry" type="Node2D" unique_id=1652672898] + +[node name="Sprite2D" type="Sprite2D" parent="." unique_id=15591240] +texture = ExtResource("1_10ggn") + +[node name="InteractArea" type="Area2D" parent="." unique_id=1170026743] +unique_name_in_owner = true +position = Vector2(0, 16) +scale = Vector2(0.73374677, 0.647097) +collision_layer = 32 +collision_mask = 0 +script = ExtResource("2_3hr8u") + +[node name="CollisionShape2D" type="CollisionShape2D" parent="InteractArea" unique_id=1811495207] +position = Vector2(0, -24.725815) +scale = Vector2(0.9999999, 1) +shape = SubResource("RectangleShape2D_2x2dk") +debug_color = Color(0.600391, 0.54335, 0, 0.42) + +[node name="TalkBehavior" type="Node" parent="." unique_id=1398953044 node_paths=PackedStringArray("interact_area", "extra_context")] +unique_name_in_owner = true +script = ExtResource("3_hqkyr") +dialogue = ExtResource("4_koq8w") +title = "JournalPage" +interact_area = NodePath("../InteractArea") +extra_context = [NodePath("..")] +metadata/_custom_type_script = "uid://edcifob4jc4s" diff --git a/scenes/quests/lore_quests/side_quest_001/2_beach/pirate_hat.gd b/scenes/quests/lore_quests/side_quest_001/2_beach/pirate_hat.gd index c90c49ca4..cb004ed09 100644 --- a/scenes/quests/lore_quests/side_quest_001/2_beach/pirate_hat.gd +++ b/scenes/quests/lore_quests/side_quest_001/2_beach/pirate_hat.gd @@ -5,5 +5,6 @@ var skeleton_pirate: Node = null func give_hat_to_skeleton() -> void: if skeleton_pirate != null: skeleton_pirate.got_hat = true + skeleton_pirate.put_hat_on() hide() diff --git a/scenes/quests/lore_quests/side_quest_001/2_beach/skeleton_pirate.gd b/scenes/quests/lore_quests/side_quest_001/2_beach/skeleton_pirate.gd index 8c75d986f..410ff1978 100644 --- a/scenes/quests/lore_quests/side_quest_001/2_beach/skeleton_pirate.gd +++ b/scenes/quests/lore_quests/side_quest_001/2_beach/skeleton_pirate.gd @@ -1,3 +1,14 @@ extends Area2D var got_hat: bool = false +@export var exit_blocker: StaticBody2D +@onready var animated_sprite: AnimatedSprite2D = $AnimatedSprite2D + + +func put_hat_on() -> void: + got_hat = true + animated_sprite.play("Skeleton_withhat") + +func remove_exit_blocker() -> void: + if exit_blocker != null: + exit_blocker.queue_free() diff --git a/scenes/quests/lore_quests/side_quest_001/2_beach/skeleton_pirate.tscn b/scenes/quests/lore_quests/side_quest_001/2_beach/skeleton_pirate.tscn index 5e370d9ba..b3e3d2b9a 100644 --- a/scenes/quests/lore_quests/side_quest_001/2_beach/skeleton_pirate.tscn +++ b/scenes/quests/lore_quests/side_quest_001/2_beach/skeleton_pirate.tscn @@ -4,6 +4,7 @@ [ext_resource type="Texture2D" uid="uid://b2ng6qgpcyrpe" path="res://scenes/quests/lore_quests/side_quest_001/2_beach/Beach Art/skeletonTestSpriteNoShadow01.png" id="1_nrmci"] [ext_resource type="Script" uid="uid://du8wfijr35r35" path="res://scenes/game_elements/props/interact_area/interact_area.gd" id="1_u6w37"] [ext_resource type="Script" uid="uid://edcifob4jc4s" path="res://scenes/game_logic/talk_behavior.gd" id="2_nrmci"] +[ext_resource type="Texture2D" uid="uid://cwyj8hqovd1md" path="res://scenes/quests/lore_quests/side_quest_001/2_beach/Beach Art/skeletonTestSpriteNoShadow02.png" id="3_uivxm"] [ext_resource type="Resource" uid="uid://cne5vo2wh4hnc" path="res://scenes/quests/lore_quests/side_quest_001/2_beach/SkeletonPirate.dialogue" id="4_2blv1"] [sub_resource type="SpriteFrames" id="SpriteFrames_0bf00"] @@ -15,6 +16,14 @@ animations = [{ "loop": 1, "name": &"Skeleton_Nohat", "speed": 5.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": ExtResource("3_uivxm") +}], +"loop": 1, +"name": &"Skeleton_withhat", +"speed": 5.0 }] [sub_resource type="RectangleShape2D" id="RectangleShape2D_lamb0"] diff --git a/scenes/ui_elements/cinematic/cinematic_placeholder.dialogue b/scenes/ui_elements/cinematic/cinematic_placeholder.dialogue index 589b8ee05..9011daf2b 100644 --- a/scenes/ui_elements/cinematic/cinematic_placeholder.dialogue +++ b/scenes/ui_elements/cinematic/cinematic_placeholder.dialogue @@ -1,5 +1,6 @@ # SPDX-FileCopyrightText: The Threadbare Authors # SPDX-License-Identifier: MPL-2.0 ~ start -Replace this with dialogue for a cutscene. +The world settled once StoryWeaver found their bearings as the waves gently crashed along the shore. +No longer did the sun shine bright, as they felt the cool island sand under their feet. => END From 89cde69dd05f6d1de6a8cb19af346a77a253aef1 Mon Sep 17 00:00:00 2001 From: Francisco Ortega Date: Mon, 17 Aug 2026 12:14:35 -0700 Subject: [PATCH 3/4] Restored cinematic placeholder dialogue Added new dialogue file --- .../side_quest_001/2_beach/beach.tscn | 2 ++ .../side_quest_001/2_beach/beachintro.dialogue | 6 ++++++ .../2_beach/beachintro.dialogue.import | 16 ++++++++++++++++ .../cinematic/cinematic_placeholder.dialogue | 4 ++-- 4 files changed, 26 insertions(+), 2 deletions(-) create mode 100644 scenes/quests/lore_quests/side_quest_001/2_beach/beachintro.dialogue create mode 100644 scenes/quests/lore_quests/side_quest_001/2_beach/beachintro.dialogue.import diff --git a/scenes/quests/lore_quests/side_quest_001/2_beach/beach.tscn b/scenes/quests/lore_quests/side_quest_001/2_beach/beach.tscn index 409325b9a..3a0c04b35 100644 --- a/scenes/quests/lore_quests/side_quest_001/2_beach/beach.tscn +++ b/scenes/quests/lore_quests/side_quest_001/2_beach/beach.tscn @@ -16,6 +16,7 @@ [ext_resource type="PackedScene" uid="uid://dsctdr3u8q2xf" path="res://scenes/quests/lore_quests/side_quest_001/2_beach/parrot.tscn" id="14_ui6ug"] [ext_resource type="PackedScene" uid="uid://ccqmhljlblxv" path="res://scenes/quests/lore_quests/side_quest_001/2_beach/journal_entry.tscn" id="15_4w5hq"] [ext_resource type="Script" uid="uid://x1mxt6bmei2o" path="res://scenes/ui_elements/cinematic/cinematic.gd" id="16_lq7j7"] +[ext_resource type="Resource" uid="uid://nghenxxk6jcn" path="res://scenes/quests/lore_quests/side_quest_001/2_beach/beachintro.dialogue" id="17_r5e70"] [sub_resource type="RectangleShape2D" id="RectangleShape2D_andwd"] size = Vector2(44, 929) @@ -97,4 +98,5 @@ shape = SubResource("RectangleShape2D_qk4ac") [node name="Cinematic" type="Node2D" parent="." unique_id=1749248576] script = ExtResource("16_lq7j7") +dialogue = ExtResource("17_r5e70") metadata/_custom_type_script = "uid://x1mxt6bmei2o" diff --git a/scenes/quests/lore_quests/side_quest_001/2_beach/beachintro.dialogue b/scenes/quests/lore_quests/side_quest_001/2_beach/beachintro.dialogue new file mode 100644 index 000000000..9011daf2b --- /dev/null +++ b/scenes/quests/lore_quests/side_quest_001/2_beach/beachintro.dialogue @@ -0,0 +1,6 @@ +# SPDX-FileCopyrightText: The Threadbare Authors +# SPDX-License-Identifier: MPL-2.0 +~ start +The world settled once StoryWeaver found their bearings as the waves gently crashed along the shore. +No longer did the sun shine bright, as they felt the cool island sand under their feet. +=> END diff --git a/scenes/quests/lore_quests/side_quest_001/2_beach/beachintro.dialogue.import b/scenes/quests/lore_quests/side_quest_001/2_beach/beachintro.dialogue.import new file mode 100644 index 000000000..abc272e06 --- /dev/null +++ b/scenes/quests/lore_quests/side_quest_001/2_beach/beachintro.dialogue.import @@ -0,0 +1,16 @@ +[remap] + +importer="dialogue_manager" +importer_version=15 +type="Resource" +uid="uid://nghenxxk6jcn" +path="res://.godot/imported/beachintro.dialogue-ed7e8f449c34a95a9abbf819c7200e2a.tres" + +[deps] + +source_file="res://scenes/quests/lore_quests/side_quest_001/2_beach/beachintro.dialogue" +dest_files=["res://.godot/imported/beachintro.dialogue-ed7e8f449c34a95a9abbf819c7200e2a.tres"] + +[params] + +defaults=true diff --git a/scenes/ui_elements/cinematic/cinematic_placeholder.dialogue b/scenes/ui_elements/cinematic/cinematic_placeholder.dialogue index 9011daf2b..60af958f2 100644 --- a/scenes/ui_elements/cinematic/cinematic_placeholder.dialogue +++ b/scenes/ui_elements/cinematic/cinematic_placeholder.dialogue @@ -1,6 +1,6 @@ # SPDX-FileCopyrightText: The Threadbare Authors # SPDX-License-Identifier: MPL-2.0 ~ start -The world settled once StoryWeaver found their bearings as the waves gently crashed along the shore. -No longer did the sun shine bright, as they felt the cool island sand under their feet. +Replace this with dialogue for a cutscene. + => END From 0ac1b2a5da16ef02f5fe5d629c1957e36858859e Mon Sep 17 00:00:00 2001 From: Francisco Ortega Date: Mon, 17 Aug 2026 12:46:33 -0700 Subject: [PATCH 4/4] Update cinematic_placeholder.dialogue remove empty line --- scenes/ui_elements/cinematic/cinematic_placeholder.dialogue | 1 - 1 file changed, 1 deletion(-) diff --git a/scenes/ui_elements/cinematic/cinematic_placeholder.dialogue b/scenes/ui_elements/cinematic/cinematic_placeholder.dialogue index 60af958f2..589b8ee05 100644 --- a/scenes/ui_elements/cinematic/cinematic_placeholder.dialogue +++ b/scenes/ui_elements/cinematic/cinematic_placeholder.dialogue @@ -2,5 +2,4 @@ # SPDX-License-Identifier: MPL-2.0 ~ start Replace this with dialogue for a cutscene. - => END