/// <summary> /// Create a new <see cref="QuestInfo"/> using supplied <see cref="Quest2Entry"/>. /// </summary> public QuestInfo(Quest2Entry entry) { Entry = entry; DifficultyEntry = GameTableManager.Instance.Quest2Difficulty.GetEntry(Entry.Quest2DifficultyId); InitialisePrerequisiteQuests(); InitialiseObjectives(); InitialiseRewards(); }
/// <summary> /// Create a new <see cref="QuestInfo"/> using supplied <see cref="Quest2Entry"/>. /// </summary> public QuestInfo(Quest2Entry entry) { Entry = entry; DifficultyEntry = GameTableManager.Quest2Difficulty.GetEntry(Entry.Quest2DifficultyId); ImmutableList <QuestObjectiveEntry> .Builder objectiveBuilder = ImmutableList.CreateBuilder <QuestObjectiveEntry>(); foreach (uint objectiveId in entry.Objectives.Where(o => o != 0u)) { objectiveBuilder.Add(GameTableManager.QuestObjective.GetEntry(objectiveId)); } Objectives = objectiveBuilder.ToImmutable(); ImmutableDictionary <uint, Quest2RewardEntry> .Builder rewardBuilder = ImmutableDictionary.CreateBuilder <uint, Quest2RewardEntry>(); foreach (Quest2RewardEntry rewardEntry in GameTableManager.Quest2Reward.Entries .Where(e => e.Quest2Id == entry.Id)) { rewardBuilder.Add(rewardEntry.Id, rewardEntry); } Rewards = rewardBuilder.ToImmutable(); }