|
|
|
@ -11,7 +11,7 @@ public partial class QuestManager : Node
|
|
|
|
public static QuestManager? Instance { get; private set; }
|
|
|
|
public static QuestManager? Instance { get; private set; }
|
|
|
|
|
|
|
|
|
|
|
|
[Signal]
|
|
|
|
[Signal]
|
|
|
|
public delegate void QuestBecomesActiveEventHandler(QuestResource questResource);
|
|
|
|
public delegate void QuestBecomesAvailableEventHandler(QuestResource questResource);
|
|
|
|
|
|
|
|
|
|
|
|
[Signal]
|
|
|
|
[Signal]
|
|
|
|
public delegate void QuestsChangedEventHandler();
|
|
|
|
public delegate void QuestsChangedEventHandler();
|
|
|
|
@ -26,7 +26,7 @@ public partial class QuestManager : Node
|
|
|
|
|
|
|
|
|
|
|
|
private Godot.Collections.Dictionary<QuestResource, QuestStatus> _questStatus = new();
|
|
|
|
private Godot.Collections.Dictionary<QuestResource, QuestStatus> _questStatus = new();
|
|
|
|
|
|
|
|
|
|
|
|
private QuestResource? _followQuest;
|
|
|
|
private QuestResource? _activeQuest;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public void ChangeQuestStatus(QuestResource questResource, QuestStatus.Status newStatus)
|
|
|
|
public void ChangeQuestStatus(QuestResource questResource, QuestStatus.Status newStatus)
|
|
|
|
@ -40,11 +40,11 @@ public partial class QuestManager : Node
|
|
|
|
value.status = newStatus;
|
|
|
|
value.status = newStatus;
|
|
|
|
|
|
|
|
|
|
|
|
EmitSignalQuestsChanged();
|
|
|
|
EmitSignalQuestsChanged();
|
|
|
|
EmitSignalDialogicActiveQuest(_followQuest?.id ?? "none");
|
|
|
|
EmitSignalDialogicActiveQuest(_activeQuest?.id ?? "none");
|
|
|
|
|
|
|
|
|
|
|
|
if (newStatus == QuestStatus.Status.Active)
|
|
|
|
if (newStatus == QuestStatus.Status.Available)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
EmitSignalQuestBecomesActive(questResource);
|
|
|
|
EmitSignalQuestBecomesAvailable(questResource);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@ -53,9 +53,9 @@ public partial class QuestManager : Node
|
|
|
|
return _questStatus.Where(qs => qs.Value.status != QuestStatus.Status.Hidden);
|
|
|
|
return _questStatus.Where(qs => qs.Value.status != QuestStatus.Status.Hidden);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public IEnumerable<QuestPair> GetActiveQuests()
|
|
|
|
public IEnumerable<QuestPair> GetAvailableQuests()
|
|
|
|
{
|
|
|
|
{
|
|
|
|
return _questStatus.Where(qs => qs.Value.status == QuestStatus.Status.Active);
|
|
|
|
return _questStatus.Where(qs => qs.Value.status == QuestStatus.Status.Available);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
public QuestStatus GetQuestStatus(QuestResource questResource)
|
|
|
|
public QuestStatus GetQuestStatus(QuestResource questResource)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
@ -67,15 +67,15 @@ public partial class QuestManager : Node
|
|
|
|
return status;
|
|
|
|
return status;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public QuestResource? GetFollowQuest()
|
|
|
|
public QuestResource? GetActiveQuest()
|
|
|
|
{
|
|
|
|
{
|
|
|
|
return _followQuest;
|
|
|
|
return _activeQuest;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public void SetFollowQuest(QuestResource? questResource)
|
|
|
|
public void SetActiveQuest(QuestResource? questResource)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
_followQuest = questResource;
|
|
|
|
_activeQuest = questResource;
|
|
|
|
EmitSignalQuestsChanged();
|
|
|
|
EmitSignalQuestsChanged();
|
|
|
|
EmitSignalDialogicActiveQuest(_followQuest?.id ?? "none");
|
|
|
|
EmitSignalDialogicActiveQuest(_activeQuest?.id ?? "none");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|