Update du système de quêtes. Refactorisation et redefinission des états d'une quête.

This commit is contained in:
mrtoine 2025-10-10 14:25:05 +02:00
parent 2370cb670d
commit 3dbddc57ae
7 changed files with 94 additions and 19 deletions

View file

@ -57,10 +57,32 @@ namespace GameUI.Runtime
public void AcceptQuest()
{
List<QuestClass> quests = GetFact<List<QuestClass>>("quests");
quests.Add(_quest);
// Ensure state order: Disponible -> Accepted
_quest.State = QuestStateEnum.Accepted;
// Persist in saved quests list
List<QuestClass> savedQuests = GetFact<List<QuestClass>>("quests");
savedQuests.Add(_quest);
// Also add to runtime active quests list so other systems can find it
if (FactExists<List<QuestClass>>("active_quests", out _))
{
var activeQuests = GetFact<List<QuestClass>>("active_quests");
// Avoid duplicates by GUID
if (!activeQuests.Any(q => q.ID == _quest.ID))
{
activeQuests.Add(_quest);
}
}
SaveFacts();
// Refresh quest UIs and availability board
QuestSignals.RaiseRefreshQuests();
var player = GetFact<Player.Runtime.PlayerClass>(GameManager.Instance.Profile);
QuestManager.Instance.NotifyAvailableQuestsUpdated(player.GuildLevel);
// Remove the accepted card from the board
Destroy(gameObject);
}