muffin v7.5.11
This commit is contained in:
parent
addf2d530f
commit
3102923ce2
522 changed files with 41082 additions and 211592 deletions
|
|
@ -1,11 +1,8 @@
|
|||
using System;
|
||||
using System.Runtime.CompilerServices;
|
||||
using Dalamud.Game.ClientState.Objects.SubKinds;
|
||||
using Dalamud.Game.ClientState.Objects.Types;
|
||||
using Dalamud.Plugin.Ipc.Exceptions;
|
||||
using Dalamud.Plugin.Services;
|
||||
using Lumina.Excel;
|
||||
using Lumina.Excel.Sheets;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using Questionable.External;
|
||||
|
||||
|
|
@ -31,124 +28,56 @@ internal sealed class BossModModule : ICombatModule, IDisposable
|
|||
|
||||
public bool CanHandleFight(CombatController.CombatData combatData)
|
||||
{
|
||||
int num = ((_configuration.General.CombatModule == Configuration.ECombatModule.BossMod) ? (-1465780808) : (-1465780807));
|
||||
while (true)
|
||||
if (_configuration.General.CombatModule != Configuration.ECombatModule.BossMod)
|
||||
{
|
||||
int num2 = num;
|
||||
int num3 = -1465780808;
|
||||
int num4 = num2;
|
||||
switch ((num4 | num3) - (num4 & num3))
|
||||
{
|
||||
case 0:
|
||||
return _bossModIpc.IsSupported();
|
||||
case 1:
|
||||
return false;
|
||||
case 2:
|
||||
goto IL_005f;
|
||||
}
|
||||
continue;
|
||||
IL_005f:
|
||||
num = -1465780807;
|
||||
return false;
|
||||
}
|
||||
return _bossModIpc.IsSupported();
|
||||
}
|
||||
|
||||
bool ICombatModule.CanHandleFight(CombatController.CombatData combatData)
|
||||
{
|
||||
//ILSpy generated this explicit interface implementation from .override directive in CanHandleFight
|
||||
return this.CanHandleFight(combatData);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.NoInlining)]
|
||||
public bool Start(CombatController.CombatData combatData)
|
||||
{
|
||||
try
|
||||
{
|
||||
_200F_202B_206D_200D_202A_206D_206B_200D_206F_206C_202D_202B_200E_202B_202A_200C_202C_206C_206B_206F_206A_202B_206E_206A_200F_202D_206A_200F_206E_200D_202E_202B_200D_202E_202C_202C_200B_200C_200F_206B_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>(460354770), new object[1] { combatData.SpawnType });
|
||||
int num = (_bossModIpc.EnableAi(BossModIpc.EPreset.Active) ? (-1132234490) : (-1132234488));
|
||||
byte? b = default(byte?);
|
||||
bool flag = default(bool);
|
||||
IPlayerCharacter playerCharacter = default(IPlayerCharacter);
|
||||
while (true)
|
||||
_logger.LogDebug("BossModModule.Start: SpawnType={SpawnType}, enabling Active preset", combatData.SpawnType);
|
||||
if (!_bossModIpc.EnableAi(BossModIpc.EPreset.Active))
|
||||
{
|
||||
int num2 = num;
|
||||
int num3 = -1132234496;
|
||||
int num4 = num2;
|
||||
int num5 = num4 + num3;
|
||||
int num6 = num4 & num3;
|
||||
switch (num5 - (num6 + num6))
|
||||
{
|
||||
case 5:
|
||||
_logger.LogWarning("BossModModule.Start: failed to enable BossMod AI");
|
||||
return false;
|
||||
}
|
||||
IPlayerCharacter localPlayer = _objectTable.LocalPlayer;
|
||||
bool flag;
|
||||
if (localPlayer != null)
|
||||
{
|
||||
byte? b = localPlayer.ClassJob.ValueNullable?.Role;
|
||||
if (b.HasValue)
|
||||
{
|
||||
byte valueOrDefault = b.GetValueOrDefault();
|
||||
num3 = 3;
|
||||
num4 = valueOrDefault;
|
||||
num = (((uint)(~(~num4 + num3)) > 1u) ? (-1132234489) : (-1132234494));
|
||||
break;
|
||||
}
|
||||
case 2:
|
||||
flag = true;
|
||||
num = -1132234493;
|
||||
break;
|
||||
case 1:
|
||||
b = _200C_202E_206E_200C_206E_206E_202C_200F_200C_200F_200B_200B_200C_206A_202A_206C_206E_206C_206D_206D_202D_200F_202B_206C_200B_206B_206E_200F_200E_206A_202A_202C_200D_206D_202D_206F_206E_202A_206B_200E_202E((ICharacter)playerCharacter).ValueNullable?.Role;
|
||||
num = ((!b.HasValue) ? (-1132234489) : (-1132234491));
|
||||
break;
|
||||
case 3:
|
||||
{
|
||||
bool flag2 = flag;
|
||||
ILogger<BossModModule> logger = _logger;
|
||||
string 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>(305098006);
|
||||
object[] obj = new object[2] { flag2, null };
|
||||
ClassJob? valueNullable = _200C_202E_206E_200C_206E_206E_202C_200F_200C_200F_200B_200B_200C_206A_202A_206C_206E_206C_206D_206D_202D_200F_202B_206C_200B_206B_206E_200F_200E_206A_202A_202C_200D_206D_202D_206F_206E_202A_206B_200E_202E((ICharacter)playerCharacter).ValueNullable;
|
||||
byte? b2;
|
||||
if (!valueNullable.HasValue)
|
||||
if ((uint)(valueOrDefault - 3) <= 1u)
|
||||
{
|
||||
b = null;
|
||||
b2 = b;
|
||||
flag = true;
|
||||
goto IL_00bd;
|
||||
}
|
||||
else
|
||||
{
|
||||
b2 = valueNullable.GetValueOrDefault().Role;
|
||||
}
|
||||
obj[1] = b2;
|
||||
_200F_202B_206D_200D_202A_206D_206B_200D_206F_206C_202D_202B_200E_202B_202A_200C_202C_206C_206B_206F_206A_202B_206E_206A_200F_202D_206A_200F_206E_200D_202E_202B_200D_202E_202C_202C_200B_200C_200F_206B_202E((ILogger)logger, text, obj);
|
||||
_bossModIpc.SetRangeStrategy(BossModIpc.EPreset.Active, flag2);
|
||||
num = -1132234492;
|
||||
break;
|
||||
}
|
||||
case 6:
|
||||
playerCharacter = _206F_206B_200B_206F_200D_206E_202C_206B_202D_200F_202D_202A_206D_206C_202E_200E_200D_200F_206B_206E_202A_206D_206F_200D_200F_200E_206A_200E_206B_206C_200D_200F_206F_206E_202E_202E_206F_206E_200E_202A_202E(_objectTable);
|
||||
num = ((playerCharacter == null) ? (-1132234492) : (-1132234495));
|
||||
break;
|
||||
case 8:
|
||||
_200E_202D_202D_206F_206D_202D_206D_206A_200B_200D_206E_206A_206E_200B_200B_200C_206E_206E_206E_200D_202B_206A_202C_202E_206B_200D_206A_202C_200E_206D_202E_202C_202A_200F_200D_202C_202B_206F_202E_202B_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>(-651638394), Array.Empty<object>());
|
||||
return false;
|
||||
case 0:
|
||||
num = -1132234488;
|
||||
break;
|
||||
case 7:
|
||||
flag = false;
|
||||
num = -1132234493;
|
||||
break;
|
||||
case 4:
|
||||
return true;
|
||||
}
|
||||
flag = false;
|
||||
goto IL_00bd;
|
||||
}
|
||||
goto IL_012e;
|
||||
IL_00bd:
|
||||
bool flag2 = flag;
|
||||
_logger.LogDebug("BossModModule.Start: isRanged={IsRanged}, job role={Role}", flag2, localPlayer.ClassJob.ValueNullable?.Role);
|
||||
_bossModIpc.SetRangeStrategy(BossModIpc.EPreset.Active, flag2);
|
||||
goto IL_012e;
|
||||
IL_012e:
|
||||
return true;
|
||||
}
|
||||
catch (IpcError ipcError)
|
||||
catch (IpcError exception)
|
||||
{
|
||||
_206E_206C_202C_202E_200F_206E_206B_206D_202B_202E_202C_202A_200D_200B_206B_200F_202E_202C_202B_206B_200E_202D_200B_206D_200B_206B_200C_202E_206B_206D_206F_200E_200E_202D_200E_206E_206A_202C_202A_206C_202E((ILogger)_logger, (Exception)ipcError, 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>(-1300221531), Array.Empty<object>());
|
||||
_logger.LogWarning(exception, "Could not start combat");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
bool ICombatModule.Start(CombatController.CombatData combatData)
|
||||
{
|
||||
//ILSpy generated this explicit interface implementation from .override directive in Start
|
||||
return this.Start(combatData);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.NoInlining)]
|
||||
public bool Stop()
|
||||
{
|
||||
try
|
||||
|
|
@ -156,73 +85,24 @@ internal sealed class BossModModule : ICombatModule, IDisposable
|
|||
_bossModIpc.DisableAi();
|
||||
return true;
|
||||
}
|
||||
catch (IpcError ipcError)
|
||||
catch (IpcError exception)
|
||||
{
|
||||
_206E_206C_202C_202E_200F_206E_206B_206D_202B_202E_202C_202A_200D_200B_206B_200F_202E_202C_202B_206B_200E_202D_200B_206D_200B_206B_200C_202E_206B_206D_206F_200E_200E_202D_200E_206E_206A_202C_202A_206C_202E((ILogger)_logger, (Exception)ipcError, 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>(-52047300), Array.Empty<object>());
|
||||
_logger.LogWarning(exception, "Could not turn off combat");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
bool ICombatModule.Stop()
|
||||
{
|
||||
//ILSpy generated this explicit interface implementation from .override directive in Stop
|
||||
return this.Stop();
|
||||
}
|
||||
|
||||
public void Update(IGameObject gameObject)
|
||||
{
|
||||
}
|
||||
|
||||
void ICombatModule.Update(IGameObject gameObject)
|
||||
{
|
||||
//ILSpy generated this explicit interface implementation from .override directive in Update
|
||||
this.Update(gameObject);
|
||||
}
|
||||
|
||||
public bool CanAttack(IBattleNpc target)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
bool ICombatModule.CanAttack(IBattleNpc target)
|
||||
{
|
||||
//ILSpy generated this explicit interface implementation from .override directive in CanAttack
|
||||
return this.CanAttack(target);
|
||||
}
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
Stop();
|
||||
}
|
||||
|
||||
void IDisposable.Dispose()
|
||||
{
|
||||
//ILSpy generated this explicit interface implementation from .override directive in Dispose
|
||||
this.Dispose();
|
||||
}
|
||||
|
||||
static void _200F_202B_206D_200D_202A_206D_206B_200D_206F_206C_202D_202B_200E_202B_202A_200C_202C_206C_206B_206F_206A_202B_206E_206A_200F_202D_206A_200F_206E_200D_202E_202B_200D_202E_202C_202C_200B_200C_200F_206B_202E(ILogger P_0, string P_1, object[] P_2)
|
||||
{
|
||||
P_0.LogDebug(P_1, P_2);
|
||||
}
|
||||
|
||||
static void _200E_202D_202D_206F_206D_202D_206D_206A_200B_200D_206E_206A_206E_200B_200B_200C_206E_206E_206E_200D_202B_206A_202C_202E_206B_200D_206A_202C_200E_206D_202E_202C_202A_200F_200D_202C_202B_206F_202E_202B_202E(ILogger P_0, string P_1, object[] P_2)
|
||||
{
|
||||
P_0.LogWarning(P_1, P_2);
|
||||
}
|
||||
|
||||
static IPlayerCharacter _206F_206B_200B_206F_200D_206E_202C_206B_202D_200F_202D_202A_206D_206C_202E_200E_200D_200F_206B_206E_202A_206D_206F_200D_200F_200E_206A_200E_206B_206C_200D_200F_206F_206E_202E_202E_206F_206E_200E_202A_202E(IObjectTable P_0)
|
||||
{
|
||||
return P_0.LocalPlayer;
|
||||
}
|
||||
|
||||
static RowRef<ClassJob> _200C_202E_206E_200C_206E_206E_202C_200F_200C_200F_200B_200B_200C_206A_202A_206C_206E_206C_206D_206D_202D_200F_202B_206C_200B_206B_206E_200F_200E_206A_202A_202C_200D_206D_202D_206F_206E_202A_206B_200E_202E(ICharacter P_0)
|
||||
{
|
||||
return P_0.ClassJob;
|
||||
}
|
||||
|
||||
static void _206E_206C_202C_202E_200F_206E_206B_206D_202B_202E_202C_202A_200D_200B_206B_200F_202E_202C_202B_206B_200E_202D_200B_206D_200B_206B_200C_202E_206B_206D_206F_200E_200E_202D_200E_206E_206A_202C_202A_206C_202E(ILogger P_0, Exception P_1, string P_2, object[] P_3)
|
||||
{
|
||||
P_0.LogWarning(P_1, P_2, P_3);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,8 +1,6 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Reflection;
|
||||
using System.Runtime.CompilerServices;
|
||||
using Dalamud.Game.ClientState.Conditions;
|
||||
using Dalamud.Game.ClientState.Objects.Types;
|
||||
using Dalamud.Plugin.Services;
|
||||
|
|
@ -17,65 +15,6 @@ namespace Questionable.Controller.CombatModules;
|
|||
|
||||
internal sealed class ItemUseModule : ICombatModule
|
||||
{
|
||||
[CompilerGenerated]
|
||||
private sealed class _003C_003Ec__DisplayClass15_0
|
||||
{
|
||||
public IGameObject nextTarget;
|
||||
|
||||
internal bool _003CUpdate_003Eb__0(ComplexCombatData x)
|
||||
{
|
||||
int num = ((_200F_200D_202D_206C_200E_200D_206C_206D_206F_206F_206E_206F_202D_202D_200F_202E_202B_200B_202C_206D_202B_200B_200D_200D_206D_200D_200E_206B_206D_206D_202D_206C_202C_202E_206D_200E_200D_206A_206B_202D_202E(x) != _202D_206F_202C_206C_206B_200F_202A_200B_206A_200E_200D_200E_202B_202A_200B_202B_202D_202D_202D_200E_206F_206B_206E_202E_202B_206E_200C_206C_202E_200D_202E_206E_206E_200B_202A_206B_206B_200D_206A_206A_202E(nextTarget)) ? 1884617909 : 1884617907);
|
||||
ICharacter character = default(ICharacter);
|
||||
while (true)
|
||||
{
|
||||
int num2 = num;
|
||||
int num3 = 1884617910;
|
||||
int num4 = num2;
|
||||
switch ((num4 | num3) - (num4 & num3))
|
||||
{
|
||||
case 4:
|
||||
return _200D_202C_200D_206D_200D_206D_202B_206C_202E_202A_202C_202B_206D_202D_206F_200E_202D_206E_200B_200F_202C_200D_206C_206C_200B_206E_202B_202B_202A_200E_200E_206B_202D_202B_202E_206B_202E_206B_206B_202B_202E(x) == _202C_202C_200B_206B_200C_206A_206F_206B_202C_206B_206D_200D_206A_202A_200D_206B_202D_206C_200C_200C_200B_206F_200C_206E_200B_200B_206D_206C_200E_206E_202A_206C_202C_206C_206D_200F_206A_202A_206F_202E(character);
|
||||
case 6:
|
||||
character = nextTarget as ICharacter;
|
||||
num = ((character == null) ? 1884617910 : 1884617906);
|
||||
break;
|
||||
case 3:
|
||||
return false;
|
||||
case 0:
|
||||
return false;
|
||||
case 2:
|
||||
num = 1884617907;
|
||||
break;
|
||||
case 1:
|
||||
return true;
|
||||
case 5:
|
||||
num = ((!_200D_202C_200D_206D_200D_206D_202B_206C_202E_202A_202C_202B_206D_202D_206F_200E_202D_206E_200B_200F_202C_200D_206C_206C_200B_206E_202B_202B_202A_200E_200E_206B_202D_202B_202E_206B_202E_206B_206B_202B_202E(x).HasValue) ? 1884617911 : 1884617904);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static uint _200F_200D_202D_206C_200E_200D_206C_206D_206F_206F_206E_206F_202D_202D_200F_202E_202B_200B_202C_206D_202B_200B_200D_200D_206D_200D_200E_206B_206D_206D_202D_206C_202C_202E_206D_200E_200D_206A_206B_202D_202E(ComplexCombatData P_0)
|
||||
{
|
||||
return P_0.DataId;
|
||||
}
|
||||
|
||||
static uint _202D_206F_202C_206C_206B_200F_202A_200B_206A_200E_200D_200E_202B_202A_200B_202B_202D_202D_202D_200E_206F_206B_206E_202E_202B_206E_200C_206C_202E_200D_202E_206E_206E_200B_202A_206B_206B_200D_206A_206A_202E(IGameObject P_0)
|
||||
{
|
||||
return P_0.BaseId;
|
||||
}
|
||||
|
||||
static uint? _200D_202C_200D_206D_200D_206D_202B_206C_202E_202A_202C_202B_206D_202D_206F_200E_202D_206E_200B_200F_202C_200D_206C_206C_200B_206E_202B_202B_202A_200E_200E_206B_202D_202B_202E_206B_202E_206B_206B_202B_202E(ComplexCombatData P_0)
|
||||
{
|
||||
return P_0.NameId;
|
||||
}
|
||||
|
||||
static uint _202C_202C_200B_206B_200C_206A_206F_206B_202C_206B_206D_200D_206A_202A_200D_206B_202D_206C_200C_200C_200B_206F_200C_206E_200B_200B_206D_206C_200E_206E_202A_206C_202C_206C_206D_200F_206A_202A_206F_202E(ICharacter P_0)
|
||||
{
|
||||
return P_0.NameId;
|
||||
}
|
||||
}
|
||||
|
||||
private readonly IServiceProvider _serviceProvider;
|
||||
|
||||
private readonly ICondition _condition;
|
||||
|
|
@ -103,364 +42,135 @@ internal sealed class ItemUseModule : ICombatModule
|
|||
_logger = logger;
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.NoInlining)]
|
||||
public bool CanHandleFight(CombatController.CombatData combatData)
|
||||
{
|
||||
int num = ((combatData.CombatItemUse != null) ? (-969597141) : (-969597144));
|
||||
while (true)
|
||||
if (combatData.CombatItemUse == null)
|
||||
{
|
||||
int num2 = num;
|
||||
int num3 = -969597142;
|
||||
int num4 = num2;
|
||||
int num5 = num4 + num3;
|
||||
int num6 = num4 & num3;
|
||||
switch (num5 - (num6 + num6))
|
||||
{
|
||||
case 0:
|
||||
goto IL_005a;
|
||||
case 1:
|
||||
{
|
||||
_delegate = (from x in _serviceProvider.GetRequiredService<IEnumerable<ICombatModule>>()
|
||||
where !(x is ItemUseModule)
|
||||
select x).FirstOrDefault((ICombatModule x) => x.CanHandleFight(combatData));
|
||||
ILogger<ItemUseModule> logger = _logger;
|
||||
string 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>(-150894400);
|
||||
object[] array = new object[1];
|
||||
ICombatModule? combatModule = _delegate;
|
||||
array[0] = ((combatModule != null) ? _202C_206B_202B_206E_200B_206D_200F_206D_206F_200D_200B_206F_206E_202B_202E_200D_202D_206A_206B_200E_202A_206A_202B_202D_206E_206A_206C_202C_200B_200E_206E_206C_200E_206E_206A_206C_202C_202E_202A_202E_202E((MemberInfo)_202A_200C_206B_202C_206A_206B_202C_202B_206A_200C_206A_206B_206B_202B_202D_202B_202D_206B_206F_202D_206C_202D_206C_202E_202C_206D_200D_202C_200D_202B_200D_200E_200E_206F_202B_200E_206A_202A_206E_202C_202E((object)combatModule)) : null);
|
||||
_202D_200C_200B_202A_200C_202C_206F_206E_206C_202D_200D_206A_200E_202D_206F_206B_200D_202E_202C_206F_200B_202B_206B_200D_206D_200B_206B_202A_202D_200F_206F_200D_206B_206D_206B_206D_206F_200D_202B_206A_202E((ILogger)logger, text, array);
|
||||
return _delegate != null;
|
||||
}
|
||||
case 2:
|
||||
return false;
|
||||
}
|
||||
continue;
|
||||
IL_005a:
|
||||
num = -969597144;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
bool ICombatModule.CanHandleFight(CombatController.CombatData combatData)
|
||||
{
|
||||
//ILSpy generated this explicit interface implementation from .override directive in CanHandleFight
|
||||
return this.CanHandleFight(combatData);
|
||||
_delegate = (from x in _serviceProvider.GetRequiredService<IEnumerable<ICombatModule>>()
|
||||
where !(x is ItemUseModule)
|
||||
select x).FirstOrDefault((ICombatModule x) => x.CanHandleFight(combatData));
|
||||
_logger.LogDebug("ItemUse delegate: {Delegate}", _delegate?.GetType().Name);
|
||||
return _delegate != null;
|
||||
}
|
||||
|
||||
public bool Start(CombatController.CombatData combatData)
|
||||
{
|
||||
int num = ((!_delegate.Start(combatData)) ? 109561954 : 109561955);
|
||||
while (true)
|
||||
if (_delegate.Start(combatData))
|
||||
{
|
||||
int num2 = num;
|
||||
int num3 = 109561954;
|
||||
int num4 = num2;
|
||||
int num5 = num4 + num3;
|
||||
int num6 = num4 & num3;
|
||||
switch (num5 - (num6 + num6))
|
||||
{
|
||||
case 2:
|
||||
goto IL_004e;
|
||||
case 1:
|
||||
_combatData = combatData;
|
||||
_isDoingRotation = true;
|
||||
_continueAt = _202E_206A_202A_200D_206D_206A_206A_202B_202E_206E_202D_206D_206E_200C_202D_202D_206C_200E_206C_202B_200D_206F_200B_202C_200D_200F_200F_206C_206D_206C_202A_200D_202E_206A_206E_202D_200F_200B_202A_206A_202E();
|
||||
_itemUsePending = false;
|
||||
return true;
|
||||
case 0:
|
||||
return false;
|
||||
}
|
||||
continue;
|
||||
IL_004e:
|
||||
num = 109561955;
|
||||
_combatData = combatData;
|
||||
_isDoingRotation = true;
|
||||
_continueAt = Environment.TickCount64;
|
||||
_itemUsePending = false;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
bool ICombatModule.Start(CombatController.CombatData combatData)
|
||||
{
|
||||
//ILSpy generated this explicit interface implementation from .override directive in Start
|
||||
return this.Start(combatData);
|
||||
return false;
|
||||
}
|
||||
|
||||
public bool Stop()
|
||||
{
|
||||
int num = ((!_isDoingRotation) ? 1494033930 : 1494033931);
|
||||
while (true)
|
||||
if (_isDoingRotation)
|
||||
{
|
||||
int num2 = num;
|
||||
int num3 = 1494033930;
|
||||
int num4 = num2;
|
||||
int num5 = num4 + num3;
|
||||
int num6 = num4 & num3;
|
||||
switch (num5 - (num6 + num6))
|
||||
{
|
||||
case 2:
|
||||
num = 1494033931;
|
||||
break;
|
||||
case 0:
|
||||
return true;
|
||||
case 1:
|
||||
_delegate.Stop();
|
||||
_isDoingRotation = false;
|
||||
_combatData = null;
|
||||
_delegate = null;
|
||||
_continueAt = _202E_206A_202A_200D_206D_206A_206A_202B_202E_206E_202D_206D_206E_200C_202D_202D_206C_200E_206C_202B_200D_206F_200B_202C_200D_200F_200F_206C_206D_206C_202A_200D_202E_206A_206E_202D_200F_200B_202A_206A_202E();
|
||||
num = 1494033930;
|
||||
break;
|
||||
}
|
||||
_delegate.Stop();
|
||||
_isDoingRotation = false;
|
||||
_combatData = null;
|
||||
_delegate = null;
|
||||
_continueAt = Environment.TickCount64;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
bool ICombatModule.Stop()
|
||||
{
|
||||
//ILSpy generated this explicit interface implementation from .override directive in Stop
|
||||
return this.Stop();
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.NoInlining)]
|
||||
public unsafe void Update(IGameObject nextTarget)
|
||||
{
|
||||
int num = ((_delegate != null) ? (-1423296184) : (-1423296167));
|
||||
long num7 = default(long);
|
||||
int inventoryItemCount = default(int);
|
||||
while (true)
|
||||
if (_delegate == null || _continueAt > Environment.TickCount64)
|
||||
{
|
||||
int num2 = num;
|
||||
int num3 = -1423296181;
|
||||
int num4 = num2;
|
||||
int num5 = num4 + num3;
|
||||
int num6 = num4 & num3;
|
||||
switch (num5 - (num6 + num6))
|
||||
return;
|
||||
}
|
||||
if (_combatData?.CombatItemUse == null)
|
||||
{
|
||||
_delegate.Update(nextTarget);
|
||||
}
|
||||
else if (_combatData.KillEnemyDataIds.Contains(nextTarget.BaseId) || _combatData.ComplexCombatDatas.Any((ComplexCombatData x) => x.DataId == nextTarget.BaseId && (!x.NameId.HasValue || (nextTarget is ICharacter character && x.NameId == character.NameId))))
|
||||
{
|
||||
if (_isDoingRotation)
|
||||
{
|
||||
int inventoryItemCount = InventoryManager.Instance()->GetInventoryItemCount(_combatData.CombatItemUse.ItemId, isHq: false, checkEquipped: true, checkArmory: true, 0);
|
||||
if (_itemUsePending)
|
||||
{
|
||||
if (Environment.TickCount64 < _itemUsePendingUntil)
|
||||
{
|
||||
_logger.LogDebug("Item use pending; ignoring temporary inventory count={Count}", inventoryItemCount);
|
||||
}
|
||||
else
|
||||
{
|
||||
_itemUsePending = false;
|
||||
}
|
||||
}
|
||||
if (!_itemUsePending && inventoryItemCount == 0)
|
||||
{
|
||||
_delegate.Update(nextTarget);
|
||||
}
|
||||
else if (ShouldUseItem(nextTarget))
|
||||
{
|
||||
_logger.LogDebug("Attempting to use item {ItemId}", _combatData.CombatItemUse.ItemId);
|
||||
_itemUsePending = true;
|
||||
_itemUsePendingUntil = Environment.TickCount64 + 3000;
|
||||
AgentInventoryContext.Instance()->UseItem(_combatData.CombatItemUse.ItemId, InventoryType.Invalid, 0u, 0);
|
||||
_continueAt = Environment.TickCount64 + 2000;
|
||||
}
|
||||
else
|
||||
{
|
||||
_delegate.Update(nextTarget);
|
||||
}
|
||||
}
|
||||
else if (_condition[ConditionFlag.Casting])
|
||||
{
|
||||
long num = Environment.TickCount64 + 500;
|
||||
if (num > _continueAt)
|
||||
{
|
||||
_continueAt = num;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
case 17:
|
||||
_delegate.Update(nextTarget);
|
||||
return;
|
||||
case 6:
|
||||
num = ((!ShouldUseItem(nextTarget)) ? (-1423296182) : (-1423296189));
|
||||
break;
|
||||
case 11:
|
||||
num = ((_202E_206A_202A_200D_206D_206A_206A_202B_202E_206E_202D_206D_206E_200C_202D_202D_206C_200E_206C_202B_200D_206F_200B_202C_200D_200F_200F_206C_206D_206C_202A_200D_202E_206A_206E_202D_200F_200B_202A_206A_202E() >= _itemUsePendingUntil) ? (-1423296180) : (-1423296161));
|
||||
break;
|
||||
case 2:
|
||||
num = ((!_isDoingRotation) ? (-1423296174) : (-1423296162));
|
||||
break;
|
||||
case 23:
|
||||
num = ((!_isDoingRotation) ? (-1423296168) : (-1423296177));
|
||||
break;
|
||||
case 5:
|
||||
_continueAt = num7;
|
||||
return;
|
||||
case 22:
|
||||
num = ((_combatData?.CombatItemUse != null) ? (-1423296190) : (-1423296166));
|
||||
break;
|
||||
case 10:
|
||||
_isDoingRotation = true;
|
||||
_delegate.Start(_combatData);
|
||||
return;
|
||||
case 16:
|
||||
_delegate.Update(nextTarget);
|
||||
return;
|
||||
case 19:
|
||||
num = ((!_200D_200F_202C_206F_202E_202C_206A_202D_206E_206A_206A_206E_200B_202D_206E_202B_202C_206E_202B_206D_206C_200E_202E_200F_206C_202C_200B_202E_206F_200E_206E_200C_202B_202A_200E_200C_206B_200C_206F_206F_202E(_condition, ConditionFlag.Casting)) ? (-1423296191) : (-1423296186));
|
||||
break;
|
||||
case 24:
|
||||
num = -1423296167;
|
||||
break;
|
||||
case 3:
|
||||
num = ((_continueAt <= _202E_206A_202A_200D_206D_206A_206A_202B_202E_206E_202D_206D_206E_200C_202D_202D_206C_200E_206C_202B_200D_206F_200B_202C_200D_200F_200F_206C_206D_206C_202A_200D_202E_206A_206E_202D_200F_200B_202A_206A_202E()) ? (-1423296163) : (-1423296188));
|
||||
break;
|
||||
case 25:
|
||||
return;
|
||||
case 14:
|
||||
num = ((inventoryItemCount != 0) ? (-1423296179) : (-1423296165));
|
||||
break;
|
||||
case 1:
|
||||
_delegate.Update(nextTarget);
|
||||
return;
|
||||
case 21:
|
||||
_delegate.Update(nextTarget);
|
||||
num = -1423296174;
|
||||
break;
|
||||
case 13:
|
||||
num7 = _202E_206A_202A_200D_206D_206A_206A_202B_202E_206E_202D_206D_206E_200C_202D_202D_206C_200E_206C_202B_200D_206F_200B_202C_200D_200F_200F_206C_206D_206C_202A_200D_202E_206A_206E_202D_200F_200B_202A_206A_202E() + 500;
|
||||
num = ((num7 <= _continueAt) ? (-1423296174) : (-1423296178));
|
||||
break;
|
||||
case 12:
|
||||
num = (_itemUsePending ? (-1423296179) : (-1423296187));
|
||||
break;
|
||||
case 0:
|
||||
num = ((!_combatData.ComplexCombatDatas.Any(delegate(ComplexCombatData x)
|
||||
{
|
||||
int num8 = ((_003C_003Ec__DisplayClass15_0._200F_200D_202D_206C_200E_200D_206C_206D_206F_206F_206E_206F_202D_202D_200F_202E_202B_200B_202C_206D_202B_200B_200D_200D_206D_200D_200E_206B_206D_206D_202D_206C_202C_202E_206D_200E_200D_206A_206B_202D_202E(x) != _003C_003Ec__DisplayClass15_0._202D_206F_202C_206C_206B_200F_202A_200B_206A_200E_200D_200E_202B_202A_200B_202B_202D_202D_202D_200E_206F_206B_206E_202E_202B_206E_200C_206C_202E_200D_202E_206E_206E_200B_202A_206B_206B_200D_206A_206A_202E(nextTarget)) ? 1884617909 : 1884617907);
|
||||
ICharacter character = default(ICharacter);
|
||||
while (true)
|
||||
{
|
||||
int num9 = num8;
|
||||
int num10 = 1884617910;
|
||||
int num11 = num9;
|
||||
switch ((num11 | num10) - (num11 & num10))
|
||||
{
|
||||
case 4:
|
||||
return _003C_003Ec__DisplayClass15_0._200D_202C_200D_206D_200D_206D_202B_206C_202E_202A_202C_202B_206D_202D_206F_200E_202D_206E_200B_200F_202C_200D_206C_206C_200B_206E_202B_202B_202A_200E_200E_206B_202D_202B_202E_206B_202E_206B_206B_202B_202E(x) == _003C_003Ec__DisplayClass15_0._202C_202C_200B_206B_200C_206A_206F_206B_202C_206B_206D_200D_206A_202A_200D_206B_202D_206C_200C_200C_200B_206F_200C_206E_200B_200B_206D_206C_200E_206E_202A_206C_202C_206C_206D_200F_206A_202A_206F_202E(character);
|
||||
case 6:
|
||||
character = nextTarget as ICharacter;
|
||||
num8 = ((character == null) ? 1884617910 : 1884617906);
|
||||
break;
|
||||
case 3:
|
||||
return false;
|
||||
case 0:
|
||||
return false;
|
||||
case 2:
|
||||
num8 = 1884617907;
|
||||
break;
|
||||
case 1:
|
||||
return true;
|
||||
case 5:
|
||||
num8 = ((!_003C_003Ec__DisplayClass15_0._200D_202C_200D_206D_200D_206D_202B_206C_202E_202A_202C_202B_206D_202D_206F_200E_202D_206E_200B_200F_202C_200D_206C_206C_200B_206E_202B_202B_202A_200E_200E_206B_202D_202B_202E_206B_202E_206B_206B_202B_202E(x).HasValue) ? 1884617911 : 1884617904);
|
||||
break;
|
||||
}
|
||||
}
|
||||
})) ? (-1423296183) : (-1423296164));
|
||||
break;
|
||||
case 7:
|
||||
_itemUsePending = false;
|
||||
num = -1423296185;
|
||||
break;
|
||||
case 4:
|
||||
inventoryItemCount = InventoryManager.Instance()->GetInventoryItemCount(_202A_206E_200D_202B_200D_202D_206C_206C_202B_200C_206D_206B_206A_206A_200E_202E_200C_206E_200C_202B_200F_200F_202B_200D_202A_202A_200F_206D_202A_200B_200C_200E_206C_202A_206E_206F_206B_206F_206A_206A_202E(_combatData.CombatItemUse), isHq: false, checkEquipped: true, checkArmory: true, 0);
|
||||
num = ((!_itemUsePending) ? (-1423296185) : (-1423296192));
|
||||
break;
|
||||
case 15:
|
||||
return;
|
||||
case 18:
|
||||
return;
|
||||
case 20:
|
||||
_202D_200C_200B_202A_200C_202C_206F_206E_206C_202D_200D_206A_200E_202D_206F_206B_200D_202E_202C_206F_200B_202B_206B_200D_206D_200B_206B_202A_202D_200F_206F_200D_206B_206D_206B_206D_206F_200D_202B_206A_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>(-316452763), new object[1] { inventoryItemCount });
|
||||
num = -1423296185;
|
||||
break;
|
||||
case 9:
|
||||
num = (_combatData.KillEnemyDataIds.Contains(_206D_202D_206D_202B_206E_202C_202B_202D_200E_200F_202E_202E_206E_202B_202E_202A_202B_202A_200F_206A_206F_202E_200C_200C_202A_206E_200F_206F_200B_200B_206B_206E_206D_206D_206D_206D_206A_202A_206A_200E_202E(nextTarget)) ? (-1423296164) : (-1423296181));
|
||||
break;
|
||||
case 8:
|
||||
_202D_200C_200B_202A_200C_202C_206F_206E_206C_202D_200D_206A_200E_202D_206F_206B_200D_202E_202C_206F_200B_202B_206B_200D_206D_200B_206B_202A_202D_200F_206F_200D_206B_206D_206B_206D_206F_200D_202B_206A_202E((ILogger)_logger, 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>(-350550837), new object[1] { _202A_206E_200D_202B_200D_202D_206C_206C_202B_200C_206D_206B_206A_206A_200E_202E_200C_206E_200C_202B_200F_200F_202B_200D_202A_202A_200F_206D_202A_200B_200C_200E_206C_202A_206E_206F_206B_206F_206A_206A_202E(_combatData.CombatItemUse) });
|
||||
_itemUsePending = true;
|
||||
_itemUsePendingUntil = _202E_206A_202A_200D_206D_206A_206A_202B_202E_206E_202D_206D_206E_200C_202D_202D_206C_200E_206C_202B_200D_206F_200B_202C_200D_200F_200F_206C_206D_206C_202A_200D_202E_206A_206E_202D_200F_200B_202A_206A_202E() + 3000;
|
||||
AgentInventoryContext.Instance()->UseItem(_202A_206E_200D_202B_200D_202D_206C_206C_202B_200C_206D_206B_206A_206A_200E_202E_200C_206E_200C_202B_200F_200F_202B_200D_202A_202A_200F_206D_202A_200B_200C_200E_206C_202A_206E_206F_206B_206F_206A_206A_202E(_combatData.CombatItemUse), InventoryType.Invalid, 0u, 0);
|
||||
_continueAt = _202E_206A_202A_200D_206D_206A_206A_202B_202E_206E_202D_206D_206E_200C_202D_202D_206C_200E_206C_202B_200D_206F_200B_202C_200D_200F_200F_206C_206D_206C_202A_200D_202E_206A_206E_202D_200F_200B_202A_206A_202E() + 2000;
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void ICombatModule.Update(IGameObject nextTarget)
|
||||
{
|
||||
//ILSpy generated this explicit interface implementation from .override directive in Update
|
||||
this.Update(nextTarget);
|
||||
else if (_isDoingRotation)
|
||||
{
|
||||
_delegate.Update(nextTarget);
|
||||
}
|
||||
}
|
||||
|
||||
private unsafe bool ShouldUseItem(IGameObject gameObject)
|
||||
{
|
||||
int num = ((_combatData?.CombatItemUse != null) ? (-1964360590) : (-1964360581));
|
||||
BattleChara* ptr = default(BattleChara*);
|
||||
while (true)
|
||||
if (_combatData?.CombatItemUse == null)
|
||||
{
|
||||
int num2 = num;
|
||||
int num3 = -1964360589;
|
||||
int num4 = num2;
|
||||
switch ((num4 | num3) - (num4 & num3))
|
||||
return false;
|
||||
}
|
||||
if (gameObject is IBattleChara)
|
||||
{
|
||||
BattleChara* address = (BattleChara*)gameObject.Address;
|
||||
if (_combatData.CombatItemUse.Condition == ECombatItemUseCondition.Incapacitated)
|
||||
{
|
||||
case 2:
|
||||
{
|
||||
byte actorControlFlags = ptr->ActorControlFlags;
|
||||
num3 = 64;
|
||||
num4 = actorControlFlags;
|
||||
return (num4 | num3) - (num4 ^ num3) != 0;
|
||||
return (address->ActorControlFlags & 0x40) != 0;
|
||||
}
|
||||
case 0:
|
||||
return 100f * (float)ptr->Health / (float)ptr->MaxHealth < (float)_206F_202B_200E_200D_200E_200D_206B_200C_200E_206C_200E_200E_202C_202E_206E_200D_206B_206C_200D_206A_202E_200C_206B_200D_200E_200C_206D_200B_200B_206D_202D_200B_202E_200F_200E_206D_200D_206D_200E_202E(_combatData.CombatItemUse);
|
||||
case 9:
|
||||
num = -1964360581;
|
||||
break;
|
||||
case 7:
|
||||
return false;
|
||||
case 6:
|
||||
num = ((_206E_206C_206F_206C_206F_200F_200E_202A_200E_200B_200C_202C_206A_200E_200C_206A_202D_206F_200E_206E_202A_200D_200E_200E_206B_202C_202C_202E_202B_200C_202D_206F_200B_206F_200F_206F_206A_200F_202B_206F_202E(_combatData.CombatItemUse) != ECombatItemUseCondition.MissingStatus) ? (-1964360588) : (-1964360585));
|
||||
break;
|
||||
case 4:
|
||||
return !ptr->StatusManager.HasStatus((uint)_206F_202B_200E_200D_200E_200D_206B_200C_200E_206C_200E_200E_202C_202E_206E_200D_206B_206C_200D_206A_202E_200C_206B_200D_200E_200C_206D_200B_200B_206D_202D_200B_202E_200F_200E_206D_200D_206D_200E_202E(_combatData.CombatItemUse));
|
||||
case 8:
|
||||
return false;
|
||||
case 5:
|
||||
ptr = (BattleChara*)_200D_200D_202A_206D_202B_206C_202E_200B_206F_202D_200C_206F_200E_200B_206C_200C_206F_200B_206D_206D_202E_202D_206F_206B_202A_206A_202B_206D_206D_200C_200F_202D_202D_206D_202D_206C_200C_202E_202D_202E_202E(gameObject);
|
||||
num = ((_206E_206C_206F_206C_206F_200F_200E_202A_200E_200B_200C_202C_206A_200E_200C_206A_202D_206F_200E_206E_202A_200D_200E_200E_206B_202C_202C_202E_202B_200C_202D_206F_200B_206F_200F_206F_206A_200F_202B_206F_202E(_combatData.CombatItemUse) != ECombatItemUseCondition.Incapacitated) ? (-1964360592) : (-1964360591));
|
||||
break;
|
||||
case 1:
|
||||
num = ((!(gameObject is IBattleChara)) ? (-1964360588) : (-1964360586));
|
||||
break;
|
||||
case 3:
|
||||
num = ((_206E_206C_206F_206C_206F_200F_200E_202A_200E_200B_200C_202C_206A_200E_200C_206A_202D_206F_200E_206E_202A_200D_200E_200E_206B_202C_202C_202E_202B_200C_202D_206F_200B_206F_200F_206F_206A_200F_202B_206F_202E(_combatData.CombatItemUse) != ECombatItemUseCondition.HealthPercent) ? (-1964360587) : (-1964360589));
|
||||
break;
|
||||
if (_combatData.CombatItemUse.Condition == ECombatItemUseCondition.HealthPercent)
|
||||
{
|
||||
return 100f * (float)address->Health / (float)address->MaxHealth < (float)_combatData.CombatItemUse.Value;
|
||||
}
|
||||
if (_combatData.CombatItemUse.Condition == ECombatItemUseCondition.MissingStatus)
|
||||
{
|
||||
return !address->StatusManager.HasStatus((uint)_combatData.CombatItemUse.Value);
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public bool CanAttack(IBattleNpc target)
|
||||
{
|
||||
return _delegate.CanAttack(target);
|
||||
}
|
||||
|
||||
bool ICombatModule.CanAttack(IBattleNpc target)
|
||||
{
|
||||
//ILSpy generated this explicit interface implementation from .override directive in CanAttack
|
||||
return this.CanAttack(target);
|
||||
}
|
||||
|
||||
static Type _202A_200C_206B_202C_206A_206B_202C_202B_206A_200C_206A_206B_206B_202B_202D_202B_202D_206B_206F_202D_206C_202D_206C_202E_202C_206D_200D_202C_200D_202B_200D_200E_200E_206F_202B_200E_206A_202A_206E_202C_202E(object P_0)
|
||||
{
|
||||
return P_0.GetType();
|
||||
}
|
||||
|
||||
static string _202C_206B_202B_206E_200B_206D_200F_206D_206F_200D_200B_206F_206E_202B_202E_200D_202D_206A_206B_200E_202A_206A_202B_202D_206E_206A_206C_202C_200B_200E_206E_206C_200E_206E_206A_206C_202C_202E_202A_202E_202E(MemberInfo P_0)
|
||||
{
|
||||
return P_0.Name;
|
||||
}
|
||||
|
||||
static void _202D_200C_200B_202A_200C_202C_206F_206E_206C_202D_200D_206A_200E_202D_206F_206B_200D_202E_202C_206F_200B_202B_206B_200D_206D_200B_206B_202A_202D_200F_206F_200D_206B_206D_206B_206D_206F_200D_202B_206A_202E(ILogger P_0, string P_1, object[] P_2)
|
||||
{
|
||||
P_0.LogDebug(P_1, P_2);
|
||||
}
|
||||
|
||||
static long _202E_206A_202A_200D_206D_206A_206A_202B_202E_206E_202D_206D_206E_200C_202D_202D_206C_200E_206C_202B_200D_206F_200B_202C_200D_200F_200F_206C_206D_206C_202A_200D_202E_206A_206E_202D_200F_200B_202A_206A_202E()
|
||||
{
|
||||
return Environment.TickCount64;
|
||||
}
|
||||
|
||||
static uint _206D_202D_206D_202B_206E_202C_202B_202D_200E_200F_202E_202E_206E_202B_202E_202A_202B_202A_200F_206A_206F_202E_200C_200C_202A_206E_200F_206F_200B_200B_206B_206E_206D_206D_206D_206D_206A_202A_206A_200E_202E(IGameObject P_0)
|
||||
{
|
||||
return P_0.BaseId;
|
||||
}
|
||||
|
||||
static uint _202A_206E_200D_202B_200D_202D_206C_206C_202B_200C_206D_206B_206A_206A_200E_202E_200C_206E_200C_202B_200F_200F_202B_200D_202A_202A_200F_206D_202A_200B_200C_200E_206C_202A_206E_206F_206B_206F_206A_206A_202E(CombatItemUse P_0)
|
||||
{
|
||||
return P_0.ItemId;
|
||||
}
|
||||
|
||||
static bool _200D_200F_202C_206F_202E_202C_206A_202D_206E_206A_206A_206E_200B_202D_206E_202B_202C_206E_202B_206D_206C_200E_202E_200F_206C_202C_200B_202E_206F_200E_206E_200C_202B_202A_200E_200C_206B_200C_206F_206F_202E(ICondition P_0, ConditionFlag P_1)
|
||||
{
|
||||
return P_0[P_1];
|
||||
}
|
||||
|
||||
static nint _200D_200D_202A_206D_202B_206C_202E_200B_206F_202D_200C_206F_200E_200B_206C_200C_206F_200B_206D_206D_202E_202D_206F_206B_202A_206A_202B_206D_206D_200C_200F_202D_202D_206D_202D_206C_200C_202E_202D_202E_202E(IGameObject P_0)
|
||||
{
|
||||
return P_0.Address;
|
||||
}
|
||||
|
||||
static ECombatItemUseCondition _206E_206C_206F_206C_206F_200F_200E_202A_200E_200B_200C_202C_206A_200E_200C_206A_202D_206F_200E_206E_202A_200D_200E_200E_206B_202C_202C_202E_202B_200C_202D_206F_200B_206F_200F_206F_206A_200F_202B_206F_202E(CombatItemUse P_0)
|
||||
{
|
||||
return P_0.Condition;
|
||||
}
|
||||
|
||||
static int _206F_202B_200E_200D_200E_200D_206B_200C_200E_206C_200E_200E_202C_202E_206E_200D_206B_206C_200D_206A_202E_200C_206B_200D_200E_200C_206D_200B_200B_206D_202D_200B_202E_200F_200E_206D_200D_206D_200E_202E(CombatItemUse P_0)
|
||||
{
|
||||
return P_0.Value;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -23,38 +23,7 @@ internal sealed class Mount128Module : ICombatModule
|
|||
|
||||
public bool CanHandleFight(CombatController.CombatData combatData)
|
||||
{
|
||||
ushort? mountId = _gameFunctions.GetMountId();
|
||||
int num = (mountId.HasValue ? 1315978543 : 1315978542);
|
||||
int? obj;
|
||||
while (true)
|
||||
{
|
||||
int num2 = num;
|
||||
int num3 = 1315978543;
|
||||
int num4 = num2;
|
||||
switch ((num4 | num3) - (num4 & num3))
|
||||
{
|
||||
default:
|
||||
continue;
|
||||
case 2:
|
||||
goto IL_005c;
|
||||
case 0:
|
||||
obj = mountId.GetValueOrDefault();
|
||||
break;
|
||||
case 1:
|
||||
obj = null;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
IL_005c:
|
||||
num = 1315978542;
|
||||
}
|
||||
return obj == 128;
|
||||
}
|
||||
|
||||
bool ICombatModule.CanHandleFight(CombatController.CombatData combatData)
|
||||
{
|
||||
//ILSpy generated this explicit interface implementation from .override directive in CanHandleFight
|
||||
return this.CanHandleFight(combatData);
|
||||
return _gameFunctions.GetMountId() == 128;
|
||||
}
|
||||
|
||||
public bool Start(CombatController.CombatData combatData)
|
||||
|
|
@ -62,114 +31,30 @@ internal sealed class Mount128Module : ICombatModule
|
|||
return true;
|
||||
}
|
||||
|
||||
bool ICombatModule.Start(CombatController.CombatData combatData)
|
||||
{
|
||||
//ILSpy generated this explicit interface implementation from .override directive in Start
|
||||
return this.Start(combatData);
|
||||
}
|
||||
|
||||
public bool Stop()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
bool ICombatModule.Stop()
|
||||
{
|
||||
//ILSpy generated this explicit interface implementation from .override directive in Stop
|
||||
return this.Stop();
|
||||
}
|
||||
|
||||
public void Update(IGameObject gameObject)
|
||||
{
|
||||
EAction[] actions = _actions;
|
||||
int num = 0;
|
||||
int num2 = -321000316;
|
||||
while (true)
|
||||
foreach (EAction action in actions)
|
||||
{
|
||||
int num3 = num2;
|
||||
int num4 = -321000313;
|
||||
int num5 = num3;
|
||||
switch ((num5 | num4) - (num5 & num4))
|
||||
if (_gameFunctions.UseAction(gameObject, action, checkCanUse: false))
|
||||
{
|
||||
case 5:
|
||||
num2 = -321000316;
|
||||
break;
|
||||
case 4:
|
||||
return;
|
||||
case 0:
|
||||
{
|
||||
int num6 = num;
|
||||
num4 = 1;
|
||||
num5 = num6;
|
||||
int num7 = num5 ^ num4;
|
||||
int num8 = num5 & num4;
|
||||
num = num7 + (num8 + num8);
|
||||
num2 = -321000316;
|
||||
break;
|
||||
}
|
||||
case 2:
|
||||
return;
|
||||
case 1:
|
||||
{
|
||||
EAction action = actions[num];
|
||||
num2 = ((!_gameFunctions.UseAction(gameObject, action, checkCanUse: false)) ? (-321000313) : (-321000315));
|
||||
break;
|
||||
}
|
||||
case 3:
|
||||
num2 = ((num < actions.Length) ? (-321000314) : (-321000317));
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void ICombatModule.Update(IGameObject gameObject)
|
||||
{
|
||||
//ILSpy generated this explicit interface implementation from .override directive in Update
|
||||
this.Update(gameObject);
|
||||
}
|
||||
|
||||
public bool CanAttack(IBattleNpc target)
|
||||
{
|
||||
uint num = _200D_206E_206B_200C_200E_200F_200E_206A_200C_200E_202B_202A_206C_202B_206A_202B_200D_206F_200F_202D_200C_200E_206E_200D_200E_202A_200B_200B_206F_206F_202B_206D_202A_200E_202D_206F_206D_200F_202B_202E((IGameObject)target);
|
||||
int num2 = 7504;
|
||||
int num3 = (int)num;
|
||||
int num4 = (((uint)(~(~num3 + num2)) <= 1u) ? 2050510022 : 2050510023);
|
||||
bool result = default(bool);
|
||||
while (true)
|
||||
uint baseId = target.BaseId;
|
||||
if (baseId - 7504 <= 1 || baseId == 14107)
|
||||
{
|
||||
int num5 = num4;
|
||||
num2 = 2050510022;
|
||||
num3 = num5;
|
||||
switch ((num3 | num2) - (num3 & num2))
|
||||
{
|
||||
case 2:
|
||||
return result;
|
||||
case 1:
|
||||
num4 = ((num != 14107) ? 2050510018 : 2050510022);
|
||||
break;
|
||||
case 3:
|
||||
num4 = 2050510023;
|
||||
break;
|
||||
case 0:
|
||||
result = true;
|
||||
num4 = 2050510020;
|
||||
break;
|
||||
case 4:
|
||||
result = false;
|
||||
num4 = 2050510020;
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
bool ICombatModule.CanAttack(IBattleNpc target)
|
||||
{
|
||||
//ILSpy generated this explicit interface implementation from .override directive in CanAttack
|
||||
return this.CanAttack(target);
|
||||
}
|
||||
|
||||
static uint _200D_206E_206B_200C_200E_200F_200E_206A_200C_200E_202B_202A_206C_202B_206A_202B_200D_206F_200F_202D_200C_200E_206E_200D_200E_202A_200B_200B_206F_206F_202B_206D_202A_200E_202D_206F_206D_200F_202B_202E(IGameObject P_0)
|
||||
{
|
||||
return P_0.BaseId;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -19,38 +19,7 @@ internal sealed class Mount147Module : ICombatModule
|
|||
|
||||
public bool CanHandleFight(CombatController.CombatData combatData)
|
||||
{
|
||||
ushort? mountId = _gameFunctions.GetMountId();
|
||||
int num = (mountId.HasValue ? (-1629535910) : (-1629535911));
|
||||
int? obj;
|
||||
while (true)
|
||||
{
|
||||
int num2 = num;
|
||||
int num3 = -1629535909;
|
||||
int num4 = num2;
|
||||
switch ((num4 | num3) - (num4 & num3))
|
||||
{
|
||||
default:
|
||||
continue;
|
||||
case 1:
|
||||
obj = mountId.GetValueOrDefault();
|
||||
break;
|
||||
case 2:
|
||||
obj = null;
|
||||
break;
|
||||
case 0:
|
||||
goto IL_009c;
|
||||
}
|
||||
break;
|
||||
IL_009c:
|
||||
num = -1629535911;
|
||||
}
|
||||
return obj == 147;
|
||||
}
|
||||
|
||||
bool ICombatModule.CanHandleFight(CombatController.CombatData combatData)
|
||||
{
|
||||
//ILSpy generated this explicit interface implementation from .override directive in CanHandleFight
|
||||
return this.CanHandleFight(combatData);
|
||||
return _gameFunctions.GetMountId() == 147;
|
||||
}
|
||||
|
||||
public bool Start(CombatController.CombatData combatData)
|
||||
|
|
@ -58,85 +27,25 @@ internal sealed class Mount147Module : ICombatModule
|
|||
return true;
|
||||
}
|
||||
|
||||
bool ICombatModule.Start(CombatController.CombatData combatData)
|
||||
{
|
||||
//ILSpy generated this explicit interface implementation from .override directive in Start
|
||||
return this.Start(combatData);
|
||||
}
|
||||
|
||||
public bool Stop()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
bool ICombatModule.Stop()
|
||||
{
|
||||
//ILSpy generated this explicit interface implementation from .override directive in Stop
|
||||
return this.Stop();
|
||||
}
|
||||
|
||||
public void Update(IGameObject gameObject)
|
||||
{
|
||||
EAction[] actions = _actions;
|
||||
int num = 0;
|
||||
int num2 = -1800928323;
|
||||
while (true)
|
||||
foreach (EAction action in actions)
|
||||
{
|
||||
int num3 = num2;
|
||||
int num4 = -1800928324;
|
||||
int num5 = num3;
|
||||
switch ((num5 | num4) - (num5 & num4))
|
||||
if (_gameFunctions.UseAction(gameObject, action, checkCanUse: false))
|
||||
{
|
||||
case 1:
|
||||
num2 = ((num < actions.Length) ? (-1800928327) : (-1800928321));
|
||||
break;
|
||||
case 3:
|
||||
return;
|
||||
case 5:
|
||||
{
|
||||
EAction action = actions[num];
|
||||
num2 = ((!_gameFunctions.UseAction(gameObject, action, checkCanUse: false)) ? (-1800928322) : (-1800928328));
|
||||
break;
|
||||
}
|
||||
case 0:
|
||||
num2 = -1800928323;
|
||||
break;
|
||||
case 2:
|
||||
{
|
||||
int num6 = num;
|
||||
num4 = 1;
|
||||
num5 = num6;
|
||||
int num7 = num5 ^ num4;
|
||||
int num8 = num5 & num4;
|
||||
num = num7 + (num8 + num8);
|
||||
num2 = -1800928323;
|
||||
break;
|
||||
}
|
||||
case 4:
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void ICombatModule.Update(IGameObject gameObject)
|
||||
{
|
||||
//ILSpy generated this explicit interface implementation from .override directive in Update
|
||||
this.Update(gameObject);
|
||||
}
|
||||
|
||||
public bool CanAttack(IBattleNpc target)
|
||||
{
|
||||
return _200F_202B_206E_206D_206B_200D_202E_200E_202A_202D_202D_206E_206B_200D_200C_202B_206A_202D_206F_206E_202C_200E_202D_206D_206A_202E_206B_200B_202B_202A_206F_200C_200C_202E_200E_206C_206C_200E_200E_202C_202E((IGameObject)target) == 8593;
|
||||
}
|
||||
|
||||
bool ICombatModule.CanAttack(IBattleNpc target)
|
||||
{
|
||||
//ILSpy generated this explicit interface implementation from .override directive in CanAttack
|
||||
return this.CanAttack(target);
|
||||
}
|
||||
|
||||
static uint _200F_202B_206E_206D_206B_200D_202E_200E_202A_202D_202D_206E_206B_200D_200C_202B_206A_202D_206F_206E_202C_200E_202D_206D_206A_202E_206B_200B_202B_202A_206F_200C_200C_202E_200E_206C_206C_200E_200E_202C_202E(IGameObject P_0)
|
||||
{
|
||||
return P_0.BaseId;
|
||||
return target.BaseId == 8593;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
using System;
|
||||
using System.Runtime.CompilerServices;
|
||||
using Dalamud.Game.ClientState.Objects.Types;
|
||||
using Dalamud.Plugin;
|
||||
using Dalamud.Plugin.Ipc;
|
||||
|
|
@ -24,45 +23,29 @@ internal sealed class RotationSolverRebornModule : ICombatModule, IDisposable
|
|||
|
||||
private readonly ICallGateSubscriber<string, object, object> _setConfig;
|
||||
|
||||
[MethodImpl(MethodImplOptions.NoInlining)]
|
||||
public RotationSolverRebornModule(ILogger<RotationSolverRebornModule> logger, IDalamudPluginInterface pluginInterface, Configuration configuration)
|
||||
{
|
||||
_logger = logger;
|
||||
_configuration = configuration;
|
||||
_test = pluginInterface.GetIpcSubscriber<string, object>(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>(1411732443));
|
||||
_changeOperationMode = pluginInterface.GetIpcSubscriber<byte, object>(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>(1860544423));
|
||||
_setConfig = pluginInterface.GetIpcSubscriber<string, object, object>(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>(1066419232));
|
||||
_test = pluginInterface.GetIpcSubscriber<string, object>("RotationSolverReborn.Test");
|
||||
_changeOperationMode = pluginInterface.GetIpcSubscriber<byte, object>("RotationSolverReborn.ChangeOperatingMode");
|
||||
_setConfig = pluginInterface.GetIpcSubscriber<string, object, object>("RotationSolverReborn.SetConfig");
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.NoInlining)]
|
||||
public bool IsAvailable()
|
||||
{
|
||||
int num = ((_configuration.General.CombatModule == Configuration.ECombatModule.RotationSolverReborn) ? 1043338071 : 1043338068);
|
||||
while (true)
|
||||
if (_configuration.General.CombatModule != Configuration.ECombatModule.RotationSolverReborn)
|
||||
{
|
||||
int num2 = num;
|
||||
int num3 = 1043338070;
|
||||
int num4 = num2;
|
||||
switch ((num4 | num3) - (num4 & num3))
|
||||
{
|
||||
case 0:
|
||||
goto IL_0051;
|
||||
case 2:
|
||||
return false;
|
||||
case 1:
|
||||
try
|
||||
{
|
||||
_test.InvokeAction(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>(801710835));
|
||||
return true;
|
||||
}
|
||||
catch (IpcError)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
continue;
|
||||
IL_0051:
|
||||
num = 1043338068;
|
||||
return false;
|
||||
}
|
||||
try
|
||||
{
|
||||
_test.InvokeAction("Validate RSR is callable from Questionable");
|
||||
return true;
|
||||
}
|
||||
catch (IpcError)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -71,131 +54,63 @@ internal sealed class RotationSolverRebornModule : ICombatModule, IDisposable
|
|||
return IsAvailable();
|
||||
}
|
||||
|
||||
bool ICombatModule.CanHandleFight(CombatController.CombatData combatData)
|
||||
{
|
||||
//ILSpy generated this explicit interface implementation from .override directive in CanHandleFight
|
||||
return this.CanHandleFight(combatData);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.NoInlining)]
|
||||
public bool Start(CombatController.CombatData combatData)
|
||||
{
|
||||
try
|
||||
{
|
||||
_changeOperationMode.InvokeAction(4);
|
||||
SetConfig(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>(1302352989), false);
|
||||
SetConfig(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>(-21636385), true);
|
||||
SetConfig(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>(440160262), 1);
|
||||
SetConfig("AutoOffAfterCombat", false);
|
||||
SetConfig("HealPartyMembers", true);
|
||||
SetConfig("HostileType", 1);
|
||||
return true;
|
||||
}
|
||||
catch (IpcError ipcError)
|
||||
catch (IpcError exception)
|
||||
{
|
||||
_206B_200C_200B_202B_202B_206C_202B_200E_202D_202E_200C_206A_206D_202C_200B_202C_202E_200E_200E_200D_200F_206B_202A_206C_206F_202C_206D_206A_200E_202D_202E_200D_200F_202E_200E_200D_200E_200C_200F_202B_202E((ILogger)_logger, (Exception)ipcError, 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>(-1187675745), Array.Empty<object>());
|
||||
_logger.LogWarning(exception, "Could not start combat");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
bool ICombatModule.Start(CombatController.CombatData combatData)
|
||||
{
|
||||
//ILSpy generated this explicit interface implementation from .override directive in Start
|
||||
return this.Start(combatData);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.NoInlining)]
|
||||
public bool Stop()
|
||||
{
|
||||
int num = (_202B_200D_202B_206D_206F_202A_206C_206C_200D_200C_202B_202C_202C_202C_200E_206B_202D_202C_202A_206B_206B_206C_202B_202D_200F_206E_200D_206E_206B_206F_206A_206F_206A_200E_206B_200E_206B_206D_202A_206B_202E((ICallGateSubscriber)_changeOperationMode) ? (-427994100) : (-427994099));
|
||||
while (true)
|
||||
if (!_changeOperationMode.HasAction)
|
||||
{
|
||||
int num2 = num;
|
||||
int num3 = -427994100;
|
||||
int num4 = num2;
|
||||
switch ((num4 | num3) - (num4 & num3))
|
||||
{
|
||||
case 2:
|
||||
goto IL_004e;
|
||||
case 1:
|
||||
return true;
|
||||
case 0:
|
||||
try
|
||||
{
|
||||
_changeOperationMode.InvokeAction(0);
|
||||
return true;
|
||||
}
|
||||
catch (IpcError ipcError)
|
||||
{
|
||||
_206B_200C_200B_202B_202B_206C_202B_200E_202D_202E_200C_206A_206D_202C_200B_202C_202E_200E_200E_200D_200F_206B_202A_206C_206F_202C_206D_206A_200E_202D_202E_200D_200F_202E_200E_200D_200E_200C_200F_202B_202E((ILogger)_logger, (Exception)ipcError, 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>(-52047300), Array.Empty<object>());
|
||||
return false;
|
||||
}
|
||||
}
|
||||
continue;
|
||||
IL_004e:
|
||||
num = -427994099;
|
||||
return true;
|
||||
}
|
||||
try
|
||||
{
|
||||
_changeOperationMode.InvokeAction(0);
|
||||
return true;
|
||||
}
|
||||
catch (IpcError exception)
|
||||
{
|
||||
_logger.LogWarning(exception, "Could not turn off combat");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
bool ICombatModule.Stop()
|
||||
{
|
||||
//ILSpy generated this explicit interface implementation from .override directive in Stop
|
||||
return this.Stop();
|
||||
}
|
||||
|
||||
public void Update(IGameObject gameObject)
|
||||
{
|
||||
}
|
||||
|
||||
void ICombatModule.Update(IGameObject gameObject)
|
||||
{
|
||||
//ILSpy generated this explicit interface implementation from .override directive in Update
|
||||
this.Update(gameObject);
|
||||
}
|
||||
|
||||
public bool CanAttack(IBattleNpc target)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
bool ICombatModule.CanAttack(IBattleNpc target)
|
||||
{
|
||||
//ILSpy generated this explicit interface implementation from .override directive in CanAttack
|
||||
return this.CanAttack(target);
|
||||
}
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
}
|
||||
|
||||
void IDisposable.Dispose()
|
||||
{
|
||||
//ILSpy generated this explicit interface implementation from .override directive in Dispose
|
||||
this.Dispose();
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.NoInlining)]
|
||||
private void SetConfig(string key, object value)
|
||||
{
|
||||
try
|
||||
{
|
||||
_setConfig.InvokeAction(key, value);
|
||||
}
|
||||
catch (IpcError ipcError)
|
||||
catch (IpcError exception)
|
||||
{
|
||||
_202D_206C_200F_200F_206F_202B_206F_202C_206B_206E_206A_202D_202B_206A_202A_200D_206F_206F_200F_200F_202A_206E_206F_202E_206C_200D_200B_200E_206C_200B_206A_202E_202E_206D_200B_202E_200C_200E_202C_202D_202E((ILogger)_logger, (Exception)ipcError, 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>(-1316823844), new object[1] { key });
|
||||
_logger.LogDebug(exception, "RSR SetConfig {Key} failed", key);
|
||||
}
|
||||
}
|
||||
|
||||
static void _206B_200C_200B_202B_202B_206C_202B_200E_202D_202E_200C_206A_206D_202C_200B_202C_202E_200E_200E_200D_200F_206B_202A_206C_206F_202C_206D_206A_200E_202D_202E_200D_200F_202E_200E_200D_200E_200C_200F_202B_202E(ILogger P_0, Exception P_1, string P_2, object[] P_3)
|
||||
{
|
||||
P_0.LogWarning(P_1, P_2, P_3);
|
||||
}
|
||||
|
||||
static bool _202B_200D_202B_206D_206F_202A_206C_206C_200D_200C_202B_202C_202C_202C_200E_206B_202D_202C_202A_206B_206B_206C_202B_202D_200F_206E_200D_206E_206B_206F_206A_206F_206A_200E_206B_200E_206B_206D_202A_206B_202E(ICallGateSubscriber P_0)
|
||||
{
|
||||
return P_0.HasAction;
|
||||
}
|
||||
|
||||
static void _202D_206C_200F_200F_206F_202B_206F_202C_206B_206E_206A_202D_202B_206A_202A_200D_206F_206F_200F_200F_202A_206E_206F_202E_206C_200D_200B_200E_206C_200B_206A_202E_202E_206D_200B_202E_200C_200E_202C_202D_202E(ILogger P_0, Exception P_1, string P_2, object[] P_3)
|
||||
{
|
||||
P_0.LogDebug(P_1, P_2, P_3);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,14 +1,10 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Runtime.CompilerServices;
|
||||
using Dalamud.Game.ClientState.Objects.SubKinds;
|
||||
using Dalamud.Game.ClientState.Objects.Types;
|
||||
using Dalamud.Plugin;
|
||||
using Dalamud.Plugin.Ipc;
|
||||
using Dalamud.Plugin.Ipc.Exceptions;
|
||||
using Dalamud.Plugin.Services;
|
||||
using Lumina.Excel;
|
||||
using Lumina.Excel.Sheets;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using Questionable.Controller.Steps;
|
||||
|
||||
|
|
@ -105,54 +101,37 @@ internal sealed class WrathComboModule : ICombatModule, IDisposable
|
|||
|
||||
private Guid? _lease;
|
||||
|
||||
[MethodImpl(MethodImplOptions.NoInlining)]
|
||||
public WrathComboModule(ILogger<WrathComboModule> logger, Configuration configuration, IObjectTable objectTable, IDalamudPluginInterface pluginInterface)
|
||||
{
|
||||
_logger = logger;
|
||||
_configuration = configuration;
|
||||
_objectTable = objectTable;
|
||||
_test = pluginInterface.GetIpcSubscriber<object>(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>(-881363820));
|
||||
_registerForLeaseWithCallback = pluginInterface.GetIpcSubscriber<string, string, string, Guid?>(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>(-200781622));
|
||||
_releaseControl = pluginInterface.GetIpcSubscriber<Guid, object>(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>(254606733));
|
||||
_setAutoRotationState = pluginInterface.GetIpcSubscriber<Guid, bool, ESetResult>(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>(-1072043349));
|
||||
_setAutoRotationConfigState = pluginInterface.GetIpcSubscriber<Guid, object, object, ESetResult>(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>(920538037));
|
||||
_setCurrentJobAutoRotationReady = pluginInterface.GetIpcSubscriber<Guid, ESetResult>(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>(-1662176505));
|
||||
_getComboNamesForJob = pluginInterface.GetIpcSubscriber<uint, List<string>>(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>(987268149));
|
||||
_setComboState = pluginInterface.GetIpcSubscriber<Guid, string, bool, bool, ESetResult>(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>(1902147951));
|
||||
_callback = pluginInterface.GetIpcProvider<int, string, object>(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>(-437654203));
|
||||
_test = pluginInterface.GetIpcSubscriber<object>("WrathCombo.Test");
|
||||
_registerForLeaseWithCallback = pluginInterface.GetIpcSubscriber<string, string, string, Guid?>("WrathCombo.RegisterForLeaseWithCallback");
|
||||
_releaseControl = pluginInterface.GetIpcSubscriber<Guid, object>("WrathCombo.ReleaseControl");
|
||||
_setAutoRotationState = pluginInterface.GetIpcSubscriber<Guid, bool, ESetResult>("WrathCombo.SetAutoRotationState");
|
||||
_setAutoRotationConfigState = pluginInterface.GetIpcSubscriber<Guid, object, object, ESetResult>("WrathCombo.SetAutoRotationConfigState");
|
||||
_setCurrentJobAutoRotationReady = pluginInterface.GetIpcSubscriber<Guid, ESetResult>("WrathCombo.SetCurrentJobAutoRotationReady");
|
||||
_getComboNamesForJob = pluginInterface.GetIpcSubscriber<uint, List<string>>("WrathCombo.GetComboNamesForJob");
|
||||
_setComboState = pluginInterface.GetIpcSubscriber<Guid, string, bool, bool, ESetResult>("WrathCombo.SetComboState");
|
||||
_callback = pluginInterface.GetIpcProvider<int, string, object>("Questionable$Wrath.WrathComboCallback");
|
||||
_callback.RegisterAction(Callback);
|
||||
}
|
||||
|
||||
public bool IsAvailable()
|
||||
{
|
||||
int num = ((_configuration.General.CombatModule == Configuration.ECombatModule.WrathCombo) ? (-1348986340) : (-1348986337));
|
||||
while (true)
|
||||
if (_configuration.General.CombatModule != Configuration.ECombatModule.WrathCombo)
|
||||
{
|
||||
int num2 = num;
|
||||
int num3 = -1348986338;
|
||||
int num4 = num2;
|
||||
int num5 = num4 + num3;
|
||||
int num6 = num4 & num3;
|
||||
switch (num5 - (num6 + num6))
|
||||
{
|
||||
case 0:
|
||||
goto IL_0053;
|
||||
case 1:
|
||||
return false;
|
||||
case 2:
|
||||
try
|
||||
{
|
||||
_test.InvokeAction();
|
||||
return true;
|
||||
}
|
||||
catch (IpcError)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
continue;
|
||||
IL_0053:
|
||||
num = -1348986337;
|
||||
return false;
|
||||
}
|
||||
try
|
||||
{
|
||||
_test.InvokeAction();
|
||||
return true;
|
||||
}
|
||||
catch (IpcError)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -161,408 +140,155 @@ internal sealed class WrathComboModule : ICombatModule, IDisposable
|
|||
return IsAvailable();
|
||||
}
|
||||
|
||||
bool ICombatModule.CanHandleFight(CombatController.CombatData combatData)
|
||||
{
|
||||
//ILSpy generated this explicit interface implementation from .override directive in CanHandleFight
|
||||
return this.CanHandleFight(combatData);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.NoInlining)]
|
||||
public bool Start(CombatController.CombatData combatData)
|
||||
{
|
||||
try
|
||||
{
|
||||
_lease = _registerForLeaseWithCallback.InvokeFunc(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>(1231541163), 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>(-1179749275), 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>(-121562455));
|
||||
int num = ((!_lease.HasValue) ? (-1358981583) : (-1358981584));
|
||||
while (true)
|
||||
_lease = _registerForLeaseWithCallback.InvokeFunc("Questionable", "Questionable", "Questionable$Wrath");
|
||||
if (_lease.HasValue)
|
||||
{
|
||||
int num2 = num;
|
||||
int num3 = -1358981583;
|
||||
int num4 = num2;
|
||||
int num5 = num4 + num3;
|
||||
int num6 = num4 & num3;
|
||||
switch (num5 - (num6 + num6))
|
||||
_logger.LogDebug("Wrath combo lease: {Lease}", _lease.Value);
|
||||
ESetResult eSetResult = _setAutoRotationState.InvokeFunc(_lease.Value, arg2: true);
|
||||
_logger.LogDebug("SetAutoRotationState={Result}", eSetResult);
|
||||
if (!eSetResult.IsSuccess())
|
||||
{
|
||||
case 6:
|
||||
num = -1358981584;
|
||||
break;
|
||||
case 5:
|
||||
{
|
||||
ESetResult eSetResult2 = _setCurrentJobAutoRotationReady.InvokeFunc(_lease.Value);
|
||||
_202C_202A_202B_206B_202B_202D_206B_206D_202A_200D_202C_200F_200F_200B_202B_200E_200B_202D_200D_206A_200D_206C_202E_206E_202C_200D_200E_206B_200F_206E_206E_202C_200E_202E_206B_206D_200C_206B_200C_202B_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>(-246523235), new object[1] { eSetResult2 });
|
||||
num = (eSetResult2.IsSuccess() ? (-1358981581) : (-1358981579));
|
||||
break;
|
||||
}
|
||||
case 1:
|
||||
{
|
||||
_202C_202A_202B_206B_202B_202D_206B_206D_202A_200D_202C_200F_200F_200B_202B_200E_200B_202D_200D_206A_200D_206C_202E_206E_202C_200D_200E_206B_200F_206E_206E_202C_200E_202E_206B_206D_200C_206B_200C_202B_202E((ILogger)_logger, 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>(-1086439273), new object[1] { _lease.Value });
|
||||
ESetResult eSetResult = _setAutoRotationState.InvokeFunc(_lease.Value, arg2: true);
|
||||
_202C_202A_202B_206B_202B_202D_206B_206D_202A_200D_202C_200F_200F_200B_202B_200E_200B_202D_200D_206A_200D_206C_202E_206E_202C_200D_200E_206B_200F_206E_206E_202C_200E_202E_206B_206D_200C_206B_200C_202B_202E((ILogger)_logger, 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>(-650979249), new object[1] { eSetResult });
|
||||
num = (eSetResult.IsSuccess() ? (-1358981580) : (-1358981582));
|
||||
break;
|
||||
}
|
||||
case 4:
|
||||
_200C_200D_202C_206F_200B_206E_206F_200D_200E_206D_200E_202E_200C_200C_202D_206A_202D_206E_202D_206F_200F_200D_200D_202E_206B_206F_200C_206C_202E_200F_202E_200C_202D_202E_202E_200E_206B_206E_202B_202D_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>(-831608674), Array.Empty<object>());
|
||||
_logger.LogError("Unable to set autorotation state");
|
||||
Stop();
|
||||
return false;
|
||||
case 2:
|
||||
EnableCombosForCurrentJob();
|
||||
SetConfig(AutoRotationConfigOption.HealerRotationMode, HealerRotationMode.Lowest_Current);
|
||||
SetConfig(AutoRotationConfigOption.DPSRotationMode, DPSRotationMode.Manual);
|
||||
SetConfig(AutoRotationConfigOption.InCombatOnly, 0);
|
||||
SetConfig(AutoRotationConfigOption.IncludeNPCs, 1);
|
||||
SetConfig(AutoRotationConfigOption.OnlyAttackInCombat, 0);
|
||||
SetConfig(AutoRotationConfigOption.AutoCleanse, 1);
|
||||
SetConfig(AutoRotationConfigOption.AutoRez, 1);
|
||||
SetConfig(AutoRotationConfigOption.AutoRezDPSJobs, 1);
|
||||
SetConfig(AutoRotationConfigOption.ManageKardia, 1);
|
||||
SetConfig(AutoRotationConfigOption.DPSAoETargets, 3);
|
||||
SetConfig(AutoRotationConfigOption.AutoRezOutOfParty, 0);
|
||||
SetConfig(AutoRotationConfigOption.DPSAlwaysHardTarget, 1);
|
||||
SetConfig(AutoRotationConfigOption.BypassQuest, 1);
|
||||
return true;
|
||||
case 3:
|
||||
_200C_200D_202C_206F_200B_206E_206F_200D_200E_206D_200E_202E_200C_200C_202D_206A_202D_206E_202D_206F_200F_200D_200D_202E_206B_206F_200C_206C_202E_200F_202E_200C_202D_202E_202E_200E_206B_206E_202B_202D_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>(-2060892089), Array.Empty<object>());
|
||||
}
|
||||
ESetResult eSetResult2 = _setCurrentJobAutoRotationReady.InvokeFunc(_lease.Value);
|
||||
_logger.LogDebug("SetCurrentJobAutoRotationReady={Result}", eSetResult2);
|
||||
if (!eSetResult2.IsSuccess())
|
||||
{
|
||||
_logger.LogError("Unable to set current job for autorotation");
|
||||
Stop();
|
||||
return false;
|
||||
case 0:
|
||||
_200C_200D_202C_206F_200B_206E_206F_200D_200E_206D_200E_202E_200C_200C_202D_206A_202D_206E_202D_206F_200F_200D_200D_202E_206B_206F_200C_206C_202E_200F_202E_200C_202D_202E_202E_200E_206B_206E_202B_202D_202E((ILogger)_logger, 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>(-1103601186), Array.Empty<object>());
|
||||
return false;
|
||||
}
|
||||
EnableCombosForCurrentJob();
|
||||
SetConfig(AutoRotationConfigOption.HealerRotationMode, HealerRotationMode.Lowest_Current);
|
||||
SetConfig(AutoRotationConfigOption.DPSRotationMode, DPSRotationMode.Manual);
|
||||
SetConfig(AutoRotationConfigOption.InCombatOnly, 0);
|
||||
SetConfig(AutoRotationConfigOption.IncludeNPCs, 1);
|
||||
SetConfig(AutoRotationConfigOption.OnlyAttackInCombat, 0);
|
||||
SetConfig(AutoRotationConfigOption.AutoCleanse, 1);
|
||||
SetConfig(AutoRotationConfigOption.AutoRez, 1);
|
||||
SetConfig(AutoRotationConfigOption.AutoRezDPSJobs, 1);
|
||||
SetConfig(AutoRotationConfigOption.ManageKardia, 1);
|
||||
SetConfig(AutoRotationConfigOption.DPSAoETargets, 3);
|
||||
SetConfig(AutoRotationConfigOption.AutoRezOutOfParty, 0);
|
||||
SetConfig(AutoRotationConfigOption.DPSAlwaysHardTarget, 1);
|
||||
SetConfig(AutoRotationConfigOption.BypassQuest, 1);
|
||||
return true;
|
||||
}
|
||||
_logger.LogError("Wrath combo did not return a lease");
|
||||
return false;
|
||||
}
|
||||
catch (IpcError ipcError)
|
||||
catch (IpcError exception)
|
||||
{
|
||||
_206B_206A_206C_202C_200F_202D_206B_202C_206F_200D_200B_206A_206E_202E_200B_200F_200E_206C_200C_206B_200D_200D_206E_206F_202D_202B_206A_200D_206A_200F_202C_202C_202E_202E_206C_206B_202C_202C_202A_202D_202E((ILogger)_logger, (Exception)ipcError, 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>(-1303013100), Array.Empty<object>());
|
||||
_logger.LogError(exception, "Unable to use wrath combo for combat");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
bool ICombatModule.Start(CombatController.CombatData combatData)
|
||||
{
|
||||
//ILSpy generated this explicit interface implementation from .override directive in Start
|
||||
return this.Start(combatData);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.NoInlining)]
|
||||
public bool Stop()
|
||||
{
|
||||
try
|
||||
{
|
||||
int num = ((!_lease.HasValue) ? (-1077439308) : (-1077439305));
|
||||
while (true)
|
||||
if (_lease.HasValue)
|
||||
{
|
||||
int num2 = num;
|
||||
int num3 = -1077439307;
|
||||
int num4 = num2;
|
||||
int num5 = num4 + num3;
|
||||
int num6 = num4 & num3;
|
||||
switch (num5 - (num6 + num6))
|
||||
{
|
||||
case 0:
|
||||
num = -1077439305;
|
||||
break;
|
||||
case 2:
|
||||
_releaseControl.InvokeAction(_lease.Value);
|
||||
_lease = null;
|
||||
num = -1077439308;
|
||||
break;
|
||||
case 1:
|
||||
return true;
|
||||
}
|
||||
_releaseControl.InvokeAction(_lease.Value);
|
||||
_lease = null;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
catch (IpcError ipcError)
|
||||
catch (IpcError exception)
|
||||
{
|
||||
_202C_202C_202C_202B_200E_202C_202B_202B_202D_202C_206F_206C_202C_206C_202E_206F_206C_202D_200F_200B_200D_202D_200E_206E_200D_206E_200E_206B_206D_202D_206C_206E_202D_200E_202C_200D_202D_202D_200D_200C_202E((ILogger)_logger, (Exception)ipcError, 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>(1222809597), Array.Empty<object>());
|
||||
_logger.LogWarning(exception, "Could not turn off wrath combo");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
bool ICombatModule.Stop()
|
||||
{
|
||||
//ILSpy generated this explicit interface implementation from .override directive in Stop
|
||||
return this.Stop();
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.NoInlining)]
|
||||
public void Update(IGameObject nextTarget)
|
||||
{
|
||||
int num = (_lease.HasValue ? 1213985662 : 1213985663);
|
||||
while (true)
|
||||
if (!_lease.HasValue)
|
||||
{
|
||||
int num2 = num;
|
||||
int num3 = 1213985662;
|
||||
int num4 = num2;
|
||||
int num5 = num4 + num3;
|
||||
int num6 = num4 & num3;
|
||||
switch (num5 - (num6 + num6))
|
||||
{
|
||||
case 0:
|
||||
return;
|
||||
case 1:
|
||||
throw new TaskException(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>(688347319));
|
||||
case 2:
|
||||
goto IL_005e;
|
||||
}
|
||||
continue;
|
||||
IL_005e:
|
||||
num = 1213985663;
|
||||
throw new TaskException("Wrath Combo Lease is cancelled");
|
||||
}
|
||||
}
|
||||
|
||||
void ICombatModule.Update(IGameObject nextTarget)
|
||||
{
|
||||
//ILSpy generated this explicit interface implementation from .override directive in Update
|
||||
this.Update(nextTarget);
|
||||
}
|
||||
|
||||
public bool CanAttack(IBattleNpc target)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
bool ICombatModule.CanAttack(IBattleNpc target)
|
||||
{
|
||||
//ILSpy generated this explicit interface implementation from .override directive in CanAttack
|
||||
return this.CanAttack(target);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.NoInlining)]
|
||||
private void EnableCombosForCurrentJob()
|
||||
{
|
||||
int num = (_lease.HasValue ? (-1738503464) : (-1738503461));
|
||||
uint num7 = default(uint);
|
||||
string current = default(string);
|
||||
ESetResult eSetResult = default(ESetResult);
|
||||
while (true)
|
||||
if (!_lease.HasValue)
|
||||
{
|
||||
int num2 = num;
|
||||
int num3 = -1738503463;
|
||||
int num4 = num2;
|
||||
int num5 = num4 + num3;
|
||||
int num6 = num4 & num3;
|
||||
switch (num5 - (num6 + num6))
|
||||
return;
|
||||
}
|
||||
uint num = _objectTable.LocalPlayer?.ClassJob.RowId ?? 0;
|
||||
if (num == 0)
|
||||
{
|
||||
return;
|
||||
}
|
||||
try
|
||||
{
|
||||
List<string> list = _getComboNamesForJob.InvokeFunc(num);
|
||||
if (list == null || list.Count == 0)
|
||||
{
|
||||
case 0:
|
||||
num = -1738503461;
|
||||
break;
|
||||
case 1:
|
||||
_logger.LogWarning("No combos found for job {JobId}", num);
|
||||
return;
|
||||
}
|
||||
_logger.LogDebug("Found {Count} combos for job {JobId}: {Combos}", list.Count, num, string.Join(", ", list));
|
||||
int num2 = 0;
|
||||
foreach (string item in list)
|
||||
{
|
||||
IPlayerCharacter playerCharacter = _200C_200E_200F_206E_202E_206F_206E_200B_206F_202E_202B_202C_206D_206F_202A_202D_200C_206A_200B_206A_206D_202E_206D_202E_206F_202B_206E_200B_202C_206F_200D_206D_206B_202A_206B_200D_206E_202B_202D_206F_202E(_objectTable);
|
||||
num7 = ((playerCharacter != null) ? _200B_202E_206C_200D_202E_200B_202D_202C_200E_202B_202D_206F_202D_200D_206D_206E_206F_200E_206E_200B_200C_202A_206E_200C_206D_200F_206E_206B_200D_202D_206F_202B_206F_200C_206E_206E_206C_206A_202C_202A_202E((ICharacter)playerCharacter).RowId : 0u);
|
||||
num = ((num7 != 0) ? (-1738503462) : (-1738503459));
|
||||
break;
|
||||
}
|
||||
case 2:
|
||||
return;
|
||||
case 4:
|
||||
return;
|
||||
case 3:
|
||||
try
|
||||
ESetResult eSetResult = _setComboState.InvokeFunc(_lease.Value, item, arg3: true, arg4: true);
|
||||
if (eSetResult.IsSuccess())
|
||||
{
|
||||
List<string> list = _getComboNamesForJob.InvokeFunc(num7);
|
||||
num = ((list == null) ? 406782414 : 406782415);
|
||||
while (true)
|
||||
{
|
||||
int num8 = num;
|
||||
num3 = 406782413;
|
||||
num4 = num8;
|
||||
int num9 = num4 + num3;
|
||||
int num10 = num4 & num3;
|
||||
switch (num9 - (num10 + num10))
|
||||
{
|
||||
case 0:
|
||||
num = 406782415;
|
||||
break;
|
||||
case 3:
|
||||
_200E_202E_206F_200D_206A_200E_206B_202D_200D_200B_200D_206D_200C_200F_206A_200C_202E_202D_202C_206B_202D_200B_206D_202D_200E_206C_206A_206F_200E_202A_206E_202E_202C_206F_206F_202B_200C_200D_206F_206A_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>(-1097438702), new object[1] { num7 });
|
||||
return;
|
||||
case 2:
|
||||
num = ((list.Count != 0) ? 406782412 : 406782414);
|
||||
break;
|
||||
case 1:
|
||||
{
|
||||
_202C_202A_202B_206B_202B_202D_206B_206D_202A_200D_202C_200F_200F_200B_202B_200E_200B_202D_200D_206A_200D_206C_202E_206E_202C_200D_200E_206B_200F_206E_206E_202C_200E_202E_206B_206D_200C_206B_200C_202B_202E((ILogger)_logger, 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>(-155886281), new object[3]
|
||||
{
|
||||
list.Count,
|
||||
num7,
|
||||
_206F_206D_206C_206C_206E_206A_200B_200D_200E_206A_206C_202C_206B_202D_200F_206D_206B_206A_202C_200E_200F_200F_202C_202C_206F_206F_202A_200F_202D_206B_200B_200F_200F_206D_206B_200E_202B_200C_200F_200C_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>(1467939024), (IEnumerable<string>)list)
|
||||
});
|
||||
int num11 = 0;
|
||||
using (List<string>.Enumerator enumerator = list.GetEnumerator())
|
||||
{
|
||||
num = 1772577375;
|
||||
while (true)
|
||||
{
|
||||
int num12 = num;
|
||||
num3 = 1772577374;
|
||||
num4 = num12;
|
||||
switch ((num4 | num3) - (num4 & num3))
|
||||
{
|
||||
case 4:
|
||||
_200E_202E_206F_200D_206A_200E_206B_202D_200D_200B_200D_206D_200C_200F_206A_200C_202E_202D_202C_206B_202D_200B_206D_202D_200E_206C_206A_206F_200E_202A_206E_202E_202C_206F_206F_202B_200C_200D_206F_206A_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>(-1020041796), new object[2] { current, eSetResult });
|
||||
num = 1772577375;
|
||||
break;
|
||||
case 3:
|
||||
current = enumerator.Current;
|
||||
eSetResult = _setComboState.InvokeFunc(_lease.Value, current, arg3: true, arg4: true);
|
||||
num = ((!eSetResult.IsSuccess()) ? 1772577370 : 1772577371);
|
||||
break;
|
||||
case 0:
|
||||
num = 1772577375;
|
||||
break;
|
||||
case 1:
|
||||
num = (enumerator.MoveNext() ? 1772577373 : 1772577372);
|
||||
break;
|
||||
case 5:
|
||||
{
|
||||
int num13 = num11;
|
||||
num3 = 1;
|
||||
num4 = num13;
|
||||
num11 = (num4 | num3) + (num4 & num3);
|
||||
num = 1772577375;
|
||||
break;
|
||||
}
|
||||
case 2:
|
||||
goto end_IL_01cd;
|
||||
}
|
||||
continue;
|
||||
end_IL_01cd:
|
||||
break;
|
||||
}
|
||||
}
|
||||
_202C_202A_202B_206B_202B_202D_206B_206D_202A_200D_202C_200F_200F_200B_202B_200E_200B_202D_200D_206A_200D_206C_202E_206E_202C_200D_200E_206B_200F_206E_206E_202C_200E_202E_206B_206D_200C_206B_200C_202B_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>(-1723018308), new object[3] { num11, list.Count, num7 });
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (IpcError ipcError)
|
||||
{
|
||||
_202C_202C_202C_202B_200E_202C_202B_202B_202D_202C_206F_206C_202C_206C_202E_206F_206C_202D_200F_200B_200D_202D_200E_206E_200D_206E_200E_206B_206D_202D_206C_206E_202D_200E_202C_200D_202D_202D_200D_200C_202E((ILogger)_logger, (Exception)ipcError, 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>(-290281876), new object[1] { num7 });
|
||||
return;
|
||||
num2++;
|
||||
continue;
|
||||
}
|
||||
_logger.LogWarning("SetComboState({Combo})={Result}", item, eSetResult);
|
||||
}
|
||||
_logger.LogDebug("Enabled {Count}/{Total} combos for job {JobId}", num2, list.Count, num);
|
||||
}
|
||||
catch (IpcError exception)
|
||||
{
|
||||
_logger.LogWarning(exception, "Failed to enable combos for job {JobId}", num);
|
||||
}
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.NoInlining)]
|
||||
private void SetConfig(AutoRotationConfigOption configKey, object value)
|
||||
{
|
||||
int num = (_lease.HasValue ? 965536274 : 965536273);
|
||||
while (true)
|
||||
if (!_lease.HasValue)
|
||||
{
|
||||
int num2 = num;
|
||||
int num3 = 965536272;
|
||||
int num4 = num2;
|
||||
int num5 = num4 + num3;
|
||||
int num6 = num4 & num3;
|
||||
switch (num5 - (num6 + num6))
|
||||
return;
|
||||
}
|
||||
try
|
||||
{
|
||||
ESetResult eSetResult = _setAutoRotationConfigState.InvokeFunc(_lease.Value, configKey, value);
|
||||
if (!eSetResult.IsSuccess())
|
||||
{
|
||||
case 0:
|
||||
goto IL_0050;
|
||||
case 1:
|
||||
return;
|
||||
case 2:
|
||||
try
|
||||
{
|
||||
ESetResult eSetResult = _setAutoRotationConfigState.InvokeFunc(_lease.Value, configKey, value);
|
||||
num = (eSetResult.IsSuccess() ? (-646726898) : (-646726899));
|
||||
while (true)
|
||||
{
|
||||
int num7 = num;
|
||||
num3 = -646726897;
|
||||
num4 = num7;
|
||||
int num8 = num4 + num3;
|
||||
int num9 = num4 & num3;
|
||||
switch (num8 - (num9 + num9))
|
||||
{
|
||||
case 0:
|
||||
num = -646726899;
|
||||
break;
|
||||
case 2:
|
||||
_200E_202E_206F_200D_206A_200E_206B_202D_200D_200B_200D_206D_200C_200F_206A_200C_202E_202D_202C_206B_202D_200B_206D_202D_200E_206C_206A_206F_200E_202A_206E_202E_202C_206F_206F_202B_200C_200D_206F_206A_202E((ILogger)_logger, 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>(1491997045), new object[3] { configKey, value, eSetResult });
|
||||
num = -646726898;
|
||||
break;
|
||||
case 1:
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (IpcError ipcError)
|
||||
{
|
||||
_202C_202C_202C_202B_200E_202C_202B_202B_202D_202C_206F_206C_202C_206C_202E_206F_206C_202D_200F_200B_200D_202D_200E_206E_200D_206E_200E_206B_206D_202D_206C_206E_202D_200E_202C_200D_202D_202D_200D_200C_202E((ILogger)_logger, (Exception)ipcError, 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>(-931599605), new object[2] { configKey, value });
|
||||
return;
|
||||
}
|
||||
_logger.LogWarning("WrathCombo config {ConfigKey}={Value} returned {Result}", configKey, value, eSetResult);
|
||||
}
|
||||
continue;
|
||||
IL_0050:
|
||||
num = 965536273;
|
||||
}
|
||||
catch (IpcError exception)
|
||||
{
|
||||
_logger.LogWarning(exception, "Failed to set WrathCombo config {ConfigKey}={Value}", configKey, value);
|
||||
}
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.NoInlining)]
|
||||
private void Callback(int reason, string additionalInfo)
|
||||
{
|
||||
_200E_202E_206F_200D_206A_200E_206B_202D_200D_200B_200D_206D_200C_200F_206A_200C_202E_202D_202C_206B_202D_200B_206D_202D_200E_206C_206A_206F_200E_202A_206E_202E_202C_206F_206F_202B_200C_200D_206F_206A_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>(-935286471), new object[2] { reason, additionalInfo });
|
||||
_logger.LogWarning("WrathCombo callback: {Reason} ({Info})", reason, additionalInfo);
|
||||
_lease = null;
|
||||
}
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
_lease = null;
|
||||
_202C_206B_202E_206B_202D_200E_200F_206C_200E_206D_200C_200B_202B_202D_206E_206A_206C_206B_206F_206A_200D_202E_206D_206D_202C_200D_200E_206E_202C_202A_202B_200B_202B_202E_202B_206F_200D_200F_206F_202E((ICallGateProvider)_callback);
|
||||
}
|
||||
|
||||
void IDisposable.Dispose()
|
||||
{
|
||||
//ILSpy generated this explicit interface implementation from .override directive in Dispose
|
||||
this.Dispose();
|
||||
}
|
||||
|
||||
static void _202C_202A_202B_206B_202B_202D_206B_206D_202A_200D_202C_200F_200F_200B_202B_200E_200B_202D_200D_206A_200D_206C_202E_206E_202C_200D_200E_206B_200F_206E_206E_202C_200E_202E_206B_206D_200C_206B_200C_202B_202E(ILogger P_0, string P_1, object[] P_2)
|
||||
{
|
||||
P_0.LogDebug(P_1, P_2);
|
||||
}
|
||||
|
||||
static void _200C_200D_202C_206F_200B_206E_206F_200D_200E_206D_200E_202E_200C_200C_202D_206A_202D_206E_202D_206F_200F_200D_200D_202E_206B_206F_200C_206C_202E_200F_202E_200C_202D_202E_202E_200E_206B_206E_202B_202D_202E(ILogger P_0, string P_1, object[] P_2)
|
||||
{
|
||||
P_0.LogError(P_1, P_2);
|
||||
}
|
||||
|
||||
static void _206B_206A_206C_202C_200F_202D_206B_202C_206F_200D_200B_206A_206E_202E_200B_200F_200E_206C_200C_206B_200D_200D_206E_206F_202D_202B_206A_200D_206A_200F_202C_202C_202E_202E_206C_206B_202C_202C_202A_202D_202E(ILogger P_0, Exception P_1, string P_2, object[] P_3)
|
||||
{
|
||||
P_0.LogError(P_1, P_2, P_3);
|
||||
}
|
||||
|
||||
static void _202C_202C_202C_202B_200E_202C_202B_202B_202D_202C_206F_206C_202C_206C_202E_206F_206C_202D_200F_200B_200D_202D_200E_206E_200D_206E_200E_206B_206D_202D_206C_206E_202D_200E_202C_200D_202D_202D_200D_200C_202E(ILogger P_0, Exception P_1, string P_2, object[] P_3)
|
||||
{
|
||||
P_0.LogWarning(P_1, P_2, P_3);
|
||||
}
|
||||
|
||||
static IPlayerCharacter _200C_200E_200F_206E_202E_206F_206E_200B_206F_202E_202B_202C_206D_206F_202A_202D_200C_206A_200B_206A_206D_202E_206D_202E_206F_202B_206E_200B_202C_206F_200D_206D_206B_202A_206B_200D_206E_202B_202D_206F_202E(IObjectTable P_0)
|
||||
{
|
||||
return P_0.LocalPlayer;
|
||||
}
|
||||
|
||||
static RowRef<ClassJob> _200B_202E_206C_200D_202E_200B_202D_202C_200E_202B_202D_206F_202D_200D_206D_206E_206F_200E_206E_200B_200C_202A_206E_200C_206D_200F_206E_206B_200D_202D_206F_202B_206F_200C_206E_206E_206C_206A_202C_202A_202E(ICharacter P_0)
|
||||
{
|
||||
return P_0.ClassJob;
|
||||
}
|
||||
|
||||
static void _200E_202E_206F_200D_206A_200E_206B_202D_200D_200B_200D_206D_200C_200F_206A_200C_202E_202D_202C_206B_202D_200B_206D_202D_200E_206C_206A_206F_200E_202A_206E_202E_202C_206F_206F_202B_200C_200D_206F_206A_202E(ILogger P_0, string P_1, object[] P_2)
|
||||
{
|
||||
P_0.LogWarning(P_1, P_2);
|
||||
}
|
||||
|
||||
static string _206F_206D_206C_206C_206E_206A_200B_200D_200E_206A_206C_202C_206B_202D_200F_206D_206B_206A_202C_200E_200F_200F_202C_202C_206F_206F_202A_200F_202D_206B_200B_200F_200F_206D_206B_200E_202B_200C_200F_200C_202E(string P_0, IEnumerable<string> P_1)
|
||||
{
|
||||
return string.Join(P_0, P_1);
|
||||
}
|
||||
|
||||
static void _202C_206B_202E_206B_202D_200E_200F_206C_200E_206D_200C_200B_202B_202D_206E_206A_206C_206B_206F_206A_200D_202E_206D_206D_202C_200D_200E_206E_202C_202A_202B_200B_202B_202E_202B_206F_200D_200F_206F_202E(ICallGateProvider P_0)
|
||||
{
|
||||
P_0.UnregisterAction();
|
||||
_callback.UnregisterAction();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,31 +4,10 @@ internal static class WrathResultExtensions
|
|||
{
|
||||
public static bool IsSuccess(this WrathComboModule.ESetResult result)
|
||||
{
|
||||
int num = (((uint)result > 1u) ? 142889615 : 142889612);
|
||||
bool result2 = default(bool);
|
||||
while (true)
|
||||
if ((uint)result <= 1u)
|
||||
{
|
||||
int num2 = num;
|
||||
int num3 = 142889614;
|
||||
int num4 = num2;
|
||||
int num5 = num4 + num3;
|
||||
int num6 = num4 & num3;
|
||||
switch (num5 - (num6 + num6))
|
||||
{
|
||||
case 0:
|
||||
num = 142889612;
|
||||
break;
|
||||
case 2:
|
||||
result2 = true;
|
||||
num = 142889613;
|
||||
break;
|
||||
case 1:
|
||||
result2 = false;
|
||||
num = 142889613;
|
||||
break;
|
||||
case 3:
|
||||
return result2;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue