Added first quests

feature/languagetool-addon
cblech 6 months ago committed by Jonathan
parent 2fbeb93018
commit abc33fd06c

@ -1,3 +1,5 @@
join vesna center
[quest_complete quest_resource="res://resources/quests/demo/2_collect_ducks.tres"]
Thats the last one. I should get back to Yeli.
[quest_activate quest_resource="res://resources/quests/demo/3_talk_yeli_2.tres"]
[end_timeline]

@ -1,8 +1,10 @@
join Yeli right
join vesna left
[quest_complete quest_resource="res://resources/quests/demo/1_talk_yeli_1.tres"]
Yeli (_part_side): Come here, you little quacking beast!
- What a mess!
- How did you call me?
Yeli (_part_side): Vesna, oh, thank goodness!
Yeli (_part_side): Please could you get the runner ducks back into their coop?
[quest_activate quest_resource="res://resources/quests/demo/2_collect_ducks.tres"]
[end_timeline]

@ -0,0 +1,4 @@
if {ACTIVEQUEST} == "1_talk_yeli_1":
jump quest1_ducks_start/
else:
No Dialog for active quest {ACTIVEQUEST}

@ -0,0 +1 @@
uid://do3c5uofv5m7b

@ -0,0 +1,12 @@
[gd_scene load_steps=3 format=3 uid="uid://bworek1jcmq0e"]
[ext_resource type="Script" uid="uid://dl2uhq12p3qks" path="res://scripts/CSharp/Common/Quest/QuestManager.cs" id="1_anowe"]
[ext_resource type="Script" uid="uid://bukwr1h3hn8sx" path="res://scripts/GdScript/dialogic_var_setter.gd" id="4_v86gc"]
[node name="QuestManager" type="Node"]
script = ExtResource("1_anowe")
[node name="DialogicRelay" type="Node" parent="."]
script = ExtResource("4_v86gc")
[connection signal="DialogicActiveQuest" from="." to="DialogicRelay" method="_SetActiveQuestVar"]

@ -29,9 +29,9 @@ SceneTransition="*res://scenes/SceneTransition.tscn"
Dialogic="*res://addons/dialogic/Core/DialogicGameHandler.gd"
InventoryManager="*res://scripts/CSharp/Common/Inventory/InventoryManager.cs"
Signal_Debugger="*res://addons/SignalVisualizer/Debugger/SignalDebugger.gd"
QuestManager="*res://scripts/CSharp/Common/Quest/QuestManager.cs"
FightManagerAutoload="*res://prefabs/fight/fight_manager_autoload.tscn"
InputService="*res://scripts/CSharp/Common/Services/InputService.cs"
QuestManager="*res://prefabs/quests/quest_manager_autoload.tscn"
[dialogic]
@ -67,6 +67,7 @@ directories/dtl_directory={
"yeli_intro_05": "res://dialog/Scene1_farm_outside/yeli_intro_05.dtl"
}
variables={
"ACTIVEQUEST": "none",
"MAGICWORD": "Hokus Pokus!s",
"PLAYERMOOD": "Good",
"SHOW": "IGF"
@ -106,6 +107,55 @@ translation/id_counter=22
translation/locales=["de", "en"]
text/autopauses={}
glossary/glossary_files=["res://dialog/farming_equipment_glossary.tres"]
directories/tres_directory={
"1_talk_yeli_1": "res://resources/quests/demo/1_talk_yeli_1.tres",
"2_collect_ducks": "res://resources/quests/demo/2_collect_ducks.tres",
"3_talk_yeli_2": "res://resources/quests/demo/3_talk_yeli_2.tres",
"Babushka_NPC_Namebox_background": "res://dialog/Babushka_NPC_Namebox_background.tres",
"InputFieldsStyle": "res://addons/dialogic/Editor/Events/styles/InputFieldsStyle.tres",
"MainTheme": "res://addons/dialogic/Editor/Theme/MainTheme.tres",
"NPC_narrative": "res://dialog/NPC_narrative.tres",
"New_File": "res://addons/dialogic/New_File.tres",
"PickerTheme": "res://addons/dialogic/Editor/Theme/PickerTheme.tres",
"ResourceMenuHover": "res://addons/dialogic/Editor/Events/styles/ResourceMenuHover.tres",
"ResourceMenuNormal": "res://addons/dialogic/Editor/Events/styles/ResourceMenuNormal.tres",
"ResourceMenuPanelBackground": "res://addons/dialogic/Editor/Events/styles/ResourceMenuPanelBackground.tres",
"SectionPanel": "res://addons/dialogic/Editor/Events/styles/SectionPanel.tres",
"SimpleButtonHover": "res://addons/dialogic/Editor/Events/styles/SimpleButtonHover.tres",
"SimpleButtonNormal": "res://addons/dialogic/Editor/Events/styles/SimpleButtonNormal.tres",
"TextBackground": "res://addons/dialogic/Editor/Events/styles/TextBackground.tres",
"TitleBgStylebox": "res://addons/dialogic/Editor/Common/TitleBgStylebox.tres",
"beet": "res://resources/items/beet.tres",
"beetRoot": "res://resources/quests/beetRoot.tres",
"choice_panel_focus": "res://addons/dialogic/Modules/DefaultLayoutParts/Layer_VN_Choices/choice_panel_focus.tres",
"choice_panel_hover": "res://addons/dialogic/Modules/DefaultLayoutParts/Layer_VN_Choices/choice_panel_hover.tres",
"choice_panel_normal": "res://addons/dialogic/Modules/DefaultLayoutParts/Layer_VN_Choices/choice_panel_normal.tres",
"default_bus_layout": "res://audio/default_bus_layout.tres",
"default_stylebox": "res://addons/dialogic/Modules/DefaultLayoutParts/Layer_SpeakerPortraitTextbox/default_stylebox.tres",
"default_vn_style": "res://addons/dialogic/Modules/DefaultLayoutParts/Style_VN_Default/default_vn_style.tres",
"farming_equipment_glossary": "res://dialog/farming_equipment_glossary.tres",
"hoe": "res://resources/items/hoe.tres",
"preview_character": "res://addons/dialogic/Modules/Character/preview_character.tres",
"rake": "res://resources/items/rake.tres",
"scythe": "res://resources/items/scythe.tres",
"selected_styleboxflat": "res://addons/dialogic/Editor/Events/styles/selected_styleboxflat.tres",
"shovel": "res://resources/items/shovel.tres",
"simple_fade": "res://addons/dialogic/Modules/Background/Transitions/Defaults/simple_fade.tres",
"simple_swipe_gradient": "res://addons/dialogic/Modules/Background/Transitions/simple_swipe_gradient.tres",
"speaker_textbox_style": "res://addons/dialogic/Modules/DefaultLayoutParts/Style_SpeakerTextbox/speaker_textbox_style.tres",
"speechbubble": "res://dialog/speechbubble.tres",
"test": "res://resources/items/test.tres",
"test_01": "res://resources/quests/test_01.tres",
"test_02": "res://resources/quests/test_02.tres",
"test_03": "res://resources/quests/test_03.tres",
"textbubble_style": "res://addons/dialogic/Modules/DefaultLayoutParts/Style_TextBubbles/textbubble_style.tres",
"tomato": "res://resources/items/tomato.tres",
"tomato_seed": "res://resources/items/tomato_seed.tres",
"unselected_stylebox": "res://addons/dialogic/Editor/Events/styles/unselected_stylebox.tres",
"vn_textbox_default_panel": "res://addons/dialogic/Modules/DefaultLayoutParts/Layer_VN_Textbox/vn_textbox_default_panel.tres",
"vn_textbox_name_label_panel": "res://addons/dialogic/Modules/DefaultLayoutParts/Layer_VN_Textbox/vn_textbox_name_label_panel.tres",
"wateringcan": "res://resources/items/wateringcan.tres"
}
[display]

@ -0,0 +1,10 @@
[gd_resource type="Resource" script_class="QuestResource" load_steps=2 format=3 uid="uid://cm8kftow8br00"]
[ext_resource type="Script" uid="uid://vji5lp4qc8pp" path="res://scripts/CSharp/Common/Quest/QuestResource.cs" id="1_xjwrv"]
[resource]
script = ExtResource("1_xjwrv")
id = "1_talk_yeli_1"
title = "Talk to Yeli"
description = ""
metadata/_custom_type_script = "uid://vji5lp4qc8pp"

@ -0,0 +1,10 @@
[gd_resource type="Resource" script_class="QuestResource" load_steps=2 format=3 uid="uid://cy0na3ukvpoou"]
[ext_resource type="Script" uid="uid://vji5lp4qc8pp" path="res://scripts/CSharp/Common/Quest/QuestResource.cs" id="1_wactd"]
[resource]
script = ExtResource("1_wactd")
id = "2_collect_ducks"
title = "Collect the Ducks"
description = "Collect all 6 ducks running around the farm by aporaching them and pressing [E]"
metadata/_custom_type_script = "uid://vji5lp4qc8pp"

@ -0,0 +1,10 @@
[gd_resource type="Resource" script_class="QuestResource" load_steps=2 format=3 uid="uid://mf0rdejw8fuk"]
[ext_resource type="Script" uid="uid://vji5lp4qc8pp" path="res://scripts/CSharp/Common/Quest/QuestResource.cs" id="1_70pjl"]
[resource]
script = ExtResource("1_70pjl")
id = "3_talk_yeil_2"
title = "Talk to Yeli again"
description = "All ducks are collected. Head back to yeli."
metadata/_custom_type_script = "uid://vji5lp4qc8pp"

@ -67,6 +67,8 @@
[ext_resource type="Script" uid="uid://d2486x6upmwqq" path="res://scripts/GdScript/dialogic_starter.gd" id="52_lwk6t"]
[ext_resource type="PackedScene" uid="uid://sbf12hin4kes" path="res://prefabs/Interactables/trash_object.tscn" id="53_ycj14"]
[ext_resource type="PackedScene" uid="uid://muuxxgvx33fp" path="res://prefabs/farm/duck.tscn" id="62_i36hd"]
[ext_resource type="Script" uid="uid://cldtt4atgymm5" path="res://scripts/CSharp/Common/Quest/QuestTrigger.cs" id="66_2065p"]
[ext_resource type="Resource" uid="uid://cm8kftow8br00" path="res://resources/quests/demo/1_talk_yeli_1.tres" id="67_tm0yg"]
[sub_resource type="ShaderMaterial" id="ShaderMaterial_wtdui"]
shader = ExtResource("13_7p0hq")
@ -1021,7 +1023,8 @@ y_sort_enabled = true
[node name="Yeli" parent="YSorted" instance=ExtResource("24_wtdui")]
position = Vector2(6403, 3362)
_timelinesToPlay = PackedStringArray("quest1_ducks_start", "quest2_tomatoes_start", "quest2_tomatoes_interim", "quest2_tomatoes_end")
_timelinesToPlay = PackedStringArray("yeli_quest_select")
_retriggerSameTimeline = true
[node name="Vesna" parent="YSorted" node_paths=PackedStringArray("_fieldParent") instance=ExtResource("1_7wfwe")]
z_index = 1
@ -2309,6 +2312,9 @@ offset_top = 0.228533
offset_right = -456.339
offset_bottom = 30.2285
[node name="Control" parent="CanvasLayer" index="3"]
visible = true
[node name="Audio" type="Node" parent="."]
[node name="Background Music Ramp up" type="AudioStreamPlayer2D" parent="Audio"]
@ -2350,6 +2356,14 @@ max_distance = 2e+07
playback_type = 2
script = ExtResource("40_w3jkj")
[node name="QuestInstantStart" type="Node" parent="."]
[node name="QuestTrigger" type="Node" parent="QuestInstantStart"]
script = ExtResource("66_2065p")
questResource = ExtResource("67_tm0yg")
toStatus = 1
makeCurrent = true
[connection signal="FilledWateringCan" from="YSorted/Vesna" to="Audio/SFX/FillWater SFX2" method="PlayOneShot"]
[connection signal="WateringField" from="YSorted/Vesna/FarmingControls" to="Audio/SFX/Watering SFX" method="PlayOneShot"]
[connection signal="InteractedTool" from="YSorted/Brünnen/InteractionArea" to="YSorted/Vesna" method="TryFillWateringCan"]
@ -2359,14 +2373,9 @@ script = ExtResource("40_w3jkj")
[connection signal="FieldCreated" from="YSorted/Farm visuals/FieldParent" to="Audio/SFX/Farming SFX" method="PlayOneShot"]
[connection signal="input_event" from="YSorted/Farm visuals/FieldParent/Area2D" to="YSorted/Vesna/FarmingControls" method="InputEventPressedOn"]
[connection signal="GoalReached" from="YSorted/ducks" to="YSorted/ducks/DialogicToggle" method="ToggleDialogue"]
[connection signal="DuckCollected" from="YSorted/ducks/Duck2" to="YSorted/ducks" method="Increment"]
[connection signal="DuckCollected" from="YSorted/ducks/Duck3" to="YSorted/ducks" method="Increment"]
[connection signal="DuckCollected" from="YSorted/ducks/Duck4" to="YSorted/ducks" method="Increment"]
[connection signal="DuckCollected" from="YSorted/ducks/Duck5" to="YSorted/ducks" method="Increment"]
[connection signal="DuckCollected" from="YSorted/ducks/Duck6" to="YSorted/ducks" method="Increment"]
[connection signal="DuckCollected" from="YSorted/ducks/Duck7" to="YSorted/ducks" method="Increment"]
[connection signal="Dialogue" from="YSorted/ducks/DialogicToggle" to="YSorted/ducks/dialogic starter" method="open"]
[connection signal="finished" from="Audio/Background Music Ramp up" to="Audio/Background Music loop" method="PlayFromOffset"]
[connection signal="ready" from="QuestInstantStart" to="QuestInstantStart/QuestTrigger" method="Trigger"]
[editable path="YSorted/Vesna"]
[editable path="YSorted/Brünnen/InteractionArea"]

@ -2256,12 +2256,6 @@ script = ExtResource("59_0knno")
[connection signal="FieldCreated" from="YSorted/Farm visuals/FieldParent" to="Audio/SFX/Farming SFX" method="PlayOneShot"]
[connection signal="input_event" from="YSorted/Farm visuals/FieldParent/Area2D" to="YSorted/Vesna/FarmingControls" method="InputEventPressedOn"]
[connection signal="GoalReached" from="YSorted/ducks" to="YSorted/ducks/DialogicToggle" method="ToggleDialogue"]
[connection signal="DuckCollected" from="YSorted/ducks/Duck2" to="YSorted/ducks" method="Increment"]
[connection signal="DuckCollected" from="YSorted/ducks/Duck3" to="YSorted/ducks" method="Increment"]
[connection signal="DuckCollected" from="YSorted/ducks/Duck4" to="YSorted/ducks" method="Increment"]
[connection signal="DuckCollected" from="YSorted/ducks/Duck5" to="YSorted/ducks" method="Increment"]
[connection signal="DuckCollected" from="YSorted/ducks/Duck6" to="YSorted/ducks" method="Increment"]
[connection signal="DuckCollected" from="YSorted/ducks/Duck7" to="YSorted/ducks" method="Increment"]
[connection signal="Dialogue" from="YSorted/ducks/DialogicToggle" to="YSorted/ducks/dialogic starter" method="open"]
[connection signal="finished" from="Audio/Background Music Ramp up" to="Audio/Background Music loop" method="PlayFromOffset"]

@ -22,7 +22,7 @@
[ext_resource type="AudioStream" uid="uid://cohyenfo1rtxh" path="res://audio/sfx/Animals/SFX_Cat_Meow_01.wav" id="16_d7yky"]
[ext_resource type="PackedScene" uid="uid://dfvgp1my5rydh" path="res://prefabs/characters/Yeli.tscn" id="16_dhsxs"]
[ext_resource type="AudioStream" uid="uid://b2cmf5ie7cwka" path="res://audio/sfx/Animals/SFX_Cat_Meow_02.wav" id="17_7a68a"]
[ext_resource type="Script" uid="uid://cvkw4qd2hxksi" path="res://scripts/GdScript/dialogic_toggle.gd" id="17_k0k8c"]
[ext_resource type="Script" path="res://scripts/GdScript/dialogic_toggle.gd" id="17_k0k8c"]
[ext_resource type="AudioStream" uid="uid://cttisejnt2l8f" path="res://audio/sfx/Animals/SFX_Cat_Meow_03.wav" id="18_dhsxs"]
[ext_resource type="Script" uid="uid://bqomwxclsbhd3" path="res://scripts/CSharp/Common/Camera/CameraController.cs" id="18_dw4nn"]
[ext_resource type="AudioStream" uid="uid://cbmagiou0n0t3" path="res://audio/sfx/Animals/SFX_Cat_Meow_04.wav" id="19_k0k8c"]
@ -30,7 +30,7 @@
[ext_resource type="Script" uid="uid://cldtt4atgymm5" path="res://scripts/CSharp/Common/Quest/QuestTrigger.cs" id="21_blyw3"]
[ext_resource type="AudioStream" uid="uid://r2f6xmjvyyjv" path="res://audio/sfx/Animals/SFX_Cat_Purr_01.wav" id="21_ytap8"]
[ext_resource type="Script" uid="uid://cfnrd5k1k0gxw" path="res://scripts/CSharp/Common/AudioPlayer.cs" id="22_tggq2"]
[ext_resource type="Resource" uid="uid://cbpurnewhyefa" path="res://resources/quests/beetRoot.tres" id="22_yd2gv"]
[ext_resource type="Resource" path="res://resources/quests/beetRoot.tres" id="22_yd2gv"]
[ext_resource type="PackedScene" uid="uid://cgjc4wurbgimy" path="res://prefabs/UI/Inventory/Inventory.tscn" id="24_yd2gv"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_a2ood"]
@ -558,7 +558,6 @@ position = Vector2(-565, 464)
[node name="dialogic_toggle" type="Node2D" parent="Yeli"]
script = ExtResource("17_k0k8c")
metadata/_custom_type_script = "uid://cvkw4qd2hxksi"
[node name="Beetroot Quest trigger" type="Node2D" parent="Yeli"]
script = ExtResource("21_blyw3")

@ -6,7 +6,7 @@
[node name="BabushkaSceneStartMenu" type="Node2D"]
script = ExtResource("1_fj2fh")
_sceneNamesToLoad = PackedStringArray("res://scenes/Babushka_scene_disclaimer.tscn")
_sceneNamesToLoad = PackedStringArray("res://scenes/Babushka_scene_farm_outside_2d.tscn")
[node name="CanvasLayer" type="CanvasLayer" parent="."]

@ -6,7 +6,7 @@ public partial class TalkingCharacter : Node2D
{
[Export] private AnimatedSprite2D? _sprite;
[Export] private string[] _timelinesToPlay;
[Export] private bool _retriggerSameTimeline = false;
private bool _isTalking = true;
private int _timelineIndex = 0;
@ -32,7 +32,8 @@ public partial class TalkingCharacter : Node2D
_sprite.Animation = "talk";
_isTalking = true;
EmitSignal(SignalName.Talking, _timelinesToPlay[_timelineIndex]);
_timelineIndex++;
if (!_retriggerSameTimeline)
_timelineIndex++;
}
if (_sprite != null)
_sprite.Play();

@ -16,13 +16,19 @@ public partial class QuestManager : Node
[Signal]
public delegate void QuestsChangedEventHandler();
[Signal]
public delegate void DialogicActiveQuestEventHandler(string value);
[Export(PropertyHint.ArrayType)]
public QuestResource[] questsAccessibleFromDialogic;
public override void _EnterTree()
{
Instance = this;
}
private Godot.Collections.Dictionary<QuestResource, QuestStatus> _questStatus = new();
private QuestResource? _followQuest;
@ -37,6 +43,7 @@ public partial class QuestManager : Node
value.status = newStatus;
EmitSignalQuestsChanged();
EmitSignalDialogicActiveQuest(_followQuest?.id ?? "none");
if (newStatus == QuestStatus.Status.Active)
{
@ -57,7 +64,7 @@ public partial class QuestManager : Node
{
if (_questStatus.TryGetValue(questResource, out var status))
return status;
status = new QuestStatus();
_questStatus.Add(questResource, status);
return status;
@ -72,5 +79,14 @@ public partial class QuestManager : Node
{
_followQuest = questResource;
EmitSignalQuestsChanged();
EmitSignalDialogicActiveQuest(_followQuest?.id ?? "none");
}
// functions to call from Dialogic
public void DlSetQuestActiveAndFollow(string questId)
{
var resource = questsAccessibleFromDialogic.First(qr => qr.id == questId);
ChangeQuestStatus(resource, QuestStatus.Status.Active);
SetFollowQuest(resource);
}
}

@ -6,10 +6,10 @@ public partial class QuestStatus : GodotObject
{
public enum Status
{
Hidden,
Active,
Done,
Canceled,
Hidden = 0,
Active = 1,
Done = 2,
Canceled = 3,
}
public Status status = Status.Hidden;

@ -0,0 +1,4 @@
extends Node
func _SetActiveQuestVar(value:String):
Dialogic.VAR.ACTIVEQUEST = value
Loading…
Cancel
Save