using System.Collections.Generic; using Lumina.Excel.Sheets; namespace QuestMap; public interface IQuestInfo { public Quest Quest { get; } public uint RowId { get; } public string Name { get; } public IEnumerable PreviousQuests(); } public sealed class SheetQuestInfo(Quest quest) : IQuestInfo { public Quest Quest => quest; public uint RowId => quest.RowId; public string Name => quest.Name.ToString(); public IEnumerable PreviousQuests() => quest.PreviousQuests(); } public sealed class ConsolidatedQuestInfo(IQuestInfo baseQuest, string name) : IQuestInfo { public Quest Quest => baseQuest.Quest; public uint RowId => baseQuest.RowId; public string Name => name; public IEnumerable PreviousQuests() => baseQuest.PreviousQuests(); }