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; } }