improved some dialogue code

This commit is contained in:
2023-02-23 09:49:03 +01:00
parent 4e0ec4994f
commit 4979c70852
2 changed files with 7 additions and 7 deletions

View File

@@ -8,7 +8,7 @@ public partial class dialog_bubble : CanvasLayer
public int dlgPointer = 0; public int dlgPointer = 0;
public RichTextLabel richText; public RichTextLabel richText;
public Timer typewriterTimer; public Timer typewriterTimer;
public string name; public string title;
public Area2D triggerArea; public Area2D triggerArea;
/*TODO: /*TODO:
- Dont repeat the same randomized dialogue after you get asked do you need something "else" - Dont repeat the same randomized dialogue after you get asked do you need something "else"
@@ -22,13 +22,14 @@ public partial class dialog_bubble : CanvasLayer
richText = GetNode<RichTextLabel>("box/rich_text_label"); richText = GetNode<RichTextLabel>("box/rich_text_label");
typewriterTimer = GetNode<Timer>("typewriter_timer"); typewriterTimer = GetNode<Timer>("typewriter_timer");
} }
public void GetDialog(string file, string title, Area2D actor, string playerName, bool introducedVillager) public void GetDialog(string file, Area2D actor)
{ {
triggerArea = actor; triggerArea = actor;
name = title; title = actor.Get("title").AsString();
bool introducedVillager = actor.Get("introducedVillager").AsBool();
parsedDlg = Json.ParseString(FileAccess.Open(file, FileAccess.ModeFlags.Read).GetAsText() parsedDlg = Json.ParseString(FileAccess.Open(file, FileAccess.ModeFlags.Read).GetAsText()
.Replace("{player}", "[color=cyan]" + playerName + "[/color]").Replace("{title}", "[color=purple]" + title + "[/color]")); .Replace("{player}", "[color=cyan]" + player_variables.PlayerName + "[/color]").Replace("{title}", "[color=purple]" + title + "[/color]"));
if (parsedDlg.AsGodotDictionary()["dialogType"].AsString() != "villager" || introducedVillager) if (parsedDlg.AsGodotDictionary()["dialogType"].AsString() != "villager" || introducedVillager)
GetNode<Label>("box/name_label").Text = title; GetNode<Label>("box/name_label").Text = title;
@@ -143,7 +144,7 @@ public partial class dialog_bubble : CanvasLayer
switch (eventID) switch (eventID)
{ {
case 0: case 0:
GetNode<Label>("box/name_label").Text = name; GetNode<Label>("box/name_label").Text = title;
triggerArea.Set("introducedVillager", true); triggerArea.Set("introducedVillager", true);
GatherDialog("begindialog"); GatherDialog("begindialog");
UpdateDialog(); UpdateDialog();

View File

@@ -27,8 +27,7 @@ public partial class player : CharacterBody2D
public override void _Process(double delta) public override void _Process(double delta)
{ {
if (Input.IsActionJustPressed("ui_accept") && dialogRayCast.IsColliding() && allowMovement) if (Input.IsActionJustPressed("ui_accept") && dialogRayCast.IsColliding() && allowMovement)
GetNode<dialog_bubble>("dialog_bubble").GetDialog(dialogRayCast.GetCollider().Get("file").AsString(), dialogRayCast.GetCollider().Get("title").AsString(), GetNode<dialog_bubble>("dialog_bubble").GetDialog(dialogRayCast.GetCollider().Get("file").AsString(), (Area2D)dialogRayCast.GetCollider());
(Area2D)dialogRayCast.GetCollider(), player_variables.PlayerName, dialogRayCast.GetCollider().Get("introducedVillager").AsBool());
//animation system (with controller support wich cant get normalized vector) //animation system (with controller support wich cant get normalized vector)
if (allowMovement == false) if (allowMovement == false)