1
0
Fork 0
forked from aly/qstbak

muffin v7.5.11

This commit is contained in:
alydev 2026-08-17 20:29:32 +10:00
parent addf2d530f
commit 3102923ce2
522 changed files with 41082 additions and 211592 deletions

View file

@ -2,7 +2,6 @@ using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Linq;
using System.Runtime.CompilerServices;
using FFXIVClientStructs.FFXIV.Client.UI.Agent;
using LLib.GameData;
using Lumina.Excel;
@ -13,134 +12,6 @@ namespace Questionable.Model;
internal sealed class QuestInfo : IQuestInfo
{
[Serializable]
[CompilerGenerated]
private sealed class _003C_003Ec
{
public static readonly _003C_003Ec _003C_003E9 = new _003C_003Ec();
public static Func<PreviousQuestInfo, bool> _003C_003E9__0_0;
public static Func<RowRef<Lumina.Excel.Sheets.Quest>, QuestId> _003C_003E9__0_1;
public static Func<QuestId, bool> _003C_003E9__0_2;
public static Func<RowRef<InstanceContent>, ushort> _003C_003E9__0_3;
public static Func<ushort, bool> _003C_003E9__0_4;
public static Func<RowRef, bool> _003C_003E9__0_5;
public static Func<RowRef, Item?> _003C_003E9__0_6;
public static Func<Item?, bool> _003C_003E9__0_7;
public static Func<RowRef<Item>, bool> _003C_003E9__0_8;
public static Func<RowRef<Item>, Item?> _003C_003E9__0_9;
public static Func<Item?, bool> _003C_003E9__0_10;
public static Func<Item?, Item> _003C_003E9__0_11;
public static Func<ItemReward, bool> _003C_003E9__0_13;
internal bool _003C_002Ector_003Eb__0_0(PreviousQuestInfo x)
{
return _206E_200E_202A_200F_200F_206C_202E_206C_200E_202E_206B_206F_206E_206D_200F_202E_206E_206C_202E_202B_200C_202E_202D_206E_206A_206B_200E_200E_200D_202D_202E_200B_202C_206D_200C_206A_200B_206D_202C_206B_202E((ElementId)x.QuestId) != 0;
}
internal QuestId _003C_002Ector_003Eb__0_1(RowRef<Lumina.Excel.Sheets.Quest> x)
{
return _202C_202A_200E_206B_202E_202B_200F_200E_200B_206B_206F_200C_206A_206A_200D_200C_202C_206B_206A_200B_206B_200F_206B_200B_202A_206F_202D_200D_206D_200C_200E_200C_200F_206B_202A_202E_202C_206F_202E_206D_202E(x.RowId);
}
internal bool _003C_002Ector_003Eb__0_2(QuestId x)
{
return _206E_200E_202A_200F_200F_206C_202E_206C_200E_202E_206B_206F_206E_206D_200F_202E_206E_206C_202E_202B_200C_202E_202D_206E_206A_206B_200E_200E_200D_202D_202E_200B_202C_206D_200C_206A_200B_206D_202C_206B_202E((ElementId)x) != 0;
}
internal ushort _003C_002Ector_003Eb__0_3(RowRef<InstanceContent> x)
{
return (ushort)x.RowId;
}
internal bool _003C_002Ector_003Eb__0_4(ushort x)
{
return x != 0;
}
internal bool _003C_002Ector_003Eb__0_5(RowRef x)
{
int num = ((x.RowId == 0) ? 461820485 : 461820486);
while (true)
{
int num2 = num;
int num3 = 461820484;
int num4 = num2;
int num5 = num4 + num3;
int num6 = num4 & num3;
switch (num5 - (num6 + num6))
{
case 0:
goto IL_004a;
case 1:
return false;
case 2:
return x.Is<Item>();
}
continue;
IL_004a:
num = 461820486;
}
}
internal Item? _003C_002Ector_003Eb__0_6(RowRef x)
{
return x.GetValueOrDefault<Item>();
}
internal bool _003C_002Ector_003Eb__0_7(Item? x)
{
return x.HasValue;
}
internal bool _003C_002Ector_003Eb__0_8(RowRef<Item> x)
{
return x.RowId != 0;
}
internal Item? _003C_002Ector_003Eb__0_9(RowRef<Item> x)
{
return x.ValueNullable;
}
internal bool _003C_002Ector_003Eb__0_10(Item? x)
{
return x.HasValue;
}
internal Item _003C_002Ector_003Eb__0_11(Item? x)
{
return x.Value;
}
internal bool _003C_002Ector_003Eb__0_13(ItemReward x)
{
return x != null;
}
static ushort _206E_200E_202A_200F_200F_206C_202E_206C_200E_202E_206B_206F_206E_206D_200F_202E_206E_206C_202E_202B_200C_202E_202D_206E_206A_206B_200E_200E_200D_202D_202E_200B_202C_206D_200C_206A_200B_206D_202C_206B_202E(ElementId P_0)
{
return P_0.Value;
}
static QuestId _202C_202A_200E_206B_202E_202B_200F_200E_200B_206B_206F_200C_206A_206A_200D_200C_202C_206B_206A_200B_206B_200F_206B_200B_202A_206F_202D_200D_206D_200C_200E_200C_200F_206B_202A_202E_202C_206F_202E_206D_202E(uint P_0)
{
return Questionable.Model.Questing.QuestId.FromRowId(P_0);
}
}
public ElementId QuestId { get; }
public string Name { get; }
@ -197,117 +68,40 @@ internal sealed class QuestInfo : IQuestInfo
public bool IsSeasonalQuest { get; internal set; }
[MethodImpl(MethodImplOptions.NoInlining)]
public QuestInfo(Lumina.Excel.Sheets.Quest quest, uint newGamePlusChapter, byte startingCity, bool isSeasonalEventQuest = false, DateTime? seasonalQuestExpiry = null)
{
QuestId = _206F_206F_202C_200D_200C_206D_206A_200D_206A_202A_202C_200C_206E_200F_206D_206F_206C_200C_202E_206E_202D_202D_202A_200D_200E_200D_200E_200B_200C_202D_200F_200E_200C_202A_200B_202A_200F_206D_202C_202E_202E(quest.RowId);
ushort num = _200E_206E_206F_200C_202C_206A_200F_206B_206A_206B_206B_202D_206A_202B_200F_206D_206F_200D_206D_202A_206A_206D_202E_206D_202D_200C_202A_202D_200D_200D_202C_200C_202A_206D_206C_206B_206A_202B_206F_202A_202E(QuestId);
string text;
if ((uint)num <= 123u)
QuestId = Questionable.Model.Questing.QuestId.FromRowId(quest.RowId);
string value = QuestId.Value switch
{
if ((uint)num <= 108u)
{
if (num != 85)
{
if (num != 108)
{
goto IL_01b2;
}
text = global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-710232599);
}
else
{
text = global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-112345390);
}
}
else if (num != 109)
{
if (num != 123)
{
goto IL_01b2;
}
text = global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1425643080);
}
else
{
text = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-74132824);
}
}
else if ((uint)num <= 570u)
{
if (num != 124)
{
int num2 = 568;
int num3 = num;
switch (~(~num3 + num2))
{
case 0:
break;
case 1:
goto IL_0142;
case 2:
goto IL_0152;
default:
goto IL_01b2;
}
text = global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-990183056);
}
else
{
text = global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1094754462);
}
}
else if (num != 673)
{
if (num != 674)
{
int num2 = 1432;
int num3 = num;
switch (~(~num3 + num2))
{
case 0:
break;
case 1:
goto IL_0192;
case 2:
goto IL_01a2;
default:
goto IL_01b2;
}
text = global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-755758949);
}
else
{
text = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(894839759);
}
}
else
{
text = global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1214228773);
}
goto IL_01bd;
IL_0192:
text = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(842512297);
goto IL_01bd;
IL_0152:
text = global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1604495935);
goto IL_01bd;
IL_01bd:
string value = text;
85 => " (Lancer)",
108 => " (Marauder)",
109 => " (Arcanist)",
123 => " (Archer)",
124 => " (Conjurer)",
568 => " (Gladiator)",
569 => " (Pugilist)",
570 => " (Thaumaturge)",
673 => " (Ul'dah)",
674 => " (Limsa/Gridania)",
1432 => " (Gridania)",
1433 => " (Limsa)",
1434 => " (Ul'dah)",
_ => "",
};
Name = $"{quest.Name}{value}";
Level = quest.ClassJobLevel[0];
IssuerDataId = quest.IssuerStart.RowId;
IsRepeatable = quest.IsRepeatable;
PreviousQuests = new List<PreviousQuestInfo>
{
new PreviousQuestInfo(ReplaceOldQuestIds(_206F_206F_202C_200D_200C_206D_206A_200D_206A_202A_202C_200C_206E_200F_206D_206F_206C_200C_202E_206E_202D_202D_202A_200D_200E_200D_200E_200B_200C_202D_200F_200E_200C_202A_200B_202A_200F_206D_202C_202E_202E(quest.PreviousQuest[0].RowId)), quest.Unknown7),
new PreviousQuestInfo(ReplaceOldQuestIds(_206F_206F_202C_200D_200C_206D_206A_200D_206A_202A_202C_200C_206E_200F_206D_206F_206C_200C_202E_206E_202D_202D_202A_200D_200E_200D_200E_200B_200C_202D_200F_200E_200C_202A_200B_202A_200F_206D_202C_202E_202E(quest.PreviousQuest[1].RowId)), 0),
new PreviousQuestInfo(ReplaceOldQuestIds(_206F_206F_202C_200D_200C_206D_206A_200D_206A_202A_202C_200C_206E_200F_206D_206F_206C_200C_202E_206E_202D_202D_202A_200D_200E_200D_200E_200B_200C_202D_200F_200E_200C_202A_200B_202A_200F_206D_202C_202E_202E(quest.PreviousQuest[2].RowId)), 0)
}.Where((PreviousQuestInfo x) => _003C_003Ec._206E_200E_202A_200F_200F_206C_202E_206C_200E_202E_206B_206F_206E_206D_200F_202E_206E_206C_202E_202B_200C_202E_202D_206E_206A_206B_200E_200E_200D_202D_202E_200B_202C_206D_200C_206A_200B_206D_202C_206B_202E((ElementId)x.QuestId) != 0).ToImmutableList();
new PreviousQuestInfo(ReplaceOldQuestIds(Questionable.Model.Questing.QuestId.FromRowId(quest.PreviousQuest[0].RowId)), quest.Unknown7),
new PreviousQuestInfo(ReplaceOldQuestIds(Questionable.Model.Questing.QuestId.FromRowId(quest.PreviousQuest[1].RowId)), 0),
new PreviousQuestInfo(ReplaceOldQuestIds(Questionable.Model.Questing.QuestId.FromRowId(quest.PreviousQuest[2].RowId)), 0)
}.Where((PreviousQuestInfo x) => x.QuestId.Value != 0).ToImmutableList();
PreviousQuestJoin = (EQuestJoin)quest.PreviousQuestJoin;
QuestLocks = (from x in quest.QuestLock
select _003C_003Ec._202C_202A_200E_206B_202E_202B_200F_200E_200B_206B_206F_200C_206A_206A_200D_200C_202C_206B_206A_200B_206B_200F_206B_200B_202A_206F_202D_200D_206D_200C_200E_200C_200F_206B_202A_202E_202C_206F_202E_206D_202E(x.RowId) into x
where _003C_003Ec._206E_200E_202A_200F_200F_206C_202E_206C_200E_202E_206B_206F_206E_206D_200F_202E_206E_206C_202E_202B_200C_202E_202D_206E_206A_206B_200E_200E_200D_202D_202E_200B_202C_206D_200C_206A_200B_206D_202C_206B_202E((ElementId)x) != 0
select Questionable.Model.Questing.QuestId.FromRowId(x.RowId) into x
where x.Value != 0
select x).ToImmutableList();
QuestLockJoin = (EQuestJoin)quest.QuestLockJoin;
JournalGenre = quest.JournalGenre.ValueNullable?.RowId;
@ -331,30 +125,8 @@ internal sealed class QuestInfo : IQuestInfo
NewGamePlusChapter = newGamePlusChapter;
StartingCity = startingCity;
MoogleDeliveryLevel = (byte)quest.DeliveryQuest.RowId;
IEnumerable<Item> first = (from x in quest.Reward.Where(delegate(RowRef x)
{
int num4 = ((x.RowId == 0) ? 461820485 : 461820486);
while (true)
{
int num5 = num4;
int num6 = 461820484;
int num7 = num5;
int num8 = num7 + num6;
int num9 = num7 & num6;
switch (num8 - (num9 + num9))
{
case 0:
goto IL_004a;
case 1:
return false;
case 2:
return x.Is<Item>();
}
continue;
IL_004a:
num4 = 461820486;
}
})
IEnumerable<Item> first = (from x in quest.Reward
where x.RowId != 0 && x.Is<Item>()
select x.GetValueOrDefault<Item>() into x
where x.HasValue
select x).Cast<Item>();
@ -368,46 +140,15 @@ internal sealed class QuestInfo : IQuestInfo
where x != null
select x).Cast<ItemReward>().ToList();
Expansion = (EExpansionVersion)quest.Expansion.RowId;
return;
IL_0142:
text = global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(100444472);
goto IL_01bd;
IL_01b2:
text = global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1200342830);
goto IL_01bd;
IL_01a2:
text = global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1214228773);
goto IL_01bd;
}
private static QuestId ReplaceOldQuestIds(QuestId questId)
{
int num = ((_200E_206E_206F_200C_202C_206A_200F_206B_206A_206B_206B_202D_206A_202B_200F_206D_206F_200D_206D_202A_206A_206D_202E_206D_202D_200C_202A_202D_200D_200D_202C_200C_202A_206D_206C_206B_206A_202B_206F_202A_202E((ElementId)questId) != 524) ? 1388511094 : 1388511093);
QuestId result = default(QuestId);
while (true)
if (questId.Value == 524)
{
int num2 = num;
int num3 = 1388511095;
int num4 = num2;
int num5 = num4 + num3;
int num6 = num4 & num3;
switch (num5 - (num6 + num6))
{
case 0:
return result;
case 2:
result = _200E_206E_200D_200E_202D_202B_200C_202E_206C_206A_206E_206D_202B_206B_200B_202E_206D_200B_202E_202D_200E_202D_200B_202D_206D_202D_206C_200C_200B_200F_206A_202D_200C_206B_206C_200C_206C_202C_206B_206F_202E((ushort)4522);
num = 1388511095;
break;
case 1:
result = questId;
num = 1388511095;
break;
case 3:
num = 1388511093;
break;
}
return new QuestId(4522);
}
return questId;
}
public void AddPreviousQuest(PreviousQuestInfo questId)
@ -415,42 +156,10 @@ internal sealed class QuestInfo : IQuestInfo
ImmutableList<PreviousQuestInfo> previousQuests = PreviousQuests;
int num = 0;
PreviousQuestInfo[] array = new PreviousQuestInfo[1 + previousQuests.Count];
using (ImmutableList<PreviousQuestInfo>.Enumerator enumerator = previousQuests.GetEnumerator())
foreach (PreviousQuestInfo item in previousQuests)
{
int num2 = 152689152;
while (true)
{
int num3 = num2;
int num4 = 152689155;
int num5 = num3;
switch ((num5 | num4) - (num5 & num4))
{
case 2:
num2 = 152689152;
break;
case 3:
num2 = (enumerator.MoveNext() ? 152689154 : 152689155);
break;
case 1:
{
PreviousQuestInfo current = enumerator.Current;
array[num] = current;
int num6 = num;
num4 = 1;
num5 = num6;
int num7 = num5 ^ num4;
int num8 = num5 & num4;
num = num7 + (num8 + num8);
num2 = 152689152;
break;
}
case 0:
goto end_IL_002a;
}
continue;
end_IL_002a:
break;
}
array[num] = item;
num++;
}
array[num] = questId;
PreviousQuests = ImmutableList.Create(new ReadOnlySpan<PreviousQuestInfo>(array));
@ -458,92 +167,22 @@ internal sealed class QuestInfo : IQuestInfo
public void AddQuestLocks(EQuestJoin questJoin, params QuestId[] questId)
{
int num = ((QuestLocks.Count <= 0) ? 132063164 : 132063166);
while (true)
if (QuestLocks.Count > 0 && QuestLockJoin != questJoin)
{
int num2 = num;
int num3 = 132063167;
int num4 = num2;
int num5 = num4 + num3;
int num6 = num4 & num3;
switch (num5 - (num6 + num6))
{
case 0:
throw _202E_206C_200E_206B_200D_202B_202A_206C_206E_206D_206E_206E_206E_202B_206B_200B_206B_202C_206A_206C_206F_200D_202E_200B_202E_202E_200C_200F_202A_202B_202A_200C_202D_200E_200D_206C_200F_200B_202E_206E_202E();
case 1:
num = ((QuestLockJoin == questJoin) ? 132063164 : 132063167);
break;
case 2:
num = 132063166;
break;
case 3:
{
QuestLockJoin = questJoin;
ImmutableList<QuestId> questLocks = QuestLocks;
int num7 = 0;
QuestId[] array = new QuestId[questLocks.Count + questId.Length];
using (ImmutableList<QuestId>.Enumerator enumerator = questLocks.GetEnumerator())
{
num = -1685123962;
while (true)
{
int num8 = num;
num3 = -1685123961;
num4 = num8;
switch ((num4 | num3) - (num4 & num3))
{
case 1:
num = (enumerator.MoveNext() ? (-1685123964) : (-1685123963));
break;
case 3:
{
QuestId current = enumerator.Current;
array[num7] = current;
int num9 = num7;
num3 = 1;
num4 = num9;
num7 = (num4 | num3) + (num4 & num3);
num = -1685123962;
break;
}
case 0:
num = -1685123962;
break;
case 2:
goto end_IL_00c5;
}
continue;
end_IL_00c5:
break;
}
}
ReadOnlySpan<QuestId> readOnlySpan = new ReadOnlySpan<QuestId>(questId);
readOnlySpan.CopyTo(new Span<QuestId>(array).Slice(num7, readOnlySpan.Length));
num7 += readOnlySpan.Length;
QuestLocks = ImmutableList.Create(new ReadOnlySpan<QuestId>(array));
return;
}
}
throw new InvalidOperationException();
}
}
static QuestId _206F_206F_202C_200D_200C_206D_206A_200D_206A_202A_202C_200C_206E_200F_206D_206F_206C_200C_202E_206E_202D_202D_202A_200D_200E_200D_200E_200B_200C_202D_200F_200E_200C_202A_200B_202A_200F_206D_202C_202E_202E(uint P_0)
{
return Questionable.Model.Questing.QuestId.FromRowId(P_0);
}
static ushort _200E_206E_206F_200C_202C_206A_200F_206B_206A_206B_206B_202D_206A_202B_200F_206D_206F_200D_206D_202A_206A_206D_202E_206D_202D_200C_202A_202D_200D_200D_202C_200C_202A_206D_206C_206B_206A_202B_206F_202A_202E(ElementId P_0)
{
return P_0.Value;
}
static QuestId _200E_206E_200D_200E_202D_202B_200C_202E_206C_206A_206E_206D_202B_206B_200B_202E_206D_200B_202E_202D_200E_202D_200B_202D_206D_202D_206C_200C_200B_200F_206A_202D_200C_206B_206C_200C_206C_202C_206B_206F_202E(ushort P_0)
{
return new QuestId(P_0);
}
static InvalidOperationException _202E_206C_200E_206B_200D_202B_202A_206C_206E_206D_206E_206E_206E_202B_206B_200B_206B_202C_206A_206C_206F_200D_202E_200B_202E_202E_200C_200F_202A_202B_202A_200C_202D_200E_200D_206C_200F_200B_202E_206E_202E()
{
return new InvalidOperationException();
QuestLockJoin = questJoin;
ImmutableList<QuestId> questLocks = QuestLocks;
int num = 0;
QuestId[] array = new QuestId[questLocks.Count + questId.Length];
foreach (QuestId item in questLocks)
{
array[num] = item;
num++;
}
ReadOnlySpan<QuestId> readOnlySpan = new ReadOnlySpan<QuestId>(questId);
readOnlySpan.CopyTo(new Span<QuestId>(array).Slice(num, readOnlySpan.Length));
num += readOnlySpan.Length;
QuestLocks = ImmutableList.Create(new ReadOnlySpan<QuestId>(array));
}
}