diff --git a/assets/first_party/music/SongSanctuary.strudel.js b/assets/first_party/music/SongSanctuary.strudel.js new file mode 100644 index 000000000..a3a9736b5 --- /dev/null +++ b/assets/first_party/music/SongSanctuary.strudel.js @@ -0,0 +1,67 @@ +// @title Song Sanctuary theme +// @by Will Thompson +// Copyright The Threadbare Authors +// SPDX-License-Identifier: CC-BY-SA-4.0 +setcpm(80 / 8); + +$: stack( + s("shaker_small:8").struct("[~ x]*4"), + s("timpani:9").struct("x*2").mask("<~ x>/8"), + s("bongo:2").struct("[~ [x x?]]*8").mask("<~ x>/8"), + s("fingercymbal").struct("/2"), +).room(".8:6"); + +var bar = "<0!2 1!2 2!2 3!2 0 1 2 3 4!4>"; + +$: n( + bar.pick([ + "0@3 4 0@2 0@2", + "1@3 5 1@2 1@2", + "1@3 1 -3@2 4@2", + "0@3 4 <0 7>@3 4", + "0@3 4 <0 7>@3 4", + ]), +) + .orbit(3) + .gain(1.3) + .room(".8:4") + .scale("Ab1:major") + .sound("gm_acoustic_bass:1"); + +$: n( + bar.pick([ + "[0 9 4 7]*4", + "[1 10 5 8]*4", + "[[1 10 5 7]*2 [1 10 4 6]*2]", + "[0 9 4 7]*4", + "[0 9 4 [6|7|7|8]]*4", + ]), +) + .scale("") + .add(note(perlin.range(0, 0.1))) + .clip(3) + .sound("gm_acoustic_guitar_nylon:7") + .gain(0.5) + .pan("<.25!16 0.5!2>") + .orbit(2) + .room(".8:6") + .mask("<~ 1>/8") + .gain(0.6); + +$: n( + bar.pick([ + "[0 2@2 1] 2 ~@2", + "[1 3@2 2] 3 ~@2", + "[3@2 2 3] 1 ~@2", + "[2@2 1 2] 0 ~@2", + "[2@2 1 2] 0 ~@2", + ]), +) + .scale("Ab3:major") + .add(note(perlin.range(0, 0.1))) + .sound("kalimba:9,folkharp:3") + .gain(0.3) + .pan(0.75) + .orbit(4) + .room(".8:4") + .mask("<~ ~ x ~>/4"); diff --git a/assets/first_party/music/SongSanctuary_Full.ogg b/assets/first_party/music/SongSanctuary_Full.ogg new file mode 100644 index 000000000..8473ed493 --- /dev/null +++ b/assets/first_party/music/SongSanctuary_Full.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:55d284be7fc141a514bef65d775e9e1bbe305c1ae5484360ebfd9269450becbb +size 701730 diff --git a/assets/first_party/music/SongSanctuary_Full.ogg.import b/assets/first_party/music/SongSanctuary_Full.ogg.import new file mode 100644 index 000000000..733e42aed --- /dev/null +++ b/assets/first_party/music/SongSanctuary_Full.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://k0g7i1mv3e40" +path="res://.godot/imported/SongSanctuary_Full.ogg-5ca6e5243c6fb39d6d5e83d33d3560ac.oggvorbisstr" + +[deps] + +source_file="res://assets/first_party/music/SongSanctuary_Full.ogg" +dest_files=["res://.godot/imported/SongSanctuary_Full.ogg-5ca6e5243c6fb39d6d5e83d33d3560ac.oggvorbisstr"] + +[params] + +loop=true +loop_offset=0.0 +bpm=80.0 +beat_count=64 +bar_beats=4 diff --git a/assets/first_party/music/SongSanctuary_Step1.ogg b/assets/first_party/music/SongSanctuary_Step1.ogg new file mode 100644 index 000000000..9a369052f --- /dev/null +++ b/assets/first_party/music/SongSanctuary_Step1.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c9191e36ae81e518a1d799c9e00ea57d78187aa8ab1d740e287de88e6b22bf3e +size 165197 diff --git a/assets/first_party/music/SongSanctuary_Step1.ogg.import b/assets/first_party/music/SongSanctuary_Step1.ogg.import new file mode 100644 index 000000000..4699a1bb5 --- /dev/null +++ b/assets/first_party/music/SongSanctuary_Step1.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://blayfkg7vg4a6" +path="res://.godot/imported/SongSanctuary_Step1.ogg-7674debb48b3581a24cb1c4f1d6e3d42.oggvorbisstr" + +[deps] + +source_file="res://assets/first_party/music/SongSanctuary_Step1.ogg" +dest_files=["res://.godot/imported/SongSanctuary_Step1.ogg-7674debb48b3581a24cb1c4f1d6e3d42.oggvorbisstr"] + +[params] + +loop=true +loop_offset=6.0 +bpm=80.0 +beat_count=16 +bar_beats=4 diff --git a/assets/first_party/music/SongSanctuary_Step2.ogg b/assets/first_party/music/SongSanctuary_Step2.ogg new file mode 100644 index 000000000..8ca4a49b2 --- /dev/null +++ b/assets/first_party/music/SongSanctuary_Step2.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:23b8ee1cb4c8a935443ee7138e1f92122e29fd4c49ff8c0ba3739f0e65d2a6c0 +size 164128 diff --git a/assets/first_party/music/SongSanctuary_Step2.ogg.import b/assets/first_party/music/SongSanctuary_Step2.ogg.import new file mode 100644 index 000000000..9c47001f8 --- /dev/null +++ b/assets/first_party/music/SongSanctuary_Step2.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://cq6fkwodai236" +path="res://.godot/imported/SongSanctuary_Step2.ogg-5b720dd675fb91f5b17a02bbc9ce9a04.oggvorbisstr" + +[deps] + +source_file="res://assets/first_party/music/SongSanctuary_Step2.ogg" +dest_files=["res://.godot/imported/SongSanctuary_Step2.ogg-5b720dd675fb91f5b17a02bbc9ce9a04.oggvorbisstr"] + +[params] + +loop=true +loop_offset=6.0 +bpm=80.0 +beat_count=16 +bar_beats=4 diff --git a/assets/first_party/music/SongSanctuary_Step3.ogg b/assets/first_party/music/SongSanctuary_Step3.ogg new file mode 100644 index 000000000..220e39b4a --- /dev/null +++ b/assets/first_party/music/SongSanctuary_Step3.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6d4fa9329932cccc44d538d0286089d1e9e916a23ff522a885e08157ea4b2180 +size 163032 diff --git a/assets/first_party/music/SongSanctuary_Step3.ogg.import b/assets/first_party/music/SongSanctuary_Step3.ogg.import new file mode 100644 index 000000000..7fa5c6b60 --- /dev/null +++ b/assets/first_party/music/SongSanctuary_Step3.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://coklrcdylmkxw" +path="res://.godot/imported/SongSanctuary_Step3.ogg-7a4185473f3fac2c43a1a3233c136ff5.oggvorbisstr" + +[deps] + +source_file="res://assets/first_party/music/SongSanctuary_Step3.ogg" +dest_files=["res://.godot/imported/SongSanctuary_Step3.ogg-7a4185473f3fac2c43a1a3233c136ff5.oggvorbisstr"] + +[params] + +loop=true +loop_offset=6.0 +bpm=80.0 +beat_count=16 +bar_beats=4 diff --git a/assets/first_party/music/SongSanctuary_Step4.ogg b/assets/first_party/music/SongSanctuary_Step4.ogg new file mode 100644 index 000000000..1195931d8 --- /dev/null +++ b/assets/first_party/music/SongSanctuary_Step4.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9a18de246011f819f33ca3e31f7f7310226b5fa8e4d317366125dee123ec96e5 +size 166290 diff --git a/assets/first_party/music/SongSanctuary_Step4.ogg.import b/assets/first_party/music/SongSanctuary_Step4.ogg.import new file mode 100644 index 000000000..6900d36de --- /dev/null +++ b/assets/first_party/music/SongSanctuary_Step4.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://1iuhkbumkpab" +path="res://.godot/imported/SongSanctuary_Step4.ogg-54475b36d8f8242ee40cb1c175a57d23.oggvorbisstr" + +[deps] + +source_file="res://assets/first_party/music/SongSanctuary_Step4.ogg" +dest_files=["res://.godot/imported/SongSanctuary_Step4.ogg-54475b36d8f8242ee40cb1c175a57d23.oggvorbisstr"] + +[params] + +loop=true +loop_offset=6.0 +bpm=80.0 +beat_count=16 +bar_beats=4 diff --git a/scenes/quests/lore_quests/quest_001/1_music_puzzle/components/dialogues/musician.dialogue b/scenes/quests/lore_quests/quest_001/1_music_puzzle/components/dialogues/musician.dialogue index 003b1abe9..5047a4c3f 100644 --- a/scenes/quests/lore_quests/quest_001/1_music_puzzle/components/dialogues/musician.dialogue +++ b/scenes/quests/lore_quests/quest_001/1_music_puzzle/components/dialogues/musician.dialogue @@ -22,7 +22,7 @@ Musician: The songs can make wonderful things happen... make items or creatures Musician: Those altars? They hold the memory of each song in the ashes of their fires. Musician: Now, if I remember correctly, there's a song that used to open the portal to the Ink Well, where songwriters found the ink to write all the songs of the world. Musician: Let's see if I can remember how it works... -Musician: Try tapping the first, and second stones, then check the first altar above. If you see flames, we're on to the right melody. +Musician: Listen to each altar, and try to match its melody. If you see flames, we're on to the right melody. => END ~ hello_again @@ -46,12 +46,11 @@ Musician: Hello again, StoryWeaver. Would you like a hint? ~ hint_melody_0 match get_hint_level() when 0 - Musician: Hmmm... Try tapping the first, second, and third stones in that order. + Musician: Listen to the first altar. You should be able to hear the tune. when 1 - Musician: Even I'm forgetting in this torn world, let's see... - Musician: OK, I remember tapping the first, second, third, and fifth stones. + Musician: I think the melody starts on the second stone... else - Musician: I remember tapping the first, second, third, and fifth stones. + Musician: Now I remember! I used to tap the second stone, then the fourth, the third, and the fourth again. => END ~ hint_melody_1 @@ -62,7 +61,7 @@ match get_hint_level() when 1 Musician: The symbol seems to suggest that you need to move up one note, and repeat the first melody. else - Musician: I think that altar symbol means start with the second note... then third, fourth, and sixth. + Musician: I think that altar symbol means start with the third rock... then fifth, fourth, and fifth again. => END ~ hint_melody_2 @@ -72,7 +71,7 @@ match get_hint_level() when 1 Musician: Try playing the previous melody but in reverse. else - Musician: OK, I think it is sixth, fourth, third, and second for this one. + Musician: OK, I think it is fifth, fourth, fifth again, and third for this one. => END ~ hint_melody_3 @@ -82,7 +81,7 @@ match get_hint_level() when 1 Musician: Think about what you have already played... the answer is there. else - Musician: Play the very first melody, but in reverse. Fifth, third, second, and first should do it. + Musician: Play the very first melody, but in reverse. => END ~ item_hint diff --git a/scenes/quests/lore_quests/quest_001/1_music_puzzle/components/music_puzzle.gd b/scenes/quests/lore_quests/quest_001/1_music_puzzle/components/music_puzzle.gd new file mode 100644 index 000000000..1cd9de017 --- /dev/null +++ b/scenes/quests/lore_quests/quest_001/1_music_puzzle/components/music_puzzle.gd @@ -0,0 +1,12 @@ +# SPDX-FileCopyrightText: The Threadbare Authors +# SPDX-License-Identifier: MPL-2.0 +extends Node2D + +@onready var background_music: BackgroundMusic = %BackgroundMusic + + +func _on_sequence_puzzle_step_solved(step_index: int) -> void: + # This assumes that the clip indexes correspond to the puzzle indexes. + var stream := background_music.stream as AudioStreamInteractive + var next_clip := stream.get_clip_name(step_index + 1) + MusicPlayer.switch_to_clip(next_clip) diff --git a/scenes/quests/lore_quests/quest_001/1_music_puzzle/components/music_puzzle.gd.uid b/scenes/quests/lore_quests/quest_001/1_music_puzzle/components/music_puzzle.gd.uid new file mode 100644 index 000000000..9ebbd2856 --- /dev/null +++ b/scenes/quests/lore_quests/quest_001/1_music_puzzle/components/music_puzzle.gd.uid @@ -0,0 +1 @@ +uid://ckme5a4h5jthr diff --git a/scenes/quests/lore_quests/quest_001/1_music_puzzle/components/musical_rock.tscn b/scenes/quests/lore_quests/quest_001/1_music_puzzle/components/musical_rock.tscn index 6ee6e0cad..28bbd3e42 100644 --- a/scenes/quests/lore_quests/quest_001/1_music_puzzle/components/musical_rock.tscn +++ b/scenes/quests/lore_quests/quest_001/1_music_puzzle/components/musical_rock.tscn @@ -15,6 +15,7 @@ collision_layer = 16 collision_mask = 0 script = ExtResource("1_4t6fr") sprite_frames = ExtResource("2_56adf") +strike_duration = 0.38333333333331 [node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="." unique_id=2080006295] unique_name_in_owner = true diff --git a/scenes/quests/lore_quests/quest_001/1_music_puzzle/components/song_sanctuary_music.tres b/scenes/quests/lore_quests/quest_001/1_music_puzzle/components/song_sanctuary_music.tres new file mode 100644 index 000000000..1d4264ce2 --- /dev/null +++ b/scenes/quests/lore_quests/quest_001/1_music_puzzle/components/song_sanctuary_music.tres @@ -0,0 +1,33 @@ +[gd_resource type="AudioStreamInteractive" format=3 uid="uid://wkn0u0npcijf"] + +[ext_resource type="AudioStream" uid="uid://blayfkg7vg4a6" path="res://assets/first_party/music/SongSanctuary_Step1.ogg" id="1_ed4bk"] +[ext_resource type="AudioStream" uid="uid://cq6fkwodai236" path="res://assets/first_party/music/SongSanctuary_Step2.ogg" id="2_1g5jr"] +[ext_resource type="AudioStream" uid="uid://coklrcdylmkxw" path="res://assets/first_party/music/SongSanctuary_Step3.ogg" id="3_pourw"] +[ext_resource type="AudioStream" uid="uid://1iuhkbumkpab" path="res://assets/first_party/music/SongSanctuary_Step4.ogg" id="4_fs84w"] +[ext_resource type="AudioStream" uid="uid://k0g7i1mv3e40" path="res://assets/first_party/music/SongSanctuary_Full.ogg" id="5_ticue"] + +[resource] +clip_count = 5 +clip_0/name = &"Step1" +clip_0/stream = ExtResource("1_ed4bk") +clip_0/auto_advance = 0 +clip_1/name = &"Step2" +clip_1/stream = ExtResource("2_1g5jr") +clip_1/auto_advance = 0 +clip_2/name = &"Step3" +clip_2/stream = ExtResource("3_pourw") +clip_2/auto_advance = 0 +clip_3/name = &"Step4" +clip_3/stream = ExtResource("4_fs84w") +clip_3/auto_advance = 0 +clip_4/name = &"Full" +clip_4/stream = ExtResource("5_ticue") +clip_4/auto_advance = 0 +_transitions = { +Vector2i(-1, -1): { +"fade_beats": 0.0, +"fade_mode": 0, +"from_time": 2, +"to_time": 1 +} +} diff --git a/scenes/quests/lore_quests/quest_001/1_music_puzzle/music_puzzle.tscn b/scenes/quests/lore_quests/quest_001/1_music_puzzle/music_puzzle.tscn index a46f06aec..5acae9fbe 100644 --- a/scenes/quests/lore_quests/quest_001/1_music_puzzle/music_puzzle.tscn +++ b/scenes/quests/lore_quests/quest_001/1_music_puzzle/music_puzzle.tscn @@ -1,6 +1,7 @@ [gd_scene format=4 uid="uid://7hoy2p14t6kc"] [ext_resource type="TileSet" uid="uid://oynx002hv8tl" path="res://tiles/water.tres" id="1_ftljy"] +[ext_resource type="Script" uid="uid://ckme5a4h5jthr" path="res://scenes/quests/lore_quests/quest_001/1_music_puzzle/components/music_puzzle.gd" id="1_icnj0"] [ext_resource type="PackedScene" uid="uid://iu2q66clupc6" path="res://scenes/game_elements/characters/player/player.tscn" id="2_0ayb4"] [ext_resource type="Texture2D" uid="uid://be3845r07rhkm" path="res://scenes/game_elements/props/buildings/house/components/House_Wool_Red_Stage3.png" id="2_00t5e"] [ext_resource type="TileSet" uid="uid://bjx3gvah0ycl1" path="res://tiles/foam_2.tres" id="2_ftljy"] @@ -32,14 +33,14 @@ [ext_resource type="AudioStream" uid="uid://vgr28w2aalr1" path="res://assets/first_party/sounds/ambient/ForestAmbient.ogg" id="23_mgtd3"] [ext_resource type="SpriteFrames" uid="uid://b6doys1c3yelx" path="res://scenes/game_elements/props/decoration/bush/components/bush_spriteframes_red_small.tres" id="23_u8pjn"] [ext_resource type="AudioStream" uid="uid://cg57q82pb243w" path="res://assets/third_party/nepalese_hand_bells/handBells-c4.ogg" id="24_fgtmq"] -[ext_resource type="AudioStream" uid="uid://b83x8h0ob5mpq" path="res://assets/third_party/nepalese_hand_bells/handBells-d4.ogg" id="25_jdge0"] -[ext_resource type="AudioStream" uid="uid://cmtiwg2cylmts" path="res://assets/third_party/nepalese_hand_bells/handBells-e4.ogg" id="26_pjyxn"] -[ext_resource type="AudioStream" uid="uid://8k1hyi4gjae4" path="res://assets/third_party/nepalese_hand_bells/handBells-f4.ogg" id="27_ftljy"] -[ext_resource type="AudioStream" uid="uid://6oahn2ucxxjv" path="res://assets/third_party/nepalese_hand_bells/handBells-g4.ogg" id="28_orlow"] +[ext_resource type="AudioStream" uid="uid://dhvit65nmsp7h" path="res://assets/third_party/nepalese_hand_bells/handBells-g3.ogg" id="25_jdge0"] +[ext_resource type="AudioStream" uid="uid://bkflhi36lferi" path="res://assets/third_party/nepalese_hand_bells/handBells-g#3.ogg" id="26_pjyxn"] +[ext_resource type="AudioStream" uid="uid://cxmocxbawfhbm" path="res://assets/third_party/nepalese_hand_bells/handBells-a#3.ogg" id="27_ftljy"] [ext_resource type="SpriteFrames" uid="uid://pabpxy4b51t2" path="res://scenes/quests/lore_quests/quest_001/1_music_puzzle/components/bonfire_sign/bonfire_sign_forward.tres" id="29_crvxf"] -[ext_resource type="AudioStream" uid="uid://bdboi4ndapqec" path="res://assets/third_party/nepalese_hand_bells/handBells-a4.ogg" id="29_lbjl7"] +[ext_resource type="AudioStream" uid="uid://c46bu4sn1lpml" path="res://assets/third_party/nepalese_hand_bells/handBells-c#4.ogg" id="29_orlow"] [ext_resource type="SpriteFrames" uid="uid://ddpiw5p3lcyud" path="res://scenes/quests/lore_quests/quest_001/1_music_puzzle/components/bonfire_sign/bonfire_sign_forward_up.tres" id="30_0wfv2"] [ext_resource type="AudioStream" uid="uid://ctty20c12j0f5" path="res://assets/third_party/sounds/bonfire_sign/FireStart.ogg" id="30_55bav"] +[ext_resource type="AudioStream" uid="uid://5dtwojx17yy3" path="res://assets/third_party/nepalese_hand_bells/handBells-d#4.ogg" id="30_lbjl7"] [ext_resource type="SpriteFrames" uid="uid://d22724e7hsofa" path="res://scenes/quests/lore_quests/quest_001/1_music_puzzle/components/bonfire_sign/bonfire_sign_backward_up.tres" id="31_55bav"] [ext_resource type="AudioStream" uid="uid://c7om8kdork2rx" path="res://assets/third_party/sounds/characters/enemies/guard/Torch.ogg" id="31_ink4c"] [ext_resource type="SpriteFrames" uid="uid://cefk7kf0bpm3q" path="res://scenes/quests/lore_quests/quest_001/1_music_puzzle/components/bonfire_sign/bonfire_sign_backward.tres" id="32_0wfv2"] @@ -48,7 +49,9 @@ [ext_resource type="Script" uid="uid://edcifob4jc4s" path="res://scenes/game_logic/talk_behavior.gd" id="43_icnj0"] [ext_resource type="Resource" uid="uid://jf1tng8jxd3o" path="res://scenes/quests/lore_quests/quest_001/1_music_puzzle/components/dialogues/music_lore_helper.dialogue" id="44_pgedt"] [ext_resource type="Script" uid="uid://du8wfijr35r35" path="res://scenes/game_elements/props/interact_area/interact_area.gd" id="45_6y4lh"] +[ext_resource type="Script" uid="uid://c8405c212rbn6" path="res://scenes/game_elements/props/background_music/components/background_music.gd" id="45_ps6xw"] [ext_resource type="Script" uid="uid://diskln3jup064" path="res://scenes/game_elements/characters/npcs/components/helper_character.gd" id="46_jaqfj"] +[ext_resource type="AudioStream" uid="uid://wkn0u0npcijf" path="res://scenes/quests/lore_quests/quest_001/1_music_puzzle/components/song_sanctuary_music.tres" id="47_orlow"] [sub_resource type="Resource" id="Resource_dp3eg"] script = ExtResource("15_rxyid") @@ -70,6 +73,7 @@ _data = { point_count = 4 [node name="MusicPuzzle" type="Node2D" unique_id=1049570333] +script = ExtResource("1_icnj0") [node name="TileMapLayers" type="Node2D" parent="." unique_id=699615603] @@ -1367,6 +1371,9 @@ limit_bottom = 2048 position_smoothing_enabled = true editor_draw_limits = true +[node name="AudioListener2D" type="AudioListener2D" parent="OnTheGround/Player" unique_id=1685974923] +current = true + [node name="SequencePuzzleAssistant" parent="OnTheGround" unique_id=736222449 node_paths=PackedStringArray("puzzle") instance=ExtResource("20_jdge0")] position = Vector2(888, 865) puzzle = NodePath("../SequencePuzzle") @@ -1375,6 +1382,7 @@ look_at_side = 0 sprite_frames = ExtResource("4_8nm0x") [node name="SequencePuzzle" type="Node2D" parent="OnTheGround" unique_id=1957681156] +unique_name_in_owner = true y_sort_enabled = true position = Vector2(1410, 950) script = ExtResource("7_nonj7") @@ -1389,34 +1397,34 @@ text = "The Magical Melody y_sort_enabled = true position = Vector2(-1069, -33) -[node name="C" parent="OnTheGround/SequencePuzzle/Rocks" unique_id=224048554 instance=ExtResource("22_0awvw")] +[node name="G" parent="OnTheGround/SequencePuzzle/Rocks" unique_id=224048554 instance=ExtResource("22_0awvw")] sprite_modulate = Color(0.2937, 0.634442, 0.89, 1) -audio_stream = ExtResource("24_fgtmq") +audio_stream = ExtResource("25_jdge0") -[node name="D" parent="OnTheGround/SequencePuzzle/Rocks" unique_id=2145263970 instance=ExtResource("22_0awvw")] +[node name="Ab" parent="OnTheGround/SequencePuzzle/Rocks" unique_id=2145263970 instance=ExtResource("22_0awvw")] position = Vector2(80, -8) sprite_modulate = Color(0.89, 0.2937, 0.804817, 1) -audio_stream = ExtResource("25_jdge0") +audio_stream = ExtResource("26_pjyxn") -[node name="E" parent="OnTheGround/SequencePuzzle/Rocks" unique_id=654636490 instance=ExtResource("22_0awvw")] +[node name="Bb" parent="OnTheGround/SequencePuzzle/Rocks" unique_id=654636490 instance=ExtResource("22_0awvw")] position = Vector2(160, -16) sprite_modulate = Color(0.89, 0.804817, 0.2937, 1) -audio_stream = ExtResource("26_pjyxn") +audio_stream = ExtResource("27_ftljy") -[node name="F" parent="OnTheGround/SequencePuzzle/Rocks" unique_id=1823554115 instance=ExtResource("22_0awvw")] +[node name="C" parent="OnTheGround/SequencePuzzle/Rocks" unique_id=1823554115 instance=ExtResource("22_0awvw")] position = Vector2(240, -24) sprite_modulate = Color(0.2937, 0.89, 0.634451, 1) -audio_stream = ExtResource("27_ftljy") +audio_stream = ExtResource("24_fgtmq") -[node name="G" parent="OnTheGround/SequencePuzzle/Rocks" unique_id=1942800513 instance=ExtResource("22_0awvw")] +[node name="Db" parent="OnTheGround/SequencePuzzle/Rocks" unique_id=1942800513 instance=ExtResource("22_0awvw")] position = Vector2(320, -32) sprite_modulate = Color(0.464066, 0.2937, 0.89, 1) -audio_stream = ExtResource("28_orlow") +audio_stream = ExtResource("29_orlow") -[node name="A" parent="OnTheGround/SequencePuzzle/Rocks" unique_id=707462418 instance=ExtResource("22_0awvw")] +[node name="Eb" parent="OnTheGround/SequencePuzzle/Rocks" unique_id=707462418 instance=ExtResource("22_0awvw")] position = Vector2(400, -40) sprite_modulate = Color(0.89, 0.2937, 0.2937, 1) -audio_stream = ExtResource("29_lbjl7") +audio_stream = ExtResource("30_lbjl7") [node name="Bonfires" type="Node2D" parent="OnTheGround/SequencePuzzle" unique_id=954791934] y_sort_enabled = true @@ -1449,31 +1457,31 @@ solved_ambient_sound = ExtResource("31_ink4c") [node name="SequencePuzzleStep1" type="Node2D" parent="OnTheGround/SequencePuzzle/Steps" unique_id=960878679 node_paths=PackedStringArray("sequence", "hint_sign")] script = ExtResource("20_thpfs") -sequence = [NodePath("../../Rocks/C"), NodePath("../../Rocks/D"), NodePath("../../Rocks/E"), NodePath("../../Rocks/G")] +sequence = [NodePath("../../Rocks/Ab"), NodePath("../../Rocks/C"), NodePath("../../Rocks/Bb"), NodePath("../../Rocks/C")] hint_sign = NodePath("../../Bonfires/BonfireSign1") [node name="SequencePuzzleStep2" type="Node2D" parent="OnTheGround/SequencePuzzle/Steps" unique_id=918194050 node_paths=PackedStringArray("sequence", "hint_sign")] script = ExtResource("20_thpfs") -sequence = [NodePath("../../Rocks/D"), NodePath("../../Rocks/E"), NodePath("../../Rocks/F"), NodePath("../../Rocks/A")] +sequence = [NodePath("../../Rocks/Bb"), NodePath("../../Rocks/Db"), NodePath("../../Rocks/C"), NodePath("../../Rocks/Db")] hint_sign = NodePath("../../Bonfires/BonfireSign2") [node name="SequencePuzzleStep3" type="Node2D" parent="OnTheGround/SequencePuzzle/Steps" unique_id=813372225 node_paths=PackedStringArray("sequence", "hint_sign")] script = ExtResource("20_thpfs") -sequence = [NodePath("../../Rocks/A"), NodePath("../../Rocks/F"), NodePath("../../Rocks/E"), NodePath("../../Rocks/D")] +sequence = [NodePath("../../Rocks/Db"), NodePath("../../Rocks/C"), NodePath("../../Rocks/Db"), NodePath("../../Rocks/Bb")] hint_sign = NodePath("../../Bonfires/BonfireSign3") [node name="SequencePuzzleStep4" type="Node2D" parent="OnTheGround/SequencePuzzle/Steps" unique_id=1131686816 node_paths=PackedStringArray("sequence", "hint_sign")] script = ExtResource("20_thpfs") -sequence = [NodePath("../../Rocks/G"), NodePath("../../Rocks/E"), NodePath("../../Rocks/D"), NodePath("../../Rocks/C")] +sequence = [NodePath("../../Rocks/C"), NodePath("../../Rocks/Bb"), NodePath("../../Rocks/C"), NodePath("../../Rocks/Ab")] hint_sign = NodePath("../../Bonfires/BonfireSign4") [node name="CollectibleItem" parent="OnTheGround/SequencePuzzle" unique_id=530712613 instance=ExtResource("14_src2c")] position = Vector2(-726, 43) revealed = false -next_scene = "uid://cgemeabsewy1f" item = SubResource("Resource_dp3eg") collected_dialogue = ExtResource("6_l4i5r") dialogue_title = &"well_done" +next_scene = "uid://cgemeabsewy1f" [node name="Helper" parent="OnTheGround" unique_id=1098678013 instance=ExtResource("42_ps6xw")] position = Vector2(675, 1714) @@ -1532,10 +1540,9 @@ script = ExtResource("22_nonj7") [node name="AudioStreamPlayer2D" type="AudioStreamPlayer2D" parent="ForestSoundPath/PlayerFollower" unique_id=633215010] stream = ExtResource("23_mgtd3") -volume_db = 3.0 autoplay = true max_distance = 1000.0 -attenuation = 1.41421 +attenuation = 2.0 panning_strength = 0.0 bus = &"SFX" @@ -1550,10 +1557,18 @@ script = ExtResource("22_nonj7") [node name="AudioStreamPlayer2D" type="AudioStreamPlayer2D" parent="RiverSoundPath/PlayerFollower" unique_id=7340519] stream = ExtResource("35_l8fgn") +volume_db = -4.0 autoplay = true -max_distance = 1000.0 -attenuation = 1.41421 +max_distance = 750.0 +attenuation = 2.0 panning_strength = 0.0 bus = &"SFX" +[node name="BackgroundMusic" type="Node" parent="." unique_id=589457193] +unique_name_in_owner = true +script = ExtResource("45_ps6xw") +stream = ExtResource("47_orlow") +metadata/_custom_type_script = "uid://c8405c212rbn6" + [connection signal="solved" from="OnTheGround/SequencePuzzle" to="OnTheGround/SequencePuzzle/CollectibleItem" method="reveal"] +[connection signal="step_solved" from="OnTheGround/SequencePuzzle" to="." method="_on_sequence_puzzle_step_solved"]