1
0
Fork 0
forked from aly/qstbak

muffin v7.5.6

This commit is contained in:
alydev 2026-08-17 20:27:25 +10:00
parent 6266f9e6b7
commit addf2d530f
619 changed files with 264792 additions and 446022 deletions

View file

@ -1,5 +1,9 @@
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;
@ -7,95 +11,494 @@ namespace Questionable.Validation.Validators;
internal sealed class BasicSequenceValidator : IQuestValidator
{
[Serializable]
[CompilerGenerated]
private sealed class _003C_003Ec
{
public static readonly _003C_003Ec _003C_003E9 = new _003C_003Ec();
public static Func<QuestSequence, bool> _003C_003E9__0_0;
public static Func<QuestSequence, byte> _003C_003E9__0_1;
public static Func<byte, bool> _003C_003E9__0_2;
public static Func<QuestSequence, bool> _003C_003E9__0_3;
internal bool _003CValidate_003Eb__0_0(QuestSequence x)
{
return _206E_206E_206E_206C_206C_202D_200F_206A_202E_202D_206A_206E_202A_202D_200E_200B_206B_202E_200B_206A_202A_202C_202A_206E_202D_206C_202C_200D_206D_200E_200B_206E_200B_206D_206C_206D_206B_202A_200D_200F_202E(x) == 0;
}
internal byte _003CValidate_003Eb__0_1(QuestSequence x)
{
return _206E_206E_206E_206C_206C_202D_200F_206A_202E_202D_206A_206E_202A_202D_200E_200B_206B_202E_200B_206A_202A_202C_202A_206E_202D_206C_202C_200D_206D_200E_200B_206E_200B_206D_206C_206D_206B_202A_200D_200F_202E(x);
}
internal bool _003CValidate_003Eb__0_2(byte x)
{
return x != byte.MaxValue;
}
internal bool _003CValidate_003Eb__0_3(QuestSequence x)
{
return _206E_206E_206E_206C_206C_202D_200F_206A_202E_202D_206A_206E_202A_202D_200E_200B_206B_202E_200B_206A_202A_202C_202A_206E_202D_206C_202C_200D_206D_200E_200B_206E_200B_206D_206C_206D_206B_202A_200D_200F_202E(x) == byte.MaxValue;
}
static byte _206E_206E_206E_206C_206C_202D_200F_206A_202E_202D_206A_206E_202A_202D_200E_200B_206B_202E_200B_206A_202A_202C_202A_206E_202D_206C_202C_200D_206D_200E_200B_206E_200B_206D_206C_206D_206B_202A_200D_200F_202E(QuestSequence P_0)
{
return P_0.Sequence;
}
}
[CompilerGenerated]
private sealed class _003C_003Ec__DisplayClass0_0
{
public int i;
internal bool _003CValidate_003Eb__4(QuestSequence x)
{
return _200B_206E_200F_200B_206B_200C_206A_206F_206C_202B_200B_202E_202E_200D_200D_206F_206C_200C_200F_202E_200E_200E_206D_206D_206A_200B_202A_202B_206A_202B_202A_206C_206D_202B_206F_202C_206B_202E_206B_200E_202E(x) == i;
}
static byte _200B_206E_200F_200B_206B_200C_206A_206F_206C_202B_200B_202E_202E_200D_200D_206F_206C_200C_200F_202E_200E_200E_206D_206D_206A_200B_202A_202B_206A_202B_202A_206C_206D_202B_206F_202C_206B_202E_206B_200E_202E(QuestSequence P_0)
{
return P_0.Sequence;
}
}
[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 _003C_003Ec__DisplayClass0_0 _003C_003E8__1;
private List<QuestSequence> _003Csequences_003E5__2;
private QuestSequence _003CfoundStart_003E5__3;
private List<QuestSequence>.Enumerator _003C_003E7__wrap3;
private int _003CmaxSequence_003E5__5;
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 = _202D_202D_202E_206D_200D_206B_200E_200B_202E_200E_206C_206E_200B_202E_206A_202C_202C_202C_206F_200F_200F_200F_206C_202D_200D_200C_202C_200C_202D_206A_202A_202C_200E_206A_206E_206D_202E_202E_206E_202A_202E();
}
[DebuggerHidden]
void IDisposable.Dispose()
{
int num = _003C_003E1__state;
int num2 = ((num == -3) ? (-1108787515) : (-1108787514));
while (true)
{
int num3 = num2;
int num4 = -1108787516;
int num5 = num3;
switch ((num5 | num4) - (num5 & num4))
{
default:
continue;
case 0:
num2 = -1108787514;
continue;
case 2:
if (num == 2)
{
num2 = -1108787515;
continue;
}
break;
case 1:
try
{
}
finally
{
_003C_003Em__Finally1();
}
break;
}
break;
}
_003C_003E8__1 = null;
_003Csequences_003E5__2 = null;
_003CfoundStart_003E5__3 = null;
_003C_003E7__wrap3 = default(List<QuestSequence>.Enumerator);
_003C_003E1__state = -2;
}
[MethodImpl(MethodImplOptions.NoInlining)]
private bool MoveNext()
{
try
{
int num;
ValidationIssue validationIssue = default(ValidationIssue);
QuestSequence current = default(QuestSequence);
ValidationIssue validationIssue2 = default(ValidationIssue);
QuestInfo questInfo = default(QuestInfo);
switch (_003C_003E1__state)
{
default:
num = -218365441;
goto IL_002d;
case 1:
break;
case 2:
_003C_003E1__state = -3;
num = -218365453;
goto IL_002d;
case 0:
goto IL_01f4;
case 3:
goto IL_02ac;
case 4:
goto IL_0597;
IL_002d:
while (true)
{
int num2 = num;
int num3 = -218365443;
int num4 = num2;
switch ((num4 | num3) - (num4 & num3))
{
case 22:
goto IL_00ad;
case 18:
goto end_IL_0008;
case 15:
goto end_IL_002d;
case 23:
goto IL_014f;
case 2:
return false;
case 6:
goto IL_018f;
case 4:
{
int num5 = _003C_003E8__1.i;
_003C_003Ec__DisplayClass0_0 _003C_003Ec__DisplayClass0_ = _003C_003E8__1;
num3 = 1;
num4 = num5;
_003C_003Ec__DisplayClass0_.i = (num4 | num3) + (num4 & num3);
num = -218365456;
break;
}
case 16:
goto IL_01f4;
case 17:
_003C_003E2__current = validationIssue;
_003C_003E1__state = 4;
return true;
case 1:
goto IL_0289;
case 3:
goto IL_02ac;
case 7:
_003C_003E2__current = new ValidationIssue
{
PathType = EPathType.Quest,
Id = _206B_206C_202D_206D_202B_202B_202E_202B_200C_206F_202A_200E_206B_202B_200F_200F_202E_202A_200C_200B_200F_200F_206F_206C_206B_206F_206F_202A_206E_202E_202A_206A_202B_206C_206B_200E_200D_206C_206A_206E_202E((object)quest.Id),
Location = SchemaValidationHelper.FormatQuestLocation(_206E_200F_200C_206F_200D_200D_200F_202D_202C_206A_206D_202A_206C_200F_206C_200B_202A_200B_206F_200E_206E_206F_206C_202B_200F_206E_202B_202E_200E_206B_200C_202E_202E_200C_202B_200E_202A_202C_202B_200F_202E(current), null),
Type = EIssueType.InstantQuestWithMultipleSteps,
Severity = EIssueSeverity.Error,
Description = 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>(-1806487031)
};
_003C_003E1__state = 2;
return true;
case 20:
goto IL_0340;
case 5:
_003C_003E2__current = validationIssue2;
_003C_003E1__state = 3;
return true;
case 9:
goto IL_03c4;
case 10:
_003CmaxSequence_003E5__5 = (from x in _003Csequences_003E5__2
select _003C_003Ec._206E_206E_206E_206C_206C_202D_200F_206A_202E_202D_206A_206E_202A_202D_200E_200B_206B_202E_200B_206A_202A_202C_202A_206E_202D_206C_202C_200D_206D_200E_200B_206E_200B_206D_206C_206D_206B_202A_200D_200F_202E(x) into x
where x != byte.MaxValue
select x).Max();
_003C_003E8__1 = new _003C_003Ec__DisplayClass0_0();
_003C_003E8__1.i = 0;
num = -218365456;
break;
case 11:
num = -218365441;
break;
case 14:
goto IL_0484;
case 13:
goto IL_04ac;
case 8:
_003C_003E2__current = new ValidationIssue
{
PathType = EPathType.Quest,
Id = _206B_206C_202D_206D_202B_202B_202E_202B_200C_206F_202A_200E_206B_202B_200F_200F_202E_202A_200C_200B_200F_200F_206F_206C_206B_206F_206F_202A_206E_202E_202A_206A_202B_206C_206B_200E_200D_206C_206A_206E_202E((object)quest.Id),
Location = SchemaValidationHelper.FormatQuestLocation(0, null),
Type = EIssueType.MissingSequence0,
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>(-1619010830)
};
_003C_003E1__state = 1;
return true;
case 21:
_003C_003E7__wrap3 = _003Csequences_003E5__2.GetEnumerator();
_003C_003E1__state = -3;
num = -218365453;
break;
case 19:
_003C_003Em__Finally1();
_003C_003E7__wrap3 = default(List<QuestSequence>.Enumerator);
num = -218365443;
break;
case 12:
goto IL_0597;
case 0:
return false;
}
continue;
IL_04ac:
num = ((_003C_003E8__1.i <= _003CmaxSequence_003E5__5) ? (-218365463) : (-218365461));
continue;
IL_014f:
num = ((!(quest.Info is QuestInfo)) ? (-218365443) : (-218365449));
continue;
IL_0340:
List<QuestSequence> foundSequences = _003Csequences_003E5__2.Where((QuestSequence x) => _003C_003Ec__DisplayClass0_0._200B_206E_200F_200B_206B_200C_206A_206F_206C_202B_200B_202E_202E_200D_200D_206F_206C_200C_200F_202E_200E_200E_206D_206D_206A_200B_202A_202B_206A_202B_202A_206C_206D_202B_206F_202C_206B_202E_206B_200E_202E(x) == _003C_003E8__1.i).ToList();
validationIssue2 = ValidateSequences(quest, _003C_003E8__1.i, foundSequences);
num = ((!(validationIssue2 != null)) ? (-218365447) : (-218365448));
continue;
IL_0484:
num = (_003C_003E7__wrap3.MoveNext() ? (-218365452) : (-218365458));
continue;
IL_00ad:
_003C_003E8__1 = null;
List<QuestSequence> foundSequences2 = _003Csequences_003E5__2.Where((QuestSequence x) => _003C_003Ec._206E_206E_206E_206C_206C_202D_200F_206A_202E_202D_206A_206E_202A_202D_200E_200B_206B_202E_200B_206A_202A_202C_202A_206E_202D_206C_202C_200D_206D_200E_200B_206E_200B_206D_206C_206D_206B_202A_200D_200F_202E(x) == byte.MaxValue).ToList();
validationIssue = ValidateSequences(quest, 255, foundSequences2);
num = ((!(validationIssue != null)) ? (-218365443) : (-218365460));
continue;
IL_018f:
questInfo = quest.Info as QuestInfo;
num = ((questInfo == null) ? (-218365462) : (-218365444));
continue;
IL_03c4:
current = _003C_003E7__wrap3.Current;
num = ((current == _003CfoundStart_003E5__3) ? (-218365453) : (-218365446));
continue;
IL_0289:
num = ((!questInfo.CompletesInstantly) ? (-218365462) : (-218365464));
continue;
end_IL_002d:
break;
}
goto case 2;
IL_0597:
_003C_003E1__state = -1;
num = -218365443;
goto IL_002d;
IL_02ac:
_003C_003E1__state = -1;
num = -218365447;
goto IL_002d;
IL_01f4:
_003C_003E1__state = -1;
_003Csequences_003E5__2 = _200C_200F_200F_202E_206E_202D_206F_202A_200B_200B_206F_206B_206A_206E_202B_200D_200D_200E_200E_206B_206C_200B_206A_206E_200E_202D_202E_202E_202C_206F_202C_202E_206C_200C_206C_202B_206E_202E_200C_200E_202E(quest.Root);
_003CfoundStart_003E5__3 = _003Csequences_003E5__2.FirstOrDefault((QuestSequence x) => _003C_003Ec._206E_206E_206E_206C_206C_202D_200F_206A_202E_202D_206A_206E_202A_202D_200E_200B_206B_202E_200B_206A_202A_202C_202A_206E_202D_206C_202C_200D_206D_200E_200B_206E_200B_206D_206C_206D_206B_202A_200D_200F_202E(x) == 0);
num = ((_003CfoundStart_003E5__3 != null) ? (-218365445) : (-218365451));
goto IL_002d;
end_IL_0008:
break;
}
_003C_003E1__state = -1;
return false;
}
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__wrap3/*cast due to .constrained prefix*/).Dispose();
}
[DebuggerHidden]
void IEnumerator.Reset()
{
throw _200E_200E_206C_202A_206E_200B_202A_200C_200D_202E_200B_206A_202C_200D_202D_206E_202D_206B_206C_206A_200D_200E_206F_206A_200C_202B_206B_206E_202C_202C_206A_202C_202A_202B_206E_200D_206B_202E_200C_206D_202E();
}
[DebuggerHidden]
IEnumerator<ValidationIssue> IEnumerable<ValidationIssue>.GetEnumerator()
{
int num = ((_003C_003E1__state != -2) ? (-1853104470) : (-1853104472));
_003CValidate_003Ed__0 _003CValidate_003Ed__ = default(_003CValidate_003Ed__0);
while (true)
{
int num2 = num;
int num3 = -1853104471;
int num4 = num2;
int num5 = num4 + num3;
int num6 = num4 & num3;
switch (num5 - (num6 + num6))
{
case 4:
_003CValidate_003Ed__.quest = _003C_003E3__quest;
return _003CValidate_003Ed__;
case 1:
num = ((_003C_003El__initialThreadId != _202D_202D_202E_206D_200D_206B_200E_200B_202E_200E_206C_206E_200B_202E_206A_202C_202C_202C_206F_200F_200F_200F_206C_202D_200D_200C_202C_200C_202D_206A_202A_202C_200E_206A_206E_206D_202E_202E_206E_202A_202E()) ? (-1853104470) : (-1853104469));
break;
case 2:
_003C_003E1__state = 0;
_003CValidate_003Ed__ = this;
num = -1853104467;
break;
case 0:
num = -1853104472;
break;
case 3:
_003CValidate_003Ed__ = new _003CValidate_003Ed__0(0);
num = -1853104467;
break;
}
}
}
[DebuggerHidden]
IEnumerator IEnumerable.GetEnumerator()
{
return ((IEnumerable<ValidationIssue>)this).GetEnumerator();
}
static int _202D_202D_202E_206D_200D_206B_200E_200B_202E_200E_206C_206E_200B_202E_206A_202C_202C_202C_206F_200F_200F_200F_206C_202D_200D_200C_202C_200C_202D_206A_202A_202C_200E_206A_206E_206D_202E_202E_206E_202A_202E()
{
return Environment.CurrentManagedThreadId;
}
static List<QuestSequence> _200C_200F_200F_202E_206E_202D_206F_202A_200B_200B_206F_206B_206A_206E_202B_200D_200D_200E_200E_206B_206C_200B_206A_206E_200E_202D_202E_202E_202C_206F_202C_202E_206C_200C_206C_202B_206E_202E_200C_200E_202E(QuestRoot P_0)
{
return P_0.QuestSequence;
}
static string _206B_206C_202D_206D_202B_202B_202E_202B_200C_206F_202A_200E_206B_202B_200F_200F_202E_202A_200C_200B_200F_200F_206F_206C_206B_206F_206F_202A_206E_202E_202A_206A_202B_206C_206B_200E_200D_206C_206A_206E_202E(object P_0)
{
return P_0.ToString();
}
static byte _206E_200F_200C_206F_200D_200D_200F_202D_202C_206A_206D_202A_206C_200F_206C_200B_202A_200B_206F_200E_206E_206F_206C_202B_200F_206E_202B_202E_200E_206B_200C_202E_202E_200C_202B_200E_202A_202C_202B_200F_202E(QuestSequence P_0)
{
return P_0.Sequence;
}
static NotSupportedException _200E_200E_206C_202A_206E_200B_202A_200C_200D_202E_200B_206A_202C_200D_202D_206E_202D_206B_206C_206A_200D_200E_206F_206A_200C_202B_206B_206E_202C_202C_206A_202C_202A_202B_206E_200D_206B_202E_200C_206D_202E()
{
return new NotSupportedException();
}
}
[IteratorStateMachine(typeof(_003CValidate_003Ed__0))]
public IEnumerable<ValidationIssue> Validate(Quest quest)
{
List<QuestSequence> sequences = quest.Root.QuestSequence;
QuestSequence foundStart = sequences.FirstOrDefault((QuestSequence x) => x.Sequence == 0);
if (foundStart == null)
//yield-return decompiler failed: Unexpected instruction in Iterator.Dispose()
return new _003CValidate_003Ed__0(-2)
{
yield return new ValidationIssue
{
ElementId = quest.Id,
Sequence = 0,
Step = null,
Type = EIssueType.MissingSequence0,
Severity = EIssueSeverity.Error,
Description = "Missing quest start"
};
}
else if (quest.Info is QuestInfo { CompletesInstantly: not false })
_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);
}
[MethodImpl(MethodImplOptions.NoInlining)]
private static ValidationIssue? ValidateSequences(Quest quest, int sequenceNo, List<QuestSequence> foundSequences)
{
int num = ((foundSequences.Count != 0) ? (-2063346227) : (-2063346230));
while (true)
{
foreach (QuestSequence item in sequences)
int num2 = num;
int num3 = -2063346231;
int num4 = num2;
switch ((num4 | num3) - (num4 & num3))
{
if (item != foundStart)
case 0:
num = -2063346230;
break;
case 3:
return new ValidationIssue
{
yield return new ValidationIssue
{
ElementId = quest.Id,
Sequence = item.Sequence,
Step = null,
Type = EIssueType.InstantQuestWithMultipleSteps,
Severity = EIssueSeverity.Error,
Description = "Instant quest should not have any sequences after the start"
};
}
}
}
else
{
if (!(quest.Info is QuestInfo))
{
yield break;
}
int maxSequence = (from x in sequences
select x.Sequence into x
where x != byte.MaxValue
select x).Max();
int i;
for (i = 0; i < maxSequence; i++)
{
List<QuestSequence> foundSequences = sequences.Where((QuestSequence x) => x.Sequence == i).ToList();
ValidationIssue validationIssue = ValidateSequences(quest, i, foundSequences);
if (validationIssue != null)
PathType = EPathType.Quest,
Id = _206D_206D_206D_206D_202B_202D_202C_202A_206C_206A_206C_202B_206E_200B_202E_200C_202C_206E_206B_202A_206F_200F_206D_206F_202D_206F_200E_206B_206D_200C_202A_200B_202C_200B_202B_202D_206A_206E_202D_202B_202E((object)quest.Id),
Location = SchemaValidationHelper.FormatQuestLocation((byte)sequenceNo, null),
Type = EIssueType.MissingSequence,
Severity = EIssueSeverity.Error,
Description = 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>(1578841753)
};
case 4:
num = ((foundSequences.Count < 2) ? (-2063346229) : (-2063346232));
break;
case 1:
return new ValidationIssue
{
yield return validationIssue;
}
}
List<QuestSequence> foundSequences2 = sequences.Where((QuestSequence x) => x.Sequence == byte.MaxValue).ToList();
ValidationIssue validationIssue2 = ValidateSequences(quest, 255, foundSequences2);
if (validationIssue2 != null)
{
yield return validationIssue2;
PathType = EPathType.Quest,
Id = _206D_206D_206D_206D_202B_202D_202C_202A_206C_206A_206C_202B_206E_200B_202E_200C_202C_206E_206B_202A_206F_200F_206D_206F_202D_206F_200E_206B_206D_200C_202A_200B_202C_200B_202B_202D_206A_206E_202D_202B_202E((object)quest.Id),
Location = SchemaValidationHelper.FormatQuestLocation((byte)sequenceNo, null),
Type = EIssueType.DuplicateSequence,
Severity = EIssueSeverity.Error,
Description = 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>(-312193419)
};
case 2:
return null;
}
}
}
private static ValidationIssue? ValidateSequences(Quest quest, int sequenceNo, List<QuestSequence> foundSequences)
static string _206D_206D_206D_206D_202B_202D_202C_202A_206C_206A_206C_202B_206E_200B_202E_200C_202C_206E_206B_202A_206F_200F_206D_206F_202D_206F_200E_206B_206D_200C_202A_200B_202C_200B_202B_202D_206A_206E_202D_202B_202E(object P_0)
{
if (foundSequences.Count == 0)
{
return new ValidationIssue
{
ElementId = quest.Id,
Sequence = (byte)sequenceNo,
Step = null,
Type = EIssueType.MissingSequence,
Severity = EIssueSeverity.Error,
Description = "Missing sequence"
};
}
if (foundSequences.Count == 2)
{
return new ValidationIssue
{
ElementId = quest.Id,
Sequence = (byte)sequenceNo,
Step = null,
Type = EIssueType.DuplicateSequence,
Severity = EIssueSeverity.Error,
Description = "Duplicate sequence"
};
}
return null;
return P_0.ToString();
}
}