From ba0729a05efedebd53410763e0a6f7e269ca5a13 Mon Sep 17 00:00:00 2001 From: Eric Taylor Date: Sun, 24 Nov 2024 10:05:28 -0500 Subject: [PATCH 1/5] Initial Tank cleanup --- ui/tank_warrior/apls/p1.apl.json | 8 ++++ ui/tank_warrior/apls/phase_4.apl.json | 35 --------------- ui/tank_warrior/gear_sets/blank.gear.json | 3 -- ui/tank_warrior/gear_sets/p0.bis.gear.json | 21 +++++++++ ui/tank_warrior/gear_sets/p1.bis.gear.json | 21 +++++++++ .../gear_sets/placeholder.gear.json | 19 -------- ui/tank_warrior/presets.ts | 44 +++++++------------ ui/tank_warrior/sim.ts | 12 +---- 8 files changed, 68 insertions(+), 95 deletions(-) create mode 100644 ui/tank_warrior/apls/p1.apl.json delete mode 100644 ui/tank_warrior/apls/phase_4.apl.json delete mode 100644 ui/tank_warrior/gear_sets/blank.gear.json create mode 100644 ui/tank_warrior/gear_sets/p0.bis.gear.json create mode 100644 ui/tank_warrior/gear_sets/p1.bis.gear.json delete mode 100644 ui/tank_warrior/gear_sets/placeholder.gear.json diff --git a/ui/tank_warrior/apls/p1.apl.json b/ui/tank_warrior/apls/p1.apl.json new file mode 100644 index 000000000..e9e08b803 --- /dev/null +++ b/ui/tank_warrior/apls/p1.apl.json @@ -0,0 +1,8 @@ +{ + "type": "TypeAPL", + "prepullActions": [], + "priorityList": [ + {"action":{"autocastOtherCooldowns":{}}}, + {"action":{"castSpell":{"spellId":{"spellId":11597,"rank":5}}}} + ] +} diff --git a/ui/tank_warrior/apls/phase_4.apl.json b/ui/tank_warrior/apls/phase_4.apl.json deleted file mode 100644 index be42906f5..000000000 --- a/ui/tank_warrior/apls/phase_4.apl.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "type": "TypeAPL", - "prepullActions": [ - {"action":{"castSpell":{"spellId":{"spellId":71}}},"doAtValue":{"const":{"val":"-1s"}}}, - {"action":{"castSpell":{"spellId":{"spellId":24427}}},"doAtValue":{"const":{"val":"-1s"}}} - ], - "priorityList": [ - {"action":{"castSpell":{"spellId":{"otherId":"OtherActionPotion"}}}}, - {"action":{"castSpell":{"spellId":{"spellId":426940}}}}, - {"action":{"castSpell":{"spellId":{"spellId":12328}}}}, - {"action":{"autocastOtherCooldowns":{}}}, - {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"61s"}}}},"castSpell":{"spellId":{"spellId":24427}}}}, - {"action":{"castSpell":{"spellId":{"otherId":"OtherActionDefensiveEquip"}}}}, - {"action":{"castSpell":{"spellId":{"spellId":1719}}}}, - {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"currentHealthPercent":{}},"rhs":{"const":{"val":"50"}}}},"castSpell":{"spellId":{"spellId":26297}}}}, - {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpGe","lhs":{"numberTargets":{}},"rhs":{"const":{"val":"2"}}}},{"cmp":{"op":"OpGe","lhs":{},"rhs":{"const":{"val":"35"}}}}]}},"castSpell":{"spellId":{"spellId":20569,"tag":1,"rank":5}}}}, - {"action":{"condition":{"cmp":{"op":"OpGe","lhs":{"currentRage":{}},"rhs":{"const":{"val":"35"}}}},"castSpell":{"spellId":{"spellId":25286,"tag":1,"rank":9}}}}, - {"action":{"condition":{"cmp":{"op":"OpGe","lhs":{"numberTargets":{}},"rhs":{"const":{"val":"2"}}}},"castSpell":{"spellId":{"spellId":11581,"rank":6}}}}, - {"action":{"condition":{"cmp":{"op":"OpGe","lhs":{"numberTargets":{}},"rhs":{"const":{"val":"2"}}}},"castSpell":{"spellId":{"spellId":440488}}}}, - {"action":{"condition":{"not":{"val":{"auraIsActive":{"auraId":{"spellId":14201}}}}},"castSpell":{"spellId":{"spellId":23894,"rank":4}}}}, - {"action":{"condition":{"and":{"vals":[{"runeIsEquipped":{"runeId":{"spellId":413380}}},{"auraIsActive":{"auraId":{"spellId":413399}}}]}},"castSpell":{"spellId":{"spellId":11605,"rank":4}}}}, - {"action":{"condition":{"not":{"val":{"auraIsActive":{"auraId":{"spellId":460171}}}}},"castSpell":{"spellId":{"spellId":23925,"rank":4}}}}, - {"action":{"castSpell":{"spellId":{"spellId":23894,"rank":4}}}}, - {"action":{"condition":{"auraIsActive":{"auraId":{"spellId":426978}}},"castSpell":{"spellId":{"spellId":23925,"rank":4}}}}, - {"action":{"castSpell":{"spellId":{"spellId":440488}}}}, - {"action":{"castSpell":{"spellId":{"spellId":23925,"rank":4}}}}, - {"action":{"castSpell":{"spellId":{"spellId":11581,"rank":6}}}}, - {"action":{"castSpell":{"spellId":{"spellId":2687}}}}, - {"action":{"castSpell":{"spellId":{"spellId":11601,"rank":5}}}}, - {"action":{"condition":{"and":{"vals":[{"runeIsEquipped":{"runeId":{"spellId":412507}}},{"not":{"val":{"dotIsActive":{"spellId":{"spellId":11574,"rank":7}}}}}]}},"castSpell":{"spellId":{"spellId":11574,"rank":7}}}}, - {"action":{"condition":{"runeIsEquipped":{"runeId":{"spellId":403195}}},"castSpell":{"spellId":{"spellId":11597,"rank":5}}}}, - {"hide":true,"action":{"condition":{"not":{"val":{"auraIsActive":{"sourceUnit":{"type":"CurrentTarget"},"auraId":{"spellId":11581,"rank":6}}}}},"castSpell":{"spellId":{"spellId":11581,"rank":6}}}}, - {"action":{"condition":{"const":{"val":"false"}},"castSpell":{"spellId":{"spellId":20572}}}} - ] -} diff --git a/ui/tank_warrior/gear_sets/blank.gear.json b/ui/tank_warrior/gear_sets/blank.gear.json deleted file mode 100644 index 2feb21015..000000000 --- a/ui/tank_warrior/gear_sets/blank.gear.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "items": [] -} diff --git a/ui/tank_warrior/gear_sets/p0.bis.gear.json b/ui/tank_warrior/gear_sets/p0.bis.gear.json new file mode 100644 index 000000000..909a4e77c --- /dev/null +++ b/ui/tank_warrior/gear_sets/p0.bis.gear.json @@ -0,0 +1,21 @@ +{ + "items": [ + {"id":16731}, + {}, + {"id":16733}, + {}, + {"id":16730}, + {"id":16735}, + {"id":16737}, + {"id":16736}, + {"id":16732}, + {"id":16734}, + {}, + {}, + {}, + {}, + {}, + {}, + {} + ] +} diff --git a/ui/tank_warrior/gear_sets/p1.bis.gear.json b/ui/tank_warrior/gear_sets/p1.bis.gear.json new file mode 100644 index 000000000..595f20b26 --- /dev/null +++ b/ui/tank_warrior/gear_sets/p1.bis.gear.json @@ -0,0 +1,21 @@ +{ + "items": [ + {"id":16866}, + {}, + {"id":16868}, + {}, + {"id":16865}, + {"id":16861}, + {"id":16863}, + {"id":16864}, + {"id":16867}, + {"id":16862}, + {}, + {}, + {}, + {}, + {}, + {}, + {} + ] +} \ No newline at end of file diff --git a/ui/tank_warrior/gear_sets/placeholder.gear.json b/ui/tank_warrior/gear_sets/placeholder.gear.json deleted file mode 100644 index 601acc7dc..000000000 --- a/ui/tank_warrior/gear_sets/placeholder.gear.json +++ /dev/null @@ -1,19 +0,0 @@ -{"items": [ - {"id":18421}, - {"id":19540}, - {"id":14817}, - {"id":15138,"enchant":247}, - {"id":14811,"enchant":866}, - {"id":18458}, - {"id":15063,"enchant":904}, - {"id":18393}, - {"id":8309}, - {"id":6423,"enchant":849}, - {"id":2951}, - {"id":9533}, - {"id":13515}, - {"id":18473}, - {"id":22317,"enchant":7210}, - {"id":14812}, - {"id":16996} -]} \ No newline at end of file diff --git a/ui/tank_warrior/presets.ts b/ui/tank_warrior/presets.ts index 7d9ae4f60..74bc0a7ef 100644 --- a/ui/tank_warrior/presets.ts +++ b/ui/tank_warrior/presets.ts @@ -23,38 +23,35 @@ import { } from '../core/proto/common.js'; import { SavedTalents } from '../core/proto/ui.js'; import { TankWarrior_Options as TankWarriorOptions, WarriorShout, WarriorStance } from '../core/proto/warrior.js'; -import Phase4APL from './apls/phase_4.apl.json'; -import BlankGear from './gear_sets/blank.gear.json'; +import P1APL from './apls/p1.apl.json'; +import P0BISGear from './gear_sets/p0.bis.gear.json'; +import P1BISGear from './gear_sets/p1.bis.gear.json'; /////////////////////////////////////////////////////////////////////////// // Gear Presets /////////////////////////////////////////////////////////////////////////// -export const GearBlank = PresetUtils.makePresetGear('Blank', BlankGear); +export const GearP0BIS = PresetUtils.makePresetGear('Pre-BiS', P0BISGear); +export const GearP1BIS = PresetUtils.makePresetGear('P1 BiS', P1BISGear); -export const GearPresets = {}; +export const GearPresets = { + [Phase.Phase1]: [GearP0BIS, GearP1BIS], +}; -export const DefaultGear = GearBlank; +export const DefaultGear = GearP0BIS; /////////////////////////////////////////////////////////////////////////// // APL Presets /////////////////////////////////////////////////////////////////////////// -export const APLPhase4 = PresetUtils.makePresetAPLRotation('P4 Prot/Fury', Phase4APL, { customCondition: player => player.getLevel() === 60 }); +export const APLP1Prot = PresetUtils.makePresetAPLRotation('Protection', P1APL, { customCondition: player => player.getLevel() === 60 }); export const APLPresets = { - [Phase.Phase1]: [], - [Phase.Phase2]: [], - [Phase.Phase3]: [], - [Phase.Phase4]: [APLPhase4], - [Phase.Phase5]: [], + [Phase.Phase1]: [APLP1Prot], }; export const DefaultAPLs: Record = { - 25: APLPresets[Phase.Phase1][0], - 40: APLPresets[Phase.Phase2][0], - 50: APLPresets[Phase.Phase3][0], - 60: APLPresets[Phase.Phase4][0], + 60: APLPresets[Phase.Phase1][0], }; /////////////////////////////////////////////////////////////////////////// @@ -64,26 +61,17 @@ export const DefaultAPLs: Record = { // Default talents. Uses the wowhead calculator format, make the talents on // https://wowhead.com/classic/talent-calc and copy the numbers in the url. -export const TalentsPhase4Prot = PresetUtils.makePresetTalents('60 Prot', SavedTalents.create({ talentsString: '20304300302-03-55200110530201051' }), { - customCondition: player => player.getLevel() === 60, -}); - -export const TalentsPhase4Fury = PresetUtils.makePresetTalents('60 Fury', SavedTalents.create({ talentsString: '33302300302-05050005505010051' }), { +export const TalentsP1Prot = PresetUtils.makePresetTalents('Protection', SavedTalents.create({ talentsString: '20304300302-03-55200110530201051' }), { customCondition: player => player.getLevel() === 60, }); export const TalentPresets = { - [Phase.Phase1]: [], - [Phase.Phase2]: [], - [Phase.Phase3]: [], - [Phase.Phase4]: [TalentsPhase4Prot, TalentsPhase4Fury], - [Phase.Phase5]: [], + [Phase.Phase1]: [TalentsP1Prot], }; -export const DefaultTalents = TalentPresets[Phase.Phase4][0]; +export const DefaultTalents = TalentPresets[Phase.Phase1][0]; -export const PresetBuildTanky = PresetUtils.makePresetBuild('Tanky', { gear: DefaultGear, talents: TalentsPhase4Prot, rotation: DefaultAPLs[60] }); -export const PresetBuildDamage = PresetUtils.makePresetBuild('Damage', { gear: DefaultGear, talents: TalentsPhase4Fury, rotation: DefaultAPLs[60] }); +export const PresetBuildTanky = PresetUtils.makePresetBuild('Tanky', { gear: DefaultGear, talents: TalentsP1Prot, rotation: DefaultAPLs[60] }); /////////////////////////////////////////////////////////////////////////// // Options Presets diff --git a/ui/tank_warrior/sim.ts b/ui/tank_warrior/sim.ts index 70105d6f5..c5a7c8049 100644 --- a/ui/tank_warrior/sim.ts +++ b/ui/tank_warrior/sim.ts @@ -134,26 +134,18 @@ const SPEC_CONFIG = registerSpecConfig(Spec.SpecTankWarrior, { presets: { // Preset talents that the user can quickly select. talents: [ - ...Presets.TalentPresets[Phase.Phase5], - ...Presets.TalentPresets[Phase.Phase4], - ...Presets.TalentPresets[Phase.Phase3], - ...Presets.TalentPresets[Phase.Phase2], ...Presets.TalentPresets[Phase.Phase1], ], // Preset rotations that the user can quickly select. rotations: [ - ...Presets.APLPresets[Phase.Phase5], - ...Presets.APLPresets[Phase.Phase4], - ...Presets.APLPresets[Phase.Phase3], - ...Presets.APLPresets[Phase.Phase2], ...Presets.APLPresets[Phase.Phase1], ], // Preset gear configurations that the user can quickly select. gear: [ - Presets.DefaultGear, + ...Presets.GearPresets[Phase.Phase1], ], // Preset builds that the user can quickly select. - builds: [Presets.PresetBuildTanky, Presets.PresetBuildDamage], + builds: [Presets.PresetBuildTanky], }, autoRotation: player => { From bc4f8fadaa23cbbbc16696c835417e0888d2c2af Mon Sep 17 00:00:00 2001 From: Eric Taylor Date: Sun, 24 Nov 2024 10:18:51 -0500 Subject: [PATCH 2/5] Initial DPS cleanup --- ui/warrior/apls/p1.apl.json | 8 ++ ui/warrior/apls/phase_1_arms.apl.json | 16 ---- ui/warrior/apls/phase_2_arms.apl.json | 22 ----- ui/warrior/apls/phase_2_fury.apl.json | 25 ------ ui/warrior/apls/phase_3_arms.apl.json | 23 ----- ui/warrior/apls/phase_3_fury.apl.json | 34 -------- ui/warrior/apls/phase_3_glad.apl.json | 34 -------- ui/warrior/apls/phase_4_fury.apl.json | 35 -------- ui/warrior/apls/phase_4_glad.apl.json | 30 ------- ui/warrior/apls/phase_5_2h.apl.json | 28 ------ ui/warrior/apls/phase_5_dw.apl.json | 30 ------- ui/warrior/gear_sets/blank.gear.json | 1 - ui/warrior/gear_sets/p0.bis.gear.json | 22 +++++ ui/warrior/gear_sets/p1.bis.gear.json | 21 +++++ ui/warrior/presets.ts | 117 ++++---------------------- ui/warrior/sim.ts | 54 ++---------- 16 files changed, 74 insertions(+), 426 deletions(-) create mode 100644 ui/warrior/apls/p1.apl.json delete mode 100644 ui/warrior/apls/phase_1_arms.apl.json delete mode 100644 ui/warrior/apls/phase_2_arms.apl.json delete mode 100644 ui/warrior/apls/phase_2_fury.apl.json delete mode 100644 ui/warrior/apls/phase_3_arms.apl.json delete mode 100644 ui/warrior/apls/phase_3_fury.apl.json delete mode 100644 ui/warrior/apls/phase_3_glad.apl.json delete mode 100644 ui/warrior/apls/phase_4_fury.apl.json delete mode 100644 ui/warrior/apls/phase_4_glad.apl.json delete mode 100644 ui/warrior/apls/phase_5_2h.apl.json delete mode 100644 ui/warrior/apls/phase_5_dw.apl.json delete mode 100644 ui/warrior/gear_sets/blank.gear.json create mode 100644 ui/warrior/gear_sets/p0.bis.gear.json create mode 100644 ui/warrior/gear_sets/p1.bis.gear.json diff --git a/ui/warrior/apls/p1.apl.json b/ui/warrior/apls/p1.apl.json new file mode 100644 index 000000000..e9e08b803 --- /dev/null +++ b/ui/warrior/apls/p1.apl.json @@ -0,0 +1,8 @@ +{ + "type": "TypeAPL", + "prepullActions": [], + "priorityList": [ + {"action":{"autocastOtherCooldowns":{}}}, + {"action":{"castSpell":{"spellId":{"spellId":11597,"rank":5}}}} + ] +} diff --git a/ui/warrior/apls/phase_1_arms.apl.json b/ui/warrior/apls/phase_1_arms.apl.json deleted file mode 100644 index 0f0ec298b..000000000 --- a/ui/warrior/apls/phase_1_arms.apl.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "TypeAPL", - "prepullActions": [ - {"action":{"castSpell":{"spellId":{"spellId":2687}}},"doAtValue":{"const":{"val":"-1s"}}} - ], - "priorityList": [ - {"action":{"condition":{"spellCanCast":{"spellId":{"spellId":7384,"rank":1}}},"castSpell":{"spellId":{"spellId":7384,"rank":1}}}}, - {"action":{"condition":{"spellCanCast":{"spellId":{"spellId":402911}}},"castSpell":{"spellId":{"spellId":402911}}}}, - {"action":{"condition":{"cmp":{"op":"OpLt","lhs":{"remainingTime":{}},"rhs":{"auraRemainingTime":{"auraId":{"spellId":425418}}}}},"castSpell":{"spellId":{"spellId":5308,"rank":1}}}}, - {"action":{"condition":{"cmp":{"op":"OpGt","lhs":{"currentRage":{}},"rhs":{"const":{"val":"79"}}}},"castSpell":{"spellId":{"spellId":429765},"target":{"type":"Target"}}}}, - {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpGt","lhs":{"currentRage":{}},"rhs":{"const":{"val":"40"}}}},{"cmp":{"op":"OpGt","lhs":{"auraRemainingTime":{"auraId":{"spellId":425418}}},"rhs":{"const":{"val":"5"}}}}]}},"castSpell":{"spellId":{"spellId":429765}}}}, - {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpGt","lhs":{"currentRage":{}},"rhs":{"const":{"val":"95"}}}},{"cmp":{"op":"OpLt","lhs":{"autoTimeToNext":{"autoType":"Melee"}},"rhs":{"gcdTimeToReady":{}}}}]}},"castSpell":{"spellId":{"spellId":1608,"tag":1,"rank":4}}}}, - {"action":{"condition":{"cmp":{"op":"OpLt","lhs":{"currentRage":{}},"rhs":{"const":{"val":"65"}}}},"castSpell":{"spellId":{"spellId":2687}}}}, - {"action":{"condition":{"spellIsReady":{"spellId":{"spellId":20572}}},"castSpell":{"spellId":{"spellId":20572}}}} - ] -} \ No newline at end of file diff --git a/ui/warrior/apls/phase_2_arms.apl.json b/ui/warrior/apls/phase_2_arms.apl.json deleted file mode 100644 index 1699d55f3..000000000 --- a/ui/warrior/apls/phase_2_arms.apl.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "type": "TypeAPL", - "prepullActions": [ - {"action":{"castSpell":{"spellId":{"spellId":2458}}},"doAtValue":{"const":{"val":"-20s"}}}, - {"action":{"castSpell":{"spellId":{"otherId":"OtherActionPotion"}}},"doAtValue":{"const":{"val":"-0.5s"}}} - ], - "priorityList": [ - {"action":{"autocastOtherCooldowns":{}}}, - {"action":{"condition":{"not":{"val":{"auraIsActive":{"auraId":{"spellId":402877}}}}},"castSpell":{"spellId":{"spellId":2687}}}}, - {"action":{"condition":{"not":{"val":{"auraIsActive":{"auraId":{"spellId":402877}}}}},"castSpell":{"spellId":{"spellId":18499}}}}, - {"action":{"condition":{"and":{"vals":[{"auraIsActive":{"auraId":{"spellId":7887,"rank":2}}},{"cmp":{"op":"OpLe","lhs":{"currentRage":{}},"rhs":{"const":{"val":"100"}}}}]}},"strictSequence":{"actions":[{"castSpell":{"spellId":{"spellId":2457}}},{"castSpell":{"spellId":{"spellId":7887,"rank":2}}},{"castSpell":{"spellId":{"spellId":2458}}}]}}}, - {"action":{"condition":{"cmp":{"op":"OpGt","lhs":{"numberTargets":{}},"rhs":{"const":{"val":"1"}}}},"castSpell":{"spellId":{"spellId":1680}}}}, - {"action":{"castSpell":{"spellId":{"spellId":12294,"rank":1}}}}, - {"action":{"condition":{"or":{"vals":[{"auraIsActive":{"auraId":{"spellId":413399}}},{"cmp":{"op":"OpLt","lhs":{"spellCastTime":{"spellId":{"spellId":8820,"rank":2}}},"rhs":{"const":{"val":"0.1s"}}}}]}},"castSpell":{"spellId":{"spellId":8820,"rank":2}}}}, - {"action":{"condition":{"cmp":{"op":"OpGe","lhs":{"spellTimeToReady":{"spellId":{"spellId":12294,"rank":1}}},"rhs":{"const":{"val":"1.5s"}}}},"castSpell":{"spellId":{"spellId":402911}}}}, - {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpGe","lhs":{"spellTimeToReady":{"spellId":{"spellId":12294,"rank":1}}},"rhs":{"const":{"val":"1.5s"}}}}]}},"castSpell":{"spellId":{"spellId":1680}}}}, - {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpGe","lhs":{"spellTimeToReady":{"spellId":{"spellId":12294,"rank":1}}},"rhs":{"const":{"val":"1.5s"}}}},{"cmp":{"op":"OpGe","lhs":{"spellTimeToReady":{"spellId":{"spellId":1680}}},"rhs":{"const":{"val":"1.5s"}}}},{"cmp":{"op":"OpGe","lhs":{"currentRage":{}},"rhs":{"const":{"val":"50"}}}}]}},"castSpell":{"spellId":{"spellId":429765}}}}, - {"action":{"condition":{"isExecutePhase":{"threshold":"E20"}},"castSpell":{"spellId":{"spellId":20660,"rank":3}}}}, - {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpGe","lhs":{"currentRage":{}},"rhs":{"const":{"val":"80"}}}},{"cmp":{"op":"OpGt","lhs":{"numberTargets":{}},"rhs":{"const":{"val":"1"}}}}]}},"castSpell":{"spellId":{"spellId":11608,"tag":1,"rank":3}}}}, - {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpGe","lhs":{"currentRage":{}},"rhs":{"const":{"val":"80"}}}},{"cmp":{"op":"OpEq","lhs":{"numberTargets":{}},"rhs":{"const":{"val":"1"}}}}]}},"castSpell":{"spellId":{"spellId":11565,"tag":1,"rank":6}}}} - ] -} \ No newline at end of file diff --git a/ui/warrior/apls/phase_2_fury.apl.json b/ui/warrior/apls/phase_2_fury.apl.json deleted file mode 100644 index 7e46503cb..000000000 --- a/ui/warrior/apls/phase_2_fury.apl.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "type": "TypeAPL", - "prepullActions": [ - {"action":{"castSpell":{"spellId":{"spellId":2458}}},"doAtValue":{"const":{"val":"-20s"}}}, - {"action":{"castSpell":{"spellId":{"otherId":"OtherActionPotion"}}},"doAtValue":{"const":{"val":"-0.5s"}}} - ], - "priorityList": [ - {"action":{"autocastOtherCooldowns":{}}}, - {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"31s"}}}},"castSpell":{"spellId":{"spellId":12328}}}}, - {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"31s"}}}},"castSpell":{"spellId":{"spellId":437368}}}}, - {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"20s"}}}},"castSpell":{"spellId":{"spellId":437377}}}}, - {"action":{"condition":{"not":{"val":{"auraIsActive":{"auraId":{"spellId":402877}}}}},"castSpell":{"spellId":{"spellId":2687}}}}, - {"action":{"condition":{"not":{"val":{"auraIsActive":{"auraId":{"spellId":402877}}}}},"castSpell":{"spellId":{"spellId":18499}}}}, - {"action":{"condition":{"isExecutePhase":{"threshold":"E20"}},"castSpell":{"spellId":{"spellId":20660,"rank":3}}}}, - {"action":{"condition":{"isExecutePhase":{"threshold":"E20"}},"castSpell":{"spellId":{"spellId":11565,"tag":1,"rank":6}}}}, - {"action":{"condition":{"cmp":{"op":"OpGt","lhs":{"numberTargets":{}},"rhs":{"const":{"val":"1"}}}},"castSpell":{"spellId":{"spellId":1680}}}}, - {"action":{"condition":{"cmp":{"op":"OpGt","lhs":{"auraNumStacks":{"auraId":{"spellId":425418}}},"rhs":{"const":{"val":"4"}}}},"castSpell":{"spellId":{"spellId":23894,"rank":4}}}}, - {"action":{"condition":{"or":{"vals":[{"auraIsActive":{"auraId":{"spellId":413399}}},{"cmp":{"op":"OpLt","lhs":{"spellCastTime":{"spellId":{"spellId":8820,"rank":2}}},"rhs":{"const":{"val":"0.1s"}}}}]}},"castSpell":{"spellId":{"spellId":8820,"rank":2}}}}, - {"action":{"condition":{"cmp":{"op":"OpGe","lhs":{"spellTimeToReady":{"spellId":{"spellId":23894,"rank":4}}},"rhs":{"const":{"val":"1.5s"}}}},"castSpell":{"spellId":{"spellId":402911}}}}, - {"action":{"condition":{"cmp":{"op":"OpGt","lhs":{"auraNumStacks":{"auraId":{"spellId":425418}}},"rhs":{"const":{"val":"4"}}}},"castSpell":{"spellId":{"spellId":1680}}}}, - {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpGe","lhs":{"spellTimeToReady":{"spellId":{"spellId":23894,"rank":4}}},"rhs":{"const":{"val":"1.5s"}}}},{"cmp":{"op":"OpGe","lhs":{"spellTimeToReady":{"spellId":{"spellId":1680}}},"rhs":{"const":{"val":"1.5s"}}}},{"cmp":{"op":"OpGe","lhs":{"currentRage":{}},"rhs":{"const":{"val":"50"}}}},{"cmp":{"op":"OpGt","lhs":{"auraNumStacks":{"auraId":{"spellId":425418}}},"rhs":{"const":{"val":"4"}}}}]}},"castSpell":{"spellId":{"spellId":429765}}}}, - {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpGe","lhs":{"currentRage":{}},"rhs":{"const":{"val":"50"}}}},{"cmp":{"op":"OpGt","lhs":{"numberTargets":{}},"rhs":{"const":{"val":"1"}}}},{"cmp":{"op":"OpGt","lhs":{"auraNumStacks":{"auraId":{"spellId":425418}}},"rhs":{"const":{"val":"4"}}}}]}},"castSpell":{"spellId":{"spellId":11608,"tag":1,"rank":3}}}}, - {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpGe","lhs":{"currentRage":{}},"rhs":{"const":{"val":"80"}}}},{"cmp":{"op":"OpEq","lhs":{"numberTargets":{}},"rhs":{"const":{"val":"1"}}}},{"cmp":{"op":"OpGt","lhs":{"auraNumStacks":{"auraId":{"spellId":425418}}},"rhs":{"const":{"val":"4"}}}}]}},"castSpell":{"spellId":{"spellId":11565,"tag":1,"rank":6}}}} - ] -} \ No newline at end of file diff --git a/ui/warrior/apls/phase_3_arms.apl.json b/ui/warrior/apls/phase_3_arms.apl.json deleted file mode 100644 index 799d757e6..000000000 --- a/ui/warrior/apls/phase_3_arms.apl.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "type": "TypeAPL", - "prepullActions": [ - {"action":{"castSpell":{"spellId":{"spellId":2458}}},"doAtValue":{"const":{"val":"-20s"}}}, - {"action":{"castSpell":{"spellId":{"otherId":"OtherActionPotion"}}},"doAtValue":{"const":{"val":"-0.5s"}}} - ], - "priorityList": [ - {"action":{"condition":{"not":{"val":{"auraIsActive":{"auraId":{"spellId":402877}}}}},"castSpell":{"spellId":{"spellId":2687}}}}, - {"action":{"condition":{"not":{"val":{"and":{"vals":[{"auraIsActive":{"auraId":{"spellId":402877}}},{"cmp":{"op":"OpLe","lhs":{"currentRage":{}},"rhs":{"const":{"val":"100"}}}}]}}}},"strictSequence":{"actions":[{"castSpell":{"spellId":{"spellId":2458}}},{"castSpell":{"spellId":{"spellId":18499}}},{"castSpell":{"spellId":{"spellId":2457}}}]}}}, - {"action":{"autocastOtherCooldowns":{}}}, - {"action":{"castSpell":{"spellId":{"spellId":11584,"rank":3}}}}, - {"action":{"condition":{"cmp":{"op":"OpGt","lhs":{"numberTargets":{}},"rhs":{"const":{"val":"1"}}}},"castSpell":{"spellId":{"spellId":1680}}}}, - {"action":{"condition":{"not":{"val":{"and":{"vals":[{"cmp":{"op":"OpGt","lhs":{"numberTargets":{}},"rhs":{"const":{"val":"1"}}}},{"cmp":{"op":"OpLe","lhs":{"currentRage":{}},"rhs":{"const":{"val":"100"}}}}]}}}},"strictSequence":{"actions":[{"castSpell":{"spellId":{"spellId":2458}}},{"castSpell":{"spellId":{"spellId":1680}}},{"castSpell":{"spellId":{"spellId":2457}}}]}}}, - {"action":{"castSpell":{"spellId":{"spellId":21551,"rank":2}}}}, - {"action":{"condition":{"or":{"vals":[{"auraIsActive":{"auraId":{"spellId":413399}}},{"cmp":{"op":"OpLt","lhs":{"spellCastTime":{"spellId":{"spellId":11604,"rank":3}}},"rhs":{"const":{"val":"0.1s"}}}}]}},"castSpell":{"spellId":{"spellId":11604,"rank":3}}}}, - {"action":{"condition":{"cmp":{"op":"OpGe","lhs":{"spellTimeToReady":{"spellId":{"spellId":21551,"rank":2}}},"rhs":{"const":{"val":"1.5s"}}}},"castSpell":{"spellId":{"spellId":402911}}}}, - {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpGe","lhs":{"spellTimeToReady":{"spellId":{"spellId":21551,"rank":2}}},"rhs":{"const":{"val":"1.5s"}}}},{"cmp":{"op":"OpLe","lhs":{"currentRage":{}},"rhs":{"const":{"val":"100"}}}}]}},"castSpell":{"spellId":{"spellId":1680}}}}, - {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpGe","lhs":{"spellTimeToReady":{"spellId":{"spellId":21551,"rank":2}}},"rhs":{"const":{"val":"1.5s"}}}},{"cmp":{"op":"OpGe","lhs":{"spellTimeToReady":{"spellId":{"spellId":1680}}},"rhs":{"const":{"val":"1.5s"}}}},{"cmp":{"op":"OpGe","lhs":{"currentRage":{}},"rhs":{"const":{"val":"50"}}}}]}},"castSpell":{"spellId":{"spellId":429765}}}}, - {"action":{"condition":{"isExecutePhase":{"threshold":"E20"}},"castSpell":{"spellId":{"spellId":20661,"rank":4}}}}, - {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpGe","lhs":{"currentRage":{}},"rhs":{"const":{"val":"80"}}}},{"cmp":{"op":"OpGt","lhs":{"numberTargets":{}},"rhs":{"const":{"val":"1"}}}}]}},"castSpell":{"spellId":{"spellId":11609,"tag":1,"rank":4}}}}, - {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpGe","lhs":{"currentRage":{}},"rhs":{"const":{"val":"80"}}}},{"cmp":{"op":"OpEq","lhs":{"numberTargets":{}},"rhs":{"const":{"val":"1"}}}}]}},"castSpell":{"spellId":{"spellId":11566,"tag":1,"rank":7}}}} - ] -} \ No newline at end of file diff --git a/ui/warrior/apls/phase_3_fury.apl.json b/ui/warrior/apls/phase_3_fury.apl.json deleted file mode 100644 index db8a94317..000000000 --- a/ui/warrior/apls/phase_3_fury.apl.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "type": "TypeAPL", - "prepullActions": [ - {"action":{"castSpell":{"spellId":{"spellId":2458}}},"doAtValue":{"const":{"val":"-20s"}}}, - {"action":{"castSpell":{"spellId":{"otherId":"OtherActionPotion"}}},"doAtValue":{"const":{"val":"-0.5s"}}} - ], - "priorityList": [ - {"action":{"autocastOtherCooldowns":{}}}, - {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"31s"}}}},"castSpell":{"spellId":{"spellId":12328}}}}, - {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"31s"}}}},"castSpell":{"spellId":{"spellId":437368}}}}, - {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"20s"}}}},"castSpell":{"spellId":{"spellId":437377}}}}, - {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"61s"}}}},"castSpell":{"spellId":{"spellId":24427}}}}, - {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"16s"}}}},"castSpell":{"spellId":{"spellId":1719}}}}, - {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"26s"}}}},"castSpell":{"spellId":{"spellId":20572}}}}, - {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"11s"}}}},"castSpell":{"spellId":{"spellId":26297}}}}, - {"action":{"condition":{"and":{"vals":[{"runeIsEquipped":{"runeId":{"spellId":402877}}},{"not":{"val":{"auraIsActive":{"auraId":{"spellId":402877}}}}}]}},"castSpell":{"spellId":{"spellId":2687}}}}, - {"action":{"condition":{"and":{"vals":[{"not":{"val":{"runeIsEquipped":{"runeId":{"spellId":402877}}}}},{"cmp":{"op":"OpLt","lhs":{"currentRage":{}},"rhs":{"const":{"val":"20"}}}}]}},"castSpell":{"spellId":{"spellId":2687}}}}, - {"action":{"condition":{"and":{"vals":[{"runeIsEquipped":{"runeId":{"spellId":402877}}},{"not":{"val":{"auraIsActive":{"auraId":{"spellId":402877}}}}}]}},"castSpell":{"spellId":{"spellId":18499}}}}, - {"action":{"condition":{"isExecutePhase":{"threshold":"E20"}},"castSpell":{"spellId":{"spellId":20661,"rank":4}}}}, - {"action":{"condition":{"isExecutePhase":{"threshold":"E20"}},"castSpell":{"spellId":{"spellId":11566,"tag":1,"rank":7}}}}, - {"action":{"condition":{"cmp":{"op":"OpLt","lhs":{"auraRemainingTime":{"auraId":{"spellId":426940}}},"rhs":{"const":{"val":"3"}}}},"castSpell":{"spellId":{"spellId":426940}}}}, - {"action":{"condition":{"cmp":{"op":"OpGt","lhs":{"numberTargets":{}},"rhs":{"const":{"val":"1"}}}},"castSpell":{"spellId":{"spellId":1680}}}}, - {"action":{"condition":{"cmp":{"op":"OpGt","lhs":{"auraNumStacks":{"auraId":{}}},"rhs":{"const":{"val":"4"}}}},"castSpell":{"spellId":{"spellId":23894,"rank":4}}}}, - {"action":{"condition":{"and":{"vals":[{"runeIsEquipped":{"runeId":{"spellId":403195}}},{"or":{"vals":[{"auraIsActive":{"auraId":{"spellId":412513}}},{"auraIsActive":{"auraId":{"spellId":71}}}]}}]}},"castSpell":{"spellId":{"spellId":11596,"rank":4}}}}, - {"action":{"condition":{"or":{"vals":[{"auraIsActive":{"auraId":{"spellId":413399}}},{"cmp":{"op":"OpLt","lhs":{"spellCastTime":{"spellId":{"spellId":11604,"rank":3}}},"rhs":{"const":{"val":"0.1s"}}}}]}},"castSpell":{"spellId":{"spellId":11604,"rank":3}}}}, - {"action":{"condition":{"cmp":{"op":"OpGe","lhs":{"spellTimeToReady":{"spellId":{"spellId":23894,"rank":4}}},"rhs":{"const":{"val":"1.5s"}}}},"castSpell":{"spellId":{"spellId":402911}}}}, - {"action":{"condition":{"cmp":{"op":"OpGt","lhs":{"currentRage":{}},"rhs":{"const":{"val":"50"}}}},"castSpell":{"spellId":{"spellId":1680}}}}, - {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpGe","lhs":{"spellTimeToReady":{"spellId":{"spellId":23894,"rank":4}}},"rhs":{"const":{"val":"1.5s"}}}},{"cmp":{"op":"OpGe","lhs":{"spellTimeToReady":{"spellId":{"spellId":1680}}},"rhs":{"const":{"val":"1.5s"}}}},{"cmp":{"op":"OpGe","lhs":{"currentRage":{}},"rhs":{"const":{"val":"50"}}}},{"or":{"vals":[{"not":{"val":{"runeIsEquipped":{"runeId":{"spellId":425418}}}}},{"cmp":{"op":"OpGt","lhs":{"auraNumStacks":{"auraId":{"spellId":425415}}},"rhs":{"const":{"val":"4"}}}}]}}]}},"castSpell":{"spellId":{"spellId":429765}}}}, - {"action":{"condition":{"and":{"vals":[{"runeIsEquipped":{"runeId":{"spellId":425418}}},{"cmp":{"op":"OpGe","lhs":{"currentRage":{}},"rhs":{"const":{"val":"80"}}}},{"cmp":{"op":"OpGt","lhs":{"numberTargets":{}},"rhs":{"const":{"val":"1"}}}},{"cmp":{"op":"OpGt","lhs":{"auraNumStacks":{"auraId":{"spellId":425415}}},"rhs":{"const":{"val":"4"}}}}]}},"castSpell":{"spellId":{"spellId":11609,"tag":1,"rank":4}}}}, - {"action":{"condition":{"and":{"vals":[{"not":{"val":{"runeIsEquipped":{"runeId":{"spellId":425418}}}}},{"cmp":{"op":"OpGe","lhs":{"currentRage":{}},"rhs":{"const":{"val":"50"}}}},{"cmp":{"op":"OpGt","lhs":{"numberTargets":{}},"rhs":{"const":{"val":"1"}}}}]}},"castSpell":{"spellId":{"spellId":11609,"tag":1,"rank":4}}}}, - {"action":{"condition":{"and":{"vals":[{"runeIsEquipped":{"runeId":{"spellId":425418}}},{"cmp":{"op":"OpGe","lhs":{"currentRage":{}},"rhs":{"const":{"val":"80"}}}},{"cmp":{"op":"OpEq","lhs":{"numberTargets":{}},"rhs":{"const":{"val":"1"}}}},{"cmp":{"op":"OpGt","lhs":{"auraNumStacks":{"auraId":{"spellId":425415}}},"rhs":{"const":{"val":"4"}}}}]}},"castSpell":{"spellId":{"spellId":11566,"tag":1,"rank":7}}}}, - {"action":{"condition":{"and":{"vals":[{"not":{"val":{"runeIsEquipped":{"runeId":{"spellId":425418}}}}},{"cmp":{"op":"OpGe","lhs":{"currentRage":{}},"rhs":{"const":{"val":"50"}}}},{"cmp":{"op":"OpEq","lhs":{"numberTargets":{}},"rhs":{"const":{"val":"1"}}}}]}},"castSpell":{"spellId":{"spellId":11566,"tag":1,"rank":7}}}} - ] -} \ No newline at end of file diff --git a/ui/warrior/apls/phase_3_glad.apl.json b/ui/warrior/apls/phase_3_glad.apl.json deleted file mode 100644 index 86394ed3a..000000000 --- a/ui/warrior/apls/phase_3_glad.apl.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "type": "TypeAPL", - "prepullActions": [ - {"action":{"castSpell":{"spellId":{"spellId":412513}}},"doAtValue":{"const":{"val":"-20s"}}}, - {"action":{"castSpell":{"spellId":{"otherId":"OtherActionPotion"}}},"doAtValue":{"const":{"val":"-0.5s"}}} - ], - "priorityList": [ - {"action":{"autocastOtherCooldowns":{}}}, - {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"31s"}}}},"castSpell":{"spellId":{"spellId":12328}}}}, - {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"31s"}}}},"castSpell":{"spellId":{"spellId":437368}}}}, - {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"20s"}}}},"castSpell":{"spellId":{"spellId":437377}}}}, - {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"61s"}}}},"castSpell":{"spellId":{"spellId":24427}}}}, - {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"16s"}}}},"castSpell":{"spellId":{"spellId":1719}}}}, - {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"26s"}}}},"castSpell":{"spellId":{"spellId":20572}}}}, - {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"11s"}}}},"castSpell":{"spellId":{"spellId":26297}}}}, - {"action":{"condition":{"and":{"vals":[{"runeIsEquipped":{"runeId":{"spellId":402877}}},{"not":{"val":{"auraIsActive":{"auraId":{"spellId":402877}}}}}]}},"castSpell":{"spellId":{"spellId":2687}}}}, - {"action":{"condition":{"and":{"vals":[{"not":{"val":{"runeIsEquipped":{"runeId":{"spellId":402877}}}}},{"cmp":{"op":"OpLt","lhs":{"currentRage":{}},"rhs":{"const":{"val":"20"}}}}]}},"castSpell":{"spellId":{"spellId":2687}}}}, - {"action":{"condition":{"and":{"vals":[{"runeIsEquipped":{"runeId":{"spellId":402877}}},{"not":{"val":{"auraIsActive":{"auraId":{"spellId":402877}}}}}]}},"castSpell":{"spellId":{"spellId":18499}}}}, - {"action":{"condition":{"isExecutePhase":{"threshold":"E20"}},"castSpell":{"spellId":{"spellId":20661,"rank":4}}}}, - {"hide":true,"action":{"condition":{"isExecutePhase":{"threshold":"E20"}},"castSpell":{"spellId":{"spellId":11566,"tag":1,"rank":7}}}}, - {"action":{"condition":{"cmp":{"op":"OpLt","lhs":{"auraRemainingTime":{"auraId":{"spellId":426940}}},"rhs":{"const":{"val":"3"}}}},"castSpell":{"spellId":{"spellId":426940}}}}, - {"action":{"condition":{"cmp":{"op":"OpGt","lhs":{"numberTargets":{}},"rhs":{"const":{"val":"1"}}}},"castSpell":{"spellId":{"spellId":1680}}}}, - {"action":{"condition":{"cmp":{"op":"OpGt","lhs":{"auraNumStacks":{"auraId":{}}},"rhs":{"const":{"val":"4"}}}},"castSpell":{"spellId":{"spellId":23894,"rank":4}}}}, - {"action":{"condition":{"or":{"vals":[{"auraIsActive":{"auraId":{"spellId":413399}}},{"cmp":{"op":"OpLt","lhs":{"spellCastTime":{"spellId":{"spellId":11604,"rank":3}}},"rhs":{"const":{"val":"0.1s"}}}}]}},"castSpell":{"spellId":{"spellId":11604,"rank":3}}}}, - {"action":{"condition":{"and":{"vals":[{"runeIsEquipped":{"runeId":{"spellId":403195}}},{"or":{"vals":[{"auraIsActive":{"auraId":{"spellId":412513}}},{"auraIsActive":{"auraId":{"spellId":71}}}]}}]}},"castSpell":{"spellId":{"spellId":11596,"rank":4}}}}, - {"action":{"condition":{"cmp":{"op":"OpGe","lhs":{"spellTimeToReady":{"spellId":{"spellId":23894,"rank":4}}},"rhs":{"const":{"val":"1.5s"}}}},"castSpell":{"spellId":{"spellId":402911}}}}, - {"action":{"condition":{"cmp":{"op":"OpGt","lhs":{"currentRage":{}},"rhs":{"const":{"val":"50"}}}},"castSpell":{"spellId":{"spellId":1680}}}}, - {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpGe","lhs":{"spellTimeToReady":{"spellId":{"spellId":23894,"rank":4}}},"rhs":{"const":{"val":"1.5s"}}}},{"cmp":{"op":"OpGe","lhs":{"spellTimeToReady":{"spellId":{"spellId":1680}}},"rhs":{"const":{"val":"1.5s"}}}},{"cmp":{"op":"OpGe","lhs":{"currentRage":{}},"rhs":{"const":{"val":"50"}}}},{"or":{"vals":[{"not":{"val":{"runeIsEquipped":{"runeId":{"spellId":425418}}}}},{"cmp":{"op":"OpGt","lhs":{"auraNumStacks":{"auraId":{"spellId":425415}}},"rhs":{"const":{"val":"4"}}}}]}}]}},"castSpell":{"spellId":{"spellId":429765}}}}, - {"action":{"condition":{"and":{"vals":[{"runeIsEquipped":{"runeId":{"spellId":425418}}},{"cmp":{"op":"OpGe","lhs":{"currentRage":{}},"rhs":{"const":{"val":"80"}}}},{"cmp":{"op":"OpGt","lhs":{"numberTargets":{}},"rhs":{"const":{"val":"1"}}}},{"cmp":{"op":"OpGt","lhs":{"auraNumStacks":{"auraId":{"spellId":425415}}},"rhs":{"const":{"val":"4"}}}}]}},"castSpell":{"spellId":{"spellId":11609,"tag":1,"rank":4}}}}, - {"action":{"condition":{"and":{"vals":[{"not":{"val":{"runeIsEquipped":{"runeId":{"spellId":425418}}}}},{"cmp":{"op":"OpGe","lhs":{"currentRage":{}},"rhs":{"const":{"val":"50"}}}},{"cmp":{"op":"OpGt","lhs":{"numberTargets":{}},"rhs":{"const":{"val":"1"}}}}]}},"castSpell":{"spellId":{"spellId":11609,"tag":1,"rank":4}}}}, - {"action":{"condition":{"and":{"vals":[{"runeIsEquipped":{"runeId":{"spellId":425418}}},{"cmp":{"op":"OpGe","lhs":{"currentRage":{}},"rhs":{"const":{"val":"80"}}}},{"cmp":{"op":"OpEq","lhs":{"numberTargets":{}},"rhs":{"const":{"val":"1"}}}},{"cmp":{"op":"OpGt","lhs":{"auraNumStacks":{"auraId":{"spellId":425415}}},"rhs":{"const":{"val":"4"}}}}]}},"castSpell":{"spellId":{"spellId":11566,"tag":1,"rank":7}}}}, - {"action":{"condition":{"and":{"vals":[{"not":{"val":{"runeIsEquipped":{"runeId":{"spellId":425418}}}}},{"cmp":{"op":"OpGe","lhs":{"currentRage":{}},"rhs":{"const":{"val":"50"}}}},{"cmp":{"op":"OpEq","lhs":{"numberTargets":{}},"rhs":{"const":{"val":"1"}}}}]}},"castSpell":{"spellId":{"spellId":11566,"tag":1,"rank":7}}}} - ] -} \ No newline at end of file diff --git a/ui/warrior/apls/phase_4_fury.apl.json b/ui/warrior/apls/phase_4_fury.apl.json deleted file mode 100644 index 9ebab7203..000000000 --- a/ui/warrior/apls/phase_4_fury.apl.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "type": "TypeAPL", - "prepullActions": [ - {"action":{"castSpell":{"spellId":{"spellId":412513}}},"doAtValue":{"const":{"val":"-2s"}}}, - {"action":{"castSpell":{"spellId":{"spellId":2458}}},"doAtValue":{"const":{"val":"-1s"}}}, - {"action":{"castSpell":{"spellId":{"spellId":24427}}},"doAtValue":{"const":{"val":"-1s"}}} - ], - "priorityList": [ - {"action":{"condition":{"or":{"vals":[{"cmp":{"op":"OpLe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"25s"}}}},{"cmp":{"op":"OpGt","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"2m25s"}}}}]}},"castSpell":{"spellId":{"itemId":13442}}}}, - {"action":{"condition":{"and":{"vals":[{"auraIsKnown":{"auraId":{"spellId":457816}}},{"cmp":{"op":"OpLe","lhs":{"auraRemainingTime":{"auraId":{"spellId":457816}}},"rhs":{"const":{"val":"4s"}}}},{"cmp":{"op":"OpLe","lhs":{"currentRage":{}},"rhs":{"const":{"val":"80"}}}}]}},"castSpell":{"spellId":{"spellId":2458}}}}, - {"action":{"condition":{"and":{"vals":[{"auraIsKnown":{"auraId":{"spellId":457817}}},{"cmp":{"op":"OpLe","lhs":{"auraRemainingTime":{"auraId":{"spellId":457817}}},"rhs":{"const":{"val":"4s"}}}},{"cmp":{"op":"OpLe","lhs":{"currentRage":{}},"rhs":{"const":{"val":"80"}}}}]}},"castSpell":{"spellId":{"spellId":412513}}}}, - {"action":{"condition":{"or":{"vals":[{"cmp":{"op":"OpLe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"35s"}}}},{"cmp":{"op":"OpGt","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"155s"}}}}]}},"castSpell":{"spellId":{"spellId":426940}}}}, - {"action":{"condition":{"or":{"vals":[{"cmp":{"op":"OpLe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"31s"}}}},{"cmp":{"op":"OpGt","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"211"}}}}]}},"castSpell":{"spellId":{"spellId":12328}}}}, - {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"25s"}}}},"autocastOtherCooldowns":{}}}, - {"action":{"condition":{"or":{"vals":[{"cmp":{"op":"OpLe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"61s"}}}},{"cmp":{"op":"OpGe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"7m1s"}}}}]}},"castSpell":{"spellId":{"spellId":24427}}}}, - {"action":{"condition":{"or":{"vals":[{"cmp":{"op":"OpLe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"25s"}}}},{"cmp":{"op":"OpGt","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"205s"}}}}]}},"castSpell":{"spellId":{"spellId":1719}}}}, - {"action":{"condition":{"or":{"vals":[{"cmp":{"op":"OpLe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"26s"}}}},{"cmp":{"op":"OpGt","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"146s"}}}}]}},"castSpell":{"spellId":{"spellId":20572}}}}, - {"action":{"condition":{"or":{"vals":[{"cmp":{"op":"OpLe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"25s"}}}},{"cmp":{"op":"OpGt","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"205s"}}}}]}},"castSpell":{"spellId":{"spellId":26297}}}}, - {"action":{"condition":{"cmp":{"op":"OpGe","lhs":{"numberTargets":{}},"rhs":{"const":{"val":"2"}}}},"castSpell":{"spellId":{"spellId":20569,"tag":1,"rank":5}}}}, - {"action":{"condition":{"cmp":{"op":"OpGe","lhs":{"numberTargets":{}},"rhs":{"const":{"val":"2"}}}},"castSpell":{"spellId":{"spellId":1680}}}}, - {"action":{"condition":{"cmp":{"op":"OpEq","lhs":{"numberTargets":{}},"rhs":{"const":{"val":"1"}}}},"castSpell":{"spellId":{"spellId":25286,"tag":1,"rank":9}}}}, - {"action":{"condition":{"and":{"vals":[{"runeIsEquipped":{"runeId":{"spellId":440113}}},{"auraIsActive":{"auraId":{"spellId":440114}}},{"cmp":{"op":"OpGe","lhs":{"currentRage":{}},"rhs":{"const":{"val":"55"}}}}]}},"castSpell":{"spellId":{"spellId":20662,"rank":5}}}}, - {"action":{"condition":{"and":{"vals":[{"runeIsEquipped":{"runeId":{"spellId":413380}}},{"auraIsActive":{"auraId":{"spellId":413399}}}]}},"castSpell":{"spellId":{"spellId":11605,"rank":4}}}}, - {"action":{"castSpell":{"spellId":{"spellId":23894,"rank":4}}}}, - {"action":{"condition":{"isExecutePhase":{"threshold":"E20"}},"castSpell":{"spellId":{"spellId":20662,"rank":5}}}}, - {"action":{"castSpell":{"spellId":{"spellId":11585,"rank":4}}}}, - {"action":{"castSpell":{"spellId":{"spellId":1680}}}}, - {"action":{"castSpell":{"spellId":{"spellId":402911}}}}, - {"action":{"condition":{"and":{"vals":[{"runeIsEquipped":{"runeId":{"spellId":412507}}},{"not":{"val":{"dotIsActive":{"spellId":{"spellId":11574,"rank":7}}}}}]}},"castSpell":{"spellId":{"spellId":11574,"rank":7}}}}, - {"action":{"condition":{"and":{"vals":[{"auraIsKnown":{"auraId":{"spellId":464241}}},{"auraIsActive":{"auraId":{"spellId":412513}}},{"cmp":{"op":"OpLe","lhs":{"currentRage":{}},"rhs":{"const":{"val":"60"}}}}]}},"castSpell":{"spellId":{"spellId":2458}}}}, - {"action":{"condition":{"and":{"vals":[{"auraIsKnown":{"auraId":{"spellId":464241}}},{"auraIsActive":{"auraId":{"spellId":2458}}},{"cmp":{"op":"OpLe","lhs":{"currentRage":{}},"rhs":{"const":{"val":"60"}}}}]}},"castSpell":{"spellId":{"spellId":412513}}}}, - {"action":{"castSpell":{"spellId":{"spellId":2687}}}}, - {"action":{"castSpell":{"spellId":{"spellId":27584,"rank":3}}}} - ] -} diff --git a/ui/warrior/apls/phase_4_glad.apl.json b/ui/warrior/apls/phase_4_glad.apl.json deleted file mode 100644 index 3db156b0d..000000000 --- a/ui/warrior/apls/phase_4_glad.apl.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "type": "TypeAPL", - "prepullActions": [ - {"action":{"castSpell":{"spellId":{"spellId":2458}}},"doAtValue":{"const":{"val":"-2s"}}}, - {"action":{"castSpell":{"spellId":{"spellId":412513}}},"doAtValue":{"const":{"val":"-1s"}}} - ], - "priorityList": [ - {"action":{"condition":{"not":{"val":{"auraIsActive":{"auraId":{"spellId":412513}}}}},"castSpell":{"spellId":{"spellId":412513}}}}, - {"action":{"condition":{"and":{"vals":[{"auraIsKnown":{"auraId":{"spellId":457816}}},{"cmp":{"op":"OpLe","lhs":{"auraRemainingTime":{"auraId":{"spellId":457816}}},"rhs":{"const":{"val":"4s"}}}},{"cmp":{"op":"OpLe","lhs":{"currentRage":{}},"rhs":{"const":{"val":"65"}}}}]}},"castSpell":{"spellId":{"spellId":2458}}}}, - {"action":{"condition":{"or":{"vals":[{"cmp":{"op":"OpLe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"25s"}}}},{"cmp":{"op":"OpGt","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"2m25s"}}}}]}},"castSpell":{"spellId":{"itemId":13442}}}}, - {"action":{"castSpell":{"spellId":{"spellId":2687}}}}, - {"action":{"condition":{"or":{"vals":[{"cmp":{"op":"OpLe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"35s"}}}},{"cmp":{"op":"OpGt","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"155s"}}}}]}},"castSpell":{"spellId":{"spellId":426940}}}}, - {"action":{"condition":{"or":{"vals":[{"cmp":{"op":"OpLe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"31s"}}}},{"cmp":{"op":"OpGt","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"211"}}}}]}},"castSpell":{"spellId":{"spellId":12328}}}}, - {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"25s"}}}},"autocastOtherCooldowns":{}}}, - {"action":{"condition":{"or":{"vals":[{"cmp":{"op":"OpLe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"61s"}}}},{"cmp":{"op":"OpGe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"7m1s"}}}}]}},"castSpell":{"spellId":{"spellId":24427}}}}, - {"action":{"condition":{"or":{"vals":[{"cmp":{"op":"OpLe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"25s"}}}},{"cmp":{"op":"OpGt","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"205s"}}}}]}},"castSpell":{"spellId":{"spellId":1719}}}}, - {"action":{"condition":{"or":{"vals":[{"cmp":{"op":"OpLe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"26s"}}}},{"cmp":{"op":"OpGt","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"146s"}}}}]}},"castSpell":{"spellId":{"spellId":20572}}}}, - {"action":{"condition":{"or":{"vals":[{"cmp":{"op":"OpLe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"25s"}}}},{"cmp":{"op":"OpGt","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"205s"}}}}]}},"castSpell":{"spellId":{"spellId":26297}}}}, - {"action":{"condition":{"cmp":{"op":"OpGe","lhs":{"numberTargets":{}},"rhs":{"const":{"val":"2"}}}},"castSpell":{"spellId":{"spellId":20569,"tag":1,"rank":5}}}}, - {"action":{"condition":{"cmp":{"op":"OpGe","lhs":{"numberTargets":{}},"rhs":{"const":{"val":"2"}}}},"castSpell":{"spellId":{"spellId":1680}}}}, - {"action":{"castSpell":{"spellId":{"spellId":25286,"tag":1,"rank":9}}}}, - {"action":{"castSpell":{"spellId":{"spellId":20662,"rank":5}}}}, - {"action":{"castSpell":{"spellId":{"spellId":23894,"rank":4}}}}, - {"action":{"condition":{"and":{}},"castSpell":{"spellId":{"spellId":11585,"rank":4}}}}, - {"action":{"condition":{"and":{"vals":[{"runeIsEquipped":{"runeId":{"spellId":412507}}},{"not":{"val":{"dotIsActive":{"spellId":{"spellId":11574,"rank":7}}}}}]}},"castSpell":{"spellId":{"spellId":11574,"rank":7}}}}, - {"action":{"condition":{"and":{"vals":[{"auraIsKnown":{"auraId":{"spellId":464241}}},{"auraIsActive":{"auraId":{"spellId":412513}}},{"cmp":{"op":"OpLe","lhs":{"currentRage":{}},"rhs":{"const":{"val":"34"}}}}]}},"castSpell":{"spellId":{"spellId":2458}}}}, - {"action":{"castSpell":{"spellId":{"spellId":11597,"rank":5}}}}, - {"action":{"castSpell":{"spellId":{"spellId":402911}}}} - ] -} diff --git a/ui/warrior/apls/phase_5_2h.apl.json b/ui/warrior/apls/phase_5_2h.apl.json deleted file mode 100644 index 202d2233f..000000000 --- a/ui/warrior/apls/phase_5_2h.apl.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "type": "TypeAPL", - "prepullActions": [ - {"action":{"castSpell":{"spellId":{"spellId":2687}}},"doAtValue":{"const":{"val":"-5s"}}}, - {"action":{"castSpell":{"spellId":{"spellId":412513}}},"doAtValue":{"const":{"val":"-2s"}}}, - {"action":{"castSpell":{"spellId":{"spellId":24427}}},"doAtValue":{"const":{"val":"-1.5s"}}}, - {"action":{"castSpell":{"spellId":{"spellId":2458}}},"doAtValue":{"const":{"val":"-1s"}}} - ], - "priorityList": [ - {"action":{"condition":{"and":{"vals":[{"auraIsKnown":{"auraId":{"spellId":457816}}},{"cmp":{"op":"OpLe","lhs":{"auraRemainingTime":{"auraId":{"spellId":457816}}},"rhs":{"const":{"val":"3s"}}}}]}},"castSpell":{"spellId":{"spellId":412513}}}}, - {"action":{"condition":{"and":{"vals":[{"auraIsKnown":{"auraId":{"spellId":457708}}},{"cmp":{"op":"OpLe","lhs":{"auraRemainingTime":{"auraId":{"spellId":457708}}},"rhs":{"const":{"val":"3s"}}}}]}},"castSpell":{"spellId":{"spellId":2458}}}}, - {"action":{"castSpell":{"spellId":{"spellId":2687}}}}, - {"action":{"castSpell":{"spellId":{"itemId":13442}}}}, - {"action":{"condition":{"and":{"vals":[{"runeIsEquipped":{"runeId":{"spellId":412507}}},{"cmp":{"op":"OpLe","lhs":{"dotRemainingTime":{"spellId":{"spellId":11574,"rank":7}}},"rhs":{"const":{"val":"0"}}}}]}},"castSpell":{"spellId":{"spellId":11574,"rank":7}}}}, - {"action":{"castSpell":{"spellId":{"spellId":12328}}}}, - {"action":{"castSpell":{"spellId":{"spellId":1719}}}}, - {"action":{"condition":{"or":{"vals":[{"auraIsActive":{"auraId":{"spellId":1719}}},{"not":{"val":{"spellIsReady":{"spellId":{"spellId":1719}}}}}]}},"castSpell":{"spellId":{"spellId":426940}}}}, - {"action":{"autocastOtherCooldowns":{}}}, - {"action":{"condition":{"and":{"vals":[{"auraIsKnown":{"auraId":{"spellId":464241}}},{"not":{"val":{"auraIsActive":{"auraId":{"spellId":464241}}}}},{"auraIsActive":{"auraId":{"spellId":412513}}},{"cmp":{"op":"OpLe","lhs":{"currentRage":{}},"rhs":{"const":{"val":"35"}}}}]}},"castSpell":{"spellId":{"spellId":2458}}}}, - {"action":{"condition":{"and":{"vals":[{"auraIsKnown":{"auraId":{"spellId":464241}}},{"not":{"val":{"auraIsActive":{"auraId":{"spellId":464241}}}}},{"auraIsActive":{"auraId":{"spellId":2458}}},{"cmp":{"op":"OpLe","lhs":{"currentRage":{}},"rhs":{"const":{"val":"35"}}}}]}},"castSpell":{"spellId":{"spellId":412513}}}}, - {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpGe","lhs":{"currentRage":{}},"rhs":{"const":{"val":"55"}}}},{"cmp":{"op":"OpLe","lhs":{"autoTimeToNext":{"autoType":"Melee"}},"rhs":{"const":{"val":"2.5"}}}}]}},"castSpell":{"spellId":{"spellId":20662,"rank":5}}}}, - {"action":{"condition":{"not":{"val":{"isExecutePhase":{"threshold":"E20"}}}},"castSpell":{"spellId":{"spellId":25286,"tag":1,"rank":9}}}}, - {"action":{"castSpell":{"spellId":{"spellId":11585,"rank":4}}}}, - {"action":{"castSpell":{"spellId":{"spellId":23894,"rank":4}}}}, - {"action":{"condition":{"and":{"vals":[{"auraIsKnown":{"auraId":{"spellId":413399}}},{"auraIsActive":{"auraId":{"spellId":413399}}}]}},"castSpell":{"spellId":{"spellId":11605,"rank":4}}}}, - {"action":{"castSpell":{"spellId":{"spellId":429765}}}} - ] -} diff --git a/ui/warrior/apls/phase_5_dw.apl.json b/ui/warrior/apls/phase_5_dw.apl.json deleted file mode 100644 index 321920ac7..000000000 --- a/ui/warrior/apls/phase_5_dw.apl.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "type": "TypeAPL", - "prepullActions": [ - {"action":{"castSpell":{"spellId":{"spellId":2687}}},"doAtValue":{"const":{"val":"-5s"}}}, - {"action":{"castSpell":{"spellId":{"spellId":412513}}},"doAtValue":{"const":{"val":"-2s"}}}, - {"action":{"castSpell":{"spellId":{"spellId":2458}}},"doAtValue":{"const":{"val":"-1s"}}}, - {"action":{"castSpell":{"spellId":{"spellId":24427}}},"doAtValue":{"const":{"val":"-1s"}}} - ], - "priorityList": [ - {"action":{"condition":{"and":{"vals":[{"auraIsKnown":{"auraId":{"spellId":457817}}},{"cmp":{"op":"OpLe","lhs":{"auraRemainingTime":{"auraId":{"spellId":457817}}},"rhs":{"const":{"val":"3s"}}}}]}},"castSpell":{"spellId":{"spellId":412513}}}}, - {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpLe","lhs":{"auraRemainingTime":{"auraId":{"spellId":457816}}},"rhs":{"const":{"val":"3s"}}}},{"cmp":{"op":"OpLe","lhs":{"auraRemainingTime":{"auraId":{"spellId":457816}}},"rhs":{"const":{"val":"3s"}}}}]}},"castSpell":{"spellId":{"spellId":2458}}}}, - {"action":{"condition":{"and":{"vals":[{"auraIsKnown":{"auraId":{"spellId":464241}}},{"auraIsActive":{"auraId":{"spellId":412513}}},{"cmp":{"op":"OpLe","lhs":{"currentRage":{}},"rhs":{"const":{"val":"60"}}}}]}},"castSpell":{"spellId":{"spellId":2458}}}}, - {"action":{"condition":{"and":{"vals":[{"auraIsKnown":{"auraId":{"spellId":464241}}},{"auraIsActive":{"auraId":{"spellId":2458}}},{"cmp":{"op":"OpLe","lhs":{"currentRage":{}},"rhs":{"const":{"val":"60"}}}}]}},"castSpell":{"spellId":{"spellId":412513}}}}, - {"action":{"castSpell":{"spellId":{"spellId":2687}}}}, - {"action":{"castSpell":{"spellId":{"itemId":13442}}}}, - {"action":{"castSpell":{"spellId":{"spellId":426940}}}}, - {"action":{"castSpell":{"spellId":{"spellId":12328}}}}, - {"action":{"autocastOtherCooldowns":{}}}, - {"action":{"castSpell":{"spellId":{"spellId":1719}}}}, - {"action":{"castSpell":{"spellId":{"spellId":25286,"tag":1,"rank":9}}}}, - {"action":{"condition":{"and":{"vals":[{"runeIsEquipped":{"runeId":{"spellId":412507}}},{"cmp":{"op":"OpLe","lhs":{"dotRemainingTime":{"spellId":{"spellId":11574,"rank":7}}},"rhs":{"const":{"val":"0"}}}}]}},"castSpell":{"spellId":{"spellId":11574,"rank":7}}}}, - {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpGe","lhs":{"currentRage":{}},"rhs":{"const":{"val":"75"}}}},{"cmp":{"op":"OpLe","lhs":{"autoTimeToNext":{"autoType":"Melee"}},"rhs":{"const":{"val":"2s"}}}}]}},"castSpell":{"spellId":{"spellId":20662,"rank":5}}}}, - {"action":{"castSpell":{"spellId":{"spellId":23894,"rank":4}}}}, - {"action":{"castSpell":{"spellId":{"spellId":11585,"rank":4}}}}, - {"action":{"condition":{"and":{"vals":[{"auraIsKnown":{"auraId":{"spellId":413399}}},{"auraIsActive":{"auraId":{"spellId":413399}}}]}},"castSpell":{"spellId":{"spellId":11605,"rank":4}}}}, - {"action":{"castSpell":{"spellId":{"spellId":1680}}}}, - {"action":{"castSpell":{"spellId":{"spellId":402911}}}}, - {"action":{"castSpell":{"spellId":{"spellId":27584,"rank":3}}}} - ] -} \ No newline at end of file diff --git a/ui/warrior/gear_sets/blank.gear.json b/ui/warrior/gear_sets/blank.gear.json deleted file mode 100644 index 4bcab0861..000000000 --- a/ui/warrior/gear_sets/blank.gear.json +++ /dev/null @@ -1 +0,0 @@ -{"items": []} \ No newline at end of file diff --git a/ui/warrior/gear_sets/p0.bis.gear.json b/ui/warrior/gear_sets/p0.bis.gear.json new file mode 100644 index 000000000..c45cbee9a --- /dev/null +++ b/ui/warrior/gear_sets/p0.bis.gear.json @@ -0,0 +1,22 @@ +{ + "items": [ + {"id":16731}, + {}, + {"id":16733}, + {}, + {"id":16730}, + {"id":16735}, + {"id":16737}, + {"id":16736}, + {"id":16732}, + {"id":16734}, + {}, + {}, + {}, + {}, + {}, + {}, + {} + ] + } + \ No newline at end of file diff --git a/ui/warrior/gear_sets/p1.bis.gear.json b/ui/warrior/gear_sets/p1.bis.gear.json new file mode 100644 index 000000000..cf22bce0f --- /dev/null +++ b/ui/warrior/gear_sets/p1.bis.gear.json @@ -0,0 +1,21 @@ +{ + "items": [ + {"id":16866}, + {}, + {"id":16868}, + {}, + {"id":16865}, + {"id":16861}, + {"id":16863}, + {"id":16864}, + {"id":16867}, + {"id":16862}, + {}, + {}, + {}, + {}, + {}, + {}, + {} + ] + } \ No newline at end of file diff --git a/ui/warrior/presets.ts b/ui/warrior/presets.ts index f2beb0e11..cb08d19d1 100644 --- a/ui/warrior/presets.ts +++ b/ui/warrior/presets.ts @@ -23,17 +23,9 @@ import { } from '../core/proto/common.js'; import { SavedTalents } from '../core/proto/ui.js'; import { Warrior_Options as WarriorOptions, WarriorShout, WarriorStance } from '../core/proto/warrior.js'; -import Phase1APLArms from './apls/phase_1_arms.apl.json'; -import Phase2APLArms from './apls/phase_2_arms.apl.json'; -import Phase2APLFury from './apls/phase_2_fury.apl.json'; -import Phase3APLArms from './apls/phase_3_arms.apl.json'; -import Phase3APLFury from './apls/phase_3_fury.apl.json'; -import Phase3APLGlad from './apls/phase_3_glad.apl.json'; -import Phase4APLFury from './apls/phase_4_fury.apl.json'; -import Phase4APLGlad from './apls/phase_4_glad.apl.json'; -import Phase5APL2H from './apls/phase_5_2h.apl.json'; -import Phase5APLDW from './apls/phase_5_dw.apl.json'; -import BlankGear from './gear_sets/blank.gear.json'; +import P1APL from './apls/p1.apl.json'; +import P0BISGear from './gear_sets/p0.bis.gear.json'; +import P1BISGear from './gear_sets/p1.bis.gear.json'; // Preset options for this spec. // Eventually we will import these values for the raid sim too, so its good to @@ -43,65 +35,27 @@ import BlankGear from './gear_sets/blank.gear.json'; // Gear Presets /////////////////////////////////////////////////////////////////////////// -export const GearBlank = PresetUtils.makePresetGear('Blank', BlankGear); +export const GearP0BIS = PresetUtils.makePresetGear('Pre-BiS', P0BISGear); +export const GearP1BIS = PresetUtils.makePresetGear('P1 BiS', P1BISGear); -export const GearPresets = {}; +export const GearPresets = { + [Phase.Phase1]: [GearP0BIS, GearP1BIS], +}; -export const DefaultGear = GearBlank; +export const DefaultGear = GearP0BIS; /////////////////////////////////////////////////////////////////////////// // APL Presets /////////////////////////////////////////////////////////////////////////// -export const APLPhase1Arms = PresetUtils.makePresetAPLRotation('P1 Arms', Phase1APLArms, { customCondition: player => player.getLevel() === 25 }); - -export const APLPhase2Arms = PresetUtils.makePresetAPLRotation('P2 Arms', Phase2APLArms, { customCondition: player => player.getLevel() === 40 }); -export const APLPhase2Fury = PresetUtils.makePresetAPLRotation('P2 Fury', Phase2APLFury, { customCondition: player => player.getLevel() === 40 }); - -export const APLPhase3Arms = PresetUtils.makePresetAPLRotation('P3 Arms', Phase3APLArms, { customCondition: player => player.getLevel() === 50 }); -export const APLPhase3Fury = PresetUtils.makePresetAPLRotation('P3 Fury', Phase3APLFury, { customCondition: player => player.getLevel() === 50 }); -export const APLPhase3Glad = PresetUtils.makePresetAPLRotation('P3 Glad', Phase3APLGlad, { customCondition: player => player.getLevel() === 50 }); - -export const APLPhase4Fury = PresetUtils.makePresetAPLRotation('P4 Fury', Phase4APLFury, { customCondition: player => player.getLevel() === 60 }); -export const APLPhase4Glad = PresetUtils.makePresetAPLRotation('P4 Glad', Phase4APLGlad, { customCondition: player => player.getLevel() === 60 }); -// No arms rotation right now -export const APLPhase4Arms = APLPhase4Fury; - -export const APLPhase52H = PresetUtils.makePresetAPLRotation('Phase 5 2H', Phase5APL2H, { - customCondition: player => player.getLevel() === 60, -}); -export const APLPhase5DW = PresetUtils.makePresetAPLRotation('Phase 5 DW', Phase5APLDW, { - customCondition: player => player.getLevel() === 60, -}); +export const APLP1DPS = PresetUtils.makePresetAPLRotation('DPS', P1APL, { customCondition: player => player.getLevel() === 60 }); export const APLPresets = { - [Phase.Phase1]: [APLPhase1Arms], - [Phase.Phase2]: [APLPhase2Arms, APLPhase2Fury], - [Phase.Phase3]: [APLPhase3Arms, APLPhase3Fury, APLPhase3Glad], - [Phase.Phase4]: [APLPhase4Arms, APLPhase4Fury, APLPhase4Glad], - [Phase.Phase5]: [APLPhase52H, APLPhase5DW], + [Phase.Phase1]: [APLP1DPS], }; -export const DefaultAPLs: Record> = { - 25: { - 0: APLPresets[Phase.Phase1][0], - 1: APLPresets[Phase.Phase1][0], - 2: APLPresets[Phase.Phase1][0], - }, - 40: { - 0: APLPresets[Phase.Phase2][0], - 1: APLPresets[Phase.Phase2][1], - 2: APLPresets[Phase.Phase2][0], - }, - 50: { - 0: APLPresets[Phase.Phase3][0], - 1: APLPresets[Phase.Phase3][1], - 2: APLPresets[Phase.Phase3][0], - }, - 60: { - 0: APLPresets[Phase.Phase5][0], // 2H - 1: APLPresets[Phase.Phase5][1], // DW - }, +export const DefaultAPLs: Record = { + 60: APLPresets[Phase.Phase1][0], }; /////////////////////////////////////////////////////////////////////////// @@ -111,54 +65,15 @@ export const DefaultAPLs: Record player.getLevel() === 25, -}); - -export const TalentsPhase2Arms = PresetUtils.makePresetTalents('40 Arms', SavedTalents.create({ talentsString: '303050213525100001' }), { - customCondition: player => player.getLevel() === 40, -}); -export const TalentsPhase2Fury = PresetUtils.makePresetTalents('40 Fury', SavedTalents.create({ talentsString: '-05050005405010051' }), { - customCondition: player => player.getLevel() === 40, -}); - -export const TalentsPhase3Arms = PresetUtils.makePresetTalents('50 Arms', SavedTalents.create({ talentsString: '303050213520105001-0505' }), { - customCondition: player => player.getLevel() === 50, -}); -export const TalentsPhase3Fury = PresetUtils.makePresetTalents('50 Fury', SavedTalents.create({ talentsString: '303040003-0505000540501003' }), { - customCondition: player => player.getLevel() === 50, -}); -// Glad talents are identical to fury at the moment -export const TalentsPhase3Glad = TalentsPhase3Fury; - -export const TalentsPhase4Fury = PresetUtils.makePresetTalents('60 Fury DW', SavedTalents.create({ talentsString: '20305020302-05050005525010051' }), { - customCondition: player => player.getLevel() === 60, -}); -export const TalentsPhase4Glad = PresetUtils.makePresetTalents('60 Glad', SavedTalents.create({ talentsString: '30305020302-05050005025012251' }), { - customCondition: player => player.getLevel() === 60, -}); - -export const TalentsPhase52H = PresetUtils.makePresetTalents('60 Fury 2H', SavedTalents.create({ talentsString: '20305020332-55020005025010051' }), { +export const TalentsP1DPS = PresetUtils.makePresetTalents('DPS', SavedTalents.create({ talentsString: '20305020302-05050005525010051' }), { customCondition: player => player.getLevel() === 60, }); export const TalentPresets = { - [Phase.Phase1]: [TalentsPhase1], - [Phase.Phase2]: [TalentsPhase2Arms, TalentsPhase2Fury], - [Phase.Phase3]: [TalentsPhase3Arms, TalentsPhase3Fury, TalentsPhase3Glad], - [Phase.Phase4]: [TalentsPhase4Fury, TalentsPhase4Glad], - [Phase.Phase5]: [TalentsPhase52H, TalentsPhase4Fury], + [Phase.Phase1]: [TalentsP1DPS], }; -export const DefaultTalents2H = TalentPresets[Phase.Phase5][0]; -export const DefaultTalentsDW = TalentPresets[Phase.Phase5][1]; -// export const DefaultTalentsGlad = TalentPresets[Phase.Phase4][3]; - -export const DefaultTalents = DefaultTalents2H; - -export const PresetBuild2H = PresetUtils.makePresetBuild('Two-Handed', { gear: DefaultGear, talents: DefaultTalents2H, rotation: DefaultAPLs[60][0] }); -export const PresetBuildDW = PresetUtils.makePresetBuild('Dual-Wield', { gear: DefaultGear, talents: DefaultTalentsDW, rotation: DefaultAPLs[60][1] }); -// export const PresetBuildGlad = PresetUtils.makePresetBuild('Glad', { gear: DefaultGearGlad, talents: DefaultTalentsGlad, rotation: DefaultAPLs[60][3] }); +export const DefaultTalents = TalentPresets[Phase.Phase1][0]; /////////////////////////////////////////////////////////////////////////// // Options Presets diff --git a/ui/warrior/sim.ts b/ui/warrior/sim.ts index 116160046..679267e7b 100644 --- a/ui/warrior/sim.ts +++ b/ui/warrior/sim.ts @@ -111,79 +111,39 @@ const SPEC_CONFIG = registerSpecConfig(Spec.SpecWarrior, { presets: { // Preset talents that the user can quickly select. talents: [ - ...Presets.TalentPresets[Phase.Phase5], - ...Presets.TalentPresets[Phase.Phase4], - ...Presets.TalentPresets[Phase.Phase3], - ...Presets.TalentPresets[Phase.Phase2], ...Presets.TalentPresets[Phase.Phase1], ], // Preset rotations that the user can quickly select. rotations: [ - ...Presets.APLPresets[Phase.Phase5], - ...Presets.APLPresets[Phase.Phase4], - ...Presets.APLPresets[Phase.Phase3], - ...Presets.APLPresets[Phase.Phase2], ...Presets.APLPresets[Phase.Phase1], ], // Preset gear configurations that the user can quickly select. gear: [ - Presets.DefaultGear, + ...Presets.GearPresets[Phase.Phase1], ], // Preset builds that the user can quickly select. - builds: [Presets.PresetBuild2H, Presets.PresetBuildDW], + builds: [], }, autoRotation: player => { const level = player.getLevel(); const talentTree = player.getTalentTree(); - if (level < 60) { - return Presets.DefaultAPLs[level][talentTree].rotation.rotation!; - } - if (player.getEquippedItem(ItemSlot.ItemSlotMainHand)?._item.handType === HandType.HandTypeTwoHand) { - return Presets.DefaultAPLs[level][0].rotation.rotation!; + return Presets.DefaultAPLs[0].rotation.rotation!; } - return Presets.DefaultAPLs[level][1].rotation.rotation!; + return Presets.DefaultAPLs[0].rotation.rotation!; }, raidSimPresets: [ { spec: Spec.SpecWarrior, - tooltip: 'Arms Warrior', - defaultName: 'Arms', + tooltip: 'DPS Warrior', + defaultName: 'DPS', iconUrl: getSpecIcon(Class.ClassWarrior, 0), - talents: Presets.DefaultTalents2H.data, - specOptions: Presets.DefaultOptions, - consumes: Presets.DefaultConsumes, - defaultFactionRaces: { - [Faction.Unknown]: Race.RaceUnknown, - [Faction.Alliance]: Race.RaceHuman, - [Faction.Horde]: Race.RaceOrc, - }, - defaultGear: { - [Faction.Unknown]: {}, - [Faction.Alliance]: { - 1: Presets.DefaultGear.gear, - 2: Presets.DefaultGear.gear, - 3: Presets.DefaultGear.gear, - }, - [Faction.Horde]: { - 1: Presets.DefaultGear.gear, - 2: Presets.DefaultGear.gear, - 3: Presets.DefaultGear.gear, - }, - }, - }, - { - spec: Spec.SpecWarrior, - tooltip: 'Fury Warrior', - defaultName: 'Fury', - iconUrl: getSpecIcon(Class.ClassWarrior, 1), - - talents: Presets.DefaultTalentsDW.data, + talents: Presets.DefaultTalents.data, specOptions: Presets.DefaultOptions, consumes: Presets.DefaultConsumes, defaultFactionRaces: { From e7e40439ff78914f374b239fe08ebc1c39542bfd Mon Sep 17 00:00:00 2001 From: Eric Taylor Date: Sun, 24 Nov 2024 10:31:00 -0500 Subject: [PATCH 3/5] Updated Warrior tests --- .../dps_warrior/TestP1DPSWarrior.results | 190 +++++++++++++++++ sim/warrior/dps_warrior/dps_warrior_test.go | 46 +--- .../tank_warrior/TestP1TankWarrior.results | 196 ++++++++++++++++++ sim/warrior/tank_warrior/tank_warrior_test.go | 20 +- 4 files changed, 406 insertions(+), 46 deletions(-) create mode 100644 sim/warrior/dps_warrior/TestP1DPSWarrior.results create mode 100644 sim/warrior/tank_warrior/TestP1TankWarrior.results diff --git a/sim/warrior/dps_warrior/TestP1DPSWarrior.results b/sim/warrior/dps_warrior/TestP1DPSWarrior.results new file mode 100644 index 000000000..eb4867fbf --- /dev/null +++ b/sim/warrior/dps_warrior/TestP1DPSWarrior.results @@ -0,0 +1,190 @@ +character_stats_results: { + key: "TestP1DPSWarrior-Phase1-Lvl60-CharacterStats-Default" + value: { + final_stats: 462.3 + final_stats: 318.55 + final_stats: 526.355 + final_stats: 102.35 + final_stats: 177.1 + final_stats: 0 + final_stats: 0 + final_stats: 0 + final_stats: 0 + final_stats: 0 + final_stats: 0 + final_stats: 0 + final_stats: 41.25 + final_stats: 0 + final_stats: 21 + final_stats: 0 + final_stats: 0 + final_stats: 1794.6 + final_stats: 0 + final_stats: 37.9275 + final_stats: 0 + final_stats: 0 + final_stats: 0 + final_stats: 0 + final_stats: 0 + final_stats: 0 + final_stats: 4843.1 + final_stats: 620 + final_stats: 0 + final_stats: 5 + final_stats: 0 + final_stats: 15.9275 + final_stats: 5 + final_stats: 0 + final_stats: 7072.55 + final_stats: 35 + final_stats: 68 + final_stats: 68 + final_stats: 68 + final_stats: 68 + final_stats: 384 + final_stats: 0 + final_stats: 0 + final_stats: 0 + } +} +stat_weights_results: { + key: "TestP1DPSWarrior-Phase1-Lvl60-StatWeights-Default" + value: { + weights: 0.35282 + weights: 0.21439 + weights: 0 + weights: 0 + weights: 0 + weights: 0 + weights: 0 + weights: 0 + weights: 0 + weights: 0 + weights: 0 + weights: 0 + weights: 0 + weights: 0 + weights: 0 + weights: 0 + weights: 0 + weights: 0.14747 + weights: 0 + weights: 3.90983 + weights: 0 + weights: 0 + weights: 0 + weights: 0 + weights: 0 + weights: 0 + weights: 0 + weights: 0 + weights: 0 + weights: 0 + weights: 0 + weights: 0 + weights: 0 + weights: 0 + weights: 0 + weights: 0 + weights: 0 + weights: 0 + weights: 0 + weights: 0 + weights: 0 + weights: 0 + weights: 0 + weights: 0 + } +} +dps_results: { + key: "TestP1DPSWarrior-Phase1-Lvl60-Average-Default" + value: { + dps: 279.75214 + tps: 224.23004 + } +} +dps_results: { + key: "TestP1DPSWarrior-Phase1-Lvl60-Settings-Human-p0.bis-DPS-p1-FullBuffs-P1-Consumes-LongMultiTarget" + value: { + tps: 23.33333 + } +} +dps_results: { + key: "TestP1DPSWarrior-Phase1-Lvl60-Settings-Human-p0.bis-DPS-p1-FullBuffs-P1-Consumes-LongSingleTarget" + value: { + tps: 1.16667 + } +} +dps_results: { + key: "TestP1DPSWarrior-Phase1-Lvl60-Settings-Human-p0.bis-DPS-p1-FullBuffs-P1-Consumes-ShortSingleTarget" + value: { + tps: 5 + } +} +dps_results: { + key: "TestP1DPSWarrior-Phase1-Lvl60-Settings-Human-p0.bis-DPS-p1-NoBuffs-P1-Consumes-LongMultiTarget" + value: { + dps: 2.41 + tps: 105.05542 + } +} +dps_results: { + key: "TestP1DPSWarrior-Phase1-Lvl60-Settings-Human-p0.bis-DPS-p1-NoBuffs-P1-Consumes-LongSingleTarget" + value: { + dps: 0.115 + tps: 17.71199 + } +} +dps_results: { + key: "TestP1DPSWarrior-Phase1-Lvl60-Settings-Human-p0.bis-DPS-p1-NoBuffs-P1-Consumes-ShortSingleTarget" + value: { + dps: 0.1875 + tps: 29.18709 + } +} +dps_results: { + key: "TestP1DPSWarrior-Phase1-Lvl60-Settings-Orc-p0.bis-DPS-p1-FullBuffs-P1-Consumes-LongMultiTarget" + value: { + tps: 23.33333 + } +} +dps_results: { + key: "TestP1DPSWarrior-Phase1-Lvl60-Settings-Orc-p0.bis-DPS-p1-FullBuffs-P1-Consumes-LongSingleTarget" + value: { + tps: 1.16667 + } +} +dps_results: { + key: "TestP1DPSWarrior-Phase1-Lvl60-Settings-Orc-p0.bis-DPS-p1-FullBuffs-P1-Consumes-ShortSingleTarget" + value: { + tps: 5 + } +} +dps_results: { + key: "TestP1DPSWarrior-Phase1-Lvl60-Settings-Orc-p0.bis-DPS-p1-NoBuffs-P1-Consumes-LongMultiTarget" + value: { + dps: 2.41 + tps: 105.05542 + } +} +dps_results: { + key: "TestP1DPSWarrior-Phase1-Lvl60-Settings-Orc-p0.bis-DPS-p1-NoBuffs-P1-Consumes-LongSingleTarget" + value: { + dps: 0.115 + tps: 17.71199 + } +} +dps_results: { + key: "TestP1DPSWarrior-Phase1-Lvl60-Settings-Orc-p0.bis-DPS-p1-NoBuffs-P1-Consumes-ShortSingleTarget" + value: { + dps: 0.1875 + tps: 29.18709 + } +} +dps_results: { + key: "TestP1DPSWarrior-Phase1-Lvl60-SwitchInFrontOfTarget-Default" + value: { + dps: 209.40635 + tps: 168.01212 + } +} diff --git a/sim/warrior/dps_warrior/dps_warrior_test.go b/sim/warrior/dps_warrior/dps_warrior_test.go index 5ddd43481..5ed2da016 100644 --- a/sim/warrior/dps_warrior/dps_warrior_test.go +++ b/sim/warrior/dps_warrior/dps_warrior_test.go @@ -12,21 +12,21 @@ func init() { RegisterDpsWarrior() } -func TestDualWieldWarrior(t *testing.T) { +func TestP1DPSWarrior(t *testing.T) { core.RunTestSuite(t, t.Name(), core.FullCharacterTestSuiteGenerator([]core.CharacterSuiteConfig{ { Class: proto.Class_ClassWarrior, - Phase: 5, + Phase: 1, Level: 60, Race: proto.Race_RaceOrc, OtherRaces: []proto.Race{proto.Race_RaceHuman}, - Talents: P4FuryTalents, - GearSet: core.GetGearSet("../../../ui/warrior/gear_sets", "blank"), - Rotation: core.GetAplRotation("../../../ui/warrior/apls", "phase_5_dw"), + Talents: P1Talents, + GearSet: core.GetGearSet("../../../ui/warrior/gear_sets", "p0.bis"), + Rotation: core.GetAplRotation("../../../ui/warrior/apls", "p1"), Buffs: core.FullBuffs, - Consumes: Phase4Consumes, - SpecOptions: core.SpecOptionsCombo{Label: "Fury", SpecOptions: PlayerOptionsFury}, + Consumes: P1Consumes, + SpecOptions: core.SpecOptionsCombo{Label: "DPS", SpecOptions: PlayerOptionsFury}, ItemFilter: ItemFilters, EPReferenceStat: proto.Stat_StatAttackPower, @@ -35,36 +35,10 @@ func TestDualWieldWarrior(t *testing.T) { })) } -func TestTwoHandedWarrior(t *testing.T) { - core.RunTestSuite(t, t.Name(), core.FullCharacterTestSuiteGenerator([]core.CharacterSuiteConfig{ - { - Class: proto.Class_ClassWarrior, - Phase: 5, - Level: 60, - Race: proto.Race_RaceOrc, - OtherRaces: []proto.Race{proto.Race_RaceHuman}, - - Talents: P4FuryTalents, - GearSet: core.GetGearSet("../../../ui/warrior/gear_sets", "blank"), - Rotation: core.GetAplRotation("../../../ui/warrior/apls", "phase_5_2h"), - Buffs: core.FullBuffs, - Consumes: Phase4Consumes, - SpecOptions: core.SpecOptionsCombo{Label: "Arms", SpecOptions: PlayerOptionsArms}, - - ItemFilter: ItemFilters, - EPReferenceStat: proto.Stat_StatAttackPower, - StatsToWeigh: Stats, - }, - })) -} - -var P2ArmsTalents = "303050213525100001" -var P2FuryTalents = "-05050005405010051" -var P3ArmsTalents = "303050213520105001-0505" -var P4FuryTalents = "20305020302-05050005525010051" +var P1Talents = "20305020302-05050005525010051" -var Phase4Consumes = core.ConsumesCombo{ - Label: "P4-Consumes", +var P1Consumes = core.ConsumesCombo{ + Label: "P1-Consumes", Consumes: &proto.Consumes{ AgilityElixir: proto.AgilityElixir_ElixirOfTheMongoose, AttackPowerBuff: proto.AttackPowerBuff_JujuMight, diff --git a/sim/warrior/tank_warrior/TestP1TankWarrior.results b/sim/warrior/tank_warrior/TestP1TankWarrior.results new file mode 100644 index 000000000..cb51bc724 --- /dev/null +++ b/sim/warrior/tank_warrior/TestP1TankWarrior.results @@ -0,0 +1,196 @@ +character_stats_results: { + key: "TestP1TankWarrior-Phase1-Lvl60-CharacterStats-Default" + value: { + final_stats: 462.3 + final_stats: 318.55 + final_stats: 526.355 + final_stats: 102.35 + final_stats: 177.1 + final_stats: 0 + final_stats: 0 + final_stats: 0 + final_stats: 0 + final_stats: 0 + final_stats: 0 + final_stats: 0 + final_stats: 41.25 + final_stats: 0 + final_stats: 21 + final_stats: 0 + final_stats: 0 + final_stats: 1794.6 + final_stats: 0 + final_stats: 33.9275 + final_stats: 0 + final_stats: 0 + final_stats: 0 + final_stats: 0 + final_stats: 0 + final_stats: 0 + final_stats: 4843.1 + final_stats: 620 + final_stats: 10 + final_stats: 10.4 + final_stats: 0 + final_stats: 16.3275 + final_stats: 5.4 + final_stats: 0 + final_stats: 8272.55 + final_stats: 35 + final_stats: 68 + final_stats: 68 + final_stats: 68 + final_stats: 68 + final_stats: 384 + final_stats: 0 + final_stats: 0 + final_stats: 0 + } +} +stat_weights_results: { + key: "TestP1TankWarrior-Phase1-Lvl60-StatWeights-Default" + value: { + weights: 0.25206 + weights: 0 + weights: 0 + weights: 0 + weights: 0 + weights: 0 + weights: 0 + weights: 0 + weights: 0 + weights: 0 + weights: 0 + weights: 0 + weights: 0 + weights: 0 + weights: 0 + weights: 0 + weights: 0 + weights: 0.10552 + weights: 0 + weights: 0 + weights: 0 + weights: 0 + weights: 0 + weights: 0 + weights: 0 + weights: 0 + weights: 0 + weights: 0 + weights: 0 + weights: 0 + weights: 0 + weights: 0 + weights: 0 + weights: 0 + weights: 0 + weights: 0 + weights: 0 + weights: 0 + weights: 0 + weights: 0 + weights: 0 + weights: 0 + weights: 0 + weights: 0 + } +} +dps_results: { + key: "TestP1TankWarrior-Phase1-Lvl60-Average-Default" + value: { + dps: 200.93042 + tps: 302.77703 + } +} +dps_results: { + key: "TestP1TankWarrior-Phase1-Lvl60-Settings-Human-p0.bis-Protection-p1-FullBuffs-P1-Consumes-LongMultiTarget" + value: { + dps: 0.23399 + tps: 42.93425 + } +} +dps_results: { + key: "TestP1TankWarrior-Phase1-Lvl60-Settings-Human-p0.bis-Protection-p1-FullBuffs-P1-Consumes-LongSingleTarget" + value: { + dps: 0.01272 + tps: 4.24878 + } +} +dps_results: { + key: "TestP1TankWarrior-Phase1-Lvl60-Settings-Human-p0.bis-Protection-p1-FullBuffs-P1-Consumes-ShortSingleTarget" + value: { + dps: 0.06358 + tps: 19.53095 + } +} +dps_results: { + key: "TestP1TankWarrior-Phase1-Lvl60-Settings-Human-p0.bis-Protection-p1-NoBuffs-P1-Consumes-LongMultiTarget" + value: { + dps: 2.92545 + tps: 144.46153 + } +} +dps_results: { + key: "TestP1TankWarrior-Phase1-Lvl60-Settings-Human-p0.bis-Protection-p1-NoBuffs-P1-Consumes-LongSingleTarget" + value: { + dps: 0.14107 + tps: 38.35287 + } +} +dps_results: { + key: "TestP1TankWarrior-Phase1-Lvl60-Settings-Human-p0.bis-Protection-p1-NoBuffs-P1-Consumes-ShortSingleTarget" + value: { + dps: 0.18563 + tps: 56.45677 + } +} +dps_results: { + key: "TestP1TankWarrior-Phase1-Lvl60-Settings-Orc-p0.bis-Protection-p1-FullBuffs-P1-Consumes-LongMultiTarget" + value: { + dps: 0.23436 + tps: 37.85919 + } +} +dps_results: { + key: "TestP1TankWarrior-Phase1-Lvl60-Settings-Orc-p0.bis-Protection-p1-FullBuffs-P1-Consumes-LongSingleTarget" + value: { + dps: 0.01309 + tps: 2.82172 + } +} +dps_results: { + key: "TestP1TankWarrior-Phase1-Lvl60-Settings-Orc-p0.bis-Protection-p1-FullBuffs-P1-Consumes-ShortSingleTarget" + value: { + dps: 0.06543 + tps: 12.10563 + } +} +dps_results: { + key: "TestP1TankWarrior-Phase1-Lvl60-Settings-Orc-p0.bis-Protection-p1-NoBuffs-P1-Consumes-LongMultiTarget" + value: { + dps: 2.92545 + tps: 138.35598 + } +} +dps_results: { + key: "TestP1TankWarrior-Phase1-Lvl60-Settings-Orc-p0.bis-Protection-p1-NoBuffs-P1-Consumes-LongSingleTarget" + value: { + dps: 0.14107 + tps: 36.99731 + } +} +dps_results: { + key: "TestP1TankWarrior-Phase1-Lvl60-Settings-Orc-p0.bis-Protection-p1-NoBuffs-P1-Consumes-ShortSingleTarget" + value: { + dps: 0.18563 + tps: 48.70352 + } +} +dps_results: { + key: "TestP1TankWarrior-Phase1-Lvl60-SwitchInFrontOfTarget-Default" + value: { + dps: 172.06887 + tps: 259.70677 + } +} diff --git a/sim/warrior/tank_warrior/tank_warrior_test.go b/sim/warrior/tank_warrior/tank_warrior_test.go index 8d41b9aa1..27f44459d 100644 --- a/sim/warrior/tank_warrior/tank_warrior_test.go +++ b/sim/warrior/tank_warrior/tank_warrior_test.go @@ -12,21 +12,21 @@ func init() { RegisterTankWarrior() } -func TestTankWarrior(t *testing.T) { +func TestP1TankWarrior(t *testing.T) { core.RunTestSuite(t, t.Name(), core.FullCharacterTestSuiteGenerator([]core.CharacterSuiteConfig{ { Class: proto.Class_ClassWarrior, - Phase: 4, + Phase: 1, Level: 60, Race: proto.Race_RaceOrc, OtherRaces: []proto.Race{proto.Race_RaceHuman}, - Talents: P4Talents, - GearSet: core.GetGearSet("../../../ui/tank_warrior/gear_sets", "placeholder"), - Rotation: core.GetAplRotation("../../../ui/tank_warrior/apls", "phase_4"), + Talents: P1Talents, + GearSet: core.GetGearSet("../../../ui/tank_warrior/gear_sets", "p0.bis"), + Rotation: core.GetAplRotation("../../../ui/tank_warrior/apls", "p1"), Buffs: core.FullBuffs, - Consumes: Phase4Consumes, - SpecOptions: core.SpecOptionsCombo{Label: "Arms", SpecOptions: PlayerOptionsBasic}, + Consumes: P1Consumes, + SpecOptions: core.SpecOptionsCombo{Label: "Protection", SpecOptions: PlayerOptionsBasic}, ItemFilter: ItemFilters, EPReferenceStat: proto.Stat_StatAttackPower, @@ -35,7 +35,7 @@ func TestTankWarrior(t *testing.T) { })) } -var P4Talents = "20304300302-03-55200110530201051" +var P1Talents = "20304300302-03-55200110530201051" var PlayerOptionsBasic = &proto.Player_TankWarrior{ TankWarrior: &proto.TankWarrior{ @@ -48,8 +48,8 @@ var warriorOptions = &proto.TankWarrior_Options{ StartingRage: 0, } -var Phase4Consumes = core.ConsumesCombo{ - Label: "P4-Consumes", +var P1Consumes = core.ConsumesCombo{ + Label: "P1-Consumes", Consumes: &proto.Consumes{ AgilityElixir: proto.AgilityElixir_ElixirOfTheMongoose, AttackPowerBuff: proto.AttackPowerBuff_JujuMight, From ba50ab5e885c55a82af05caa0b02ba0546804501 Mon Sep 17 00:00:00 2001 From: Eric Taylor Date: Sun, 24 Nov 2024 16:24:11 -0500 Subject: [PATCH 4/5] Adjusted Warrior APL to avoid a use case bug found. Bug documented separately. --- sim/core/simsignals/api_test.go | 2 +- .../dps_warrior/TestP1DPSWarrior.results | 58 ++++++++++-------- .../tank_warrior/TestP1TankWarrior.results | 60 +++++++++---------- ui/tank_warrior/apls/p1.apl.json | 2 +- ui/warrior/apls/p1.apl.json | 2 +- 5 files changed, 65 insertions(+), 59 deletions(-) diff --git a/sim/core/simsignals/api_test.go b/sim/core/simsignals/api_test.go index 8d87da8fe..f51f2d100 100644 --- a/sim/core/simsignals/api_test.go +++ b/sim/core/simsignals/api_test.go @@ -18,7 +18,7 @@ func TestAbort(t *testing.T) { Level: 60, Race: proto.Race_RaceOrc, Class: proto.Class_ClassWarrior, - Equipment: core.GetGearSet("../../../ui/tank_warrior/gear_sets", "placeholder").GearSet, + Equipment: core.GetGearSet("../../../ui/tank_warrior/gear_sets", "p0.bis").GearSet, Rotation: &proto.APLRotation{}, Consumes: &proto.Consumes{}, Spec: &proto.Player_Warrior{ diff --git a/sim/warrior/dps_warrior/TestP1DPSWarrior.results b/sim/warrior/dps_warrior/TestP1DPSWarrior.results index eb4867fbf..1984c5aca 100644 --- a/sim/warrior/dps_warrior/TestP1DPSWarrior.results +++ b/sim/warrior/dps_warrior/TestP1DPSWarrior.results @@ -50,8 +50,8 @@ character_stats_results: { stat_weights_results: { key: "TestP1DPSWarrior-Phase1-Lvl60-StatWeights-Default" value: { - weights: 0.35282 - weights: 0.21439 + weights: 0.49761 + weights: 0.26243 weights: 0 weights: 0 weights: 0 @@ -67,9 +67,9 @@ stat_weights_results: { weights: 0 weights: 0 weights: 0 - weights: 0.14747 + weights: -0.09142 weights: 0 - weights: 3.90983 + weights: 3.0773 weights: 0 weights: 0 weights: 0 @@ -99,92 +99,98 @@ stat_weights_results: { dps_results: { key: "TestP1DPSWarrior-Phase1-Lvl60-Average-Default" value: { - dps: 279.75214 - tps: 224.23004 + dps: 252.15479 + tps: 220.34291 } } dps_results: { key: "TestP1DPSWarrior-Phase1-Lvl60-Settings-Human-p0.bis-DPS-p1-FullBuffs-P1-Consumes-LongMultiTarget" value: { - tps: 23.33333 + dps: 33.99834 + tps: 119.61369 } } dps_results: { key: "TestP1DPSWarrior-Phase1-Lvl60-Settings-Human-p0.bis-DPS-p1-FullBuffs-P1-Consumes-LongSingleTarget" value: { - tps: 1.16667 + dps: 30.8644 + tps: 31.88411 } } dps_results: { key: "TestP1DPSWarrior-Phase1-Lvl60-Settings-Human-p0.bis-DPS-p1-FullBuffs-P1-Consumes-ShortSingleTarget" value: { - tps: 5 + dps: 78.32938 + tps: 73.13359 } } dps_results: { key: "TestP1DPSWarrior-Phase1-Lvl60-Settings-Human-p0.bis-DPS-p1-NoBuffs-P1-Consumes-LongMultiTarget" value: { - dps: 2.41 - tps: 105.05542 + dps: 15.19081 + tps: 104.56766 } } dps_results: { key: "TestP1DPSWarrior-Phase1-Lvl60-Settings-Human-p0.bis-DPS-p1-NoBuffs-P1-Consumes-LongSingleTarget" value: { - dps: 0.115 - tps: 17.71199 + dps: 12.89581 + tps: 17.50924 } } dps_results: { key: "TestP1DPSWarrior-Phase1-Lvl60-Settings-Human-p0.bis-DPS-p1-NoBuffs-P1-Consumes-ShortSingleTarget" value: { - dps: 0.1875 - tps: 29.18709 + dps: 32.9784 + tps: 36.85281 } } dps_results: { key: "TestP1DPSWarrior-Phase1-Lvl60-Settings-Orc-p0.bis-DPS-p1-FullBuffs-P1-Consumes-LongMultiTarget" value: { - tps: 23.33333 + dps: 36.5712 + tps: 121.67198 } } dps_results: { key: "TestP1DPSWarrior-Phase1-Lvl60-Settings-Orc-p0.bis-DPS-p1-FullBuffs-P1-Consumes-LongSingleTarget" value: { - tps: 1.16667 + dps: 33.43726 + tps: 33.9424 } } dps_results: { key: "TestP1DPSWarrior-Phase1-Lvl60-Settings-Orc-p0.bis-DPS-p1-FullBuffs-P1-Consumes-ShortSingleTarget" value: { - tps: 5 + dps: 83.96505 + tps: 77.64213 } } dps_results: { key: "TestP1DPSWarrior-Phase1-Lvl60-Settings-Orc-p0.bis-DPS-p1-NoBuffs-P1-Consumes-LongMultiTarget" value: { - dps: 2.41 - tps: 105.05542 + dps: 16.24178 + tps: 105.40844 } } dps_results: { key: "TestP1DPSWarrior-Phase1-Lvl60-Settings-Orc-p0.bis-DPS-p1-NoBuffs-P1-Consumes-LongSingleTarget" value: { - dps: 0.115 - tps: 17.71199 + dps: 13.94678 + tps: 18.35001 } } dps_results: { key: "TestP1DPSWarrior-Phase1-Lvl60-Settings-Orc-p0.bis-DPS-p1-NoBuffs-P1-Consumes-ShortSingleTarget" value: { - dps: 0.1875 - tps: 29.18709 + dps: 35.86584 + tps: 39.16276 } } dps_results: { key: "TestP1DPSWarrior-Phase1-Lvl60-SwitchInFrontOfTarget-Default" value: { - dps: 209.40635 - tps: 168.01212 + dps: 200.34625 + tps: 176.81359 } } diff --git a/sim/warrior/tank_warrior/TestP1TankWarrior.results b/sim/warrior/tank_warrior/TestP1TankWarrior.results index cb51bc724..4d9233881 100644 --- a/sim/warrior/tank_warrior/TestP1TankWarrior.results +++ b/sim/warrior/tank_warrior/TestP1TankWarrior.results @@ -50,7 +50,7 @@ character_stats_results: { stat_weights_results: { key: "TestP1TankWarrior-Phase1-Lvl60-StatWeights-Default" value: { - weights: 0.25206 + weights: 0.4118 weights: 0 weights: 0 weights: 0 @@ -67,7 +67,7 @@ stat_weights_results: { weights: 0 weights: 0 weights: 0 - weights: 0.10552 + weights: 0.34766 weights: 0 weights: 0 weights: 0 @@ -99,98 +99,98 @@ stat_weights_results: { dps_results: { key: "TestP1TankWarrior-Phase1-Lvl60-Average-Default" value: { - dps: 200.93042 - tps: 302.77703 + dps: 197.59846 + tps: 322.92702 } } dps_results: { key: "TestP1TankWarrior-Phase1-Lvl60-Settings-Human-p0.bis-Protection-p1-FullBuffs-P1-Consumes-LongMultiTarget" value: { - dps: 0.23399 - tps: 42.93425 + dps: 26.25922 + tps: 151.69927 } } dps_results: { key: "TestP1TankWarrior-Phase1-Lvl60-Settings-Human-p0.bis-Protection-p1-FullBuffs-P1-Consumes-LongSingleTarget" value: { - dps: 0.01272 - tps: 4.24878 + dps: 23.01814 + tps: 44.96815 } } dps_results: { key: "TestP1TankWarrior-Phase1-Lvl60-Settings-Human-p0.bis-Protection-p1-FullBuffs-P1-Consumes-ShortSingleTarget" value: { - dps: 0.06358 - tps: 19.53095 + dps: 33.13206 + tps: 64.84212 } } dps_results: { key: "TestP1TankWarrior-Phase1-Lvl60-Settings-Human-p0.bis-Protection-p1-NoBuffs-P1-Consumes-LongMultiTarget" value: { - dps: 2.92545 - tps: 144.46153 + dps: 11.63948 + tps: 129.84277 } } dps_results: { key: "TestP1TankWarrior-Phase1-Lvl60-Settings-Human-p0.bis-Protection-p1-NoBuffs-P1-Consumes-LongSingleTarget" value: { - dps: 0.14107 - tps: 38.35287 + dps: 9.27833 + tps: 24.42714 } } dps_results: { key: "TestP1TankWarrior-Phase1-Lvl60-Settings-Human-p0.bis-Protection-p1-NoBuffs-P1-Consumes-ShortSingleTarget" value: { - dps: 0.18563 - tps: 56.45677 + dps: 11.78536 + tps: 32.92882 } } dps_results: { key: "TestP1TankWarrior-Phase1-Lvl60-Settings-Orc-p0.bis-Protection-p1-FullBuffs-P1-Consumes-LongMultiTarget" value: { - dps: 0.23436 - tps: 37.85919 + dps: 28.19751 + tps: 149.59702 } } dps_results: { key: "TestP1TankWarrior-Phase1-Lvl60-Settings-Orc-p0.bis-Protection-p1-FullBuffs-P1-Consumes-LongSingleTarget" value: { - dps: 0.01309 - tps: 2.82172 + dps: 24.95643 + tps: 47.6159 } } dps_results: { key: "TestP1TankWarrior-Phase1-Lvl60-Settings-Orc-p0.bis-Protection-p1-FullBuffs-P1-Consumes-ShortSingleTarget" value: { - dps: 0.06543 - tps: 12.10563 + dps: 36.01982 + tps: 67.90932 } } dps_results: { key: "TestP1TankWarrior-Phase1-Lvl60-Settings-Orc-p0.bis-Protection-p1-NoBuffs-P1-Consumes-LongMultiTarget" value: { - dps: 2.92545 - tps: 138.35598 + dps: 12.34613 + tps: 125.89922 } } dps_results: { key: "TestP1TankWarrior-Phase1-Lvl60-Settings-Orc-p0.bis-Protection-p1-NoBuffs-P1-Consumes-LongSingleTarget" value: { - dps: 0.14107 - tps: 36.99731 + dps: 9.98498 + tps: 25.23359 } } dps_results: { key: "TestP1TankWarrior-Phase1-Lvl60-Settings-Orc-p0.bis-Protection-p1-NoBuffs-P1-Consumes-ShortSingleTarget" value: { - dps: 0.18563 - tps: 48.70352 + dps: 12.82153 + tps: 33.22788 } } dps_results: { key: "TestP1TankWarrior-Phase1-Lvl60-SwitchInFrontOfTarget-Default" value: { - dps: 172.06887 - tps: 259.70677 + dps: 166.45011 + tps: 274.27352 } } diff --git a/ui/tank_warrior/apls/p1.apl.json b/ui/tank_warrior/apls/p1.apl.json index e9e08b803..d8f90149b 100644 --- a/ui/tank_warrior/apls/p1.apl.json +++ b/ui/tank_warrior/apls/p1.apl.json @@ -3,6 +3,6 @@ "prepullActions": [], "priorityList": [ {"action":{"autocastOtherCooldowns":{}}}, - {"action":{"castSpell":{"spellId":{"spellId":11597,"rank":5}}}} + {"action":{"castSpell":{"spellId":{"spellId":11605,"rank":4}}}} ] } diff --git a/ui/warrior/apls/p1.apl.json b/ui/warrior/apls/p1.apl.json index e9e08b803..d8f90149b 100644 --- a/ui/warrior/apls/p1.apl.json +++ b/ui/warrior/apls/p1.apl.json @@ -3,6 +3,6 @@ "prepullActions": [], "priorityList": [ {"action":{"autocastOtherCooldowns":{}}}, - {"action":{"castSpell":{"spellId":{"spellId":11597,"rank":5}}}} + {"action":{"castSpell":{"spellId":{"spellId":11605,"rank":4}}}} ] } From 09b36e75fde4461ee87187c5b613fe9f36c23ea4 Mon Sep 17 00:00:00 2001 From: Eric Taylor Date: Sun, 24 Nov 2024 16:41:38 -0500 Subject: [PATCH 5/5] Fixed spacing inconsistency in APL JSONs --- ui/tank_warrior/apls/p1.apl.json | 2 +- ui/warrior/apls/p1.apl.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/ui/tank_warrior/apls/p1.apl.json b/ui/tank_warrior/apls/p1.apl.json index d8f90149b..95453a8f6 100644 --- a/ui/tank_warrior/apls/p1.apl.json +++ b/ui/tank_warrior/apls/p1.apl.json @@ -3,6 +3,6 @@ "prepullActions": [], "priorityList": [ {"action":{"autocastOtherCooldowns":{}}}, - {"action":{"castSpell":{"spellId":{"spellId":11605,"rank":4}}}} + {"action":{"castSpell":{"spellId":{"spellId":11605,"rank":4}}}} ] } diff --git a/ui/warrior/apls/p1.apl.json b/ui/warrior/apls/p1.apl.json index d8f90149b..95453a8f6 100644 --- a/ui/warrior/apls/p1.apl.json +++ b/ui/warrior/apls/p1.apl.json @@ -3,6 +3,6 @@ "prepullActions": [], "priorityList": [ {"action":{"autocastOtherCooldowns":{}}}, - {"action":{"castSpell":{"spellId":{"spellId":11605,"rank":4}}}} + {"action":{"castSpell":{"spellId":{"spellId":11605,"rank":4}}}} ] }