qstbak/Questionable/Questionable.Model/IQuestInfo.cs
2025-10-09 07:53:51 +10:00

51 lines
1.3 KiB
C#

using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using Dalamud.Game.Text;
using LLib.GameData;
using Questionable.Model.Questing;
namespace Questionable.Model;
internal interface IQuestInfo
{
ElementId QuestId { get; }
string Name { get; }
uint IssuerDataId { get; }
bool IsRepeatable { get; }
bool IsSeasonalQuest => false;
DateTime? SeasonalQuestExpiry => null;
ImmutableList<PreviousQuestInfo> PreviousQuests { get; }
EQuestJoin PreviousQuestJoin { get; }
ushort Level { get; }
EAlliedSociety AlliedSociety { get; }
uint? JournalGenre { get; }
ushort SortKey { get; }
bool IsMainScenarioQuest { get; }
IReadOnlyList<EClassJob> ClassJobs { get; }
EExpansionVersion Expansion { get; }
string SimplifiedName => Name.Replace(".", "", StringComparison.Ordinal).Replace("*", "", StringComparison.Ordinal).Replace("\"", "", StringComparison.Ordinal)
.Replace("/", "", StringComparison.Ordinal)
.Replace("\\", "", StringComparison.Ordinal)
.Replace("<", "", StringComparison.Ordinal)
.Replace(">", "", StringComparison.Ordinal)
.Replace("|", "", StringComparison.Ordinal)
.Replace(":", "", StringComparison.Ordinal)
.Replace("?", "", StringComparison.Ordinal)
.TrimStart(SeIconChar.QuestSync.ToIconChar(), SeIconChar.QuestRepeatable.ToIconChar(), ' ');
}