diff --git a/BossMod/ActionQueue/Tanks/PLD.cs b/BossMod/ActionQueue/Tanks/PLD.cs index f2961df589..287fee4029 100644 --- a/BossMod/ActionQueue/Tanks/PLD.cs +++ b/BossMod/ActionQueue/Tanks/PLD.cs @@ -151,6 +151,14 @@ public void Dispose() { } private void Customize(ActionDefinitions d) { + d.Spell(AID.PassageOfArms)!.TransformAngle = (ws, player, _, _) => _config.Wings switch + { + PLDConfig.WingsBehavior.CharacterForward => player.Rotation + 180.Degrees(), + PLDConfig.WingsBehavior.CameraBackward => ws.Client.CameraAzimuth + 180.Degrees(), + PLDConfig.WingsBehavior.CameraForward => ws.Client.CameraAzimuth, + _ => null + }; + d.Spell(AID.Intervention)!.SmartTarget = ActionDefinitions.SmartTargetCoTank; d.Spell(AID.HolySpirit)!.ForbidExecute = (ws, player, _, _) => _config.ForbidEarlyHolySpirit && !player.InCombat && ws.Client.CountdownRemaining > 1.75f; d.Spell(AID.ShieldLob)!.ForbidExecute = (ws, player, _, _) => _config.ForbidEarlyShieldLob && !player.InCombat && ws.Client.CountdownRemaining > 0.7f; diff --git a/BossMod/ActionTweaks/ClassActions/PLDConfig.cs b/BossMod/ActionTweaks/ClassActions/PLDConfig.cs index 4f6300b8a0..57e0dc75e7 100644 --- a/BossMod/ActionTweaks/ClassActions/PLDConfig.cs +++ b/BossMod/ActionTweaks/ClassActions/PLDConfig.cs @@ -8,4 +8,22 @@ class PLDConfig : ConfigNode [PropertyDisplay("Prevent use of 'Shield Lob' too early when in pre-pull (if Holy Spirit is not unlocked)")] public bool ForbidEarlyShieldLob = true; + + public enum WingsBehavior : uint + { + [PropertyDisplay("Game default (character-relative, backwards)")] + Default = 0, + + [PropertyDisplay("Character-relative, forwards")] + CharacterForward = 1, + + [PropertyDisplay("Camera-relative, backwards")] + CameraBackward = 2, + + [PropertyDisplay("Camera-relative, forwards")] + CameraForward = 3, + } + + [PropertyDisplay("Passage of Arms direction")] + public WingsBehavior Wings = WingsBehavior.Default; }