From 15407f5f06568009a5e514f921f5c147255acd9d Mon Sep 17 00:00:00 2001 From: cmod31 Date: Wed, 8 Feb 2023 14:12:06 +0100 Subject: [PATCH] finished dialogue villager system --- .../en/dialogue/npcs/villager_normal.json | 26 ++++++++------- .../dialogue-system/dialog_bubble.cs | 32 +++++++++++++------ 2 files changed, 37 insertions(+), 21 deletions(-) diff --git a/assets/lang/en/dialogue/npcs/villager_normal.json b/assets/lang/en/dialogue/npcs/villager_normal.json index 6aa5878..2c0eb8a 100644 --- a/assets/lang/en/dialogue/npcs/villager_normal.json +++ b/assets/lang/en/dialogue/npcs/villager_normal.json @@ -4,22 +4,22 @@ [ "Oh hello, {player}... You look great! What can I do for you?", { - "I just wanna talk": true, - "Nevermind!": false + "I just wanna talk": "tipp", + "Nevermind!": "goodbye" } ], [ "Hey, {player}! Hope you have fun today! So what do you want?", { - "What's up": true, - "Nothing": false + "What's up": "tipp", + "Nothing": "goodbye" } ], [ "Hi! What's up {player}?", { - "Can we talk?": true, - "Have a great day!": false + "Can we talk?": "tipp", + "Have a great day!": "goodbye" } ] ], @@ -27,24 +27,26 @@ [ "Do you need something else?", { - "Can you tell me something else?": true, - "No, thanks!": false + "Can you tell me something else?": "tipp", + "No, thanks!": "goodbye" } ], [ "So can i help you with something else?", { - "Tell me a bit more maybe": true, - "I'm good, thank you!": false + "Tell me a bit more maybe": "tipp", + "I'm good, thank you!": "goodbye" } ] ], "goodbye": [ [ - "Was nice talking to you goodbye!" + "Was nice talking to you goodbye!", + 0 ], [ - "Have a great day, {player}!" + "Have a great day, {player}!", + 0 ] ], "tipp": [ diff --git a/src/scene-scripts/dialogue-system/dialog_bubble.cs b/src/scene-scripts/dialogue-system/dialog_bubble.cs index e9ce049..c91d51d 100644 --- a/src/scene-scripts/dialogue-system/dialog_bubble.cs +++ b/src/scene-scripts/dialogue-system/dialog_bubble.cs @@ -20,6 +20,8 @@ public partial class dialog_bubble : CanvasLayer if (GetParent().Name == "player") GetParent().allowMovement = false; if (parsedDlg.AsGodotDictionary()["dialogType"].AsString() == "villager") GatherDialog("welcome"); + else if (parsedDlg.AsGodotDictionary()["dialogType"].AsString() == "message") + GatherDialog("message"); Visible = true; } @@ -49,7 +51,10 @@ public partial class dialog_bubble : CanvasLayer { if (dlgPointer < dlgLines.AsGodotArray().Count) { - if (dlgLines.AsGodotArray()[dlgPointer].VariantType == Variant.Type.String) + GD.Print(dlgLines.AsGodotArray()[dlgPointer].VariantType); + if (dlgLines.AsGodotArray()[dlgPointer].VariantType == Variant.Type.Float && ((float)dlgLines.AsGodotArray()[dlgPointer]) == 0) + CloseDialog(); + else if (dlgLines.AsGodotArray()[dlgPointer].VariantType == Variant.Type.String) UpdateDialog(); else if (dlgLines.AsGodotArray()[dlgPointer].VariantType == Variant.Type.Dictionary) MakeAnswerBox(Json.ParseString(dlgLines.AsGodotArray()[dlgPointer].AsGodotDictionary().Keys.ToString()).AsStringArray()); @@ -61,17 +66,26 @@ public partial class dialog_bubble : CanvasLayer richText.VisibleCharacters++; GetNode("typewriter_timer").Start(); } - if (dlgPointer > dlgLines.AsGodotArray().Count) - CloseDialog(); - - if (GetNode("box/panel_container").Visible == true && GetNode("box/panel_container/margin_container").GetChild(0).GetChild