From 4f6c5ab9c13ac7dd28ae928a84155407c0cc2287 Mon Sep 17 00:00:00 2001 From: kziolkowski Date: Wed, 17 Dec 2025 00:15:42 +0100 Subject: [PATCH] fixed some layering issues in beetroot scene and added a mock convo with the domovoi --- dialog/quests/beetroot/quest3_beets_end.dtl | 4 +-- dialog/quests/forest/quest5_forest_end.dtl | 2 +- dialog/quests/forest/quest5_forest_start.dtl | 2 +- .../tomatoes/quest2_tomatoes_interim.dtl | 6 ++-- .../quests/tomatoes/quest2_tomatoes_start.dtl | 8 ++--- dialog/testing/domovoi_tut.dtl | 8 +++++ dialog/testing/domovoi_tut.dtl.uid | 1 + prefabs/characters/Yeli.tscn | 4 +-- project.godot | 1 + scenes/scene_outside_beets.tscn | 29 +++++++++++++++---- .../CharacterControls/InteractionArea2D.cs | 11 +++++++ .../CSharp/Common/Farming/FieldBehaviour2D.cs | 2 +- 12 files changed, 58 insertions(+), 20 deletions(-) create mode 100644 dialog/testing/domovoi_tut.dtl create mode 100644 dialog/testing/domovoi_tut.dtl.uid diff --git a/dialog/quests/beetroot/quest3_beets_end.dtl b/dialog/quests/beetroot/quest3_beets_end.dtl index c67accf..b53f5cd 100644 --- a/dialog/quests/beetroot/quest3_beets_end.dtl +++ b/dialog/quests/beetroot/quest3_beets_end.dtl @@ -1,9 +1,9 @@ join Yeli right join vesna left Yeli (_part_side): Wow! So many? -Yeli (_part_side): Good job! Put it in the kettle! +Yeli (_frontal): Good job! Put it in the kettle! [wait_input] Yeli (_part_side): Mmmh! This will be something. -Yeli (_part_side): Thank you! I can take everything else from here. +Yeli (_frontal): Thank you! I can take everything else from here. Yeli (_part_side): See you for dinner! [end_timeline] diff --git a/dialog/quests/forest/quest5_forest_end.dtl b/dialog/quests/forest/quest5_forest_end.dtl index 27cfc4f..43b7b58 100644 --- a/dialog/quests/forest/quest5_forest_end.dtl +++ b/dialog/quests/forest/quest5_forest_end.dtl @@ -1,4 +1,4 @@ -join Chuga left +join Chuga center Chuga: I believe you’ve seen enough for today. Chuga: And yes, you too. Chuga: Thank you for playing! diff --git a/dialog/quests/forest/quest5_forest_start.dtl b/dialog/quests/forest/quest5_forest_start.dtl index b8ddf8e..3e0679b 100644 --- a/dialog/quests/forest/quest5_forest_start.dtl +++ b/dialog/quests/forest/quest5_forest_start.dtl @@ -2,7 +2,7 @@ join vesna left join Chuga right Chuga: Look who it is! -vesna: Your name was Chuga, right? I want to go to the forest! +vesna (half side): Your name was Chuga, right? I want to go to the forest! Chuga: To the forest? After everything the others told you? vesna: Will you let me through? Chuga: Will I? diff --git a/dialog/quests/tomatoes/quest2_tomatoes_interim.dtl b/dialog/quests/tomatoes/quest2_tomatoes_interim.dtl index 6860ab8..16bc28b 100644 --- a/dialog/quests/tomatoes/quest2_tomatoes_interim.dtl +++ b/dialog/quests/tomatoes/quest2_tomatoes_interim.dtl @@ -1,9 +1,9 @@ -join Yeli center -join vesna center +join Yeli left +join vesna right [quest_complete quest_resource="res://resources/quests/demo/5_talk_yeli_3.tres"] Yeli (_part_side): Great! Now I need you to plant some tomatoes! label plant tomatoes -Yeli (_part_side): Use the hoe to break up the soil. Then plant the seeds and water the fields. +Yeli (_frontal): Use the hoe to break up the soil. Then plant the seeds and water the fields. Yeli (_part_side): Got it? - Of course! - Wait … How do I plant the tomatoes again? diff --git a/dialog/quests/tomatoes/quest2_tomatoes_start.dtl b/dialog/quests/tomatoes/quest2_tomatoes_start.dtl index c3e9f03..8448c4d 100644 --- a/dialog/quests/tomatoes/quest2_tomatoes_start.dtl +++ b/dialog/quests/tomatoes/quest2_tomatoes_start.dtl @@ -2,11 +2,11 @@ join Yeli right join vesna left [quest_complete quest_resource="res://resources/quests/demo/3_talk_yeli_2.tres"] Yeli (_part_side): Thank you, my child! Your Yeli is not so agile anymore. -vesna: But you’re diligent! You’ve started with the preparation for dinner. -Yeli (_part_side): Indeed, I have. +vesna (half side): But you’re diligent! You’ve started with the preparation for dinner. +Yeli (_frontal): Indeed, I have. Yeli (_part_side): But, oh my, those ducks messed up the tomatos. -Yeli (_part_side): Oh, would you like to assist me? -vesna: What do I have to do? +Yeli (_frontal): Oh, would you like to assist me? +vesna (front): What do I have to do? Yeli (_part_side): First, take the hoe and watering can over there! Then come back to me! [quest_activate quest_resource="res://resources/quests/demo/4_collect_tools.tres"] [end_timeline] diff --git a/dialog/testing/domovoi_tut.dtl b/dialog/testing/domovoi_tut.dtl new file mode 100644 index 0000000..2a16dec --- /dev/null +++ b/dialog/testing/domovoi_tut.dtl @@ -0,0 +1,8 @@ +join Domovoi center +join vesna (half side) left +vesna: Hello? +... +vesna: Is someone home? +(No answer.) +vesna: Hmpf! +[end_timeline] diff --git a/dialog/testing/domovoi_tut.dtl.uid b/dialog/testing/domovoi_tut.dtl.uid new file mode 100644 index 0000000..3976afe --- /dev/null +++ b/dialog/testing/domovoi_tut.dtl.uid @@ -0,0 +1 @@ +uid://cc1hkf45dtrnj diff --git a/prefabs/characters/Yeli.tscn b/prefabs/characters/Yeli.tscn index 2201092..b62e8be 100644 --- a/prefabs/characters/Yeli.tscn +++ b/prefabs/characters/Yeli.tscn @@ -247,9 +247,9 @@ script = ExtResource("50_a7v1a") [connection signal="Talking" from="." to="Dialogic starter" method="open"] [connection signal="Interacted" from="InteractionArea" to="." method="StartTalking"] -[connection signal="Interacted" from="InteractionArea" to="InteractionArea" method="ToggleActive"] [connection signal="timelineEnded" from="Dialogic starter" to="." method="StopTalking"] -[connection signal="timelineEnded" from="Dialogic starter" to="InteractionArea" method="ToggleActive"] +[connection signal="timelineEnded" from="Dialogic starter" to="InteractionArea" method="SetActiveTrue"] +[connection signal="timelineStarted" from="Dialogic starter" to="InteractionArea" method="SetActiveFalse"] [connection signal="timelineEnded" from="DialogicToggle" to="." method="ToggleTalking"] [connection signal="timelineStarted" from="DialogicToggle" to="SFX/AudioStreamPlayer" method="PlayOneShot"] diff --git a/project.godot b/project.godot index 9640093..2edbfe7 100644 --- a/project.godot +++ b/project.godot @@ -49,6 +49,7 @@ directories/dch_directory={ } directories/dtl_directory={ "disclaimer": "res://dialog/disclaimer.dtl", +"domovoi_tut": "res://dialog/testing/domovoi_tut.dtl", "quest1_ducks_end": "res://dialog/quests/ducks/quest1_ducks_end.dtl", "quest1_ducks_start": "res://dialog/quests/ducks/quest1_ducks_start.dtl", "quest2_tomatoes_end": "res://dialog/quests/tomatoes/quest2_tomatoes_end.dtl", diff --git a/scenes/scene_outside_beets.tscn b/scenes/scene_outside_beets.tscn index b4479b2..d8b68c9 100644 --- a/scenes/scene_outside_beets.tscn +++ b/scenes/scene_outside_beets.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=98 format=3 uid="uid://b3ibx4resa1f3"] +[gd_scene load_steps=100 format=3 uid="uid://b3ibx4resa1f3"] [ext_resource type="Script" uid="uid://cssdu8viimwm6" path="res://scripts/CSharp/Common/SceneTransition.cs" id="1_6krrk"] [ext_resource type="Script" uid="uid://bqomwxclsbhd3" path="res://scripts/CSharp/Common/Camera/CameraController.cs" id="2_4ktoi"] @@ -42,7 +42,9 @@ [ext_resource type="PackedScene" uid="uid://dpbbroif2tnil" path="res://prefabs/interactions/generic_item_on_ground_2d.tscn" id="43_dr6bm"] [ext_resource type="Texture2D" uid="uid://ct7ea8ikor5rf" path="res://art/nature/grass/grass-3.png" id="43_g8k4k"] [ext_resource type="Texture2D" uid="uid://d3dwl6ph0pu1d" path="res://art/nature/grass/grass-6.png" id="44_jgrpl"] +[ext_resource type="Script" uid="uid://dnipeibppjirs" path="res://scripts/CSharp/Common/NPC/DialogicOverlayStarter.cs" id="44_m6p1o"] [ext_resource type="Texture2D" uid="uid://dmo21h14toxfu" path="res://art/indoor/indoor outdoor/domovoi.png" id="44_njxly"] +[ext_resource type="Script" uid="uid://d2486x6upmwqq" path="res://scripts/GdScript/dialogic_starter.gd" id="45_1ly1s"] [ext_resource type="Texture2D" uid="uid://blb3agipyxnal" path="res://art/farm/farming/farmobjekte/zaun/fence_door.png" id="47_xfjh2"] [ext_resource type="PackedScene" uid="uid://cgjc4wurbgimy" path="res://prefabs/UI/Inventory/Inventory.tscn" id="52_gwhnv"] [ext_resource type="AudioStream" uid="uid://dku1rq5cocisg" path="res://audio/Music/Farming_90BPM_69Bars.wav" id="53_2tfpr"] @@ -1237,7 +1239,6 @@ region_enabled = true region_rect = Rect2(0, 604, 248, 228) [node name="bush23" type="Sprite2D" parent="YSorted/Farm visuals/Static/greenery/left side"] -z_index = 1 y_sort_enabled = true material = SubResource("ShaderMaterial_bcdgk") position = Vector2(15022, 3301) @@ -1249,7 +1250,7 @@ region_rect = Rect2(1837, 651, 139, 180) [node name="bush24" type="Sprite2D" parent="YSorted/Farm visuals/Static/greenery/left side"] modulate = Color(0.8428, 0.8771, 0.98, 1) -z_index = 2 +z_index = -1 y_sort_enabled = true material = SubResource("ShaderMaterial_bcdgk") position = Vector2(15973, 3380) @@ -1370,6 +1371,7 @@ region_enabled = true region_rect = Rect2(130, 0, 201, 278) [node name="bush17" type="Sprite2D" parent="YSorted/Farm visuals/Static/greenery/right side"] +z_index = 3 material = SubResource("ShaderMaterial_bcdgk") position = Vector2(5599, 3799) scale = Vector2(-2.40318, 3.59175) @@ -1398,13 +1400,13 @@ region_enabled = true region_rect = Rect2(1837, 651, 139, 180) [node name="Sonnenblume8" type="Sprite2D" parent="YSorted/Farm visuals/Static/greenery/right side"] -z_index = 1 +z_index = -5 y_sort_enabled = true material = SubResource("ShaderMaterial_618my") -position = Vector2(5146, 1935) +position = Vector2(5187.001, 1864.0001) scale = Vector2(0.373695, 0.388829) texture = ExtResource("38_0bsmo") -offset = Vector2(0, -800) +offset = Vector2(-109.7168, -617.4004) region_enabled = true region_rect = Rect2(0, 0, 1440, 1576) @@ -2076,6 +2078,17 @@ texture = ExtResource("44_njxly") region_enabled = true region_rect = Rect2(65, 149, 223, 375) +[node name="InteractionArea" parent="YSorted/domovoi" node_paths=PackedStringArray("_spritesToOutline") instance=ExtResource("31_xcb8u")] +_spritesToOutline = [NodePath("..")] + +[node name="dialogic overlay starter" type="Node2D" parent="YSorted/domovoi"] +script = ExtResource("44_m6p1o") +_timelinesToPlay = PackedStringArray("domovoi_tut") +_startOnReady = false + +[node name="dialogic starter" type="Node" parent="YSorted/domovoi/dialogic overlay starter"] +script = ExtResource("45_1ly1s") + [node name="WateringCan" parent="YSorted" instance=ExtResource("43_dr6bm")] position = Vector2(5220, 2108) @@ -2163,6 +2176,10 @@ script = ExtResource("59_njxly") [connection signal="FilledWateringCan" from="YSorted/Vesna" to="Audio/SFX/FillWater SFX2" method="PlayOneShot"] [connection signal="InteractedTool" from="YSorted/Brünnen/InteractionArea" to="YSorted/Vesna" method="TryFillWateringCan"] [connection signal="InteractedTool" from="YSorted/Blocker/BackToFarm" to="." method="LoadSceneAtIndex"] +[connection signal="Interacted" from="YSorted/domovoi/InteractionArea" to="YSorted/domovoi/dialogic overlay starter" method="ToggleDialogue"] +[connection signal="Dialogue" from="YSorted/domovoi/dialogic overlay starter" to="YSorted/domovoi/dialogic overlay starter/dialogic starter" method="open"] +[connection signal="timelineEnded" from="YSorted/domovoi/dialogic overlay starter/dialogic starter" to="YSorted/domovoi/InteractionArea" method="SetActiveTrue"] +[connection signal="timelineStarted" from="YSorted/domovoi/dialogic overlay starter/dialogic starter" to="YSorted/domovoi/InteractionArea" method="SetActiveFalse"] [connection signal="finished" from="Audio/Background Music Ramp up" to="Audio/Background Music loop" method="PlayFromOffset"] [connection signal="tree_entered" from="SceneNameSetter" to="SceneNameSetter" method="Set"] diff --git a/scripts/CSharp/Common/CharacterControls/InteractionArea2D.cs b/scripts/CSharp/Common/CharacterControls/InteractionArea2D.cs index 7c5e9c8..7fc601a 100644 --- a/scripts/CSharp/Common/CharacterControls/InteractionArea2D.cs +++ b/scripts/CSharp/Common/CharacterControls/InteractionArea2D.cs @@ -131,9 +131,20 @@ public partial class InteractionArea2D : Node2D public void ToggleActive() { + GD.Print($"Toggle active {GetParent().Name}: {!_active}"); _active = !_active; _label.Hide(); } + public void SetActiveTrue() + { + IsActive = true; + } + + public void SetActiveFalse() + { + IsActive = false; + } + } \ No newline at end of file diff --git a/scripts/CSharp/Common/Farming/FieldBehaviour2D.cs b/scripts/CSharp/Common/Farming/FieldBehaviour2D.cs index b27f55f..f747986 100644 --- a/scripts/CSharp/Common/Farming/FieldBehaviour2D.cs +++ b/scripts/CSharp/Common/Farming/FieldBehaviour2D.cs @@ -58,7 +58,7 @@ public partial class FieldBehaviour2D : Sprite2D, ISaveable private void UpdateInteractionArea() { // fieldstate == tilled / watered && samen im Inventar - _canPlant = (FieldState == FieldState.Tilled || FieldState == FieldState.Watered) && _seedsActive; + _canPlant = (FieldState == FieldState.Tilled || FieldState == FieldState.Watered) && _seedsActive && !IsPlanted; // fieldstate == tilled && watering can ausgewählt _canWater = (FieldState == FieldState.Tilled || IsPlanted) && _wateringCanActive && WateringCanState.GetFillState() > 0;