using Dalamud.Game.ClientState.Objects.Types; using Questionable.Functions; using Questionable.Model.Questing; namespace Questionable.Controller.CombatModules; internal sealed class Mount128Module : ICombatModule { public const ushort MountId = 128; private readonly EAction[] _actions = new EAction[2] { EAction.MagitekThunder, EAction.MagitekPulse }; private readonly GameFunctions _gameFunctions; public Mount128Module(GameFunctions gameFunctions) { _gameFunctions = gameFunctions; } public bool CanHandleFight(CombatController.CombatData combatData) { return _gameFunctions.GetMountId() == 128; } public bool Start(CombatController.CombatData combatData) { return true; } public bool Stop() { return true; } public void Update(IGameObject gameObject) { EAction[] actions = _actions; foreach (EAction action in actions) { if (_gameFunctions.UseAction(gameObject, action, checkCanUse: false)) { break; } } } public bool CanAttack(IBattleNpc target) { uint baseId = target.BaseId; if (baseId - 7504 <= 1 || baseId == 14107) { return true; } return false; } }