Added more quest stuff including dialogic quest condition

This commit is contained in:
Jonathan
2025-08-06 17:20:11 +02:00
parent abc33fd06c
commit 0170a53b5a
36 changed files with 540 additions and 41 deletions
@@ -19,9 +19,6 @@ public partial class QuestManager : Node
[Signal]
public delegate void DialogicActiveQuestEventHandler(string value);
[Export(PropertyHint.ArrayType)]
public QuestResource[] questsAccessibleFromDialogic;
public override void _EnterTree()
{
Instance = this;
@@ -81,12 +78,4 @@ public partial class QuestManager : Node
EmitSignalQuestsChanged();
EmitSignalDialogicActiveQuest(_followQuest?.id ?? "none");
}
// functions to call from Dialogic
public void DlSetQuestActiveAndFollow(string questId)
{
var resource = questsAccessibleFromDialogic.First(qr => qr.id == questId);
ChangeQuestStatus(resource, QuestStatus.Status.Active);
SetFollowQuest(resource);
}
}
@@ -1,20 +1,22 @@
using Godot;
using System;
using System.Collections.Generic;
using System.Diagnostics;
using Babushka.scripts.CSharp.Common.Quest;
using Godot.Collections;
public partial class QuestTestingScript : Node
{
[Export(PropertyHint.ArrayType)]
private Array<QuestResource> _questsToActivate;
private Array<QuestResource>? _questsToActivate;
public override void _EnterTree()
{
Debug.Assert(_questsToActivate != null);
foreach (var questResource in _questsToActivate)
{
QuestManager.Instance.ChangeQuestStatus(questResource, QuestStatus.Status.Active);
QuestManager.Instance!.ChangeQuestStatus(questResource, QuestStatus.Status.Active);
}
}
}