Update du système de quêtes. Refactorisation et redefinission des états d'une quête.
This commit is contained in:
parent
2370cb670d
commit
3dbddc57ae
7 changed files with 94 additions and 19 deletions
|
|
@ -65,15 +65,27 @@ namespace GameUI.Runtime
|
|||
|
||||
void DisplayAvailableQuests(List<QuestTemplate> availableTemplates, List<QuestClass> acceptedQuests)
|
||||
{
|
||||
foreach (var quest in availableTemplates)
|
||||
// Build a set of started quest IDs (Accepted/Active + Completed)
|
||||
var startedIds = new HashSet<System.Guid>();
|
||||
foreach (var q in QuestManager.Instance.ActiveQuests ?? new List<QuestClass>())
|
||||
{
|
||||
if (acceptedQuests.Any(q => q.Name == quest.data.Name))
|
||||
if (q.ID != System.Guid.Empty) startedIds.Add(q.ID);
|
||||
}
|
||||
foreach (var q in QuestManager.Instance.CompletedQuests ?? new List<QuestClass>())
|
||||
{
|
||||
if (q.ID != System.Guid.Empty) startedIds.Add(q.ID);
|
||||
}
|
||||
|
||||
foreach (var template in availableTemplates)
|
||||
{
|
||||
// Skip if this template already started (by GUID)
|
||||
if (System.Guid.TryParse(template.m_assetGuid, out var guid) && startedIds.Contains(guid))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
DisplayCard(quest);
|
||||
DisplayCard(template);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void DisplayCard(QuestTemplate quest)
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue