60 lines
1.1 KiB
C#
60 lines
1.1 KiB
C#
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;
|
|
}
|
|
}
|