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
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue