Dialogue system; ask user if they want to teleport to next floor
This commit is contained in:
112
src/ui/dialogue/Balloon.tscn
Normal file
112
src/ui/dialogue/Balloon.tscn
Normal file
@@ -0,0 +1,112 @@
|
||||
[gd_scene load_steps=12 format=3 uid="uid://73jm5qjy52vq"]
|
||||
|
||||
[ext_resource type="Script" path="res://src/ui/dialogue/DialogueBalloon.cs" id="1_36de5"]
|
||||
[ext_resource type="PackedScene" uid="uid://ckvgyvclnwggo" path="res://addons/dialogue_manager/dialogue_label.tscn" id="2_a8ve6"]
|
||||
[ext_resource type="FontFile" uid="uid://cb41qqmxqurj8" path="res://src/ui/fonts/FT88-Bold.ttf" id="2_fn8n4"]
|
||||
[ext_resource type="Script" path="res://addons/dialogue_manager/dialogue_reponses_menu.gd" id="3_72ixx"]
|
||||
[ext_resource type="Script" path="res://src/ui/dialogue/ResponseExample.cs" id="5_0xrfp"]
|
||||
|
||||
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_hrxr4"]
|
||||
|
||||
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_1f7pn"]
|
||||
|
||||
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_kknbg"]
|
||||
|
||||
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_osqma"]
|
||||
|
||||
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_sb66p"]
|
||||
|
||||
[sub_resource type="Theme" id="Theme_qq3yp"]
|
||||
default_font = ExtResource("2_fn8n4")
|
||||
default_font_size = 20
|
||||
Button/styles/disabled = SubResource("StyleBoxEmpty_hrxr4")
|
||||
Button/styles/focus = SubResource("StyleBoxEmpty_1f7pn")
|
||||
Button/styles/hover = SubResource("StyleBoxEmpty_kknbg")
|
||||
Button/styles/normal = SubResource("StyleBoxEmpty_osqma")
|
||||
MarginContainer/constants/margin_bottom = 15
|
||||
MarginContainer/constants/margin_left = 30
|
||||
MarginContainer/constants/margin_right = 30
|
||||
MarginContainer/constants/margin_top = 15
|
||||
Panel/styles/panel = SubResource("StyleBoxEmpty_sb66p")
|
||||
|
||||
[node name="ExampleBalloon" type="CanvasLayer"]
|
||||
layer = 100
|
||||
script = ExtResource("1_36de5")
|
||||
|
||||
[node name="Balloon" type="Control" parent="."]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 3
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
theme = SubResource("Theme_qq3yp")
|
||||
|
||||
[node name="Panel" type="Panel" parent="Balloon"]
|
||||
clip_children = 2
|
||||
layout_mode = 1
|
||||
anchors_preset = 12
|
||||
anchor_top = 1.0
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
offset_left = 21.0
|
||||
offset_top = -183.0
|
||||
offset_right = -19.0
|
||||
offset_bottom = -19.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 0
|
||||
|
||||
[node name="Dialogue" type="MarginContainer" parent="Balloon/Panel"]
|
||||
layout_mode = 2
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
|
||||
[node name="VBoxContainer" type="VBoxContainer" parent="Balloon/Panel/Dialogue"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="CharacterLabel" type="RichTextLabel" parent="Balloon/Panel/Dialogue/VBoxContainer"]
|
||||
unique_name_in_owner = true
|
||||
modulate = Color(1, 1, 1, 0.501961)
|
||||
layout_mode = 2
|
||||
mouse_filter = 1
|
||||
bbcode_enabled = true
|
||||
text = "Character"
|
||||
fit_content = true
|
||||
scroll_active = false
|
||||
|
||||
[node name="DialogueLabel" parent="Balloon/Panel/Dialogue/VBoxContainer" instance=ExtResource("2_a8ve6")]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
size_flags_vertical = 3
|
||||
text = "Dialogue..."
|
||||
|
||||
[node name="Responses" type="CenterContainer" parent="Balloon"]
|
||||
layout_mode = 1
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
|
||||
[node name="ResponsesMenu" type="VBoxContainer" parent="Balloon/Responses" node_paths=PackedStringArray("response_template")]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
size_flags_vertical = 8
|
||||
theme_override_constants/separation = 2
|
||||
script = ExtResource("3_72ixx")
|
||||
response_template = NodePath("ResponseExample")
|
||||
|
||||
[node name="ResponseExample" type="Button" parent="Balloon/Responses/ResponsesMenu"]
|
||||
layout_mode = 2
|
||||
text = "Response example"
|
||||
script = ExtResource("5_0xrfp")
|
||||
|
||||
[node name="ResponseExample2" type="Button" parent="Balloon/Responses/ResponsesMenu"]
|
||||
layout_mode = 2
|
||||
text = "Response example"
|
||||
|
||||
[connection signal="gui_input" from="Balloon" to="." method="_on_balloon_gui_input"]
|
||||
[connection signal="response_selected" from="Balloon/Responses/ResponsesMenu" to="." method="_on_responses_menu_response_selected"]
|
||||
219
src/ui/dialogue/DialogueBalloon.cs
Normal file
219
src/ui/dialogue/DialogueBalloon.cs
Normal file
@@ -0,0 +1,219 @@
|
||||
using Godot;
|
||||
using Godot.Collections;
|
||||
|
||||
namespace DialogueManagerRuntime
|
||||
{
|
||||
public partial class DialogueBalloon : CanvasLayer
|
||||
{
|
||||
[Export] public string NextAction = "ui_accept";
|
||||
[Export] public string SkipAction = "ui_cancel";
|
||||
|
||||
|
||||
Control balloon;
|
||||
RichTextLabel characterLabel;
|
||||
RichTextLabel dialogueLabel;
|
||||
VBoxContainer responsesMenu;
|
||||
|
||||
Resource resource;
|
||||
Array<Variant> temporaryGameStates = new Array<Variant>();
|
||||
bool isWaitingForInput = false;
|
||||
bool willHideBalloon = false;
|
||||
|
||||
DialogueLine dialogueLine;
|
||||
DialogueLine DialogueLine
|
||||
{
|
||||
get => dialogueLine;
|
||||
set
|
||||
{
|
||||
isWaitingForInput = false;
|
||||
balloon.FocusMode = Control.FocusModeEnum.All;
|
||||
balloon.GrabFocus();
|
||||
|
||||
if (value == null)
|
||||
{
|
||||
QueueFree();
|
||||
return;
|
||||
}
|
||||
|
||||
dialogueLine = value;
|
||||
UpdateDialogue();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public override void _Ready()
|
||||
{
|
||||
balloon = GetNode<Control>("%Balloon");
|
||||
characterLabel = GetNode<RichTextLabel>("%CharacterLabel");
|
||||
dialogueLabel = GetNode<RichTextLabel>("%DialogueLabel");
|
||||
responsesMenu = GetNode<VBoxContainer>("%ResponsesMenu");
|
||||
|
||||
balloon.Hide();
|
||||
|
||||
balloon.GuiInput += (@event) =>
|
||||
{
|
||||
if ((bool)dialogueLabel.Get("is_typing"))
|
||||
{
|
||||
bool mouseWasClicked = @event is InputEventMouseButton && (@event as InputEventMouseButton).ButtonIndex == MouseButton.Left && @event.IsPressed();
|
||||
bool skipButtonWasPressed = @event.IsActionPressed(SkipAction);
|
||||
if (mouseWasClicked || skipButtonWasPressed)
|
||||
{
|
||||
GetViewport().SetInputAsHandled();
|
||||
dialogueLabel.Call("skip_typing");
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if (!isWaitingForInput) return;
|
||||
if (dialogueLine.Responses.Count > 0) return;
|
||||
|
||||
GetViewport().SetInputAsHandled();
|
||||
|
||||
if (@event is InputEventMouseButton && @event.IsPressed() && (@event as InputEventMouseButton).ButtonIndex == MouseButton.Left)
|
||||
{
|
||||
Next(dialogueLine.NextId);
|
||||
}
|
||||
else if (@event.IsActionPressed(NextAction) && GetViewport().GuiGetFocusOwner() == balloon)
|
||||
{
|
||||
Next(dialogueLine.NextId);
|
||||
}
|
||||
};
|
||||
|
||||
if (string.IsNullOrEmpty((string)responsesMenu.Get("next_action")))
|
||||
{
|
||||
responsesMenu.Set("next_action", NextAction);
|
||||
}
|
||||
responsesMenu.Connect("response_selected", Callable.From((DialogueResponse response) =>
|
||||
{
|
||||
Next(response.NextId);
|
||||
}));
|
||||
|
||||
DialogueManager.Mutated += OnMutated;
|
||||
}
|
||||
|
||||
|
||||
public override void _ExitTree()
|
||||
{
|
||||
DialogueManager.Mutated -= OnMutated;
|
||||
}
|
||||
|
||||
|
||||
public override void _UnhandledInput(InputEvent @event)
|
||||
{
|
||||
// Only the balloon is allowed to handle input while it's showing
|
||||
GetViewport().SetInputAsHandled();
|
||||
}
|
||||
|
||||
|
||||
public override async void _Notification(int what)
|
||||
{
|
||||
// Detect a change of locale and update the current dialogue line to show the new language
|
||||
if (what == NotificationTranslationChanged)
|
||||
{
|
||||
float visibleRatio = dialogueLabel.VisibleRatio;
|
||||
DialogueLine = await DialogueManager.GetNextDialogueLine(resource, DialogueLine.Id, temporaryGameStates);
|
||||
if (visibleRatio < 1.0f)
|
||||
{
|
||||
dialogueLabel.Call("skip_typing");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public async void Start(Resource dialogueResource, string title, Array<Variant> extraGameStates = null)
|
||||
{
|
||||
temporaryGameStates = extraGameStates ?? new Array<Variant>();
|
||||
isWaitingForInput = false;
|
||||
resource = dialogueResource;
|
||||
|
||||
DialogueLine = await DialogueManager.GetNextDialogueLine(resource, title, temporaryGameStates);
|
||||
}
|
||||
|
||||
|
||||
public async void Next(string nextId)
|
||||
{
|
||||
DialogueLine = await DialogueManager.GetNextDialogueLine(resource, nextId, temporaryGameStates);
|
||||
}
|
||||
|
||||
|
||||
#region Helpers
|
||||
|
||||
|
||||
private async void UpdateDialogue()
|
||||
{
|
||||
if (!IsNodeReady())
|
||||
{
|
||||
await ToSignal(this, SignalName.Ready);
|
||||
}
|
||||
|
||||
// Set up the character name
|
||||
characterLabel.Visible = !string.IsNullOrEmpty(dialogueLine.Character);
|
||||
characterLabel.Text = Tr(dialogueLine.Character, "dialogue");
|
||||
|
||||
// Set up the dialogue
|
||||
dialogueLabel.Hide();
|
||||
dialogueLabel.Set("dialogue_line", dialogueLine);
|
||||
|
||||
// Set up the responses
|
||||
responsesMenu.Hide();
|
||||
responsesMenu.Set("responses", dialogueLine.Responses);
|
||||
|
||||
// Type out the text
|
||||
balloon.Show();
|
||||
willHideBalloon = false;
|
||||
dialogueLabel.Show();
|
||||
if (!string.IsNullOrEmpty(dialogueLine.Text))
|
||||
{
|
||||
dialogueLabel.Call("type_out");
|
||||
await ToSignal(dialogueLabel, "finished_typing");
|
||||
}
|
||||
|
||||
// Wait for input
|
||||
if (dialogueLine.Responses.Count > 0)
|
||||
{
|
||||
balloon.FocusMode = Control.FocusModeEnum.None;
|
||||
responsesMenu.Show();
|
||||
}
|
||||
else if (!string.IsNullOrEmpty(dialogueLine.Time))
|
||||
{
|
||||
float time = 0f;
|
||||
if (!float.TryParse(dialogueLine.Time, out time))
|
||||
{
|
||||
time = dialogueLine.Text.Length * 0.02f;
|
||||
}
|
||||
await ToSignal(GetTree().CreateTimer(time), "timeout");
|
||||
Next(dialogueLine.NextId);
|
||||
}
|
||||
else
|
||||
{
|
||||
isWaitingForInput = true;
|
||||
balloon.FocusMode = Control.FocusModeEnum.All;
|
||||
balloon.GrabFocus();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
#region signals
|
||||
|
||||
|
||||
private void OnMutated(Dictionary _mutation)
|
||||
{
|
||||
isWaitingForInput = false;
|
||||
willHideBalloon = true;
|
||||
GetTree().CreateTimer(0.1f).Timeout += () =>
|
||||
{
|
||||
if (willHideBalloon)
|
||||
{
|
||||
willHideBalloon = false;
|
||||
balloon.Hide();
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
174
src/ui/dialogue/DialogueBalloon.tscn
Normal file
174
src/ui/dialogue/DialogueBalloon.tscn
Normal file
@@ -0,0 +1,174 @@
|
||||
[gd_scene load_steps=20 format=3 uid="uid://drrynjlwqt8wi"]
|
||||
|
||||
[ext_resource type="Script" path="res://addons/dialogue_manager/example_balloon/ExampleBalloon.cs" id="1_okfmu"]
|
||||
[ext_resource type="FontFile" uid="uid://dit3vylt7hmmx" path="res://src/ui/fonts/FT88-Regular.ttf" id="2_c4c1f"]
|
||||
[ext_resource type="PackedScene" uid="uid://ckvgyvclnwggo" path="res://addons/dialogue_manager/dialogue_label.tscn" id="2_jm6sr"]
|
||||
[ext_resource type="FontFile" uid="uid://cb41qqmxqurj8" path="res://src/ui/fonts/FT88-Bold.ttf" id="3_bc8ok"]
|
||||
[ext_resource type="Script" path="res://addons/dialogue_manager/dialogue_reponses_menu.gd" id="3_yiii3"]
|
||||
[ext_resource type="FontFile" uid="uid://bohbd123672ea" path="res://src/ui/fonts/FT88-Italic.ttf" id="5_2dxvx"]
|
||||
|
||||
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_spyqn"]
|
||||
bg_color = Color(0, 0, 0, 0)
|
||||
border_width_left = 3
|
||||
border_width_top = 3
|
||||
border_width_right = 3
|
||||
border_width_bottom = 3
|
||||
border_color = Color(0.329412, 0.329412, 0.329412, 1)
|
||||
corner_radius_top_left = 5
|
||||
corner_radius_top_right = 5
|
||||
corner_radius_bottom_right = 5
|
||||
corner_radius_bottom_left = 5
|
||||
|
||||
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_ri4m3"]
|
||||
bg_color = Color(0.121569, 0.121569, 0.121569, 0)
|
||||
border_width_left = 3
|
||||
border_width_top = 3
|
||||
border_width_right = 3
|
||||
border_width_bottom = 3
|
||||
border_color = Color(1, 1, 1, 1)
|
||||
corner_radius_top_left = 5
|
||||
corner_radius_top_right = 5
|
||||
corner_radius_bottom_right = 5
|
||||
corner_radius_bottom_left = 5
|
||||
|
||||
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_e0njw"]
|
||||
bg_color = Color(0, 0, 0, 0)
|
||||
border_width_left = 3
|
||||
border_width_top = 3
|
||||
border_width_right = 3
|
||||
border_width_bottom = 3
|
||||
border_color = Color(0.6, 0.6, 0.6, 1)
|
||||
corner_radius_top_left = 5
|
||||
corner_radius_top_right = 5
|
||||
corner_radius_bottom_right = 5
|
||||
corner_radius_bottom_left = 5
|
||||
expand_margin_left = 5.0
|
||||
expand_margin_top = 5.0
|
||||
expand_margin_right = 5.0
|
||||
expand_margin_bottom = 5.0
|
||||
|
||||
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_uy0d5"]
|
||||
bg_color = Color(0, 0, 0, 1)
|
||||
border_width_left = 3
|
||||
border_width_top = 3
|
||||
border_width_right = 3
|
||||
border_width_bottom = 3
|
||||
border_color = Color(0.741176, 0.8, 0.737255, 0)
|
||||
border_blend = true
|
||||
corner_radius_top_left = 5
|
||||
corner_radius_top_right = 5
|
||||
corner_radius_bottom_right = 5
|
||||
corner_radius_bottom_left = 5
|
||||
|
||||
[sub_resource type="Theme" id="Theme_qq3yp"]
|
||||
default_font = ExtResource("2_c4c1f")
|
||||
default_font_size = 20
|
||||
Button/styles/disabled = SubResource("StyleBoxFlat_spyqn")
|
||||
Button/styles/focus = SubResource("StyleBoxFlat_ri4m3")
|
||||
Button/styles/hover = SubResource("StyleBoxFlat_e0njw")
|
||||
Button/styles/normal = SubResource("StyleBoxFlat_e0njw")
|
||||
MarginContainer/constants/margin_bottom = 15
|
||||
MarginContainer/constants/margin_left = 30
|
||||
MarginContainer/constants/margin_right = 30
|
||||
MarginContainer/constants/margin_top = 15
|
||||
Panel/styles/panel = SubResource("StyleBoxFlat_uy0d5")
|
||||
|
||||
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_8reha"]
|
||||
|
||||
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_cb5sp"]
|
||||
|
||||
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_0trte"]
|
||||
|
||||
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_yxgtq"]
|
||||
|
||||
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_vtj1a"]
|
||||
|
||||
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_c2c5i"]
|
||||
|
||||
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_wv0ko"]
|
||||
|
||||
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_dboi3"]
|
||||
|
||||
[node name="DialogueBalloon" type="CanvasLayer"]
|
||||
layer = 100
|
||||
script = ExtResource("1_okfmu")
|
||||
|
||||
[node name="Balloon" type="Control" parent="."]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 3
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
theme = SubResource("Theme_qq3yp")
|
||||
|
||||
[node name="Dialogue" type="MarginContainer" parent="Balloon"]
|
||||
layout_mode = 1
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
offset_left = 21.0
|
||||
offset_top = 897.0
|
||||
offset_right = 21.0
|
||||
offset_bottom = 897.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
|
||||
[node name="VBoxContainer" type="VBoxContainer" parent="Balloon/Dialogue"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="CharacterLabel" type="RichTextLabel" parent="Balloon/Dialogue/VBoxContainer"]
|
||||
unique_name_in_owner = true
|
||||
modulate = Color(1, 1, 1, 0.501961)
|
||||
layout_mode = 2
|
||||
mouse_filter = 1
|
||||
theme_override_colors/default_color = Color(0.737255, 0.705882, 0.690196, 1)
|
||||
theme_override_fonts/normal_font = ExtResource("3_bc8ok")
|
||||
theme_override_styles/fill = SubResource("StyleBoxEmpty_8reha")
|
||||
theme_override_styles/background = SubResource("StyleBoxEmpty_cb5sp")
|
||||
theme_override_styles/focus = SubResource("StyleBoxEmpty_0trte")
|
||||
theme_override_styles/normal = SubResource("StyleBoxEmpty_yxgtq")
|
||||
bbcode_enabled = true
|
||||
text = "Character"
|
||||
fit_content = true
|
||||
scroll_active = false
|
||||
|
||||
[node name="DialogueLabel" parent="Balloon/Dialogue/VBoxContainer" instance=ExtResource("2_jm6sr")]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
size_flags_vertical = 3
|
||||
theme_override_fonts/normal_font = ExtResource("2_c4c1f")
|
||||
theme_override_fonts/italics_font = ExtResource("5_2dxvx")
|
||||
theme_override_fonts/bold_font = ExtResource("3_bc8ok")
|
||||
theme_override_styles/fill = SubResource("StyleBoxEmpty_vtj1a")
|
||||
theme_override_styles/background = SubResource("StyleBoxEmpty_c2c5i")
|
||||
theme_override_styles/focus = SubResource("StyleBoxEmpty_wv0ko")
|
||||
theme_override_styles/normal = SubResource("StyleBoxEmpty_dboi3")
|
||||
text = "Dialogue..."
|
||||
|
||||
[node name="CenterContainer" type="CenterContainer" parent="Balloon"]
|
||||
layout_mode = 1
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
|
||||
[node name="Responses" type="MarginContainer" parent="Balloon/CenterContainer"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="ResponsesMenu" type="VBoxContainer" parent="Balloon/CenterContainer/Responses" node_paths=PackedStringArray("response_template")]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
size_flags_vertical = 8
|
||||
theme_override_constants/separation = 2
|
||||
script = ExtResource("3_yiii3")
|
||||
response_template = NodePath("ResponseExample")
|
||||
|
||||
[node name="ResponseExample" type="Button" parent="Balloon/CenterContainer/Responses/ResponsesMenu"]
|
||||
layout_mode = 2
|
||||
text = "Response example"
|
||||
|
||||
[connection signal="gui_input" from="Balloon" to="." method="_on_balloon_gui_input"]
|
||||
[connection signal="response_selected" from="Balloon/CenterContainer/Responses/ResponsesMenu" to="." method="_on_responses_menu_response_selected"]
|
||||
6
src/ui/dialogue/FloorExit.dialogue
Normal file
6
src/ui/dialogue/FloorExit.dialogue
Normal file
@@ -0,0 +1,6 @@
|
||||
~ floor_exit
|
||||
Proceed to the next floor?
|
||||
- Yes
|
||||
do Exit()
|
||||
- No
|
||||
=> END
|
||||
15
src/ui/dialogue/FloorExit.dialogue.import
Normal file
15
src/ui/dialogue/FloorExit.dialogue.import
Normal file
@@ -0,0 +1,15 @@
|
||||
[remap]
|
||||
|
||||
importer="dialogue_manager_compiler_12"
|
||||
type="Resource"
|
||||
uid="uid://6bhfbvi6jbms"
|
||||
path="res://.godot/imported/FloorExit.dialogue-d2fbe7fb8dbc88a2f9b0dc79a5124041.tres"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://src/ui/dialogue/FloorExit.dialogue"
|
||||
dest_files=["res://.godot/imported/FloorExit.dialogue-d2fbe7fb8dbc88a2f9b0dc79a5124041.tres"]
|
||||
|
||||
[params]
|
||||
|
||||
defaults=true
|
||||
11
src/ui/dialogue/ResponseExample.cs
Normal file
11
src/ui/dialogue/ResponseExample.cs
Normal file
@@ -0,0 +1,11 @@
|
||||
using Godot;
|
||||
using System;
|
||||
|
||||
public partial class ResponseExample : Button
|
||||
{
|
||||
public override void _Ready()
|
||||
{
|
||||
Set("theme_override_colors/font_color", new Color("bcb4b0"));
|
||||
Set("theme_override_colors/font_focus_color", new Color("fff200"));
|
||||
}
|
||||
}
|
||||
BIN
src/ui/fonts/FT88-Bold.ttf
Normal file
BIN
src/ui/fonts/FT88-Bold.ttf
Normal file
Binary file not shown.
34
src/ui/fonts/FT88-Bold.ttf.import
Normal file
34
src/ui/fonts/FT88-Bold.ttf.import
Normal file
@@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="font_data_dynamic"
|
||||
type="FontFile"
|
||||
uid="uid://cb41qqmxqurj8"
|
||||
path="res://.godot/imported/FT88-Bold.ttf-8048d5645d94ef79fb5ce0a2440ace77.fontdata"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://src/ui/fonts/FT88-Bold.ttf"
|
||||
dest_files=["res://.godot/imported/FT88-Bold.ttf-8048d5645d94ef79fb5ce0a2440ace77.fontdata"]
|
||||
|
||||
[params]
|
||||
|
||||
Rendering=null
|
||||
antialiasing=1
|
||||
generate_mipmaps=false
|
||||
disable_embedded_bitmaps=true
|
||||
multichannel_signed_distance_field=false
|
||||
msdf_pixel_range=8
|
||||
msdf_size=48
|
||||
allow_system_fallback=true
|
||||
force_autohinter=false
|
||||
hinting=1
|
||||
subpixel_positioning=4
|
||||
oversampling=0.0
|
||||
Fallbacks=null
|
||||
fallbacks=[]
|
||||
Compress=null
|
||||
compress=true
|
||||
preload=[]
|
||||
language_support={}
|
||||
script_support={}
|
||||
opentype_features={}
|
||||
BIN
src/ui/fonts/FT88-Italic.ttf
Normal file
BIN
src/ui/fonts/FT88-Italic.ttf
Normal file
Binary file not shown.
34
src/ui/fonts/FT88-Italic.ttf.import
Normal file
34
src/ui/fonts/FT88-Italic.ttf.import
Normal file
@@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="font_data_dynamic"
|
||||
type="FontFile"
|
||||
uid="uid://bohbd123672ea"
|
||||
path="res://.godot/imported/FT88-Italic.ttf-60dc5d8522bbf018628773e8057dd0ca.fontdata"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://src/ui/fonts/FT88-Italic.ttf"
|
||||
dest_files=["res://.godot/imported/FT88-Italic.ttf-60dc5d8522bbf018628773e8057dd0ca.fontdata"]
|
||||
|
||||
[params]
|
||||
|
||||
Rendering=null
|
||||
antialiasing=1
|
||||
generate_mipmaps=false
|
||||
disable_embedded_bitmaps=true
|
||||
multichannel_signed_distance_field=false
|
||||
msdf_pixel_range=8
|
||||
msdf_size=48
|
||||
allow_system_fallback=true
|
||||
force_autohinter=false
|
||||
hinting=1
|
||||
subpixel_positioning=4
|
||||
oversampling=0.0
|
||||
Fallbacks=null
|
||||
fallbacks=[]
|
||||
Compress=null
|
||||
compress=true
|
||||
preload=[]
|
||||
language_support={}
|
||||
script_support={}
|
||||
opentype_features={}
|
||||
BIN
src/ui/fonts/FT88-Regular.ttf
Normal file
BIN
src/ui/fonts/FT88-Regular.ttf
Normal file
Binary file not shown.
34
src/ui/fonts/FT88-Regular.ttf.import
Normal file
34
src/ui/fonts/FT88-Regular.ttf.import
Normal file
@@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="font_data_dynamic"
|
||||
type="FontFile"
|
||||
uid="uid://dit3vylt7hmmx"
|
||||
path="res://.godot/imported/FT88-Regular.ttf-0f2e9f2a66e4aa9c15dbcc62a912fdde.fontdata"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://src/ui/fonts/FT88-Regular.ttf"
|
||||
dest_files=["res://.godot/imported/FT88-Regular.ttf-0f2e9f2a66e4aa9c15dbcc62a912fdde.fontdata"]
|
||||
|
||||
[params]
|
||||
|
||||
Rendering=null
|
||||
antialiasing=1
|
||||
generate_mipmaps=false
|
||||
disable_embedded_bitmaps=true
|
||||
multichannel_signed_distance_field=false
|
||||
msdf_pixel_range=8
|
||||
msdf_size=48
|
||||
allow_system_fallback=true
|
||||
force_autohinter=false
|
||||
hinting=1
|
||||
subpixel_positioning=4
|
||||
oversampling=0.0
|
||||
Fallbacks=null
|
||||
fallbacks=[]
|
||||
Compress=null
|
||||
compress=true
|
||||
preload=[]
|
||||
language_support={}
|
||||
script_support={}
|
||||
opentype_features={}
|
||||
BIN
src/ui/fonts/FT88-Serif.ttf
Normal file
BIN
src/ui/fonts/FT88-Serif.ttf
Normal file
Binary file not shown.
34
src/ui/fonts/FT88-Serif.ttf.import
Normal file
34
src/ui/fonts/FT88-Serif.ttf.import
Normal file
@@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="font_data_dynamic"
|
||||
type="FontFile"
|
||||
uid="uid://q8uova06hnon"
|
||||
path="res://.godot/imported/FT88-Serif.ttf-2107f72327313ffd9defb0a5e614fb14.fontdata"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://src/ui/fonts/FT88-Serif.ttf"
|
||||
dest_files=["res://.godot/imported/FT88-Serif.ttf-2107f72327313ffd9defb0a5e614fb14.fontdata"]
|
||||
|
||||
[params]
|
||||
|
||||
Rendering=null
|
||||
antialiasing=1
|
||||
generate_mipmaps=false
|
||||
disable_embedded_bitmaps=true
|
||||
multichannel_signed_distance_field=false
|
||||
msdf_pixel_range=8
|
||||
msdf_size=48
|
||||
allow_system_fallback=true
|
||||
force_autohinter=false
|
||||
hinting=1
|
||||
subpixel_positioning=4
|
||||
oversampling=0.0
|
||||
Fallbacks=null
|
||||
fallbacks=[]
|
||||
Compress=null
|
||||
compress=true
|
||||
preload=[]
|
||||
language_support={}
|
||||
script_support={}
|
||||
opentype_features={}
|
||||
BIN
src/ui/fonts/Lust_Sans_Regular.otf
Normal file
BIN
src/ui/fonts/Lust_Sans_Regular.otf
Normal file
Binary file not shown.
40
src/ui/fonts/Lust_Sans_Regular.otf.import
Normal file
40
src/ui/fonts/Lust_Sans_Regular.otf.import
Normal file
@@ -0,0 +1,40 @@
|
||||
[remap]
|
||||
|
||||
importer="font_data_dynamic"
|
||||
type="FontFile"
|
||||
uid="uid://dp1k143v7cppw"
|
||||
path="res://.godot/imported/Lust_Sans_Regular.otf-2d4d46b654c743da665ff51feb634231.fontdata"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://src/ui/fonts/Lust_Sans_Regular.otf"
|
||||
dest_files=["res://.godot/imported/Lust_Sans_Regular.otf-2d4d46b654c743da665ff51feb634231.fontdata"]
|
||||
|
||||
[params]
|
||||
|
||||
Rendering=null
|
||||
antialiasing=1
|
||||
generate_mipmaps=false
|
||||
disable_embedded_bitmaps=false
|
||||
multichannel_signed_distance_field=false
|
||||
msdf_pixel_range=8
|
||||
msdf_size=48
|
||||
allow_system_fallback=false
|
||||
force_autohinter=false
|
||||
hinting=0
|
||||
subpixel_positioning=4
|
||||
oversampling=0.0
|
||||
Fallbacks=null
|
||||
fallbacks=[]
|
||||
Compress=null
|
||||
compress=false
|
||||
preload=[{
|
||||
"chars": [],
|
||||
"glyphs": [],
|
||||
"name": "New Configuration",
|
||||
"size": Vector2i(16, 0),
|
||||
"variation_embolden": 0.0
|
||||
}]
|
||||
language_support={}
|
||||
script_support={}
|
||||
opentype_features={}
|
||||
BIN
src/ui/fonts/Mrs-Eaves-OT-Roman_31443.ttf
Normal file
BIN
src/ui/fonts/Mrs-Eaves-OT-Roman_31443.ttf
Normal file
Binary file not shown.
40
src/ui/fonts/Mrs-Eaves-OT-Roman_31443.ttf.import
Normal file
40
src/ui/fonts/Mrs-Eaves-OT-Roman_31443.ttf.import
Normal file
@@ -0,0 +1,40 @@
|
||||
[remap]
|
||||
|
||||
importer="font_data_dynamic"
|
||||
type="FontFile"
|
||||
uid="uid://cm8j5vcdop5x0"
|
||||
path="res://.godot/imported/Mrs-Eaves-OT-Roman_31443.ttf-ec147a64c6637c23f1cc6429203e2cda.fontdata"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://src/ui/fonts/Mrs-Eaves-OT-Roman_31443.ttf"
|
||||
dest_files=["res://.godot/imported/Mrs-Eaves-OT-Roman_31443.ttf-ec147a64c6637c23f1cc6429203e2cda.fontdata"]
|
||||
|
||||
[params]
|
||||
|
||||
Rendering=null
|
||||
antialiasing=1
|
||||
generate_mipmaps=false
|
||||
disable_embedded_bitmaps=true
|
||||
multichannel_signed_distance_field=false
|
||||
msdf_pixel_range=8
|
||||
msdf_size=48
|
||||
allow_system_fallback=true
|
||||
force_autohinter=false
|
||||
hinting=1
|
||||
subpixel_positioning=4
|
||||
oversampling=0.0
|
||||
Fallbacks=null
|
||||
fallbacks=[]
|
||||
Compress=null
|
||||
compress=true
|
||||
preload=[{
|
||||
"chars": [],
|
||||
"glyphs": [],
|
||||
"name": "New Configuration",
|
||||
"size": Vector2i(16, 0),
|
||||
"variation_embolden": 0.0
|
||||
}]
|
||||
language_support={}
|
||||
script_support={}
|
||||
opentype_features={}
|
||||
8
src/ui/label_settings/HeadingFont.tres
Normal file
8
src/ui/label_settings/HeadingFont.tres
Normal file
@@ -0,0 +1,8 @@
|
||||
[gd_resource type="LabelSettings" load_steps=2 format=3 uid="uid://wc363u5t1yi2"]
|
||||
|
||||
[ext_resource type="FontFile" uid="uid://cm8j5vcdop5x0" path="res://src/ui/fonts/Mrs-Eaves-OT-Roman_31443.ttf" id="1_olalj"]
|
||||
|
||||
[resource]
|
||||
font = ExtResource("1_olalj")
|
||||
font_size = 48
|
||||
font_color = Color(0.737255, 0.705882, 0.690196, 1)
|
||||
8
src/ui/label_settings/HeadingFontUnselected.tres
Normal file
8
src/ui/label_settings/HeadingFontUnselected.tres
Normal file
@@ -0,0 +1,8 @@
|
||||
[gd_resource type="LabelSettings" load_steps=2 format=3 uid="uid://dw0lfsckex1yx"]
|
||||
|
||||
[ext_resource type="FontFile" uid="uid://cm8j5vcdop5x0" path="res://src/ui/fonts/Mrs-Eaves-OT-Roman_31443.ttf" id="1_amsqn"]
|
||||
|
||||
[resource]
|
||||
font = ExtResource("1_amsqn")
|
||||
font_size = 48
|
||||
font_color = Color(0.439216, 0.415686, 0.407843, 1)
|
||||
8
src/ui/label_settings/MainTextApplied.tres
Normal file
8
src/ui/label_settings/MainTextApplied.tres
Normal file
@@ -0,0 +1,8 @@
|
||||
[gd_resource type="LabelSettings" load_steps=2 format=3 uid="uid://ckvxvx2tiwttt"]
|
||||
|
||||
[ext_resource type="FontFile" uid="uid://cb41qqmxqurj8" path="res://src/ui/fonts/FT88-Bold.ttf" id="1_roceg"]
|
||||
|
||||
[resource]
|
||||
font = ExtResource("1_roceg")
|
||||
font_size = 36
|
||||
font_color = Color(1, 0.94902, 0, 1)
|
||||
8
src/ui/label_settings/MainTextBold.tres
Normal file
8
src/ui/label_settings/MainTextBold.tres
Normal file
@@ -0,0 +1,8 @@
|
||||
[gd_resource type="LabelSettings" load_steps=2 format=3 uid="uid://cuuo43x72xcsc"]
|
||||
|
||||
[ext_resource type="FontFile" uid="uid://cb41qqmxqurj8" path="res://src/ui/fonts/FT88-Bold.ttf" id="1_4xbcf"]
|
||||
|
||||
[resource]
|
||||
font = ExtResource("1_4xbcf")
|
||||
font_size = 36
|
||||
font_color = Color(0.737255, 0.705882, 0.690196, 1)
|
||||
8
src/ui/label_settings/MainTextFontEquipped.tres
Normal file
8
src/ui/label_settings/MainTextFontEquipped.tres
Normal file
@@ -0,0 +1,8 @@
|
||||
[gd_resource type="LabelSettings" load_steps=2 format=3 uid="uid://ur3wpe2kp2j2"]
|
||||
|
||||
[ext_resource type="FontFile" uid="uid://bohbd123672ea" path="res://src/ui/fonts/FT88-Italic.ttf" id="1_c4w2u"]
|
||||
|
||||
[resource]
|
||||
font = ExtResource("1_c4w2u")
|
||||
font_size = 36
|
||||
font_color = Color(1, 0.94902, 0, 1)
|
||||
7
src/ui/label_settings/MainTextFontItalicized.tres
Normal file
7
src/ui/label_settings/MainTextFontItalicized.tres
Normal file
@@ -0,0 +1,7 @@
|
||||
[gd_resource type="LabelSettings" load_steps=2 format=3 uid="uid://c4wbba5mo7qcp"]
|
||||
|
||||
[ext_resource type="FontFile" uid="uid://bohbd123672ea" path="res://src/ui/fonts/FT88-Italic.ttf" id="1_ofouc"]
|
||||
|
||||
[resource]
|
||||
font = ExtResource("1_ofouc")
|
||||
font_size = 36
|
||||
8
src/ui/label_settings/MainTextRegular.tres
Normal file
8
src/ui/label_settings/MainTextRegular.tres
Normal file
@@ -0,0 +1,8 @@
|
||||
[gd_resource type="LabelSettings" load_steps=2 format=3 uid="uid://dupifadnagodp"]
|
||||
|
||||
[ext_resource type="FontFile" uid="uid://dit3vylt7hmmx" path="res://src/ui/fonts/FT88-Regular.ttf" id="1_u174r"]
|
||||
|
||||
[resource]
|
||||
font = ExtResource("1_u174r")
|
||||
font_size = 36
|
||||
font_color = Color(0.737255, 0.705882, 0.690196, 1)
|
||||
10
src/ui/label_settings/TitleFont.tres
Normal file
10
src/ui/label_settings/TitleFont.tres
Normal file
@@ -0,0 +1,10 @@
|
||||
[gd_resource type="LabelSettings" load_steps=2 format=3 uid="uid://dnkovn3xwbt0t"]
|
||||
|
||||
[ext_resource type="FontFile" uid="uid://dp1k143v7cppw" path="res://src/ui/fonts/Lust_Sans_Regular.otf" id="1_kbo40"]
|
||||
|
||||
[resource]
|
||||
font = ExtResource("1_kbo40")
|
||||
font_size = 128
|
||||
font_color = Color(0.737255, 0.705882, 0.690196, 1)
|
||||
shadow_size = 0
|
||||
shadow_offset = Vector2(0, 0)
|
||||
83
src/ui/label_settings/UISandbox.tscn
Normal file
83
src/ui/label_settings/UISandbox.tscn
Normal file
@@ -0,0 +1,83 @@
|
||||
[gd_scene load_steps=9 format=3 uid="uid://dxfbdk7lhdvus"]
|
||||
|
||||
[ext_resource type="LabelSettings" uid="uid://dnkovn3xwbt0t" path="res://src/ui/label_settings/TitleFont.tres" id="1_lt2oc"]
|
||||
[ext_resource type="LabelSettings" uid="uid://wc363u5t1yi2" path="res://src/ui/label_settings/HeadingFont.tres" id="2_6orqu"]
|
||||
[ext_resource type="LabelSettings" uid="uid://dupifadnagodp" path="res://src/ui/label_settings/MainTextRegular.tres" id="3_vgwwa"]
|
||||
[ext_resource type="LabelSettings" uid="uid://dw0lfsckex1yx" path="res://src/ui/label_settings/HeadingFontUnselected.tres" id="3_wb0jr"]
|
||||
[ext_resource type="LabelSettings" uid="uid://cuuo43x72xcsc" path="res://src/ui/label_settings/MainTextBold.tres" id="4_vds7k"]
|
||||
[ext_resource type="LabelSettings" uid="uid://c4wbba5mo7qcp" path="res://src/ui/label_settings/MainTextFontItalicized.tres" id="6_8ni0v"]
|
||||
[ext_resource type="LabelSettings" uid="uid://ur3wpe2kp2j2" path="res://src/ui/label_settings/MainTextFontEquipped.tres" id="7_o8qef"]
|
||||
[ext_resource type="LabelSettings" uid="uid://ckvxvx2tiwttt" path="res://src/ui/label_settings/MainTextApplied.tres" id="8_ld5mo"]
|
||||
|
||||
[node name="UISandbox" type="Control"]
|
||||
layout_mode = 3
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
offset_left = -5.0
|
||||
offset_right = -5.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
|
||||
[node name="ColorRect" type="ColorRect" parent="."]
|
||||
layout_mode = 1
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
color = Color(0.137255, 0.121569, 0.12549, 1)
|
||||
|
||||
[node name="MarginContainer" type="MarginContainer" parent="."]
|
||||
layout_mode = 0
|
||||
offset_right = 40.0
|
||||
offset_bottom = 40.0
|
||||
theme_override_constants/margin_left = 40
|
||||
theme_override_constants/margin_top = 40
|
||||
theme_override_constants/margin_right = 40
|
||||
theme_override_constants/margin_bottom = 40
|
||||
|
||||
[node name="HFlowContainer" type="VBoxContainer" parent="MarginContainer"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="MainTitleFont" type="Label" parent="MarginContainer/HFlowContainer"]
|
||||
layout_mode = 2
|
||||
text = "MAIN TITLE FONT"
|
||||
label_settings = ExtResource("1_lt2oc")
|
||||
|
||||
[node name="HeadingFont" type="Label" parent="MarginContainer/HFlowContainer"]
|
||||
layout_mode = 2
|
||||
text = "HEADING FONT - STANDARD + SELECTED"
|
||||
label_settings = ExtResource("2_6orqu")
|
||||
|
||||
[node name="Heading Font (Unselected)" type="Label" parent="MarginContainer/HFlowContainer"]
|
||||
layout_mode = 2
|
||||
text = "HEADING FONT - UNSELECTED (50%)"
|
||||
label_settings = ExtResource("3_wb0jr")
|
||||
|
||||
[node name="MainTextRegular" type="Label" parent="MarginContainer/HFlowContainer"]
|
||||
layout_mode = 2
|
||||
text = "Main Text Font - Regular"
|
||||
label_settings = ExtResource("3_vgwwa")
|
||||
|
||||
[node name="MainTextBold" type="Label" parent="MarginContainer/HFlowContainer"]
|
||||
layout_mode = 2
|
||||
text = "Main Text Font - Bold"
|
||||
label_settings = ExtResource("4_vds7k")
|
||||
|
||||
[node name="MainTextItalic" type="Label" parent="MarginContainer/HFlowContainer"]
|
||||
layout_mode = 2
|
||||
text = "Main Text Font - Italic
|
||||
"
|
||||
label_settings = ExtResource("6_8ni0v")
|
||||
|
||||
[node name="MainTextItalicEquipped" type="Label" parent="MarginContainer/HFlowContainer"]
|
||||
layout_mode = 2
|
||||
text = "Main Text Font - Italic
|
||||
"
|
||||
label_settings = ExtResource("7_o8qef")
|
||||
|
||||
[node name="ItemApplied" type="Label" parent="MarginContainer/HFlowContainer"]
|
||||
layout_mode = 2
|
||||
text = "Item Applied Font - Bold"
|
||||
label_settings = ExtResource("8_ld5mo")
|
||||
Reference in New Issue
Block a user