{
public string Author { get; set; } = null!;
public List<string> Contributors { get; set; } = new();
+ public bool Disabled { get; set; }
public string? Comment { get; set; }
public List<ushort> TerritoryBlacklist { get; set; } = new();
public List<QuestSequence> QuestSequence { get; set; } = new();
var distinctSequenceCount = quest.Root.QuestSequence.Select(x => x.Sequence).Distinct().Count();
if (totalSequenceCount != distinctSequenceCount)
{
- _logger.LogWarning("Quest has duplicate sequence numbers: {QuestId} / {QuestName}", quest.QuestId,
+ _logger.LogWarning("Quest has duplicate sequence numbers: {QuestId} / {QuestName}",
+ quest.QuestId,
quest.Info.Name);
++foundProblems;
}
{
_logger.LogWarning(
"Quest step has duplicate completion flags: {QuestId} / {QuestName} → {Sequence} → {Flags}",
- quest.QuestId, quest.Info.Name, sequence.Sequence, string.Join(", ", duplicate.First()));
+ quest.QuestId, quest.Info.Name, sequence.Sequence,
+ string.Join(", ", duplicate.First()));
++foundProblems;
}
}
Root = JsonSerializer.Deserialize<QuestRoot>(stream)!,
Info = _questData.GetQuestInfo(questId.Value),
};
+ if (quest.Root.Disabled)
+ {
+ _logger.LogWarning("Quest {QuestId} / {QuestName} is disabled and won't be loaded", questId,
+ quest.Info.Name);
+ return;
+ }
+
_quests[questId.Value] = quest;
}