From 1b129ed0507a8b3fad5223adb83f8b3d3d28691f Mon Sep 17 00:00:00 2001 From: cblech Date: Sun, 6 Jul 2025 17:56:59 +0200 Subject: [PATCH] Made quest usable --- prefabs/UI/Inventory/Inventory.tscn | 74 ++++++- prefabs/UI/Quest/QuestListItem.tscn | 1 + prefabs/UI/Quest/QuestLog.tscn | 2 + scenes/testing/babushka_tests_quests.tscn | 202 ++++++++++++++++++ scripts/CSharp/Common/Quest/PopUpPostIt.cs | 22 ++ .../CSharp/Common/Quest/PopUpPostIt.cs.uid | 1 + .../CSharp/Common/Quest/QuestListItemUi.cs | 12 +- scripts/CSharp/Common/Quest/QuestListUi.cs | 10 +- scripts/CSharp/Common/Quest/QuestLog.cs | 14 +- scripts/CSharp/Common/Quest/QuestManager.cs | 37 +++- .../CSharp/Common/Quest/QuestMessagePopup.cs | 88 ++++++++ .../Common/Quest/QuestMessagePopup.cs.uid | 1 + scripts/CSharp/Common/Quest/QuestTrigger.cs | 18 +- 13 files changed, 463 insertions(+), 19 deletions(-) create mode 100644 scenes/testing/babushka_tests_quests.tscn create mode 100644 scripts/CSharp/Common/Quest/PopUpPostIt.cs create mode 100644 scripts/CSharp/Common/Quest/PopUpPostIt.cs.uid create mode 100644 scripts/CSharp/Common/Quest/QuestMessagePopup.cs create mode 100644 scripts/CSharp/Common/Quest/QuestMessagePopup.cs.uid diff --git a/prefabs/UI/Inventory/Inventory.tscn b/prefabs/UI/Inventory/Inventory.tscn index fba388b..102bf8f 100644 --- a/prefabs/UI/Inventory/Inventory.tscn +++ b/prefabs/UI/Inventory/Inventory.tscn @@ -1,20 +1,21 @@ -[gd_scene load_steps=7 format=3 uid="uid://cgjc4wurbgimy"] +[gd_scene load_steps=8 format=3 uid="uid://cgjc4wurbgimy"] [ext_resource type="Script" uid="uid://hg7jay2kt441" path="res://scripts/CSharp/Common/Inventory/InventoryUi.cs" id="1_6wusm"] [ext_resource type="Texture2D" uid="uid://3ln8aleyxgp1" path="res://art/ui/UI/UI_bag_export_01.png" id="3_vvo7l"] [ext_resource type="Texture2D" uid="uid://dcidjcsqk12p1" path="res://art/ui/UI/UI_bag_export_02.png" id="4_df8i8"] [ext_resource type="Texture2D" uid="uid://c7wqla0mbu3np" path="res://art/ui/babushka_ui_tmp_inventory_select.png" id="4_tiss4"] [ext_resource type="PackedScene" uid="uid://c0kmdjeqkqrwv" path="res://prefabs/UI/Inventory/Slot.tscn" id="5_u7kje"] -[ext_resource type="Script" uid="uid://cvkw4qd2hxksi" path="res://scripts/GdScript/dialogic_toggle.gd" id="6_n5apg"] +[ext_resource type="Script" uid="uid://7wwid23tc8as" path="res://scripts/CSharp/Common/Quest/QuestMessagePopup.cs" id="6_n5apg"] + +[sub_resource type="LabelSettings" id="LabelSettings_tiss4"] +font_size = 22 +font_color = Color(0, 0, 0, 1) [node name="CanvasLayer" type="CanvasLayer"] layer = 90 -follow_viewport_enabled = true -[node name="DialogicToggle" type="Node2D" parent="." node_paths=PackedStringArray("itemToToggle")] +[node name="DialogicToggle" type="Node2D" parent="."] scale = Vector2(0.7, 0.7) -script = ExtResource("6_n5apg") -itemToToggle = NodePath("../Inventory") [node name="Inventory" type="Control" parent="."] layout_mode = 3 @@ -23,19 +24,19 @@ anchor_right = 1.0 anchor_bottom = 1.0 grow_horizontal = 2 grow_vertical = 2 -scale = Vector2(0.7, 0.7) script = ExtResource("1_6wusm") metadata/_edit_use_anchors_ = true [node name="SlotsContainer" type="Control" parent="Inventory"] -custom_minimum_size = Vector2(500, 0) layout_mode = 1 -anchors_preset = 13 +anchors_preset = 7 anchor_left = 0.5 +anchor_top = 1.0 anchor_right = 0.5 anchor_bottom = 1.0 grow_horizontal = 2 -grow_vertical = 2 +grow_vertical = 0 +scale = Vector2(0.7, 0.7) [node name="SlotSelectContainer" type="Control" parent="Inventory/SlotsContainer"] custom_minimum_size = Vector2(900, 100) @@ -371,3 +372,56 @@ offset_left = 703.0 offset_top = 512.0 offset_right = 803.0 offset_bottom = 612.0 + +[node name="Messages" type="Control" parent="."] +layout_mode = 3 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 + +[node name="MessageContainer" type="Control" parent="Messages"] +layout_mode = 1 +anchors_preset = 2 +anchor_top = 1.0 +anchor_bottom = 1.0 +grow_vertical = 0 + +[node name="PopUpPostIt" type="Control" parent="Messages/MessageContainer"] +layout_mode = 1 +anchors_preset = 2 +anchor_top = 1.0 +anchor_bottom = 1.0 +offset_left = 103.0 +offset_top = 32.0 +offset_right = 303.0 +offset_bottom = 232.0 +grow_vertical = 0 +script = ExtResource("6_n5apg") + +[node name="Background" type="ColorRect" parent="Messages/MessageContainer/PopUpPostIt"] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +color = Color(1, 1, 0.447059, 1) + +[node name="Text" type="Label" parent="Messages/MessageContainer/PopUpPostIt"] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +offset_left = 10.0 +offset_top = 10.0 +offset_right = -10.0 +offset_bottom = -10.0 +grow_horizontal = 2 +grow_vertical = 2 +text = "Switch to Unity" +label_settings = SubResource("LabelSettings_tiss4") +horizontal_alignment = 1 +vertical_alignment = 1 +autowrap_mode = 2 diff --git a/prefabs/UI/Quest/QuestListItem.tscn b/prefabs/UI/Quest/QuestListItem.tscn index f1f55f5..b09edf4 100644 --- a/prefabs/UI/Quest/QuestListItem.tscn +++ b/prefabs/UI/Quest/QuestListItem.tscn @@ -19,5 +19,6 @@ anchor_right = 1.0 anchor_bottom = 1.0 grow_horizontal = 2 grow_vertical = 2 +text = "Hello world" [connection signal="pressed" from="TitleButton" to="." method="ClickedTitleButton"] diff --git a/prefabs/UI/Quest/QuestLog.tscn b/prefabs/UI/Quest/QuestLog.tscn index b1421e1..8df0dc4 100644 --- a/prefabs/UI/Quest/QuestLog.tscn +++ b/prefabs/UI/Quest/QuestLog.tscn @@ -19,6 +19,7 @@ script = ExtResource("1_vc33n") [node name="LeftPage" type="Control" parent="."] layout_mode = 1 +anchors_preset = 9 anchor_bottom = 1.0 offset_right = 350.0 grow_vertical = 2 @@ -35,6 +36,7 @@ _questListItemPrefab = ExtResource("2_fswdj") [node name="RightPage" type="Control" parent="."] layout_mode = 1 +anchors_preset = 11 anchor_left = 1.0 anchor_right = 1.0 anchor_bottom = 1.0 diff --git a/scenes/testing/babushka_tests_quests.tscn b/scenes/testing/babushka_tests_quests.tscn new file mode 100644 index 0000000..10f6f7d --- /dev/null +++ b/scenes/testing/babushka_tests_quests.tscn @@ -0,0 +1,202 @@ +[gd_scene load_steps=7 format=3 uid="uid://c4ns2ixo8k2ih"] + +[ext_resource type="PackedScene" uid="uid://cgjc4wurbgimy" path="res://prefabs/UI/Inventory/Inventory.tscn" id="1_opxcj"] +[ext_resource type="PackedScene" uid="uid://2q1n6g2kj5er" path="res://prefabs/UI/Quest/QuestLog.tscn" id="2_lj712"] +[ext_resource type="Script" uid="uid://cldtt4atgymm5" path="res://scripts/CSharp/Common/Quest/QuestTrigger.cs" id="3_sx4ix"] +[ext_resource type="Resource" uid="uid://0aruj4lm74n6" path="res://resources/quests/test_01.tres" id="4_qyyck"] +[ext_resource type="Resource" uid="uid://be1dmc6d2mxl5" path="res://resources/quests/test_02.tres" id="5_sokiv"] +[ext_resource type="Resource" uid="uid://tmmnsg1bge2" path="res://resources/quests/test_03.tres" id="6_ajsa7"] + +[node name="BabushkaTestsQuests" type="Node2D"] + +[node name="CanvasLayer" parent="." instance=ExtResource("1_opxcj")] + +[node name="CanvasLayer2" type="CanvasLayer" parent="."] +layer = 128 + +[node name="VBoxContainer" type="VBoxContainer" parent="CanvasLayer2"] +offset_left = 71.0 +offset_top = 53.0 +offset_right = 571.0 +offset_bottom = 353.0 + +[node name="HBoxContainer" type="HBoxContainer" parent="CanvasLayer2/VBoxContainer"] +layout_mode = 2 +size_flags_vertical = 3 +alignment = 1 + +[node name="Label" type="Label" parent="CanvasLayer2/VBoxContainer/HBoxContainer"] +layout_mode = 2 +size_flags_horizontal = 3 +size_flags_vertical = 1 +text = "Quest 1" +horizontal_alignment = 1 +vertical_alignment = 1 + +[node name="Active" type="Button" parent="CanvasLayer2/VBoxContainer/HBoxContainer"] +layout_mode = 2 +size_flags_horizontal = 3 +text = "Active" + +[node name="QuestSetter" type="Node" parent="CanvasLayer2/VBoxContainer/HBoxContainer/Active"] +script = ExtResource("3_sx4ix") +questResource = ExtResource("4_qyyck") +toStatus = 1 +makeCurrent = true + +[node name="Done" type="Button" parent="CanvasLayer2/VBoxContainer/HBoxContainer"] +layout_mode = 2 +size_flags_horizontal = 3 +text = "Done" + +[node name="QuestSetter" type="Node" parent="CanvasLayer2/VBoxContainer/HBoxContainer/Done"] +script = ExtResource("3_sx4ix") +questResource = ExtResource("4_qyyck") +toStatus = 2 + +[node name="Cancle" type="Button" parent="CanvasLayer2/VBoxContainer/HBoxContainer"] +layout_mode = 2 +size_flags_horizontal = 3 +text = "Cancle" + +[node name="QuestSetter" type="Node" parent="CanvasLayer2/VBoxContainer/HBoxContainer/Cancle"] +script = ExtResource("3_sx4ix") +questResource = ExtResource("4_qyyck") +toStatus = 3 + +[node name="Hide" type="Button" parent="CanvasLayer2/VBoxContainer/HBoxContainer"] +layout_mode = 2 +size_flags_horizontal = 3 +text = "Hide +" + +[node name="QuestSetter" type="Node" parent="CanvasLayer2/VBoxContainer/HBoxContainer/Hide"] +script = ExtResource("3_sx4ix") +questResource = ExtResource("4_qyyck") + +[node name="HBoxContainer2" type="HBoxContainer" parent="CanvasLayer2/VBoxContainer"] +layout_mode = 2 +size_flags_vertical = 3 +alignment = 1 + +[node name="Label" type="Label" parent="CanvasLayer2/VBoxContainer/HBoxContainer2"] +layout_mode = 2 +size_flags_horizontal = 3 +size_flags_vertical = 1 +text = "Quest 2" +horizontal_alignment = 1 +vertical_alignment = 1 + +[node name="Active" type="Button" parent="CanvasLayer2/VBoxContainer/HBoxContainer2"] +layout_mode = 2 +size_flags_horizontal = 3 +text = "Active" + +[node name="QuestSetter" type="Node" parent="CanvasLayer2/VBoxContainer/HBoxContainer2/Active"] +script = ExtResource("3_sx4ix") +questResource = ExtResource("5_sokiv") +toStatus = 1 + +[node name="Done" type="Button" parent="CanvasLayer2/VBoxContainer/HBoxContainer2"] +layout_mode = 2 +size_flags_horizontal = 3 +text = "Done" + +[node name="QuestSetter" type="Node" parent="CanvasLayer2/VBoxContainer/HBoxContainer2/Done"] +script = ExtResource("3_sx4ix") +questResource = ExtResource("5_sokiv") +toStatus = 2 + +[node name="Cancle" type="Button" parent="CanvasLayer2/VBoxContainer/HBoxContainer2"] +layout_mode = 2 +size_flags_horizontal = 3 +text = "Cancle" + +[node name="QuestSetter" type="Node" parent="CanvasLayer2/VBoxContainer/HBoxContainer2/Cancle"] +script = ExtResource("3_sx4ix") +questResource = ExtResource("5_sokiv") +toStatus = 3 + +[node name="Hide" type="Button" parent="CanvasLayer2/VBoxContainer/HBoxContainer2"] +layout_mode = 2 +size_flags_horizontal = 3 +text = "Hide +" + +[node name="QuestSetter" type="Node" parent="CanvasLayer2/VBoxContainer/HBoxContainer2/Hide"] +script = ExtResource("3_sx4ix") +questResource = ExtResource("5_sokiv") + +[node name="HBoxContainer3" type="HBoxContainer" parent="CanvasLayer2/VBoxContainer"] +layout_mode = 2 +size_flags_vertical = 3 +alignment = 1 + +[node name="Label" type="Label" parent="CanvasLayer2/VBoxContainer/HBoxContainer3"] +layout_mode = 2 +size_flags_horizontal = 3 +size_flags_vertical = 1 +text = "Quest 3" +horizontal_alignment = 1 +vertical_alignment = 1 + +[node name="Active" type="Button" parent="CanvasLayer2/VBoxContainer/HBoxContainer3"] +layout_mode = 2 +size_flags_horizontal = 3 +text = "Active" + +[node name="QuestSetter" type="Node" parent="CanvasLayer2/VBoxContainer/HBoxContainer3/Active"] +script = ExtResource("3_sx4ix") +questResource = ExtResource("6_ajsa7") +toStatus = 1 + +[node name="Done" type="Button" parent="CanvasLayer2/VBoxContainer/HBoxContainer3"] +layout_mode = 2 +size_flags_horizontal = 3 +text = "Done" + +[node name="QuestSetter" type="Node" parent="CanvasLayer2/VBoxContainer/HBoxContainer3/Done"] +script = ExtResource("3_sx4ix") +questResource = ExtResource("6_ajsa7") +toStatus = 2 + +[node name="Cancle" type="Button" parent="CanvasLayer2/VBoxContainer/HBoxContainer3"] +layout_mode = 2 +size_flags_horizontal = 3 +text = "Cancle" + +[node name="QuestSetter" type="Node" parent="CanvasLayer2/VBoxContainer/HBoxContainer3/Cancle"] +script = ExtResource("3_sx4ix") +questResource = ExtResource("6_ajsa7") +toStatus = 3 + +[node name="Hide" type="Button" parent="CanvasLayer2/VBoxContainer/HBoxContainer3"] +layout_mode = 2 +size_flags_horizontal = 3 +text = "Hide +" + +[node name="QuestSetter" type="Node" parent="CanvasLayer2/VBoxContainer/HBoxContainer3/Hide"] +script = ExtResource("3_sx4ix") +questResource = ExtResource("6_ajsa7") + +[node name="QuestLog" parent="CanvasLayer2" instance=ExtResource("2_lj712")] +offset_left = 625.0 +offset_top = 294.0 +offset_right = -595.0 +offset_bottom = -286.0 + +[connection signal="pressed" from="CanvasLayer2/VBoxContainer/HBoxContainer/Active" to="CanvasLayer2/VBoxContainer/HBoxContainer/Active/QuestSetter" method="Trigger"] +[connection signal="pressed" from="CanvasLayer2/VBoxContainer/HBoxContainer/Done" to="CanvasLayer2/VBoxContainer/HBoxContainer/Done/QuestSetter" method="Trigger"] +[connection signal="pressed" from="CanvasLayer2/VBoxContainer/HBoxContainer/Cancle" to="CanvasLayer2/VBoxContainer/HBoxContainer/Cancle/QuestSetter" method="Trigger"] +[connection signal="pressed" from="CanvasLayer2/VBoxContainer/HBoxContainer/Hide" to="CanvasLayer2/VBoxContainer/HBoxContainer/Hide/QuestSetter" method="Trigger"] +[connection signal="pressed" from="CanvasLayer2/VBoxContainer/HBoxContainer2/Active" to="CanvasLayer2/VBoxContainer/HBoxContainer2/Active/QuestSetter" method="Trigger"] +[connection signal="pressed" from="CanvasLayer2/VBoxContainer/HBoxContainer2/Done" to="CanvasLayer2/VBoxContainer/HBoxContainer2/Done/QuestSetter" method="Trigger"] +[connection signal="pressed" from="CanvasLayer2/VBoxContainer/HBoxContainer2/Cancle" to="CanvasLayer2/VBoxContainer/HBoxContainer2/Cancle/QuestSetter" method="Trigger"] +[connection signal="pressed" from="CanvasLayer2/VBoxContainer/HBoxContainer2/Hide" to="CanvasLayer2/VBoxContainer/HBoxContainer2/Hide/QuestSetter" method="Trigger"] +[connection signal="pressed" from="CanvasLayer2/VBoxContainer/HBoxContainer3/Active" to="CanvasLayer2/VBoxContainer/HBoxContainer3/Active/QuestSetter" method="Trigger"] +[connection signal="pressed" from="CanvasLayer2/VBoxContainer/HBoxContainer3/Done" to="CanvasLayer2/VBoxContainer/HBoxContainer3/Done/QuestSetter" method="Trigger"] +[connection signal="pressed" from="CanvasLayer2/VBoxContainer/HBoxContainer3/Cancle" to="CanvasLayer2/VBoxContainer/HBoxContainer3/Cancle/QuestSetter" method="Trigger"] +[connection signal="pressed" from="CanvasLayer2/VBoxContainer/HBoxContainer3/Hide" to="CanvasLayer2/VBoxContainer/HBoxContainer3/Hide/QuestSetter" method="Trigger"] + +[editable path="CanvasLayer"] diff --git a/scripts/CSharp/Common/Quest/PopUpPostIt.cs b/scripts/CSharp/Common/Quest/PopUpPostIt.cs new file mode 100644 index 0000000..34d0a9f --- /dev/null +++ b/scripts/CSharp/Common/Quest/PopUpPostIt.cs @@ -0,0 +1,22 @@ +using Godot; +using System; +using Babushka.scripts.CSharp.Common.Quest; + +public partial class PopUpPostIt : Control +{ + private Label Text => GetNode