From 1d363e77412f8a16f7c45c62e5dbdffa68f00292 Mon Sep 17 00:00:00 2001 From: cmod31 Date: Wed, 8 Feb 2023 12:18:24 +0100 Subject: [PATCH] answerbox basic functional --- scenes/tiles/dialogdebug_cupcake.tscn | 1 + .../dialogue-system/dialog_bubble.cs | 26 +++++++++++++------ 2 files changed, 19 insertions(+), 8 deletions(-) diff --git a/scenes/tiles/dialogdebug_cupcake.tscn b/scenes/tiles/dialogdebug_cupcake.tscn index 6ab4454..0b667d3 100644 --- a/scenes/tiles/dialogdebug_cupcake.tscn +++ b/scenes/tiles/dialogdebug_cupcake.tscn @@ -19,6 +19,7 @@ position = Vector2(0, 20.625) shape = SubResource("RectangleShape2D_pchpi") [node name="dialog_trigger_area" parent="." instance=ExtResource("2_blpmd")] +position = Vector2(3, 0) file = "res://assets/lang/en/dialogue/npcs/villager_normal.json" title = "Debug cupcake" diff --git a/src/scene-scripts/dialogue-system/dialog_bubble.cs b/src/scene-scripts/dialogue-system/dialog_bubble.cs index a54944f..e9ce049 100644 --- a/src/scene-scripts/dialogue-system/dialog_bubble.cs +++ b/src/scene-scripts/dialogue-system/dialog_bubble.cs @@ -25,6 +25,7 @@ public partial class dialog_bubble : CanvasLayer public void GatherDialog(string key) { + dlgPointer = 0; dlgLines = parsedDlg.AsGodotDictionary()[key].AsGodotArray(); if (dlgLines.VariantType == Variant.Type.Array) dlgLines = dlgLines.AsGodotArray()[GD.RandRange(0, dlgLines.AsGodotArray().Count - 1)]; @@ -49,15 +50,9 @@ public partial class dialog_bubble : CanvasLayer if (dlgPointer < dlgLines.AsGodotArray().Count) { if (dlgLines.AsGodotArray()[dlgPointer].VariantType == Variant.Type.String) - { - richText.Text = dlgLines.AsGodotArray()[dlgPointer].ToString(); - richText.VisibleCharacters = 0; - GetNode("typewriter_timer").Start(); - } + UpdateDialog(); else if (dlgLines.AsGodotArray()[dlgPointer].VariantType == Variant.Type.Dictionary) - { MakeAnswerBox(Json.ParseString(dlgLines.AsGodotArray()[dlgPointer].AsGodotDictionary().Keys.ToString()).AsStringArray()); - } } dlgPointer++; } @@ -71,7 +66,22 @@ public partial class dialog_bubble : CanvasLayer CloseDialog(); if (GetNode("box/panel_container").Visible == true && GetNode("box/panel_container/margin_container").GetChild(0).GetChild