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

@ -56,7 +56,7 @@ namespace Quests.Runtime
public List<ItemReward> Rewards
{
get { return _rewards; }
set { _rewards = new List<ItemReward>(); }
set { _rewards = value ?? new List<ItemReward>(); }
}
public QuestStateEnum State
@ -215,12 +215,35 @@ namespace Quests.Runtime
public static AdventurerClass GetOneAdventurerFromId(Guid adventurerId)
{
if (GameManager.Instance.Fact.GetFact<List<AdventurerClass>>("my_adventurers") == null)
// Guard against GameManager or Fact system not ready
Debug.Log($"ID recherché : {adventurerId}");
if (GameManager.Instance == null)
{
Debug.Log("GameManager introuvable ou pas initialisé");
return null;
}
List<AdventurerClass> currentAdventurers = GameManager.Instance.Fact.GetFact<List<AdventurerClass>>("my_adventurers");
return currentAdventurers.Find(adventurer => adventurer.ID == adventurerId);
if (GameManager.Instance.Fact == null)
{
Debug.Log("Fact introuvable ou null");
return null;
}
var list = GameManager.Instance.Fact.GetFact<List<AdventurerClass>>("my_adventurers");
if (list == null)
{
Debug.Log("Liste des aventuriers est null");
return null;
}
else
{
Debug.Log($"Nombre d'Aventuriers : {list.Count}");
}
var adventurer = list.Find(adventurer => adventurer != null && adventurer.ID == adventurerId);
Debug.Log($"retourne : {adventurer}");
return list.Find(adventurer => adventurer != null && adventurer.ID == adventurerId);
}
public static List<Guid> GetIdFromAdventurers(List<AdventurerClass> adventurers)
@ -235,8 +258,13 @@ namespace Quests.Runtime
public static Guid GetOneIdFromAdventurer(AdventurerClass adventurer)
{
List<AdventurerClass> currentAdventurers = GameManager.Instance.Fact.GetFact<List<AdventurerClass>>("my_adventurers");
return currentAdventurers.Find(adv => adv.ID == adventurer.ID).ID;
if (adventurer == null || GameManager.Instance == null || GameManager.Instance.Fact == null)
{
return Guid.Empty;
}
var currentAdventurers = GameManager.Instance.Fact.GetFact<List<AdventurerClass>>("my_adventurers");
var adv = currentAdventurers?.Find(a => a != null && a.ID == adventurer.ID);
return adv != null ? adv.ID : Guid.Empty;
}
#endregion