From 7477e701d36eb7103c356a778a0777db4c1da87e Mon Sep 17 00:00:00 2001 From: Francisco Ortega Date: Tue, 11 Aug 2026 12:58:26 -0700 Subject: [PATCH] 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"