qstbak/Questionable/Questionable.Controller.Steps.Interactions/CriticalEncounter.cs
2026-08-17 20:27:25 +10:00

323 lines
18 KiB
C#

using System;
using System.Collections.Generic;
using System.Runtime.CompilerServices;
using System.Text;
using LLib.GameData;
using Microsoft.Extensions.Logging;
using Questionable.Controller.Steps.Common;
using Questionable.Model;
using Questionable.Model.Questing;
namespace Questionable.Controller.Steps.Interactions;
internal static class CriticalEncounter
{
internal sealed class Factory : ITaskFactory
{
[MethodImpl(MethodImplOptions.NoInlining)]
public IEnumerable<ITask> CreateAllTasks(Quest quest, QuestSequence sequence, QuestStep step)
{
int num = ((_202B_202A_206E_202D_206C_200F_200D_202A_200D_206C_200B_206A_202B_202D_200F_206F_206C_206E_200E_202E_202B_202E_206C_202C_206D_206A_202B_200F_206C_202A_206B_200B_202E_202D_206E_206C_200F_200D_206A_200E_202E(step) == EInteractionType.CriticalEncounter) ? 388534169 : 388534175);
bool flag = default(bool);
ushort? num5 = default(ushort?);
while (true)
{
int num2 = num;
int num3 = 388534174;
int num4 = num2;
switch ((num4 | num3) - (num4 & num3))
{
case 3:
return new global::_003C_003Ez__ReadOnlySingleElementList<ITask>(new WaitForCriticalEncounter(_202B_202D_206C_206B_206B_206E_200E_206A_206C_206D_200E_202E_206E_202C_206B_206A_200F_202C_202E_202E_200F_206D_202D_206A_206F_206C_200B_206C_202C_200F_206F_206C_200D_206B_200C_202D_206F_202E_200F_202A_202E(step).Value, _200E_200B_202E_206D_202C_200C_206F_202A_206F_206D_206E_206C_206B_202C_202C_206D_206B_206C_206C_202E_206D_200C_202B_202C_206A_202A_206E_202A_206B_202B_206A_206B_206A_202E_200E_202C_202D_200C_200F_206C_202E(step)));
case 2:
num = ((!flag) ? 388534173 : 388534170);
break;
case 4:
throw _202D_206F_200D_202A_200C_200B_200C_200F_202A_202E_202C_200B_200F_206A_202D_206B_202D_200E_200F_206D_200D_206E_206D_200C_206B_200C_200E_202E_206A_202A_200F_200F_206D_202B_202E_206A_206A_202A_200E_200F_202E(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>(173883296));
case 1:
return Array.Empty<ITask>();
case 8:
num = 388534175;
break;
case 0:
num = ((num5.GetValueOrDefault() != 0) ? 388534171 : 388534168);
break;
case 5:
flag = false;
num = 388534172;
break;
case 6:
flag = true;
num = 388534172;
break;
case 7:
num5 = _202B_202D_206C_206B_206B_206E_200E_206A_206C_206D_200E_202E_206E_202C_206B_206A_200F_202C_202E_202E_200F_206D_202D_206A_206F_206C_200B_206C_202C_200F_206F_206C_200D_206B_200C_202D_206F_202E_200F_202A_202E(step);
num = ((!num5.HasValue) ? 388534168 : 388534174);
break;
}
}
}
IEnumerable<ITask> ITaskFactory.CreateAllTasks(Quest quest, QuestSequence sequence, QuestStep step)
{
//ILSpy generated this explicit interface implementation from .override directive in CreateAllTasks
return this.CreateAllTasks(quest, sequence, step);
}
static EInteractionType _202B_202A_206E_202D_206C_200F_200D_202A_200D_206C_200B_206A_202B_202D_200F_206F_206C_206E_200E_202E_202B_202E_206C_202C_206D_206A_202B_200F_206C_202A_206B_200B_202E_202D_206E_206C_200F_200D_206A_200E_202E(QuestStep P_0)
{
return P_0.InteractionType;
}
static ushort? _202B_202D_206C_206B_206B_206E_200E_206A_206C_206D_200E_202E_206E_202C_206B_206A_200F_202C_202E_202E_200F_206D_202D_206A_206F_206C_200B_206C_202C_200F_206F_206C_200D_206B_200C_202D_206F_202E_200F_202A_202E(QuestStep P_0)
{
return P_0.CriticalEncounterId;
}
static InvalidOperationException _202D_206F_200D_202A_200C_200B_200C_200F_202A_202E_202C_200B_200F_206A_202D_206B_202D_200E_200F_206D_200D_206E_206D_200C_206B_200C_200E_202E_206A_202A_200F_200F_206D_202B_202E_206A_206A_202A_200E_200F_202E(string P_0)
{
return new InvalidOperationException(P_0);
}
static string _200E_200B_202E_206D_202C_200C_206F_202A_206F_206D_206E_206C_206B_202C_202C_206D_206B_206C_206C_202E_206D_200C_202B_202C_206A_202A_206E_202A_206B_202B_206A_206B_206A_202E_200E_202C_202D_200C_200F_206C_202E(QuestStep P_0)
{
return P_0.Comment;
}
}
internal sealed record WaitForCriticalEncounter(ushort CriticalEncounterId, string? Comment) : ITask
{
[CompilerGenerated]
private Type EqualityContract
{
[CompilerGenerated]
get
{
return _206C_206C_206A_202A_200B_206A_202D_202E_200C_200D_200B_202A_206D_206A_202E_202A_206D_206A_202D_202C_200C_206D_206A_206A_206C_206D_200C_200D_202D_202C_202E_206D_200D_206B_200B_202E_206E_202E_200F_200E_202E(typeof(WaitForCriticalEncounter).TypeHandle);
}
}
[MethodImpl(MethodImplOptions.NoInlining)]
public override string ToString()
{
DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(26, 1);
defaultInterpolatedStringHandler.AppendLiteral(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>(-1697755405));
defaultInterpolatedStringHandler.AppendFormatted(CriticalEncounterId);
defaultInterpolatedStringHandler.AppendLiteral(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>(1735737295));
return defaultInterpolatedStringHandler.ToStringAndClear();
}
[MethodImpl(MethodImplOptions.NoInlining)]
[CompilerGenerated]
private bool PrintMembers(StringBuilder builder)
{
_200D_206D_202B_206B_206E_206A_200B_206A_206A_200D_202D_206C_202A_202E_206E_202B_200D_206E_206B_200E_202D_202E_202D_206F_206F_206A_206C_200C_206E_200C_202C_206D_206F_200D_200E_200C_202B_206F_202C_206A_202E();
_206D_200B_200D_202E_200F_200E_206D_206B_206A_200C_200F_200C_202B_202A_202B_206F_200F_200D_202D_200B_202C_200E_202C_206B_206D_200C_202B_202D_206A_206D_206F_206E_200C_206C_202D_200E_206E_202E_206E_206C_202E(builder, 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>(1797121182));
_206D_200B_200D_202E_200F_200E_206D_206B_206A_200C_200F_200C_202B_202A_202B_206F_200F_200D_202D_200B_202C_200E_202C_206B_206D_200C_202B_202D_206A_206D_206F_206E_200C_206C_202D_200E_206E_202E_206E_206C_202E(builder, CriticalEncounterId.ToString());
_206D_200B_200D_202E_200F_200E_206D_206B_206A_200C_200F_200C_202B_202A_202B_206F_200F_200D_202D_200B_202C_200E_202C_206B_206D_200C_202B_202D_206A_206D_206F_206E_200C_206C_202D_200E_206E_202E_206E_206C_202E(builder, 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>(161698568));
_206D_206B_202C_200F_206B_202D_200D_206D_206E_202D_200D_200B_200B_202A_206F_202D_200D_200B_200E_202E_206F_206C_206D_200D_206E_200D_200E_206E_202D_206A_206E_200E_206B_206E_200D_202D_200C_206C_200D_202C_202E(builder, (object?)Comment);
return true;
}
[CompilerGenerated]
public bool Equals(WaitForCriticalEncounter? other)
{
int num = (((object)this == other) ? 1889807727 : 1889807725);
while (true)
{
int num2 = num;
int num3 = 1889807724;
int num4 = num2;
int num5 = num4 + num3;
int num6 = num4 & num3;
switch (num5 - (num6 + num6))
{
case 2:
num = 1889807725;
break;
case 6:
num = ((!EqualityComparer<ushort>.Default.Equals(CriticalEncounterId, other.CriticalEncounterId)) ? 1889807720 : 1889807721);
break;
case 3:
return true;
case 1:
num = (((object)other == null) ? 1889807720 : 1889807724);
break;
case 5:
return EqualityComparer<string>.Default.Equals(Comment, other.Comment);
case 4:
return false;
case 0:
num = ((!_200B_202E_206B_202C_202A_200C_202E_200C_202C_200D_202E_200C_200C_200B_200F_200C_202D_202E_206D_202C_202B_202B_206C_200B_200F_206C_202C_200E_206C_206F_202B_206F_200B_202B_200C_200C_200F_206E_202A_202D_202E(EqualityContract, other.EqualityContract)) ? 1889807720 : 1889807722);
break;
}
}
}
bool IEquatable<WaitForCriticalEncounter>.Equals(WaitForCriticalEncounter? other)
{
//ILSpy generated this explicit interface implementation from .override directive in Equals
return this.Equals(other);
}
static Type? _206C_206C_206A_202A_200B_206A_202D_202E_200C_200D_200B_202A_206D_206A_202E_202A_206D_206A_202D_202C_200C_206D_206A_206A_206C_206D_200C_200D_202D_202C_202E_206D_200D_206B_200B_202E_206E_202E_200F_200E_202E(RuntimeTypeHandle P_0)
{
return Type.GetTypeFromHandle(P_0);
}
static void _200D_206D_202B_206B_206E_206A_200B_206A_206A_200D_202D_206C_202A_202E_206E_202B_200D_206E_206B_200E_202D_202E_202D_206F_206F_206A_206C_200C_206E_200C_202C_206D_206F_200D_200E_200C_202B_206F_202C_206A_202E()
{
RuntimeHelpers.EnsureSufficientExecutionStack();
}
static StringBuilder? _206D_200B_200D_202E_200F_200E_206D_206B_206A_200C_200F_200C_202B_202A_202B_206F_200F_200D_202D_200B_202C_200E_202C_206B_206D_200C_202B_202D_206A_206D_206F_206E_200C_206C_202D_200E_206E_202E_206E_206C_202E(StringBuilder? P_0, string? P_1)
{
return P_0.Append(P_1);
}
static StringBuilder? _206D_206B_202C_200F_206B_202D_200D_206D_206E_202D_200D_200B_200B_202A_206F_202D_200D_200B_200E_202E_206F_206C_206D_200D_206E_200D_200E_206E_202D_206A_206E_200E_206B_206E_200D_202D_200C_206C_200D_202C_202E(StringBuilder? P_0, object? P_1)
{
return P_0.Append(P_1);
}
static bool _200B_202E_206B_202C_202A_200C_202E_200C_202C_200D_202E_200C_200C_200B_200F_200C_202D_202E_206D_202C_202B_202B_206C_200B_200F_206C_202C_200E_206C_206F_202B_206F_200B_202B_200C_200C_200F_206E_202A_202D_202E(Type? P_0, Type? P_1)
{
return P_0 == P_1;
}
}
internal sealed class WaitForCriticalEncounterExecutor(PublicEventHelper publicEventHelper, MovementController movementController, SendNotification.Executor sendNotificationExecutor, ILogger<WaitForCriticalEncounterExecutor> logger) : TaskExecutor<WaitForCriticalEncounter>()
{
private long _nextPollAt;
private bool _loggedWaiting;
private bool _notified;
private bool _navigating;
[MethodImpl(MethodImplOptions.NoInlining)]
protected override bool Start()
{
_200D_206C_202E_206E_206C_200F_200C_200F_200D_206D_202D_200D_206C_206B_200D_200D_200C_202B_206D_200E_202C_202B_200B_206E_206A_200B_206C_206E_206C_206D_202D_206F_200B_202D_202E_206F_206F_206F_206B_206D_202E((ILogger)logger, 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>(787186705), new object[1] { base.Task.CriticalEncounterId });
return true;
}
[MethodImpl(MethodImplOptions.NoInlining)]
public override ETaskResult Update()
{
int num = ((_202C_200B_200C_200C_202A_200E_206C_200C_206F_200E_202B_206F_202B_202B_206E_206F_200C_202D_206B_200B_202B_206F_206D_206D_202A_202A_206E_206D_206B_206C_202E_206F_202C_200C_200D_200F_200E_202B_202A_200F_202E() >= _nextPollAt) ? 547757229 : 547757246);
PublicEvent valueOrDefault = default(PublicEvent);
PublicEvent? publicEvent = default(PublicEvent?);
while (true)
{
int num2 = num;
int num3 = 547757230;
int num4 = num2;
switch ((num4 | num3) - (num4 & num3))
{
case 8:
num = (_loggedWaiting ? 547757221 : 547757227);
break;
case 4:
_nextPollAt = _202C_200B_200C_200C_202A_200E_206C_200C_206F_200E_202B_206F_202B_202B_206E_206F_200C_202D_206B_200B_202B_206F_206D_206D_202A_202A_206E_206D_206B_206C_202E_206F_202C_200C_200D_200F_200E_202B_202A_200F_202E() + 1000;
return ETaskResult.StillRunning;
case 1:
_nextPollAt = _202C_200B_200C_200C_202A_200E_206C_200C_206F_200E_202B_206F_202B_202B_206E_206F_200C_202D_206B_200B_202B_206F_206D_206D_202A_202A_206E_206D_206B_206C_202E_206F_202C_200C_200D_200F_200E_202B_202A_200F_202E() + 2000;
return ETaskResult.StillRunning;
case 12:
valueOrDefault = publicEvent.GetValueOrDefault();
num = 547757223;
break;
case 2:
return ETaskResult.TaskComplete;
case 16:
return ETaskResult.StillRunning;
case 0:
num = 547757246;
break;
case 15:
num = ((publicEvent.GetValueOrDefault().Id != base.Task.CriticalEncounterId) ? 547757225 : 547757228);
break;
case 11:
_notified = false;
_navigating = false;
_nextPollAt = _202C_200B_200C_200C_202A_200E_206C_200C_206F_200E_202B_206F_202B_202B_206E_206F_200C_202D_206B_200B_202B_206F_206D_206D_202A_202A_206E_206D_206B_206C_202E_206F_202C_200C_200D_200F_200E_202B_202A_200F_202E() + 1000;
return ETaskResult.StillRunning;
case 10:
num = (_navigating ? 547757226 : 547757216);
break;
case 14:
_202C_206B_200F_206C_206B_206C_200F_206F_202C_200B_202D_202C_200E_202E_202A_202B_200C_206A_200D_206D_202E_200D_200F_206A_202A_206C_202A_200D_200D_206A_200C_202A_202B_206C_200B_200C_202B_200E_206B_206D_202E((ILogger)logger, 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>(-1192929131), new object[2]
{
base.Task.CriticalEncounterId,
valueOrDefault.Position
});
movementController.NavigateTo(EMovementType.Quest, null, valueOrDefault.Position, fly: false, sprint: true, 5f);
_navigating = true;
num = 547757226;
break;
case 7:
num = ((!valueOrDefault.IsActive) ? 547757220 : 547757231);
break;
case 6:
publicEvent = _206B_202D_206C_200D_202A_206C_206A_206C_202E_200F_206A_202C_202C_206E_200E_206D_202D_200E_202A_200C_206D_202A_206D_206F_206A_206F_202B_202E_206A_206E_200C_202A_200F_206D_200B_202C_202E_206B_200D_202E_202E(publicEventHelper);
num = ((!publicEvent.HasValue) ? 547757225 : 547757217);
break;
case 9:
num = (_notified ? 547757224 : 547757219);
break;
case 3:
publicEvent = _206B_200F_206E_200C_202C_206D_200D_202C_200C_202A_206A_200B_200E_202E_206A_206E_202D_202A_206B_206A_200B_202E_206A_206D_206F_200F_202A_206A_206F_202D_206D_202C_200E_202E_202B_200F_202A_202A_202A_206C_202E(publicEventHelper, EPublicEventType.DynamicEvent, (uint)base.Task.CriticalEncounterId);
num = ((!publicEvent.HasValue) ? 547757222 : 547757218);
break;
case 13:
_202C_206B_200F_206C_206B_206C_200F_206F_202C_200B_202D_202C_200E_202E_202A_202B_200C_206A_200D_206D_202E_200D_200F_206A_202A_206C_202A_200D_200D_206A_200C_202A_202B_206C_200B_200C_202B_200E_206B_206D_202E((ILogger)logger, 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>(1925066438), new object[2]
{
base.Task.CriticalEncounterId,
valueOrDefault.Name
});
sendNotificationExecutor.Start(new SendNotification.Task(EInteractionType.CriticalEncounter, base.Task.Comment ?? valueOrDefault.Name));
_notified = true;
num = 547757224;
break;
case 5:
_200D_206C_202E_206E_206C_200F_200C_200F_200D_206D_202D_200D_206C_206B_200D_200D_200C_202B_206D_200E_202C_202B_200B_206E_206A_200B_206C_206E_206C_206D_202D_206F_200B_202D_202E_206F_206F_206F_206B_206D_202E((ILogger)logger, 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>(-103389765), new object[1] { base.Task.CriticalEncounterId });
_loggedWaiting = true;
num = 547757221;
break;
}
}
}
public override bool ShouldInterruptOnDamage()
{
return false;
}
static void _200D_206C_202E_206E_206C_200F_200C_200F_200D_206D_202D_200D_206C_206B_200D_200D_200C_202B_206D_200E_202C_202B_200B_206E_206A_200B_206C_206E_206C_206D_202D_206F_200B_202D_202E_206F_206F_206F_206B_206D_202E(ILogger P_0, string P_1, object[] P_2)
{
P_0.LogDebug(P_1, P_2);
}
static long _202C_200B_200C_200C_202A_200E_206C_200C_206F_200E_202B_206F_202B_202B_206E_206F_200C_202D_206B_200B_202B_206F_206D_206D_202A_202A_206E_206D_206B_206C_202E_206F_202C_200C_200D_200F_200E_202B_202A_200F_202E()
{
return Environment.TickCount64;
}
static PublicEvent? _206B_200F_206E_200C_202C_206D_200D_202C_200C_202A_206A_200B_200E_202E_206A_206E_202D_202A_206B_206A_200B_202E_206A_206D_206F_200F_202A_206A_206F_202D_206D_202C_200E_202E_202B_200F_202A_202A_202A_206C_202E(PublicEventHelper P_0, EPublicEventType P_1, uint P_2)
{
return P_0.GetEventById(P_1, P_2);
}
static void _202C_206B_200F_206C_206B_206C_200F_206F_202C_200B_202D_202C_200E_202E_202A_202B_200C_206A_200D_206D_202E_200D_200F_206A_202A_206C_202A_200D_200D_206A_200C_202A_202B_206C_200B_200C_202B_200E_206B_206D_202E(ILogger P_0, string P_1, object[] P_2)
{
P_0.LogInformation(P_1, P_2);
}
static PublicEvent? _206B_202D_206C_200D_202A_206C_206A_206C_202E_200F_206A_202C_202C_206E_200E_206D_202D_200E_202A_200C_206D_202A_206D_206F_206A_206F_202B_202E_206A_206E_200C_202A_200F_206D_200B_202C_202E_206B_200D_202E_202E(PublicEventHelper P_0)
{
return P_0.GetCurrentDynamicEvent();
}
}
}