From 0844539f984dfbd500aca277be187bd0a27efe56 Mon Sep 17 00:00:00 2001 From: Josh DM Date: Fri, 27 Oct 2023 23:18:49 -0400 Subject: [PATCH 1/2] add spriest aoe APL presets --- ui/shadow_priest/apls/aoe_2_4.apl.json | 16 ++++++++++++++++ ui/shadow_priest/apls/aoe_4_plus.apl.json | 12 ++++++++++++ ui/shadow_priest/presets.ts | 4 ++++ ui/shadow_priest/sim.ts | 2 ++ 4 files changed, 34 insertions(+) create mode 100644 ui/shadow_priest/apls/aoe_2_4.apl.json create mode 100644 ui/shadow_priest/apls/aoe_4_plus.apl.json diff --git a/ui/shadow_priest/apls/aoe_2_4.apl.json b/ui/shadow_priest/apls/aoe_2_4.apl.json new file mode 100644 index 0000000000..7dd3300273 --- /dev/null +++ b/ui/shadow_priest/apls/aoe_2_4.apl.json @@ -0,0 +1,16 @@ +{ + "type": "TypeAPL", + "priorityList": [ + {"action":{"castSpell":{"spellId":{"spellId":34433}}}}, + {"action":{"autocastOtherCooldowns":{}}}, + {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"0.75s"}}}},"castSpell":{"spellId":{"spellId":48300}}}}, + {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpLe","lhs":{"dotRemainingTime":{"targetUnit":{"type":"Target","index":2},"spellId":{"spellId":48125}}},"rhs":{"const":{"val":"3s"}}}},{"dotIsActive":{"targetUnit":{"type":"Target","index":2},"spellId":{"spellId":48125}}},{"cmp":{"op":"OpGt","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"3s"}}}}]}},"channelSpell":{"spellId":{"spellId":48156},"target":{"type":"Target","index":2},"interruptIf":{"const":{"val":"true"}}}}}, + {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpLe","lhs":{"dotRemainingTime":{"targetUnit":{"type":"Target","index":1},"spellId":{"spellId":48125}}},"rhs":{"const":{"val":"3s"}}}},{"dotIsActive":{"targetUnit":{"type":"Target","index":1},"spellId":{"spellId":48125}}},{"cmp":{"op":"OpGt","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"3s"}}}}]}},"channelSpell":{"spellId":{"spellId":48156},"target":{"type":"Target","index":1},"interruptIf":{"const":{"val":"true"}}}}}, + {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpLe","lhs":{"dotRemainingTime":{"targetUnit":{"type":"Target"},"spellId":{"spellId":48125}}},"rhs":{"const":{"val":"5s"}}}},{"dotIsActive":{"targetUnit":{"type":"Target"},"spellId":{"spellId":48125}}},{"cmp":{"op":"OpGt","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"3s"}}}}]}},"channelSpell":{"spellId":{"spellId":48156},"target":{"type":"Target"},"interruptIf":{"const":{"val":"true"}}}}}, + {"action":{"condition":{"cmp":{"op":"OpGt","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"5s"}}}},"multidot":{"spellId":{"spellId":48160},"maxDots":4,"maxOverlap":{"spellCastTime":{"spellId":{"spellId":48160}}}}}}, + {"action":{"multidot":{"spellId":{"spellId":48300},"maxDots":1,"maxOverlap":{}}}}, + {"action":{"condition":{"cmp":{"op":"OpGt","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"12s"}}}},"multidot":{"spellId":{"spellId":48125},"maxDots":3,"maxOverlap":{"const":{"val":"0ms"}}}}}, + {"action":{"condition":{"cmp":{"op":"OpGt","lhs":{"numberTargets":{}},"rhs":{"const":{"val":"2"}}}},"channelSpell":{"spellId":{"spellId":53023},"interruptIf":{"const":{"val":"true"}}}}}, + {"action":{"channelSpell":{"spellId":{"spellId":48156},"interruptIf":{"const":{"val":"true"}}}}} + ] +} \ No newline at end of file diff --git a/ui/shadow_priest/apls/aoe_4_plus.apl.json b/ui/shadow_priest/apls/aoe_4_plus.apl.json new file mode 100644 index 0000000000..4c812dc20f --- /dev/null +++ b/ui/shadow_priest/apls/aoe_4_plus.apl.json @@ -0,0 +1,12 @@ +{ + "type": "TypeAPL", + "priorityList": [ + {"action":{"castSpell":{"spellId":{"spellId":34433}}}}, + {"action":{"autocastOtherCooldowns":{}}}, + {"action":{"condition":{"cmp":{"op":"OpGe","lhs":{"numberTargets":{}},"rhs":{"const":{"val":"6"}}}},"channelSpell":{"spellId":{"spellId":53023},"interruptIf":{"const":{"val":"true"}}}}}, + {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"0.75s"}}}},"castSpell":{"spellId":{"spellId":48300}}}}, + {"action":{"condition":{"cmp":{"op":"OpGt","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"5s"}}}},"multidot":{"spellId":{"spellId":48160},"maxDots":10,"maxOverlap":{"spellCastTime":{"spellId":{"spellId":48160}}}}}}, + {"action":{"multidot":{"spellId":{"spellId":48300},"maxDots":1,"maxOverlap":{}}}}, + {"action":{"channelSpell":{"spellId":{"spellId":53023},"interruptIf":{"const":{"val":"true"}}}}} + ] +} \ No newline at end of file diff --git a/ui/shadow_priest/presets.ts b/ui/shadow_priest/presets.ts index e16ac8ef07..5cf2e13126 100644 --- a/ui/shadow_priest/presets.ts +++ b/ui/shadow_priest/presets.ts @@ -30,6 +30,8 @@ import P3Gear from './gear_sets/p3.gear.json'; import P4Gear from './gear_sets/p4.gear.json'; import DefaultApl from './apls/default.apl.json' +import AOE24Apl from './apls/aoe_2_4.apl.json' +import AOE4PlusApl from './apls/aoe_4_plus.apl.json' // Preset options for this spec. // Eventually we will import these values for the raid sim too, so its good to @@ -46,6 +48,8 @@ export const DefaultRotation = Rotation.create({ }); export const ROTATION_PRESET_DEFAULT = PresetUtils.makePresetAPLRotation('Default', DefaultApl); +export const ROTATION_PRESET_AOE24 = PresetUtils.makePresetAPLRotation('AOE (2 to 4 targets)', AOE24Apl); +export const ROTATION_PRESET_AOE4PLUS = PresetUtils.makePresetAPLRotation('AOE (4+ targets)', AOE4PlusApl); // Default talents. Uses the wowhead calculator format, make the talents on // https://wowhead.com/wotlk/talent-calc and copy the numbers in the url. diff --git a/ui/shadow_priest/sim.ts b/ui/shadow_priest/sim.ts index 2f43d57249..ec3d6f7831 100644 --- a/ui/shadow_priest/sim.ts +++ b/ui/shadow_priest/sim.ts @@ -133,6 +133,8 @@ export class ShadowPriestSimUI extends IndividualSimUI { ], rotations: [ Presets.ROTATION_PRESET_DEFAULT, + Presets.ROTATION_PRESET_AOE4PLUS, + Presets.ROTATION_PRESET_AOE24, ], // Preset gear configurations that the user can quickly select. gear: [ From 42556e938453efc5c6d37587f797ac0a33457c0c Mon Sep 17 00:00:00 2001 From: Josh DM Date: Sat, 28 Oct 2023 08:41:13 -0400 Subject: [PATCH 2/2] use mind sear at 7+ --- ui/shadow_priest/apls/aoe_4_plus.apl.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ui/shadow_priest/apls/aoe_4_plus.apl.json b/ui/shadow_priest/apls/aoe_4_plus.apl.json index 4c812dc20f..6a79726f20 100644 --- a/ui/shadow_priest/apls/aoe_4_plus.apl.json +++ b/ui/shadow_priest/apls/aoe_4_plus.apl.json @@ -3,7 +3,7 @@ "priorityList": [ {"action":{"castSpell":{"spellId":{"spellId":34433}}}}, {"action":{"autocastOtherCooldowns":{}}}, - {"action":{"condition":{"cmp":{"op":"OpGe","lhs":{"numberTargets":{}},"rhs":{"const":{"val":"6"}}}},"channelSpell":{"spellId":{"spellId":53023},"interruptIf":{"const":{"val":"true"}}}}}, + {"action":{"condition":{"cmp":{"op":"OpGe","lhs":{"numberTargets":{}},"rhs":{"const":{"val":"7"}}}},"channelSpell":{"spellId":{"spellId":53023},"interruptIf":{"const":{"val":"true"}}}}}, {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"0.75s"}}}},"castSpell":{"spellId":{"spellId":48300}}}}, {"action":{"condition":{"cmp":{"op":"OpGt","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"5s"}}}},"multidot":{"spellId":{"spellId":48160},"maxDots":10,"maxOverlap":{"spellCastTime":{"spellId":{"spellId":48160}}}}}}, {"action":{"multidot":{"spellId":{"spellId":48300},"maxDots":1,"maxOverlap":{}}}},