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

@ -1,9 +1,5 @@
using System;
using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Runtime.CompilerServices;
using Questionable.Model;
using Questionable.Model.Questing;
@ -11,493 +7,75 @@ namespace Questionable.Validation.Validators;
internal sealed class UniqueStartStopValidator : IQuestValidator
{
[Serializable]
[CompilerGenerated]
private sealed class _003C_003Ec
{
public static readonly _003C_003Ec _003C_003E9 = new _003C_003Ec();
public static Func<(QuestSequence Sequence, int StepId, QuestStep Step), bool> _003C_003E9__0_0;
public static Func<(QuestSequence Sequence, int StepId, QuestStep Step), bool> _003C_003E9__0_1;
internal bool _003CValidate_003Eb__0_0((QuestSequence Sequence, int StepId, QuestStep Step) x)
{
return _200B_202D_206F_202E_202C_202A_202E_200C_200F_200F_202C_202D_206F_206B_200C_206A_206F_202E_202D_202D_206E_200D_202A_202A_206E_206C_206B_200B_206B_200D_206E_206D_202B_200D_200C_202A_206C_202C_206D_202A_202E(_202B_200E_202A_200E_206E_202A_206B_206B_206D_200D_206B_202D_202D_200D_200D_206C_200C_200C_206E_206E_202E_206C_206E_202E_206D_200B_206D_206F_200F_202A_206A_200F_206E_202D_202A_200C_206B_206B_200E_200E_202E(x.Step), (ElementId)null);
}
internal bool _003CValidate_003Eb__0_1((QuestSequence Sequence, int StepId, QuestStep Step) x)
{
return _200B_202D_206F_202E_202C_202A_202E_200C_200F_200F_202C_202D_206F_206B_200C_206A_206F_202E_202D_202D_206E_200D_202A_202A_206E_206C_206B_200B_206B_200D_206E_206D_202B_200D_200C_202A_206C_202C_206D_202A_202E(_200D_200D_202A_202E_200D_202E_206E_200C_206A_206C_202A_200B_206A_200F_206E_202B_206B_200F_200D_206D_202E_200E_202A_206B_206F_206D_202D_206A_202B_200D_206B_200F_206C_200E_200C_206C_206C_202C_202E_206D_202E(x.Step), (ElementId)null);
}
static ElementId _202B_200E_202A_200E_206E_202A_206B_206B_206D_200D_206B_202D_202D_200D_200D_206C_200C_200C_206E_206E_202E_206C_206E_202E_206D_200B_206D_206F_200F_202A_206A_200F_206E_202D_202A_200C_206B_206B_200E_200E_202E(QuestStep P_0)
{
return P_0.PickUpQuestId;
}
static bool _200B_202D_206F_202E_202C_202A_202E_200C_200F_200F_202C_202D_206F_206B_200C_206A_206F_202E_202D_202D_206E_200D_202A_202A_206E_206C_206B_200B_206B_200D_206E_206D_202B_200D_200C_202A_206C_202C_206D_202A_202E(ElementId P_0, ElementId P_1)
{
return P_0 == P_1;
}
static ElementId _200D_200D_202A_202E_200D_202E_206E_200C_206A_206C_202A_200B_206A_200F_206E_202B_206B_200F_200D_206D_202E_200E_202A_206B_206F_206D_202D_206A_202B_200D_206B_200F_206C_200E_200C_206C_206C_202C_202E_206D_202E(QuestStep P_0)
{
return P_0.TurnInQuestId;
}
}
[CompilerGenerated]
private sealed class _003C_003Ec__DisplayClass1_0
{
public List<EInteractionType> interactionType;
internal bool _003CFindQuestStepsWithInteractionType_003Eb__0((QuestSequence Sequence, int StepId, QuestStep Step) x)
{
return interactionType.Contains(_200B_202A_206B_200B_200E_202D_206F_202A_202B_202B_206E_202B_206B_202D_206E_200E_200B_206F_200D_200F_202A_202C_206A_202C_200B_200F_206A_200B_206D_200D_206D_202D_200B_200B_202C_202B_200E_206F_202D_206A_202E(x.Step));
}
static EInteractionType _200B_202A_206B_200B_200E_202D_206F_202A_202B_202B_206E_202B_206B_202D_206E_200E_200B_206F_200D_200F_202A_202C_206A_202C_200B_200F_206A_200B_206D_200D_206D_202D_200B_200B_202C_202B_200E_206F_202D_206A_202E(QuestStep P_0)
{
return P_0.InteractionType;
}
}
[CompilerGenerated]
private sealed class _003CValidate_003Ed__0 : IEnumerable<ValidationIssue>, IEnumerable, IEnumerator<ValidationIssue>, IEnumerator, IDisposable
{
private int _003C_003E1__state;
private ValidationIssue _003C_003E2__current;
private int _003C_003El__initialThreadId;
private Quest quest;
public Quest _003C_003E3__quest;
private bool _003CskipMissingStartStop_003E5__2;
private List<(QuestSequence Sequence, int StepId, QuestStep Step)> _003CquestAccepts_003E5__3;
private List<(QuestSequence Sequence, int StepId, QuestStep Step)> _003CquestCompletes_003E5__4;
private List<(QuestSequence Sequence, int StepId, QuestStep Step)>.Enumerator _003C_003E7__wrap4;
ValidationIssue IEnumerator<ValidationIssue>.Current
{
[DebuggerHidden]
get
{
return _003C_003E2__current;
}
}
object IEnumerator.Current
{
[DebuggerHidden]
get
{
return _003C_003E2__current;
}
}
[DebuggerHidden]
public _003CValidate_003Ed__0(int _003C_003E1__state)
{
this._003C_003E1__state = _003C_003E1__state;
_003C_003El__initialThreadId = _202B_200B_202C_206C_206B_200C_206E_206E_202A_206F_200E_202A_202B_206E_202B_202D_206F_200E_200F_206A_202D_206A_200C_206B_200D_202A_200E_200D_202D_200E_200C_202B_206F_206B_200F_200B_200D_206C_200C_200E_202E();
}
[DebuggerHidden]
void IDisposable.Dispose()
{
int num = _003C_003E1__state;
int num2 = ((num > -3) ? 654863638 : 654863634);
while (true)
{
int num3 = num2;
int num4 = 654863632;
int num5 = num3;
int num6 = num5 + num4;
int num7 = num5 & num4;
switch (num6 - (num7 + num7))
{
default:
continue;
case 3:
num2 = 654863634;
continue;
case 1:
num2 = ((num == -3) ? 654863639 : 654863637);
continue;
case 6:
num2 = ((num == 1) ? 654863639 : 654863632);
continue;
case 0:
if (num != 3)
{
num2 = 654863636;
continue;
}
goto IL_00f9;
case 2:
if (num != -4)
{
num2 = 654863633;
continue;
}
goto IL_00f9;
case 7:
try
{
}
finally
{
_003C_003Em__Finally1();
}
break;
case 4:
case 5:
break;
IL_00f9:
try
{
}
finally
{
_003C_003Em__Finally2();
}
break;
}
break;
}
_003CquestAccepts_003E5__3 = null;
_003CquestCompletes_003E5__4 = null;
_003C_003E7__wrap4 = default(List<(QuestSequence, int, QuestStep)>.Enumerator);
_003C_003E1__state = -2;
}
[MethodImpl(MethodImplOptions.NoInlining)]
private bool MoveNext()
{
try
{
int num;
(QuestSequence, int, QuestStep) current2 = default((QuestSequence, int, QuestStep));
(QuestSequence, int, QuestStep) current = default((QuestSequence, int, QuestStep));
switch (_003C_003E1__state)
{
default:
num = -177960474;
goto IL_002d;
case 3:
_003C_003E1__state = -4;
num = -177960463;
goto IL_002d;
case 0:
goto IL_0189;
case 2:
goto IL_021b;
case 1:
goto IL_022e;
case 4:
goto IL_042d;
IL_002d:
while (true)
{
int num2 = num;
int num3 = -177960473;
int num4 = num2;
switch ((num4 | num3) - (num4 & num3))
{
case 3:
num = -177960474;
break;
case 23:
goto IL_00bd;
case 5:
goto IL_00f8;
case 14:
goto end_IL_002d;
case 17:
goto IL_0139;
case 6:
goto IL_0161;
case 11:
goto IL_0189;
case 20:
goto IL_021b;
case 12:
goto IL_022e;
case 4:
goto IL_0242;
case 19:
_003C_003E2__current = new ValidationIssue
{
PathType = EPathType.Quest,
Id = _200B_206B_200B_202A_202E_200B_202C_200B_200B_206D_206C_206E_206C_200F_202A_206C_206D_202A_206F_202A_206E_202B_200B_202D_206C_202A_206F_206E_206B_206E_206E_206F_200C_202B_206E_202A_206C_206B_200B_202B_202E((object)quest.Id),
Location = SchemaValidationHelper.FormatQuestLocation(0, null),
Type = EIssueType.MissingQuestAccept,
Severity = EIssueSeverity.Error,
Description = 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>(-1425508003)
};
_003C_003E1__state = 2;
return true;
case 2:
_003C_003E2__current = new ValidationIssue
{
PathType = EPathType.Quest,
Id = _200B_206B_200B_202A_202E_200B_202C_200B_200B_206D_206C_206E_206C_200F_202A_206C_206D_202A_206F_202A_206E_202B_200B_202D_206C_202A_206F_206E_206B_206E_206E_206F_200C_202B_206E_202A_206C_206B_200B_202B_202E((object)quest.Id),
Location = SchemaValidationHelper.FormatQuestLocation(_200C_200D_206A_200B_200E_202D_200E_206C_200B_200D_202C_200F_200C_202C_206E_206F_200B_202D_206C_200B_202D_206C_206B_200E_200B_200D_200B_200E_206E_206D_202C_202C_206F_202D_200D_202D_202A_200E_206C_202D_202E(current2.Item1), current2.Item2),
Type = EIssueType.UnexpectedCompleteQuestStep,
Severity = EIssueSeverity.Error,
Description = 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>(1505174393)
};
_003C_003E1__state = 3;
return true;
case 9:
goto IL_0379;
case 8:
_003C_003E2__current = new ValidationIssue
{
PathType = EPathType.Quest,
Id = _200B_206B_200B_202A_202E_200B_202C_200B_200B_206D_206C_206E_206C_200F_202A_206C_206D_202A_206F_202A_206E_202B_200B_202D_206C_202A_206F_206E_206B_206E_206E_206F_200C_202B_206E_202A_206C_206B_200B_202B_202E((object)quest.Id),
Location = SchemaValidationHelper.FormatQuestLocation((byte)byte.MaxValue, null),
Type = EIssueType.MissingQuestComplete,
Severity = EIssueSeverity.Error,
Description = 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>(1217373352)
};
_003C_003E1__state = 4;
return true;
case 15:
goto IL_042d;
case 21:
goto IL_0440;
case 13:
_003CquestCompletes_003E5__4 = (from x in FindQuestStepsWithInteractionType(quest, new List<EInteractionType> { EInteractionType.CompleteQuest })
where _003C_003Ec._200B_202D_206F_202E_202C_202A_202E_200C_200F_200F_202C_202D_206F_206B_200C_206A_206F_202E_202D_202D_206E_200D_202A_202A_206E_206C_206B_200B_206B_200D_206E_206D_202B_200D_200C_202A_206C_202C_206D_202A_202E(_003C_003Ec._200D_200D_202A_202E_200D_202E_206E_200C_206A_206C_202A_200B_206A_200F_206E_202B_206B_200F_200D_206D_202E_200E_202A_206B_206F_206D_202D_206A_202B_200D_206B_200F_206C_200E_200C_206C_206C_202C_202E_206D_202E(x.Step), (ElementId)null)
select x).ToList();
_003C_003E7__wrap4 = _003CquestCompletes_003E5__4.GetEnumerator();
_003C_003E1__state = -4;
num = -177960463;
break;
case 1:
return false;
case 24:
_003C_003E2__current = new ValidationIssue
{
PathType = EPathType.Quest,
Id = _200B_206B_200B_202A_202E_200B_202C_200B_200B_206D_206C_206E_206C_200F_202A_206C_206D_202A_206F_202A_206E_202B_200B_202D_206C_202A_206F_206E_206B_206E_206E_206F_200C_202B_206E_202A_206C_206B_200B_202B_202E((object)quest.Id),
Location = SchemaValidationHelper.FormatQuestLocation(_200C_200D_206A_200B_200E_202D_200E_206C_200B_200D_202C_200F_200C_202C_206E_206F_200B_202D_206C_200B_202D_206C_206B_200E_200B_200D_200B_200E_206E_206D_202C_202C_206F_202D_200D_202D_202A_200E_206C_202D_202E(current.Item1), current.Item2),
Type = EIssueType.UnexpectedAcceptQuestStep,
Severity = EIssueSeverity.Error,
Description = 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>(-230957138)
};
_003C_003E1__state = 1;
return true;
case 22:
goto IL_0572;
case 10:
goto IL_059a;
case 18:
goto IL_05da;
case 7:
goto IL_0615;
case 0:
goto IL_063d;
case 16:
return false;
}
continue;
IL_063d:
_003C_003Em__Finally2();
_003C_003E7__wrap4 = default(List<(QuestSequence, int, QuestStep)>.Enumerator);
num = (_003CskipMissingStartStop_003E5__2 ? (-177960457) : (-177960478));
continue;
IL_0572:
num = (_003C_003E7__wrap4.MoveNext() ? (-177960459) : (-177960473));
continue;
IL_00f8:
num = ((quest.FindSequence(byte.MaxValue) == null) ? (-177960457) : (-177960480));
continue;
IL_0615:
num = ((_003CquestCompletes_003E5__4.Count != 0) ? (-177960457) : (-177960465));
continue;
IL_0242:
current = _003C_003E7__wrap4.Current;
num = ((_200C_200D_206A_200B_200E_202D_200E_206C_200B_200D_202C_200F_200C_202C_206E_206F_200B_202D_206C_200B_202D_206C_206B_200E_200B_200D_200B_200E_206E_206D_202C_202C_206F_202D_200D_202D_202A_200E_206C_202D_202E(current.Item1) != 0) ? (-177960449) : (-177960464));
continue;
IL_0440:
num = ((quest.FindSequence(0) == null) ? (-177960470) : (-177960458));
continue;
IL_05da:
current2 = _003C_003E7__wrap4.Current;
num = ((_200C_200D_206A_200B_200E_202D_200E_206C_200B_200D_202C_200F_200C_202C_206E_206F_200B_202D_206C_200B_202D_206C_206B_200E_200B_200D_200B_200E_206E_206D_202C_202C_206F_202D_200D_202D_202A_200E_206C_202D_202E(current2.Item1) != byte.MaxValue) ? (-177960475) : (-177960467));
continue;
IL_00bd:
num = ((current.Item2 == _200E_202C_200D_202C_200D_202B_202E_206B_202E_200C_200C_206F_202E_206C_202C_202D_206C_202C_202B_206C_202C_206B_200C_206E_206E_200C_206D_202A_200F_206F_202B_202C_200E_206D_206F_206D_206E_202B_202B_206F_202E(quest.FindSequence(0)).Count - 1) ? (-177960479) : (-177960449));
continue;
IL_0139:
num = ((_003CquestAccepts_003E5__3.Count != 0) ? (-177960470) : (-177960460));
continue;
IL_059a:
num = ((current2.Item2 == _200E_202C_200D_202C_200D_202B_202E_206B_202E_200C_200C_206F_202E_206C_202C_202D_206C_202C_202B_206C_202C_206B_200C_206E_206E_200C_206D_202A_200F_206F_202B_202C_200E_206D_206F_206D_206E_202B_202B_206F_202E(quest.FindSequence(byte.MaxValue)).Count - 1) ? (-177960463) : (-177960475));
continue;
IL_0379:
_003C_003Em__Finally1();
_003C_003E7__wrap4 = default(List<(QuestSequence, int, QuestStep)>.Enumerator);
num = (_003CskipMissingStartStop_003E5__2 ? (-177960470) : (-177960462));
continue;
IL_0161:
num = (_003C_003E7__wrap4.MoveNext() ? (-177960477) : (-177960466));
continue;
end_IL_002d:
break;
}
goto case 3;
IL_042d:
_003C_003E1__state = -1;
num = -177960457;
goto IL_002d;
IL_022e:
_003C_003E1__state = -3;
num = -177960479;
goto IL_002d;
IL_021b:
_003C_003E1__state = -1;
num = -177960470;
goto IL_002d;
IL_0189:
_003C_003E1__state = -1;
_003CskipMissingStartStop_003E5__2 = !(quest.Id is QuestId);
_003CquestAccepts_003E5__3 = (from x in FindQuestStepsWithInteractionType(quest, new List<EInteractionType> { EInteractionType.AcceptQuest })
where _003C_003Ec._200B_202D_206F_202E_202C_202A_202E_200C_200F_200F_202C_202D_206F_206B_200C_206A_206F_202E_202D_202D_206E_200D_202A_202A_206E_206C_206B_200B_206B_200D_206E_206D_202B_200D_200C_202A_206C_202C_206D_202A_202E(_003C_003Ec._202B_200E_202A_200E_206E_202A_206B_206B_206D_200D_206B_202D_202D_200D_200D_206C_200C_200C_206E_206E_202E_206C_206E_202E_206D_200B_206D_206F_200F_202A_206A_200F_206E_202D_202A_200C_206B_206B_200E_200E_202E(x.Step), (ElementId)null)
select x).ToList();
_003C_003E7__wrap4 = _003CquestAccepts_003E5__3.GetEnumerator();
_003C_003E1__state = -3;
num = -177960479;
goto IL_002d;
}
}
catch
{
//try-fault
((IDisposable)this).Dispose();
throw;
}
}
bool IEnumerator.MoveNext()
{
//ILSpy generated this explicit interface implementation from .override directive in MoveNext
return this.MoveNext();
}
private void _003C_003Em__Finally1()
{
_003C_003E1__state = -1;
((IDisposable)_003C_003E7__wrap4/*cast due to .constrained prefix*/).Dispose();
}
private void _003C_003Em__Finally2()
{
_003C_003E1__state = -1;
((IDisposable)_003C_003E7__wrap4/*cast due to .constrained prefix*/).Dispose();
}
[DebuggerHidden]
void IEnumerator.Reset()
{
throw _206F_202E_206A_202E_206E_200D_202A_206F_200D_202A_200E_202A_202E_200E_202C_206B_200C_206C_200B_206A_202C_202C_202D_206F_202C_200C_206B_206D_206F_200D_200D_200E_202C_206C_200F_202C_200C_206F_202E_202E_202E();
}
[DebuggerHidden]
IEnumerator<ValidationIssue> IEnumerable<ValidationIssue>.GetEnumerator()
{
int num = ((_003C_003E1__state != -2) ? 1591254497 : 1591254499);
_003CValidate_003Ed__0 _003CValidate_003Ed__ = default(_003CValidate_003Ed__0);
while (true)
{
int num2 = num;
int num3 = 1591254498;
int num4 = num2;
switch ((num4 | num3) - (num4 & num3))
{
case 0:
num = 1591254499;
break;
case 2:
_003CValidate_003Ed__.quest = _003C_003E3__quest;
return _003CValidate_003Ed__;
case 1:
num = ((_003C_003El__initialThreadId != _202B_200B_202C_206C_206B_200C_206E_206E_202A_206F_200E_202A_202B_206E_202B_202D_206F_200E_200F_206A_202D_206A_200C_206B_200D_202A_200E_200D_202D_200E_200C_202B_206F_206B_200F_200B_200D_206C_200C_200E_202E()) ? 1591254497 : 1591254502);
break;
case 3:
_003CValidate_003Ed__ = new _003CValidate_003Ed__0(0);
num = 1591254496;
break;
case 4:
_003C_003E1__state = 0;
_003CValidate_003Ed__ = this;
num = 1591254496;
break;
}
}
}
[DebuggerHidden]
IEnumerator IEnumerable.GetEnumerator()
{
return ((IEnumerable<ValidationIssue>)this).GetEnumerator();
}
static int _202B_200B_202C_206C_206B_200C_206E_206E_202A_206F_200E_202A_202B_206E_202B_202D_206F_200E_200F_206A_202D_206A_200C_206B_200D_202A_200E_200D_202D_200E_200C_202B_206F_206B_200F_200B_200D_206C_200C_200E_202E()
{
return Environment.CurrentManagedThreadId;
}
static byte _200C_200D_206A_200B_200E_202D_200E_206C_200B_200D_202C_200F_200C_202C_206E_206F_200B_202D_206C_200B_202D_206C_206B_200E_200B_200D_200B_200E_206E_206D_202C_202C_206F_202D_200D_202D_202A_200E_206C_202D_202E(QuestSequence P_0)
{
return P_0.Sequence;
}
static List<QuestStep> _200E_202C_200D_202C_200D_202B_202E_206B_202E_200C_200C_206F_202E_206C_202C_202D_206C_202C_202B_206C_202C_206B_200C_206E_206E_200C_206D_202A_200F_206F_202B_202C_200E_206D_206F_206D_206E_202B_202B_206F_202E(QuestSequence P_0)
{
return P_0.Steps;
}
static string _200B_206B_200B_202A_202E_200B_202C_200B_200B_206D_206C_206E_206C_200F_202A_206C_206D_202A_206F_202A_206E_202B_200B_202D_206C_202A_206F_206E_206B_206E_206E_206F_200C_202B_206E_202A_206C_206B_200B_202B_202E(object P_0)
{
return P_0.ToString();
}
static NotSupportedException _206F_202E_206A_202E_206E_200D_202A_206F_200D_202A_200E_202A_202E_200E_202C_206B_200C_206C_200B_206A_202C_202C_202D_206F_202C_200C_206B_206D_206F_200D_200D_200E_202C_206C_200F_202C_200C_206F_202E_202E_202E()
{
return new NotSupportedException();
}
}
[IteratorStateMachine(typeof(_003CValidate_003Ed__0))]
public IEnumerable<ValidationIssue> Validate(Quest quest)
{
//yield-return decompiler failed: Unexpected instruction in Iterator.Dispose()
return new _003CValidate_003Ed__0(-2)
bool skipMissingStartStop = !(quest.Id is QuestId);
List<(QuestSequence Sequence, int StepId, QuestStep Step)> questAccepts = (from x in FindQuestStepsWithInteractionType(quest, new List<EInteractionType> { EInteractionType.AcceptQuest })
where x.Step.PickUpQuestId == null
select x).ToList();
foreach (var item in questAccepts)
{
_003C_003E3__quest = quest
};
}
IEnumerable<ValidationIssue> IQuestValidator.Validate(Quest quest)
{
//ILSpy generated this explicit interface implementation from .override directive in Validate
return this.Validate(quest);
if (item.Sequence.Sequence != 0 || item.StepId != quest.FindSequence(0).Steps.Count - 1)
{
yield return new ValidationIssue
{
PathType = EPathType.Quest,
Id = quest.Id.ToString(),
Location = SchemaValidationHelper.FormatQuestLocation(item.Sequence.Sequence, item.StepId),
Type = EIssueType.UnexpectedAcceptQuestStep,
Severity = EIssueSeverity.Error,
Description = "Unexpected AcceptQuest step"
};
}
}
if (!skipMissingStartStop && quest.FindSequence(0) != null && questAccepts.Count == 0)
{
yield return new ValidationIssue
{
PathType = EPathType.Quest,
Id = quest.Id.ToString(),
Location = SchemaValidationHelper.FormatQuestLocation(0, null),
Type = EIssueType.MissingQuestAccept,
Severity = EIssueSeverity.Error,
Description = "No AcceptQuest step"
};
}
List<(QuestSequence Sequence, int StepId, QuestStep Step)> questCompletes = (from x in FindQuestStepsWithInteractionType(quest, new List<EInteractionType> { EInteractionType.CompleteQuest })
where x.Step.TurnInQuestId == null
select x).ToList();
foreach (var item2 in questCompletes)
{
if (item2.Sequence.Sequence != byte.MaxValue || item2.StepId != quest.FindSequence(byte.MaxValue).Steps.Count - 1)
{
yield return new ValidationIssue
{
PathType = EPathType.Quest,
Id = quest.Id.ToString(),
Location = SchemaValidationHelper.FormatQuestLocation(item2.Sequence.Sequence, item2.StepId),
Type = EIssueType.UnexpectedCompleteQuestStep,
Severity = EIssueSeverity.Error,
Description = "Unexpected CompleteQuest step"
};
}
}
if (!skipMissingStartStop && quest.FindSequence(byte.MaxValue) != null && questCompletes.Count == 0)
{
yield return new ValidationIssue
{
PathType = EPathType.Quest,
Id = quest.Id.ToString(),
Location = SchemaValidationHelper.FormatQuestLocation((byte)byte.MaxValue, null),
Type = EIssueType.MissingQuestComplete,
Severity = EIssueSeverity.Error,
Description = "No CompleteQuest step"
};
}
}
private static IEnumerable<(QuestSequence Sequence, int StepId, QuestStep Step)> FindQuestStepsWithInteractionType(Quest quest, List<EInteractionType> interactionType)
{
return from x in quest.AllSteps()
where interactionType.Contains(_003C_003Ec__DisplayClass1_0._200B_202A_206B_200B_200E_202D_206F_202A_202B_202B_206E_202B_206B_202D_206E_200E_200B_206F_200D_200F_202A_202C_206A_202C_200B_200F_206A_200B_206D_200D_206D_202D_200B_200B_202C_202B_200E_206F_202D_206A_202E(x.Step))
where interactionType.Contains(x.Step.InteractionType)
select x;
}
}