forked from aly/qstbak
142 lines
3.4 KiB
C#
142 lines
3.4 KiB
C#
using Dalamud.Game.ClientState.Objects.Types;
|
|
using Questionable.Functions;
|
|
using Questionable.Model.Questing;
|
|
|
|
namespace Questionable.Controller.CombatModules;
|
|
|
|
internal sealed class Mount147Module : ICombatModule
|
|
{
|
|
public const ushort MountId = 147;
|
|
|
|
private readonly EAction[] _actions = new EAction[1] { EAction.Trample };
|
|
|
|
private readonly GameFunctions _gameFunctions;
|
|
|
|
public Mount147Module(GameFunctions gameFunctions)
|
|
{
|
|
_gameFunctions = gameFunctions;
|
|
}
|
|
|
|
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);
|
|
}
|
|
|
|
public bool Start(CombatController.CombatData combatData)
|
|
{
|
|
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)
|
|
{
|
|
int num3 = num2;
|
|
int num4 = -1800928324;
|
|
int num5 = num3;
|
|
switch ((num5 | num4) - (num5 & num4))
|
|
{
|
|
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;
|
|
}
|
|
}
|