Les events se déroule bien comme il faut. Les aventuriers sont bien repasser en IsAvailable = true quand une quête se termine.

This commit is contained in:
mrtoine 2025-10-11 17:50:11 +02:00
parent 838f91ede7
commit 3ba8dad4a2
16 changed files with 310 additions and 68 deletions

View file

@ -60,19 +60,17 @@ namespace GameUI.Runtime
// Ensure state order: Disponible -> Accepted
_quest.State = QuestStateEnum.Accepted;
// Persist in saved quests list
List<QuestClass> savedQuests = GetFact<List<QuestClass>>("accepted_quests");
savedQuests.Add(_quest);
// Also add to runtime active quests list so other systems can find it
if (FactExists<List<QuestClass>>("accepted_quests", out _))
// Persist in saved quests list, ensure it exists
var savedQuests = GetFact<List<QuestClass>>("accepted_quests");
if (savedQuests == null)
{
var acceptedQuests = GetFact<List<QuestClass>>("accepted_quests");
// Avoid duplicates by GUID
if (!acceptedQuests.Any(q => q.ID == _quest.ID))
{
acceptedQuests.Add(_quest);
}
savedQuests = new List<QuestClass>();
SetFact("accepted_quests", savedQuests, FactPersistence.Persistent);
}
// Avoid duplicates by GUID
if (!savedQuests.Any(q => q.ID == _quest.ID))
{
savedQuests.Add(_quest);
}
SaveFacts();
@ -83,7 +81,6 @@ namespace GameUI.Runtime
QuestManager.Instance.NotifyAvailableQuestsUpdated(player.GuildLevel);
// Remove the accepted card from the board
Info($"<color=green>Quest accepted?: {_quest.Name} : {_quest.State}</color>");
Destroy(gameObject);
}