Feature: Quest system #11
Merged
kziolkowski
merged 4 commits from feature/quest_system into develop 6 months ago
|
After Width: | Height: | Size: 4.8 KiB |
@ -0,0 +1,34 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://cvu5dybw31uxn"
|
||||||
|
path="res://.godot/imported/Circle.png-1776eabbad99f201f3fa20f90655dedf.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://art/ui/UI/Circle.png"
|
||||||
|
dest_files=["res://.godot/imported/Circle.png-1776eabbad99f201f3fa20f90655dedf.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=false
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=1
|
||||||
|
After Width: | Height: | Size: 39 KiB |
@ -0,0 +1,34 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://70twb0i3e2wo"
|
||||||
|
path="res://.godot/imported/journal_note.png-456d095624ebf40e3c23543b3d0f829a.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://art/ui/UI/journal_note.png"
|
||||||
|
dest_files=["res://.godot/imported/journal_note.png-456d095624ebf40e3c23543b3d0f829a.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=false
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=1
|
||||||
|
After Width: | Height: | Size: 395 KiB |
@ -0,0 +1,34 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://d0anh3hdk0clc"
|
||||||
|
path="res://.godot/imported/journal_standard.png-09a8c39fc0e5420f9430aff7f945ae55.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://art/ui/UI/journal_standard.png"
|
||||||
|
dest_files=["res://.godot/imported/journal_standard.png-09a8c39fc0e5420f9430aff7f945ae55.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=false
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=1
|
||||||
|
After Width: | Height: | Size: 33 KiB |
@ -0,0 +1,34 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://b2q3xgw8xj880"
|
||||||
|
path="res://.godot/imported/quest_note.png-857ff56cb8cdd8e4401bb6320261518e.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://art/ui/UI/quest_note.png"
|
||||||
|
dest_files=["res://.godot/imported/quest_note.png-857ff56cb8cdd8e4401bb6320261518e.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=false
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=1
|
||||||
@ -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
|
||||||
@ -0,0 +1,67 @@
|
|||||||
|
[gd_scene load_steps=3 format=3 uid="uid://1iqqwh7d6xoh"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" uid="uid://dwhee40ksubke" path="res://scripts/CSharp/Common/Quest/QuestListItemUi.cs" id="1_svwef"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://cvu5dybw31uxn" path="res://art/ui/UI/Circle.png" id="2_qlq3v"]
|
||||||
|
|
||||||
|
[node name="QuestListItem" type="Control"]
|
||||||
|
custom_minimum_size = Vector2(0, 40)
|
||||||
|
layout_mode = 3
|
||||||
|
anchors_preset = 0
|
||||||
|
offset_right = 300.0
|
||||||
|
offset_bottom = 30.0
|
||||||
|
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
|
||||||
|
flat = true
|
||||||
|
|
||||||
|
[node name="HBoxContainer" type="HBoxContainer" parent="TitleButton"]
|
||||||
|
layout_mode = 1
|
||||||
|
anchors_preset = 15
|
||||||
|
anchor_right = 1.0
|
||||||
|
anchor_bottom = 1.0
|
||||||
|
grow_horizontal = 2
|
||||||
|
grow_vertical = 2
|
||||||
|
|
||||||
|
[node name="MarginContainer" type="MarginContainer" parent="TitleButton/HBoxContainer"]
|
||||||
|
layout_mode = 2
|
||||||
|
theme_override_constants/margin_left = 30
|
||||||
|
theme_override_constants/margin_top = 0
|
||||||
|
theme_override_constants/margin_right = 30
|
||||||
|
theme_override_constants/margin_bottom = 0
|
||||||
|
|
||||||
|
[node name="DotText" type="Label" parent="TitleButton/HBoxContainer/MarginContainer"]
|
||||||
|
layout_mode = 2
|
||||||
|
size_flags_vertical = 1
|
||||||
|
theme_override_colors/font_color = Color(0, 0, 0, 1)
|
||||||
|
theme_override_font_sizes/font_size = 17
|
||||||
|
text = "•"
|
||||||
|
vertical_alignment = 1
|
||||||
|
|
||||||
|
[node name="TitleText" type="Label" parent="TitleButton/HBoxContainer"]
|
||||||
|
custom_minimum_size = Vector2(200, 0)
|
||||||
|
layout_mode = 2
|
||||||
|
size_flags_horizontal = 3
|
||||||
|
size_flags_vertical = 1
|
||||||
|
theme_override_colors/font_color = Color(0, 0, 0, 1)
|
||||||
|
theme_override_font_sizes/font_size = 17
|
||||||
|
text = "Switch to Unity"
|
||||||
|
vertical_alignment = 1
|
||||||
|
autowrap_mode = 2
|
||||||
|
|
||||||
|
[node name="Circled" type="TextureRect" parent="TitleButton"]
|
||||||
|
visible = false
|
||||||
|
layout_mode = 1
|
||||||
|
anchors_preset = 15
|
||||||
|
anchor_right = 1.0
|
||||||
|
anchor_bottom = 1.0
|
||||||
|
grow_horizontal = 2
|
||||||
|
grow_vertical = 2
|
||||||
|
texture = ExtResource("2_qlq3v")
|
||||||
|
|
||||||
|
[connection signal="pressed" from="TitleButton" to="." method="ClickedTitleButton"]
|
||||||
@ -0,0 +1,162 @@
|
|||||||
|
[gd_scene load_steps=6 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="Texture2D" uid="uid://d0anh3hdk0clc" path="res://art/ui/UI/journal_standard.png" id="2_wdbu4"]
|
||||||
|
[ext_resource type="Script" uid="uid://b8mywolvj2yq7" path="res://scripts/CSharp/Common/Quest/QuestDescriptionUi.cs" id="4_1vy15"]
|
||||||
|
|
||||||
|
[node name="QuestLogRoot" type="Control"]
|
||||||
|
layout_mode = 3
|
||||||
|
anchors_preset = 0
|
||||||
|
|
||||||
|
[node name="MovingLog" type="Control" parent="."]
|
||||||
|
layout_mode = 1
|
||||||
|
anchors_preset = 15
|
||||||
|
anchor_right = 1.0
|
||||||
|
anchor_bottom = 1.0
|
||||||
|
offset_left = 460.0
|
||||||
|
offset_top = -615.0
|
||||||
|
offset_right = 1460.0
|
||||||
|
offset_bottom = -54.0
|
||||||
|
grow_horizontal = 2
|
||||||
|
grow_vertical = 2
|
||||||
|
size_flags_horizontal = 4
|
||||||
|
size_flags_vertical = 4
|
||||||
|
mouse_filter = 2
|
||||||
|
script = ExtResource("1_vc33n")
|
||||||
|
_closedPos = Vector2(460, -615)
|
||||||
|
_openedPos = Vector2(460, 240)
|
||||||
|
|
||||||
|
[node name="Background" type="Control" parent="MovingLog"]
|
||||||
|
layout_mode = 1
|
||||||
|
anchors_preset = 15
|
||||||
|
anchor_right = 1.0
|
||||||
|
anchor_bottom = 1.0
|
||||||
|
grow_horizontal = 2
|
||||||
|
grow_vertical = 2
|
||||||
|
|
||||||
|
[node name="TextureRect" type="TextureRect" parent="MovingLog/Background"]
|
||||||
|
layout_mode = 1
|
||||||
|
anchors_preset = 15
|
||||||
|
anchor_right = 1.0
|
||||||
|
anchor_bottom = 1.0
|
||||||
|
grow_horizontal = 2
|
||||||
|
grow_vertical = 2
|
||||||
|
texture = ExtResource("2_wdbu4")
|
||||||
|
expand_mode = 2
|
||||||
|
stretch_mode = 5
|
||||||
|
|
||||||
|
[node name="MarginContainer" type="MarginContainer" parent="MovingLog"]
|
||||||
|
layout_mode = 2
|
||||||
|
anchor_right = 1.0
|
||||||
|
anchor_bottom = 1.0
|
||||||
|
grow_horizontal = 2
|
||||||
|
grow_vertical = 2
|
||||||
|
theme_override_constants/margin_left = 160
|
||||||
|
theme_override_constants/margin_top = 60
|
||||||
|
theme_override_constants/margin_right = 160
|
||||||
|
theme_override_constants/margin_bottom = 60
|
||||||
|
|
||||||
|
[node name="ReferenceRect" type="ReferenceRect" parent="MovingLog/MarginContainer"]
|
||||||
|
layout_mode = 2
|
||||||
|
|
||||||
|
[node name="QuestLog" type="HBoxContainer" parent="MovingLog/MarginContainer/ReferenceRect"]
|
||||||
|
layout_mode = 1
|
||||||
|
anchors_preset = 15
|
||||||
|
anchor_right = 1.0
|
||||||
|
anchor_bottom = 1.0
|
||||||
|
grow_horizontal = 2
|
||||||
|
grow_vertical = 2
|
||||||
|
|
||||||
|
[node name="LeftPage" type="Control" parent="MovingLog/MarginContainer/ReferenceRect/QuestLog"]
|
||||||
|
layout_mode = 2
|
||||||
|
size_flags_horizontal = 3
|
||||||
|
|
||||||
|
[node name="MarginContainer" type="MarginContainer" parent="MovingLog/MarginContainer/ReferenceRect/QuestLog/LeftPage"]
|
||||||
|
layout_mode = 1
|
||||||
|
anchors_preset = 15
|
||||||
|
anchor_right = 1.0
|
||||||
|
anchor_bottom = 1.0
|
||||||
|
grow_horizontal = 2
|
||||||
|
grow_vertical = 2
|
||||||
|
theme_override_constants/margin_left = 20
|
||||||
|
theme_override_constants/margin_top = 15
|
||||||
|
theme_override_constants/margin_right = 20
|
||||||
|
theme_override_constants/margin_bottom = 15
|
||||||
|
|
||||||
|
[node name="ReferenceRect" type="ReferenceRect" parent="MovingLog/MarginContainer/ReferenceRect/QuestLog/LeftPage/MarginContainer"]
|
||||||
|
layout_mode = 2
|
||||||
|
border_color = Color(1.49205e-06, 0.62774, 0.489941, 1)
|
||||||
|
|
||||||
|
[node name="VBoxContainer2" type="VBoxContainer" parent="MovingLog/MarginContainer/ReferenceRect/QuestLog/LeftPage/MarginContainer/ReferenceRect"]
|
||||||
|
layout_mode = 1
|
||||||
|
anchors_preset = 15
|
||||||
|
anchor_right = 1.0
|
||||||
|
anchor_bottom = 1.0
|
||||||
|
grow_horizontal = 2
|
||||||
|
grow_vertical = 2
|
||||||
|
|
||||||
|
[node name="Label" type="Label" parent="MovingLog/MarginContainer/ReferenceRect/QuestLog/LeftPage/MarginContainer/ReferenceRect/VBoxContainer2"]
|
||||||
|
custom_minimum_size = Vector2(0, 60.975)
|
||||||
|
layout_mode = 2
|
||||||
|
theme_override_colors/font_color = Color(0, 0, 0, 1)
|
||||||
|
theme_override_font_sizes/font_size = 31
|
||||||
|
text = "Quests"
|
||||||
|
horizontal_alignment = 1
|
||||||
|
vertical_alignment = 1
|
||||||
|
|
||||||
|
[node name="VBoxContainer" type="VBoxContainer" parent="MovingLog/MarginContainer/ReferenceRect/QuestLog/LeftPage/MarginContainer/ReferenceRect/VBoxContainer2"]
|
||||||
|
layout_mode = 2
|
||||||
|
size_flags_vertical = 3
|
||||||
|
script = ExtResource("1_17sli")
|
||||||
|
_questListItemPrefab = ExtResource("2_fswdj")
|
||||||
|
|
||||||
|
[node name="RightPage" type="Control" parent="MovingLog/MarginContainer/ReferenceRect/QuestLog"]
|
||||||
|
layout_mode = 2
|
||||||
|
size_flags_horizontal = 3
|
||||||
|
|
||||||
|
[node name="MarginContainer" type="MarginContainer" parent="MovingLog/MarginContainer/ReferenceRect/QuestLog/RightPage"]
|
||||||
|
layout_mode = 1
|
||||||
|
anchors_preset = 15
|
||||||
|
anchor_right = 1.0
|
||||||
|
anchor_bottom = 1.0
|
||||||
|
grow_horizontal = 2
|
||||||
|
grow_vertical = 2
|
||||||
|
theme_override_constants/margin_left = 20
|
||||||
|
theme_override_constants/margin_top = 15
|
||||||
|
theme_override_constants/margin_right = 20
|
||||||
|
theme_override_constants/margin_bottom = 15
|
||||||
|
|
||||||
|
[node name="ReferenceRect" type="ReferenceRect" parent="MovingLog/MarginContainer/ReferenceRect/QuestLog/RightPage/MarginContainer"]
|
||||||
|
layout_mode = 2
|
||||||
|
border_color = Color(1.49205e-06, 0.62774, 0.489941, 1)
|
||||||
|
|
||||||
|
[node name="VBoxContainer2" type="VBoxContainer" parent="MovingLog/MarginContainer/ReferenceRect/QuestLog/RightPage/MarginContainer/ReferenceRect"]
|
||||||
|
layout_mode = 1
|
||||||
|
anchors_preset = 15
|
||||||
|
anchor_right = 1.0
|
||||||
|
anchor_bottom = 1.0
|
||||||
|
grow_horizontal = 2
|
||||||
|
grow_vertical = 2
|
||||||
|
|
||||||
|
[node name="Label" type="Label" parent="MovingLog/MarginContainer/ReferenceRect/QuestLog/RightPage/MarginContainer/ReferenceRect/VBoxContainer2"]
|
||||||
|
custom_minimum_size = Vector2(0, 60.975)
|
||||||
|
layout_mode = 2
|
||||||
|
theme_override_colors/font_color = Color(0, 0, 0, 1)
|
||||||
|
theme_override_font_sizes/font_size = 31
|
||||||
|
text = "Details"
|
||||||
|
horizontal_alignment = 1
|
||||||
|
vertical_alignment = 1
|
||||||
|
|
||||||
|
[node name="Description" type="RichTextLabel" parent="MovingLog/MarginContainer/ReferenceRect/QuestLog/RightPage/MarginContainer/ReferenceRect/VBoxContainer2"]
|
||||||
|
layout_mode = 2
|
||||||
|
size_flags_vertical = 3
|
||||||
|
theme_override_colors/default_color = Color(0, 0, 0, 1)
|
||||||
|
bbcode_enabled = true
|
||||||
|
text = "[center][font_size=24]Find 10 Mushroms[/font_size][/center]
|
||||||
|
|
||||||
|
Collect 10 mushroms in the forrest by the bushes down the road with the singn that says \"to the mushroms\" and has a small mushrom logo on it. Its realy hard to miss."
|
||||||
|
script = ExtResource("4_1vy15")
|
||||||
|
|
||||||
|
[connection signal="DetailQuestChanged" from="MovingLog" to="MovingLog/MarginContainer/ReferenceRect/QuestLog/RightPage/MarginContainer/ReferenceRect/VBoxContainer2/Description" method="UpdateText"]
|
||||||
@ -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"
|
||||||
@ -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"
|
||||||
@ -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"
|
||||||
@ -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")])
|
||||||
@ -0,0 +1,193 @@
|
|||||||
|
[gd_scene load_steps=6 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="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")
|
||||||
|
|
||||||
|
[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"]
|
||||||
@ -0,0 +1,22 @@
|
|||||||
|
using Godot;
|
||||||
|
using System;
|
||||||
|
using Babushka.scripts.CSharp.Common.Quest;
|
||||||
|
|
||||||
|
public partial class PopUpPostIt : Control
|
||||||
|
{
|
||||||
|
private Label Text => GetNode<Label>("Text");
|
||||||
|
|
||||||
|
private AnimationPlayer Animation => GetNode<AnimationPlayer>("AnimationPlayer");
|
||||||
|
|
||||||
|
QuestManager QM => QuestManager.Instance!;
|
||||||
|
public override void _EnterTree()
|
||||||
|
{
|
||||||
|
QM.QuestBecomesActive += NewQuestPostIt;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void NewQuestPostIt(QuestResource questResource)
|
||||||
|
{
|
||||||
|
Text.Text = questResource.title;
|
||||||
|
Animation.Play("NewPostit");
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1 @@
|
|||||||
|
uid://byar6yqrlph6k
|
||||||
@ -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 ?? "";
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1 @@
|
|||||||
|
uid://b8mywolvj2yq7
|
||||||
@ -0,0 +1 @@
|
|||||||
|
uid://dwhee40ksubke
|
||||||
@ -0,0 +1,48 @@
|
|||||||
|
using Godot;
|
||||||
|
using System;
|
||||||
|
using Babushka.scripts.CSharp.Common.Quest;
|
||||||
|
|
||||||
|
public partial class QuestListUi : VBoxContainer
|
||||||
|
{
|
||||||
|
[Export]
|
||||||
|
private PackedScene _questListItemPrefab;
|
||||||
|
|
||||||
|
public override void _EnterTree()
|
||||||
|
{
|
||||||
|
UpdateList();
|
||||||
|
QuestManager.Instance!.QuestsChanged += UpdateList;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void _ExitTree()
|
||||||
|
{
|
||||||
|
QuestManager.Instance!.QuestsChanged -= UpdateList;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void _Ready()
|
||||||
|
{
|
||||||
|
UpdateList();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void UpdateList()
|
||||||
|
{
|
||||||
|
// delete children
|
||||||
|
foreach (Node child in GetChildren())
|
||||||
|
{
|
||||||
|
RemoveChild(child);
|
||||||
|
child.QueueFree();
|
||||||
|
}
|
||||||
|
|
||||||
|
// recreate children
|
||||||
|
var activeQuests = QuestManager.Instance.GetVisibleQuests();
|
||||||
|
|
||||||
|
foreach (var questPair in activeQuests)
|
||||||
|
{
|
||||||
|
var questResource = questPair.Key;
|
||||||
|
var questStatus = questPair.Value;
|
||||||
|
|
||||||
|
var questListItem = _questListItemPrefab.Instantiate<QuestListItemUi>();
|
||||||
|
questListItem.UpdateButton(questResource);
|
||||||
|
AddChild(questListItem);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1 @@
|
|||||||
|
uid://c7ilqe2fmjyvx
|
||||||
@ -0,0 +1,53 @@
|
|||||||
|
#nullable enable
|
||||||
|
using Godot;
|
||||||
|
using System;
|
||||||
|
using Babushka.scripts.CSharp.Common.Quest;
|
||||||
|
|
||||||
|
public partial class QuestLog : Control
|
||||||
|
{
|
||||||
|
[Signal]
|
||||||
|
public delegate void DetailQuestChangedEventHandler(QuestLog questLog);
|
||||||
|
|
||||||
|
[Export]
|
||||||
|
private Vector2 _closedPos;
|
||||||
|
|
||||||
|
[Export]
|
||||||
|
private Vector2 _openedPos;
|
||||||
|
|
||||||
|
private bool _isClosed = true;
|
||||||
|
private Tween? _closeOpenTween;
|
||||||
|
|
||||||
|
public QuestResource? currentDetailQuest
|
||||||
|
{
|
||||||
|
get => QuestManager.Instance!.GetFollowQuest();
|
||||||
|
set
|
||||||
|
{
|
||||||
|
QuestManager.Instance!.SetFollowQuest(value); // TODO: fix setup
|
||||||
|
EmitSignalDetailQuestChanged(this);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void _EnterTree()
|
||||||
|
{
|
||||||
|
QuestManager.Instance!.QuestsChanged += () => EmitSignalDetailQuestChanged(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void _Input(InputEvent inputEvent)
|
||||||
|
{
|
||||||
|
if (inputEvent.IsActionPressed("ui_inventory_journal_open_close"))
|
||||||
|
{
|
||||||
|
if(_closeOpenTween != null)
|
||||||
|
_closeOpenTween.Kill();
|
||||||
|
|
||||||
|
_isClosed = !_isClosed;
|
||||||
|
|
||||||
|
_closeOpenTween = GetTree().CreateTween();
|
||||||
|
_closeOpenTween
|
||||||
|
.TweenProperty(this, "position", _isClosed ? _closedPos : _openedPos, 0.5)
|
||||||
|
.SetEase(Tween.EaseType.Out)
|
||||||
|
.SetTrans(Tween.TransitionType.Cubic);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//private QuestResource? _currentDetailQuestBacking;
|
||||||
|
}
|
||||||
@ -0,0 +1 @@
|
|||||||
|
uid://o1qpo0wdqlw3
|
||||||
@ -0,0 +1,76 @@
|
|||||||
|
using Godot;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
|
||||||
|
namespace Babushka.scripts.CSharp.Common.Quest;
|
||||||
|
|
||||||
|
using QuestPair = KeyValuePair<QuestResource, QuestStatus>;
|
||||||
|
public partial class QuestManager : Node
|
||||||
|
{
|
||||||
|
public static QuestManager? Instance { get; private set; }
|
||||||
|
|
||||||
|
[Signal]
|
||||||
|
public delegate void QuestBecomesActiveEventHandler(QuestResource questResource);
|
||||||
|
|
||||||
|
[Signal]
|
||||||
|
public delegate void QuestsChangedEventHandler();
|
||||||
|
|
||||||
|
public override void _EnterTree()
|
||||||
|
{
|
||||||
|
Instance = this;
|
||||||
|
}
|
||||||
|
|
||||||
|
private Godot.Collections.Dictionary<QuestResource, QuestStatus> _questStatus = new();
|
||||||
|
|
||||||
|
private QuestResource? _followQuest;
|
||||||
|
|
||||||
|
|
||||||
|
public void ChangeQuestStatus(QuestResource questResource, QuestStatus.Status newStatus)
|
||||||
|
{
|
||||||
|
if (!_questStatus.TryGetValue(questResource, out var value))
|
||||||
|
{
|
||||||
|
value = new QuestStatus();
|
||||||
|
_questStatus.Add(questResource, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
value.status = newStatus;
|
||||||
|
|
||||||
|
EmitSignalQuestsChanged();
|
||||||
|
|
||||||
|
if (newStatus == QuestStatus.Status.Active)
|
||||||
|
{
|
||||||
|
EmitSignalQuestBecomesActive(questResource);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public IEnumerable<QuestPair> GetVisibleQuests()
|
||||||
|
{
|
||||||
|
return _questStatus.Where(qs => qs.Value.status != QuestStatus.Status.Hidden);
|
||||||
|
}
|
||||||
|
|
||||||
|
public IEnumerable<QuestPair> GetActiveQuests()
|
||||||
|
{
|
||||||
|
return _questStatus.Where(qs => qs.Value.status == QuestStatus.Status.Active);
|
||||||
|
}
|
||||||
|
public QuestStatus GetQuestStatus(QuestResource questResource)
|
||||||
|
{
|
||||||
|
if (_questStatus.TryGetValue(questResource, out var status))
|
||||||
|
return status;
|
||||||
|
|
||||||
|
status = new QuestStatus();
|
||||||
|
_questStatus.Add(questResource, status);
|
||||||
|
return status;
|
||||||
|
}
|
||||||
|
|
||||||
|
public QuestResource? GetFollowQuest()
|
||||||
|
{
|
||||||
|
return _followQuest;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void SetFollowQuest(QuestResource? questResource)
|
||||||
|
{
|
||||||
|
_followQuest = questResource;
|
||||||
|
EmitSignalQuestsChanged();
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1 @@
|
|||||||
|
uid://dl2uhq12p3qks
|
||||||
@ -0,0 +1,86 @@
|
|||||||
|
using Godot;
|
||||||
|
using System;
|
||||||
|
using System.Net.Mime;
|
||||||
|
using Babushka.scripts.CSharp.Common.Quest;
|
||||||
|
|
||||||
|
public partial class QuestMessagePopup : Control
|
||||||
|
{
|
||||||
|
|
||||||
|
private Label Text => GetNode<Label>("Text");
|
||||||
|
|
||||||
|
private QuestResource? _currentlyShown;
|
||||||
|
|
||||||
|
private Tween? _activeTween = null;
|
||||||
|
|
||||||
|
[Export]
|
||||||
|
private Vector2 _showPosition;
|
||||||
|
|
||||||
|
[Export]
|
||||||
|
private Vector2 _hidePosition;
|
||||||
|
|
||||||
|
public override void _EnterTree()
|
||||||
|
{
|
||||||
|
QuestManager.Instance!.QuestsChanged += NewActiveQuest;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void _ExitTree()
|
||||||
|
{
|
||||||
|
QuestManager.Instance!.QuestsChanged -= NewActiveQuest;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void NewActiveQuest()
|
||||||
|
{
|
||||||
|
var shownQuest = QuestManager.Instance!.GetFollowQuest();
|
||||||
|
if (_currentlyShown == shownQuest)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (_activeTween != null)
|
||||||
|
{
|
||||||
|
_activeTween.Kill();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (shownQuest == null)
|
||||||
|
{
|
||||||
|
HideAnimate();
|
||||||
|
_currentlyShown = null;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (_currentlyShown == null)
|
||||||
|
{
|
||||||
|
Text.Text = shownQuest.title;
|
||||||
|
ShowAnimate();
|
||||||
|
_currentlyShown = shownQuest;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// else (_currentlyShown != null)
|
||||||
|
|
||||||
|
_currentlyShown = shownQuest;
|
||||||
|
HideAnimate(() =>
|
||||||
|
{
|
||||||
|
Text.Text = shownQuest.title;
|
||||||
|
ShowAnimate();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
private void HideAnimate(Action? then = null)
|
||||||
|
{
|
||||||
|
_activeTween = GetTree().CreateTween();
|
||||||
|
_activeTween.TweenProperty(this, "position", _hidePosition, 0.4)
|
||||||
|
.SetTrans(Tween.TransitionType.Cubic)
|
||||||
|
.SetEase(Tween.EaseType.Out);
|
||||||
|
if (then != null)
|
||||||
|
_activeTween.Finished += then;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void ShowAnimate(Action? then = null)
|
||||||
|
{
|
||||||
|
_activeTween = GetTree().CreateTween();
|
||||||
|
_activeTween.TweenProperty(this, "position", _showPosition, 0.4)
|
||||||
|
.SetTrans(Tween.TransitionType.Cubic)
|
||||||
|
.SetEase(Tween.EaseType.Out);
|
||||||
|
if (then != null)
|
||||||
|
_activeTween.Finished += then;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1 @@
|
|||||||
|
uid://7wwid23tc8as
|
||||||
@ -0,0 +1 @@
|
|||||||
|
uid://vji5lp4qc8pp
|
||||||
@ -0,0 +1 @@
|
|||||||
|
uid://bpqgcchuubfiy
|
||||||
@ -0,0 +1,20 @@
|
|||||||
|
using Godot;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using Babushka.scripts.CSharp.Common.Quest;
|
||||||
|
using Godot.Collections;
|
||||||
|
|
||||||
|
public partial class QuestTestingScript : Node
|
||||||
|
{
|
||||||
|
[Export(PropertyHint.ArrayType)]
|
||||||
|
private Array<QuestResource> _questsToActivate;
|
||||||
|
|
||||||
|
public override void _EnterTree()
|
||||||
|
{
|
||||||
|
foreach (var questResource in _questsToActivate)
|
||||||
|
{
|
||||||
|
QuestManager.Instance.ChangeQuestStatus(questResource, QuestStatus.Status.Active);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1 @@
|
|||||||
|
uid://cg0oqug38c81n
|
||||||
@ -0,0 +1,33 @@
|
|||||||
|
using Godot;
|
||||||
|
using System;
|
||||||
|
using Babushka.scripts.CSharp.Common.Quest;
|
||||||
|
|
||||||
|
public partial class QuestTrigger : Node
|
||||||
|
{
|
||||||
|
[Export]
|
||||||
|
public QuestResource? questResource;
|
||||||
|
|
||||||
|
[Export]
|
||||||
|
public QuestStatus.Status toStatus;
|
||||||
|
|
||||||
|
[Export]
|
||||||
|
private bool makeCurrent = false;
|
||||||
|
|
||||||
|
public void Trigger()
|
||||||
|
{
|
||||||
|
GD.Print("trigger");
|
||||||
|
|
||||||
|
if(questResource== null)
|
||||||
|
throw new Exception("QuestResource is not set on QuestTrigger node.");
|
||||||
|
|
||||||
|
if(QuestManager.Instance == null)
|
||||||
|
throw new Exception("QuestManager instance is not available. Make sure it is initialized before calling Trigger.");
|
||||||
|
|
||||||
|
QuestManager.Instance.ChangeQuestStatus(questResource, toStatus);
|
||||||
|
|
||||||
|
if (makeCurrent)
|
||||||
|
{
|
||||||
|
QuestManager.Instance.SetFollowQuest(questResource);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1 @@
|
|||||||
|
uid://cldtt4atgymm5
|
||||||
@ -0,0 +1 @@
|
|||||||
|
uid://bwisbh2f2ci6l
|
||||||
Loading…
Reference in new issue