From 01daddee3b5c2d7b2c591df150857044c178bff8 Mon Sep 17 00:00:00 2001 From: cblech Date: Mon, 7 Jul 2025 04:40:40 +0200 Subject: [PATCH] Made basic quest setup --- prefabs/UI/Book/Book.tscn | 20 +++++++ prefabs/UI/Quest/QuestListItem.tscn | 23 ++++++++ prefabs/UI/Quest/QuestLog.tscn | 53 +++++++++++++++++++ project.godot | 1 + resources/quests/test_01.tres | 10 ++++ resources/quests/test_02.tres | 10 ++++ resources/quests/test_03.tres | 10 ++++ scenes/testing/babushka_tests_book.tscn | 15 ++++++ .../CSharp/Common/Quest/QuestDescriptionUi.cs | 11 ++++ .../Common/Quest/QuestDescriptionUi.cs.uid | 1 + .../CSharp/Common/Quest/QuestListItemUi.cs | 33 ++++++++++++ .../Common/Quest/QuestListItemUi.cs.uid | 1 + scripts/CSharp/Common/Quest/QuestListUi.cs | 42 +++++++++++++++ .../CSharp/Common/Quest/QuestListUi.cs.uid | 1 + scripts/CSharp/Common/Quest/QuestLog.cs | 21 ++++++++ scripts/CSharp/Common/Quest/QuestLog.cs.uid | 1 + scripts/CSharp/Common/Quest/QuestManager.cs | 41 ++++++++++++++ .../CSharp/Common/Quest/QuestManager.cs.uid | 1 + scripts/CSharp/Common/Quest/QuestResource.cs | 13 +++++ .../CSharp/Common/Quest/QuestResource.cs.uid | 1 + scripts/CSharp/Common/Quest/QuestStatus.cs | 16 ++++++ .../CSharp/Common/Quest/QuestStatus.cs.uid | 1 + .../CSharp/Common/Quest/QuestTestingScript.cs | 20 +++++++ .../Common/Quest/QuestTestingScript.cs.uid | 1 + scripts/CSharp/Common/Quest/QuestTrigger.cs | 17 ++++++ .../CSharp/Common/Quest/QuestTrigger.cs.uid | 1 + scripts/CSharp/Common/Util/NodeExtension.cs | 26 +++++++++ .../CSharp/Common/Util/NodeExtension.cs.uid | 1 + 28 files changed, 392 insertions(+) create mode 100644 prefabs/UI/Book/Book.tscn create mode 100644 prefabs/UI/Quest/QuestListItem.tscn create mode 100644 prefabs/UI/Quest/QuestLog.tscn create mode 100644 resources/quests/test_01.tres create mode 100644 resources/quests/test_02.tres create mode 100644 resources/quests/test_03.tres create mode 100644 scenes/testing/babushka_tests_book.tscn create mode 100644 scripts/CSharp/Common/Quest/QuestDescriptionUi.cs create mode 100644 scripts/CSharp/Common/Quest/QuestDescriptionUi.cs.uid create mode 100644 scripts/CSharp/Common/Quest/QuestListItemUi.cs create mode 100644 scripts/CSharp/Common/Quest/QuestListItemUi.cs.uid create mode 100644 scripts/CSharp/Common/Quest/QuestListUi.cs create mode 100644 scripts/CSharp/Common/Quest/QuestListUi.cs.uid create mode 100644 scripts/CSharp/Common/Quest/QuestLog.cs create mode 100644 scripts/CSharp/Common/Quest/QuestLog.cs.uid create mode 100644 scripts/CSharp/Common/Quest/QuestManager.cs create mode 100644 scripts/CSharp/Common/Quest/QuestManager.cs.uid create mode 100644 scripts/CSharp/Common/Quest/QuestResource.cs create mode 100644 scripts/CSharp/Common/Quest/QuestResource.cs.uid create mode 100644 scripts/CSharp/Common/Quest/QuestStatus.cs create mode 100644 scripts/CSharp/Common/Quest/QuestStatus.cs.uid create mode 100644 scripts/CSharp/Common/Quest/QuestTestingScript.cs create mode 100644 scripts/CSharp/Common/Quest/QuestTestingScript.cs.uid create mode 100644 scripts/CSharp/Common/Quest/QuestTrigger.cs create mode 100644 scripts/CSharp/Common/Quest/QuestTrigger.cs.uid create mode 100644 scripts/CSharp/Common/Util/NodeExtension.cs create mode 100644 scripts/CSharp/Common/Util/NodeExtension.cs.uid diff --git a/prefabs/UI/Book/Book.tscn b/prefabs/UI/Book/Book.tscn new file mode 100644 index 0000000..c8fa1c5 --- /dev/null +++ b/prefabs/UI/Book/Book.tscn @@ -0,0 +1,20 @@ +[gd_scene load_steps=2 format=3 uid="uid://cqcs80xsgygeb"] + +[ext_resource type="PackedScene" uid="uid://2q1n6g2kj5er" path="res://prefabs/UI/Quest/QuestLog.tscn" id="1_7u5et"] + +[node name="Book" type="Control"] +layout_mode = 3 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 + +[node name="QuestLog" parent="." instance=ExtResource("1_7u5et")] +layout_mode = 1 +offset_left = 247.0 +offset_top = 72.0 +offset_right = -205.0 +offset_bottom = -76.0 +grow_horizontal = 1 +grow_vertical = 1 diff --git a/prefabs/UI/Quest/QuestListItem.tscn b/prefabs/UI/Quest/QuestListItem.tscn new file mode 100644 index 0000000..f1f55f5 --- /dev/null +++ b/prefabs/UI/Quest/QuestListItem.tscn @@ -0,0 +1,23 @@ +[gd_scene load_steps=2 format=3 uid="uid://1iqqwh7d6xoh"] + +[ext_resource type="Script" uid="uid://dwhee40ksubke" path="res://scripts/CSharp/Common/Quest/QuestListItemUi.cs" id="1_svwef"] + +[node name="QuestListItem" type="Control"] +custom_minimum_size = Vector2(0, 30) +layout_mode = 3 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +script = ExtResource("1_svwef") + +[node name="TitleButton" type="Button" parent="."] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 + +[connection signal="pressed" from="TitleButton" to="." method="ClickedTitleButton"] diff --git a/prefabs/UI/Quest/QuestLog.tscn b/prefabs/UI/Quest/QuestLog.tscn new file mode 100644 index 0000000..b1421e1 --- /dev/null +++ b/prefabs/UI/Quest/QuestLog.tscn @@ -0,0 +1,53 @@ +[gd_scene load_steps=5 format=3 uid="uid://2q1n6g2kj5er"] + +[ext_resource type="Script" uid="uid://c7ilqe2fmjyvx" path="res://scripts/CSharp/Common/Quest/QuestListUi.cs" id="1_17sli"] +[ext_resource type="Script" uid="uid://o1qpo0wdqlw3" path="res://scripts/CSharp/Common/Quest/QuestLog.cs" id="1_vc33n"] +[ext_resource type="PackedScene" uid="uid://1iqqwh7d6xoh" path="res://prefabs/UI/Quest/QuestListItem.tscn" id="2_fswdj"] +[ext_resource type="Script" uid="uid://b8mywolvj2yq7" path="res://scripts/CSharp/Common/Quest/QuestDescriptionUi.cs" id="4_1vy15"] + +[node name="QuestLog" type="Control"] +custom_minimum_size = Vector2(700, 500) +layout_mode = 3 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +offset_right = -452.0 +offset_bottom = -148.0 +grow_horizontal = 2 +grow_vertical = 2 +script = ExtResource("1_vc33n") + +[node name="LeftPage" type="Control" parent="."] +layout_mode = 1 +anchor_bottom = 1.0 +offset_right = 350.0 +grow_vertical = 2 + +[node name="VBoxContainer" type="VBoxContainer" parent="LeftPage"] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +script = ExtResource("1_17sli") +_questListItemPrefab = ExtResource("2_fswdj") + +[node name="RightPage" type="Control" parent="."] +layout_mode = 1 +anchor_left = 1.0 +anchor_right = 1.0 +anchor_bottom = 1.0 +offset_left = -350.0 +grow_vertical = 2 + +[node name="Description" type="RichTextLabel" parent="RightPage"] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +script = ExtResource("4_1vy15") + +[connection signal="DetailQuestChanged" from="." to="RightPage/Description" method="UpdateText"] diff --git a/project.godot b/project.godot index ec9601f..690ea82 100644 --- a/project.godot +++ b/project.godot @@ -27,6 +27,7 @@ buses/default_bus_layout="uid://b6dwkmkyb0axk" 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" [dialogic] diff --git a/resources/quests/test_01.tres b/resources/quests/test_01.tres new file mode 100644 index 0000000..ed1775e --- /dev/null +++ b/resources/quests/test_01.tres @@ -0,0 +1,10 @@ +[gd_resource type="Resource" script_class="QuestResource" load_steps=2 format=3 uid="uid://0aruj4lm74n6"] + +[ext_resource type="Script" uid="uid://vji5lp4qc8pp" path="res://scripts/CSharp/Common/Quest/QuestResource.cs" id="1_kisdg"] + +[resource] +script = ExtResource("1_kisdg") +id = "test_01" +title = "First Testing Quest" +description = "Do the first thing you do to complete this quest" +metadata/_custom_type_script = "uid://vji5lp4qc8pp" diff --git a/resources/quests/test_02.tres b/resources/quests/test_02.tres new file mode 100644 index 0000000..4d80320 --- /dev/null +++ b/resources/quests/test_02.tres @@ -0,0 +1,10 @@ +[gd_resource type="Resource" script_class="QuestResource" load_steps=2 format=3 uid="uid://be1dmc6d2mxl5"] + +[ext_resource type="Script" uid="uid://vji5lp4qc8pp" path="res://scripts/CSharp/Common/Quest/QuestResource.cs" id="1_t87fj"] + +[resource] +script = ExtResource("1_t87fj") +id = "test_02" +title = "Second Testing Quest" +description = "Second my ass. Do what ever. I don't care" +metadata/_custom_type_script = "uid://vji5lp4qc8pp" diff --git a/resources/quests/test_03.tres b/resources/quests/test_03.tres new file mode 100644 index 0000000..9f2ae66 --- /dev/null +++ b/resources/quests/test_03.tres @@ -0,0 +1,10 @@ +[gd_resource type="Resource" script_class="QuestResource" load_steps=2 format=3 uid="uid://tmmnsg1bge2"] + +[ext_resource type="Script" uid="uid://vji5lp4qc8pp" path="res://scripts/CSharp/Common/Quest/QuestResource.cs" id="1_y0umc"] + +[resource] +script = ExtResource("1_y0umc") +id = "test_03" +title = "Third Testing Quest" +description = "I'd like to apologize for the second quest, he has some bad manners" +metadata/_custom_type_script = "uid://vji5lp4qc8pp" diff --git a/scenes/testing/babushka_tests_book.tscn b/scenes/testing/babushka_tests_book.tscn new file mode 100644 index 0000000..3a5a51e --- /dev/null +++ b/scenes/testing/babushka_tests_book.tscn @@ -0,0 +1,15 @@ +[gd_scene load_steps=6 format=3 uid="uid://dbpsqfedlku4f"] + +[ext_resource type="PackedScene" uid="uid://cqcs80xsgygeb" path="res://prefabs/UI/Book/Book.tscn" id="1_bd7dq"] +[ext_resource type="Script" uid="uid://cg0oqug38c81n" path="res://scripts/CSharp/Common/Quest/QuestTestingScript.cs" id="2_sv6jn"] +[ext_resource type="Resource" uid="uid://0aruj4lm74n6" path="res://resources/quests/test_01.tres" id="3_nhtae"] +[ext_resource type="Resource" uid="uid://be1dmc6d2mxl5" path="res://resources/quests/test_02.tres" id="4_kr4yw"] +[ext_resource type="Resource" uid="uid://tmmnsg1bge2" path="res://resources/quests/test_03.tres" id="5_4cktu"] + +[node name="BabushkaTestsBook" type="Node"] + +[node name="Book" parent="." instance=ExtResource("1_bd7dq")] + +[node name="QuestTesting" type="Node" parent="."] +script = ExtResource("2_sv6jn") +_questsToActivate = Array[Object]([ExtResource("3_nhtae"), ExtResource("4_kr4yw"), ExtResource("5_4cktu")]) diff --git a/scripts/CSharp/Common/Quest/QuestDescriptionUi.cs b/scripts/CSharp/Common/Quest/QuestDescriptionUi.cs new file mode 100644 index 0000000..46cf256 --- /dev/null +++ b/scripts/CSharp/Common/Quest/QuestDescriptionUi.cs @@ -0,0 +1,11 @@ +using Godot; +using System; +using Babushka.scripts.CSharp.Common.Util; + +public partial class QuestDescriptionUi : RichTextLabel +{ + public void UpdateText(QuestLog questLog) + { + Text = questLog.currentDetailQuest?.description ?? ""; + } +} diff --git a/scripts/CSharp/Common/Quest/QuestDescriptionUi.cs.uid b/scripts/CSharp/Common/Quest/QuestDescriptionUi.cs.uid new file mode 100644 index 0000000..696a7ce --- /dev/null +++ b/scripts/CSharp/Common/Quest/QuestDescriptionUi.cs.uid @@ -0,0 +1 @@ +uid://b8mywolvj2yq7 diff --git a/scripts/CSharp/Common/Quest/QuestListItemUi.cs b/scripts/CSharp/Common/Quest/QuestListItemUi.cs new file mode 100644 index 0000000..7b037e6 --- /dev/null +++ b/scripts/CSharp/Common/Quest/QuestListItemUi.cs @@ -0,0 +1,33 @@ +#nullable enable +using System; +using Babushka.scripts.CSharp.Common.Util; +using Godot; +namespace Babushka.scripts.CSharp.Common.Quest; + +public partial class QuestListItemUi : Control +{ + private Button TitleButton => GetNode