Added first quests

This commit is contained in:
cblech
2025-07-23 20:48:56 +02:00
committed by Jonathan
parent 2fbeb93018
commit abc33fd06c
18 changed files with 151 additions and 26 deletions
+18 -2
View File
@@ -16,13 +16,19 @@ public partial class QuestManager : Node
[Signal]
public delegate void QuestsChangedEventHandler();
[Signal]
public delegate void DialogicActiveQuestEventHandler(string value);
[Export(PropertyHint.ArrayType)]
public QuestResource[] questsAccessibleFromDialogic;
public override void _EnterTree()
{
Instance = this;
}
private Godot.Collections.Dictionary<QuestResource, QuestStatus> _questStatus = new();
private QuestResource? _followQuest;
@@ -37,6 +43,7 @@ public partial class QuestManager : Node
value.status = newStatus;
EmitSignalQuestsChanged();
EmitSignalDialogicActiveQuest(_followQuest?.id ?? "none");
if (newStatus == QuestStatus.Status.Active)
{
@@ -57,7 +64,7 @@ public partial class QuestManager : Node
{
if (_questStatus.TryGetValue(questResource, out var status))
return status;
status = new QuestStatus();
_questStatus.Add(questResource, status);
return status;
@@ -72,5 +79,14 @@ public partial class QuestManager : Node
{
_followQuest = questResource;
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);
}
}
+4 -4
View File
@@ -6,10 +6,10 @@ public partial class QuestStatus : GodotObject
{
public enum Status
{
Hidden,
Active,
Done,
Canceled,
Hidden = 0,
Active = 1,
Done = 2,
Canceled = 3,
}
public Status status = Status.Hidden;