diff --git a/project.godot b/project.godot index 8247cf2395..17f927a058 100644 --- a/project.godot +++ b/project.godot @@ -32,7 +32,6 @@ SceneSwitcher="*res://scenes/globals/scene_switcher/scene_switcher.gd" Transitions="*res://scenes/globals/scene_switcher/transitions/transitions.tscn" Settings="*res://scenes/globals/settings/settings.gd" MusicPlayer="*res://scenes/globals/music_player/music_player.tscn" -MenuUiPlayer="*uid://q3dc07xy31ty" CameraShake="*res://scenes/globals/camera_shaker/camera_shake.tscn" InputHelper="*res://addons/input_helper/input_helper.gd" PauseOverlay="*res://scenes/globals/pause/pause_overlay.tscn" @@ -40,6 +39,7 @@ InputHud="*res://scenes/ui_elements/input_hints/input_hud.tscn" AspectRatioDebugger="*res://scenes/globals/aspect_ratio_debugger/aspect_ratio_debugger.tscn" MouseManager="*res://scenes/globals/mouse_manager/mouse_manager.tscn" PhantomCameraManager="*uid://duq6jhf6unyis" +MenuUiPlayer="*uid://q3dc07xy31ty" [debug] @@ -82,7 +82,8 @@ enabled=PackedStringArray("res://addons/dialogue_manager/plugin.cfg", "res://add folder_colors={ "res://scenes/quests/lore_quests/": "purple", "res://scenes/quests/story_quests/": "green", -"res://scenes/quests/template_quests/NO_EDIT/": "yellow" +"res://scenes/quests/template_quests/NO_EDIT/": "yellow", +"res://temp/": "red" } [global_group] diff --git a/scenes/dev/dev_archipelago.tscn b/scenes/dev/dev_archipelago.tscn index 98f0807753..6b51698f42 100644 --- a/scenes/dev/dev_archipelago.tscn +++ b/scenes/dev/dev_archipelago.tscn @@ -61,6 +61,8 @@ [ext_resource type="Script" uid="uid://csev4hv57utxv" path="res://scenes/game_logic/walk_behaviors/character_speeds.gd" id="48_sqpij"] [ext_resource type="AudioStream" uid="uid://c1pdyoycgyb7t" path="res://scenes/dev/components/oi.wav" id="52_rs1iu"] [ext_resource type="Script" uid="uid://djeshbrs3vwnb" path="res://scenes/game_elements/characters/npcs/components/pet_interaction.gd" id="53_a3fwm"] +[ext_resource type="PackedScene" uid="uid://bjin4sdopq7rn" path="res://scenes/ui_elements/area_name/text_name_area.tscn" id="62_rl8sd"] +[ext_resource type="PackedScene" uid="uid://cfcgrfvtn04yp" path="res://scenes/ui_elements/hud/hud.tscn" id="63_71pqi"] [sub_resource type="RectangleShape2D" id="RectangleShape2D_pp1gq"] size = Vector2(64, 64) @@ -918,8 +920,20 @@ script = ExtResource("53_a3fwm") interact_area = NodePath("../InteractArea") sound_effect_player = NodePath("../AudioStreamPlayer2D") +[node name="TextNameArea" parent="." unique_id=1184526213 instance=ExtResource("62_rl8sd")] +zone_name = "Dev +Archipelago" + +[node name="CollisionPolygon2D" parent="TextNameArea/detect" parent_id_path=PackedInt32Array(1184526213, 1821875710) index="0" unique_id=1009866314] +polygon = PackedVector2Array(-828, 1210, -558, 1204, -556, 1079, -826, 1094) + +[node name="HUD" parent="." unique_id=1426591993 instance=ExtResource("63_71pqi")] +unique_name_in_owner = true + [connection signal="timeout" from="OnTheGround/Node2D/SheepVolleyball/Sheep/PlayerRepel/RepelTimer" to="OnTheGround/Node2D/SheepVolleyball/Sheep/PlayerRepel" method="repel_once"] [connection signal="timeout" from="OnTheGround/Node2D/SheepVolleyball/Sheep2/PlayerRepel2/RepelTimer2" to="OnTheGround/Node2D/SheepVolleyball" method="_on_repel_timer_2_timeout"] [connection signal="timeout" from="OnTheGround/Node2D/SheepVolleyball/Sheep2/PlayerRepel2/RepelTimer2" to="OnTheGround/Node2D/SheepVolleyball/Sheep2/PlayerRepel2" method="repel_once"] [connection signal="timeout" from="OnTheGround/Node2D/SheepVolleyball/Timer" to="OnTheGround/Node2D/SheepVolleyball/Sheep/PlayerRepel/RepelTimer" method="start"] [connection signal="timeout" from="OnTheGround/Node2D/SheepTugOfWar/TuggingSheep/Timer" to="OnTheGround/Node2D/SheepTugOfWar" method="_on_timer_timeout"] + +[editable path="TextNameArea"] diff --git a/scenes/globals/game_state/global_state.gd b/scenes/globals/game_state/global_state.gd index bc08101cdf..f69c6ff70e 100644 --- a/scenes/globals/game_state/global_state.gd +++ b/scenes/globals/game_state/global_state.gd @@ -10,6 +10,9 @@ signal completed_quests_changed ## Emitted when the [member helper] changes. signal helper_changed +## Emitted when an area's unlock status changes. +signal area_changed(area_name: String, first_visit:bool) + ## [Quest]s which the player has previously completed. Modify this with ## [method set_quest_completed_state]. @export var completed_quests: Array[Quest] @@ -51,6 +54,11 @@ signal helper_changed ## can later pick up where they left off. @export var suspended_quests: Dictionary[String, SuspendedQuestState] +## Areas unlock status +@export var unlocked_areas: Array[String] + +## Current area where the player is located +@export var current_area_name: String = "" func _validate_property(property: Dictionary) -> void: match property.name: @@ -88,3 +96,19 @@ func clear_help() -> void: helper = null helper_changed.emit() emit_changed() + + +## Create or unlock an area. +func set_unlock_area(area_name: String) -> void: + var first_visit := area_name not in unlocked_areas + + if first_visit: + unlocked_areas.append(area_name) + + area_changed.emit(area_name, first_visit) + emit_changed() + + +## Checks if an area is currently unlocked. +func is_area_unlocked(area_name: String) -> bool: + return unlocked_areas.find(area_name) diff --git a/scenes/ui_elements/area_name/components/area_name.gd b/scenes/ui_elements/area_name/components/area_name.gd new file mode 100644 index 0000000000..a0f72d94e4 --- /dev/null +++ b/scenes/ui_elements/area_name/components/area_name.gd @@ -0,0 +1,20 @@ +# SPDX-FileCopyrightText: The Threadbare Authors +# SPDX-License-Identifier: MPL-2.0 +extends Node2D + +@export_multiline var zone_name: String + +@export_range(1, 3) var time: int = 2 + + +func _on_detect_body_entered(body: Node2D) -> void: + if not body.is_in_group("player"): + return + + if GameState.global.current_area_name == zone_name: + return + + GameState.global.current_area_name = zone_name + + GameState.global.set_unlock_area(zone_name) + GameState.save() diff --git a/scenes/ui_elements/area_name/components/area_name.gd.uid b/scenes/ui_elements/area_name/components/area_name.gd.uid new file mode 100644 index 0000000000..447077a10b --- /dev/null +++ b/scenes/ui_elements/area_name/components/area_name.gd.uid @@ -0,0 +1 @@ +uid://k6j0kcn8lb1d diff --git a/scenes/ui_elements/area_name/components/first_unlock.gd b/scenes/ui_elements/area_name/components/first_unlock.gd new file mode 100644 index 0000000000..58dd480a8c --- /dev/null +++ b/scenes/ui_elements/area_name/components/first_unlock.gd @@ -0,0 +1,64 @@ +# SPDX-FileCopyrightText: The Threadbare Authors +# SPDX-License-Identifier: MPL-2.0 +extends PanelContainer + + +func _is_player_at_bottom() -> bool: + var player := get_tree().get_first_node_in_group("player") as Node2D + if not player: + return false + + var viewport := player.get_viewport() + var screen_pos: Vector2 = viewport.get_canvas_transform() * player.global_position + var viewport_size: Vector2 = viewport.get_visible_rect().size + + return screen_pos.y > viewport_size.y * 3.0 / 4.0 + +func animate_first_unlock(zona_name: String, time: int) -> void: + var label = $Label + label.text = zona_name + + # Ensure the panel is visible + show() + modulate.a = 0.0 + + # 1. Position based on the player + if _is_player_at_bottom(): + # Stuck to the TOP, centered + set_anchors_and_offsets_preset(Control.PRESET_CENTER_TOP) + grow_vertical = Control.GROW_DIRECTION_END + position.y = 20.0 + else: + # Stuck to the BOTTOM, centered (above the HUD) + set_anchors_and_offsets_preset(Control.PRESET_CENTER_BOTTOM) + grow_vertical = Control.GROW_DIRECTION_BEGIN + position.y = get_viewport_rect().size.y - size.y - 45.0 + + # Wait 1 frame for the UI to calculate its new size based on the text + await get_tree().process_frame + + # 2. Set the pivot at the center so it scales nicely + pivot_offset = size / 2.0 + scale = Vector2(0.6, 0.6) # Starts slightly smaller to scale up when appearing + + # 3. FADE IN + var tween_in := create_tween().set_parallel(true) + tween_in.tween_property(self, "modulate:a", 1.0, 0.35)\ + .set_trans(Tween.TRANS_QUAD).set_ease(Tween.EASE_OUT) + tween_in.tween_property(self, "scale", Vector2(1.0, 1.0), 0.35)\ + .set_trans(Tween.TRANS_BACK).set_ease(Tween.EASE_OUT) + + await tween_in.finished + + # 4. Keep visible for the requested time + await get_tree().create_timer(time).timeout + + # 5. FADE OUT + var tween_out := create_tween().set_parallel(true) + tween_out.tween_property(self, "modulate:a", 0.0, 0.3)\ + .set_trans(Tween.TRANS_QUAD).set_ease(Tween.EASE_IN) + tween_out.tween_property(self, "scale", Vector2(0.8, 0.8), 0.3)\ + .set_trans(Tween.TRANS_QUAD).set_ease(Tween.EASE_IN) + + await tween_out.finished + hide() diff --git a/scenes/ui_elements/area_name/components/first_unlock.gd.uid b/scenes/ui_elements/area_name/components/first_unlock.gd.uid new file mode 100644 index 0000000000..f11cd5b4e3 --- /dev/null +++ b/scenes/ui_elements/area_name/components/first_unlock.gd.uid @@ -0,0 +1 @@ +uid://c1f8uqwm124qu diff --git a/scenes/ui_elements/area_name/components/re_entry.gd b/scenes/ui_elements/area_name/components/re_entry.gd new file mode 100644 index 0000000000..e69c77b19d --- /dev/null +++ b/scenes/ui_elements/area_name/components/re_entry.gd @@ -0,0 +1,50 @@ +# SPDX-FileCopyrightText: The Threadbare Authors +# SPDX-License-Identifier: MPL-2.0 +extends PanelContainer + +@export var slide_offset_y: float = 150.0 # Amount of pixels for the slide offset[cite: 5] + +@onready var label: Label = $Label + +var _base_target_y: float = 0.0 +var _is_target_saved: bool = false + + +func _ready() -> void: + modulate.a = 0.0 + + +func animate_re_entry(zona_name: String, time: int) -> void: + show() + label.text = zona_name + + # Save base position if it hasn't been saved yet + if not _is_target_saved: + _base_target_y = position.y + _is_target_saved = true + + var target_y: float = _base_target_y + var start_y: float = target_y - abs(slide_offset_y) + + position.y = start_y + modulate.a = 0.0 + + # ENTRY + var tween_in := create_tween().set_parallel(true) + tween_in.tween_property(self, "position:y", target_y, 0.35)\ + .set_trans(Tween.TRANS_BACK).set_ease(Tween.EASE_OUT) + tween_in.tween_property(self, "modulate:a", 1.0, 0.3)\ + .set_trans(Tween.TRANS_QUAD).set_ease(Tween.EASE_OUT) + + await get_tree().create_timer(time).timeout + + # EXIT + var tween_out := create_tween().set_parallel(true) + tween_out.tween_property(self, "position:y", start_y, 0.35)\ + .set_trans(Tween.TRANS_CUBIC).set_ease(Tween.EASE_IN) + tween_out.tween_property(self, "modulate:a", 0.0, 0.3)\ + .set_trans(Tween.TRANS_QUAD).set_ease(Tween.EASE_IN) + + await tween_out.finished + position.y = target_y + hide() diff --git a/scenes/ui_elements/area_name/components/re_entry.gd.uid b/scenes/ui_elements/area_name/components/re_entry.gd.uid new file mode 100644 index 0000000000..795ebce85d --- /dev/null +++ b/scenes/ui_elements/area_name/components/re_entry.gd.uid @@ -0,0 +1 @@ +uid://qlfg2cvfb6ia diff --git a/scenes/ui_elements/area_name/first_unlock.tscn b/scenes/ui_elements/area_name/first_unlock.tscn new file mode 100644 index 0000000000..9b229434f3 --- /dev/null +++ b/scenes/ui_elements/area_name/first_unlock.tscn @@ -0,0 +1,45 @@ +[gd_scene format=3 uid="uid://ipgq27vmhsmc"] + +[ext_resource type="Script" uid="uid://c1f8uqwm124qu" path="res://scenes/ui_elements/area_name/components/first_unlock.gd" id="2_1xhrb"] + +[sub_resource type="StyleBoxTexture" id="StyleBoxTexture_si2rt"] +content_margin_left = 64.0 +content_margin_top = 48.0 +content_margin_right = 64.0 +content_margin_bottom = 64.0 +texture_margin_left = 64.0 +texture_margin_top = 64.0 +texture_margin_right = 64.0 +texture_margin_bottom = 64.0 +expand_margin_left = 16.0 +expand_margin_top = 16.0 +expand_margin_right = 16.0 +expand_margin_bottom = 16.0 +axis_stretch_horizontal = 1 +axis_stretch_vertical = 1 + +[node name="FirstUnlock" type="PanelContainer" unique_id=1838469583] +anchors_preset = 8 +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +offset_left = -126.0 +offset_top = -268.0 +offset_right = 110.0 +offset_bottom = -129.0 +grow_horizontal = 2 +grow_vertical = 2 +theme_type_variation = &"NPCRibbon" +theme_override_styles/panel = SubResource("StyleBoxTexture_si2rt") +script = ExtResource("2_1xhrb") + +[node name="Label" type="Label" parent="." unique_id=1726876452] +layout_mode = 2 +theme_override_colors/font_color = Color(0.8980392, 0.8784314, 0.8235294, 0.88235295) +theme_override_constants/shadow_offset_x = 12 +theme_override_constants/shadow_offset_y = 5 +theme_override_constants/shadow_outline_size = 10 +theme_override_font_sizes/font_size = 100 +text = "Name Zone" +horizontal_alignment = 1 diff --git a/scenes/ui_elements/area_name/re_entry.tscn b/scenes/ui_elements/area_name/re_entry.tscn new file mode 100644 index 0000000000..ce212e8e15 --- /dev/null +++ b/scenes/ui_elements/area_name/re_entry.tscn @@ -0,0 +1,33 @@ +[gd_scene format=3 uid="uid://cps4im7j5unff"] + +[ext_resource type="Script" uid="uid://qlfg2cvfb6ia" path="res://scenes/ui_elements/area_name/components/re_entry.gd" id="2_7rwir"] +[ext_resource type="Theme" uid="uid://cvitou84ni7qe" path="res://scenes/ui_elements/components/theme.tres" id="2_g8ohe"] + +[sub_resource type="StyleBoxTexture" id="StyleBoxTexture_isa5i"] +content_margin_left = 64.0 +content_margin_top = 25.0 +content_margin_right = 64.0 +content_margin_bottom = 50.0 +texture_margin_left = 64.0 +texture_margin_top = 64.0 +texture_margin_right = 64.0 +texture_margin_bottom = 64.0 +expand_margin_left = 16.0 +expand_margin_top = 45.0 +expand_margin_right = 16.0 +axis_stretch_horizontal = 1 +axis_stretch_vertical = 1 + +[node name="ReEntry" type="PanelContainer" unique_id=775249051] +theme_override_styles/panel = SubResource("StyleBoxTexture_isa5i") +script = ExtResource("2_7rwir") + +[node name="Label" type="Label" parent="." unique_id=653377466] +layout_mode = 2 +theme = ExtResource("2_g8ohe") +theme_type_variation = &"HintLabel" +theme_override_colors/font_color = Color(0.8980392, 0.8784314, 0.8235294, 0.88235295) +theme_override_constants/shadow_offset_x = 4 +theme_override_constants/shadow_outline_size = 2 +text = "Name Zone" +horizontal_alignment = 1 diff --git a/scenes/ui_elements/area_name/text_name_area.tscn b/scenes/ui_elements/area_name/text_name_area.tscn new file mode 100644 index 0000000000..1d8283d892 --- /dev/null +++ b/scenes/ui_elements/area_name/text_name_area.tscn @@ -0,0 +1,16 @@ +[gd_scene format=3 uid="uid://bjin4sdopq7rn"] + +[ext_resource type="Script" uid="uid://k6j0kcn8lb1d" path="res://scenes/ui_elements/area_name/components/area_name.gd" id="1_j0vm2"] + +[node name="TextNameArea" type="Node2D" unique_id=1184526213] +script = ExtResource("1_j0vm2") + +[node name="detect" type="Area2D" parent="." unique_id=1821875710] + +[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="detect" unique_id=1009866314] + +[node name="Timer" type="Timer" parent="." unique_id=53937746] +one_shot = true + +[connection signal="body_entered" from="detect" to="." method="_on_detect_body_entered"] +[connection signal="timeout" from="Timer" to="." method="_on_timer_timeout"] diff --git a/scenes/ui_elements/hud/components/hud.gd b/scenes/ui_elements/hud/components/hud.gd index 39f90d19a6..b314e90697 100644 --- a/scenes/ui_elements/hud/components/hud.gd +++ b/scenes/ui_elements/hud/components/hud.gd @@ -3,7 +3,31 @@ extends CanvasLayer @onready var story_quest_progress: PanelContainer = %StoryQuestProgress +@onready var re_entry: PanelContainer = %ReEntry +func _ready() -> void: + GameState.global.area_changed.connect(_on_area_changed) func change_story_quest_progress_visibility(visibility: bool) -> void: story_quest_progress.visible = visibility + +func _on_area_changed(area_name: String, first_visit: bool) -> void: + if first_visit: + await _show_first_unlock(area_name) + else: + await show_re_entry_zone(area_name) + +func _show_first_unlock(area_name: String) -> void: + var first_unlock: Control = preload( + "res://scenes/ui_elements/area_name/first_unlock.tscn" + ).instantiate() + + add_child(first_unlock) + + await first_unlock.animate_first_unlock(area_name, 2) + + first_unlock.queue_free() + + +func show_re_entry_zone(area_name: String) -> void: + await re_entry.animate_re_entry(area_name, 2) diff --git a/scenes/ui_elements/hud/hud.tscn b/scenes/ui_elements/hud/hud.tscn index 60ecd84305..42abbe311c 100644 --- a/scenes/ui_elements/hud/hud.tscn +++ b/scenes/ui_elements/hud/hud.tscn @@ -2,16 +2,24 @@ [ext_resource type="PackedScene" uid="uid://cae10mh6roenk" path="res://scenes/ui_elements/story_quest_progress/story_quest_progress.tscn" id="1_7maed"] [ext_resource type="Script" uid="uid://cqpatsiaxh1xp" path="res://scenes/ui_elements/hud/components/hud.gd" id="1_dwpju"] +[ext_resource type="PackedScene" uid="uid://cps4im7j5unff" path="res://scenes/ui_elements/area_name/re_entry.tscn" id="2_isa5i"] [node name="HUD" type="CanvasLayer" unique_id=1426591993] script = ExtResource("1_dwpju") -[node name="StoryQuestProgress" parent="." unique_id=373983898 instance=ExtResource("1_7maed")] -unique_name_in_owner = true +[node name="HBoxContainer" type="HBoxContainer" parent="." unique_id=1000774734] anchors_preset = 1 anchor_left = 1.0 anchor_right = 1.0 -offset_left = -144.0 -offset_right = 0.0 +offset_left = -228.0 offset_bottom = 128.0 grow_horizontal = 0 + +[node name="ReEntry" parent="HBoxContainer" unique_id=775249051 instance=ExtResource("2_isa5i")] +unique_name_in_owner = true +layout_mode = 2 + +[node name="StoryQuestProgress" parent="HBoxContainer" unique_id=373983898 instance=ExtResource("1_7maed")] +unique_name_in_owner = true +layout_mode = 2 +size_flags_vertical = 4 diff --git a/scenes/world_map/frays_end.tscn b/scenes/world_map/frays_end.tscn index 9a9a3a090b..b18a0f3a37 100644 --- a/scenes/world_map/frays_end.tscn +++ b/scenes/world_map/frays_end.tscn @@ -56,6 +56,7 @@ [ext_resource type="PackedScene" uid="uid://daqd67aro1o1m" path="res://scenes/game_elements/fx/time_and_weather/time_and_weather.tscn" id="55_ojao8"] [ext_resource type="Script" uid="uid://edcifob4jc4s" path="res://scenes/game_logic/talk_behavior.gd" id="56_ojao8"] [ext_resource type="Script" uid="uid://uaaaiviytliw" path="res://scenes/world_map/components/quest_progress_unlocker.gd" id="58_ojao8"] +[ext_resource type="PackedScene" uid="uid://bjin4sdopq7rn" path="res://scenes/ui_elements/area_name/text_name_area.tscn" id="59_6fau3"] [ext_resource type="Script" uid="uid://dts1hwdy3phin" path="res://scenes/menus/storybook/components/quest.gd" id="59_qgpx3"] [ext_resource type="Resource" uid="uid://t50glay2iqhg" path="res://scenes/quests/lore_quests/quest_002/quest.tres" id="60_6b07c"] [ext_resource type="Script" uid="uid://0enyu5v4ra34" path="res://scenes/game_elements/props/spawn_point/components/spawn_point.gd" id="61_6b07c"] @@ -1736,7 +1737,52 @@ position = Vector2(-955, -95) shape = SubResource("RectangleShape2D_7n6eg") debug_color = Color(0.9610079, 0, 0.5155429, 0.41960785) +[node name="LineVillePath" parent="." unique_id=1184526213 instance=ExtResource("59_6fau3")] +direcciones_salida = 87 +zone_name = "Frays end" + +[node name="CollisionPolygon2D" parent="LineVillePath/detect" parent_id_path=PackedInt32Array(1184526213, 1821875710) index="0" unique_id=1009866314] +polygon = PackedVector2Array(2937, 765, 2943, 961, 2700, 1108, 2684, 648) + +[node name="StartPath" parent="." unique_id=1388956016 instance=ExtResource("59_6fau3")] +direcciones_salida = 49 +zone_name = "Frays end" + +[node name="CollisionPolygon2D" parent="StartPath/detect" parent_id_path=PackedInt32Array(1388956016, 1821875710) index="0" unique_id=1009866314] +position = Vector2(-1, 12) +polygon = PackedVector2Array(953, 1344, 1033, 1345, 1033, 1374, 951, 1374) + +[node name="SongSanctuaryPath" parent="." unique_id=234964131 instance=ExtResource("59_6fau3")] +direcciones_salida = 194 +zone_name = "Frays end" + +[node name="CollisionPolygon2D" parent="SongSanctuaryPath/detect" parent_id_path=PackedInt32Array(234964131, 1821875710) index="0" unique_id=1009866314] +position = Vector2(-1, 12) +polygon = PackedVector2Array(2175, 280, 2834, 283, 2682, -9, 2363, -16, 2166, 164) + +[node name="DevArchipelagoPath" parent="." unique_id=1511301874 instance=ExtResource("59_6fau3")] +direcciones_salida = 49 +zone_name = "Frays end" + +[node name="CollisionPolygon2D" parent="DevArchipelagoPath/detect" parent_id_path=PackedInt32Array(1511301874, 1821875710) index="0" unique_id=1009866314] +position = Vector2(-1, 12) +polygon = PackedVector2Array(2810, 1772, 2574, 1766, 2573, 1717, 2810, 1716) + +[node name="WestEndPath" parent="." unique_id=681218199 instance=ExtResource("59_6fau3")] +direcciones_salida = 168 +zone_name = "Frays end" + +[node name="CollisionPolygon2D" parent="WestEndPath/detect" parent_id_path=PackedInt32Array(681218199, 1821875710) index="0" unique_id=1009866314] +position = Vector2(-1, 12) +polygon = PackedVector2Array(68, 615, 67, 898, 22, 895, 23, 614) + [connection signal="interaction_ended" from="OnTheGround/NPCs/Farmer/InteractArea" to="OnTheGround/NPCs/Farmer" method="_on_interact_area_interaction_ended"] [connection signal="interaction_started" from="OnTheGround/NPCs/Farmer/InteractArea" to="OnTheGround/NPCs/Farmer" method="_on_interact_area_interaction_started"] [connection signal="interaction_ended" from="OnTheGround/NPCs/GardenerA/InteractArea" to="OnTheGround/NPCs/GardenerA" method="_on_interact_area_interaction_ended"] [connection signal="interaction_started" from="OnTheGround/NPCs/GardenerA/InteractArea" to="OnTheGround/NPCs/GardenerA" method="_on_interact_area_interaction_started"] + +[editable path="LineVillePath"] +[editable path="StartPath"] +[editable path="SongSanctuaryPath"] +[editable path="DevArchipelagoPath"] +[editable path="WestEndPath"] diff --git a/scenes/world_map/frays_end_west.tscn b/scenes/world_map/frays_end_west.tscn index 93603696b8..826a3998d9 100644 --- a/scenes/world_map/frays_end_west.tscn +++ b/scenes/world_map/frays_end_west.tscn @@ -30,6 +30,8 @@ [ext_resource type="SpriteFrames" uid="uid://7yx2vrxg6ytx" path="res://scenes/game_elements/props/decoration/bush/components/bush_spriteframes_blue_large.tres" id="22_y5day"] [ext_resource type="SpriteFrames" uid="uid://c4da2w5tt3u7j" path="res://scenes/game_elements/props/decoration/bush/components/bush_spriteframes_blue_small.tres" id="23_5eaun"] [ext_resource type="PackedScene" uid="uid://c4vbokn408f2c" path="res://scenes/game_elements/props/decoration/sheep/sheep.tscn" id="23_8o6qx"] +[ext_resource type="PackedScene" uid="uid://cfcgrfvtn04yp" path="res://scenes/ui_elements/hud/hud.tscn" id="31_jbkpe"] +[ext_resource type="PackedScene" uid="uid://bjin4sdopq7rn" path="res://scenes/ui_elements/area_name/text_name_area.tscn" id="32_v5vj4"] [sub_resource type="RectangleShape2D" id="RectangleShape2D_kxo1k"] size = Vector2(52, 61) @@ -1537,3 +1539,14 @@ sprite_frames = ExtResource("23_5eaun") [node name="ScreenOverlay" type="CanvasLayer" parent="." unique_id=459703015] [node name="TimeAndWeather" parent="." unique_id=1446545037 instance=ExtResource("13_ltemt")] + +[node name="HUD" parent="." unique_id=1426591993 instance=ExtResource("31_jbkpe")] +unique_name_in_owner = true + +[node name="TextNameArea" parent="." unique_id=1184526213 instance=ExtResource("32_v5vj4")] +zone_name = "West End" + +[node name="CollisionPolygon2D" parent="TextNameArea/detect" parent_id_path=PackedInt32Array(1184526213, 1821875710) index="0" unique_id=1009866314] +polygon = PackedVector2Array(1280, 633, 1212, 631, 1210, 769, 1281, 769) + +[editable path="TextNameArea"] diff --git a/scenes/world_map/song_sanctuary_path.tscn b/scenes/world_map/song_sanctuary_path.tscn index 39ce54579a..5ad689342e 100644 --- a/scenes/world_map/song_sanctuary_path.tscn +++ b/scenes/world_map/song_sanctuary_path.tscn @@ -45,6 +45,8 @@ [ext_resource type="Script" uid="uid://bd046eokvcnu2" path="res://addons/phantom_camera/scripts/phantom_camera_host/phantom_camera_host.gd" id="38_rk4u1"] [ext_resource type="Script" uid="uid://uaaaiviytliw" path="res://scenes/world_map/components/quest_progress_unlocker.gd" id="40_bt13d"] [ext_resource type="Script" uid="uid://dts1hwdy3phin" path="res://scenes/menus/storybook/components/quest.gd" id="41_nf521"] +[ext_resource type="PackedScene" uid="uid://bjin4sdopq7rn" path="res://scenes/ui_elements/area_name/text_name_area.tscn" id="43_nf521"] +[ext_resource type="PackedScene" uid="uid://cfcgrfvtn04yp" path="res://scenes/ui_elements/hud/hud.tscn" id="44_b6uih"] [sub_resource type="Gradient" id="Gradient_d6ijo"] @@ -1293,3 +1295,15 @@ unique_name_in_owner = true script = ExtResource("40_bt13d") required_quests = Array[ExtResource("41_nf521")]([ExtResource("37_nf521")]) metadata/_custom_type_script = "uid://uaaaiviytliw" + +[node name="TextNameArea" parent="." unique_id=1184526213 instance=ExtResource("43_nf521")] +zone_name = "Song +Sanctuary" + +[node name="CollisionPolygon2D" parent="TextNameArea/detect" parent_id_path=PackedInt32Array(1184526213, 1821875710) index="0" unique_id=1009866314] +polygon = PackedVector2Array(569, 1287, 645, 1286, 645, 1311, 568, 1311) + +[node name="HUD" parent="." unique_id=1426591993 instance=ExtResource("44_b6uih")] +unique_name_in_owner = true + +[editable path="TextNameArea"]