From 1b738c0f1414f89075a0973641513fe05edfe7fc Mon Sep 17 00:00:00 2001 From: jarves Date: Tue, 19 Sep 2023 23:15:42 -0500 Subject: [PATCH 01/21] ui: pull apl presets out of ts file and into json files Signed-off-by: jarves --- ui/balance_druid/apls/basic_p3.json | 21 ++ ui/balance_druid/presets.ts | 26 +- ui/deathknight/apls/blood_pesti.json | 33 +++ ui/deathknight/apls/blood_pesti_aoe.json | 34 +++ ui/deathknight/apls/blood_pesti_dd.json | 33 +++ ui/deathknight/apls/frost_bl_pesti.json | 26 ++ ui/deathknight/apls/frost_uh_pesti.json | 26 ++ ui/deathknight/apls/uh_2h_ss.json | 29 ++ ui/deathknight/apls/uh_dnd_aoe.json | 29 ++ ui/deathknight/apls/unholy_dw_ss.json | 31 +++ ui/deathknight/presets.ts | 260 ++---------------- ui/elemental_shaman/apls/default.json | 23 ++ ui/elemental_shaman/presets.ts | 25 +- ui/enhancement_shaman/apls/default_ft.json | 20 ++ ui/enhancement_shaman/apls/default_wf.json | 20 ++ ui/enhancement_shaman/apls/phase_3.json | 20 ++ ui/enhancement_shaman/presets.ts | 67 +---- ui/feral_tank_druid/apls/default.json | 17 ++ ui/feral_tank_druid/presets.ts | 20 +- ui/healing_priest/apls/disc.json | 10 + ui/healing_priest/apls/holy.json | 10 + ui/healing_priest/presets.ts | 25 +- ui/hunter/apls/aoe.json | 14 + ui/hunter/apls/bm.json | 18 ++ ui/hunter/apls/mm.json | 20 ++ ui/hunter/apls/mm_advanced.json | 29 ++ ui/hunter/apls/sv.json | 20 ++ ui/hunter/apls/sv_advanced.json | 24 ++ ui/hunter/presets.ts | 141 ++-------- ui/mage/apls/arcane.json | 18 ++ ui/mage/apls/arcane_aoe.json | 8 + ui/mage/apls/fire.json | 16 ++ ui/mage/apls/fire_aoe.json | 16 ++ ui/mage/apls/frost.json | 16 ++ ui/mage/apls/frost_aoe.json | 8 + ui/mage/apls/frostfire.json | 16 ++ ui/mage/presets.ts | 113 +------- ui/protection_paladin/apls/default.json | 19 ++ ui/protection_paladin/presets.ts | 22 +- ui/protection_warrior/apls/default.json | 17 ++ ui/protection_warrior/presets.ts | 20 +- ui/retribution_paladin/apls/default.json | 16 ++ ui/retribution_paladin/presets.ts | 19 +- ui/shadow_priest/apls/default.json | 23 ++ ui/shadow_priest/presets.ts | 26 +- ui/smite_priest/apls/default.json | 21 ++ ui/smite_priest/presets.ts | 24 +- ui/tank_deathknight/apls/blood_aggro.json | 24 ++ ui/tank_deathknight/apls/blood_icy_touch.json | 25 ++ ui/tank_deathknight/presets.ts | 58 +--- ui/warlock/apls/demo.json | 50 ++++ ui/warlock/apls/destro.json | 58 ++++ ui/warlock/presets.ts | 113 +------- ui/warrior/apls/fury.json | 22 ++ ui/warrior/presets.ts | 26 +- 55 files changed, 982 insertions(+), 883 deletions(-) create mode 100644 ui/balance_druid/apls/basic_p3.json create mode 100644 ui/deathknight/apls/blood_pesti.json create mode 100644 ui/deathknight/apls/blood_pesti_aoe.json create mode 100644 ui/deathknight/apls/blood_pesti_dd.json create mode 100644 ui/deathknight/apls/frost_bl_pesti.json create mode 100644 ui/deathknight/apls/frost_uh_pesti.json create mode 100644 ui/deathknight/apls/uh_2h_ss.json create mode 100644 ui/deathknight/apls/uh_dnd_aoe.json create mode 100644 ui/deathknight/apls/unholy_dw_ss.json create mode 100644 ui/elemental_shaman/apls/default.json create mode 100644 ui/enhancement_shaman/apls/default_ft.json create mode 100644 ui/enhancement_shaman/apls/default_wf.json create mode 100644 ui/enhancement_shaman/apls/phase_3.json create mode 100644 ui/feral_tank_druid/apls/default.json create mode 100644 ui/healing_priest/apls/disc.json create mode 100644 ui/healing_priest/apls/holy.json create mode 100644 ui/hunter/apls/aoe.json create mode 100644 ui/hunter/apls/bm.json create mode 100644 ui/hunter/apls/mm.json create mode 100644 ui/hunter/apls/mm_advanced.json create mode 100644 ui/hunter/apls/sv.json create mode 100644 ui/hunter/apls/sv_advanced.json create mode 100644 ui/mage/apls/arcane.json create mode 100644 ui/mage/apls/arcane_aoe.json create mode 100644 ui/mage/apls/fire.json create mode 100644 ui/mage/apls/fire_aoe.json create mode 100644 ui/mage/apls/frost.json create mode 100644 ui/mage/apls/frost_aoe.json create mode 100644 ui/mage/apls/frostfire.json create mode 100644 ui/protection_paladin/apls/default.json create mode 100644 ui/protection_warrior/apls/default.json create mode 100644 ui/retribution_paladin/apls/default.json create mode 100644 ui/shadow_priest/apls/default.json create mode 100644 ui/smite_priest/apls/default.json create mode 100644 ui/tank_deathknight/apls/blood_aggro.json create mode 100644 ui/tank_deathknight/apls/blood_icy_touch.json create mode 100644 ui/warlock/apls/demo.json create mode 100644 ui/warlock/apls/destro.json create mode 100644 ui/warrior/apls/fury.json diff --git a/ui/balance_druid/apls/basic_p3.json b/ui/balance_druid/apls/basic_p3.json new file mode 100644 index 0000000000..998b183e39 --- /dev/null +++ b/ui/balance_druid/apls/basic_p3.json @@ -0,0 +1,21 @@ +{ + "type": "TypeAPL", + "prepullActions": [ + {"action":{"castSpell":{"spellId":{"otherId":"OtherActionPotion"}}},"doAtValue":{"const":{"val":"-1.5s"}}}, + {"action":{"castSpell":{"spellId":{"spellId":48461}}},"doAtValue":{"const":{"val":"-1.5s"}}} + ], + "priorityList": [ + {"action":{"condition":{"cmp":{"op":"OpGt","lhs":{"currentTime":{}},"rhs":{"const":{"val":"5"}}}},"castSpell":{"spellId":{"tag":-1,"spellId":2825}}}}, + {"action":{"castSpell":{"spellId":{"itemId":41119}}}}, + {"action":{"multidot":{"spellId":{"spellId":48463},"maxDots":1,"maxOverlap":{"const":{"val":"0ms"}}}}}, + {"action":{"castSpell":{"spellId":{"spellId":53201}}}}, + {"action":{"castSpell":{"spellId":{"spellId":65861}}}}, + {"action":{"condition":{"or":{"vals":[{"and":{"vals":[{"cmp":{"op":"OpGt","lhs":{"auraRemainingTime":{"sourceUnit":{},"auraId":{"spellId":48518}}},"rhs":{"const":{"val":"10s"}}}},{"cmp":{"op":"OpLe","lhs":{"auraRemainingTime":{"sourceUnit":{},"auraId":{"spellId":48518}}},"rhs":{"const":{"val":"14.8"}}}}]}},{"cmp":{"op":"OpLt","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"12s"}}}}]}},"castSpell":{"spellId":{"spellId":54758}}}}, + {"action":{"condition":{"or":{"vals":[{"and":{"vals":[{"cmp":{"op":"OpGt","lhs":{"auraRemainingTime":{"sourceUnit":{},"auraId":{"spellId":48518}}},"rhs":{"const":{"val":"10s"}}}},{"cmp":{"op":"OpLe","lhs":{"auraRemainingTime":{"sourceUnit":{},"auraId":{"spellId":48518}}},"rhs":{"const":{"val":"14.8"}}}}]}},{"cmp":{"op":"OpLt","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"15s"}}}}]}},"castSpell":{"spellId":{"itemId":40211}}}}, + {"action":{"condition":{"and":{"vals":[{"auraIsActive":{"sourceUnit":{},"auraId":{"spellId":48518}}},{"cmp":{"op":"OpLe","lhs":{"auraRemainingTime":{"sourceUnit":{},"auraId":{"spellId":48518}}},"rhs":{"const":{"val":"14.8s"}}}}]}},"castSpell":{"spellId":{"spellId":48465}}}}, + {"action":{"condition":{"and":{"vals":[{"auraIsActive":{"sourceUnit":{},"auraId":{"spellId":48517}}},{"cmp":{"op":"OpLe","lhs":{"auraRemainingTime":{"sourceUnit":{},"auraId":{"spellId":48517}}},"rhs":{"const":{"val":"14.8s"}}}}]}},"castSpell":{"spellId":{"spellId":48461}}}}, + {"action":{"condition":{"and":{"vals":[{"not":{"val":{"dotIsActive":{"spellId":{"spellId":48468}}}}},{"auraInternalCooldown":{"auraId":{"spellId":48518}}}]}},"castSpell":{"spellId":{"spellId":48468}}}}, + {"action":{"condition":{"auraInternalCooldown":{"sourceUnit":{},"auraId":{"spellId":48518}}},"castSpell":{"spellId":{"spellId":48465}}}}, + {"action":{"castSpell":{"spellId":{"spellId":48461}}}} + ] + } \ No newline at end of file diff --git a/ui/balance_druid/presets.ts b/ui/balance_druid/presets.ts index c6b5bee840..859b8cbed9 100644 --- a/ui/balance_druid/presets.ts +++ b/ui/balance_druid/presets.ts @@ -29,6 +29,8 @@ import * as Tooltips from '../core/constants/tooltips.js'; import { Player } from "../core/player"; import { APLRotation } from '../core/proto/apl.js'; +import BasicP3AplJson from './apls/basic_p3.json'; + // Preset options for this spec. // Eventually we will import these values for the raid sim too, so its good to // keep them in a separate file. @@ -275,27 +277,7 @@ export const P3_PRESET_ALLI = { export const ROTATION_PRESET_P3_APL = { name: 'Basic P3 APL', rotation: SavedRotation.create({ - specRotationOptionsJson: BalanceDruidRotation.toJsonString(BalanceDruidRotation.create()), - rotation: APLRotation.fromJsonString(`{ - "type": "TypeAPL", - "prepullActions": [ - {"action":{"castSpell":{"spellId":{"otherId":"OtherActionPotion"}}},"doAtValue":{"const":{"val":"-1.5s"}}}, - {"action":{"castSpell":{"spellId":{"spellId":48461}}},"doAtValue":{"const":{"val":"-1.5s"}}} - ], - "priorityList": [ - {"action":{"condition":{"cmp":{"op":"OpGt","lhs":{"currentTime":{}},"rhs":{"const":{"val":"5"}}}},"castSpell":{"spellId":{"tag":-1,"spellId":2825}}}}, - {"action":{"castSpell":{"spellId":{"itemId":41119}}}}, - {"action":{"multidot":{"spellId":{"spellId":48463},"maxDots":1,"maxOverlap":{"const":{"val":"0ms"}}}}}, - {"action":{"castSpell":{"spellId":{"spellId":53201}}}}, - {"action":{"castSpell":{"spellId":{"spellId":65861}}}}, - {"action":{"condition":{"or":{"vals":[{"and":{"vals":[{"cmp":{"op":"OpGt","lhs":{"auraRemainingTime":{"sourceUnit":{},"auraId":{"spellId":48518}}},"rhs":{"const":{"val":"10s"}}}},{"cmp":{"op":"OpLe","lhs":{"auraRemainingTime":{"sourceUnit":{},"auraId":{"spellId":48518}}},"rhs":{"const":{"val":"14.8"}}}}]}},{"cmp":{"op":"OpLt","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"12s"}}}}]}},"castSpell":{"spellId":{"spellId":54758}}}}, - {"action":{"condition":{"or":{"vals":[{"and":{"vals":[{"cmp":{"op":"OpGt","lhs":{"auraRemainingTime":{"sourceUnit":{},"auraId":{"spellId":48518}}},"rhs":{"const":{"val":"10s"}}}},{"cmp":{"op":"OpLe","lhs":{"auraRemainingTime":{"sourceUnit":{},"auraId":{"spellId":48518}}},"rhs":{"const":{"val":"14.8"}}}}]}},{"cmp":{"op":"OpLt","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"15s"}}}}]}},"castSpell":{"spellId":{"itemId":40211}}}}, - {"action":{"condition":{"and":{"vals":[{"auraIsActive":{"sourceUnit":{},"auraId":{"spellId":48518}}},{"cmp":{"op":"OpLe","lhs":{"auraRemainingTime":{"sourceUnit":{},"auraId":{"spellId":48518}}},"rhs":{"const":{"val":"14.8s"}}}}]}},"castSpell":{"spellId":{"spellId":48465}}}}, - {"action":{"condition":{"and":{"vals":[{"auraIsActive":{"sourceUnit":{},"auraId":{"spellId":48517}}},{"cmp":{"op":"OpLe","lhs":{"auraRemainingTime":{"sourceUnit":{},"auraId":{"spellId":48517}}},"rhs":{"const":{"val":"14.8s"}}}}]}},"castSpell":{"spellId":{"spellId":48461}}}}, - {"action":{"condition":{"and":{"vals":[{"not":{"val":{"dotIsActive":{"spellId":{"spellId":48468}}}}},{"auraInternalCooldown":{"auraId":{"spellId":48518}}}]}},"castSpell":{"spellId":{"spellId":48468}}}}, - {"action":{"condition":{"auraInternalCooldown":{"sourceUnit":{},"auraId":{"spellId":48518}}},"castSpell":{"spellId":{"spellId":48465}}}}, - {"action":{"castSpell":{"spellId":{"spellId":48461}}}} - ] - }`), + specRotationOptionsJson: BalanceDruidRotation.toJsonString(DefaultRotation), + rotation: APLRotation.fromJsonString(JSON.stringify(BasicP3AplJson)), }), }; \ No newline at end of file diff --git a/ui/deathknight/apls/blood_pesti.json b/ui/deathknight/apls/blood_pesti.json new file mode 100644 index 0000000000..cd26201440 --- /dev/null +++ b/ui/deathknight/apls/blood_pesti.json @@ -0,0 +1,33 @@ +{ + "type": "TypeAPL", + "prepullActions": [ + {"action":{"castSpell":{"spellId":{"spellId":48265}}},"doAtValue":{"const":{"val":"-20s"}}}, + {"action":{"castSpell":{"spellId":{"spellId":42650}}},"doAtValue":{"const":{"val":"-10s"}}}, + {"action":{"castSpell":{"spellId":{"spellId":50689}}},"doAtValue":{"const":{"val":"-6s"}}}, + {"action":{"castSpell":{"spellId":{"spellId":57623}}},"doAtValue":{"const":{"val":"-1.5s"}}}, + {"action":{"castSpell":{"spellId":{"itemId":40211}}},"doAtValue":{"const":{"val":"-1s"}}} + ], + "priorityList": [ + {"action":{"condition":{"cmp":{"op":"OpGe","lhs":{"currentTime":{}},"rhs":{"const":{"val":"8.5s"}}}},"castSpell":{"spellId":{"spellId":64382,"tag":-1}}}}, + {"action":{"autocastOtherCooldowns":{}}}, + {"action":{"condition":{"not":{"val":{"dotIsActive":{"spellId":{"spellId":55095}}}}},"resetSequence":{"sequenceName":"IT"}}}, + {"action":{"condition":{"not":{"val":{"dotIsActive":{"spellId":{"spellId":55078}}}}},"resetSequence":{"sequenceName":"PS"}}}, + {"action":{"condition":{"or":{"vals":[{"and":{"vals":[{"auraIsActive":{"auraId":{"spellId":49028}}},{"cmp":{"op":"OpEq","lhs":{"runeCooldown":{"runeType":"RuneFrost"}},"rhs":{"const":{"val":"0"}}}},{"cmp":{"op":"OpGe","lhs":{"currentNonDeathRuneCount":{"runeType":"RuneFrost"}},"rhs":{"const":{"val":"1"}}}}]}},{"not":{"val":{"dotIsActive":{"spellId":{"spellId":55095}}}}}]}},"sequence":{"name":"IT","actions":[{"castSpell":{"spellId":{"spellId":59131}}}]}}}, + {"action":{"condition":{"or":{"vals":[{"and":{"vals":[{"auraIsActive":{"auraId":{"spellId":49028}}},{"cmp":{"op":"OpEq","lhs":{"runeCooldown":{"runeType":"RuneUnholy"}},"rhs":{"const":{"val":"0"}}}},{"cmp":{"op":"OpGe","lhs":{"currentNonDeathRuneCount":{"runeType":"RuneUnholy"}},"rhs":{"const":{"val":"1"}}}}]}},{"not":{"val":{"dotIsActive":{"spellId":{"spellId":55078}}}}}]}},"sequence":{"name":"PS","actions":[{"castSpell":{"spellId":{"spellId":49921,"tag":1}}}]}}}, + {"action":{"sequence":{"name":"Opener","actions":[{"castSpell":{"spellId":{"spellId":49016}}},{"castSpell":{"spellId":{"spellId":33697}}},{"castSpell":{"spellId":{"spellId":26297}}},{"castSpell":{"spellId":{"spellId":54758}}},{"castSpell":{"spellId":{"spellId":49924,"tag":1}}},{"castSpell":{"spellId":{"spellId":55262,"tag":1}}},{"castSpell":{"spellId":{"spellId":55262,"tag":1}}}]}}}, + {"action":{"condition":{"or":{"vals":[{"and":{"vals":[{"cmp":{"op":"OpLe","lhs":{"dotRemainingTime":{"spellId":{"spellId":55095}}},"rhs":{"const":{"val":"1.5s"}}}},{"dotIsActive":{"spellId":{"spellId":55095}}},{"dotIsActive":{"spellId":{"spellId":55078}}}]}},{"and":{"vals":[{"and":{"vals":[{"cmp":{"op":"OpGt","lhs":{"nextRuneCooldown":{"runeType":"RuneBlood"}},"rhs":{"dotRemainingTime":{"spellId":{"spellId":55095}}}}},{"cmp":{"op":"OpEq","lhs":{"currentRuneCount":{"runeType":"RuneDeath"}},"rhs":{"const":{"val":"0"}}}}]}},{"dotIsActive":{"spellId":{"spellId":55095}}},{"dotIsActive":{"spellId":{"spellId":55078}}}]}},{"and":{"vals":[{"cmp":{"op":"OpLe","lhs":{"math":{"op":"OpAdd","lhs":{"spellTimeToReady":{"spellId":{"spellId":46584}}},"rhs":{"dotRemainingTime":{"spellId":{"spellId":55095}}}}},"rhs":{"math":{"op":"OpAdd","lhs":{"spellTimeToReady":{"spellId":{"spellId":49028}}},"rhs":{"const":{"val":"3s"}}}}}},{"not":{"val":{"auraIsActive":{"auraId":{"spellId":49028}}}}},{"dotIsActive":{"spellId":{"spellId":55095}}},{"dotIsActive":{"spellId":{"spellId":55078}}}]}}]}},"castSpell":{"spellId":{"spellId":50842}}}}, + {"action":{"condition":{"and":{"vals":[{"and":{"vals":[{"cmp":{"op":"OpLe","lhs":{"dotRemainingTime":{"spellId":{"spellId":55095}}},"rhs":{"math":{"op":"OpAdd","lhs":{"auraRemainingTime":{"auraId":{"spellId":49028}}},"rhs":{"const":{"val":"4s"}}}}}},{"cmp":{"op":"OpLe","lhs":{"auraRemainingTime":{"auraId":{"spellId":49028}}},"rhs":{"const":{"val":"2s"}}}},{"auraIsActive":{"auraId":{"spellId":49028}}},{"sequenceIsComplete":{"sequenceName":"IT"}}]}}]}},"strictSequence":{"actions":[{"castSpell":{"spellId":{"spellId":45529}}},{"castSpell":{"spellId":{"spellId":50842}}}]}}}, + {"action":{"condition":{"or":{"vals":[{"and":{"vals":[{"spellIsReady":{"spellId":{"spellId":49016}}},{"spellIsReady":{"spellId":{"spellId":46584}}},{"spellIsReady":{"spellId":{"spellId":49028}}},{"gcdIsReady":{}}]}},{"and":{"vals":[{"spellIsReady":{"spellId":{"spellId":46584}}},{"spellIsReady":{"spellId":{"spellId":49028}}},{"cmp":{"op":"OpLt","lhs":{"remainingTime":{}},"rhs":{"math":{"op":"OpAdd","lhs":{"spellTimeToReady":{"spellId":{"spellId":33697}}},"rhs":{"const":{"val":"15"}}}}}},{"cmp":{"op":"OpLt","lhs":{"remainingTime":{}},"rhs":{"math":{"op":"OpAdd","lhs":{"spellTimeToReady":{"spellId":{"spellId":26297}}},"rhs":{"const":{"val":"10"}}}}}}]}},{"cmp":{"op":"OpLt","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"15"}}}},{"auraIsActive":{"auraId":{"spellId":33697}}}]}},"castSpell":{"spellId":{"otherId":"OtherActionPotion"}}}}, + {"action":{"condition":{"or":{"vals":[{"and":{"vals":[{"spellIsReady":{"spellId":{"spellId":46584}}},{"spellIsReady":{"spellId":{"spellId":49028}}},{"or":{"vals":[{"cmp":{"op":"OpLt","lhs":{"remainingTime":{}},"rhs":{"math":{"op":"OpAdd","lhs":{"spellTimeToReady":{"spellId":{"spellId":33697}}},"rhs":{"const":{"val":"15"}}}}}},{"cmp":{"op":"OpGe","lhs":{"remainingTime":{}},"rhs":{"math":{"op":"OpAdd","lhs":{"spellTimeToReady":{"spellId":{"spellId":49016}}},"rhs":{"const":{"val":"9"}}}}}}]}},{"gcdIsReady":{}}]}},{"and":{"vals":[{"spellIsReady":{"spellId":{"spellId":33697}}},{"spellIsReady":{"spellId":{"spellId":46584}}},{"spellIsReady":{"spellId":{"spellId":49028}}},{"gcdIsReady":{}}]}},{"cmp":{"op":"OpLe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"12"}}}},{"and":{"vals":[{"cmp":{"op":"OpGt","lhs":{"spellTimeToReady":{"spellId":{"spellId":33697}}},"rhs":{"const":{"val":"55"}}}},{"cmp":{"op":"OpGt","lhs":{"remainingTime":{}},"rhs":{"math":{"op":"OpAdd","lhs":{"spellTimeToReady":{"spellId":{"spellId":33697}}},"rhs":{"const":{"val":"20"}}}}}},{"cmp":{"op":"OpLt","lhs":{"remainingTime":{}},"rhs":{"math":{"op":"OpAdd","lhs":{"spellTimeToReady":{"spellId":{"spellId":49016}}},"rhs":{"const":{"val":"20"}}}}}},{"gcdIsReady":{}},{"spellIsReady":{"spellId":{"spellId":26297}}}]}}]}},"castSpell":{"spellId":{"spellId":54758}}}}, + {"action":{"condition":{"and":{"vals":[{"auraIsActive":{"auraId":{"spellId":54758}}},{"gcdIsReady":{}}]}},"castSpell":{"spellId":{"spellId":47568}}}}, + {"action":{"condition":{"and":{"vals":[{"auraIsActive":{"auraId":{"spellId":54758}}},{"gcdIsReady":{}}]}},"castSpell":{"spellId":{"spellId":49016}}}}, + {"action":{"condition":{"and":{"vals":[{"auraIsActive":{"auraId":{"spellId":54758}}},{"gcdIsReady":{}}]}},"castSpell":{"spellId":{"spellId":26297}}}}, + {"action":{"condition":{"and":{"vals":[{"auraIsActive":{"auraId":{"spellId":54758}}},{"gcdIsReady":{}}]}},"castSpell":{"spellId":{"spellId":33697}}}}, + {"action":{"condition":{"and":{"vals":[{"auraIsActive":{"auraId":{"spellId":54758}}},{"gcdIsReady":{}}]}},"strictSequence":{"actions":[{"castSpell":{"spellId":{"spellId":46584}}},{"castSpell":{"spellId":{"spellId":49028}}}]}}}, + {"action":{"condition":{"and":{"vals":[{"not":{"val":{"currentRuneActive":{"runeSlot":"SlotLeftBlood"}}}},{"sequenceIsComplete":{"sequenceName":"Opener"}},{"spellIsReady":{"spellId":{"spellId":45529}}},{"gcdIsReady":{}},{"and":{"vals":[{"cmp":{"op":"OpGt","lhs":{"spellTimeToReady":{"spellId":{"spellId":49028}}},"rhs":{"const":{"val":"40"}}}},{"or":{"vals":[{"not":{"val":{"auraIsActive":{"auraId":{"spellId":49028}}}}},{"cmp":{"op":"OpGt","lhs":{"auraRemainingTime":{"auraId":{"spellId":49028}}},"rhs":{"dotRemainingTime":{"spellId":{"spellId":55095}}}}}]}}]}}]}},"castSpell":{"spellId":{"spellId":45529}}}}, + {"action":{"condition":{"and":{"vals":[{"or":{"vals":[{"cmp":{"op":"OpLt","lhs":{"nextRuneCooldown":{"runeType":"RuneBlood"}},"rhs":{"dotRemainingTime":{"spellId":{"spellId":55095}}}}},{"cmp":{"op":"OpGt","lhs":{"nextRuneCooldown":{"runeType":"RuneBlood"}},"rhs":{"const":{"val":"8s"}}}}]}},{"not":{"val":{"or":{"vals":[{"cmp":{"op":"OpGe","lhs":{"nextRuneCooldown":{"runeType":"RuneFrost"}},"rhs":{"auraRemainingTime":{"auraId":{"spellId":71227}}}}},{"cmp":{"op":"OpGe","lhs":{"nextRuneCooldown":{"runeType":"RuneUnholy"}},"rhs":{"auraRemainingTime":{"auraId":{"spellId":71227}}}}}]}}}}]}},"castSpell":{"spellId":{"spellId":55262,"tag":1}}}}, + {"action":{"condition":{"not":{"val":{}}},"castSpell":{"spellId":{"spellId":49924,"tag":1}}}}, + {"action":{"condition":{"or":{"vals":[{"and":{"vals":[{"cmp":{"op":"OpGt","lhs":{"runeCooldown":{"runeType":"RuneFrost"}},"rhs":{"const":{"val":"0.5"}}}},{"cmp":{"op":"OpGt","lhs":{"runeCooldown":{"runeType":"RuneUnholy"}},"rhs":{"const":{"val":"0.5"}}}},{"or":{"vals":[{"cmp":{"op":"OpGt","lhs":{"spellTimeToReady":{"spellId":{"spellId":49028}}},"rhs":{"const":{"val":"10"}}}},{"cmp":{"op":"OpEq","lhs":{"currentRunicPower":{}},"rhs":{"const":{"val":"100"}}}}]}},{"cmp":{"op":"OpGt","lhs":{"dotRemainingTime":{"spellId":{"spellId":55095}}},"rhs":{"const":{"val":"1.5s"}}}},{"not":{"val":{"cmp":{"op":"OpLe","lhs":{"auraRemainingTime":{"auraId":{"spellId":71227}}},"rhs":{"const":{"val":"1.5s"}}}}}}]}},{"and":{"vals":[{"cmp":{"op":"OpGt","lhs":{"runeCooldown":{"runeType":"RuneBlood"}},"rhs":{"const":{"val":"0.3"}}}},{"or":{"vals":[{"cmp":{"op":"OpGt","lhs":{"spellTimeToReady":{"spellId":{"spellId":49028}}},"rhs":{"const":{"val":"10"}}}},{"cmp":{"op":"OpEq","lhs":{"currentRunicPower":{}},"rhs":{"const":{"val":"100"}}}}]}},{"cmp":{"op":"OpGt","lhs":{"dotRemainingTime":{"spellId":{"spellId":55095}}},"rhs":{"const":{"val":"1.5s"}}}},{"not":{"val":{"cmp":{"op":"OpLe","lhs":{"auraRemainingTime":{"auraId":{"spellId":71227}}},"rhs":{"const":{"val":"1.5s"}}}}}}]}}]}},"castSpell":{"spellId":{"spellId":49895}}}}, + {"action":{"condition":{"or":{"vals":[{"and":{"vals":[{"cmp":{"op":"OpGt","lhs":{"runeCooldown":{"runeType":"RuneFrost"}},"rhs":{"const":{"val":"0.5"}}}},{"cmp":{"op":"OpGt","lhs":{"runeCooldown":{"runeType":"RuneUnholy"}},"rhs":{"const":{"val":"0.5"}}}},{"cmp":{"op":"OpGt","lhs":{"dotRemainingTime":{"spellId":{"spellId":55095}}},"rhs":{"const":{"val":"1.5s"}}}}]}},{"and":{"vals":[{"cmp":{"op":"OpGt","lhs":{"runeCooldown":{"runeType":"RuneBlood"}},"rhs":{"const":{"val":"0.5"}}}},{"cmp":{"op":"OpGt","lhs":{"dotRemainingTime":{"spellId":{"spellId":55095}}},"rhs":{"const":{"val":"1.5s"}}}}]}}]}},"castSpell":{"spellId":{"spellId":57623}}}} + ] +} \ No newline at end of file diff --git a/ui/deathknight/apls/blood_pesti_aoe.json b/ui/deathknight/apls/blood_pesti_aoe.json new file mode 100644 index 0000000000..134c7ac608 --- /dev/null +++ b/ui/deathknight/apls/blood_pesti_aoe.json @@ -0,0 +1,34 @@ +{ + "type": "TypeAPL", + "prepullActions": [ + {"action":{"castSpell":{"spellId":{"spellId":48265}}},"doAtValue":{"const":{"val":"-20s"}}}, + {"action":{"castSpell":{"spellId":{"spellId":42650}}},"doAtValue":{"const":{"val":"-10s"}}}, + {"action":{"castSpell":{"spellId":{"spellId":50689}}},"doAtValue":{"const":{"val":"-6s"}}}, + {"action":{"castSpell":{"spellId":{"spellId":57623}}},"doAtValue":{"const":{"val":"-1.5s"}}}, + {"action":{"castSpell":{"spellId":{"itemId":40211}}},"doAtValue":{"const":{"val":"-1s"}}} + ], + "priorityList": [ + {"action":{"condition":{"cmp":{"op":"OpGe","lhs":{"currentTime":{}},"rhs":{"const":{"val":"8.5s"}}}},"castSpell":{"spellId":{"spellId":64382,"tag":-1}}}}, + {"action":{"autocastOtherCooldowns":{}}}, + {"action":{"condition":{"not":{"val":{"dotIsActive":{"spellId":{"spellId":55095}}}}},"resetSequence":{"sequenceName":"IT"}}}, + {"action":{"condition":{"not":{"val":{"dotIsActive":{"spellId":{"spellId":55078}}}}},"resetSequence":{"sequenceName":"PS"}}}, + {"action":{"condition":{"or":{"vals":[{"and":{"vals":[{"auraIsActive":{"auraId":{"spellId":49028}}},{"cmp":{"op":"OpEq","lhs":{"runeCooldown":{"runeType":"RuneFrost"}},"rhs":{"const":{"val":"0"}}}},{"cmp":{"op":"OpGe","lhs":{"currentNonDeathRuneCount":{"runeType":"RuneFrost"}},"rhs":{"const":{"val":"1"}}}}]}},{"not":{"val":{"dotIsActive":{"spellId":{"spellId":55095}}}}}]}},"sequence":{"name":"IT","actions":[{"castSpell":{"spellId":{"spellId":59131}}}]}}}, + {"action":{"condition":{"or":{"vals":[{"and":{"vals":[{"auraIsActive":{"auraId":{"spellId":49028}}},{"cmp":{"op":"OpEq","lhs":{"runeCooldown":{"runeType":"RuneUnholy"}},"rhs":{"const":{"val":"0"}}}},{"cmp":{"op":"OpGe","lhs":{"currentNonDeathRuneCount":{"runeType":"RuneUnholy"}},"rhs":{"const":{"val":"1"}}}}]}},{"not":{"val":{"dotIsActive":{"spellId":{"spellId":55078}}}}}]}},"sequence":{"name":"PS","actions":[{"castSpell":{"spellId":{"spellId":49921,"tag":1}}}]}}}, + {"action":{"condition":{"and":{"vals":[{"auraIsActive":{"auraId":{"spellId":49028}}},{"dotIsActive":{"spellId":{"spellId":55095}}},{"dotIsActive":{"spellId":{"spellId":55078}}}]}},"sequence":{"name":"Pesti","actions":[{"castSpell":{"spellId":{"spellId":50842}}}]}}}, + {"action":{"sequence":{"name":"Opener","actions":[{"castSpell":{"spellId":{"spellId":49016}}},{"castSpell":{"spellId":{"spellId":33697}}},{"castSpell":{"spellId":{"spellId":26297}}},{"castSpell":{"spellId":{"spellId":54758}}},{"castSpell":{"spellId":{"spellId":49924,"tag":1}}},{"castSpell":{"spellId":{"spellId":50842}}},{"castSpell":{"spellId":{"spellId":49941}}}]}}}, + {"action":{"condition":{"or":{"vals":[{"and":{"vals":[{"cmp":{"op":"OpLe","lhs":{"dotRemainingTime":{"spellId":{"spellId":55095}}},"rhs":{"const":{"val":"1.5s"}}}},{"dotIsActive":{"spellId":{"spellId":55095}}},{"dotIsActive":{"spellId":{"spellId":55078}}}]}},{"and":{"vals":[{"and":{"vals":[{"cmp":{"op":"OpGt","lhs":{"nextRuneCooldown":{"runeType":"RuneBlood"}},"rhs":{"dotRemainingTime":{"spellId":{"spellId":55095}}}}},{"cmp":{"op":"OpEq","lhs":{"currentRuneCount":{"runeType":"RuneDeath"}},"rhs":{"const":{"val":"0"}}}}]}},{"dotIsActive":{"spellId":{"spellId":55095}}},{"dotIsActive":{"spellId":{"spellId":55078}}}]}},{"and":{"vals":[{"cmp":{"op":"OpLe","lhs":{"math":{"op":"OpAdd","lhs":{"spellTimeToReady":{"spellId":{"spellId":46584}}},"rhs":{"dotRemainingTime":{"spellId":{"spellId":55095}}}}},"rhs":{"math":{"op":"OpAdd","lhs":{"spellTimeToReady":{"spellId":{"spellId":49028}}},"rhs":{"const":{"val":"3s"}}}}}},{"not":{"val":{"auraIsActive":{"auraId":{"spellId":49028}}}}},{"dotIsActive":{"spellId":{"spellId":55095}}},{"dotIsActive":{"spellId":{"spellId":55078}}}]}}]}},"castSpell":{"spellId":{"spellId":50842}}}}, + {"action":{"condition":{"and":{"vals":[{"and":{"vals":[{"cmp":{"op":"OpLe","lhs":{"dotRemainingTime":{"spellId":{"spellId":55095}}},"rhs":{"math":{"op":"OpAdd","lhs":{"auraRemainingTime":{"auraId":{"spellId":49028}}},"rhs":{"const":{"val":"4s"}}}}}},{"cmp":{"op":"OpLe","lhs":{"auraRemainingTime":{"auraId":{"spellId":49028}}},"rhs":{"const":{"val":"2s"}}}},{"auraIsActive":{"auraId":{"spellId":49028}}},{"sequenceIsComplete":{"sequenceName":"IT"}}]}}]}},"strictSequence":{"actions":[{"castSpell":{"spellId":{"spellId":45529}}},{"castSpell":{"spellId":{"spellId":50842}}}]}}}, + {"action":{"condition":{"or":{"vals":[{"and":{"vals":[{"spellIsReady":{"spellId":{"spellId":49016}}},{"spellIsReady":{"spellId":{"spellId":46584}}},{"spellIsReady":{"spellId":{"spellId":49028}}},{"gcdIsReady":{}}]}},{"and":{"vals":[{"spellIsReady":{"spellId":{"spellId":46584}}},{"spellIsReady":{"spellId":{"spellId":49028}}},{"cmp":{"op":"OpLt","lhs":{"remainingTime":{}},"rhs":{"math":{"op":"OpAdd","lhs":{"spellTimeToReady":{"spellId":{"spellId":33697}}},"rhs":{"const":{"val":"15"}}}}}},{"cmp":{"op":"OpLt","lhs":{"remainingTime":{}},"rhs":{"math":{"op":"OpAdd","lhs":{"spellTimeToReady":{"spellId":{"spellId":26297}}},"rhs":{"const":{"val":"10"}}}}}}]}},{"cmp":{"op":"OpLt","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"15"}}}},{"auraIsActive":{"auraId":{"spellId":33697}}}]}},"castSpell":{"spellId":{"otherId":"OtherActionPotion"}}}}, + {"action":{"condition":{"or":{"vals":[{"and":{"vals":[{"spellIsReady":{"spellId":{"spellId":46584}}},{"spellIsReady":{"spellId":{"spellId":49028}}},{"or":{"vals":[{"cmp":{"op":"OpLt","lhs":{"remainingTime":{}},"rhs":{"math":{"op":"OpAdd","lhs":{"spellTimeToReady":{"spellId":{"spellId":33697}}},"rhs":{"const":{"val":"15"}}}}}},{"cmp":{"op":"OpGe","lhs":{"remainingTime":{}},"rhs":{"math":{"op":"OpAdd","lhs":{"spellTimeToReady":{"spellId":{"spellId":49016}}},"rhs":{"const":{"val":"9"}}}}}}]}},{"gcdIsReady":{}}]}},{"and":{"vals":[{"spellIsReady":{"spellId":{"spellId":33697}}},{"spellIsReady":{"spellId":{"spellId":46584}}},{"spellIsReady":{"spellId":{"spellId":49028}}},{"gcdIsReady":{}}]}},{"cmp":{"op":"OpLe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"12"}}}},{"and":{"vals":[{"cmp":{"op":"OpGt","lhs":{"spellTimeToReady":{"spellId":{"spellId":33697}}},"rhs":{"const":{"val":"55"}}}},{"cmp":{"op":"OpGt","lhs":{"remainingTime":{}},"rhs":{"math":{"op":"OpAdd","lhs":{"spellTimeToReady":{"spellId":{"spellId":33697}}},"rhs":{"const":{"val":"20"}}}}}},{"cmp":{"op":"OpLt","lhs":{"remainingTime":{}},"rhs":{"math":{"op":"OpAdd","lhs":{"spellTimeToReady":{"spellId":{"spellId":49016}}},"rhs":{"const":{"val":"20"}}}}}},{"gcdIsReady":{}},{"spellIsReady":{"spellId":{"spellId":26297}}}]}}]}},"castSpell":{"spellId":{"spellId":54758}}}}, + {"action":{"condition":{"and":{"vals":[{"auraIsActive":{"auraId":{"spellId":54758}}},{"gcdIsReady":{}}]}},"castSpell":{"spellId":{"spellId":47568}}}}, + {"action":{"condition":{"and":{"vals":[{"auraIsActive":{"auraId":{"spellId":54758}}},{"gcdIsReady":{}}]}},"castSpell":{"spellId":{"spellId":49016}}}}, + {"action":{"condition":{"and":{"vals":[{"auraIsActive":{"auraId":{"spellId":54758}}},{"gcdIsReady":{}}]}},"castSpell":{"spellId":{"spellId":26297}}}}, + {"action":{"condition":{"and":{"vals":[{"auraIsActive":{"auraId":{"spellId":54758}}},{"gcdIsReady":{}}]}},"castSpell":{"spellId":{"spellId":33697}}}}, + {"action":{"condition":{"and":{"vals":[{"auraIsActive":{"auraId":{"spellId":54758}}},{"gcdIsReady":{}}]}},"strictSequence":{"actions":[{"castSpell":{"spellId":{"spellId":46584}}},{"castSpell":{"spellId":{"spellId":49028}}},{"resetSequence":{"sequenceName":"Pesti"}}]}}}, + {"action":{"condition":{"and":{"vals":[{"not":{"val":{"currentRuneActive":{"runeSlot":"SlotLeftBlood"}}}},{"sequenceIsComplete":{"sequenceName":"Opener"}},{"spellIsReady":{"spellId":{"spellId":45529}}},{"gcdIsReady":{}},{"and":{"vals":[{"cmp":{"op":"OpGt","lhs":{"spellTimeToReady":{"spellId":{"spellId":49028}}},"rhs":{"const":{"val":"40"}}}},{"or":{"vals":[{"not":{"val":{"auraIsActive":{"auraId":{"spellId":49028}}}}},{"cmp":{"op":"OpGt","lhs":{"auraRemainingTime":{"auraId":{"spellId":49028}}},"rhs":{"dotRemainingTime":{"spellId":{"spellId":55095}}}}}]}}]}}]}},"castSpell":{"spellId":{"spellId":45529}}}}, + {"action":{"condition":{"and":{"vals":[{"or":{"vals":[{"cmp":{"op":"OpLt","lhs":{"nextRuneCooldown":{"runeType":"RuneBlood"}},"rhs":{"dotRemainingTime":{"spellId":{"spellId":55095}}}}},{"cmp":{"op":"OpGt","lhs":{"nextRuneCooldown":{"runeType":"RuneBlood"}},"rhs":{"const":{"val":"8s"}}}}]}},{"not":{"val":{"or":{"vals":[{"cmp":{"op":"OpGe","lhs":{"nextRuneCooldown":{"runeType":"RuneFrost"}},"rhs":{"auraRemainingTime":{"auraId":{"spellId":71227}}}}},{"cmp":{"op":"OpGe","lhs":{"nextRuneCooldown":{"runeType":"RuneUnholy"}},"rhs":{"auraRemainingTime":{"auraId":{"spellId":71227}}}}}]}}}}]}},"castSpell":{"spellId":{"spellId":49941}}}}, + {"action":{"condition":{"not":{"val":{}}},"castSpell":{"spellId":{"spellId":49924,"tag":1}}}}, + {"action":{"condition":{"or":{"vals":[{"and":{"vals":[{"cmp":{"op":"OpGt","lhs":{"runeCooldown":{"runeType":"RuneFrost"}},"rhs":{"const":{"val":"0.5"}}}},{"cmp":{"op":"OpGt","lhs":{"runeCooldown":{"runeType":"RuneUnholy"}},"rhs":{"const":{"val":"0.5"}}}},{"or":{"vals":[{"cmp":{"op":"OpGt","lhs":{"spellTimeToReady":{"spellId":{"spellId":49028}}},"rhs":{"const":{"val":"10"}}}},{"cmp":{"op":"OpEq","lhs":{"currentRunicPower":{}},"rhs":{"const":{"val":"100"}}}}]}},{"cmp":{"op":"OpGt","lhs":{"dotRemainingTime":{"spellId":{"spellId":55095}}},"rhs":{"const":{"val":"1.5s"}}}},{"not":{"val":{"cmp":{"op":"OpLe","lhs":{"auraRemainingTime":{"auraId":{"spellId":71227}}},"rhs":{"const":{"val":"1.5s"}}}}}}]}},{"and":{"vals":[{"cmp":{"op":"OpGt","lhs":{"runeCooldown":{"runeType":"RuneBlood"}},"rhs":{"const":{"val":"0.3"}}}},{"or":{"vals":[{"cmp":{"op":"OpGt","lhs":{"spellTimeToReady":{"spellId":{"spellId":49028}}},"rhs":{"const":{"val":"10"}}}},{"cmp":{"op":"OpEq","lhs":{"currentRunicPower":{}},"rhs":{"const":{"val":"100"}}}}]}},{"cmp":{"op":"OpGt","lhs":{"dotRemainingTime":{"spellId":{"spellId":55095}}},"rhs":{"const":{"val":"1.5s"}}}},{"not":{"val":{"cmp":{"op":"OpLe","lhs":{"auraRemainingTime":{"auraId":{"spellId":71227}}},"rhs":{"const":{"val":"1.5s"}}}}}}]}}]}},"castSpell":{"spellId":{"spellId":49895}}}}, + {"action":{"condition":{"or":{"vals":[{"and":{"vals":[{"cmp":{"op":"OpGt","lhs":{"runeCooldown":{"runeType":"RuneFrost"}},"rhs":{"const":{"val":"0.5"}}}},{"cmp":{"op":"OpGt","lhs":{"runeCooldown":{"runeType":"RuneUnholy"}},"rhs":{"const":{"val":"0.5"}}}},{"cmp":{"op":"OpGt","lhs":{"dotRemainingTime":{"spellId":{"spellId":55095}}},"rhs":{"const":{"val":"1.5s"}}}}]}},{"and":{"vals":[{"cmp":{"op":"OpGt","lhs":{"runeCooldown":{"runeType":"RuneBlood"}},"rhs":{"const":{"val":"0.5"}}}},{"cmp":{"op":"OpGt","lhs":{"dotRemainingTime":{"spellId":{"spellId":55095}}},"rhs":{"const":{"val":"1.5s"}}}}]}}]}},"castSpell":{"spellId":{"spellId":57623}}}} + ] +} \ No newline at end of file diff --git a/ui/deathknight/apls/blood_pesti_dd.json b/ui/deathknight/apls/blood_pesti_dd.json new file mode 100644 index 0000000000..ee11a80eef --- /dev/null +++ b/ui/deathknight/apls/blood_pesti_dd.json @@ -0,0 +1,33 @@ +{ + "type": "TypeAPL", + "prepullActions": [ + {"action":{"castSpell":{"spellId":{"spellId":48265}}},"doAtValue":{"const":{"val":"-20s"}}}, + {"action":{"castSpell":{"spellId":{"spellId":42650}}},"doAtValue":{"const":{"val":"-10s"}}}, + {"action":{"castSpell":{"spellId":{"spellId":50689}}},"doAtValue":{"const":{"val":"-6s"}}}, + {"action":{"castSpell":{"spellId":{"spellId":57623}}},"doAtValue":{"const":{"val":"-1.5s"}}}, + {"action":{"castSpell":{"spellId":{"itemId":40211}}},"doAtValue":{"const":{"val":"-1s"}}} + ], + "priorityList": [ + {"action":{"condition":{"cmp":{"op":"OpGe","lhs":{"currentTime":{}},"rhs":{"const":{"val":"8.5s"}}}},"castSpell":{"spellId":{"spellId":64382,"tag":-1}}}}, + {"action":{"autocastOtherCooldowns":{}}}, + {"action":{"condition":{"not":{"val":{"dotIsActive":{"spellId":{"spellId":55095}}}}},"resetSequence":{"sequenceName":"IT"}}}, + {"action":{"condition":{"not":{"val":{"dotIsActive":{"spellId":{"spellId":55078}}}}},"resetSequence":{"sequenceName":"PS"}}}, + {"action":{"condition":{"or":{"vals":[{"and":{"vals":[{"auraIsActive":{"auraId":{"spellId":49028}}},{"cmp":{"op":"OpEq","lhs":{"runeCooldown":{"runeType":"RuneFrost"}},"rhs":{"const":{"val":"0"}}}},{"cmp":{"op":"OpGe","lhs":{"currentNonDeathRuneCount":{"runeType":"RuneFrost"}},"rhs":{"const":{"val":"1"}}}}]}},{"not":{"val":{"dotIsActive":{"spellId":{"spellId":55095}}}}}]}},"sequence":{"name":"IT","actions":[{"castSpell":{"spellId":{"spellId":59131}}}]}}}, + {"action":{"condition":{"or":{"vals":[{"and":{"vals":[{"auraIsActive":{"auraId":{"spellId":49028}}},{"cmp":{"op":"OpEq","lhs":{"runeCooldown":{"runeType":"RuneUnholy"}},"rhs":{"const":{"val":"0"}}}},{"cmp":{"op":"OpGe","lhs":{"currentNonDeathRuneCount":{"runeType":"RuneUnholy"}},"rhs":{"const":{"val":"1"}}}}]}},{"not":{"val":{"dotIsActive":{"spellId":{"spellId":55078}}}}}]}},"sequence":{"name":"PS","actions":[{"castSpell":{"spellId":{"spellId":49921,"tag":1}}}]}}}, + {"action":{"sequence":{"name":"Opener","actions":[{"castSpell":{"spellId":{"spellId":49016}}},{"castSpell":{"spellId":{"spellId":33697}}},{"castSpell":{"spellId":{"spellId":26297}}},{"castSpell":{"spellId":{"spellId":54758}}},{"castSpell":{"spellId":{"spellId":49924,"tag":1}}},{"castSpell":{"spellId":{"spellId":55262,"tag":1}}},{"castSpell":{"spellId":{"spellId":55262,"tag":1}}}]}}}, + {"action":{"condition":{"or":{"vals":[{"and":{"vals":[{"cmp":{"op":"OpLe","lhs":{"dotRemainingTime":{"spellId":{"spellId":55095}}},"rhs":{"const":{"val":"1.5s"}}}},{"dotIsActive":{"spellId":{"spellId":55095}}},{"dotIsActive":{"spellId":{"spellId":55078}}}]}},{"and":{"vals":[{"and":{"vals":[{"cmp":{"op":"OpGt","lhs":{"nextRuneCooldown":{"runeType":"RuneBlood"}},"rhs":{"dotRemainingTime":{"spellId":{"spellId":55095}}}}},{"cmp":{"op":"OpEq","lhs":{"currentRuneCount":{"runeType":"RuneDeath"}},"rhs":{"const":{"val":"0"}}}}]}},{"dotIsActive":{"spellId":{"spellId":55095}}},{"dotIsActive":{"spellId":{"spellId":55078}}}]}},{"and":{"vals":[{"cmp":{"op":"OpLe","lhs":{"math":{"op":"OpAdd","lhs":{"spellTimeToReady":{"spellId":{"spellId":46584}}},"rhs":{"dotRemainingTime":{"spellId":{"spellId":55095}}}}},"rhs":{"math":{"op":"OpAdd","lhs":{"spellTimeToReady":{"spellId":{"spellId":49028}}},"rhs":{"const":{"val":"3s"}}}}}},{"not":{"val":{"auraIsActive":{"auraId":{"spellId":49028}}}}},{"dotIsActive":{"spellId":{"spellId":55095}}},{"dotIsActive":{"spellId":{"spellId":55078}}}]}}]}},"castSpell":{"spellId":{"spellId":50842}}}}, + {"action":{"condition":{"and":{"vals":[{"and":{"vals":[{"cmp":{"op":"OpLe","lhs":{"dotRemainingTime":{"spellId":{"spellId":55095}}},"rhs":{"math":{"op":"OpAdd","lhs":{"auraRemainingTime":{"auraId":{"spellId":49028}}},"rhs":{"const":{"val":"4s"}}}}}},{"cmp":{"op":"OpLe","lhs":{"auraRemainingTime":{"auraId":{"spellId":49028}}},"rhs":{"const":{"val":"2s"}}}},{"auraIsActive":{"auraId":{"spellId":49028}}},{"sequenceIsComplete":{"sequenceName":"IT"}}]}}]}},"strictSequence":{"actions":[{"castSpell":{"spellId":{"spellId":45529}}},{"castSpell":{"spellId":{"spellId":50842}}}]}}}, + {"action":{"condition":{"or":{"vals":[{"and":{"vals":[{"spellIsReady":{"spellId":{"spellId":49016}}},{"spellIsReady":{"spellId":{"spellId":46584}}},{"spellIsReady":{"spellId":{"spellId":49028}}},{"gcdIsReady":{}}]}},{"and":{"vals":[{"spellIsReady":{"spellId":{"spellId":46584}}},{"spellIsReady":{"spellId":{"spellId":49028}}},{"cmp":{"op":"OpLt","lhs":{"remainingTime":{}},"rhs":{"math":{"op":"OpAdd","lhs":{"spellTimeToReady":{"spellId":{"spellId":33697}}},"rhs":{"const":{"val":"15"}}}}}},{"cmp":{"op":"OpLt","lhs":{"remainingTime":{}},"rhs":{"math":{"op":"OpAdd","lhs":{"spellTimeToReady":{"spellId":{"spellId":26297}}},"rhs":{"const":{"val":"10"}}}}}}]}},{"cmp":{"op":"OpLt","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"15"}}}},{"auraIsActive":{"auraId":{"spellId":33697}}}]}},"castSpell":{"spellId":{"otherId":"OtherActionPotion"}}}}, + {"action":{"condition":{"or":{"vals":[{"and":{"vals":[{"spellIsReady":{"spellId":{"spellId":46584}}},{"spellIsReady":{"spellId":{"spellId":49028}}},{"or":{"vals":[{"cmp":{"op":"OpLt","lhs":{"remainingTime":{}},"rhs":{"math":{"op":"OpAdd","lhs":{"spellTimeToReady":{"spellId":{"spellId":33697}}},"rhs":{"const":{"val":"15"}}}}}},{"cmp":{"op":"OpGe","lhs":{"remainingTime":{}},"rhs":{"math":{"op":"OpAdd","lhs":{"spellTimeToReady":{"spellId":{"spellId":49016}}},"rhs":{"const":{"val":"9"}}}}}}]}},{"gcdIsReady":{}}]}},{"and":{"vals":[{"spellIsReady":{"spellId":{"spellId":33697}}},{"spellIsReady":{"spellId":{"spellId":46584}}},{"spellIsReady":{"spellId":{"spellId":49028}}},{"gcdIsReady":{}}]}},{"cmp":{"op":"OpLe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"12"}}}},{"and":{"vals":[{"cmp":{"op":"OpGt","lhs":{"spellTimeToReady":{"spellId":{"spellId":33697}}},"rhs":{"const":{"val":"55"}}}},{"cmp":{"op":"OpGt","lhs":{"remainingTime":{}},"rhs":{"math":{"op":"OpAdd","lhs":{"spellTimeToReady":{"spellId":{"spellId":33697}}},"rhs":{"const":{"val":"20"}}}}}},{"cmp":{"op":"OpLt","lhs":{"remainingTime":{}},"rhs":{"math":{"op":"OpAdd","lhs":{"spellTimeToReady":{"spellId":{"spellId":49016}}},"rhs":{"const":{"val":"20"}}}}}},{"gcdIsReady":{}},{"spellIsReady":{"spellId":{"spellId":26297}}}]}}]}},"castSpell":{"spellId":{"spellId":54758}}}}, + {"action":{"condition":{"and":{"vals":[{"auraIsActive":{"auraId":{"spellId":54758}}},{"gcdIsReady":{}}]}},"castSpell":{"spellId":{"spellId":47568}}}}, + {"action":{"condition":{"and":{"vals":[{"auraIsActive":{"auraId":{"spellId":54758}}},{"gcdIsReady":{}}]}},"castSpell":{"spellId":{"spellId":49016}}}}, + {"action":{"condition":{"and":{"vals":[{"auraIsActive":{"auraId":{"spellId":54758}}},{"gcdIsReady":{}}]}},"castSpell":{"spellId":{"spellId":26297}}}}, + {"action":{"condition":{"and":{"vals":[{"auraIsActive":{"auraId":{"spellId":54758}}},{"gcdIsReady":{}}]}},"castSpell":{"spellId":{"spellId":33697}}}}, + {"action":{"condition":{"and":{"vals":[{"auraIsActive":{"auraId":{"spellId":54758}}},{"gcdIsReady":{}}]}},"strictSequence":{"actions":[{"castSpell":{"spellId":{"spellId":46584}}},{"castSpell":{"spellId":{"spellId":49028}}},{"resetSequence":{"sequenceName":"IT"}},{"resetSequence":{"sequenceName":"PS"}}]}}}, + {"action":{"condition":{"and":{"vals":[{"not":{"val":{"currentRuneActive":{"runeSlot":"SlotLeftBlood"}}}},{"sequenceIsComplete":{"sequenceName":"Opener"}},{"spellIsReady":{"spellId":{"spellId":45529}}},{"gcdIsReady":{}},{"and":{"vals":[{"cmp":{"op":"OpGt","lhs":{"spellTimeToReady":{"spellId":{"spellId":49028}}},"rhs":{"const":{"val":"40"}}}},{"or":{"vals":[{"not":{"val":{"auraIsActive":{"auraId":{"spellId":49028}}}}},{"cmp":{"op":"OpGt","lhs":{"auraRemainingTime":{"auraId":{"spellId":49028}}},"rhs":{"dotRemainingTime":{"spellId":{"spellId":55095}}}}}]}}]}}]}},"castSpell":{"spellId":{"spellId":45529}}}}, + {"action":{"condition":{"and":{"vals":[{"or":{"vals":[{"cmp":{"op":"OpLt","lhs":{"nextRuneCooldown":{"runeType":"RuneBlood"}},"rhs":{"dotRemainingTime":{"spellId":{"spellId":55095}}}}},{"cmp":{"op":"OpGt","lhs":{"nextRuneCooldown":{"runeType":"RuneBlood"}},"rhs":{"const":{"val":"8s"}}}}]}},{"not":{"val":{"or":{"vals":[{"cmp":{"op":"OpGe","lhs":{"nextRuneCooldown":{"runeType":"RuneFrost"}},"rhs":{"auraRemainingTime":{"auraId":{"spellId":71227}}}}},{"cmp":{"op":"OpGe","lhs":{"nextRuneCooldown":{"runeType":"RuneUnholy"}},"rhs":{"auraRemainingTime":{"auraId":{"spellId":71227}}}}}]}}}}]}},"castSpell":{"spellId":{"spellId":55262,"tag":1}}}}, + {"action":{"condition":{"not":{"val":{}}},"castSpell":{"spellId":{"spellId":49924,"tag":1}}}}, + {"action":{"condition":{"or":{"vals":[{"and":{"vals":[{"cmp":{"op":"OpGt","lhs":{"runeCooldown":{"runeType":"RuneFrost"}},"rhs":{"const":{"val":"0.5"}}}},{"cmp":{"op":"OpGt","lhs":{"runeCooldown":{"runeType":"RuneUnholy"}},"rhs":{"const":{"val":"0.5"}}}},{"or":{"vals":[{"cmp":{"op":"OpGt","lhs":{"spellTimeToReady":{"spellId":{"spellId":49028}}},"rhs":{"const":{"val":"10"}}}},{"cmp":{"op":"OpEq","lhs":{"currentRunicPower":{}},"rhs":{"const":{"val":"100"}}}}]}},{"cmp":{"op":"OpGt","lhs":{"dotRemainingTime":{"spellId":{"spellId":55095}}},"rhs":{"const":{"val":"1.5s"}}}},{"not":{"val":{"cmp":{"op":"OpLe","lhs":{"auraRemainingTime":{"auraId":{"spellId":71227}}},"rhs":{"const":{"val":"1.5s"}}}}}}]}},{"and":{"vals":[{"cmp":{"op":"OpGt","lhs":{"runeCooldown":{"runeType":"RuneBlood"}},"rhs":{"const":{"val":"0.3"}}}},{"or":{"vals":[{"cmp":{"op":"OpGt","lhs":{"spellTimeToReady":{"spellId":{"spellId":49028}}},"rhs":{"const":{"val":"10"}}}},{"cmp":{"op":"OpEq","lhs":{"currentRunicPower":{}},"rhs":{"const":{"val":"100"}}}}]}},{"cmp":{"op":"OpGt","lhs":{"dotRemainingTime":{"spellId":{"spellId":55095}}},"rhs":{"const":{"val":"1.5s"}}}},{"not":{"val":{"cmp":{"op":"OpLe","lhs":{"auraRemainingTime":{"auraId":{"spellId":71227}}},"rhs":{"const":{"val":"1.5s"}}}}}}]}}]}},"castSpell":{"spellId":{"spellId":49895}}}}, + {"action":{"condition":{"or":{"vals":[{"and":{"vals":[{"cmp":{"op":"OpGt","lhs":{"runeCooldown":{"runeType":"RuneFrost"}},"rhs":{"const":{"val":"0.5"}}}},{"cmp":{"op":"OpGt","lhs":{"runeCooldown":{"runeType":"RuneUnholy"}},"rhs":{"const":{"val":"0.5"}}}},{"cmp":{"op":"OpGt","lhs":{"dotRemainingTime":{"spellId":{"spellId":55095}}},"rhs":{"const":{"val":"1.5s"}}}}]}},{"and":{"vals":[{"cmp":{"op":"OpGt","lhs":{"runeCooldown":{"runeType":"RuneBlood"}},"rhs":{"const":{"val":"0.5"}}}},{"cmp":{"op":"OpGt","lhs":{"dotRemainingTime":{"spellId":{"spellId":55095}}},"rhs":{"const":{"val":"1.5s"}}}}]}}]}},"castSpell":{"spellId":{"spellId":57623}}}} + ] +} \ No newline at end of file diff --git a/ui/deathknight/apls/frost_bl_pesti.json b/ui/deathknight/apls/frost_bl_pesti.json new file mode 100644 index 0000000000..26c8df19a9 --- /dev/null +++ b/ui/deathknight/apls/frost_bl_pesti.json @@ -0,0 +1,26 @@ +{ + "type": "TypeAPL", + "prepullActions": [ + {"action":{"castSpell":{"spellId":{"spellId":48265}}},"doAtValue":{"const":{"val":"-20s"}}}, + {"action":{"castSpell":{"spellId":{"spellId":42650}}},"doAtValue":{"const":{"val":"-10s"}}}, + {"action":{"castSpell":{"spellId":{"spellId":50689}}},"doAtValue":{"const":{"val":"-6s"}}}, + {"action":{"castSpell":{"spellId":{"itemId":40211}}},"doAtValue":{"const":{"val":"-1s"}}} + ], + "priorityList": [ + {"action":{"autocastOtherCooldowns":{}}}, + {"action":{"sequence":{"name":"Opener","actions":[{"castSpell":{"spellId":{"spellId":59131}}},{"castSpell":{"spellId":{"tag":1,"spellId":49921}}},{"castSpell":{"spellId":{"spellId":51271}}},{"castSpell":{"spellId":{"spellId":54758}}},{"castSpell":{"spellId":{"spellId":33697}}},{"castSpell":{"spellId":{"spellId":45529}}},{"castSpell":{"spellId":{"tag":1,"spellId":51425}}},{"castSpell":{"spellId":{"tag":1,"spellId":55268}}},{"castSpell":{"spellId":{"spellId":50842}}},{"castSpell":{"spellId":{"spellId":47568}}},{"castSpell":{"spellId":{"tag":1,"spellId":51425}}},{"castSpell":{"spellId":{"tag":1,"spellId":55268}}},{"castSpell":{"spellId":{"tag":1,"spellId":51425}}},{"castSpell":{"spellId":{"tag":1,"spellId":51425}}},{"castSpell":{"spellId":{"spellId":46584}}}]}}}, + {"action":{"condition":{"not":{"val":{"dotIsActive":{"spellId":{"spellId":55095}}}}},"castSpell":{"spellId":{"spellId":59131}}}}, + {"action":{"condition":{"not":{"val":{"dotIsActive":{"spellId":{"spellId":55078}}}}},"castSpell":{"spellId":{"tag":1,"spellId":49921}}}}, + {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpLe","lhs":{"dotRemainingTime":{"spellId":{"spellId":55095}}},"rhs":{"const":{"val":"1.5s"}}}},{"dotIsActive":{"spellId":{"spellId":55095}}}]}},"castSpell":{"spellId":{"spellId":50842}}}}, + {"action":{"condition":{"and":{"vals":[{"spellIsReady":{"spellId":{"spellId":51271}}},{"spellCanCast":{"spellId":{"spellId":51271}}}]}},"castSpell":{"spellId":{"spellId":33697}}}}, + {"action":{"condition":{"and":{"vals":[{"spellIsReady":{"spellId":{"spellId":51271}}},{"spellCanCast":{"spellId":{"spellId":51271}}}]}},"castSpell":{"spellId":{"spellId":54758}}}}, + {"action":{"condition":{"and":{"vals":[{"spellIsReady":{"spellId":{"spellId":51271}}},{"spellCanCast":{"spellId":{"spellId":51271}}}]}},"castSpell":{"spellId":{"itemId":40211}}}}, + {"action":{"strictSequence":{"actions":[{"castSpell":{"spellId":{"spellId":51271}}},{"castSpell":{"spellId":{"spellId":45529}}}]}}}, + {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpLe","lhs":{"dotRemainingTime":{"spellId":{"spellId":55095}}},"rhs":{"const":{"val":"4s"}}}},{"dotIsActive":{"spellId":{"spellId":55095}}}]}},"castSpell":{"spellId":{"spellId":50842}}}}, + {"action":{"condition":{"auraIsActive":{"auraId":{"spellId":59052}}},"castSpell":{"spellId":{"spellId":51411}}}}, + {"action":{"castSpell":{"spellId":{"tag":1,"spellId":51425}}}}, + {"action":{"castSpell":{"spellId":{"spellId":46584}}}}, + {"action":{"castSpell":{"spellId":{"tag":1,"spellId":49930}}}}, + {"action":{"castSpell":{"spellId":{"tag":1,"spellId":55268}}}} + ] +} \ No newline at end of file diff --git a/ui/deathknight/apls/frost_uh_pesti.json b/ui/deathknight/apls/frost_uh_pesti.json new file mode 100644 index 0000000000..12a8ef7fb2 --- /dev/null +++ b/ui/deathknight/apls/frost_uh_pesti.json @@ -0,0 +1,26 @@ +{ + "type": "TypeAPL", + "prepullActions": [ + {"action":{"castSpell":{"spellId":{"spellId":48265}}},"doAtValue":{"const":{"val":"-20s"}}}, + {"action":{"castSpell":{"spellId":{"spellId":42650}}},"doAtValue":{"const":{"val":"-10s"}}}, + {"action":{"castSpell":{"spellId":{"spellId":50689}}},"doAtValue":{"const":{"val":"-6s"}}}, + {"action":{"castSpell":{"spellId":{"itemId":40211}}},"doAtValue":{"const":{"val":"-1s"}}} + ], + "priorityList": [ + {"action":{"autocastOtherCooldowns":{}}}, + {"action":{"sequence":{"name":"Opener","actions":[{"castSpell":{"spellId":{"spellId":59131}}},{"castSpell":{"spellId":{"tag":1,"spellId":49921}}},{"castSpell":{"spellId":{"spellId":51271}}},{"castSpell":{"spellId":{"spellId":54758}}},{"castSpell":{"spellId":{"spellId":33697}}},{"castSpell":{"spellId":{"spellId":45529}}},{"castSpell":{"spellId":{"tag":1,"spellId":51425}}},{"castSpell":{"spellId":{"tag":1,"spellId":55268}}},{"castSpell":{"spellId":{"tag":1,"spellId":49930}}},{"castSpell":{"spellId":{"spellId":47568}}},{"castSpell":{"spellId":{"tag":1,"spellId":51425}}},{"castSpell":{"spellId":{"tag":1,"spellId":55268}}},{"castSpell":{"spellId":{"tag":1,"spellId":51425}}},{"castSpell":{"spellId":{"tag":1,"spellId":51425}}},{"castSpell":{"spellId":{"spellId":46584}}}]}}}, + {"action":{"condition":{"not":{"val":{"dotIsActive":{"spellId":{"spellId":55095}}}}},"castSpell":{"spellId":{"spellId":59131}}}}, + {"action":{"condition":{"not":{"val":{"dotIsActive":{"spellId":{"spellId":55078}}}}},"castSpell":{"spellId":{"tag":1,"spellId":49921}}}}, + {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpLe","lhs":{"dotRemainingTime":{"spellId":{"spellId":55095}}},"rhs":{"const":{"val":"1.5s"}}}},{"dotIsActive":{"spellId":{"spellId":55095}}}]}},"castSpell":{"spellId":{"spellId":50842}}}}, + {"action":{"condition":{"and":{"vals":[{"spellIsReady":{"spellId":{"spellId":51271}}},{"spellCanCast":{"spellId":{"spellId":51271}}}]}},"castSpell":{"spellId":{"spellId":33697}}}}, + {"action":{"condition":{"and":{"vals":[{"spellIsReady":{"spellId":{"spellId":51271}}},{"spellCanCast":{"spellId":{"spellId":51271}}}]}},"castSpell":{"spellId":{"spellId":54758}}}}, + {"action":{"condition":{"and":{"vals":[{"spellIsReady":{"spellId":{"spellId":51271}}},{"spellCanCast":{"spellId":{"spellId":51271}}}]}},"castSpell":{"spellId":{"itemId":40211}}}}, + {"action":{"strictSequence":{"actions":[{"castSpell":{"spellId":{"spellId":51271}}},{"castSpell":{"spellId":{"spellId":45529}}}]}}}, + {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpLe","lhs":{"dotRemainingTime":{"spellId":{"spellId":55095}}},"rhs":{"const":{"val":"8.5s"}}}},{"dotIsActive":{"spellId":{"spellId":55095}}}]}},"castSpell":{"spellId":{"spellId":50842}}}}, + {"action":{"condition":{"auraIsActive":{"auraId":{"spellId":59052}}},"castSpell":{"spellId":{"spellId":51411}}}}, + {"action":{"castSpell":{"spellId":{"tag":1,"spellId":51425}}}}, + {"action":{"castSpell":{"spellId":{"spellId":46584}}}}, + {"action":{"castSpell":{"spellId":{"tag":1,"spellId":49930}}}}, + {"action":{"castSpell":{"spellId":{"tag":1,"spellId":55268}}}} + ] +} \ No newline at end of file diff --git a/ui/deathknight/apls/uh_2h_ss.json b/ui/deathknight/apls/uh_2h_ss.json new file mode 100644 index 0000000000..d0e0c0cdb7 --- /dev/null +++ b/ui/deathknight/apls/uh_2h_ss.json @@ -0,0 +1,29 @@ +{ + "type": "TypeAPL", + "prepullActions": [ + {"action":{"castSpell":{"spellId":{"spellId":49222}}},"doAtValue":{"const":{"val":"-20s"}}}, + {"action":{"castSpell":{"spellId":{"spellId":48265}}},"doAtValue":{"const":{"val":"-10s"}}}, + {"action":{"castSpell":{"spellId":{"spellId":63560}}},"doAtValue":{"const":{"val":"-8s"}}}, + {"action":{"castSpell":{"spellId":{"spellId":57623}}},"doAtValue":{"const":{"val":"-1.5s"}}}, + {"action":{"castSpell":{"spellId":{"itemId":40211}}},"doAtValue":{"const":{"val":"-1s"}}} + ], + "priorityList": [ + {"action":{"autocastOtherCooldowns":{}}}, + {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpLe","lhs":{"dotRemainingTime":{"spellId":{"spellId":55095}}},"rhs":{"nextRuneCooldown":{"runeType":"RuneFrost"}}}},{"cmp":{"op":"OpGe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"8s"}}}}]}},"castSpell":{"spellId":{"spellId":59131}}}}, + {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpLe","lhs":{"dotRemainingTime":{"spellId":{"spellId":55078}}},"rhs":{"nextRuneCooldown":{"runeType":"RuneUnholy"}}}},{"cmp":{"op":"OpGe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"8s"}}}}]}},"castSpell":{"spellId":{"spellId":49921,"tag":1}}}}, + {"action":{"condition":{"not":{"val":{"auraIsActive":{"auraId":{"spellId":66803}}}}},"castSpell":{"spellId":{"spellId":49930,"tag":1}}}}, + {"action":{"condition":{"auraIsActive":{"auraId":{"spellId":49206}}},"castSpell":{"spellId":{"spellId":26297}}}}, + {"action":{"condition":{"or":{"vals":[{"auraIsActive":{"auraId":{"spellId":49206}}},{"cmp":{"op":"OpGt","lhs":{"spellTimeToReady":{"spellId":{"spellId":49206}}},"rhs":{"const":{"val":"50s"}}}}]}},"castSpell":{"spellId":{"spellId":54758}}}}, + {"action":{"condition":{"or":{"vals":[{"auraIsActive":{"auraId":{"spellId":49206}}},{"cmp":{"op":"OpGt","lhs":{"spellTimeToReady":{"spellId":{"spellId":49206}}},"rhs":{"remainingTime":{}}}}]}},"castSpell":{"spellId":{"itemId":40211}}}}, + {"action":{"condition":{"auraIsActive":{"auraId":{"spellId":49206}}},"castSpell":{"spellId":{"spellId":42650}}}}, + {"action":{"condition":{"and":{"vals":[{"not":{"val":{"auraIsActive":{"sourceUnit":{"type":"Pet","index":1,"owner":{"type":"Self"}},"auraId":{"spellId":63560}}}}},{"not":{"val":{"currentRuneActive":{"runeSlot":"SlotLeftBlood"}}}}]}},"castSpell":{"spellId":{"spellId":45529}}}}, + {"action":{"condition":{"and":{"vals":[{"currentRuneDeath":{"runeSlot":"SlotLeftBlood"}},{"not":{"val":{"auraIsActive":{"sourceUnit":{"type":"Pet","index":1,"owner":{"type":"Self"}},"auraId":{"spellId":63560}}}}},{"cmp":{"op":"OpEq","lhs":{"currentNonDeathRuneCount":{"runeType":"RuneUnholy"}},"rhs":{"const":{"val":"0"}}}}]}},"castSpell":{"spellId":{"spellId":63560}}}}, + {"action":{"castSpell":{"spellId":{"spellId":55271,"tag":1}}}}, + {"action":{"castSpell":{"spellId":{"spellId":49930,"tag":1}}}}, + {"action":{"condition":{"auraIsActive":{"auraId":{"spellId":49206}}},"castSpell":{"spellId":{"spellId":47568}}}}, + {"action":{"castSpell":{"spellId":{"spellId":49206}}}}, + {"action":{"condition":{"not":{"val":{"spellIsReady":{"spellId":{"spellId":49206}}}}},"castSpell":{"spellId":{"spellId":49895}}}}, + {"action":{"condition":{"and":{"vals":[{"auraIsActive":{"auraId":{"spellId":48265}}},{"not":{"val":{"spellIsReady":{"spellId":{"spellId":49206}}}}},{"not":{"val":{"auraIsActive":{"auraId":{"spellId":49206}}}}}]}},"castSpell":{"spellId":{"spellId":50689}}}}, + {"action":{"castSpell":{"spellId":{"spellId":57623}}}} + ] +} \ No newline at end of file diff --git a/ui/deathknight/apls/uh_dnd_aoe.json b/ui/deathknight/apls/uh_dnd_aoe.json new file mode 100644 index 0000000000..c440dd8afc --- /dev/null +++ b/ui/deathknight/apls/uh_dnd_aoe.json @@ -0,0 +1,29 @@ +{ + "type": "TypeAPL", + "prepullActions": [ + {"action":{"castSpell":{"spellId":{"spellId":48265}}},"doAtValue":{"const":{"val":"-10s"}}}, + {"action":{"castSpell":{"spellId":{"spellId":63560}}},"doAtValue":{"const":{"val":"-8s"}}}, + {"action":{"castSpell":{"spellId":{"spellId":57623}}},"doAtValue":{"const":{"val":"-1.5s"}}}, + {"action":{"castSpell":{"spellId":{"itemId":40211}}},"doAtValue":{"const":{"val":"-1s"}}} + ], + "priorityList": [ + {"action":{"autocastOtherCooldowns":{}}}, + {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"dotRemainingTime":{"spellId":{"spellId":55095}}},"rhs":{"const":{"val":"3s"}}}},"castSpell":{"spellId":{"spellId":59131}}}}, + {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"dotRemainingTime":{"spellId":{"spellId":55078}}},"rhs":{"const":{"val":"3s"}}}},"castSpell":{"spellId":{"spellId":49921,"tag":1}}}}, + {"action":{"condition":{"not":{"val":{"auraIsActive":{"auraId":{"spellId":66803}}}}},"castSpell":{"spellId":{"spellId":49930,"tag":1}}}}, + {"action":{"condition":{"auraIsActive":{"auraId":{"spellId":49206}}},"castSpell":{"spellId":{"spellId":26297}}}}, + {"action":{"condition":{"or":{"vals":[{"auraIsActive":{"auraId":{"spellId":49206}}},{"cmp":{"op":"OpGt","lhs":{"spellTimeToReady":{"spellId":{"spellId":49206}}},"rhs":{"const":{"val":"50s"}}}}]}},"castSpell":{"spellId":{"spellId":54758}}}}, + {"action":{"condition":{"or":{"vals":[{"auraIsActive":{"auraId":{"spellId":49206}}},{"cmp":{"op":"OpGt","lhs":{"spellTimeToReady":{"spellId":{"spellId":49206}}},"rhs":{"remainingTime":{}}}}]}},"castSpell":{"spellId":{"itemId":40211}}}}, + {"action":{"condition":{"auraIsActive":{"auraId":{"spellId":49206}}},"castSpell":{"spellId":{"spellId":47568}}}}, + {"action":{"condition":{"auraIsActive":{"auraId":{"spellId":49206}}},"castSpell":{"spellId":{"spellId":42650}}}}, + {"action":{"castSpell":{"spellId":{"spellId":49938}}}}, + {"action":{"condition":{"cmp":{"op":"OpGt","lhs":{"spellTimeToReady":{"spellId":{"spellId":49938}}},"rhs":{"const":{"val":"6s"}}}},"castSpell":{"spellId":{"spellId":55271,"tag":1}}}}, + {"action":{"condition":{"and":{"vals":[{"not":{"val":{"dotIsActive":{"targetUnit":{"type":"Target","index":1},"spellId":{"spellId":55095}}}}}]}},"castSpell":{"spellId":{"spellId":50842}}}}, + {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpGt","lhs":{"spellTimeToReady":{"spellId":{"spellId":49938}}},"rhs":{"const":{"val":"6s"}}}},{"cmp":{"op":"OpLt","lhs":{"auraRemainingTime":{"auraId":{"spellId":66803}}},"rhs":{"const":{"val":"10s"}}}}]}},"castSpell":{"spellId":{"spellId":49930,"tag":1}}}}, + {"action":{"castSpell":{"spellId":{"spellId":49206}}}}, + {"action":{"condition":{"not":{"val":{"spellIsReady":{"spellId":{"spellId":49206}}}}},"castSpell":{"spellId":{"spellId":49895}}}}, + {"action":{"strictSequence":{"actions":[{"castSpell":{"spellId":{"spellId":45529}}},{"castSpell":{"spellId":{"spellId":63560}}}]}}}, + {"action":{"condition":{"and":{"vals":[{"auraIsActive":{"auraId":{"spellId":48265}}},{"not":{"val":{"spellIsReady":{"spellId":{"spellId":49206}}}}},{"not":{"val":{"auraIsActive":{"auraId":{"spellId":49206}}}}}]}},"castSpell":{"spellId":{"spellId":50689}}}}, + {"action":{"castSpell":{"spellId":{"spellId":57623}}}} + ] +} \ No newline at end of file diff --git a/ui/deathknight/apls/unholy_dw_ss.json b/ui/deathknight/apls/unholy_dw_ss.json new file mode 100644 index 0000000000..2e399d76f5 --- /dev/null +++ b/ui/deathknight/apls/unholy_dw_ss.json @@ -0,0 +1,31 @@ +{ + "type": "TypeAPL", + "prepullActions": [ + {"action":{"castSpell":{"spellId":{"spellId":48265}}},"doAtValue":{"const":{"val":"-10s"}}}, + {"action":{"castSpell":{"spellId":{"spellId":63560}}},"doAtValue":{"const":{"val":"-8s"}}}, + {"action":{"castSpell":{"spellId":{"spellId":57623}}},"doAtValue":{"const":{"val":"-1.5s"}}}, + {"action":{"castSpell":{"spellId":{"itemId":40211}}},"doAtValue":{"const":{"val":"-1s"}}} + ], + "priorityList": [ + {"action":{"autocastOtherCooldowns":{}}}, + {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"dotRemainingTime":{"spellId":{"spellId":55095}}},"rhs":{"const":{"val":"3s"}}}},"castSpell":{"spellId":{"spellId":59131}}}}, + {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"dotRemainingTime":{"spellId":{"spellId":55078}}},"rhs":{"const":{"val":"3s"}}}},"castSpell":{"spellId":{"spellId":49921,"tag":1}}}}, + {"action":{"condition":{"not":{"val":{"auraIsActive":{"auraId":{"spellId":66803}}}}},"castSpell":{"spellId":{"spellId":49930,"tag":1}}}}, + {"action":{"condition":{"auraIsActive":{"auraId":{"spellId":49206}}},"castSpell":{"spellId":{"spellId":26297}}}}, + {"action":{"condition":{"or":{"vals":[{"auraIsActive":{"auraId":{"spellId":49206}}},{"cmp":{"op":"OpGt","lhs":{"spellTimeToReady":{"spellId":{"spellId":49206}}},"rhs":{"const":{"val":"50s"}}}}]}},"castSpell":{"spellId":{"spellId":54758}}}}, + {"action":{"condition":{"or":{"vals":[{"auraIsActive":{"auraId":{"spellId":49206}}},{"cmp":{"op":"OpGt","lhs":{"spellTimeToReady":{"spellId":{"spellId":49206}}},"rhs":{"remainingTime":{}}}}]}},"castSpell":{"spellId":{"itemId":40211}}}}, + {"action":{"condition":{"and":{"vals":[{"auraIsActive":{"auraId":{"spellId":49206}}},{"not":{"val":{"spellIsReady":{"spellId":{"spellId":47568}}}}},{"cmp":{"op":"OpEq","lhs":{"currentNonDeathRuneCount":{"runeType":"RuneFrost"}},"rhs":{"const":{"val":"1"}}}}]}},"castSpell":{"spellId":{"spellId":42650}}}}, + {"action":{"condition":{"and":{"vals":[{"not":{"val":{"auraIsActive":{"auraId":{"spellId":67383}}}}},{"spellIsReady":{"spellId":{"spellId":49206}}}]}},"castSpell":{"spellId":{"spellId":55271,"tag":1}}}}, + {"action":{"castSpell":{"spellId":{"spellId":49938}}}}, + {"action":{"condition":{"auraIsActive":{"auraId":{"spellId":49206}}},"castSpell":{"spellId":{"spellId":42650}}}}, + {"action":{"condition":{"cmp":{"op":"OpGt","lhs":{"spellTimeToReady":{"spellId":{"spellId":49938}}},"rhs":{"const":{"val":"6s"}}}},"castSpell":{"spellId":{"spellId":55271,"tag":1}}}}, + {"action":{"condition":{"and":{"vals":[{"or":{"vals":[{"cmp":{"op":"OpGt","lhs":{"spellTimeToReady":{"spellId":{"spellId":49938}}},"rhs":{"const":{"val":"6s"}}}},{"spellIsReady":{"spellId":{"spellId":47568}}}]}},{"or":{"vals":[{"cmp":{"op":"OpLt","lhs":{"auraRemainingTime":{"auraId":{"spellId":66803}}},"rhs":{"const":{"val":"10s"}}}},{"cmp":{"op":"OpLe","lhs":{"auraInternalCooldown":{"auraId":{"spellId":67117}}},"rhs":{"const":{"val":"0s"}}}}]}}]}},"castSpell":{"spellId":{"spellId":49930,"tag":1}}}}, + {"action":{"condition":{"or":{"vals":[{"cmp":{"op":"OpGt","lhs":{"spellTimeToReady":{"spellId":{"spellId":49938}}},"rhs":{"const":{"val":"6s"}}}},{"spellIsReady":{"spellId":{"spellId":47568}}}]}},"castSpell":{"spellId":{"spellId":49941}}}}, + {"action":{"condition":{"auraIsActive":{"auraId":{"spellId":49206}}},"castSpell":{"spellId":{"spellId":47568}}}}, + {"action":{"castSpell":{"spellId":{"spellId":49206}}}}, + {"action":{"condition":{"not":{"val":{"spellIsReady":{"spellId":{"spellId":49206}}}}},"castSpell":{"spellId":{"spellId":49895}}}}, + {"action":{"strictSequence":{"actions":[{"castSpell":{"spellId":{"spellId":45529}}},{"castSpell":{"spellId":{"spellId":63560}}}]}}}, + {"action":{"condition":{"and":{"vals":[{"auraIsActive":{"auraId":{"spellId":48265}}},{"not":{"val":{"spellIsReady":{"spellId":{"spellId":49206}}}}},{"not":{"val":{"auraIsActive":{"auraId":{"spellId":49206}}}}}]}},"castSpell":{"spellId":{"spellId":50689}}}}, + {"action":{"castSpell":{"spellId":{"spellId":57623}}}} + ] +} \ No newline at end of file diff --git a/ui/deathknight/presets.ts b/ui/deathknight/presets.ts index c40e474ffc..fd37971bc5 100644 --- a/ui/deathknight/presets.ts +++ b/ui/deathknight/presets.ts @@ -32,6 +32,17 @@ import { import * as Tooltips from '../core/constants/tooltips.js'; import { APLRotation } from '../core/proto/apl.js'; +import BloodPestiApl from './apls/blood_pesti.json'; +import BloodPestiDDApl from './apls/blood_pesti_dd.json'; +import BloodPestiAoeApl from './apls/blood_pesti_aoe.json'; + +import FrostBlPestiApl from './apls/frost_bl_pesti.json'; +import FrostUhPestiApl from './apls/frost_uh_pesti.json'; + +import UhDwSsApl from './apls/unholy_dw_ss.json'; +import Uh2hSsApl from './apls/uh_2h_ss.json'; +import UhDndAoeApl from './apls/uh_dnd_aoe.json'; + // Preset options for this spec. // Eventually we will import these values for the raid sim too, so its good to // keep them in a separate file. @@ -277,39 +288,7 @@ export const BLOOD_PESTI_ROTATION_PRESET_DEFAULT = { //enableWhen: (player: Player) => player.getTalentTree() == 0, rotation: SavedRotation.create({ specRotationOptionsJson: DeathKnightRotation.toJsonString(DefaultBloodRotation), - rotation: APLRotation.fromJsonString(`{ - "type": "TypeAPL", - "prepullActions": [ - {"action":{"castSpell":{"spellId":{"spellId":48265}}},"doAtValue":{"const":{"val":"-20s"}}}, - {"action":{"castSpell":{"spellId":{"spellId":42650}}},"doAtValue":{"const":{"val":"-10s"}}}, - {"action":{"castSpell":{"spellId":{"spellId":50689}}},"doAtValue":{"const":{"val":"-6s"}}}, - {"action":{"castSpell":{"spellId":{"spellId":57623}}},"doAtValue":{"const":{"val":"-1.5s"}}}, - {"action":{"castSpell":{"spellId":{"itemId":40211}}},"doAtValue":{"const":{"val":"-1s"}}} - ], - "priorityList": [ - {"action":{"condition":{"cmp":{"op":"OpGe","lhs":{"currentTime":{}},"rhs":{"const":{"val":"8.5s"}}}},"castSpell":{"spellId":{"spellId":64382,"tag":-1}}}}, - {"action":{"autocastOtherCooldowns":{}}}, - {"action":{"condition":{"not":{"val":{"dotIsActive":{"spellId":{"spellId":55095}}}}},"resetSequence":{"sequenceName":"IT"}}}, - {"action":{"condition":{"not":{"val":{"dotIsActive":{"spellId":{"spellId":55078}}}}},"resetSequence":{"sequenceName":"PS"}}}, - {"action":{"condition":{"or":{"vals":[{"and":{"vals":[{"auraIsActive":{"auraId":{"spellId":49028}}},{"cmp":{"op":"OpEq","lhs":{"runeCooldown":{"runeType":"RuneFrost"}},"rhs":{"const":{"val":"0"}}}},{"cmp":{"op":"OpGe","lhs":{"currentNonDeathRuneCount":{"runeType":"RuneFrost"}},"rhs":{"const":{"val":"1"}}}}]}},{"not":{"val":{"dotIsActive":{"spellId":{"spellId":55095}}}}}]}},"sequence":{"name":"IT","actions":[{"castSpell":{"spellId":{"spellId":59131}}}]}}}, - {"action":{"condition":{"or":{"vals":[{"and":{"vals":[{"auraIsActive":{"auraId":{"spellId":49028}}},{"cmp":{"op":"OpEq","lhs":{"runeCooldown":{"runeType":"RuneUnholy"}},"rhs":{"const":{"val":"0"}}}},{"cmp":{"op":"OpGe","lhs":{"currentNonDeathRuneCount":{"runeType":"RuneUnholy"}},"rhs":{"const":{"val":"1"}}}}]}},{"not":{"val":{"dotIsActive":{"spellId":{"spellId":55078}}}}}]}},"sequence":{"name":"PS","actions":[{"castSpell":{"spellId":{"spellId":49921,"tag":1}}}]}}}, - {"action":{"sequence":{"name":"Opener","actions":[{"castSpell":{"spellId":{"spellId":49016}}},{"castSpell":{"spellId":{"spellId":33697}}},{"castSpell":{"spellId":{"spellId":26297}}},{"castSpell":{"spellId":{"spellId":54758}}},{"castSpell":{"spellId":{"spellId":49924,"tag":1}}},{"castSpell":{"spellId":{"spellId":55262,"tag":1}}},{"castSpell":{"spellId":{"spellId":55262,"tag":1}}}]}}}, - {"action":{"condition":{"or":{"vals":[{"and":{"vals":[{"cmp":{"op":"OpLe","lhs":{"dotRemainingTime":{"spellId":{"spellId":55095}}},"rhs":{"const":{"val":"1.5s"}}}},{"dotIsActive":{"spellId":{"spellId":55095}}},{"dotIsActive":{"spellId":{"spellId":55078}}}]}},{"and":{"vals":[{"and":{"vals":[{"cmp":{"op":"OpGt","lhs":{"nextRuneCooldown":{"runeType":"RuneBlood"}},"rhs":{"dotRemainingTime":{"spellId":{"spellId":55095}}}}},{"cmp":{"op":"OpEq","lhs":{"currentRuneCount":{"runeType":"RuneDeath"}},"rhs":{"const":{"val":"0"}}}}]}},{"dotIsActive":{"spellId":{"spellId":55095}}},{"dotIsActive":{"spellId":{"spellId":55078}}}]}},{"and":{"vals":[{"cmp":{"op":"OpLe","lhs":{"math":{"op":"OpAdd","lhs":{"spellTimeToReady":{"spellId":{"spellId":46584}}},"rhs":{"dotRemainingTime":{"spellId":{"spellId":55095}}}}},"rhs":{"math":{"op":"OpAdd","lhs":{"spellTimeToReady":{"spellId":{"spellId":49028}}},"rhs":{"const":{"val":"3s"}}}}}},{"not":{"val":{"auraIsActive":{"auraId":{"spellId":49028}}}}},{"dotIsActive":{"spellId":{"spellId":55095}}},{"dotIsActive":{"spellId":{"spellId":55078}}}]}}]}},"castSpell":{"spellId":{"spellId":50842}}}}, - {"action":{"condition":{"and":{"vals":[{"and":{"vals":[{"cmp":{"op":"OpLe","lhs":{"dotRemainingTime":{"spellId":{"spellId":55095}}},"rhs":{"math":{"op":"OpAdd","lhs":{"auraRemainingTime":{"auraId":{"spellId":49028}}},"rhs":{"const":{"val":"4s"}}}}}},{"cmp":{"op":"OpLe","lhs":{"auraRemainingTime":{"auraId":{"spellId":49028}}},"rhs":{"const":{"val":"2s"}}}},{"auraIsActive":{"auraId":{"spellId":49028}}},{"sequenceIsComplete":{"sequenceName":"IT"}}]}}]}},"strictSequence":{"actions":[{"castSpell":{"spellId":{"spellId":45529}}},{"castSpell":{"spellId":{"spellId":50842}}}]}}}, - {"action":{"condition":{"or":{"vals":[{"and":{"vals":[{"spellIsReady":{"spellId":{"spellId":49016}}},{"spellIsReady":{"spellId":{"spellId":46584}}},{"spellIsReady":{"spellId":{"spellId":49028}}},{"gcdIsReady":{}}]}},{"and":{"vals":[{"spellIsReady":{"spellId":{"spellId":46584}}},{"spellIsReady":{"spellId":{"spellId":49028}}},{"cmp":{"op":"OpLt","lhs":{"remainingTime":{}},"rhs":{"math":{"op":"OpAdd","lhs":{"spellTimeToReady":{"spellId":{"spellId":33697}}},"rhs":{"const":{"val":"15"}}}}}},{"cmp":{"op":"OpLt","lhs":{"remainingTime":{}},"rhs":{"math":{"op":"OpAdd","lhs":{"spellTimeToReady":{"spellId":{"spellId":26297}}},"rhs":{"const":{"val":"10"}}}}}}]}},{"cmp":{"op":"OpLt","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"15"}}}},{"auraIsActive":{"auraId":{"spellId":33697}}}]}},"castSpell":{"spellId":{"otherId":"OtherActionPotion"}}}}, - {"action":{"condition":{"or":{"vals":[{"and":{"vals":[{"spellIsReady":{"spellId":{"spellId":46584}}},{"spellIsReady":{"spellId":{"spellId":49028}}},{"or":{"vals":[{"cmp":{"op":"OpLt","lhs":{"remainingTime":{}},"rhs":{"math":{"op":"OpAdd","lhs":{"spellTimeToReady":{"spellId":{"spellId":33697}}},"rhs":{"const":{"val":"15"}}}}}},{"cmp":{"op":"OpGe","lhs":{"remainingTime":{}},"rhs":{"math":{"op":"OpAdd","lhs":{"spellTimeToReady":{"spellId":{"spellId":49016}}},"rhs":{"const":{"val":"9"}}}}}}]}},{"gcdIsReady":{}}]}},{"and":{"vals":[{"spellIsReady":{"spellId":{"spellId":33697}}},{"spellIsReady":{"spellId":{"spellId":46584}}},{"spellIsReady":{"spellId":{"spellId":49028}}},{"gcdIsReady":{}}]}},{"cmp":{"op":"OpLe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"12"}}}},{"and":{"vals":[{"cmp":{"op":"OpGt","lhs":{"spellTimeToReady":{"spellId":{"spellId":33697}}},"rhs":{"const":{"val":"55"}}}},{"cmp":{"op":"OpGt","lhs":{"remainingTime":{}},"rhs":{"math":{"op":"OpAdd","lhs":{"spellTimeToReady":{"spellId":{"spellId":33697}}},"rhs":{"const":{"val":"20"}}}}}},{"cmp":{"op":"OpLt","lhs":{"remainingTime":{}},"rhs":{"math":{"op":"OpAdd","lhs":{"spellTimeToReady":{"spellId":{"spellId":49016}}},"rhs":{"const":{"val":"20"}}}}}},{"gcdIsReady":{}},{"spellIsReady":{"spellId":{"spellId":26297}}}]}}]}},"castSpell":{"spellId":{"spellId":54758}}}}, - {"action":{"condition":{"and":{"vals":[{"auraIsActive":{"auraId":{"spellId":54758}}},{"gcdIsReady":{}}]}},"castSpell":{"spellId":{"spellId":47568}}}}, - {"action":{"condition":{"and":{"vals":[{"auraIsActive":{"auraId":{"spellId":54758}}},{"gcdIsReady":{}}]}},"castSpell":{"spellId":{"spellId":49016}}}}, - {"action":{"condition":{"and":{"vals":[{"auraIsActive":{"auraId":{"spellId":54758}}},{"gcdIsReady":{}}]}},"castSpell":{"spellId":{"spellId":26297}}}}, - {"action":{"condition":{"and":{"vals":[{"auraIsActive":{"auraId":{"spellId":54758}}},{"gcdIsReady":{}}]}},"castSpell":{"spellId":{"spellId":33697}}}}, - {"action":{"condition":{"and":{"vals":[{"auraIsActive":{"auraId":{"spellId":54758}}},{"gcdIsReady":{}}]}},"strictSequence":{"actions":[{"castSpell":{"spellId":{"spellId":46584}}},{"castSpell":{"spellId":{"spellId":49028}}}]}}}, - {"action":{"condition":{"and":{"vals":[{"not":{"val":{"currentRuneActive":{"runeSlot":"SlotLeftBlood"}}}},{"sequenceIsComplete":{"sequenceName":"Opener"}},{"spellIsReady":{"spellId":{"spellId":45529}}},{"gcdIsReady":{}},{"and":{"vals":[{"cmp":{"op":"OpGt","lhs":{"spellTimeToReady":{"spellId":{"spellId":49028}}},"rhs":{"const":{"val":"40"}}}},{"or":{"vals":[{"not":{"val":{"auraIsActive":{"auraId":{"spellId":49028}}}}},{"cmp":{"op":"OpGt","lhs":{"auraRemainingTime":{"auraId":{"spellId":49028}}},"rhs":{"dotRemainingTime":{"spellId":{"spellId":55095}}}}}]}}]}}]}},"castSpell":{"spellId":{"spellId":45529}}}}, - {"action":{"condition":{"and":{"vals":[{"or":{"vals":[{"cmp":{"op":"OpLt","lhs":{"nextRuneCooldown":{"runeType":"RuneBlood"}},"rhs":{"dotRemainingTime":{"spellId":{"spellId":55095}}}}},{"cmp":{"op":"OpGt","lhs":{"nextRuneCooldown":{"runeType":"RuneBlood"}},"rhs":{"const":{"val":"8s"}}}}]}},{"not":{"val":{"or":{"vals":[{"cmp":{"op":"OpGe","lhs":{"nextRuneCooldown":{"runeType":"RuneFrost"}},"rhs":{"auraRemainingTime":{"auraId":{"spellId":71227}}}}},{"cmp":{"op":"OpGe","lhs":{"nextRuneCooldown":{"runeType":"RuneUnholy"}},"rhs":{"auraRemainingTime":{"auraId":{"spellId":71227}}}}}]}}}}]}},"castSpell":{"spellId":{"spellId":55262,"tag":1}}}}, - {"action":{"condition":{"not":{"val":{}}},"castSpell":{"spellId":{"spellId":49924,"tag":1}}}}, - {"action":{"condition":{"or":{"vals":[{"and":{"vals":[{"cmp":{"op":"OpGt","lhs":{"runeCooldown":{"runeType":"RuneFrost"}},"rhs":{"const":{"val":"0.5"}}}},{"cmp":{"op":"OpGt","lhs":{"runeCooldown":{"runeType":"RuneUnholy"}},"rhs":{"const":{"val":"0.5"}}}},{"or":{"vals":[{"cmp":{"op":"OpGt","lhs":{"spellTimeToReady":{"spellId":{"spellId":49028}}},"rhs":{"const":{"val":"10"}}}},{"cmp":{"op":"OpEq","lhs":{"currentRunicPower":{}},"rhs":{"const":{"val":"100"}}}}]}},{"cmp":{"op":"OpGt","lhs":{"dotRemainingTime":{"spellId":{"spellId":55095}}},"rhs":{"const":{"val":"1.5s"}}}},{"not":{"val":{"cmp":{"op":"OpLe","lhs":{"auraRemainingTime":{"auraId":{"spellId":71227}}},"rhs":{"const":{"val":"1.5s"}}}}}}]}},{"and":{"vals":[{"cmp":{"op":"OpGt","lhs":{"runeCooldown":{"runeType":"RuneBlood"}},"rhs":{"const":{"val":"0.3"}}}},{"or":{"vals":[{"cmp":{"op":"OpGt","lhs":{"spellTimeToReady":{"spellId":{"spellId":49028}}},"rhs":{"const":{"val":"10"}}}},{"cmp":{"op":"OpEq","lhs":{"currentRunicPower":{}},"rhs":{"const":{"val":"100"}}}}]}},{"cmp":{"op":"OpGt","lhs":{"dotRemainingTime":{"spellId":{"spellId":55095}}},"rhs":{"const":{"val":"1.5s"}}}},{"not":{"val":{"cmp":{"op":"OpLe","lhs":{"auraRemainingTime":{"auraId":{"spellId":71227}}},"rhs":{"const":{"val":"1.5s"}}}}}}]}}]}},"castSpell":{"spellId":{"spellId":49895}}}}, - {"action":{"condition":{"or":{"vals":[{"and":{"vals":[{"cmp":{"op":"OpGt","lhs":{"runeCooldown":{"runeType":"RuneFrost"}},"rhs":{"const":{"val":"0.5"}}}},{"cmp":{"op":"OpGt","lhs":{"runeCooldown":{"runeType":"RuneUnholy"}},"rhs":{"const":{"val":"0.5"}}}},{"cmp":{"op":"OpGt","lhs":{"dotRemainingTime":{"spellId":{"spellId":55095}}},"rhs":{"const":{"val":"1.5s"}}}}]}},{"and":{"vals":[{"cmp":{"op":"OpGt","lhs":{"runeCooldown":{"runeType":"RuneBlood"}},"rhs":{"const":{"val":"0.5"}}}},{"cmp":{"op":"OpGt","lhs":{"dotRemainingTime":{"spellId":{"spellId":55095}}},"rhs":{"const":{"val":"1.5s"}}}}]}}]}},"castSpell":{"spellId":{"spellId":57623}}}} - ] - }`), + rotation: APLRotation.fromJsonString(JSON.stringify(BloodPestiApl)), }), } @@ -318,39 +297,7 @@ export const BLOOD_PESTI_DD_ROTATION_PRESET_DEFAULT = { //enableWhen: (player: Player) => player.getTalentTree() == 0, rotation: SavedRotation.create({ specRotationOptionsJson: DeathKnightRotation.toJsonString(DefaultBloodRotation), - rotation: APLRotation.fromJsonString(`{ - "type": "TypeAPL", - "prepullActions": [ - {"action":{"castSpell":{"spellId":{"spellId":48265}}},"doAtValue":{"const":{"val":"-20s"}}}, - {"action":{"castSpell":{"spellId":{"spellId":42650}}},"doAtValue":{"const":{"val":"-10s"}}}, - {"action":{"castSpell":{"spellId":{"spellId":50689}}},"doAtValue":{"const":{"val":"-6s"}}}, - {"action":{"castSpell":{"spellId":{"spellId":57623}}},"doAtValue":{"const":{"val":"-1.5s"}}}, - {"action":{"castSpell":{"spellId":{"itemId":40211}}},"doAtValue":{"const":{"val":"-1s"}}} - ], - "priorityList": [ - {"action":{"condition":{"cmp":{"op":"OpGe","lhs":{"currentTime":{}},"rhs":{"const":{"val":"8.5s"}}}},"castSpell":{"spellId":{"spellId":64382,"tag":-1}}}}, - {"action":{"autocastOtherCooldowns":{}}}, - {"action":{"condition":{"not":{"val":{"dotIsActive":{"spellId":{"spellId":55095}}}}},"resetSequence":{"sequenceName":"IT"}}}, - {"action":{"condition":{"not":{"val":{"dotIsActive":{"spellId":{"spellId":55078}}}}},"resetSequence":{"sequenceName":"PS"}}}, - {"action":{"condition":{"or":{"vals":[{"and":{"vals":[{"auraIsActive":{"auraId":{"spellId":49028}}},{"cmp":{"op":"OpEq","lhs":{"runeCooldown":{"runeType":"RuneFrost"}},"rhs":{"const":{"val":"0"}}}},{"cmp":{"op":"OpGe","lhs":{"currentNonDeathRuneCount":{"runeType":"RuneFrost"}},"rhs":{"const":{"val":"1"}}}}]}},{"not":{"val":{"dotIsActive":{"spellId":{"spellId":55095}}}}}]}},"sequence":{"name":"IT","actions":[{"castSpell":{"spellId":{"spellId":59131}}}]}}}, - {"action":{"condition":{"or":{"vals":[{"and":{"vals":[{"auraIsActive":{"auraId":{"spellId":49028}}},{"cmp":{"op":"OpEq","lhs":{"runeCooldown":{"runeType":"RuneUnholy"}},"rhs":{"const":{"val":"0"}}}},{"cmp":{"op":"OpGe","lhs":{"currentNonDeathRuneCount":{"runeType":"RuneUnholy"}},"rhs":{"const":{"val":"1"}}}}]}},{"not":{"val":{"dotIsActive":{"spellId":{"spellId":55078}}}}}]}},"sequence":{"name":"PS","actions":[{"castSpell":{"spellId":{"spellId":49921,"tag":1}}}]}}}, - {"action":{"sequence":{"name":"Opener","actions":[{"castSpell":{"spellId":{"spellId":49016}}},{"castSpell":{"spellId":{"spellId":33697}}},{"castSpell":{"spellId":{"spellId":26297}}},{"castSpell":{"spellId":{"spellId":54758}}},{"castSpell":{"spellId":{"spellId":49924,"tag":1}}},{"castSpell":{"spellId":{"spellId":55262,"tag":1}}},{"castSpell":{"spellId":{"spellId":55262,"tag":1}}}]}}}, - {"action":{"condition":{"or":{"vals":[{"and":{"vals":[{"cmp":{"op":"OpLe","lhs":{"dotRemainingTime":{"spellId":{"spellId":55095}}},"rhs":{"const":{"val":"1.5s"}}}},{"dotIsActive":{"spellId":{"spellId":55095}}},{"dotIsActive":{"spellId":{"spellId":55078}}}]}},{"and":{"vals":[{"and":{"vals":[{"cmp":{"op":"OpGt","lhs":{"nextRuneCooldown":{"runeType":"RuneBlood"}},"rhs":{"dotRemainingTime":{"spellId":{"spellId":55095}}}}},{"cmp":{"op":"OpEq","lhs":{"currentRuneCount":{"runeType":"RuneDeath"}},"rhs":{"const":{"val":"0"}}}}]}},{"dotIsActive":{"spellId":{"spellId":55095}}},{"dotIsActive":{"spellId":{"spellId":55078}}}]}},{"and":{"vals":[{"cmp":{"op":"OpLe","lhs":{"math":{"op":"OpAdd","lhs":{"spellTimeToReady":{"spellId":{"spellId":46584}}},"rhs":{"dotRemainingTime":{"spellId":{"spellId":55095}}}}},"rhs":{"math":{"op":"OpAdd","lhs":{"spellTimeToReady":{"spellId":{"spellId":49028}}},"rhs":{"const":{"val":"3s"}}}}}},{"not":{"val":{"auraIsActive":{"auraId":{"spellId":49028}}}}},{"dotIsActive":{"spellId":{"spellId":55095}}},{"dotIsActive":{"spellId":{"spellId":55078}}}]}}]}},"castSpell":{"spellId":{"spellId":50842}}}}, - {"action":{"condition":{"and":{"vals":[{"and":{"vals":[{"cmp":{"op":"OpLe","lhs":{"dotRemainingTime":{"spellId":{"spellId":55095}}},"rhs":{"math":{"op":"OpAdd","lhs":{"auraRemainingTime":{"auraId":{"spellId":49028}}},"rhs":{"const":{"val":"4s"}}}}}},{"cmp":{"op":"OpLe","lhs":{"auraRemainingTime":{"auraId":{"spellId":49028}}},"rhs":{"const":{"val":"2s"}}}},{"auraIsActive":{"auraId":{"spellId":49028}}},{"sequenceIsComplete":{"sequenceName":"IT"}}]}}]}},"strictSequence":{"actions":[{"castSpell":{"spellId":{"spellId":45529}}},{"castSpell":{"spellId":{"spellId":50842}}}]}}}, - {"action":{"condition":{"or":{"vals":[{"and":{"vals":[{"spellIsReady":{"spellId":{"spellId":49016}}},{"spellIsReady":{"spellId":{"spellId":46584}}},{"spellIsReady":{"spellId":{"spellId":49028}}},{"gcdIsReady":{}}]}},{"and":{"vals":[{"spellIsReady":{"spellId":{"spellId":46584}}},{"spellIsReady":{"spellId":{"spellId":49028}}},{"cmp":{"op":"OpLt","lhs":{"remainingTime":{}},"rhs":{"math":{"op":"OpAdd","lhs":{"spellTimeToReady":{"spellId":{"spellId":33697}}},"rhs":{"const":{"val":"15"}}}}}},{"cmp":{"op":"OpLt","lhs":{"remainingTime":{}},"rhs":{"math":{"op":"OpAdd","lhs":{"spellTimeToReady":{"spellId":{"spellId":26297}}},"rhs":{"const":{"val":"10"}}}}}}]}},{"cmp":{"op":"OpLt","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"15"}}}},{"auraIsActive":{"auraId":{"spellId":33697}}}]}},"castSpell":{"spellId":{"otherId":"OtherActionPotion"}}}}, - {"action":{"condition":{"or":{"vals":[{"and":{"vals":[{"spellIsReady":{"spellId":{"spellId":46584}}},{"spellIsReady":{"spellId":{"spellId":49028}}},{"or":{"vals":[{"cmp":{"op":"OpLt","lhs":{"remainingTime":{}},"rhs":{"math":{"op":"OpAdd","lhs":{"spellTimeToReady":{"spellId":{"spellId":33697}}},"rhs":{"const":{"val":"15"}}}}}},{"cmp":{"op":"OpGe","lhs":{"remainingTime":{}},"rhs":{"math":{"op":"OpAdd","lhs":{"spellTimeToReady":{"spellId":{"spellId":49016}}},"rhs":{"const":{"val":"9"}}}}}}]}},{"gcdIsReady":{}}]}},{"and":{"vals":[{"spellIsReady":{"spellId":{"spellId":33697}}},{"spellIsReady":{"spellId":{"spellId":46584}}},{"spellIsReady":{"spellId":{"spellId":49028}}},{"gcdIsReady":{}}]}},{"cmp":{"op":"OpLe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"12"}}}},{"and":{"vals":[{"cmp":{"op":"OpGt","lhs":{"spellTimeToReady":{"spellId":{"spellId":33697}}},"rhs":{"const":{"val":"55"}}}},{"cmp":{"op":"OpGt","lhs":{"remainingTime":{}},"rhs":{"math":{"op":"OpAdd","lhs":{"spellTimeToReady":{"spellId":{"spellId":33697}}},"rhs":{"const":{"val":"20"}}}}}},{"cmp":{"op":"OpLt","lhs":{"remainingTime":{}},"rhs":{"math":{"op":"OpAdd","lhs":{"spellTimeToReady":{"spellId":{"spellId":49016}}},"rhs":{"const":{"val":"20"}}}}}},{"gcdIsReady":{}},{"spellIsReady":{"spellId":{"spellId":26297}}}]}}]}},"castSpell":{"spellId":{"spellId":54758}}}}, - {"action":{"condition":{"and":{"vals":[{"auraIsActive":{"auraId":{"spellId":54758}}},{"gcdIsReady":{}}]}},"castSpell":{"spellId":{"spellId":47568}}}}, - {"action":{"condition":{"and":{"vals":[{"auraIsActive":{"auraId":{"spellId":54758}}},{"gcdIsReady":{}}]}},"castSpell":{"spellId":{"spellId":49016}}}}, - {"action":{"condition":{"and":{"vals":[{"auraIsActive":{"auraId":{"spellId":54758}}},{"gcdIsReady":{}}]}},"castSpell":{"spellId":{"spellId":26297}}}}, - {"action":{"condition":{"and":{"vals":[{"auraIsActive":{"auraId":{"spellId":54758}}},{"gcdIsReady":{}}]}},"castSpell":{"spellId":{"spellId":33697}}}}, - {"action":{"condition":{"and":{"vals":[{"auraIsActive":{"auraId":{"spellId":54758}}},{"gcdIsReady":{}}]}},"strictSequence":{"actions":[{"castSpell":{"spellId":{"spellId":46584}}},{"castSpell":{"spellId":{"spellId":49028}}},{"resetSequence":{"sequenceName":"IT"}},{"resetSequence":{"sequenceName":"PS"}}]}}}, - {"action":{"condition":{"and":{"vals":[{"not":{"val":{"currentRuneActive":{"runeSlot":"SlotLeftBlood"}}}},{"sequenceIsComplete":{"sequenceName":"Opener"}},{"spellIsReady":{"spellId":{"spellId":45529}}},{"gcdIsReady":{}},{"and":{"vals":[{"cmp":{"op":"OpGt","lhs":{"spellTimeToReady":{"spellId":{"spellId":49028}}},"rhs":{"const":{"val":"40"}}}},{"or":{"vals":[{"not":{"val":{"auraIsActive":{"auraId":{"spellId":49028}}}}},{"cmp":{"op":"OpGt","lhs":{"auraRemainingTime":{"auraId":{"spellId":49028}}},"rhs":{"dotRemainingTime":{"spellId":{"spellId":55095}}}}}]}}]}}]}},"castSpell":{"spellId":{"spellId":45529}}}}, - {"action":{"condition":{"and":{"vals":[{"or":{"vals":[{"cmp":{"op":"OpLt","lhs":{"nextRuneCooldown":{"runeType":"RuneBlood"}},"rhs":{"dotRemainingTime":{"spellId":{"spellId":55095}}}}},{"cmp":{"op":"OpGt","lhs":{"nextRuneCooldown":{"runeType":"RuneBlood"}},"rhs":{"const":{"val":"8s"}}}}]}},{"not":{"val":{"or":{"vals":[{"cmp":{"op":"OpGe","lhs":{"nextRuneCooldown":{"runeType":"RuneFrost"}},"rhs":{"auraRemainingTime":{"auraId":{"spellId":71227}}}}},{"cmp":{"op":"OpGe","lhs":{"nextRuneCooldown":{"runeType":"RuneUnholy"}},"rhs":{"auraRemainingTime":{"auraId":{"spellId":71227}}}}}]}}}}]}},"castSpell":{"spellId":{"spellId":55262,"tag":1}}}}, - {"action":{"condition":{"not":{"val":{}}},"castSpell":{"spellId":{"spellId":49924,"tag":1}}}}, - {"action":{"condition":{"or":{"vals":[{"and":{"vals":[{"cmp":{"op":"OpGt","lhs":{"runeCooldown":{"runeType":"RuneFrost"}},"rhs":{"const":{"val":"0.5"}}}},{"cmp":{"op":"OpGt","lhs":{"runeCooldown":{"runeType":"RuneUnholy"}},"rhs":{"const":{"val":"0.5"}}}},{"or":{"vals":[{"cmp":{"op":"OpGt","lhs":{"spellTimeToReady":{"spellId":{"spellId":49028}}},"rhs":{"const":{"val":"10"}}}},{"cmp":{"op":"OpEq","lhs":{"currentRunicPower":{}},"rhs":{"const":{"val":"100"}}}}]}},{"cmp":{"op":"OpGt","lhs":{"dotRemainingTime":{"spellId":{"spellId":55095}}},"rhs":{"const":{"val":"1.5s"}}}},{"not":{"val":{"cmp":{"op":"OpLe","lhs":{"auraRemainingTime":{"auraId":{"spellId":71227}}},"rhs":{"const":{"val":"1.5s"}}}}}}]}},{"and":{"vals":[{"cmp":{"op":"OpGt","lhs":{"runeCooldown":{"runeType":"RuneBlood"}},"rhs":{"const":{"val":"0.3"}}}},{"or":{"vals":[{"cmp":{"op":"OpGt","lhs":{"spellTimeToReady":{"spellId":{"spellId":49028}}},"rhs":{"const":{"val":"10"}}}},{"cmp":{"op":"OpEq","lhs":{"currentRunicPower":{}},"rhs":{"const":{"val":"100"}}}}]}},{"cmp":{"op":"OpGt","lhs":{"dotRemainingTime":{"spellId":{"spellId":55095}}},"rhs":{"const":{"val":"1.5s"}}}},{"not":{"val":{"cmp":{"op":"OpLe","lhs":{"auraRemainingTime":{"auraId":{"spellId":71227}}},"rhs":{"const":{"val":"1.5s"}}}}}}]}}]}},"castSpell":{"spellId":{"spellId":49895}}}}, - {"action":{"condition":{"or":{"vals":[{"and":{"vals":[{"cmp":{"op":"OpGt","lhs":{"runeCooldown":{"runeType":"RuneFrost"}},"rhs":{"const":{"val":"0.5"}}}},{"cmp":{"op":"OpGt","lhs":{"runeCooldown":{"runeType":"RuneUnholy"}},"rhs":{"const":{"val":"0.5"}}}},{"cmp":{"op":"OpGt","lhs":{"dotRemainingTime":{"spellId":{"spellId":55095}}},"rhs":{"const":{"val":"1.5s"}}}}]}},{"and":{"vals":[{"cmp":{"op":"OpGt","lhs":{"runeCooldown":{"runeType":"RuneBlood"}},"rhs":{"const":{"val":"0.5"}}}},{"cmp":{"op":"OpGt","lhs":{"dotRemainingTime":{"spellId":{"spellId":55095}}},"rhs":{"const":{"val":"1.5s"}}}}]}}]}},"castSpell":{"spellId":{"spellId":57623}}}} - ] - }`), + rotation: APLRotation.fromJsonString(JSON.stringify(BloodPestiDDApl)), }), } @@ -359,40 +306,7 @@ export const BLOOD_PESTI_AOE_ROTATION_PRESET_DEFAULT = { //enableWhen: (player: Player) => player.getTalentTree() == 0, rotation: SavedRotation.create({ specRotationOptionsJson: DeathKnightRotation.toJsonString(DefaultBloodRotation), - rotation: APLRotation.fromJsonString(`{ - "type": "TypeAPL", - "prepullActions": [ - {"action":{"castSpell":{"spellId":{"spellId":48265}}},"doAtValue":{"const":{"val":"-20s"}}}, - {"action":{"castSpell":{"spellId":{"spellId":42650}}},"doAtValue":{"const":{"val":"-10s"}}}, - {"action":{"castSpell":{"spellId":{"spellId":50689}}},"doAtValue":{"const":{"val":"-6s"}}}, - {"action":{"castSpell":{"spellId":{"spellId":57623}}},"doAtValue":{"const":{"val":"-1.5s"}}}, - {"action":{"castSpell":{"spellId":{"itemId":40211}}},"doAtValue":{"const":{"val":"-1s"}}} - ], - "priorityList": [ - {"action":{"condition":{"cmp":{"op":"OpGe","lhs":{"currentTime":{}},"rhs":{"const":{"val":"8.5s"}}}},"castSpell":{"spellId":{"spellId":64382,"tag":-1}}}}, - {"action":{"autocastOtherCooldowns":{}}}, - {"action":{"condition":{"not":{"val":{"dotIsActive":{"spellId":{"spellId":55095}}}}},"resetSequence":{"sequenceName":"IT"}}}, - {"action":{"condition":{"not":{"val":{"dotIsActive":{"spellId":{"spellId":55078}}}}},"resetSequence":{"sequenceName":"PS"}}}, - {"action":{"condition":{"or":{"vals":[{"and":{"vals":[{"auraIsActive":{"auraId":{"spellId":49028}}},{"cmp":{"op":"OpEq","lhs":{"runeCooldown":{"runeType":"RuneFrost"}},"rhs":{"const":{"val":"0"}}}},{"cmp":{"op":"OpGe","lhs":{"currentNonDeathRuneCount":{"runeType":"RuneFrost"}},"rhs":{"const":{"val":"1"}}}}]}},{"not":{"val":{"dotIsActive":{"spellId":{"spellId":55095}}}}}]}},"sequence":{"name":"IT","actions":[{"castSpell":{"spellId":{"spellId":59131}}}]}}}, - {"action":{"condition":{"or":{"vals":[{"and":{"vals":[{"auraIsActive":{"auraId":{"spellId":49028}}},{"cmp":{"op":"OpEq","lhs":{"runeCooldown":{"runeType":"RuneUnholy"}},"rhs":{"const":{"val":"0"}}}},{"cmp":{"op":"OpGe","lhs":{"currentNonDeathRuneCount":{"runeType":"RuneUnholy"}},"rhs":{"const":{"val":"1"}}}}]}},{"not":{"val":{"dotIsActive":{"spellId":{"spellId":55078}}}}}]}},"sequence":{"name":"PS","actions":[{"castSpell":{"spellId":{"spellId":49921,"tag":1}}}]}}}, - {"action":{"condition":{"and":{"vals":[{"auraIsActive":{"auraId":{"spellId":49028}}},{"dotIsActive":{"spellId":{"spellId":55095}}},{"dotIsActive":{"spellId":{"spellId":55078}}}]}},"sequence":{"name":"Pesti","actions":[{"castSpell":{"spellId":{"spellId":50842}}}]}}}, - {"action":{"sequence":{"name":"Opener","actions":[{"castSpell":{"spellId":{"spellId":49016}}},{"castSpell":{"spellId":{"spellId":33697}}},{"castSpell":{"spellId":{"spellId":26297}}},{"castSpell":{"spellId":{"spellId":54758}}},{"castSpell":{"spellId":{"spellId":49924,"tag":1}}},{"castSpell":{"spellId":{"spellId":50842}}},{"castSpell":{"spellId":{"spellId":49941}}}]}}}, - {"action":{"condition":{"or":{"vals":[{"and":{"vals":[{"cmp":{"op":"OpLe","lhs":{"dotRemainingTime":{"spellId":{"spellId":55095}}},"rhs":{"const":{"val":"1.5s"}}}},{"dotIsActive":{"spellId":{"spellId":55095}}},{"dotIsActive":{"spellId":{"spellId":55078}}}]}},{"and":{"vals":[{"and":{"vals":[{"cmp":{"op":"OpGt","lhs":{"nextRuneCooldown":{"runeType":"RuneBlood"}},"rhs":{"dotRemainingTime":{"spellId":{"spellId":55095}}}}},{"cmp":{"op":"OpEq","lhs":{"currentRuneCount":{"runeType":"RuneDeath"}},"rhs":{"const":{"val":"0"}}}}]}},{"dotIsActive":{"spellId":{"spellId":55095}}},{"dotIsActive":{"spellId":{"spellId":55078}}}]}},{"and":{"vals":[{"cmp":{"op":"OpLe","lhs":{"math":{"op":"OpAdd","lhs":{"spellTimeToReady":{"spellId":{"spellId":46584}}},"rhs":{"dotRemainingTime":{"spellId":{"spellId":55095}}}}},"rhs":{"math":{"op":"OpAdd","lhs":{"spellTimeToReady":{"spellId":{"spellId":49028}}},"rhs":{"const":{"val":"3s"}}}}}},{"not":{"val":{"auraIsActive":{"auraId":{"spellId":49028}}}}},{"dotIsActive":{"spellId":{"spellId":55095}}},{"dotIsActive":{"spellId":{"spellId":55078}}}]}}]}},"castSpell":{"spellId":{"spellId":50842}}}}, - {"action":{"condition":{"and":{"vals":[{"and":{"vals":[{"cmp":{"op":"OpLe","lhs":{"dotRemainingTime":{"spellId":{"spellId":55095}}},"rhs":{"math":{"op":"OpAdd","lhs":{"auraRemainingTime":{"auraId":{"spellId":49028}}},"rhs":{"const":{"val":"4s"}}}}}},{"cmp":{"op":"OpLe","lhs":{"auraRemainingTime":{"auraId":{"spellId":49028}}},"rhs":{"const":{"val":"2s"}}}},{"auraIsActive":{"auraId":{"spellId":49028}}},{"sequenceIsComplete":{"sequenceName":"IT"}}]}}]}},"strictSequence":{"actions":[{"castSpell":{"spellId":{"spellId":45529}}},{"castSpell":{"spellId":{"spellId":50842}}}]}}}, - {"action":{"condition":{"or":{"vals":[{"and":{"vals":[{"spellIsReady":{"spellId":{"spellId":49016}}},{"spellIsReady":{"spellId":{"spellId":46584}}},{"spellIsReady":{"spellId":{"spellId":49028}}},{"gcdIsReady":{}}]}},{"and":{"vals":[{"spellIsReady":{"spellId":{"spellId":46584}}},{"spellIsReady":{"spellId":{"spellId":49028}}},{"cmp":{"op":"OpLt","lhs":{"remainingTime":{}},"rhs":{"math":{"op":"OpAdd","lhs":{"spellTimeToReady":{"spellId":{"spellId":33697}}},"rhs":{"const":{"val":"15"}}}}}},{"cmp":{"op":"OpLt","lhs":{"remainingTime":{}},"rhs":{"math":{"op":"OpAdd","lhs":{"spellTimeToReady":{"spellId":{"spellId":26297}}},"rhs":{"const":{"val":"10"}}}}}}]}},{"cmp":{"op":"OpLt","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"15"}}}},{"auraIsActive":{"auraId":{"spellId":33697}}}]}},"castSpell":{"spellId":{"otherId":"OtherActionPotion"}}}}, - {"action":{"condition":{"or":{"vals":[{"and":{"vals":[{"spellIsReady":{"spellId":{"spellId":46584}}},{"spellIsReady":{"spellId":{"spellId":49028}}},{"or":{"vals":[{"cmp":{"op":"OpLt","lhs":{"remainingTime":{}},"rhs":{"math":{"op":"OpAdd","lhs":{"spellTimeToReady":{"spellId":{"spellId":33697}}},"rhs":{"const":{"val":"15"}}}}}},{"cmp":{"op":"OpGe","lhs":{"remainingTime":{}},"rhs":{"math":{"op":"OpAdd","lhs":{"spellTimeToReady":{"spellId":{"spellId":49016}}},"rhs":{"const":{"val":"9"}}}}}}]}},{"gcdIsReady":{}}]}},{"and":{"vals":[{"spellIsReady":{"spellId":{"spellId":33697}}},{"spellIsReady":{"spellId":{"spellId":46584}}},{"spellIsReady":{"spellId":{"spellId":49028}}},{"gcdIsReady":{}}]}},{"cmp":{"op":"OpLe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"12"}}}},{"and":{"vals":[{"cmp":{"op":"OpGt","lhs":{"spellTimeToReady":{"spellId":{"spellId":33697}}},"rhs":{"const":{"val":"55"}}}},{"cmp":{"op":"OpGt","lhs":{"remainingTime":{}},"rhs":{"math":{"op":"OpAdd","lhs":{"spellTimeToReady":{"spellId":{"spellId":33697}}},"rhs":{"const":{"val":"20"}}}}}},{"cmp":{"op":"OpLt","lhs":{"remainingTime":{}},"rhs":{"math":{"op":"OpAdd","lhs":{"spellTimeToReady":{"spellId":{"spellId":49016}}},"rhs":{"const":{"val":"20"}}}}}},{"gcdIsReady":{}},{"spellIsReady":{"spellId":{"spellId":26297}}}]}}]}},"castSpell":{"spellId":{"spellId":54758}}}}, - {"action":{"condition":{"and":{"vals":[{"auraIsActive":{"auraId":{"spellId":54758}}},{"gcdIsReady":{}}]}},"castSpell":{"spellId":{"spellId":47568}}}}, - {"action":{"condition":{"and":{"vals":[{"auraIsActive":{"auraId":{"spellId":54758}}},{"gcdIsReady":{}}]}},"castSpell":{"spellId":{"spellId":49016}}}}, - {"action":{"condition":{"and":{"vals":[{"auraIsActive":{"auraId":{"spellId":54758}}},{"gcdIsReady":{}}]}},"castSpell":{"spellId":{"spellId":26297}}}}, - {"action":{"condition":{"and":{"vals":[{"auraIsActive":{"auraId":{"spellId":54758}}},{"gcdIsReady":{}}]}},"castSpell":{"spellId":{"spellId":33697}}}}, - {"action":{"condition":{"and":{"vals":[{"auraIsActive":{"auraId":{"spellId":54758}}},{"gcdIsReady":{}}]}},"strictSequence":{"actions":[{"castSpell":{"spellId":{"spellId":46584}}},{"castSpell":{"spellId":{"spellId":49028}}},{"resetSequence":{"sequenceName":"Pesti"}}]}}}, - {"action":{"condition":{"and":{"vals":[{"not":{"val":{"currentRuneActive":{"runeSlot":"SlotLeftBlood"}}}},{"sequenceIsComplete":{"sequenceName":"Opener"}},{"spellIsReady":{"spellId":{"spellId":45529}}},{"gcdIsReady":{}},{"and":{"vals":[{"cmp":{"op":"OpGt","lhs":{"spellTimeToReady":{"spellId":{"spellId":49028}}},"rhs":{"const":{"val":"40"}}}},{"or":{"vals":[{"not":{"val":{"auraIsActive":{"auraId":{"spellId":49028}}}}},{"cmp":{"op":"OpGt","lhs":{"auraRemainingTime":{"auraId":{"spellId":49028}}},"rhs":{"dotRemainingTime":{"spellId":{"spellId":55095}}}}}]}}]}}]}},"castSpell":{"spellId":{"spellId":45529}}}}, - {"action":{"condition":{"and":{"vals":[{"or":{"vals":[{"cmp":{"op":"OpLt","lhs":{"nextRuneCooldown":{"runeType":"RuneBlood"}},"rhs":{"dotRemainingTime":{"spellId":{"spellId":55095}}}}},{"cmp":{"op":"OpGt","lhs":{"nextRuneCooldown":{"runeType":"RuneBlood"}},"rhs":{"const":{"val":"8s"}}}}]}},{"not":{"val":{"or":{"vals":[{"cmp":{"op":"OpGe","lhs":{"nextRuneCooldown":{"runeType":"RuneFrost"}},"rhs":{"auraRemainingTime":{"auraId":{"spellId":71227}}}}},{"cmp":{"op":"OpGe","lhs":{"nextRuneCooldown":{"runeType":"RuneUnholy"}},"rhs":{"auraRemainingTime":{"auraId":{"spellId":71227}}}}}]}}}}]}},"castSpell":{"spellId":{"spellId":49941}}}}, - {"action":{"condition":{"not":{"val":{}}},"castSpell":{"spellId":{"spellId":49924,"tag":1}}}}, - {"action":{"condition":{"or":{"vals":[{"and":{"vals":[{"cmp":{"op":"OpGt","lhs":{"runeCooldown":{"runeType":"RuneFrost"}},"rhs":{"const":{"val":"0.5"}}}},{"cmp":{"op":"OpGt","lhs":{"runeCooldown":{"runeType":"RuneUnholy"}},"rhs":{"const":{"val":"0.5"}}}},{"or":{"vals":[{"cmp":{"op":"OpGt","lhs":{"spellTimeToReady":{"spellId":{"spellId":49028}}},"rhs":{"const":{"val":"10"}}}},{"cmp":{"op":"OpEq","lhs":{"currentRunicPower":{}},"rhs":{"const":{"val":"100"}}}}]}},{"cmp":{"op":"OpGt","lhs":{"dotRemainingTime":{"spellId":{"spellId":55095}}},"rhs":{"const":{"val":"1.5s"}}}},{"not":{"val":{"cmp":{"op":"OpLe","lhs":{"auraRemainingTime":{"auraId":{"spellId":71227}}},"rhs":{"const":{"val":"1.5s"}}}}}}]}},{"and":{"vals":[{"cmp":{"op":"OpGt","lhs":{"runeCooldown":{"runeType":"RuneBlood"}},"rhs":{"const":{"val":"0.3"}}}},{"or":{"vals":[{"cmp":{"op":"OpGt","lhs":{"spellTimeToReady":{"spellId":{"spellId":49028}}},"rhs":{"const":{"val":"10"}}}},{"cmp":{"op":"OpEq","lhs":{"currentRunicPower":{}},"rhs":{"const":{"val":"100"}}}}]}},{"cmp":{"op":"OpGt","lhs":{"dotRemainingTime":{"spellId":{"spellId":55095}}},"rhs":{"const":{"val":"1.5s"}}}},{"not":{"val":{"cmp":{"op":"OpLe","lhs":{"auraRemainingTime":{"auraId":{"spellId":71227}}},"rhs":{"const":{"val":"1.5s"}}}}}}]}}]}},"castSpell":{"spellId":{"spellId":49895}}}}, - {"action":{"condition":{"or":{"vals":[{"and":{"vals":[{"cmp":{"op":"OpGt","lhs":{"runeCooldown":{"runeType":"RuneFrost"}},"rhs":{"const":{"val":"0.5"}}}},{"cmp":{"op":"OpGt","lhs":{"runeCooldown":{"runeType":"RuneUnholy"}},"rhs":{"const":{"val":"0.5"}}}},{"cmp":{"op":"OpGt","lhs":{"dotRemainingTime":{"spellId":{"spellId":55095}}},"rhs":{"const":{"val":"1.5s"}}}}]}},{"and":{"vals":[{"cmp":{"op":"OpGt","lhs":{"runeCooldown":{"runeType":"RuneBlood"}},"rhs":{"const":{"val":"0.5"}}}},{"cmp":{"op":"OpGt","lhs":{"dotRemainingTime":{"spellId":{"spellId":55095}}},"rhs":{"const":{"val":"1.5s"}}}}]}}]}},"castSpell":{"spellId":{"spellId":57623}}}} - ] - }`), + rotation: APLRotation.fromJsonString(JSON.stringify(BloodPestiAoeApl)), }), } @@ -401,32 +315,7 @@ export const FROST_BL_PESTI_ROTATION_PRESET_DEFAULT = { //enableWhen: (player: Player) => player.getTalentTree() == 1, rotation: SavedRotation.create({ specRotationOptionsJson: DeathKnightRotation.toJsonString(DefaultFrostRotation), - rotation: APLRotation.fromJsonString(`{ - "type": "TypeAPL", - "prepullActions": [ - {"action":{"castSpell":{"spellId":{"spellId":48265}}},"doAtValue":{"const":{"val":"-20s"}}}, - {"action":{"castSpell":{"spellId":{"spellId":42650}}},"doAtValue":{"const":{"val":"-10s"}}}, - {"action":{"castSpell":{"spellId":{"spellId":50689}}},"doAtValue":{"const":{"val":"-6s"}}}, - {"action":{"castSpell":{"spellId":{"itemId":40211}}},"doAtValue":{"const":{"val":"-1s"}}} - ], - "priorityList": [ - {"action":{"autocastOtherCooldowns":{}}}, - {"action":{"sequence":{"name":"Opener","actions":[{"castSpell":{"spellId":{"spellId":59131}}},{"castSpell":{"spellId":{"tag":1,"spellId":49921}}},{"castSpell":{"spellId":{"spellId":51271}}},{"castSpell":{"spellId":{"spellId":54758}}},{"castSpell":{"spellId":{"spellId":33697}}},{"castSpell":{"spellId":{"spellId":45529}}},{"castSpell":{"spellId":{"tag":1,"spellId":51425}}},{"castSpell":{"spellId":{"tag":1,"spellId":55268}}},{"castSpell":{"spellId":{"spellId":50842}}},{"castSpell":{"spellId":{"spellId":47568}}},{"castSpell":{"spellId":{"tag":1,"spellId":51425}}},{"castSpell":{"spellId":{"tag":1,"spellId":55268}}},{"castSpell":{"spellId":{"tag":1,"spellId":51425}}},{"castSpell":{"spellId":{"tag":1,"spellId":51425}}},{"castSpell":{"spellId":{"spellId":46584}}}]}}}, - {"action":{"condition":{"not":{"val":{"dotIsActive":{"spellId":{"spellId":55095}}}}},"castSpell":{"spellId":{"spellId":59131}}}}, - {"action":{"condition":{"not":{"val":{"dotIsActive":{"spellId":{"spellId":55078}}}}},"castSpell":{"spellId":{"tag":1,"spellId":49921}}}}, - {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpLe","lhs":{"dotRemainingTime":{"spellId":{"spellId":55095}}},"rhs":{"const":{"val":"1.5s"}}}},{"dotIsActive":{"spellId":{"spellId":55095}}}]}},"castSpell":{"spellId":{"spellId":50842}}}}, - {"action":{"condition":{"and":{"vals":[{"spellIsReady":{"spellId":{"spellId":51271}}},{"spellCanCast":{"spellId":{"spellId":51271}}}]}},"castSpell":{"spellId":{"spellId":33697}}}}, - {"action":{"condition":{"and":{"vals":[{"spellIsReady":{"spellId":{"spellId":51271}}},{"spellCanCast":{"spellId":{"spellId":51271}}}]}},"castSpell":{"spellId":{"spellId":54758}}}}, - {"action":{"condition":{"and":{"vals":[{"spellIsReady":{"spellId":{"spellId":51271}}},{"spellCanCast":{"spellId":{"spellId":51271}}}]}},"castSpell":{"spellId":{"itemId":40211}}}}, - {"action":{"strictSequence":{"actions":[{"castSpell":{"spellId":{"spellId":51271}}},{"castSpell":{"spellId":{"spellId":45529}}}]}}}, - {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpLe","lhs":{"dotRemainingTime":{"spellId":{"spellId":55095}}},"rhs":{"const":{"val":"4s"}}}},{"dotIsActive":{"spellId":{"spellId":55095}}}]}},"castSpell":{"spellId":{"spellId":50842}}}}, - {"action":{"condition":{"auraIsActive":{"auraId":{"spellId":59052}}},"castSpell":{"spellId":{"spellId":51411}}}}, - {"action":{"castSpell":{"spellId":{"tag":1,"spellId":51425}}}}, - {"action":{"castSpell":{"spellId":{"spellId":46584}}}}, - {"action":{"castSpell":{"spellId":{"tag":1,"spellId":49930}}}}, - {"action":{"castSpell":{"spellId":{"tag":1,"spellId":55268}}}} - ] - }`), + rotation: APLRotation.fromJsonString(JSON.stringify(FrostBlPestiApl)), }), } @@ -435,32 +324,7 @@ export const FROST_UH_PESTI_ROTATION_PRESET_DEFAULT = { //enableWhen: (player: Player) => player.getTalentTree() == 1, rotation: SavedRotation.create({ specRotationOptionsJson: DeathKnightRotation.toJsonString(DefaultFrostRotation), - rotation: APLRotation.fromJsonString(`{ - "type": "TypeAPL", - "prepullActions": [ - {"action":{"castSpell":{"spellId":{"spellId":48265}}},"doAtValue":{"const":{"val":"-20s"}}}, - {"action":{"castSpell":{"spellId":{"spellId":42650}}},"doAtValue":{"const":{"val":"-10s"}}}, - {"action":{"castSpell":{"spellId":{"spellId":50689}}},"doAtValue":{"const":{"val":"-6s"}}}, - {"action":{"castSpell":{"spellId":{"itemId":40211}}},"doAtValue":{"const":{"val":"-1s"}}} - ], - "priorityList": [ - {"action":{"autocastOtherCooldowns":{}}}, - {"action":{"sequence":{"name":"Opener","actions":[{"castSpell":{"spellId":{"spellId":59131}}},{"castSpell":{"spellId":{"tag":1,"spellId":49921}}},{"castSpell":{"spellId":{"spellId":51271}}},{"castSpell":{"spellId":{"spellId":54758}}},{"castSpell":{"spellId":{"spellId":33697}}},{"castSpell":{"spellId":{"spellId":45529}}},{"castSpell":{"spellId":{"tag":1,"spellId":51425}}},{"castSpell":{"spellId":{"tag":1,"spellId":55268}}},{"castSpell":{"spellId":{"tag":1,"spellId":49930}}},{"castSpell":{"spellId":{"spellId":47568}}},{"castSpell":{"spellId":{"tag":1,"spellId":51425}}},{"castSpell":{"spellId":{"tag":1,"spellId":55268}}},{"castSpell":{"spellId":{"tag":1,"spellId":51425}}},{"castSpell":{"spellId":{"tag":1,"spellId":51425}}},{"castSpell":{"spellId":{"spellId":46584}}}]}}}, - {"action":{"condition":{"not":{"val":{"dotIsActive":{"spellId":{"spellId":55095}}}}},"castSpell":{"spellId":{"spellId":59131}}}}, - {"action":{"condition":{"not":{"val":{"dotIsActive":{"spellId":{"spellId":55078}}}}},"castSpell":{"spellId":{"tag":1,"spellId":49921}}}}, - {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpLe","lhs":{"dotRemainingTime":{"spellId":{"spellId":55095}}},"rhs":{"const":{"val":"1.5s"}}}},{"dotIsActive":{"spellId":{"spellId":55095}}}]}},"castSpell":{"spellId":{"spellId":50842}}}}, - {"action":{"condition":{"and":{"vals":[{"spellIsReady":{"spellId":{"spellId":51271}}},{"spellCanCast":{"spellId":{"spellId":51271}}}]}},"castSpell":{"spellId":{"spellId":33697}}}}, - {"action":{"condition":{"and":{"vals":[{"spellIsReady":{"spellId":{"spellId":51271}}},{"spellCanCast":{"spellId":{"spellId":51271}}}]}},"castSpell":{"spellId":{"spellId":54758}}}}, - {"action":{"condition":{"and":{"vals":[{"spellIsReady":{"spellId":{"spellId":51271}}},{"spellCanCast":{"spellId":{"spellId":51271}}}]}},"castSpell":{"spellId":{"itemId":40211}}}}, - {"action":{"strictSequence":{"actions":[{"castSpell":{"spellId":{"spellId":51271}}},{"castSpell":{"spellId":{"spellId":45529}}}]}}}, - {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpLe","lhs":{"dotRemainingTime":{"spellId":{"spellId":55095}}},"rhs":{"const":{"val":"8.5s"}}}},{"dotIsActive":{"spellId":{"spellId":55095}}}]}},"castSpell":{"spellId":{"spellId":50842}}}}, - {"action":{"condition":{"auraIsActive":{"auraId":{"spellId":59052}}},"castSpell":{"spellId":{"spellId":51411}}}}, - {"action":{"castSpell":{"spellId":{"tag":1,"spellId":51425}}}}, - {"action":{"castSpell":{"spellId":{"spellId":46584}}}}, - {"action":{"castSpell":{"spellId":{"tag":1,"spellId":49930}}}}, - {"action":{"castSpell":{"spellId":{"tag":1,"spellId":55268}}}} - ] - }`), + rotation: APLRotation.fromJsonString(JSON.stringify(FrostUhPestiApl)), }), } @@ -469,37 +333,7 @@ export const UNHOLY_DW_ROTATION_PRESET_DEFAULT = { //enableWhen: (player: Player) => player.getTalentTree() == 2, rotation: SavedRotation.create({ specRotationOptionsJson: DeathKnightRotation.toJsonString(DefaultUnholyRotation), - rotation: APLRotation.fromJsonString(`{ - "type": "TypeAPL", - "prepullActions": [ - {"action":{"castSpell":{"spellId":{"spellId":48265}}},"doAtValue":{"const":{"val":"-10s"}}}, - {"action":{"castSpell":{"spellId":{"spellId":63560}}},"doAtValue":{"const":{"val":"-8s"}}}, - {"action":{"castSpell":{"spellId":{"spellId":57623}}},"doAtValue":{"const":{"val":"-1.5s"}}}, - {"action":{"castSpell":{"spellId":{"itemId":40211}}},"doAtValue":{"const":{"val":"-1s"}}} - ], - "priorityList": [ - {"action":{"autocastOtherCooldowns":{}}}, - {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"dotRemainingTime":{"spellId":{"spellId":55095}}},"rhs":{"const":{"val":"3s"}}}},"castSpell":{"spellId":{"spellId":59131}}}}, - {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"dotRemainingTime":{"spellId":{"spellId":55078}}},"rhs":{"const":{"val":"3s"}}}},"castSpell":{"spellId":{"spellId":49921,"tag":1}}}}, - {"action":{"condition":{"not":{"val":{"auraIsActive":{"auraId":{"spellId":66803}}}}},"castSpell":{"spellId":{"spellId":49930,"tag":1}}}}, - {"action":{"condition":{"auraIsActive":{"auraId":{"spellId":49206}}},"castSpell":{"spellId":{"spellId":26297}}}}, - {"action":{"condition":{"or":{"vals":[{"auraIsActive":{"auraId":{"spellId":49206}}},{"cmp":{"op":"OpGt","lhs":{"spellTimeToReady":{"spellId":{"spellId":49206}}},"rhs":{"const":{"val":"50s"}}}}]}},"castSpell":{"spellId":{"spellId":54758}}}}, - {"action":{"condition":{"or":{"vals":[{"auraIsActive":{"auraId":{"spellId":49206}}},{"cmp":{"op":"OpGt","lhs":{"spellTimeToReady":{"spellId":{"spellId":49206}}},"rhs":{"remainingTime":{}}}}]}},"castSpell":{"spellId":{"itemId":40211}}}}, - {"action":{"condition":{"and":{"vals":[{"auraIsActive":{"auraId":{"spellId":49206}}},{"not":{"val":{"spellIsReady":{"spellId":{"spellId":47568}}}}},{"cmp":{"op":"OpEq","lhs":{"currentNonDeathRuneCount":{"runeType":"RuneFrost"}},"rhs":{"const":{"val":"1"}}}}]}},"castSpell":{"spellId":{"spellId":42650}}}}, - {"action":{"condition":{"and":{"vals":[{"not":{"val":{"auraIsActive":{"auraId":{"spellId":67383}}}}},{"spellIsReady":{"spellId":{"spellId":49206}}}]}},"castSpell":{"spellId":{"spellId":55271,"tag":1}}}}, - {"action":{"castSpell":{"spellId":{"spellId":49938}}}}, - {"action":{"condition":{"auraIsActive":{"auraId":{"spellId":49206}}},"castSpell":{"spellId":{"spellId":42650}}}}, - {"action":{"condition":{"cmp":{"op":"OpGt","lhs":{"spellTimeToReady":{"spellId":{"spellId":49938}}},"rhs":{"const":{"val":"6s"}}}},"castSpell":{"spellId":{"spellId":55271,"tag":1}}}}, - {"action":{"condition":{"and":{"vals":[{"or":{"vals":[{"cmp":{"op":"OpGt","lhs":{"spellTimeToReady":{"spellId":{"spellId":49938}}},"rhs":{"const":{"val":"6s"}}}},{"spellIsReady":{"spellId":{"spellId":47568}}}]}},{"or":{"vals":[{"cmp":{"op":"OpLt","lhs":{"auraRemainingTime":{"auraId":{"spellId":66803}}},"rhs":{"const":{"val":"10s"}}}},{"cmp":{"op":"OpLe","lhs":{"auraInternalCooldown":{"auraId":{"spellId":67117}}},"rhs":{"const":{"val":"0s"}}}}]}}]}},"castSpell":{"spellId":{"spellId":49930,"tag":1}}}}, - {"action":{"condition":{"or":{"vals":[{"cmp":{"op":"OpGt","lhs":{"spellTimeToReady":{"spellId":{"spellId":49938}}},"rhs":{"const":{"val":"6s"}}}},{"spellIsReady":{"spellId":{"spellId":47568}}}]}},"castSpell":{"spellId":{"spellId":49941}}}}, - {"action":{"condition":{"auraIsActive":{"auraId":{"spellId":49206}}},"castSpell":{"spellId":{"spellId":47568}}}}, - {"action":{"castSpell":{"spellId":{"spellId":49206}}}}, - {"action":{"condition":{"not":{"val":{"spellIsReady":{"spellId":{"spellId":49206}}}}},"castSpell":{"spellId":{"spellId":49895}}}}, - {"action":{"strictSequence":{"actions":[{"castSpell":{"spellId":{"spellId":45529}}},{"castSpell":{"spellId":{"spellId":63560}}}]}}}, - {"action":{"condition":{"and":{"vals":[{"auraIsActive":{"auraId":{"spellId":48265}}},{"not":{"val":{"spellIsReady":{"spellId":{"spellId":49206}}}}},{"not":{"val":{"auraIsActive":{"auraId":{"spellId":49206}}}}}]}},"castSpell":{"spellId":{"spellId":50689}}}}, - {"action":{"castSpell":{"spellId":{"spellId":57623}}}} - ] - }`), + rotation: APLRotation.fromJsonString(JSON.stringify(UhDwSsApl)), }), } @@ -508,35 +342,7 @@ export const UNHOLY_2H_ROTATION_PRESET_DEFAULT = { //enableWhen: (player: Player) => player.getTalentTree() == 2, rotation: SavedRotation.create({ specRotationOptionsJson: DeathKnightRotation.toJsonString(DefaultUnholyRotation), - rotation: APLRotation.fromJsonString(`{ - "type": "TypeAPL", - "prepullActions": [ - {"action":{"castSpell":{"spellId":{"spellId":49222}}},"doAtValue":{"const":{"val":"-20s"}}}, - {"action":{"castSpell":{"spellId":{"spellId":48265}}},"doAtValue":{"const":{"val":"-10s"}}}, - {"action":{"castSpell":{"spellId":{"spellId":63560}}},"doAtValue":{"const":{"val":"-8s"}}}, - {"action":{"castSpell":{"spellId":{"spellId":57623}}},"doAtValue":{"const":{"val":"-1.5s"}}}, - {"action":{"castSpell":{"spellId":{"itemId":40211}}},"doAtValue":{"const":{"val":"-1s"}}} - ], - "priorityList": [ - {"action":{"autocastOtherCooldowns":{}}}, - {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpLe","lhs":{"dotRemainingTime":{"spellId":{"spellId":55095}}},"rhs":{"nextRuneCooldown":{"runeType":"RuneFrost"}}}},{"cmp":{"op":"OpGe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"8s"}}}}]}},"castSpell":{"spellId":{"spellId":59131}}}}, - {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpLe","lhs":{"dotRemainingTime":{"spellId":{"spellId":55078}}},"rhs":{"nextRuneCooldown":{"runeType":"RuneUnholy"}}}},{"cmp":{"op":"OpGe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"8s"}}}}]}},"castSpell":{"spellId":{"spellId":49921,"tag":1}}}}, - {"action":{"condition":{"not":{"val":{"auraIsActive":{"auraId":{"spellId":66803}}}}},"castSpell":{"spellId":{"spellId":49930,"tag":1}}}}, - {"action":{"condition":{"auraIsActive":{"auraId":{"spellId":49206}}},"castSpell":{"spellId":{"spellId":26297}}}}, - {"action":{"condition":{"or":{"vals":[{"auraIsActive":{"auraId":{"spellId":49206}}},{"cmp":{"op":"OpGt","lhs":{"spellTimeToReady":{"spellId":{"spellId":49206}}},"rhs":{"const":{"val":"50s"}}}}]}},"castSpell":{"spellId":{"spellId":54758}}}}, - {"action":{"condition":{"or":{"vals":[{"auraIsActive":{"auraId":{"spellId":49206}}},{"cmp":{"op":"OpGt","lhs":{"spellTimeToReady":{"spellId":{"spellId":49206}}},"rhs":{"remainingTime":{}}}}]}},"castSpell":{"spellId":{"itemId":40211}}}}, - {"action":{"condition":{"auraIsActive":{"auraId":{"spellId":49206}}},"castSpell":{"spellId":{"spellId":42650}}}}, - {"action":{"condition":{"and":{"vals":[{"not":{"val":{"auraIsActive":{"sourceUnit":{"type":"Pet","index":1,"owner":{"type":"Self"}},"auraId":{"spellId":63560}}}}},{"not":{"val":{"currentRuneActive":{"runeSlot":"SlotLeftBlood"}}}}]}},"castSpell":{"spellId":{"spellId":45529}}}}, - {"action":{"condition":{"and":{"vals":[{"currentRuneDeath":{"runeSlot":"SlotLeftBlood"}},{"not":{"val":{"auraIsActive":{"sourceUnit":{"type":"Pet","index":1,"owner":{"type":"Self"}},"auraId":{"spellId":63560}}}}},{"cmp":{"op":"OpEq","lhs":{"currentNonDeathRuneCount":{"runeType":"RuneUnholy"}},"rhs":{"const":{"val":"0"}}}}]}},"castSpell":{"spellId":{"spellId":63560}}}}, - {"action":{"castSpell":{"spellId":{"spellId":55271,"tag":1}}}}, - {"action":{"castSpell":{"spellId":{"spellId":49930,"tag":1}}}}, - {"action":{"condition":{"auraIsActive":{"auraId":{"spellId":49206}}},"castSpell":{"spellId":{"spellId":47568}}}}, - {"action":{"castSpell":{"spellId":{"spellId":49206}}}}, - {"action":{"condition":{"not":{"val":{"spellIsReady":{"spellId":{"spellId":49206}}}}},"castSpell":{"spellId":{"spellId":49895}}}}, - {"action":{"condition":{"and":{"vals":[{"auraIsActive":{"auraId":{"spellId":48265}}},{"not":{"val":{"spellIsReady":{"spellId":{"spellId":49206}}}}},{"not":{"val":{"auraIsActive":{"auraId":{"spellId":49206}}}}}]}},"castSpell":{"spellId":{"spellId":50689}}}}, - {"action":{"castSpell":{"spellId":{"spellId":57623}}}} - ] - }`), + rotation: APLRotation.fromJsonString(JSON.stringify(Uh2hSsApl)), }), } @@ -545,35 +351,7 @@ export const UNHOLY_DND_AOE_ROTATION_PRESET_DEFAULT = { //enableWhen: (player: Player) => player.getTalentTree() == 2, rotation: SavedRotation.create({ specRotationOptionsJson: DeathKnightRotation.toJsonString(DefaultUnholyRotation), - rotation: APLRotation.fromJsonString(`{ - "type": "TypeAPL", - "prepullActions": [ - {"action":{"castSpell":{"spellId":{"spellId":48265}}},"doAtValue":{"const":{"val":"-10s"}}}, - {"action":{"castSpell":{"spellId":{"spellId":63560}}},"doAtValue":{"const":{"val":"-8s"}}}, - {"action":{"castSpell":{"spellId":{"spellId":57623}}},"doAtValue":{"const":{"val":"-1.5s"}}}, - {"action":{"castSpell":{"spellId":{"itemId":40211}}},"doAtValue":{"const":{"val":"-1s"}}} - ], - "priorityList": [ - {"action":{"autocastOtherCooldowns":{}}}, - {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"dotRemainingTime":{"spellId":{"spellId":55095}}},"rhs":{"const":{"val":"3s"}}}},"castSpell":{"spellId":{"spellId":59131}}}}, - {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"dotRemainingTime":{"spellId":{"spellId":55078}}},"rhs":{"const":{"val":"3s"}}}},"castSpell":{"spellId":{"spellId":49921,"tag":1}}}}, - {"action":{"condition":{"not":{"val":{"auraIsActive":{"auraId":{"spellId":66803}}}}},"castSpell":{"spellId":{"spellId":49930,"tag":1}}}}, - {"action":{"condition":{"auraIsActive":{"auraId":{"spellId":49206}}},"castSpell":{"spellId":{"spellId":26297}}}}, - {"action":{"condition":{"or":{"vals":[{"auraIsActive":{"auraId":{"spellId":49206}}},{"cmp":{"op":"OpGt","lhs":{"spellTimeToReady":{"spellId":{"spellId":49206}}},"rhs":{"const":{"val":"50s"}}}}]}},"castSpell":{"spellId":{"spellId":54758}}}}, - {"action":{"condition":{"or":{"vals":[{"auraIsActive":{"auraId":{"spellId":49206}}},{"cmp":{"op":"OpGt","lhs":{"spellTimeToReady":{"spellId":{"spellId":49206}}},"rhs":{"remainingTime":{}}}}]}},"castSpell":{"spellId":{"itemId":40211}}}}, - {"action":{"condition":{"auraIsActive":{"auraId":{"spellId":49206}}},"castSpell":{"spellId":{"spellId":47568}}}}, - {"action":{"condition":{"auraIsActive":{"auraId":{"spellId":49206}}},"castSpell":{"spellId":{"spellId":42650}}}}, - {"action":{"castSpell":{"spellId":{"spellId":49938}}}}, - {"action":{"condition":{"cmp":{"op":"OpGt","lhs":{"spellTimeToReady":{"spellId":{"spellId":49938}}},"rhs":{"const":{"val":"6s"}}}},"castSpell":{"spellId":{"spellId":55271,"tag":1}}}}, - {"action":{"condition":{"and":{"vals":[{"not":{"val":{"dotIsActive":{"targetUnit":{"type":"Target","index":1},"spellId":{"spellId":55095}}}}}]}},"castSpell":{"spellId":{"spellId":50842}}}}, - {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpGt","lhs":{"spellTimeToReady":{"spellId":{"spellId":49938}}},"rhs":{"const":{"val":"6s"}}}},{"cmp":{"op":"OpLt","lhs":{"auraRemainingTime":{"auraId":{"spellId":66803}}},"rhs":{"const":{"val":"10s"}}}}]}},"castSpell":{"spellId":{"spellId":49930,"tag":1}}}}, - {"action":{"castSpell":{"spellId":{"spellId":49206}}}}, - {"action":{"condition":{"not":{"val":{"spellIsReady":{"spellId":{"spellId":49206}}}}},"castSpell":{"spellId":{"spellId":49895}}}}, - {"action":{"strictSequence":{"actions":[{"castSpell":{"spellId":{"spellId":45529}}},{"castSpell":{"spellId":{"spellId":63560}}}]}}}, - {"action":{"condition":{"and":{"vals":[{"auraIsActive":{"auraId":{"spellId":48265}}},{"not":{"val":{"spellIsReady":{"spellId":{"spellId":49206}}}}},{"not":{"val":{"auraIsActive":{"auraId":{"spellId":49206}}}}}]}},"castSpell":{"spellId":{"spellId":50689}}}}, - {"action":{"castSpell":{"spellId":{"spellId":57623}}}} - ] - }`), + rotation: APLRotation.fromJsonString(JSON.stringify(UhDndAoeApl)), }), } diff --git a/ui/elemental_shaman/apls/default.json b/ui/elemental_shaman/apls/default.json new file mode 100644 index 0000000000..ef32062d33 --- /dev/null +++ b/ui/elemental_shaman/apls/default.json @@ -0,0 +1,23 @@ +{ + "type": "TypeAPL", + "prepullActions": [ + {"action":{"castSpell":{"spellId":{"spellId":3738}}},"doAtValue":{"const":{"val":"-6s"}}}, + {"action":{"castSpell":{"spellId":{"spellId":58643}}},"doAtValue":{"const":{"val":"-5s"}}}, + {"action":{"castSpell":{"spellId":{"spellId":58774}}},"doAtValue":{"const":{"val":"-4s"}}}, + {"action":{"castSpell":{"spellId":{"spellId":57722}}},"doAtValue":{"const":{"val":"-3s"}}}, + {"action":{"castSpell":{"spellId":{"spellId":58704}}},"doAtValue":{"const":{"val":"-2s"}}}, + {"action":{"castSpell":{"spellId":{"otherId":"OtherActionPotion"}}},"doAtValue":{"const":{"val":"-1s"}}} + ], + "priorityList": [ + {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpGe","lhs":{"currentTime":{}},"rhs":{"const":{"val":"2s"}}}},{"spellIsReady":{"spellId":{"tag":-1,"spellId":2825}}}]}},"castSpell":{"spellId":{"tag":-1,"spellId":2825}}}}, + {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpGe","lhs":{"currentTime":{}},"rhs":{"const":{"val":"2s"}}}},{"spellIsReady":{"spellId":{"spellId":2825}}}]}},"castSpell":{"spellId":{"spellId":2825}}}}, + {"action":{"condition":{"and":{"vals":[{"spellIsReady":{"spellId":{"spellId":26297}}},{"spellIsReady":{"spellId":{"spellId":16166}}}]}},"strictSequence":{"actions":[{"castSpell":{"spellId":{"spellId":26297}}},{"castSpell":{"spellId":{"spellId":16166}}}]}}}, + {"action":{"condition":{"and":{"vals":[{"not":{"val":{"spellIsReady":{"spellId":{"spellId":26297}}}}},{"not":{"val":{"spellIsReady":{"spellId":{"spellId":16166}}}}},{"not":{"val":{"auraIsActive":{"auraId":{"spellId":64701}}}}},{"not":{"val":{"auraIsActive":{"auraId":{"spellId":26297}}}}}]}},"castSpell":{"spellId":{"spellId":54758}}}}, + {"action":{"condition":{"and":{"vals":[{"spellIsReady":{"spellId":{"spellId":2894}}},{"or":{"vals":[{"auraIsActive":{"auraId":{"itemId":40255}}},{"auraIsActive":{"auraId":{"itemId":40682}}},{"auraIsActive":{"auraId":{"itemId":37660}}},{"auraIsActive":{"auraId":{"itemId":45518}}},{"auraIsActive":{"auraId":{"itemId":54572}}},{"auraIsActive":{"auraId":{"itemId":54588}}},{"auraIsActive":{"auraId":{"itemId":47213}}},{"auraIsActive":{"auraId":{"itemId":45490}}},{"auraIsActive":{"auraId":{"itemId":50348}}},{"auraIsActive":{"auraId":{"itemId":50353}}},{"auraIsActive":{"auraId":{"itemId":50360}}},{"auraIsActive":{"auraId":{"itemId":50365}}},{"auraIsActive":{"auraId":{"itemId":50345}}},{"auraIsActive":{"auraId":{"itemId":50340}}},{"auraIsActive":{"auraId":{"itemId":50398}}},{"cmp":{"op":"OpEq","lhs":{"auraNumStacks":{"auraId":{"itemId":45308}}},"rhs":{"const":{"val":"5"}}}},{"cmp":{"op":"OpEq","lhs":{"auraNumStacks":{"auraId":{"itemId":40432}}},"rhs":{"const":{"val":"10"}}}},{"auraIsActive":{"auraId":{"spellId":55637}}}]}}]}},"strictSequence":{"actions":[{"castSpell":{"spellId":{"spellId":33697}}},{"castSpell":{"spellId":{"itemId":40212}}},{"castSpell":{"spellId":{"itemId":37873}}},{"castSpell":{"spellId":{"itemId":45148}}},{"castSpell":{"spellId":{"itemId":48724}}},{"castSpell":{"spellId":{"itemId":50357}}},{"castSpell":{"spellId":{"spellId":2894}}}]}}}, + {"action":{"condition":{"and":{"vals":[{"not":{"val":{"auraIsActive":{"auraId":{"spellId":2894}}}}},{"not":{"val":{"dotIsActive":{"spellId":{"spellId":58704}}}}}]}},"castSpell":{"spellId":{"spellId":58704}}}}, + {"action":{"multidot":{"spellId":{"spellId":49233},"maxDots":3,"maxOverlap":{"const":{"val":"0ms"}}}}}, + {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpGt","lhs":{"numberTargets":{}},"rhs":{"const":{"val":"1"}}}},{"spellIsReady":{"spellId":{"spellId":49271}}}]}},"castSpell":{"spellId":{"spellId":49271}}}}, + {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpGt","lhs":{"dotRemainingTime":{"spellId":{"spellId":49233}}},"rhs":{"const":{"val":"2"}}}}]}},"castSpell":{"spellId":{"spellId":60043}}}}, + {"action":{"castSpell":{"spellId":{"spellId":49238}}}} + ] + } \ No newline at end of file diff --git a/ui/elemental_shaman/presets.ts b/ui/elemental_shaman/presets.ts index 60b59aa21e..f8068a59cb 100644 --- a/ui/elemental_shaman/presets.ts +++ b/ui/elemental_shaman/presets.ts @@ -25,6 +25,8 @@ import { import * as Tooltips from '../core/constants/tooltips.js'; import { Faction } from '../core/proto/common.js'; +import DefaultApl from './apls/default.json'; + // Preset options for this spec. // Eventually we will import these values for the raid sim too, so its good to // keep them in a separate file. @@ -238,28 +240,7 @@ export const ROTATION_PRESET_DEFAULT = { name: 'Default', rotation: SavedRotation.create({ specRotationOptionsJson: ElementalShamanRotation.toJsonString(DefaultRotation), - rotation: APLRotation.fromJsonString(`{ - "type": "TypeAPL", - "prepullActions": [ - {"action":{"castSpell":{"spellId":{"spellId":66842}}},"doAtValue":{"const":{"val":"-3.5s"}}}, - {"action":{"castSpell":{"spellId":{"spellId":58704}}},"doAtValue":{"const":{"val":"-2s"}}}, - {"action":{"castSpell":{"spellId":{"otherId":"OtherActionPotion"}}},"doAtValue":{"const":{"val":"-1s"}}} - ], - "priorityList": [ - {"action":{"autocastOtherCooldowns":{}}}, - {"action":{"condition":{"cmp":{"op":"OpGe","lhs":{"currentTime":{}},"rhs":{"const":{"val":"2s"}}}},"castSpell":{"spellId":{"spellId":2825,"tag":-1}}}}, - {"action":{"condition":{"cmp":{"op":"OpGe","lhs":{"currentTime":{}},"rhs":{"const":{"val":"2s"}}}},"castSpell":{"spellId":{"spellId":2825}}}}, - {"action":{"strictSequence":{"actions":[{"castSpell":{"spellId":{"spellId":26297}}},{"castSpell":{"spellId":{"spellId":16166}}}]}}}, - {"action":{"condition":{"and":{"vals":[{"not":{"val":{"spellIsReady":{"spellId":{"spellId":26297}}}}},{"not":{"val":{"spellIsReady":{"spellId":{"spellId":16166}}}}},{"not":{"val":{"auraIsActive":{"auraId":{"spellId":64701}}}}},{"not":{"val":{"auraIsActive":{"auraId":{"spellId":26297}}}}}]}},"castSpell":{"spellId":{"spellId":54758}}}}, - {"action":{"condition":{"and":{"vals":[{"spellIsReady":{"spellId":{"spellId":2894}}},{"or":{"vals":[{"auraIsActive":{"auraId":{"itemId":40255}}},{"auraIsActive":{"auraId":{"itemId":40682}}},{"auraIsActive":{"auraId":{"itemId":37660}}},{"auraIsActive":{"auraId":{"itemId":45518}}},{"auraIsActive":{"auraId":{"itemId":54572}}},{"auraIsActive":{"auraId":{"itemId":54588}}},{"auraIsActive":{"auraId":{"itemId":47213}}},{"auraIsActive":{"auraId":{"itemId":45490}}},{"auraIsActive":{"auraId":{"itemId":50348}}},{"auraIsActive":{"auraId":{"itemId":50353}}},{"auraIsActive":{"auraId":{"itemId":50360}}},{"auraIsActive":{"auraId":{"itemId":50365}}},{"auraIsActive":{"auraId":{"itemId":50345}}},{"auraIsActive":{"auraId":{"itemId":50340}}},{"auraIsActive":{"auraId":{"itemId":50398}}},{"cmp":{"op":"OpEq","lhs":{"auraNumStacks":{"auraId":{"itemId":45308}}},"rhs":{"const":{"val":"5"}}}},{"cmp":{"op":"OpEq","lhs":{"auraNumStacks":{"auraId":{"itemId":40432}}},"rhs":{"const":{"val":"10"}}}},{"auraIsActive":{"auraId":{"spellId":55637}}}]}}]}},"strictSequence":{"actions":[{"castSpell":{"spellId":{"spellId":33697}}},{"castSpell":{"spellId":{"itemId":40212}}},{"castSpell":{"spellId":{"itemId":37873}}},{"castSpell":{"spellId":{"itemId":45148}}},{"castSpell":{"spellId":{"itemId":48724}}},{"castSpell":{"spellId":{"itemId":50357}}},{"castSpell":{"spellId":{"spellId":2894}}}]}}}, - {"action":{"condition":{"cmp":{"op":"OpLt","lhs":{"totemRemainingTime":{"totemType":"Water"}},"rhs":{"const":{"val":"20s"}}}},"castSpell":{"spellId":{"spellId":66842}}}}, - {"action":{"condition":{"and":{"vals":[{"not":{"val":{"auraIsActive":{"auraId":{"spellId":2894}}}}},{"not":{"val":{"dotIsActive":{"spellId":{"spellId":58704}}}}}]}},"castSpell":{"spellId":{"spellId":58704}}}}, - {"action":{"multidot":{"spellId":{"spellId":49233},"maxDots":3,"maxOverlap":{"const":{"val":"0ms"}}}}}, - {"action":{"condition":{"cmp":{"op":"OpGt","lhs":{"numberTargets":{}},"rhs":{"const":{"val":"1"}}}},"castSpell":{"spellId":{"spellId":49271}}}}, - {"action":{"condition":{"cmp":{"op":"OpGt","lhs":{"dotRemainingTime":{"spellId":{"spellId":49233}}},"rhs":{"const":{"val":"2s"}}}},"castSpell":{"spellId":{"spellId":60043}}}}, - {"action":{"castSpell":{"spellId":{"spellId":49238}}}} - ] - }`), + rotation: APLRotation.fromJsonString(JSON.stringify(DefaultApl)), }), }; diff --git a/ui/enhancement_shaman/apls/default_ft.json b/ui/enhancement_shaman/apls/default_ft.json new file mode 100644 index 0000000000..a30001456d --- /dev/null +++ b/ui/enhancement_shaman/apls/default_ft.json @@ -0,0 +1,20 @@ +{ + "type": "TypeAPL", + "prepullActions": [ + {"action":{"castSpell":{"spellId":{"spellId":66842}}},"doAtValue":{"const":{"val":"-3s"}}}, + {"action":{"castSpell":{"spellId":{"otherId":"OtherActionPotion"}}},"doAtValue":{"const":{"val":"-1s"}}} + ], + "priorityList": [ + {"action":{"autocastOtherCooldowns":{}}}, + {"action":{"condition":{"cmp":{"op":"OpEq","lhs":{"auraNumStacks":{"auraId":{"spellId":53817}}},"rhs":{"const":{"val":"5"}}}},"castSpell":{"spellId":{"spellId":49238}}}}, + {"action":{"castSpell":{"spellId":{"spellId":17364}}}}, + {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"dotRemainingTime":{"spellId":{"spellId":49233}}},"rhs":{"const":{"val":"0s"}}}},"castSpell":{"spellId":{"spellId":49233}}}}, + {"action":{"condition":{"not":{"val":{"auraIsActive":{"sourceUnit":{"type":"CurrentTarget"},"auraId":{"spellId":17364}}}}},"castSpell":{"spellId":{"spellId":17364}}}}, + {"action":{"castSpell":{"spellId":{"spellId":49231}}}}, + {"action":{"condition":{"cmp":{"op":"OpLt","lhs":{"totemRemainingTime":{"totemType":"Water"}},"rhs":{"const":{"val":"20s"}}}},"castSpell":{"spellId":{"spellId":66842}}}}, + {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpLe","lhs":{"dotRemainingTime":{"spellId":{"spellId":58734}}},"rhs":{"const":{"val":"100ms"}}}},{"not":{"val":{"auraIsActive":{"auraId":{"spellId":2894}}}}}]}},"castSpell":{"spellId":{"spellId":58734}}}}, + {"action":{"castSpell":{"spellId":{"spellId":61657}}}}, + {"action":{"condition":{"not":{"val":{"auraIsActive":{"auraId":{"spellId":49281}}}}},"castSpell":{"spellId":{"spellId":49281}}}}, + {"action":{"castSpell":{"spellId":{"spellId":60103}}}} + ] +} \ No newline at end of file diff --git a/ui/enhancement_shaman/apls/default_wf.json b/ui/enhancement_shaman/apls/default_wf.json new file mode 100644 index 0000000000..d692ef4d32 --- /dev/null +++ b/ui/enhancement_shaman/apls/default_wf.json @@ -0,0 +1,20 @@ +{ + "type": "TypeAPL", + "prepullActions": [ + {"action":{"castSpell":{"spellId":{"spellId":66842}}},"doAtValue":{"const":{"val":"-3s"}}}, + {"action":{"castSpell":{"spellId":{"otherId":"OtherActionPotion"}}},"doAtValue":{"const":{"val":"-1s"}}} + ], + "priorityList": [ + {"action":{"autocastOtherCooldowns":{}}}, + {"action":{"condition":{"cmp":{"op":"OpEq","lhs":{"auraNumStacks":{"auraId":{"spellId":53817}}},"rhs":{"const":{"val":"5"}}}},"castSpell":{"spellId":{"spellId":49238}}}}, + {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpGe","lhs":{"auraNumStacks":{"auraId":{"spellId":53817}}},"rhs":{"const":{"val":"3"}}}},{"cmp":{"op":"OpLt","lhs":{"math":{"op":"OpAdd","lhs":{"const":{"val":"300ms"}},"rhs":{"spellCastTime":{"spellId":{"spellId":49238}}}}},"rhs":{"autoTimeToNext":{}}}}]}},"castSpell":{"spellId":{"spellId":49238}}}}, + {"action":{"castSpell":{"spellId":{"spellId":17364}}}}, + {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"dotRemainingTime":{"spellId":{"spellId":49233}}},"rhs":{"const":{"val":"0s"}}}},"castSpell":{"spellId":{"spellId":49233}}}}, + {"action":{"castSpell":{"spellId":{"spellId":49231}}}}, + {"action":{"condition":{"cmp":{"op":"OpLt","lhs":{"totemRemainingTime":{"totemType":"Water"}},"rhs":{"const":{"val":"20s"}}}},"castSpell":{"spellId":{"spellId":66842}}}}, + {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpLe","lhs":{"dotRemainingTime":{"spellId":{"spellId":58734}}},"rhs":{"const":{"val":"100ms"}}}},{"not":{"val":{"auraIsActive":{"auraId":{"spellId":2894}}}}}]}},"castSpell":{"spellId":{"spellId":58734}}}}, + {"action":{"castSpell":{"spellId":{"spellId":61657}}}}, + {"action":{"condition":{"not":{"val":{"auraIsActive":{"auraId":{"spellId":49281}}}}},"castSpell":{"spellId":{"spellId":49281}}}}, + {"action":{"castSpell":{"spellId":{"spellId":60103}}}} + ] +} \ No newline at end of file diff --git a/ui/enhancement_shaman/apls/phase_3.json b/ui/enhancement_shaman/apls/phase_3.json new file mode 100644 index 0000000000..b15a8dc720 --- /dev/null +++ b/ui/enhancement_shaman/apls/phase_3.json @@ -0,0 +1,20 @@ +{ + "type": "TypeAPL", + "prepullActions": [ + {"action":{"castSpell":{"spellId":{"spellId":66842}}},"doAtValue":{"const":{"val":"-3s"}}}, + {"action":{"castSpell":{"spellId":{"otherId":"OtherActionPotion"}}},"doAtValue":{"const":{"val":"-1s"}}} + ], + "priorityList": [ + {"action":{"autocastOtherCooldowns":{}}}, + {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpLe","lhs":{"dotRemainingTime":{"spellId":{"spellId":49233}}},"rhs":{"const":{"val":"0s"}}}},{"cmp":{"op":"OpGe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"8s"}}}}]}},"castSpell":{"spellId":{"spellId":49233}}}}, + {"action":{"condition":{"cmp":{"op":"OpEq","lhs":{"auraNumStacks":{"auraId":{"spellId":53817}}},"rhs":{"const":{"val":"5"}}}},"castSpell":{"spellId":{"spellId":49238}}}}, + {"action":{"condition":{"not":{"val":{"auraIsActive":{"sourceUnit":{"type":"CurrentTarget"},"auraId":{"spellId":17364}}}}},"castSpell":{"spellId":{"spellId":17364}}}}, + {"action":{"castSpell":{"spellId":{"spellId":49231}}}}, + {"action":{"condition":{"cmp":{"op":"OpLt","lhs":{"totemRemainingTime":{"totemType":"Water"}},"rhs":{"const":{"val":"20s"}}}},"castSpell":{"spellId":{"spellId":66842}}}}, + {"action":{"castSpell":{"spellId":{"spellId":17364}}}}, + {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpLe","lhs":{"dotRemainingTime":{"spellId":{"spellId":58734}}},"rhs":{"const":{"val":"100ms"}}}},{"not":{"val":{"auraIsActive":{"auraId":{"spellId":2894}}}}}]}},"castSpell":{"spellId":{"spellId":58734}}}}, + {"action":{"castSpell":{"spellId":{"spellId":61657}}}}, + {"action":{"condition":{"not":{"val":{"auraIsActive":{"auraId":{"spellId":49281}}}}},"castSpell":{"spellId":{"spellId":49281}}}}, + {"action":{"castSpell":{"spellId":{"spellId":60103}}}} + ] +} \ No newline at end of file diff --git a/ui/enhancement_shaman/presets.ts b/ui/enhancement_shaman/presets.ts index bcd7d9681e..86fadba408 100644 --- a/ui/enhancement_shaman/presets.ts +++ b/ui/enhancement_shaman/presets.ts @@ -34,6 +34,10 @@ import { import * as Tooltips from '../core/constants/tooltips.js'; import { Player } from 'ui/core/player.js'; +import DefaultFt from './apls/default_ft.json'; +import DefaultWf from './apls/default_wf.json'; +import Phase3Apl from './apls/phase_3.json'; + // Preset options for this spec. // Eventually we will import these values for the raid sim too, so its good to // keep them in a separate file. @@ -106,26 +110,7 @@ export const ROTATION_FT_DEFAULT = { rotation: SavedRotation.create({ specRotationOptionsJson: EnhancementShamanRotation.toJsonString(EnhancementShamanRotation.create({ })), - rotation: APLRotation.fromJsonString(`{ - "type": "TypeAPL", - "prepullActions": [ - {"action":{"castSpell":{"spellId":{"spellId":66842}}},"doAtValue":{"const":{"val":"-3s"}}}, - {"action":{"castSpell":{"spellId":{"otherId":"OtherActionPotion"}}},"doAtValue":{"const":{"val":"-1s"}}} - ], - "priorityList": [ - {"action":{"autocastOtherCooldowns":{}}}, - {"action":{"condition":{"cmp":{"op":"OpEq","lhs":{"auraNumStacks":{"auraId":{"spellId":53817}}},"rhs":{"const":{"val":"5"}}}},"castSpell":{"spellId":{"spellId":49238}}}}, - {"action":{"castSpell":{"spellId":{"spellId":17364}}}}, - {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"dotRemainingTime":{"spellId":{"spellId":49233}}},"rhs":{"const":{"val":"0s"}}}},"castSpell":{"spellId":{"spellId":49233}}}}, - {"action":{"condition":{"not":{"val":{"auraIsActive":{"sourceUnit":{"type":"CurrentTarget"},"auraId":{"spellId":17364}}}}},"castSpell":{"spellId":{"spellId":17364}}}}, - {"action":{"castSpell":{"spellId":{"spellId":49231}}}}, - {"action":{"condition":{"cmp":{"op":"OpLt","lhs":{"totemRemainingTime":{"totemType":"Water"}},"rhs":{"const":{"val":"20s"}}}},"castSpell":{"spellId":{"spellId":66842}}}}, - {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpLe","lhs":{"dotRemainingTime":{"spellId":{"spellId":58734}}},"rhs":{"const":{"val":"100ms"}}}},{"not":{"val":{"auraIsActive":{"auraId":{"spellId":2894}}}}}]}},"castSpell":{"spellId":{"spellId":58734}}}}, - {"action":{"castSpell":{"spellId":{"spellId":61657}}}}, - {"action":{"condition":{"not":{"val":{"auraIsActive":{"auraId":{"spellId":49281}}}}},"castSpell":{"spellId":{"spellId":49281}}}}, - {"action":{"castSpell":{"spellId":{"spellId":60103}}}} - ] - }`), + rotation: APLRotation.fromJsonString(JSON.stringify(DefaultFt)), }), }; @@ -134,26 +119,7 @@ export const ROTATION_WF_DEFAULT = { rotation: SavedRotation.create({ specRotationOptionsJson: EnhancementShamanRotation.toJsonString(EnhancementShamanRotation.create({ })), - rotation: APLRotation.fromJsonString(`{ - "type": "TypeAPL", - "prepullActions": [ - {"action":{"castSpell":{"spellId":{"spellId":66842}}},"doAtValue":{"const":{"val":"-3s"}}}, - {"action":{"castSpell":{"spellId":{"otherId":"OtherActionPotion"}}},"doAtValue":{"const":{"val":"-1s"}}} - ], - "priorityList": [ - {"action":{"autocastOtherCooldowns":{}}}, - {"action":{"condition":{"cmp":{"op":"OpEq","lhs":{"auraNumStacks":{"auraId":{"spellId":53817}}},"rhs":{"const":{"val":"5"}}}},"castSpell":{"spellId":{"spellId":49238}}}}, - {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpGe","lhs":{"auraNumStacks":{"auraId":{"spellId":53817}}},"rhs":{"const":{"val":"3"}}}},{"cmp":{"op":"OpLt","lhs":{"math":{"op":"OpAdd","lhs":{"const":{"val":"300ms"}},"rhs":{"spellCastTime":{"spellId":{"spellId":49238}}}}},"rhs":{"autoTimeToNext":{}}}}]}},"castSpell":{"spellId":{"spellId":49238}}}}, - {"action":{"castSpell":{"spellId":{"spellId":17364}}}}, - {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"dotRemainingTime":{"spellId":{"spellId":49233}}},"rhs":{"const":{"val":"0s"}}}},"castSpell":{"spellId":{"spellId":49233}}}}, - {"action":{"castSpell":{"spellId":{"spellId":49231}}}}, - {"action":{"condition":{"cmp":{"op":"OpLt","lhs":{"totemRemainingTime":{"totemType":"Water"}},"rhs":{"const":{"val":"20s"}}}},"castSpell":{"spellId":{"spellId":66842}}}}, - {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpLe","lhs":{"dotRemainingTime":{"spellId":{"spellId":58734}}},"rhs":{"const":{"val":"100ms"}}}},{"not":{"val":{"auraIsActive":{"auraId":{"spellId":2894}}}}}]}},"castSpell":{"spellId":{"spellId":58734}}}}, - {"action":{"castSpell":{"spellId":{"spellId":61657}}}}, - {"action":{"condition":{"not":{"val":{"auraIsActive":{"auraId":{"spellId":49281}}}}},"castSpell":{"spellId":{"spellId":49281}}}}, - {"action":{"castSpell":{"spellId":{"spellId":60103}}}} - ] - }`), + rotation: APLRotation.fromJsonString(JSON.stringify(DefaultWf)), }), }; @@ -162,26 +128,7 @@ export const ROTATION_PHASE_3 = { rotation: SavedRotation.create({ specRotationOptionsJson: EnhancementShamanRotation.toJsonString(EnhancementShamanRotation.create({ })), - rotation: APLRotation.fromJsonString(`{ - "type": "TypeAPL", - "prepullActions": [ - {"action":{"castSpell":{"spellId":{"spellId":66842}}},"doAtValue":{"const":{"val":"-3s"}}}, - {"action":{"castSpell":{"spellId":{"otherId":"OtherActionPotion"}}},"doAtValue":{"const":{"val":"-1s"}}} - ], - "priorityList": [ - {"action":{"autocastOtherCooldowns":{}}}, - {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpLe","lhs":{"dotRemainingTime":{"spellId":{"spellId":49233}}},"rhs":{"const":{"val":"0s"}}}},{"cmp":{"op":"OpGe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"8s"}}}}]}},"castSpell":{"spellId":{"spellId":49233}}}}, - {"action":{"condition":{"cmp":{"op":"OpEq","lhs":{"auraNumStacks":{"auraId":{"spellId":53817}}},"rhs":{"const":{"val":"5"}}}},"castSpell":{"spellId":{"spellId":49238}}}}, - {"action":{"condition":{"not":{"val":{"auraIsActive":{"sourceUnit":{"type":"CurrentTarget"},"auraId":{"spellId":17364}}}}},"castSpell":{"spellId":{"spellId":17364}}}}, - {"action":{"castSpell":{"spellId":{"spellId":49231}}}}, - {"action":{"condition":{"cmp":{"op":"OpLt","lhs":{"totemRemainingTime":{"totemType":"Water"}},"rhs":{"const":{"val":"20s"}}}},"castSpell":{"spellId":{"spellId":66842}}}}, - {"action":{"castSpell":{"spellId":{"spellId":17364}}}}, - {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpLe","lhs":{"dotRemainingTime":{"spellId":{"spellId":58734}}},"rhs":{"const":{"val":"100ms"}}}},{"not":{"val":{"auraIsActive":{"auraId":{"spellId":2894}}}}}]}},"castSpell":{"spellId":{"spellId":58734}}}}, - {"action":{"castSpell":{"spellId":{"spellId":61657}}}}, - {"action":{"condition":{"not":{"val":{"auraIsActive":{"auraId":{"spellId":49281}}}}},"castSpell":{"spellId":{"spellId":49281}}}}, - {"action":{"castSpell":{"spellId":{"spellId":60103}}}} - ] - }`), + rotation: APLRotation.fromJsonString(JSON.stringify(Phase3Apl)), }), }; diff --git a/ui/feral_tank_druid/apls/default.json b/ui/feral_tank_druid/apls/default.json new file mode 100644 index 0000000000..6c3a5b13e9 --- /dev/null +++ b/ui/feral_tank_druid/apls/default.json @@ -0,0 +1,17 @@ +{ + "type": "TypeAPL", + "prepullActions": [ + {"action":{"castSpell":{"spellId":{"otherId":"OtherActionPotion"}}},"doAtValue":{"const":{"val":"-1s"}}} + ], + "priorityList": [ + {"action":{"autocastOtherCooldowns":{}}}, + {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpEq","lhs":{"auraNumStacks":{"sourceUnit":{"type":"CurrentTarget"},"auraId":{"spellId":48568}}},"rhs":{"const":{"val":"5"}}}},{"cmp":{"op":"OpLe","lhs":{"dotRemainingTime":{"spellId":{"spellId":48568}}},"rhs":{"const":{"val":"1.5s"}}}}]}},"castSpell":{"spellId":{"spellId":48568}}}}, + {"action":{"castSpell":{"spellId":{"spellId":48564}}}}, + {"action":{"condition":{"and":{"vals":[{"gcdIsReady":{}},{"not":{"val":{"spellIsReady":{"spellId":{"spellId":48564}}}}},{"cmp":{"op":"OpLe","lhs":{"spellTimeToReady":{"spellId":{"spellId":48564}}},"rhs":{"const":{"val":"1.2s"}}}}]}},"wait":{"duration":{"spellTimeToReady":{"spellId":{"spellId":48564}}}}}}, + {"action":{"condition":{"auraShouldRefresh":{"auraId":{"spellId":48560},"maxOverlap":{"const":{"val":"1.5s"}}}},"castSpell":{"spellId":{"spellId":48560}}}}, + {"action":{"castSpell":{"spellId":{"spellId":16857}}}}, + {"action":{"condition":{"or":{"vals":[{"cmp":{"op":"OpLt","lhs":{"auraNumStacks":{"sourceUnit":{"type":"CurrentTarget"},"auraId":{"spellId":48568}}},"rhs":{"const":{"val":"5"}}}},{"cmp":{"op":"OpLe","lhs":{"dotRemainingTime":{"spellId":{"spellId":48568}}},"rhs":{"const":{"val":"8s"}}}}]}},"castSpell":{"spellId":{"spellId":48568}}}}, + {"action":{"condition":{"cmp":{"op":"OpGe","lhs":{"currentRage":{}},"rhs":{"const":{"val":"40"}}}},"castSpell":{"spellId":{"spellId":48562}}}}, + {"action":{"condition":{"cmp":{"op":"OpGe","lhs":{"currentRage":{}},"rhs":{"const":{"val":"25"}}}},"castSpell":{"spellId":{"spellId":48480,"tag":1}}}} + ] +} \ No newline at end of file diff --git a/ui/feral_tank_druid/presets.ts b/ui/feral_tank_druid/presets.ts index cf643a417f..e37756bfd5 100644 --- a/ui/feral_tank_druid/presets.ts +++ b/ui/feral_tank_druid/presets.ts @@ -20,6 +20,8 @@ import { import * as Tooltips from '../core/constants/tooltips.js'; +import DefaultApl from './apls/default.json'; + // Preset options for this spec. // Eventually we will import these values for the raid sim too, so its good to // keep them in a separate file. @@ -52,23 +54,7 @@ export const ROTATION_DEFAULT = { rotation: SavedRotation.create({ specRotationOptionsJson: DruidRotation.toJsonString(DruidRotation.create({ })), - rotation: APLRotation.fromJsonString(`{ - "type": "TypeAPL", - "prepullActions": [ - {"action":{"castSpell":{"spellId":{"otherId":"OtherActionPotion"}}},"doAtValue":{"const":{"val":"-1s"}}} - ], - "priorityList": [ - {"action":{"autocastOtherCooldowns":{}}}, - {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpEq","lhs":{"auraNumStacks":{"sourceUnit":{"type":"CurrentTarget"},"auraId":{"spellId":48568}}},"rhs":{"const":{"val":"5"}}}},{"cmp":{"op":"OpLe","lhs":{"dotRemainingTime":{"spellId":{"spellId":48568}}},"rhs":{"const":{"val":"1.5s"}}}}]}},"castSpell":{"spellId":{"spellId":48568}}}}, - {"action":{"castSpell":{"spellId":{"spellId":48564}}}}, - {"action":{"condition":{"and":{"vals":[{"gcdIsReady":{}},{"not":{"val":{"spellIsReady":{"spellId":{"spellId":48564}}}}},{"cmp":{"op":"OpLe","lhs":{"spellTimeToReady":{"spellId":{"spellId":48564}}},"rhs":{"const":{"val":"1.2s"}}}}]}},"wait":{"duration":{"spellTimeToReady":{"spellId":{"spellId":48564}}}}}}, - {"action":{"condition":{"auraShouldRefresh":{"auraId":{"spellId":48560},"maxOverlap":{"const":{"val":"1.5s"}}}},"castSpell":{"spellId":{"spellId":48560}}}}, - {"action":{"castSpell":{"spellId":{"spellId":16857}}}}, - {"action":{"condition":{"or":{"vals":[{"cmp":{"op":"OpLt","lhs":{"auraNumStacks":{"sourceUnit":{"type":"CurrentTarget"},"auraId":{"spellId":48568}}},"rhs":{"const":{"val":"5"}}}},{"cmp":{"op":"OpLe","lhs":{"dotRemainingTime":{"spellId":{"spellId":48568}}},"rhs":{"const":{"val":"8s"}}}}]}},"castSpell":{"spellId":{"spellId":48568}}}}, - {"action":{"condition":{"cmp":{"op":"OpGe","lhs":{"currentRage":{}},"rhs":{"const":{"val":"40"}}}},"castSpell":{"spellId":{"spellId":48562}}}}, - {"action":{"condition":{"cmp":{"op":"OpGe","lhs":{"currentRage":{}},"rhs":{"const":{"val":"25"}}}},"castSpell":{"spellId":{"spellId":48480,"tag":1}}}} - ] - }`), + rotation: APLRotation.fromJsonString(JSON.stringify(DefaultApl)), }), }; diff --git a/ui/healing_priest/apls/disc.json b/ui/healing_priest/apls/disc.json new file mode 100644 index 0000000000..f66c5ce4ef --- /dev/null +++ b/ui/healing_priest/apls/disc.json @@ -0,0 +1,10 @@ +{ + "type": "TypeAPL", + "priorityList": [ + {"action":{"autocastOtherCooldowns":{}}}, + {"action":{"condition":{"cmp":{"op":"OpLt","lhs":{"spellCpm":{"spellId":{"spellId":48066}}},"rhs":{"const":{"val":"18"}}}},"multishield":{"spellId":{"spellId":48066},"maxShields":10,"maxOverlap":{"const":{"val":"0ms"}}}}}, + {"action":{"condition":{"cmp":{"op":"OpLt","lhs":{"spellCpm":{"spellId":{"spellId":53007}}},"rhs":{"const":{"val":"4"}}}},"castSpell":{"spellId":{"spellId":53007}}}}, + {"action":{"condition":{"cmp":{"op":"OpLt","lhs":{"spellCpm":{"spellId":{"spellId":48113}}},"rhs":{"const":{"val":"2"}}}},"castSpell":{"spellId":{"spellId":48113}}}}, + {"action":{"condition":{"cmp":{"op":"OpLt","lhs":{"spellCpm":{"spellId":{"spellId":48063}}},"rhs":{"const":{"val":"1"}}}},"castSpell":{"spellId":{"spellId":48063}}}} + ] +} \ No newline at end of file diff --git a/ui/healing_priest/apls/holy.json b/ui/healing_priest/apls/holy.json new file mode 100644 index 0000000000..d8aa673334 --- /dev/null +++ b/ui/healing_priest/apls/holy.json @@ -0,0 +1,10 @@ +{ + "type": "TypeAPL", + "priorityList": [ + {"action":{"autocastOtherCooldowns":{}}}, + {"action":{"condition":{"cmp":{"op":"OpLt","lhs":{"spellCpm":{"spellId":{"spellId":48063}}},"rhs":{"const":{"val":"10"}}}},"castSpell":{"spellId":{"spellId":48063}}}}, + {"action":{"condition":{"cmp":{"op":"OpLt","lhs":{"spellCpm":{"spellId":{"spellId":48089}}},"rhs":{"const":{"val":"5"}}}},"castSpell":{"spellId":{"spellId":48089}}}}, + {"action":{"condition":{"cmp":{"op":"OpLt","lhs":{"spellCpm":{"spellId":{"spellId":48068}}},"rhs":{"const":{"val":"10"}}}},"multidot":{"spellId":{"spellId":48068},"maxDots":10,"maxOverlap":{"const":{"val":"0ms"}}}}}, + {"action":{"condition":{"cmp":{"op":"OpLt","lhs":{"spellCpm":{"spellId":{"spellId":48113}}},"rhs":{"const":{"val":"2"}}}},"castSpell":{"spellId":{"spellId":48113}}}} + ] +} \ No newline at end of file diff --git a/ui/healing_priest/presets.ts b/ui/healing_priest/presets.ts index 121937ee92..7c5c9deadb 100644 --- a/ui/healing_priest/presets.ts +++ b/ui/healing_priest/presets.ts @@ -25,6 +25,9 @@ import { import * as Tooltips from '../core/constants/tooltips.js'; +import DiscApl from './apls/disc.json'; +import HolyApl from './apls/holy.json'; + // Preset options for this spec. // Eventually we will import these values for the raid sim too, so its good to // keep them in a separate file. @@ -89,16 +92,7 @@ export const ROTATION_PRESET_DISC = { rotation: SavedRotation.create({ specRotationOptionsJson: Rotation.toJsonString(Rotation.create({ })), - rotation: APLRotation.fromJsonString(`{ - "type": "TypeAPL", - "priorityList": [ - {"action":{"autocastOtherCooldowns":{}}}, - {"action":{"condition":{"cmp":{"op":"OpLt","lhs":{"spellCpm":{"spellId":{"spellId":48066}}},"rhs":{"const":{"val":"18"}}}},"multishield":{"spellId":{"spellId":48066},"maxShields":10,"maxOverlap":{"const":{"val":"0ms"}}}}}, - {"action":{"condition":{"cmp":{"op":"OpLt","lhs":{"spellCpm":{"spellId":{"spellId":53007}}},"rhs":{"const":{"val":"4"}}}},"castSpell":{"spellId":{"spellId":53007}}}}, - {"action":{"condition":{"cmp":{"op":"OpLt","lhs":{"spellCpm":{"spellId":{"spellId":48113}}},"rhs":{"const":{"val":"2"}}}},"castSpell":{"spellId":{"spellId":48113}}}}, - {"action":{"condition":{"cmp":{"op":"OpLt","lhs":{"spellCpm":{"spellId":{"spellId":48063}}},"rhs":{"const":{"val":"1"}}}},"castSpell":{"spellId":{"spellId":48063}}}} - ] - }`), + rotation: APLRotation.fromJsonString(JSON.stringify(DiscApl)), }), }; @@ -107,16 +101,7 @@ export const ROTATION_PRESET_HOLY = { rotation: SavedRotation.create({ specRotationOptionsJson: Rotation.toJsonString(Rotation.create({ })), - rotation: APLRotation.fromJsonString(`{ - "type": "TypeAPL", - "priorityList": [ - {"action":{"autocastOtherCooldowns":{}}}, - {"action":{"condition":{"cmp":{"op":"OpLt","lhs":{"spellCpm":{"spellId":{"spellId":48063}}},"rhs":{"const":{"val":"10"}}}},"castSpell":{"spellId":{"spellId":48063}}}}, - {"action":{"condition":{"cmp":{"op":"OpLt","lhs":{"spellCpm":{"spellId":{"spellId":48089}}},"rhs":{"const":{"val":"5"}}}},"castSpell":{"spellId":{"spellId":48089}}}}, - {"action":{"condition":{"cmp":{"op":"OpLt","lhs":{"spellCpm":{"spellId":{"spellId":48068}}},"rhs":{"const":{"val":"10"}}}},"multidot":{"spellId":{"spellId":48068},"maxDots":10,"maxOverlap":{"const":{"val":"0ms"}}}}}, - {"action":{"condition":{"cmp":{"op":"OpLt","lhs":{"spellCpm":{"spellId":{"spellId":48113}}},"rhs":{"const":{"val":"2"}}}},"castSpell":{"spellId":{"spellId":48113}}}} - ] - }`), + rotation: APLRotation.fromJsonString(JSON.stringify(HolyApl)), }), }; diff --git a/ui/hunter/apls/aoe.json b/ui/hunter/apls/aoe.json new file mode 100644 index 0000000000..ea442ea7e1 --- /dev/null +++ b/ui/hunter/apls/aoe.json @@ -0,0 +1,14 @@ +{ + "type": "TypeAPL", + "prepullActions": [ + {"action":{"castSpell":{"spellId":{"otherId":"OtherActionPotion"}}},"doAtValue":{"const":{"val":"-1s"}}} + ], + "priorityList": [ + {"action":{"condition":{"cmp":{"op":"OpGt","lhs":{"currentTime":{}},"rhs":{"const":{"val":"10s"}}}},"autocastOtherCooldowns":{}}}, + {"action":{"condition":{"and":{"vals":[{"not":{"val":{"auraIsActive":{"auraId":{"spellId":34074}}}}},{"cmp":{"op":"OpLt","lhs":{"currentManaPercent":{}},"rhs":{"const":{"val":"10%"}}}}]}},"castSpell":{"spellId":{"spellId":34074}}}}, + {"action":{"condition":{"and":{"vals":[{"not":{"val":{"auraIsActive":{"auraId":{"spellId":61847}}}}},{"cmp":{"op":"OpGt","lhs":{"currentManaPercent":{}},"rhs":{"const":{"val":"30%"}}}}]}},"castSpell":{"spellId":{"spellId":61847}}}}, + {"hide":true,"action":{"multidot":{"spellId":{"spellId":49001},"maxDots":3,"maxOverlap":{"const":{"val":"0ms"}}}}}, + {"action":{"condition":{"not":{"val":{"dotIsActive":{"spellId":{"spellId":49067}}}}},"castSpell":{"spellId":{"tag":1,"spellId":49067}}}}, + {"action":{"castSpell":{"spellId":{"spellId":58434}}}} + ] +} \ No newline at end of file diff --git a/ui/hunter/apls/bm.json b/ui/hunter/apls/bm.json new file mode 100644 index 0000000000..bf3fc6de7b --- /dev/null +++ b/ui/hunter/apls/bm.json @@ -0,0 +1,18 @@ +{ + "type": "TypeAPL", + "prepullActions": [ + {"action":{"castSpell":{"spellId":{"otherId":"OtherActionPotion"}}},"doAtValue":{"const":{"val":"-1s"}}} + ], + "priorityList": [ + {"action":{"condition":{"cmp":{"op":"OpGt","lhs":{"currentTime":{}},"rhs":{"const":{"val":"10s"}}}},"autocastOtherCooldowns":{}}}, + {"action":{"condition":{"and":{"vals":[{"not":{"val":{"auraIsActive":{"auraId":{"spellId":34074}}}}},{"cmp":{"op":"OpLt","lhs":{"currentManaPercent":{}},"rhs":{"const":{"val":"10%"}}}}]}},"castSpell":{"spellId":{"spellId":34074}}}}, + {"action":{"condition":{"and":{"vals":[{"not":{"val":{"auraIsActive":{"auraId":{"spellId":61847}}}}},{"cmp":{"op":"OpGt","lhs":{"currentManaPercent":{}},"rhs":{"const":{"val":"30%"}}}}]}},"castSpell":{"spellId":{"spellId":61847}}}}, + {"action":{"castSpell":{"spellId":{"spellId":61006}}}}, + {"hide":true,"action":{"condition":{"not":{"val":{"dotIsActive":{"spellId":{"spellId":49067}}}}},"castSpell":{"spellId":{"tag":1,"spellId":49067}}}}, + {"action":{"condition":{"and":{"vals":[{"not":{"val":{"dotIsActive":{"spellId":{"spellId":49001}}}}},{"cmp":{"op":"OpGt","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"6s"}}}}]}},"castSpell":{"spellId":{"spellId":49001}}}}, + {"action":{"castSpell":{"spellId":{"spellId":49050}}}}, + {"action":{"castSpell":{"spellId":{"spellId":49048}}}}, + {"hide":true,"action":{"castSpell":{"spellId":{"spellId":49045}}}}, + {"action":{"castSpell":{"spellId":{"spellId":49052}}}} + ] +} \ No newline at end of file diff --git a/ui/hunter/apls/mm.json b/ui/hunter/apls/mm.json new file mode 100644 index 0000000000..c34e537ede --- /dev/null +++ b/ui/hunter/apls/mm.json @@ -0,0 +1,20 @@ +{ + "type": "TypeAPL", + "prepullActions": [ + {"action":{"castSpell":{"spellId":{"otherId":"OtherActionPotion"}}},"doAtValue":{"const":{"val":"-1s"}}} + ], + "priorityList": [ + {"action":{"condition":{"cmp":{"op":"OpGt","lhs":{"currentTime":{}},"rhs":{"const":{"val":"10s"}}}},"autocastOtherCooldowns":{}}}, + {"action":{"condition":{"and":{"vals":[{"not":{"val":{"auraIsActive":{"auraId":{"spellId":34074}}}}},{"cmp":{"op":"OpLt","lhs":{"currentManaPercent":{}},"rhs":{"const":{"val":"10%"}}}}]}},"castSpell":{"spellId":{"spellId":34074}}}}, + {"action":{"condition":{"and":{"vals":[{"not":{"val":{"auraIsActive":{"auraId":{"spellId":61847}}}}},{"cmp":{"op":"OpGt","lhs":{"currentManaPercent":{}},"rhs":{"const":{"val":"30%"}}}}]}},"castSpell":{"spellId":{"spellId":61847}}}}, + {"action":{"castSpell":{"spellId":{"spellId":34490}}}}, + {"action":{"castSpell":{"spellId":{"spellId":61006}}}}, + {"action":{"condition":{"not":{"val":{"dotIsActive":{"spellId":{"spellId":49001}}}}},"castSpell":{"spellId":{"spellId":49001}}}}, + {"hide":true,"action":{"condition":{"not":{"val":{"dotIsActive":{"spellId":{"spellId":49067}}}}},"castSpell":{"spellId":{"tag":1,"spellId":49067}}}}, + {"action":{"castSpell":{"spellId":{"spellId":53209}}}}, + {"action":{"castSpell":{"spellId":{"spellId":49050}}}}, + {"action":{"castSpell":{"spellId":{"spellId":49048}}}}, + {"hide":true,"action":{"castSpell":{"spellId":{"spellId":49045}}}}, + {"action":{"castSpell":{"spellId":{"spellId":49052}}}} + ] +} \ No newline at end of file diff --git a/ui/hunter/apls/mm_advanced.json b/ui/hunter/apls/mm_advanced.json new file mode 100644 index 0000000000..fadd9c8e66 --- /dev/null +++ b/ui/hunter/apls/mm_advanced.json @@ -0,0 +1,29 @@ +{ + "type": "TypeAPL", + "prepullActions": [ + {"action":{"castSpell":{"spellId":{"spellId":61847}}},"doAtValue":{"const":{"val":"-25s"}}}, + {"action":{"castSpell":{"spellId":{"spellId":49067}}},"doAtValue":{"const":{"val":"-20s"}}}, + {"action":{"castSpell":{"spellId":{"spellId":53517}}},"doAtValue":{"const":{"val":"-3s"}}}, + {"action":{"castSpell":{"spellId":{"itemId":40211}}},"doAtValue":{"const":{"val":"-1.401s"}}}, + {"action":{"castSpell":{"spellId":{"spellId":49052}}},"doAtValue":{"const":{"val":"-1.4s"}}} + ], + "priorityList": [ + {"action":{"condition":{"cmp":{"op":"OpGt","lhs":{"currentTime":{}},"rhs":{"const":{"val":"1.35s"}}}},"autocastOtherCooldowns":{}}}, + {"action":{"condition":{"cmp":{"op":"OpGt","lhs":{"currentTime":{}},"rhs":{"const":{"val":"1s"}}}},"castSpell":{"spellId":{"itemId":42641}}}}, + {"action":{"condition":{"cmp":{"op":"OpGt","lhs":{"currentTime":{}},"rhs":{"const":{"val":"61s"}}}},"castSpell":{"spellId":{"itemId":41119}}}}, + {"action":{"condition":{"cmp":{"op":"OpGt","lhs":{"currentTime":{}},"rhs":{"const":{"val":"10s"}}}},"castSpell":{"spellId":{"spellId":34026}}}}, + {"action":{"condition":{"cmp":{"op":"OpGt","lhs":{"currentTime":{}},"rhs":{"const":{"val":"1.35s"}}}},"castSpell":{"spellId":{"spellId":34490}}}}, + {"action":{"condition":{"cmp":{"op":"OpEq","lhs":{"currentTime":{}},"rhs":{"const":{"val":"0s"}}}},"castSpell":{"spellId":{"itemId":41119}}}}, + {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpGt","lhs":{"spellTimeToReady":{"spellId":{"spellId":53209}}},"rhs":{"const":{"val":"6s"}}}},{"or":{"vals":[{"cmp":{"op":"OpGt","lhs":{"spellTimeToReady":{"spellId":{"spellId":49050}}},"rhs":{"const":{"val":"6s"}}}},{"cmp":{"op":"OpGt","lhs":{"spellTimeToReady":{"spellId":{"spellId":49048}}},"rhs":{"const":{"val":"6s"}}}}]}},{"cmp":{"op":"OpGt","lhs":{"spellTimeToReady":{"spellId":{"spellId":3045}}},"rhs":{"const":{"val":"167s"}}}},{"cmp":{"op":"OpGt","lhs":{"spellTimeToReady":{"spellId":{"spellId":34490}}},"rhs":{"const":{"val":"13s"}}}},{"cmp":{"op":"OpGt","lhs":{"spellTimeToReady":{"spellId":{"spellId":49067}}},"rhs":{"const":{"val":"23s"}}}}]}},"castSpell":{"spellId":{"spellId":23989}}}}, + {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpGt","lhs":{"currentManaPercent":{}},"rhs":{"const":{"val":"15%"}}}},{"not":{"val":{"auraIsActive":{"auraId":{"spellId":61847}}}}}]}},"castSpell":{"spellId":{"spellId":61847}}}}, + {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpLt","lhs":{"currentManaPercent":{}},"rhs":{"const":{"val":"10%"}}}},{"not":{"val":{"auraIsActive":{"auraId":{"spellId":34074}}}}}]}},"castSpell":{"spellId":{"spellId":34074}}}}, + {"action":{"condition":{"cmp":{"op":"OpLt","lhs":{"currentManaPercent":{}},"rhs":{"const":{"val":"40%"}}}},"castSpell":{"spellId":{"itemId":20520}}}}, + {"action":{"condition":{"cmp":{"op":"OpLt","lhs":{"spellTimeToReady":{"spellId":{"spellId":61006}}},"rhs":{"const":{"val":"0.21s"}}}},"castSpell":{"spellId":{"spellId":61006}}}}, + {"action":{"condition":{"not":{"val":{"dotIsActive":{"spellId":{"spellId":49001}}}}},"castSpell":{"spellId":{"spellId":49001}}}}, + {"action":{"condition":{"not":{"val":{"dotIsActive":{"spellId":{"spellId":49067}}}}},"castSpell":{"spellId":{"spellId":49067}}}}, + {"action":{"condition":{"or":{"vals":[{"cmp":{"op":"OpLt","lhs":{"spellTimeToReady":{"spellId":{"spellId":53209}}},"rhs":{"const":{"val":"0.15s"}}}},{"spellCanCast":{"spellId":{"spellId":53209}}}]}},"castSpell":{"spellId":{"spellId":53209}}}}, + {"action":{"condition":{"or":{"vals":[{"cmp":{"op":"OpLt","lhs":{"spellTimeToReady":{"spellId":{"spellId":49050}}},"rhs":{"const":{"val":"0.15s"}}}},{"spellCanCast":{"spellId":{"spellId":49050}}}]}},"castSpell":{"spellId":{"spellId":49050}}}}, + {"action":{"castSpell":{"spellId":{"spellId":49052}}}}, + {"hide":true,"action":{"condition":{"or":{"vals":[{"cmp":{"op":"OpLt","lhs":{"spellTimeToReady":{"spellId":{"spellId":49045}}},"rhs":{"const":{"val":"0.2s"}}}},{"spellCanCast":{"spellId":{"spellId":49045}}}]}},"castSpell":{"spellId":{"spellId":49045}}}} + ] +} \ No newline at end of file diff --git a/ui/hunter/apls/sv.json b/ui/hunter/apls/sv.json new file mode 100644 index 0000000000..32f354fd60 --- /dev/null +++ b/ui/hunter/apls/sv.json @@ -0,0 +1,20 @@ +{ + "type": "TypeAPL", + "prepullActions": [ + {"action":{"castSpell":{"spellId":{"otherId":"OtherActionPotion"}}},"doAtValue":{"const":{"val":"-1s"}}} + ], + "priorityList": [ + {"action":{"condition":{"cmp":{"op":"OpGt","lhs":{"currentTime":{}},"rhs":{"const":{"val":"10s"}}}},"autocastOtherCooldowns":{}}}, + {"action":{"condition":{"and":{"vals":[{"not":{"val":{"auraIsActive":{"auraId":{"spellId":34074}}}}},{"cmp":{"op":"OpLt","lhs":{"currentManaPercent":{}},"rhs":{"const":{"val":"10%"}}}}]}},"castSpell":{"spellId":{"spellId":34074}}}}, + {"action":{"condition":{"and":{"vals":[{"not":{"val":{"auraIsActive":{"auraId":{"spellId":61847}}}}},{"cmp":{"op":"OpGt","lhs":{"currentManaPercent":{}},"rhs":{"const":{"val":"30%"}}}}]}},"castSpell":{"spellId":{"spellId":61847}}}}, + {"action":{"castSpell":{"spellId":{"spellId":61006}}}}, + {"action":{"condition":{"not":{"val":{"dotIsActive":{"spellId":{"spellId":60053}}}}},"castSpell":{"spellId":{"spellId":60053}}}}, + {"action":{"condition":{"dotIsActive":{"spellId":{"spellId":60053}}},"castSpell":{"spellId":{"spellId":60052}}}}, + {"hide":true,"action":{"condition":{"not":{"val":{"dotIsActive":{"spellId":{"spellId":49067}}}}},"castSpell":{"spellId":{"tag":1,"spellId":49067}}}}, + {"action":{"condition":{"and":{"vals":[{"not":{"val":{"dotIsActive":{"spellId":{"spellId":49001}}}}},{"cmp":{"op":"OpGt","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"6s"}}}}]}},"castSpell":{"spellId":{"spellId":49001}}}}, + {"action":{"castSpell":{"spellId":{"spellId":63672}}}}, + {"action":{"castSpell":{"spellId":{"spellId":49050}}}}, + {"action":{"castSpell":{"spellId":{"spellId":49048}}}}, + {"action":{"castSpell":{"spellId":{"spellId":49052}}}} + ] +} \ No newline at end of file diff --git a/ui/hunter/apls/sv_advanced.json b/ui/hunter/apls/sv_advanced.json new file mode 100644 index 0000000000..ad150f0ad8 --- /dev/null +++ b/ui/hunter/apls/sv_advanced.json @@ -0,0 +1,24 @@ +{ + "type": "TypeAPL", + "prepullActions": [ + {"action":{"castSpell":{"spellId":{"spellId":49067}}},"doAtValue":{"const":{"val":"-24s"}}}, + {"action":{"castSpell":{"spellId":{"spellId":61847}}},"doAtValue":{"const":{"val":"-20s"}}}, + {"action":{"castSpell":{"spellId":{"otherId":"OtherActionPotion"}}},"doAtValue":{"const":{"val":"-1.4s"}}}, + {"action":{"castSpell":{"spellId":{"spellId":49052}}},"doAtValue":{"const":{"val":"-1.4s"}}} + ], + "priorityList": [ + {"action":{"condition":{"cmp":{"op":"OpGt","lhs":{"currentTime":{}},"rhs":{"const":{"val":"1s"}}}},"autocastOtherCooldowns":{}}}, + {"action":{"condition":{"cmp":{"op":"OpLt","lhs":{"currentManaPercent":{}},"rhs":{"const":{"val":"40%"}}}},"castSpell":{"spellId":{"itemId":20520}}}}, + {"action":{"condition":{"and":{"vals":[{"not":{"val":{"auraIsActive":{"auraId":{"spellId":61847}}}}},{"cmp":{"op":"OpGt","lhs":{"currentManaPercent":{}},"rhs":{"const":{"val":"30%"}}}}]}},"castSpell":{"spellId":{"spellId":61847}}}}, + {"action":{"condition":{"and":{"vals":[{"not":{"val":{"auraIsActive":{"auraId":{"spellId":34074}}}}},{"cmp":{"op":"OpLt","lhs":{"currentManaPercent":{}},"rhs":{"const":{"val":"10%"}}}}]}},"castSpell":{"spellId":{"spellId":34074}}}}, + {"action":{"castSpell":{"spellId":{"spellId":61006}}}}, + {"action":{"condition":{"not":{"val":{"dotIsActive":{"spellId":{"spellId":60053}}}}},"castSpell":{"spellId":{"spellId":60053}}}}, + {"action":{"condition":{"dotIsActive":{"spellId":{"spellId":60053}}},"castSpell":{"spellId":{"spellId":60052}}}}, + {"action":{"condition":{"not":{"val":{"dotIsActive":{"spellId":{"spellId":49067}}}}},"castSpell":{"spellId":{"spellId":49067,"tag":1}}}}, + {"action":{"condition":{"or":{"vals":[{"cmp":{"op":"OpLt","lhs":{"spellTimeToReady":{"spellId":{"spellId":63672}}},"rhs":{"const":{"val":"0.2s"}}}},{"spellCanCast":{"spellId":{"spellId":63672}}}]}},"castSpell":{"spellId":{"spellId":63672}}}}, + {"action":{"condition":{"and":{"vals":[{"not":{"val":{"dotIsActive":{"spellId":{"spellId":49001}}}}},{"cmp":{"op":"OpGt","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"6s"}}}}]}},"castSpell":{"spellId":{"spellId":49001}}}}, + {"action":{"condition":{"or":{"vals":[{"cmp":{"op":"OpLt","lhs":{"spellTimeToReady":{"spellId":{"spellId":49048}}},"rhs":{"const":{"val":"0.2s"}}}},{"spellCanCast":{"spellId":{"spellId":49048}}}]}},"castSpell":{"spellId":{"spellId":49048}}}}, + {"hide":true,"action":{"castSpell":{"spellId":{"spellId":49048}}}}, + {"action":{"castSpell":{"spellId":{"spellId":49052}}}} + ] +} \ No newline at end of file diff --git a/ui/hunter/presets.ts b/ui/hunter/presets.ts index fac2f353ab..86cebaa7db 100644 --- a/ui/hunter/presets.ts +++ b/ui/hunter/presets.ts @@ -23,6 +23,16 @@ import { import * as Tooltips from '../core/constants/tooltips.js'; +import BmApl from './apls/bm.json'; + +import MmApl from './apls/mm.json'; +import MmAdvApl from './apls/mm_advanced.json'; + +import SvApl from './apls/sv.json'; +import SvAdvApl from './apls/sv_advanced.json'; + +import AoeApl from './apls/aoe.json'; + // Preset options for this spec. // Eventually we will import these values for the raid sim too, so its good to // keep them in a separate file. @@ -100,24 +110,7 @@ export const ROTATION_PRESET_BM = { rotation: SavedRotation.create({ specRotationOptionsJson: HunterRotation.toJsonString(HunterRotation.create({ })), - rotation: APLRotation.fromJsonString(`{ - "type": "TypeAPL", - "prepullActions": [ - {"action":{"castSpell":{"spellId":{"otherId":"OtherActionPotion"}}},"doAtValue":{"const":{"val":"-1s"}}} - ], - "priorityList": [ - {"action":{"condition":{"cmp":{"op":"OpGt","lhs":{"currentTime":{}},"rhs":{"const":{"val":"10s"}}}},"autocastOtherCooldowns":{}}}, - {"action":{"condition":{"and":{"vals":[{"not":{"val":{"auraIsActive":{"auraId":{"spellId":34074}}}}},{"cmp":{"op":"OpLt","lhs":{"currentManaPercent":{}},"rhs":{"const":{"val":"10%"}}}}]}},"castSpell":{"spellId":{"spellId":34074}}}}, - {"action":{"condition":{"and":{"vals":[{"not":{"val":{"auraIsActive":{"auraId":{"spellId":61847}}}}},{"cmp":{"op":"OpGt","lhs":{"currentManaPercent":{}},"rhs":{"const":{"val":"30%"}}}}]}},"castSpell":{"spellId":{"spellId":61847}}}}, - {"action":{"castSpell":{"spellId":{"spellId":61006}}}}, - {"hide":true,"action":{"condition":{"not":{"val":{"dotIsActive":{"spellId":{"spellId":49067}}}}},"castSpell":{"spellId":{"tag":1,"spellId":49067}}}}, - {"action":{"condition":{"and":{"vals":[{"not":{"val":{"dotIsActive":{"spellId":{"spellId":49001}}}}},{"cmp":{"op":"OpGt","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"6s"}}}}]}},"castSpell":{"spellId":{"spellId":49001}}}}, - {"action":{"castSpell":{"spellId":{"spellId":49050}}}}, - {"action":{"castSpell":{"spellId":{"spellId":49048}}}}, - {"hide":true,"action":{"castSpell":{"spellId":{"spellId":49045}}}}, - {"action":{"castSpell":{"spellId":{"spellId":49052}}}} - ] - }`), + rotation: APLRotation.fromJsonString(JSON.stringify(BmApl)), }), }; @@ -126,26 +119,7 @@ export const ROTATION_PRESET_MM = { rotation: SavedRotation.create({ specRotationOptionsJson: HunterRotation.toJsonString(HunterRotation.create({ })), - rotation: APLRotation.fromJsonString(`{ - "type": "TypeAPL", - "prepullActions": [ - {"action":{"castSpell":{"spellId":{"otherId":"OtherActionPotion"}}},"doAtValue":{"const":{"val":"-1s"}}} - ], - "priorityList": [ - {"action":{"condition":{"cmp":{"op":"OpGt","lhs":{"currentTime":{}},"rhs":{"const":{"val":"10s"}}}},"autocastOtherCooldowns":{}}}, - {"action":{"condition":{"and":{"vals":[{"not":{"val":{"auraIsActive":{"auraId":{"spellId":34074}}}}},{"cmp":{"op":"OpLt","lhs":{"currentManaPercent":{}},"rhs":{"const":{"val":"10%"}}}}]}},"castSpell":{"spellId":{"spellId":34074}}}}, - {"action":{"condition":{"and":{"vals":[{"not":{"val":{"auraIsActive":{"auraId":{"spellId":61847}}}}},{"cmp":{"op":"OpGt","lhs":{"currentManaPercent":{}},"rhs":{"const":{"val":"30%"}}}}]}},"castSpell":{"spellId":{"spellId":61847}}}}, - {"action":{"castSpell":{"spellId":{"spellId":34490}}}}, - {"action":{"castSpell":{"spellId":{"spellId":61006}}}}, - {"action":{"condition":{"not":{"val":{"dotIsActive":{"spellId":{"spellId":49001}}}}},"castSpell":{"spellId":{"spellId":49001}}}}, - {"hide":true,"action":{"condition":{"not":{"val":{"dotIsActive":{"spellId":{"spellId":49067}}}}},"castSpell":{"spellId":{"tag":1,"spellId":49067}}}}, - {"action":{"castSpell":{"spellId":{"spellId":53209}}}}, - {"action":{"castSpell":{"spellId":{"spellId":49050}}}}, - {"action":{"castSpell":{"spellId":{"spellId":49048}}}}, - {"hide":true,"action":{"castSpell":{"spellId":{"spellId":49045}}}}, - {"action":{"castSpell":{"spellId":{"spellId":49052}}}} - ] - }`), + rotation: APLRotation.fromJsonString(JSON.stringify(MmApl)), }), }; @@ -154,35 +128,7 @@ export const ROTATION_PRESET_MM_ADVANCED = { rotation: SavedRotation.create({ specRotationOptionsJson: HunterRotation.toJsonString(HunterRotation.create({ })), - rotation: APLRotation.fromJsonString(`{ - "type": "TypeAPL", - "prepullActions": [ - {"action":{"castSpell":{"spellId":{"spellId":61847}}},"doAtValue":{"const":{"val":"-25s"}}}, - {"action":{"castSpell":{"spellId":{"spellId":49067}}},"doAtValue":{"const":{"val":"-20s"}}}, - {"action":{"castSpell":{"spellId":{"spellId":53517}}},"doAtValue":{"const":{"val":"-3s"}}}, - {"action":{"castSpell":{"spellId":{"itemId":40211}}},"doAtValue":{"const":{"val":"-1.401s"}}}, - {"action":{"castSpell":{"spellId":{"spellId":49052}}},"doAtValue":{"const":{"val":"-1.4s"}}} - ], - "priorityList": [ - {"action":{"condition":{"cmp":{"op":"OpGt","lhs":{"currentTime":{}},"rhs":{"const":{"val":"1.35s"}}}},"autocastOtherCooldowns":{}}}, - {"action":{"condition":{"cmp":{"op":"OpGt","lhs":{"currentTime":{}},"rhs":{"const":{"val":"1s"}}}},"castSpell":{"spellId":{"itemId":42641}}}}, - {"action":{"condition":{"cmp":{"op":"OpGt","lhs":{"currentTime":{}},"rhs":{"const":{"val":"61s"}}}},"castSpell":{"spellId":{"itemId":41119}}}}, - {"action":{"condition":{"cmp":{"op":"OpGt","lhs":{"currentTime":{}},"rhs":{"const":{"val":"10s"}}}},"castSpell":{"spellId":{"spellId":34026}}}}, - {"action":{"condition":{"cmp":{"op":"OpGt","lhs":{"currentTime":{}},"rhs":{"const":{"val":"1.35s"}}}},"castSpell":{"spellId":{"spellId":34490}}}}, - {"action":{"condition":{"cmp":{"op":"OpEq","lhs":{"currentTime":{}},"rhs":{"const":{"val":"0s"}}}},"castSpell":{"spellId":{"itemId":41119}}}}, - {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpGt","lhs":{"spellTimeToReady":{"spellId":{"spellId":53209}}},"rhs":{"const":{"val":"6s"}}}},{"or":{"vals":[{"cmp":{"op":"OpGt","lhs":{"spellTimeToReady":{"spellId":{"spellId":49050}}},"rhs":{"const":{"val":"6s"}}}},{"cmp":{"op":"OpGt","lhs":{"spellTimeToReady":{"spellId":{"spellId":49048}}},"rhs":{"const":{"val":"6s"}}}}]}},{"cmp":{"op":"OpGt","lhs":{"spellTimeToReady":{"spellId":{"spellId":3045}}},"rhs":{"const":{"val":"167s"}}}},{"cmp":{"op":"OpGt","lhs":{"spellTimeToReady":{"spellId":{"spellId":34490}}},"rhs":{"const":{"val":"13s"}}}},{"cmp":{"op":"OpGt","lhs":{"spellTimeToReady":{"spellId":{"spellId":49067}}},"rhs":{"const":{"val":"23s"}}}}]}},"castSpell":{"spellId":{"spellId":23989}}}}, - {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpGt","lhs":{"currentManaPercent":{}},"rhs":{"const":{"val":"15%"}}}},{"not":{"val":{"auraIsActive":{"auraId":{"spellId":61847}}}}}]}},"castSpell":{"spellId":{"spellId":61847}}}}, - {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpLt","lhs":{"currentManaPercent":{}},"rhs":{"const":{"val":"10%"}}}},{"not":{"val":{"auraIsActive":{"auraId":{"spellId":34074}}}}}]}},"castSpell":{"spellId":{"spellId":34074}}}}, - {"action":{"condition":{"cmp":{"op":"OpLt","lhs":{"currentManaPercent":{}},"rhs":{"const":{"val":"40%"}}}},"castSpell":{"spellId":{"itemId":20520}}}}, - {"action":{"condition":{"cmp":{"op":"OpLt","lhs":{"spellTimeToReady":{"spellId":{"spellId":61006}}},"rhs":{"const":{"val":"0.21s"}}}},"castSpell":{"spellId":{"spellId":61006}}}}, - {"action":{"condition":{"not":{"val":{"dotIsActive":{"spellId":{"spellId":49001}}}}},"castSpell":{"spellId":{"spellId":49001}}}}, - {"action":{"condition":{"not":{"val":{"dotIsActive":{"spellId":{"spellId":49067}}}}},"castSpell":{"spellId":{"spellId":49067}}}}, - {"action":{"condition":{"or":{"vals":[{"cmp":{"op":"OpLt","lhs":{"spellTimeToReady":{"spellId":{"spellId":53209}}},"rhs":{"const":{"val":"0.15s"}}}},{"spellCanCast":{"spellId":{"spellId":53209}}}]}},"castSpell":{"spellId":{"spellId":53209}}}}, - {"action":{"condition":{"or":{"vals":[{"cmp":{"op":"OpLt","lhs":{"spellTimeToReady":{"spellId":{"spellId":49050}}},"rhs":{"const":{"val":"0.15s"}}}},{"spellCanCast":{"spellId":{"spellId":49050}}}]}},"castSpell":{"spellId":{"spellId":49050}}}}, - {"action":{"castSpell":{"spellId":{"spellId":49052}}}}, - {"hide":true,"action":{"condition":{"or":{"vals":[{"cmp":{"op":"OpLt","lhs":{"spellTimeToReady":{"spellId":{"spellId":49045}}},"rhs":{"const":{"val":"0.2s"}}}},{"spellCanCast":{"spellId":{"spellId":49045}}}]}},"castSpell":{"spellId":{"spellId":49045}}}} - ] - }`), + rotation: APLRotation.fromJsonString(JSON.stringify(MmAdvApl)), }), }; @@ -191,26 +137,7 @@ export const ROTATION_PRESET_SV = { rotation: SavedRotation.create({ specRotationOptionsJson: HunterRotation.toJsonString(HunterRotation.create({ })), - rotation: APLRotation.fromJsonString(`{ - "type": "TypeAPL", - "prepullActions": [ - {"action":{"castSpell":{"spellId":{"otherId":"OtherActionPotion"}}},"doAtValue":{"const":{"val":"-1s"}}} - ], - "priorityList": [ - {"action":{"condition":{"cmp":{"op":"OpGt","lhs":{"currentTime":{}},"rhs":{"const":{"val":"10s"}}}},"autocastOtherCooldowns":{}}}, - {"action":{"condition":{"and":{"vals":[{"not":{"val":{"auraIsActive":{"auraId":{"spellId":34074}}}}},{"cmp":{"op":"OpLt","lhs":{"currentManaPercent":{}},"rhs":{"const":{"val":"10%"}}}}]}},"castSpell":{"spellId":{"spellId":34074}}}}, - {"action":{"condition":{"and":{"vals":[{"not":{"val":{"auraIsActive":{"auraId":{"spellId":61847}}}}},{"cmp":{"op":"OpGt","lhs":{"currentManaPercent":{}},"rhs":{"const":{"val":"30%"}}}}]}},"castSpell":{"spellId":{"spellId":61847}}}}, - {"action":{"castSpell":{"spellId":{"spellId":61006}}}}, - {"action":{"condition":{"not":{"val":{"dotIsActive":{"spellId":{"spellId":60053}}}}},"castSpell":{"spellId":{"spellId":60053}}}}, - {"action":{"condition":{"dotIsActive":{"spellId":{"spellId":60053}}},"castSpell":{"spellId":{"spellId":60052}}}}, - {"hide":true,"action":{"condition":{"not":{"val":{"dotIsActive":{"spellId":{"spellId":49067}}}}},"castSpell":{"spellId":{"tag":1,"spellId":49067}}}}, - {"action":{"condition":{"and":{"vals":[{"not":{"val":{"dotIsActive":{"spellId":{"spellId":49001}}}}},{"cmp":{"op":"OpGt","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"6s"}}}}]}},"castSpell":{"spellId":{"spellId":49001}}}}, - {"action":{"castSpell":{"spellId":{"spellId":63672}}}}, - {"action":{"castSpell":{"spellId":{"spellId":49050}}}}, - {"action":{"castSpell":{"spellId":{"spellId":49048}}}}, - {"action":{"castSpell":{"spellId":{"spellId":49052}}}} - ] - }`), + rotation: APLRotation.fromJsonString(JSON.stringify(SvApl)), }), }; @@ -219,30 +146,7 @@ export const ROTATION_PRESET_SV_ADVANCED = { rotation: SavedRotation.create({ specRotationOptionsJson: HunterRotation.toJsonString(HunterRotation.create({ })), - rotation: APLRotation.fromJsonString(`{ - "type": "TypeAPL", - "prepullActions": [ - {"action":{"castSpell":{"spellId":{"spellId":49067}}},"doAtValue":{"const":{"val":"-24s"}}}, - {"action":{"castSpell":{"spellId":{"spellId":61847}}},"doAtValue":{"const":{"val":"-20s"}}}, - {"action":{"castSpell":{"spellId":{"otherId":"OtherActionPotion"}}},"doAtValue":{"const":{"val":"-1.4s"}}}, - {"action":{"castSpell":{"spellId":{"spellId":49052}}},"doAtValue":{"const":{"val":"-1.4s"}}} - ], - "priorityList": [ - {"action":{"condition":{"cmp":{"op":"OpGt","lhs":{"currentTime":{}},"rhs":{"const":{"val":"1s"}}}},"autocastOtherCooldowns":{}}}, - {"action":{"condition":{"cmp":{"op":"OpLt","lhs":{"currentManaPercent":{}},"rhs":{"const":{"val":"40%"}}}},"castSpell":{"spellId":{"itemId":20520}}}}, - {"action":{"condition":{"and":{"vals":[{"not":{"val":{"auraIsActive":{"auraId":{"spellId":61847}}}}},{"cmp":{"op":"OpGt","lhs":{"currentManaPercent":{}},"rhs":{"const":{"val":"30%"}}}}]}},"castSpell":{"spellId":{"spellId":61847}}}}, - {"action":{"condition":{"and":{"vals":[{"not":{"val":{"auraIsActive":{"auraId":{"spellId":34074}}}}},{"cmp":{"op":"OpLt","lhs":{"currentManaPercent":{}},"rhs":{"const":{"val":"10%"}}}}]}},"castSpell":{"spellId":{"spellId":34074}}}}, - {"action":{"castSpell":{"spellId":{"spellId":61006}}}}, - {"action":{"condition":{"not":{"val":{"dotIsActive":{"spellId":{"spellId":60053}}}}},"castSpell":{"spellId":{"spellId":60053}}}}, - {"action":{"condition":{"dotIsActive":{"spellId":{"spellId":60053}}},"castSpell":{"spellId":{"spellId":60052}}}}, - {"action":{"condition":{"not":{"val":{"dotIsActive":{"spellId":{"spellId":49067}}}}},"castSpell":{"spellId":{"spellId":49067,"tag":1}}}}, - {"action":{"condition":{"or":{"vals":[{"cmp":{"op":"OpLt","lhs":{"spellTimeToReady":{"spellId":{"spellId":63672}}},"rhs":{"const":{"val":"0.2s"}}}},{"spellCanCast":{"spellId":{"spellId":63672}}}]}},"castSpell":{"spellId":{"spellId":63672}}}}, - {"action":{"condition":{"and":{"vals":[{"not":{"val":{"dotIsActive":{"spellId":{"spellId":49001}}}}},{"cmp":{"op":"OpGt","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"6s"}}}}]}},"castSpell":{"spellId":{"spellId":49001}}}}, - {"action":{"condition":{"or":{"vals":[{"cmp":{"op":"OpLt","lhs":{"spellTimeToReady":{"spellId":{"spellId":49048}}},"rhs":{"const":{"val":"0.2s"}}}},{"spellCanCast":{"spellId":{"spellId":49048}}}]}},"castSpell":{"spellId":{"spellId":49048}}}}, - {"hide":true,"action":{"castSpell":{"spellId":{"spellId":49048}}}}, - {"action":{"castSpell":{"spellId":{"spellId":49052}}}} - ] - }`), + rotation: APLRotation.fromJsonString(JSON.stringify(SvAdvApl)), }), }; @@ -251,20 +155,7 @@ export const ROTATION_PRESET_AOE = { rotation: SavedRotation.create({ specRotationOptionsJson: HunterRotation.toJsonString(HunterRotation.create({ })), - rotation: APLRotation.fromJsonString(`{ - "type": "TypeAPL", - "prepullActions": [ - {"action":{"castSpell":{"spellId":{"otherId":"OtherActionPotion"}}},"doAtValue":{"const":{"val":"-1s"}}} - ], - "priorityList": [ - {"action":{"condition":{"cmp":{"op":"OpGt","lhs":{"currentTime":{}},"rhs":{"const":{"val":"10s"}}}},"autocastOtherCooldowns":{}}}, - {"action":{"condition":{"and":{"vals":[{"not":{"val":{"auraIsActive":{"auraId":{"spellId":34074}}}}},{"cmp":{"op":"OpLt","lhs":{"currentManaPercent":{}},"rhs":{"const":{"val":"10%"}}}}]}},"castSpell":{"spellId":{"spellId":34074}}}}, - {"action":{"condition":{"and":{"vals":[{"not":{"val":{"auraIsActive":{"auraId":{"spellId":61847}}}}},{"cmp":{"op":"OpGt","lhs":{"currentManaPercent":{}},"rhs":{"const":{"val":"30%"}}}}]}},"castSpell":{"spellId":{"spellId":61847}}}}, - {"hide":true,"action":{"multidot":{"spellId":{"spellId":49001},"maxDots":3,"maxOverlap":{"const":{"val":"0ms"}}}}}, - {"action":{"condition":{"not":{"val":{"dotIsActive":{"spellId":{"spellId":49067}}}}},"castSpell":{"spellId":{"tag":1,"spellId":49067}}}}, - {"action":{"castSpell":{"spellId":{"spellId":58434}}}} - ] - }`), + rotation: APLRotation.fromJsonString(JSON.stringify(AoeApl)), }), }; diff --git a/ui/mage/apls/arcane.json b/ui/mage/apls/arcane.json new file mode 100644 index 0000000000..2e5fbb341d --- /dev/null +++ b/ui/mage/apls/arcane.json @@ -0,0 +1,18 @@ +{ + "type": "TypeAPL", + "prepullActions": [ + {"action":{"castSpell":{"spellId":{"spellId":55342}}},"doAtValue":{"const":{"val":"-2s"}}}, + {"action":{"castSpell":{"spellId":{"otherId":"OtherActionPotion"}}},"doAtValue":{"const":{"val":"-1s"}}} + ], + "priorityList": [ + {"action":{"autocastOtherCooldowns":{}}}, + {"action":{"condition":{"not":{"val":{"auraIsActive":{"auraId":{"spellId":12472}}}}},"castSpell":{"spellId":{"spellId":26297}}}}, + {"action":{"condition":{"not":{"val":{"auraIsActive":{"auraId":{"spellId":12472}}}}},"castSpell":{"spellId":{"spellId":54758}}}}, + {"action":{"condition":{"not":{"val":{"auraIsActive":{"auraId":{"spellId":12472}}}}},"castSpell":{"spellId":{"itemId":40211}}}}, + {"action":{"condition":{"cmp":{"op":"OpLt","lhs":{"auraNumStacks":{"auraId":{"spellId":36032}}},"rhs":{"const":{"val":"4"}}}},"castSpell":{"spellId":{"spellId":42897}}}}, + {"action":{"condition":{"auraIsActiveWithReactionTime":{"auraId":{"spellId":44401}}},"castSpell":{"spellId":{"spellId":42846}}}}, + {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"currentManaPercent":{}},"rhs":{"const":{"val":"25%"}}}},"castSpell":{"spellId":{"spellId":12051}}}}, + {"action":{"condition":{"cmp":{"op":"OpGt","lhs":{"currentManaPercent":{}},"rhs":{"const":{"val":"25%"}}}},"castSpell":{"spellId":{"spellId":42897}}}}, + {"action":{"castSpell":{"spellId":{"spellId":42846}}}} + ] +} \ No newline at end of file diff --git a/ui/mage/apls/arcane_aoe.json b/ui/mage/apls/arcane_aoe.json new file mode 100644 index 0000000000..a9650b99d1 --- /dev/null +++ b/ui/mage/apls/arcane_aoe.json @@ -0,0 +1,8 @@ +{ + "type": "TypeAPL", + "prepullActions": [], + "priorityList": [ + {"action":{"autocastOtherCooldowns":{}}}, + {"action":{"castSpell":{"spellId":{"spellId":42921}}}} + ] +} \ No newline at end of file diff --git a/ui/mage/apls/fire.json b/ui/mage/apls/fire.json new file mode 100644 index 0000000000..fce8240a61 --- /dev/null +++ b/ui/mage/apls/fire.json @@ -0,0 +1,16 @@ +{ + "type": "TypeAPL", + "prepullActions": [ + {"action":{"castSpell":{"spellId":{"spellId":55342}}},"doAtValue":{"const":{"val":"-2s"}}}, + {"action":{"castSpell":{"spellId":{"otherId":"OtherActionPotion"}}},"doAtValue":{"const":{"val":"-1s"}}} + ], + "priorityList": [ + {"action":{"autocastOtherCooldowns":{}}}, + {"action":{"condition":{"auraShouldRefresh":{"auraId":{"spellId":12873},"maxOverlap":{"const":{"val":"4s"}}}},"castSpell":{"spellId":{"spellId":42859}}}}, + {"action":{"condition":{"auraIsActiveWithReactionTime":{"auraId":{"spellId":44448}}},"castSpell":{"spellId":{"spellId":42891}}}}, + {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpGt","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"12s"}}}}]}},"multidot":{"spellId":{"spellId":55360},"maxDots":10,"maxOverlap":{"const":{"val":"0ms"}}}}}, + {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"remainingTime":{}},"rhs":{"spellCastTime":{"spellId":{"spellId":42859}}}}},"castSpell":{"spellId":{"spellId":42873}}}}, + {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"4s"}}}},"castSpell":{"spellId":{"spellId":42859}}}}, + {"action":{"castSpell":{"spellId":{"spellId":42833}}}} + ] +} \ No newline at end of file diff --git a/ui/mage/apls/fire_aoe.json b/ui/mage/apls/fire_aoe.json new file mode 100644 index 0000000000..3a44a6ab4b --- /dev/null +++ b/ui/mage/apls/fire_aoe.json @@ -0,0 +1,16 @@ +{ + "type": "TypeAPL", + "prepullActions": [], + "priorityList": [ + {"action":{"autocastOtherCooldowns":{}}}, + {"action":{"condition":{"cmp":{"op":"OpGe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"12s"}}}},"multidot":{"spellId":{"spellId":55360},"maxDots":10,"maxOverlap":{"const":{"val":"0ms"}}}}}, + {"action":{"condition":{"and":{"vals":[{"auraIsActive":{"auraId":{"spellId":54741}}},{"not":{"val":{"dotIsActive":{"spellId":{"spellId":42926,"tag":9}}}}}]}},"castSpell":{"spellId":{"spellId":42926,"tag":9}}}}, + {"action":{"condition":{"and":{"vals":[{"auraIsActive":{"auraId":{"spellId":54741}}},{"not":{"val":{"dotIsActive":{"spellId":{"spellId":42925,"tag":8}}}}}]}},"castSpell":{"spellId":{"spellId":42925,"tag":8}}}}, + {"action":{"condition":{"or":{"vals":[{"not":{"val":{"dotIsActive":{"spellId":{"spellId":42926,"tag":9}}}}},{"not":{"val":{"dotIsActive":{"spellId":{"spellId":42925,"tag":8}}}}}]}},"castSpell":{"spellId":{"spellId":42950}}}}, + {"action":{"condition":{"or":{"vals":[{"not":{"val":{"dotIsActive":{"spellId":{"spellId":42926,"tag":9}}}}},{"not":{"val":{"dotIsActive":{"spellId":{"spellId":42925,"tag":8}}}}}]}},"castSpell":{"spellId":{"spellId":42945}}}}, + {"action":{"condition":{"not":{"val":{"dotIsActive":{"spellId":{"spellId":42926,"tag":9}}}}},"castSpell":{"spellId":{"spellId":42926,"tag":9}}}}, + {"action":{"condition":{"not":{"val":{"dotIsActive":{"spellId":{"spellId":42925,"tag":8}}}}},"castSpell":{"spellId":{"spellId":42925,"tag":8}}}}, + {"action":{"condition":{"auraIsActiveWithReactionTime":{"auraId":{"spellId":44448}}},"castSpell":{"spellId":{"spellId":42891}}}}, + {"action":{"castSpell":{"spellId":{"spellId":42921}}}} + ] +} \ No newline at end of file diff --git a/ui/mage/apls/frost.json b/ui/mage/apls/frost.json new file mode 100644 index 0000000000..4e6976124f --- /dev/null +++ b/ui/mage/apls/frost.json @@ -0,0 +1,16 @@ +{ + "type": "TypeAPL", + "prepullActions": [ + {"action":{"castSpell":{"spellId":{"spellId":55342}}},"doAtValue":{"const":{"val":"-2s"}}}, + {"action":{"castSpell":{"spellId":{"otherId":"OtherActionPotion"}}},"doAtValue":{"const":{"val":"-1s"}}} + ], + "priorityList": [ + {"action":{"autocastOtherCooldowns":{}}}, + {"action":{"condition":{"not":{"val":{"auraIsActive":{"auraId":{"spellId":12472}}}}},"castSpell":{"spellId":{"spellId":26297}}}}, + {"action":{"condition":{"not":{"val":{"auraIsActive":{"auraId":{"spellId":12472}}}}},"castSpell":{"spellId":{"spellId":54758}}}}, + {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"currentManaPercent":{}},"rhs":{"const":{"val":"25%"}}}},"castSpell":{"spellId":{"spellId":12051}}}}, + {"action":{"condition":{"auraIsActive":{"auraId":{"spellId":44545}}},"castSpell":{"spellId":{"spellId":44572}}}}, + {"action":{"condition":{"auraIsActiveWithReactionTime":{"auraId":{"spellId":44549}}},"castSpell":{"spellId":{"spellId":47610}}}}, + {"action":{"castSpell":{"spellId":{"spellId":42842}}}} + ] +} \ No newline at end of file diff --git a/ui/mage/apls/frost_aoe.json b/ui/mage/apls/frost_aoe.json new file mode 100644 index 0000000000..4dcf3016e5 --- /dev/null +++ b/ui/mage/apls/frost_aoe.json @@ -0,0 +1,8 @@ +{ + "type": "TypeAPL", + "prepullActions": [], + "priorityList": [ + {"action":{"autocastOtherCooldowns":{}}}, + {"action":{"castSpell":{"spellId":{"spellId":42939}}}} + ] +} \ No newline at end of file diff --git a/ui/mage/apls/frostfire.json b/ui/mage/apls/frostfire.json new file mode 100644 index 0000000000..2f0d53bfa1 --- /dev/null +++ b/ui/mage/apls/frostfire.json @@ -0,0 +1,16 @@ +{ + "type": "TypeAPL", + "prepullActions": [ + {"action":{"castSpell":{"spellId":{"spellId":55342}}},"doAtValue":{"const":{"val":"-2s"}}}, + {"action":{"castSpell":{"spellId":{"otherId":"OtherActionPotion"}}},"doAtValue":{"const":{"val":"-1s"}}} + ], + "priorityList": [ + {"action":{"autocastOtherCooldowns":{}}}, + {"action":{"condition":{"auraShouldRefresh":{"auraId":{"spellId":12873},"maxOverlap":{"const":{"val":"4s"}}}},"castSpell":{"spellId":{"spellId":42859}}}}, + {"action":{"condition":{"auraIsActiveWithReactionTime":{"auraId":{"spellId":44448}}},"castSpell":{"spellId":{"spellId":42891}}}}, + {"action":{"condition":{"and":{"vals":[{"not":{"val":{"dotIsActive":{"spellId":{"spellId":55360}}}}},{"cmp":{"op":"OpGt","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"12s"}}}}]}},"castSpell":{"spellId":{"spellId":55360}}}}, + {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"remainingTime":{}},"rhs":{"spellCastTime":{"spellId":{"spellId":42859}}}}},"castSpell":{"spellId":{"spellId":42873}}}}, + {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"3.5s"}}}},"castSpell":{"spellId":{"spellId":42859}}}}, + {"action":{"castSpell":{"spellId":{"spellId":47610}}}} + ] +} \ No newline at end of file diff --git a/ui/mage/presets.ts b/ui/mage/presets.ts index 1e870c6763..db42152f2e 100644 --- a/ui/mage/presets.ts +++ b/ui/mage/presets.ts @@ -24,6 +24,14 @@ import { import * as Tooltips from '../core/constants/tooltips.js'; import { APLRotation } from '../core/proto/apl.js'; +import ArcaneApl from './apls/arcane.json'; +import FireApl from './apls/fire.json'; +import FrostApl from './apls/frost.json'; +import ArcaneAoeApl from './apls/arcane_aoe.json'; +import FireAoeApl from './apls/fire_aoe.json'; +import FrostAoeApl from './apls/frost_aoe.json'; +import FrostFireApl from './apls/frostfire.json'; + // Preset options for this spec. // Eventually we will import these values for the raid sim too, so its good to // keep them in a separate file. @@ -187,24 +195,7 @@ export const ARCANE_ROTATION_PRESET_DEFAULT = { name: 'Arcane', rotation: SavedRotation.create({ specRotationOptionsJson: MageRotation.toJsonString(DefaultArcaneRotation), - rotation: APLRotation.fromJsonString(`{ - "type": "TypeAPL", - "prepullActions": [ - {"action":{"castSpell":{"spellId":{"spellId":55342}}},"doAtValue":{"const":{"val":"-2s"}}}, - {"action":{"castSpell":{"spellId":{"otherId":"OtherActionPotion"}}},"doAtValue":{"const":{"val":"-1s"}}} - ], - "priorityList": [ - {"action":{"autocastOtherCooldowns":{}}}, - {"action":{"condition":{"not":{"val":{"auraIsActive":{"auraId":{"spellId":12472}}}}},"castSpell":{"spellId":{"spellId":26297}}}}, - {"action":{"condition":{"not":{"val":{"auraIsActive":{"auraId":{"spellId":12472}}}}},"castSpell":{"spellId":{"spellId":54758}}}}, - {"action":{"condition":{"not":{"val":{"auraIsActive":{"auraId":{"spellId":12472}}}}},"castSpell":{"spellId":{"itemId":40211}}}}, - {"action":{"condition":{"cmp":{"op":"OpLt","lhs":{"auraNumStacks":{"auraId":{"spellId":36032}}},"rhs":{"const":{"val":"4"}}}},"castSpell":{"spellId":{"spellId":42897}}}}, - {"action":{"condition":{"auraIsActiveWithReactionTime":{"auraId":{"spellId":44401}}},"castSpell":{"spellId":{"spellId":42846}}}}, - {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"currentManaPercent":{}},"rhs":{"const":{"val":"25%"}}}},"castSpell":{"spellId":{"spellId":12051}}}}, - {"action":{"condition":{"cmp":{"op":"OpGt","lhs":{"currentManaPercent":{}},"rhs":{"const":{"val":"25%"}}}},"castSpell":{"spellId":{"spellId":42897}}}}, - {"action":{"castSpell":{"spellId":{"spellId":42846}}}} - ] - }`) + rotation: APLRotation.fromJsonString(JSON.stringify(ArcaneApl)) }), } @@ -212,22 +203,7 @@ export const FIRE_ROTATION_PRESET_DEFAULT = { name: 'Fire', rotation: SavedRotation.create({ specRotationOptionsJson: MageRotation.toJsonString(DefaultFireRotation), - rotation: APLRotation.fromJsonString(`{ - "type": "TypeAPL", - "prepullActions": [ - {"action":{"castSpell":{"spellId":{"spellId":55342}}},"doAtValue":{"const":{"val":"-2s"}}}, - {"action":{"castSpell":{"spellId":{"otherId":"OtherActionPotion"}}},"doAtValue":{"const":{"val":"-1s"}}} - ], - "priorityList": [ - {"action":{"autocastOtherCooldowns":{}}}, - {"action":{"condition":{"auraShouldRefresh":{"auraId":{"spellId":12873},"maxOverlap":{"const":{"val":"4s"}}}},"castSpell":{"spellId":{"spellId":42859}}}}, - {"action":{"condition":{"auraIsActiveWithReactionTime":{"auraId":{"spellId":44448}}},"castSpell":{"spellId":{"spellId":42891}}}}, - {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpGt","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"12s"}}}}]}},"multidot":{"spellId":{"spellId":55360},"maxDots":10,"maxOverlap":{"const":{"val":"0ms"}}}}}, - {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"remainingTime":{}},"rhs":{"spellCastTime":{"spellId":{"spellId":42859}}}}},"castSpell":{"spellId":{"spellId":42873}}}}, - {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"4s"}}}},"castSpell":{"spellId":{"spellId":42859}}}}, - {"action":{"castSpell":{"spellId":{"spellId":42833}}}} - ] - }`), + rotation: APLRotation.fromJsonString(JSON.stringify(FireApl)), }), } @@ -235,22 +211,7 @@ export const FROSTFIRE_ROTATION_PRESET_DEFAULT = { name: 'Frostfire', rotation: SavedRotation.create({ specRotationOptionsJson: MageRotation.toJsonString(DefaultFFBRotation), - rotation: APLRotation.fromJsonString(`{ - "type": "TypeAPL", - "prepullActions": [ - {"action":{"castSpell":{"spellId":{"spellId":55342}}},"doAtValue":{"const":{"val":"-2s"}}}, - {"action":{"castSpell":{"spellId":{"otherId":"OtherActionPotion"}}},"doAtValue":{"const":{"val":"-1s"}}} - ], - "priorityList": [ - {"action":{"autocastOtherCooldowns":{}}}, - {"action":{"condition":{"auraShouldRefresh":{"auraId":{"spellId":12873},"maxOverlap":{"const":{"val":"4s"}}}},"castSpell":{"spellId":{"spellId":42859}}}}, - {"action":{"condition":{"auraIsActiveWithReactionTime":{"auraId":{"spellId":44448}}},"castSpell":{"spellId":{"spellId":42891}}}}, - {"action":{"condition":{"and":{"vals":[{"not":{"val":{"dotIsActive":{"spellId":{"spellId":55360}}}}},{"cmp":{"op":"OpGt","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"12s"}}}}]}},"castSpell":{"spellId":{"spellId":55360}}}}, - {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"remainingTime":{}},"rhs":{"spellCastTime":{"spellId":{"spellId":42859}}}}},"castSpell":{"spellId":{"spellId":42873}}}}, - {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"3.5s"}}}},"castSpell":{"spellId":{"spellId":42859}}}}, - {"action":{"castSpell":{"spellId":{"spellId":47610}}}} - ] - }`), + rotation: APLRotation.fromJsonString(JSON.stringify(FrostFireApl)), }), } @@ -258,22 +219,7 @@ export const FROST_ROTATION_PRESET_DEFAULT = { name: 'Frost', rotation: SavedRotation.create({ specRotationOptionsJson: MageRotation.toJsonString(DefaultFrostRotation), - rotation: APLRotation.fromJsonString(`{ - "type": "TypeAPL", - "prepullActions": [ - {"action":{"castSpell":{"spellId":{"spellId":55342}}},"doAtValue":{"const":{"val":"-2s"}}}, - {"action":{"castSpell":{"spellId":{"otherId":"OtherActionPotion"}}},"doAtValue":{"const":{"val":"-1s"}}} - ], - "priorityList": [ - {"action":{"autocastOtherCooldowns":{}}}, - {"action":{"condition":{"not":{"val":{"auraIsActive":{"auraId":{"spellId":12472}}}}},"castSpell":{"spellId":{"spellId":26297}}}}, - {"action":{"condition":{"not":{"val":{"auraIsActive":{"auraId":{"spellId":12472}}}}},"castSpell":{"spellId":{"spellId":54758}}}}, - {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"currentManaPercent":{}},"rhs":{"const":{"val":"25%"}}}},"castSpell":{"spellId":{"spellId":12051}}}}, - {"action":{"condition":{"auraIsActive":{"auraId":{"spellId":44545}}},"castSpell":{"spellId":{"spellId":44572}}}}, - {"action":{"condition":{"auraIsActiveWithReactionTime":{"auraId":{"spellId":44549}}},"castSpell":{"spellId":{"spellId":47610}}}}, - {"action":{"castSpell":{"spellId":{"spellId":42842}}}} - ] - }`), + rotation: APLRotation.fromJsonString(JSON.stringify(FrostApl)), }), } @@ -281,14 +227,7 @@ export const ARCANE_ROTATION_PRESET_AOE = { name: 'Arcane AOE', rotation: SavedRotation.create({ specRotationOptionsJson: MageRotation.toJsonString(DefaultFrostRotation), - rotation: APLRotation.fromJsonString(`{ - "type": "TypeAPL", - "prepullActions": [], - "priorityList": [ - {"action":{"autocastOtherCooldowns":{}}}, - {"action":{"castSpell":{"spellId":{"spellId":42921}}}} - ] - }`), + rotation: APLRotation.fromJsonString(JSON.stringify(ArcaneAoeApl)), }), } @@ -296,22 +235,7 @@ export const FIRE_ROTATION_PRESET_AOE = { name: 'Fire AOE', rotation: SavedRotation.create({ specRotationOptionsJson: MageRotation.toJsonString(DefaultFrostRotation), - rotation: APLRotation.fromJsonString(`{ - "type": "TypeAPL", - "prepullActions": [], - "priorityList": [ - {"action":{"autocastOtherCooldowns":{}}}, - {"action":{"condition":{"cmp":{"op":"OpGe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"12s"}}}},"multidot":{"spellId":{"spellId":55360},"maxDots":10,"maxOverlap":{"const":{"val":"0ms"}}}}}, - {"action":{"condition":{"and":{"vals":[{"auraIsActive":{"auraId":{"spellId":54741}}},{"not":{"val":{"dotIsActive":{"spellId":{"spellId":42926,"tag":9}}}}}]}},"castSpell":{"spellId":{"spellId":42926,"tag":9}}}}, - {"action":{"condition":{"and":{"vals":[{"auraIsActive":{"auraId":{"spellId":54741}}},{"not":{"val":{"dotIsActive":{"spellId":{"spellId":42925,"tag":8}}}}}]}},"castSpell":{"spellId":{"spellId":42925,"tag":8}}}}, - {"action":{"condition":{"or":{"vals":[{"not":{"val":{"dotIsActive":{"spellId":{"spellId":42926,"tag":9}}}}},{"not":{"val":{"dotIsActive":{"spellId":{"spellId":42925,"tag":8}}}}}]}},"castSpell":{"spellId":{"spellId":42950}}}}, - {"action":{"condition":{"or":{"vals":[{"not":{"val":{"dotIsActive":{"spellId":{"spellId":42926,"tag":9}}}}},{"not":{"val":{"dotIsActive":{"spellId":{"spellId":42925,"tag":8}}}}}]}},"castSpell":{"spellId":{"spellId":42945}}}}, - {"action":{"condition":{"not":{"val":{"dotIsActive":{"spellId":{"spellId":42926,"tag":9}}}}},"castSpell":{"spellId":{"spellId":42926,"tag":9}}}}, - {"action":{"condition":{"not":{"val":{"dotIsActive":{"spellId":{"spellId":42925,"tag":8}}}}},"castSpell":{"spellId":{"spellId":42925,"tag":8}}}}, - {"action":{"condition":{"auraIsActiveWithReactionTime":{"auraId":{"spellId":44448}}},"castSpell":{"spellId":{"spellId":42891}}}}, - {"action":{"castSpell":{"spellId":{"spellId":42921}}}} - ] - }`), + rotation: APLRotation.fromJsonString(JSON.stringify(FireAoeApl)), }), } @@ -319,14 +243,7 @@ export const FROST_ROTATION_PRESET_AOE = { name: 'Frost AOE', rotation: SavedRotation.create({ specRotationOptionsJson: MageRotation.toJsonString(DefaultFrostRotation), - rotation: APLRotation.fromJsonString(`{ - "type": "TypeAPL", - "prepullActions": [], - "priorityList": [ - {"action":{"autocastOtherCooldowns":{}}}, - {"action":{"castSpell":{"spellId":{"spellId":42939}}}} - ] - }`), + rotation: APLRotation.fromJsonString(JSON.stringify(FrostAoeApl)), }), } diff --git a/ui/protection_paladin/apls/default.json b/ui/protection_paladin/apls/default.json new file mode 100644 index 0000000000..f4b7ca7efa --- /dev/null +++ b/ui/protection_paladin/apls/default.json @@ -0,0 +1,19 @@ +{ + "type": "TypeAPL", + "prepullActions": [ + {"action":{"castSpell":{"spellId":{"spellId":48952}}},"doAtValue":{"const":{"val":"-3s"}}}, + {"action":{"castSpell":{"spellId":{"spellId":54428}}},"doAtValue":{"const":{"val":"-1500ms"}}}, + {"action":{"castSpell":{"spellId":{"otherId":"OtherActionPotion"}}},"doAtValue":{"const":{"val":"-1s"}}} + ], + "priorityList": [ + {"action":{"autocastOtherCooldowns":{}}}, + {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"spellTimeToReady":{"spellId":{"spellId":53595}}},"rhs":{"const":{"val":"3s"}}}},"castSpell":{"spellId":{"spellId":61411}}}}, + {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"spellTimeToReady":{"spellId":{"spellId":61411}}},"rhs":{"const":{"val":"3s"}}}},"castSpell":{"spellId":{"spellId":53595}}}}, + {"action":{"castSpell":{"spellId":{"spellId":48806}}}}, + {"action":{"condition":{"and":{"vals":[{"gcdIsReady":{}},{"not":{"val":{"spellIsReady":{"spellId":{"spellId":61411}}}}},{"not":{"val":{"spellIsReady":{"spellId":{"spellId":53595}}}}},{"cmp":{"op":"OpLe","lhs":{"min":{"vals":[{"spellTimeToReady":{"spellId":{"spellId":61411}}},{"spellTimeToReady":{"spellId":{"spellId":53595}}}]}},"rhs":{"const":{"val":"350ms"}}}}]}},"wait":{"duration":{"min":{"vals":[{"spellTimeToReady":{"spellId":{"spellId":61411}}},{"spellTimeToReady":{"spellId":{"spellId":53595}}}]}}}}}, + {"action":{"castSpell":{"spellId":{"spellId":48819}}}}, + {"action":{"castSpell":{"spellId":{"spellId":48952}}}}, + {"action":{"castSpell":{"spellId":{"spellId":53408}}}}, + {"action":{"condition":{"and":{"vals":[{"gcdIsReady":{}},{"not":{"val":{"spellIsReady":{"spellId":{"spellId":61411}}}}},{"not":{"val":{"spellIsReady":{"spellId":{"spellId":53595}}}}},{"not":{"val":{"spellIsReady":{"spellId":{"spellId":48819}}}}},{"not":{"val":{"spellIsReady":{"spellId":{"spellId":48952}}}}},{"not":{"val":{"spellIsReady":{"spellId":{"spellId":53408}}}}}]}},"wait":{"duration":{"min":{"vals":[{"spellTimeToReady":{"spellId":{"spellId":61411}}},{"spellTimeToReady":{"spellId":{"spellId":53595}}},{"spellTimeToReady":{"spellId":{"spellId":48819}}},{"spellTimeToReady":{"spellId":{"spellId":48952}}},{"spellTimeToReady":{"spellId":{"spellId":53408}}}]}}}}} + ] +} \ No newline at end of file diff --git a/ui/protection_paladin/presets.ts b/ui/protection_paladin/presets.ts index faa3eb7b6d..eeb9bbc377 100644 --- a/ui/protection_paladin/presets.ts +++ b/ui/protection_paladin/presets.ts @@ -21,6 +21,8 @@ import { import * as Tooltips from '../core/constants/tooltips.js'; +import DefaultApl from './apls/default.json'; + // Preset options for this spec. // Eventually we will import these values for the raid sim too, so its good to // keep them in a separate file. @@ -67,25 +69,7 @@ export const ROTATION_DEFAULT = { rotation: SavedRotation.create({ specRotationOptionsJson: ProtectionPaladinRotation.toJsonString(ProtectionPaladinRotation.create({ })), - rotation: APLRotation.fromJsonString(`{ - "type": "TypeAPL", - "prepullActions": [ - {"action":{"castSpell":{"spellId":{"spellId":48952}}},"doAtValue":{"const":{"val":"-3s"}}}, - {"action":{"castSpell":{"spellId":{"spellId":54428}}},"doAtValue":{"const":{"val":"-1500ms"}}}, - {"action":{"castSpell":{"spellId":{"otherId":"OtherActionPotion"}}},"doAtValue":{"const":{"val":"-1s"}}} - ], - "priorityList": [ - {"action":{"autocastOtherCooldowns":{}}}, - {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"spellTimeToReady":{"spellId":{"spellId":53595}}},"rhs":{"const":{"val":"3s"}}}},"castSpell":{"spellId":{"spellId":61411}}}}, - {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"spellTimeToReady":{"spellId":{"spellId":61411}}},"rhs":{"const":{"val":"3s"}}}},"castSpell":{"spellId":{"spellId":53595}}}}, - {"action":{"castSpell":{"spellId":{"spellId":48806}}}}, - {"action":{"condition":{"and":{"vals":[{"gcdIsReady":{}},{"not":{"val":{"spellIsReady":{"spellId":{"spellId":61411}}}}},{"not":{"val":{"spellIsReady":{"spellId":{"spellId":53595}}}}},{"cmp":{"op":"OpLe","lhs":{"min":{"vals":[{"spellTimeToReady":{"spellId":{"spellId":61411}}},{"spellTimeToReady":{"spellId":{"spellId":53595}}}]}},"rhs":{"const":{"val":"350ms"}}}}]}},"wait":{"duration":{"min":{"vals":[{"spellTimeToReady":{"spellId":{"spellId":61411}}},{"spellTimeToReady":{"spellId":{"spellId":53595}}}]}}}}}, - {"action":{"castSpell":{"spellId":{"spellId":48819}}}}, - {"action":{"castSpell":{"spellId":{"spellId":48952}}}}, - {"action":{"castSpell":{"spellId":{"spellId":53408}}}}, - {"action":{"condition":{"and":{"vals":[{"gcdIsReady":{}},{"not":{"val":{"spellIsReady":{"spellId":{"spellId":61411}}}}},{"not":{"val":{"spellIsReady":{"spellId":{"spellId":53595}}}}},{"not":{"val":{"spellIsReady":{"spellId":{"spellId":48819}}}}},{"not":{"val":{"spellIsReady":{"spellId":{"spellId":48952}}}}},{"not":{"val":{"spellIsReady":{"spellId":{"spellId":53408}}}}}]}},"wait":{"duration":{"min":{"vals":[{"spellTimeToReady":{"spellId":{"spellId":61411}}},{"spellTimeToReady":{"spellId":{"spellId":53595}}},{"spellTimeToReady":{"spellId":{"spellId":48819}}},{"spellTimeToReady":{"spellId":{"spellId":48952}}},{"spellTimeToReady":{"spellId":{"spellId":53408}}}]}}}}} - ] - }`), + rotation: APLRotation.fromJsonString(JSON.stringify(DefaultApl)), }), }; diff --git a/ui/protection_warrior/apls/default.json b/ui/protection_warrior/apls/default.json new file mode 100644 index 0000000000..3e0f9d37bd --- /dev/null +++ b/ui/protection_warrior/apls/default.json @@ -0,0 +1,17 @@ +{ + "type": "TypeAPL", + "prepullActions": [ + {"action":{"castSpell":{"spellId":{"spellId":47440}}},"doAtValue":{"const":{"val":"-10s"}}}, + {"action":{"castSpell":{"spellId":{"otherId":"OtherActionPotion"}}},"doAtValue":{"const":{"val":"-1s"}}} + ], + "priorityList": [ + {"action":{"condition":{"cmp":{"op":"OpGe","lhs":{"currentRage":{}},"rhs":{"const":{"val":"30"}}}},"castSpell":{"spellId":{"tag":1,"spellId":47450}}}}, + {"action":{"autocastOtherCooldowns":{}}}, + {"action":{"castSpell":{"spellId":{"spellId":47488}}}}, + {"action":{"castSpell":{"spellId":{"spellId":57823}}}}, + {"action":{"condition":{"auraShouldRefresh":{"sourceUnit":{"type":"Self"},"auraId":{"spellId":47440},"maxOverlap":{"const":{"val":"3s"}}}},"castSpell":{"spellId":{"spellId":47440}}}}, + {"action":{"condition":{"auraShouldRefresh":{"auraId":{"spellId":47502},"maxOverlap":{"const":{"val":"2s"}}}},"castSpell":{"spellId":{"spellId":47502}}}}, + {"action":{"condition":{"auraShouldRefresh":{"auraId":{"spellId":47437},"maxOverlap":{"const":{"val":"2s"}}}},"castSpell":{"spellId":{"spellId":25203}}}}, + {"action":{"castSpell":{"spellId":{"spellId":47498}}}} + ] +} \ No newline at end of file diff --git a/ui/protection_warrior/presets.ts b/ui/protection_warrior/presets.ts index 73ed540bc8..dd18331257 100644 --- a/ui/protection_warrior/presets.ts +++ b/ui/protection_warrior/presets.ts @@ -20,6 +20,8 @@ import { import * as Tooltips from '../core/constants/tooltips.js'; +import DefaultApl from './apls/default.json'; + // Preset options for this spec. // Eventually we will import these values for the raid sim too, so its good to // keep them in a separate file. @@ -81,23 +83,7 @@ export const ROTATION_DEFAULT = { rotation: SavedRotation.create({ specRotationOptionsJson: ProtectionWarriorRotation.toJsonString(ProtectionWarriorRotation.create({ })), - rotation: APLRotation.fromJsonString(`{ - "type": "TypeAPL", - "prepullActions": [ - {"action":{"castSpell":{"spellId":{"spellId":47440}}},"doAtValue":{"const":{"val":"-10s"}}}, - {"action":{"castSpell":{"spellId":{"otherId":"OtherActionPotion"}}},"doAtValue":{"const":{"val":"-1s"}}} - ], - "priorityList": [ - {"action":{"condition":{"cmp":{"op":"OpGe","lhs":{"currentRage":{}},"rhs":{"const":{"val":"30"}}}},"castSpell":{"spellId":{"tag":1,"spellId":47450}}}}, - {"action":{"autocastOtherCooldowns":{}}}, - {"action":{"castSpell":{"spellId":{"spellId":47488}}}}, - {"action":{"castSpell":{"spellId":{"spellId":57823}}}}, - {"action":{"condition":{"auraShouldRefresh":{"sourceUnit":{"type":"Self"},"auraId":{"spellId":47440},"maxOverlap":{"const":{"val":"3s"}}}},"castSpell":{"spellId":{"spellId":47440}}}}, - {"action":{"condition":{"auraShouldRefresh":{"auraId":{"spellId":47502},"maxOverlap":{"const":{"val":"2s"}}}},"castSpell":{"spellId":{"spellId":47502}}}}, - {"action":{"condition":{"auraShouldRefresh":{"auraId":{"spellId":47437},"maxOverlap":{"const":{"val":"2s"}}}},"castSpell":{"spellId":{"spellId":25203}}}}, - {"action":{"castSpell":{"spellId":{"spellId":47498}}}} - ] - }`), + rotation: APLRotation.fromJsonString(JSON.stringify(DefaultApl)), }), }; diff --git a/ui/retribution_paladin/apls/default.json b/ui/retribution_paladin/apls/default.json new file mode 100644 index 0000000000..1429e0b144 --- /dev/null +++ b/ui/retribution_paladin/apls/default.json @@ -0,0 +1,16 @@ +{ + "type": "TypeAPL", + "prepullActions": [ + {"action":{"castSpell":{"spellId":{"otherId":"OtherActionPotion"}}},"doAtValue":{"const":{"val":"-1s"}}} + ], + "priorityList": [ + {"action":{"autocastOtherCooldowns":{}}}, + {"action":{"castSpell":{"spellId":{"spellId":67485}}}}, + {"action":{"castSpell":{"spellId":{"spellId":48806}}}}, + {"action":{"castSpell":{"spellId":{"spellId":53408}}}}, + {"action":{"castSpell":{"spellId":{"spellId":35395}}}}, + {"action":{"castSpell":{"spellId":{"spellId":53385}}}}, + {"action":{"condition":{"auraIsActive":{"auraId":{"spellId":53488}}},"castSpell":{"spellId":{"spellId":48801}}}}, + {"action":{"condition":{"cmp":{"op":"OpGt","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"4s"}}}},"castSpell":{"spellId":{"spellId":48819}}}} + ] + } \ No newline at end of file diff --git a/ui/retribution_paladin/presets.ts b/ui/retribution_paladin/presets.ts index 46ab786b0d..bb22a2e3cf 100644 --- a/ui/retribution_paladin/presets.ts +++ b/ui/retribution_paladin/presets.ts @@ -23,6 +23,8 @@ import { import * as Tooltips from '../core/constants/tooltips.js'; +import DefaultApl from './apls/default.json'; + // Preset options for this spec. // Eventually we will import these values for the raid sim too, so its good to // keep them in a separate file. @@ -265,21 +267,6 @@ export const ROTATION_PRESET_DEFAULT = { name: 'Default', rotation: SavedRotation.create({ specRotationOptionsJson: RetributionPaladinRotation.toJsonString(DefaultRotation), - rotation: APLRotation.fromJsonString(`{ - "type": "TypeAPL", - "prepullActions": [ - {"action":{"castSpell":{"spellId":{"otherId":"OtherActionPotion"}}},"doAtValue":{"const":{"val":"-1s"}}} - ], - "priorityList": [ - {"action":{"autocastOtherCooldowns":{}}}, - {"action":{"castSpell":{"spellId":{"spellId":67485}}}}, - {"action":{"castSpell":{"spellId":{"spellId":48806}}}}, - {"action":{"castSpell":{"spellId":{"spellId":53408}}}}, - {"action":{"castSpell":{"spellId":{"spellId":35395}}}}, - {"action":{"castSpell":{"spellId":{"spellId":53385}}}}, - {"action":{"condition":{"auraIsActive":{"auraId":{"spellId":53488}}},"castSpell":{"spellId":{"spellId":48801}}}}, - {"action":{"condition":{"cmp":{"op":"OpGt","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"4s"}}}},"castSpell":{"spellId":{"spellId":48819}}}} - ] - }`), + rotation: APLRotation.fromJsonString(JSON.stringify(DefaultApl)), }), }; \ No newline at end of file diff --git a/ui/shadow_priest/apls/default.json b/ui/shadow_priest/apls/default.json new file mode 100644 index 0000000000..eb68957ac8 --- /dev/null +++ b/ui/shadow_priest/apls/default.json @@ -0,0 +1,23 @@ +{ + "type": "TypeAPL", + "prepullActions": [ + {"action":{"castSpell":{"spellId":{"otherId":"OtherActionPotion"}}},"doAtValue":{"const":{"val":"-1s"}}}, + {"action":{"castSpell":{"spellId":{"spellId":48160}}},"doAtValue":{"const":{"val":"-0.97s"}}} + ], + "priorityList": [ + {"action":{"condition":{"cmp":{"op":"OpGe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"0s"}}}},"castSpell":{"spellId":{"spellId":34433}}}}, + {"action":{"condition":{"cmp":{"op":"OpGe","lhs":{"currentTime":{}},"rhs":{"const":{"val":"1s"}}}},"autocastOtherCooldowns":{}}}, + {"action":{"condition":{"cmp":{"op":"OpGe","lhs":{"currentTime":{}},"rhs":{"const":{"val":"61s"}}}},"castSpell":{"spellId":{"otherId":"OtherActionPotion"}}}}, + {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"1.75s"}}}},"castSpell":{"spellId":{"spellId":48300}}}}, + {"action":{"condition":{"and":{"vals":[{"not":{"val":{"dotIsActive":{"spellId":{"spellId":48125}}}}},{"or":{"vals":[{"and":{"vals":[{"cmp":{"op":"OpEq","lhs":{"const":{"val":"5"}},"rhs":{"auraNumStacks":{"auraId":{"spellId":15258}}}}},{"cmp":{"op":"OpGe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"75s"}}}}]}},{"and":{"vals":[{"cmp":{"op":"OpLe","lhs":{"const":{"val":"3"}},"rhs":{"auraNumStacks":{"auraId":{"spellId":15258}}}}},{"cmp":{"op":"OpLt","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"75s"}}}}]}}]}}]}},"castSpell":{"spellId":{"spellId":48125}}}}, + {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpLe","lhs":{"dotRemainingTime":{"spellId":{"spellId":48160}}},"rhs":{"spellCastTime":{"spellId":{"spellId":48160}}}}},{"cmp":{"op":"OpGe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"3s"}}}}]}},"castSpell":{"spellId":{"spellId":48160}}}}, + {"action":{"condition":{"not":{"val":{"dotIsActive":{"spellId":{"spellId":48300}}}}},"castSpell":{"spellId":{"spellId":48300}}}}, + {"hide":true,"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpGe","lhs":{"spellCastTime":{"spellId":{"spellId":48127}}},"rhs":{"const":{"val":"750ms"}}}},{"cmp":{"op":"OpLe","lhs":{"auraRemainingTime":{"auraId":{"spellId":57669}}},"rhs":{"const":{"val":"5s"}}}}]}},"castSpell":{"spellId":{"spellId":48127}}}}, + {"hide":true,"action":{"condition":{"cmp":{"op":"OpGe","lhs":{"spellCastTime":{"spellId":{"spellId":48127}}},"rhs":{"const":{"val":"750ms"}}}},"castSpell":{"spellId":{"spellId":48127}}}}, + {"action":{"condition":{"cmp":{"op":"OpEq","lhs":{"auraNumStacks":{"auraId":{"spellId":15258}}},"rhs":{"const":{"val":"5"}}}},"strictSequence":{"actions":[{"castSpell":{"spellId":{"spellId":14751}}},{"castSpell":{"spellId":{"spellId":48156}}}]}}}, + {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpLe","lhs":{"dotRemainingTime":{"spellId":{"spellId":48300}}},"rhs":{"const":{"val":"200ms"}}}}]}},"wait":{"duration":{"dotRemainingTime":{"spellId":{"spellId":48300}}}}}}, + {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpLe","lhs":{"dotRemainingTime":{"spellId":{"spellId":48160}}},"rhs":{"math":{"op":"OpAdd","lhs":{"spellCastTime":{"spellId":{"spellId":48160}}},"rhs":{"channelClipDelay":{}}}}}},{"dotIsActive":{"spellId":{"spellId":48160}}},{"spellIsChanneling":{"spellId":{"spellId":48156}}}]}},"wait":{"duration":{"math":{"op":"OpSub","lhs":{"dotRemainingTime":{"spellId":{"spellId":48160}}},"rhs":{"spellCastTime":{"spellId":{"spellId":48160}}}}}}}}, + {"action":{"channelSpell":{"spellId":{"spellId":48156},"interruptIf":{"cmp":{"op":"OpLe","lhs":{"gcdTimeToReady":{}},"rhs":{"channelClipDelay":{}}}}}}}, + {"action":{"castSpell":{"spellId":{"spellId":47585}}}} + ] +} \ No newline at end of file diff --git a/ui/shadow_priest/presets.ts b/ui/shadow_priest/presets.ts index b8d1160c13..02f6c81f38 100644 --- a/ui/shadow_priest/presets.ts +++ b/ui/shadow_priest/presets.ts @@ -22,6 +22,7 @@ import { import * as Tooltips from '../core/constants/tooltips.js'; +import DefaultApl from './apls/default.json' // Preset options for this spec. // Eventually we will import these values for the raid sim too, so its good to @@ -189,32 +190,11 @@ export const P3_PRESET = { ] }`), }; + export const ROTATION_PRESET_DEFAULT = { name: 'Default', rotation: SavedRotation.create({ specRotationOptionsJson: Rotation.toJsonString(Rotation.create()), - rotation: APLRotation.fromJsonString(`{ - "type": "TypeAPL", - "prepullActions": [ - {"action":{"castSpell":{"spellId":{"otherId":"OtherActionPotion"}}},"doAtValue":{"const":{"val":"-1s"}}}, - {"action":{"castSpell":{"spellId":{"spellId":48160}}},"doAtValue":{"const":{"val":"-0.97s"}}} - ], - "priorityList": [ - {"action":{"condition":{"cmp":{"op":"OpGe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"0s"}}}},"castSpell":{"spellId":{"spellId":34433}}}}, - {"action":{"condition":{"cmp":{"op":"OpGe","lhs":{"currentTime":{}},"rhs":{"const":{"val":"1s"}}}},"autocastOtherCooldowns":{}}}, - {"action":{"condition":{"cmp":{"op":"OpGe","lhs":{"currentTime":{}},"rhs":{"const":{"val":"61s"}}}},"castSpell":{"spellId":{"otherId":"OtherActionPotion"}}}}, - {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"1.75s"}}}},"castSpell":{"spellId":{"spellId":48300}}}}, - {"action":{"condition":{"and":{"vals":[{"not":{"val":{"dotIsActive":{"spellId":{"spellId":48125}}}}},{"or":{"vals":[{"and":{"vals":[{"cmp":{"op":"OpEq","lhs":{"const":{"val":"5"}},"rhs":{"auraNumStacks":{"auraId":{"spellId":15258}}}}},{"cmp":{"op":"OpGe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"75s"}}}}]}},{"and":{"vals":[{"cmp":{"op":"OpLe","lhs":{"const":{"val":"3"}},"rhs":{"auraNumStacks":{"auraId":{"spellId":15258}}}}},{"cmp":{"op":"OpLt","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"75s"}}}}]}}]}}]}},"castSpell":{"spellId":{"spellId":48125}}}}, - {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpLe","lhs":{"dotRemainingTime":{"spellId":{"spellId":48160}}},"rhs":{"spellCastTime":{"spellId":{"spellId":48160}}}}},{"cmp":{"op":"OpGe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"3s"}}}}]}},"castSpell":{"spellId":{"spellId":48160}}}}, - {"action":{"condition":{"not":{"val":{"dotIsActive":{"spellId":{"spellId":48300}}}}},"castSpell":{"spellId":{"spellId":48300}}}}, - {"hide":true,"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpGe","lhs":{"spellCastTime":{"spellId":{"spellId":48127}}},"rhs":{"const":{"val":"750ms"}}}},{"cmp":{"op":"OpLe","lhs":{"auraRemainingTime":{"auraId":{"spellId":57669}}},"rhs":{"const":{"val":"5s"}}}}]}},"castSpell":{"spellId":{"spellId":48127}}}}, - {"hide":true,"action":{"condition":{"cmp":{"op":"OpGe","lhs":{"spellCastTime":{"spellId":{"spellId":48127}}},"rhs":{"const":{"val":"750ms"}}}},"castSpell":{"spellId":{"spellId":48127}}}}, - {"action":{"condition":{"cmp":{"op":"OpEq","lhs":{"auraNumStacks":{"auraId":{"spellId":15258}}},"rhs":{"const":{"val":"5"}}}},"strictSequence":{"actions":[{"castSpell":{"spellId":{"spellId":14751}}},{"castSpell":{"spellId":{"spellId":48156}}}]}}}, - {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpLe","lhs":{"dotRemainingTime":{"spellId":{"spellId":48300}}},"rhs":{"const":{"val":"200ms"}}}}]}},"wait":{"duration":{"dotRemainingTime":{"spellId":{"spellId":48300}}}}}}, - {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpLe","lhs":{"dotRemainingTime":{"spellId":{"spellId":48160}}},"rhs":{"math":{"op":"OpAdd","lhs":{"spellCastTime":{"spellId":{"spellId":48160}}},"rhs":{"channelClipDelay":{}}}}}},{"dotIsActive":{"spellId":{"spellId":48160}}},{"spellIsChanneling":{"spellId":{"spellId":48156}}}]}},"wait":{"duration":{"math":{"op":"OpSub","lhs":{"dotRemainingTime":{"spellId":{"spellId":48160}}},"rhs":{"spellCastTime":{"spellId":{"spellId":48160}}}}}}}}, - {"action":{"channelSpell":{"spellId":{"spellId":48156},"interruptIf":{"cmp":{"op":"OpLe","lhs":{"gcdTimeToReady":{}},"rhs":{"channelClipDelay":{}}}}}}}, - {"action":{"castSpell":{"spellId":{"spellId":47585}}}} - ] - }`), + rotation: APLRotation.fromJsonString(JSON.stringify(DefaultApl)), }), }; \ No newline at end of file diff --git a/ui/smite_priest/apls/default.json b/ui/smite_priest/apls/default.json new file mode 100644 index 0000000000..9bf0779903 --- /dev/null +++ b/ui/smite_priest/apls/default.json @@ -0,0 +1,21 @@ +{ + "type": "TypeAPL", + "prepullActions": [ + {"action":{"castSpell":{"spellId":{"otherId":"OtherActionPotion"}}},"doAtValue":{"const":{"val":"-1s"}}} + ], + "priorityList": [ + {"action":{"autocastOtherCooldowns":{}}}, + {"action":{"condition":{"and":{"vals":[{"dotIsActive":{"spellId":{"spellId":48135}}},{"cmp":{"op":"OpLe","lhs":{"spellCastTime":{"spellId":{"spellId":48123}}},"rhs":{"dotRemainingTime":{"spellId":{"spellId":48135}}}}}]}},"castSpell":{"spellId":{"spellId":14751}}}}, + {"action":{"condition":{"and":{"vals":[{"dotIsActive":{"spellId":{"spellId":48135}}},{"cmp":{"op":"OpLe","lhs":{"spellCastTime":{"spellId":{"spellId":48123}}},"rhs":{"dotRemainingTime":{"spellId":{"spellId":48135}}}}}]}},"castSpell":{"spellId":{"spellId":48123}}}}, + {"action":{"condition":{"not":{"val":{"dotIsActive":{"spellId":{"spellId":48300}}}}},"castSpell":{"spellId":{"spellId":48300}}}}, + {"action":{"condition":{"not":{"val":{"dotIsActive":{"spellId":{"spellId":48125}}}}},"castSpell":{"spellId":{"spellId":48125}}}}, + {"action":{"castSpell":{"spellId":{"spellId":48135}}}}, + {"action":{"condition":{"and":{"vals":[{"not":{"val":{"spellIsReady":{"spellId":{"spellId":48135}}}}},{"cmp":{"op":"OpLe","lhs":{"spellTimeToReady":{"spellId":{"spellId":48135}}},"rhs":{"const":{"val":"50ms"}}}}]}},"wait":{"duration":{"spellTimeToReady":{"spellId":{"spellId":48135}}}}}}, + {"hide":true,"action":{"condition":{"auraIsActive":{"auraId":{"spellId":59000}}},"castSpell":{"spellId":{"spellId":48123}}}}, + {"hide":true,"action":{"castSpell":{"spellId":{"spellId":53007}}}}, + {"hide":true,"action":{"castSpell":{"spellId":{"spellId":48158}}}}, + {"hide":true,"action":{"castSpell":{"spellId":{"spellId":48127}}}}, + {"hide":true,"action":{"castSpell":{"spellId":{"tag":3,"spellId":48156}}}}, + {"action":{"castSpell":{"spellId":{"spellId":48123}}}} + ] +} \ No newline at end of file diff --git a/ui/smite_priest/presets.ts b/ui/smite_priest/presets.ts index 026710063e..fb90b22957 100644 --- a/ui/smite_priest/presets.ts +++ b/ui/smite_priest/presets.ts @@ -21,6 +21,8 @@ import { import * as Tooltips from '../core/constants/tooltips.js'; +import DefaultApl from './apls/default.json' + // Preset options for this spec. // Eventually we will import these values for the raid sim too, so its good to // keep them in a separate file. @@ -57,27 +59,7 @@ export const ROTATION_PRESET_APL = { name: 'APL', rotation: SavedRotation.create({ specRotationOptionsJson: Rotation.toJsonString(Rotation.create()), - rotation: APLRotation.fromJsonString(`{ - "type": "TypeAPL", - "prepullActions": [ - {"action":{"castSpell":{"spellId":{"otherId":"OtherActionPotion"}}},"doAtValue":{"const":{"val":"-1s"}}} - ], - "priorityList": [ - {"action":{"autocastOtherCooldowns":{}}}, - {"action":{"condition":{"and":{"vals":[{"dotIsActive":{"spellId":{"spellId":48135}}},{"cmp":{"op":"OpLe","lhs":{"spellCastTime":{"spellId":{"spellId":48123}}},"rhs":{"dotRemainingTime":{"spellId":{"spellId":48135}}}}}]}},"castSpell":{"spellId":{"spellId":14751}}}}, - {"action":{"condition":{"and":{"vals":[{"dotIsActive":{"spellId":{"spellId":48135}}},{"cmp":{"op":"OpLe","lhs":{"spellCastTime":{"spellId":{"spellId":48123}}},"rhs":{"dotRemainingTime":{"spellId":{"spellId":48135}}}}}]}},"castSpell":{"spellId":{"spellId":48123}}}}, - {"action":{"condition":{"not":{"val":{"dotIsActive":{"spellId":{"spellId":48300}}}}},"castSpell":{"spellId":{"spellId":48300}}}}, - {"action":{"condition":{"not":{"val":{"dotIsActive":{"spellId":{"spellId":48125}}}}},"castSpell":{"spellId":{"spellId":48125}}}}, - {"action":{"castSpell":{"spellId":{"spellId":48135}}}}, - {"action":{"condition":{"and":{"vals":[{"not":{"val":{"spellIsReady":{"spellId":{"spellId":48135}}}}},{"cmp":{"op":"OpLe","lhs":{"spellTimeToReady":{"spellId":{"spellId":48135}}},"rhs":{"const":{"val":"50ms"}}}}]}},"wait":{"duration":{"spellTimeToReady":{"spellId":{"spellId":48135}}}}}}, - {"hide":true,"action":{"condition":{"auraIsActive":{"auraId":{"spellId":59000}}},"castSpell":{"spellId":{"spellId":48123}}}}, - {"hide":true,"action":{"castSpell":{"spellId":{"spellId":53007}}}}, - {"hide":true,"action":{"castSpell":{"spellId":{"spellId":48158}}}}, - {"hide":true,"action":{"castSpell":{"spellId":{"spellId":48127}}}}, - {"hide":true,"action":{"castSpell":{"spellId":{"tag":3,"spellId":48156}}}}, - {"action":{"castSpell":{"spellId":{"spellId":48123}}}} - ] - }`), + rotation: APLRotation.fromJsonString(JSON.stringify(DefaultApl)), }), }; diff --git a/ui/tank_deathknight/apls/blood_aggro.json b/ui/tank_deathknight/apls/blood_aggro.json new file mode 100644 index 0000000000..6aed64d53b --- /dev/null +++ b/ui/tank_deathknight/apls/blood_aggro.json @@ -0,0 +1,24 @@ +{ + "type": "TypeAPL", + "prepullActions": [ + {"action":{"castSpell":{"spellId":{"spellId":48263}}},"doAtValue":{"const":{"val":"-10s"}}}, + {"action":{"castSpell":{"spellId":{"spellId":42650}}},"doAtValue":{"const":{"val":"-6s"}}} + ], + "priorityList": [ + {"action":{"autocastOtherCooldowns":{}}}, + {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpLe","lhs":{"currentHealthPercent":{}},"rhs":{"const":{"val":"40%"}}}},{"not":{"val":{"auraIsActive":{"auraId":{"spellId":55233}}}}}]}},"castSpell":{"spellId":{"spellId":48792}}}}, + {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpLe","lhs":{"currentHealthPercent":{}},"rhs":{"const":{"val":"40%"}}}},{"not":{"val":{"auraIsActive":{"auraId":{"spellId":48792}}}}}]}},"castSpell":{"spellId":{"spellId":55233}}}}, + {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"currentHealthPercent":{}},"rhs":{"const":{"val":"60%"}}}},"castSpell":{"spellId":{"spellId":48707}}}}, + {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"currentHealthPercent":{}},"rhs":{"const":{"val":"60%"}}}},"castSpell":{"spellId":{"spellId":48743}}}}, + {"action":{"condition":{"or":{"vals":[{"not":{"val":{"spellIsReady":{"spellId":{"spellId":49028}}}}},{"cmp":{"op":"OpGe","lhs":{"currentRunicPower":{}},"rhs":{"const":{"val":"80"}}}}]}},"castSpell":{"spellId":{"spellId":56815}}}}, + {"action":{"condition":{"not":{"val":{"dotIsActive":{"spellId":{"spellId":55095}}}}},"castSpell":{"spellId":{"spellId":59131}}}}, + {"action":{"condition":{"not":{"val":{"dotIsActive":{"spellId":{"spellId":55078}}}}},"castSpell":{"spellId":{"tag":1,"spellId":49921}}}}, + {"action":{"castSpell":{"spellId":{"spellId":49016}}}}, + {"action":{"castSpell":{"spellId":{"spellId":49028}}}}, + {"action":{"castSpell":{"spellId":{"tag":1,"spellId":55262}}}}, + {"action":{"castSpell":{"spellId":{"tag":1,"spellId":49924}}}}, + {"action":{"castSpell":{"spellId":{"spellId":46584}}}}, + {"action":{"castSpell":{"spellId":{"spellId":47568}}}}, + {"action":{"condition":{"cmp":{"op":"OpGe","lhs":{"currentRunicPower":{}},"rhs":{"const":{"val":"80"}}}},"castSpell":{"spellId":{"spellId":49895}}}} + ] +} \ No newline at end of file diff --git a/ui/tank_deathknight/apls/blood_icy_touch.json b/ui/tank_deathknight/apls/blood_icy_touch.json new file mode 100644 index 0000000000..4440dc48ea --- /dev/null +++ b/ui/tank_deathknight/apls/blood_icy_touch.json @@ -0,0 +1,25 @@ +{ + "type": "TypeAPL", + "prepullActions": [ + {"action":{"castSpell":{"spellId":{"spellId":48263}}},"doAtValue":{"const":{"val":"-10s"}}}, + {"action":{"castSpell":{"spellId":{"spellId":42650}}},"doAtValue":{"const":{"val":"-6s"}}} + ], + "priorityList": [ + {"action":{"autocastOtherCooldowns":{}}}, + {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"currentHealthPercent":{}},"rhs":{"const":{"val":"40%"}}}},"castSpell":{"spellId":{"spellId":48792}}}}, + {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"currentHealthPercent":{}},"rhs":{"const":{"val":"40%"}}}},"castSpell":{"spellId":{"spellId":55233}}}}, + {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"currentHealthPercent":{}},"rhs":{"const":{"val":"60%"}}}},"castSpell":{"spellId":{"spellId":48982}}}}, + {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"currentHealthPercent":{}},"rhs":{"const":{"val":"60%"}}}},"castSpell":{"spellId":{"spellId":48707}}}}, + {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"currentHealthPercent":{}},"rhs":{"const":{"val":"60%"}}}},"castSpell":{"spellId":{"spellId":48743}}}}, + {"action":{"condition":{"cmp":{"op":"OpGe","lhs":{"currentRunicPower":{}},"rhs":{"const":{"val":"40"}}}},"castSpell":{"spellId":{"spellId":56815}}}}, + {"action":{"condition":{"not":{"val":{"dotIsActive":{"spellId":{"spellId":55095}}}}},"castSpell":{"spellId":{"spellId":59131}}}}, + {"action":{"condition":{"not":{"val":{"dotIsActive":{"spellId":{"spellId":55078}}}}},"castSpell":{"spellId":{"tag":1,"spellId":49921}}}}, + {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"dotRemainingTime":{"spellId":{"spellId":55078}}},"rhs":{"const":{"val":"3s"}}}},"castSpell":{"spellId":{"spellId":50842}}}}, + {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpGt","lhs":{"currentNonDeathRuneCount":{"runeType":"RuneFrost"}},"rhs":{"const":{"val":"0"}}}},{"cmp":{"op":"OpGt","lhs":{"currentNonDeathRuneCount":{"runeType":"RuneUnholy"}},"rhs":{"const":{"val":"0"}}}}]}},"castSpell":{"spellId":{"tag":1,"spellId":49924}}}}, + {"action":{"condition":{"cmp":{"op":"OpGt","lhs":{"currentRuneCount":{"runeType":"RuneDeath"}},"rhs":{"const":{"val":"0"}}}},"castSpell":{"spellId":{"spellId":59131}}}}, + {"action":{"condition":{"or":{"vals":[{"cmp":{"op":"OpGt","lhs":{"currentNonDeathRuneCount":{"runeType":"RuneBlood"}},"rhs":{"const":{"val":"1"}}}},{"spellIsReady":{"spellId":{"spellId":47568}}}]}},"castSpell":{"spellId":{"tag":1,"spellId":49930}}}}, + {"action":{"castSpell":{"spellId":{"spellId":46584}}}}, + {"action":{"castSpell":{"spellId":{"spellId":47568}}}}, + {"action":{"condition":{"cmp":{"op":"OpGe","lhs":{"currentRunicPower":{}},"rhs":{"const":{"val":"80"}}}},"castSpell":{"spellId":{"spellId":49895}}}} + ] +} \ No newline at end of file diff --git a/ui/tank_deathknight/presets.ts b/ui/tank_deathknight/presets.ts index e8f0aaf27a..bb8c89754f 100644 --- a/ui/tank_deathknight/presets.ts +++ b/ui/tank_deathknight/presets.ts @@ -21,6 +21,9 @@ import { import * as Tooltips from '../core/constants/tooltips.js'; +import BloodAggroApl from './apls/blood_aggro.json'; +import BloodIcyTouchApl from './apls/blood_icy_touch.json'; + export const BloodTalents = { name: 'Blood', data: SavedTalents.create({ @@ -126,32 +129,8 @@ export const BLOOD_IT_SPAM_ROTATION_PRESET_DEFAULT = { name: 'Blood Icy Touch', enableWhen: (player: Player) => player.getTalentTree() == 0, rotation: SavedRotation.create({ - specRotationOptionsJson: TankDeathKnightRotation.toJsonString(TankDeathKnightRotation.create()), - rotation: APLRotation.fromJsonString(`{ - "type": "TypeAPL", - "prepullActions": [ - {"action":{"castSpell":{"spellId":{"spellId":48263}}},"doAtValue":{"const":{"val":"-10s"}}}, - {"action":{"castSpell":{"spellId":{"spellId":42650}}},"doAtValue":{"const":{"val":"-6s"}}} - ], - "priorityList": [ - {"action":{"autocastOtherCooldowns":{}}}, - {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"currentHealthPercent":{}},"rhs":{"const":{"val":"40%"}}}},"castSpell":{"spellId":{"spellId":48792}}}}, - {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"currentHealthPercent":{}},"rhs":{"const":{"val":"40%"}}}},"castSpell":{"spellId":{"spellId":55233}}}}, - {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"currentHealthPercent":{}},"rhs":{"const":{"val":"60%"}}}},"castSpell":{"spellId":{"spellId":48982}}}}, - {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"currentHealthPercent":{}},"rhs":{"const":{"val":"60%"}}}},"castSpell":{"spellId":{"spellId":48707}}}}, - {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"currentHealthPercent":{}},"rhs":{"const":{"val":"60%"}}}},"castSpell":{"spellId":{"spellId":48743}}}}, - {"action":{"condition":{"cmp":{"op":"OpGe","lhs":{"currentRunicPower":{}},"rhs":{"const":{"val":"40"}}}},"castSpell":{"spellId":{"spellId":56815}}}}, - {"action":{"condition":{"not":{"val":{"dotIsActive":{"spellId":{"spellId":55095}}}}},"castSpell":{"spellId":{"spellId":59131}}}}, - {"action":{"condition":{"not":{"val":{"dotIsActive":{"spellId":{"spellId":55078}}}}},"castSpell":{"spellId":{"tag":1,"spellId":49921}}}}, - {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"dotRemainingTime":{"spellId":{"spellId":55078}}},"rhs":{"const":{"val":"3s"}}}},"castSpell":{"spellId":{"spellId":50842}}}}, - {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpGt","lhs":{"currentNonDeathRuneCount":{"runeType":"RuneFrost"}},"rhs":{"const":{"val":"0"}}}},{"cmp":{"op":"OpGt","lhs":{"currentNonDeathRuneCount":{"runeType":"RuneUnholy"}},"rhs":{"const":{"val":"0"}}}}]}},"castSpell":{"spellId":{"tag":1,"spellId":49924}}}}, - {"action":{"condition":{"cmp":{"op":"OpGt","lhs":{"currentRuneCount":{"runeType":"RuneDeath"}},"rhs":{"const":{"val":"0"}}}},"castSpell":{"spellId":{"spellId":59131}}}}, - {"action":{"condition":{"or":{"vals":[{"cmp":{"op":"OpGt","lhs":{"currentNonDeathRuneCount":{"runeType":"RuneBlood"}},"rhs":{"const":{"val":"1"}}}},{"spellIsReady":{"spellId":{"spellId":47568}}}]}},"castSpell":{"spellId":{"tag":1,"spellId":49930}}}}, - {"action":{"castSpell":{"spellId":{"spellId":46584}}}}, - {"action":{"castSpell":{"spellId":{"spellId":47568}}}}, - {"action":{"condition":{"cmp":{"op":"OpGe","lhs":{"currentRunicPower":{}},"rhs":{"const":{"val":"80"}}}},"castSpell":{"spellId":{"spellId":49895}}}} - ] - }`), + specRotationOptionsJson: TankDeathKnightRotation.toJsonString(DefaultRotation), + rotation: APLRotation.fromJsonString(JSON.stringify(BloodIcyTouchApl)), }), } @@ -159,31 +138,8 @@ export const BLOOD_AGGRO_ROTATION_PRESET_DEFAULT = { name: 'Blood Aggro', enableWhen: (player: Player) => player.getTalentTree() == 0, rotation: SavedRotation.create({ - specRotationOptionsJson: TankDeathKnightRotation.toJsonString(TankDeathKnightRotation.create()), - rotation: APLRotation.fromJsonString(`{ - "type": "TypeAPL", - "prepullActions": [ - {"action":{"castSpell":{"spellId":{"spellId":48263}}},"doAtValue":{"const":{"val":"-10s"}}}, - {"action":{"castSpell":{"spellId":{"spellId":42650}}},"doAtValue":{"const":{"val":"-6s"}}} - ], - "priorityList": [ - {"action":{"autocastOtherCooldowns":{}}}, - {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpLe","lhs":{"currentHealthPercent":{}},"rhs":{"const":{"val":"40%"}}}},{"not":{"val":{"auraIsActive":{"auraId":{"spellId":55233}}}}}]}},"castSpell":{"spellId":{"spellId":48792}}}}, - {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpLe","lhs":{"currentHealthPercent":{}},"rhs":{"const":{"val":"40%"}}}},{"not":{"val":{"auraIsActive":{"auraId":{"spellId":48792}}}}}]}},"castSpell":{"spellId":{"spellId":55233}}}}, - {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"currentHealthPercent":{}},"rhs":{"const":{"val":"60%"}}}},"castSpell":{"spellId":{"spellId":48707}}}}, - {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"currentHealthPercent":{}},"rhs":{"const":{"val":"60%"}}}},"castSpell":{"spellId":{"spellId":48743}}}}, - {"action":{"condition":{"or":{"vals":[{"not":{"val":{"spellIsReady":{"spellId":{"spellId":49028}}}}},{"cmp":{"op":"OpGe","lhs":{"currentRunicPower":{}},"rhs":{"const":{"val":"80"}}}}]}},"castSpell":{"spellId":{"spellId":56815}}}}, - {"action":{"condition":{"not":{"val":{"dotIsActive":{"spellId":{"spellId":55095}}}}},"castSpell":{"spellId":{"spellId":59131}}}}, - {"action":{"condition":{"not":{"val":{"dotIsActive":{"spellId":{"spellId":55078}}}}},"castSpell":{"spellId":{"tag":1,"spellId":49921}}}}, - {"action":{"castSpell":{"spellId":{"spellId":49016}}}}, - {"action":{"castSpell":{"spellId":{"spellId":49028}}}}, - {"action":{"castSpell":{"spellId":{"tag":1,"spellId":55262}}}}, - {"action":{"castSpell":{"spellId":{"tag":1,"spellId":49924}}}}, - {"action":{"castSpell":{"spellId":{"spellId":46584}}}}, - {"action":{"castSpell":{"spellId":{"spellId":47568}}}}, - {"action":{"condition":{"cmp":{"op":"OpGe","lhs":{"currentRunicPower":{}},"rhs":{"const":{"val":"80"}}}},"castSpell":{"spellId":{"spellId":49895}}}} - ] - }`), + specRotationOptionsJson: TankDeathKnightRotation.toJsonString(DefaultRotation), + rotation: APLRotation.fromJsonString(JSON.stringify(BloodAggroApl)), }), } diff --git a/ui/warlock/apls/demo.json b/ui/warlock/apls/demo.json new file mode 100644 index 0000000000..9c30b41909 --- /dev/null +++ b/ui/warlock/apls/demo.json @@ -0,0 +1,50 @@ +{ + "type": "TypeAPL", + "prepullActions": [ + {"action":{"castSpell":{"spellId":{"spellId":57946}}},"doAtValue":{"const":{"val":"-4s"}}}, + {"action":{"castSpell":{"spellId":{"otherId":"OtherActionPotion"}}},"doAtValue":{"const":{"val":"-2.5s"}}}, + {"action":{"castSpell":{"spellId":{"spellId":47809}}},"doAtValue":{"const":{"val":"-2.5s"}}} + ], + "priorityList": [ + { "action": { "autocastOtherCooldowns": {} } }, + { "action": { "castSpell": { "spellId": { "spellId": 50589 } } } }, + { "action": { "condition": { "cmp": { + "op": "OpGt", + "lhs": { "remainingTime": {} }, + "rhs": { "const": { "val": "60s" } } + } }, "castSpell": { "spellId": { "spellId": 47867 } } } }, + { "action": { "multidot": { "spellId": { "spellId": 47813 }, "maxDots": 1, "maxOverlap": { "const": { "val": "0ms" } } } } }, + { "action": { "condition": { "and": { + "vals": [ + { "not": { "val": { "dotIsActive": { "spellId": { "spellId": 47867 } } } } }, + { "not": { "val": { "dotIsActive": { "spellId": { "spellId": 47864 } } } } }, + { "cmp": { + "op": "OpGt", + "lhs": { "remainingTime": {} }, + "rhs": { "const": { "val": "22s" } } + } } ] } }, "castSpell": { "spellId": { "spellId": 47864 } } } }, + { "action": { "condition": { "and": { "vals": [ + { "cmp": { + "op": "OpLt", + "lhs": { "auraRemainingTime": { "auraId": { "spellId": 63321 } } }, + "rhs": { "const": { "val": "3s" } } } }, + { "cmp": { + "op": "OpGt", + "lhs": { "remainingTime": {} }, + "rhs": { "const": { "val": "10s" } } + } } ] } }, "castSpell": { "spellId": { "spellId": 57946 } } } }, + { "action": { "condition": { "and": { "vals": [ + { "cmp": { + "op": "OpLt", + "lhs": { "dotRemainingTime": { "spellId": { "spellId": 47811 } } }, + "rhs": { "spellCastTime": { "spellId": { "spellId": 47811 } } } } }, + { "cmp": { + "op": "OpGe", + "lhs": { "remainingTime": {} }, + "rhs": { "const": { "val": "12s" } } } } ] + } }, "castSpell": { "spellId": { "spellId": 47811 } } } }, + { "action": { "condition": { "auraIsActive": { "auraId": { "spellId": 63167 } } }, "castSpell": { "spellId": { "spellId": 47825 } } } }, + { "action": { "condition": { "auraIsActive": { "auraId": { "spellId": 71165 } } }, "castSpell": { "spellId": { "spellId": 47838 } } } }, + { "action": { "castSpell": { "spellId": { "spellId": 47809 } } } }, + { "action": { "castSpell": { "spellId": { "spellId": 57946 } } } } +]} \ No newline at end of file diff --git a/ui/warlock/apls/destro.json b/ui/warlock/apls/destro.json new file mode 100644 index 0000000000..c1b5712a32 --- /dev/null +++ b/ui/warlock/apls/destro.json @@ -0,0 +1,58 @@ +{ + "type": "TypeAPL", + "prepullActions": [ + {"action":{"castSpell":{"spellId":{"spellId":57946}}},"doAtValue":{"const":{"val":"-5s"}}}, + {"action":{"castSpell":{"spellId":{"otherId":"OtherActionPotion"}}},"doAtValue":{"const":{"val":"-3.5s"}}}, + {"action":{"castSpell":{"spellId":{"spellId":47825}}},"doAtValue":{"const":{"val":"-3.5s"}}} + ], + "priorityList": [ + { "action": { "autocastOtherCooldowns": {} } }, + { "action": { "castSpell": { "spellId": { "spellId": 17962 } } } }, + { "action": { "condition": { + "cmp": { + "op": "OpGt", "lhs": { "remainingTime": {} }, + "rhs": { "const": { "val": "60s" } } + } + }, "castSpell": { "spellId": { "spellId": 47867 } } } }, + { "action": { "condition": { + "cmp": { + "op": "OpLt", + "lhs": { "dotRemainingTime": { "spellId": { "spellId": 47811 } } }, + "rhs": { "spellCastTime": { "spellId": { "spellId": 47811 } } } } }, + "castSpell": { "spellId": { "spellId": 47811 } } } }, + { "action": { "condition": { + "cmp": { + "op": "OpLt", + "lhs": { "remainingTime": {} }, + "rhs": { "const": { "val": "61s" } } } + }, + "castSpell": { "spellId": { "spellId": 1122 } } } }, + { "action": { "condition": { + "and": { "vals": [ + { "cmp": { + "op": "OpLt", + "lhs": { "auraRemainingTime": { "auraId": { "spellId": 63321 } } }, + "rhs": { "const": { "val": "3s" } } } }, + { "cmp": { + "op": "OpGt", + "lhs": { "remainingTime": {} }, + "rhs": { "const": { "val": "10s" } } } } + ] } }, + "castSpell": { "spellId": { "spellId": 57946 } } } }, + { "action": { "castSpell": { "spellId": { "spellId": 59172 } } } }, + { "action": { "condition": { + "and": { + "vals": [ + { "not": { "val": { "dotIsActive": { "spellId": { "spellId": 47867 } } } } }, + { "not": { "val": { "dotIsActive": { "spellId": { "spellId": 47864 } } } } }, + { "cmp": { + "op": "OpGt", + "lhs": { "remainingTime": {} }, + "rhs": { "const": { "val": "22s" } } } + } + ] } }, + "castSpell": { "spellId": { "spellId": 47864 } } } }, + { "action": { "castSpell": { "spellId": { "spellId": 47838 } } } }, + { "action": { "castSpell": { "spellId": { "spellId": 57946 } } } } + ] +} \ No newline at end of file diff --git a/ui/warlock/presets.ts b/ui/warlock/presets.ts index 8314feee15..452b19b974 100644 --- a/ui/warlock/presets.ts +++ b/ui/warlock/presets.ts @@ -31,6 +31,9 @@ import { } from '../core/proto/warlock.js'; import { APLRotation } from '../core/proto/apl.js'; +import DemoApl from './apls/demo.json'; +import DestroApl from './apls/destro.json'; + export const BIS_TOOLTIP = 'This gear preset is inspired from Zephan\'s Affliction guide: https://www.warcrafttavern.com/wotlk/guides/pve-affliction-warlock/'; // Default talents. Uses the wowhead calculator format, make the talents on @@ -527,117 +530,11 @@ export const APL_Demo_Default = { enableWhen: (player: Player) => player.getTalentTree() == 1, rotation: SavedRotation.create({ specRotationOptionsJson: WarlockRotation.toJsonString(DemonologyRotation), - rotation: APLRotation.fromJsonString(`{ - "type": 3, - "prepullActions": [ - {"action":{"castSpell":{"spellId":{"spellId":57946}}},"doAtValue":{"const":{"val":"-4s"}}}, - {"action":{"castSpell":{"spellId":{"otherId":"OtherActionPotion"}}},"doAtValue":{"const":{"val":"-2.5s"}}}, - {"action":{"castSpell":{"spellId":{"spellId":47809}}},"doAtValue":{"const":{"val":"-2.5s"}}} - ], - "priorityList": [ - { "action": { "autocastOtherCooldowns": {} } }, - { "action": { "castSpell": { "spellId": { "spellId": 50589 } } } }, - { "action": { "condition": { "cmp": { - "op": "OpGt", - "lhs": { "remainingTime": {} }, - "rhs": { "const": { "val": "60s" } } - } }, "castSpell": { "spellId": { "spellId": 47867 } } } }, - { "action": { "multidot": { "spellId": { "spellId": 47813 }, "maxDots": 1, "maxOverlap": { "const": { "val": "0ms" } } } } }, - { "action": { "condition": { "and": { - "vals": [ - { "not": { "val": { "dotIsActive": { "spellId": { "spellId": 47867 } } } } }, - { "not": { "val": { "dotIsActive": { "spellId": { "spellId": 47864 } } } } }, - { "cmp": { - "op": "OpGt", - "lhs": { "remainingTime": {} }, - "rhs": { "const": { "val": "22s" } } - } } ] } }, "castSpell": { "spellId": { "spellId": 47864 } } } }, - { "action": { "condition": { "and": { "vals": [ - { "cmp": { - "op": "OpLt", - "lhs": { "auraRemainingTime": { "auraId": { "spellId": 63321 } } }, - "rhs": { "const": { "val": "3s" } } } }, - { "cmp": { - "op": "OpGt", - "lhs": { "remainingTime": {} }, - "rhs": { "const": { "val": "10s" } } - } } ] } }, "castSpell": { "spellId": { "spellId": 57946 } } } }, - { "action": { "condition": { "and": { "vals": [ - { "cmp": { - "op": "OpLt", - "lhs": { "dotRemainingTime": { "spellId": { "spellId": 47811 } } }, - "rhs": { "spellCastTime": { "spellId": { "spellId": 47811 } } } } }, - { "cmp": { - "op": "OpGe", - "lhs": { "remainingTime": {} }, - "rhs": { "const": { "val": "12s" } } } } ] - } }, "castSpell": { "spellId": { "spellId": 47811 } } } }, - { "action": { "condition": { "auraIsActive": { "auraId": { "spellId": 63167 } } }, "castSpell": { "spellId": { "spellId": 47825 } } } }, - { "action": { "condition": { "auraIsActive": { "auraId": { "spellId": 71165 } } }, "castSpell": { "spellId": { "spellId": 47838 } } } }, - { "action": { "castSpell": { "spellId": { "spellId": 47809 } } } }, - { "action": { "castSpell": { "spellId": { "spellId": 57946 } } } } -]}`)})} + rotation: APLRotation.fromJsonString(JSON.stringify(DemoApl))})} export const APL_Destro_Default = { name: 'Destro Default', enableWhen: (player: Player) => player.getTalentTree() == 2, rotation: SavedRotation.create({ specRotationOptionsJson: WarlockRotation.toJsonString(DestructionRotation), - rotation: APLRotation.fromJsonString(`{ - "type": 3, - "prepullActions": [ - {"action":{"castSpell":{"spellId":{"spellId":57946}}},"doAtValue":{"const":{"val":"-5s"}}}, - {"action":{"castSpell":{"spellId":{"otherId":"OtherActionPotion"}}},"doAtValue":{"const":{"val":"-3.5s"}}}, - {"action":{"castSpell":{"spellId":{"spellId":47825}}},"doAtValue":{"const":{"val":"-3.5s"}}} - ], - "priorityList": [ - { "action": { "autocastOtherCooldowns": {} } }, - { "action": { "castSpell": { "spellId": { "spellId": 17962 } } } }, - { "action": { "condition": { - "cmp": { - "op": "OpGt", "lhs": { "remainingTime": {} }, - "rhs": { "const": { "val": "60s" } } - } - }, "castSpell": { "spellId": { "spellId": 47867 } } } }, - { "action": { "condition": { - "cmp": { - "op": "OpLt", - "lhs": { "dotRemainingTime": { "spellId": { "spellId": 47811 } } }, - "rhs": { "spellCastTime": { "spellId": { "spellId": 47811 } } } } }, - "castSpell": { "spellId": { "spellId": 47811 } } } }, - { "action": { "condition": { - "cmp": { - "op": "OpLt", - "lhs": { "remainingTime": {} }, - "rhs": { "const": { "val": "61s" } } } - }, - "castSpell": { "spellId": { "spellId": 1122 } } } }, - { "action": { "condition": { - "and": { "vals": [ - { "cmp": { - "op": "OpLt", - "lhs": { "auraRemainingTime": { "auraId": { "spellId": 63321 } } }, - "rhs": { "const": { "val": "3s" } } } }, - { "cmp": { - "op": "OpGt", - "lhs": { "remainingTime": {} }, - "rhs": { "const": { "val": "10s" } } } } - ] } }, - "castSpell": { "spellId": { "spellId": 57946 } } } }, - { "action": { "castSpell": { "spellId": { "spellId": 59172 } } } }, - { "action": { "condition": { - "and": { - "vals": [ - { "not": { "val": { "dotIsActive": { "spellId": { "spellId": 47867 } } } } }, - { "not": { "val": { "dotIsActive": { "spellId": { "spellId": 47864 } } } } }, - { "cmp": { - "op": "OpGt", - "lhs": { "remainingTime": {} }, - "rhs": { "const": { "val": "22s" } } } - } - ] } }, - "castSpell": { "spellId": { "spellId": 47864 } } } }, - { "action": { "castSpell": { "spellId": { "spellId": 47838 } } } }, - { "action": { "castSpell": { "spellId": { "spellId": 57946 } } } } - ] -}`)})} + rotation: APLRotation.fromJsonString(JSON.stringify(DestroApl))})} diff --git a/ui/warrior/apls/fury.json b/ui/warrior/apls/fury.json new file mode 100644 index 0000000000..2cee99c9c5 --- /dev/null +++ b/ui/warrior/apls/fury.json @@ -0,0 +1,22 @@ +{ + "type": "TypeAPL", + "prepullActions": [ + {"action":{"castSpell":{"spellId":{"spellId":47436}}},"doAtValue":{"const":{"val":"-10s"}}}, + {"action":{"castSpell":{"spellId":{"otherId":"OtherActionPotion"}}},"doAtValue":{"const":{"val":"-1s"}}} + ], + "priorityList": [ + {"action":{"castSpell":{"spellId":{"spellId":2458}}}}, + {"action":{"condition":{"auraShouldRefresh":{"sourceUnit":{"type":"Self"},"auraId":{"spellId":47436},"maxOverlap":{"const":{"val":"2s"}}}},"castSpell":{"spellId":{"spellId":47436}}}}, + {"action":{"condition":{"auraShouldRefresh":{"auraId":{"spellId":47467},"maxOverlap":{"const":{"val":"2s"}}}},"castSpell":{"spellId":{"spellId":47467}}}}, + {"hide":true,"action":{"condition":{"and":{"vals":[{"auraShouldRefresh":{"auraId":{"spellId":47502},"maxOverlap":{"const":{"val":"2s"}}}},{"gcdIsReady":{}},{"cmp":{"op":"OpGe","lhs":{"currentRage":{}},"rhs":{"const":{"val":"20"}}}},{"spellIsReady":{"spellId":{"spellId":47502}}}]}},"sequence":{"name":"TC","actions":[{"castSpell":{"spellId":{"spellId":2457}}},{"castSpell":{"spellId":{"spellId":47502}}}]}}}, + {"hide":true,"action":{"resetSequence":{"sequenceName":"TC"}}}, + {"hide":true,"action":{"condition":{"auraShouldRefresh":{"auraId":{"spellId":47437},"maxOverlap":{"const":{"val":"2s"}}}},"castSpell":{"spellId":{"spellId":25203}}}}, + {"action":{"autocastOtherCooldowns":{}}}, + {"action":{"condition":{"auraIsActive":{"auraId":{"spellId":46916}}},"castSpell":{"spellId":{"spellId":47475}}}}, + {"action":{"castSpell":{"spellId":{"spellId":23881}}}}, + {"action":{"castSpell":{"spellId":{"spellId":1680}}}}, + {"action":{"condition":{"and":{"vals":[{"not":{"val":{"isExecutePhase":{"threshold":"E20"}}}},{"not":{"val":{"dotIsActive":{"spellId":{"spellId":47465}}}}}]}},"castSpell":{"spellId":{"spellId":47465}}}}, + {"action":{"castSpell":{"spellId":{"spellId":47471}}}}, + {"action":{"condition":{"cmp":{"op":"OpGe","lhs":{"currentRage":{}},"rhs":{"const":{"val":"30"}}}},"castSpell":{"spellId":{"spellId":47450,"tag":1}}}} + ] +} \ No newline at end of file diff --git a/ui/warrior/presets.ts b/ui/warrior/presets.ts index c93ea0affc..0f6be2d06f 100644 --- a/ui/warrior/presets.ts +++ b/ui/warrior/presets.ts @@ -23,9 +23,10 @@ import { Warrior_Rotation_MainGcd as MainGcd, } from '../core/proto/warrior.js'; -import * as Gems from '../core/proto_utils/gems.js'; import * as Tooltips from '../core/constants/tooltips.js'; +import FuryApl from './apls/fury.json'; + // Preset options for this spec. // Eventually we will import these values for the raid sim too, so its good to // keep them in a separate file. @@ -104,28 +105,7 @@ export const ROTATION_FURY = { rotation: SavedRotation.create({ specRotationOptionsJson: WarriorRotation.toJsonString(WarriorRotation.create({ })), - rotation: APLRotation.fromJsonString(`{ - "type": "TypeAPL", - "prepullActions": [ - {"action":{"castSpell":{"spellId":{"spellId":47436}}},"doAtValue":{"const":{"val":"-10s"}}}, - {"action":{"castSpell":{"spellId":{"otherId":"OtherActionPotion"}}},"doAtValue":{"const":{"val":"-1s"}}} - ], - "priorityList": [ - {"action":{"castSpell":{"spellId":{"spellId":2458}}}}, - {"action":{"condition":{"auraShouldRefresh":{"sourceUnit":{"type":"Self"},"auraId":{"spellId":47436},"maxOverlap":{"const":{"val":"2s"}}}},"castSpell":{"spellId":{"spellId":47436}}}}, - {"action":{"condition":{"auraShouldRefresh":{"auraId":{"spellId":47467},"maxOverlap":{"const":{"val":"2s"}}}},"castSpell":{"spellId":{"spellId":47467}}}}, - {"hide":true,"action":{"condition":{"and":{"vals":[{"auraShouldRefresh":{"auraId":{"spellId":47502},"maxOverlap":{"const":{"val":"2s"}}}},{"gcdIsReady":{}},{"cmp":{"op":"OpGe","lhs":{"currentRage":{}},"rhs":{"const":{"val":"20"}}}},{"spellIsReady":{"spellId":{"spellId":47502}}}]}},"sequence":{"name":"TC","actions":[{"castSpell":{"spellId":{"spellId":2457}}},{"castSpell":{"spellId":{"spellId":47502}}}]}}}, - {"hide":true,"action":{"resetSequence":{"sequenceName":"TC"}}}, - {"hide":true,"action":{"condition":{"auraShouldRefresh":{"auraId":{"spellId":47437},"maxOverlap":{"const":{"val":"2s"}}}},"castSpell":{"spellId":{"spellId":25203}}}}, - {"action":{"autocastOtherCooldowns":{}}}, - {"action":{"condition":{"auraIsActive":{"auraId":{"spellId":46916}}},"castSpell":{"spellId":{"spellId":47475}}}}, - {"action":{"castSpell":{"spellId":{"spellId":23881}}}}, - {"action":{"castSpell":{"spellId":{"spellId":1680}}}}, - {"action":{"condition":{"and":{"vals":[{"not":{"val":{"isExecutePhase":{"threshold":"E20"}}}},{"not":{"val":{"dotIsActive":{"spellId":{"spellId":47465}}}}}]}},"castSpell":{"spellId":{"spellId":47465}}}}, - {"action":{"castSpell":{"spellId":{"spellId":47471}}}}, - {"action":{"condition":{"cmp":{"op":"OpGe","lhs":{"currentRage":{}},"rhs":{"const":{"val":"30"}}}},"castSpell":{"spellId":{"spellId":47450,"tag":1}}}} - ] - }`), + rotation: APLRotation.fromJsonString(JSON.stringify(FuryApl)), }), }; From 6471d943208330ca35df191defefcc722066cab0 Mon Sep 17 00:00:00 2001 From: jarves Date: Mon, 25 Sep 2023 14:50:52 -0500 Subject: [PATCH 02/21] test: swap hunter to using json apls Signed-off-by: jarves --- sim/hunter/TestBM.results | 24 +- sim/hunter/TestMM.results | 598 ++++++++++++++++++++---------------- sim/hunter/TestSV.results | 620 ++++++++++++++++++++++---------------- sim/hunter/hunter_test.go | 113 ++----- 4 files changed, 725 insertions(+), 630 deletions(-) diff --git a/sim/hunter/TestBM.results b/sim/hunter/TestBM.results index f714830f87..2156d13637 100644 --- a/sim/hunter/TestBM.results +++ b/sim/hunter/TestBM.results @@ -888,84 +888,84 @@ dps_results: { } } dps_results: { - key: "TestBM-Settings-Dwarf-P1-Basic-BM-FullBuffs-LongMultiTarget" + key: "TestBM-Settings-Dwarf-P1-Basic-bm-FullBuffs-LongMultiTarget" value: { dps: 6834.41474 tps: 5910.65287 } } dps_results: { - key: "TestBM-Settings-Dwarf-P1-Basic-BM-FullBuffs-LongSingleTarget" + key: "TestBM-Settings-Dwarf-P1-Basic-bm-FullBuffs-LongSingleTarget" value: { dps: 6185.3847 tps: 4180.94343 } } dps_results: { - key: "TestBM-Settings-Dwarf-P1-Basic-BM-FullBuffs-ShortSingleTarget" + key: "TestBM-Settings-Dwarf-P1-Basic-bm-FullBuffs-ShortSingleTarget" value: { dps: 7403.98317 tps: 4912.51763 } } dps_results: { - key: "TestBM-Settings-Dwarf-P1-Basic-BM-NoBuffs-LongMultiTarget" + key: "TestBM-Settings-Dwarf-P1-Basic-bm-NoBuffs-LongMultiTarget" value: { dps: 3443.596 tps: 4372.75906 } } dps_results: { - key: "TestBM-Settings-Dwarf-P1-Basic-BM-NoBuffs-LongSingleTarget" + key: "TestBM-Settings-Dwarf-P1-Basic-bm-NoBuffs-LongSingleTarget" value: { dps: 2997.82987 tps: 2351.87602 } } dps_results: { - key: "TestBM-Settings-Dwarf-P1-Basic-BM-NoBuffs-ShortSingleTarget" + key: "TestBM-Settings-Dwarf-P1-Basic-bm-NoBuffs-ShortSingleTarget" value: { dps: 3419.02418 tps: 2660.37536 } } dps_results: { - key: "TestBM-Settings-Orc-P1-Basic-BM-FullBuffs-LongMultiTarget" + key: "TestBM-Settings-Orc-P1-Basic-bm-FullBuffs-LongMultiTarget" value: { dps: 6947.45215 tps: 5911.35362 } } dps_results: { - key: "TestBM-Settings-Orc-P1-Basic-BM-FullBuffs-LongSingleTarget" + key: "TestBM-Settings-Orc-P1-Basic-bm-FullBuffs-LongSingleTarget" value: { dps: 6274.33576 tps: 4160.36986 } } dps_results: { - key: "TestBM-Settings-Orc-P1-Basic-BM-FullBuffs-ShortSingleTarget" + key: "TestBM-Settings-Orc-P1-Basic-bm-FullBuffs-ShortSingleTarget" value: { dps: 7566.31205 tps: 4932.59166 } } dps_results: { - key: "TestBM-Settings-Orc-P1-Basic-BM-NoBuffs-LongMultiTarget" + key: "TestBM-Settings-Orc-P1-Basic-bm-NoBuffs-LongMultiTarget" value: { dps: 3470.26881 tps: 4373.09091 } } dps_results: { - key: "TestBM-Settings-Orc-P1-Basic-BM-NoBuffs-LongSingleTarget" + key: "TestBM-Settings-Orc-P1-Basic-bm-NoBuffs-LongSingleTarget" value: { dps: 3025.32365 tps: 2341.0963 } } dps_results: { - key: "TestBM-Settings-Orc-P1-Basic-BM-NoBuffs-ShortSingleTarget" + key: "TestBM-Settings-Orc-P1-Basic-bm-NoBuffs-ShortSingleTarget" value: { dps: 3472.3616 tps: 2665.48484 diff --git a/sim/hunter/TestMM.results b/sim/hunter/TestMM.results index e8ca4cbb41..f0cbf5ffb2 100644 --- a/sim/hunter/TestMM.results +++ b/sim/hunter/TestMM.results @@ -46,926 +46,1010 @@ character_stats_results: { dps_results: { key: "TestMM-AllItems-Ahn'KaharBloodHunter'sBattlegear" value: { - dps: 7806.20179 - tps: 6913.68187 + dps: 7578.09578 + tps: 6679.89132 } } dps_results: { key: "TestMM-AllItems-Althor'sAbacus-50359" value: { - dps: 7039.43835 - tps: 6128.26517 + dps: 6836.22188 + tps: 5921.91815 } } dps_results: { key: "TestMM-AllItems-Althor'sAbacus-50366" value: { - dps: 7039.43835 - tps: 6128.26517 + dps: 6836.22188 + tps: 5921.91815 } } dps_results: { key: "TestMM-AllItems-AshtongueTalismanofSwiftness-32487" value: { - dps: 7110.08499 - tps: 6192.38572 + dps: 6903.94954 + tps: 5983.11817 } } dps_results: { key: "TestMM-AllItems-AustereEarthsiegeDiamond" value: { - dps: 7125.76233 - tps: 6203.45122 + dps: 6917.54159 + tps: 5992.75991 } } dps_results: { key: "TestMM-AllItems-Bandit'sInsignia-40371" value: { - dps: 7205.74309 - tps: 6283.88516 + dps: 6993.79411 + tps: 6068.62948 } } dps_results: { key: "TestMM-AllItems-BaubleofTrueBlood-50354" value: { - dps: 7039.15968 - tps: 6128.06016 - hps: 91.85693 + dps: 6836.5138 + tps: 5921.91815 + hps: 91.38734 } } dps_results: { key: "TestMM-AllItems-BaubleofTrueBlood-50726" value: { - dps: 7039.15968 - tps: 6128.06016 - hps: 91.85693 + dps: 6836.5138 + tps: 5921.91815 + hps: 91.38734 } } dps_results: { key: "TestMM-AllItems-BeamingEarthsiegeDiamond" value: { - dps: 7148.42538 - tps: 6227.26331 + dps: 6960.51111 + tps: 6036.33976 } } dps_results: { key: "TestMM-AllItems-Beast-tamer'sShoulders-30892" value: { - dps: 7108.76757 - tps: 6196.62748 + dps: 6918.8786 + tps: 6007.54919 } } dps_results: { key: "TestMM-AllItems-BlackBowoftheBetrayer-32336" value: { - dps: 6635.8277 - tps: 5719.29032 + dps: 6407.42293 + tps: 5493.27997 } } dps_results: { key: "TestMM-AllItems-BlackBruise-50035" value: { - dps: 6946.60382 - tps: 6046.0342 + dps: 6745.89664 + tps: 5834.17819 } } dps_results: { key: "TestMM-AllItems-BlackBruise-50692" value: { - dps: 6933.82683 - tps: 6034.44914 + dps: 6733.8361 + tps: 5823.31654 } } dps_results: { key: "TestMM-AllItems-BlessedGarboftheUndeadSlayer" value: { - dps: 6108.53072 - tps: 5320.74746 + dps: 6060.38571 + tps: 5264.33686 } } dps_results: { key: "TestMM-AllItems-BlessedRegaliaofUndeadCleansing" value: { - dps: 5906.62567 - tps: 5131.21791 + dps: 5795.06935 + tps: 5010.01726 } } dps_results: { key: "TestMM-AllItems-BracingEarthsiegeDiamond" value: { - dps: 7125.76233 - tps: 6080.62299 + dps: 6917.54159 + tps: 5874.0229 } } dps_results: { key: "TestMM-AllItems-Bryntroll,theBoneArbiter-50415" value: { - dps: 7288.95829 - tps: 6365.85241 + dps: 7103.53931 + tps: 6177.95612 } } dps_results: { key: "TestMM-AllItems-Bryntroll,theBoneArbiter-50709" value: { - dps: 7288.95829 - tps: 6365.85241 + dps: 7103.53931 + tps: 6177.95612 } } dps_results: { key: "TestMM-AllItems-ChaoticSkyflareDiamond" value: { - dps: 7284.92364 - tps: 6364.52023 + dps: 7105.78529 + tps: 6181.67224 } } dps_results: { key: "TestMM-AllItems-CorpseTongueCoin-50349" value: { - dps: 7039.43835 - tps: 6128.26517 + dps: 6836.22188 + tps: 5921.91815 } } dps_results: { key: "TestMM-AllItems-CorpseTongueCoin-50352" value: { - dps: 7039.43835 - tps: 6128.26517 + dps: 6836.22188 + tps: 5921.91815 } } dps_results: { key: "TestMM-AllItems-CorrodedSkeletonKey-50356" value: { - dps: 7039.43835 - tps: 6128.26517 + dps: 6836.22188 + tps: 5921.91815 hps: 64 } } dps_results: { key: "TestMM-AllItems-CryptstalkerBattlegear" value: { - dps: 6701.20911 - tps: 5808.98755 + dps: 6508.49591 + tps: 5608.06413 } } dps_results: { key: "TestMM-AllItems-DarkmoonCard:Berserker!-42989" value: { - dps: 7136.23768 - tps: 6225.51518 + dps: 6940.34595 + tps: 6028.01402 } } dps_results: { key: "TestMM-AllItems-DarkmoonCard:Death-42990" value: { - dps: 7176.08734 - tps: 6266.01544 + dps: 6984.70426 + tps: 6070.86815 } } dps_results: { key: "TestMM-AllItems-DarkmoonCard:Greatness-44255" value: { - dps: 7272.84467 - tps: 6345.50828 + dps: 7027.92465 + tps: 6100.89775 } } dps_results: { key: "TestMM-AllItems-Death'sChoice-47464" value: { - dps: 7451.66312 - tps: 6512.43098 + dps: 7239.57511 + tps: 6300.32231 } } dps_results: { key: "TestMM-AllItems-DeathKnight'sAnguish-38212" value: { - dps: 7122.66482 - tps: 6212.97529 + dps: 6909.00002 + tps: 5994.72084 } } dps_results: { key: "TestMM-AllItems-Deathbringer'sWill-50362" value: { - dps: 7435.26739 - tps: 6512.09033 + dps: 7262.40628 + tps: 6336.16662 } } dps_results: { key: "TestMM-AllItems-Deathbringer'sWill-50363" value: { - dps: 7482.64498 - tps: 6558.04584 + dps: 7314.90581 + tps: 6388.45073 } } dps_results: { key: "TestMM-AllItems-Defender'sCode-40257" value: { - dps: 7039.44493 - tps: 6128.27175 + dps: 6836.22188 + tps: 5921.91815 } } dps_results: { key: "TestMM-AllItems-DestructiveSkyflareDiamond" value: { - dps: 7143.7339 - tps: 6223.61203 + dps: 6965.42048 + tps: 6041.31879 } } dps_results: { key: "TestMM-AllItems-DislodgedForeignObject-50348" value: { - dps: 7161.60296 - tps: 6248.39897 + dps: 6987.28648 + tps: 6068.96664 } } dps_results: { key: "TestMM-AllItems-DislodgedForeignObject-50353" value: { - dps: 7149.13401 - tps: 6239.55075 + dps: 6959.20758 + tps: 6037.76863 } } dps_results: { key: "TestMM-AllItems-EffulgentSkyflareDiamond" value: { - dps: 7125.76233 - tps: 6203.45122 + dps: 6917.54159 + tps: 5992.75991 } } dps_results: { key: "TestMM-AllItems-EmberSkyflareDiamond" value: { - dps: 7138.2723 - tps: 6214.78079 + dps: 6924.5824 + tps: 5999.06533 } } dps_results: { key: "TestMM-AllItems-EnigmaticSkyflareDiamond" value: { - dps: 7142.93609 - tps: 6222.53269 + dps: 6960.51111 + tps: 6036.39806 } } dps_results: { key: "TestMM-AllItems-EnigmaticStarflareDiamond" value: { - dps: 7140.89807 - tps: 6220.49467 + dps: 6950.03887 + tps: 6025.8955 } } dps_results: { key: "TestMM-AllItems-EphemeralSnowflake-50260" value: { - dps: 7092.80601 - tps: 6187.27892 + dps: 6894.19823 + tps: 5970.17728 } } dps_results: { key: "TestMM-AllItems-EssenceofGossamer-37220" value: { - dps: 7039.43835 - tps: 6128.26517 + dps: 6836.22188 + tps: 5921.91815 } } dps_results: { key: "TestMM-AllItems-EternalEarthsiegeDiamond" value: { - dps: 7125.76233 - tps: 6203.45122 + dps: 6917.54159 + tps: 5992.75991 } } dps_results: { key: "TestMM-AllItems-ExtractofNecromanticPower-40373" value: { - dps: 7185.49423 - tps: 6274.95218 + dps: 6995.46409 + tps: 6083.28371 } } dps_results: { key: "TestMM-AllItems-EyeoftheBroodmother-45308" value: { - dps: 7122.38551 - tps: 6212.16217 + dps: 6929.28828 + tps: 6016.14941 } } dps_results: { key: "TestMM-AllItems-Figurine-SapphireOwl-42413" value: { - dps: 7086.89322 - tps: 6171.53307 + dps: 6863.94125 + tps: 5947.30838 } } dps_results: { key: "TestMM-AllItems-ForethoughtTalisman-40258" value: { - dps: 7039.43835 - tps: 6128.26517 + dps: 6836.22188 + tps: 5921.91815 } } dps_results: { key: "TestMM-AllItems-ForgeEmber-37660" value: { - dps: 7102.49153 - tps: 6192.50072 + dps: 6916.06382 + tps: 6002.26483 } } dps_results: { key: "TestMM-AllItems-ForlornSkyflareDiamond" value: { - dps: 7125.76233 - tps: 6203.45122 + dps: 6917.54159 + tps: 5992.75991 } } dps_results: { key: "TestMM-AllItems-ForlornStarflareDiamond" value: { - dps: 7125.76233 - tps: 6203.45122 + dps: 6917.54159 + tps: 5992.75991 } } dps_results: { key: "TestMM-AllItems-FuryoftheFiveFlights-40431" value: { - dps: 7229.28746 - tps: 6300.29521 + dps: 7015.87455 + tps: 6083.83947 } } dps_results: { key: "TestMM-AllItems-FuturesightRune-38763" value: { - dps: 7039.44493 - tps: 6128.27175 + dps: 6836.22188 + tps: 5921.91815 } } dps_results: { key: "TestMM-AllItems-Gladiator'sPursuit" value: { - dps: 7249.01349 - tps: 6376.05111 + dps: 7059.17319 + tps: 6185.58235 } } dps_results: { key: "TestMM-AllItems-GlowingTwilightScale-54573" value: { - dps: 7039.43835 - tps: 6128.26517 + dps: 6836.22188 + tps: 5921.91815 } } dps_results: { key: "TestMM-AllItems-GlowingTwilightScale-54589" value: { - dps: 7039.43835 - tps: 6128.26517 + dps: 6836.22188 + tps: 5921.91815 } } dps_results: { key: "TestMM-AllItems-GnomishLightningGenerator-41121" value: { - dps: 7150.76641 - tps: 6240.61531 + dps: 6963.71157 + tps: 6049.86356 } } dps_results: { key: "TestMM-AllItems-Gronnstalker'sArmor" value: { - dps: 5571.67248 - tps: 4823.15498 + dps: 5468.2543 + tps: 4691.35371 } } dps_results: { key: "TestMM-AllItems-Heartpierce-49982" value: { - dps: 7346.53946 - tps: 6418.13916 + dps: 7158.24305 + tps: 6227.37875 } } dps_results: { key: "TestMM-AllItems-Heartpierce-50641" value: { - dps: 7347.77777 - tps: 6419.26361 + dps: 7159.41947 + tps: 6228.4416 } } dps_results: { key: "TestMM-AllItems-IllustrationoftheDragonSoul-40432" value: { - dps: 7039.43137 - tps: 6128.25819 + dps: 6836.22188 + tps: 5921.91815 } } dps_results: { key: "TestMM-AllItems-ImpassiveSkyflareDiamond" value: { - dps: 7142.93609 - tps: 6222.53269 + dps: 6960.51111 + tps: 6036.39806 } } dps_results: { key: "TestMM-AllItems-ImpassiveStarflareDiamond" value: { - dps: 7140.89807 - tps: 6220.49467 + dps: 6950.03887 + tps: 6025.8955 } } dps_results: { key: "TestMM-AllItems-IncisorFragment-37723" value: { - dps: 7198.95979 - tps: 6279.35005 + dps: 6996.48438 + tps: 6073.7659 } } dps_results: { key: "TestMM-AllItems-InsightfulEarthsiegeDiamond" value: { - dps: 7180.69647 - tps: 6259.53874 + dps: 6931.33396 + tps: 6012.5113 } } dps_results: { key: "TestMM-AllItems-InvigoratingEarthsiegeDiamond" value: { - dps: 7148.58783 - tps: 6223.89498 - hps: 11.15979 + dps: 6944.9466 + tps: 6017.8099 + hps: 11.30426 } } dps_results: { key: "TestMM-AllItems-LastWord-50179" value: { - dps: 7288.95829 - tps: 6365.85241 + dps: 7103.53931 + tps: 6177.95612 } } dps_results: { key: "TestMM-AllItems-LastWord-50708" value: { - dps: 7288.95829 - tps: 6365.85241 + dps: 7103.53931 + tps: 6177.95612 } } dps_results: { key: "TestMM-AllItems-Lavanthor'sTalisman-37872" value: { - dps: 7039.43835 - tps: 6128.26517 + dps: 6836.22188 + tps: 5921.91815 } } dps_results: { key: "TestMM-AllItems-MajesticDragonFigurine-40430" value: { - dps: 7039.43835 - tps: 6128.26517 + dps: 6836.22188 + tps: 5921.91815 } } dps_results: { key: "TestMM-AllItems-MeteoriteWhetstone-37390" value: { - dps: 7187.42811 - tps: 6270.74698 + dps: 7005.62929 + tps: 6087.90909 } } dps_results: { key: "TestMM-AllItems-NevermeltingIceCrystal-50259" value: { - dps: 7194.55622 - tps: 6283.20224 + dps: 7002.68776 + tps: 6089.00056 } } dps_results: { key: "TestMM-AllItems-Nibelung-49992" value: { - dps: 7401.79201 - tps: 6467.20326 + dps: 7175.57456 + tps: 6242.67047 } } dps_results: { key: "TestMM-AllItems-Nibelung-50648" value: { - dps: 7408.61914 - tps: 6473.29969 + dps: 7180.95788 + tps: 6247.50371 } } dps_results: { key: "TestMM-AllItems-OfferingofSacrifice-37638" value: { - dps: 7039.43835 - tps: 6128.26517 + dps: 6836.22188 + tps: 5921.91815 } } dps_results: { key: "TestMM-AllItems-PersistentEarthshatterDiamond" value: { - dps: 7146.37872 - tps: 6222.13049 + dps: 6937.04976 + tps: 6010.33676 } } dps_results: { key: "TestMM-AllItems-PersistentEarthsiegeDiamond" value: { - dps: 7151.22964 - tps: 6226.52562 + dps: 6941.63991 + tps: 6014.47249 } } dps_results: { key: "TestMM-AllItems-PetrifiedScarab-21685" value: { - dps: 7039.43835 - tps: 6128.26517 + dps: 6836.22188 + tps: 5921.91815 } } dps_results: { key: "TestMM-AllItems-PetrifiedTwilightScale-54571" value: { - dps: 7039.43835 - tps: 6128.26517 + dps: 6836.22188 + tps: 5921.91815 } } dps_results: { key: "TestMM-AllItems-PetrifiedTwilightScale-54591" value: { - dps: 7039.43835 - tps: 6128.26517 + dps: 6836.22188 + tps: 5921.91815 } } dps_results: { key: "TestMM-AllItems-PowerfulEarthshatterDiamond" value: { - dps: 7125.76233 - tps: 6203.45122 + dps: 6917.54159 + tps: 5992.75991 } } dps_results: { key: "TestMM-AllItems-PowerfulEarthsiegeDiamond" value: { - dps: 7125.76233 - tps: 6203.45122 + dps: 6917.54159 + tps: 5992.75991 } } dps_results: { key: "TestMM-AllItems-PurifiedShardoftheGods" value: { - dps: 7039.43835 - tps: 6128.26517 + dps: 6836.22188 + tps: 5921.91815 } } dps_results: { key: "TestMM-AllItems-ReignoftheDead-47316" value: { - dps: 7048.41025 - tps: 6137.23236 + dps: 6836.22188 + tps: 5921.91815 } } dps_results: { key: "TestMM-AllItems-ReignoftheDead-47477" value: { - dps: 7049.60165 - tps: 6138.42376 + dps: 6836.22188 + tps: 5921.91815 } } dps_results: { key: "TestMM-AllItems-RelentlessEarthsiegeDiamond" value: { - dps: 7288.95829 - tps: 6365.85241 + dps: 7103.53931 + tps: 6177.95612 } } dps_results: { key: "TestMM-AllItems-RevitalizingSkyflareDiamond" value: { - dps: 7133.10832 - tps: 6209.74074 + dps: 6917.54159 + tps: 5992.52499 } } dps_results: { key: "TestMM-AllItems-RuneofRepulsion-40372" value: { - dps: 7039.44493 - tps: 6128.27175 + dps: 6836.22188 + tps: 5921.91815 } } dps_results: { key: "TestMM-AllItems-ScourgestalkerBattlegear" value: { - dps: 7085.10784 - tps: 6206.70643 + dps: 6883.72592 + tps: 6000.99845 } } dps_results: { key: "TestMM-AllItems-SealofthePantheon-36993" value: { - dps: 7039.44493 - tps: 6128.27175 + dps: 6836.22188 + tps: 5921.91815 } } dps_results: { key: "TestMM-AllItems-Shadowmourne-49623" value: { - dps: 7523.83112 - tps: 6604.00652 + dps: 7377.24109 + tps: 6452.33402 } } dps_results: { key: "TestMM-AllItems-ShinyShardoftheGods" value: { - dps: 7039.43835 - tps: 6128.26517 + dps: 6836.22188 + tps: 5921.91815 } } dps_results: { key: "TestMM-AllItems-Sindragosa'sFlawlessFang-50361" value: { - dps: 7039.43835 - tps: 6128.26517 + dps: 6836.22188 + tps: 5921.91815 } } dps_results: { key: "TestMM-AllItems-SliverofPureIce-50339" value: { - dps: 7079.27947 - tps: 6168.78991 + dps: 6836.22188 + tps: 5927.27118 } } dps_results: { key: "TestMM-AllItems-SliverofPureIce-50346" value: { - dps: 7080.35788 - tps: 6170.41666 + dps: 6836.22188 + tps: 5927.83974 } } dps_results: { key: "TestMM-AllItems-SoulPreserver-37111" value: { - dps: 7039.43835 - tps: 6128.26517 + dps: 6836.22188 + tps: 5921.91815 } } dps_results: { key: "TestMM-AllItems-SouloftheDead-40382" value: { - dps: 7140.71216 - tps: 6230.04446 + dps: 6937.492 + tps: 6025.37153 } } dps_results: { key: "TestMM-AllItems-SparkofLife-37657" value: { - dps: 7101.23085 - tps: 6191.17632 + dps: 6899.31783 + tps: 5981.111 } } dps_results: { key: "TestMM-AllItems-SphereofRedDragon'sBlood-37166" value: { - dps: 7138.19473 - tps: 6217.30747 + dps: 6929.76804 + tps: 6005.75975 } } dps_results: { key: "TestMM-AllItems-StormshroudArmor" value: { - dps: 5747.85124 - tps: 4982.94543 + dps: 5663.74723 + tps: 4875.58596 } } dps_results: { key: "TestMM-AllItems-SwiftSkyflareDiamond" value: { - dps: 7151.22964 - tps: 6226.52562 + dps: 6941.63991 + tps: 6014.47249 } } dps_results: { key: "TestMM-AllItems-SwiftStarflareDiamond" value: { - dps: 7146.37872 - tps: 6222.13049 + dps: 6937.04976 + tps: 6010.33676 } } dps_results: { key: "TestMM-AllItems-SwiftWindfireDiamond" value: { - dps: 7137.88962 - tps: 6214.43903 + dps: 6929.01698 + tps: 6003.09923 } } dps_results: { key: "TestMM-AllItems-TalismanofTrollDivinity-37734" value: { - dps: 7039.44493 - tps: 6128.27175 + dps: 6836.22188 + tps: 5921.91815 } } dps_results: { key: "TestMM-AllItems-TearsoftheVanquished-47215" value: { - dps: 7125.62997 - tps: 6205.34256 + dps: 6891.65434 + tps: 5971.59959 } } dps_results: { key: "TestMM-AllItems-TheFistsofFury" value: { - dps: 6980.49331 - tps: 6079.12783 + dps: 6786.15939 + tps: 5873.38082 } } dps_results: { key: "TestMM-AllItems-TheGeneral'sHeart-45507" value: { - dps: 7039.43835 - tps: 6128.26517 + dps: 6836.22188 + tps: 5921.91815 } } dps_results: { key: "TestMM-AllItems-TheTwinBladesofAzzinoth" value: { - dps: 7121.03083 - tps: 6219.81875 + dps: 6907.23054 + tps: 5992.5364 } } dps_results: { key: "TestMM-AllItems-ThunderingSkyflareDiamond" value: { - dps: 7166.37252 - tps: 6247.76975 + dps: 6999.72638 + tps: 6069.90243 } } dps_results: { key: "TestMM-AllItems-TinyAbominationinaJar-50351" value: { - dps: 7039.65048 - tps: 6128.4773 + dps: 6836.42727 + tps: 5922.12355 } } dps_results: { key: "TestMM-AllItems-TinyAbominationinaJar-50706" value: { - dps: 7039.65048 - tps: 6128.4773 + dps: 6836.42727 + tps: 5922.12355 } } dps_results: { key: "TestMM-AllItems-TirelessSkyflareDiamond" value: { - dps: 7125.76233 - tps: 6203.45122 + dps: 6917.54159 + tps: 5992.75991 } } dps_results: { key: "TestMM-AllItems-TirelessStarflareDiamond" value: { - dps: 7125.76233 - tps: 6203.45122 + dps: 6917.54159 + tps: 5992.75991 } } dps_results: { key: "TestMM-AllItems-TomeofArcanePhenomena-36972" value: { - dps: 7064.0621 - tps: 6154.97883 + dps: 6941.65035 + tps: 6021.41701 } } dps_results: { key: "TestMM-AllItems-TrenchantEarthshatterDiamond" value: { - dps: 7125.76233 - tps: 6203.45122 + dps: 6917.54159 + tps: 5992.75991 } } dps_results: { key: "TestMM-AllItems-TrenchantEarthsiegeDiamond" value: { - dps: 7125.76233 - tps: 6203.45122 + dps: 6917.54159 + tps: 5992.75991 } } dps_results: { key: "TestMM-AllItems-UndeadSlayer'sBlessedArmor" value: { - dps: 6066.82279 - tps: 5285.38249 + dps: 6007.91247 + tps: 5211.04331 } } dps_results: { key: "TestMM-AllItems-Val'anyr,HammerofAncientKings-46017" value: { - dps: 7029.29094 - tps: 6123.40811 + dps: 6838.14691 + tps: 5936.55898 } } dps_results: { key: "TestMM-AllItems-Windrunner'sPursuit" value: { - dps: 7318.16034 - tps: 6398.94316 + dps: 7071.76763 + tps: 6155.30487 } } dps_results: { key: "TestMM-AllItems-WingedTalisman-37844" value: { - dps: 7039.44493 - tps: 6128.27175 + dps: 6836.22188 + tps: 5921.91815 } } dps_results: { key: "TestMM-AllItems-Zod'sRepeatingLongbow-50034" value: { - dps: 7779.68401 - tps: 6862.60731 + dps: 7693.22864 + tps: 6764.37967 } } dps_results: { key: "TestMM-AllItems-Zod'sRepeatingLongbow-50638" value: { - dps: 8048.03065 - tps: 7130.59505 + dps: 7934.70944 + tps: 7011.5057 } } dps_results: { key: "TestMM-Average-Default" value: { - dps: 7285.50562 - tps: 6369.64457 + dps: 7112.29535 + tps: 6186.90851 + } +} +dps_results: { + key: "TestMM-Settings-Dwarf-P1-Basic-mm-FullBuffs-LongMultiTarget" + value: { + dps: 7076.09041 + tps: 7262.55096 + } +} +dps_results: { + key: "TestMM-Settings-Dwarf-P1-Basic-mm-FullBuffs-LongSingleTarget" + value: { + dps: 7076.09041 + tps: 6200.41971 + } +} +dps_results: { + key: "TestMM-Settings-Dwarf-P1-Basic-mm-FullBuffs-ShortSingleTarget" + value: { + dps: 8038.16317 + tps: 7026.88437 + } +} +dps_results: { + key: "TestMM-Settings-Dwarf-P1-Basic-mm-NoBuffs-LongMultiTarget" + value: { + dps: 3500.6557 + tps: 4694.37952 + } +} +dps_results: { + key: "TestMM-Settings-Dwarf-P1-Basic-mm-NoBuffs-LongSingleTarget" + value: { + dps: 3500.6557 + tps: 3229.69149 + } +} +dps_results: { + key: "TestMM-Settings-Dwarf-P1-Basic-mm-NoBuffs-ShortSingleTarget" + value: { + dps: 4041.39326 + tps: 3698.14867 } } dps_results: { - key: "TestMM-Settings-Dwarf-P1-Basic-MM-FullBuffs-LongMultiTarget" + key: "TestMM-Settings-Dwarf-P1-Basic-mm_advanced-FullBuffs-LongMultiTarget" value: { dps: 14056.52029 tps: 14361.4925 } } dps_results: { - key: "TestMM-Settings-Dwarf-P1-Basic-MM-FullBuffs-LongSingleTarget" + key: "TestMM-Settings-Dwarf-P1-Basic-mm_advanced-FullBuffs-LongSingleTarget" value: { dps: 7254.38934 tps: 6382.9744 } } dps_results: { - key: "TestMM-Settings-Dwarf-P1-Basic-MM-FullBuffs-ShortSingleTarget" + key: "TestMM-Settings-Dwarf-P1-Basic-mm_advanced-FullBuffs-ShortSingleTarget" value: { dps: 8388.9596 tps: 7378.16101 } } dps_results: { - key: "TestMM-Settings-Dwarf-P1-Basic-MM-NoBuffs-LongMultiTarget" + key: "TestMM-Settings-Dwarf-P1-Basic-mm_advanced-NoBuffs-LongMultiTarget" value: { dps: 7151.95784 tps: 8581.82868 } } dps_results: { - key: "TestMM-Settings-Dwarf-P1-Basic-MM-NoBuffs-LongSingleTarget" + key: "TestMM-Settings-Dwarf-P1-Basic-mm_advanced-NoBuffs-LongSingleTarget" value: { dps: 3560.78143 tps: 3305.68738 } } dps_results: { - key: "TestMM-Settings-Dwarf-P1-Basic-MM-NoBuffs-ShortSingleTarget" + key: "TestMM-Settings-Dwarf-P1-Basic-mm_advanced-NoBuffs-ShortSingleTarget" value: { dps: 4402.85478 tps: 4064.8676 } } dps_results: { - key: "TestMM-Settings-Orc-P1-Basic-MM-FullBuffs-LongMultiTarget" + key: "TestMM-Settings-Orc-P1-Basic-mm-FullBuffs-LongMultiTarget" + value: { + dps: 7103.53931 + tps: 7240.23475 + } +} +dps_results: { + key: "TestMM-Settings-Orc-P1-Basic-mm-FullBuffs-LongSingleTarget" + value: { + dps: 7103.53931 + tps: 6177.95612 + } +} +dps_results: { + key: "TestMM-Settings-Orc-P1-Basic-mm-FullBuffs-ShortSingleTarget" + value: { + dps: 8122.91499 + tps: 7049.60621 + } +} +dps_results: { + key: "TestMM-Settings-Orc-P1-Basic-mm-NoBuffs-LongMultiTarget" + value: { + dps: 3503.27819 + tps: 4682.02164 + } +} +dps_results: { + key: "TestMM-Settings-Orc-P1-Basic-mm-NoBuffs-LongSingleTarget" + value: { + dps: 3503.27819 + tps: 3214.65653 + } +} +dps_results: { + key: "TestMM-Settings-Orc-P1-Basic-mm-NoBuffs-ShortSingleTarget" + value: { + dps: 4075.76257 + tps: 3712.05198 + } +} +dps_results: { + key: "TestMM-Settings-Orc-P1-Basic-mm_advanced-FullBuffs-LongMultiTarget" value: { dps: 14123.93553 tps: 14384.98068 } } dps_results: { - key: "TestMM-Settings-Orc-P1-Basic-MM-FullBuffs-LongSingleTarget" + key: "TestMM-Settings-Orc-P1-Basic-mm_advanced-FullBuffs-LongSingleTarget" value: { dps: 7288.95829 tps: 6365.85241 } } dps_results: { - key: "TestMM-Settings-Orc-P1-Basic-MM-FullBuffs-ShortSingleTarget" + key: "TestMM-Settings-Orc-P1-Basic-mm_advanced-FullBuffs-ShortSingleTarget" value: { dps: 8484.21187 tps: 7412.02716 } } dps_results: { - key: "TestMM-Settings-Orc-P1-Basic-MM-NoBuffs-LongMultiTarget" + key: "TestMM-Settings-Orc-P1-Basic-mm_advanced-NoBuffs-LongMultiTarget" value: { dps: 7228.29214 tps: 8642.87217 } } dps_results: { - key: "TestMM-Settings-Orc-P1-Basic-MM-NoBuffs-LongSingleTarget" + key: "TestMM-Settings-Orc-P1-Basic-mm_advanced-NoBuffs-LongSingleTarget" value: { dps: 3560.00433 tps: 3288.29801 } } dps_results: { - key: "TestMM-Settings-Orc-P1-Basic-MM-NoBuffs-ShortSingleTarget" + key: "TestMM-Settings-Orc-P1-Basic-mm_advanced-NoBuffs-ShortSingleTarget" value: { dps: 4409.56611 tps: 4048.93266 @@ -974,7 +1058,7 @@ dps_results: { dps_results: { key: "TestMM-SwitchInFrontOfTarget-Default" value: { - dps: 7241.41928 - tps: 6379.51326 + dps: 7045.22669 + tps: 6175.84904 } } diff --git a/sim/hunter/TestSV.results b/sim/hunter/TestSV.results index 145546c27f..1402c0d50d 100644 --- a/sim/hunter/TestSV.results +++ b/sim/hunter/TestSV.results @@ -46,1010 +46,1094 @@ character_stats_results: { dps_results: { key: "TestSV-AllItems-Ahn'KaharBloodHunter'sBattlegear" value: { - dps: 7887.91777 - tps: 6897.33006 + dps: 7568.2281 + tps: 6579.23691 } } dps_results: { key: "TestSV-AllItems-Althor'sAbacus-50359" value: { - dps: 7383.14172 - tps: 6348.75977 + dps: 7043.12615 + tps: 6007.26862 } } dps_results: { key: "TestSV-AllItems-Althor'sAbacus-50366" value: { - dps: 7383.14172 - tps: 6348.75977 + dps: 7043.12615 + tps: 6007.26862 } } dps_results: { key: "TestSV-AllItems-AshtongueTalismanofSwiftness-32487" value: { - dps: 7434.34054 - tps: 6395.61752 + dps: 7089.25708 + tps: 6049.1927 } } dps_results: { key: "TestSV-AllItems-AustereEarthsiegeDiamond" value: { - dps: 7548.98352 - tps: 6495.26359 + dps: 7171.36923 + tps: 6119.01495 } } dps_results: { key: "TestSV-AllItems-Bandit'sInsignia-40371" value: { - dps: 7560.61898 - tps: 6515.55578 + dps: 7211.32893 + tps: 6165.22842 } } dps_results: { key: "TestSV-AllItems-BaubleofTrueBlood-50354" value: { - dps: 7384.316 - tps: 6349.7515 - hps: 91.41974 + dps: 7044.25864 + tps: 6008.80353 + hps: 91.76108 } } dps_results: { key: "TestSV-AllItems-BaubleofTrueBlood-50726" value: { - dps: 7384.316 - tps: 6349.7515 - hps: 91.41974 + dps: 7044.25864 + tps: 6008.80353 + hps: 91.76108 } } dps_results: { key: "TestSV-AllItems-BeamingEarthsiegeDiamond" value: { - dps: 7559.24983 - tps: 6508.49219 + dps: 7182.37947 + tps: 6132.97227 } } dps_results: { key: "TestSV-AllItems-Beast-tamer'sShoulders-30892" value: { - dps: 7501.97139 - tps: 6466.12204 + dps: 7165.52732 + tps: 6131.04747 } } dps_results: { key: "TestSV-AllItems-BlackBowoftheBetrayer-32336" value: { - dps: 7281.19084 - tps: 6237.05142 + dps: 6925.37844 + tps: 5889.92646 } } dps_results: { key: "TestSV-AllItems-BlackBruise-50035" value: { - dps: 7325.67609 - tps: 6299.93192 + dps: 6967.82155 + tps: 5941.22246 } } dps_results: { key: "TestSV-AllItems-BlackBruise-50692" value: { - dps: 7315.02916 - tps: 6289.62288 + dps: 6958.31376 + tps: 5932.05314 } } dps_results: { key: "TestSV-AllItems-BlessedGarboftheUndeadSlayer" value: { - dps: 6225.82044 - tps: 5361.4416 + dps: 5968.12433 + tps: 5099.86343 } } dps_results: { key: "TestSV-AllItems-BlessedRegaliaofUndeadCleansing" value: { - dps: 5977.43321 - tps: 5138.18604 + dps: 5708.97365 + tps: 4861.7882 } } dps_results: { key: "TestSV-AllItems-BracingEarthsiegeDiamond" value: { - dps: 7539.33523 - tps: 6360.0629 + dps: 7162.4561 + tps: 5992.04727 } } dps_results: { key: "TestSV-AllItems-Bryntroll,theBoneArbiter-50415" value: { - dps: 7767.42287 - tps: 6700.08836 + dps: 7386.82973 + tps: 6320.911 } } dps_results: { key: "TestSV-AllItems-Bryntroll,theBoneArbiter-50709" value: { - dps: 7771.10096 - tps: 6702.66617 + dps: 7390.2331 + tps: 6323.21345 } } dps_results: { key: "TestSV-AllItems-ChaoticSkyflareDiamond" value: { - dps: 7707.10181 - tps: 6656.40136 + dps: 7329.18565 + tps: 6279.832 } } dps_results: { key: "TestSV-AllItems-CorpseTongueCoin-50349" value: { - dps: 7383.14172 - tps: 6348.75977 + dps: 7043.12615 + tps: 6007.26862 } } dps_results: { key: "TestSV-AllItems-CorpseTongueCoin-50352" value: { - dps: 7383.14172 - tps: 6348.75977 + dps: 7043.12615 + tps: 6007.26862 } } dps_results: { key: "TestSV-AllItems-CorrodedSkeletonKey-50356" value: { - dps: 7452.07545 - tps: 6396.8144 + dps: 7106.95055 + tps: 6050.16354 hps: 64 } } dps_results: { key: "TestSV-AllItems-CryptstalkerBattlegear" value: { - dps: 6802.14795 - tps: 5824.67954 + dps: 6578.29672 + tps: 5591.24153 } } dps_results: { key: "TestSV-AllItems-DarkmoonCard:Berserker!-42989" value: { - dps: 7483.76664 - tps: 6449.52458 + dps: 7126.93046 + tps: 6090.6593 } } dps_results: { key: "TestSV-AllItems-DarkmoonCard:Death-42990" value: { - dps: 7532.46892 - tps: 6498.09186 + dps: 7184.47975 + tps: 6149.39893 } } dps_results: { key: "TestSV-AllItems-DarkmoonCard:Greatness-44255" value: { - dps: 7633.85387 - tps: 6583.43289 + dps: 7258.46502 + tps: 6209.27581 } } dps_results: { key: "TestSV-AllItems-Death'sChoice-47464" value: { - dps: 7880.69897 - tps: 6814.43102 + dps: 7474.85928 + tps: 6409.03622 } } dps_results: { key: "TestSV-AllItems-DeathKnight'sAnguish-38212" value: { - dps: 7461.83586 - tps: 6427.62273 + dps: 7105.35799 + tps: 6069.96849 } } dps_results: { key: "TestSV-AllItems-Deathbringer'sWill-50362" value: { - dps: 7727.84026 - tps: 6681.31674 + dps: 7389.6576 + tps: 6341.50513 } } dps_results: { key: "TestSV-AllItems-Deathbringer'sWill-50363" value: { - dps: 7772.7931 - tps: 6725.37498 + dps: 7434.48465 + tps: 6385.4043 } } dps_results: { key: "TestSV-AllItems-Defender'sCode-40257" value: { - dps: 7383.15176 - tps: 6348.76981 + dps: 7043.12615 + tps: 6007.26862 } } dps_results: { key: "TestSV-AllItems-DestructiveSkyflareDiamond" value: { - dps: 7562.16626 - tps: 6511.45628 + dps: 7188.79133 + tps: 6139.43094 } } dps_results: { key: "TestSV-AllItems-DislodgedForeignObject-50348" value: { - dps: 7485.32324 - tps: 6448.22632 + dps: 7204.97715 + tps: 6171.34937 } } dps_results: { key: "TestSV-AllItems-DislodgedForeignObject-50353" value: { - dps: 7477.67947 - tps: 6439.93776 + dps: 7193.54789 + tps: 6158.37171 } } dps_results: { key: "TestSV-AllItems-EffulgentSkyflareDiamond" value: { - dps: 7548.98352 - tps: 6495.26359 + dps: 7171.36923 + tps: 6119.01495 } } dps_results: { key: "TestSV-AllItems-EmberSkyflareDiamond" value: { - dps: 7546.80932 - tps: 6495.33387 + dps: 7169.18228 + tps: 6119.07449 } } dps_results: { key: "TestSV-AllItems-EnigmaticSkyflareDiamond" value: { - dps: 7559.24983 - tps: 6508.54938 + dps: 7182.37947 + tps: 6133.02581 } } dps_results: { key: "TestSV-AllItems-EnigmaticStarflareDiamond" value: { - dps: 7553.46499 - tps: 6502.76716 + dps: 7179.2705 + tps: 6129.8733 } } dps_results: { key: "TestSV-AllItems-EphemeralSnowflake-50260" value: { - dps: 7432.20966 - tps: 6402.16641 + dps: 7128.41704 + tps: 6093.29597 } } dps_results: { key: "TestSV-AllItems-EssenceofGossamer-37220" value: { - dps: 7416.69716 - tps: 6372.15038 + dps: 7074.19855 + tps: 6028.15167 } } dps_results: { key: "TestSV-AllItems-EternalEarthsiegeDiamond" value: { - dps: 7539.33523 - tps: 6488.54937 + dps: 7162.4561 + tps: 6113.03761 } } dps_results: { key: "TestSV-AllItems-ExtractofNecromanticPower-40373" value: { - dps: 7540.99556 - tps: 6506.4667 + dps: 7193.46543 + tps: 6158.57783 } } dps_results: { key: "TestSV-AllItems-EyeoftheBroodmother-45308" value: { - dps: 7474.09484 - tps: 6439.80391 + dps: 7120.61205 + tps: 6085.47934 } } dps_results: { key: "TestSV-AllItems-Figurine-SapphireOwl-42413" value: { - dps: 7412.53662 - tps: 6376.08097 + dps: 7069.65318 + tps: 6031.80995 } } dps_results: { key: "TestSV-AllItems-ForethoughtTalisman-40258" value: { - dps: 7383.14172 - tps: 6348.75977 + dps: 7043.12615 + tps: 6007.26862 } } dps_results: { key: "TestSV-AllItems-ForgeEmber-37660" value: { - dps: 7458.18975 - tps: 6423.78567 + dps: 7108.50008 + tps: 6073.29184 } } dps_results: { key: "TestSV-AllItems-ForlornSkyflareDiamond" value: { - dps: 7539.33523 - tps: 6488.54937 + dps: 7162.4561 + tps: 6113.03761 } } dps_results: { key: "TestSV-AllItems-ForlornStarflareDiamond" value: { - dps: 7539.33523 - tps: 6488.54937 + dps: 7162.4561 + tps: 6113.03761 } } dps_results: { key: "TestSV-AllItems-FuryoftheFiveFlights-40431" value: { - dps: 7577.95741 - tps: 6526.60659 + dps: 7218.75796 + tps: 6165.95182 } } dps_results: { key: "TestSV-AllItems-FuturesightRune-38763" value: { - dps: 7383.15176 - tps: 6348.76981 + dps: 7043.12615 + tps: 6007.26862 } } dps_results: { key: "TestSV-AllItems-Gladiator'sPursuit" value: { - dps: 7518.44138 - tps: 6533.22755 + dps: 7068.62846 + tps: 6073.06883 } } dps_results: { key: "TestSV-AllItems-GlowingTwilightScale-54573" value: { - dps: 7383.15103 - tps: 6348.76908 + dps: 7043.12615 + tps: 6007.26862 } } dps_results: { key: "TestSV-AllItems-GlowingTwilightScale-54589" value: { - dps: 7383.15103 - tps: 6348.76908 + dps: 7043.12615 + tps: 6007.26862 } } dps_results: { key: "TestSV-AllItems-GnomishLightningGenerator-41121" value: { - dps: 7514.1229 - tps: 6479.61246 + dps: 7158.32427 + tps: 6123.4443 } } dps_results: { key: "TestSV-AllItems-Gronnstalker'sArmor" value: { - dps: 5571.28617 - tps: 4758.3656 + dps: 5305.42975 + tps: 4480.42254 } } dps_results: { key: "TestSV-AllItems-Heartpierce-49982" value: { - dps: 7799.41454 - tps: 6735.36108 + dps: 7415.05162 + tps: 6352.4158 } } dps_results: { key: "TestSV-AllItems-Heartpierce-50641" value: { - dps: 7803.46752 - tps: 6738.47801 + dps: 7418.7722 + tps: 6355.19977 } } dps_results: { key: "TestSV-AllItems-IllustrationoftheDragonSoul-40432" value: { - dps: 7383.13321 - tps: 6348.75126 + dps: 7043.12615 + tps: 6007.26862 } } dps_results: { key: "TestSV-AllItems-ImpassiveSkyflareDiamond" value: { - dps: 7559.24983 - tps: 6508.54938 + dps: 7182.37947 + tps: 6133.02581 } } dps_results: { key: "TestSV-AllItems-ImpassiveStarflareDiamond" value: { - dps: 7553.46499 - tps: 6502.76716 + dps: 7179.2705 + tps: 6129.8733 } } dps_results: { key: "TestSV-AllItems-IncisorFragment-37723" value: { - dps: 7531.85935 - tps: 6489.28489 + dps: 7184.84288 + tps: 6140.77307 } } dps_results: { key: "TestSV-AllItems-InsightfulEarthsiegeDiamond" value: { - dps: 7553.97602 - tps: 6508.43196 + dps: 7175.63282 + tps: 6131.0572 } } dps_results: { key: "TestSV-AllItems-InvigoratingEarthsiegeDiamond" value: { - dps: 7564.1193 - tps: 6511.00371 + dps: 7182.19683 + tps: 6130.44779 hps: 12.062 } } dps_results: { key: "TestSV-AllItems-LastWord-50179" value: { - dps: 7749.95196 - tps: 6687.84375 + dps: 7370.66375 + tps: 6309.97439 } } dps_results: { key: "TestSV-AllItems-LastWord-50708" value: { - dps: 7746.88688 - tps: 6685.69557 + dps: 7367.82762 + tps: 6308.05569 } } dps_results: { key: "TestSV-AllItems-Lavanthor'sTalisman-37872" value: { - dps: 7383.14172 - tps: 6348.75977 + dps: 7043.12615 + tps: 6007.26862 } } dps_results: { key: "TestSV-AllItems-MajesticDragonFigurine-40430" value: { - dps: 7383.14172 - tps: 6348.75977 + dps: 7043.12615 + tps: 6007.26862 } } dps_results: { key: "TestSV-AllItems-MeteoriteWhetstone-37390" value: { - dps: 7492.50265 - tps: 6455.97793 + dps: 7186.89982 + tps: 6156.43512 } } dps_results: { key: "TestSV-AllItems-NevermeltingIceCrystal-50259" value: { - dps: 7501.44874 - tps: 6468.44278 + dps: 7159.08791 + tps: 6123.37673 } } dps_results: { key: "TestSV-AllItems-Nibelung-49992" value: { - dps: 7824.62745 - tps: 6756.11163 + dps: 7438.01894 + tps: 6370.93073 } } dps_results: { key: "TestSV-AllItems-Nibelung-50648" value: { - dps: 7831.54891 - tps: 6762.15247 + dps: 7444.29282 + tps: 6376.32618 } } dps_results: { key: "TestSV-AllItems-OfferingofSacrifice-37638" value: { - dps: 7383.13138 - tps: 6348.74942 + dps: 7043.12615 + tps: 6007.26862 } } dps_results: { key: "TestSV-AllItems-PersistentEarthshatterDiamond" value: { - dps: 7560.87214 - tps: 6508.20187 + dps: 7181.8373 + tps: 6130.53328 } } dps_results: { key: "TestSV-AllItems-PersistentEarthsiegeDiamond" value: { - dps: 7565.93965 - tps: 6512.82599 + dps: 7186.39758 + tps: 6134.6499 } } dps_results: { key: "TestSV-AllItems-PetrifiedScarab-21685" value: { - dps: 7383.13138 - tps: 6348.74942 + dps: 7043.12615 + tps: 6007.26862 } } dps_results: { key: "TestSV-AllItems-PetrifiedTwilightScale-54571" value: { - dps: 7383.14172 - tps: 6348.75977 + dps: 7043.12615 + tps: 6007.26862 } } dps_results: { key: "TestSV-AllItems-PetrifiedTwilightScale-54591" value: { - dps: 7383.14172 - tps: 6348.75977 + dps: 7043.12615 + tps: 6007.26862 } } dps_results: { key: "TestSV-AllItems-PowerfulEarthshatterDiamond" value: { - dps: 7547.17446 - tps: 6494.00467 + dps: 7169.69802 + tps: 6117.8942 } } dps_results: { key: "TestSV-AllItems-PowerfulEarthsiegeDiamond" value: { - dps: 7548.98352 - tps: 6495.26359 + dps: 7171.36923 + tps: 6119.01495 } } dps_results: { key: "TestSV-AllItems-PurifiedShardoftheGods" value: { - dps: 7383.14172 - tps: 6348.75977 + dps: 7043.12615 + tps: 6007.26862 } } dps_results: { key: "TestSV-AllItems-ReignoftheDead-47316" value: { - dps: 7399.22331 - tps: 6364.78465 + dps: 7043.12615 + tps: 6007.26862 } } dps_results: { key: "TestSV-AllItems-ReignoftheDead-47477" value: { - dps: 7401.19725 - tps: 6366.7586 + dps: 7043.12615 + tps: 6007.26862 } } dps_results: { key: "TestSV-AllItems-RelentlessEarthsiegeDiamond" value: { - dps: 7718.0752 - tps: 6665.5027 + dps: 7341.16793 + tps: 6290.01987 } } dps_results: { key: "TestSV-AllItems-RevitalizingSkyflareDiamond" value: { - dps: 7539.33523 - tps: 6488.30899 + dps: 7162.4561 + tps: 6112.81495 } } dps_results: { key: "TestSV-AllItems-RuneofRepulsion-40372" value: { - dps: 7383.15176 - tps: 6348.76981 + dps: 7043.12615 + tps: 6007.26862 } } dps_results: { key: "TestSV-AllItems-ScourgestalkerBattlegear" value: { - dps: 7401.37841 - tps: 6403.3511 + dps: 7061.01933 + tps: 6064.6217 } } dps_results: { key: "TestSV-AllItems-SealofthePantheon-36993" value: { - dps: 7383.15176 - tps: 6348.76981 + dps: 7043.12615 + tps: 6007.26862 } } dps_results: { key: "TestSV-AllItems-Shadowmourne-49623" value: { - dps: 7966.83059 - tps: 6897.31057 + dps: 7598.11752 + tps: 6527.68985 } } dps_results: { key: "TestSV-AllItems-ShinyShardoftheGods" value: { - dps: 7383.14172 - tps: 6348.75977 + dps: 7043.12615 + tps: 6007.26862 } } dps_results: { key: "TestSV-AllItems-Sindragosa'sFlawlessFang-50361" value: { - dps: 7452.08476 - tps: 6396.82371 + dps: 7106.95055 + tps: 6050.16354 } } dps_results: { key: "TestSV-AllItems-SliverofPureIce-50339" value: { - dps: 7383.14172 - tps: 6353.8952 + dps: 7043.12615 + tps: 6012.21508 } } dps_results: { key: "TestSV-AllItems-SliverofPureIce-50346" value: { - dps: 7383.14172 - tps: 6354.37144 + dps: 7043.12615 + tps: 6012.60186 } } dps_results: { key: "TestSV-AllItems-SoulPreserver-37111" value: { - dps: 7383.14172 - tps: 6348.75977 + dps: 7043.12615 + tps: 6007.26862 } } dps_results: { key: "TestSV-AllItems-SouloftheDead-40382" value: { - dps: 7478.31231 - tps: 6445.60115 + dps: 7124.75598 + tps: 6089.64568 } } dps_results: { key: "TestSV-AllItems-SparkofLife-37657" value: { - dps: 7437.5819 - tps: 6398.30574 + dps: 7127.22048 + tps: 6091.50226 } } dps_results: { key: "TestSV-AllItems-SphereofRedDragon'sBlood-37166" value: { - dps: 7482.88079 - tps: 6439.13223 + dps: 7134.07918 + tps: 6089.00142 } } dps_results: { key: "TestSV-AllItems-StormshroudArmor" value: { - dps: 5772.58917 - tps: 4946.10294 + dps: 5578.81954 + tps: 4734.31362 } } dps_results: { key: "TestSV-AllItems-SwiftSkyflareDiamond" value: { - dps: 7565.93965 - tps: 6512.82599 + dps: 7186.39758 + tps: 6134.6499 } } dps_results: { key: "TestSV-AllItems-SwiftStarflareDiamond" value: { - dps: 7560.87214 - tps: 6508.20187 + dps: 7181.8373 + tps: 6130.53328 } } dps_results: { key: "TestSV-AllItems-SwiftWindfireDiamond" value: { - dps: 7552.004 - tps: 6500.10967 + dps: 7173.8568 + tps: 6123.32918 } } dps_results: { key: "TestSV-AllItems-TalismanofTrollDivinity-37734" value: { - dps: 7383.15176 - tps: 6348.76981 + dps: 7043.12615 + tps: 6007.26862 } } dps_results: { key: "TestSV-AllItems-TearsoftheVanquished-47215" value: { - dps: 7441.92758 - tps: 6402.15005 + dps: 7096.17582 + tps: 6054.91028 } } dps_results: { key: "TestSV-AllItems-TheFistsofFury" value: { - dps: 7374.41101 - tps: 6347.26927 + dps: 7012.20212 + tps: 5984.2119 } } dps_results: { key: "TestSV-AllItems-TheGeneral'sHeart-45507" value: { - dps: 7383.14172 - tps: 6348.75977 + dps: 7043.12615 + tps: 6007.26862 } } dps_results: { key: "TestSV-AllItems-TheTwinBladesofAzzinoth" value: { - dps: 7518.24858 - tps: 6489.64266 + dps: 7136.49444 + tps: 6107.58836 } } dps_results: { key: "TestSV-AllItems-ThunderingSkyflareDiamond" value: { - dps: 7579.31769 - tps: 6529.10678 + dps: 7184.75893 + tps: 6138.26975 } } dps_results: { key: "TestSV-AllItems-TinyAbominationinaJar-50351" value: { - dps: 7383.28424 - tps: 6348.90229 + dps: 7043.29403 + tps: 6007.4365 } } dps_results: { key: "TestSV-AllItems-TinyAbominationinaJar-50706" value: { - dps: 7383.28424 - tps: 6348.90229 + dps: 7043.29403 + tps: 6007.4365 } } dps_results: { key: "TestSV-AllItems-TirelessSkyflareDiamond" value: { - dps: 7539.33523 - tps: 6488.54937 + dps: 7162.4561 + tps: 6113.03761 } } dps_results: { key: "TestSV-AllItems-TirelessStarflareDiamond" value: { - dps: 7539.33523 - tps: 6488.54937 + dps: 7162.4561 + tps: 6113.03761 } } dps_results: { key: "TestSV-AllItems-TomeofArcanePhenomena-36972" value: { - dps: 7392.59055 - tps: 6360.24637 + dps: 7104.51208 + tps: 6063.82853 } } dps_results: { key: "TestSV-AllItems-TrenchantEarthshatterDiamond" value: { - dps: 7539.33523 - tps: 6488.54937 + dps: 7162.4561 + tps: 6113.03761 } } dps_results: { key: "TestSV-AllItems-TrenchantEarthsiegeDiamond" value: { - dps: 7539.33523 - tps: 6488.54937 + dps: 7162.4561 + tps: 6113.03761 } } dps_results: { key: "TestSV-AllItems-UndeadSlayer'sBlessedArmor" value: { - dps: 6183.21565 - tps: 5325.36086 + dps: 5923.66905 + tps: 5054.10259 } } dps_results: { key: "TestSV-AllItems-Val'anyr,HammerofAncientKings-46017" value: { - dps: 7357.19693 - tps: 6329.13314 + dps: 7011.80784 + tps: 5983.39663 } } dps_results: { key: "TestSV-AllItems-Windrunner'sPursuit" value: { - dps: 7512.93209 - tps: 6492.45313 + dps: 7202.38286 + tps: 6189.49778 } } dps_results: { key: "TestSV-AllItems-WingedTalisman-37844" value: { - dps: 7383.15176 - tps: 6348.76981 + dps: 7043.12615 + tps: 6007.26862 } } dps_results: { key: "TestSV-AllItems-Zod'sRepeatingLongbow-50034" value: { - dps: 7968.27964 - tps: 6914.9918 + dps: 7649.54608 + tps: 6606.75495 } } dps_results: { key: "TestSV-AllItems-Zod'sRepeatingLongbow-50638" value: { - dps: 8107.67813 - tps: 7060.96214 + dps: 7778.19923 + tps: 6731.21828 } } dps_results: { key: "TestSV-Average-Default" value: { - dps: 7677.23945 - tps: 6628.84521 + dps: 7345.36519 + tps: 6297.99179 } } dps_results: { - key: "TestSV-Settings-Dwarf-P1-Basic-AOE-FullBuffs-LongMultiTarget" + key: "TestSV-Settings-Dwarf-P1-Basic-aoe-FullBuffs-LongMultiTarget" value: { dps: 31060.39892 tps: 31017.21368 } } dps_results: { - key: "TestSV-Settings-Dwarf-P1-Basic-AOE-FullBuffs-LongSingleTarget" + key: "TestSV-Settings-Dwarf-P1-Basic-aoe-FullBuffs-LongSingleTarget" value: { dps: 3625.22567 tps: 2637.0629 } } dps_results: { - key: "TestSV-Settings-Dwarf-P1-Basic-AOE-FullBuffs-ShortSingleTarget" + key: "TestSV-Settings-Dwarf-P1-Basic-aoe-FullBuffs-ShortSingleTarget" value: { dps: 4886.37703 tps: 3723.35344 } } dps_results: { - key: "TestSV-Settings-Dwarf-P1-Basic-AOE-NoBuffs-LongMultiTarget" + key: "TestSV-Settings-Dwarf-P1-Basic-aoe-NoBuffs-LongMultiTarget" value: { dps: 13107.72872 tps: 13990.7011 } } dps_results: { - key: "TestSV-Settings-Dwarf-P1-Basic-AOE-NoBuffs-LongSingleTarget" + key: "TestSV-Settings-Dwarf-P1-Basic-aoe-NoBuffs-LongSingleTarget" value: { dps: 1458.77564 tps: 1151.94758 } } dps_results: { - key: "TestSV-Settings-Dwarf-P1-Basic-AOE-NoBuffs-ShortSingleTarget" + key: "TestSV-Settings-Dwarf-P1-Basic-aoe-NoBuffs-ShortSingleTarget" value: { dps: 2178.89371 tps: 1793.72999 } } dps_results: { - key: "TestSV-Settings-Dwarf-P1-Basic-SV-FullBuffs-LongMultiTarget" + key: "TestSV-Settings-Dwarf-P1-Basic-sv-FullBuffs-LongMultiTarget" + value: { + dps: 7294.46987 + tps: 7510.93466 + } +} +dps_results: { + key: "TestSV-Settings-Dwarf-P1-Basic-sv-FullBuffs-LongSingleTarget" + value: { + dps: 7294.46987 + tps: 6298.34342 + } +} +dps_results: { + key: "TestSV-Settings-Dwarf-P1-Basic-sv-FullBuffs-ShortSingleTarget" + value: { + dps: 8180.85907 + tps: 7033.52729 + } +} +dps_results: { + key: "TestSV-Settings-Dwarf-P1-Basic-sv-NoBuffs-LongMultiTarget" + value: { + dps: 3744.71977 + tps: 4842.75639 + } +} +dps_results: { + key: "TestSV-Settings-Dwarf-P1-Basic-sv-NoBuffs-LongSingleTarget" + value: { + dps: 3744.71977 + tps: 3423.6118 + } +} +dps_results: { + key: "TestSV-Settings-Dwarf-P1-Basic-sv-NoBuffs-ShortSingleTarget" + value: { + dps: 4416.49727 + tps: 4017.76036 + } +} +dps_results: { + key: "TestSV-Settings-Dwarf-P1-Basic-sv_advanced-FullBuffs-LongMultiTarget" value: { dps: 20805.93715 tps: 21147.06699 } } dps_results: { - key: "TestSV-Settings-Dwarf-P1-Basic-SV-FullBuffs-LongSingleTarget" + key: "TestSV-Settings-Dwarf-P1-Basic-sv_advanced-FullBuffs-LongSingleTarget" value: { dps: 7674.20379 tps: 6678.50957 } } dps_results: { - key: "TestSV-Settings-Dwarf-P1-Basic-SV-FullBuffs-ShortSingleTarget" + key: "TestSV-Settings-Dwarf-P1-Basic-sv_advanced-FullBuffs-ShortSingleTarget" value: { dps: 9035.73531 tps: 7873.32996 } } dps_results: { - key: "TestSV-Settings-Dwarf-P1-Basic-SV-NoBuffs-LongMultiTarget" + key: "TestSV-Settings-Dwarf-P1-Basic-sv_advanced-NoBuffs-LongMultiTarget" value: { dps: 11127.56021 tps: 12244.96943 } } dps_results: { - key: "TestSV-Settings-Dwarf-P1-Basic-SV-NoBuffs-LongSingleTarget" + key: "TestSV-Settings-Dwarf-P1-Basic-sv_advanced-NoBuffs-LongSingleTarget" value: { dps: 3852.4054 tps: 3533.31513 } } dps_results: { - key: "TestSV-Settings-Dwarf-P1-Basic-SV-NoBuffs-ShortSingleTarget" + key: "TestSV-Settings-Dwarf-P1-Basic-sv_advanced-NoBuffs-ShortSingleTarget" value: { dps: 4784.2999 tps: 4385.60063 } } dps_results: { - key: "TestSV-Settings-Orc-P1-Basic-AOE-FullBuffs-LongMultiTarget" + key: "TestSV-Settings-Orc-P1-Basic-aoe-FullBuffs-LongMultiTarget" value: { dps: 31043.87526 tps: 30943.98744 } } dps_results: { - key: "TestSV-Settings-Orc-P1-Basic-AOE-FullBuffs-LongSingleTarget" + key: "TestSV-Settings-Orc-P1-Basic-aoe-FullBuffs-LongSingleTarget" value: { dps: 3673.65532 tps: 2631.13163 } } dps_results: { - key: "TestSV-Settings-Orc-P1-Basic-AOE-FullBuffs-ShortSingleTarget" + key: "TestSV-Settings-Orc-P1-Basic-aoe-FullBuffs-ShortSingleTarget" value: { dps: 4969.11967 tps: 3738.27222 } } dps_results: { - key: "TestSV-Settings-Orc-P1-Basic-AOE-NoBuffs-LongMultiTarget" + key: "TestSV-Settings-Orc-P1-Basic-aoe-NoBuffs-LongMultiTarget" value: { dps: 13147.00183 tps: 14003.87871 } } dps_results: { - key: "TestSV-Settings-Orc-P1-Basic-AOE-NoBuffs-LongSingleTarget" + key: "TestSV-Settings-Orc-P1-Basic-aoe-NoBuffs-LongSingleTarget" value: { dps: 1479.79057 tps: 1153.06491 } } dps_results: { - key: "TestSV-Settings-Orc-P1-Basic-AOE-NoBuffs-ShortSingleTarget" + key: "TestSV-Settings-Orc-P1-Basic-aoe-NoBuffs-ShortSingleTarget" value: { dps: 2205.12365 tps: 1798.74725 } } dps_results: { - key: "TestSV-Settings-Orc-P1-Basic-SV-FullBuffs-LongMultiTarget" + key: "TestSV-Settings-Orc-P1-Basic-sv-FullBuffs-LongMultiTarget" + value: { + dps: 7341.16793 + tps: 7499.00668 + } +} +dps_results: { + key: "TestSV-Settings-Orc-P1-Basic-sv-FullBuffs-LongSingleTarget" + value: { + dps: 7341.16793 + tps: 6290.01987 + } +} +dps_results: { + key: "TestSV-Settings-Orc-P1-Basic-sv-FullBuffs-ShortSingleTarget" + value: { + dps: 8257.07741 + tps: 7042.11394 + } +} +dps_results: { + key: "TestSV-Settings-Orc-P1-Basic-sv-NoBuffs-LongMultiTarget" + value: { + dps: 3750.09468 + tps: 4826.52461 + } +} +dps_results: { + key: "TestSV-Settings-Orc-P1-Basic-sv-NoBuffs-LongSingleTarget" + value: { + dps: 3750.09468 + tps: 3409.03253 + } +} +dps_results: { + key: "TestSV-Settings-Orc-P1-Basic-sv-NoBuffs-ShortSingleTarget" + value: { + dps: 4442.19244 + tps: 4020.90726 + } +} +dps_results: { + key: "TestSV-Settings-Orc-P1-Basic-sv_advanced-FullBuffs-LongMultiTarget" value: { dps: 20920.22975 tps: 21198.34186 } } dps_results: { - key: "TestSV-Settings-Orc-P1-Basic-SV-FullBuffs-LongSingleTarget" + key: "TestSV-Settings-Orc-P1-Basic-sv_advanced-FullBuffs-LongSingleTarget" value: { dps: 7718.0752 tps: 6665.5027 } } dps_results: { - key: "TestSV-Settings-Orc-P1-Basic-SV-FullBuffs-ShortSingleTarget" + key: "TestSV-Settings-Orc-P1-Basic-sv_advanced-FullBuffs-ShortSingleTarget" value: { dps: 9101.7618 tps: 7870.83539 } } dps_results: { - key: "TestSV-Settings-Orc-P1-Basic-SV-NoBuffs-LongMultiTarget" + key: "TestSV-Settings-Orc-P1-Basic-sv_advanced-NoBuffs-LongMultiTarget" value: { dps: 11197.83185 tps: 12302.31472 } } dps_results: { - key: "TestSV-Settings-Orc-P1-Basic-SV-NoBuffs-LongSingleTarget" + key: "TestSV-Settings-Orc-P1-Basic-sv_advanced-NoBuffs-LongSingleTarget" value: { dps: 3878.18028 tps: 3537.26158 } } dps_results: { - key: "TestSV-Settings-Orc-P1-Basic-SV-NoBuffs-ShortSingleTarget" + key: "TestSV-Settings-Orc-P1-Basic-sv_advanced-NoBuffs-ShortSingleTarget" value: { dps: 4822.03228 tps: 4399.80919 @@ -1058,7 +1142,7 @@ dps_results: { dps_results: { key: "TestSV-SwitchInFrontOfTarget-Default" value: { - dps: 7612.24326 - tps: 6640.48847 + dps: 7260.2227 + tps: 6301.42126 } } diff --git a/sim/hunter/hunter_test.go b/sim/hunter/hunter_test.go index b542876c1a..c93a4a8fb0 100644 --- a/sim/hunter/hunter_test.go +++ b/sim/hunter/hunter_test.go @@ -1,6 +1,8 @@ package hunter import ( + "log" + "os" "testing" _ "github.com/wowsims/wotlk/sim/common" // imported to get item effects included. @@ -12,6 +14,16 @@ func init() { RegisterHunter() } +func GetAplRotation(dir string, file string) core.RotationCombo { + filePath := dir + "/" + file + ".json" + data, err := os.ReadFile(filePath) + if err != nil { + log.Fatalf("failed to load apl json file: %s, %s", filePath, err) + } + + return core.RotationCombo{Label: file, Rotation: core.APLRotationFromJsonString(string(data))} +} + func TestBM(t *testing.T) { core.RunTestSuite(t, t.Name(), core.FullCharacterTestSuiteGenerator(core.CharacterSuiteConfig{ Class: proto.Class_ClassHunter, @@ -23,7 +35,7 @@ func TestBM(t *testing.T) { Glyphs: BMGlyphs, Consumes: FullConsumes, SpecOptions: core.SpecOptionsCombo{Label: "Basic", SpecOptions: PlayerOptionsBasic}, - Rotation: core.RotationCombo{Label: "BM", Rotation: BMRotation}, + Rotation: GetAplRotation("../../ui/hunter/apls", "bm"), ItemFilter: ItemFilter, })) @@ -40,7 +52,10 @@ func TestMM(t *testing.T) { Glyphs: MMGlyphs, Consumes: FullConsumes, SpecOptions: core.SpecOptionsCombo{Label: "Basic", SpecOptions: PlayerOptionsBasic}, - Rotation: core.RotationCombo{Label: "MM", Rotation: MMRotation}, + Rotation: GetAplRotation("../../ui/hunter/apls", "mm"), + OtherRotations: []core.RotationCombo{ + GetAplRotation("../../ui/hunter/apls", "mm_advanced"), + }, ItemFilter: ItemFilter, })) @@ -57,9 +72,10 @@ func TestSV(t *testing.T) { Glyphs: SVGlyphs, Consumes: FullConsumes, SpecOptions: core.SpecOptionsCombo{Label: "Basic", SpecOptions: PlayerOptionsBasic}, - Rotation: core.RotationCombo{Label: "SV", Rotation: SVRotation}, + Rotation: GetAplRotation("../../ui/hunter/apls", "sv"), OtherRotations: []core.RotationCombo{ - {Label: "AOE", Rotation: AOERotation}, + GetAplRotation("../../ui/hunter/apls", "sv_advanced"), + GetAplRotation("../../ui/hunter/apls", "aoe"), }, ItemFilter: ItemFilter, @@ -166,95 +182,6 @@ var PlayerOptionsBasic = &proto.Player_Hunter{ }, } -var AOERotation = core.APLRotationFromJsonString(`{ - "type": "TypeAPL", - "prepullActions": [ - {"action":{"castSpell":{"spellId":{"otherId":"OtherActionPotion"}}},"doAtValue":{"const":{"val":"-1s"}}} - ], - "priorityList": [ - {"action":{"condition":{"cmp":{"op":"OpGt","lhs":{"currentTime":{}},"rhs":{"const":{"val":"10s"}}}},"autocastOtherCooldowns":{}}}, - {"action":{"condition":{"and":{"vals":[{"not":{"val":{"auraIsActive":{"auraId":{"spellId":34074}}}}},{"cmp":{"op":"OpLt","lhs":{"currentManaPercent":{}},"rhs":{"const":{"val":"10%"}}}}]}},"castSpell":{"spellId":{"spellId":34074}}}}, - {"action":{"condition":{"and":{"vals":[{"not":{"val":{"auraIsActive":{"auraId":{"spellId":61847}}}}},{"cmp":{"op":"OpGt","lhs":{"currentManaPercent":{}},"rhs":{"const":{"val":"30%"}}}}]}},"castSpell":{"spellId":{"spellId":61847}}}}, - {"hide":true,"action":{"multidot":{"spellId":{"spellId":49001},"maxDots":3,"maxOverlap":{"const":{"val":"0ms"}}}}}, - {"action":{"condition":{"not":{"val":{"dotIsActive":{"spellId":{"spellId":49067}}}}},"castSpell":{"spellId":{"tag":1,"spellId":49067}}}}, - {"action":{"castSpell":{"spellId":{"spellId":58434}}}} - ] -}`) - -var BMRotation = core.APLRotationFromJsonString(`{ - "type": "TypeAPL", - "prepullActions": [ - {"action":{"castSpell":{"spellId":{"otherId":"OtherActionPotion"}}},"doAtValue":{"const":{"val":"-1s"}}} - ], - "priorityList": [ - {"action":{"condition":{"cmp":{"op":"OpGt","lhs":{"currentTime":{}},"rhs":{"const":{"val":"10s"}}}},"autocastOtherCooldowns":{}}}, - {"action":{"condition":{"and":{"vals":[{"not":{"val":{"auraIsActive":{"auraId":{"spellId":34074}}}}},{"cmp":{"op":"OpLt","lhs":{"currentManaPercent":{}},"rhs":{"const":{"val":"10%"}}}}]}},"castSpell":{"spellId":{"spellId":34074}}}}, - {"action":{"condition":{"and":{"vals":[{"not":{"val":{"auraIsActive":{"auraId":{"spellId":61847}}}}},{"cmp":{"op":"OpGt","lhs":{"currentManaPercent":{}},"rhs":{"const":{"val":"30%"}}}}]}},"castSpell":{"spellId":{"spellId":61847}}}}, - {"action":{"castSpell":{"spellId":{"spellId":61006}}}}, - {"hide":true,"action":{"condition":{"not":{"val":{"dotIsActive":{"spellId":{"spellId":49067}}}}},"castSpell":{"spellId":{"tag":1,"spellId":49067}}}}, - {"action":{"condition":{"and":{"vals":[{"not":{"val":{"dotIsActive":{"spellId":{"spellId":49001}}}}},{"cmp":{"op":"OpGt","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"6s"}}}}]}},"castSpell":{"spellId":{"spellId":49001}}}}, - {"action":{"castSpell":{"spellId":{"spellId":49050}}}}, - {"action":{"castSpell":{"spellId":{"spellId":49048}}}}, - {"hide":true,"action":{"castSpell":{"spellId":{"spellId":49045}}}}, - {"action":{"castSpell":{"spellId":{"spellId":49052}}}} - ] -}`) - -var MMRotation = core.APLRotationFromJsonString(`{ - "type": "TypeAPL", - "prepullActions": [ - {"action":{"castSpell":{"spellId":{"spellId":61847}}},"doAtValue":{"const":{"val":"-25s"}}}, - {"action":{"castSpell":{"spellId":{"spellId":49067}}},"doAtValue":{"const":{"val":"-20s"}}}, - {"action":{"castSpell":{"spellId":{"spellId":53517}}},"doAtValue":{"const":{"val":"-3s"}}}, - {"action":{"castSpell":{"spellId":{"itemId":40211}}},"doAtValue":{"const":{"val":"-1.401s"}}}, - {"action":{"castSpell":{"spellId":{"spellId":49052}}},"doAtValue":{"const":{"val":"-1.4s"}}} - ], - "priorityList": [ - {"action":{"condition":{"cmp":{"op":"OpGt","lhs":{"currentTime":{}},"rhs":{"const":{"val":"1.35s"}}}},"autocastOtherCooldowns":{}}}, - {"action":{"condition":{"cmp":{"op":"OpGt","lhs":{"currentTime":{}},"rhs":{"const":{"val":"1s"}}}},"castSpell":{"spellId":{"itemId":42641}}}}, - {"action":{"condition":{"cmp":{"op":"OpGt","lhs":{"currentTime":{}},"rhs":{"const":{"val":"61s"}}}},"castSpell":{"spellId":{"itemId":41119}}}}, - {"action":{"condition":{"cmp":{"op":"OpGt","lhs":{"currentTime":{}},"rhs":{"const":{"val":"10s"}}}},"castSpell":{"spellId":{"spellId":34026}}}}, - {"action":{"condition":{"cmp":{"op":"OpGt","lhs":{"currentTime":{}},"rhs":{"const":{"val":"1.35s"}}}},"castSpell":{"spellId":{"spellId":34490}}}}, - {"action":{"condition":{"cmp":{"op":"OpEq","lhs":{"currentTime":{}},"rhs":{"const":{"val":"0s"}}}},"castSpell":{"spellId":{"itemId":41119}}}}, - {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpGt","lhs":{"spellTimeToReady":{"spellId":{"spellId":53209}}},"rhs":{"const":{"val":"6s"}}}},{"or":{"vals":[{"cmp":{"op":"OpGt","lhs":{"spellTimeToReady":{"spellId":{"spellId":49050}}},"rhs":{"const":{"val":"6s"}}}},{"cmp":{"op":"OpGt","lhs":{"spellTimeToReady":{"spellId":{"spellId":49048}}},"rhs":{"const":{"val":"6s"}}}}]}},{"cmp":{"op":"OpGt","lhs":{"spellTimeToReady":{"spellId":{"spellId":3045}}},"rhs":{"const":{"val":"167s"}}}},{"cmp":{"op":"OpGt","lhs":{"spellTimeToReady":{"spellId":{"spellId":34490}}},"rhs":{"const":{"val":"13s"}}}},{"cmp":{"op":"OpGt","lhs":{"spellTimeToReady":{"spellId":{"spellId":49067}}},"rhs":{"const":{"val":"23s"}}}}]}},"castSpell":{"spellId":{"spellId":23989}}}}, - {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpGt","lhs":{"currentManaPercent":{}},"rhs":{"const":{"val":"15%"}}}},{"not":{"val":{"auraIsActive":{"auraId":{"spellId":61847}}}}}]}},"castSpell":{"spellId":{"spellId":61847}}}}, - {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpLt","lhs":{"currentManaPercent":{}},"rhs":{"const":{"val":"10%"}}}},{"not":{"val":{"auraIsActive":{"auraId":{"spellId":34074}}}}}]}},"castSpell":{"spellId":{"spellId":34074}}}}, - {"action":{"condition":{"cmp":{"op":"OpLt","lhs":{"currentManaPercent":{}},"rhs":{"const":{"val":"40%"}}}},"castSpell":{"spellId":{"itemId":20520}}}}, - {"action":{"condition":{"cmp":{"op":"OpLt","lhs":{"spellTimeToReady":{"spellId":{"spellId":61006}}},"rhs":{"const":{"val":"0.21s"}}}},"castSpell":{"spellId":{"spellId":61006}}}}, - {"action":{"condition":{"not":{"val":{"dotIsActive":{"spellId":{"spellId":49001}}}}},"castSpell":{"spellId":{"spellId":49001}}}}, - {"action":{"condition":{"not":{"val":{"dotIsActive":{"spellId":{"spellId":49067}}}}},"castSpell":{"spellId":{"spellId":49067}}}}, - {"action":{"condition":{"or":{"vals":[{"cmp":{"op":"OpLt","lhs":{"spellTimeToReady":{"spellId":{"spellId":53209}}},"rhs":{"const":{"val":"0.15s"}}}},{"spellCanCast":{"spellId":{"spellId":53209}}}]}},"castSpell":{"spellId":{"spellId":53209}}}}, - {"action":{"condition":{"or":{"vals":[{"cmp":{"op":"OpLt","lhs":{"spellTimeToReady":{"spellId":{"spellId":49050}}},"rhs":{"const":{"val":"0.15s"}}}},{"spellCanCast":{"spellId":{"spellId":49050}}}]}},"castSpell":{"spellId":{"spellId":49050}}}}, - {"action":{"castSpell":{"spellId":{"spellId":49052}}}}, - {"hide":true,"action":{"condition":{"or":{"vals":[{"cmp":{"op":"OpLt","lhs":{"spellTimeToReady":{"spellId":{"spellId":49045}}},"rhs":{"const":{"val":"0.2s"}}}},{"spellCanCast":{"spellId":{"spellId":49045}}}]}},"castSpell":{"spellId":{"spellId":49045}}}} - ] -}`) - -var SVRotation = core.APLRotationFromJsonString(`{ - "type": "TypeAPL", - "prepullActions": [ - {"action":{"castSpell":{"spellId":{"spellId":49067}}},"doAtValue":{"const":{"val":"-24s"}}}, - {"action":{"castSpell":{"spellId":{"spellId":61847}}},"doAtValue":{"const":{"val":"-20s"}}}, - {"action":{"castSpell":{"spellId":{"otherId":"OtherActionPotion"}}},"doAtValue":{"const":{"val":"-1.4s"}}}, - {"action":{"castSpell":{"spellId":{"spellId":49052}}},"doAtValue":{"const":{"val":"-1.4s"}}} - ], - "priorityList": [ - {"action":{"condition":{"cmp":{"op":"OpGt","lhs":{"currentTime":{}},"rhs":{"const":{"val":"1s"}}}},"autocastOtherCooldowns":{}}}, - {"action":{"condition":{"cmp":{"op":"OpLt","lhs":{"currentManaPercent":{}},"rhs":{"const":{"val":"40%"}}}},"castSpell":{"spellId":{"itemId":20520}}}}, - {"action":{"condition":{"and":{"vals":[{"not":{"val":{"auraIsActive":{"auraId":{"spellId":61847}}}}},{"cmp":{"op":"OpGt","lhs":{"currentManaPercent":{}},"rhs":{"const":{"val":"30%"}}}}]}},"castSpell":{"spellId":{"spellId":61847}}}}, - {"action":{"condition":{"and":{"vals":[{"not":{"val":{"auraIsActive":{"auraId":{"spellId":34074}}}}},{"cmp":{"op":"OpLt","lhs":{"currentManaPercent":{}},"rhs":{"const":{"val":"10%"}}}}]}},"castSpell":{"spellId":{"spellId":34074}}}}, - {"action":{"castSpell":{"spellId":{"spellId":61006}}}}, - {"action":{"condition":{"not":{"val":{"dotIsActive":{"spellId":{"spellId":60053}}}}},"castSpell":{"spellId":{"spellId":60053}}}}, - {"action":{"condition":{"dotIsActive":{"spellId":{"spellId":60053}}},"castSpell":{"spellId":{"spellId":60052}}}}, - {"action":{"condition":{"not":{"val":{"dotIsActive":{"spellId":{"spellId":49067}}}}},"castSpell":{"spellId":{"spellId":49067,"tag":1}}}}, - {"action":{"condition":{"or":{"vals":[{"cmp":{"op":"OpLt","lhs":{"spellTimeToReady":{"spellId":{"spellId":63672}}},"rhs":{"const":{"val":"0.2s"}}}},{"spellCanCast":{"spellId":{"spellId":63672}}}]}},"castSpell":{"spellId":{"spellId":63672}}}}, - {"action":{"condition":{"and":{"vals":[{"not":{"val":{"dotIsActive":{"spellId":{"spellId":49001}}}}},{"cmp":{"op":"OpGt","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"6s"}}}}]}},"castSpell":{"spellId":{"spellId":49001}}}}, - {"action":{"condition":{"or":{"vals":[{"cmp":{"op":"OpLt","lhs":{"spellTimeToReady":{"spellId":{"spellId":49048}}},"rhs":{"const":{"val":"0.2s"}}}},{"spellCanCast":{"spellId":{"spellId":49048}}}]}},"castSpell":{"spellId":{"spellId":49048}}}}, - {"hide":true,"action":{"castSpell":{"spellId":{"spellId":49048}}}}, - {"action":{"castSpell":{"spellId":{"spellId":49052}}}} - ] -}`) - var P1Gear = core.EquipmentSpecFromJsonString(`{"items": [ {"id":40505,"enchant":3817,"gems":[41398,42143]}, {"id":44664,"gems":[42143]}, From 518db26242089d49fc1c2a4edda067bd45ec1895 Mon Sep 17 00:00:00 2001 From: jarves Date: Mon, 25 Sep 2023 15:00:35 -0500 Subject: [PATCH 03/21] rogue: apl presets to json files Signed-off-by: jarves --- ui/rogue/apls/combat.json | 26 +++ ui/rogue/apls/combat_cleave_snd.json | 22 ++ ui/rogue/apls/combat_cleave_snd_expose.json | 24 ++ ui/rogue/apls/combat_expose.json | 28 +++ ui/rogue/apls/fan_aoe.json | 17 ++ ui/rogue/apls/mutilate.json | 22 ++ ui/rogue/apls/mutilate_expose.json | 24 ++ ui/rogue/apls/rupture_mutilate.json | 23 ++ ui/rogue/apls/ruptute_mutilate_expose.json | 25 +++ ui/rogue/presets.ts | 230 ++------------------ 10 files changed, 230 insertions(+), 211 deletions(-) create mode 100644 ui/rogue/apls/combat.json create mode 100644 ui/rogue/apls/combat_cleave_snd.json create mode 100644 ui/rogue/apls/combat_cleave_snd_expose.json create mode 100644 ui/rogue/apls/combat_expose.json create mode 100644 ui/rogue/apls/fan_aoe.json create mode 100644 ui/rogue/apls/mutilate.json create mode 100644 ui/rogue/apls/mutilate_expose.json create mode 100644 ui/rogue/apls/rupture_mutilate.json create mode 100644 ui/rogue/apls/ruptute_mutilate_expose.json diff --git a/ui/rogue/apls/combat.json b/ui/rogue/apls/combat.json new file mode 100644 index 0000000000..b8a42bcac6 --- /dev/null +++ b/ui/rogue/apls/combat.json @@ -0,0 +1,26 @@ +{ + "type": "TypeAPL", + "prepullActions": [ + {"action":{"castSpell":{"spellId":{"itemId":40211}}},"doAtValue":{"const":{"val":"-1s"}}} + ], + "priorityList": [ + {"action":{"autocastOtherCooldowns":{}}}, + {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpLe","lhs":{"auraRemainingTime":{"auraId":{"spellId":6774}}},"rhs":{"const":{"val":"1"}}}},{"cmp":{"op":"OpGe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"2s"}}}}]}},"castSpell":{"spellId":{"spellId":6774}}}}, + {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpLe","lhs":{"auraRemainingTime":{"auraId":{"spellId":6774}}},"rhs":{"const":{"val":"1s"}}}},{"cmp":{"op":"OpGe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"2s"}}}}]}},"sequence":{"actions":[{"castSpell":{"spellId":{"spellId":48638}}},{"castSpell":{"spellId":{"spellId":6774}}}]}}}, + {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpLe","lhs":{"auraRemainingTime":{"auraId":{"spellId":6774}}},"rhs":{"math":{"op":"OpAdd","lhs":{"dotRemainingTime":{"spellId":{"spellId":48672}}},"rhs":{"const":{"val":"2"}}}}}},{"cmp":{"op":"OpGe","lhs":{"currentComboPoints":{}},"rhs":{"const":{"val":"3"}}}},{"dotIsActive":{"spellId":{"spellId":48672}}},{"not":{"val":{"cmp":{"op":"OpLe","lhs":{"math":{"op":"OpAdd","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"2s"}}}},"rhs":{"auraRemainingTime":{"auraId":{"spellId":6774}}}}}}}]}},"castSpell":{"spellId":{"spellId":6774}}}}, + {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpGe","lhs":{"auraRemainingTime":{"auraId":{"spellId":6774}}},"rhs":{"const":{"val":"4s"}}}},{"cmp":{"op":"OpEq","lhs":{"currentComboPoints":{}},"rhs":{"const":{"val":"5"}}}},{"not":{"val":{"dotIsActive":{"spellId":{"spellId":48672}}}}},{"cmp":{"op":"OpGt","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"10s"}}}}]}},"castSpell":{"spellId":{"spellId":48672}}}}, + {"action":{"condition":{"and":{"vals":[{"and":{"vals":[{"cmp":{"op":"OpGe","lhs":{"auraRemainingTime":{"auraId":{"spellId":6774}}},"rhs":{"const":{"val":"2s"}}}},{"cmp":{"op":"OpLt","lhs":{"auraRemainingTime":{"auraId":{"spellId":6774}}},"rhs":{"const":{"val":"4s"}}}}]}},{"cmp":{"op":"OpGe","lhs":{"currentComboPoints":{}},"rhs":{"const":{"val":"4"}}}},{"not":{"val":{"dotIsActive":{"spellId":{"spellId":48672}}}}},{"cmp":{"op":"OpGt","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"8s"}}}}]}},"castSpell":{"spellId":{"spellId":48672}}}}, + {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpGe","lhs":{"currentComboPoints":{}},"rhs":{"const":{"val":"4"}}}},{"cmp":{"op":"OpLe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"4s"}}}}]}},"castSpell":{"spellId":{"spellId":48668}}}}, + {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpGe","lhs":{"auraRemainingTime":{"auraId":{"spellId":6774}}},"rhs":{"const":{"val":"4s"}}}},{"cmp":{"op":"OpGe","lhs":{"currentComboPoints":{}},"rhs":{"const":{"val":"4"}}}},{"cmp":{"op":"OpGe","lhs":{"auraRemainingTime":{"sourceUnit":{"type":"CurrentTarget"},"auraId":{"spellId":48672}}},"rhs":{"const":{"val":"6s"}}}},{"cmp":{"op":"OpGe","lhs":{"auraRemainingTime":{"auraId":{"spellId":13750}}},"rhs":{"const":{"val":"4s"}}}}]}},"castSpell":{"spellId":{"spellId":48668}}}}, + {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpGe","lhs":{"auraRemainingTime":{"auraId":{"spellId":6774}}},"rhs":{"const":{"val":"4s"}}}},{"cmp":{"op":"OpGe","lhs":{"currentComboPoints":{}},"rhs":{"const":{"val":"4"}}}},{"cmp":{"op":"OpGe","lhs":{"auraRemainingTime":{"sourceUnit":{"type":"CurrentTarget"},"auraId":{"spellId":48672}}},"rhs":{"const":{"val":"10s"}}}}]}},"castSpell":{"spellId":{"spellId":48668}}}}, + {"action":{"condition":{"auraIsActive":{"auraId":{"spellId":6774}}},"castSpell":{"spellId":{"spellId":13877}}}}, + {"action":{"condition":{"or":{"vals":[{"auraIsActive":{"auraId":{"spellId":13877}}},{"cmp":{"op":"OpLe","lhs":{"remainingTime":{}},"rhs":{"math":{"op":"OpAdd","lhs":{"spellTimeToReady":{"spellId":{"spellId":13877}}},"rhs":{"const":{"val":"8s"}}}}}}]}},"castSpell":{"spellId":{"spellId":54758}}}}, + {"action":{"condition":{"and":{"vals":[{"not":{"val":{"spellIsReady":{"spellId":{"spellId":13877}}}}},{"cmp":{"op":"OpGe","lhs":{"spellTimeToReady":{"spellId":{"spellId":13877}}},"rhs":{"const":{"val":"57s"}}}}]}},"castSpell":{"spellId":{"spellId":54758}}}}, + {"action":{"condition":{"or":{"vals":[{"auraIsActive":{"auraId":{"spellId":13877}}},{"cmp":{"op":"OpLe","lhs":{"remainingTime":{}},"rhs":{"math":{"op":"OpAdd","lhs":{"spellTimeToReady":{"spellId":{"spellId":13877}}},"rhs":{"const":{"val":"10s"}}}}}}]}},"castSpell":{"spellId":{"itemId":40211}}}}, + {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"currentEnergy":{}},"rhs":{"const":{"val":"50"}}}},"castSpell":{"spellId":{"spellId":57934}}}}, + {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"currentEnergy":{}},"rhs":{"const":{"val":"50"}}}},"castSpell":{"spellId":{"spellId":51690}}}}, + {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpGt","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"196s"}}}},{"cmp":{"op":"OpLe","lhs":{"currentEnergy":{}},"rhs":{"const":{"val":"50"}}}}]}},"castSpell":{"spellId":{"spellId":13750}}}}, + {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpLe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"196s"}}}},{"cmp":{"op":"OpGe","lhs":{"spellTimeToReady":{"spellId":{"spellId":51690}}},"rhs":{"const":{"val":"15s"}}}},{"cmp":{"op":"OpLe","lhs":{"currentEnergy":{}},"rhs":{"const":{"val":"50"}}}}]}},"castSpell":{"spellId":{"spellId":13750}}}}, + {"action":{"castSpell":{"spellId":{"spellId":48638}}}} + ] +} \ No newline at end of file diff --git a/ui/rogue/apls/combat_cleave_snd.json b/ui/rogue/apls/combat_cleave_snd.json new file mode 100644 index 0000000000..0f7b5e7ccd --- /dev/null +++ b/ui/rogue/apls/combat_cleave_snd.json @@ -0,0 +1,22 @@ +{ + "type": "TypeAPL", + "prepullActions": [ + {"action":{"castSpell":{"spellId":{"itemId":40211}}},"doAtValue":{"const":{"val":"-1s"}}} + ], + "priorityList": [ + {"action":{"autocastOtherCooldowns":{}}}, + {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpLe","lhs":{"auraRemainingTime":{"auraId":{"spellId":6774}}},"rhs":{"const":{"val":"1"}}}},{"cmp":{"op":"OpGe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"2s"}}}}]}},"castSpell":{"spellId":{"spellId":6774}}}}, + {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpLe","lhs":{"auraRemainingTime":{"auraId":{"spellId":6774}}},"rhs":{"const":{"val":"1s"}}}},{"cmp":{"op":"OpGe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"2s"}}}}]}},"sequence":{"actions":[{"castSpell":{"spellId":{"spellId":48638}}},{"castSpell":{"spellId":{"spellId":6774}}}]}}}, + {"action":{"condition":{"auraIsActive":{"auraId":{"spellId":6774}}},"castSpell":{"spellId":{"spellId":13877}}}}, + {"action":{"condition":{"or":{"vals":[{"auraIsActive":{"auraId":{"spellId":13877}}},{"cmp":{"op":"OpLe","lhs":{"remainingTime":{}},"rhs":{"math":{"op":"OpAdd","lhs":{"spellTimeToReady":{"spellId":{"spellId":13877}}},"rhs":{"const":{"val":"8s"}}}}}}]}},"castSpell":{"spellId":{"spellId":54758}}}}, + {"action":{"condition":{"and":{"vals":[{"not":{"val":{"spellIsReady":{"spellId":{"spellId":13877}}}}},{"cmp":{"op":"OpGe","lhs":{"spellTimeToReady":{"spellId":{"spellId":13877}}},"rhs":{"const":{"val":"57s"}}}}]}},"castSpell":{"spellId":{"spellId":54758}}}}, + {"action":{"condition":{"or":{"vals":[{"auraIsActive":{"auraId":{"spellId":13877}}},{"cmp":{"op":"OpLe","lhs":{"remainingTime":{}},"rhs":{"math":{"op":"OpAdd","lhs":{"spellTimeToReady":{"spellId":{"spellId":13877}}},"rhs":{"const":{"val":"10s"}}}}}}]}},"castSpell":{"spellId":{"itemId":40211}}}}, + {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"currentEnergy":{}},"rhs":{"const":{"val":"50"}}}},"castSpell":{"spellId":{"spellId":51690}}}}, + {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpGt","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"196s"}}}},{"cmp":{"op":"OpLe","lhs":{"currentEnergy":{}},"rhs":{"const":{"val":"50"}}}}]}},"castSpell":{"spellId":{"spellId":13750}}}}, + {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpLe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"196s"}}}},{"cmp":{"op":"OpGe","lhs":{"spellTimeToReady":{"spellId":{"spellId":51690}}},"rhs":{"const":{"val":"15s"}}}},{"cmp":{"op":"OpLe","lhs":{"currentEnergy":{}},"rhs":{"const":{"val":"50"}}}}]}},"castSpell":{"spellId":{"spellId":13750}}}}, + {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"currentEnergy":{}},"rhs":{"const":{"val":"50"}}}},"castSpell":{"spellId":{"spellId":57934}}}}, + {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"currentEnergy":{}},"rhs":{"const":{"val":"50"}}}},"castSpell":{"spellId":{"itemId":7676}}}}, + {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpLt","lhs":{"currentComboPoints":{}},"rhs":{"const":{"val":"1"}}}},{"or":{"vals":[{"cmp":{"op":"OpLe","lhs":{"auraRemainingTime":{"auraId":{"spellId":6774}}},"rhs":{"math":{"op":"OpSub","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"2s"}}}}}}]}}]}},"castSpell":{"spellId":{"spellId":48638}}}}, + {"action":{"castSpell":{"spellId":{"spellId":51723}}}} + ] +} \ No newline at end of file diff --git a/ui/rogue/apls/combat_cleave_snd_expose.json b/ui/rogue/apls/combat_cleave_snd_expose.json new file mode 100644 index 0000000000..188e731169 --- /dev/null +++ b/ui/rogue/apls/combat_cleave_snd_expose.json @@ -0,0 +1,24 @@ +{ + "type": "TypeAPL", + "prepullActions": [ + {"action":{"castSpell":{"spellId":{"itemId":40211}}},"doAtValue":{"const":{"val":"-1s"}}} + ], + "priorityList": [ + {"action":{"autocastOtherCooldowns":{}}}, + {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpLe","lhs":{"auraRemainingTime":{"sourceUnit":{"type":"CurrentTarget"},"auraId":{"spellId":8647}}},"rhs":{"const":{"val":"1"}}}},{"cmp":{"op":"OpGe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"2s"}}}}]}},"castSpell":{"spellId":{"spellId":8647}}}}, + {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpLe","lhs":{"auraRemainingTime":{"auraId":{"spellId":6774}}},"rhs":{"const":{"val":"1"}}}},{"cmp":{"op":"OpGe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"2s"}}}}]}},"castSpell":{"spellId":{"spellId":6774}}}}, + {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpLe","lhs":{"auraRemainingTime":{"sourceUnit":{"type":"CurrentTarget"},"auraId":{"spellId":8647}}},"rhs":{"const":{"val":"1s"}}}},{"cmp":{"op":"OpGe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"2s"}}}}]}},"sequence":{"actions":[{"castSpell":{"spellId":{"spellId":48638}}},{"castSpell":{"spellId":{"spellId":8647}}}]}}}, + {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpLe","lhs":{"auraRemainingTime":{"auraId":{"spellId":6774}}},"rhs":{"const":{"val":"1s"}}}},{"cmp":{"op":"OpGe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"2s"}}}}]}},"sequence":{"actions":[{"castSpell":{"spellId":{"spellId":48638}}},{"castSpell":{"spellId":{"spellId":6774}}}]}}}, + {"action":{"condition":{"auraIsActive":{"auraId":{"spellId":6774}}},"castSpell":{"spellId":{"spellId":13877}}}}, + {"action":{"condition":{"or":{"vals":[{"auraIsActive":{"auraId":{"spellId":13877}}},{"cmp":{"op":"OpLe","lhs":{"remainingTime":{}},"rhs":{"math":{"op":"OpAdd","lhs":{"spellTimeToReady":{"spellId":{"spellId":13877}}},"rhs":{"const":{"val":"8s"}}}}}}]}},"castSpell":{"spellId":{"spellId":54758}}}}, + {"action":{"condition":{"and":{"vals":[{"not":{"val":{"spellIsReady":{"spellId":{"spellId":13877}}}}},{"cmp":{"op":"OpGe","lhs":{"spellTimeToReady":{"spellId":{"spellId":13877}}},"rhs":{"const":{"val":"57s"}}}}]}},"castSpell":{"spellId":{"spellId":54758}}}}, + {"action":{"condition":{"or":{"vals":[{"auraIsActive":{"auraId":{"spellId":13877}}},{"cmp":{"op":"OpLe","lhs":{"remainingTime":{}},"rhs":{"math":{"op":"OpAdd","lhs":{"spellTimeToReady":{"spellId":{"spellId":13877}}},"rhs":{"const":{"val":"10s"}}}}}}]}},"castSpell":{"spellId":{"itemId":40211}}}}, + {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"currentEnergy":{}},"rhs":{"const":{"val":"50"}}}},"castSpell":{"spellId":{"spellId":51690}}}}, + {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpGt","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"196s"}}}},{"cmp":{"op":"OpLe","lhs":{"currentEnergy":{}},"rhs":{"const":{"val":"50"}}}}]}},"castSpell":{"spellId":{"spellId":13750}}}}, + {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpLe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"196s"}}}},{"cmp":{"op":"OpGe","lhs":{"spellTimeToReady":{"spellId":{"spellId":51690}}},"rhs":{"const":{"val":"15s"}}}},{"cmp":{"op":"OpLe","lhs":{"currentEnergy":{}},"rhs":{"const":{"val":"50"}}}}]}},"castSpell":{"spellId":{"spellId":13750}}}}, + {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"currentEnergy":{}},"rhs":{"const":{"val":"50"}}}},"castSpell":{"spellId":{"spellId":57934}}}}, + {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"currentEnergy":{}},"rhs":{"const":{"val":"50"}}}},"castSpell":{"spellId":{"itemId":7676}}}}, + {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpLt","lhs":{"currentComboPoints":{}},"rhs":{"const":{"val":"1"}}}},{"or":{"vals":[{"cmp":{"op":"OpLe","lhs":{"auraRemainingTime":{"auraId":{"spellId":6774}}},"rhs":{"math":{"op":"OpSub","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"2s"}}}}}},{"cmp":{"op":"OpLe","lhs":{"auraRemainingTime":{"sourceUnit":{"type":"CurrentTarget"},"auraId":{"spellId":8647}}},"rhs":{"math":{"op":"OpSub","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"2s"}}}}}}]}}]}},"castSpell":{"spellId":{"spellId":48638}}}}, + {"action":{"castSpell":{"spellId":{"spellId":51723}}}} + ] +} \ No newline at end of file diff --git a/ui/rogue/apls/combat_expose.json b/ui/rogue/apls/combat_expose.json new file mode 100644 index 0000000000..5d367c9c67 --- /dev/null +++ b/ui/rogue/apls/combat_expose.json @@ -0,0 +1,28 @@ +{ + "type": "TypeAPL", + "prepullActions": [ + {"action":{"castSpell":{"spellId":{"itemId":40211}}},"doAtValue":{"const":{"val":"-1s"}}} + ], + "priorityList": [ + {"action":{"autocastOtherCooldowns":{}}}, + {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpLe","lhs":{"auraRemainingTime":{"auraId":{"spellId":6774}}},"rhs":{"const":{"val":"1"}}}},{"cmp":{"op":"OpGe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"2s"}}}}]}},"castSpell":{"spellId":{"spellId":6774}}}}, + {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpLe","lhs":{"auraRemainingTime":{"sourceUnit":{"type":"CurrentTarget"},"auraId":{"spellId":8647}}},"rhs":{"const":{"val":"1"}}}},{"cmp":{"op":"OpGe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"2s"}}}}]}},"castSpell":{"spellId":{"spellId":8647}}}}, + {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpLe","lhs":{"auraRemainingTime":{"auraId":{"spellId":6774}}},"rhs":{"const":{"val":"1s"}}}},{"cmp":{"op":"OpGe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"2s"}}}}]}},"sequence":{"actions":[{"castSpell":{"spellId":{"spellId":48638}}},{"castSpell":{"spellId":{"spellId":6774}}}]}}}, + {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpLe","lhs":{"auraRemainingTime":{"sourceUnit":{"type":"CurrentTarget"},"auraId":{"spellId":8647}}},"rhs":{"const":{"val":"1s"}}}},{"cmp":{"op":"OpGe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"2s"}}}}]}},"sequence":{"actions":[{"castSpell":{"spellId":{"spellId":48638}}},{"castSpell":{"spellId":{"spellId":8647}}}]}}}, + {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpLe","lhs":{"auraRemainingTime":{"auraId":{"spellId":6774}}},"rhs":{"math":{"op":"OpAdd","lhs":{"dotRemainingTime":{"spellId":{"spellId":48672}}},"rhs":{"const":{"val":"2"}}}}}},{"cmp":{"op":"OpGe","lhs":{"currentComboPoints":{}},"rhs":{"const":{"val":"3"}}}},{"dotIsActive":{"spellId":{"spellId":48672}}},{"not":{"val":{"cmp":{"op":"OpLe","lhs":{"math":{"op":"OpAdd","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"2s"}}}},"rhs":{"auraRemainingTime":{"auraId":{"spellId":6774}}}}}}}]}},"castSpell":{"spellId":{"spellId":6774}}}}, + {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpGe","lhs":{"auraRemainingTime":{"auraId":{"spellId":6774}}},"rhs":{"const":{"val":"4s"}}}},{"cmp":{"op":"OpEq","lhs":{"currentComboPoints":{}},"rhs":{"const":{"val":"5"}}}},{"not":{"val":{"dotIsActive":{"spellId":{"spellId":48672}}}}},{"cmp":{"op":"OpGt","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"10s"}}}}]}},"castSpell":{"spellId":{"spellId":48672}}}}, + {"action":{"condition":{"and":{"vals":[{"and":{"vals":[{"cmp":{"op":"OpGe","lhs":{"auraRemainingTime":{"auraId":{"spellId":6774}}},"rhs":{"const":{"val":"2s"}}}},{"cmp":{"op":"OpLt","lhs":{"auraRemainingTime":{"auraId":{"spellId":6774}}},"rhs":{"const":{"val":"4s"}}}}]}},{"cmp":{"op":"OpGe","lhs":{"currentComboPoints":{}},"rhs":{"const":{"val":"4"}}}},{"not":{"val":{"dotIsActive":{"spellId":{"spellId":48672}}}}},{"cmp":{"op":"OpGt","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"8s"}}}}]}},"castSpell":{"spellId":{"spellId":48672}}}}, + {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpGe","lhs":{"currentComboPoints":{}},"rhs":{"const":{"val":"4"}}}},{"cmp":{"op":"OpLe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"4s"}}}}]}},"castSpell":{"spellId":{"spellId":48668}}}}, + {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpGe","lhs":{"auraRemainingTime":{"auraId":{"spellId":6774}}},"rhs":{"const":{"val":"4s"}}}},{"cmp":{"op":"OpGe","lhs":{"currentComboPoints":{}},"rhs":{"const":{"val":"4"}}}},{"cmp":{"op":"OpGe","lhs":{"auraRemainingTime":{"sourceUnit":{"type":"CurrentTarget"},"auraId":{"spellId":48672}}},"rhs":{"const":{"val":"6s"}}}},{"cmp":{"op":"OpGe","lhs":{"auraRemainingTime":{"auraId":{"spellId":13750}}},"rhs":{"const":{"val":"4s"}}}}]}},"castSpell":{"spellId":{"spellId":48668}}}}, + {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpGe","lhs":{"auraRemainingTime":{"auraId":{"spellId":6774}}},"rhs":{"const":{"val":"4s"}}}},{"cmp":{"op":"OpGe","lhs":{"currentComboPoints":{}},"rhs":{"const":{"val":"4"}}}},{"cmp":{"op":"OpGe","lhs":{"auraRemainingTime":{"sourceUnit":{"type":"CurrentTarget"},"auraId":{"spellId":48672}}},"rhs":{"const":{"val":"10s"}}}}]}},"castSpell":{"spellId":{"spellId":48668}}}}, + {"action":{"condition":{"auraIsActive":{"auraId":{"spellId":6774}}},"castSpell":{"spellId":{"spellId":13877}}}}, + {"action":{"condition":{"or":{"vals":[{"auraIsActive":{"auraId":{"spellId":13877}}},{"cmp":{"op":"OpLe","lhs":{"remainingTime":{}},"rhs":{"math":{"op":"OpAdd","lhs":{"spellTimeToReady":{"spellId":{"spellId":13877}}},"rhs":{"const":{"val":"8s"}}}}}}]}},"castSpell":{"spellId":{"spellId":54758}}}}, + {"action":{"condition":{"and":{"vals":[{"not":{"val":{"spellIsReady":{"spellId":{"spellId":13877}}}}},{"cmp":{"op":"OpGe","lhs":{"spellTimeToReady":{"spellId":{"spellId":13877}}},"rhs":{"const":{"val":"57s"}}}}]}},"castSpell":{"spellId":{"spellId":54758}}}}, + {"action":{"condition":{"or":{"vals":[{"auraIsActive":{"auraId":{"spellId":13877}}},{"cmp":{"op":"OpLe","lhs":{"remainingTime":{}},"rhs":{"math":{"op":"OpAdd","lhs":{"spellTimeToReady":{"spellId":{"spellId":13877}}},"rhs":{"const":{"val":"10s"}}}}}}]}},"castSpell":{"spellId":{"itemId":40211}}}}, + {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"currentEnergy":{}},"rhs":{"const":{"val":"50"}}}},"castSpell":{"spellId":{"spellId":57934}}}}, + {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"currentEnergy":{}},"rhs":{"const":{"val":"50"}}}},"castSpell":{"spellId":{"spellId":51690}}}}, + {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpGt","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"196s"}}}},{"cmp":{"op":"OpLe","lhs":{"currentEnergy":{}},"rhs":{"const":{"val":"50"}}}}]}},"castSpell":{"spellId":{"spellId":13750}}}}, + {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpLe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"196s"}}}},{"cmp":{"op":"OpGe","lhs":{"spellTimeToReady":{"spellId":{"spellId":51690}}},"rhs":{"const":{"val":"15s"}}}},{"cmp":{"op":"OpLe","lhs":{"currentEnergy":{}},"rhs":{"const":{"val":"50"}}}}]}},"castSpell":{"spellId":{"spellId":13750}}}}, + {"action":{"castSpell":{"spellId":{"spellId":48638}}}} + ] +} \ No newline at end of file diff --git a/ui/rogue/apls/fan_aoe.json b/ui/rogue/apls/fan_aoe.json new file mode 100644 index 0000000000..ab9eb6137a --- /dev/null +++ b/ui/rogue/apls/fan_aoe.json @@ -0,0 +1,17 @@ +{ + "type": "TypeAPL", + "prepullActions": [ + {"action":{"castSpell":{"spellId":{"otherId":"OtherActionPotion"}}},"doAtValue":{"const":{"val":"-1s"}}}, + {"action":{"activateAura":{"auraId":{"spellId":58426}}},"doAtValue":{"const":{"val":"-1s"}}} + ], + "priorityList": [ + {"action":{"autocastOtherCooldowns":{}}}, + {"action":{"condition":{"not":{"val":{"spellIsReady":{"spellId":{"spellId":57934}}}}},"castSpell":{"spellId":{"spellId":57934}}}}, + {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"currentEnergy":{}},"rhs":{"const":{"val":"80"}}}},"castSpell":{"spellId":{"spellId":13750}}}}, + {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpLe","lhs":{"currentEnergy":{}},"rhs":{"const":{"val":"65"}}}},{"cmp":{"op":"OpLe","lhs":{"auraRemainingTime":{"auraId":{"spellId":58426}}},"rhs":{"const":{"val":"1s"}}}}]}},"castSpell":{"spellId":{"spellId":26889}}}}, + {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"currentEnergy":{}},"rhs":{"const":{"val":"50"}}}},"castSpell":{"spellId":{"itemId":7676}}}}, + {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"currentEnergy":{}},"rhs":{"const":{"val":"50"}}}},"castSpell":{"spellId":{"spellId":51690}}}}, + {"action":{"condition":{"not":{"val":{"auraIsActive":{"auraId":{"spellId":16551}}}}},"castSpell":{"spellId":{"spellId":14177}}}}, + {"action":{"castSpell":{"spellId":{"spellId":51723}}}} + ] +} \ No newline at end of file diff --git a/ui/rogue/apls/mutilate.json b/ui/rogue/apls/mutilate.json new file mode 100644 index 0000000000..e7adf08d23 --- /dev/null +++ b/ui/rogue/apls/mutilate.json @@ -0,0 +1,22 @@ +{ + "type": "TypeAPL", + "prepullActions": [ + {"action":{"castSpell":{"spellId":{"itemId":40211}}},"doAtValue":{"const":{"val":"-1s"}}}, + {"action":{"activateAura":{"auraId":{"spellId":58426}}},"doAtValue":{"const":{"val":"-1s"}}} + ], + "priorityList": [ + {"action":{"autocastOtherCooldowns":{}}}, + {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"auraRemainingTime":{"auraId":{"spellId":6774}}},"rhs":{"const":{"val":"1s"}}}},"castSpell":{"spellId":{"spellId":6774}}}}, + {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"auraRemainingTime":{"auraId":{"spellId":6774}}},"rhs":{"const":{"val":"1s"}}}},"sequence":{"actions":[{"castSpell":{"spellId":{"spellId":48666}}},{"castSpell":{"spellId":{"spellId":6774}}}]}}}, + {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"auraRemainingTime":{"auraId":{"spellId":51662}}},"rhs":{"const":{"val":"1s"}}}},"castSpell":{"spellId":{"spellId":51662}}}}, + {"action":{"condition":{"not":{"val":{"auraIsActive":{"auraId":{"spellId":58426}}}}},"castSpell":{"spellId":{"spellId":26889}}}}, + {"action":{"condition":{"auraIsActive":{"auraId":{"spellId":6774}}},"castSpell":{"spellId":{"itemId":40211}}}}, + {"action":{"condition":{"auraIsActive":{"auraId":{"spellId":6774}}},"castSpell":{"spellId":{"spellId":54758}}}}, + {"action":{"condition":{"auraIsActive":{"auraId":{"spellId":6774}}},"castSpell":{"spellId":{"spellId":13877}}}}, + {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"currentEnergy":{}},"rhs":{"const":{"val":"50"}}}},"castSpell":{"spellId":{"spellId":57934}}}}, + {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"currentEnergy":{}},"rhs":{"const":{"val":"50"}}}},"castSpell":{"spellId":{"itemId":7676}}}}, + {"action":{"condition":{"or":{"vals":[{"cmp":{"op":"OpEq","lhs":{"currentComboPoints":{}},"rhs":{"const":{"val":"5"}}}},{"cmp":{"op":"OpLe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"5s"}}}}]}},"castSpell":{"spellId":{"spellId":14177}}}}, + {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpGe","lhs":{"currentComboPoints":{}},"rhs":{"const":{"val":"4"}}}},{"or":{"vals":[{"not":{"val":{"auraIsActive":{"auraId":{"spellId":57993}}}}},{"cmp":{"op":"OpGe","lhs":{"currentEnergy":{}},"rhs":{"const":{"val":"85"}}}}]}}]}},"castSpell":{"spellId":{"spellId":57993}}}}, + {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"currentComboPoints":{}},"rhs":{"const":{"val":"3"}}}},"castSpell":{"spellId":{"spellId":48666}}}} + ] +} \ No newline at end of file diff --git a/ui/rogue/apls/mutilate_expose.json b/ui/rogue/apls/mutilate_expose.json new file mode 100644 index 0000000000..f076c52b8c --- /dev/null +++ b/ui/rogue/apls/mutilate_expose.json @@ -0,0 +1,24 @@ +{ + "type": "TypeAPL", + "prepullActions": [ + {"action":{"castSpell":{"spellId":{"itemId":40211}}},"doAtValue":{"const":{"val":"-1s"}}}, + {"action":{"activateAura":{"auraId":{"spellId":58426}}},"doAtValue":{"const":{"val":"-1s"}}} + ], + "priorityList": [ + {"action":{"autocastOtherCooldowns":{}}}, + {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"auraRemainingTime":{"sourceUnit":{"type":"CurrentTarget"},"auraId":{"spellId":8647}}},"rhs":{"const":{"val":"1s"}}}},"castSpell":{"spellId":{"spellId":8647}}}}, + {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"auraRemainingTime":{"auraId":{"spellId":6774}}},"rhs":{"const":{"val":"1s"}}}},"castSpell":{"spellId":{"spellId":6774}}}}, + {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"auraRemainingTime":{"sourceUnit":{"type":"CurrentTarget"},"auraId":{"spellId":8647}}},"rhs":{"const":{"val":"1s"}}}},"sequence":{"actions":[{"castSpell":{"spellId":{"spellId":48666}}},{"castSpell":{"spellId":{"spellId":8647}}}]}}}, + {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"auraRemainingTime":{"auraId":{"spellId":6774}}},"rhs":{"const":{"val":"1s"}}}},"sequence":{"actions":[{"castSpell":{"spellId":{"spellId":48666}}},{"castSpell":{"spellId":{"spellId":6774}}}]}}}, + {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"auraRemainingTime":{"auraId":{"spellId":51662}}},"rhs":{"const":{"val":"1s"}}}},"castSpell":{"spellId":{"spellId":51662}}}}, + {"action":{"condition":{"not":{"val":{"auraIsActive":{"auraId":{"spellId":58426}}}}},"castSpell":{"spellId":{"spellId":26889}}}}, + {"action":{"condition":{"auraIsActive":{"auraId":{"spellId":6774}}},"castSpell":{"spellId":{"itemId":40211}}}}, + {"action":{"condition":{"auraIsActive":{"auraId":{"spellId":6774}}},"castSpell":{"spellId":{"spellId":54758}}}}, + {"action":{"condition":{"auraIsActive":{"auraId":{"spellId":6774}}},"castSpell":{"spellId":{"spellId":13877}}}}, + {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"currentEnergy":{}},"rhs":{"const":{"val":"50"}}}},"castSpell":{"spellId":{"spellId":57934}}}}, + {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"currentEnergy":{}},"rhs":{"const":{"val":"50"}}}},"castSpell":{"spellId":{"itemId":7676}}}}, + {"action":{"condition":{"or":{"vals":[{"cmp":{"op":"OpEq","lhs":{"currentComboPoints":{}},"rhs":{"const":{"val":"5"}}}},{"cmp":{"op":"OpLe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"5s"}}}}]}},"castSpell":{"spellId":{"spellId":14177}}}}, + {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpGe","lhs":{"currentComboPoints":{}},"rhs":{"const":{"val":"4"}}}},{"or":{"vals":[{"not":{"val":{"auraIsActive":{"auraId":{"spellId":57993}}}}},{"cmp":{"op":"OpGe","lhs":{"currentEnergy":{}},"rhs":{"const":{"val":"85"}}}}]}}]}},"castSpell":{"spellId":{"spellId":57993}}}}, + {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"currentComboPoints":{}},"rhs":{"const":{"val":"3"}}}},"castSpell":{"spellId":{"spellId":48666}}}} + ] +} \ No newline at end of file diff --git a/ui/rogue/apls/rupture_mutilate.json b/ui/rogue/apls/rupture_mutilate.json new file mode 100644 index 0000000000..7eed769a8a --- /dev/null +++ b/ui/rogue/apls/rupture_mutilate.json @@ -0,0 +1,23 @@ +{ + "type": "TypeAPL", + "prepullActions": [ + {"action":{"castSpell":{"spellId":{"itemId":40211}}},"doAtValue":{"const":{"val":"-1s"}}}, + {"action":{"activateAura":{"auraId":{"spellId":58426}}},"doAtValue":{"const":{"val":"-1s"}}} + ], + "priorityList": [ + {"action":{"autocastOtherCooldowns":{}}}, + {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"auraRemainingTime":{"auraId":{"spellId":6774}}},"rhs":{"const":{"val":"1s"}}}},"castSpell":{"spellId":{"spellId":6774}}}}, + {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"auraRemainingTime":{"auraId":{"spellId":6774}}},"rhs":{"const":{"val":"1s"}}}},"sequence":{"actions":[{"castSpell":{"spellId":{"spellId":48666}}},{"castSpell":{"spellId":{"spellId":6774}}}]}}}, + {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"auraRemainingTime":{"auraId":{"spellId":51662}}},"rhs":{"const":{"val":"1s"}}}},"castSpell":{"spellId":{"spellId":51662}}}}, + {"action":{"condition":{"not":{"val":{"auraIsActive":{"auraId":{"spellId":58426}}}}},"castSpell":{"spellId":{"spellId":26889}}}}, + {"action":{"condition":{"auraIsActive":{"auraId":{"spellId":6774}}},"castSpell":{"spellId":{"itemId":40211}}}}, + {"action":{"condition":{"auraIsActive":{"auraId":{"spellId":6774}}},"castSpell":{"spellId":{"spellId":54758}}}}, + {"action":{"condition":{"auraIsActive":{"auraId":{"spellId":6774}}},"castSpell":{"spellId":{"spellId":13877}}}}, + {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"currentEnergy":{}},"rhs":{"const":{"val":"50"}}}},"castSpell":{"spellId":{"spellId":57934}}}}, + {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"currentEnergy":{}},"rhs":{"const":{"val":"50"}}}},"castSpell":{"spellId":{"itemId":7676}}}}, + {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpGe","lhs":{"currentComboPoints":{}},"rhs":{"const":{"val":"4"}}}},{"not":{"val":{"auraIsActive":{"sourceUnit":{"type":"CurrentTarget"},"auraId":{"spellId":48672}}}}}]}},"castSpell":{"spellId":{"spellId":48672}}}}, + {"action":{"condition":{"or":{"vals":[{"cmp":{"op":"OpEq","lhs":{"currentComboPoints":{}},"rhs":{"const":{"val":"5"}}}},{"cmp":{"op":"OpLe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"5s"}}}}]}},"castSpell":{"spellId":{"spellId":14177}}}}, + {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpGe","lhs":{"currentComboPoints":{}},"rhs":{"const":{"val":"4"}}}},{"or":{"vals":[{"not":{"val":{"auraIsActive":{"auraId":{"spellId":57993}}}}},{"cmp":{"op":"OpGe","lhs":{"currentEnergy":{}},"rhs":{"const":{"val":"85"}}}}]}}]}},"castSpell":{"spellId":{"spellId":57993}}}}, + {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"currentComboPoints":{}},"rhs":{"const":{"val":"3"}}}},"castSpell":{"spellId":{"spellId":48666}}}} + ] +} \ No newline at end of file diff --git a/ui/rogue/apls/ruptute_mutilate_expose.json b/ui/rogue/apls/ruptute_mutilate_expose.json new file mode 100644 index 0000000000..77231328e9 --- /dev/null +++ b/ui/rogue/apls/ruptute_mutilate_expose.json @@ -0,0 +1,25 @@ +{ + "type": "TypeAPL", + "prepullActions": [ + {"action":{"castSpell":{"spellId":{"itemId":40211}}},"doAtValue":{"const":{"val":"-1s"}}}, + {"action":{"activateAura":{"auraId":{"spellId":58426}}},"doAtValue":{"const":{"val":"-1s"}}} + ], + "priorityList": [ + {"action":{"autocastOtherCooldowns":{}}}, + {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"auraRemainingTime":{"sourceUnit":{"type":"CurrentTarget"},"auraId":{"spellId":8647}}},"rhs":{"const":{"val":"1s"}}}},"castSpell":{"spellId":{"spellId":8647}}}}, + {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"auraRemainingTime":{"auraId":{"spellId":6774}}},"rhs":{"const":{"val":"1s"}}}},"castSpell":{"spellId":{"spellId":6774}}}}, + {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"auraRemainingTime":{"sourceUnit":{"type":"CurrentTarget"},"auraId":{"spellId":8647}}},"rhs":{"const":{"val":"1s"}}}},"sequence":{"actions":[{"castSpell":{"spellId":{"spellId":48666}}},{"castSpell":{"spellId":{"spellId":8647}}}]}}}, + {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"auraRemainingTime":{"auraId":{"spellId":6774}}},"rhs":{"const":{"val":"1s"}}}},"sequence":{"actions":[{"castSpell":{"spellId":{"spellId":48666}}},{"castSpell":{"spellId":{"spellId":6774}}}]}}}, + {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"auraRemainingTime":{"auraId":{"spellId":51662}}},"rhs":{"const":{"val":"1s"}}}},"castSpell":{"spellId":{"spellId":51662}}}}, + {"action":{"condition":{"not":{"val":{"auraIsActive":{"auraId":{"spellId":58426}}}}},"castSpell":{"spellId":{"spellId":26889}}}}, + {"action":{"condition":{"auraIsActive":{"auraId":{"spellId":6774}}},"castSpell":{"spellId":{"itemId":40211}}}}, + {"action":{"condition":{"auraIsActive":{"auraId":{"spellId":6774}}},"castSpell":{"spellId":{"spellId":54758}}}}, + {"action":{"condition":{"auraIsActive":{"auraId":{"spellId":6774}}},"castSpell":{"spellId":{"spellId":13877}}}}, + {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"currentEnergy":{}},"rhs":{"const":{"val":"50"}}}},"castSpell":{"spellId":{"spellId":57934}}}}, + {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"currentEnergy":{}},"rhs":{"const":{"val":"50"}}}},"castSpell":{"spellId":{"itemId":7676}}}}, + {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpGe","lhs":{"currentComboPoints":{}},"rhs":{"const":{"val":"4"}}}},{"not":{"val":{"auraIsActive":{"sourceUnit":{"type":"CurrentTarget"},"auraId":{"spellId":48672}}}}}]}},"castSpell":{"spellId":{"spellId":48672}}}}, + {"action":{"condition":{"or":{"vals":[{"cmp":{"op":"OpEq","lhs":{"currentComboPoints":{}},"rhs":{"const":{"val":"5"}}}},{"cmp":{"op":"OpLe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"5s"}}}}]}},"castSpell":{"spellId":{"spellId":14177}}}}, + {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpGe","lhs":{"currentComboPoints":{}},"rhs":{"const":{"val":"4"}}}},{"or":{"vals":[{"not":{"val":{"auraIsActive":{"auraId":{"spellId":57993}}}}},{"cmp":{"op":"OpGe","lhs":{"currentEnergy":{}},"rhs":{"const":{"val":"85"}}}}]}}]}},"castSpell":{"spellId":{"spellId":57993}}}}, + {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"currentComboPoints":{}},"rhs":{"const":{"val":"3"}}}},"castSpell":{"spellId":{"spellId":48666}}}} + ] +} \ No newline at end of file diff --git a/ui/rogue/presets.ts b/ui/rogue/presets.ts index 599da51714..5a297dfc26 100644 --- a/ui/rogue/presets.ts +++ b/ui/rogue/presets.ts @@ -18,6 +18,16 @@ import { import * as Tooltips from '../core/constants/tooltips.js'; import { APLRotation } from '../core/proto/apl.js'; +import MutilateApl from './apls/mutilate.json' +import MutilateExposeApl from './apls/mutilate_expose.json' +import RuptureMutilateApl from './apls/rupture_mutilate.json' +import RuptureMutilateExposeApl from './apls/ruptute_mutilate_expose.json' +import CombatApl from './apls/combat.json' +import CombatExposeApl from './apls/combat_expose.json' +import CombatCleaveSndApl from './apls/combat_cleave_snd.json' +import CombatCleaveSndExposeApl from './apls/combat_cleave_snd_expose.json' +import FanAoeApl from './apls/fan_aoe.json' + // Default talents. Uses the wowhead calculator format, make the talents on // https://wowhead.com/wotlk/talent-calc and copy the numbers in the url. export const CombatHackTalents = { @@ -108,28 +118,7 @@ export const ROTATION_PRESET_MUTILATE = { name: 'Mutilate', rotation: SavedRotation.create({ specRotationOptionsJson: RogueRotation.toJsonString(RogueRotation.create()), - rotation: APLRotation.fromJsonString(`{ - "type": "TypeAPL", - "prepullActions": [ - {"action":{"castSpell":{"spellId":{"itemId":40211}}},"doAtValue":{"const":{"val":"-1s"}}}, - {"action":{"activateAura":{"auraId":{"spellId":58426}}},"doAtValue":{"const":{"val":"-1s"}}} - ], - "priorityList": [ - {"action":{"autocastOtherCooldowns":{}}}, - {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"auraRemainingTime":{"auraId":{"spellId":6774}}},"rhs":{"const":{"val":"1s"}}}},"castSpell":{"spellId":{"spellId":6774}}}}, - {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"auraRemainingTime":{"auraId":{"spellId":6774}}},"rhs":{"const":{"val":"1s"}}}},"sequence":{"actions":[{"castSpell":{"spellId":{"spellId":48666}}},{"castSpell":{"spellId":{"spellId":6774}}}]}}}, - {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"auraRemainingTime":{"auraId":{"spellId":51662}}},"rhs":{"const":{"val":"1s"}}}},"castSpell":{"spellId":{"spellId":51662}}}}, - {"action":{"condition":{"not":{"val":{"auraIsActive":{"auraId":{"spellId":58426}}}}},"castSpell":{"spellId":{"spellId":26889}}}}, - {"action":{"condition":{"auraIsActive":{"auraId":{"spellId":6774}}},"castSpell":{"spellId":{"itemId":40211}}}}, - {"action":{"condition":{"auraIsActive":{"auraId":{"spellId":6774}}},"castSpell":{"spellId":{"spellId":54758}}}}, - {"action":{"condition":{"auraIsActive":{"auraId":{"spellId":6774}}},"castSpell":{"spellId":{"spellId":13877}}}}, - {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"currentEnergy":{}},"rhs":{"const":{"val":"50"}}}},"castSpell":{"spellId":{"spellId":57934}}}}, - {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"currentEnergy":{}},"rhs":{"const":{"val":"50"}}}},"castSpell":{"spellId":{"itemId":7676}}}}, - {"action":{"condition":{"or":{"vals":[{"cmp":{"op":"OpEq","lhs":{"currentComboPoints":{}},"rhs":{"const":{"val":"5"}}}},{"cmp":{"op":"OpLe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"5s"}}}}]}},"castSpell":{"spellId":{"spellId":14177}}}}, - {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpGe","lhs":{"currentComboPoints":{}},"rhs":{"const":{"val":"4"}}}},{"or":{"vals":[{"not":{"val":{"auraIsActive":{"auraId":{"spellId":57993}}}}},{"cmp":{"op":"OpGe","lhs":{"currentEnergy":{}},"rhs":{"const":{"val":"85"}}}}]}}]}},"castSpell":{"spellId":{"spellId":57993}}}}, - {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"currentComboPoints":{}},"rhs":{"const":{"val":"3"}}}},"castSpell":{"spellId":{"spellId":48666}}}} - ] - }`), + rotation: APLRotation.fromJsonString(JSON.stringify(MutilateApl)), }), }; @@ -137,29 +126,7 @@ export const ROTATION_PRESET_RUPTURE_MUTILATE = { name: 'Rupture Mutilate', rotation: SavedRotation.create({ specRotationOptionsJson: RogueRotation.toJsonString(RogueRotation.create()), - rotation: APLRotation.fromJsonString(`{ - "type": "TypeAPL", - "prepullActions": [ - {"action":{"castSpell":{"spellId":{"itemId":40211}}},"doAtValue":{"const":{"val":"-1s"}}}, - {"action":{"activateAura":{"auraId":{"spellId":58426}}},"doAtValue":{"const":{"val":"-1s"}}} - ], - "priorityList": [ - {"action":{"autocastOtherCooldowns":{}}}, - {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"auraRemainingTime":{"auraId":{"spellId":6774}}},"rhs":{"const":{"val":"1s"}}}},"castSpell":{"spellId":{"spellId":6774}}}}, - {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"auraRemainingTime":{"auraId":{"spellId":6774}}},"rhs":{"const":{"val":"1s"}}}},"sequence":{"actions":[{"castSpell":{"spellId":{"spellId":48666}}},{"castSpell":{"spellId":{"spellId":6774}}}]}}}, - {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"auraRemainingTime":{"auraId":{"spellId":51662}}},"rhs":{"const":{"val":"1s"}}}},"castSpell":{"spellId":{"spellId":51662}}}}, - {"action":{"condition":{"not":{"val":{"auraIsActive":{"auraId":{"spellId":58426}}}}},"castSpell":{"spellId":{"spellId":26889}}}}, - {"action":{"condition":{"auraIsActive":{"auraId":{"spellId":6774}}},"castSpell":{"spellId":{"itemId":40211}}}}, - {"action":{"condition":{"auraIsActive":{"auraId":{"spellId":6774}}},"castSpell":{"spellId":{"spellId":54758}}}}, - {"action":{"condition":{"auraIsActive":{"auraId":{"spellId":6774}}},"castSpell":{"spellId":{"spellId":13877}}}}, - {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"currentEnergy":{}},"rhs":{"const":{"val":"50"}}}},"castSpell":{"spellId":{"spellId":57934}}}}, - {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"currentEnergy":{}},"rhs":{"const":{"val":"50"}}}},"castSpell":{"spellId":{"itemId":7676}}}}, - {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpGe","lhs":{"currentComboPoints":{}},"rhs":{"const":{"val":"4"}}}},{"not":{"val":{"auraIsActive":{"sourceUnit":{"type":"CurrentTarget"},"auraId":{"spellId":48672}}}}}]}},"castSpell":{"spellId":{"spellId":48672}}}}, - {"action":{"condition":{"or":{"vals":[{"cmp":{"op":"OpEq","lhs":{"currentComboPoints":{}},"rhs":{"const":{"val":"5"}}}},{"cmp":{"op":"OpLe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"5s"}}}}]}},"castSpell":{"spellId":{"spellId":14177}}}}, - {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpGe","lhs":{"currentComboPoints":{}},"rhs":{"const":{"val":"4"}}}},{"or":{"vals":[{"not":{"val":{"auraIsActive":{"auraId":{"spellId":57993}}}}},{"cmp":{"op":"OpGe","lhs":{"currentEnergy":{}},"rhs":{"const":{"val":"85"}}}}]}}]}},"castSpell":{"spellId":{"spellId":57993}}}}, - {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"currentComboPoints":{}},"rhs":{"const":{"val":"3"}}}},"castSpell":{"spellId":{"spellId":48666}}}} - ] - }`), + rotation: APLRotation.fromJsonString(JSON.stringify(RuptureMutilateApl)), }), }; @@ -167,30 +134,7 @@ export const ROTATION_PRESET_MUTILATE_EXPOSE = { name: 'Mutilate w/ Expose', rotation: SavedRotation.create({ specRotationOptionsJson: RogueRotation.toJsonString(RogueRotation.create()), - rotation: APLRotation.fromJsonString(`{ - "type": "TypeAPL", - "prepullActions": [ - {"action":{"castSpell":{"spellId":{"itemId":40211}}},"doAtValue":{"const":{"val":"-1s"}}}, - {"action":{"activateAura":{"auraId":{"spellId":58426}}},"doAtValue":{"const":{"val":"-1s"}}} - ], - "priorityList": [ - {"action":{"autocastOtherCooldowns":{}}}, - {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"auraRemainingTime":{"sourceUnit":{"type":"CurrentTarget"},"auraId":{"spellId":8647}}},"rhs":{"const":{"val":"1s"}}}},"castSpell":{"spellId":{"spellId":8647}}}}, - {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"auraRemainingTime":{"auraId":{"spellId":6774}}},"rhs":{"const":{"val":"1s"}}}},"castSpell":{"spellId":{"spellId":6774}}}}, - {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"auraRemainingTime":{"sourceUnit":{"type":"CurrentTarget"},"auraId":{"spellId":8647}}},"rhs":{"const":{"val":"1s"}}}},"sequence":{"actions":[{"castSpell":{"spellId":{"spellId":48666}}},{"castSpell":{"spellId":{"spellId":8647}}}]}}}, - {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"auraRemainingTime":{"auraId":{"spellId":6774}}},"rhs":{"const":{"val":"1s"}}}},"sequence":{"actions":[{"castSpell":{"spellId":{"spellId":48666}}},{"castSpell":{"spellId":{"spellId":6774}}}]}}}, - {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"auraRemainingTime":{"auraId":{"spellId":51662}}},"rhs":{"const":{"val":"1s"}}}},"castSpell":{"spellId":{"spellId":51662}}}}, - {"action":{"condition":{"not":{"val":{"auraIsActive":{"auraId":{"spellId":58426}}}}},"castSpell":{"spellId":{"spellId":26889}}}}, - {"action":{"condition":{"auraIsActive":{"auraId":{"spellId":6774}}},"castSpell":{"spellId":{"itemId":40211}}}}, - {"action":{"condition":{"auraIsActive":{"auraId":{"spellId":6774}}},"castSpell":{"spellId":{"spellId":54758}}}}, - {"action":{"condition":{"auraIsActive":{"auraId":{"spellId":6774}}},"castSpell":{"spellId":{"spellId":13877}}}}, - {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"currentEnergy":{}},"rhs":{"const":{"val":"50"}}}},"castSpell":{"spellId":{"spellId":57934}}}}, - {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"currentEnergy":{}},"rhs":{"const":{"val":"50"}}}},"castSpell":{"spellId":{"itemId":7676}}}}, - {"action":{"condition":{"or":{"vals":[{"cmp":{"op":"OpEq","lhs":{"currentComboPoints":{}},"rhs":{"const":{"val":"5"}}}},{"cmp":{"op":"OpLe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"5s"}}}}]}},"castSpell":{"spellId":{"spellId":14177}}}}, - {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpGe","lhs":{"currentComboPoints":{}},"rhs":{"const":{"val":"4"}}}},{"or":{"vals":[{"not":{"val":{"auraIsActive":{"auraId":{"spellId":57993}}}}},{"cmp":{"op":"OpGe","lhs":{"currentEnergy":{}},"rhs":{"const":{"val":"85"}}}}]}}]}},"castSpell":{"spellId":{"spellId":57993}}}}, - {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"currentComboPoints":{}},"rhs":{"const":{"val":"3"}}}},"castSpell":{"spellId":{"spellId":48666}}}} - ] - }`), + rotation: APLRotation.fromJsonString(JSON.stringify(MutilateExposeApl)), }), }; @@ -198,31 +142,7 @@ export const ROTATION_PRESET_RUPTURE_MUTILATE_EXPOSE = { name: 'Rupture Mutilate w/ Expose', rotation: SavedRotation.create({ specRotationOptionsJson: RogueRotation.toJsonString(RogueRotation.create()), - rotation: APLRotation.fromJsonString(`{ - "type": "TypeAPL", - "prepullActions": [ - {"action":{"castSpell":{"spellId":{"itemId":40211}}},"doAtValue":{"const":{"val":"-1s"}}}, - {"action":{"activateAura":{"auraId":{"spellId":58426}}},"doAtValue":{"const":{"val":"-1s"}}} - ], - "priorityList": [ - {"action":{"autocastOtherCooldowns":{}}}, - {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"auraRemainingTime":{"sourceUnit":{"type":"CurrentTarget"},"auraId":{"spellId":8647}}},"rhs":{"const":{"val":"1s"}}}},"castSpell":{"spellId":{"spellId":8647}}}}, - {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"auraRemainingTime":{"auraId":{"spellId":6774}}},"rhs":{"const":{"val":"1s"}}}},"castSpell":{"spellId":{"spellId":6774}}}}, - {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"auraRemainingTime":{"sourceUnit":{"type":"CurrentTarget"},"auraId":{"spellId":8647}}},"rhs":{"const":{"val":"1s"}}}},"sequence":{"actions":[{"castSpell":{"spellId":{"spellId":48666}}},{"castSpell":{"spellId":{"spellId":8647}}}]}}}, - {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"auraRemainingTime":{"auraId":{"spellId":6774}}},"rhs":{"const":{"val":"1s"}}}},"sequence":{"actions":[{"castSpell":{"spellId":{"spellId":48666}}},{"castSpell":{"spellId":{"spellId":6774}}}]}}}, - {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"auraRemainingTime":{"auraId":{"spellId":51662}}},"rhs":{"const":{"val":"1s"}}}},"castSpell":{"spellId":{"spellId":51662}}}}, - {"action":{"condition":{"not":{"val":{"auraIsActive":{"auraId":{"spellId":58426}}}}},"castSpell":{"spellId":{"spellId":26889}}}}, - {"action":{"condition":{"auraIsActive":{"auraId":{"spellId":6774}}},"castSpell":{"spellId":{"itemId":40211}}}}, - {"action":{"condition":{"auraIsActive":{"auraId":{"spellId":6774}}},"castSpell":{"spellId":{"spellId":54758}}}}, - {"action":{"condition":{"auraIsActive":{"auraId":{"spellId":6774}}},"castSpell":{"spellId":{"spellId":13877}}}}, - {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"currentEnergy":{}},"rhs":{"const":{"val":"50"}}}},"castSpell":{"spellId":{"spellId":57934}}}}, - {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"currentEnergy":{}},"rhs":{"const":{"val":"50"}}}},"castSpell":{"spellId":{"itemId":7676}}}}, - {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpGe","lhs":{"currentComboPoints":{}},"rhs":{"const":{"val":"4"}}}},{"not":{"val":{"auraIsActive":{"sourceUnit":{"type":"CurrentTarget"},"auraId":{"spellId":48672}}}}}]}},"castSpell":{"spellId":{"spellId":48672}}}}, - {"action":{"condition":{"or":{"vals":[{"cmp":{"op":"OpEq","lhs":{"currentComboPoints":{}},"rhs":{"const":{"val":"5"}}}},{"cmp":{"op":"OpLe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"5s"}}}}]}},"castSpell":{"spellId":{"spellId":14177}}}}, - {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpGe","lhs":{"currentComboPoints":{}},"rhs":{"const":{"val":"4"}}}},{"or":{"vals":[{"not":{"val":{"auraIsActive":{"auraId":{"spellId":57993}}}}},{"cmp":{"op":"OpGe","lhs":{"currentEnergy":{}},"rhs":{"const":{"val":"85"}}}}]}}]}},"castSpell":{"spellId":{"spellId":57993}}}}, - {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"currentComboPoints":{}},"rhs":{"const":{"val":"3"}}}},"castSpell":{"spellId":{"spellId":48666}}}} - ] - }`), + rotation: APLRotation.fromJsonString(JSON.stringify(RuptureMutilateExposeApl)), }), }; @@ -230,32 +150,7 @@ export const ROTATION_PRESET_COMBAT = { name: 'Combat', rotation: SavedRotation.create({ specRotationOptionsJson: RogueRotation.toJsonString(RogueRotation.create()), - rotation: APLRotation.fromJsonString(`{ - "type": "TypeAPL", - "prepullActions": [ - {"action":{"castSpell":{"spellId":{"itemId":40211}}},"doAtValue":{"const":{"val":"-1s"}}} - ], - "priorityList": [ - {"action":{"autocastOtherCooldowns":{}}}, - {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpLe","lhs":{"auraRemainingTime":{"auraId":{"spellId":6774}}},"rhs":{"const":{"val":"1"}}}},{"cmp":{"op":"OpGe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"2s"}}}}]}},"castSpell":{"spellId":{"spellId":6774}}}}, - {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpLe","lhs":{"auraRemainingTime":{"auraId":{"spellId":6774}}},"rhs":{"const":{"val":"1s"}}}},{"cmp":{"op":"OpGe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"2s"}}}}]}},"sequence":{"actions":[{"castSpell":{"spellId":{"spellId":48638}}},{"castSpell":{"spellId":{"spellId":6774}}}]}}}, - {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpLe","lhs":{"auraRemainingTime":{"auraId":{"spellId":6774}}},"rhs":{"math":{"op":"OpAdd","lhs":{"dotRemainingTime":{"spellId":{"spellId":48672}}},"rhs":{"const":{"val":"2"}}}}}},{"cmp":{"op":"OpGe","lhs":{"currentComboPoints":{}},"rhs":{"const":{"val":"3"}}}},{"dotIsActive":{"spellId":{"spellId":48672}}},{"not":{"val":{"cmp":{"op":"OpLe","lhs":{"math":{"op":"OpAdd","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"2s"}}}},"rhs":{"auraRemainingTime":{"auraId":{"spellId":6774}}}}}}}]}},"castSpell":{"spellId":{"spellId":6774}}}}, - {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpGe","lhs":{"auraRemainingTime":{"auraId":{"spellId":6774}}},"rhs":{"const":{"val":"4s"}}}},{"cmp":{"op":"OpEq","lhs":{"currentComboPoints":{}},"rhs":{"const":{"val":"5"}}}},{"not":{"val":{"dotIsActive":{"spellId":{"spellId":48672}}}}},{"cmp":{"op":"OpGt","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"10s"}}}}]}},"castSpell":{"spellId":{"spellId":48672}}}}, - {"action":{"condition":{"and":{"vals":[{"and":{"vals":[{"cmp":{"op":"OpGe","lhs":{"auraRemainingTime":{"auraId":{"spellId":6774}}},"rhs":{"const":{"val":"2s"}}}},{"cmp":{"op":"OpLt","lhs":{"auraRemainingTime":{"auraId":{"spellId":6774}}},"rhs":{"const":{"val":"4s"}}}}]}},{"cmp":{"op":"OpGe","lhs":{"currentComboPoints":{}},"rhs":{"const":{"val":"4"}}}},{"not":{"val":{"dotIsActive":{"spellId":{"spellId":48672}}}}},{"cmp":{"op":"OpGt","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"8s"}}}}]}},"castSpell":{"spellId":{"spellId":48672}}}}, - {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpGe","lhs":{"currentComboPoints":{}},"rhs":{"const":{"val":"4"}}}},{"cmp":{"op":"OpLe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"4s"}}}}]}},"castSpell":{"spellId":{"spellId":48668}}}}, - {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpGe","lhs":{"auraRemainingTime":{"auraId":{"spellId":6774}}},"rhs":{"const":{"val":"4s"}}}},{"cmp":{"op":"OpGe","lhs":{"currentComboPoints":{}},"rhs":{"const":{"val":"4"}}}},{"cmp":{"op":"OpGe","lhs":{"auraRemainingTime":{"sourceUnit":{"type":"CurrentTarget"},"auraId":{"spellId":48672}}},"rhs":{"const":{"val":"6s"}}}},{"cmp":{"op":"OpGe","lhs":{"auraRemainingTime":{"auraId":{"spellId":13750}}},"rhs":{"const":{"val":"4s"}}}}]}},"castSpell":{"spellId":{"spellId":48668}}}}, - {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpGe","lhs":{"auraRemainingTime":{"auraId":{"spellId":6774}}},"rhs":{"const":{"val":"4s"}}}},{"cmp":{"op":"OpGe","lhs":{"currentComboPoints":{}},"rhs":{"const":{"val":"4"}}}},{"cmp":{"op":"OpGe","lhs":{"auraRemainingTime":{"sourceUnit":{"type":"CurrentTarget"},"auraId":{"spellId":48672}}},"rhs":{"const":{"val":"10s"}}}}]}},"castSpell":{"spellId":{"spellId":48668}}}}, - {"action":{"condition":{"auraIsActive":{"auraId":{"spellId":6774}}},"castSpell":{"spellId":{"spellId":13877}}}}, - {"action":{"condition":{"or":{"vals":[{"auraIsActive":{"auraId":{"spellId":13877}}},{"cmp":{"op":"OpLe","lhs":{"remainingTime":{}},"rhs":{"math":{"op":"OpAdd","lhs":{"spellTimeToReady":{"spellId":{"spellId":13877}}},"rhs":{"const":{"val":"8s"}}}}}}]}},"castSpell":{"spellId":{"spellId":54758}}}}, - {"action":{"condition":{"and":{"vals":[{"not":{"val":{"spellIsReady":{"spellId":{"spellId":13877}}}}},{"cmp":{"op":"OpGe","lhs":{"spellTimeToReady":{"spellId":{"spellId":13877}}},"rhs":{"const":{"val":"57s"}}}}]}},"castSpell":{"spellId":{"spellId":54758}}}}, - {"action":{"condition":{"or":{"vals":[{"auraIsActive":{"auraId":{"spellId":13877}}},{"cmp":{"op":"OpLe","lhs":{"remainingTime":{}},"rhs":{"math":{"op":"OpAdd","lhs":{"spellTimeToReady":{"spellId":{"spellId":13877}}},"rhs":{"const":{"val":"10s"}}}}}}]}},"castSpell":{"spellId":{"itemId":40211}}}}, - {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"currentEnergy":{}},"rhs":{"const":{"val":"50"}}}},"castSpell":{"spellId":{"spellId":57934}}}}, - {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"currentEnergy":{}},"rhs":{"const":{"val":"50"}}}},"castSpell":{"spellId":{"spellId":51690}}}}, - {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpGt","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"196s"}}}},{"cmp":{"op":"OpLe","lhs":{"currentEnergy":{}},"rhs":{"const":{"val":"50"}}}}]}},"castSpell":{"spellId":{"spellId":13750}}}}, - {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpLe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"196s"}}}},{"cmp":{"op":"OpGe","lhs":{"spellTimeToReady":{"spellId":{"spellId":51690}}},"rhs":{"const":{"val":"15s"}}}},{"cmp":{"op":"OpLe","lhs":{"currentEnergy":{}},"rhs":{"const":{"val":"50"}}}}]}},"castSpell":{"spellId":{"spellId":13750}}}}, - {"action":{"castSpell":{"spellId":{"spellId":48638}}}} - ] - }`), + rotation: APLRotation.fromJsonString(JSON.stringify(CombatApl)), }), }; @@ -263,34 +158,7 @@ export const ROTATION_PRESET_COMBAT_EXPOSE = { name: 'Combat w/ Expose', rotation: SavedRotation.create({ specRotationOptionsJson: RogueRotation.toJsonString(RogueRotation.create()), - rotation: APLRotation.fromJsonString(`{ - "type": "TypeAPL", - "prepullActions": [ - {"action":{"castSpell":{"spellId":{"itemId":40211}}},"doAtValue":{"const":{"val":"-1s"}}} - ], - "priorityList": [ - {"action":{"autocastOtherCooldowns":{}}}, - {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpLe","lhs":{"auraRemainingTime":{"auraId":{"spellId":6774}}},"rhs":{"const":{"val":"1"}}}},{"cmp":{"op":"OpGe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"2s"}}}}]}},"castSpell":{"spellId":{"spellId":6774}}}}, - {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpLe","lhs":{"auraRemainingTime":{"sourceUnit":{"type":"CurrentTarget"},"auraId":{"spellId":8647}}},"rhs":{"const":{"val":"1"}}}},{"cmp":{"op":"OpGe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"2s"}}}}]}},"castSpell":{"spellId":{"spellId":8647}}}}, - {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpLe","lhs":{"auraRemainingTime":{"auraId":{"spellId":6774}}},"rhs":{"const":{"val":"1s"}}}},{"cmp":{"op":"OpGe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"2s"}}}}]}},"sequence":{"actions":[{"castSpell":{"spellId":{"spellId":48638}}},{"castSpell":{"spellId":{"spellId":6774}}}]}}}, - {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpLe","lhs":{"auraRemainingTime":{"sourceUnit":{"type":"CurrentTarget"},"auraId":{"spellId":8647}}},"rhs":{"const":{"val":"1s"}}}},{"cmp":{"op":"OpGe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"2s"}}}}]}},"sequence":{"actions":[{"castSpell":{"spellId":{"spellId":48638}}},{"castSpell":{"spellId":{"spellId":8647}}}]}}}, - {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpLe","lhs":{"auraRemainingTime":{"auraId":{"spellId":6774}}},"rhs":{"math":{"op":"OpAdd","lhs":{"dotRemainingTime":{"spellId":{"spellId":48672}}},"rhs":{"const":{"val":"2"}}}}}},{"cmp":{"op":"OpGe","lhs":{"currentComboPoints":{}},"rhs":{"const":{"val":"3"}}}},{"dotIsActive":{"spellId":{"spellId":48672}}},{"not":{"val":{"cmp":{"op":"OpLe","lhs":{"math":{"op":"OpAdd","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"2s"}}}},"rhs":{"auraRemainingTime":{"auraId":{"spellId":6774}}}}}}}]}},"castSpell":{"spellId":{"spellId":6774}}}}, - {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpGe","lhs":{"auraRemainingTime":{"auraId":{"spellId":6774}}},"rhs":{"const":{"val":"4s"}}}},{"cmp":{"op":"OpEq","lhs":{"currentComboPoints":{}},"rhs":{"const":{"val":"5"}}}},{"not":{"val":{"dotIsActive":{"spellId":{"spellId":48672}}}}},{"cmp":{"op":"OpGt","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"10s"}}}}]}},"castSpell":{"spellId":{"spellId":48672}}}}, - {"action":{"condition":{"and":{"vals":[{"and":{"vals":[{"cmp":{"op":"OpGe","lhs":{"auraRemainingTime":{"auraId":{"spellId":6774}}},"rhs":{"const":{"val":"2s"}}}},{"cmp":{"op":"OpLt","lhs":{"auraRemainingTime":{"auraId":{"spellId":6774}}},"rhs":{"const":{"val":"4s"}}}}]}},{"cmp":{"op":"OpGe","lhs":{"currentComboPoints":{}},"rhs":{"const":{"val":"4"}}}},{"not":{"val":{"dotIsActive":{"spellId":{"spellId":48672}}}}},{"cmp":{"op":"OpGt","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"8s"}}}}]}},"castSpell":{"spellId":{"spellId":48672}}}}, - {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpGe","lhs":{"currentComboPoints":{}},"rhs":{"const":{"val":"4"}}}},{"cmp":{"op":"OpLe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"4s"}}}}]}},"castSpell":{"spellId":{"spellId":48668}}}}, - {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpGe","lhs":{"auraRemainingTime":{"auraId":{"spellId":6774}}},"rhs":{"const":{"val":"4s"}}}},{"cmp":{"op":"OpGe","lhs":{"currentComboPoints":{}},"rhs":{"const":{"val":"4"}}}},{"cmp":{"op":"OpGe","lhs":{"auraRemainingTime":{"sourceUnit":{"type":"CurrentTarget"},"auraId":{"spellId":48672}}},"rhs":{"const":{"val":"6s"}}}},{"cmp":{"op":"OpGe","lhs":{"auraRemainingTime":{"auraId":{"spellId":13750}}},"rhs":{"const":{"val":"4s"}}}}]}},"castSpell":{"spellId":{"spellId":48668}}}}, - {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpGe","lhs":{"auraRemainingTime":{"auraId":{"spellId":6774}}},"rhs":{"const":{"val":"4s"}}}},{"cmp":{"op":"OpGe","lhs":{"currentComboPoints":{}},"rhs":{"const":{"val":"4"}}}},{"cmp":{"op":"OpGe","lhs":{"auraRemainingTime":{"sourceUnit":{"type":"CurrentTarget"},"auraId":{"spellId":48672}}},"rhs":{"const":{"val":"10s"}}}}]}},"castSpell":{"spellId":{"spellId":48668}}}}, - {"action":{"condition":{"auraIsActive":{"auraId":{"spellId":6774}}},"castSpell":{"spellId":{"spellId":13877}}}}, - {"action":{"condition":{"or":{"vals":[{"auraIsActive":{"auraId":{"spellId":13877}}},{"cmp":{"op":"OpLe","lhs":{"remainingTime":{}},"rhs":{"math":{"op":"OpAdd","lhs":{"spellTimeToReady":{"spellId":{"spellId":13877}}},"rhs":{"const":{"val":"8s"}}}}}}]}},"castSpell":{"spellId":{"spellId":54758}}}}, - {"action":{"condition":{"and":{"vals":[{"not":{"val":{"spellIsReady":{"spellId":{"spellId":13877}}}}},{"cmp":{"op":"OpGe","lhs":{"spellTimeToReady":{"spellId":{"spellId":13877}}},"rhs":{"const":{"val":"57s"}}}}]}},"castSpell":{"spellId":{"spellId":54758}}}}, - {"action":{"condition":{"or":{"vals":[{"auraIsActive":{"auraId":{"spellId":13877}}},{"cmp":{"op":"OpLe","lhs":{"remainingTime":{}},"rhs":{"math":{"op":"OpAdd","lhs":{"spellTimeToReady":{"spellId":{"spellId":13877}}},"rhs":{"const":{"val":"10s"}}}}}}]}},"castSpell":{"spellId":{"itemId":40211}}}}, - {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"currentEnergy":{}},"rhs":{"const":{"val":"50"}}}},"castSpell":{"spellId":{"spellId":57934}}}}, - {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"currentEnergy":{}},"rhs":{"const":{"val":"50"}}}},"castSpell":{"spellId":{"spellId":51690}}}}, - {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpGt","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"196s"}}}},{"cmp":{"op":"OpLe","lhs":{"currentEnergy":{}},"rhs":{"const":{"val":"50"}}}}]}},"castSpell":{"spellId":{"spellId":13750}}}}, - {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpLe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"196s"}}}},{"cmp":{"op":"OpGe","lhs":{"spellTimeToReady":{"spellId":{"spellId":51690}}},"rhs":{"const":{"val":"15s"}}}},{"cmp":{"op":"OpLe","lhs":{"currentEnergy":{}},"rhs":{"const":{"val":"50"}}}}]}},"castSpell":{"spellId":{"spellId":13750}}}}, - {"action":{"castSpell":{"spellId":{"spellId":48638}}}} - ] - }`), + rotation: APLRotation.fromJsonString(JSON.stringify(CombatExposeApl)), }), }; @@ -298,28 +166,7 @@ export const ROTATION_PRESET_COMBAT_CLEAVE_SND = { name: 'Combat Cleave SND', rotation: SavedRotation.create({ specRotationOptionsJson: RogueRotation.toJsonString(RogueRotation.create()), - rotation: APLRotation.fromJsonString(`{ - "type": "TypeAPL", - "prepullActions": [ - {"action":{"castSpell":{"spellId":{"itemId":40211}}},"doAtValue":{"const":{"val":"-1s"}}} - ], - "priorityList": [ - {"action":{"autocastOtherCooldowns":{}}}, - {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpLe","lhs":{"auraRemainingTime":{"auraId":{"spellId":6774}}},"rhs":{"const":{"val":"1"}}}},{"cmp":{"op":"OpGe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"2s"}}}}]}},"castSpell":{"spellId":{"spellId":6774}}}}, - {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpLe","lhs":{"auraRemainingTime":{"auraId":{"spellId":6774}}},"rhs":{"const":{"val":"1s"}}}},{"cmp":{"op":"OpGe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"2s"}}}}]}},"sequence":{"actions":[{"castSpell":{"spellId":{"spellId":48638}}},{"castSpell":{"spellId":{"spellId":6774}}}]}}}, - {"action":{"condition":{"auraIsActive":{"auraId":{"spellId":6774}}},"castSpell":{"spellId":{"spellId":13877}}}}, - {"action":{"condition":{"or":{"vals":[{"auraIsActive":{"auraId":{"spellId":13877}}},{"cmp":{"op":"OpLe","lhs":{"remainingTime":{}},"rhs":{"math":{"op":"OpAdd","lhs":{"spellTimeToReady":{"spellId":{"spellId":13877}}},"rhs":{"const":{"val":"8s"}}}}}}]}},"castSpell":{"spellId":{"spellId":54758}}}}, - {"action":{"condition":{"and":{"vals":[{"not":{"val":{"spellIsReady":{"spellId":{"spellId":13877}}}}},{"cmp":{"op":"OpGe","lhs":{"spellTimeToReady":{"spellId":{"spellId":13877}}},"rhs":{"const":{"val":"57s"}}}}]}},"castSpell":{"spellId":{"spellId":54758}}}}, - {"action":{"condition":{"or":{"vals":[{"auraIsActive":{"auraId":{"spellId":13877}}},{"cmp":{"op":"OpLe","lhs":{"remainingTime":{}},"rhs":{"math":{"op":"OpAdd","lhs":{"spellTimeToReady":{"spellId":{"spellId":13877}}},"rhs":{"const":{"val":"10s"}}}}}}]}},"castSpell":{"spellId":{"itemId":40211}}}}, - {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"currentEnergy":{}},"rhs":{"const":{"val":"50"}}}},"castSpell":{"spellId":{"spellId":51690}}}}, - {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpGt","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"196s"}}}},{"cmp":{"op":"OpLe","lhs":{"currentEnergy":{}},"rhs":{"const":{"val":"50"}}}}]}},"castSpell":{"spellId":{"spellId":13750}}}}, - {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpLe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"196s"}}}},{"cmp":{"op":"OpGe","lhs":{"spellTimeToReady":{"spellId":{"spellId":51690}}},"rhs":{"const":{"val":"15s"}}}},{"cmp":{"op":"OpLe","lhs":{"currentEnergy":{}},"rhs":{"const":{"val":"50"}}}}]}},"castSpell":{"spellId":{"spellId":13750}}}}, - {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"currentEnergy":{}},"rhs":{"const":{"val":"50"}}}},"castSpell":{"spellId":{"spellId":57934}}}}, - {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"currentEnergy":{}},"rhs":{"const":{"val":"50"}}}},"castSpell":{"spellId":{"itemId":7676}}}}, - {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpLt","lhs":{"currentComboPoints":{}},"rhs":{"const":{"val":"1"}}}},{"or":{"vals":[{"cmp":{"op":"OpLe","lhs":{"auraRemainingTime":{"auraId":{"spellId":6774}}},"rhs":{"math":{"op":"OpSub","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"2s"}}}}}}]}}]}},"castSpell":{"spellId":{"spellId":48638}}}}, - {"action":{"castSpell":{"spellId":{"spellId":51723}}}} - ] - }`), + rotation: APLRotation.fromJsonString(JSON.stringify(CombatCleaveSndApl)), }), }; @@ -327,30 +174,7 @@ export const ROTATION_PRESET_COMBAT_CLEAVE_SND_EXPOSE = { name: 'Combat Cleave SND w/ Expose', rotation: SavedRotation.create({ specRotationOptionsJson: RogueRotation.toJsonString(RogueRotation.create()), - rotation: APLRotation.fromJsonString(`{ - "type": "TypeAPL", - "prepullActions": [ - {"action":{"castSpell":{"spellId":{"itemId":40211}}},"doAtValue":{"const":{"val":"-1s"}}} - ], - "priorityList": [ - {"action":{"autocastOtherCooldowns":{}}}, - {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpLe","lhs":{"auraRemainingTime":{"sourceUnit":{"type":"CurrentTarget"},"auraId":{"spellId":8647}}},"rhs":{"const":{"val":"1"}}}},{"cmp":{"op":"OpGe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"2s"}}}}]}},"castSpell":{"spellId":{"spellId":8647}}}}, - {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpLe","lhs":{"auraRemainingTime":{"auraId":{"spellId":6774}}},"rhs":{"const":{"val":"1"}}}},{"cmp":{"op":"OpGe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"2s"}}}}]}},"castSpell":{"spellId":{"spellId":6774}}}}, - {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpLe","lhs":{"auraRemainingTime":{"sourceUnit":{"type":"CurrentTarget"},"auraId":{"spellId":8647}}},"rhs":{"const":{"val":"1s"}}}},{"cmp":{"op":"OpGe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"2s"}}}}]}},"sequence":{"actions":[{"castSpell":{"spellId":{"spellId":48638}}},{"castSpell":{"spellId":{"spellId":8647}}}]}}}, - {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpLe","lhs":{"auraRemainingTime":{"auraId":{"spellId":6774}}},"rhs":{"const":{"val":"1s"}}}},{"cmp":{"op":"OpGe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"2s"}}}}]}},"sequence":{"actions":[{"castSpell":{"spellId":{"spellId":48638}}},{"castSpell":{"spellId":{"spellId":6774}}}]}}}, - {"action":{"condition":{"auraIsActive":{"auraId":{"spellId":6774}}},"castSpell":{"spellId":{"spellId":13877}}}}, - {"action":{"condition":{"or":{"vals":[{"auraIsActive":{"auraId":{"spellId":13877}}},{"cmp":{"op":"OpLe","lhs":{"remainingTime":{}},"rhs":{"math":{"op":"OpAdd","lhs":{"spellTimeToReady":{"spellId":{"spellId":13877}}},"rhs":{"const":{"val":"8s"}}}}}}]}},"castSpell":{"spellId":{"spellId":54758}}}}, - {"action":{"condition":{"and":{"vals":[{"not":{"val":{"spellIsReady":{"spellId":{"spellId":13877}}}}},{"cmp":{"op":"OpGe","lhs":{"spellTimeToReady":{"spellId":{"spellId":13877}}},"rhs":{"const":{"val":"57s"}}}}]}},"castSpell":{"spellId":{"spellId":54758}}}}, - {"action":{"condition":{"or":{"vals":[{"auraIsActive":{"auraId":{"spellId":13877}}},{"cmp":{"op":"OpLe","lhs":{"remainingTime":{}},"rhs":{"math":{"op":"OpAdd","lhs":{"spellTimeToReady":{"spellId":{"spellId":13877}}},"rhs":{"const":{"val":"10s"}}}}}}]}},"castSpell":{"spellId":{"itemId":40211}}}}, - {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"currentEnergy":{}},"rhs":{"const":{"val":"50"}}}},"castSpell":{"spellId":{"spellId":51690}}}}, - {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpGt","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"196s"}}}},{"cmp":{"op":"OpLe","lhs":{"currentEnergy":{}},"rhs":{"const":{"val":"50"}}}}]}},"castSpell":{"spellId":{"spellId":13750}}}}, - {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpLe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"196s"}}}},{"cmp":{"op":"OpGe","lhs":{"spellTimeToReady":{"spellId":{"spellId":51690}}},"rhs":{"const":{"val":"15s"}}}},{"cmp":{"op":"OpLe","lhs":{"currentEnergy":{}},"rhs":{"const":{"val":"50"}}}}]}},"castSpell":{"spellId":{"spellId":13750}}}}, - {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"currentEnergy":{}},"rhs":{"const":{"val":"50"}}}},"castSpell":{"spellId":{"spellId":57934}}}}, - {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"currentEnergy":{}},"rhs":{"const":{"val":"50"}}}},"castSpell":{"spellId":{"itemId":7676}}}}, - {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpLt","lhs":{"currentComboPoints":{}},"rhs":{"const":{"val":"1"}}}},{"or":{"vals":[{"cmp":{"op":"OpLe","lhs":{"auraRemainingTime":{"auraId":{"spellId":6774}}},"rhs":{"math":{"op":"OpSub","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"2s"}}}}}},{"cmp":{"op":"OpLe","lhs":{"auraRemainingTime":{"sourceUnit":{"type":"CurrentTarget"},"auraId":{"spellId":8647}}},"rhs":{"math":{"op":"OpSub","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"2s"}}}}}}]}}]}},"castSpell":{"spellId":{"spellId":48638}}}}, - {"action":{"castSpell":{"spellId":{"spellId":51723}}}} - ] - }`), + rotation: APLRotation.fromJsonString(JSON.stringify(CombatCleaveSndExposeApl)), }), }; @@ -358,23 +182,7 @@ export const ROTATION_PRESET_AOE = { name: 'Fan AOE', rotation: SavedRotation.create({ specRotationOptionsJson: RogueRotation.toJsonString(RogueRotation.create()), - rotation: APLRotation.fromJsonString(`{ - "type": "TypeAPL", - "prepullActions": [ - {"action":{"castSpell":{"spellId":{"otherId":"OtherActionPotion"}}},"doAtValue":{"const":{"val":"-1s"}}}, - {"action":{"activateAura":{"auraId":{"spellId":58426}}},"doAtValue":{"const":{"val":"-1s"}}} - ], - "priorityList": [ - {"action":{"autocastOtherCooldowns":{}}}, - {"action":{"condition":{"not":{"val":{"spellIsReady":{"spellId":{"spellId":57934}}}}},"castSpell":{"spellId":{"spellId":57934}}}}, - {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"currentEnergy":{}},"rhs":{"const":{"val":"80"}}}},"castSpell":{"spellId":{"spellId":13750}}}}, - {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpLe","lhs":{"currentEnergy":{}},"rhs":{"const":{"val":"65"}}}},{"cmp":{"op":"OpLe","lhs":{"auraRemainingTime":{"auraId":{"spellId":58426}}},"rhs":{"const":{"val":"1s"}}}}]}},"castSpell":{"spellId":{"spellId":26889}}}}, - {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"currentEnergy":{}},"rhs":{"const":{"val":"50"}}}},"castSpell":{"spellId":{"itemId":7676}}}}, - {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"currentEnergy":{}},"rhs":{"const":{"val":"50"}}}},"castSpell":{"spellId":{"spellId":51690}}}}, - {"action":{"condition":{"not":{"val":{"auraIsActive":{"auraId":{"spellId":16551}}}}},"castSpell":{"spellId":{"spellId":14177}}}}, - {"action":{"castSpell":{"spellId":{"spellId":51723}}}} - ] - }`), + rotation: APLRotation.fromJsonString(JSON.stringify(FanAoeApl)), }), }; From f245ef683d90673dcf095620be56e8169eccc76c Mon Sep 17 00:00:00 2001 From: jarves Date: Mon, 25 Sep 2023 15:13:52 -0500 Subject: [PATCH 04/21] =?UTF-8?q?=EF=BB=BFrogue:=20apl=20tests?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: jarves --- sim/rogue/TestAssassination.results | 1220 +++++++++++++++-- sim/rogue/TestCombat.results | 816 +++++++---- sim/rogue/rogue_test.go | 336 +---- ...pose.json => rupture_mutilate_expose.json} | 0 ui/rogue/presets.ts | 2 +- 5 files changed, 1751 insertions(+), 623 deletions(-) rename ui/rogue/apls/{ruptute_mutilate_expose.json => rupture_mutilate_expose.json} (100%) diff --git a/sim/rogue/TestAssassination.results b/sim/rogue/TestAssassination.results index f11d4a5939..9f7010f5ca 100644 --- a/sim/rogue/TestAssassination.results +++ b/sim/rogue/TestAssassination.results @@ -790,336 +790,1344 @@ dps_results: { } } dps_results: { - key: "TestAssassination-Settings-Human-P1 Assassination-Assassination-Mutilate-FullBuffs-LongMultiTarget" + key: "TestAssassination-Settings-Human-P1 Assassination-Assassination-mutilate-FullBuffs-LongMultiTarget" + value: { + dps: 7584.45069 + tps: 5384.95999 + } +} +dps_results: { + key: "TestAssassination-Settings-Human-P1 Assassination-Assassination-mutilate-FullBuffs-LongSingleTarget" + value: { + dps: 7584.45069 + tps: 5384.95999 + } +} +dps_results: { + key: "TestAssassination-Settings-Human-P1 Assassination-Assassination-mutilate-FullBuffs-ShortSingleTarget" + value: { + dps: 8823.81748 + tps: 6264.91041 + } +} +dps_results: { + key: "TestAssassination-Settings-Human-P1 Assassination-Assassination-mutilate-NoBuffs-LongMultiTarget" + value: { + dps: 3881.66689 + tps: 2755.98349 + } +} +dps_results: { + key: "TestAssassination-Settings-Human-P1 Assassination-Assassination-mutilate-NoBuffs-LongSingleTarget" + value: { + dps: 3881.66689 + tps: 2755.98349 + } +} +dps_results: { + key: "TestAssassination-Settings-Human-P1 Assassination-Assassination-mutilate-NoBuffs-ShortSingleTarget" + value: { + dps: 4076.77595 + tps: 2894.51093 + } +} +dps_results: { + key: "TestAssassination-Settings-Human-P1 Assassination-Assassination-mutilate_expose-FullBuffs-LongMultiTarget" + value: { + dps: 7157.59804 + tps: 5081.89461 + } +} +dps_results: { + key: "TestAssassination-Settings-Human-P1 Assassination-Assassination-mutilate_expose-FullBuffs-LongSingleTarget" + value: { + dps: 7157.59804 + tps: 5081.89461 + } +} +dps_results: { + key: "TestAssassination-Settings-Human-P1 Assassination-Assassination-mutilate_expose-FullBuffs-ShortSingleTarget" + value: { + dps: 8307.87157 + tps: 5898.58881 + } +} +dps_results: { + key: "TestAssassination-Settings-Human-P1 Assassination-Assassination-mutilate_expose-NoBuffs-LongMultiTarget" + value: { + dps: 3756.23937 + tps: 2666.92995 + } +} +dps_results: { + key: "TestAssassination-Settings-Human-P1 Assassination-Assassination-mutilate_expose-NoBuffs-LongSingleTarget" + value: { + dps: 3756.23937 + tps: 2666.92995 + } +} +dps_results: { + key: "TestAssassination-Settings-Human-P1 Assassination-Assassination-mutilate_expose-NoBuffs-ShortSingleTarget" + value: { + dps: 3864.61298 + tps: 2743.87521 + } +} +dps_results: { + key: "TestAssassination-Settings-Human-P1 Assassination-Assassination-rupture_mutilate-FullBuffs-LongMultiTarget" + value: { + dps: 7518.8928 + tps: 5338.41389 + } +} +dps_results: { + key: "TestAssassination-Settings-Human-P1 Assassination-Assassination-rupture_mutilate-FullBuffs-LongSingleTarget" + value: { + dps: 7518.8928 + tps: 5338.41389 + } +} +dps_results: { + key: "TestAssassination-Settings-Human-P1 Assassination-Assassination-rupture_mutilate-FullBuffs-ShortSingleTarget" + value: { + dps: 8781.88344 + tps: 6235.13725 + } +} +dps_results: { + key: "TestAssassination-Settings-Human-P1 Assassination-Assassination-rupture_mutilate-NoBuffs-LongMultiTarget" + value: { + dps: 3790.40939 + tps: 2691.19067 + } +} +dps_results: { + key: "TestAssassination-Settings-Human-P1 Assassination-Assassination-rupture_mutilate-NoBuffs-LongSingleTarget" + value: { + dps: 3790.40939 + tps: 2691.19067 + } +} +dps_results: { + key: "TestAssassination-Settings-Human-P1 Assassination-Assassination-rupture_mutilate-NoBuffs-ShortSingleTarget" + value: { + dps: 3935.0143 + tps: 2793.86016 + } +} +dps_results: { + key: "TestAssassination-Settings-Human-P1 Assassination-Assassination-rupture_mutilate_expose-FullBuffs-LongMultiTarget" value: { dps: 6875.91538 tps: 4881.89992 } } dps_results: { - key: "TestAssassination-Settings-Human-P1 Assassination-Assassination-Mutilate-FullBuffs-LongSingleTarget" + key: "TestAssassination-Settings-Human-P1 Assassination-Assassination-rupture_mutilate_expose-FullBuffs-LongSingleTarget" + value: { + dps: 6875.91538 + tps: 4881.89992 + } +} +dps_results: { + key: "TestAssassination-Settings-Human-P1 Assassination-Assassination-rupture_mutilate_expose-FullBuffs-ShortSingleTarget" + value: { + dps: 8141.03627 + tps: 5780.13575 + } +} +dps_results: { + key: "TestAssassination-Settings-Human-P1 Assassination-Assassination-rupture_mutilate_expose-NoBuffs-LongMultiTarget" + value: { + dps: 3527.47075 + tps: 2504.50423 + } +} +dps_results: { + key: "TestAssassination-Settings-Human-P1 Assassination-Assassination-rupture_mutilate_expose-NoBuffs-LongSingleTarget" + value: { + dps: 3527.47075 + tps: 2504.50423 + } +} +dps_results: { + key: "TestAssassination-Settings-Human-P1 Assassination-Assassination-rupture_mutilate_expose-NoBuffs-ShortSingleTarget" + value: { + dps: 3680.29345 + tps: 2613.00835 + } +} +dps_results: { + key: "TestAssassination-Settings-Human-P1 Assassination-MH Deadly OH Deadly-mutilate-FullBuffs-LongMultiTarget" + value: { + dps: 4961.22839 + tps: 3522.47215 + } +} +dps_results: { + key: "TestAssassination-Settings-Human-P1 Assassination-MH Deadly OH Deadly-mutilate-FullBuffs-LongSingleTarget" + value: { + dps: 4961.22839 + tps: 3522.47215 + } +} +dps_results: { + key: "TestAssassination-Settings-Human-P1 Assassination-MH Deadly OH Deadly-mutilate-FullBuffs-ShortSingleTarget" + value: { + dps: 5795.32676 + tps: 4114.682 + } +} +dps_results: { + key: "TestAssassination-Settings-Human-P1 Assassination-MH Deadly OH Deadly-mutilate-NoBuffs-LongMultiTarget" + value: { + dps: 2563.52006 + tps: 1820.09924 + } +} +dps_results: { + key: "TestAssassination-Settings-Human-P1 Assassination-MH Deadly OH Deadly-mutilate-NoBuffs-LongSingleTarget" + value: { + dps: 2563.52006 + tps: 1820.09924 + } +} +dps_results: { + key: "TestAssassination-Settings-Human-P1 Assassination-MH Deadly OH Deadly-mutilate-NoBuffs-ShortSingleTarget" + value: { + dps: 2766.33679 + tps: 1964.09912 + } +} +dps_results: { + key: "TestAssassination-Settings-Human-P1 Assassination-MH Deadly OH Deadly-mutilate_expose-FullBuffs-LongMultiTarget" + value: { + dps: 4666.41246 + tps: 3313.15285 + } +} +dps_results: { + key: "TestAssassination-Settings-Human-P1 Assassination-MH Deadly OH Deadly-mutilate_expose-FullBuffs-LongSingleTarget" + value: { + dps: 4666.41246 + tps: 3313.15285 + } +} +dps_results: { + key: "TestAssassination-Settings-Human-P1 Assassination-MH Deadly OH Deadly-mutilate_expose-FullBuffs-ShortSingleTarget" + value: { + dps: 5436.14344 + tps: 3859.66184 + } +} +dps_results: { + key: "TestAssassination-Settings-Human-P1 Assassination-MH Deadly OH Deadly-mutilate_expose-NoBuffs-LongMultiTarget" + value: { + dps: 2508.43402 + tps: 1780.98815 + } +} +dps_results: { + key: "TestAssassination-Settings-Human-P1 Assassination-MH Deadly OH Deadly-mutilate_expose-NoBuffs-LongSingleTarget" + value: { + dps: 2508.43402 + tps: 1780.98815 + } +} +dps_results: { + key: "TestAssassination-Settings-Human-P1 Assassination-MH Deadly OH Deadly-mutilate_expose-NoBuffs-ShortSingleTarget" + value: { + dps: 2655.09097 + tps: 1885.11459 + } +} +dps_results: { + key: "TestAssassination-Settings-Human-P1 Assassination-MH Deadly OH Deadly-rupture_mutilate-FullBuffs-LongMultiTarget" + value: { + dps: 5072.72383 + tps: 3601.63392 + } +} +dps_results: { + key: "TestAssassination-Settings-Human-P1 Assassination-MH Deadly OH Deadly-rupture_mutilate-FullBuffs-LongSingleTarget" + value: { + dps: 5072.72383 + tps: 3601.63392 + } +} +dps_results: { + key: "TestAssassination-Settings-Human-P1 Assassination-MH Deadly OH Deadly-rupture_mutilate-FullBuffs-ShortSingleTarget" + value: { + dps: 5902.00326 + tps: 4190.42232 + } +} +dps_results: { + key: "TestAssassination-Settings-Human-P1 Assassination-MH Deadly OH Deadly-rupture_mutilate-NoBuffs-LongMultiTarget" + value: { + dps: 2573.22728 + tps: 1826.99137 + } +} +dps_results: { + key: "TestAssassination-Settings-Human-P1 Assassination-MH Deadly OH Deadly-rupture_mutilate-NoBuffs-LongSingleTarget" + value: { + dps: 2573.22728 + tps: 1826.99137 + } +} +dps_results: { + key: "TestAssassination-Settings-Human-P1 Assassination-MH Deadly OH Deadly-rupture_mutilate-NoBuffs-ShortSingleTarget" + value: { + dps: 2727.82758 + tps: 1936.75758 + } +} +dps_results: { + key: "TestAssassination-Settings-Human-P1 Assassination-MH Deadly OH Deadly-rupture_mutilate_expose-FullBuffs-LongMultiTarget" + value: { + dps: 4626.91461 + tps: 3285.10937 + } +} +dps_results: { + key: "TestAssassination-Settings-Human-P1 Assassination-MH Deadly OH Deadly-rupture_mutilate_expose-FullBuffs-LongSingleTarget" + value: { + dps: 4626.91461 + tps: 3285.10937 + } +} +dps_results: { + key: "TestAssassination-Settings-Human-P1 Assassination-MH Deadly OH Deadly-rupture_mutilate_expose-FullBuffs-ShortSingleTarget" + value: { + dps: 5459.69298 + tps: 3876.38201 + } +} +dps_results: { + key: "TestAssassination-Settings-Human-P1 Assassination-MH Deadly OH Deadly-rupture_mutilate_expose-NoBuffs-LongMultiTarget" + value: { + dps: 2426.07966 + tps: 1722.51656 + } +} +dps_results: { + key: "TestAssassination-Settings-Human-P1 Assassination-MH Deadly OH Deadly-rupture_mutilate_expose-NoBuffs-LongSingleTarget" + value: { + dps: 2426.07966 + tps: 1722.51656 + } +} +dps_results: { + key: "TestAssassination-Settings-Human-P1 Assassination-MH Deadly OH Deadly-rupture_mutilate_expose-NoBuffs-ShortSingleTarget" + value: { + dps: 2585.42708 + tps: 1835.65322 + } +} +dps_results: { + key: "TestAssassination-Settings-Human-P1 Assassination-MH Instant OH Deadly-mutilate-FullBuffs-LongMultiTarget" + value: { + dps: 7168.39172 + tps: 5089.55812 + } +} +dps_results: { + key: "TestAssassination-Settings-Human-P1 Assassination-MH Instant OH Deadly-mutilate-FullBuffs-LongSingleTarget" + value: { + dps: 7168.39172 + tps: 5089.55812 + } +} +dps_results: { + key: "TestAssassination-Settings-Human-P1 Assassination-MH Instant OH Deadly-mutilate-FullBuffs-ShortSingleTarget" + value: { + dps: 8290.90286 + tps: 5886.54103 + } +} +dps_results: { + key: "TestAssassination-Settings-Human-P1 Assassination-MH Instant OH Deadly-mutilate-NoBuffs-LongMultiTarget" + value: { + dps: 3682.0906 + tps: 2614.28433 + } +} +dps_results: { + key: "TestAssassination-Settings-Human-P1 Assassination-MH Instant OH Deadly-mutilate-NoBuffs-LongSingleTarget" + value: { + dps: 3682.0906 + tps: 2614.28433 + } +} +dps_results: { + key: "TestAssassination-Settings-Human-P1 Assassination-MH Instant OH Deadly-mutilate-NoBuffs-ShortSingleTarget" + value: { + dps: 3828.16856 + tps: 2717.99968 + } +} +dps_results: { + key: "TestAssassination-Settings-Human-P1 Assassination-MH Instant OH Deadly-mutilate_expose-FullBuffs-LongMultiTarget" + value: { + dps: 6763.30611 + tps: 4801.94734 + } +} +dps_results: { + key: "TestAssassination-Settings-Human-P1 Assassination-MH Instant OH Deadly-mutilate_expose-FullBuffs-LongSingleTarget" + value: { + dps: 6763.30611 + tps: 4801.94734 + } +} +dps_results: { + key: "TestAssassination-Settings-Human-P1 Assassination-MH Instant OH Deadly-mutilate_expose-FullBuffs-ShortSingleTarget" + value: { + dps: 7799.46345 + tps: 5537.61905 + } +} +dps_results: { + key: "TestAssassination-Settings-Human-P1 Assassination-MH Instant OH Deadly-mutilate_expose-NoBuffs-LongMultiTarget" + value: { + dps: 3543.71161 + tps: 2516.03524 + } +} +dps_results: { + key: "TestAssassination-Settings-Human-P1 Assassination-MH Instant OH Deadly-mutilate_expose-NoBuffs-LongSingleTarget" + value: { + dps: 3543.71161 + tps: 2516.03524 + } +} +dps_results: { + key: "TestAssassination-Settings-Human-P1 Assassination-MH Instant OH Deadly-mutilate_expose-NoBuffs-ShortSingleTarget" + value: { + dps: 3615.78652 + tps: 2567.20843 + } +} +dps_results: { + key: "TestAssassination-Settings-Human-P1 Assassination-MH Instant OH Deadly-rupture_mutilate-FullBuffs-LongMultiTarget" + value: { + dps: 7127.02479 + tps: 5060.1876 + } +} +dps_results: { + key: "TestAssassination-Settings-Human-P1 Assassination-MH Instant OH Deadly-rupture_mutilate-FullBuffs-LongSingleTarget" + value: { + dps: 7127.02479 + tps: 5060.1876 + } +} +dps_results: { + key: "TestAssassination-Settings-Human-P1 Assassination-MH Instant OH Deadly-rupture_mutilate-FullBuffs-ShortSingleTarget" + value: { + dps: 8261.20479 + tps: 5865.4554 + } +} +dps_results: { + key: "TestAssassination-Settings-Human-P1 Assassination-MH Instant OH Deadly-rupture_mutilate-NoBuffs-LongMultiTarget" + value: { + dps: 3594.03524 + tps: 2551.76502 + } +} +dps_results: { + key: "TestAssassination-Settings-Human-P1 Assassination-MH Instant OH Deadly-rupture_mutilate-NoBuffs-LongSingleTarget" + value: { + dps: 3594.03524 + tps: 2551.76502 + } +} +dps_results: { + key: "TestAssassination-Settings-Human-P1 Assassination-MH Instant OH Deadly-rupture_mutilate-NoBuffs-ShortSingleTarget" + value: { + dps: 3715.05648 + tps: 2637.6901 + } +} +dps_results: { + key: "TestAssassination-Settings-Human-P1 Assassination-MH Instant OH Deadly-rupture_mutilate_expose-FullBuffs-LongMultiTarget" + value: { + dps: 6505.55028 + tps: 4618.9407 + } +} +dps_results: { + key: "TestAssassination-Settings-Human-P1 Assassination-MH Instant OH Deadly-rupture_mutilate_expose-FullBuffs-LongSingleTarget" + value: { + dps: 6505.55028 + tps: 4618.9407 + } +} +dps_results: { + key: "TestAssassination-Settings-Human-P1 Assassination-MH Instant OH Deadly-rupture_mutilate_expose-FullBuffs-ShortSingleTarget" + value: { + dps: 7662.89979 + tps: 5440.65885 + } +} +dps_results: { + key: "TestAssassination-Settings-Human-P1 Assassination-MH Instant OH Deadly-rupture_mutilate_expose-NoBuffs-LongMultiTarget" + value: { + dps: 3348.51318 + tps: 2377.44436 + } +} +dps_results: { + key: "TestAssassination-Settings-Human-P1 Assassination-MH Instant OH Deadly-rupture_mutilate_expose-NoBuffs-LongSingleTarget" + value: { + dps: 3348.51318 + tps: 2377.44436 + } +} +dps_results: { + key: "TestAssassination-Settings-Human-P1 Assassination-MH Instant OH Deadly-rupture_mutilate_expose-NoBuffs-ShortSingleTarget" + value: { + dps: 3477.24194 + tps: 2468.84178 + } +} +dps_results: { + key: "TestAssassination-Settings-Human-P1 Assassination-MH Instant OH Instant-mutilate-FullBuffs-LongMultiTarget" + value: { + dps: 3599.76844 + tps: 2555.83559 + } +} +dps_results: { + key: "TestAssassination-Settings-Human-P1 Assassination-MH Instant OH Instant-mutilate-FullBuffs-LongSingleTarget" + value: { + dps: 3599.76844 + tps: 2555.83559 + } +} +dps_results: { + key: "TestAssassination-Settings-Human-P1 Assassination-MH Instant OH Instant-mutilate-FullBuffs-ShortSingleTarget" + value: { + dps: 3639.9408 + tps: 2584.35797 + } +} +dps_results: { + key: "TestAssassination-Settings-Human-P1 Assassination-MH Instant OH Instant-mutilate-NoBuffs-LongMultiTarget" + value: { + dps: 1704.26815 + tps: 1210.03039 + } +} +dps_results: { + key: "TestAssassination-Settings-Human-P1 Assassination-MH Instant OH Instant-mutilate-NoBuffs-LongSingleTarget" + value: { + dps: 1704.26815 + tps: 1210.03039 + } +} +dps_results: { + key: "TestAssassination-Settings-Human-P1 Assassination-MH Instant OH Instant-mutilate-NoBuffs-ShortSingleTarget" + value: { + dps: 1580.6145 + tps: 1122.23629 + } +} +dps_results: { + key: "TestAssassination-Settings-Human-P1 Assassination-MH Instant OH Instant-mutilate_expose-FullBuffs-LongMultiTarget" + value: { + dps: 4040.28448 + tps: 2868.60198 + } +} +dps_results: { + key: "TestAssassination-Settings-Human-P1 Assassination-MH Instant OH Instant-mutilate_expose-FullBuffs-LongSingleTarget" + value: { + dps: 4040.28448 + tps: 2868.60198 + } +} +dps_results: { + key: "TestAssassination-Settings-Human-P1 Assassination-MH Instant OH Instant-mutilate_expose-FullBuffs-ShortSingleTarget" + value: { + dps: 4689.80331 + tps: 3329.76035 + } +} +dps_results: { + key: "TestAssassination-Settings-Human-P1 Assassination-MH Instant OH Instant-mutilate_expose-NoBuffs-LongMultiTarget" + value: { + dps: 2081.85232 + tps: 1478.11515 + } +} +dps_results: { + key: "TestAssassination-Settings-Human-P1 Assassination-MH Instant OH Instant-mutilate_expose-NoBuffs-LongSingleTarget" + value: { + dps: 2081.85232 + tps: 1478.11515 + } +} +dps_results: { + key: "TestAssassination-Settings-Human-P1 Assassination-MH Instant OH Instant-mutilate_expose-NoBuffs-ShortSingleTarget" + value: { + dps: 2123.04348 + tps: 1507.36087 + } +} +dps_results: { + key: "TestAssassination-Settings-Human-P1 Assassination-MH Instant OH Instant-rupture_mutilate-FullBuffs-LongMultiTarget" + value: { + dps: 4871.33718 + tps: 3458.6494 + } +} +dps_results: { + key: "TestAssassination-Settings-Human-P1 Assassination-MH Instant OH Instant-rupture_mutilate-FullBuffs-LongSingleTarget" + value: { + dps: 4871.33718 + tps: 3458.6494 + } +} +dps_results: { + key: "TestAssassination-Settings-Human-P1 Assassination-MH Instant OH Instant-rupture_mutilate-FullBuffs-ShortSingleTarget" + value: { + dps: 5592.94666 + tps: 3970.99213 + } +} +dps_results: { + key: "TestAssassination-Settings-Human-P1 Assassination-MH Instant OH Instant-rupture_mutilate-NoBuffs-LongMultiTarget" + value: { + dps: 2414.06333 + tps: 1713.98496 + } +} +dps_results: { + key: "TestAssassination-Settings-Human-P1 Assassination-MH Instant OH Instant-rupture_mutilate-NoBuffs-LongSingleTarget" + value: { + dps: 2414.06333 + tps: 1713.98496 + } +} +dps_results: { + key: "TestAssassination-Settings-Human-P1 Assassination-MH Instant OH Instant-rupture_mutilate-NoBuffs-ShortSingleTarget" + value: { + dps: 2461.12575 + tps: 1747.39928 + } +} +dps_results: { + key: "TestAssassination-Settings-Human-P1 Assassination-MH Instant OH Instant-rupture_mutilate_expose-FullBuffs-LongMultiTarget" + value: { + dps: 5073.25802 + tps: 3602.0132 + } +} +dps_results: { + key: "TestAssassination-Settings-Human-P1 Assassination-MH Instant OH Instant-rupture_mutilate_expose-FullBuffs-LongSingleTarget" + value: { + dps: 5073.25802 + tps: 3602.0132 + } +} +dps_results: { + key: "TestAssassination-Settings-Human-P1 Assassination-MH Instant OH Instant-rupture_mutilate_expose-FullBuffs-ShortSingleTarget" + value: { + dps: 5792.89521 + tps: 4112.9556 + } +} +dps_results: { + key: "TestAssassination-Settings-Human-P1 Assassination-MH Instant OH Instant-rupture_mutilate_expose-NoBuffs-LongMultiTarget" + value: { + dps: 2535.62591 + tps: 1800.2944 + } +} +dps_results: { + key: "TestAssassination-Settings-Human-P1 Assassination-MH Instant OH Instant-rupture_mutilate_expose-NoBuffs-LongSingleTarget" + value: { + dps: 2535.62591 + tps: 1800.2944 + } +} +dps_results: { + key: "TestAssassination-Settings-Human-P1 Assassination-MH Instant OH Instant-rupture_mutilate_expose-NoBuffs-ShortSingleTarget" + value: { + dps: 2671.03824 + tps: 1896.43715 + } +} +dps_results: { + key: "TestAssassination-Settings-Orc-P1 Assassination-Assassination-mutilate-FullBuffs-LongMultiTarget" + value: { + dps: 7631.31917 + tps: 5418.23661 + } +} +dps_results: { + key: "TestAssassination-Settings-Orc-P1 Assassination-Assassination-mutilate-FullBuffs-LongSingleTarget" + value: { + dps: 7631.31917 + tps: 5418.23661 + } +} +dps_results: { + key: "TestAssassination-Settings-Orc-P1 Assassination-Assassination-mutilate-FullBuffs-ShortSingleTarget" + value: { + dps: 8904.32652 + tps: 6322.07183 + } +} +dps_results: { + key: "TestAssassination-Settings-Orc-P1 Assassination-Assassination-mutilate-NoBuffs-LongMultiTarget" value: { - dps: 6875.91538 - tps: 4881.89992 + dps: 3904.53796 + tps: 2772.22195 } } dps_results: { - key: "TestAssassination-Settings-Human-P1 Assassination-Assassination-Mutilate-FullBuffs-ShortSingleTarget" + key: "TestAssassination-Settings-Orc-P1 Assassination-Assassination-mutilate-NoBuffs-LongSingleTarget" value: { - dps: 8141.03627 - tps: 5780.13575 + dps: 3904.53796 + tps: 2772.22195 } } dps_results: { - key: "TestAssassination-Settings-Human-P1 Assassination-Assassination-Mutilate-NoBuffs-LongMultiTarget" + key: "TestAssassination-Settings-Orc-P1 Assassination-Assassination-mutilate-NoBuffs-ShortSingleTarget" value: { - dps: 3527.47075 - tps: 2504.50423 + dps: 4118.67793 + tps: 2924.26133 } } dps_results: { - key: "TestAssassination-Settings-Human-P1 Assassination-Assassination-Mutilate-NoBuffs-LongSingleTarget" + key: "TestAssassination-Settings-Orc-P1 Assassination-Assassination-mutilate_expose-FullBuffs-LongMultiTarget" value: { - dps: 3527.47075 - tps: 2504.50423 + dps: 7189.88545 + tps: 5104.81867 } } dps_results: { - key: "TestAssassination-Settings-Human-P1 Assassination-Assassination-Mutilate-NoBuffs-ShortSingleTarget" + key: "TestAssassination-Settings-Orc-P1 Assassination-Assassination-mutilate_expose-FullBuffs-LongSingleTarget" value: { - dps: 3680.29345 - tps: 2613.00835 + dps: 7189.88545 + tps: 5104.81867 } } dps_results: { - key: "TestAssassination-Settings-Human-P1 Assassination-MH Deadly OH Deadly-Mutilate-FullBuffs-LongMultiTarget" + key: "TestAssassination-Settings-Orc-P1 Assassination-Assassination-mutilate_expose-FullBuffs-ShortSingleTarget" value: { - dps: 4626.91461 - tps: 3285.10937 + dps: 8390.83976 + tps: 5957.49623 } } dps_results: { - key: "TestAssassination-Settings-Human-P1 Assassination-MH Deadly OH Deadly-Mutilate-FullBuffs-LongSingleTarget" + key: "TestAssassination-Settings-Orc-P1 Assassination-Assassination-mutilate_expose-NoBuffs-LongMultiTarget" value: { - dps: 4626.91461 - tps: 3285.10937 + dps: 3782.25333 + tps: 2685.39986 } } dps_results: { - key: "TestAssassination-Settings-Human-P1 Assassination-MH Deadly OH Deadly-Mutilate-FullBuffs-ShortSingleTarget" + key: "TestAssassination-Settings-Orc-P1 Assassination-Assassination-mutilate_expose-NoBuffs-LongSingleTarget" value: { - dps: 5459.69298 - tps: 3876.38201 + dps: 3782.25333 + tps: 2685.39986 } } dps_results: { - key: "TestAssassination-Settings-Human-P1 Assassination-MH Deadly OH Deadly-Mutilate-NoBuffs-LongMultiTarget" + key: "TestAssassination-Settings-Orc-P1 Assassination-Assassination-mutilate_expose-NoBuffs-ShortSingleTarget" value: { - dps: 2426.07966 - tps: 1722.51656 + dps: 3906.68431 + tps: 2773.74586 } } dps_results: { - key: "TestAssassination-Settings-Human-P1 Assassination-MH Deadly OH Deadly-Mutilate-NoBuffs-LongSingleTarget" + key: "TestAssassination-Settings-Orc-P1 Assassination-Assassination-rupture_mutilate-FullBuffs-LongMultiTarget" value: { - dps: 2426.07966 - tps: 1722.51656 + dps: 7565.73584 + tps: 5371.67245 } } dps_results: { - key: "TestAssassination-Settings-Human-P1 Assassination-MH Deadly OH Deadly-Mutilate-NoBuffs-ShortSingleTarget" + key: "TestAssassination-Settings-Orc-P1 Assassination-Assassination-rupture_mutilate-FullBuffs-LongSingleTarget" value: { - dps: 2585.42708 - tps: 1835.65322 + dps: 7565.73584 + tps: 5371.67245 } } dps_results: { - key: "TestAssassination-Settings-Human-P1 Assassination-MH Instant OH Deadly-Mutilate-FullBuffs-LongMultiTarget" + key: "TestAssassination-Settings-Orc-P1 Assassination-Assassination-rupture_mutilate-FullBuffs-ShortSingleTarget" value: { - dps: 6505.55028 - tps: 4618.9407 + dps: 8870.97434 + tps: 6298.39178 } } dps_results: { - key: "TestAssassination-Settings-Human-P1 Assassination-MH Instant OH Deadly-Mutilate-FullBuffs-LongSingleTarget" + key: "TestAssassination-Settings-Orc-P1 Assassination-Assassination-rupture_mutilate-NoBuffs-LongMultiTarget" value: { - dps: 6505.55028 - tps: 4618.9407 + dps: 3812.49911 + tps: 2706.87437 } } dps_results: { - key: "TestAssassination-Settings-Human-P1 Assassination-MH Instant OH Deadly-Mutilate-FullBuffs-ShortSingleTarget" + key: "TestAssassination-Settings-Orc-P1 Assassination-Assassination-rupture_mutilate-NoBuffs-LongSingleTarget" value: { - dps: 7662.89979 - tps: 5440.65885 + dps: 3812.49911 + tps: 2706.87437 } } dps_results: { - key: "TestAssassination-Settings-Human-P1 Assassination-MH Instant OH Deadly-Mutilate-NoBuffs-LongMultiTarget" + key: "TestAssassination-Settings-Orc-P1 Assassination-Assassination-rupture_mutilate-NoBuffs-ShortSingleTarget" value: { - dps: 3348.51318 - tps: 2377.44436 + dps: 3978.19709 + tps: 2824.51994 } } dps_results: { - key: "TestAssassination-Settings-Human-P1 Assassination-MH Instant OH Deadly-Mutilate-NoBuffs-LongSingleTarget" + key: "TestAssassination-Settings-Orc-P1 Assassination-Assassination-rupture_mutilate_expose-FullBuffs-LongMultiTarget" value: { - dps: 3348.51318 - tps: 2377.44436 + dps: 6917.82627 + tps: 4911.65665 } } dps_results: { - key: "TestAssassination-Settings-Human-P1 Assassination-MH Instant OH Deadly-Mutilate-NoBuffs-ShortSingleTarget" + key: "TestAssassination-Settings-Orc-P1 Assassination-Assassination-rupture_mutilate_expose-FullBuffs-LongSingleTarget" value: { - dps: 3477.24194 - tps: 2468.84178 + dps: 6917.82627 + tps: 4911.65665 } } dps_results: { - key: "TestAssassination-Settings-Human-P1 Assassination-MH Instant OH Instant-Mutilate-FullBuffs-LongMultiTarget" + key: "TestAssassination-Settings-Orc-P1 Assassination-Assassination-rupture_mutilate_expose-FullBuffs-ShortSingleTarget" value: { - dps: 5073.25802 - tps: 3602.0132 + dps: 8222.73347 + tps: 5838.14076 } } dps_results: { - key: "TestAssassination-Settings-Human-P1 Assassination-MH Instant OH Instant-Mutilate-FullBuffs-LongSingleTarget" + key: "TestAssassination-Settings-Orc-P1 Assassination-Assassination-rupture_mutilate_expose-NoBuffs-LongMultiTarget" value: { - dps: 5073.25802 - tps: 3602.0132 + dps: 3546.856 + tps: 2518.26776 } } dps_results: { - key: "TestAssassination-Settings-Human-P1 Assassination-MH Instant OH Instant-Mutilate-FullBuffs-ShortSingleTarget" + key: "TestAssassination-Settings-Orc-P1 Assassination-Assassination-rupture_mutilate_expose-NoBuffs-LongSingleTarget" value: { - dps: 5792.89521 - tps: 4112.9556 + dps: 3546.856 + tps: 2518.26776 } } dps_results: { - key: "TestAssassination-Settings-Human-P1 Assassination-MH Instant OH Instant-Mutilate-NoBuffs-LongMultiTarget" + key: "TestAssassination-Settings-Orc-P1 Assassination-Assassination-rupture_mutilate_expose-NoBuffs-ShortSingleTarget" value: { - dps: 2535.62591 - tps: 1800.2944 + dps: 3725.13565 + tps: 2644.84631 } } dps_results: { - key: "TestAssassination-Settings-Human-P1 Assassination-MH Instant OH Instant-Mutilate-NoBuffs-LongSingleTarget" + key: "TestAssassination-Settings-Orc-P1 Assassination-MH Deadly OH Deadly-mutilate-FullBuffs-LongMultiTarget" value: { - dps: 2535.62591 - tps: 1800.2944 + dps: 4995.47026 + tps: 3546.78389 } } dps_results: { - key: "TestAssassination-Settings-Human-P1 Assassination-MH Instant OH Instant-Mutilate-NoBuffs-ShortSingleTarget" + key: "TestAssassination-Settings-Orc-P1 Assassination-MH Deadly OH Deadly-mutilate-FullBuffs-LongSingleTarget" value: { - dps: 2671.03824 - tps: 1896.43715 + dps: 4995.47026 + tps: 3546.78389 } } dps_results: { - key: "TestAssassination-Settings-Orc-P1 Assassination-Assassination-Mutilate-FullBuffs-LongMultiTarget" + key: "TestAssassination-Settings-Orc-P1 Assassination-MH Deadly OH Deadly-mutilate-FullBuffs-ShortSingleTarget" value: { - dps: 6917.82627 - tps: 4911.65665 + dps: 5850.33309 + tps: 4153.73649 } } dps_results: { - key: "TestAssassination-Settings-Orc-P1 Assassination-Assassination-Mutilate-FullBuffs-LongSingleTarget" + key: "TestAssassination-Settings-Orc-P1 Assassination-MH Deadly OH Deadly-mutilate-NoBuffs-LongMultiTarget" value: { - dps: 6917.82627 - tps: 4911.65665 + dps: 2581.88668 + tps: 1833.13954 } } dps_results: { - key: "TestAssassination-Settings-Orc-P1 Assassination-Assassination-Mutilate-FullBuffs-ShortSingleTarget" + key: "TestAssassination-Settings-Orc-P1 Assassination-MH Deadly OH Deadly-mutilate-NoBuffs-LongSingleTarget" value: { - dps: 8222.73347 - tps: 5838.14076 + dps: 2581.88668 + tps: 1833.13954 } } dps_results: { - key: "TestAssassination-Settings-Orc-P1 Assassination-Assassination-Mutilate-NoBuffs-LongMultiTarget" + key: "TestAssassination-Settings-Orc-P1 Assassination-MH Deadly OH Deadly-mutilate-NoBuffs-ShortSingleTarget" value: { - dps: 3546.856 - tps: 2518.26776 + dps: 2803.89704 + tps: 1990.7669 } } dps_results: { - key: "TestAssassination-Settings-Orc-P1 Assassination-Assassination-Mutilate-NoBuffs-LongSingleTarget" + key: "TestAssassination-Settings-Orc-P1 Assassination-MH Deadly OH Deadly-mutilate_expose-FullBuffs-LongMultiTarget" value: { - dps: 3546.856 - tps: 2518.26776 + dps: 4688.61432 + tps: 3328.91617 } } dps_results: { - key: "TestAssassination-Settings-Orc-P1 Assassination-Assassination-Mutilate-NoBuffs-ShortSingleTarget" + key: "TestAssassination-Settings-Orc-P1 Assassination-MH Deadly OH Deadly-mutilate_expose-FullBuffs-LongSingleTarget" value: { - dps: 3725.13565 - tps: 2644.84631 + dps: 4688.61432 + tps: 3328.91617 + } +} +dps_results: { + key: "TestAssassination-Settings-Orc-P1 Assassination-MH Deadly OH Deadly-mutilate_expose-FullBuffs-ShortSingleTarget" + value: { + dps: 5494.44103 + tps: 3901.05313 + } +} +dps_results: { + key: "TestAssassination-Settings-Orc-P1 Assassination-MH Deadly OH Deadly-mutilate_expose-NoBuffs-LongMultiTarget" + value: { + dps: 2528.58729 + tps: 1795.29697 + } +} +dps_results: { + key: "TestAssassination-Settings-Orc-P1 Assassination-MH Deadly OH Deadly-mutilate_expose-NoBuffs-LongSingleTarget" + value: { + dps: 2528.58729 + tps: 1795.29697 + } +} +dps_results: { + key: "TestAssassination-Settings-Orc-P1 Assassination-MH Deadly OH Deadly-mutilate_expose-NoBuffs-ShortSingleTarget" + value: { + dps: 2685.90829 + tps: 1906.99488 + } +} +dps_results: { + key: "TestAssassination-Settings-Orc-P1 Assassination-MH Deadly OH Deadly-rupture_mutilate-FullBuffs-LongMultiTarget" + value: { + dps: 5107.00714 + tps: 3625.97507 + } +} +dps_results: { + key: "TestAssassination-Settings-Orc-P1 Assassination-MH Deadly OH Deadly-rupture_mutilate-FullBuffs-LongSingleTarget" + value: { + dps: 5107.00714 + tps: 3625.97507 } } dps_results: { - key: "TestAssassination-Settings-Orc-P1 Assassination-MH Deadly OH Deadly-Mutilate-FullBuffs-LongMultiTarget" + key: "TestAssassination-Settings-Orc-P1 Assassination-MH Deadly OH Deadly-rupture_mutilate-FullBuffs-ShortSingleTarget" + value: { + dps: 5968.08952 + tps: 4237.34356 + } +} +dps_results: { + key: "TestAssassination-Settings-Orc-P1 Assassination-MH Deadly OH Deadly-rupture_mutilate-NoBuffs-LongMultiTarget" + value: { + dps: 2588.3363 + tps: 1837.71877 + } +} +dps_results: { + key: "TestAssassination-Settings-Orc-P1 Assassination-MH Deadly OH Deadly-rupture_mutilate-NoBuffs-LongSingleTarget" + value: { + dps: 2588.3363 + tps: 1837.71877 + } +} +dps_results: { + key: "TestAssassination-Settings-Orc-P1 Assassination-MH Deadly OH Deadly-rupture_mutilate-NoBuffs-ShortSingleTarget" + value: { + dps: 2762.11097 + tps: 1961.09879 + } +} +dps_results: { + key: "TestAssassination-Settings-Orc-P1 Assassination-MH Deadly OH Deadly-rupture_mutilate_expose-FullBuffs-LongMultiTarget" value: { dps: 4652.57046 tps: 3303.32502 } } dps_results: { - key: "TestAssassination-Settings-Orc-P1 Assassination-MH Deadly OH Deadly-Mutilate-FullBuffs-LongSingleTarget" + key: "TestAssassination-Settings-Orc-P1 Assassination-MH Deadly OH Deadly-rupture_mutilate_expose-FullBuffs-LongSingleTarget" value: { dps: 4652.57046 tps: 3303.32502 } } dps_results: { - key: "TestAssassination-Settings-Orc-P1 Assassination-MH Deadly OH Deadly-Mutilate-FullBuffs-ShortSingleTarget" + key: "TestAssassination-Settings-Orc-P1 Assassination-MH Deadly OH Deadly-rupture_mutilate_expose-FullBuffs-ShortSingleTarget" value: { dps: 5518.19557 tps: 3917.91886 } } dps_results: { - key: "TestAssassination-Settings-Orc-P1 Assassination-MH Deadly OH Deadly-Mutilate-NoBuffs-LongMultiTarget" + key: "TestAssassination-Settings-Orc-P1 Assassination-MH Deadly OH Deadly-rupture_mutilate_expose-NoBuffs-LongMultiTarget" value: { dps: 2439.16415 tps: 1731.80655 } } dps_results: { - key: "TestAssassination-Settings-Orc-P1 Assassination-MH Deadly OH Deadly-Mutilate-NoBuffs-LongSingleTarget" + key: "TestAssassination-Settings-Orc-P1 Assassination-MH Deadly OH Deadly-rupture_mutilate_expose-NoBuffs-LongSingleTarget" value: { dps: 2439.16415 tps: 1731.80655 } } dps_results: { - key: "TestAssassination-Settings-Orc-P1 Assassination-MH Deadly OH Deadly-Mutilate-NoBuffs-ShortSingleTarget" + key: "TestAssassination-Settings-Orc-P1 Assassination-MH Deadly OH Deadly-rupture_mutilate_expose-NoBuffs-ShortSingleTarget" value: { dps: 2618.33763 tps: 1859.01972 } } dps_results: { - key: "TestAssassination-Settings-Orc-P1 Assassination-MH Instant OH Deadly-Mutilate-FullBuffs-LongMultiTarget" + key: "TestAssassination-Settings-Orc-P1 Assassination-MH Instant OH Deadly-mutilate-FullBuffs-LongMultiTarget" + value: { + dps: 7214.07609 + tps: 5121.99402 + } +} +dps_results: { + key: "TestAssassination-Settings-Orc-P1 Assassination-MH Instant OH Deadly-mutilate-FullBuffs-LongSingleTarget" + value: { + dps: 7214.07609 + tps: 5121.99402 + } +} +dps_results: { + key: "TestAssassination-Settings-Orc-P1 Assassination-MH Instant OH Deadly-mutilate-FullBuffs-ShortSingleTarget" + value: { + dps: 8365.98934 + tps: 5939.85243 + } +} +dps_results: { + key: "TestAssassination-Settings-Orc-P1 Assassination-MH Instant OH Deadly-mutilate-NoBuffs-LongMultiTarget" + value: { + dps: 3707.23165 + tps: 2632.13447 + } +} +dps_results: { + key: "TestAssassination-Settings-Orc-P1 Assassination-MH Instant OH Deadly-mutilate-NoBuffs-LongSingleTarget" + value: { + dps: 3707.23165 + tps: 2632.13447 + } +} +dps_results: { + key: "TestAssassination-Settings-Orc-P1 Assassination-MH Instant OH Deadly-mutilate-NoBuffs-ShortSingleTarget" + value: { + dps: 3872.29644 + tps: 2749.33048 + } +} +dps_results: { + key: "TestAssassination-Settings-Orc-P1 Assassination-MH Instant OH Deadly-mutilate_expose-FullBuffs-LongMultiTarget" + value: { + dps: 6796.26765 + tps: 4825.35003 + } +} +dps_results: { + key: "TestAssassination-Settings-Orc-P1 Assassination-MH Instant OH Deadly-mutilate_expose-FullBuffs-LongSingleTarget" + value: { + dps: 6796.26765 + tps: 4825.35003 + } +} +dps_results: { + key: "TestAssassination-Settings-Orc-P1 Assassination-MH Instant OH Deadly-mutilate_expose-FullBuffs-ShortSingleTarget" + value: { + dps: 7879.55759 + tps: 5594.48589 + } +} +dps_results: { + key: "TestAssassination-Settings-Orc-P1 Assassination-MH Instant OH Deadly-mutilate_expose-NoBuffs-LongMultiTarget" + value: { + dps: 3571.25268 + tps: 2535.58941 + } +} +dps_results: { + key: "TestAssassination-Settings-Orc-P1 Assassination-MH Instant OH Deadly-mutilate_expose-NoBuffs-LongSingleTarget" + value: { + dps: 3571.25268 + tps: 2535.58941 + } +} +dps_results: { + key: "TestAssassination-Settings-Orc-P1 Assassination-MH Instant OH Deadly-mutilate_expose-NoBuffs-ShortSingleTarget" + value: { + dps: 3655.27309 + tps: 2595.24389 + } +} +dps_results: { + key: "TestAssassination-Settings-Orc-P1 Assassination-MH Instant OH Deadly-rupture_mutilate-FullBuffs-LongMultiTarget" + value: { + dps: 7170.96354 + tps: 5091.38412 + } +} +dps_results: { + key: "TestAssassination-Settings-Orc-P1 Assassination-MH Instant OH Deadly-rupture_mutilate-FullBuffs-LongSingleTarget" + value: { + dps: 7170.96354 + tps: 5091.38412 + } +} +dps_results: { + key: "TestAssassination-Settings-Orc-P1 Assassination-MH Instant OH Deadly-rupture_mutilate-FullBuffs-ShortSingleTarget" + value: { + dps: 8348.42109 + tps: 5927.37898 + } +} +dps_results: { + key: "TestAssassination-Settings-Orc-P1 Assassination-MH Instant OH Deadly-rupture_mutilate-NoBuffs-LongMultiTarget" + value: { + dps: 3615.42017 + tps: 2566.94832 + } +} +dps_results: { + key: "TestAssassination-Settings-Orc-P1 Assassination-MH Instant OH Deadly-rupture_mutilate-NoBuffs-LongSingleTarget" + value: { + dps: 3615.42017 + tps: 2566.94832 + } +} +dps_results: { + key: "TestAssassination-Settings-Orc-P1 Assassination-MH Instant OH Deadly-rupture_mutilate-NoBuffs-ShortSingleTarget" + value: { + dps: 3757.43464 + tps: 2667.7786 + } +} +dps_results: { + key: "TestAssassination-Settings-Orc-P1 Assassination-MH Instant OH Deadly-rupture_mutilate_expose-FullBuffs-LongMultiTarget" value: { dps: 6540.16634 tps: 4643.5181 } } dps_results: { - key: "TestAssassination-Settings-Orc-P1 Assassination-MH Instant OH Deadly-Mutilate-FullBuffs-LongSingleTarget" + key: "TestAssassination-Settings-Orc-P1 Assassination-MH Instant OH Deadly-rupture_mutilate_expose-FullBuffs-LongSingleTarget" value: { dps: 6540.16634 tps: 4643.5181 } } dps_results: { - key: "TestAssassination-Settings-Orc-P1 Assassination-MH Instant OH Deadly-Mutilate-FullBuffs-ShortSingleTarget" + key: "TestAssassination-Settings-Orc-P1 Assassination-MH Instant OH Deadly-rupture_mutilate_expose-FullBuffs-ShortSingleTarget" value: { dps: 7737.1581 tps: 5493.38225 } } dps_results: { - key: "TestAssassination-Settings-Orc-P1 Assassination-MH Instant OH Deadly-Mutilate-NoBuffs-LongMultiTarget" + key: "TestAssassination-Settings-Orc-P1 Assassination-MH Instant OH Deadly-rupture_mutilate_expose-NoBuffs-LongMultiTarget" value: { dps: 3364.65418 tps: 2388.90447 } } dps_results: { - key: "TestAssassination-Settings-Orc-P1 Assassination-MH Instant OH Deadly-Mutilate-NoBuffs-LongSingleTarget" + key: "TestAssassination-Settings-Orc-P1 Assassination-MH Instant OH Deadly-rupture_mutilate_expose-NoBuffs-LongSingleTarget" value: { dps: 3364.65418 tps: 2388.90447 } } dps_results: { - key: "TestAssassination-Settings-Orc-P1 Assassination-MH Instant OH Deadly-Mutilate-NoBuffs-ShortSingleTarget" + key: "TestAssassination-Settings-Orc-P1 Assassination-MH Instant OH Deadly-rupture_mutilate_expose-NoBuffs-ShortSingleTarget" value: { dps: 3514.16995 tps: 2495.06066 } } dps_results: { - key: "TestAssassination-Settings-Orc-P1 Assassination-MH Instant OH Instant-Mutilate-FullBuffs-LongMultiTarget" + key: "TestAssassination-Settings-Orc-P1 Assassination-MH Instant OH Instant-mutilate-FullBuffs-LongMultiTarget" + value: { + dps: 3624.73584 + tps: 2573.56245 + } +} +dps_results: { + key: "TestAssassination-Settings-Orc-P1 Assassination-MH Instant OH Instant-mutilate-FullBuffs-LongSingleTarget" + value: { + dps: 3624.73584 + tps: 2573.56245 + } +} +dps_results: { + key: "TestAssassination-Settings-Orc-P1 Assassination-MH Instant OH Instant-mutilate-FullBuffs-ShortSingleTarget" + value: { + dps: 3692.88788 + tps: 2621.9504 + } +} +dps_results: { + key: "TestAssassination-Settings-Orc-P1 Assassination-MH Instant OH Instant-mutilate-NoBuffs-LongMultiTarget" + value: { + dps: 1718.25549 + tps: 1219.96139 + } +} +dps_results: { + key: "TestAssassination-Settings-Orc-P1 Assassination-MH Instant OH Instant-mutilate-NoBuffs-LongSingleTarget" + value: { + dps: 1718.25549 + tps: 1219.96139 + } +} +dps_results: { + key: "TestAssassination-Settings-Orc-P1 Assassination-MH Instant OH Instant-mutilate-NoBuffs-ShortSingleTarget" + value: { + dps: 1606.25471 + tps: 1140.44085 + } +} +dps_results: { + key: "TestAssassination-Settings-Orc-P1 Assassination-MH Instant OH Instant-mutilate_expose-FullBuffs-LongMultiTarget" + value: { + dps: 4066.75953 + tps: 2887.39927 + } +} +dps_results: { + key: "TestAssassination-Settings-Orc-P1 Assassination-MH Instant OH Instant-mutilate_expose-FullBuffs-LongSingleTarget" + value: { + dps: 4066.75953 + tps: 2887.39927 + } +} +dps_results: { + key: "TestAssassination-Settings-Orc-P1 Assassination-MH Instant OH Instant-mutilate_expose-FullBuffs-ShortSingleTarget" + value: { + dps: 4742.02803 + tps: 3366.8399 + } +} +dps_results: { + key: "TestAssassination-Settings-Orc-P1 Assassination-MH Instant OH Instant-mutilate_expose-NoBuffs-LongMultiTarget" + value: { + dps: 2097.21968 + tps: 1489.02598 + } +} +dps_results: { + key: "TestAssassination-Settings-Orc-P1 Assassination-MH Instant OH Instant-mutilate_expose-NoBuffs-LongSingleTarget" + value: { + dps: 2097.21968 + tps: 1489.02598 + } +} +dps_results: { + key: "TestAssassination-Settings-Orc-P1 Assassination-MH Instant OH Instant-mutilate_expose-NoBuffs-ShortSingleTarget" + value: { + dps: 2151.00063 + tps: 1527.21044 + } +} +dps_results: { + key: "TestAssassination-Settings-Orc-P1 Assassination-MH Instant OH Instant-rupture_mutilate-FullBuffs-LongMultiTarget" + value: { + dps: 4902.61783 + tps: 3480.85866 + } +} +dps_results: { + key: "TestAssassination-Settings-Orc-P1 Assassination-MH Instant OH Instant-rupture_mutilate-FullBuffs-LongSingleTarget" + value: { + dps: 4902.61783 + tps: 3480.85866 + } +} +dps_results: { + key: "TestAssassination-Settings-Orc-P1 Assassination-MH Instant OH Instant-rupture_mutilate-FullBuffs-ShortSingleTarget" + value: { + dps: 5652.54153 + tps: 4013.30449 + } +} +dps_results: { + key: "TestAssassination-Settings-Orc-P1 Assassination-MH Instant OH Instant-rupture_mutilate-NoBuffs-LongMultiTarget" + value: { + dps: 2430.68305 + tps: 1725.78496 + } +} +dps_results: { + key: "TestAssassination-Settings-Orc-P1 Assassination-MH Instant OH Instant-rupture_mutilate-NoBuffs-LongSingleTarget" + value: { + dps: 2430.68305 + tps: 1725.78496 + } +} +dps_results: { + key: "TestAssassination-Settings-Orc-P1 Assassination-MH Instant OH Instant-rupture_mutilate-NoBuffs-ShortSingleTarget" + value: { + dps: 2492.34944 + tps: 1769.5681 + } +} +dps_results: { + key: "TestAssassination-Settings-Orc-P1 Assassination-MH Instant OH Instant-rupture_mutilate_expose-FullBuffs-LongMultiTarget" value: { dps: 5101.24581 tps: 3621.88452 } } dps_results: { - key: "TestAssassination-Settings-Orc-P1 Assassination-MH Instant OH Instant-Mutilate-FullBuffs-LongSingleTarget" + key: "TestAssassination-Settings-Orc-P1 Assassination-MH Instant OH Instant-rupture_mutilate_expose-FullBuffs-LongSingleTarget" value: { dps: 5101.24581 tps: 3621.88452 } } dps_results: { - key: "TestAssassination-Settings-Orc-P1 Assassination-MH Instant OH Instant-Mutilate-FullBuffs-ShortSingleTarget" + key: "TestAssassination-Settings-Orc-P1 Assassination-MH Instant OH Instant-rupture_mutilate_expose-FullBuffs-ShortSingleTarget" value: { dps: 5854.08328 tps: 4156.39913 } } dps_results: { - key: "TestAssassination-Settings-Orc-P1 Assassination-MH Instant OH Instant-Mutilate-NoBuffs-LongMultiTarget" + key: "TestAssassination-Settings-Orc-P1 Assassination-MH Instant OH Instant-rupture_mutilate_expose-NoBuffs-LongMultiTarget" value: { dps: 2557.7696 tps: 1816.01642 } } dps_results: { - key: "TestAssassination-Settings-Orc-P1 Assassination-MH Instant OH Instant-Mutilate-NoBuffs-LongSingleTarget" + key: "TestAssassination-Settings-Orc-P1 Assassination-MH Instant OH Instant-rupture_mutilate_expose-NoBuffs-LongSingleTarget" value: { dps: 2557.7696 tps: 1816.01642 } } dps_results: { - key: "TestAssassination-Settings-Orc-P1 Assassination-MH Instant OH Instant-Mutilate-NoBuffs-ShortSingleTarget" + key: "TestAssassination-Settings-Orc-P1 Assassination-MH Instant OH Instant-rupture_mutilate_expose-NoBuffs-ShortSingleTarget" value: { dps: 2702.45891 tps: 1918.74583 diff --git a/sim/rogue/TestCombat.results b/sim/rogue/TestCombat.results index 0fe69d585e..b44c4d36e9 100644 --- a/sim/rogue/TestCombat.results +++ b/sim/rogue/TestCombat.results @@ -853,1013 +853,1349 @@ dps_results: { } } dps_results: { - key: "TestCombat-Settings-Human-P1-MH Deadly OH Deadly-AOE-FullBuffs-LongMultiTarget" + key: "TestCombat-Settings-Human-P1-MH Deadly OH Deadly-combat_cleave_snd-FullBuffs-LongMultiTarget" value: { - dps: 20024.58539 - tps: 14217.45563 + dps: 18707.30228 + tps: 13282.18462 } } dps_results: { - key: "TestCombat-Settings-Human-P1-MH Deadly OH Deadly-AOE-FullBuffs-LongSingleTarget" + key: "TestCombat-Settings-Human-P1-MH Deadly OH Deadly-combat_cleave_snd-FullBuffs-LongSingleTarget" value: { - dps: 3312.82325 - tps: 2352.10451 + dps: 4047.86534 + tps: 2873.98439 } } dps_results: { - key: "TestCombat-Settings-Human-P1-MH Deadly OH Deadly-AOE-FullBuffs-ShortSingleTarget" + key: "TestCombat-Settings-Human-P1-MH Deadly OH Deadly-combat_cleave_snd-FullBuffs-ShortSingleTarget" value: { - dps: 3992.47589 - tps: 2834.65788 + dps: 4872.90914 + tps: 3459.76549 } } dps_results: { - key: "TestCombat-Settings-Human-P1-MH Deadly OH Deadly-AOE-NoBuffs-LongMultiTarget" + key: "TestCombat-Settings-Human-P1-MH Deadly OH Deadly-combat_cleave_snd-NoBuffs-LongMultiTarget" value: { - dps: 12268.74967 - tps: 8710.81227 + dps: 11005.52001 + tps: 7813.91921 } } dps_results: { - key: "TestCombat-Settings-Human-P1-MH Deadly OH Deadly-AOE-NoBuffs-LongSingleTarget" + key: "TestCombat-Settings-Human-P1-MH Deadly OH Deadly-combat_cleave_snd-NoBuffs-LongSingleTarget" value: { - dps: 1653.3471 - tps: 1173.87644 + dps: 1963.62471 + tps: 1394.17355 } } dps_results: { - key: "TestCombat-Settings-Human-P1-MH Deadly OH Deadly-AOE-NoBuffs-ShortSingleTarget" + key: "TestCombat-Settings-Human-P1-MH Deadly OH Deadly-combat_cleave_snd-NoBuffs-ShortSingleTarget" value: { - dps: 1770.15316 - tps: 1256.80874 + dps: 2066.29983 + tps: 1467.07288 } } dps_results: { - key: "TestCombat-Settings-Human-P1-MH Deadly OH Deadly-CleaveSND-FullBuffs-LongMultiTarget" + key: "TestCombat-Settings-Human-P1-MH Deadly OH Deadly-combat_cleave_snd_expose-FullBuffs-LongMultiTarget" value: { dps: 11018.16769 tps: 7822.89906 } } dps_results: { - key: "TestCombat-Settings-Human-P1-MH Deadly OH Deadly-CleaveSND-FullBuffs-LongSingleTarget" + key: "TestCombat-Settings-Human-P1-MH Deadly OH Deadly-combat_cleave_snd_expose-FullBuffs-LongSingleTarget" value: { dps: 3832.2303 tps: 2720.88351 } } dps_results: { - key: "TestCombat-Settings-Human-P1-MH Deadly OH Deadly-CleaveSND-FullBuffs-ShortSingleTarget" + key: "TestCombat-Settings-Human-P1-MH Deadly OH Deadly-combat_cleave_snd_expose-FullBuffs-ShortSingleTarget" value: { dps: 4649.6774 tps: 3301.27096 } } dps_results: { - key: "TestCombat-Settings-Human-P1-MH Deadly OH Deadly-CleaveSND-NoBuffs-LongMultiTarget" + key: "TestCombat-Settings-Human-P1-MH Deadly OH Deadly-combat_cleave_snd_expose-NoBuffs-LongMultiTarget" value: { dps: 5961.81759 tps: 4232.89049 } } dps_results: { - key: "TestCombat-Settings-Human-P1-MH Deadly OH Deadly-CleaveSND-NoBuffs-LongSingleTarget" + key: "TestCombat-Settings-Human-P1-MH Deadly OH Deadly-combat_cleave_snd_expose-NoBuffs-LongSingleTarget" value: { dps: 1981.78091 tps: 1407.06445 } } dps_results: { - key: "TestCombat-Settings-Human-P1-MH Deadly OH Deadly-CleaveSND-NoBuffs-ShortSingleTarget" + key: "TestCombat-Settings-Human-P1-MH Deadly OH Deadly-combat_cleave_snd_expose-NoBuffs-ShortSingleTarget" value: { dps: 2095.7113 tps: 1487.95502 } } dps_results: { - key: "TestCombat-Settings-Human-P1-MH Deadly OH Deadly-Combat-FullBuffs-LongMultiTarget" + key: "TestCombat-Settings-Human-P1-MH Deadly OH Deadly-combat_expose-FullBuffs-LongMultiTarget" value: { dps: 5343.94398 tps: 3794.20022 } } dps_results: { - key: "TestCombat-Settings-Human-P1-MH Deadly OH Deadly-Combat-FullBuffs-LongSingleTarget" + key: "TestCombat-Settings-Human-P1-MH Deadly OH Deadly-combat_expose-FullBuffs-LongSingleTarget" value: { dps: 4590.18064 tps: 3259.02826 } } dps_results: { - key: "TestCombat-Settings-Human-P1-MH Deadly OH Deadly-Combat-FullBuffs-ShortSingleTarget" + key: "TestCombat-Settings-Human-P1-MH Deadly OH Deadly-combat_expose-FullBuffs-ShortSingleTarget" value: { dps: 5401.63889 tps: 3835.16361 } } dps_results: { - key: "TestCombat-Settings-Human-P1-MH Deadly OH Deadly-Combat-NoBuffs-LongMultiTarget" + key: "TestCombat-Settings-Human-P1-MH Deadly OH Deadly-combat_expose-NoBuffs-LongMultiTarget" value: { dps: 2649.19373 tps: 1880.92755 } } dps_results: { - key: "TestCombat-Settings-Human-P1-MH Deadly OH Deadly-Combat-NoBuffs-LongSingleTarget" + key: "TestCombat-Settings-Human-P1-MH Deadly OH Deadly-combat_expose-NoBuffs-LongSingleTarget" value: { dps: 2306.18172 tps: 1637.38902 } } dps_results: { - key: "TestCombat-Settings-Human-P1-MH Deadly OH Deadly-Combat-NoBuffs-ShortSingleTarget" + key: "TestCombat-Settings-Human-P1-MH Deadly OH Deadly-combat_expose-NoBuffs-ShortSingleTarget" value: { dps: 2415.87205 tps: 1715.26916 } } dps_results: { - key: "TestCombat-Settings-Human-P1-MH Deadly OH Instant-AOE-FullBuffs-LongMultiTarget" + key: "TestCombat-Settings-Human-P1-MH Deadly OH Deadly-fan_aoe-FullBuffs-LongMultiTarget" value: { - dps: 22129.66134 - tps: 15712.05955 + dps: 20024.58539 + tps: 14217.45563 } } dps_results: { - key: "TestCombat-Settings-Human-P1-MH Deadly OH Instant-AOE-FullBuffs-LongSingleTarget" + key: "TestCombat-Settings-Human-P1-MH Deadly OH Deadly-fan_aoe-FullBuffs-LongSingleTarget" value: { - dps: 4695.21971 - tps: 3333.606 + dps: 3312.82325 + tps: 2352.10451 } } dps_results: { - key: "TestCombat-Settings-Human-P1-MH Deadly OH Instant-AOE-FullBuffs-ShortSingleTarget" + key: "TestCombat-Settings-Human-P1-MH Deadly OH Deadly-fan_aoe-FullBuffs-ShortSingleTarget" value: { - dps: 5613.12056 - tps: 3985.3156 + dps: 3992.47589 + tps: 2834.65788 } } dps_results: { - key: "TestCombat-Settings-Human-P1-MH Deadly OH Instant-AOE-NoBuffs-LongMultiTarget" + key: "TestCombat-Settings-Human-P1-MH Deadly OH Deadly-fan_aoe-NoBuffs-LongMultiTarget" value: { - dps: 13065.97627 - tps: 9276.84315 + dps: 12268.74967 + tps: 8710.81227 } } dps_results: { - key: "TestCombat-Settings-Human-P1-MH Deadly OH Instant-AOE-NoBuffs-LongSingleTarget" + key: "TestCombat-Settings-Human-P1-MH Deadly OH Deadly-fan_aoe-NoBuffs-LongSingleTarget" value: { - dps: 2345.95544 - tps: 1665.62836 + dps: 1653.3471 + tps: 1173.87644 } } dps_results: { - key: "TestCombat-Settings-Human-P1-MH Deadly OH Instant-AOE-NoBuffs-ShortSingleTarget" + key: "TestCombat-Settings-Human-P1-MH Deadly OH Deadly-fan_aoe-NoBuffs-ShortSingleTarget" value: { - dps: 2454.87559 - tps: 1742.96167 + dps: 1770.15316 + tps: 1256.80874 + } +} +dps_results: { + key: "TestCombat-Settings-Human-P1-MH Deadly OH Instant-combat_cleave_snd-FullBuffs-LongMultiTarget" + value: { + dps: 19797.76906 + tps: 14056.41603 + } +} +dps_results: { + key: "TestCombat-Settings-Human-P1-MH Deadly OH Instant-combat_cleave_snd-FullBuffs-LongSingleTarget" + value: { + dps: 5787.96526 + tps: 4109.45534 + } +} +dps_results: { + key: "TestCombat-Settings-Human-P1-MH Deadly OH Instant-combat_cleave_snd-FullBuffs-ShortSingleTarget" + value: { + dps: 6934.4432 + tps: 4923.45467 } } dps_results: { - key: "TestCombat-Settings-Human-P1-MH Deadly OH Instant-CleaveSND-FullBuffs-LongMultiTarget" + key: "TestCombat-Settings-Human-P1-MH Deadly OH Instant-combat_cleave_snd-NoBuffs-LongMultiTarget" + value: { + dps: 11166.01664 + tps: 7927.87181 + } +} +dps_results: { + key: "TestCombat-Settings-Human-P1-MH Deadly OH Instant-combat_cleave_snd-NoBuffs-LongSingleTarget" + value: { + dps: 2814.13422 + tps: 1998.0353 + } +} +dps_results: { + key: "TestCombat-Settings-Human-P1-MH Deadly OH Instant-combat_cleave_snd-NoBuffs-ShortSingleTarget" + value: { + dps: 2910.5077 + tps: 2066.46046 + } +} +dps_results: { + key: "TestCombat-Settings-Human-P1-MH Deadly OH Instant-combat_cleave_snd_expose-FullBuffs-LongMultiTarget" value: { dps: 11803.49311 tps: 8380.48011 } } dps_results: { - key: "TestCombat-Settings-Human-P1-MH Deadly OH Instant-CleaveSND-FullBuffs-LongSingleTarget" + key: "TestCombat-Settings-Human-P1-MH Deadly OH Instant-combat_cleave_snd_expose-FullBuffs-LongSingleTarget" value: { dps: 5541.3866 tps: 3934.38449 } } dps_results: { - key: "TestCombat-Settings-Human-P1-MH Deadly OH Instant-CleaveSND-FullBuffs-ShortSingleTarget" + key: "TestCombat-Settings-Human-P1-MH Deadly OH Instant-combat_cleave_snd_expose-FullBuffs-ShortSingleTarget" value: { dps: 6664.21639 tps: 4731.59364 } } dps_results: { - key: "TestCombat-Settings-Human-P1-MH Deadly OH Instant-CleaveSND-NoBuffs-LongMultiTarget" + key: "TestCombat-Settings-Human-P1-MH Deadly OH Instant-combat_cleave_snd_expose-NoBuffs-LongMultiTarget" value: { dps: 6215.43208 tps: 4412.95677 } } dps_results: { - key: "TestCombat-Settings-Human-P1-MH Deadly OH Instant-CleaveSND-NoBuffs-LongSingleTarget" + key: "TestCombat-Settings-Human-P1-MH Deadly OH Instant-combat_cleave_snd_expose-NoBuffs-LongSingleTarget" value: { dps: 2815.94696 tps: 1999.32234 } } dps_results: { - key: "TestCombat-Settings-Human-P1-MH Deadly OH Instant-CleaveSND-NoBuffs-ShortSingleTarget" + key: "TestCombat-Settings-Human-P1-MH Deadly OH Instant-combat_cleave_snd_expose-NoBuffs-ShortSingleTarget" value: { dps: 2926.2589 tps: 2077.64382 } } dps_results: { - key: "TestCombat-Settings-Human-P1-MH Deadly OH Instant-Combat-FullBuffs-LongMultiTarget" + key: "TestCombat-Settings-Human-P1-MH Deadly OH Instant-combat_expose-FullBuffs-LongMultiTarget" value: { dps: 6947.681 tps: 4932.85351 } } dps_results: { - key: "TestCombat-Settings-Human-P1-MH Deadly OH Instant-Combat-FullBuffs-LongSingleTarget" + key: "TestCombat-Settings-Human-P1-MH Deadly OH Instant-combat_expose-FullBuffs-LongSingleTarget" value: { dps: 6279.47911 tps: 4458.43017 } } dps_results: { - key: "TestCombat-Settings-Human-P1-MH Deadly OH Instant-Combat-FullBuffs-ShortSingleTarget" + key: "TestCombat-Settings-Human-P1-MH Deadly OH Instant-combat_expose-FullBuffs-ShortSingleTarget" value: { dps: 7394.22309 tps: 5249.8984 } } dps_results: { - key: "TestCombat-Settings-Human-P1-MH Deadly OH Instant-Combat-NoBuffs-LongMultiTarget" + key: "TestCombat-Settings-Human-P1-MH Deadly OH Instant-combat_expose-NoBuffs-LongMultiTarget" value: { dps: 3410.31671 tps: 2421.32486 } } dps_results: { - key: "TestCombat-Settings-Human-P1-MH Deadly OH Instant-Combat-NoBuffs-LongSingleTarget" + key: "TestCombat-Settings-Human-P1-MH Deadly OH Instant-combat_expose-NoBuffs-LongSingleTarget" value: { dps: 3126.98744 tps: 2220.16108 } } dps_results: { - key: "TestCombat-Settings-Human-P1-MH Deadly OH Instant-Combat-NoBuffs-ShortSingleTarget" + key: "TestCombat-Settings-Human-P1-MH Deadly OH Instant-combat_expose-NoBuffs-ShortSingleTarget" value: { dps: 3227.00053 tps: 2291.17038 } } dps_results: { - key: "TestCombat-Settings-Human-P1-MH Instant OH Deadly-AOE-FullBuffs-LongMultiTarget" + key: "TestCombat-Settings-Human-P1-MH Deadly OH Instant-fan_aoe-FullBuffs-LongMultiTarget" value: { - dps: 21279.96437 - tps: 15108.77471 + dps: 22129.66134 + tps: 15712.05955 } } dps_results: { - key: "TestCombat-Settings-Human-P1-MH Instant OH Deadly-AOE-FullBuffs-LongSingleTarget" + key: "TestCombat-Settings-Human-P1-MH Deadly OH Instant-fan_aoe-FullBuffs-LongSingleTarget" value: { - dps: 4513.43891 - tps: 3204.54163 + dps: 4695.21971 + tps: 3333.606 } } dps_results: { - key: "TestCombat-Settings-Human-P1-MH Instant OH Deadly-AOE-FullBuffs-ShortSingleTarget" + key: "TestCombat-Settings-Human-P1-MH Deadly OH Instant-fan_aoe-FullBuffs-ShortSingleTarget" value: { - dps: 5379.79928 - tps: 3819.65749 + dps: 5613.12056 + tps: 3985.3156 } } dps_results: { - key: "TestCombat-Settings-Human-P1-MH Instant OH Deadly-AOE-NoBuffs-LongMultiTarget" + key: "TestCombat-Settings-Human-P1-MH Deadly OH Instant-fan_aoe-NoBuffs-LongMultiTarget" value: { - dps: 12560.55387 - tps: 8917.99325 + dps: 13065.97627 + tps: 9276.84315 } } dps_results: { - key: "TestCombat-Settings-Human-P1-MH Instant OH Deadly-AOE-NoBuffs-LongSingleTarget" + key: "TestCombat-Settings-Human-P1-MH Deadly OH Instant-fan_aoe-NoBuffs-LongSingleTarget" value: { - dps: 2252.54846 - tps: 1599.30941 + dps: 2345.95544 + tps: 1665.62836 } } dps_results: { - key: "TestCombat-Settings-Human-P1-MH Instant OH Deadly-AOE-NoBuffs-ShortSingleTarget" + key: "TestCombat-Settings-Human-P1-MH Deadly OH Instant-fan_aoe-NoBuffs-ShortSingleTarget" value: { - dps: 2355.10063 - tps: 1672.12145 + dps: 2454.87559 + tps: 1742.96167 + } +} +dps_results: { + key: "TestCombat-Settings-Human-P1-MH Instant OH Deadly-combat_cleave_snd-FullBuffs-LongMultiTarget" + value: { + dps: 19131.67033 + tps: 13583.48593 + } +} +dps_results: { + key: "TestCombat-Settings-Human-P1-MH Instant OH Deadly-combat_cleave_snd-FullBuffs-LongSingleTarget" + value: { + dps: 5542.9983 + tps: 3935.52879 + } +} +dps_results: { + key: "TestCombat-Settings-Human-P1-MH Instant OH Deadly-combat_cleave_snd-FullBuffs-ShortSingleTarget" + value: { + dps: 6606.64759 + tps: 4690.71979 } } dps_results: { - key: "TestCombat-Settings-Human-P1-MH Instant OH Deadly-CleaveSND-FullBuffs-LongMultiTarget" + key: "TestCombat-Settings-Human-P1-MH Instant OH Deadly-combat_cleave_snd-NoBuffs-LongMultiTarget" + value: { + dps: 10709.80392 + tps: 7603.96078 + } +} +dps_results: { + key: "TestCombat-Settings-Human-P1-MH Instant OH Deadly-combat_cleave_snd-NoBuffs-LongSingleTarget" + value: { + dps: 2701.31639 + tps: 1917.93464 + } +} +dps_results: { + key: "TestCombat-Settings-Human-P1-MH Instant OH Deadly-combat_cleave_snd-NoBuffs-ShortSingleTarget" + value: { + dps: 2784.99732 + tps: 1977.3481 + } +} +dps_results: { + key: "TestCombat-Settings-Human-P1-MH Instant OH Deadly-combat_cleave_snd_expose-FullBuffs-LongMultiTarget" value: { dps: 11279.32413 tps: 8008.32013 } } dps_results: { - key: "TestCombat-Settings-Human-P1-MH Instant OH Deadly-CleaveSND-FullBuffs-LongSingleTarget" + key: "TestCombat-Settings-Human-P1-MH Instant OH Deadly-combat_cleave_snd_expose-FullBuffs-LongSingleTarget" value: { dps: 5255.7402 tps: 3731.57554 } } dps_results: { - key: "TestCombat-Settings-Human-P1-MH Instant OH Deadly-CleaveSND-FullBuffs-ShortSingleTarget" + key: "TestCombat-Settings-Human-P1-MH Instant OH Deadly-combat_cleave_snd_expose-FullBuffs-ShortSingleTarget" value: { dps: 6293.71633 tps: 4468.53859 } } dps_results: { - key: "TestCombat-Settings-Human-P1-MH Instant OH Deadly-CleaveSND-NoBuffs-LongMultiTarget" + key: "TestCombat-Settings-Human-P1-MH Instant OH Deadly-combat_cleave_snd_expose-NoBuffs-LongMultiTarget" value: { dps: 5894.85597 tps: 4185.34774 } } dps_results: { - key: "TestCombat-Settings-Human-P1-MH Instant OH Deadly-CleaveSND-NoBuffs-LongSingleTarget" + key: "TestCombat-Settings-Human-P1-MH Instant OH Deadly-combat_cleave_snd_expose-NoBuffs-LongSingleTarget" value: { dps: 2673.84163 tps: 1898.42756 } } dps_results: { - key: "TestCombat-Settings-Human-P1-MH Instant OH Deadly-CleaveSND-NoBuffs-ShortSingleTarget" + key: "TestCombat-Settings-Human-P1-MH Instant OH Deadly-combat_cleave_snd_expose-NoBuffs-ShortSingleTarget" value: { dps: 2776.29521 tps: 1971.1696 } } dps_results: { - key: "TestCombat-Settings-Human-P1-MH Instant OH Deadly-Combat-FullBuffs-LongMultiTarget" + key: "TestCombat-Settings-Human-P1-MH Instant OH Deadly-combat_expose-FullBuffs-LongMultiTarget" value: { dps: 6647.14732 tps: 4719.4746 } } dps_results: { - key: "TestCombat-Settings-Human-P1-MH Instant OH Deadly-Combat-FullBuffs-LongSingleTarget" + key: "TestCombat-Settings-Human-P1-MH Instant OH Deadly-combat_expose-FullBuffs-LongSingleTarget" value: { dps: 5974.56548 tps: 4241.94149 } } dps_results: { - key: "TestCombat-Settings-Human-P1-MH Instant OH Deadly-Combat-FullBuffs-ShortSingleTarget" + key: "TestCombat-Settings-Human-P1-MH Instant OH Deadly-combat_expose-FullBuffs-ShortSingleTarget" value: { dps: 6990.31314 tps: 4963.12233 } } dps_results: { - key: "TestCombat-Settings-Human-P1-MH Instant OH Deadly-Combat-NoBuffs-LongMultiTarget" + key: "TestCombat-Settings-Human-P1-MH Instant OH Deadly-combat_expose-NoBuffs-LongMultiTarget" value: { dps: 3257.63772 tps: 2312.92278 } } dps_results: { - key: "TestCombat-Settings-Human-P1-MH Instant OH Deadly-Combat-NoBuffs-LongSingleTarget" + key: "TestCombat-Settings-Human-P1-MH Instant OH Deadly-combat_expose-NoBuffs-LongSingleTarget" value: { dps: 2973.41882 tps: 2111.12736 } } dps_results: { - key: "TestCombat-Settings-Human-P1-MH Instant OH Deadly-Combat-NoBuffs-ShortSingleTarget" + key: "TestCombat-Settings-Human-P1-MH Instant OH Deadly-combat_expose-NoBuffs-ShortSingleTarget" value: { dps: 3050.24439 tps: 2165.67352 } } dps_results: { - key: "TestCombat-Settings-Human-P1-MH Instant OH Instant-AOE-FullBuffs-LongMultiTarget" + key: "TestCombat-Settings-Human-P1-MH Instant OH Deadly-fan_aoe-FullBuffs-LongMultiTarget" value: { - dps: 16167.52503 - tps: 11478.94277 + dps: 21279.96437 + tps: 15108.77471 } } dps_results: { - key: "TestCombat-Settings-Human-P1-MH Instant OH Instant-AOE-FullBuffs-LongSingleTarget" + key: "TestCombat-Settings-Human-P1-MH Instant OH Deadly-fan_aoe-FullBuffs-LongSingleTarget" value: { - dps: 3876.77387 - tps: 2752.50945 + dps: 4513.43891 + tps: 3204.54163 } } dps_results: { - key: "TestCombat-Settings-Human-P1-MH Instant OH Instant-AOE-FullBuffs-ShortSingleTarget" + key: "TestCombat-Settings-Human-P1-MH Instant OH Deadly-fan_aoe-FullBuffs-ShortSingleTarget" value: { - dps: 4824.37833 - tps: 3425.30862 + dps: 5379.79928 + tps: 3819.65749 } } dps_results: { - key: "TestCombat-Settings-Human-P1-MH Instant OH Instant-AOE-NoBuffs-LongMultiTarget" + key: "TestCombat-Settings-Human-P1-MH Instant OH Deadly-fan_aoe-NoBuffs-LongMultiTarget" value: { - dps: 9297.93531 - tps: 6601.53407 + dps: 12560.55387 + tps: 8917.99325 } } dps_results: { - key: "TestCombat-Settings-Human-P1-MH Instant OH Instant-AOE-NoBuffs-LongSingleTarget" + key: "TestCombat-Settings-Human-P1-MH Instant OH Deadly-fan_aoe-NoBuffs-LongSingleTarget" value: { - dps: 1821.41321 - tps: 1293.20338 + dps: 2252.54846 + tps: 1599.30941 } } dps_results: { - key: "TestCombat-Settings-Human-P1-MH Instant OH Instant-AOE-NoBuffs-ShortSingleTarget" + key: "TestCombat-Settings-Human-P1-MH Instant OH Deadly-fan_aoe-NoBuffs-ShortSingleTarget" value: { - dps: 1976.96021 - tps: 1403.64175 + dps: 2355.10063 + tps: 1672.12145 + } +} +dps_results: { + key: "TestCombat-Settings-Human-P1-MH Instant OH Instant-combat_cleave_snd-FullBuffs-LongMultiTarget" + value: { + dps: 15208.89389 + tps: 10798.31466 + } +} +dps_results: { + key: "TestCombat-Settings-Human-P1-MH Instant OH Instant-combat_cleave_snd-FullBuffs-LongSingleTarget" + value: { + dps: 4869.2445 + tps: 3457.1636 + } +} +dps_results: { + key: "TestCombat-Settings-Human-P1-MH Instant OH Instant-combat_cleave_snd-FullBuffs-ShortSingleTarget" + value: { + dps: 6005.37362 + tps: 4263.81527 } } dps_results: { - key: "TestCombat-Settings-Human-P1-MH Instant OH Instant-CleaveSND-FullBuffs-LongMultiTarget" + key: "TestCombat-Settings-Human-P1-MH Instant OH Instant-combat_cleave_snd-NoBuffs-LongMultiTarget" + value: { + dps: 8331.80108 + tps: 5915.57877 + } +} +dps_results: { + key: "TestCombat-Settings-Human-P1-MH Instant OH Instant-combat_cleave_snd-NoBuffs-LongSingleTarget" + value: { + dps: 2230.54928 + tps: 1583.68999 + } +} +dps_results: { + key: "TestCombat-Settings-Human-P1-MH Instant OH Instant-combat_cleave_snd-NoBuffs-ShortSingleTarget" + value: { + dps: 2394.91718 + tps: 1700.3912 + } +} +dps_results: { + key: "TestCombat-Settings-Human-P1-MH Instant OH Instant-combat_cleave_snd_expose-FullBuffs-LongMultiTarget" value: { dps: 9892.40226 tps: 7023.60561 } } dps_results: { - key: "TestCombat-Settings-Human-P1-MH Instant OH Instant-CleaveSND-FullBuffs-LongSingleTarget" + key: "TestCombat-Settings-Human-P1-MH Instant OH Instant-combat_cleave_snd_expose-FullBuffs-LongSingleTarget" value: { dps: 4616.10377 tps: 3277.43367 } } dps_results: { - key: "TestCombat-Settings-Human-P1-MH Instant OH Instant-CleaveSND-FullBuffs-ShortSingleTarget" + key: "TestCombat-Settings-Human-P1-MH Instant OH Instant-combat_cleave_snd_expose-FullBuffs-ShortSingleTarget" value: { dps: 5712.79258 tps: 4056.08274 } } dps_results: { - key: "TestCombat-Settings-Human-P1-MH Instant OH Instant-CleaveSND-NoBuffs-LongMultiTarget" + key: "TestCombat-Settings-Human-P1-MH Instant OH Instant-combat_cleave_snd_expose-NoBuffs-LongMultiTarget" value: { dps: 5069.05768 tps: 3599.03095 } } dps_results: { - key: "TestCombat-Settings-Human-P1-MH Instant OH Instant-CleaveSND-NoBuffs-LongSingleTarget" + key: "TestCombat-Settings-Human-P1-MH Instant OH Instant-combat_cleave_snd_expose-NoBuffs-LongSingleTarget" value: { dps: 2218.29612 tps: 1574.99025 } } dps_results: { - key: "TestCombat-Settings-Human-P1-MH Instant OH Instant-CleaveSND-NoBuffs-ShortSingleTarget" + key: "TestCombat-Settings-Human-P1-MH Instant OH Instant-combat_cleave_snd_expose-NoBuffs-ShortSingleTarget" value: { dps: 2382.76705 tps: 1691.76461 } } dps_results: { - key: "TestCombat-Settings-Human-P1-MH Instant OH Instant-Combat-FullBuffs-LongMultiTarget" + key: "TestCombat-Settings-Human-P1-MH Instant OH Instant-combat_expose-FullBuffs-LongMultiTarget" value: { dps: 6024.14399 tps: 4277.14223 } } dps_results: { - key: "TestCombat-Settings-Human-P1-MH Instant OH Instant-Combat-FullBuffs-LongSingleTarget" + key: "TestCombat-Settings-Human-P1-MH Instant OH Instant-combat_expose-FullBuffs-LongSingleTarget" value: { dps: 5340.24471 tps: 3791.57375 } } dps_results: { - key: "TestCombat-Settings-Human-P1-MH Instant OH Instant-Combat-FullBuffs-ShortSingleTarget" + key: "TestCombat-Settings-Human-P1-MH Instant OH Instant-combat_expose-FullBuffs-ShortSingleTarget" value: { dps: 6459.86517 tps: 4586.50427 } } dps_results: { - key: "TestCombat-Settings-Human-P1-MH Instant OH Instant-Combat-NoBuffs-LongMultiTarget" + key: "TestCombat-Settings-Human-P1-MH Instant OH Instant-combat_expose-NoBuffs-LongMultiTarget" value: { dps: 2781.28693 tps: 1974.71372 } } dps_results: { - key: "TestCombat-Settings-Human-P1-MH Instant OH Instant-Combat-NoBuffs-LongSingleTarget" + key: "TestCombat-Settings-Human-P1-MH Instant OH Instant-combat_expose-NoBuffs-LongSingleTarget" value: { dps: 2503.7555 tps: 1777.66641 } } dps_results: { - key: "TestCombat-Settings-Human-P1-MH Instant OH Instant-Combat-NoBuffs-ShortSingleTarget" + key: "TestCombat-Settings-Human-P1-MH Instant OH Instant-combat_expose-NoBuffs-ShortSingleTarget" value: { dps: 2665.08397 tps: 1892.20962 } } dps_results: { - key: "TestCombat-Settings-Orc-P1-MH Deadly OH Deadly-AOE-FullBuffs-LongMultiTarget" + key: "TestCombat-Settings-Human-P1-MH Instant OH Instant-fan_aoe-FullBuffs-LongMultiTarget" value: { - dps: 20180.9748 - tps: 14328.49211 + dps: 16167.52503 + tps: 11478.94277 } } dps_results: { - key: "TestCombat-Settings-Orc-P1-MH Deadly OH Deadly-AOE-FullBuffs-LongSingleTarget" + key: "TestCombat-Settings-Human-P1-MH Instant OH Instant-fan_aoe-FullBuffs-LongSingleTarget" value: { - dps: 3337.76821 - tps: 2369.81543 + dps: 3876.77387 + tps: 2752.50945 } } dps_results: { - key: "TestCombat-Settings-Orc-P1-MH Deadly OH Deadly-AOE-FullBuffs-ShortSingleTarget" + key: "TestCombat-Settings-Human-P1-MH Instant OH Instant-fan_aoe-FullBuffs-ShortSingleTarget" value: { - dps: 4052.14525 - tps: 2877.02313 + dps: 4824.37833 + tps: 3425.30862 } } dps_results: { - key: "TestCombat-Settings-Orc-P1-MH Deadly OH Deadly-AOE-NoBuffs-LongMultiTarget" + key: "TestCombat-Settings-Human-P1-MH Instant OH Instant-fan_aoe-NoBuffs-LongMultiTarget" value: { - dps: 12379.61602 - tps: 8789.52737 + dps: 9297.93531 + tps: 6601.53407 } } dps_results: { - key: "TestCombat-Settings-Orc-P1-MH Deadly OH Deadly-AOE-NoBuffs-LongSingleTarget" + key: "TestCombat-Settings-Human-P1-MH Instant OH Instant-fan_aoe-NoBuffs-LongSingleTarget" value: { - dps: 1668.09863 - tps: 1184.35003 + dps: 1821.41321 + tps: 1293.20338 } } dps_results: { - key: "TestCombat-Settings-Orc-P1-MH Deadly OH Deadly-AOE-NoBuffs-ShortSingleTarget" + key: "TestCombat-Settings-Human-P1-MH Instant OH Instant-fan_aoe-NoBuffs-ShortSingleTarget" value: { - dps: 1803.0472 - tps: 1280.16352 + dps: 1976.96021 + tps: 1403.64175 + } +} +dps_results: { + key: "TestCombat-Settings-Orc-P1-MH Deadly OH Deadly-combat_cleave_snd-FullBuffs-LongMultiTarget" + value: { + dps: 18842.73857 + tps: 13378.34438 + } +} +dps_results: { + key: "TestCombat-Settings-Orc-P1-MH Deadly OH Deadly-combat_cleave_snd-FullBuffs-LongSingleTarget" + value: { + dps: 4077.59076 + tps: 2895.08944 + } +} +dps_results: { + key: "TestCombat-Settings-Orc-P1-MH Deadly OH Deadly-combat_cleave_snd-FullBuffs-ShortSingleTarget" + value: { + dps: 4941.84444 + tps: 3508.70955 } } dps_results: { - key: "TestCombat-Settings-Orc-P1-MH Deadly OH Deadly-CleaveSND-FullBuffs-LongMultiTarget" + key: "TestCombat-Settings-Orc-P1-MH Deadly OH Deadly-combat_cleave_snd-NoBuffs-LongMultiTarget" + value: { + dps: 11090.15377 + tps: 7874.00918 + } +} +dps_results: { + key: "TestCombat-Settings-Orc-P1-MH Deadly OH Deadly-combat_cleave_snd-NoBuffs-LongSingleTarget" + value: { + dps: 1979.83868 + tps: 1405.68546 + } +} +dps_results: { + key: "TestCombat-Settings-Orc-P1-MH Deadly OH Deadly-combat_cleave_snd-NoBuffs-ShortSingleTarget" + value: { + dps: 2100.93551 + tps: 1491.66421 + } +} +dps_results: { + key: "TestCombat-Settings-Orc-P1-MH Deadly OH Deadly-combat_cleave_snd_expose-FullBuffs-LongMultiTarget" value: { dps: 11102.47847 tps: 7882.75971 } } dps_results: { - key: "TestCombat-Settings-Orc-P1-MH Deadly OH Deadly-CleaveSND-FullBuffs-LongSingleTarget" + key: "TestCombat-Settings-Orc-P1-MH Deadly OH Deadly-combat_cleave_snd_expose-FullBuffs-LongSingleTarget" value: { dps: 3860.1746 tps: 2740.72396 } } dps_results: { - key: "TestCombat-Settings-Orc-P1-MH Deadly OH Deadly-CleaveSND-FullBuffs-ShortSingleTarget" + key: "TestCombat-Settings-Orc-P1-MH Deadly OH Deadly-combat_cleave_snd_expose-FullBuffs-ShortSingleTarget" value: { dps: 4715.51559 tps: 3348.01607 } } dps_results: { - key: "TestCombat-Settings-Orc-P1-MH Deadly OH Deadly-CleaveSND-NoBuffs-LongMultiTarget" + key: "TestCombat-Settings-Orc-P1-MH Deadly OH Deadly-combat_cleave_snd_expose-NoBuffs-LongMultiTarget" value: { dps: 6008.82314 tps: 4266.26443 } } dps_results: { - key: "TestCombat-Settings-Orc-P1-MH Deadly OH Deadly-CleaveSND-NoBuffs-LongSingleTarget" + key: "TestCombat-Settings-Orc-P1-MH Deadly OH Deadly-combat_cleave_snd_expose-NoBuffs-LongSingleTarget" value: { dps: 1997.51635 tps: 1418.23661 } } dps_results: { - key: "TestCombat-Settings-Orc-P1-MH Deadly OH Deadly-CleaveSND-NoBuffs-ShortSingleTarget" + key: "TestCombat-Settings-Orc-P1-MH Deadly OH Deadly-combat_cleave_snd_expose-NoBuffs-ShortSingleTarget" value: { dps: 2129.77486 tps: 1512.14015 } } dps_results: { - key: "TestCombat-Settings-Orc-P1-MH Deadly OH Deadly-Combat-FullBuffs-LongMultiTarget" + key: "TestCombat-Settings-Orc-P1-MH Deadly OH Deadly-combat_expose-FullBuffs-LongMultiTarget" value: { dps: 5396.97424 tps: 3831.85171 } } dps_results: { - key: "TestCombat-Settings-Orc-P1-MH Deadly OH Deadly-Combat-FullBuffs-LongSingleTarget" + key: "TestCombat-Settings-Orc-P1-MH Deadly OH Deadly-combat_expose-FullBuffs-LongSingleTarget" value: { dps: 4620.8544 tps: 3280.80663 } } dps_results: { - key: "TestCombat-Settings-Orc-P1-MH Deadly OH Deadly-Combat-FullBuffs-ShortSingleTarget" + key: "TestCombat-Settings-Orc-P1-MH Deadly OH Deadly-combat_expose-FullBuffs-ShortSingleTarget" value: { dps: 5471.36662 tps: 3884.6703 } } dps_results: { - key: "TestCombat-Settings-Orc-P1-MH Deadly OH Deadly-Combat-NoBuffs-LongMultiTarget" + key: "TestCombat-Settings-Orc-P1-MH Deadly OH Deadly-combat_expose-NoBuffs-LongMultiTarget" value: { dps: 2676.83609 tps: 1900.55363 } } dps_results: { - key: "TestCombat-Settings-Orc-P1-MH Deadly OH Deadly-Combat-NoBuffs-LongSingleTarget" + key: "TestCombat-Settings-Orc-P1-MH Deadly OH Deadly-combat_expose-NoBuffs-LongSingleTarget" value: { dps: 2323.09751 tps: 1649.39923 } } dps_results: { - key: "TestCombat-Settings-Orc-P1-MH Deadly OH Deadly-Combat-NoBuffs-ShortSingleTarget" + key: "TestCombat-Settings-Orc-P1-MH Deadly OH Deadly-combat_expose-NoBuffs-ShortSingleTarget" value: { dps: 2450.77178 tps: 1740.04797 } } dps_results: { - key: "TestCombat-Settings-Orc-P1-MH Deadly OH Instant-AOE-FullBuffs-LongMultiTarget" + key: "TestCombat-Settings-Orc-P1-MH Deadly OH Deadly-fan_aoe-FullBuffs-LongMultiTarget" value: { - dps: 22300.16849 - tps: 15833.11963 + dps: 20180.9748 + tps: 14328.49211 } } dps_results: { - key: "TestCombat-Settings-Orc-P1-MH Deadly OH Instant-AOE-FullBuffs-LongSingleTarget" + key: "TestCombat-Settings-Orc-P1-MH Deadly OH Deadly-fan_aoe-FullBuffs-LongSingleTarget" value: { - dps: 4729.06561 - tps: 3357.63658 + dps: 3337.76821 + tps: 2369.81543 } } dps_results: { - key: "TestCombat-Settings-Orc-P1-MH Deadly OH Instant-AOE-FullBuffs-ShortSingleTarget" + key: "TestCombat-Settings-Orc-P1-MH Deadly OH Deadly-fan_aoe-FullBuffs-ShortSingleTarget" value: { - dps: 5692.90416 - tps: 4041.96195 + dps: 4052.14525 + tps: 2877.02313 } } dps_results: { - key: "TestCombat-Settings-Orc-P1-MH Deadly OH Instant-AOE-NoBuffs-LongMultiTarget" + key: "TestCombat-Settings-Orc-P1-MH Deadly OH Deadly-fan_aoe-NoBuffs-LongMultiTarget" value: { - dps: 13181.6335 - tps: 9358.95979 + dps: 12379.61602 + tps: 8789.52737 } } dps_results: { - key: "TestCombat-Settings-Orc-P1-MH Deadly OH Instant-AOE-NoBuffs-LongSingleTarget" + key: "TestCombat-Settings-Orc-P1-MH Deadly OH Deadly-fan_aoe-NoBuffs-LongSingleTarget" value: { - dps: 2365.37375 - tps: 1679.41536 + dps: 1668.09863 + tps: 1184.35003 } } dps_results: { - key: "TestCombat-Settings-Orc-P1-MH Deadly OH Instant-AOE-NoBuffs-ShortSingleTarget" + key: "TestCombat-Settings-Orc-P1-MH Deadly OH Deadly-fan_aoe-NoBuffs-ShortSingleTarget" value: { - dps: 2496.43202 - tps: 1772.46673 + dps: 1803.0472 + tps: 1280.16352 + } +} +dps_results: { + key: "TestCombat-Settings-Orc-P1-MH Deadly OH Instant-combat_cleave_snd-FullBuffs-LongMultiTarget" + value: { + dps: 19940.64234 + tps: 14157.85606 + } +} +dps_results: { + key: "TestCombat-Settings-Orc-P1-MH Deadly OH Instant-combat_cleave_snd-FullBuffs-LongSingleTarget" + value: { + dps: 5829.28852 + tps: 4138.79485 + } +} +dps_results: { + key: "TestCombat-Settings-Orc-P1-MH Deadly OH Instant-combat_cleave_snd-FullBuffs-ShortSingleTarget" + value: { + dps: 7027.44406 + tps: 4989.48528 } } dps_results: { - key: "TestCombat-Settings-Orc-P1-MH Deadly OH Instant-CleaveSND-FullBuffs-LongMultiTarget" + key: "TestCombat-Settings-Orc-P1-MH Deadly OH Instant-combat_cleave_snd-NoBuffs-LongMultiTarget" + value: { + dps: 11250.66969 + tps: 7987.97548 + } +} +dps_results: { + key: "TestCombat-Settings-Orc-P1-MH Deadly OH Instant-combat_cleave_snd-NoBuffs-LongSingleTarget" + value: { + dps: 2835.84074 + tps: 2013.44692 + } +} +dps_results: { + key: "TestCombat-Settings-Orc-P1-MH Deadly OH Instant-combat_cleave_snd-NoBuffs-ShortSingleTarget" + value: { + dps: 2955.14812 + tps: 2098.15516 + } +} +dps_results: { + key: "TestCombat-Settings-Orc-P1-MH Deadly OH Instant-combat_cleave_snd_expose-FullBuffs-LongMultiTarget" value: { dps: 11893.6197 tps: 8444.46999 } } dps_results: { - key: "TestCombat-Settings-Orc-P1-MH Deadly OH Instant-CleaveSND-FullBuffs-LongSingleTarget" + key: "TestCombat-Settings-Orc-P1-MH Deadly OH Instant-combat_cleave_snd_expose-FullBuffs-LongSingleTarget" value: { dps: 5579.93888 tps: 3961.75661 } } dps_results: { - key: "TestCombat-Settings-Orc-P1-MH Deadly OH Instant-CleaveSND-FullBuffs-ShortSingleTarget" + key: "TestCombat-Settings-Orc-P1-MH Deadly OH Instant-combat_cleave_snd_expose-FullBuffs-ShortSingleTarget" value: { dps: 6752.8443 tps: 4794.51945 } } dps_results: { - key: "TestCombat-Settings-Orc-P1-MH Deadly OH Instant-CleaveSND-NoBuffs-LongMultiTarget" + key: "TestCombat-Settings-Orc-P1-MH Deadly OH Instant-combat_cleave_snd_expose-NoBuffs-LongMultiTarget" value: { dps: 6265.71783 tps: 4448.65966 } } dps_results: { - key: "TestCombat-Settings-Orc-P1-MH Deadly OH Instant-CleaveSND-NoBuffs-LongSingleTarget" + key: "TestCombat-Settings-Orc-P1-MH Deadly OH Instant-combat_cleave_snd_expose-NoBuffs-LongSingleTarget" value: { dps: 2836.9641 tps: 2014.24451 } } dps_results: { - key: "TestCombat-Settings-Orc-P1-MH Deadly OH Instant-CleaveSND-NoBuffs-ShortSingleTarget" + key: "TestCombat-Settings-Orc-P1-MH Deadly OH Instant-combat_cleave_snd_expose-NoBuffs-ShortSingleTarget" value: { dps: 2970.14591 tps: 2108.8036 } } dps_results: { - key: "TestCombat-Settings-Orc-P1-MH Deadly OH Instant-Combat-FullBuffs-LongMultiTarget" + key: "TestCombat-Settings-Orc-P1-MH Deadly OH Instant-combat_expose-FullBuffs-LongMultiTarget" value: { dps: 7010.26588 tps: 4977.28878 } } dps_results: { - key: "TestCombat-Settings-Orc-P1-MH Deadly OH Instant-Combat-FullBuffs-LongSingleTarget" + key: "TestCombat-Settings-Orc-P1-MH Deadly OH Instant-combat_expose-FullBuffs-LongSingleTarget" value: { dps: 6320.60921 tps: 4487.63254 } } dps_results: { - key: "TestCombat-Settings-Orc-P1-MH Deadly OH Instant-Combat-FullBuffs-ShortSingleTarget" + key: "TestCombat-Settings-Orc-P1-MH Deadly OH Instant-combat_expose-FullBuffs-ShortSingleTarget" value: { dps: 7486.73624 tps: 5315.58273 } } dps_results: { - key: "TestCombat-Settings-Orc-P1-MH Deadly OH Instant-Combat-NoBuffs-LongMultiTarget" + key: "TestCombat-Settings-Orc-P1-MH Deadly OH Instant-combat_expose-NoBuffs-LongMultiTarget" value: { dps: 3442.45825 tps: 2444.14536 } } dps_results: { - key: "TestCombat-Settings-Orc-P1-MH Deadly OH Instant-Combat-NoBuffs-LongSingleTarget" + key: "TestCombat-Settings-Orc-P1-MH Deadly OH Instant-combat_expose-NoBuffs-LongSingleTarget" value: { dps: 3149.15275 tps: 2235.89845 } } dps_results: { - key: "TestCombat-Settings-Orc-P1-MH Deadly OH Instant-Combat-NoBuffs-ShortSingleTarget" + key: "TestCombat-Settings-Orc-P1-MH Deadly OH Instant-combat_expose-NoBuffs-ShortSingleTarget" value: { dps: 3271.18961 tps: 2322.54462 } } dps_results: { - key: "TestCombat-Settings-Orc-P1-MH Instant OH Deadly-AOE-FullBuffs-LongMultiTarget" + key: "TestCombat-Settings-Orc-P1-MH Deadly OH Instant-fan_aoe-FullBuffs-LongMultiTarget" value: { - dps: 21444.63805 - tps: 15225.69301 + dps: 22300.16849 + tps: 15833.11963 } } dps_results: { - key: "TestCombat-Settings-Orc-P1-MH Instant OH Deadly-AOE-FullBuffs-LongSingleTarget" + key: "TestCombat-Settings-Orc-P1-MH Deadly OH Instant-fan_aoe-FullBuffs-LongSingleTarget" value: { - dps: 4546.46999 - tps: 3227.9937 + dps: 4729.06561 + tps: 3357.63658 } } dps_results: { - key: "TestCombat-Settings-Orc-P1-MH Instant OH Deadly-AOE-FullBuffs-ShortSingleTarget" + key: "TestCombat-Settings-Orc-P1-MH Deadly OH Instant-fan_aoe-FullBuffs-ShortSingleTarget" value: { - dps: 5455.9804 - tps: 3873.74609 + dps: 5692.90416 + tps: 4041.96195 } } dps_results: { - key: "TestCombat-Settings-Orc-P1-MH Instant OH Deadly-AOE-NoBuffs-LongMultiTarget" + key: "TestCombat-Settings-Orc-P1-MH Deadly OH Instant-fan_aoe-NoBuffs-LongMultiTarget" value: { - dps: 12672.24147 - tps: 8997.29144 + dps: 13181.6335 + tps: 9358.95979 } } dps_results: { - key: "TestCombat-Settings-Orc-P1-MH Instant OH Deadly-AOE-NoBuffs-LongSingleTarget" + key: "TestCombat-Settings-Orc-P1-MH Deadly OH Instant-fan_aoe-NoBuffs-LongSingleTarget" value: { - dps: 2271.70656 - tps: 1612.91166 + dps: 2365.37375 + tps: 1679.41536 } } dps_results: { - key: "TestCombat-Settings-Orc-P1-MH Instant OH Deadly-AOE-NoBuffs-ShortSingleTarget" + key: "TestCombat-Settings-Orc-P1-MH Deadly OH Instant-fan_aoe-NoBuffs-ShortSingleTarget" value: { - dps: 2395.62414 - tps: 1700.89314 + dps: 2496.43202 + tps: 1772.46673 + } +} +dps_results: { + key: "TestCombat-Settings-Orc-P1-MH Instant OH Deadly-combat_cleave_snd-FullBuffs-LongMultiTarget" + value: { + dps: 19270.79704 + tps: 13682.2659 + } +} +dps_results: { + key: "TestCombat-Settings-Orc-P1-MH Instant OH Deadly-combat_cleave_snd-FullBuffs-LongSingleTarget" + value: { + dps: 5582.16808 + tps: 3963.33934 + } +} +dps_results: { + key: "TestCombat-Settings-Orc-P1-MH Instant OH Deadly-combat_cleave_snd-FullBuffs-ShortSingleTarget" + value: { + dps: 6695.12292 + tps: 4753.53728 } } dps_results: { - key: "TestCombat-Settings-Orc-P1-MH Instant OH Deadly-CleaveSND-FullBuffs-LongMultiTarget" + key: "TestCombat-Settings-Orc-P1-MH Instant OH Deadly-combat_cleave_snd-NoBuffs-LongMultiTarget" + value: { + dps: 10791.74358 + tps: 7662.13794 + } +} +dps_results: { + key: "TestCombat-Settings-Orc-P1-MH Instant OH Deadly-combat_cleave_snd-NoBuffs-LongSingleTarget" + value: { + dps: 2722.19173 + tps: 1932.75613 + } +} +dps_results: { + key: "TestCombat-Settings-Orc-P1-MH Instant OH Deadly-combat_cleave_snd-NoBuffs-ShortSingleTarget" + value: { + dps: 2827.42599 + tps: 2007.47245 + } +} +dps_results: { + key: "TestCombat-Settings-Orc-P1-MH Instant OH Deadly-combat_cleave_snd_expose-FullBuffs-LongMultiTarget" value: { dps: 11368.17754 tps: 8071.40605 } } dps_results: { - key: "TestCombat-Settings-Orc-P1-MH Instant OH Deadly-CleaveSND-FullBuffs-LongSingleTarget" + key: "TestCombat-Settings-Orc-P1-MH Instant OH Deadly-combat_cleave_snd_expose-FullBuffs-LongSingleTarget" value: { dps: 5292.44288 tps: 3757.63444 } } dps_results: { - key: "TestCombat-Settings-Orc-P1-MH Instant OH Deadly-CleaveSND-FullBuffs-ShortSingleTarget" + key: "TestCombat-Settings-Orc-P1-MH Instant OH Deadly-combat_cleave_snd_expose-FullBuffs-ShortSingleTarget" value: { dps: 6377.48294 tps: 4528.01289 } } dps_results: { - key: "TestCombat-Settings-Orc-P1-MH Instant OH Deadly-CleaveSND-NoBuffs-LongMultiTarget" + key: "TestCombat-Settings-Orc-P1-MH Instant OH Deadly-combat_cleave_snd_expose-NoBuffs-LongMultiTarget" value: { dps: 5943.50619 tps: 4219.8894 } } dps_results: { - key: "TestCombat-Settings-Orc-P1-MH Instant OH Deadly-CleaveSND-NoBuffs-LongSingleTarget" + key: "TestCombat-Settings-Orc-P1-MH Instant OH Deadly-combat_cleave_snd_expose-NoBuffs-LongSingleTarget" value: { dps: 2694.0183 tps: 1912.75299 } } dps_results: { - key: "TestCombat-Settings-Orc-P1-MH Instant OH Deadly-CleaveSND-NoBuffs-ShortSingleTarget" + key: "TestCombat-Settings-Orc-P1-MH Instant OH Deadly-combat_cleave_snd_expose-NoBuffs-ShortSingleTarget" value: { dps: 2817.25913 tps: 2000.25399 } } dps_results: { - key: "TestCombat-Settings-Orc-P1-MH Instant OH Deadly-Combat-FullBuffs-LongMultiTarget" + key: "TestCombat-Settings-Orc-P1-MH Instant OH Deadly-combat_expose-FullBuffs-LongMultiTarget" value: { dps: 6708.25289 tps: 4762.85955 } } dps_results: { - key: "TestCombat-Settings-Orc-P1-MH Instant OH Deadly-Combat-FullBuffs-LongSingleTarget" + key: "TestCombat-Settings-Orc-P1-MH Instant OH Deadly-combat_expose-FullBuffs-LongSingleTarget" value: { dps: 6014.2117 tps: 4270.09031 } } dps_results: { - key: "TestCombat-Settings-Orc-P1-MH Instant OH Deadly-Combat-FullBuffs-ShortSingleTarget" + key: "TestCombat-Settings-Orc-P1-MH Instant OH Deadly-combat_expose-FullBuffs-ShortSingleTarget" value: { dps: 7077.94813 tps: 5025.34317 } } dps_results: { - key: "TestCombat-Settings-Orc-P1-MH Instant OH Deadly-Combat-NoBuffs-LongMultiTarget" + key: "TestCombat-Settings-Orc-P1-MH Instant OH Deadly-combat_expose-NoBuffs-LongMultiTarget" value: { dps: 3288.57531 tps: 2334.88847 } } dps_results: { - key: "TestCombat-Settings-Orc-P1-MH Instant OH Deadly-Combat-NoBuffs-LongSingleTarget" + key: "TestCombat-Settings-Orc-P1-MH Instant OH Deadly-combat_expose-NoBuffs-LongSingleTarget" value: { dps: 2994.29981 tps: 2125.95286 } } dps_results: { - key: "TestCombat-Settings-Orc-P1-MH Instant OH Deadly-Combat-NoBuffs-ShortSingleTarget" + key: "TestCombat-Settings-Orc-P1-MH Instant OH Deadly-combat_expose-NoBuffs-ShortSingleTarget" value: { dps: 3091.56555 tps: 2195.01154 } } dps_results: { - key: "TestCombat-Settings-Orc-P1-MH Instant OH Instant-AOE-FullBuffs-LongMultiTarget" + key: "TestCombat-Settings-Orc-P1-MH Instant OH Deadly-fan_aoe-FullBuffs-LongMultiTarget" value: { - dps: 16309.41008 - tps: 11579.68116 + dps: 21444.63805 + tps: 15225.69301 } } dps_results: { - key: "TestCombat-Settings-Orc-P1-MH Instant OH Instant-AOE-FullBuffs-LongSingleTarget" + key: "TestCombat-Settings-Orc-P1-MH Instant OH Deadly-fan_aoe-FullBuffs-LongSingleTarget" value: { - dps: 3906.34818 - tps: 2773.50721 + dps: 4546.46999 + tps: 3227.9937 } } dps_results: { - key: "TestCombat-Settings-Orc-P1-MH Instant OH Instant-AOE-FullBuffs-ShortSingleTarget" + key: "TestCombat-Settings-Orc-P1-MH Instant OH Deadly-fan_aoe-FullBuffs-ShortSingleTarget" value: { - dps: 4896.78366 - tps: 3476.7164 + dps: 5455.9804 + tps: 3873.74609 } } dps_results: { - key: "TestCombat-Settings-Orc-P1-MH Instant OH Instant-AOE-NoBuffs-LongMultiTarget" + key: "TestCombat-Settings-Orc-P1-MH Instant OH Deadly-fan_aoe-NoBuffs-LongMultiTarget" value: { - dps: 9391.1893 - tps: 6667.7444 + dps: 12672.24147 + tps: 8997.29144 } } dps_results: { - key: "TestCombat-Settings-Orc-P1-MH Instant OH Instant-AOE-NoBuffs-LongSingleTarget" + key: "TestCombat-Settings-Orc-P1-MH Instant OH Deadly-fan_aoe-NoBuffs-LongSingleTarget" value: { - dps: 1837.65252 - tps: 1304.73329 + dps: 2271.70656 + tps: 1612.91166 } } dps_results: { - key: "TestCombat-Settings-Orc-P1-MH Instant OH Instant-AOE-NoBuffs-ShortSingleTarget" + key: "TestCombat-Settings-Orc-P1-MH Instant OH Deadly-fan_aoe-NoBuffs-ShortSingleTarget" value: { - dps: 2014.00189 - tps: 1429.94134 + dps: 2395.62414 + tps: 1700.89314 + } +} +dps_results: { + key: "TestCombat-Settings-Orc-P1-MH Instant OH Instant-combat_cleave_snd-FullBuffs-LongMultiTarget" + value: { + dps: 15332.83983 + tps: 10886.31628 + } +} +dps_results: { + key: "TestCombat-Settings-Orc-P1-MH Instant OH Instant-combat_cleave_snd-FullBuffs-LongSingleTarget" + value: { + dps: 4905.07887 + tps: 3482.606 + } +} +dps_results: { + key: "TestCombat-Settings-Orc-P1-MH Instant OH Instant-combat_cleave_snd-FullBuffs-ShortSingleTarget" + value: { + dps: 6090.2233 + tps: 4324.05854 } } dps_results: { - key: "TestCombat-Settings-Orc-P1-MH Instant OH Instant-CleaveSND-FullBuffs-LongMultiTarget" + key: "TestCombat-Settings-Orc-P1-MH Instant OH Instant-combat_cleave_snd-NoBuffs-LongMultiTarget" + value: { + dps: 8402.77695 + tps: 5965.97163 + } +} +dps_results: { + key: "TestCombat-Settings-Orc-P1-MH Instant OH Instant-combat_cleave_snd-NoBuffs-LongSingleTarget" + value: { + dps: 2248.8618 + tps: 1596.69188 + } +} +dps_results: { + key: "TestCombat-Settings-Orc-P1-MH Instant OH Instant-combat_cleave_snd-NoBuffs-ShortSingleTarget" + value: { + dps: 2434.77036 + tps: 1728.68696 + } +} +dps_results: { + key: "TestCombat-Settings-Orc-P1-MH Instant OH Instant-combat_cleave_snd_expose-FullBuffs-LongMultiTarget" value: { dps: 9974.45896 tps: 7081.86586 } } dps_results: { - key: "TestCombat-Settings-Orc-P1-MH Instant OH Instant-CleaveSND-FullBuffs-LongSingleTarget" + key: "TestCombat-Settings-Orc-P1-MH Instant OH Instant-combat_cleave_snd_expose-FullBuffs-LongSingleTarget" value: { dps: 4649.15606 tps: 3300.9008 } } dps_results: { - key: "TestCombat-Settings-Orc-P1-MH Instant OH Instant-CleaveSND-FullBuffs-ShortSingleTarget" + key: "TestCombat-Settings-Orc-P1-MH Instant OH Instant-combat_cleave_snd_expose-FullBuffs-ShortSingleTarget" value: { dps: 5792.95265 tps: 4112.99638 } } dps_results: { - key: "TestCombat-Settings-Orc-P1-MH Instant OH Instant-CleaveSND-NoBuffs-LongMultiTarget" + key: "TestCombat-Settings-Orc-P1-MH Instant OH Instant-combat_cleave_snd_expose-NoBuffs-LongMultiTarget" value: { dps: 5113.54388 tps: 3630.61615 } } dps_results: { - key: "TestCombat-Settings-Orc-P1-MH Instant OH Instant-CleaveSND-NoBuffs-LongSingleTarget" + key: "TestCombat-Settings-Orc-P1-MH Instant OH Instant-combat_cleave_snd_expose-NoBuffs-LongSingleTarget" value: { dps: 2235.89732 tps: 1587.48709 } } dps_results: { - key: "TestCombat-Settings-Orc-P1-MH Instant OH Instant-CleaveSND-NoBuffs-ShortSingleTarget" + key: "TestCombat-Settings-Orc-P1-MH Instant OH Instant-combat_cleave_snd_expose-NoBuffs-ShortSingleTarget" value: { dps: 2421.38653 tps: 1719.18443 } } dps_results: { - key: "TestCombat-Settings-Orc-P1-MH Instant OH Instant-Combat-FullBuffs-LongMultiTarget" + key: "TestCombat-Settings-Orc-P1-MH Instant OH Instant-combat_expose-FullBuffs-LongMultiTarget" value: { dps: 6081.38531 tps: 4317.78357 } } dps_results: { - key: "TestCombat-Settings-Orc-P1-MH Instant OH Instant-Combat-FullBuffs-LongSingleTarget" + key: "TestCombat-Settings-Orc-P1-MH Instant OH Instant-combat_expose-FullBuffs-LongSingleTarget" value: { dps: 5376.12109 tps: 3817.04597 } } dps_results: { - key: "TestCombat-Settings-Orc-P1-MH Instant OH Instant-Combat-FullBuffs-ShortSingleTarget" + key: "TestCombat-Settings-Orc-P1-MH Instant OH Instant-combat_expose-FullBuffs-ShortSingleTarget" value: { dps: 6544.35921 tps: 4646.49504 } } dps_results: { - key: "TestCombat-Settings-Orc-P1-MH Instant OH Instant-Combat-NoBuffs-LongMultiTarget" + key: "TestCombat-Settings-Orc-P1-MH Instant OH Instant-combat_expose-NoBuffs-LongMultiTarget" value: { dps: 2808.98241 tps: 1994.37751 } } dps_results: { - key: "TestCombat-Settings-Orc-P1-MH Instant OH Instant-Combat-NoBuffs-LongSingleTarget" + key: "TestCombat-Settings-Orc-P1-MH Instant OH Instant-combat_expose-NoBuffs-LongSingleTarget" value: { dps: 2522.04796 tps: 1790.65405 } } dps_results: { - key: "TestCombat-Settings-Orc-P1-MH Instant OH Instant-Combat-NoBuffs-ShortSingleTarget" + key: "TestCombat-Settings-Orc-P1-MH Instant OH Instant-combat_expose-NoBuffs-ShortSingleTarget" value: { dps: 2703.90884 tps: 1919.77527 } } +dps_results: { + key: "TestCombat-Settings-Orc-P1-MH Instant OH Instant-fan_aoe-FullBuffs-LongMultiTarget" + value: { + dps: 16309.41008 + tps: 11579.68116 + } +} +dps_results: { + key: "TestCombat-Settings-Orc-P1-MH Instant OH Instant-fan_aoe-FullBuffs-LongSingleTarget" + value: { + dps: 3906.34818 + tps: 2773.50721 + } +} +dps_results: { + key: "TestCombat-Settings-Orc-P1-MH Instant OH Instant-fan_aoe-FullBuffs-ShortSingleTarget" + value: { + dps: 4896.78366 + tps: 3476.7164 + } +} +dps_results: { + key: "TestCombat-Settings-Orc-P1-MH Instant OH Instant-fan_aoe-NoBuffs-LongMultiTarget" + value: { + dps: 9391.1893 + tps: 6667.7444 + } +} +dps_results: { + key: "TestCombat-Settings-Orc-P1-MH Instant OH Instant-fan_aoe-NoBuffs-LongSingleTarget" + value: { + dps: 1837.65252 + tps: 1304.73329 + } +} +dps_results: { + key: "TestCombat-Settings-Orc-P1-MH Instant OH Instant-fan_aoe-NoBuffs-ShortSingleTarget" + value: { + dps: 2014.00189 + tps: 1429.94134 + } +} dps_results: { key: "TestCombat-SwitchInFrontOfTarget-Default" value: { diff --git a/sim/rogue/rogue_test.go b/sim/rogue/rogue_test.go index b87ca9234d..cf5343831e 100644 --- a/sim/rogue/rogue_test.go +++ b/sim/rogue/rogue_test.go @@ -1,6 +1,8 @@ package rogue import ( + "log" + "os" "testing" _ "github.com/wowsims/wotlk/sim/common" // imported to get item effects included. @@ -12,6 +14,16 @@ func init() { RegisterRogue() } +func GetAplRotation(dir string, file string) core.RotationCombo { + filePath := dir + "/" + file + ".json" + data, err := os.ReadFile(filePath) + if err != nil { + log.Fatalf("failed to load apl json file: %s, %s", filePath, err) + } + + return core.RotationCombo{Label: file, Rotation: core.APLRotationFromJsonString(string(data))} +} + func TestCombat(t *testing.T) { core.RunTestSuite(t, t.Name(), core.FullCharacterTestSuiteGenerator(core.CharacterSuiteConfig{ Class: proto.Class_ClassRogue, @@ -27,10 +39,11 @@ func TestCombat(t *testing.T) { {Label: "MH Instant OH Instant", SpecOptions: PlayerOptionsCombatII}, {Label: "MH Deadly OH Deadly", SpecOptions: PlayerOptionsCombatDD}, }, - Rotation: core.RotationCombo{Label: "Combat", Rotation: CombatExposeRotation}, + Rotation: GetAplRotation("../../ui/rogue/apls", "combat_expose"), OtherRotations: []core.RotationCombo{ - {Label: "CleaveSND", Rotation: CleaveSNDRotation}, - {Label: "AOE", Rotation: AOERotation}, + GetAplRotation("../../ui/rogue/apls", "combat_cleave_snd"), + GetAplRotation("../../ui/rogue/apls", "combat_cleave_snd_expose"), + GetAplRotation("../../ui/rogue/apls", "fan_aoe"), }, ItemFilter: core.ItemFilter{ ArmorType: proto.ArmorType_ArmorTypeLeather, @@ -58,7 +71,12 @@ func TestAssassination(t *testing.T) { {Label: "MH Instant OH Instant", SpecOptions: PlayerOptionsAssassinationII}, {Label: "MH Deadly OH Deadly", SpecOptions: PlayerOptionsAssassinationDD}, }, - Rotation: core.RotationCombo{Label: "Mutilate", Rotation: MutilateRuptureExposeRotation}, + Rotation: GetAplRotation("../../ui/rogue/apls", "rupture_mutilate_expose"), + OtherRotations: []core.RotationCombo{ + GetAplRotation("../../ui/rogue/apls", "rupture_mutilate"), + GetAplRotation("../../ui/rogue/apls", "mutilate"), + GetAplRotation("../../ui/rogue/apls", "mutilate_expose"), + }, ItemFilter: core.ItemFilter{ ArmorType: proto.ArmorType_ArmorTypeLeather, @@ -328,104 +346,6 @@ var FullConsumes = &proto.Consumes{ DefaultConjured: proto.Conjured_ConjuredRogueThistleTea, } -var MutilateRuptureExposeRotation = core.APLRotationFromJsonString(`{ - "type": "TypeAPL", - "prepullActions": [ - {"action":{"castSpell":{"spellId":{"itemId":40211}}},"doAtValue":{"const":{"val":"-1s"}}}, - {"action":{"activateAura":{"auraId":{"spellId":58426}}},"doAtValue":{"const":{"val":"-1s"}}} - ], - "priorityList": [ - {"action":{"autocastOtherCooldowns":{}}}, - {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"auraRemainingTime":{"sourceUnit":{"type":"CurrentTarget"},"auraId":{"spellId":8647}}},"rhs":{"const":{"val":"1s"}}}},"castSpell":{"spellId":{"spellId":8647}}}}, - {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"auraRemainingTime":{"auraId":{"spellId":6774}}},"rhs":{"const":{"val":"1s"}}}},"castSpell":{"spellId":{"spellId":6774}}}}, - {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"auraRemainingTime":{"sourceUnit":{"type":"CurrentTarget"},"auraId":{"spellId":8647}}},"rhs":{"const":{"val":"1s"}}}},"sequence":{"actions":[{"castSpell":{"spellId":{"spellId":48666}}},{"castSpell":{"spellId":{"spellId":8647}}}]}}}, - {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"auraRemainingTime":{"auraId":{"spellId":6774}}},"rhs":{"const":{"val":"1s"}}}},"sequence":{"actions":[{"castSpell":{"spellId":{"spellId":48666}}},{"castSpell":{"spellId":{"spellId":6774}}}]}}}, - {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"auraRemainingTime":{"auraId":{"spellId":51662}}},"rhs":{"const":{"val":"1s"}}}},"castSpell":{"spellId":{"spellId":51662}}}}, - {"action":{"condition":{"not":{"val":{"auraIsActive":{"auraId":{"spellId":58426}}}}},"castSpell":{"spellId":{"spellId":26889}}}}, - {"action":{"condition":{"auraIsActive":{"auraId":{"spellId":6774}}},"castSpell":{"spellId":{"itemId":40211}}}}, - {"action":{"condition":{"auraIsActive":{"auraId":{"spellId":6774}}},"castSpell":{"spellId":{"spellId":54758}}}}, - {"action":{"condition":{"auraIsActive":{"auraId":{"spellId":6774}}},"castSpell":{"spellId":{"spellId":13877}}}}, - {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"currentEnergy":{}},"rhs":{"const":{"val":"50"}}}},"castSpell":{"spellId":{"spellId":57934}}}}, - {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"currentEnergy":{}},"rhs":{"const":{"val":"50"}}}},"castSpell":{"spellId":{"itemId":7676}}}}, - {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpGe","lhs":{"currentComboPoints":{}},"rhs":{"const":{"val":"4"}}}},{"not":{"val":{"auraIsActive":{"sourceUnit":{"type":"CurrentTarget"},"auraId":{"spellId":48672}}}}}]}},"castSpell":{"spellId":{"spellId":48672}}}}, - {"action":{"condition":{"or":{"vals":[{"cmp":{"op":"OpEq","lhs":{"currentComboPoints":{}},"rhs":{"const":{"val":"5"}}}},{"cmp":{"op":"OpLe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"5s"}}}}]}},"castSpell":{"spellId":{"spellId":14177}}}}, - {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpGe","lhs":{"currentComboPoints":{}},"rhs":{"const":{"val":"4"}}}},{"or":{"vals":[{"not":{"val":{"auraIsActive":{"auraId":{"spellId":57993}}}}},{"cmp":{"op":"OpGe","lhs":{"currentEnergy":{}},"rhs":{"const":{"val":"85"}}}}]}}]}},"castSpell":{"spellId":{"spellId":57993}}}}, - {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"currentComboPoints":{}},"rhs":{"const":{"val":"3"}}}},"castSpell":{"spellId":{"spellId":48666}}}} - ] -}`) - -var CombatExposeRotation = core.APLRotationFromJsonString(`{ - "type": "TypeAPL", - "prepullActions": [ - {"action":{"castSpell":{"spellId":{"itemId":40211}}},"doAtValue":{"const":{"val":"-1s"}}} - ], - "priorityList": [ - {"action":{"autocastOtherCooldowns":{}}}, - {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpLe","lhs":{"auraRemainingTime":{"auraId":{"spellId":6774}}},"rhs":{"const":{"val":"1"}}}},{"cmp":{"op":"OpGe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"2s"}}}}]}},"castSpell":{"spellId":{"spellId":6774}}}}, - {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpLe","lhs":{"auraRemainingTime":{"sourceUnit":{"type":"CurrentTarget"},"auraId":{"spellId":8647}}},"rhs":{"const":{"val":"1"}}}},{"cmp":{"op":"OpGe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"2s"}}}}]}},"castSpell":{"spellId":{"spellId":8647}}}}, - {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpLe","lhs":{"auraRemainingTime":{"auraId":{"spellId":6774}}},"rhs":{"const":{"val":"1s"}}}},{"cmp":{"op":"OpGe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"2s"}}}}]}},"sequence":{"actions":[{"castSpell":{"spellId":{"spellId":48638}}},{"castSpell":{"spellId":{"spellId":6774}}}]}}}, - {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpLe","lhs":{"auraRemainingTime":{"sourceUnit":{"type":"CurrentTarget"},"auraId":{"spellId":8647}}},"rhs":{"const":{"val":"1s"}}}},{"cmp":{"op":"OpGe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"2s"}}}}]}},"sequence":{"actions":[{"castSpell":{"spellId":{"spellId":48638}}},{"castSpell":{"spellId":{"spellId":8647}}}]}}}, - {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpLe","lhs":{"auraRemainingTime":{"auraId":{"spellId":6774}}},"rhs":{"math":{"op":"OpAdd","lhs":{"dotRemainingTime":{"spellId":{"spellId":48672}}},"rhs":{"const":{"val":"2"}}}}}},{"cmp":{"op":"OpGe","lhs":{"currentComboPoints":{}},"rhs":{"const":{"val":"3"}}}},{"dotIsActive":{"spellId":{"spellId":48672}}},{"not":{"val":{"cmp":{"op":"OpLe","lhs":{"math":{"op":"OpAdd","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"2s"}}}},"rhs":{"auraRemainingTime":{"auraId":{"spellId":6774}}}}}}}]}},"castSpell":{"spellId":{"spellId":6774}}}}, - {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpGe","lhs":{"auraRemainingTime":{"auraId":{"spellId":6774}}},"rhs":{"const":{"val":"4s"}}}},{"cmp":{"op":"OpEq","lhs":{"currentComboPoints":{}},"rhs":{"const":{"val":"5"}}}},{"not":{"val":{"dotIsActive":{"spellId":{"spellId":48672}}}}},{"cmp":{"op":"OpGt","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"10s"}}}}]}},"castSpell":{"spellId":{"spellId":48672}}}}, - {"action":{"condition":{"and":{"vals":[{"and":{"vals":[{"cmp":{"op":"OpGe","lhs":{"auraRemainingTime":{"auraId":{"spellId":6774}}},"rhs":{"const":{"val":"2s"}}}},{"cmp":{"op":"OpLt","lhs":{"auraRemainingTime":{"auraId":{"spellId":6774}}},"rhs":{"const":{"val":"4s"}}}}]}},{"cmp":{"op":"OpGe","lhs":{"currentComboPoints":{}},"rhs":{"const":{"val":"4"}}}},{"not":{"val":{"dotIsActive":{"spellId":{"spellId":48672}}}}},{"cmp":{"op":"OpGt","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"8s"}}}}]}},"castSpell":{"spellId":{"spellId":48672}}}}, - {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpGe","lhs":{"currentComboPoints":{}},"rhs":{"const":{"val":"4"}}}},{"cmp":{"op":"OpLe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"4s"}}}}]}},"castSpell":{"spellId":{"spellId":48668}}}}, - {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpGe","lhs":{"auraRemainingTime":{"auraId":{"spellId":6774}}},"rhs":{"const":{"val":"4s"}}}},{"cmp":{"op":"OpGe","lhs":{"currentComboPoints":{}},"rhs":{"const":{"val":"4"}}}},{"cmp":{"op":"OpGe","lhs":{"auraRemainingTime":{"sourceUnit":{"type":"CurrentTarget"},"auraId":{"spellId":48672}}},"rhs":{"const":{"val":"6s"}}}},{"cmp":{"op":"OpGe","lhs":{"auraRemainingTime":{"auraId":{"spellId":13750}}},"rhs":{"const":{"val":"4s"}}}}]}},"castSpell":{"spellId":{"spellId":48668}}}}, - {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpGe","lhs":{"auraRemainingTime":{"auraId":{"spellId":6774}}},"rhs":{"const":{"val":"4s"}}}},{"cmp":{"op":"OpGe","lhs":{"currentComboPoints":{}},"rhs":{"const":{"val":"4"}}}},{"cmp":{"op":"OpGe","lhs":{"auraRemainingTime":{"sourceUnit":{"type":"CurrentTarget"},"auraId":{"spellId":48672}}},"rhs":{"const":{"val":"10s"}}}}]}},"castSpell":{"spellId":{"spellId":48668}}}}, - {"action":{"condition":{"auraIsActive":{"auraId":{"spellId":6774}}},"castSpell":{"spellId":{"spellId":13877}}}}, - {"action":{"condition":{"or":{"vals":[{"auraIsActive":{"auraId":{"spellId":13877}}},{"cmp":{"op":"OpLe","lhs":{"remainingTime":{}},"rhs":{"math":{"op":"OpAdd","lhs":{"spellTimeToReady":{"spellId":{"spellId":13877}}},"rhs":{"const":{"val":"8s"}}}}}}]}},"castSpell":{"spellId":{"spellId":54758}}}}, - {"action":{"condition":{"and":{"vals":[{"not":{"val":{"spellIsReady":{"spellId":{"spellId":13877}}}}},{"cmp":{"op":"OpGe","lhs":{"spellTimeToReady":{"spellId":{"spellId":13877}}},"rhs":{"const":{"val":"57s"}}}}]}},"castSpell":{"spellId":{"spellId":54758}}}}, - {"action":{"condition":{"or":{"vals":[{"auraIsActive":{"auraId":{"spellId":13877}}},{"cmp":{"op":"OpLe","lhs":{"remainingTime":{}},"rhs":{"math":{"op":"OpAdd","lhs":{"spellTimeToReady":{"spellId":{"spellId":13877}}},"rhs":{"const":{"val":"10s"}}}}}}]}},"castSpell":{"spellId":{"itemId":40211}}}}, - {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"currentEnergy":{}},"rhs":{"const":{"val":"50"}}}},"castSpell":{"spellId":{"spellId":57934}}}}, - {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"currentEnergy":{}},"rhs":{"const":{"val":"50"}}}},"castSpell":{"spellId":{"spellId":51690}}}}, - {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpGt","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"196s"}}}},{"cmp":{"op":"OpLe","lhs":{"currentEnergy":{}},"rhs":{"const":{"val":"50"}}}}]}},"castSpell":{"spellId":{"spellId":13750}}}}, - {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpLe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"196s"}}}},{"cmp":{"op":"OpGe","lhs":{"spellTimeToReady":{"spellId":{"spellId":51690}}},"rhs":{"const":{"val":"15s"}}}},{"cmp":{"op":"OpLe","lhs":{"currentEnergy":{}},"rhs":{"const":{"val":"50"}}}}]}},"castSpell":{"spellId":{"spellId":13750}}}}, - {"action":{"castSpell":{"spellId":{"spellId":48638}}}} - ] -}`) - -var CleaveSNDRotation = core.APLRotationFromJsonString(`{ - "type": "TypeAPL", - "prepullActions": [ - {"action":{"castSpell":{"spellId":{"itemId":40211}}},"doAtValue":{"const":{"val":"-1s"}}} - ], - "priorityList": [ - {"action":{"autocastOtherCooldowns":{}}}, - {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpLe","lhs":{"auraRemainingTime":{"sourceUnit":{"type":"CurrentTarget"},"auraId":{"spellId":8647}}},"rhs":{"const":{"val":"1"}}}},{"cmp":{"op":"OpGe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"2s"}}}}]}},"castSpell":{"spellId":{"spellId":8647}}}}, - {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpLe","lhs":{"auraRemainingTime":{"auraId":{"spellId":6774}}},"rhs":{"const":{"val":"1"}}}},{"cmp":{"op":"OpGe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"2s"}}}}]}},"castSpell":{"spellId":{"spellId":6774}}}}, - {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpLe","lhs":{"auraRemainingTime":{"sourceUnit":{"type":"CurrentTarget"},"auraId":{"spellId":8647}}},"rhs":{"const":{"val":"1s"}}}},{"cmp":{"op":"OpGe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"2s"}}}}]}},"sequence":{"actions":[{"castSpell":{"spellId":{"spellId":48638}}},{"castSpell":{"spellId":{"spellId":8647}}}]}}}, - {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpLe","lhs":{"auraRemainingTime":{"auraId":{"spellId":6774}}},"rhs":{"const":{"val":"1s"}}}},{"cmp":{"op":"OpGe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"2s"}}}}]}},"sequence":{"actions":[{"castSpell":{"spellId":{"spellId":48638}}},{"castSpell":{"spellId":{"spellId":6774}}}]}}}, - {"action":{"condition":{"auraIsActive":{"auraId":{"spellId":6774}}},"castSpell":{"spellId":{"spellId":13877}}}}, - {"action":{"condition":{"or":{"vals":[{"auraIsActive":{"auraId":{"spellId":13877}}},{"cmp":{"op":"OpLe","lhs":{"remainingTime":{}},"rhs":{"math":{"op":"OpAdd","lhs":{"spellTimeToReady":{"spellId":{"spellId":13877}}},"rhs":{"const":{"val":"8s"}}}}}}]}},"castSpell":{"spellId":{"spellId":54758}}}}, - {"action":{"condition":{"and":{"vals":[{"not":{"val":{"spellIsReady":{"spellId":{"spellId":13877}}}}},{"cmp":{"op":"OpGe","lhs":{"spellTimeToReady":{"spellId":{"spellId":13877}}},"rhs":{"const":{"val":"57s"}}}}]}},"castSpell":{"spellId":{"spellId":54758}}}}, - {"action":{"condition":{"or":{"vals":[{"auraIsActive":{"auraId":{"spellId":13877}}},{"cmp":{"op":"OpLe","lhs":{"remainingTime":{}},"rhs":{"math":{"op":"OpAdd","lhs":{"spellTimeToReady":{"spellId":{"spellId":13877}}},"rhs":{"const":{"val":"10s"}}}}}}]}},"castSpell":{"spellId":{"itemId":40211}}}}, - {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"currentEnergy":{}},"rhs":{"const":{"val":"50"}}}},"castSpell":{"spellId":{"spellId":51690}}}}, - {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpGt","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"196s"}}}},{"cmp":{"op":"OpLe","lhs":{"currentEnergy":{}},"rhs":{"const":{"val":"50"}}}}]}},"castSpell":{"spellId":{"spellId":13750}}}}, - {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpLe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"196s"}}}},{"cmp":{"op":"OpGe","lhs":{"spellTimeToReady":{"spellId":{"spellId":51690}}},"rhs":{"const":{"val":"15s"}}}},{"cmp":{"op":"OpLe","lhs":{"currentEnergy":{}},"rhs":{"const":{"val":"50"}}}}]}},"castSpell":{"spellId":{"spellId":13750}}}}, - {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"currentEnergy":{}},"rhs":{"const":{"val":"50"}}}},"castSpell":{"spellId":{"spellId":57934}}}}, - {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"currentEnergy":{}},"rhs":{"const":{"val":"50"}}}},"castSpell":{"spellId":{"itemId":7676}}}}, - {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpLt","lhs":{"currentComboPoints":{}},"rhs":{"const":{"val":"1"}}}},{"or":{"vals":[{"cmp":{"op":"OpLe","lhs":{"auraRemainingTime":{"auraId":{"spellId":6774}}},"rhs":{"math":{"op":"OpSub","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"2s"}}}}}},{"cmp":{"op":"OpLe","lhs":{"auraRemainingTime":{"sourceUnit":{"type":"CurrentTarget"},"auraId":{"spellId":8647}}},"rhs":{"math":{"op":"OpSub","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"2s"}}}}}}]}}]}},"castSpell":{"spellId":{"spellId":48638}}}}, - {"action":{"castSpell":{"spellId":{"spellId":51723}}}} - ] -}`) - -var AOERotation = core.APLRotationFromJsonString(`{ - "type": "TypeAPL", - "prepullActions": [ - {"action":{"castSpell":{"spellId":{"otherId":"OtherActionPotion"}}},"doAtValue":{"const":{"val":"-1s"}}}, - {"action":{"activateAura":{"auraId":{"spellId":58426}}},"doAtValue":{"const":{"val":"-1s"}}} - ], - "priorityList": [ - {"action":{"autocastOtherCooldowns":{}}}, - {"action":{"condition":{"not":{"val":{"spellIsReady":{"spellId":{"spellId":57934}}}}},"castSpell":{"spellId":{"spellId":57934}}}}, - {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"currentEnergy":{}},"rhs":{"const":{"val":"80"}}}},"castSpell":{"spellId":{"spellId":13750}}}}, - {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpLe","lhs":{"currentEnergy":{}},"rhs":{"const":{"val":"65"}}}},{"cmp":{"op":"OpLe","lhs":{"auraRemainingTime":{"auraId":{"spellId":58426}}},"rhs":{"const":{"val":"1s"}}}}]}},"castSpell":{"spellId":{"spellId":26889}}}}, - {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"currentEnergy":{}},"rhs":{"const":{"val":"50"}}}},"castSpell":{"spellId":{"itemId":7676}}}}, - {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"currentEnergy":{}},"rhs":{"const":{"val":"50"}}}},"castSpell":{"spellId":{"spellId":51690}}}}, - {"action":{"condition":{"not":{"val":{"auraIsActive":{"auraId":{"spellId":16551}}}}},"castSpell":{"spellId":{"spellId":14177}}}}, - {"action":{"castSpell":{"spellId":{"spellId":51723}}}} - ] -}`) - var P1Gear = core.EquipmentSpecFromJsonString(`{"items": [ {"id":40499,"enchant":3817,"gems":[41398,42702]}, {"id":44664,"gems":[40003]}, @@ -445,180 +365,44 @@ var P1Gear = core.EquipmentSpecFromJsonString(`{"items": [ {"id":40386,"enchant":3789}, {"id":40385} ]}`) -var GearWithoutRED = core.EquipmentSpecFromJsonString(`{"items": [ - { - "id": 37293, - "enchant": 3817, - "gems": [ - 41339, - 40088 - ] - }, - { - "id": 37861 - }, - { - "id": 37139, - "enchant": 3808, - "gems": [ - 36766 - ] - }, - { - "id": 36947, - "enchant": 3605 - }, - { - "id": 37165, - "enchant": 3832, - "gems": [ - 40044, - 36766 - ] - }, - { - "id": 44203, - "enchant": 3845, - "gems": [ - 0 - ] - }, - { - "id": 37409, - "enchant": 3604, - "gems": [ - 0 - ] - }, - { - "id": 37194, - "gems": [ - 40014, - 40157 - ] - }, - { - "id": 37644, - "enchant": 3823 - }, - { - "id": 44297, - "enchant": 3606 - }, - { - "id": 43251, - "gems": [ - 40136 - ] - }, - { - "id": 37642 - }, - { - "id": 37390 - }, - { - "id": 37166 - }, - { - "id": 37693, - "enchant": 3789 - }, - { - "id": 37856, - "enchant": 3789 - }, - { - "id": 37191 - } - ]}`) -var GearWithRED = core.EquipmentSpecFromJsonString(`{"items": [ - { - "id": 37293, - "enchant": 3817, - "gems": [ - 41398, - 40088 - ] - }, - { - "id": 37861 - }, - { - "id": 37139, - "enchant": 3808, - "gems": [ - 36766 - ] - }, - { - "id": 36947, - "enchant": 3605 - }, - { - "id": 37165, - "enchant": 3832, - "gems": [ - 40044, - 36766 - ] - }, - { - "id": 44203, - "enchant": 3845, - "gems": [ - 0 - ] - }, - { - "id": 37409, - "enchant": 3604, - "gems": [ - 0 - ] - }, - { - "id": 37194, - "gems": [ - 40014, - 40157 - ] - }, - { - "id": 37644, - "enchant": 3823 - }, - { - "id": 44297, - "enchant": 3606 - }, - { - "id": 43251, - "gems": [ - 40136 - ] - }, - { - "id": 37642 - }, - { - "id": 37390 - }, - { - "id": 37166 - }, - { - "id": 37693, - "enchant": 3789 - }, - { - "id": 37856, - "enchant": 3789 - }, - { - "id": 37191 - } - ]}`) +var GearWithoutRED = core.EquipmentSpecFromJsonString(`{"items":[ + {"id":37293,"enchant":3817,"gems":[41339,40088]}, + {"id":37861}, + {"id":37139,"enchant":3808,"gems":[36766]}, + {"id":36947,"enchant":3605}, + {"id":37165,"enchant":3832,"gems":[40044,36766]}, + {"id":44203,"enchant":3845,"gems":[0]}, + {"id":37409,"enchant":3604,"gems":[0]}, + {"id":37194,"gems":[40014,40157]}, + {"id":37644,"enchant":3823}, + {"id":44297,"enchant":3606}, + {"id":43251,"gems":[40136]}, + {"id":37642}, + {"id":37390}, + {"id":37166}, + {"id":37693,"enchant":3789}, + {"id":37856,"enchant":3789}, + {"id":37191} +]}`) +var GearWithRED = core.EquipmentSpecFromJsonString(`{"items":[ + {"id":37293,"enchant":3817,"gems":[41398,40088]}, + {"id":37861}, + {"id":37139,"enchant":3808,"gems":[36766]}, + {"id":36947,"enchant":3605}, + {"id":37165,"enchant":3832,"gems":[40044,36766]}, + {"id":44203,"enchant":3845,"gems":[0]}, + {"id":37409,"enchant":3604,"gems":[0]}, + {"id":37194,"gems":[40014,40157]}, + {"id":37644,"enchant":3823}, + {"id":44297,"enchant":3606}, + {"id":43251,"gems":[40136]}, + {"id":37642}, + {"id":37390}, + {"id":37166}, + {"id":37693,"enchant":3789}, + {"id":37856,"enchant":3789}, + {"id":37191} +]}`) var SubtletyP2Gear = core.EquipmentSpecFromJsonString(`{"items": [ {"id":46125,"enchant":3817,"gems":[41398,42143]}, {"id":45517,"gems":[49110]}, diff --git a/ui/rogue/apls/ruptute_mutilate_expose.json b/ui/rogue/apls/rupture_mutilate_expose.json similarity index 100% rename from ui/rogue/apls/ruptute_mutilate_expose.json rename to ui/rogue/apls/rupture_mutilate_expose.json diff --git a/ui/rogue/presets.ts b/ui/rogue/presets.ts index 5a297dfc26..bec726debd 100644 --- a/ui/rogue/presets.ts +++ b/ui/rogue/presets.ts @@ -21,7 +21,7 @@ import { APLRotation } from '../core/proto/apl.js'; import MutilateApl from './apls/mutilate.json' import MutilateExposeApl from './apls/mutilate_expose.json' import RuptureMutilateApl from './apls/rupture_mutilate.json' -import RuptureMutilateExposeApl from './apls/ruptute_mutilate_expose.json' +import RuptureMutilateExposeApl from './apls/rupture_mutilate_expose.json' import CombatApl from './apls/combat.json' import CombatExposeApl from './apls/combat_expose.json' import CombatCleaveSndApl from './apls/combat_cleave_snd.json' From 3294b44915295713739c5772743ebecf6c9393d6 Mon Sep 17 00:00:00 2001 From: jarves Date: Mon, 25 Sep 2023 15:25:21 -0500 Subject: [PATCH 05/21] feral: bear apl tests Signed-off-by: jarves --- sim/druid/tank/TestFeralTank.results | 12 +++++------ sim/druid/tank/tank_test.go | 32 +++++++++++----------------- 2 files changed, 19 insertions(+), 25 deletions(-) diff --git a/sim/druid/tank/TestFeralTank.results b/sim/druid/tank/TestFeralTank.results index 0666ba1a63..bfbb40923d 100644 --- a/sim/druid/tank/TestFeralTank.results +++ b/sim/druid/tank/TestFeralTank.results @@ -1080,7 +1080,7 @@ dps_results: { } } dps_results: { - key: "TestFeralTank-Settings-Tauren-P1-Default-Default-FullBuffs-LongMultiTarget" + key: "TestFeralTank-Settings-Tauren-P1-Default-default-FullBuffs-LongMultiTarget" value: { dps: 4596.97168 tps: 10417.84607 @@ -1088,7 +1088,7 @@ dps_results: { } } dps_results: { - key: "TestFeralTank-Settings-Tauren-P1-Default-Default-FullBuffs-LongSingleTarget" + key: "TestFeralTank-Settings-Tauren-P1-Default-default-FullBuffs-LongSingleTarget" value: { dps: 2674.35053 tps: 5637.34408 @@ -1096,7 +1096,7 @@ dps_results: { } } dps_results: { - key: "TestFeralTank-Settings-Tauren-P1-Default-Default-FullBuffs-ShortSingleTarget" + key: "TestFeralTank-Settings-Tauren-P1-Default-default-FullBuffs-ShortSingleTarget" value: { dps: 2854.21381 tps: 6208.75396 @@ -1104,21 +1104,21 @@ dps_results: { } } dps_results: { - key: "TestFeralTank-Settings-Tauren-P1-Default-Default-NoBuffs-LongMultiTarget" + key: "TestFeralTank-Settings-Tauren-P1-Default-default-NoBuffs-LongMultiTarget" value: { dps: 1634.48911 tps: 3955.54738 } } dps_results: { - key: "TestFeralTank-Settings-Tauren-P1-Default-Default-NoBuffs-LongSingleTarget" + key: "TestFeralTank-Settings-Tauren-P1-Default-default-NoBuffs-LongSingleTarget" value: { dps: 1243.82896 tps: 2681.45428 } } dps_results: { - key: "TestFeralTank-Settings-Tauren-P1-Default-Default-NoBuffs-ShortSingleTarget" + key: "TestFeralTank-Settings-Tauren-P1-Default-default-NoBuffs-ShortSingleTarget" value: { dps: 1098.16826 tps: 2482.20882 diff --git a/sim/druid/tank/tank_test.go b/sim/druid/tank/tank_test.go index da13aa4e02..35582a54a5 100644 --- a/sim/druid/tank/tank_test.go +++ b/sim/druid/tank/tank_test.go @@ -1,6 +1,8 @@ package tank import ( + "log" + "os" "testing" _ "github.com/wowsims/wotlk/sim/common" @@ -12,6 +14,16 @@ func init() { RegisterFeralTankDruid() } +func GetAplRotation(dir string, file string) core.RotationCombo { + filePath := dir + "/" + file + ".json" + data, err := os.ReadFile(filePath) + if err != nil { + log.Fatalf("failed to load apl json file: %s, %s", filePath, err) + } + + return core.RotationCombo{Label: file, Rotation: core.APLRotationFromJsonString(string(data))} +} + func TestFeralTank(t *testing.T) { core.RunTestSuite(t, t.Name(), core.FullCharacterTestSuiteGenerator(core.CharacterSuiteConfig{ Class: proto.Class_ClassDruid, @@ -22,7 +34,7 @@ func TestFeralTank(t *testing.T) { Glyphs: StandardGlyphs, Consumes: FullConsumes, SpecOptions: core.SpecOptionsCombo{Label: "Default", SpecOptions: PlayerOptionsDefault}, - Rotation: core.RotationCombo{Label: "Default", Rotation: DefaultRotation}, + Rotation: GetAplRotation("../../../ui/feral_tank_druid/apls", "default"), IsTank: true, InFrontOfTarget: true, @@ -97,24 +109,6 @@ var FullConsumes = &proto.Consumes{ FillerExplosive: proto.Explosive_ExplosiveSaroniteBomb, } -var DefaultRotation = core.APLRotationFromJsonString(`{ - "type": "TypeAPL", - "prepullActions": [ - {"action":{"castSpell":{"spellId":{"otherId":"OtherActionPotion"}}},"doAtValue":{"const":{"val":"-1s"}}} - ], - "priorityList": [ - {"action":{"autocastOtherCooldowns":{}}}, - {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpEq","lhs":{"auraNumStacks":{"sourceUnit":{"type":"CurrentTarget"},"auraId":{"spellId":48568}}},"rhs":{"const":{"val":"5"}}}},{"cmp":{"op":"OpLe","lhs":{"dotRemainingTime":{"spellId":{"spellId":48568}}},"rhs":{"const":{"val":"1.5s"}}}}]}},"castSpell":{"spellId":{"spellId":48568}}}}, - {"action":{"castSpell":{"spellId":{"spellId":48564}}}}, - {"action":{"condition":{"and":{"vals":[{"gcdIsReady":{}},{"not":{"val":{"spellIsReady":{"spellId":{"spellId":48564}}}}},{"cmp":{"op":"OpLe","lhs":{"spellTimeToReady":{"spellId":{"spellId":48564}}},"rhs":{"const":{"val":"1.2s"}}}}]}},"wait":{"duration":{"spellTimeToReady":{"spellId":{"spellId":48564}}}}}}, - {"action":{"condition":{"auraShouldRefresh":{"auraId":{"spellId":48560},"maxOverlap":{"const":{"val":"1.5s"}}}},"castSpell":{"spellId":{"spellId":48560}}}}, - {"action":{"castSpell":{"spellId":{"spellId":16857}}}}, - {"action":{"condition":{"or":{"vals":[{"cmp":{"op":"OpLt","lhs":{"auraNumStacks":{"sourceUnit":{"type":"CurrentTarget"},"auraId":{"spellId":48568}}},"rhs":{"const":{"val":"5"}}}},{"cmp":{"op":"OpLe","lhs":{"dotRemainingTime":{"spellId":{"spellId":48568}}},"rhs":{"const":{"val":"8s"}}}}]}},"castSpell":{"spellId":{"spellId":48568}}}}, - {"action":{"condition":{"cmp":{"op":"OpGe","lhs":{"currentRage":{}},"rhs":{"const":{"val":"40"}}}},"castSpell":{"spellId":{"spellId":48562}}}}, - {"action":{"condition":{"cmp":{"op":"OpGe","lhs":{"currentRage":{}},"rhs":{"const":{"val":"25"}}}},"castSpell":{"spellId":{"spellId":48480,"tag":1}}}} - ] -}`) - var P1Gear = core.EquipmentSpecFromJsonString(`{"items": [ {"id":40329,"enchant":67839,"gems":[41339,40008]}, {"id":40387}, From ebb4e8b35975e7a73cb877d88572ee102a898763 Mon Sep 17 00:00:00 2001 From: jarves Date: Mon, 25 Sep 2023 15:31:56 -0500 Subject: [PATCH 06/21] balance: apl json tests Signed-off-by: jarves --- sim/druid/balance/TestBalance.results | 48 ++--- sim/druid/balance/TestBalancePhase3.results | 12 +- sim/druid/balance/balance_test.go | 193 +++++--------------- 3 files changed, 77 insertions(+), 176 deletions(-) diff --git a/sim/druid/balance/TestBalance.results b/sim/druid/balance/TestBalance.results index c6229c1054..1590ee1c72 100644 --- a/sim/druid/balance/TestBalance.results +++ b/sim/druid/balance/TestBalance.results @@ -947,168 +947,168 @@ dps_results: { } } dps_results: { - key: "TestBalance-Settings-Tauren-P1-Default-Default-FullBuffs-LongMultiTarget" + key: "TestBalance-Settings-Tauren-P1-Default-basic_p3-FullBuffs-LongMultiTarget" value: { dps: 11311.8607 tps: 13440.67098 } } dps_results: { - key: "TestBalance-Settings-Tauren-P1-Default-Default-FullBuffs-LongSingleTarget" + key: "TestBalance-Settings-Tauren-P1-Default-basic_p3-FullBuffs-LongSingleTarget" value: { dps: 7834.61611 tps: 7607.51414 } } dps_results: { - key: "TestBalance-Settings-Tauren-P1-Default-Default-FullBuffs-ShortSingleTarget" + key: "TestBalance-Settings-Tauren-P1-Default-basic_p3-FullBuffs-ShortSingleTarget" value: { dps: 8949.33577 tps: 8080.54313 } } dps_results: { - key: "TestBalance-Settings-Tauren-P1-Default-Default-NoBuffs-LongMultiTarget" + key: "TestBalance-Settings-Tauren-P1-Default-basic_p3-NoBuffs-LongMultiTarget" value: { dps: 2926.24552 tps: 3185.7271 } } dps_results: { - key: "TestBalance-Settings-Tauren-P1-Default-Default-NoBuffs-LongSingleTarget" + key: "TestBalance-Settings-Tauren-P1-Default-basic_p3-NoBuffs-LongSingleTarget" value: { dps: 2092.48999 tps: 1983.82492 } } dps_results: { - key: "TestBalance-Settings-Tauren-P1-Default-Default-NoBuffs-ShortSingleTarget" + key: "TestBalance-Settings-Tauren-P1-Default-basic_p3-NoBuffs-ShortSingleTarget" value: { dps: 5386.09596 tps: 5111.1911 } } dps_results: { - key: "TestBalance-Settings-Tauren-P2-4P-Default-Default-FullBuffs-LongMultiTarget" + key: "TestBalance-Settings-Tauren-P2-4P-Default-basic_p3-FullBuffs-LongMultiTarget" value: { dps: 13402.27971 tps: 15636.4354 } } dps_results: { - key: "TestBalance-Settings-Tauren-P2-4P-Default-Default-FullBuffs-LongSingleTarget" + key: "TestBalance-Settings-Tauren-P2-4P-Default-basic_p3-FullBuffs-LongSingleTarget" value: { dps: 9287.99668 tps: 9043.12273 } } dps_results: { - key: "TestBalance-Settings-Tauren-P2-4P-Default-Default-FullBuffs-ShortSingleTarget" + key: "TestBalance-Settings-Tauren-P2-4P-Default-basic_p3-FullBuffs-ShortSingleTarget" value: { dps: 10547.68131 tps: 9629.07317 } } dps_results: { - key: "TestBalance-Settings-Tauren-P2-4P-Default-Default-NoBuffs-LongMultiTarget" + key: "TestBalance-Settings-Tauren-P2-4P-Default-basic_p3-NoBuffs-LongMultiTarget" value: { dps: 4621.31399 tps: 5168.01464 } } dps_results: { - key: "TestBalance-Settings-Tauren-P2-4P-Default-Default-NoBuffs-LongSingleTarget" + key: "TestBalance-Settings-Tauren-P2-4P-Default-basic_p3-NoBuffs-LongSingleTarget" value: { dps: 3137.6367 tps: 3024.20581 } } dps_results: { - key: "TestBalance-Settings-Tauren-P2-4P-Default-Default-NoBuffs-ShortSingleTarget" + key: "TestBalance-Settings-Tauren-P2-4P-Default-basic_p3-NoBuffs-ShortSingleTarget" value: { dps: 6513.42224 tps: 6220.79859 } } dps_results: { - key: "TestBalance-Settings-Tauren-P2-Default-Default-FullBuffs-LongMultiTarget" + key: "TestBalance-Settings-Tauren-P2-Default-basic_p3-FullBuffs-LongMultiTarget" value: { dps: 13814.42102 tps: 16092.33422 } } dps_results: { - key: "TestBalance-Settings-Tauren-P2-Default-Default-FullBuffs-LongSingleTarget" + key: "TestBalance-Settings-Tauren-P2-Default-basic_p3-FullBuffs-LongSingleTarget" value: { dps: 9493.50123 tps: 9246.66588 } } dps_results: { - key: "TestBalance-Settings-Tauren-P2-Default-Default-FullBuffs-ShortSingleTarget" + key: "TestBalance-Settings-Tauren-P2-Default-basic_p3-FullBuffs-ShortSingleTarget" value: { dps: 10757.84444 tps: 9833.28124 } } dps_results: { - key: "TestBalance-Settings-Tauren-P2-Default-Default-NoBuffs-LongMultiTarget" + key: "TestBalance-Settings-Tauren-P2-Default-basic_p3-NoBuffs-LongMultiTarget" value: { dps: 4921.66103 tps: 5515.31598 } } dps_results: { - key: "TestBalance-Settings-Tauren-P2-Default-Default-NoBuffs-LongSingleTarget" + key: "TestBalance-Settings-Tauren-P2-Default-basic_p3-NoBuffs-LongSingleTarget" value: { dps: 3487.46814 tps: 3379.19652 } } dps_results: { - key: "TestBalance-Settings-Tauren-P2-Default-Default-NoBuffs-ShortSingleTarget" + key: "TestBalance-Settings-Tauren-P2-Default-basic_p3-NoBuffs-ShortSingleTarget" value: { dps: 6586.54459 tps: 6292.33993 } } dps_results: { - key: "TestBalance-Settings-Tauren-P3-Default-Default-FullBuffs-LongMultiTarget" + key: "TestBalance-Settings-Tauren-P3-Default-basic_p3-FullBuffs-LongMultiTarget" value: { dps: 16073.78456 tps: 18564.73994 } } dps_results: { - key: "TestBalance-Settings-Tauren-P3-Default-Default-FullBuffs-LongSingleTarget" + key: "TestBalance-Settings-Tauren-P3-Default-basic_p3-FullBuffs-LongSingleTarget" value: { dps: 11292.18427 tps: 11038.94976 } } dps_results: { - key: "TestBalance-Settings-Tauren-P3-Default-Default-FullBuffs-ShortSingleTarget" + key: "TestBalance-Settings-Tauren-P3-Default-basic_p3-FullBuffs-ShortSingleTarget" value: { dps: 12502.93599 tps: 11540.33889 } } dps_results: { - key: "TestBalance-Settings-Tauren-P3-Default-Default-NoBuffs-LongMultiTarget" + key: "TestBalance-Settings-Tauren-P3-Default-basic_p3-NoBuffs-LongMultiTarget" value: { dps: 7036.35002 tps: 8043.58253 } } dps_results: { - key: "TestBalance-Settings-Tauren-P3-Default-Default-NoBuffs-LongSingleTarget" + key: "TestBalance-Settings-Tauren-P3-Default-basic_p3-NoBuffs-LongSingleTarget" value: { dps: 5048.77489 tps: 4952.3195 } } dps_results: { - key: "TestBalance-Settings-Tauren-P3-Default-Default-NoBuffs-ShortSingleTarget" + key: "TestBalance-Settings-Tauren-P3-Default-basic_p3-NoBuffs-ShortSingleTarget" value: { dps: 7882.18633 tps: 7580.73047 diff --git a/sim/druid/balance/TestBalancePhase3.results b/sim/druid/balance/TestBalancePhase3.results index 8e1a1f93d2..4d987c7e24 100644 --- a/sim/druid/balance/TestBalancePhase3.results +++ b/sim/druid/balance/TestBalancePhase3.results @@ -947,42 +947,42 @@ dps_results: { } } dps_results: { - key: "TestBalancePhase3-Settings-Tauren-P3-Default-Default-FullBuffs-LongMultiTarget" + key: "TestBalancePhase3-Settings-Tauren-P3-Default-basic_p3-FullBuffs-LongMultiTarget" value: { dps: 16354.42468 tps: 19005.86958 } } dps_results: { - key: "TestBalancePhase3-Settings-Tauren-P3-Default-Default-FullBuffs-LongSingleTarget" + key: "TestBalancePhase3-Settings-Tauren-P3-Default-basic_p3-FullBuffs-LongSingleTarget" value: { dps: 11569.2566 tps: 11267.35306 } } dps_results: { - key: "TestBalancePhase3-Settings-Tauren-P3-Default-Default-FullBuffs-ShortSingleTarget" + key: "TestBalancePhase3-Settings-Tauren-P3-Default-basic_p3-FullBuffs-ShortSingleTarget" value: { dps: 12872.95249 tps: 11755.55684 } } dps_results: { - key: "TestBalancePhase3-Settings-Tauren-P3-Default-Default-NoBuffs-LongMultiTarget" + key: "TestBalancePhase3-Settings-Tauren-P3-Default-basic_p3-NoBuffs-LongMultiTarget" value: { dps: 6156.42751 tps: 6942.84154 } } dps_results: { - key: "TestBalancePhase3-Settings-Tauren-P3-Default-Default-NoBuffs-LongSingleTarget" + key: "TestBalancePhase3-Settings-Tauren-P3-Default-basic_p3-NoBuffs-LongSingleTarget" value: { dps: 4306.26802 tps: 4176.7608 } } dps_results: { - key: "TestBalancePhase3-Settings-Tauren-P3-Default-Default-NoBuffs-ShortSingleTarget" + key: "TestBalancePhase3-Settings-Tauren-P3-Default-basic_p3-NoBuffs-ShortSingleTarget" value: { dps: 8092.65959 tps: 7732.26239 diff --git a/sim/druid/balance/balance_test.go b/sim/druid/balance/balance_test.go index 8df18ae125..5ee00d90d4 100644 --- a/sim/druid/balance/balance_test.go +++ b/sim/druid/balance/balance_test.go @@ -1,6 +1,8 @@ package balance import ( + "log" + "os" "testing" _ "github.com/wowsims/wotlk/sim/common" // imported to get caster sets included. (we use spellfire here) @@ -12,6 +14,16 @@ func init() { RegisterBalanceDruid() } +func GetAplRotation(dir string, file string) core.RotationCombo { + filePath := dir + "/" + file + ".json" + data, err := os.ReadFile(filePath) + if err != nil { + log.Fatalf("failed to load apl json file: %s, %s", filePath, err) + } + + return core.RotationCombo{Label: file, Rotation: core.APLRotationFromJsonString(string(data))} +} + func TestBalance(t *testing.T) { core.RunTestSuite(t, t.Name(), core.FullCharacterTestSuiteGenerator(core.CharacterSuiteConfig{ Class: proto.Class_ClassDruid, @@ -27,21 +39,9 @@ func TestBalance(t *testing.T) { Glyphs: StandardGlyphs, Consumes: FullConsumes, SpecOptions: core.SpecOptionsCombo{Label: "Default", SpecOptions: PlayerOptionsAdaptive}, - Rotation: core.RotationCombo{Label: "Default", Rotation: DefaultRotation}, + Rotation: GetAplRotation("../../../ui/balance_druid/apls", "basic_p3"), - ItemFilter: core.ItemFilter{ - WeaponTypes: []proto.WeaponType{ - proto.WeaponType_WeaponTypeDagger, - proto.WeaponType_WeaponTypeMace, - proto.WeaponType_WeaponTypeOffHand, - proto.WeaponType_WeaponTypeStaff, - proto.WeaponType_WeaponTypePolearm, - }, - ArmorType: proto.ArmorType_ArmorTypeLeather, - RangedWeaponTypes: []proto.RangedWeaponType{ - proto.RangedWeaponType_RangedWeaponTypeIdol, - }, - }, + ItemFilter: ItemFilter, })) } @@ -59,7 +59,7 @@ func TestBalancePhase3(t *testing.T) { }, Consumes: FullConsumes, SpecOptions: core.SpecOptionsCombo{Label: "Default", SpecOptions: PlayerOptionsAdaptive}, - Rotation: core.RotationCombo{Label: "Default", Rotation: DefaultRotation}, + Rotation: GetAplRotation("../../../ui/balance_druid/apls", "basic_p3"), ItemFilter: core.ItemFilter{ WeaponTypes: []proto.WeaponType{ @@ -99,27 +99,19 @@ var PlayerOptionsAdaptive = &proto.Player_BalanceDruid{ }, } -var DefaultRotation = core.APLRotationFromJsonString(`{ - "type": "TypeAPL", - "prepullActions": [ - {"action":{"castSpell":{"spellId":{"otherId":"OtherActionPotion"}}},"doAtValue":{"const":{"val":"-1.5s"}}}, - {"action":{"castSpell":{"spellId":{"spellId":48461}}},"doAtValue":{"const":{"val":"-1.5s"}}} - ], - "priorityList": [ - {"action":{"condition":{"cmp":{"op":"OpGt","lhs":{"currentTime":{}},"rhs":{"const":{"val":"5"}}}},"castSpell":{"spellId":{"tag":-1,"spellId":2825}}}}, - {"action":{"castSpell":{"spellId":{"itemId":41119}}}}, - {"action":{"multidot":{"spellId":{"spellId":48463},"maxDots":1,"maxOverlap":{"const":{"val":"0ms"}}}}}, - {"action":{"castSpell":{"spellId":{"spellId":53201}}}}, - {"action":{"castSpell":{"spellId":{"spellId":65861}}}}, - {"action":{"condition":{"or":{"vals":[{"and":{"vals":[{"cmp":{"op":"OpGt","lhs":{"auraRemainingTime":{"sourceUnit":{},"auraId":{"spellId":48518}}},"rhs":{"const":{"val":"10s"}}}},{"cmp":{"op":"OpLe","lhs":{"auraRemainingTime":{"sourceUnit":{},"auraId":{"spellId":48518}}},"rhs":{"const":{"val":"14.8"}}}}]}},{"cmp":{"op":"OpLt","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"12s"}}}}]}},"castSpell":{"spellId":{"spellId":54758}}}}, - {"action":{"condition":{"or":{"vals":[{"and":{"vals":[{"cmp":{"op":"OpGt","lhs":{"auraRemainingTime":{"sourceUnit":{},"auraId":{"spellId":48518}}},"rhs":{"const":{"val":"10s"}}}},{"cmp":{"op":"OpLe","lhs":{"auraRemainingTime":{"sourceUnit":{},"auraId":{"spellId":48518}}},"rhs":{"const":{"val":"14.8"}}}}]}},{"cmp":{"op":"OpLt","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"15s"}}}}]}},"castSpell":{"spellId":{"itemId":40211}}}}, - {"action":{"condition":{"and":{"vals":[{"auraIsActive":{"sourceUnit":{},"auraId":{"spellId":48518}}},{"cmp":{"op":"OpLe","lhs":{"auraRemainingTime":{"sourceUnit":{},"auraId":{"spellId":48518}}},"rhs":{"const":{"val":"14.8s"}}}}]}},"castSpell":{"spellId":{"spellId":48465}}}}, - {"action":{"condition":{"and":{"vals":[{"auraIsActive":{"sourceUnit":{},"auraId":{"spellId":48517}}},{"cmp":{"op":"OpLe","lhs":{"auraRemainingTime":{"sourceUnit":{},"auraId":{"spellId":48517}}},"rhs":{"const":{"val":"14.8s"}}}}]}},"castSpell":{"spellId":{"spellId":48461}}}}, - {"action":{"condition":{"and":{"vals":[{"not":{"val":{"dotIsActive":{"spellId":{"spellId":48468}}}}},{"auraInternalCooldown":{"auraId":{"spellId":48518}}}]}},"castSpell":{"spellId":{"spellId":48468}}}}, - {"action":{"condition":{"auraInternalCooldown":{"sourceUnit":{},"auraId":{"spellId":48518}}},"castSpell":{"spellId":{"spellId":48465}}}}, - {"action":{"castSpell":{"spellId":{"spellId":48461}}}} - ] -}`) +var ItemFilter = core.ItemFilter{ + WeaponTypes: []proto.WeaponType{ + proto.WeaponType_WeaponTypeDagger, + proto.WeaponType_WeaponTypeMace, + proto.WeaponType_WeaponTypeOffHand, + proto.WeaponType_WeaponTypeStaff, + proto.WeaponType_WeaponTypePolearm, + }, + ArmorType: proto.ArmorType_ArmorTypeLeather, + RangedWeaponTypes: []proto.RangedWeaponType{ + proto.RangedWeaponType_RangedWeaponTypeIdol, + }, +} var P1Gear = core.EquipmentSpecFromJsonString(`{"items": [ {"id":40467,"enchant":3820,"gems":[41285,42144]}, @@ -161,116 +153,25 @@ var P2Gear = core.EquipmentSpecFromJsonString(`{"items": [ {"id":40321} ]}`) -var P2Gear4P = core.EquipmentSpecFromJsonString(`{"items": [ - { - "id": 46191, - "enchant": 3820, - "gems": [ - 41285, - 42144 - ] - }, - { - "id": 45933, - "gems": [ - 39998 - ] - }, - { - "id": 46196, - "enchant": 3810, - "gems": [ - 40026 - ] - }, - { - "id": 45242, - "enchant": 3859, - "gems": [ - 39998 - ] - }, - { - "id": 46194, - "enchant": 3832, - "gems": [ - 39998, - 42144 - ] - }, - { - "id": 45446, - "enchant": 2332, - "gems": [ - 42144, - 0 - ] - }, - { - "id": 45665, - "enchant": 3604, - "gems": [ - 39998, - 39998, - 0 - ] - }, - { - "id": 45616, - "gems": [ - 39998, - 39998, - 39998 - ] - }, - { - "id": 46192, - "enchant": 3719, - "gems": [ - 39998, - 39998 - ] - }, - { - "id": 45537, - "enchant": 3606, - "gems": [ - 39998, - 40026 - ] - }, - { - "id": 46046, - "gems": [ - 39998 - ] - }, - { - "id": 45495, - "gems": [ - 39998 - ] - }, - { - "id": 45466 - }, - { - "id": 45518 - }, - { - "id": 45620, - "enchant": 3834, - "gems": [ - 39998 - ] - }, - { - "id": 45617 - }, - { - "id": 40321 - } -]}`) +var P2Gear4P = core.EquipmentSpecFromJsonString(`{"items":[ + {"id":46191,"enchant":3820,"gems":[41285,42144]}, + {"id":45933,"gems":[39998]}, + {"id":46196,"enchant":3810,"gems":[40026]}, + {"id":45242,"enchant":3859,"gems":[39998]}, + {"id":46194,"enchant":3832,"gems":[39998,42144]}, + {"id":45446,"enchant":2332,"gems":[42144,0]}, + {"id":45665,"enchant":3604,"gems":[39998,39998,0]}, + {"id":45616,"gems":[39998,39998,39998]}, + {"id":46192,"enchant":3719,"gems":[39998,39998]}, + {"id":45537,"enchant":3606,"gems":[39998,40026]}, + {"id":46046,"gems":[39998]}, + {"id":45495,"gems":[39998]}, + {"id":45466}, + {"id":45518}, + {"id":45620,"enchant":3834,"gems":[39998]}, + {"id":45617}, + {"id":40321}] +}`) var P3Gear = core.EquipmentSpecFromJsonString(`{"items": [ {"id":48171,"enchant":3820,"gems":[41285,40153]}, From 97d0f2623a66a3fa474f2bf1b82e8d3d72def09c Mon Sep 17 00:00:00 2001 From: jarves Date: Mon, 25 Sep 2023 15:52:31 -0500 Subject: [PATCH 07/21] =?UTF-8?q?=EF=BB=BFdk:=20apl=20tests?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: jarves --- sim/deathknight/dps/TestBlood.results | 168 ++++++++++ sim/deathknight/dps/TestFrost.results | 336 ++++++++++++++++++++ sim/deathknight/dps/TestFrostUH.results | 84 +++++ sim/deathknight/dps/TestUnholy.results | 288 +++++++++++++++++ sim/deathknight/dps/dps_deathknight_test.go | 76 +++-- 5 files changed, 918 insertions(+), 34 deletions(-) diff --git a/sim/deathknight/dps/TestBlood.results b/sim/deathknight/dps/TestBlood.results index 197cfd1f16..c5fdd1d8dd 100644 --- a/sim/deathknight/dps/TestBlood.results +++ b/sim/deathknight/dps/TestBlood.results @@ -866,6 +866,90 @@ dps_results: { tps: 3287.18623 } } +dps_results: { + key: "TestBlood-Settings-Human-Blood P3 -Basic-blood_pesti-FullBuffs-LongMultiTarget" + value: { + dps: 29195.40357 + tps: 15861.54377 + } +} +dps_results: { + key: "TestBlood-Settings-Human-Blood P3 -Basic-blood_pesti-FullBuffs-LongSingleTarget" + value: { + dps: 10273.1784 + tps: 5429.26092 + } +} +dps_results: { + key: "TestBlood-Settings-Human-Blood P3 -Basic-blood_pesti-FullBuffs-ShortSingleTarget" + value: { + dps: 13994.94209 + tps: 6380.16193 + } +} +dps_results: { + key: "TestBlood-Settings-Human-Blood P3 -Basic-blood_pesti-NoBuffs-LongMultiTarget" + value: { + dps: 15771.96802 + tps: 8585.72539 + } +} +dps_results: { + key: "TestBlood-Settings-Human-Blood P3 -Basic-blood_pesti-NoBuffs-LongSingleTarget" + value: { + dps: 5892.98116 + tps: 3137.39582 + } +} +dps_results: { + key: "TestBlood-Settings-Human-Blood P3 -Basic-blood_pesti-NoBuffs-ShortSingleTarget" + value: { + dps: 7388.56047 + tps: 3347.43804 + } +} +dps_results: { + key: "TestBlood-Settings-Human-Blood P3 -Basic-blood_pesti_dd-FullBuffs-LongMultiTarget" + value: { + dps: 27130.40312 + tps: 15428.40206 + } +} +dps_results: { + key: "TestBlood-Settings-Human-Blood P3 -Basic-blood_pesti_dd-FullBuffs-LongSingleTarget" + value: { + dps: 10277.47466 + tps: 5431.12909 + } +} +dps_results: { + key: "TestBlood-Settings-Human-Blood P3 -Basic-blood_pesti_dd-FullBuffs-ShortSingleTarget" + value: { + dps: 13892.54341 + tps: 6302.17621 + } +} +dps_results: { + key: "TestBlood-Settings-Human-Blood P3 -Basic-blood_pesti_dd-NoBuffs-LongMultiTarget" + value: { + dps: 14629.55664 + tps: 8287.54854 + } +} +dps_results: { + key: "TestBlood-Settings-Human-Blood P3 -Basic-blood_pesti_dd-NoBuffs-LongSingleTarget" + value: { + dps: 5857.38104 + tps: 3103.70429 + } +} +dps_results: { + key: "TestBlood-Settings-Human-Blood P3 -Basic-blood_pesti_dd-NoBuffs-ShortSingleTarget" + value: { + dps: 7255.99389 + tps: 3252.29881 + } +} dps_results: { key: "TestBlood-Settings-Orc-Blood P3 -Basic--FullBuffs-LongMultiTarget" value: { @@ -908,6 +992,90 @@ dps_results: { tps: 3315.85124 } } +dps_results: { + key: "TestBlood-Settings-Orc-Blood P3 -Basic-blood_pesti-FullBuffs-LongMultiTarget" + value: { + dps: 29460.36768 + tps: 15906.58952 + } +} +dps_results: { + key: "TestBlood-Settings-Orc-Blood P3 -Basic-blood_pesti-FullBuffs-LongSingleTarget" + value: { + dps: 10384.664 + tps: 5455.5901 + } +} +dps_results: { + key: "TestBlood-Settings-Orc-Blood P3 -Basic-blood_pesti-FullBuffs-ShortSingleTarget" + value: { + dps: 14239.48996 + tps: 6426.52359 + } +} +dps_results: { + key: "TestBlood-Settings-Orc-Blood P3 -Basic-blood_pesti-NoBuffs-LongMultiTarget" + value: { + dps: 15915.58469 + tps: 8609.2386 + } +} +dps_results: { + key: "TestBlood-Settings-Orc-Blood P3 -Basic-blood_pesti-NoBuffs-LongSingleTarget" + value: { + dps: 5931.07206 + tps: 3138.25278 + } +} +dps_results: { + key: "TestBlood-Settings-Orc-Blood P3 -Basic-blood_pesti-NoBuffs-ShortSingleTarget" + value: { + dps: 7516.92444 + tps: 3372.75695 + } +} +dps_results: { + key: "TestBlood-Settings-Orc-Blood P3 -Basic-blood_pesti_dd-FullBuffs-LongMultiTarget" + value: { + dps: 27237.38498 + tps: 15444.46282 + } +} +dps_results: { + key: "TestBlood-Settings-Orc-Blood P3 -Basic-blood_pesti_dd-FullBuffs-LongSingleTarget" + value: { + dps: 10368.3705 + tps: 5444.91121 + } +} +dps_results: { + key: "TestBlood-Settings-Orc-Blood P3 -Basic-blood_pesti_dd-FullBuffs-ShortSingleTarget" + value: { + dps: 14137.47419 + tps: 6347.57974 + } +} +dps_results: { + key: "TestBlood-Settings-Orc-Blood P3 -Basic-blood_pesti_dd-NoBuffs-LongMultiTarget" + value: { + dps: 14680.6283 + tps: 8289.3738 + } +} +dps_results: { + key: "TestBlood-Settings-Orc-Blood P3 -Basic-blood_pesti_dd-NoBuffs-LongSingleTarget" + value: { + dps: 5912.18124 + tps: 3113.94457 + } +} +dps_results: { + key: "TestBlood-Settings-Orc-Blood P3 -Basic-blood_pesti_dd-NoBuffs-ShortSingleTarget" + value: { + dps: 7389.70294 + tps: 3279.60854 + } +} dps_results: { key: "TestBlood-SwitchInFrontOfTarget-Default" value: { diff --git a/sim/deathknight/dps/TestFrost.results b/sim/deathknight/dps/TestFrost.results index 0e81ea45b5..358b731d52 100644 --- a/sim/deathknight/dps/TestFrost.results +++ b/sim/deathknight/dps/TestFrost.results @@ -957,6 +957,90 @@ dps_results: { tps: 4185.81786 } } +dps_results: { + key: "TestFrost-Settings-Human-Frost P3-Basic-frost_bl_pesti-FullBuffs-LongMultiTarget" + value: { + dps: 26224.26021 + tps: 15477.91906 + } +} +dps_results: { + key: "TestFrost-Settings-Human-Frost P3-Basic-frost_bl_pesti-FullBuffs-LongSingleTarget" + value: { + dps: 11306.80073 + tps: 6528.31117 + } +} +dps_results: { + key: "TestFrost-Settings-Human-Frost P3-Basic-frost_bl_pesti-FullBuffs-ShortSingleTarget" + value: { + dps: 13425.18395 + tps: 7190.4658 + } +} +dps_results: { + key: "TestFrost-Settings-Human-Frost P3-Basic-frost_bl_pesti-NoBuffs-LongMultiTarget" + value: { + dps: 13761.42828 + tps: 8083.8193 + } +} +dps_results: { + key: "TestFrost-Settings-Human-Frost P3-Basic-frost_bl_pesti-NoBuffs-LongSingleTarget" + value: { + dps: 6874.6967 + tps: 3951.40832 + } +} +dps_results: { + key: "TestFrost-Settings-Human-Frost P3-Basic-frost_bl_pesti-NoBuffs-ShortSingleTarget" + value: { + dps: 7856.74295 + tps: 4143.75318 + } +} +dps_results: { + key: "TestFrost-Settings-Human-Frost P3-Basic-frost_uh_pesti-FullBuffs-LongMultiTarget" + value: { + dps: 29863.62675 + tps: 17660.43657 + } +} +dps_results: { + key: "TestFrost-Settings-Human-Frost P3-Basic-frost_uh_pesti-FullBuffs-LongSingleTarget" + value: { + dps: 11252.46043 + tps: 6494.08499 + } +} +dps_results: { + key: "TestFrost-Settings-Human-Frost P3-Basic-frost_uh_pesti-FullBuffs-ShortSingleTarget" + value: { + dps: 13308.65752 + tps: 7120.97594 + } +} +dps_results: { + key: "TestFrost-Settings-Human-Frost P3-Basic-frost_uh_pesti-NoBuffs-LongMultiTarget" + value: { + dps: 15663.22549 + tps: 9223.0971 + } +} +dps_results: { + key: "TestFrost-Settings-Human-Frost P3-Basic-frost_uh_pesti-NoBuffs-LongSingleTarget" + value: { + dps: 6819.86774 + tps: 3917.20075 + } +} +dps_results: { + key: "TestFrost-Settings-Human-Frost P3-Basic-frost_uh_pesti-NoBuffs-ShortSingleTarget" + value: { + dps: 7750.56361 + tps: 4077.05239 + } +} dps_results: { key: "TestFrost-Settings-Human-Frost P3-Desync--FullBuffs-LongMultiTarget" value: { @@ -999,6 +1083,90 @@ dps_results: { tps: 4129.096 } } +dps_results: { + key: "TestFrost-Settings-Human-Frost P3-Desync-frost_bl_pesti-FullBuffs-LongMultiTarget" + value: { + dps: 26224.26021 + tps: 15477.91906 + } +} +dps_results: { + key: "TestFrost-Settings-Human-Frost P3-Desync-frost_bl_pesti-FullBuffs-LongSingleTarget" + value: { + dps: 11306.80073 + tps: 6528.31117 + } +} +dps_results: { + key: "TestFrost-Settings-Human-Frost P3-Desync-frost_bl_pesti-FullBuffs-ShortSingleTarget" + value: { + dps: 13425.18395 + tps: 7190.4658 + } +} +dps_results: { + key: "TestFrost-Settings-Human-Frost P3-Desync-frost_bl_pesti-NoBuffs-LongMultiTarget" + value: { + dps: 13761.42828 + tps: 8083.8193 + } +} +dps_results: { + key: "TestFrost-Settings-Human-Frost P3-Desync-frost_bl_pesti-NoBuffs-LongSingleTarget" + value: { + dps: 6874.6967 + tps: 3951.40832 + } +} +dps_results: { + key: "TestFrost-Settings-Human-Frost P3-Desync-frost_bl_pesti-NoBuffs-ShortSingleTarget" + value: { + dps: 7856.74295 + tps: 4143.75318 + } +} +dps_results: { + key: "TestFrost-Settings-Human-Frost P3-Desync-frost_uh_pesti-FullBuffs-LongMultiTarget" + value: { + dps: 29863.62675 + tps: 17660.43657 + } +} +dps_results: { + key: "TestFrost-Settings-Human-Frost P3-Desync-frost_uh_pesti-FullBuffs-LongSingleTarget" + value: { + dps: 11252.46043 + tps: 6494.08499 + } +} +dps_results: { + key: "TestFrost-Settings-Human-Frost P3-Desync-frost_uh_pesti-FullBuffs-ShortSingleTarget" + value: { + dps: 13308.65752 + tps: 7120.97594 + } +} +dps_results: { + key: "TestFrost-Settings-Human-Frost P3-Desync-frost_uh_pesti-NoBuffs-LongMultiTarget" + value: { + dps: 15663.22549 + tps: 9223.0971 + } +} +dps_results: { + key: "TestFrost-Settings-Human-Frost P3-Desync-frost_uh_pesti-NoBuffs-LongSingleTarget" + value: { + dps: 6819.86774 + tps: 3917.20075 + } +} +dps_results: { + key: "TestFrost-Settings-Human-Frost P3-Desync-frost_uh_pesti-NoBuffs-ShortSingleTarget" + value: { + dps: 7750.56361 + tps: 4077.05239 + } +} dps_results: { key: "TestFrost-Settings-Orc-Frost P3-Basic--FullBuffs-LongMultiTarget" value: { @@ -1041,6 +1209,90 @@ dps_results: { tps: 4204.88245 } } +dps_results: { + key: "TestFrost-Settings-Orc-Frost P3-Basic-frost_bl_pesti-FullBuffs-LongMultiTarget" + value: { + dps: 26490.97772 + tps: 15629.02719 + } +} +dps_results: { + key: "TestFrost-Settings-Orc-Frost P3-Basic-frost_bl_pesti-FullBuffs-LongSingleTarget" + value: { + dps: 11347.20365 + tps: 6545.23588 + } +} +dps_results: { + key: "TestFrost-Settings-Orc-Frost P3-Basic-frost_bl_pesti-FullBuffs-ShortSingleTarget" + value: { + dps: 13521.72246 + tps: 7229.75982 + } +} +dps_results: { + key: "TestFrost-Settings-Orc-Frost P3-Basic-frost_bl_pesti-NoBuffs-LongMultiTarget" + value: { + dps: 13809.69922 + tps: 8107.72558 + } +} +dps_results: { + key: "TestFrost-Settings-Orc-Frost P3-Basic-frost_bl_pesti-NoBuffs-LongSingleTarget" + value: { + dps: 6904.25778 + tps: 3964.03769 + } +} +dps_results: { + key: "TestFrost-Settings-Orc-Frost P3-Basic-frost_bl_pesti-NoBuffs-ShortSingleTarget" + value: { + dps: 7891.18235 + tps: 4154.32097 + } +} +dps_results: { + key: "TestFrost-Settings-Orc-Frost P3-Basic-frost_uh_pesti-FullBuffs-LongMultiTarget" + value: { + dps: 30006.82843 + tps: 17737.92628 + } +} +dps_results: { + key: "TestFrost-Settings-Orc-Frost P3-Basic-frost_uh_pesti-FullBuffs-LongSingleTarget" + value: { + dps: 11314.11533 + tps: 6522.16153 + } +} +dps_results: { + key: "TestFrost-Settings-Orc-Frost P3-Basic-frost_uh_pesti-FullBuffs-ShortSingleTarget" + value: { + dps: 13324.87114 + tps: 7112.10065 + } +} +dps_results: { + key: "TestFrost-Settings-Orc-Frost P3-Basic-frost_uh_pesti-NoBuffs-LongMultiTarget" + value: { + dps: 15806.91535 + tps: 9304.98435 + } +} +dps_results: { + key: "TestFrost-Settings-Orc-Frost P3-Basic-frost_uh_pesti-NoBuffs-LongSingleTarget" + value: { + dps: 6862.0224 + tps: 3937.65392 + } +} +dps_results: { + key: "TestFrost-Settings-Orc-Frost P3-Basic-frost_uh_pesti-NoBuffs-ShortSingleTarget" + value: { + dps: 7815.53637 + tps: 4106.87387 + } +} dps_results: { key: "TestFrost-Settings-Orc-Frost P3-Desync--FullBuffs-LongMultiTarget" value: { @@ -1083,6 +1335,90 @@ dps_results: { tps: 4142.3065 } } +dps_results: { + key: "TestFrost-Settings-Orc-Frost P3-Desync-frost_bl_pesti-FullBuffs-LongMultiTarget" + value: { + dps: 26490.97772 + tps: 15629.02719 + } +} +dps_results: { + key: "TestFrost-Settings-Orc-Frost P3-Desync-frost_bl_pesti-FullBuffs-LongSingleTarget" + value: { + dps: 11347.20365 + tps: 6545.23588 + } +} +dps_results: { + key: "TestFrost-Settings-Orc-Frost P3-Desync-frost_bl_pesti-FullBuffs-ShortSingleTarget" + value: { + dps: 13521.72246 + tps: 7229.75982 + } +} +dps_results: { + key: "TestFrost-Settings-Orc-Frost P3-Desync-frost_bl_pesti-NoBuffs-LongMultiTarget" + value: { + dps: 13809.69922 + tps: 8107.72558 + } +} +dps_results: { + key: "TestFrost-Settings-Orc-Frost P3-Desync-frost_bl_pesti-NoBuffs-LongSingleTarget" + value: { + dps: 6904.25778 + tps: 3964.03769 + } +} +dps_results: { + key: "TestFrost-Settings-Orc-Frost P3-Desync-frost_bl_pesti-NoBuffs-ShortSingleTarget" + value: { + dps: 7891.18235 + tps: 4154.32097 + } +} +dps_results: { + key: "TestFrost-Settings-Orc-Frost P3-Desync-frost_uh_pesti-FullBuffs-LongMultiTarget" + value: { + dps: 30006.82843 + tps: 17737.92628 + } +} +dps_results: { + key: "TestFrost-Settings-Orc-Frost P3-Desync-frost_uh_pesti-FullBuffs-LongSingleTarget" + value: { + dps: 11314.11533 + tps: 6522.16153 + } +} +dps_results: { + key: "TestFrost-Settings-Orc-Frost P3-Desync-frost_uh_pesti-FullBuffs-ShortSingleTarget" + value: { + dps: 13324.87114 + tps: 7112.10065 + } +} +dps_results: { + key: "TestFrost-Settings-Orc-Frost P3-Desync-frost_uh_pesti-NoBuffs-LongMultiTarget" + value: { + dps: 15806.91535 + tps: 9304.98435 + } +} +dps_results: { + key: "TestFrost-Settings-Orc-Frost P3-Desync-frost_uh_pesti-NoBuffs-LongSingleTarget" + value: { + dps: 6862.0224 + tps: 3937.65392 + } +} +dps_results: { + key: "TestFrost-Settings-Orc-Frost P3-Desync-frost_uh_pesti-NoBuffs-ShortSingleTarget" + value: { + dps: 7815.53637 + tps: 4106.87387 + } +} dps_results: { key: "TestFrost-SwitchInFrontOfTarget-Default" value: { diff --git a/sim/deathknight/dps/TestFrostUH.results b/sim/deathknight/dps/TestFrostUH.results index f6b45f1a58..189e5e0274 100644 --- a/sim/deathknight/dps/TestFrostUH.results +++ b/sim/deathknight/dps/TestFrostUH.results @@ -957,6 +957,48 @@ dps_results: { tps: 5197.99432 } } +dps_results: { + key: "TestFrostUH-Settings-Human-Frost P1-Basic-frost_uh_pesti-FullBuffs-LongMultiTarget" + value: { + dps: 29010.93257 + tps: 20961.22623 + } +} +dps_results: { + key: "TestFrostUH-Settings-Human-Frost P1-Basic-frost_uh_pesti-FullBuffs-LongSingleTarget" + value: { + dps: 11420.48913 + tps: 8014.68002 + } +} +dps_results: { + key: "TestFrostUH-Settings-Human-Frost P1-Basic-frost_uh_pesti-FullBuffs-ShortSingleTarget" + value: { + dps: 14117.24198 + tps: 9160.38746 + } +} +dps_results: { + key: "TestFrostUH-Settings-Human-Frost P1-Basic-frost_uh_pesti-NoBuffs-LongMultiTarget" + value: { + dps: 15335.05422 + tps: 11026.12553 + } +} +dps_results: { + key: "TestFrostUH-Settings-Human-Frost P1-Basic-frost_uh_pesti-NoBuffs-LongSingleTarget" + value: { + dps: 6876.28096 + tps: 4798.32051 + } +} +dps_results: { + key: "TestFrostUH-Settings-Human-Frost P1-Basic-frost_uh_pesti-NoBuffs-ShortSingleTarget" + value: { + dps: 8171.53701 + tps: 5220.69838 + } +} dps_results: { key: "TestFrostUH-Settings-Orc-Frost P1-Basic--FullBuffs-LongMultiTarget" value: { @@ -999,6 +1041,48 @@ dps_results: { tps: 5209.38453 } } +dps_results: { + key: "TestFrostUH-Settings-Orc-Frost P1-Basic-frost_uh_pesti-FullBuffs-LongMultiTarget" + value: { + dps: 29113.78926 + tps: 21023.02172 + } +} +dps_results: { + key: "TestFrostUH-Settings-Orc-Frost P1-Basic-frost_uh_pesti-FullBuffs-LongSingleTarget" + value: { + dps: 11442.57048 + tps: 8017.68947 + } +} +dps_results: { + key: "TestFrostUH-Settings-Orc-Frost P1-Basic-frost_uh_pesti-FullBuffs-ShortSingleTarget" + value: { + dps: 14171.03858 + tps: 9168.1814 + } +} +dps_results: { + key: "TestFrostUH-Settings-Orc-Frost P1-Basic-frost_uh_pesti-NoBuffs-LongMultiTarget" + value: { + dps: 15477.80377 + tps: 11122.4023 + } +} +dps_results: { + key: "TestFrostUH-Settings-Orc-Frost P1-Basic-frost_uh_pesti-NoBuffs-LongSingleTarget" + value: { + dps: 6897.10012 + tps: 4805.94199 + } +} +dps_results: { + key: "TestFrostUH-Settings-Orc-Frost P1-Basic-frost_uh_pesti-NoBuffs-ShortSingleTarget" + value: { + dps: 8163.88119 + tps: 5198.36509 + } +} dps_results: { key: "TestFrostUH-SwitchInFrontOfTarget-Default" value: { diff --git a/sim/deathknight/dps/TestUnholy.results b/sim/deathknight/dps/TestUnholy.results index 9f86e619f7..f7f9101b71 100644 --- a/sim/deathknight/dps/TestUnholy.results +++ b/sim/deathknight/dps/TestUnholy.results @@ -1075,6 +1075,150 @@ dps_results: { hps: 149.6448 } } +dps_results: { + key: "TestUnholy-Settings-Human-Unholy P3 -Basic-uh_2h_ss-FullBuffs-LongMultiTarget" + value: { + dps: 14162.47017 + tps: 9309.15453 + hps: 42.10858 + } +} +dps_results: { + key: "TestUnholy-Settings-Human-Unholy P3 -Basic-uh_2h_ss-FullBuffs-LongSingleTarget" + value: { + dps: 10195.05616 + tps: 5983.65206 + hps: 42.10858 + } +} +dps_results: { + key: "TestUnholy-Settings-Human-Unholy P3 -Basic-uh_2h_ss-FullBuffs-ShortSingleTarget" + value: { + dps: 15152.29189 + tps: 7149.1882 + hps: 210.54288 + } +} +dps_results: { + key: "TestUnholy-Settings-Human-Unholy P3 -Basic-uh_2h_ss-NoBuffs-LongMultiTarget" + value: { + dps: 6743.93816 + tps: 4598.24299 + hps: 27.712 + } +} +dps_results: { + key: "TestUnholy-Settings-Human-Unholy P3 -Basic-uh_2h_ss-NoBuffs-LongSingleTarget" + value: { + dps: 5051.26254 + tps: 3184.17764 + hps: 27.712 + } +} +dps_results: { + key: "TestUnholy-Settings-Human-Unholy P3 -Basic-uh_2h_ss-NoBuffs-ShortSingleTarget" + value: { + dps: 6556.62368 + tps: 3463.71404 + hps: 138.56 + } +} +dps_results: { + key: "TestUnholy-Settings-Human-Unholy P3 -Basic-uh_dnd_aoe-FullBuffs-LongMultiTarget" + value: { + dps: 58938.04669 + tps: 61024.06571 + hps: 235.80803 + } +} +dps_results: { + key: "TestUnholy-Settings-Human-Unholy P3 -Basic-uh_dnd_aoe-FullBuffs-LongSingleTarget" + value: { + dps: 11160.96856 + tps: 7450.27485 + hps: 235.80803 + } +} +dps_results: { + key: "TestUnholy-Settings-Human-Unholy P3 -Basic-uh_dnd_aoe-FullBuffs-ShortSingleTarget" + value: { + dps: 16118.92387 + tps: 8655.00378 + hps: 336.86861 + } +} +dps_results: { + key: "TestUnholy-Settings-Human-Unholy P3 -Basic-uh_dnd_aoe-NoBuffs-LongMultiTarget" + value: { + dps: 35066.62671 + tps: 37445.68202 + hps: 155.74144 + } +} +dps_results: { + key: "TestUnholy-Settings-Human-Unholy P3 -Basic-uh_dnd_aoe-NoBuffs-LongSingleTarget" + value: { + dps: 5693.91545 + tps: 4174.17306 + hps: 155.1872 + } +} +dps_results: { + key: "TestUnholy-Settings-Human-Unholy P3 -Basic-uh_dnd_aoe-NoBuffs-ShortSingleTarget" + value: { + dps: 7141.87591 + tps: 4450.32827 + hps: 221.696 + } +} +dps_results: { + key: "TestUnholy-Settings-Human-Unholy P3 -Basic-unholy_dw_ss-FullBuffs-LongMultiTarget" + value: { + dps: 36076.66664 + tps: 43074.02535 + hps: 235.80803 + } +} +dps_results: { + key: "TestUnholy-Settings-Human-Unholy P3 -Basic-unholy_dw_ss-FullBuffs-LongSingleTarget" + value: { + dps: 11360.34886 + tps: 7623.56434 + hps: 235.80803 + } +} +dps_results: { + key: "TestUnholy-Settings-Human-Unholy P3 -Basic-unholy_dw_ss-FullBuffs-ShortSingleTarget" + value: { + dps: 16203.53878 + tps: 8807.56953 + hps: 336.86861 + } +} +dps_results: { + key: "TestUnholy-Settings-Human-Unholy P3 -Basic-unholy_dw_ss-NoBuffs-LongMultiTarget" + value: { + dps: 18614.99006 + tps: 22823.77288 + hps: 155.74144 + } +} +dps_results: { + key: "TestUnholy-Settings-Human-Unholy P3 -Basic-unholy_dw_ss-NoBuffs-LongSingleTarget" + value: { + dps: 5829.87154 + tps: 4285.00282 + hps: 155.1872 + } +} +dps_results: { + key: "TestUnholy-Settings-Human-Unholy P3 -Basic-unholy_dw_ss-NoBuffs-ShortSingleTarget" + value: { + dps: 7217.21711 + tps: 4501.57345 + hps: 221.696 + } +} dps_results: { key: "TestUnholy-Settings-Orc-Unholy P3 -Basic--FullBuffs-LongMultiTarget" value: { @@ -1123,6 +1267,150 @@ dps_results: { hps: 153.88596 } } +dps_results: { + key: "TestUnholy-Settings-Orc-Unholy P3 -Basic-uh_2h_ss-FullBuffs-LongMultiTarget" + value: { + dps: 14279.05441 + tps: 9300.01857 + hps: 42.12697 + } +} +dps_results: { + key: "TestUnholy-Settings-Orc-Unholy P3 -Basic-uh_2h_ss-FullBuffs-LongSingleTarget" + value: { + dps: 10296.72537 + tps: 5969.30762 + hps: 42.12697 + } +} +dps_results: { + key: "TestUnholy-Settings-Orc-Unholy P3 -Basic-uh_2h_ss-FullBuffs-ShortSingleTarget" + value: { + dps: 15435.03419 + tps: 7137.9645 + hps: 210.63484 + } +} +dps_results: { + key: "TestUnholy-Settings-Orc-Unholy P3 -Basic-uh_2h_ss-NoBuffs-LongMultiTarget" + value: { + dps: 6769.67013 + tps: 4575.20315 + hps: 27.7272 + } +} +dps_results: { + key: "TestUnholy-Settings-Orc-Unholy P3 -Basic-uh_2h_ss-NoBuffs-LongSingleTarget" + value: { + dps: 5081.69311 + tps: 3167.07248 + hps: 27.7272 + } +} +dps_results: { + key: "TestUnholy-Settings-Orc-Unholy P3 -Basic-uh_2h_ss-NoBuffs-ShortSingleTarget" + value: { + dps: 6701.94323 + tps: 3493.82943 + hps: 138.636 + } +} +dps_results: { + key: "TestUnholy-Settings-Orc-Unholy P3 -Basic-uh_dnd_aoe-FullBuffs-LongMultiTarget" + value: { + dps: 59358.52039 + tps: 61324.18765 + hps: 235.91102 + } +} +dps_results: { + key: "TestUnholy-Settings-Orc-Unholy P3 -Basic-uh_dnd_aoe-FullBuffs-LongSingleTarget" + value: { + dps: 11307.88621 + tps: 7450.84128 + hps: 235.91102 + } +} +dps_results: { + key: "TestUnholy-Settings-Orc-Unholy P3 -Basic-uh_dnd_aoe-FullBuffs-ShortSingleTarget" + value: { + dps: 16449.84874 + tps: 8693.0837 + hps: 337.01574 + } +} +dps_results: { + key: "TestUnholy-Settings-Orc-Unholy P3 -Basic-uh_dnd_aoe-NoBuffs-LongMultiTarget" + value: { + dps: 35186.81459 + tps: 37536.48079 + hps: 155.54959 + } +} +dps_results: { + key: "TestUnholy-Settings-Orc-Unholy P3 -Basic-uh_dnd_aoe-NoBuffs-LongSingleTarget" + value: { + dps: 5755.08349 + tps: 4186.31129 + hps: 155.27232 + } +} +dps_results: { + key: "TestUnholy-Settings-Orc-Unholy P3 -Basic-uh_dnd_aoe-NoBuffs-ShortSingleTarget" + value: { + dps: 7281.92943 + tps: 4475.49171 + hps: 221.8176 + } +} +dps_results: { + key: "TestUnholy-Settings-Orc-Unholy P3 -Basic-unholy_dw_ss-FullBuffs-LongMultiTarget" + value: { + dps: 36317.66084 + tps: 43273.70413 + hps: 235.91102 + } +} +dps_results: { + key: "TestUnholy-Settings-Orc-Unholy P3 -Basic-unholy_dw_ss-FullBuffs-LongSingleTarget" + value: { + dps: 11497.76882 + tps: 7626.07328 + hps: 235.91102 + } +} +dps_results: { + key: "TestUnholy-Settings-Orc-Unholy P3 -Basic-unholy_dw_ss-FullBuffs-ShortSingleTarget" + value: { + dps: 16545.2745 + tps: 8850.9478 + hps: 337.01574 + } +} +dps_results: { + key: "TestUnholy-Settings-Orc-Unholy P3 -Basic-unholy_dw_ss-NoBuffs-LongMultiTarget" + value: { + dps: 18706.21982 + tps: 22906.43598 + hps: 155.82686 + } +} +dps_results: { + key: "TestUnholy-Settings-Orc-Unholy P3 -Basic-unholy_dw_ss-NoBuffs-LongSingleTarget" + value: { + dps: 5875.76306 + tps: 4283.25783 + hps: 155.27232 + } +} +dps_results: { + key: "TestUnholy-Settings-Orc-Unholy P3 -Basic-unholy_dw_ss-NoBuffs-ShortSingleTarget" + value: { + dps: 7361.01775 + tps: 4536.88219 + hps: 221.8176 + } +} dps_results: { key: "TestUnholy-SwitchInFrontOfTarget-Default" value: { diff --git a/sim/deathknight/dps/dps_deathknight_test.go b/sim/deathknight/dps/dps_deathknight_test.go index 73f176fc6d..321b325df6 100644 --- a/sim/deathknight/dps/dps_deathknight_test.go +++ b/sim/deathknight/dps/dps_deathknight_test.go @@ -1,6 +1,8 @@ package dps import ( + "log" + "os" "testing" _ "github.com/wowsims/wotlk/sim/common" // imported to get item effects included. @@ -12,6 +14,16 @@ func init() { RegisterDpsDeathknight() } +func GetAplRotation(dir string, file string) core.RotationCombo { + filePath := dir + "/" + file + ".json" + data, err := os.ReadFile(filePath) + if err != nil { + log.Fatalf("failed to load apl json file: %s, %s", filePath, err) + } + + return core.RotationCombo{Label: file, Rotation: core.APLRotationFromJsonString(string(data))} +} + func TestBlood(t *testing.T) { core.RunTestSuite(t, t.Name(), core.FullCharacterTestSuiteGenerator(core.CharacterSuiteConfig{ Class: proto.Class_ClassDeathknight, @@ -23,16 +35,12 @@ func TestBlood(t *testing.T) { Glyphs: BloodDefaultGlyphs, Consumes: FullConsumes, SpecOptions: core.SpecOptionsCombo{Label: "Basic", SpecOptions: PlayerOptionsBlood}, - - ItemFilter: core.ItemFilter{ - ArmorType: proto.ArmorType_ArmorTypePlate, - - WeaponTypes: []proto.WeaponType{ - proto.WeaponType_WeaponTypeAxe, - proto.WeaponType_WeaponTypeSword, - proto.WeaponType_WeaponTypeMace, - }, + OtherRotations: []core.RotationCombo{ + GetAplRotation("../../../ui/deathknight/apls", "blood_pesti"), + GetAplRotation("../../../ui/deathknight/apls", "blood_pesti_dd"), }, + + ItemFilter: ItemFilter, })) } @@ -48,15 +56,13 @@ func TestUnholy(t *testing.T) { Consumes: FullConsumes, SpecOptions: core.SpecOptionsCombo{Label: "Basic", SpecOptions: PlayerOptionsUnholy}, - ItemFilter: core.ItemFilter{ - ArmorType: proto.ArmorType_ArmorTypePlate, - - WeaponTypes: []proto.WeaponType{ - proto.WeaponType_WeaponTypeAxe, - proto.WeaponType_WeaponTypeSword, - proto.WeaponType_WeaponTypeMace, - }, + OtherRotations: []core.RotationCombo{ + GetAplRotation("../../../ui/deathknight/apls", "uh_2h_ss"), + GetAplRotation("../../../ui/deathknight/apls", "uh_dnd_aoe"), + GetAplRotation("../../../ui/deathknight/apls", "unholy_dw_ss"), }, + + ItemFilter: ItemFilter, })) } @@ -75,15 +81,12 @@ func TestFrost(t *testing.T) { {Label: "Desync", SpecOptions: PlayerOptionsDesyncFrost}, }, - ItemFilter: core.ItemFilter{ - ArmorType: proto.ArmorType_ArmorTypePlate, - - WeaponTypes: []proto.WeaponType{ - proto.WeaponType_WeaponTypeAxe, - proto.WeaponType_WeaponTypeSword, - proto.WeaponType_WeaponTypeMace, - }, + OtherRotations: []core.RotationCombo{ + GetAplRotation("../../../ui/deathknight/apls", "frost_bl_pesti"), + GetAplRotation("../../../ui/deathknight/apls", "frost_uh_pesti"), }, + + ItemFilter: ItemFilter, })) } @@ -98,16 +101,11 @@ func TestFrostUH(t *testing.T) { Glyphs: FrostUHDefaultGlyphs, Consumes: FullConsumes, SpecOptions: core.SpecOptionsCombo{Label: "Basic", SpecOptions: PlayerOptionsFrost}, - - ItemFilter: core.ItemFilter{ - ArmorType: proto.ArmorType_ArmorTypePlate, - - WeaponTypes: []proto.WeaponType{ - proto.WeaponType_WeaponTypeAxe, - proto.WeaponType_WeaponTypeSword, - proto.WeaponType_WeaponTypeMace, - }, + OtherRotations: []core.RotationCombo{ + GetAplRotation("../../../ui/deathknight/apls", "frost_uh_pesti"), }, + + ItemFilter: ItemFilter, })) } @@ -221,6 +219,16 @@ var FullConsumes = &proto.Consumes{ Food: proto.Food_FoodDragonfinFilet, } +var ItemFilter = core.ItemFilter{ + ArmorType: proto.ArmorType_ArmorTypePlate, + + WeaponTypes: []proto.WeaponType{ + proto.WeaponType_WeaponTypeAxe, + proto.WeaponType_WeaponTypeSword, + proto.WeaponType_WeaponTypeMace, + }, +} + var BloodP3Gear = core.EquipmentSpecFromJsonString(`{"items": [ {"id":48493,"enchant":3817,"gems":[41285,40142]}, {"id":47458,"gems":[40142]}, From cafee65eb1b21e9ddcffdf4ee12cb3b1968749ec Mon Sep 17 00:00:00 2001 From: jarves Date: Mon, 25 Sep 2023 16:35:52 -0500 Subject: [PATCH 08/21] =?UTF-8?q?=EF=BB=BFshaman:=20apl=20tests?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: jarves --- sim/shaman/elemental/TestElemental.results | 669 +++++++++--------- sim/shaman/elemental/elemental_test.go | 37 +- .../enhancement/TestEnhancement.results | 264 +++++-- sim/shaman/enhancement/enhancement_test.go | 78 +- 4 files changed, 577 insertions(+), 471 deletions(-) diff --git a/sim/shaman/elemental/TestElemental.results b/sim/shaman/elemental/TestElemental.results index 921ea0f59e..0b1003fea0 100644 --- a/sim/shaman/elemental/TestElemental.results +++ b/sim/shaman/elemental/TestElemental.results @@ -49,12 +49,12 @@ stat_weights_results: { weights: 0 weights: 0 weights: 0 - weights: 0.34984 + weights: 4.59594 weights: 0 - weights: 1.68089 + weights: 1.60793 weights: 0 weights: 0 - weights: 1.01093 + weights: 1.62458 weights: 0 weights: 0 weights: 0 @@ -91,1107 +91,1104 @@ stat_weights_results: { dps_results: { key: "TestElemental-AllItems-Althor'sAbacus-50359" value: { - dps: 7216.60799 - tps: 4061.69912 + dps: 6824.31985 + tps: 3811.71432 } } dps_results: { key: "TestElemental-AllItems-Althor'sAbacus-50366" value: { - dps: 7252.00273 - tps: 4081.38912 + dps: 6857.75793 + tps: 3830.23977 } } dps_results: { key: "TestElemental-AllItems-AustereEarthsiegeDiamond" value: { - dps: 7245.80469 - tps: 4070.58626 + dps: 6859.58758 + tps: 3820.83126 } } dps_results: { key: "TestElemental-AllItems-Bandit'sInsignia-40371" value: { - dps: 6928.62349 - tps: 3901.49416 + dps: 6552.2555 + tps: 3660.98451 } } dps_results: { key: "TestElemental-AllItems-BaubleofTrueBlood-50354" value: { - dps: 6952.08193 - tps: 3928.98077 - hps: 92.48336 + dps: 6552.2555 + tps: 3660.98451 } } dps_results: { key: "TestElemental-AllItems-BaubleofTrueBlood-50726" value: { - dps: 6952.08193 - tps: 3928.98077 - hps: 92.48336 + dps: 6552.2555 + tps: 3660.98451 } } dps_results: { key: "TestElemental-AllItems-BeamingEarthsiegeDiamond" value: { - dps: 7257.0007 - tps: 4076.81545 + dps: 6993.23316 + tps: 3903.5046 } } dps_results: { key: "TestElemental-AllItems-Beast-tamer'sShoulders-30892" value: { - dps: 7042.9928 - tps: 3975.10955 + dps: 6563.34036 + tps: 3667.07302 } } dps_results: { key: "TestElemental-AllItems-Bizuri'sTotemofShatteredIce-50458" value: { - dps: 7632.92263 - tps: 4324.97942 + dps: 7008.41449 + tps: 3928.78158 } } dps_results: { key: "TestElemental-AllItems-BlackBruise-50035" value: { - dps: 6414.66673 - tps: 3614.56085 + dps: 5892.27209 + tps: 3283.88814 } } dps_results: { key: "TestElemental-AllItems-BlackBruise-50692" value: { - dps: 6414.66673 - tps: 3614.56085 + dps: 5892.27209 + tps: 3283.88814 } } dps_results: { key: "TestElemental-AllItems-BlessedGarboftheUndeadSlayer" value: { - dps: 5432.07046 - tps: 3044.22902 + dps: 4806.81676 + tps: 2651.66646 } } dps_results: { key: "TestElemental-AllItems-BlessedRegaliaofUndeadCleansing" value: { - dps: 5759.03018 - tps: 3234.29797 + dps: 4971.47468 + tps: 2737.2784 } } dps_results: { key: "TestElemental-AllItems-BracingEarthsiegeDiamond" value: { - dps: 7286.47359 - tps: 4011.82908 + dps: 6898.07984 + tps: 3765.46 } } dps_results: { key: "TestElemental-AllItems-Bryntroll,theBoneArbiter-50415" value: { - dps: 7449.28149 - tps: 4195.60134 + dps: 7048.19523 + tps: 3937.21955 } } dps_results: { key: "TestElemental-AllItems-Bryntroll,theBoneArbiter-50709" value: { - dps: 7449.28149 - tps: 4195.60134 + dps: 7048.19523 + tps: 3937.21955 } } dps_results: { key: "TestElemental-AllItems-ChaoticSkyflareDiamond" value: { - dps: 7449.28149 - tps: 4195.60134 + dps: 7048.19523 + tps: 3937.21955 } } dps_results: { key: "TestElemental-AllItems-CorpseTongueCoin-50349" value: { - dps: 6928.62349 - tps: 3901.49416 + dps: 6552.2555 + tps: 3660.98451 } } dps_results: { key: "TestElemental-AllItems-CorpseTongueCoin-50352" value: { - dps: 6928.62349 - tps: 3901.49416 + dps: 6552.2555 + tps: 3660.98451 } } dps_results: { key: "TestElemental-AllItems-CorrodedSkeletonKey-50356" value: { - dps: 6928.62349 - tps: 3901.49416 - hps: 64 + dps: 6552.2555 + tps: 3660.98451 } } dps_results: { key: "TestElemental-AllItems-DarkmoonCard:Berserker!-42989" value: { - dps: 7036.6579 - tps: 3965.71482 + dps: 6750.80157 + tps: 3781.11799 } } dps_results: { key: "TestElemental-AllItems-DarkmoonCard:Death-42990" value: { - dps: 7090.59415 - tps: 4022.88423 + dps: 6772.27126 + tps: 3815.32175 } } dps_results: { key: "TestElemental-AllItems-DarkmoonCard:Greatness-44255" value: { - dps: 6994.50116 - tps: 3938.95694 + dps: 7013.11655 + tps: 3935.90191 } } dps_results: { key: "TestElemental-AllItems-DeadlyGladiator'sTotemofSurvival-42602" value: { - dps: 7388.10276 - tps: 4153.65601 + dps: 6993.10246 + tps: 3898.79155 } } dps_results: { key: "TestElemental-AllItems-Death'sChoice-47464" value: { - dps: 6928.62349 - tps: 3901.49416 + dps: 6552.2555 + tps: 3660.98451 } } dps_results: { key: "TestElemental-AllItems-DeathKnight'sAnguish-38212" value: { - dps: 6956.1527 - tps: 3917.38136 + dps: 6619.45661 + tps: 3700.75272 } } dps_results: { key: "TestElemental-AllItems-Deathbringer'sWill-50362" value: { - dps: 7005.7992 - tps: 3947.90809 + dps: 6553.31942 + tps: 3659.88719 } } dps_results: { key: "TestElemental-AllItems-Deathbringer'sWill-50363" value: { - dps: 7036.74824 - tps: 3974.99945 + dps: 6587.46723 + tps: 3691.2039 } } dps_results: { key: "TestElemental-AllItems-Defender'sCode-40257" value: { - dps: 6928.62349 - tps: 3901.49416 + dps: 6552.2555 + tps: 3660.98451 } } dps_results: { key: "TestElemental-AllItems-DestructiveSkyflareDiamond" value: { - dps: 7261.35541 - tps: 4079.16115 + dps: 6880.01528 + tps: 3833.15929 } } dps_results: { key: "TestElemental-AllItems-DislodgedForeignObject-50348" value: { - dps: 7576.79747 - tps: 4295.02298 + dps: 6907.02732 + tps: 3875.8488 } } dps_results: { key: "TestElemental-AllItems-DislodgedForeignObject-50353" value: { - dps: 7509.96645 - tps: 4266.48849 + dps: 6852.32284 + tps: 3852.49212 } } dps_results: { key: "TestElemental-AllItems-EarthshatterBattlegear" value: { - dps: 5698.68228 - tps: 3192.77732 + dps: 5208.03352 + tps: 2885.57549 } } dps_results: { key: "TestElemental-AllItems-EarthshatterGarb" value: { - dps: 6637.12217 - tps: 3726.51995 + dps: 6634.22367 + tps: 3709.44907 } } dps_results: { key: "TestElemental-AllItems-EffulgentSkyflareDiamond" value: { - dps: 7245.80469 - tps: 4070.58626 + dps: 6859.58758 + tps: 3820.83126 } } dps_results: { key: "TestElemental-AllItems-EmberSkyflareDiamond" value: { - dps: 7291.81829 - tps: 4096.23904 + dps: 7015.63897 + tps: 3915.10534 } } dps_results: { key: "TestElemental-AllItems-EnigmaticSkyflareDiamond" value: { - dps: 7257.0007 - tps: 4076.70046 + dps: 6868.08152 + tps: 3825.80352 } } dps_results: { key: "TestElemental-AllItems-EnigmaticStarflareDiamond" value: { - dps: 7254.51461 - tps: 4075.22548 + dps: 6868.9194 + tps: 3825.97876 } } dps_results: { key: "TestElemental-AllItems-EphemeralSnowflake-50260" value: { - dps: 7076.02437 - tps: 4002.80954 + dps: 6552.2555 + tps: 3660.98451 } } dps_results: { key: "TestElemental-AllItems-EssenceofGossamer-37220" value: { - dps: 6928.62349 - tps: 3901.49416 + dps: 6552.2555 + tps: 3660.98451 } } dps_results: { key: "TestElemental-AllItems-EternalEarthsiegeDiamond" value: { - dps: 7245.80469 - tps: 4070.58626 + dps: 6859.58758 + tps: 3820.83126 } } dps_results: { key: "TestElemental-AllItems-ExtractofNecromanticPower-40373" value: { - dps: 7135.92696 - tps: 4048.05275 + dps: 6839.67298 + tps: 3853.43829 } } dps_results: { key: "TestElemental-AllItems-EyeoftheBroodmother-45308" value: { - dps: 7226.71979 - tps: 4074.51019 + dps: 6912.06176 + tps: 3872.32941 } } dps_results: { key: "TestElemental-AllItems-Figurine-SapphireOwl-42413" value: { - dps: 6938.27333 - tps: 3907.83393 + dps: 6734.89926 + tps: 3768.33478 } } dps_results: { key: "TestElemental-AllItems-ForethoughtTalisman-40258" value: { - dps: 7107.20606 - tps: 4000.83914 + dps: 6720.9658 + tps: 3754.45383 } } dps_results: { key: "TestElemental-AllItems-ForgeEmber-37660" value: { - dps: 7152.9694 - tps: 4028.54789 + dps: 6816.30748 + tps: 3812.20169 } } dps_results: { key: "TestElemental-AllItems-ForlornSkyflareDiamond" value: { - dps: 7286.47359 - tps: 4093.17748 + dps: 6898.07984 + tps: 3842.10755 } } dps_results: { key: "TestElemental-AllItems-ForlornStarflareDiamond" value: { - dps: 7278.33981 - tps: 4088.65923 + dps: 6890.38139 + tps: 3837.8523 } } dps_results: { key: "TestElemental-AllItems-FrostWitch'sBattlegear" value: { - dps: 6042.42831 - tps: 3391.41259 + dps: 5721.11019 + tps: 3180.81722 } } dps_results: { key: "TestElemental-AllItems-FrostWitch'sRegalia" value: { - dps: 7432.83605 - tps: 4157.62065 + dps: 7439.38361 + tps: 4146.47817 } } dps_results: { key: "TestElemental-AllItems-FuriousGladiator'sTotemofSurvival-42603" value: { - dps: 7403.69808 - tps: 4161.90591 + dps: 7007.89772 + tps: 3906.56508 } } dps_results: { key: "TestElemental-AllItems-FuryoftheFiveFlights-40431" value: { - dps: 6928.62349 - tps: 3901.49416 + dps: 6552.2555 + tps: 3660.98451 } } dps_results: { key: "TestElemental-AllItems-FuturesightRune-38763" value: { - dps: 7028.37231 - tps: 3956.98415 + dps: 6646.49008 + tps: 3713.1926 } } dps_results: { key: "TestElemental-AllItems-Gladiator'sEarthshaker" value: { - dps: 5613.6985 - tps: 3164.55535 + dps: 5600.13359 + tps: 3139.93184 } } dps_results: { key: "TestElemental-AllItems-Gladiator'sWartide" value: { - dps: 6635.98755 - tps: 3726.67434 + dps: 6419.46998 + tps: 3577.66691 } } dps_results: { key: "TestElemental-AllItems-GlowingTwilightScale-54573" value: { - dps: 7234.30536 - tps: 4071.54412 + dps: 6841.03889 + tps: 3820.97705 } } dps_results: { key: "TestElemental-AllItems-GlowingTwilightScale-54589" value: { - dps: 7274.52666 - tps: 4093.91911 + dps: 6879.03671 + tps: 3842.02869 } } dps_results: { key: "TestElemental-AllItems-GnomishLightningGenerator-41121" value: { - dps: 7074.99348 - tps: 4014.33841 + dps: 6697.166 + tps: 3747.77442 } } dps_results: { key: "TestElemental-AllItems-HatefulGladiator'sTotemofSurvival-42601" value: { - dps: 7349.87436 - tps: 4131.77644 + dps: 6957.08806 + tps: 3878.23928 } } dps_results: { key: "TestElemental-AllItems-Heartpierce-49982" value: { - dps: 7449.28149 - tps: 4195.60134 + dps: 7048.19523 + tps: 3937.21955 } } dps_results: { key: "TestElemental-AllItems-Heartpierce-50641" value: { - dps: 7449.28149 - tps: 4195.60134 + dps: 7048.19523 + tps: 3937.21955 } } dps_results: { key: "TestElemental-AllItems-ImpassiveSkyflareDiamond" value: { - dps: 7257.0007 - tps: 4076.70046 + dps: 6868.08152 + tps: 3825.80352 } } dps_results: { key: "TestElemental-AllItems-ImpassiveStarflareDiamond" value: { - dps: 7254.51461 - tps: 4075.22548 + dps: 6868.9194 + tps: 3825.97876 } } dps_results: { key: "TestElemental-AllItems-IncisorFragment-37723" value: { - dps: 6928.62349 - tps: 3901.49416 + dps: 6552.2555 + tps: 3660.98451 } } dps_results: { key: "TestElemental-AllItems-InsightfulEarthsiegeDiamond" value: { - dps: 7251.11902 - tps: 4079.04645 + dps: 7248.68527 + tps: 4064.19681 } } dps_results: { key: "TestElemental-AllItems-InvigoratingEarthsiegeDiamond" value: { - dps: 7245.80469 - tps: 4070.58626 + dps: 6859.58758 + tps: 3820.83126 } } dps_results: { key: "TestElemental-AllItems-LastWord-50179" value: { - dps: 7449.28149 - tps: 4195.60134 + dps: 7048.19523 + tps: 3937.21955 } } dps_results: { key: "TestElemental-AllItems-LastWord-50708" value: { - dps: 7449.28149 - tps: 4195.60134 + dps: 7048.19523 + tps: 3937.21955 } } dps_results: { key: "TestElemental-AllItems-Lavanthor'sTalisman-37872" value: { - dps: 6928.62349 - tps: 3901.49416 + dps: 6552.2555 + tps: 3660.98451 } } dps_results: { key: "TestElemental-AllItems-MajesticDragonFigurine-40430" value: { - dps: 6928.62349 - tps: 3901.49416 + dps: 6552.2555 + tps: 3660.98451 } } dps_results: { key: "TestElemental-AllItems-MeteoriteWhetstone-37390" value: { - dps: 7004.81101 - tps: 3946.91676 + dps: 6677.48559 + tps: 3735.8891 } } dps_results: { key: "TestElemental-AllItems-NevermeltingIceCrystal-50259" value: { - dps: 7146.53841 - tps: 4024.41021 + dps: 6720.9658 + tps: 3754.45383 } } dps_results: { key: "TestElemental-AllItems-Nibelung-49992" value: { - dps: 7449.28149 - tps: 4195.60134 + dps: 7048.19523 + tps: 3937.21955 } } dps_results: { key: "TestElemental-AllItems-Nibelung-50648" value: { - dps: 7449.28149 - tps: 4195.60134 + dps: 7048.19523 + tps: 3937.21955 } } dps_results: { key: "TestElemental-AllItems-OfferingofSacrifice-37638" value: { - dps: 6928.62349 - tps: 3901.49416 + dps: 6552.2555 + tps: 3660.98451 } } dps_results: { key: "TestElemental-AllItems-PersistentEarthshatterDiamond" value: { - dps: 7245.80469 - tps: 4070.58626 + dps: 6859.58758 + tps: 3820.83126 } } dps_results: { key: "TestElemental-AllItems-PersistentEarthsiegeDiamond" value: { - dps: 7245.80469 - tps: 4070.58626 + dps: 6859.58758 + tps: 3820.83126 } } dps_results: { key: "TestElemental-AllItems-PetrifiedScarab-21685" value: { - dps: 6928.62349 - tps: 3901.49416 + dps: 6552.2555 + tps: 3660.98451 } } dps_results: { key: "TestElemental-AllItems-PetrifiedTwilightScale-54571" value: { - dps: 6928.62349 - tps: 3901.49416 + dps: 6552.2555 + tps: 3660.98451 } } dps_results: { key: "TestElemental-AllItems-PetrifiedTwilightScale-54591" value: { - dps: 6928.62349 - tps: 3901.49416 + dps: 6552.2555 + tps: 3660.98451 } } dps_results: { key: "TestElemental-AllItems-PowerfulEarthshatterDiamond" value: { - dps: 7245.80469 - tps: 4070.58626 + dps: 6859.58758 + tps: 3820.83126 } } dps_results: { key: "TestElemental-AllItems-PowerfulEarthsiegeDiamond" value: { - dps: 7245.80469 - tps: 4070.58626 + dps: 6859.58758 + tps: 3820.83126 } } dps_results: { key: "TestElemental-AllItems-PurifiedShardoftheGods" value: { - dps: 6928.62349 - tps: 3901.49416 + dps: 6552.2555 + tps: 3660.98451 } } dps_results: { key: "TestElemental-AllItems-ReignoftheDead-47316" value: { - dps: 7427.03004 - tps: 4275.75938 + dps: 7062.6243 + tps: 4039.04762 } } dps_results: { key: "TestElemental-AllItems-ReignoftheDead-47477" value: { - dps: 7480.22656 - tps: 4316.03492 + dps: 7113.76002 + tps: 4077.85853 } } dps_results: { key: "TestElemental-AllItems-RelentlessEarthsiegeDiamond" value: { - dps: 7437.11071 - tps: 4188.95694 + dps: 7038.92892 + tps: 3931.77696 } } dps_results: { key: "TestElemental-AllItems-RelentlessGladiator'sTotemofSurvival-42604" value: { - dps: 7422.63525 - tps: 4171.92365 + dps: 7025.86339 + tps: 3916.00438 } } dps_results: { key: "TestElemental-AllItems-RevitalizingSkyflareDiamond" value: { - dps: 7245.80469 - tps: 4070.52481 + dps: 6963.82226 + tps: 3883.6458 } } dps_results: { key: "TestElemental-AllItems-RuneofRepulsion-40372" value: { - dps: 6928.62349 - tps: 3901.49416 + dps: 6552.2555 + tps: 3660.98451 } } dps_results: { key: "TestElemental-AllItems-SavageGladiator'sTotemofSurvival-42594" value: { - dps: 7343.46337 - tps: 4128.65225 + dps: 6950.96518 + tps: 3875.28518 } } dps_results: { key: "TestElemental-AllItems-SealofthePantheon-36993" value: { - dps: 6928.62349 - tps: 3901.49416 + dps: 6552.2555 + tps: 3660.98451 } } dps_results: { key: "TestElemental-AllItems-Shadowmourne-49623" value: { - dps: 7449.28149 - tps: 4195.60134 + dps: 7048.19523 + tps: 3937.21955 } } dps_results: { key: "TestElemental-AllItems-ShinyShardoftheGods" value: { - dps: 6928.62349 - tps: 3901.49416 + dps: 6552.2555 + tps: 3660.98451 } } dps_results: { key: "TestElemental-AllItems-Sindragosa'sFlawlessFang-50361" value: { - dps: 6928.62349 - tps: 3901.49416 + dps: 6552.2555 + tps: 3660.98451 } } dps_results: { key: "TestElemental-AllItems-SkycallTotem-33506" value: { - dps: 7335.3942 - tps: 4132.12405 + dps: 6993.73798 + tps: 3913.84006 } } dps_results: { key: "TestElemental-AllItems-SkyshatterHarness" value: { - dps: 4780.13067 - tps: 2682.16334 + dps: 4214.74901 + tps: 2324.20457 } } dps_results: { key: "TestElemental-AllItems-SkyshatterRegalia" value: { - dps: 5634.1235 - tps: 3155.34125 + dps: 5113.25659 + tps: 2825.94305 } } dps_results: { key: "TestElemental-AllItems-SliverofPureIce-50339" value: { - dps: 7182.8221 - tps: 4049.28215 + dps: 6792.40169 + tps: 3794.03093 } } dps_results: { key: "TestElemental-AllItems-SliverofPureIce-50346" value: { - dps: 7214.99914 - tps: 4067.86548 + dps: 6822.79994 + tps: 3810.87225 } } dps_results: { key: "TestElemental-AllItems-SoulPreserver-37111" value: { - dps: 7049.28739 - tps: 3968.61914 + dps: 6666.24894 + tps: 3724.13946 } } dps_results: { key: "TestElemental-AllItems-SouloftheDead-40382" value: { - dps: 7026.29463 - tps: 3966.72442 + dps: 7045.78456 + tps: 3965.53172 } } dps_results: { key: "TestElemental-AllItems-SparkofLife-37657" value: { - dps: 7045.99621 - tps: 3974.31222 + dps: 6903.98653 + tps: 3879.48604 } } dps_results: { key: "TestElemental-AllItems-SphereofRedDragon'sBlood-37166" value: { - dps: 7160.26903 - tps: 4035.90335 + dps: 6867.94459 + tps: 3846.57424 } } dps_results: { key: "TestElemental-AllItems-Stonebreaker'sTotem-33507" value: { - dps: 7310.12618 - tps: 4112.40648 + dps: 6919.12618 + tps: 3859.92387 } } dps_results: { key: "TestElemental-AllItems-StormshroudArmor" value: { - dps: 5226.94083 - tps: 2918.11378 + dps: 4598.76755 + tps: 2518.07337 } } dps_results: { key: "TestElemental-AllItems-SwiftSkyflareDiamond" value: { - dps: 7245.80469 - tps: 4070.58626 + dps: 6859.58758 + tps: 3820.83126 } } dps_results: { key: "TestElemental-AllItems-SwiftStarflareDiamond" value: { - dps: 7245.80469 - tps: 4070.58626 + dps: 6859.58758 + tps: 3820.83126 } } dps_results: { key: "TestElemental-AllItems-SwiftWindfireDiamond" value: { - dps: 7245.80469 - tps: 4070.58626 + dps: 6859.58758 + tps: 3820.83126 } } dps_results: { key: "TestElemental-AllItems-TalismanofTrollDivinity-37734" value: { - dps: 6928.62349 - tps: 3901.49416 + dps: 6552.2555 + tps: 3660.98451 } } dps_results: { key: "TestElemental-AllItems-TearsoftheVanquished-47215" value: { - dps: 6953.25119 - tps: 3914.87036 + dps: 6868.28109 + tps: 3847.51006 } } dps_results: { key: "TestElemental-AllItems-TheFistsofFury" value: { - dps: 6589.78349 - tps: 3702.69462 + dps: 5903.76341 + tps: 3270.18423 } } dps_results: { key: "TestElemental-AllItems-TheGeneral'sHeart-45507" value: { - dps: 6928.62349 - tps: 3901.49416 + dps: 6552.2555 + tps: 3660.98451 } } dps_results: { key: "TestElemental-AllItems-Thrall'sBattlegear" value: { - dps: 5995.77007 - tps: 3378.64913 + dps: 5763.90531 + tps: 3223.73654 } } dps_results: { key: "TestElemental-AllItems-Thrall'sRegalia" value: { - dps: 7105.0829 - tps: 4022.80613 + dps: 6891.34304 + tps: 3891.15045 } } dps_results: { key: "TestElemental-AllItems-ThunderingSkyflareDiamond" value: { - dps: 7245.80469 - tps: 4070.58626 + dps: 6859.58758 + tps: 3820.83126 } } dps_results: { key: "TestElemental-AllItems-TidefuryRaiment" value: { - dps: 5290.80177 - tps: 2957.01164 + dps: 4684.04483 + tps: 2571.13876 } } dps_results: { key: "TestElemental-AllItems-TinyAbominationinaJar-50351" value: { - dps: 7199.6117 - tps: 4058.93164 + dps: 6818.03799 + tps: 3812.31685 } } dps_results: { key: "TestElemental-AllItems-TinyAbominationinaJar-50706" value: { - dps: 7199.6117 - tps: 4058.93164 + dps: 6818.03799 + tps: 3812.31685 } } dps_results: { key: "TestElemental-AllItems-TirelessSkyflareDiamond" value: { - dps: 7286.47359 - tps: 4093.17748 + dps: 6898.07984 + tps: 3842.10755 } } dps_results: { key: "TestElemental-AllItems-TirelessStarflareDiamond" value: { - dps: 7278.33981 - tps: 4088.65923 + dps: 6890.38139 + tps: 3837.8523 } } dps_results: { key: "TestElemental-AllItems-TomeofArcanePhenomena-36972" value: { - dps: 7135.53047 - tps: 4030.85077 + dps: 6655.60956 + tps: 3718.245 } } dps_results: { key: "TestElemental-AllItems-TotemofElectrifyingWind-47666" value: { - dps: 7611.19683 - tps: 4302.94948 + dps: 6998.07186 + tps: 3917.80867 } } dps_results: { key: "TestElemental-AllItems-TotemofQuakingEarth-47667" value: { - dps: 7310.12618 - tps: 4112.40648 + dps: 6919.12618 + tps: 3859.92387 } } dps_results: { key: "TestElemental-AllItems-TotemoftheAvalanche-50463" value: { - dps: 7310.12618 - tps: 4112.40648 + dps: 6919.12618 + tps: 3859.92387 } } dps_results: { key: "TestElemental-AllItems-TotemoftheElementalPlane-40708" value: { - dps: 7349.8638 - tps: 4134.72973 + dps: 6913.12089 + tps: 3855.84384 } } dps_results: { key: "TestElemental-AllItems-TrenchantEarthshatterDiamond" value: { - dps: 7278.33981 - tps: 4088.65923 + dps: 6890.38139 + tps: 3837.8523 } } dps_results: { key: "TestElemental-AllItems-TrenchantEarthsiegeDiamond" value: { - dps: 7286.47359 - tps: 4093.17748 + dps: 6898.07984 + tps: 3842.10755 } } dps_results: { key: "TestElemental-AllItems-UndeadSlayer'sBlessedArmor" value: { - dps: 5090.45096 - tps: 2832.52161 + dps: 4479.98103 + tps: 2450.04259 } } dps_results: { key: "TestElemental-AllItems-Val'anyr,HammerofAncientKings-46017" value: { - dps: 7697.63845 - tps: 4332.84466 + dps: 7344.2543 + tps: 4104.72055 } } dps_results: { key: "TestElemental-AllItems-WingedTalisman-37844" value: { - dps: 7069.83291 - tps: 3962.94915 + dps: 6552.2555 + tps: 3660.98451 } } dps_results: { key: "TestElemental-AllItems-WorldbreakerBattlegear" value: { - dps: 5906.42726 - tps: 3316.79654 + dps: 5340.54451 + tps: 2955.30813 } } dps_results: { key: "TestElemental-AllItems-WorldbreakerGarb" value: { - dps: 7131.2982 - tps: 4074.63615 + dps: 6956.70734 + tps: 3960.42377 } } dps_results: { key: "TestElemental-AllItems-WrathfulGladiator'sTotemofSurvival-51513" value: { - dps: 7442.68637 - tps: 4182.53068 + dps: 7044.88586 + tps: 3925.99892 } } dps_results: { key: "TestElemental-Average-Default" value: { - dps: 7514.63805 - tps: 4227.027 + dps: 7238.26932 + tps: 4043.3569 } } dps_results: { - key: "TestElemental-Settings-Orc-P1-Adaptive-Default-FullBuffs-LongMultiTarget" + key: "TestElemental-Settings-Orc-P1-Adaptive-default-FullBuffs-LongMultiTarget" value: { - dps: 9156.12696 - tps: 4568.98546 + dps: 8344.94426 + tps: 3755.43559 } } dps_results: { - key: "TestElemental-Settings-Orc-P1-Adaptive-Default-FullBuffs-LongSingleTarget" + key: "TestElemental-Settings-Orc-P1-Adaptive-default-FullBuffs-LongSingleTarget" value: { - dps: 7456.53168 - tps: 4169.28297 + dps: 7170.52053 + tps: 3982.52493 } } dps_results: { - key: "TestElemental-Settings-Orc-P1-Adaptive-Default-FullBuffs-ShortSingleTarget" + key: "TestElemental-Settings-Orc-P1-Adaptive-default-FullBuffs-ShortSingleTarget" value: { dps: 9184.09164 - tps: 4869.56538 + tps: 4813.64179 } } dps_results: { - key: "TestElemental-Settings-Orc-P1-Adaptive-Default-NoBuffs-LongMultiTarget" + key: "TestElemental-Settings-Orc-P1-Adaptive-default-NoBuffs-LongMultiTarget" value: { - dps: 4674.73797 - tps: 1650.09722 + dps: 4643.83225 + tps: 1634.11321 } } dps_results: { - key: "TestElemental-Settings-Orc-P1-Adaptive-Default-NoBuffs-LongSingleTarget" + key: "TestElemental-Settings-Orc-P1-Adaptive-default-NoBuffs-LongSingleTarget" value: { - dps: 3270.75952 - tps: 1688.29404 + dps: 3243.8299 + tps: 1667.38052 } } dps_results: { - key: "TestElemental-Settings-Orc-P1-Adaptive-Default-NoBuffs-ShortSingleTarget" + key: "TestElemental-Settings-Orc-P1-Adaptive-default-NoBuffs-ShortSingleTarget" value: { dps: 6476.96023 tps: 3326.00116 } } dps_results: { - key: "TestElemental-Settings-Orc-P1-EleFireElemental-Default-FullBuffs-LongMultiTarget" + key: "TestElemental-Settings-Orc-P1-EleFireElemental-default-FullBuffs-LongMultiTarget" value: { - dps: 9156.12696 - tps: 4568.98546 + dps: 8344.94426 + tps: 3755.43559 } } dps_results: { - key: "TestElemental-Settings-Orc-P1-EleFireElemental-Default-FullBuffs-LongSingleTarget" + key: "TestElemental-Settings-Orc-P1-EleFireElemental-default-FullBuffs-LongSingleTarget" value: { - dps: 7456.53168 - tps: 4169.28297 + dps: 7170.52053 + tps: 3982.52493 } } dps_results: { - key: "TestElemental-Settings-Orc-P1-EleFireElemental-Default-FullBuffs-ShortSingleTarget" + key: "TestElemental-Settings-Orc-P1-EleFireElemental-default-FullBuffs-ShortSingleTarget" value: { dps: 9184.09164 - tps: 4869.56538 + tps: 4813.64179 } } dps_results: { - key: "TestElemental-Settings-Orc-P1-EleFireElemental-Default-NoBuffs-LongMultiTarget" + key: "TestElemental-Settings-Orc-P1-EleFireElemental-default-NoBuffs-LongMultiTarget" value: { - dps: 4674.73797 - tps: 1650.09722 + dps: 4643.83225 + tps: 1634.11321 } } dps_results: { - key: "TestElemental-Settings-Orc-P1-EleFireElemental-Default-NoBuffs-LongSingleTarget" + key: "TestElemental-Settings-Orc-P1-EleFireElemental-default-NoBuffs-LongSingleTarget" value: { - dps: 3270.75952 - tps: 1688.29404 + dps: 3243.8299 + tps: 1667.38052 } } dps_results: { - key: "TestElemental-Settings-Orc-P1-EleFireElemental-Default-NoBuffs-ShortSingleTarget" + key: "TestElemental-Settings-Orc-P1-EleFireElemental-default-NoBuffs-ShortSingleTarget" value: { dps: 6476.96023 tps: 3326.00116 } } dps_results: { - key: "TestElemental-Settings-Troll-P1-Adaptive-Default-FullBuffs-LongMultiTarget" + key: "TestElemental-Settings-Troll-P1-Adaptive-default-FullBuffs-LongMultiTarget" value: { - dps: 8986.85494 - tps: 4580.35971 + dps: 8134.17638 + tps: 3733.37023 } } dps_results: { - key: "TestElemental-Settings-Troll-P1-Adaptive-Default-FullBuffs-LongSingleTarget" + key: "TestElemental-Settings-Troll-P1-Adaptive-default-FullBuffs-LongSingleTarget" value: { - dps: 7449.28149 - tps: 4195.60134 + dps: 7048.19523 + tps: 3937.21955 } } dps_results: { - key: "TestElemental-Settings-Troll-P1-Adaptive-Default-FullBuffs-ShortSingleTarget" + key: "TestElemental-Settings-Troll-P1-Adaptive-default-FullBuffs-ShortSingleTarget" value: { dps: 8938.59616 - tps: 4803.53435 + tps: 4747.54079 } } dps_results: { - key: "TestElemental-Settings-Troll-P1-Adaptive-Default-NoBuffs-LongMultiTarget" + key: "TestElemental-Settings-Troll-P1-Adaptive-default-NoBuffs-LongMultiTarget" value: { - dps: 4458.42699 - tps: 1610.08053 + dps: 4478.73107 + tps: 1623.7627 } } dps_results: { - key: "TestElemental-Settings-Troll-P1-Adaptive-Default-NoBuffs-LongSingleTarget" + key: "TestElemental-Settings-Troll-P1-Adaptive-default-NoBuffs-LongSingleTarget" value: { - dps: 3218.50167 - tps: 1674.991 + dps: 3199.37738 + tps: 1663.15187 } } dps_results: { - key: "TestElemental-Settings-Troll-P1-Adaptive-Default-NoBuffs-ShortSingleTarget" + key: "TestElemental-Settings-Troll-P1-Adaptive-default-NoBuffs-ShortSingleTarget" value: { dps: 6396.57345 tps: 3317.4338 } } dps_results: { - key: "TestElemental-Settings-Troll-P1-EleFireElemental-Default-FullBuffs-LongMultiTarget" + key: "TestElemental-Settings-Troll-P1-EleFireElemental-default-FullBuffs-LongMultiTarget" value: { - dps: 8986.85494 - tps: 4580.35971 + dps: 8134.17638 + tps: 3733.37023 } } dps_results: { - key: "TestElemental-Settings-Troll-P1-EleFireElemental-Default-FullBuffs-LongSingleTarget" + key: "TestElemental-Settings-Troll-P1-EleFireElemental-default-FullBuffs-LongSingleTarget" value: { - dps: 7449.28149 - tps: 4195.60134 + dps: 7048.19523 + tps: 3937.21955 } } dps_results: { - key: "TestElemental-Settings-Troll-P1-EleFireElemental-Default-FullBuffs-ShortSingleTarget" + key: "TestElemental-Settings-Troll-P1-EleFireElemental-default-FullBuffs-ShortSingleTarget" value: { dps: 8938.59616 - tps: 4803.53435 + tps: 4747.54079 } } dps_results: { - key: "TestElemental-Settings-Troll-P1-EleFireElemental-Default-NoBuffs-LongMultiTarget" + key: "TestElemental-Settings-Troll-P1-EleFireElemental-default-NoBuffs-LongMultiTarget" value: { - dps: 4458.42699 - tps: 1610.08053 + dps: 4478.73107 + tps: 1623.7627 } } dps_results: { - key: "TestElemental-Settings-Troll-P1-EleFireElemental-Default-NoBuffs-LongSingleTarget" + key: "TestElemental-Settings-Troll-P1-EleFireElemental-default-NoBuffs-LongSingleTarget" value: { - dps: 3218.50167 - tps: 1674.991 + dps: 3199.37738 + tps: 1663.15187 } } dps_results: { - key: "TestElemental-Settings-Troll-P1-EleFireElemental-Default-NoBuffs-ShortSingleTarget" + key: "TestElemental-Settings-Troll-P1-EleFireElemental-default-NoBuffs-ShortSingleTarget" value: { dps: 6396.57345 tps: 3317.4338 @@ -1200,7 +1197,7 @@ dps_results: { dps_results: { key: "TestElemental-SwitchInFrontOfTarget-Default" value: { - dps: 7428.86408 - tps: 4195.60134 + dps: 7027.77782 + tps: 3937.21955 } } diff --git a/sim/shaman/elemental/elemental_test.go b/sim/shaman/elemental/elemental_test.go index 4714196b40..ba35166962 100644 --- a/sim/shaman/elemental/elemental_test.go +++ b/sim/shaman/elemental/elemental_test.go @@ -1,6 +1,8 @@ package elemental import ( + "log" + "os" "testing" _ "github.com/wowsims/wotlk/sim/common" @@ -12,6 +14,16 @@ func init() { RegisterElementalShaman() } +func GetAplRotation(dir string, file string) core.RotationCombo { + filePath := dir + "/" + file + ".json" + data, err := os.ReadFile(filePath) + if err != nil { + log.Fatalf("failed to load apl json file: %s, %s", filePath, err) + } + + return core.RotationCombo{Label: file, Rotation: core.APLRotationFromJsonString(string(data))} +} + func TestElemental(t *testing.T) { core.RunTestSuite(t, t.Name(), core.FullCharacterTestSuiteGenerator(core.CharacterSuiteConfig{ Class: proto.Class_ClassShaman, @@ -26,7 +38,7 @@ func TestElemental(t *testing.T) { OtherSpecOptions: []core.SpecOptionsCombo{ {Label: "EleFireElemental", SpecOptions: PlayerOptionsAdaptiveFireElemental}, }, - Rotation: core.RotationCombo{Label: "Default", Rotation: DefaultRotation}, + Rotation: GetAplRotation("../../../ui/elemental_shaman/apls", "default"), ItemFilter: core.ItemFilter{ WeaponTypes: []proto.WeaponType{ @@ -135,29 +147,6 @@ var FullConsumes = &proto.Consumes{ DefaultConjured: proto.Conjured_ConjuredDarkRune, } -var DefaultRotation = core.APLRotationFromJsonString(`{ - "type": "TypeAPL", - "prepullActions": [ - {"action":{"castSpell":{"spellId":{"spellId":66842}}},"doAtValue":{"const":{"val":"-3.5s"}}}, - {"action":{"castSpell":{"spellId":{"spellId":58704}}},"doAtValue":{"const":{"val":"-2s"}}}, - {"action":{"castSpell":{"spellId":{"otherId":"OtherActionPotion"}}},"doAtValue":{"const":{"val":"-1s"}}} - ], - "priorityList": [ - {"action":{"autocastOtherCooldowns":{}}}, - {"action":{"condition":{"cmp":{"op":"OpGe","lhs":{"currentTime":{}},"rhs":{"const":{"val":"2s"}}}},"castSpell":{"spellId":{"spellId":2825,"tag":-1}}}}, - {"action":{"condition":{"cmp":{"op":"OpGe","lhs":{"currentTime":{}},"rhs":{"const":{"val":"2s"}}}},"castSpell":{"spellId":{"spellId":2825}}}}, - {"action":{"strictSequence":{"actions":[{"castSpell":{"spellId":{"spellId":26297}}},{"castSpell":{"spellId":{"spellId":16166}}}]}}}, - {"action":{"condition":{"and":{"vals":[{"not":{"val":{"spellIsReady":{"spellId":{"spellId":26297}}}}},{"not":{"val":{"spellIsReady":{"spellId":{"spellId":16166}}}}},{"not":{"val":{"auraIsActive":{"auraId":{"spellId":64701}}}}},{"not":{"val":{"auraIsActive":{"auraId":{"spellId":26297}}}}}]}},"castSpell":{"spellId":{"spellId":54758}}}}, - {"action":{"condition":{"and":{"vals":[{"spellIsReady":{"spellId":{"spellId":2894}}},{"or":{"vals":[{"auraIsActive":{"auraId":{"itemId":40255}}},{"auraIsActive":{"auraId":{"itemId":40682}}},{"auraIsActive":{"auraId":{"itemId":37660}}},{"auraIsActive":{"auraId":{"itemId":45518}}},{"auraIsActive":{"auraId":{"itemId":54572}}},{"auraIsActive":{"auraId":{"itemId":54588}}},{"auraIsActive":{"auraId":{"itemId":47213}}},{"auraIsActive":{"auraId":{"itemId":45490}}},{"auraIsActive":{"auraId":{"itemId":50348}}},{"auraIsActive":{"auraId":{"itemId":50353}}},{"auraIsActive":{"auraId":{"itemId":50360}}},{"auraIsActive":{"auraId":{"itemId":50365}}},{"auraIsActive":{"auraId":{"itemId":50345}}},{"auraIsActive":{"auraId":{"itemId":50340}}},{"auraIsActive":{"auraId":{"itemId":50398}}},{"cmp":{"op":"OpEq","lhs":{"auraNumStacks":{"auraId":{"itemId":45308}}},"rhs":{"const":{"val":"5"}}}},{"cmp":{"op":"OpEq","lhs":{"auraNumStacks":{"auraId":{"itemId":40432}}},"rhs":{"const":{"val":"10"}}}},{"auraIsActive":{"auraId":{"spellId":55637}}}]}}]}},"strictSequence":{"actions":[{"castSpell":{"spellId":{"spellId":33697}}},{"castSpell":{"spellId":{"itemId":40212}}},{"castSpell":{"spellId":{"itemId":37873}}},{"castSpell":{"spellId":{"itemId":45148}}},{"castSpell":{"spellId":{"itemId":48724}}},{"castSpell":{"spellId":{"itemId":50357}}},{"castSpell":{"spellId":{"spellId":2894}}}]}}}, - {"action":{"condition":{"cmp":{"op":"OpLt","lhs":{"totemRemainingTime":{"totemType":"Water"}},"rhs":{"const":{"val":"20s"}}}},"castSpell":{"spellId":{"spellId":66842}}}}, - {"action":{"condition":{"and":{"vals":[{"not":{"val":{"auraIsActive":{"auraId":{"spellId":2894}}}}},{"not":{"val":{"dotIsActive":{"spellId":{"spellId":58704}}}}}]}},"castSpell":{"spellId":{"spellId":58704}}}}, - {"action":{"multidot":{"spellId":{"spellId":49233},"maxDots":3,"maxOverlap":{"const":{"val":"0ms"}}}}}, - {"action":{"condition":{"cmp":{"op":"OpGt","lhs":{"numberTargets":{}},"rhs":{"const":{"val":"1"}}}},"castSpell":{"spellId":{"spellId":49271}}}}, - {"action":{"condition":{"cmp":{"op":"OpGt","lhs":{"dotRemainingTime":{"spellId":{"spellId":49233}}},"rhs":{"const":{"val":"2s"}}}},"castSpell":{"spellId":{"spellId":60043}}}}, - {"action":{"castSpell":{"spellId":{"spellId":49238}}}} - ] -}`) - var P1Gear = core.EquipmentSpecFromJsonString(`{"items": [ {"id":40516,"enchant":3820,"gems":[41285,40027]}, {"id":44661,"gems":[39998]}, diff --git a/sim/shaman/enhancement/TestEnhancement.results b/sim/shaman/enhancement/TestEnhancement.results index fb6eb596a5..0309f71513 100644 --- a/sim/shaman/enhancement/TestEnhancement.results +++ b/sim/shaman/enhancement/TestEnhancement.results @@ -986,341 +986,509 @@ dps_results: { } } dps_results: { - key: "TestEnhancement-Settings-Orc-P1-FT-FT-FullBuffs-LongMultiTarget" + key: "TestEnhancement-Settings-Orc-P1-FT-default_ft-FullBuffs-LongMultiTarget" value: { dps: 25965.21383 tps: 15728.86752 } } dps_results: { - key: "TestEnhancement-Settings-Orc-P1-FT-FT-FullBuffs-LongSingleTarget" + key: "TestEnhancement-Settings-Orc-P1-FT-default_ft-FullBuffs-LongSingleTarget" value: { dps: 7599.96071 tps: 4170.90052 } } dps_results: { - key: "TestEnhancement-Settings-Orc-P1-FT-FT-FullBuffs-ShortSingleTarget" + key: "TestEnhancement-Settings-Orc-P1-FT-default_ft-FullBuffs-ShortSingleTarget" value: { dps: 9537.99941 tps: 4535.40617 } } dps_results: { - key: "TestEnhancement-Settings-Orc-P1-FT-FT-NoBuffs-LongMultiTarget" + key: "TestEnhancement-Settings-Orc-P1-FT-default_ft-NoBuffs-LongMultiTarget" value: { dps: 13404.95988 tps: 8725.17005 } } dps_results: { - key: "TestEnhancement-Settings-Orc-P1-FT-FT-NoBuffs-LongSingleTarget" + key: "TestEnhancement-Settings-Orc-P1-FT-default_ft-NoBuffs-LongSingleTarget" value: { dps: 3967.16335 tps: 2133.43047 } } dps_results: { - key: "TestEnhancement-Settings-Orc-P1-FT-FT-NoBuffs-ShortSingleTarget" + key: "TestEnhancement-Settings-Orc-P1-FT-default_ft-NoBuffs-ShortSingleTarget" value: { dps: 5177.87914 tps: 2432.35029 } } dps_results: { - key: "TestEnhancement-Settings-Orc-P1-FT-WF-FullBuffs-LongMultiTarget" + key: "TestEnhancement-Settings-Orc-P1-FT-default_wf-FullBuffs-LongMultiTarget" value: { dps: 25091.30746 tps: 15124.2391 } } dps_results: { - key: "TestEnhancement-Settings-Orc-P1-FT-WF-FullBuffs-LongSingleTarget" + key: "TestEnhancement-Settings-Orc-P1-FT-default_wf-FullBuffs-LongSingleTarget" value: { dps: 7701.60351 tps: 4247.90027 } } dps_results: { - key: "TestEnhancement-Settings-Orc-P1-FT-WF-FullBuffs-ShortSingleTarget" + key: "TestEnhancement-Settings-Orc-P1-FT-default_wf-FullBuffs-ShortSingleTarget" value: { dps: 9652.925 tps: 4628.50426 } } dps_results: { - key: "TestEnhancement-Settings-Orc-P1-FT-WF-NoBuffs-LongMultiTarget" + key: "TestEnhancement-Settings-Orc-P1-FT-default_wf-NoBuffs-LongMultiTarget" value: { dps: 12760.17942 tps: 8341.16494 } } dps_results: { - key: "TestEnhancement-Settings-Orc-P1-FT-WF-NoBuffs-LongSingleTarget" + key: "TestEnhancement-Settings-Orc-P1-FT-default_wf-NoBuffs-LongSingleTarget" value: { dps: 3954.73463 tps: 2136.55325 } } dps_results: { - key: "TestEnhancement-Settings-Orc-P1-FT-WF-NoBuffs-ShortSingleTarget" + key: "TestEnhancement-Settings-Orc-P1-FT-default_wf-NoBuffs-ShortSingleTarget" value: { dps: 5183.57252 tps: 2436.7026 } } dps_results: { - key: "TestEnhancement-Settings-Orc-P1-WF-FT-FullBuffs-LongMultiTarget" + key: "TestEnhancement-Settings-Orc-P1-FT-phase_3-FullBuffs-LongMultiTarget" + value: { + dps: 25745.8582 + tps: 15638.15768 + } +} +dps_results: { + key: "TestEnhancement-Settings-Orc-P1-FT-phase_3-FullBuffs-LongSingleTarget" + value: { + dps: 7599.30579 + tps: 4174.54185 + } +} +dps_results: { + key: "TestEnhancement-Settings-Orc-P1-FT-phase_3-FullBuffs-ShortSingleTarget" + value: { + dps: 9636.22948 + tps: 4630.93378 + } +} +dps_results: { + key: "TestEnhancement-Settings-Orc-P1-FT-phase_3-NoBuffs-LongMultiTarget" + value: { + dps: 13249.75046 + tps: 8590.36568 + } +} +dps_results: { + key: "TestEnhancement-Settings-Orc-P1-FT-phase_3-NoBuffs-LongSingleTarget" + value: { + dps: 3959.80012 + tps: 2140.06817 + } +} +dps_results: { + key: "TestEnhancement-Settings-Orc-P1-FT-phase_3-NoBuffs-ShortSingleTarget" + value: { + dps: 5241.12774 + tps: 2485.37213 + } +} +dps_results: { + key: "TestEnhancement-Settings-Orc-P1-WF-default_ft-FullBuffs-LongMultiTarget" value: { dps: 21794.31376 tps: 13271.32898 } } dps_results: { - key: "TestEnhancement-Settings-Orc-P1-WF-FT-FullBuffs-LongSingleTarget" + key: "TestEnhancement-Settings-Orc-P1-WF-default_ft-FullBuffs-LongSingleTarget" value: { dps: 6555.98154 tps: 3510.95709 } } dps_results: { - key: "TestEnhancement-Settings-Orc-P1-WF-FT-FullBuffs-ShortSingleTarget" + key: "TestEnhancement-Settings-Orc-P1-WF-default_ft-FullBuffs-ShortSingleTarget" value: { dps: 8494.50677 tps: 3914.41667 } } dps_results: { - key: "TestEnhancement-Settings-Orc-P1-WF-FT-NoBuffs-LongMultiTarget" + key: "TestEnhancement-Settings-Orc-P1-WF-default_ft-NoBuffs-LongMultiTarget" value: { dps: 10691.72275 tps: 7426.25233 } } dps_results: { - key: "TestEnhancement-Settings-Orc-P1-WF-FT-NoBuffs-LongSingleTarget" + key: "TestEnhancement-Settings-Orc-P1-WF-default_ft-NoBuffs-LongSingleTarget" value: { dps: 2993.41516 tps: 1630.55304 } } dps_results: { - key: "TestEnhancement-Settings-Orc-P1-WF-FT-NoBuffs-ShortSingleTarget" + key: "TestEnhancement-Settings-Orc-P1-WF-default_ft-NoBuffs-ShortSingleTarget" value: { dps: 4015.3898 tps: 1886.07417 } } dps_results: { - key: "TestEnhancement-Settings-Orc-P1-WF-WF-FullBuffs-LongMultiTarget" + key: "TestEnhancement-Settings-Orc-P1-WF-default_wf-FullBuffs-LongMultiTarget" value: { dps: 20978.57494 tps: 12736.70809 } } dps_results: { - key: "TestEnhancement-Settings-Orc-P1-WF-WF-FullBuffs-LongSingleTarget" + key: "TestEnhancement-Settings-Orc-P1-WF-default_wf-FullBuffs-LongSingleTarget" value: { dps: 6636.281 tps: 3567.04956 } } dps_results: { - key: "TestEnhancement-Settings-Orc-P1-WF-WF-FullBuffs-ShortSingleTarget" + key: "TestEnhancement-Settings-Orc-P1-WF-default_wf-FullBuffs-ShortSingleTarget" value: { dps: 8622.15266 tps: 4005.03127 } } dps_results: { - key: "TestEnhancement-Settings-Orc-P1-WF-WF-NoBuffs-LongMultiTarget" + key: "TestEnhancement-Settings-Orc-P1-WF-default_wf-NoBuffs-LongMultiTarget" value: { dps: 9959.43189 tps: 6917.89332 } } dps_results: { - key: "TestEnhancement-Settings-Orc-P1-WF-WF-NoBuffs-LongSingleTarget" + key: "TestEnhancement-Settings-Orc-P1-WF-default_wf-NoBuffs-LongSingleTarget" value: { dps: 3049.76931 tps: 1667.28149 } } dps_results: { - key: "TestEnhancement-Settings-Orc-P1-WF-WF-NoBuffs-ShortSingleTarget" + key: "TestEnhancement-Settings-Orc-P1-WF-default_wf-NoBuffs-ShortSingleTarget" value: { dps: 4086.298 tps: 1936.40106 } } dps_results: { - key: "TestEnhancement-Settings-Troll-P1-FT-FT-FullBuffs-LongMultiTarget" + key: "TestEnhancement-Settings-Orc-P1-WF-phase_3-FullBuffs-LongMultiTarget" + value: { + dps: 21333.06302 + tps: 12920.62246 + } +} +dps_results: { + key: "TestEnhancement-Settings-Orc-P1-WF-phase_3-FullBuffs-LongSingleTarget" + value: { + dps: 6520.7204 + tps: 3489.70213 + } +} +dps_results: { + key: "TestEnhancement-Settings-Orc-P1-WF-phase_3-FullBuffs-ShortSingleTarget" + value: { + dps: 8433.70029 + tps: 3890.32689 + } +} +dps_results: { + key: "TestEnhancement-Settings-Orc-P1-WF-phase_3-NoBuffs-LongMultiTarget" + value: { + dps: 10404.5333 + tps: 7217.42592 + } +} +dps_results: { + key: "TestEnhancement-Settings-Orc-P1-WF-phase_3-NoBuffs-LongSingleTarget" + value: { + dps: 2980.53057 + tps: 1616.57632 + } +} +dps_results: { + key: "TestEnhancement-Settings-Orc-P1-WF-phase_3-NoBuffs-ShortSingleTarget" + value: { + dps: 4069.51716 + tps: 1931.99696 + } +} +dps_results: { + key: "TestEnhancement-Settings-Troll-P1-FT-default_ft-FullBuffs-LongMultiTarget" value: { dps: 25778.94947 tps: 15756.01325 } } dps_results: { - key: "TestEnhancement-Settings-Troll-P1-FT-FT-FullBuffs-LongSingleTarget" + key: "TestEnhancement-Settings-Troll-P1-FT-default_ft-FullBuffs-LongSingleTarget" value: { dps: 7557.2516 tps: 4179.34252 } } dps_results: { - key: "TestEnhancement-Settings-Troll-P1-FT-FT-FullBuffs-ShortSingleTarget" + key: "TestEnhancement-Settings-Troll-P1-FT-default_ft-FullBuffs-ShortSingleTarget" value: { dps: 9599.57092 tps: 4666.58399 } } dps_results: { - key: "TestEnhancement-Settings-Troll-P1-FT-FT-NoBuffs-LongMultiTarget" + key: "TestEnhancement-Settings-Troll-P1-FT-default_ft-NoBuffs-LongMultiTarget" value: { dps: 13393.47041 tps: 8806.42712 } } dps_results: { - key: "TestEnhancement-Settings-Troll-P1-FT-FT-NoBuffs-LongSingleTarget" + key: "TestEnhancement-Settings-Troll-P1-FT-default_ft-NoBuffs-LongSingleTarget" value: { dps: 3920.13931 tps: 2134.5437 } } dps_results: { - key: "TestEnhancement-Settings-Troll-P1-FT-FT-NoBuffs-ShortSingleTarget" + key: "TestEnhancement-Settings-Troll-P1-FT-default_ft-NoBuffs-ShortSingleTarget" value: { dps: 5165.19981 tps: 2478.43513 } } dps_results: { - key: "TestEnhancement-Settings-Troll-P1-FT-WF-FullBuffs-LongMultiTarget" + key: "TestEnhancement-Settings-Troll-P1-FT-default_wf-FullBuffs-LongMultiTarget" value: { dps: 25337.11058 tps: 15490.73618 } } dps_results: { - key: "TestEnhancement-Settings-Troll-P1-FT-WF-FullBuffs-LongSingleTarget" + key: "TestEnhancement-Settings-Troll-P1-FT-default_wf-FullBuffs-LongSingleTarget" value: { dps: 7687.43515 tps: 4262.64534 } } dps_results: { - key: "TestEnhancement-Settings-Troll-P1-FT-WF-FullBuffs-ShortSingleTarget" + key: "TestEnhancement-Settings-Troll-P1-FT-default_wf-FullBuffs-ShortSingleTarget" value: { dps: 9715.23117 tps: 4740.03731 } } dps_results: { - key: "TestEnhancement-Settings-Troll-P1-FT-WF-NoBuffs-LongMultiTarget" + key: "TestEnhancement-Settings-Troll-P1-FT-default_wf-NoBuffs-LongMultiTarget" value: { dps: 12762.27707 tps: 8377.13145 } } dps_results: { - key: "TestEnhancement-Settings-Troll-P1-FT-WF-NoBuffs-LongSingleTarget" + key: "TestEnhancement-Settings-Troll-P1-FT-default_wf-NoBuffs-LongSingleTarget" value: { dps: 3979.93804 tps: 2165.33744 } } dps_results: { - key: "TestEnhancement-Settings-Troll-P1-FT-WF-NoBuffs-ShortSingleTarget" + key: "TestEnhancement-Settings-Troll-P1-FT-default_wf-NoBuffs-ShortSingleTarget" value: { dps: 5243.71942 tps: 2521.8172 } } dps_results: { - key: "TestEnhancement-Settings-Troll-P1-WF-FT-FullBuffs-LongMultiTarget" + key: "TestEnhancement-Settings-Troll-P1-FT-phase_3-FullBuffs-LongMultiTarget" + value: { + dps: 25663.54779 + tps: 15641.99256 + } +} +dps_results: { + key: "TestEnhancement-Settings-Troll-P1-FT-phase_3-FullBuffs-LongSingleTarget" + value: { + dps: 7583.97023 + tps: 4194.39541 + } +} +dps_results: { + key: "TestEnhancement-Settings-Troll-P1-FT-phase_3-FullBuffs-ShortSingleTarget" + value: { + dps: 9597.86392 + tps: 4677.38196 + } +} +dps_results: { + key: "TestEnhancement-Settings-Troll-P1-FT-phase_3-NoBuffs-LongMultiTarget" + value: { + dps: 12783.95783 + tps: 8320.97337 + } +} +dps_results: { + key: "TestEnhancement-Settings-Troll-P1-FT-phase_3-NoBuffs-LongSingleTarget" + value: { + dps: 3910.4831 + tps: 2122.61061 + } +} +dps_results: { + key: "TestEnhancement-Settings-Troll-P1-FT-phase_3-NoBuffs-ShortSingleTarget" + value: { + dps: 5195.11116 + tps: 2489.56687 + } +} +dps_results: { + key: "TestEnhancement-Settings-Troll-P1-WF-default_ft-FullBuffs-LongMultiTarget" value: { dps: 21508.02472 tps: 13149.16065 } } dps_results: { - key: "TestEnhancement-Settings-Troll-P1-WF-FT-FullBuffs-LongSingleTarget" + key: "TestEnhancement-Settings-Troll-P1-WF-default_ft-FullBuffs-LongSingleTarget" value: { dps: 6494.63817 tps: 3493.04504 } } dps_results: { - key: "TestEnhancement-Settings-Troll-P1-WF-FT-FullBuffs-ShortSingleTarget" + key: "TestEnhancement-Settings-Troll-P1-WF-default_ft-FullBuffs-ShortSingleTarget" value: { dps: 8398.27091 tps: 3916.3862 } } dps_results: { - key: "TestEnhancement-Settings-Troll-P1-WF-FT-NoBuffs-LongMultiTarget" + key: "TestEnhancement-Settings-Troll-P1-WF-default_ft-NoBuffs-LongMultiTarget" value: { dps: 10519.84286 tps: 7341.26268 } } dps_results: { - key: "TestEnhancement-Settings-Troll-P1-WF-FT-NoBuffs-LongSingleTarget" + key: "TestEnhancement-Settings-Troll-P1-WF-default_ft-NoBuffs-LongSingleTarget" value: { dps: 2970.01096 tps: 1628.12274 } } dps_results: { - key: "TestEnhancement-Settings-Troll-P1-WF-FT-NoBuffs-ShortSingleTarget" + key: "TestEnhancement-Settings-Troll-P1-WF-default_ft-NoBuffs-ShortSingleTarget" value: { dps: 3970.97416 tps: 1897.49183 } } dps_results: { - key: "TestEnhancement-Settings-Troll-P1-WF-WF-FullBuffs-LongMultiTarget" + key: "TestEnhancement-Settings-Troll-P1-WF-default_wf-FullBuffs-LongMultiTarget" value: { dps: 21034.79165 tps: 12869.74086 } } dps_results: { - key: "TestEnhancement-Settings-Troll-P1-WF-WF-FullBuffs-LongSingleTarget" + key: "TestEnhancement-Settings-Troll-P1-WF-default_wf-FullBuffs-LongSingleTarget" value: { dps: 6563.73913 tps: 3548.71796 } } dps_results: { - key: "TestEnhancement-Settings-Troll-P1-WF-WF-FullBuffs-ShortSingleTarget" + key: "TestEnhancement-Settings-Troll-P1-WF-default_wf-FullBuffs-ShortSingleTarget" value: { dps: 8476.86271 tps: 3979.84841 } } dps_results: { - key: "TestEnhancement-Settings-Troll-P1-WF-WF-NoBuffs-LongMultiTarget" + key: "TestEnhancement-Settings-Troll-P1-WF-default_wf-NoBuffs-LongMultiTarget" value: { dps: 9874.28106 tps: 6962.9888 } } dps_results: { - key: "TestEnhancement-Settings-Troll-P1-WF-WF-NoBuffs-LongSingleTarget" + key: "TestEnhancement-Settings-Troll-P1-WF-default_wf-NoBuffs-LongSingleTarget" value: { dps: 3023.83689 tps: 1666.89355 } } dps_results: { - key: "TestEnhancement-Settings-Troll-P1-WF-WF-NoBuffs-ShortSingleTarget" + key: "TestEnhancement-Settings-Troll-P1-WF-default_wf-NoBuffs-ShortSingleTarget" value: { dps: 4041.10843 tps: 1947.16305 } } +dps_results: { + key: "TestEnhancement-Settings-Troll-P1-WF-phase_3-FullBuffs-LongMultiTarget" + value: { + dps: 21378.12374 + tps: 13090.23159 + } +} +dps_results: { + key: "TestEnhancement-Settings-Troll-P1-WF-phase_3-FullBuffs-LongSingleTarget" + value: { + dps: 6495.10377 + tps: 3495.84742 + } +} +dps_results: { + key: "TestEnhancement-Settings-Troll-P1-WF-phase_3-FullBuffs-ShortSingleTarget" + value: { + dps: 8427.56248 + tps: 3953.85926 + } +} +dps_results: { + key: "TestEnhancement-Settings-Troll-P1-WF-phase_3-NoBuffs-LongMultiTarget" + value: { + dps: 10329.63783 + tps: 7176.61741 + } +} +dps_results: { + key: "TestEnhancement-Settings-Troll-P1-WF-phase_3-NoBuffs-LongSingleTarget" + value: { + dps: 2930.40321 + tps: 1599.9115 + } +} +dps_results: { + key: "TestEnhancement-Settings-Troll-P1-WF-phase_3-NoBuffs-ShortSingleTarget" + value: { + dps: 4030.22984 + tps: 1945.96685 + } +} dps_results: { key: "TestEnhancement-SwitchInFrontOfTarget-Default" value: { diff --git a/sim/shaman/enhancement/enhancement_test.go b/sim/shaman/enhancement/enhancement_test.go index 4d1806117e..9248f4956a 100644 --- a/sim/shaman/enhancement/enhancement_test.go +++ b/sim/shaman/enhancement/enhancement_test.go @@ -1,6 +1,8 @@ package enhancement import ( + "log" + "os" "testing" _ "github.com/wowsims/wotlk/sim/common" // imported to get item effects included. @@ -12,6 +14,16 @@ func init() { RegisterEnhancementShaman() } +func GetAplRotation(dir string, file string) core.RotationCombo { + filePath := dir + "/" + file + ".json" + data, err := os.ReadFile(filePath) + if err != nil { + log.Fatalf("failed to load apl json file: %s, %s", filePath, err) + } + + return core.RotationCombo{Label: file, Rotation: core.APLRotationFromJsonString(string(data))} +} + func TestEnhancement(t *testing.T) { core.RunTestSuite(t, t.Name(), core.FullCharacterTestSuiteGenerator(core.CharacterSuiteConfig{ Class: proto.Class_ClassShaman, @@ -26,9 +38,10 @@ func TestEnhancement(t *testing.T) { OtherSpecOptions: []core.SpecOptionsCombo{ {Label: "WF", SpecOptions: PlayerOptionsWFWF}, }, - Rotation: core.RotationCombo{Label: "FT", Rotation: DefaultFTRotation}, + Rotation: GetAplRotation("../../../ui/enhancement_shaman/apls", "default_ft"), OtherRotations: []core.RotationCombo{ - {Label: "WF", Rotation: DefaultWFRotation}, + GetAplRotation("../../../ui/enhancement_shaman/apls", "default_wf"), + GetAplRotation("../../../ui/enhancement_shaman/apls", "phase_3"), }, ItemFilter: core.ItemFilter{ @@ -98,25 +111,6 @@ var PlayerOptionsFTFT = &proto.Player_EnhancementShaman{ }, } -//var enhShamRotationItemSwap = &proto.EnhancementShaman_Rotation{ -// RotationType: proto.EnhancementShaman_Rotation_Priority, -// FirenovaManaThreshold: 3000, -// ShamanisticRageManaThreshold: 25, -// PrimaryShock: proto.EnhancementShaman_Rotation_Earth, -// WeaveFlameShock: true, -// //Temp to test Item Swap, will switch to a more realistic swap with Phase 2 gear. -// EnableItemSwap: true, -// ItemSwap: &proto.ItemSwap{ -// MhItem: &proto.ItemSpec{ -// Id: 41752, -// }, -// OhItem: &proto.ItemSpec{ -// Id: 41752, -// Enchant: 3790, -// }, -// }, -//} - var enhShamWFWF = &proto.EnhancementShaman_Options{ Shield: proto.ShamanShield_WaterShield, Bloodlust: true, @@ -152,48 +146,6 @@ var FullConsumes = &proto.Consumes{ DefaultConjured: proto.Conjured_ConjuredFlameCap, } -var DefaultFTRotation = core.APLRotationFromJsonString(`{ - "type": "TypeAPL", - "prepullActions": [ - {"action":{"castSpell":{"spellId":{"spellId":66842}}},"doAtValue":{"const":{"val":"-3s"}}}, - {"action":{"castSpell":{"spellId":{"otherId":"OtherActionPotion"}}},"doAtValue":{"const":{"val":"-1s"}}} - ], - "priorityList": [ - {"action":{"autocastOtherCooldowns":{}}}, - {"action":{"condition":{"cmp":{"op":"OpEq","lhs":{"auraNumStacks":{"auraId":{"spellId":53817}}},"rhs":{"const":{"val":"5"}}}},"castSpell":{"spellId":{"spellId":49238}}}}, - {"action":{"castSpell":{"spellId":{"spellId":17364}}}}, - {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"dotRemainingTime":{"spellId":{"spellId":49233}}},"rhs":{"const":{"val":"0s"}}}},"castSpell":{"spellId":{"spellId":49233}}}}, - {"action":{"condition":{"not":{"val":{"auraIsActive":{"sourceUnit":{"type":"CurrentTarget"},"auraId":{"spellId":17364}}}}},"castSpell":{"spellId":{"spellId":17364}}}}, - {"action":{"castSpell":{"spellId":{"spellId":49231}}}}, - {"action":{"condition":{"cmp":{"op":"OpLt","lhs":{"totemRemainingTime":{"totemType":"Water"}},"rhs":{"const":{"val":"20s"}}}},"castSpell":{"spellId":{"spellId":66842}}}}, - {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpLe","lhs":{"dotRemainingTime":{"spellId":{"spellId":58734}}},"rhs":{"const":{"val":"100ms"}}}},{"not":{"val":{"auraIsActive":{"auraId":{"spellId":2894}}}}}]}},"castSpell":{"spellId":{"spellId":58734}}}}, - {"action":{"castSpell":{"spellId":{"spellId":61657}}}}, - {"action":{"condition":{"not":{"val":{"auraIsActive":{"auraId":{"spellId":49281}}}}},"castSpell":{"spellId":{"spellId":49281}}}}, - {"action":{"castSpell":{"spellId":{"spellId":60103}}}} - ] -}`) - -var DefaultWFRotation = core.APLRotationFromJsonString(`{ - "type": "TypeAPL", - "prepullActions": [ - {"action":{"castSpell":{"spellId":{"spellId":66842}}},"doAtValue":{"const":{"val":"-3s"}}}, - {"action":{"castSpell":{"spellId":{"otherId":"OtherActionPotion"}}},"doAtValue":{"const":{"val":"-1s"}}} - ], - "priorityList": [ - {"action":{"autocastOtherCooldowns":{}}}, - {"action":{"condition":{"cmp":{"op":"OpEq","lhs":{"auraNumStacks":{"auraId":{"spellId":53817}}},"rhs":{"const":{"val":"5"}}}},"castSpell":{"spellId":{"spellId":49238}}}}, - {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpGe","lhs":{"auraNumStacks":{"auraId":{"spellId":53817}}},"rhs":{"const":{"val":"3"}}}},{"cmp":{"op":"OpLt","lhs":{"math":{"op":"OpAdd","lhs":{"const":{"val":"300ms"}},"rhs":{"spellCastTime":{"spellId":{"spellId":49238}}}}},"rhs":{"autoTimeToNext":{}}}}]}},"castSpell":{"spellId":{"spellId":49238}}}}, - {"action":{"castSpell":{"spellId":{"spellId":17364}}}}, - {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"dotRemainingTime":{"spellId":{"spellId":49233}}},"rhs":{"const":{"val":"0s"}}}},"castSpell":{"spellId":{"spellId":49233}}}}, - {"action":{"castSpell":{"spellId":{"spellId":49231}}}}, - {"action":{"condition":{"cmp":{"op":"OpLt","lhs":{"totemRemainingTime":{"totemType":"Water"}},"rhs":{"const":{"val":"20s"}}}},"castSpell":{"spellId":{"spellId":66842}}}}, - {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpLe","lhs":{"dotRemainingTime":{"spellId":{"spellId":58734}}},"rhs":{"const":{"val":"100ms"}}}},{"not":{"val":{"auraIsActive":{"auraId":{"spellId":2894}}}}}]}},"castSpell":{"spellId":{"spellId":58734}}}}, - {"action":{"castSpell":{"spellId":{"spellId":61657}}}}, - {"action":{"condition":{"not":{"val":{"auraIsActive":{"auraId":{"spellId":49281}}}}},"castSpell":{"spellId":{"spellId":49281}}}}, - {"action":{"castSpell":{"spellId":{"spellId":60103}}}} - ] -}`) - var Phase1Gear = core.EquipmentSpecFromJsonString(`{"items": [ {"id":40543,"enchant":3817,"gems":[41398,40014]}, {"id":44661,"gems":[40014]}, From 06338326841287f98f918b2081b0dae1e8014c61 Mon Sep 17 00:00:00 2001 From: jarves Date: Mon, 25 Sep 2023 16:43:26 -0500 Subject: [PATCH 09/21] =?UTF-8?q?=EF=BB=BFmage:=20apl=20tests?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sim/mage/TestArcane.results | 488 ++++++++++++++++----------------- sim/mage/TestFire.results | 488 ++++++++++++++++----------------- sim/mage/TestFrost.results | 476 ++++++++++++++++---------------- sim/mage/TestFrostFire.results | 452 +++++++++++++++--------------- sim/mage/mage_test.go | 196 +++---------- 5 files changed, 988 insertions(+), 1112 deletions(-) diff --git a/sim/mage/TestArcane.results b/sim/mage/TestArcane.results index ee0e458113..f804e653ff 100644 --- a/sim/mage/TestArcane.results +++ b/sim/mage/TestArcane.results @@ -46,808 +46,808 @@ character_stats_results: { dps_results: { key: "TestArcane-AllItems-Althor'sAbacus-50359" value: { - dps: 13938.32602 - tps: 8515.21349 + dps: 13974.85348 + tps: 8539.99647 } } dps_results: { key: "TestArcane-AllItems-Althor'sAbacus-50366" value: { - dps: 13986.96467 - tps: 8544.10281 + dps: 14023.61395 + tps: 8568.96384 } } dps_results: { key: "TestArcane-AllItems-AustereEarthsiegeDiamond" value: { - dps: 14101.25579 - tps: 8614.51537 + dps: 14118.459 + tps: 8628.38179 } } dps_results: { key: "TestArcane-AllItems-Bandit'sInsignia-40371" value: { - dps: 13542.58428 - tps: 8280.15955 + dps: 13578.12059 + tps: 8304.30744 } } dps_results: { key: "TestArcane-AllItems-BaubleofTrueBlood-50354" value: { - dps: 13559.98892 - tps: 8289.46584 - hps: 103.0427 + dps: 13581.01902 + tps: 8306.25512 + hps: 102.91791 } } dps_results: { key: "TestArcane-AllItems-BaubleofTrueBlood-50726" value: { - dps: 13559.98892 - tps: 8289.46584 - hps: 103.0427 + dps: 13581.01902 + tps: 8306.25512 + hps: 102.91791 } } dps_results: { key: "TestArcane-AllItems-BeamingEarthsiegeDiamond" value: { - dps: 14141.81933 - tps: 8641.12652 + dps: 14173.51473 + tps: 8664.67525 } } dps_results: { key: "TestArcane-AllItems-BlessedRegaliaofUndeadCleansing" value: { - dps: 9352.47073 - tps: 5727.49488 + dps: 9377.83549 + tps: 5744.2121 } } dps_results: { key: "TestArcane-AllItems-Bloodmage'sRegalia" value: { - dps: 11975.0829 - tps: 7327.77283 + dps: 12007.26554 + tps: 7349.71517 } } dps_results: { key: "TestArcane-AllItems-BracingEarthsiegeDiamond" value: { - dps: 14156.48062 - tps: 8476.60688 + dps: 14173.7828 + tps: 8490.26823 } } dps_results: { key: "TestArcane-AllItems-ChaoticSkyflareDiamond" value: { - dps: 14578.21017 - tps: 8903.64719 + dps: 14551.68527 + tps: 8891.14041 } } dps_results: { key: "TestArcane-AllItems-CorpseTongueCoin-50349" value: { - dps: 13542.58428 - tps: 8280.15955 + dps: 13578.12059 + tps: 8304.30744 } } dps_results: { key: "TestArcane-AllItems-CorpseTongueCoin-50352" value: { - dps: 13542.58428 - tps: 8280.15955 + dps: 13578.12059 + tps: 8304.30744 } } dps_results: { key: "TestArcane-AllItems-CorrodedSkeletonKey-50356" value: { - dps: 13542.58428 - tps: 8280.15955 + dps: 13578.12059 + tps: 8304.30744 hps: 64 } } dps_results: { key: "TestArcane-AllItems-DarkmoonCard:Berserker!-42989" value: { - dps: 13778.25981 - tps: 8425.23462 + dps: 13766.08418 + tps: 8422.05863 } } dps_results: { key: "TestArcane-AllItems-DarkmoonCard:Death-42990" value: { - dps: 13792.59404 - tps: 8455.86564 + dps: 13773.9472 + tps: 8449.96137 } } dps_results: { key: "TestArcane-AllItems-DarkmoonCard:Greatness-44255" value: { - dps: 13893.53775 - tps: 8496.34724 + dps: 13932.04305 + tps: 8523.6653 } } dps_results: { key: "TestArcane-AllItems-Death'sChoice-47464" value: { - dps: 13542.58428 - tps: 8280.15955 + dps: 13578.12059 + tps: 8304.30744 } } dps_results: { key: "TestArcane-AllItems-DeathKnight'sAnguish-38212" value: { - dps: 13603.25438 - tps: 8318.32377 + dps: 13624.34826 + tps: 8334.98265 } } dps_results: { key: "TestArcane-AllItems-Deathbringer'sWill-50362" value: { - dps: 13542.58428 - tps: 8280.15955 + dps: 13578.12059 + tps: 8304.30744 } } dps_results: { key: "TestArcane-AllItems-Deathbringer'sWill-50363" value: { - dps: 13542.58428 - tps: 8280.15955 + dps: 13578.12059 + tps: 8304.30744 } } dps_results: { key: "TestArcane-AllItems-Defender'sCode-40257" value: { - dps: 13542.58428 - tps: 8280.15955 + dps: 13578.12059 + tps: 8304.30744 } } dps_results: { key: "TestArcane-AllItems-DestructiveSkyflareDiamond" value: { - dps: 14155.7121 - tps: 8647.46908 + dps: 14134.58041 + tps: 8638.27502 } } dps_results: { key: "TestArcane-AllItems-DislodgedForeignObject-50353" value: { - dps: 14452.28057 - tps: 8830.26294 + dps: 14451.08913 + tps: 8832.43817 } } dps_results: { key: "TestArcane-AllItems-EffulgentSkyflareDiamond" value: { - dps: 14101.25579 - tps: 8614.51537 + dps: 14118.459 + tps: 8628.38179 } } dps_results: { key: "TestArcane-AllItems-EmberSkyflareDiamond" value: { - dps: 14183.19146 - tps: 8664.86703 + dps: 14214.21279 + tps: 8687.73404 } } dps_results: { key: "TestArcane-AllItems-EnigmaticSkyflareDiamond" value: { - dps: 14153.88757 - tps: 8646.37436 + dps: 14128.53235 + tps: 8634.61543 } } dps_results: { key: "TestArcane-AllItems-EnigmaticStarflareDiamond" value: { - dps: 14145.97694 - tps: 8641.48293 + dps: 14094.67406 + tps: 8613.87723 } } dps_results: { key: "TestArcane-AllItems-EphemeralSnowflake-50260" value: { - dps: 13768.92115 - tps: 8421.33184 + dps: 13768.83237 + tps: 8421.87433 } } dps_results: { key: "TestArcane-AllItems-EssenceofGossamer-37220" value: { - dps: 13542.58428 - tps: 8280.15955 + dps: 13578.12059 + tps: 8304.30744 } } dps_results: { key: "TestArcane-AllItems-EternalEarthsiegeDiamond" value: { - dps: 14101.25579 - tps: 8614.51537 + dps: 14118.459 + tps: 8628.38179 } } dps_results: { key: "TestArcane-AllItems-ExtractofNecromanticPower-40373" value: { - dps: 13770.88267 - tps: 8421.59271 + dps: 13743.32305 + tps: 8408.41737 } } dps_results: { key: "TestArcane-AllItems-EyeoftheBroodmother-45308" value: { - dps: 14038.63341 - tps: 8582.8258 + dps: 14019.54144 + tps: 8573.62344 } } dps_results: { key: "TestArcane-AllItems-Figurine-SapphireOwl-42413" value: { - dps: 13617.74017 - tps: 8330.18313 + dps: 13715.77185 + tps: 8390.89658 } } dps_results: { key: "TestArcane-AllItems-ForethoughtTalisman-40258" value: { - dps: 13787.98838 - tps: 8425.91926 + dps: 13824.13931 + tps: 8450.46097 } } dps_results: { key: "TestArcane-AllItems-ForgeEmber-37660" value: { - dps: 13907.93505 - tps: 8503.38421 + dps: 13915.4892 + tps: 8510.48275 } } dps_results: { key: "TestArcane-AllItems-ForlornSkyflareDiamond" value: { - dps: 14156.48062 - tps: 8647.31629 + dps: 14173.7828 + tps: 8661.2568 } } dps_results: { key: "TestArcane-AllItems-ForlornStarflareDiamond" value: { - dps: 14145.43565 - tps: 8640.75611 + dps: 14162.71804 + tps: 8654.6818 } } dps_results: { key: "TestArcane-AllItems-FrostfireGarb" value: { - dps: 9869.17204 - tps: 6048.63653 + dps: 9966.22423 + tps: 6110.18605 } } dps_results: { key: "TestArcane-AllItems-FuryoftheFiveFlights-40431" value: { - dps: 13542.58428 - tps: 8280.15955 + dps: 13578.12059 + tps: 8304.30744 } } dps_results: { key: "TestArcane-AllItems-FuturesightRune-38763" value: { - dps: 13816.96554 - tps: 8444.8346 + dps: 13855.43937 + tps: 8469.71421 } } dps_results: { key: "TestArcane-AllItems-Gladiator'sRegalia" value: { - dps: 10155.82933 - tps: 6207.42379 + dps: 10141.0148 + tps: 6202.76366 } } dps_results: { key: "TestArcane-AllItems-GlowingTwilightScale-54573" value: { - dps: 13962.64535 - tps: 8529.65815 + dps: 13999.23372 + tps: 8554.48015 } } dps_results: { key: "TestArcane-AllItems-GlowingTwilightScale-54589" value: { - dps: 14017.91654 - tps: 8562.48691 + dps: 14054.64334 + tps: 8587.39761 } } dps_results: { key: "TestArcane-AllItems-GnomishLightningGenerator-41121" value: { - dps: 13777.39562 - tps: 8440.71706 + dps: 13754.29687 + tps: 8432.24966 } } dps_results: { key: "TestArcane-AllItems-Heartpierce-49982" value: { - dps: 14578.21017 - tps: 8903.64719 + dps: 14551.68527 + tps: 8891.14041 } } dps_results: { key: "TestArcane-AllItems-Heartpierce-50641" value: { - dps: 14578.21017 - tps: 8903.64719 + dps: 14551.68527 + tps: 8891.14041 } } dps_results: { key: "TestArcane-AllItems-IllustrationoftheDragonSoul-40432" value: { - dps: 13973.78383 - tps: 8537.56268 + dps: 14010.66501 + tps: 8562.48024 } } dps_results: { key: "TestArcane-AllItems-ImpassiveSkyflareDiamond" value: { - dps: 14153.88757 - tps: 8646.37436 + dps: 14128.53235 + tps: 8634.61543 } } dps_results: { key: "TestArcane-AllItems-ImpassiveStarflareDiamond" value: { - dps: 14145.97694 - tps: 8641.48293 + dps: 14094.67406 + tps: 8613.87723 } } dps_results: { key: "TestArcane-AllItems-IncisorFragment-37723" value: { - dps: 13542.58428 - tps: 8280.15955 + dps: 13578.12059 + tps: 8304.30744 } } dps_results: { key: "TestArcane-AllItems-InsightfulEarthsiegeDiamond" value: { - dps: 14226.62743 - tps: 8697.99905 + dps: 14200.61928 + tps: 8687.45074 } } dps_results: { key: "TestArcane-AllItems-InvigoratingEarthsiegeDiamond" value: { - dps: 14101.25579 - tps: 8614.51537 + dps: 14118.459 + tps: 8628.38179 } } dps_results: { key: "TestArcane-AllItems-Khadgar'sRegalia" value: { - dps: 10749.66674 - tps: 6586.39496 + dps: 10775.63702 + tps: 6601.11784 } } dps_results: { key: "TestArcane-AllItems-KirinTorGarb" value: { - dps: 10437.70925 - tps: 6384.03093 + dps: 10452.55967 + tps: 6396.06843 } } dps_results: { key: "TestArcane-AllItems-Lavanthor'sTalisman-37872" value: { - dps: 13542.58428 - tps: 8280.15955 + dps: 13578.12059 + tps: 8304.30744 } } dps_results: { key: "TestArcane-AllItems-MajesticDragonFigurine-40430" value: { - dps: 13899.64044 - tps: 8498.50668 + dps: 13944.53245 + tps: 8528.32611 } } dps_results: { key: "TestArcane-AllItems-MeteoriteWhetstone-37390" value: { - dps: 13678.60862 - tps: 8366.40953 + dps: 13686.29996 + tps: 8373.98129 } } dps_results: { key: "TestArcane-AllItems-NevermeltingIceCrystal-50259" value: { - dps: 13883.52841 - tps: 8482.31614 + dps: 13867.17794 + tps: 8479.36602 } } dps_results: { key: "TestArcane-AllItems-Nibelung-49992" value: { - dps: 14578.21017 - tps: 8903.64719 + dps: 14551.68527 + tps: 8891.14041 } } dps_results: { key: "TestArcane-AllItems-Nibelung-50648" value: { - dps: 14578.21017 - tps: 8903.64719 + dps: 14551.68527 + tps: 8891.14041 } } dps_results: { key: "TestArcane-AllItems-OfferingofSacrifice-37638" value: { - dps: 13542.58428 - tps: 8280.15955 + dps: 13578.12059 + tps: 8304.30744 } } dps_results: { key: "TestArcane-AllItems-PersistentEarthshatterDiamond" value: { - dps: 14101.25579 - tps: 8614.51537 + dps: 14118.459 + tps: 8628.38179 } } dps_results: { key: "TestArcane-AllItems-PersistentEarthsiegeDiamond" value: { - dps: 14101.25579 - tps: 8614.51537 + dps: 14118.459 + tps: 8628.38179 } } dps_results: { key: "TestArcane-AllItems-PetrifiedScarab-21685" value: { - dps: 13542.58428 - tps: 8280.15955 + dps: 13578.12059 + tps: 8304.30744 } } dps_results: { key: "TestArcane-AllItems-PetrifiedTwilightScale-54571" value: { - dps: 13542.58428 - tps: 8280.15955 + dps: 13578.12059 + tps: 8304.30744 } } dps_results: { key: "TestArcane-AllItems-PetrifiedTwilightScale-54591" value: { - dps: 13542.58428 - tps: 8280.15955 + dps: 13578.12059 + tps: 8304.30744 } } dps_results: { key: "TestArcane-AllItems-PowerfulEarthshatterDiamond" value: { - dps: 14101.25579 - tps: 8614.51537 + dps: 14118.459 + tps: 8628.38179 } } dps_results: { key: "TestArcane-AllItems-PowerfulEarthsiegeDiamond" value: { - dps: 14101.25579 - tps: 8614.51537 + dps: 14118.459 + tps: 8628.38179 } } dps_results: { key: "TestArcane-AllItems-PurifiedShardoftheGods" value: { - dps: 13542.58428 - tps: 8280.15955 + dps: 13578.12059 + tps: 8304.30744 } } dps_results: { key: "TestArcane-AllItems-ReignoftheDead-47316" value: { - dps: 14241.14565 - tps: 8807.62564 + dps: 14208.88487 + tps: 8794.61042 } } dps_results: { key: "TestArcane-AllItems-ReignoftheDead-47477" value: { - dps: 14317.4029 - tps: 8867.61484 + dps: 14283.97828 + tps: 8853.49033 } } dps_results: { key: "TestArcane-AllItems-RelentlessEarthsiegeDiamond" value: { - dps: 14521.9824 - tps: 8869.59568 + dps: 14538.01729 + tps: 8882.77639 } } dps_results: { key: "TestArcane-AllItems-RevitalizingSkyflareDiamond" value: { - dps: 14146.43109 - tps: 8643.22117 + dps: 14088.71536 + tps: 8610.68116 } } dps_results: { key: "TestArcane-AllItems-RuneofRepulsion-40372" value: { - dps: 13542.58428 - tps: 8280.15955 + dps: 13578.12059 + tps: 8304.30744 } } dps_results: { key: "TestArcane-AllItems-SealofthePantheon-36993" value: { - dps: 13542.58428 - tps: 8280.15955 + dps: 13578.12059 + tps: 8304.30744 } } dps_results: { key: "TestArcane-AllItems-ShinyShardoftheGods" value: { - dps: 13542.58428 - tps: 8280.15955 + dps: 13578.12059 + tps: 8304.30744 } } dps_results: { key: "TestArcane-AllItems-Sindragosa'sFlawlessFang-50361" value: { - dps: 13542.58428 - tps: 8280.15955 + dps: 13578.12059 + tps: 8304.30744 } } dps_results: { key: "TestArcane-AllItems-SliverofPureIce-50339" value: { - dps: 13990.03288 - tps: 8551.78125 + dps: 14027.41879 + tps: 8576.63334 } } dps_results: { key: "TestArcane-AllItems-SliverofPureIce-50346" value: { - dps: 14043.97943 - tps: 8584.41223 + dps: 14089.95417 + tps: 8614.28662 } } dps_results: { key: "TestArcane-AllItems-SoulPreserver-37111" value: { - dps: 13708.39786 - tps: 8378.64584 + dps: 13744.34946 + tps: 8403.05982 } } dps_results: { key: "TestArcane-AllItems-SouloftheDead-40382" value: { - dps: 13860.05674 - tps: 8484.45382 + dps: 13872.34583 + tps: 8489.47317 } } dps_results: { key: "TestArcane-AllItems-SparkofLife-37657" value: { - dps: 13736.70742 - tps: 8399.2697 + dps: 13804.57819 + tps: 8443.60369 } } dps_results: { key: "TestArcane-AllItems-SphereofRedDragon'sBlood-37166" value: { - dps: 13590.27478 - tps: 8310.65814 + dps: 13605.70043 + tps: 8323.12653 } } dps_results: { key: "TestArcane-AllItems-SwiftSkyflareDiamond" value: { - dps: 14101.25579 - tps: 8614.51537 + dps: 14118.459 + tps: 8628.38179 } } dps_results: { key: "TestArcane-AllItems-SwiftStarflareDiamond" value: { - dps: 14101.25579 - tps: 8614.51537 + dps: 14118.459 + tps: 8628.38179 } } dps_results: { key: "TestArcane-AllItems-SwiftWindfireDiamond" value: { - dps: 14101.25579 - tps: 8614.51537 + dps: 14118.459 + tps: 8628.38179 } } dps_results: { key: "TestArcane-AllItems-TalismanofTrollDivinity-37734" value: { - dps: 13659.24748 - tps: 8350.78269 + dps: 13683.93133 + tps: 8368.93908 } } dps_results: { key: "TestArcane-AllItems-TearsoftheVanquished-47215" value: { - dps: 13743.10061 - tps: 8406.31242 + dps: 13798.77014 + tps: 8442.56807 } } dps_results: { key: "TestArcane-AllItems-TempestRegalia" value: { - dps: 7580.50708 - tps: 4658.33118 + dps: 7648.84988 + tps: 4701.75501 } } dps_results: { key: "TestArcane-AllItems-TheGeneral'sHeart-45507" value: { - dps: 13542.58428 - tps: 8280.15955 + dps: 13578.12059 + tps: 8304.30744 } } dps_results: { key: "TestArcane-AllItems-TheTwinBladesofAzzinoth" value: { - dps: 11225.85511 - tps: 6892.74553 + dps: 11256.69887 + tps: 6912.22205 } } dps_results: { key: "TestArcane-AllItems-ThunderingSkyflareDiamond" value: { - dps: 14101.25579 - tps: 8614.51537 + dps: 14118.459 + tps: 8628.38179 } } dps_results: { key: "TestArcane-AllItems-TinyAbominationinaJar-50351" value: { - dps: 13613.424 - tps: 8323.13689 + dps: 13628.36001 + tps: 8336.65114 } } dps_results: { key: "TestArcane-AllItems-TinyAbominationinaJar-50706" value: { - dps: 13613.424 - tps: 8323.13689 + dps: 13628.36001 + tps: 8336.65114 } } dps_results: { key: "TestArcane-AllItems-TirelessSkyflareDiamond" value: { - dps: 14156.48062 - tps: 8647.31629 + dps: 14173.7828 + tps: 8661.2568 } } dps_results: { key: "TestArcane-AllItems-TirelessStarflareDiamond" value: { - dps: 14145.43565 - tps: 8640.75611 + dps: 14162.71804 + tps: 8654.6818 } } dps_results: { key: "TestArcane-AllItems-TomeofArcanePhenomena-36972" value: { - dps: 13840.3577 - tps: 8460.30046 + dps: 13876.67355 + tps: 8484.05316 } } dps_results: { key: "TestArcane-AllItems-TrenchantEarthshatterDiamond" value: { - dps: 14145.43565 - tps: 8640.75611 + dps: 14162.71804 + tps: 8654.6818 } } dps_results: { key: "TestArcane-AllItems-TrenchantEarthsiegeDiamond" value: { - dps: 14156.48062 - tps: 8647.31629 + dps: 14173.7828 + tps: 8661.2568 } } dps_results: { key: "TestArcane-AllItems-WingedTalisman-37844" value: { - dps: 13712.14553 - tps: 8381.8963 + dps: 13745.82499 + tps: 8404.93008 } } dps_results: { key: "TestArcane-Average-Default" value: { - dps: 14579.27023 - tps: 8907.18091 + dps: 14618.47819 + tps: 8933.47759 } } dps_results: { - key: "TestArcane-Settings-Troll-P3Arcane-Arcane-AOE-FullBuffs-LongMultiTarget" + key: "TestArcane-Settings-Troll-P3Arcane-Arcane-arcane-FullBuffs-LongMultiTarget" value: { - dps: 34390.74719 - tps: 20893.51493 + dps: 14551.68527 + tps: 11014.38258 } } dps_results: { - key: "TestArcane-Settings-Troll-P3Arcane-Arcane-AOE-FullBuffs-LongSingleTarget" + key: "TestArcane-Settings-Troll-P3Arcane-Arcane-arcane-FullBuffs-LongSingleTarget" value: { - dps: 2825.0981 - tps: 1849.16181 + dps: 14551.68527 + tps: 8891.14041 } } dps_results: { - key: "TestArcane-Settings-Troll-P3Arcane-Arcane-AOE-FullBuffs-ShortSingleTarget" + key: "TestArcane-Settings-Troll-P3Arcane-Arcane-arcane-FullBuffs-ShortSingleTarget" value: { - dps: 4210.25884 - tps: 2592.73302 + dps: 19295.72056 + tps: 11643.5543 } } dps_results: { - key: "TestArcane-Settings-Troll-P3Arcane-Arcane-AOE-NoBuffs-LongMultiTarget" + key: "TestArcane-Settings-Troll-P3Arcane-Arcane-arcane-NoBuffs-LongMultiTarget" value: { - dps: 25551.56316 - tps: 15754.77702 + dps: 7174.78293 + tps: 5961.63372 } } dps_results: { - key: "TestArcane-Settings-Troll-P3Arcane-Arcane-AOE-NoBuffs-LongSingleTarget" + key: "TestArcane-Settings-Troll-P3Arcane-Arcane-arcane-NoBuffs-LongSingleTarget" value: { - dps: 1421.38523 - tps: 933.90562 + dps: 7174.78293 + tps: 4398.52524 } } dps_results: { - key: "TestArcane-Settings-Troll-P3Arcane-Arcane-AOE-NoBuffs-ShortSingleTarget" + key: "TestArcane-Settings-Troll-P3Arcane-Arcane-arcane-NoBuffs-ShortSingleTarget" value: { - dps: 2903.66492 - tps: 1739.02387 + dps: 10275.31405 + tps: 6150.84969 } } dps_results: { - key: "TestArcane-Settings-Troll-P3Arcane-Arcane-Arcane-FullBuffs-LongMultiTarget" + key: "TestArcane-Settings-Troll-P3Arcane-Arcane-arcane_aoe-FullBuffs-LongMultiTarget" value: { - dps: 14578.21017 - tps: 11028.51261 + dps: 34390.74719 + tps: 20893.51493 } } dps_results: { - key: "TestArcane-Settings-Troll-P3Arcane-Arcane-Arcane-FullBuffs-LongSingleTarget" + key: "TestArcane-Settings-Troll-P3Arcane-Arcane-arcane_aoe-FullBuffs-LongSingleTarget" value: { - dps: 14578.21017 - tps: 8903.64719 + dps: 2825.0981 + tps: 1849.16181 } } dps_results: { - key: "TestArcane-Settings-Troll-P3Arcane-Arcane-Arcane-FullBuffs-ShortSingleTarget" + key: "TestArcane-Settings-Troll-P3Arcane-Arcane-arcane_aoe-FullBuffs-ShortSingleTarget" value: { - dps: 19123.40433 - tps: 11524.76478 + dps: 4210.25884 + tps: 2592.73302 } } dps_results: { - key: "TestArcane-Settings-Troll-P3Arcane-Arcane-Arcane-NoBuffs-LongMultiTarget" + key: "TestArcane-Settings-Troll-P3Arcane-Arcane-arcane_aoe-NoBuffs-LongMultiTarget" value: { - dps: 7220.28374 - tps: 5969.11581 + dps: 25551.56316 + tps: 15754.77702 } } dps_results: { - key: "TestArcane-Settings-Troll-P3Arcane-Arcane-Arcane-NoBuffs-LongSingleTarget" + key: "TestArcane-Settings-Troll-P3Arcane-Arcane-arcane_aoe-NoBuffs-LongSingleTarget" value: { - dps: 7220.28374 - tps: 4420.85186 + dps: 1421.38523 + tps: 933.90562 } } dps_results: { - key: "TestArcane-Settings-Troll-P3Arcane-Arcane-Arcane-NoBuffs-ShortSingleTarget" + key: "TestArcane-Settings-Troll-P3Arcane-Arcane-arcane_aoe-NoBuffs-ShortSingleTarget" value: { - dps: 10293.14274 - tps: 6136.47355 + dps: 2903.66492 + tps: 1739.02387 } } dps_results: { key: "TestArcane-SwitchInFrontOfTarget-Default" value: { - dps: 14578.21017 - tps: 8903.64719 + dps: 14551.68527 + tps: 8891.14041 } } diff --git a/sim/mage/TestFire.results b/sim/mage/TestFire.results index 0fce94e86b..6d6de39930 100644 --- a/sim/mage/TestFire.results +++ b/sim/mage/TestFire.results @@ -46,808 +46,808 @@ character_stats_results: { dps_results: { key: "TestFire-AllItems-Althor'sAbacus-50359" value: { - dps: 13009.73246 - tps: 10459.13959 + dps: 13050.92204 + tps: 10493.67816 } } dps_results: { key: "TestFire-AllItems-Althor'sAbacus-50366" value: { - dps: 13060.92184 - tps: 10499.71648 + dps: 13102.24125 + tps: 10534.36303 } } dps_results: { key: "TestFire-AllItems-AustereEarthsiegeDiamond" value: { - dps: 13213.15739 - tps: 10621.06842 + dps: 13182.41711 + tps: 10598.39848 } } dps_results: { key: "TestFire-AllItems-Bandit'sInsignia-40371" value: { - dps: 12593.23709 - tps: 10128.99126 + dps: 12633.37027 + tps: 10162.65128 } } dps_results: { key: "TestFire-AllItems-BaubleofTrueBlood-50354" value: { - dps: 12653.24553 - tps: 10177.90318 - hps: 101.8257 + dps: 12607.2653 + tps: 10141.43265 + hps: 101.8722 } } dps_results: { key: "TestFire-AllItems-BaubleofTrueBlood-50726" value: { - dps: 12653.24553 - tps: 10177.90318 - hps: 101.8257 + dps: 12607.2653 + tps: 10141.43265 + hps: 101.8722 } } dps_results: { key: "TestFire-AllItems-BeamingEarthsiegeDiamond" value: { - dps: 13206.62694 - tps: 10618.8335 + dps: 13257.27212 + tps: 10660.58703 } } dps_results: { key: "TestFire-AllItems-BlessedRegaliaofUndeadCleansing" value: { - dps: 8445.44109 - tps: 6791.20362 + dps: 8496.72989 + tps: 6834.52938 } } dps_results: { key: "TestFire-AllItems-Bloodmage'sRegalia" value: { - dps: 11025.44682 - tps: 8867.29091 + dps: 11110.93471 + tps: 8939.9109 } } dps_results: { key: "TestFire-AllItems-BracingEarthsiegeDiamond" value: { - dps: 13271.42821 - tps: 10456.0182 + dps: 13240.50271 + tps: 10433.66593 } } dps_results: { key: "TestFire-AllItems-ChaoticSkyflareDiamond" value: { - dps: 13613.60554 - tps: 10941.62426 + dps: 13696.22596 + tps: 11011.82377 } } dps_results: { key: "TestFire-AllItems-CorpseTongueCoin-50349" value: { - dps: 12593.23709 - tps: 10128.99126 + dps: 12633.37027 + tps: 10162.65128 } } dps_results: { key: "TestFire-AllItems-CorpseTongueCoin-50352" value: { - dps: 12593.23709 - tps: 10128.99126 + dps: 12633.37027 + tps: 10162.65128 } } dps_results: { key: "TestFire-AllItems-CorrodedSkeletonKey-50356" value: { - dps: 12593.23709 - tps: 10128.99126 + dps: 12633.37027 + tps: 10162.65128 hps: 64 } } dps_results: { key: "TestFire-AllItems-DarkmoonCard:Berserker!-42989" value: { - dps: 12844.66173 - tps: 10333.46112 + dps: 12867.80135 + tps: 10352.74443 } } dps_results: { key: "TestFire-AllItems-DarkmoonCard:Death-42990" value: { - dps: 12916.82644 - tps: 10398.42727 + dps: 12992.62108 + tps: 10467.47871 } } dps_results: { key: "TestFire-AllItems-DarkmoonCard:Greatness-44255" value: { - dps: 12767.28909 - tps: 10274.31783 + dps: 12811.32682 + tps: 10308.11864 } } dps_results: { key: "TestFire-AllItems-Death'sChoice-47464" value: { - dps: 12593.23709 - tps: 10128.99126 + dps: 12633.37027 + tps: 10162.65128 } } dps_results: { key: "TestFire-AllItems-DeathKnight'sAnguish-38212" value: { - dps: 12671.84412 - tps: 10192.04844 + dps: 12641.84633 + tps: 10169.37788 } } dps_results: { key: "TestFire-AllItems-Deathbringer'sWill-50362" value: { - dps: 12593.23709 - tps: 10128.99126 + dps: 12633.37027 + tps: 10162.65128 } } dps_results: { key: "TestFire-AllItems-Deathbringer'sWill-50363" value: { - dps: 12593.23709 - tps: 10128.99126 + dps: 12633.37027 + tps: 10162.65128 } } dps_results: { key: "TestFire-AllItems-Defender'sCode-40257" value: { - dps: 12593.23709 - tps: 10128.99126 + dps: 12633.37027 + tps: 10162.65128 } } dps_results: { key: "TestFire-AllItems-DestructiveSkyflareDiamond" value: { - dps: 13202.4714 - tps: 10611.94022 + dps: 13281.58703 + tps: 10679.40052 } } dps_results: { key: "TestFire-AllItems-DislodgedForeignObject-50353" value: { - dps: 13569.6043 - tps: 10909.40323 + dps: 13485.31376 + tps: 10846.75782 } } dps_results: { key: "TestFire-AllItems-EffulgentSkyflareDiamond" value: { - dps: 13213.15739 - tps: 10621.06842 + dps: 13182.41711 + tps: 10598.39848 } } dps_results: { key: "TestFire-AllItems-EmberSkyflareDiamond" value: { - dps: 13245.714 - tps: 10650.14309 + dps: 13301.10997 + tps: 10695.4891 } } dps_results: { key: "TestFire-AllItems-EnigmaticSkyflareDiamond" value: { - dps: 13200.04066 - tps: 10609.83973 + dps: 13279.58803 + tps: 10677.46152 } } dps_results: { key: "TestFire-AllItems-EnigmaticStarflareDiamond" value: { - dps: 13154.50799 - tps: 10573.32189 + dps: 13230.43102 + tps: 10638.05752 } } dps_results: { key: "TestFire-AllItems-EphemeralSnowflake-50260" value: { - dps: 12743.86845 - tps: 10249.68141 + dps: 12810.72192 + tps: 10303.5138 } } dps_results: { key: "TestFire-AllItems-EssenceofGossamer-37220" value: { - dps: 12593.23709 - tps: 10128.99126 + dps: 12633.37027 + tps: 10162.65128 } } dps_results: { key: "TestFire-AllItems-EternalEarthsiegeDiamond" value: { - dps: 13213.15739 - tps: 10621.06842 + dps: 13182.41711 + tps: 10598.39848 } } dps_results: { key: "TestFire-AllItems-ExtractofNecromanticPower-40373" value: { - dps: 12919.82202 - tps: 10401.16455 + dps: 12886.31351 + tps: 10378.93568 } } dps_results: { key: "TestFire-AllItems-EyeoftheBroodmother-45308" value: { - dps: 13146.52339 - tps: 10574.94741 + dps: 13111.84425 + tps: 10546.71723 } } dps_results: { key: "TestFire-AllItems-Figurine-SapphireOwl-42413" value: { - dps: 12663.45091 - tps: 10190.52371 + dps: 12585.13967 + tps: 10128.83986 } } dps_results: { key: "TestFire-AllItems-ForethoughtTalisman-40258" value: { - dps: 12851.51075 - tps: 10333.72011 + dps: 12892.29902 + tps: 10367.92493 } } dps_results: { key: "TestFire-AllItems-ForgeEmber-37660" value: { - dps: 12992.89334 - tps: 10449.8256 + dps: 12981.88371 + tps: 10442.68753 } } dps_results: { key: "TestFire-AllItems-ForlornSkyflareDiamond" value: { - dps: 13271.42821 - tps: 10667.25223 + dps: 13240.50271 + tps: 10644.44151 } } dps_results: { key: "TestFire-AllItems-ForlornStarflareDiamond" value: { - dps: 13259.77405 - tps: 10658.01547 + dps: 13228.88559 + tps: 10635.23291 } } dps_results: { key: "TestFire-AllItems-FrostfireGarb" value: { - dps: 9186.01415 - tps: 7401.69572 + dps: 9228.31822 + tps: 7437.6019 } } dps_results: { key: "TestFire-AllItems-FuryoftheFiveFlights-40431" value: { - dps: 12593.23709 - tps: 10128.99126 + dps: 12633.37027 + tps: 10162.65128 } } dps_results: { key: "TestFire-AllItems-FuturesightRune-38763" value: { - dps: 12836.40884 - tps: 10322.7898 + dps: 12821.609 + tps: 10311.74258 } } dps_results: { key: "TestFire-AllItems-Gladiator'sRegalia" value: { - dps: 9578.81514 - tps: 7704.83505 + dps: 9618.08044 + tps: 7740.06118 } } dps_results: { key: "TestFire-AllItems-GlowingTwilightScale-54573" value: { - dps: 13035.32715 - tps: 10479.42804 + dps: 13076.58164 + tps: 10514.0206 } } dps_results: { key: "TestFire-AllItems-GlowingTwilightScale-54589" value: { - dps: 13093.49689 - tps: 10525.53814 + dps: 13134.89893 + tps: 10560.2534 } } dps_results: { key: "TestFire-AllItems-GnomishLightningGenerator-41121" value: { - dps: 12899.36965 - tps: 10384.66521 + dps: 12957.31109 + tps: 10432.03828 } } dps_results: { key: "TestFire-AllItems-Heartpierce-49982" value: { - dps: 13613.60554 - tps: 10941.62426 + dps: 13696.22596 + tps: 11011.82377 } } dps_results: { key: "TestFire-AllItems-Heartpierce-50641" value: { - dps: 13613.60554 - tps: 10941.62426 + dps: 13696.22596 + tps: 11011.82377 } } dps_results: { key: "TestFire-AllItems-IllustrationoftheDragonSoul-40432" value: { - dps: 13040.50003 - tps: 10485.08597 + dps: 13081.57092 + tps: 10519.49571 } } dps_results: { key: "TestFire-AllItems-ImpassiveSkyflareDiamond" value: { - dps: 13200.04066 - tps: 10609.83973 + dps: 13279.58803 + tps: 10677.46152 } } dps_results: { key: "TestFire-AllItems-ImpassiveStarflareDiamond" value: { - dps: 13154.50799 - tps: 10573.32189 + dps: 13230.43102 + tps: 10638.05752 } } dps_results: { key: "TestFire-AllItems-IncisorFragment-37723" value: { - dps: 12593.23709 - tps: 10128.99126 + dps: 12633.37027 + tps: 10162.65128 } } dps_results: { key: "TestFire-AllItems-InsightfulEarthsiegeDiamond" value: { - dps: 13280.67816 - tps: 10686.06365 + dps: 13224.72689 + tps: 10640.98504 } } dps_results: { key: "TestFire-AllItems-InvigoratingEarthsiegeDiamond" value: { - dps: 13213.15739 - tps: 10621.06842 + dps: 13182.41711 + tps: 10598.39848 } } dps_results: { key: "TestFire-AllItems-Khadgar'sRegalia" value: { - dps: 10121.19603 - tps: 8154.88625 + dps: 10167.34511 + tps: 8194.89725 } } dps_results: { key: "TestFire-AllItems-KirinTorGarb" value: { - dps: 10307.98533 - tps: 8291.9181 + dps: 10238.55982 + tps: 8238.05911 } } dps_results: { key: "TestFire-AllItems-Lavanthor'sTalisman-37872" value: { - dps: 12593.23709 - tps: 10128.99126 + dps: 12633.37027 + tps: 10162.65128 } } dps_results: { key: "TestFire-AllItems-MajesticDragonFigurine-40430" value: { - dps: 12947.07014 - tps: 10414.65918 + dps: 12931.74314 + tps: 10402.57264 } } dps_results: { key: "TestFire-AllItems-MeteoriteWhetstone-37390" value: { - dps: 12774.40385 - tps: 10276.11025 + dps: 12765.54723 + tps: 10270.06969 } } dps_results: { key: "TestFire-AllItems-NevermeltingIceCrystal-50259" value: { - dps: 12979.74604 - tps: 10438.52779 + dps: 12955.91838 + tps: 10420.82727 } } dps_results: { key: "TestFire-AllItems-Nibelung-49992" value: { - dps: 13613.60554 - tps: 10941.62426 + dps: 13696.22596 + tps: 11011.82377 } } dps_results: { key: "TestFire-AllItems-Nibelung-50648" value: { - dps: 13613.60554 - tps: 10941.62426 + dps: 13696.22596 + tps: 11011.82377 } } dps_results: { key: "TestFire-AllItems-OfferingofSacrifice-37638" value: { - dps: 12593.23709 - tps: 10128.99126 + dps: 12633.37027 + tps: 10162.65128 } } dps_results: { key: "TestFire-AllItems-PersistentEarthshatterDiamond" value: { - dps: 13213.15739 - tps: 10621.06842 + dps: 13182.41711 + tps: 10598.39848 } } dps_results: { key: "TestFire-AllItems-PersistentEarthsiegeDiamond" value: { - dps: 13213.15739 - tps: 10621.06842 + dps: 13182.41711 + tps: 10598.39848 } } dps_results: { key: "TestFire-AllItems-PetrifiedScarab-21685" value: { - dps: 12593.23709 - tps: 10128.99126 + dps: 12633.37027 + tps: 10162.65128 } } dps_results: { key: "TestFire-AllItems-PetrifiedTwilightScale-54571" value: { - dps: 12593.23709 - tps: 10128.99126 + dps: 12633.37027 + tps: 10162.65128 } } dps_results: { key: "TestFire-AllItems-PetrifiedTwilightScale-54591" value: { - dps: 12593.23709 - tps: 10128.99126 + dps: 12633.37027 + tps: 10162.65128 } } dps_results: { key: "TestFire-AllItems-PowerfulEarthshatterDiamond" value: { - dps: 13213.15739 - tps: 10621.06842 + dps: 13182.41711 + tps: 10598.39848 } } dps_results: { key: "TestFire-AllItems-PowerfulEarthsiegeDiamond" value: { - dps: 13213.15739 - tps: 10621.06842 + dps: 13182.41711 + tps: 10598.39848 } } dps_results: { key: "TestFire-AllItems-PurifiedShardoftheGods" value: { - dps: 12593.23709 - tps: 10128.99126 + dps: 12633.37027 + tps: 10162.65128 } } dps_results: { key: "TestFire-AllItems-ReignoftheDead-47316" value: { - dps: 13173.48746 - tps: 10637.00144 + dps: 13281.77902 + tps: 10725.03758 } } dps_results: { key: "TestFire-AllItems-ReignoftheDead-47477" value: { - dps: 13243.01567 - tps: 10697.84982 + dps: 13352.11626 + tps: 10786.62605 } } dps_results: { key: "TestFire-AllItems-RelentlessEarthsiegeDiamond" value: { - dps: 13626.63338 - tps: 10952.73484 + dps: 13594.47956 + tps: 10929.05549 } } dps_results: { key: "TestFire-AllItems-RevitalizingSkyflareDiamond" value: { - dps: 13163.97025 - tps: 10583.05294 + dps: 13186.88359 + tps: 10603.75905 } } dps_results: { key: "TestFire-AllItems-RuneofRepulsion-40372" value: { - dps: 12593.23709 - tps: 10128.99126 + dps: 12633.37027 + tps: 10162.65128 } } dps_results: { key: "TestFire-AllItems-SealofthePantheon-36993" value: { - dps: 12593.23709 - tps: 10128.99126 + dps: 12633.37027 + tps: 10162.65128 } } dps_results: { key: "TestFire-AllItems-ShinyShardoftheGods" value: { - dps: 12593.23709 - tps: 10128.99126 + dps: 12633.37027 + tps: 10162.65128 } } dps_results: { key: "TestFire-AllItems-Sindragosa'sFlawlessFang-50361" value: { - dps: 12593.23709 - tps: 10128.99126 + dps: 12633.37027 + tps: 10162.65128 } } dps_results: { key: "TestFire-AllItems-SliverofPureIce-50339" value: { - dps: 12998.59317 - tps: 10456.22661 + dps: 12966.96949 + tps: 10432.15885 } } dps_results: { key: "TestFire-AllItems-SliverofPureIce-50346" value: { - dps: 12986.69493 - tps: 10447.58126 + dps: 13018.42674 + tps: 10474.23052 } } dps_results: { key: "TestFire-AllItems-SoulPreserver-37111" value: { - dps: 12767.74632 - tps: 10267.32157 + dps: 12808.32213 + tps: 10301.34969 } } dps_results: { key: "TestFire-AllItems-SouloftheDead-40382" value: { - dps: 12893.59421 - tps: 10381.32094 + dps: 12890.14975 + tps: 10378.59237 } } dps_results: { key: "TestFire-AllItems-SparkofLife-37657" value: { - dps: 12742.45058 - tps: 10251.94786 + dps: 12923.32277 + tps: 10396.06878 } } dps_results: { key: "TestFire-AllItems-SphereofRedDragon'sBlood-37166" value: { - dps: 13021.57212 - tps: 10473.82207 + dps: 13017.99411 + tps: 10470.33439 } } dps_results: { key: "TestFire-AllItems-SwiftSkyflareDiamond" value: { - dps: 13213.15739 - tps: 10621.06842 + dps: 13182.41711 + tps: 10598.39848 } } dps_results: { key: "TestFire-AllItems-SwiftStarflareDiamond" value: { - dps: 13213.15739 - tps: 10621.06842 + dps: 13182.41711 + tps: 10598.39848 } } dps_results: { key: "TestFire-AllItems-SwiftWindfireDiamond" value: { - dps: 13213.15739 - tps: 10621.06842 + dps: 13182.41711 + tps: 10598.39848 } } dps_results: { key: "TestFire-AllItems-TalismanofTrollDivinity-37734" value: { - dps: 12757.82678 - tps: 10262.04594 + dps: 12755.56128 + tps: 10261.03623 } } dps_results: { key: "TestFire-AllItems-TearsoftheVanquished-47215" value: { - dps: 12715.43529 - tps: 10230.5827 + dps: 12642.43804 + tps: 10170.60414 } } dps_results: { key: "TestFire-AllItems-TempestRegalia" value: { - dps: 6810.93859 - tps: 5486.78282 + dps: 6832.9785 + tps: 5505.62305 } } dps_results: { key: "TestFire-AllItems-TheGeneral'sHeart-45507" value: { - dps: 12593.23709 - tps: 10128.99126 + dps: 12633.37027 + tps: 10162.65128 } } dps_results: { key: "TestFire-AllItems-TheTwinBladesofAzzinoth" value: { - dps: 10373.86472 - tps: 8362.21849 + dps: 10386.62862 + tps: 8372.57186 } } dps_results: { key: "TestFire-AllItems-ThunderingSkyflareDiamond" value: { - dps: 13213.15739 - tps: 10621.06842 + dps: 13182.41711 + tps: 10598.39848 } } dps_results: { key: "TestFire-AllItems-TinyAbominationinaJar-50351" value: { - dps: 13210.95227 - tps: 10624.73369 + dps: 13112.05552 + tps: 10545.82206 } } dps_results: { key: "TestFire-AllItems-TinyAbominationinaJar-50706" value: { - dps: 13210.95227 - tps: 10624.73369 + dps: 13112.05552 + tps: 10545.82206 } } dps_results: { key: "TestFire-AllItems-TirelessSkyflareDiamond" value: { - dps: 13271.42821 - tps: 10667.25223 + dps: 13240.50271 + tps: 10644.44151 } } dps_results: { key: "TestFire-AllItems-TirelessStarflareDiamond" value: { - dps: 13259.77405 - tps: 10658.01547 + dps: 13228.88559 + tps: 10635.23291 } } dps_results: { key: "TestFire-AllItems-TomeofArcanePhenomena-36972" value: { - dps: 12902.27585 - tps: 10374.25295 + dps: 12973.36435 + tps: 10434.30034 } } dps_results: { key: "TestFire-AllItems-TrenchantEarthshatterDiamond" value: { - dps: 13259.77405 - tps: 10658.01547 + dps: 13228.88559 + tps: 10635.23291 } } dps_results: { key: "TestFire-AllItems-TrenchantEarthsiegeDiamond" value: { - dps: 13271.42821 - tps: 10667.25223 + dps: 13240.50271 + tps: 10644.44151 } } dps_results: { key: "TestFire-AllItems-WingedTalisman-37844" value: { - dps: 12787.79649 - tps: 10284.63878 + dps: 12828.6519 + tps: 10318.87658 } } dps_results: { key: "TestFire-Average-Default" value: { - dps: 13634.41428 - tps: 10959.27035 + dps: 13652.0991 + tps: 10976.43553 } } dps_results: { - key: "TestFire-Settings-Troll-P3Fire-Fire-AOE-FullBuffs-LongMultiTarget" + key: "TestFire-Settings-Troll-P3Fire-Fire-fire-FullBuffs-LongMultiTarget" value: { - dps: 73439.40747 - tps: 62123.05375 + dps: 47076.87642 + tps: 40177.5124 } } dps_results: { - key: "TestFire-Settings-Troll-P3Fire-Fire-AOE-FullBuffs-LongSingleTarget" + key: "TestFire-Settings-Troll-P3Fire-Fire-fire-FullBuffs-LongSingleTarget" value: { - dps: 4912.55952 - tps: 3881.81937 + dps: 13696.22596 + tps: 11011.82377 } } dps_results: { - key: "TestFire-Settings-Troll-P3Fire-Fire-AOE-FullBuffs-ShortSingleTarget" + key: "TestFire-Settings-Troll-P3Fire-Fire-fire-FullBuffs-ShortSingleTarget" value: { - dps: 6440.61661 - tps: 4927.92905 + dps: 16630.88075 + tps: 13267.88098 } } dps_results: { - key: "TestFire-Settings-Troll-P3Fire-Fire-AOE-NoBuffs-LongMultiTarget" + key: "TestFire-Settings-Troll-P3Fire-Fire-fire-NoBuffs-LongMultiTarget" value: { - dps: 45404.10816 - tps: 39239.2606 + dps: 31793.56607 + tps: 28683.02601 } } dps_results: { - key: "TestFire-Settings-Troll-P3Fire-Fire-AOE-NoBuffs-LongSingleTarget" + key: "TestFire-Settings-Troll-P3Fire-Fire-fire-NoBuffs-LongSingleTarget" value: { - dps: 2131.43566 - tps: 1686.27011 + dps: 5456.23974 + tps: 4380.70041 } } dps_results: { - key: "TestFire-Settings-Troll-P3Fire-Fire-AOE-NoBuffs-ShortSingleTarget" + key: "TestFire-Settings-Troll-P3Fire-Fire-fire-NoBuffs-ShortSingleTarget" value: { - dps: 4014.60524 - tps: 3017.05358 + dps: 8665.05099 + tps: 6852.1089 } } dps_results: { - key: "TestFire-Settings-Troll-P3Fire-Fire-Fire-FullBuffs-LongMultiTarget" + key: "TestFire-Settings-Troll-P3Fire-Fire-fire_aoe-FullBuffs-LongMultiTarget" value: { - dps: 46692.28774 - tps: 39832.73269 + dps: 73439.40747 + tps: 62123.05375 } } dps_results: { - key: "TestFire-Settings-Troll-P3Fire-Fire-Fire-FullBuffs-LongSingleTarget" + key: "TestFire-Settings-Troll-P3Fire-Fire-fire_aoe-FullBuffs-LongSingleTarget" value: { - dps: 13613.60554 - tps: 10941.62426 + dps: 4912.55952 + tps: 3881.81937 } } dps_results: { - key: "TestFire-Settings-Troll-P3Fire-Fire-Fire-FullBuffs-ShortSingleTarget" + key: "TestFire-Settings-Troll-P3Fire-Fire-fire_aoe-FullBuffs-ShortSingleTarget" value: { - dps: 16249.70136 - tps: 12944.95493 + dps: 6440.61661 + tps: 4927.92905 } } dps_results: { - key: "TestFire-Settings-Troll-P3Fire-Fire-Fire-NoBuffs-LongMultiTarget" + key: "TestFire-Settings-Troll-P3Fire-Fire-fire_aoe-NoBuffs-LongMultiTarget" value: { - dps: 31450.8261 - tps: 28434.95037 + dps: 45404.10816 + tps: 39239.2606 } } dps_results: { - key: "TestFire-Settings-Troll-P3Fire-Fire-Fire-NoBuffs-LongSingleTarget" + key: "TestFire-Settings-Troll-P3Fire-Fire-fire_aoe-NoBuffs-LongSingleTarget" value: { - dps: 5491.48406 - tps: 4406.49582 + dps: 2131.43566 + tps: 1686.27011 } } dps_results: { - key: "TestFire-Settings-Troll-P3Fire-Fire-Fire-NoBuffs-ShortSingleTarget" + key: "TestFire-Settings-Troll-P3Fire-Fire-fire_aoe-NoBuffs-ShortSingleTarget" value: { - dps: 8689.36423 - tps: 6865.11851 + dps: 4014.60524 + tps: 3017.05358 } } dps_results: { key: "TestFire-SwitchInFrontOfTarget-Default" value: { - dps: 13613.60554 - tps: 10941.62426 + dps: 13696.22596 + tps: 11011.82377 } } diff --git a/sim/mage/TestFrost.results b/sim/mage/TestFrost.results index 701d610185..d912f47d48 100644 --- a/sim/mage/TestFrost.results +++ b/sim/mage/TestFrost.results @@ -46,802 +46,802 @@ character_stats_results: { dps_results: { key: "TestFrost-AllItems-Althor'sAbacus-50359" value: { - dps: 10351.89539 - tps: 8570.38605 + dps: 10340.58007 + tps: 8557.73439 } } dps_results: { key: "TestFrost-AllItems-Althor'sAbacus-50366" value: { - dps: 10392.46196 - tps: 8604.19582 + dps: 10381.10438 + tps: 8591.50348 } } dps_results: { key: "TestFrost-AllItems-AustereEarthsiegeDiamond" value: { - dps: 10286.53252 - tps: 8523.53765 + dps: 10378.25772 + tps: 8620.19591 } } dps_results: { key: "TestFrost-AllItems-Bandit'sInsignia-40371" value: { - dps: 10021.83104 - tps: 8295.29743 + dps: 10010.85956 + tps: 8282.9768 } } dps_results: { key: "TestFrost-AllItems-BaubleofTrueBlood-50354" value: { - dps: 10022.60449 - tps: 8296.31856 - hps: 100.90859 + dps: 10009.70812 + tps: 8282.31406 + hps: 100.63886 } } dps_results: { key: "TestFrost-AllItems-BaubleofTrueBlood-50726" value: { - dps: 10022.60449 - tps: 8296.31856 - hps: 100.90859 + dps: 10009.70812 + tps: 8282.31406 + hps: 100.63886 } } dps_results: { key: "TestFrost-AllItems-BeamingEarthsiegeDiamond" value: { - dps: 10322.7908 - tps: 8555.78736 + dps: 10397.70526 + tps: 8637.04753 } } dps_results: { key: "TestFrost-AllItems-BlessedRegaliaofUndeadCleansing" value: { - dps: 7493.75441 - tps: 6114.13938 + dps: 7543.59614 + tps: 6159.46156 } } dps_results: { key: "TestFrost-AllItems-Bloodmage'sRegalia" value: { - dps: 9069.10451 - tps: 7492.17968 + dps: 9092.95698 + tps: 7513.8647 } } dps_results: { key: "TestFrost-AllItems-BracingEarthsiegeDiamond" value: { - dps: 10331.94788 - tps: 8390.58952 + dps: 10424.07215 + tps: 8485.72798 } } dps_results: { key: "TestFrost-AllItems-ChaoticSkyflareDiamond" value: { - dps: 10642.87689 - tps: 8843.86491 + dps: 10722.22181 + tps: 8929.47868 } } dps_results: { key: "TestFrost-AllItems-CorpseTongueCoin-50349" value: { - dps: 10021.83104 - tps: 8295.29743 + dps: 10010.85956 + tps: 8282.9768 } } dps_results: { key: "TestFrost-AllItems-CorpseTongueCoin-50352" value: { - dps: 10021.83104 - tps: 8295.29743 + dps: 10010.85956 + tps: 8282.9768 } } dps_results: { key: "TestFrost-AllItems-CorrodedSkeletonKey-50356" value: { - dps: 10021.83104 - tps: 8295.29743 + dps: 10010.85956 + tps: 8282.9768 hps: 64 } } dps_results: { key: "TestFrost-AllItems-DarkmoonCard:Berserker!-42989" value: { - dps: 10073.08382 - tps: 8344.06018 + dps: 10122.18227 + tps: 8384.63654 } } dps_results: { key: "TestFrost-AllItems-DarkmoonCard:Death-42990" value: { - dps: 10060.97546 - tps: 8326.30257 + dps: 10129.1102 + tps: 8394.44012 } } dps_results: { key: "TestFrost-AllItems-DarkmoonCard:Greatness-44255" value: { - dps: 10056.33025 - tps: 8339.4118 + dps: 10074.76059 + tps: 8339.84433 } } dps_results: { key: "TestFrost-AllItems-Death'sChoice-47464" value: { - dps: 10021.83104 - tps: 8295.29743 + dps: 10010.85956 + tps: 8282.9768 } } dps_results: { key: "TestFrost-AllItems-DeathKnight'sAnguish-38212" value: { - dps: 10028.56885 - tps: 8302.15318 + dps: 10044.95407 + tps: 8312.07263 } } dps_results: { key: "TestFrost-AllItems-Deathbringer'sWill-50362" value: { - dps: 10021.83104 - tps: 8295.29743 + dps: 10010.85956 + tps: 8282.9768 } } dps_results: { key: "TestFrost-AllItems-Deathbringer'sWill-50363" value: { - dps: 10021.83104 - tps: 8295.29743 + dps: 10010.85956 + tps: 8282.9768 } } dps_results: { key: "TestFrost-AllItems-Defender'sCode-40257" value: { - dps: 10021.83104 - tps: 8295.29743 + dps: 10010.85956 + tps: 8282.9768 } } dps_results: { key: "TestFrost-AllItems-DestructiveSkyflareDiamond" value: { - dps: 10325.39712 - tps: 8559.47228 + dps: 10432.12427 + tps: 8669.37886 } } dps_results: { key: "TestFrost-AllItems-DislodgedForeignObject-50353" value: { - dps: 10531.6436 - tps: 8740.18067 + dps: 10617.19409 + tps: 8834.11625 } } dps_results: { key: "TestFrost-AllItems-EffulgentSkyflareDiamond" value: { - dps: 10286.53252 - tps: 8523.53765 + dps: 10378.25772 + tps: 8620.19591 } } dps_results: { key: "TestFrost-AllItems-EmberSkyflareDiamond" value: { - dps: 10342.62561 - tps: 8568.04272 + dps: 10432.41912 + tps: 8664.07428 } } dps_results: { key: "TestFrost-AllItems-EnigmaticSkyflareDiamond" value: { - dps: 10322.81096 - tps: 8556.46938 + dps: 10397.53525 + tps: 8637.95129 } } dps_results: { key: "TestFrost-AllItems-EnigmaticStarflareDiamond" value: { - dps: 10303.9638 - tps: 8537.94066 + dps: 10393.70242 + tps: 8634.91199 } } dps_results: { key: "TestFrost-AllItems-EphemeralSnowflake-50260" value: { - dps: 10106.79083 - tps: 8370.1159 + dps: 10073.56235 + tps: 8341.50699 } } dps_results: { key: "TestFrost-AllItems-EssenceofGossamer-37220" value: { - dps: 10021.83104 - tps: 8295.29743 + dps: 10010.85956 + tps: 8282.9768 } } dps_results: { key: "TestFrost-AllItems-EternalEarthsiegeDiamond" value: { - dps: 10286.53252 - tps: 8523.53765 + dps: 10378.25772 + tps: 8620.19591 } } dps_results: { key: "TestFrost-AllItems-ExtractofNecromanticPower-40373" value: { - dps: 10075.9938 - tps: 8343.64054 + dps: 10081.88293 + tps: 8343.08529 } } dps_results: { key: "TestFrost-AllItems-EyeoftheBroodmother-45308" value: { - dps: 10298.02163 - tps: 8544.29858 + dps: 10344.79215 + tps: 8583.49264 } } dps_results: { key: "TestFrost-AllItems-Figurine-SapphireOwl-42413" value: { - dps: 10026.87874 - tps: 8299.36962 + dps: 10030.62929 + tps: 8300.80982 } } dps_results: { key: "TestFrost-AllItems-ForethoughtTalisman-40258" value: { - dps: 10226.50781 - tps: 8465.88311 + dps: 10215.32312 + tps: 8453.3572 } } dps_results: { key: "TestFrost-AllItems-ForgeEmber-37660" value: { - dps: 10215.33699 - tps: 8470.80732 + dps: 10241.13636 + tps: 8489.11817 } } dps_results: { key: "TestFrost-AllItems-ForlornSkyflareDiamond" value: { - dps: 10331.94788 - tps: 8561.31685 + dps: 10424.07215 + tps: 8658.38845 } } dps_results: { key: "TestFrost-AllItems-ForlornStarflareDiamond" value: { - dps: 10322.86481 - tps: 8553.76101 + dps: 10414.90927 + tps: 8650.74994 } } dps_results: { key: "TestFrost-AllItems-FrostfireGarb" value: { - dps: 7439.48082 - tps: 6061.72773 + dps: 7425.3438 + tps: 6044.72614 } } dps_results: { key: "TestFrost-AllItems-FuryoftheFiveFlights-40431" value: { - dps: 10021.83104 - tps: 8295.29743 + dps: 10010.85956 + tps: 8282.9768 } } dps_results: { key: "TestFrost-AllItems-FuturesightRune-38763" value: { - dps: 10136.41222 - tps: 8389.89329 + dps: 10125.4388 + tps: 8377.22082 } } dps_results: { key: "TestFrost-AllItems-Gladiator'sRegalia" value: { - dps: 7947.85396 - tps: 6460.39169 + dps: 7929.25036 + tps: 6455.65716 } } dps_results: { key: "TestFrost-AllItems-GlowingTwilightScale-54573" value: { - dps: 10372.17867 - tps: 8587.29094 + dps: 10360.84223 + tps: 8574.61894 } } dps_results: { key: "TestFrost-AllItems-GlowingTwilightScale-54589" value: { - dps: 10418.27704 - tps: 8625.71113 + dps: 10406.89258 + tps: 8612.9929 } } dps_results: { key: "TestFrost-AllItems-GnomishLightningGenerator-41121" value: { - dps: 10058.40262 - tps: 8326.44827 + dps: 10122.48867 + tps: 8385.63211 } } dps_results: { key: "TestFrost-AllItems-Heartpierce-49982" value: { - dps: 10642.87689 - tps: 8843.86491 + dps: 10722.22181 + tps: 8929.47868 } } dps_results: { key: "TestFrost-AllItems-Heartpierce-50641" value: { - dps: 10642.87689 - tps: 8843.86491 + dps: 10722.22181 + tps: 8929.47868 } } dps_results: { key: "TestFrost-AllItems-IllustrationoftheDragonSoul-40432" value: { - dps: 10358.24533 - tps: 8594.71981 + dps: 10346.54117 + tps: 8581.74308 } } dps_results: { key: "TestFrost-AllItems-ImpassiveSkyflareDiamond" value: { - dps: 10322.81096 - tps: 8556.46938 + dps: 10397.53525 + tps: 8637.95129 } } dps_results: { key: "TestFrost-AllItems-ImpassiveStarflareDiamond" value: { - dps: 10303.9638 - tps: 8537.94066 + dps: 10393.70242 + tps: 8634.91199 } } dps_results: { key: "TestFrost-AllItems-IncisorFragment-37723" value: { - dps: 10021.83104 - tps: 8295.29743 + dps: 10010.85956 + tps: 8282.9768 } } dps_results: { key: "TestFrost-AllItems-InsightfulEarthsiegeDiamond" value: { - dps: 10297.1948 - tps: 8534.42859 + dps: 10379.89945 + tps: 8623.23041 } } dps_results: { key: "TestFrost-AllItems-InvigoratingEarthsiegeDiamond" value: { - dps: 10286.53252 - tps: 8523.53765 + dps: 10378.25772 + tps: 8620.19591 } } dps_results: { key: "TestFrost-AllItems-Khadgar'sRegalia" value: { - dps: 8111.08633 - tps: 6638.04194 + dps: 8195.68556 + tps: 6717.07931 } } dps_results: { key: "TestFrost-AllItems-KirinTorGarb" value: { - dps: 8033.68677 - tps: 6567.43488 + dps: 8060.84547 + tps: 6600.27105 } } dps_results: { key: "TestFrost-AllItems-Lavanthor'sTalisman-37872" value: { - dps: 10021.83104 - tps: 8295.29743 + dps: 10010.85956 + tps: 8282.9768 } } dps_results: { key: "TestFrost-AllItems-MajesticDragonFigurine-40430" value: { - dps: 10022.45073 - tps: 8291.17489 + dps: 10011.62066 + tps: 8278.40988 } } dps_results: { key: "TestFrost-AllItems-MeteoriteWhetstone-37390" value: { - dps: 10048.85985 - tps: 8322.64708 + dps: 10071.72963 + tps: 8338.55307 } } dps_results: { key: "TestFrost-AllItems-NevermeltingIceCrystal-50259" value: { - dps: 10272.06217 - tps: 8511.4276 + dps: 10252.52663 + tps: 8482.66534 } } dps_results: { key: "TestFrost-AllItems-Nibelung-49992" value: { - dps: 10642.87689 - tps: 8843.86491 + dps: 10722.22181 + tps: 8929.47868 } } dps_results: { key: "TestFrost-AllItems-Nibelung-50648" value: { - dps: 10642.87689 - tps: 8843.86491 + dps: 10722.22181 + tps: 8929.47868 } } dps_results: { key: "TestFrost-AllItems-OfferingofSacrifice-37638" value: { - dps: 10021.83104 - tps: 8295.29743 + dps: 10010.85956 + tps: 8282.9768 } } dps_results: { key: "TestFrost-AllItems-PersistentEarthshatterDiamond" value: { - dps: 10286.53252 - tps: 8523.53765 + dps: 10378.25772 + tps: 8620.19591 } } dps_results: { key: "TestFrost-AllItems-PersistentEarthsiegeDiamond" value: { - dps: 10286.53252 - tps: 8523.53765 + dps: 10378.25772 + tps: 8620.19591 } } dps_results: { key: "TestFrost-AllItems-PetrifiedScarab-21685" value: { - dps: 10021.83104 - tps: 8295.29743 + dps: 10009.38181 + tps: 8281.64682 } } dps_results: { key: "TestFrost-AllItems-PetrifiedTwilightScale-54571" value: { - dps: 10021.83104 - tps: 8295.29743 + dps: 10010.85956 + tps: 8282.9768 } } dps_results: { key: "TestFrost-AllItems-PetrifiedTwilightScale-54591" value: { - dps: 10021.83104 - tps: 8295.29743 + dps: 10010.85956 + tps: 8282.9768 } } dps_results: { key: "TestFrost-AllItems-PowerfulEarthshatterDiamond" value: { - dps: 10286.53252 - tps: 8523.53765 + dps: 10378.25772 + tps: 8620.19591 } } dps_results: { key: "TestFrost-AllItems-PowerfulEarthsiegeDiamond" value: { - dps: 10286.53252 - tps: 8523.53765 + dps: 10378.25772 + tps: 8620.19591 } } dps_results: { key: "TestFrost-AllItems-PurifiedShardoftheGods" value: { - dps: 10021.83104 - tps: 8295.29743 + dps: 10010.85956 + tps: 8282.9768 } } dps_results: { key: "TestFrost-AllItems-ReignoftheDead-47316" value: { - dps: 10421.89104 - tps: 8646.88526 + dps: 10518.99369 + tps: 8753.53117 } } dps_results: { key: "TestFrost-AllItems-ReignoftheDead-47477" value: { - dps: 10482.78463 - tps: 8702.25018 + dps: 10580.36186 + tps: 8809.39195 } } dps_results: { key: "TestFrost-AllItems-RelentlessEarthsiegeDiamond" value: { - dps: 10603.40803 - tps: 8808.0632 + dps: 10701.36241 + tps: 8910.31149 } } dps_results: { key: "TestFrost-AllItems-RevitalizingSkyflareDiamond" value: { - dps: 10286.4184 - tps: 8522.65594 + dps: 10378.0483 + tps: 8617.71413 } } dps_results: { key: "TestFrost-AllItems-RuneofRepulsion-40372" value: { - dps: 10021.83104 - tps: 8295.29743 + dps: 10010.85956 + tps: 8282.9768 } } dps_results: { key: "TestFrost-AllItems-SealofthePantheon-36993" value: { - dps: 10021.83104 - tps: 8295.29743 + dps: 10010.85956 + tps: 8282.9768 } } dps_results: { key: "TestFrost-AllItems-ShinyShardoftheGods" value: { - dps: 10021.83104 - tps: 8295.29743 + dps: 10010.85956 + tps: 8282.9768 } } dps_results: { key: "TestFrost-AllItems-Sindragosa'sFlawlessFang-50361" value: { - dps: 10021.83104 - tps: 8295.29743 + dps: 10010.85956 + tps: 8282.9768 } } dps_results: { key: "TestFrost-AllItems-SliverofPureIce-50339" value: { - dps: 10313.645 - tps: 8541.60581 + dps: 10302.06942 + tps: 8528.29776 } } dps_results: { key: "TestFrost-AllItems-SliverofPureIce-50346" value: { - dps: 10350.51859 - tps: 8572.59573 + dps: 10338.86238 + tps: 8559.2251 } } dps_results: { key: "TestFrost-AllItems-SoulPreserver-37111" value: { - dps: 10160.12616 - tps: 8410.55803 + dps: 10149.01061 + tps: 8398.09869 } } dps_results: { key: "TestFrost-AllItems-SouloftheDead-40382" value: { - dps: 10081.1189 - tps: 8353.52438 + dps: 10130.039 + tps: 8395.44795 } } dps_results: { key: "TestFrost-AllItems-SparkofLife-37657" value: { - dps: 10062.67481 - tps: 8336.68862 + dps: 10030.70078 + tps: 8296.70975 } } dps_results: { key: "TestFrost-AllItems-SphereofRedDragon'sBlood-37166" value: { - dps: 10105.23759 - tps: 8364.85196 + dps: 10145.17099 + tps: 8402.81359 } } dps_results: { key: "TestFrost-AllItems-SwiftSkyflareDiamond" value: { - dps: 10286.53252 - tps: 8523.53765 + dps: 10378.25772 + tps: 8620.19591 } } dps_results: { key: "TestFrost-AllItems-SwiftStarflareDiamond" value: { - dps: 10286.53252 - tps: 8523.53765 + dps: 10378.25772 + tps: 8620.19591 } } dps_results: { key: "TestFrost-AllItems-SwiftWindfireDiamond" value: { - dps: 10286.53252 - tps: 8523.53765 + dps: 10378.25772 + tps: 8620.19591 } } dps_results: { key: "TestFrost-AllItems-TalismanofTrollDivinity-37734" value: { - dps: 10022.38975 - tps: 8294.65829 + dps: 10011.45071 + tps: 8281.79763 } } dps_results: { key: "TestFrost-AllItems-TearsoftheVanquished-47215" value: { - dps: 10034.68387 - tps: 8306.22478 + dps: 10050.13761 + tps: 8315.50457 } } dps_results: { key: "TestFrost-AllItems-TempestRegalia" value: { - dps: 6034.93069 - tps: 4866.2118 + dps: 6007.91125 + tps: 4843.55898 } } dps_results: { key: "TestFrost-AllItems-TheGeneral'sHeart-45507" value: { - dps: 10021.83104 - tps: 8295.29743 + dps: 10010.85956 + tps: 8282.9768 } } dps_results: { key: "TestFrost-AllItems-TheTwinBladesofAzzinoth" value: { - dps: 8253.03059 - tps: 6834.2744 + dps: 8329.73976 + tps: 6901.74821 } } dps_results: { key: "TestFrost-AllItems-ThunderingSkyflareDiamond" value: { - dps: 10286.53252 - tps: 8523.53765 + dps: 10378.25772 + tps: 8620.19591 } } dps_results: { key: "TestFrost-AllItems-TinyAbominationinaJar-50351" value: { - dps: 10154.94586 - tps: 8411.35821 + dps: 10196.73612 + tps: 8454.00747 } } dps_results: { key: "TestFrost-AllItems-TinyAbominationinaJar-50706" value: { - dps: 10154.94586 - tps: 8411.35821 + dps: 10196.73612 + tps: 8454.00747 } } dps_results: { key: "TestFrost-AllItems-TirelessSkyflareDiamond" value: { - dps: 10331.94788 - tps: 8561.31685 + dps: 10424.07215 + tps: 8658.38845 } } dps_results: { key: "TestFrost-AllItems-TirelessStarflareDiamond" value: { - dps: 10322.86481 - tps: 8553.76101 + dps: 10414.90927 + tps: 8650.74994 } } dps_results: { key: "TestFrost-AllItems-TomeofArcanePhenomena-36972" value: { - dps: 10234.22453 - tps: 8480.0837 + dps: 10160.39247 + tps: 8405.64763 } } dps_results: { key: "TestFrost-AllItems-TrenchantEarthshatterDiamond" value: { - dps: 10322.86481 - tps: 8553.76101 + dps: 10414.90927 + tps: 8650.74994 } } dps_results: { key: "TestFrost-AllItems-TrenchantEarthsiegeDiamond" value: { - dps: 10331.94788 - tps: 8561.31685 + dps: 10424.07215 + tps: 8658.38845 } } dps_results: { key: "TestFrost-AllItems-WingedTalisman-37844" value: { - dps: 10148.65192 - tps: 8408.90705 + dps: 10140.02754 + tps: 8398.67108 } } dps_results: { key: "TestFrost-Average-Default" value: { - dps: 10742.91506 - tps: 8938.77125 + dps: 10765.47879 + tps: 8960.42122 } } dps_results: { - key: "TestFrost-Settings-Troll-P3Frost-Frost-AOE-FullBuffs-LongMultiTarget" + key: "TestFrost-Settings-Troll-P3Frost-Frost-frost-FullBuffs-LongMultiTarget" value: { - dps: 820.82217 + dps: 10722.22181 + tps: 9406.41225 } } dps_results: { - key: "TestFrost-Settings-Troll-P3Frost-Frost-AOE-FullBuffs-LongSingleTarget" + key: "TestFrost-Settings-Troll-P3Frost-Frost-frost-FullBuffs-LongSingleTarget" value: { - dps: 820.82217 + dps: 10722.22181 + tps: 8929.47868 } } dps_results: { - key: "TestFrost-Settings-Troll-P3Frost-Frost-AOE-FullBuffs-ShortSingleTarget" + key: "TestFrost-Settings-Troll-P3Frost-Frost-frost-FullBuffs-ShortSingleTarget" value: { - dps: 1019.83911 + dps: 13234.02209 + tps: 11044.50719 } } dps_results: { - key: "TestFrost-Settings-Troll-P3Frost-Frost-AOE-NoBuffs-LongMultiTarget" + key: "TestFrost-Settings-Troll-P3Frost-Frost-frost-NoBuffs-LongMultiTarget" value: { - dps: 603.42878 + dps: 6611.36262 + tps: 5819.99898 } } dps_results: { - key: "TestFrost-Settings-Troll-P3Frost-Frost-AOE-NoBuffs-LongSingleTarget" + key: "TestFrost-Settings-Troll-P3Frost-Frost-frost-NoBuffs-LongSingleTarget" value: { - dps: 603.42878 + dps: 6611.36262 + tps: 5416.51011 } } dps_results: { - key: "TestFrost-Settings-Troll-P3Frost-Frost-AOE-NoBuffs-ShortSingleTarget" + key: "TestFrost-Settings-Troll-P3Frost-Frost-frost-NoBuffs-ShortSingleTarget" value: { - dps: 758.58038 + dps: 7651.68487 + tps: 6243.17222 } } dps_results: { - key: "TestFrost-Settings-Troll-P3Frost-Frost-Frost-FullBuffs-LongMultiTarget" + key: "TestFrost-Settings-Troll-P3Frost-Frost-frost_aoe-FullBuffs-LongMultiTarget" value: { - dps: 10642.87689 - tps: 9311.94943 + dps: 820.82217 } } dps_results: { - key: "TestFrost-Settings-Troll-P3Frost-Frost-Frost-FullBuffs-LongSingleTarget" + key: "TestFrost-Settings-Troll-P3Frost-Frost-frost_aoe-FullBuffs-LongSingleTarget" value: { - dps: 10642.87689 - tps: 8843.86491 + dps: 820.82217 } } dps_results: { - key: "TestFrost-Settings-Troll-P3Frost-Frost-Frost-FullBuffs-ShortSingleTarget" + key: "TestFrost-Settings-Troll-P3Frost-Frost-frost_aoe-FullBuffs-ShortSingleTarget" value: { - dps: 13023.77412 - tps: 10807.55619 + dps: 1019.83911 } } dps_results: { - key: "TestFrost-Settings-Troll-P3Frost-Frost-Frost-NoBuffs-LongMultiTarget" + key: "TestFrost-Settings-Troll-P3Frost-Frost-frost_aoe-NoBuffs-LongMultiTarget" value: { - dps: 6624.86886 - tps: 5798.7184 + dps: 603.42878 } } dps_results: { - key: "TestFrost-Settings-Troll-P3Frost-Frost-Frost-NoBuffs-LongSingleTarget" + key: "TestFrost-Settings-Troll-P3Frost-Frost-frost_aoe-NoBuffs-LongSingleTarget" value: { - dps: 6624.86886 - tps: 5421.3793 + dps: 603.42878 } } dps_results: { - key: "TestFrost-Settings-Troll-P3Frost-Frost-Frost-NoBuffs-ShortSingleTarget" + key: "TestFrost-Settings-Troll-P3Frost-Frost-frost_aoe-NoBuffs-ShortSingleTarget" value: { - dps: 7529.18339 - tps: 6117.92191 + dps: 758.58038 } } dps_results: { key: "TestFrost-SwitchInFrontOfTarget-Default" value: { - dps: 10642.87689 - tps: 8843.86491 + dps: 10722.22181 + tps: 8929.47868 } } diff --git a/sim/mage/TestFrostFire.results b/sim/mage/TestFrostFire.results index e0d8cec54f..36bc699aca 100644 --- a/sim/mage/TestFrostFire.results +++ b/sim/mage/TestFrostFire.results @@ -46,766 +46,766 @@ character_stats_results: { dps_results: { key: "TestFrostFire-AllItems-Althor'sAbacus-50359" value: { - dps: 12186.98379 - tps: 9772.23107 + dps: 12244.01727 + tps: 9823.33092 } } dps_results: { key: "TestFrostFire-AllItems-Althor'sAbacus-50366" value: { - dps: 12235.15751 - tps: 9810.37983 + dps: 12292.41571 + tps: 9861.68146 } } dps_results: { key: "TestFrostFire-AllItems-AustereEarthsiegeDiamond" value: { - dps: 12230.69182 - tps: 9811.49149 + dps: 12285.72809 + tps: 9854.64807 } } dps_results: { key: "TestFrostFire-AllItems-Bandit'sInsignia-40371" value: { - dps: 11795.02491 - tps: 9461.83889 + dps: 11850.22997 + tps: 9511.29698 } } dps_results: { key: "TestFrostFire-AllItems-BaubleofTrueBlood-50354" value: { - dps: 11797.13635 - tps: 9463.45912 - hps: 101.94314 + dps: 11849.36247 + tps: 9510.81276 + hps: 102.16058 } } dps_results: { key: "TestFrostFire-AllItems-BaubleofTrueBlood-50726" value: { - dps: 11797.13635 - tps: 9463.45912 - hps: 101.94314 + dps: 11849.36247 + tps: 9510.81276 + hps: 102.16058 } } dps_results: { key: "TestFrostFire-AllItems-BeamingEarthsiegeDiamond" value: { - dps: 12343.32133 - tps: 9898.57948 + dps: 12356.8447 + tps: 9911.41862 } } dps_results: { key: "TestFrostFire-AllItems-BlessedRegaliaofUndeadCleansing" value: { - dps: 8073.19655 - tps: 6504.79293 + dps: 8193.48625 + tps: 6600.71264 } } dps_results: { key: "TestFrostFire-AllItems-Bloodmage'sRegalia" value: { - dps: 10367.55906 - tps: 8343.09652 + dps: 10374.26396 + tps: 8350.11481 } } dps_results: { key: "TestFrostFire-AllItems-BracingEarthsiegeDiamond" value: { - dps: 12284.95924 - tps: 9658.87878 + dps: 12340.26413 + tps: 9701.36191 } } dps_results: { key: "TestFrostFire-AllItems-ChaoticSkyflareDiamond" value: { - dps: 12717.29195 - tps: 10202.95755 + dps: 12741.58135 + tps: 10221.4608 } } dps_results: { key: "TestFrostFire-AllItems-CorpseTongueCoin-50349" value: { - dps: 11795.02491 - tps: 9461.83889 + dps: 11850.22997 + tps: 9511.29698 } } dps_results: { key: "TestFrostFire-AllItems-CorpseTongueCoin-50352" value: { - dps: 11795.02491 - tps: 9461.83889 + dps: 11850.22997 + tps: 9511.29698 } } dps_results: { key: "TestFrostFire-AllItems-CorrodedSkeletonKey-50356" value: { - dps: 11795.02491 - tps: 9461.83889 + dps: 11850.22997 + tps: 9511.29698 hps: 64 } } dps_results: { key: "TestFrostFire-AllItems-DarkmoonCard:Berserker!-42989" value: { - dps: 12054.852 - tps: 9670.31502 + dps: 12057.82716 + tps: 9680.52686 } } dps_results: { key: "TestFrostFire-AllItems-DarkmoonCard:Death-42990" value: { - dps: 12089.10909 - tps: 9716.53844 + dps: 12071.57742 + tps: 9704.18028 } } dps_results: { key: "TestFrostFire-AllItems-DarkmoonCard:Greatness-44255" value: { - dps: 11943.65424 - tps: 9583.63736 + dps: 11990.16247 + tps: 9625.07697 } } dps_results: { key: "TestFrostFire-AllItems-Death'sChoice-47464" value: { - dps: 11795.02491 - tps: 9461.83889 + dps: 11850.22997 + tps: 9511.29698 } } dps_results: { key: "TestFrostFire-AllItems-DeathKnight'sAnguish-38212" value: { - dps: 11851.0747 - tps: 9505.8688 + dps: 11884.11104 + tps: 9539.44011 } } dps_results: { key: "TestFrostFire-AllItems-Deathbringer'sWill-50362" value: { - dps: 11795.02491 - tps: 9461.83889 + dps: 11850.22997 + tps: 9511.29698 } } dps_results: { key: "TestFrostFire-AllItems-Deathbringer'sWill-50363" value: { - dps: 11795.02491 - tps: 9461.83889 + dps: 11850.22997 + tps: 9511.29698 } } dps_results: { key: "TestFrostFire-AllItems-Defender'sCode-40257" value: { - dps: 11795.02491 - tps: 9461.83889 + dps: 11850.22997 + tps: 9511.29698 } } dps_results: { key: "TestFrostFire-AllItems-DestructiveSkyflareDiamond" value: { - dps: 12323.1369 - tps: 9886.38191 + dps: 12347.05316 + tps: 9905.81402 } } dps_results: { key: "TestFrostFire-AllItems-DislodgedForeignObject-50353" value: { - dps: 12686.0725 - tps: 10176.68023 + dps: 12563.0487 + tps: 10083.71794 } } dps_results: { key: "TestFrostFire-AllItems-EffulgentSkyflareDiamond" value: { - dps: 12230.69182 - tps: 9811.49149 + dps: 12285.72809 + tps: 9854.64807 } } dps_results: { key: "TestFrostFire-AllItems-EmberSkyflareDiamond" value: { - dps: 12382.11782 - tps: 9929.10226 + dps: 12387.78382 + tps: 9934.73406 } } dps_results: { key: "TestFrostFire-AllItems-EnigmaticSkyflareDiamond" value: { - dps: 12320.19135 - tps: 9884.16583 + dps: 12343.55881 + tps: 9901.98711 } } dps_results: { key: "TestFrostFire-AllItems-EnigmaticStarflareDiamond" value: { - dps: 12313.73195 - tps: 9878.83497 + dps: 12327.21916 + tps: 9888.47853 } } dps_results: { key: "TestFrostFire-AllItems-EphemeralSnowflake-50260" value: { - dps: 12038.01559 - tps: 9657.34751 + dps: 12103.66662 + tps: 9718.28956 } } dps_results: { key: "TestFrostFire-AllItems-EssenceofGossamer-37220" value: { - dps: 11795.02491 - tps: 9461.83889 + dps: 11850.22997 + tps: 9511.29698 } } dps_results: { key: "TestFrostFire-AllItems-EternalEarthsiegeDiamond" value: { - dps: 12230.69182 - tps: 9811.49149 + dps: 12285.72809 + tps: 9854.64807 } } dps_results: { key: "TestFrostFire-AllItems-ExtractofNecromanticPower-40373" value: { - dps: 12134.60998 - tps: 9751.90644 + dps: 12087.26544 + tps: 9714.34247 } } dps_results: { key: "TestFrostFire-AllItems-EyeoftheBroodmother-45308" value: { - dps: 12305.21571 - tps: 9871.04414 + dps: 12371.98454 + tps: 9931.42015 } } dps_results: { key: "TestFrostFire-AllItems-Figurine-SapphireOwl-42413" value: { - dps: 11762.68938 - tps: 9438.2012 + dps: 11811.58162 + tps: 9483.85056 } } dps_results: { key: "TestFrostFire-AllItems-ForethoughtTalisman-40258" value: { - dps: 12038.08321 - tps: 9654.31672 + dps: 12094.4221 + tps: 9704.79289 } } dps_results: { key: "TestFrostFire-AllItems-ForgeEmber-37660" value: { - dps: 12182.96005 - tps: 9772.65707 + dps: 12188.98921 + tps: 9783.51338 } } dps_results: { key: "TestFrostFire-AllItems-ForlornSkyflareDiamond" value: { - dps: 12284.95924 - tps: 9854.47921 + dps: 12340.26413 + tps: 9897.85504 } } dps_results: { key: "TestFrostFire-AllItems-ForlornStarflareDiamond" value: { - dps: 12274.10576 - tps: 9845.88166 + dps: 12329.35692 + tps: 9889.21364 } } dps_results: { key: "TestFrostFire-AllItems-FrostfireGarb" value: { - dps: 8739.30215 - tps: 7018.44244 + dps: 8604.94951 + tps: 6914.52963 } } dps_results: { key: "TestFrostFire-AllItems-FuryoftheFiveFlights-40431" value: { - dps: 11795.02491 - tps: 9461.83889 + dps: 11850.22997 + tps: 9511.29698 } } dps_results: { key: "TestFrostFire-AllItems-FuturesightRune-38763" value: { - dps: 11987.23034 - tps: 9615.65554 + dps: 12035.41081 + tps: 9658.85224 } } dps_results: { key: "TestFrostFire-AllItems-Gladiator'sRegalia" value: { - dps: 9047.42466 - tps: 7255.54469 + dps: 9054.97252 + tps: 7264.02153 } } dps_results: { key: "TestFrostFire-AllItems-GlowingTwilightScale-54573" value: { - dps: 12211.07065 - tps: 9791.30545 + dps: 12268.21649 + tps: 9842.50619 } } dps_results: { key: "TestFrostFire-AllItems-GlowingTwilightScale-54589" value: { - dps: 12265.81351 - tps: 9834.65632 + dps: 12323.21472 + tps: 9886.08635 } } dps_results: { key: "TestFrostFire-AllItems-GnomishLightningGenerator-41121" value: { - dps: 12138.93613 - tps: 9749.86312 + dps: 12061.15506 + tps: 9690.85034 } } dps_results: { key: "TestFrostFire-AllItems-Heartpierce-49982" value: { - dps: 12717.29195 - tps: 10202.95755 + dps: 12741.58135 + tps: 10221.4608 } } dps_results: { key: "TestFrostFire-AllItems-Heartpierce-50641" value: { - dps: 12717.29195 - tps: 10202.95755 + dps: 12741.58135 + tps: 10221.4608 } } dps_results: { key: "TestFrostFire-AllItems-IllustrationoftheDragonSoul-40432" value: { - dps: 12217.08196 - tps: 9797.72034 + dps: 12274.17361 + tps: 9848.76467 } } dps_results: { key: "TestFrostFire-AllItems-ImpassiveSkyflareDiamond" value: { - dps: 12320.19135 - tps: 9884.16583 + dps: 12343.55881 + tps: 9901.98711 } } dps_results: { key: "TestFrostFire-AllItems-ImpassiveStarflareDiamond" value: { - dps: 12313.73195 - tps: 9878.83497 + dps: 12327.21916 + tps: 9888.47853 } } dps_results: { key: "TestFrostFire-AllItems-IncisorFragment-37723" value: { - dps: 11795.02491 - tps: 9461.83889 + dps: 11850.22997 + tps: 9511.29698 } } dps_results: { key: "TestFrostFire-AllItems-InsightfulEarthsiegeDiamond" value: { - dps: 12293.61376 - tps: 9866.08412 + dps: 12330.15879 + tps: 9895.86412 } } dps_results: { key: "TestFrostFire-AllItems-InvigoratingEarthsiegeDiamond" value: { - dps: 12230.69182 - tps: 9811.49149 + dps: 12285.72809 + tps: 9854.64807 } } dps_results: { key: "TestFrostFire-AllItems-Khadgar'sRegalia" value: { - dps: 9378.12942 - tps: 7532.05959 + dps: 9423.35737 + tps: 7572.27782 } } dps_results: { key: "TestFrostFire-AllItems-KirinTorGarb" value: { - dps: 9567.03653 - tps: 7674.44874 + dps: 9559.06434 + tps: 7671.24453 } } dps_results: { key: "TestFrostFire-AllItems-Lavanthor'sTalisman-37872" value: { - dps: 11795.02491 - tps: 9461.83889 + dps: 11850.22997 + tps: 9511.29698 } } dps_results: { key: "TestFrostFire-AllItems-MajesticDragonFigurine-40430" value: { - dps: 12072.16793 - tps: 9685.53018 + dps: 12137.17488 + tps: 9744.8423 } } dps_results: { key: "TestFrostFire-AllItems-MeteoriteWhetstone-37390" value: { - dps: 11975.67743 - tps: 9607.25347 + dps: 11982.18251 + tps: 9618.27229 } } dps_results: { key: "TestFrostFire-AllItems-NevermeltingIceCrystal-50259" value: { - dps: 12180.51332 - tps: 9770.32853 + dps: 12194.3355 + tps: 9785.78263 } } dps_results: { key: "TestFrostFire-AllItems-Nibelung-49992" value: { - dps: 12717.29195 - tps: 10202.95755 + dps: 12741.58135 + tps: 10221.4608 } } dps_results: { key: "TestFrostFire-AllItems-Nibelung-50648" value: { - dps: 12717.29195 - tps: 10202.95755 + dps: 12741.58135 + tps: 10221.4608 } } dps_results: { key: "TestFrostFire-AllItems-OfferingofSacrifice-37638" value: { - dps: 11795.02491 - tps: 9461.83889 + dps: 11850.22997 + tps: 9511.29698 } } dps_results: { key: "TestFrostFire-AllItems-PersistentEarthshatterDiamond" value: { - dps: 12230.69182 - tps: 9811.49149 + dps: 12285.72809 + tps: 9854.64807 } } dps_results: { key: "TestFrostFire-AllItems-PersistentEarthsiegeDiamond" value: { - dps: 12230.69182 - tps: 9811.49149 + dps: 12285.72809 + tps: 9854.64807 } } dps_results: { key: "TestFrostFire-AllItems-PetrifiedScarab-21685" value: { - dps: 11795.02491 - tps: 9461.83889 + dps: 11850.22997 + tps: 9511.29698 } } dps_results: { key: "TestFrostFire-AllItems-PetrifiedTwilightScale-54571" value: { - dps: 11795.02491 - tps: 9461.83889 + dps: 11850.22997 + tps: 9511.29698 } } dps_results: { key: "TestFrostFire-AllItems-PetrifiedTwilightScale-54591" value: { - dps: 11795.02491 - tps: 9461.83889 + dps: 11850.22997 + tps: 9511.29698 } } dps_results: { key: "TestFrostFire-AllItems-PowerfulEarthshatterDiamond" value: { - dps: 12230.69182 - tps: 9811.49149 + dps: 12285.72809 + tps: 9854.64807 } } dps_results: { key: "TestFrostFire-AllItems-PowerfulEarthsiegeDiamond" value: { - dps: 12230.69182 - tps: 9811.49149 + dps: 12285.72809 + tps: 9854.64807 } } dps_results: { key: "TestFrostFire-AllItems-PurifiedShardoftheGods" value: { - dps: 11795.02491 - tps: 9461.83889 + dps: 11850.22997 + tps: 9511.29698 } } dps_results: { key: "TestFrostFire-AllItems-ReignoftheDead-47316" value: { - dps: 12380.70403 - tps: 9982.70358 + dps: 12495.00799 + tps: 10082.42545 } } dps_results: { key: "TestFrostFire-AllItems-ReignoftheDead-47477" value: { - dps: 12453.22257 - tps: 10047.02466 + dps: 12568.47832 + tps: 10147.64333 } } dps_results: { key: "TestFrostFire-AllItems-RelentlessEarthsiegeDiamond" value: { - dps: 12622.78007 - tps: 10126.29473 + dps: 12680.36006 + tps: 10171.39699 } } dps_results: { key: "TestFrostFire-AllItems-RevitalizingSkyflareDiamond" value: { - dps: 12244.02902 - tps: 9819.25428 + dps: 12285.9622 + tps: 9854.87217 } } dps_results: { key: "TestFrostFire-AllItems-RuneofRepulsion-40372" value: { - dps: 11795.02491 - tps: 9461.83889 + dps: 11850.22997 + tps: 9511.29698 } } dps_results: { key: "TestFrostFire-AllItems-SealofthePantheon-36993" value: { - dps: 11795.02491 - tps: 9461.83889 + dps: 11850.22997 + tps: 9511.29698 } } dps_results: { key: "TestFrostFire-AllItems-ShinyShardoftheGods" value: { - dps: 11795.02491 - tps: 9461.83889 + dps: 11850.22997 + tps: 9511.29698 } } dps_results: { key: "TestFrostFire-AllItems-Sindragosa'sFlawlessFang-50361" value: { - dps: 11795.02491 - tps: 9461.83889 + dps: 11850.22997 + tps: 9511.29698 } } dps_results: { key: "TestFrostFire-AllItems-SliverofPureIce-50339" value: { - dps: 12140.95028 - tps: 9741.72463 + dps: 12197.71821 + tps: 9792.20498 } } dps_results: { key: "TestFrostFire-AllItems-SliverofPureIce-50346" value: { - dps: 12184.74457 - tps: 9777.08865 + dps: 12241.71679 + tps: 9827.75244 } } dps_results: { key: "TestFrostFire-AllItems-SoulPreserver-37111" value: { - dps: 11959.25349 - tps: 9591.89148 + dps: 12015.22465 + tps: 9642.03746 } } dps_results: { key: "TestFrostFire-AllItems-SouloftheDead-40382" value: { - dps: 12017.40137 - tps: 9650.73734 + dps: 12088.70507 + tps: 9714.87668 } } dps_results: { key: "TestFrostFire-AllItems-SparkofLife-37657" value: { - dps: 11985.4194 - tps: 9616.30739 + dps: 12157.36398 + tps: 9760.43707 } } dps_results: { key: "TestFrostFire-AllItems-SphereofRedDragon'sBlood-37166" value: { - dps: 12229.92714 - tps: 9816.70395 + dps: 12178.50468 + tps: 9776.28739 } } dps_results: { key: "TestFrostFire-AllItems-SwiftSkyflareDiamond" value: { - dps: 12230.69182 - tps: 9811.49149 + dps: 12285.72809 + tps: 9854.64807 } } dps_results: { key: "TestFrostFire-AllItems-SwiftStarflareDiamond" value: { - dps: 12230.69182 - tps: 9811.49149 + dps: 12285.72809 + tps: 9854.64807 } } dps_results: { key: "TestFrostFire-AllItems-SwiftWindfireDiamond" value: { - dps: 12230.69182 - tps: 9811.49149 + dps: 12285.72809 + tps: 9854.64807 } } dps_results: { key: "TestFrostFire-AllItems-TalismanofTrollDivinity-37734" value: { - dps: 11874.6174 - tps: 9525.47767 + dps: 11901.32757 + tps: 9554.33823 } } dps_results: { key: "TestFrostFire-AllItems-TearsoftheVanquished-47215" value: { - dps: 11827.58773 - tps: 9488.2023 + dps: 11878.28945 + tps: 9534.80466 } } dps_results: { key: "TestFrostFire-AllItems-TempestRegalia" value: { - dps: 6303.05585 - tps: 5084.40232 + dps: 6354.69235 + tps: 5127.15001 } } dps_results: { key: "TestFrostFire-AllItems-TheGeneral'sHeart-45507" value: { - dps: 11795.02491 - tps: 9461.83889 + dps: 11850.22997 + tps: 9511.29698 } } dps_results: { key: "TestFrostFire-AllItems-TheTwinBladesofAzzinoth" value: { - dps: 9698.82289 - tps: 7823.6069 + dps: 9653.09237 + tps: 7783.75689 } } dps_results: { key: "TestFrostFire-AllItems-ThunderingSkyflareDiamond" value: { - dps: 12230.69182 - tps: 9811.49149 + dps: 12285.72809 + tps: 9854.64807 } } dps_results: { key: "TestFrostFire-AllItems-TinyAbominationinaJar-50351" value: { - dps: 12307.6654 - tps: 9876.66599 + dps: 12338.27907 + tps: 9902.94026 } } dps_results: { key: "TestFrostFire-AllItems-TinyAbominationinaJar-50706" value: { - dps: 12307.6654 - tps: 9876.66599 + dps: 12338.27907 + tps: 9902.94026 } } dps_results: { key: "TestFrostFire-AllItems-TirelessSkyflareDiamond" value: { - dps: 12284.95924 - tps: 9854.47921 + dps: 12340.26413 + tps: 9897.85504 } } dps_results: { key: "TestFrostFire-AllItems-TirelessStarflareDiamond" value: { - dps: 12274.10576 - tps: 9845.88166 + dps: 12329.35692 + tps: 9889.21364 } } dps_results: { key: "TestFrostFire-AllItems-TomeofArcanePhenomena-36972" value: { - dps: 12096.70116 - tps: 9703.82847 + dps: 12189.51342 + tps: 9782.56669 } } dps_results: { key: "TestFrostFire-AllItems-TrenchantEarthshatterDiamond" value: { - dps: 12274.10576 - tps: 9845.88166 + dps: 12329.35692 + tps: 9889.21364 } } dps_results: { key: "TestFrostFire-AllItems-TrenchantEarthsiegeDiamond" value: { - dps: 12284.95924 - tps: 9854.47921 + dps: 12340.26413 + tps: 9897.85504 } } dps_results: { key: "TestFrostFire-AllItems-WingedTalisman-37844" value: { - dps: 11968.95069 - tps: 9600.97951 + dps: 12024.85193 + tps: 9650.99454 } } dps_results: { key: "TestFrostFire-Average-Default" value: { - dps: 12717.79749 - tps: 10203.23707 + dps: 12741.01825 + tps: 10224.76326 } } dps_results: { - key: "TestFrostFire-Settings-Troll-P3FrostFire-Fire-Frostfire-FullBuffs-LongMultiTarget" + key: "TestFrostFire-Settings-Troll-P3FrostFire-Fire-frostfire-FullBuffs-LongMultiTarget" value: { - dps: 16773.07424 - tps: 15658.05469 + dps: 16872.90031 + tps: 15761.98934 } } dps_results: { - key: "TestFrostFire-Settings-Troll-P3FrostFire-Fire-Frostfire-FullBuffs-LongSingleTarget" + key: "TestFrostFire-Settings-Troll-P3FrostFire-Fire-frostfire-FullBuffs-LongSingleTarget" value: { - dps: 12717.29195 - tps: 10202.95755 + dps: 12741.58135 + tps: 10221.4608 } } dps_results: { - key: "TestFrostFire-Settings-Troll-P3FrostFire-Fire-Frostfire-FullBuffs-ShortSingleTarget" + key: "TestFrostFire-Settings-Troll-P3FrostFire-Fire-frostfire-FullBuffs-ShortSingleTarget" value: { - dps: 14759.95222 - tps: 11734.92809 + dps: 14752.17194 + tps: 11747.71611 } } dps_results: { - key: "TestFrostFire-Settings-Troll-P3FrostFire-Fire-Frostfire-NoBuffs-LongMultiTarget" + key: "TestFrostFire-Settings-Troll-P3FrostFire-Fire-frostfire-NoBuffs-LongMultiTarget" value: { - dps: 10002.66407 - tps: 10175.83517 + dps: 10151.7714 + tps: 10316.58857 } } dps_results: { - key: "TestFrostFire-Settings-Troll-P3FrostFire-Fire-Frostfire-NoBuffs-LongSingleTarget" + key: "TestFrostFire-Settings-Troll-P3FrostFire-Fire-frostfire-NoBuffs-LongSingleTarget" value: { - dps: 6189.83201 - tps: 4977.14163 + dps: 6250.65425 + tps: 5028.69817 } } dps_results: { - key: "TestFrostFire-Settings-Troll-P3FrostFire-Fire-Frostfire-NoBuffs-ShortSingleTarget" + key: "TestFrostFire-Settings-Troll-P3FrostFire-Fire-frostfire-NoBuffs-ShortSingleTarget" value: { - dps: 7697.01384 - tps: 6059.62147 + dps: 7874.70591 + tps: 6226.65405 } } dps_results: { key: "TestFrostFire-SwitchInFrontOfTarget-Default" value: { - dps: 12717.29195 - tps: 10202.95755 + dps: 12741.58135 + tps: 10221.4608 } } diff --git a/sim/mage/mage_test.go b/sim/mage/mage_test.go index 704d5c69fa..7c6dca1a5d 100644 --- a/sim/mage/mage_test.go +++ b/sim/mage/mage_test.go @@ -1,6 +1,8 @@ package mage import ( + "log" + "os" "testing" _ "github.com/wowsims/wotlk/sim/common" @@ -12,6 +14,16 @@ func init() { RegisterMage() } +func GetAplRotation(dir string, file string) core.RotationCombo { + filePath := dir + "/" + file + ".json" + data, err := os.ReadFile(filePath) + if err != nil { + log.Fatalf("failed to load apl json file: %s, %s", filePath, err) + } + + return core.RotationCombo{Label: file, Rotation: core.APLRotationFromJsonString(string(data))} +} + func TestArcane(t *testing.T) { core.RunTestSuite(t, t.Name(), core.FullCharacterTestSuiteGenerator(core.CharacterSuiteConfig{ Class: proto.Class_ClassMage, @@ -22,23 +34,12 @@ func TestArcane(t *testing.T) { Glyphs: ArcaneGlyphs, Consumes: FullArcaneConsumes, SpecOptions: core.SpecOptionsCombo{Label: "Arcane", SpecOptions: PlayerOptionsArcane}, - Rotation: core.RotationCombo{Label: "Arcane", Rotation: ArcaneRotation}, + Rotation: GetAplRotation("../../ui/mage/apls", "arcane"), OtherRotations: []core.RotationCombo{ - {Label: "AOE", Rotation: ArcaneAOERotation}, + GetAplRotation("../../ui/mage/apls", "arcane_aoe"), }, - ItemFilter: core.ItemFilter{ - WeaponTypes: []proto.WeaponType{ - proto.WeaponType_WeaponTypeDagger, - proto.WeaponType_WeaponTypeSword, - proto.WeaponType_WeaponTypeOffHand, - proto.WeaponType_WeaponTypeStaff, - }, - ArmorType: proto.ArmorType_ArmorTypeCloth, - RangedWeaponTypes: []proto.RangedWeaponType{ - proto.RangedWeaponType_RangedWeaponTypeWand, - }, - }, + ItemFilter: ItemFilter, })) } @@ -52,23 +53,12 @@ func TestFire(t *testing.T) { Glyphs: FireGlyphs, Consumes: FullFireConsumes, SpecOptions: core.SpecOptionsCombo{Label: "Fire", SpecOptions: PlayerOptionsFire}, - Rotation: core.RotationCombo{Label: "Fire", Rotation: FireRotation}, + Rotation: GetAplRotation("../../ui/mage/apls", "fire"), OtherRotations: []core.RotationCombo{ - {Label: "AOE", Rotation: FireAOERotation}, + GetAplRotation("../../ui/mage/apls", "fire_aoe"), }, - ItemFilter: core.ItemFilter{ - WeaponTypes: []proto.WeaponType{ - proto.WeaponType_WeaponTypeDagger, - proto.WeaponType_WeaponTypeSword, - proto.WeaponType_WeaponTypeOffHand, - proto.WeaponType_WeaponTypeStaff, - }, - ArmorType: proto.ArmorType_ArmorTypeCloth, - RangedWeaponTypes: []proto.RangedWeaponType{ - proto.RangedWeaponType_RangedWeaponTypeWand, - }, - }, + ItemFilter: ItemFilter, })) } @@ -82,20 +72,9 @@ func TestFrostFire(t *testing.T) { Glyphs: FrostFireGlyphs, Consumes: FullFireConsumes, SpecOptions: core.SpecOptionsCombo{Label: "Fire", SpecOptions: PlayerOptionsFire}, - Rotation: core.RotationCombo{Label: "Frostfire", Rotation: FrostfireRotation}, + Rotation: GetAplRotation("../../ui/mage/apls", "frostfire"), - ItemFilter: core.ItemFilter{ - WeaponTypes: []proto.WeaponType{ - proto.WeaponType_WeaponTypeDagger, - proto.WeaponType_WeaponTypeSword, - proto.WeaponType_WeaponTypeOffHand, - proto.WeaponType_WeaponTypeStaff, - }, - ArmorType: proto.ArmorType_ArmorTypeCloth, - RangedWeaponTypes: []proto.RangedWeaponType{ - proto.RangedWeaponType_RangedWeaponTypeWand, - }, - }, + ItemFilter: ItemFilter, })) } @@ -109,26 +88,28 @@ func TestFrost(t *testing.T) { Glyphs: FrostGlyphs, Consumes: FullFrostConsumes, SpecOptions: core.SpecOptionsCombo{Label: "Frost", SpecOptions: PlayerOptionsFrost}, - Rotation: core.RotationCombo{Label: "Frost", Rotation: FrostRotation}, + Rotation: GetAplRotation("../../ui/mage/apls", "frost"), OtherRotations: []core.RotationCombo{ - {Label: "AOE", Rotation: FrostAOERotation}, + GetAplRotation("../../ui/mage/apls", "frost_aoe"), }, - ItemFilter: core.ItemFilter{ - WeaponTypes: []proto.WeaponType{ - proto.WeaponType_WeaponTypeDagger, - proto.WeaponType_WeaponTypeSword, - proto.WeaponType_WeaponTypeOffHand, - proto.WeaponType_WeaponTypeStaff, - }, - ArmorType: proto.ArmorType_ArmorTypeCloth, - RangedWeaponTypes: []proto.RangedWeaponType{ - proto.RangedWeaponType_RangedWeaponTypeWand, - }, - }, + ItemFilter: ItemFilter, })) } +var ItemFilter = core.ItemFilter{ + WeaponTypes: []proto.WeaponType{ + proto.WeaponType_WeaponTypeDagger, + proto.WeaponType_WeaponTypeSword, + proto.WeaponType_WeaponTypeOffHand, + proto.WeaponType_WeaponTypeStaff, + }, + ArmorType: proto.ArmorType_ArmorTypeCloth, + RangedWeaponTypes: []proto.RangedWeaponType{ + proto.RangedWeaponType_RangedWeaponTypeWand, + }, +} + var ArcaneTalents = "23000513310033015032310250532-03-023303001" var FireTalents = "23000503110003-0055030012303331053120301351" var FrostFireTalents = "23000503110003-0055030012303331053120301351" @@ -191,111 +172,6 @@ var FullFrostConsumes = FullFireConsumes var FullArcaneConsumes = FullFireConsumes -var ArcaneRotation = core.APLRotationFromJsonString(`{ - "type": "TypeAPL", - "prepullActions": [ - {"action":{"castSpell":{"spellId":{"otherId":"OtherActionPotion"}}},"doAtValue":{"const":{"val":"-1s"}}} - ], - "priorityList": [ - {"action":{"autocastOtherCooldowns":{}}}, - {"action":{"condition":{"not":{"val":{"auraIsActive":{"auraId":{"spellId":12472}}}}},"castSpell":{"spellId":{"spellId":26297}}}}, - {"action":{"condition":{"not":{"val":{"auraIsActive":{"auraId":{"spellId":12472}}}}},"castSpell":{"spellId":{"spellId":54758}}}}, - {"action":{"condition":{"not":{"val":{"auraIsActive":{"auraId":{"spellId":12472}}}}},"castSpell":{"spellId":{"itemId":40211}}}}, - {"action":{"condition":{"cmp":{"op":"OpLt","lhs":{"auraNumStacks":{"auraId":{"spellId":36032}}},"rhs":{"const":{"val":"4"}}}},"castSpell":{"spellId":{"spellId":42897}}}}, - {"action":{"condition":{"auraIsActiveWithReactionTime":{"auraId":{"spellId":44401}}},"castSpell":{"spellId":{"spellId":42846}}}}, - {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"currentManaPercent":{}},"rhs":{"const":{"val":"25%"}}}},"castSpell":{"spellId":{"spellId":12051}}}}, - {"action":{"condition":{"cmp":{"op":"OpGt","lhs":{"currentManaPercent":{}},"rhs":{"const":{"val":"25%"}}}},"castSpell":{"spellId":{"spellId":42897}}}}, - {"action":{"castSpell":{"spellId":{"spellId":42846}}}} - ] -}`) - -var ArcaneAOERotation = core.APLRotationFromJsonString(`{ - "type": "TypeAPL", - "prepullActions": [ - {"action":{"castSpell":{"spellId":{"otherId":"OtherActionPotion"}}},"doAtValue":{"const":{"val":"-1s"}}} - ], - "priorityList": [ - {"action":{"autocastOtherCooldowns":{}}}, - {"action":{"castSpell":{"spellId":{"spellId":42921}}}} - ] -}`) - -var FireRotation = core.APLRotationFromJsonString(`{ - "type": "TypeAPL", - "prepullActions": [ - {"action":{"castSpell":{"spellId":{"otherId":"OtherActionPotion"}}},"doAtValue":{"const":{"val":"-1s"}}} - ], - "priorityList": [ - {"action":{"autocastOtherCooldowns":{}}}, - {"action":{"condition":{"auraShouldRefresh":{"auraId":{"spellId":12873},"maxOverlap":{"const":{"val":"4s"}}}},"castSpell":{"spellId":{"spellId":42859}}}}, - {"action":{"condition":{"auraIsActiveWithReactionTime":{"auraId":{"spellId":44448}}},"castSpell":{"spellId":{"spellId":42891}}}}, - {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpGt","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"12s"}}}}]}},"multidot":{"spellId":{"spellId":55360},"maxDots":10,"maxOverlap":{"const":{"val":"0ms"}}}}}, - {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"remainingTime":{}},"rhs":{"spellCastTime":{"spellId":{"spellId":42859}}}}},"castSpell":{"spellId":{"spellId":42873}}}}, - {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"4s"}}}},"castSpell":{"spellId":{"spellId":42859}}}}, - {"action":{"castSpell":{"spellId":{"spellId":42833}}}} - ] -}`) - -var FireAOERotation = core.APLRotationFromJsonString(`{ - "type": "TypeAPL", - "prepullActions": [], - "priorityList": [ - {"action":{"autocastOtherCooldowns":{}}}, - {"action":{"condition":{"cmp":{"op":"OpGe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"12s"}}}},"multidot":{"spellId":{"spellId":55360},"maxDots":10,"maxOverlap":{"const":{"val":"0ms"}}}}}, - {"action":{"condition":{"and":{"vals":[{"auraIsActive":{"auraId":{"spellId":54741}}},{"not":{"val":{"dotIsActive":{"spellId":{"spellId":42926,"tag":9}}}}}]}},"castSpell":{"spellId":{"spellId":42926,"tag":9}}}}, - {"action":{"condition":{"and":{"vals":[{"auraIsActive":{"auraId":{"spellId":54741}}},{"not":{"val":{"dotIsActive":{"spellId":{"spellId":42925,"tag":8}}}}}]}},"castSpell":{"spellId":{"spellId":42925,"tag":8}}}}, - {"action":{"condition":{"or":{"vals":[{"not":{"val":{"dotIsActive":{"spellId":{"spellId":42926,"tag":9}}}}},{"not":{"val":{"dotIsActive":{"spellId":{"spellId":42925,"tag":8}}}}}]}},"castSpell":{"spellId":{"spellId":42950}}}}, - {"action":{"condition":{"or":{"vals":[{"not":{"val":{"dotIsActive":{"spellId":{"spellId":42926,"tag":9}}}}},{"not":{"val":{"dotIsActive":{"spellId":{"spellId":42925,"tag":8}}}}}]}},"castSpell":{"spellId":{"spellId":42945}}}}, - {"action":{"condition":{"not":{"val":{"dotIsActive":{"spellId":{"spellId":42926,"tag":9}}}}},"castSpell":{"spellId":{"spellId":42926,"tag":9}}}}, - {"action":{"condition":{"not":{"val":{"dotIsActive":{"spellId":{"spellId":42925,"tag":8}}}}},"castSpell":{"spellId":{"spellId":42925,"tag":8}}}}, - {"action":{"condition":{"auraIsActiveWithReactionTime":{"auraId":{"spellId":44448}}},"castSpell":{"spellId":{"spellId":42891}}}}, - {"action":{"castSpell":{"spellId":{"spellId":42921}}}} - ] -}`) - -var FrostfireRotation = core.APLRotationFromJsonString(`{ - "type": "TypeAPL", - "prepullActions": [ - {"action":{"castSpell":{"spellId":{"otherId":"OtherActionPotion"}}},"doAtValue":{"const":{"val":"-1s"}}} - ], - "priorityList": [ - {"action":{"autocastOtherCooldowns":{}}}, - {"action":{"condition":{"auraShouldRefresh":{"auraId":{"spellId":12873},"maxOverlap":{"const":{"val":"4s"}}}},"castSpell":{"spellId":{"spellId":42859}}}}, - {"action":{"condition":{"auraIsActiveWithReactionTime":{"auraId":{"spellId":44448}}},"castSpell":{"spellId":{"spellId":42891}}}}, - {"action":{"condition":{"and":{"vals":[{"not":{"val":{"dotIsActive":{"spellId":{"spellId":55360}}}}},{"cmp":{"op":"OpGt","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"12s"}}}}]}},"castSpell":{"spellId":{"spellId":55360}}}}, - {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"remainingTime":{}},"rhs":{"spellCastTime":{"spellId":{"spellId":42859}}}}},"castSpell":{"spellId":{"spellId":42873}}}}, - {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"3.5s"}}}},"castSpell":{"spellId":{"spellId":42859}}}}, - {"action":{"castSpell":{"spellId":{"spellId":47610}}}} - ] -}`) - -var FrostRotation = core.APLRotationFromJsonString(`{ - "type": "TypeAPL", - "prepullActions": [ - {"action":{"castSpell":{"spellId":{"otherId":"OtherActionPotion"}}},"doAtValue":{"const":{"val":"-1s"}}} - ], - "priorityList": [ - {"action":{"autocastOtherCooldowns":{}}}, - {"action":{"condition":{"not":{"val":{"auraIsActive":{"auraId":{"spellId":12472}}}}},"castSpell":{"spellId":{"spellId":26297}}}}, - {"action":{"condition":{"not":{"val":{"auraIsActive":{"auraId":{"spellId":12472}}}}},"castSpell":{"spellId":{"spellId":54758}}}}, - {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"currentManaPercent":{}},"rhs":{"const":{"val":"25%"}}}},"castSpell":{"spellId":{"spellId":12051}}}}, - {"action":{"condition":{"auraIsActive":{"auraId":{"spellId":44545}}},"castSpell":{"spellId":{"spellId":44572}}}}, - {"action":{"condition":{"auraIsActiveWithReactionTime":{"auraId":{"spellId":44549}}},"castSpell":{"spellId":{"spellId":47610}}}}, - {"action":{"castSpell":{"spellId":{"spellId":42842}}}} - ] -}`) - -var FrostAOERotation = core.APLRotationFromJsonString(`{ - "type": "TypeAPL", - "prepullActions": [ - {"action":{"castSpell":{"spellId":{"otherId":"OtherActionPotion"}}},"doAtValue":{"const":{"val":"-1s"}}} - ], - "priorityList": [ - {"action":{"autocastOtherCooldowns":{}}}, - {"action":{"castSpell":{"spellId":{"spellId":42939}}}} - ] -}`) - var P3FireGear = core.EquipmentSpecFromJsonString(`{"items": [ {"id":51281,"enchant":3820,"gems":[41285,40133]}, {"id":50724,"gems":[40133]}, From c71f05439748fc27d729a9d823d50adfbfcdc24d Mon Sep 17 00:00:00 2001 From: jarves Date: Mon, 25 Sep 2023 16:49:17 -0500 Subject: [PATCH 10/21] healingpriest: apl tests --- sim/priest/healing/TestDisc.results | 12 +++---- sim/priest/healing/TestHoly.results | 12 +++---- sim/priest/healing/healing_priest_test.go | 38 +++++++++-------------- 3 files changed, 26 insertions(+), 36 deletions(-) diff --git a/sim/priest/healing/TestDisc.results b/sim/priest/healing/TestDisc.results index 46a55ef872..298f93d544 100644 --- a/sim/priest/healing/TestDisc.results +++ b/sim/priest/healing/TestDisc.results @@ -859,42 +859,42 @@ dps_results: { } } dps_results: { - key: "TestDisc-Settings-Undead-P1-Disc-Disc-FullBuffs-LongMultiTarget" + key: "TestDisc-Settings-Undead-P1-Disc-disc-FullBuffs-LongMultiTarget" value: { tps: 342.42388 hps: 3766.83285 } } dps_results: { - key: "TestDisc-Settings-Undead-P1-Disc-Disc-FullBuffs-LongSingleTarget" + key: "TestDisc-Settings-Undead-P1-Disc-disc-FullBuffs-LongSingleTarget" value: { tps: 17.12119 hps: 3766.83285 } } dps_results: { - key: "TestDisc-Settings-Undead-P1-Disc-Disc-FullBuffs-ShortSingleTarget" + key: "TestDisc-Settings-Undead-P1-Disc-disc-FullBuffs-ShortSingleTarget" value: { tps: 18.9551 hps: 3705.11041 } } dps_results: { - key: "TestDisc-Settings-Undead-P1-Disc-Disc-NoBuffs-LongMultiTarget" + key: "TestDisc-Settings-Undead-P1-Disc-disc-NoBuffs-LongMultiTarget" value: { tps: 371.54798 hps: 3123.50578 } } dps_results: { - key: "TestDisc-Settings-Undead-P1-Disc-Disc-NoBuffs-LongSingleTarget" + key: "TestDisc-Settings-Undead-P1-Disc-disc-NoBuffs-LongSingleTarget" value: { tps: 18.5774 hps: 3123.50578 } } dps_results: { - key: "TestDisc-Settings-Undead-P1-Disc-Disc-NoBuffs-ShortSingleTarget" + key: "TestDisc-Settings-Undead-P1-Disc-disc-NoBuffs-ShortSingleTarget" value: { tps: 18.18625 hps: 3055.92036 diff --git a/sim/priest/healing/TestHoly.results b/sim/priest/healing/TestHoly.results index 49dc44400c..54fa91f9dd 100644 --- a/sim/priest/healing/TestHoly.results +++ b/sim/priest/healing/TestHoly.results @@ -924,7 +924,7 @@ dps_results: { } } dps_results: { - key: "TestHoly-Settings-Undead-P1-Holy-Holy-FullBuffs-LongMultiTarget" + key: "TestHoly-Settings-Undead-P1-Holy-holy-FullBuffs-LongMultiTarget" value: { dps: 111.2378 tps: 889.38885 @@ -932,7 +932,7 @@ dps_results: { } } dps_results: { - key: "TestHoly-Settings-Undead-P1-Holy-Holy-FullBuffs-LongSingleTarget" + key: "TestHoly-Settings-Undead-P1-Holy-holy-FullBuffs-LongSingleTarget" value: { dps: 111.2378 tps: 44.46944 @@ -940,14 +940,14 @@ dps_results: { } } dps_results: { - key: "TestHoly-Settings-Undead-P1-Holy-Holy-FullBuffs-ShortSingleTarget" + key: "TestHoly-Settings-Undead-P1-Holy-holy-FullBuffs-ShortSingleTarget" value: { tps: 88.25877 hps: 5729.8235 } } dps_results: { - key: "TestHoly-Settings-Undead-P1-Holy-Holy-NoBuffs-LongMultiTarget" + key: "TestHoly-Settings-Undead-P1-Holy-holy-NoBuffs-LongMultiTarget" value: { dps: 54.55975 tps: 491.33473 @@ -955,7 +955,7 @@ dps_results: { } } dps_results: { - key: "TestHoly-Settings-Undead-P1-Holy-Holy-NoBuffs-LongSingleTarget" + key: "TestHoly-Settings-Undead-P1-Holy-holy-NoBuffs-LongSingleTarget" value: { dps: 54.55975 tps: 24.56674 @@ -963,7 +963,7 @@ dps_results: { } } dps_results: { - key: "TestHoly-Settings-Undead-P1-Holy-Holy-NoBuffs-ShortSingleTarget" + key: "TestHoly-Settings-Undead-P1-Holy-holy-NoBuffs-ShortSingleTarget" value: { dps: 272.79876 tps: 88.82208 diff --git a/sim/priest/healing/healing_priest_test.go b/sim/priest/healing/healing_priest_test.go index 0f3e4ec64f..f83d54739f 100644 --- a/sim/priest/healing/healing_priest_test.go +++ b/sim/priest/healing/healing_priest_test.go @@ -1,6 +1,8 @@ package healing import ( + "log" + "os" "testing" _ "github.com/wowsims/wotlk/sim/common" // imported to get caster sets included. @@ -12,6 +14,16 @@ func init() { RegisterHealingPriest() } +func GetAplRotation(dir string, file string) core.RotationCombo { + filePath := dir + "/" + file + ".json" + data, err := os.ReadFile(filePath) + if err != nil { + log.Fatalf("failed to load apl json file: %s, %s", filePath, err) + } + + return core.RotationCombo{Label: file, Rotation: core.APLRotationFromJsonString(string(data))} +} + func TestDisc(t *testing.T) { core.RunTestSuite(t, t.Name(), core.FullCharacterTestSuiteGenerator(core.CharacterSuiteConfig{ Class: proto.Class_ClassPriest, @@ -23,7 +35,7 @@ func TestDisc(t *testing.T) { Glyphs: DiscGlyphs, Consumes: FullConsumes, SpecOptions: core.SpecOptionsCombo{Label: "Disc", SpecOptions: PlayerOptionsDisc}, - Rotation: core.RotationCombo{Label: "Disc", Rotation: DiscRotation}, + Rotation: GetAplRotation("../../../ui/healing_priest/apls", "disc"), ItemFilter: core.ItemFilter{ WeaponTypes: []proto.WeaponType{ @@ -59,7 +71,7 @@ func TestHoly(t *testing.T) { Glyphs: HolyGlyphs, Consumes: FullConsumes, SpecOptions: core.SpecOptionsCombo{Label: "Holy", SpecOptions: PlayerOptionsHoly}, - Rotation: core.RotationCombo{Label: "Holy", Rotation: HolyRotation}, + Rotation: GetAplRotation("../../../ui/healing_priest/apls", "holy"), ItemFilter: core.ItemFilter{ WeaponTypes: []proto.WeaponType{ @@ -120,28 +132,6 @@ var PlayerOptionsHoly = &proto.Player_HealingPriest{ }, } -var DiscRotation = core.APLRotationFromJsonString(`{ - "type": "TypeAPL", - "priorityList": [ - {"action":{"autocastOtherCooldowns":{}}}, - {"action":{"condition":{"cmp":{"op":"OpLt","lhs":{"spellCpm":{"spellId":{"spellId":48066}}},"rhs":{"const":{"val":"18"}}}},"multishield":{"spellId":{"spellId":48066},"maxShields":10,"maxOverlap":{"const":{"val":"0ms"}}}}}, - {"action":{"condition":{"cmp":{"op":"OpLt","lhs":{"spellCpm":{"spellId":{"spellId":53007}}},"rhs":{"const":{"val":"4"}}}},"castSpell":{"spellId":{"spellId":53007}}}}, - {"action":{"condition":{"cmp":{"op":"OpLt","lhs":{"spellCpm":{"spellId":{"spellId":48113}}},"rhs":{"const":{"val":"2"}}}},"castSpell":{"spellId":{"spellId":48113}}}}, - {"action":{"condition":{"cmp":{"op":"OpLt","lhs":{"spellCpm":{"spellId":{"spellId":48063}}},"rhs":{"const":{"val":"1"}}}},"castSpell":{"spellId":{"spellId":48063}}}} - ] -}`) - -var HolyRotation = core.APLRotationFromJsonString(`{ - "type": "TypeAPL", - "priorityList": [ - {"action":{"autocastOtherCooldowns":{}}}, - {"action":{"condition":{"cmp":{"op":"OpLt","lhs":{"spellCpm":{"spellId":{"spellId":48063}}},"rhs":{"const":{"val":"10"}}}},"castSpell":{"spellId":{"spellId":48063}}}}, - {"action":{"condition":{"cmp":{"op":"OpLt","lhs":{"spellCpm":{"spellId":{"spellId":48089}}},"rhs":{"const":{"val":"5"}}}},"castSpell":{"spellId":{"spellId":48089}}}}, - {"action":{"condition":{"cmp":{"op":"OpLt","lhs":{"spellCpm":{"spellId":{"spellId":48068}}},"rhs":{"const":{"val":"10"}}}},"multidot":{"spellId":{"spellId":48068},"maxDots":10,"maxOverlap":{"const":{"val":"0ms"}}}}}, - {"action":{"condition":{"cmp":{"op":"OpLt","lhs":{"spellCpm":{"spellId":{"spellId":48113}}},"rhs":{"const":{"val":"2"}}}},"castSpell":{"spellId":{"spellId":48113}}}} - ] -}`) - var P1Gear = core.EquipmentSpecFromJsonString(`{"items": [ {"id":40456,"enchant":3819,"gems":[41401,39998]}, {"id":44657,"gems":[40047]}, From a045ec672eb95ddad197817467cacc27575028b3 Mon Sep 17 00:00:00 2001 From: jarves Date: Mon, 25 Sep 2023 16:52:29 -0500 Subject: [PATCH 11/21] protpally: apl tests --- sim/paladin/protection/TestProtection.results | 72 +++++++++---------- sim/paladin/protection/protection_test.go | 34 ++++----- 2 files changed, 49 insertions(+), 57 deletions(-) diff --git a/sim/paladin/protection/TestProtection.results b/sim/paladin/protection/TestProtection.results index 73c47ca7c2..98844641de 100644 --- a/sim/paladin/protection/TestProtection.results +++ b/sim/paladin/protection/TestProtection.results @@ -910,252 +910,252 @@ dps_results: { } } dps_results: { - key: "TestProtection-Settings-BloodElf-P1-Protection Paladin SOC-Default-FullBuffs-LongMultiTarget" + key: "TestProtection-Settings-BloodElf-P1-Protection Paladin SOC-default-FullBuffs-LongMultiTarget" value: { dps: 10375.07714 tps: 27835.71812 } } dps_results: { - key: "TestProtection-Settings-BloodElf-P1-Protection Paladin SOC-Default-FullBuffs-LongSingleTarget" + key: "TestProtection-Settings-BloodElf-P1-Protection Paladin SOC-default-FullBuffs-LongSingleTarget" value: { dps: 2946.48266 tps: 7005.01894 } } dps_results: { - key: "TestProtection-Settings-BloodElf-P1-Protection Paladin SOC-Default-FullBuffs-ShortSingleTarget" + key: "TestProtection-Settings-BloodElf-P1-Protection Paladin SOC-default-FullBuffs-ShortSingleTarget" value: { dps: 3181.85593 tps: 7528.0141 } } dps_results: { - key: "TestProtection-Settings-BloodElf-P1-Protection Paladin SOC-Default-NoBuffs-LongMultiTarget" + key: "TestProtection-Settings-BloodElf-P1-Protection Paladin SOC-default-NoBuffs-LongMultiTarget" value: { dps: 3005.78006 tps: 8743.75503 } } dps_results: { - key: "TestProtection-Settings-BloodElf-P1-Protection Paladin SOC-Default-NoBuffs-LongSingleTarget" + key: "TestProtection-Settings-BloodElf-P1-Protection Paladin SOC-default-NoBuffs-LongSingleTarget" value: { dps: 1412.45675 tps: 3421.27435 } } dps_results: { - key: "TestProtection-Settings-BloodElf-P1-Protection Paladin SOC-Default-NoBuffs-ShortSingleTarget" + key: "TestProtection-Settings-BloodElf-P1-Protection Paladin SOC-default-NoBuffs-ShortSingleTarget" value: { dps: 1595.15114 tps: 3882.79459 } } dps_results: { - key: "TestProtection-Settings-BloodElf-P1-Protection Paladin SOR-Default-FullBuffs-LongMultiTarget" + key: "TestProtection-Settings-BloodElf-P1-Protection Paladin SOR-default-FullBuffs-LongMultiTarget" value: { dps: 9291.2557 tps: 25044.54325 } } dps_results: { - key: "TestProtection-Settings-BloodElf-P1-Protection Paladin SOR-Default-FullBuffs-LongSingleTarget" + key: "TestProtection-Settings-BloodElf-P1-Protection Paladin SOR-default-FullBuffs-LongSingleTarget" value: { dps: 2974.38828 tps: 7081.47024 } } dps_results: { - key: "TestProtection-Settings-BloodElf-P1-Protection Paladin SOR-Default-FullBuffs-ShortSingleTarget" + key: "TestProtection-Settings-BloodElf-P1-Protection Paladin SOR-default-FullBuffs-ShortSingleTarget" value: { dps: 3181.02628 tps: 7530.50826 } } dps_results: { - key: "TestProtection-Settings-BloodElf-P1-Protection Paladin SOR-Default-NoBuffs-LongMultiTarget" + key: "TestProtection-Settings-BloodElf-P1-Protection Paladin SOR-default-NoBuffs-LongMultiTarget" value: { dps: 2496.96317 tps: 7431.6853 } } dps_results: { - key: "TestProtection-Settings-BloodElf-P1-Protection Paladin SOR-Default-NoBuffs-LongSingleTarget" + key: "TestProtection-Settings-BloodElf-P1-Protection Paladin SOR-default-NoBuffs-LongSingleTarget" value: { dps: 1373.04785 tps: 3318.6302 } } dps_results: { - key: "TestProtection-Settings-BloodElf-P1-Protection Paladin SOR-Default-NoBuffs-ShortSingleTarget" + key: "TestProtection-Settings-BloodElf-P1-Protection Paladin SOR-default-NoBuffs-ShortSingleTarget" value: { dps: 1560.42529 tps: 3788.26189 } } dps_results: { - key: "TestProtection-Settings-BloodElf-P1-Protection Paladin SOV-Default-FullBuffs-LongMultiTarget" + key: "TestProtection-Settings-BloodElf-P1-Protection Paladin SOV-default-FullBuffs-LongMultiTarget" value: { dps: 10233.63769 tps: 27462.61742 } } dps_results: { - key: "TestProtection-Settings-BloodElf-P1-Protection Paladin SOV-Default-FullBuffs-LongSingleTarget" + key: "TestProtection-Settings-BloodElf-P1-Protection Paladin SOV-default-FullBuffs-LongSingleTarget" value: { dps: 3276.6828 tps: 7856.39816 } } dps_results: { - key: "TestProtection-Settings-BloodElf-P1-Protection Paladin SOV-Default-FullBuffs-ShortSingleTarget" + key: "TestProtection-Settings-BloodElf-P1-Protection Paladin SOV-default-FullBuffs-ShortSingleTarget" value: { dps: 3412.25885 tps: 8136.77248 } } dps_results: { - key: "TestProtection-Settings-BloodElf-P1-Protection Paladin SOV-Default-NoBuffs-LongMultiTarget" + key: "TestProtection-Settings-BloodElf-P1-Protection Paladin SOV-default-NoBuffs-LongMultiTarget" value: { dps: 2953.89002 tps: 8609.31036 } } dps_results: { - key: "TestProtection-Settings-BloodElf-P1-Protection Paladin SOV-Default-NoBuffs-LongSingleTarget" + key: "TestProtection-Settings-BloodElf-P1-Protection Paladin SOV-default-NoBuffs-LongSingleTarget" value: { dps: 1553.86753 tps: 3785.55397 } } dps_results: { - key: "TestProtection-Settings-BloodElf-P1-Protection Paladin SOV-Default-NoBuffs-ShortSingleTarget" + key: "TestProtection-Settings-BloodElf-P1-Protection Paladin SOV-default-NoBuffs-ShortSingleTarget" value: { dps: 1718.87059 tps: 4201.87948 } } dps_results: { - key: "TestProtection-Settings-Human-P1-Protection Paladin SOC-Default-FullBuffs-LongMultiTarget" + key: "TestProtection-Settings-Human-P1-Protection Paladin SOC-default-FullBuffs-LongMultiTarget" value: { dps: 10095.13958 tps: 27075.19978 } } dps_results: { - key: "TestProtection-Settings-Human-P1-Protection Paladin SOC-Default-FullBuffs-LongSingleTarget" + key: "TestProtection-Settings-Human-P1-Protection Paladin SOC-default-FullBuffs-LongSingleTarget" value: { dps: 2923.26782 tps: 6942.83459 } } dps_results: { - key: "TestProtection-Settings-Human-P1-Protection Paladin SOC-Default-FullBuffs-ShortSingleTarget" + key: "TestProtection-Settings-Human-P1-Protection Paladin SOC-default-FullBuffs-ShortSingleTarget" value: { dps: 3185.20366 tps: 7535.54302 } } dps_results: { - key: "TestProtection-Settings-Human-P1-Protection Paladin SOC-Default-NoBuffs-LongMultiTarget" + key: "TestProtection-Settings-Human-P1-Protection Paladin SOC-default-NoBuffs-LongMultiTarget" value: { dps: 2949.55916 tps: 8550.73924 } } dps_results: { - key: "TestProtection-Settings-Human-P1-Protection Paladin SOC-Default-NoBuffs-LongSingleTarget" + key: "TestProtection-Settings-Human-P1-Protection Paladin SOC-default-NoBuffs-LongSingleTarget" value: { dps: 1408.01728 tps: 3406.22256 } } dps_results: { - key: "TestProtection-Settings-Human-P1-Protection Paladin SOC-Default-NoBuffs-ShortSingleTarget" + key: "TestProtection-Settings-Human-P1-Protection Paladin SOC-default-NoBuffs-ShortSingleTarget" value: { dps: 1553.95261 tps: 3770.02763 } } dps_results: { - key: "TestProtection-Settings-Human-P1-Protection Paladin SOR-Default-FullBuffs-LongMultiTarget" + key: "TestProtection-Settings-Human-P1-Protection Paladin SOR-default-FullBuffs-LongMultiTarget" value: { dps: 9098.94879 tps: 24507.58607 } } dps_results: { - key: "TestProtection-Settings-Human-P1-Protection Paladin SOR-Default-FullBuffs-LongSingleTarget" + key: "TestProtection-Settings-Human-P1-Protection Paladin SOR-default-FullBuffs-LongSingleTarget" value: { dps: 2941.4957 tps: 6995.17776 } } dps_results: { - key: "TestProtection-Settings-Human-P1-Protection Paladin SOR-Default-FullBuffs-ShortSingleTarget" + key: "TestProtection-Settings-Human-P1-Protection Paladin SOR-default-FullBuffs-ShortSingleTarget" value: { dps: 3184.67078 tps: 7538.71366 } } dps_results: { - key: "TestProtection-Settings-Human-P1-Protection Paladin SOR-Default-NoBuffs-LongMultiTarget" + key: "TestProtection-Settings-Human-P1-Protection Paladin SOR-default-NoBuffs-LongMultiTarget" value: { dps: 2436.38027 tps: 7237.77757 } } dps_results: { - key: "TestProtection-Settings-Human-P1-Protection Paladin SOR-Default-NoBuffs-LongSingleTarget" + key: "TestProtection-Settings-Human-P1-Protection Paladin SOR-default-NoBuffs-LongSingleTarget" value: { dps: 1360.69881 tps: 3286.92397 } } dps_results: { - key: "TestProtection-Settings-Human-P1-Protection Paladin SOR-Default-NoBuffs-ShortSingleTarget" + key: "TestProtection-Settings-Human-P1-Protection Paladin SOR-default-NoBuffs-ShortSingleTarget" value: { dps: 1537.46619 tps: 3728.30209 } } dps_results: { - key: "TestProtection-Settings-Human-P1-Protection Paladin SOV-Default-FullBuffs-LongMultiTarget" + key: "TestProtection-Settings-Human-P1-Protection Paladin SOV-default-FullBuffs-LongMultiTarget" value: { dps: 9942.66221 tps: 26670.75909 } } dps_results: { - key: "TestProtection-Settings-Human-P1-Protection Paladin SOV-Default-FullBuffs-LongSingleTarget" + key: "TestProtection-Settings-Human-P1-Protection Paladin SOV-default-FullBuffs-LongSingleTarget" value: { dps: 3262.95316 tps: 7817.60742 } } dps_results: { - key: "TestProtection-Settings-Human-P1-Protection Paladin SOV-Default-FullBuffs-ShortSingleTarget" + key: "TestProtection-Settings-Human-P1-Protection Paladin SOV-default-FullBuffs-ShortSingleTarget" value: { dps: 3416.12151 tps: 8145.54042 } } dps_results: { - key: "TestProtection-Settings-Human-P1-Protection Paladin SOV-Default-NoBuffs-LongMultiTarget" + key: "TestProtection-Settings-Human-P1-Protection Paladin SOV-default-NoBuffs-LongMultiTarget" value: { dps: 2904.01714 tps: 8432.84218 } } dps_results: { - key: "TestProtection-Settings-Human-P1-Protection Paladin SOV-Default-NoBuffs-LongSingleTarget" + key: "TestProtection-Settings-Human-P1-Protection Paladin SOV-default-NoBuffs-LongSingleTarget" value: { dps: 1539.91246 tps: 3745.85622 } } dps_results: { - key: "TestProtection-Settings-Human-P1-Protection Paladin SOV-Default-NoBuffs-ShortSingleTarget" + key: "TestProtection-Settings-Human-P1-Protection Paladin SOV-default-NoBuffs-ShortSingleTarget" value: { dps: 1671.15076 tps: 4074.9337 diff --git a/sim/paladin/protection/protection_test.go b/sim/paladin/protection/protection_test.go index 976abf9c5e..a1159b8ba4 100644 --- a/sim/paladin/protection/protection_test.go +++ b/sim/paladin/protection/protection_test.go @@ -1,6 +1,8 @@ package protection import ( + "log" + "os" "testing" _ "github.com/wowsims/wotlk/sim/common" // imported to get item effects included. @@ -12,6 +14,16 @@ func init() { RegisterProtectionPaladin() } +func GetAplRotation(dir string, file string) core.RotationCombo { + filePath := dir + "/" + file + ".json" + data, err := os.ReadFile(filePath) + if err != nil { + log.Fatalf("failed to load apl json file: %s, %s", filePath, err) + } + + return core.RotationCombo{Label: file, Rotation: core.APLRotationFromJsonString(string(data))} +} + func TestProtection(t *testing.T) { core.RunTestSuite(t, t.Name(), core.FullCharacterTestSuiteGenerator(core.CharacterSuiteConfig{ Class: proto.Class_ClassPaladin, @@ -51,7 +63,7 @@ func TestProtection(t *testing.T) { }, }, }, - Rotation: core.RotationCombo{Label: "Default", Rotation: DefaultRotation}, + Rotation: GetAplRotation("../../../ui/protection_paladin/apls", "default"), IsTank: true, InFrontOfTarget: true, @@ -129,26 +141,6 @@ var FullConsumes = &proto.Consumes{ DefaultConjured: proto.Conjured_ConjuredDarkRune, } -var DefaultRotation = core.APLRotationFromJsonString(`{ - "type": "TypeAPL", - "prepullActions": [ - {"action":{"castSpell":{"spellId":{"spellId":48952}}},"doAtValue":{"const":{"val":"-3s"}}}, - {"action":{"castSpell":{"spellId":{"spellId":54428}}},"doAtValue":{"const":{"val":"-1500ms"}}}, - {"action":{"castSpell":{"spellId":{"otherId":"OtherActionPotion"}}},"doAtValue":{"const":{"val":"-1s"}}} - ], - "priorityList": [ - {"action":{"autocastOtherCooldowns":{}}}, - {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"spellTimeToReady":{"spellId":{"spellId":53595}}},"rhs":{"const":{"val":"3s"}}}},"castSpell":{"spellId":{"spellId":61411}}}}, - {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"spellTimeToReady":{"spellId":{"spellId":61411}}},"rhs":{"const":{"val":"3s"}}}},"castSpell":{"spellId":{"spellId":53595}}}}, - {"action":{"castSpell":{"spellId":{"spellId":48806}}}}, - {"action":{"condition":{"and":{"vals":[{"gcdIsReady":{}},{"not":{"val":{"spellIsReady":{"spellId":{"spellId":61411}}}}},{"not":{"val":{"spellIsReady":{"spellId":{"spellId":53595}}}}},{"cmp":{"op":"OpLe","lhs":{"min":{"vals":[{"spellTimeToReady":{"spellId":{"spellId":61411}}},{"spellTimeToReady":{"spellId":{"spellId":53595}}}]}},"rhs":{"const":{"val":"350ms"}}}}]}},"wait":{"duration":{"min":{"vals":[{"spellTimeToReady":{"spellId":{"spellId":61411}}},{"spellTimeToReady":{"spellId":{"spellId":53595}}}]}}}}}, - {"action":{"castSpell":{"spellId":{"spellId":48819}}}}, - {"action":{"castSpell":{"spellId":{"spellId":48952}}}}, - {"action":{"castSpell":{"spellId":{"spellId":53408}}}}, - {"action":{"condition":{"and":{"vals":[{"gcdIsReady":{}},{"not":{"val":{"spellIsReady":{"spellId":{"spellId":61411}}}}},{"not":{"val":{"spellIsReady":{"spellId":{"spellId":53595}}}}},{"not":{"val":{"spellIsReady":{"spellId":{"spellId":48819}}}}},{"not":{"val":{"spellIsReady":{"spellId":{"spellId":48952}}}}},{"not":{"val":{"spellIsReady":{"spellId":{"spellId":53408}}}}}]}},"wait":{"duration":{"min":{"vals":[{"spellTimeToReady":{"spellId":{"spellId":61411}}},{"spellTimeToReady":{"spellId":{"spellId":53595}}},{"spellTimeToReady":{"spellId":{"spellId":48819}}},{"spellTimeToReady":{"spellId":{"spellId":48952}}},{"spellTimeToReady":{"spellId":{"spellId":53408}}}]}}}}} - ] -}`) - var P1Gear = core.EquipmentSpecFromJsonString(`{"items": [ {"id":40581,"enchant":3818,"gems":[41380,36767]}, {"id":40387}, From eff96e616298104b07c527edf5f2d1cdc7e58171 Mon Sep 17 00:00:00 2001 From: jarves Date: Mon, 25 Sep 2023 16:54:49 -0500 Subject: [PATCH 12/21] protwar: apl tests --- .../protection/TestProtectionWarrior.results | 24 +++++++------- .../protection/protection_warrior_test.go | 32 ++++++++----------- 2 files changed, 25 insertions(+), 31 deletions(-) diff --git a/sim/warrior/protection/TestProtectionWarrior.results b/sim/warrior/protection/TestProtectionWarrior.results index 51f2a01248..c5721fa5c0 100644 --- a/sim/warrior/protection/TestProtectionWarrior.results +++ b/sim/warrior/protection/TestProtectionWarrior.results @@ -927,84 +927,84 @@ dps_results: { } } dps_results: { - key: "TestProtectionWarrior-Settings-Human-P1-Basic-Default-FullBuffs-LongMultiTarget" + key: "TestProtectionWarrior-Settings-Human-P1-Basic-default-FullBuffs-LongMultiTarget" value: { dps: 1479.581 tps: 3902.21774 } } dps_results: { - key: "TestProtectionWarrior-Settings-Human-P1-Basic-Default-FullBuffs-LongSingleTarget" + key: "TestProtectionWarrior-Settings-Human-P1-Basic-default-FullBuffs-LongSingleTarget" value: { dps: 1479.581 tps: 3851.86774 } } dps_results: { - key: "TestProtectionWarrior-Settings-Human-P1-Basic-Default-FullBuffs-ShortSingleTarget" + key: "TestProtectionWarrior-Settings-Human-P1-Basic-default-FullBuffs-ShortSingleTarget" value: { dps: 1643.01563 tps: 4246.04821 } } dps_results: { - key: "TestProtectionWarrior-Settings-Human-P1-Basic-Default-NoBuffs-LongMultiTarget" + key: "TestProtectionWarrior-Settings-Human-P1-Basic-default-NoBuffs-LongMultiTarget" value: { dps: 1050.46307 tps: 3335.71088 } } dps_results: { - key: "TestProtectionWarrior-Settings-Human-P1-Basic-Default-NoBuffs-LongSingleTarget" + key: "TestProtectionWarrior-Settings-Human-P1-Basic-default-NoBuffs-LongSingleTarget" value: { dps: 865.20912 tps: 2483.44764 } } dps_results: { - key: "TestProtectionWarrior-Settings-Human-P1-Basic-Default-NoBuffs-ShortSingleTarget" + key: "TestProtectionWarrior-Settings-Human-P1-Basic-default-NoBuffs-ShortSingleTarget" value: { dps: 831.10607 tps: 2403.87441 } } dps_results: { - key: "TestProtectionWarrior-Settings-Orc-P1-Basic-Default-FullBuffs-LongMultiTarget" + key: "TestProtectionWarrior-Settings-Orc-P1-Basic-default-FullBuffs-LongMultiTarget" value: { dps: 1490.53905 tps: 3923.57859 } } dps_results: { - key: "TestProtectionWarrior-Settings-Orc-P1-Basic-Default-FullBuffs-LongSingleTarget" + key: "TestProtectionWarrior-Settings-Orc-P1-Basic-default-FullBuffs-LongSingleTarget" value: { dps: 1490.53905 tps: 3873.54526 } } dps_results: { - key: "TestProtectionWarrior-Settings-Orc-P1-Basic-Default-FullBuffs-ShortSingleTarget" + key: "TestProtectionWarrior-Settings-Orc-P1-Basic-default-FullBuffs-ShortSingleTarget" value: { dps: 1682.8701 tps: 4348.51957 } } dps_results: { - key: "TestProtectionWarrior-Settings-Orc-P1-Basic-Default-NoBuffs-LongMultiTarget" + key: "TestProtectionWarrior-Settings-Orc-P1-Basic-default-NoBuffs-LongMultiTarget" value: { dps: 1063.03306 tps: 3372.37903 } } dps_results: { - key: "TestProtectionWarrior-Settings-Orc-P1-Basic-Default-NoBuffs-LongSingleTarget" + key: "TestProtectionWarrior-Settings-Orc-P1-Basic-default-NoBuffs-LongSingleTarget" value: { dps: 880.11232 tps: 2527.63516 } } dps_results: { - key: "TestProtectionWarrior-Settings-Orc-P1-Basic-Default-NoBuffs-ShortSingleTarget" + key: "TestProtectionWarrior-Settings-Orc-P1-Basic-default-NoBuffs-ShortSingleTarget" value: { dps: 853.54235 tps: 2468.41035 diff --git a/sim/warrior/protection/protection_warrior_test.go b/sim/warrior/protection/protection_warrior_test.go index 2777068161..234fe1b1f0 100644 --- a/sim/warrior/protection/protection_warrior_test.go +++ b/sim/warrior/protection/protection_warrior_test.go @@ -1,6 +1,8 @@ package protection import ( + "log" + "os" "testing" _ "github.com/wowsims/wotlk/sim/common" // imported to get item effects included. @@ -12,6 +14,16 @@ func init() { RegisterProtectionWarrior() } +func GetAplRotation(dir string, file string) core.RotationCombo { + filePath := dir + "/" + file + ".json" + data, err := os.ReadFile(filePath) + if err != nil { + log.Fatalf("failed to load apl json file: %s, %s", filePath, err) + } + + return core.RotationCombo{Label: file, Rotation: core.APLRotationFromJsonString(string(data))} +} + func TestProtectionWarrior(t *testing.T) { core.RunTestSuite(t, t.Name(), core.FullCharacterTestSuiteGenerator(core.CharacterSuiteConfig{ Class: proto.Class_ClassWarrior, @@ -23,7 +35,7 @@ func TestProtectionWarrior(t *testing.T) { Glyphs: DefaultGlyphs, Consumes: FullConsumes, SpecOptions: core.SpecOptionsCombo{Label: "Basic", SpecOptions: PlayerOptionsBasic}, - Rotation: core.RotationCombo{Label: "Default", Rotation: DefaultRotation}, + Rotation: GetAplRotation("../../../ui/protection_warrior/apls", "default"), IsTank: true, InFrontOfTarget: true, @@ -106,24 +118,6 @@ var FullConsumes = &proto.Consumes{ GuardianElixir: proto.GuardianElixir_GiftOfArthas, } -var DefaultRotation = core.APLRotationFromJsonString(`{ - "type": "TypeAPL", - "prepullActions": [ - {"action":{"castSpell":{"spellId":{"spellId":47440}}},"doAtValue":{"const":{"val":"-10s"}}}, - {"action":{"castSpell":{"spellId":{"otherId":"OtherActionPotion"}}},"doAtValue":{"const":{"val":"-1s"}}} - ], - "priorityList": [ - {"action":{"condition":{"cmp":{"op":"OpGe","lhs":{"currentRage":{}},"rhs":{"const":{"val":"30"}}}},"castSpell":{"spellId":{"tag":1,"spellId":47450}}}}, - {"action":{"autocastOtherCooldowns":{}}}, - {"action":{"castSpell":{"spellId":{"spellId":47488}}}}, - {"action":{"castSpell":{"spellId":{"spellId":57823}}}}, - {"action":{"condition":{"auraShouldRefresh":{"sourceUnit":{"type":"Self"},"auraId":{"spellId":47440},"maxOverlap":{"const":{"val":"3s"}}}},"castSpell":{"spellId":{"spellId":47440}}}}, - {"action":{"condition":{"auraShouldRefresh":{"auraId":{"spellId":47502},"maxOverlap":{"const":{"val":"2s"}}}},"castSpell":{"spellId":{"spellId":47502}}}}, - {"action":{"condition":{"auraShouldRefresh":{"auraId":{"spellId":47437},"maxOverlap":{"const":{"val":"2s"}}}},"castSpell":{"spellId":{"spellId":25203}}}}, - {"action":{"castSpell":{"spellId":{"spellId":47498}}}} - ] -}`) - var P1Gear = core.EquipmentSpecFromJsonString(`{"items": [ {"id":40546,"enchant":3818,"gems":[41380,40034]}, {"id":40387}, From 800644211099d4810fd55d8f7c3ceea78974f775 Mon Sep 17 00:00:00 2001 From: jarves Date: Mon, 25 Sep 2023 17:00:36 -0500 Subject: [PATCH 13/21] ret: apl tests Signed-off-by: jarves --- .../retribution/TestRetribution.results | 192 +++++++++--------- sim/paladin/retribution/retribution_test.go | 31 ++- 2 files changed, 109 insertions(+), 114 deletions(-) diff --git a/sim/paladin/retribution/TestRetribution.results b/sim/paladin/retribution/TestRetribution.results index c4dfdb9d44..840dad9412 100644 --- a/sim/paladin/retribution/TestRetribution.results +++ b/sim/paladin/retribution/TestRetribution.results @@ -1056,7 +1056,7 @@ dps_results: { } } dps_results: { - key: "TestRetribution-Settings-BloodElf-P1-Retribution Paladin SOC-Default-FullBuffs-LongMultiTarget" + key: "TestRetribution-Settings-BloodElf-P1-Retribution Paladin SOC-default-FullBuffs-LongMultiTarget" value: { dps: 18971.11574 tps: 20683.21538 @@ -1064,7 +1064,7 @@ dps_results: { } } dps_results: { - key: "TestRetribution-Settings-BloodElf-P1-Retribution Paladin SOC-Default-FullBuffs-LongSingleTarget" + key: "TestRetribution-Settings-BloodElf-P1-Retribution Paladin SOC-default-FullBuffs-LongSingleTarget" value: { dps: 5489.1527 tps: 5574.62494 @@ -1072,7 +1072,7 @@ dps_results: { } } dps_results: { - key: "TestRetribution-Settings-BloodElf-P1-Retribution Paladin SOC-Default-FullBuffs-ShortSingleTarget" + key: "TestRetribution-Settings-BloodElf-P1-Retribution Paladin SOC-default-FullBuffs-ShortSingleTarget" value: { dps: 6210.29551 tps: 6301.47989 @@ -1080,28 +1080,28 @@ dps_results: { } } dps_results: { - key: "TestRetribution-Settings-BloodElf-P1-Retribution Paladin SOC-Default-NoBuffs-LongMultiTarget" + key: "TestRetribution-Settings-BloodElf-P1-Retribution Paladin SOC-default-NoBuffs-LongMultiTarget" value: { dps: 9637.17268 tps: 11227.77451 } } dps_results: { - key: "TestRetribution-Settings-BloodElf-P1-Retribution Paladin SOC-Default-NoBuffs-LongSingleTarget" + key: "TestRetribution-Settings-BloodElf-P1-Retribution Paladin SOC-default-NoBuffs-LongSingleTarget" value: { dps: 2840.7199 tps: 2920.93472 } } dps_results: { - key: "TestRetribution-Settings-BloodElf-P1-Retribution Paladin SOC-Default-NoBuffs-ShortSingleTarget" + key: "TestRetribution-Settings-BloodElf-P1-Retribution Paladin SOC-default-NoBuffs-ShortSingleTarget" value: { dps: 3117.48943 tps: 3201.81555 } } dps_results: { - key: "TestRetribution-Settings-BloodElf-P1-Retribution Paladin SOR-Default-FullBuffs-LongMultiTarget" + key: "TestRetribution-Settings-BloodElf-P1-Retribution Paladin SOR-default-FullBuffs-LongMultiTarget" value: { dps: 16959.3136 tps: 18671.09917 @@ -1109,7 +1109,7 @@ dps_results: { } } dps_results: { - key: "TestRetribution-Settings-BloodElf-P1-Retribution Paladin SOR-Default-FullBuffs-LongSingleTarget" + key: "TestRetribution-Settings-BloodElf-P1-Retribution Paladin SOR-default-FullBuffs-LongSingleTarget" value: { dps: 5850.91138 tps: 5936.46432 @@ -1117,7 +1117,7 @@ dps_results: { } } dps_results: { - key: "TestRetribution-Settings-BloodElf-P1-Retribution Paladin SOR-Default-FullBuffs-ShortSingleTarget" + key: "TestRetribution-Settings-BloodElf-P1-Retribution Paladin SOR-default-FullBuffs-ShortSingleTarget" value: { dps: 6639.8539 tps: 6730.42194 @@ -1125,28 +1125,28 @@ dps_results: { } } dps_results: { - key: "TestRetribution-Settings-BloodElf-P1-Retribution Paladin SOR-Default-NoBuffs-LongMultiTarget" + key: "TestRetribution-Settings-BloodElf-P1-Retribution Paladin SOR-default-NoBuffs-LongMultiTarget" value: { dps: 8452.39789 tps: 10054.05795 } } dps_results: { - key: "TestRetribution-Settings-BloodElf-P1-Retribution Paladin SOR-Default-NoBuffs-LongSingleTarget" + key: "TestRetribution-Settings-BloodElf-P1-Retribution Paladin SOR-default-NoBuffs-LongSingleTarget" value: { dps: 2909.45187 tps: 2989.09547 } } dps_results: { - key: "TestRetribution-Settings-BloodElf-P1-Retribution Paladin SOR-Default-NoBuffs-ShortSingleTarget" + key: "TestRetribution-Settings-BloodElf-P1-Retribution Paladin SOR-default-NoBuffs-ShortSingleTarget" value: { dps: 3200.22801 tps: 3284.0232 } } dps_results: { - key: "TestRetribution-Settings-BloodElf-P1-Retribution Paladin SOV 2 Target Swapping-Default-FullBuffs-LongMultiTarget" + key: "TestRetribution-Settings-BloodElf-P1-Retribution Paladin SOV 2 Target Swapping-default-FullBuffs-LongMultiTarget" value: { dps: 18990.20013 tps: 20698.36129 @@ -1154,7 +1154,7 @@ dps_results: { } } dps_results: { - key: "TestRetribution-Settings-BloodElf-P1-Retribution Paladin SOV 2 Target Swapping-Default-FullBuffs-LongSingleTarget" + key: "TestRetribution-Settings-BloodElf-P1-Retribution Paladin SOV 2 Target Swapping-default-FullBuffs-LongSingleTarget" value: { dps: 6660.95491 tps: 6746.43932 @@ -1162,7 +1162,7 @@ dps_results: { } } dps_results: { - key: "TestRetribution-Settings-BloodElf-P1-Retribution Paladin SOV 2 Target Swapping-Default-FullBuffs-ShortSingleTarget" + key: "TestRetribution-Settings-BloodElf-P1-Retribution Paladin SOV 2 Target Swapping-default-FullBuffs-ShortSingleTarget" value: { dps: 7368.71073 tps: 7459.48078 @@ -1170,28 +1170,28 @@ dps_results: { } } dps_results: { - key: "TestRetribution-Settings-BloodElf-P1-Retribution Paladin SOV 2 Target Swapping-Default-NoBuffs-LongMultiTarget" + key: "TestRetribution-Settings-BloodElf-P1-Retribution Paladin SOV 2 Target Swapping-default-NoBuffs-LongMultiTarget" value: { dps: 9473.00918 tps: 11060.68167 } } dps_results: { - key: "TestRetribution-Settings-BloodElf-P1-Retribution Paladin SOV 2 Target Swapping-Default-NoBuffs-LongSingleTarget" + key: "TestRetribution-Settings-BloodElf-P1-Retribution Paladin SOV 2 Target Swapping-default-NoBuffs-LongSingleTarget" value: { dps: 3419.68819 tps: 3498.9876 } } dps_results: { - key: "TestRetribution-Settings-BloodElf-P1-Retribution Paladin SOV 2 Target Swapping-Default-NoBuffs-ShortSingleTarget" + key: "TestRetribution-Settings-BloodElf-P1-Retribution Paladin SOV 2 Target Swapping-default-NoBuffs-ShortSingleTarget" value: { dps: 3662.89865 tps: 3744.33205 } } dps_results: { - key: "TestRetribution-Settings-BloodElf-P1-Retribution Paladin SOV-Default-FullBuffs-LongMultiTarget" + key: "TestRetribution-Settings-BloodElf-P1-Retribution Paladin SOV-default-FullBuffs-LongMultiTarget" value: { dps: 18990.20013 tps: 20698.36129 @@ -1199,7 +1199,7 @@ dps_results: { } } dps_results: { - key: "TestRetribution-Settings-BloodElf-P1-Retribution Paladin SOV-Default-FullBuffs-LongSingleTarget" + key: "TestRetribution-Settings-BloodElf-P1-Retribution Paladin SOV-default-FullBuffs-LongSingleTarget" value: { dps: 6660.95491 tps: 6746.43932 @@ -1207,7 +1207,7 @@ dps_results: { } } dps_results: { - key: "TestRetribution-Settings-BloodElf-P1-Retribution Paladin SOV-Default-FullBuffs-ShortSingleTarget" + key: "TestRetribution-Settings-BloodElf-P1-Retribution Paladin SOV-default-FullBuffs-ShortSingleTarget" value: { dps: 7368.71073 tps: 7459.48078 @@ -1215,28 +1215,28 @@ dps_results: { } } dps_results: { - key: "TestRetribution-Settings-BloodElf-P1-Retribution Paladin SOV-Default-NoBuffs-LongMultiTarget" + key: "TestRetribution-Settings-BloodElf-P1-Retribution Paladin SOV-default-NoBuffs-LongMultiTarget" value: { dps: 9473.00918 tps: 11060.68167 } } dps_results: { - key: "TestRetribution-Settings-BloodElf-P1-Retribution Paladin SOV-Default-NoBuffs-LongSingleTarget" + key: "TestRetribution-Settings-BloodElf-P1-Retribution Paladin SOV-default-NoBuffs-LongSingleTarget" value: { dps: 3419.68819 tps: 3498.9876 } } dps_results: { - key: "TestRetribution-Settings-BloodElf-P1-Retribution Paladin SOV-Default-NoBuffs-ShortSingleTarget" + key: "TestRetribution-Settings-BloodElf-P1-Retribution Paladin SOV-default-NoBuffs-ShortSingleTarget" value: { dps: 3662.89865 tps: 3744.33205 } } dps_results: { - key: "TestRetribution-Settings-Draenei-P1-Retribution Paladin SOC-Default-FullBuffs-LongMultiTarget" + key: "TestRetribution-Settings-Draenei-P1-Retribution Paladin SOC-default-FullBuffs-LongMultiTarget" value: { dps: 19094.51277 tps: 20786.21603 @@ -1244,7 +1244,7 @@ dps_results: { } } dps_results: { - key: "TestRetribution-Settings-Draenei-P1-Retribution Paladin SOC-Default-FullBuffs-LongSingleTarget" + key: "TestRetribution-Settings-Draenei-P1-Retribution Paladin SOC-default-FullBuffs-LongSingleTarget" value: { dps: 5499.58746 tps: 5584.09355 @@ -1252,7 +1252,7 @@ dps_results: { } } dps_results: { - key: "TestRetribution-Settings-Draenei-P1-Retribution Paladin SOC-Default-FullBuffs-ShortSingleTarget" + key: "TestRetribution-Settings-Draenei-P1-Retribution Paladin SOC-default-FullBuffs-ShortSingleTarget" value: { dps: 6214.23027 tps: 6305.4116 @@ -1260,28 +1260,28 @@ dps_results: { } } dps_results: { - key: "TestRetribution-Settings-Draenei-P1-Retribution Paladin SOC-Default-NoBuffs-LongMultiTarget" + key: "TestRetribution-Settings-Draenei-P1-Retribution Paladin SOC-default-NoBuffs-LongMultiTarget" value: { dps: 9424.10193 tps: 10971.88085 } } dps_results: { - key: "TestRetribution-Settings-Draenei-P1-Retribution Paladin SOC-Default-NoBuffs-LongSingleTarget" + key: "TestRetribution-Settings-Draenei-P1-Retribution Paladin SOC-default-NoBuffs-LongSingleTarget" value: { dps: 2790.79043 tps: 2868.8458 } } dps_results: { - key: "TestRetribution-Settings-Draenei-P1-Retribution Paladin SOC-Default-NoBuffs-ShortSingleTarget" + key: "TestRetribution-Settings-Draenei-P1-Retribution Paladin SOC-default-NoBuffs-ShortSingleTarget" value: { dps: 3125.9593 tps: 3210.43205 } } dps_results: { - key: "TestRetribution-Settings-Draenei-P1-Retribution Paladin SOR-Default-FullBuffs-LongMultiTarget" + key: "TestRetribution-Settings-Draenei-P1-Retribution Paladin SOR-default-FullBuffs-LongMultiTarget" value: { dps: 17082.97172 tps: 18775.69464 @@ -1289,7 +1289,7 @@ dps_results: { } } dps_results: { - key: "TestRetribution-Settings-Draenei-P1-Retribution Paladin SOR-Default-FullBuffs-LongSingleTarget" + key: "TestRetribution-Settings-Draenei-P1-Retribution Paladin SOR-default-FullBuffs-LongSingleTarget" value: { dps: 5865.04094 tps: 5949.58524 @@ -1297,7 +1297,7 @@ dps_results: { } } dps_results: { - key: "TestRetribution-Settings-Draenei-P1-Retribution Paladin SOR-Default-FullBuffs-ShortSingleTarget" + key: "TestRetribution-Settings-Draenei-P1-Retribution Paladin SOR-default-FullBuffs-ShortSingleTarget" value: { dps: 6652.43061 tps: 6743.01944 @@ -1305,28 +1305,28 @@ dps_results: { } } dps_results: { - key: "TestRetribution-Settings-Draenei-P1-Retribution Paladin SOR-Default-NoBuffs-LongMultiTarget" + key: "TestRetribution-Settings-Draenei-P1-Retribution Paladin SOR-default-NoBuffs-LongMultiTarget" value: { dps: 8337.63798 tps: 9899.84386 } } dps_results: { - key: "TestRetribution-Settings-Draenei-P1-Retribution Paladin SOR-Default-NoBuffs-LongSingleTarget" + key: "TestRetribution-Settings-Draenei-P1-Retribution Paladin SOR-default-NoBuffs-LongSingleTarget" value: { dps: 2890.17689 tps: 2968.59111 } } dps_results: { - key: "TestRetribution-Settings-Draenei-P1-Retribution Paladin SOR-Default-NoBuffs-ShortSingleTarget" + key: "TestRetribution-Settings-Draenei-P1-Retribution Paladin SOR-default-NoBuffs-ShortSingleTarget" value: { dps: 3214.61551 tps: 3298.85025 } } dps_results: { - key: "TestRetribution-Settings-Draenei-P1-Retribution Paladin SOV 2 Target Swapping-Default-FullBuffs-LongMultiTarget" + key: "TestRetribution-Settings-Draenei-P1-Retribution Paladin SOV 2 Target Swapping-default-FullBuffs-LongMultiTarget" value: { dps: 19116.6762 tps: 20802.06273 @@ -1334,7 +1334,7 @@ dps_results: { } } dps_results: { - key: "TestRetribution-Settings-Draenei-P1-Retribution Paladin SOV 2 Target Swapping-Default-FullBuffs-LongSingleTarget" + key: "TestRetribution-Settings-Draenei-P1-Retribution Paladin SOV 2 Target Swapping-default-FullBuffs-LongSingleTarget" value: { dps: 6674.2038 tps: 6758.63756 @@ -1342,7 +1342,7 @@ dps_results: { } } dps_results: { - key: "TestRetribution-Settings-Draenei-P1-Retribution Paladin SOV 2 Target Swapping-Default-FullBuffs-ShortSingleTarget" + key: "TestRetribution-Settings-Draenei-P1-Retribution Paladin SOV 2 Target Swapping-default-FullBuffs-ShortSingleTarget" value: { dps: 7378.0797 tps: 7468.87098 @@ -1350,28 +1350,28 @@ dps_results: { } } dps_results: { - key: "TestRetribution-Settings-Draenei-P1-Retribution Paladin SOV 2 Target Swapping-Default-NoBuffs-LongMultiTarget" + key: "TestRetribution-Settings-Draenei-P1-Retribution Paladin SOV 2 Target Swapping-default-NoBuffs-LongMultiTarget" value: { dps: 9342.19849 tps: 10893.93201 } } dps_results: { - key: "TestRetribution-Settings-Draenei-P1-Retribution Paladin SOV 2 Target Swapping-Default-NoBuffs-LongSingleTarget" + key: "TestRetribution-Settings-Draenei-P1-Retribution Paladin SOV 2 Target Swapping-default-NoBuffs-LongSingleTarget" value: { dps: 3391.68596 tps: 3469.06026 } } dps_results: { - key: "TestRetribution-Settings-Draenei-P1-Retribution Paladin SOV 2 Target Swapping-Default-NoBuffs-ShortSingleTarget" + key: "TestRetribution-Settings-Draenei-P1-Retribution Paladin SOV 2 Target Swapping-default-NoBuffs-ShortSingleTarget" value: { dps: 3673.13865 tps: 3754.49899 } } dps_results: { - key: "TestRetribution-Settings-Draenei-P1-Retribution Paladin SOV-Default-FullBuffs-LongMultiTarget" + key: "TestRetribution-Settings-Draenei-P1-Retribution Paladin SOV-default-FullBuffs-LongMultiTarget" value: { dps: 19116.6762 tps: 20802.06273 @@ -1379,7 +1379,7 @@ dps_results: { } } dps_results: { - key: "TestRetribution-Settings-Draenei-P1-Retribution Paladin SOV-Default-FullBuffs-LongSingleTarget" + key: "TestRetribution-Settings-Draenei-P1-Retribution Paladin SOV-default-FullBuffs-LongSingleTarget" value: { dps: 6674.2038 tps: 6758.63756 @@ -1387,7 +1387,7 @@ dps_results: { } } dps_results: { - key: "TestRetribution-Settings-Draenei-P1-Retribution Paladin SOV-Default-FullBuffs-ShortSingleTarget" + key: "TestRetribution-Settings-Draenei-P1-Retribution Paladin SOV-default-FullBuffs-ShortSingleTarget" value: { dps: 7378.0797 tps: 7468.87098 @@ -1395,28 +1395,28 @@ dps_results: { } } dps_results: { - key: "TestRetribution-Settings-Draenei-P1-Retribution Paladin SOV-Default-NoBuffs-LongMultiTarget" + key: "TestRetribution-Settings-Draenei-P1-Retribution Paladin SOV-default-NoBuffs-LongMultiTarget" value: { dps: 9342.19849 tps: 10893.93201 } } dps_results: { - key: "TestRetribution-Settings-Draenei-P1-Retribution Paladin SOV-Default-NoBuffs-LongSingleTarget" + key: "TestRetribution-Settings-Draenei-P1-Retribution Paladin SOV-default-NoBuffs-LongSingleTarget" value: { dps: 3391.68596 tps: 3469.06026 } } dps_results: { - key: "TestRetribution-Settings-Draenei-P1-Retribution Paladin SOV-Default-NoBuffs-ShortSingleTarget" + key: "TestRetribution-Settings-Draenei-P1-Retribution Paladin SOV-default-NoBuffs-ShortSingleTarget" value: { dps: 3673.13865 tps: 3754.49899 } } dps_results: { - key: "TestRetribution-Settings-Dwarf-P1-Retribution Paladin SOC-Default-FullBuffs-LongMultiTarget" + key: "TestRetribution-Settings-Dwarf-P1-Retribution Paladin SOC-default-FullBuffs-LongMultiTarget" value: { dps: 19007.05325 tps: 20699.64856 @@ -1424,7 +1424,7 @@ dps_results: { } } dps_results: { - key: "TestRetribution-Settings-Dwarf-P1-Retribution Paladin SOC-Default-FullBuffs-LongSingleTarget" + key: "TestRetribution-Settings-Dwarf-P1-Retribution Paladin SOC-default-FullBuffs-LongSingleTarget" value: { dps: 5494.87026 tps: 5579.40444 @@ -1432,7 +1432,7 @@ dps_results: { } } dps_results: { - key: "TestRetribution-Settings-Dwarf-P1-Retribution Paladin SOC-Default-FullBuffs-ShortSingleTarget" + key: "TestRetribution-Settings-Dwarf-P1-Retribution Paladin SOC-default-FullBuffs-ShortSingleTarget" value: { dps: 6210.46818 tps: 6301.68511 @@ -1440,28 +1440,28 @@ dps_results: { } } dps_results: { - key: "TestRetribution-Settings-Dwarf-P1-Retribution Paladin SOC-Default-NoBuffs-LongMultiTarget" + key: "TestRetribution-Settings-Dwarf-P1-Retribution Paladin SOC-default-NoBuffs-LongMultiTarget" value: { dps: 9411.67633 tps: 10974.90771 } } dps_results: { - key: "TestRetribution-Settings-Dwarf-P1-Retribution Paladin SOC-Default-NoBuffs-LongSingleTarget" + key: "TestRetribution-Settings-Dwarf-P1-Retribution Paladin SOC-default-NoBuffs-LongSingleTarget" value: { dps: 2802.29988 tps: 2881.0583 } } dps_results: { - key: "TestRetribution-Settings-Dwarf-P1-Retribution Paladin SOC-Default-NoBuffs-ShortSingleTarget" + key: "TestRetribution-Settings-Dwarf-P1-Retribution Paladin SOC-default-NoBuffs-ShortSingleTarget" value: { dps: 3120.24146 tps: 3204.5678 } } dps_results: { - key: "TestRetribution-Settings-Dwarf-P1-Retribution Paladin SOR-Default-FullBuffs-LongMultiTarget" + key: "TestRetribution-Settings-Dwarf-P1-Retribution Paladin SOR-default-FullBuffs-LongMultiTarget" value: { dps: 16991.85853 tps: 18683.85693 @@ -1469,7 +1469,7 @@ dps_results: { } } dps_results: { - key: "TestRetribution-Settings-Dwarf-P1-Retribution Paladin SOR-Default-FullBuffs-LongSingleTarget" + key: "TestRetribution-Settings-Dwarf-P1-Retribution Paladin SOR-default-FullBuffs-LongSingleTarget" value: { dps: 5861.92664 tps: 5946.50542 @@ -1477,7 +1477,7 @@ dps_results: { } } dps_results: { - key: "TestRetribution-Settings-Dwarf-P1-Retribution Paladin SOR-Default-FullBuffs-ShortSingleTarget" + key: "TestRetribution-Settings-Dwarf-P1-Retribution Paladin SOR-default-FullBuffs-ShortSingleTarget" value: { dps: 6648.52672 tps: 6739.12247 @@ -1485,28 +1485,28 @@ dps_results: { } } dps_results: { - key: "TestRetribution-Settings-Dwarf-P1-Retribution Paladin SOR-Default-NoBuffs-LongMultiTarget" + key: "TestRetribution-Settings-Dwarf-P1-Retribution Paladin SOR-default-NoBuffs-LongMultiTarget" value: { dps: 8245.79635 tps: 9813.64143 } } dps_results: { - key: "TestRetribution-Settings-Dwarf-P1-Retribution Paladin SOR-Default-NoBuffs-LongSingleTarget" + key: "TestRetribution-Settings-Dwarf-P1-Retribution Paladin SOR-default-NoBuffs-LongSingleTarget" value: { dps: 2864.82239 tps: 2942.63976 } } dps_results: { - key: "TestRetribution-Settings-Dwarf-P1-Retribution Paladin SOR-Default-NoBuffs-ShortSingleTarget" + key: "TestRetribution-Settings-Dwarf-P1-Retribution Paladin SOR-default-NoBuffs-ShortSingleTarget" value: { dps: 3209.75742 tps: 3293.55282 } } dps_results: { - key: "TestRetribution-Settings-Dwarf-P1-Retribution Paladin SOV 2 Target Swapping-Default-FullBuffs-LongMultiTarget" + key: "TestRetribution-Settings-Dwarf-P1-Retribution Paladin SOV 2 Target Swapping-default-FullBuffs-LongMultiTarget" value: { dps: 19032.13072 tps: 20717.20345 @@ -1514,7 +1514,7 @@ dps_results: { } } dps_results: { - key: "TestRetribution-Settings-Dwarf-P1-Retribution Paladin SOV 2 Target Swapping-Default-FullBuffs-LongSingleTarget" + key: "TestRetribution-Settings-Dwarf-P1-Retribution Paladin SOV 2 Target Swapping-default-FullBuffs-LongSingleTarget" value: { dps: 6672.46181 tps: 6756.8892 @@ -1522,7 +1522,7 @@ dps_results: { } } dps_results: { - key: "TestRetribution-Settings-Dwarf-P1-Retribution Paladin SOV 2 Target Swapping-Default-FullBuffs-ShortSingleTarget" + key: "TestRetribution-Settings-Dwarf-P1-Retribution Paladin SOV 2 Target Swapping-default-FullBuffs-ShortSingleTarget" value: { dps: 7376.56743 tps: 7467.36579 @@ -1530,28 +1530,28 @@ dps_results: { } } dps_results: { - key: "TestRetribution-Settings-Dwarf-P1-Retribution Paladin SOV 2 Target Swapping-Default-NoBuffs-LongMultiTarget" + key: "TestRetribution-Settings-Dwarf-P1-Retribution Paladin SOV 2 Target Swapping-default-NoBuffs-LongMultiTarget" value: { dps: 9275.42904 tps: 10834.63258 } } dps_results: { - key: "TestRetribution-Settings-Dwarf-P1-Retribution Paladin SOV 2 Target Swapping-Default-NoBuffs-LongSingleTarget" + key: "TestRetribution-Settings-Dwarf-P1-Retribution Paladin SOV 2 Target Swapping-default-NoBuffs-LongSingleTarget" value: { dps: 3391.62729 tps: 3469.40805 } } dps_results: { - key: "TestRetribution-Settings-Dwarf-P1-Retribution Paladin SOV 2 Target Swapping-Default-NoBuffs-ShortSingleTarget" + key: "TestRetribution-Settings-Dwarf-P1-Retribution Paladin SOV 2 Target Swapping-default-NoBuffs-ShortSingleTarget" value: { dps: 3669.21489 tps: 3750.64852 } } dps_results: { - key: "TestRetribution-Settings-Dwarf-P1-Retribution Paladin SOV-Default-FullBuffs-LongMultiTarget" + key: "TestRetribution-Settings-Dwarf-P1-Retribution Paladin SOV-default-FullBuffs-LongMultiTarget" value: { dps: 19032.13072 tps: 20717.20345 @@ -1559,7 +1559,7 @@ dps_results: { } } dps_results: { - key: "TestRetribution-Settings-Dwarf-P1-Retribution Paladin SOV-Default-FullBuffs-LongSingleTarget" + key: "TestRetribution-Settings-Dwarf-P1-Retribution Paladin SOV-default-FullBuffs-LongSingleTarget" value: { dps: 6672.46181 tps: 6756.8892 @@ -1567,7 +1567,7 @@ dps_results: { } } dps_results: { - key: "TestRetribution-Settings-Dwarf-P1-Retribution Paladin SOV-Default-FullBuffs-ShortSingleTarget" + key: "TestRetribution-Settings-Dwarf-P1-Retribution Paladin SOV-default-FullBuffs-ShortSingleTarget" value: { dps: 7376.56743 tps: 7467.36579 @@ -1575,28 +1575,28 @@ dps_results: { } } dps_results: { - key: "TestRetribution-Settings-Dwarf-P1-Retribution Paladin SOV-Default-NoBuffs-LongMultiTarget" + key: "TestRetribution-Settings-Dwarf-P1-Retribution Paladin SOV-default-NoBuffs-LongMultiTarget" value: { dps: 9275.42904 tps: 10834.63258 } } dps_results: { - key: "TestRetribution-Settings-Dwarf-P1-Retribution Paladin SOV-Default-NoBuffs-LongSingleTarget" + key: "TestRetribution-Settings-Dwarf-P1-Retribution Paladin SOV-default-NoBuffs-LongSingleTarget" value: { dps: 3391.62729 tps: 3469.40805 } } dps_results: { - key: "TestRetribution-Settings-Dwarf-P1-Retribution Paladin SOV-Default-NoBuffs-ShortSingleTarget" + key: "TestRetribution-Settings-Dwarf-P1-Retribution Paladin SOV-default-NoBuffs-ShortSingleTarget" value: { dps: 3669.21489 tps: 3750.64852 } } dps_results: { - key: "TestRetribution-Settings-Human-P1-Retribution Paladin SOC-Default-FullBuffs-LongMultiTarget" + key: "TestRetribution-Settings-Human-P1-Retribution Paladin SOC-default-FullBuffs-LongMultiTarget" value: { dps: 18985.06088 tps: 20677.49648 @@ -1604,7 +1604,7 @@ dps_results: { } } dps_results: { - key: "TestRetribution-Settings-Human-P1-Retribution Paladin SOC-Default-FullBuffs-LongSingleTarget" + key: "TestRetribution-Settings-Human-P1-Retribution Paladin SOC-default-FullBuffs-LongSingleTarget" value: { dps: 5491.40167 tps: 5575.92765 @@ -1612,7 +1612,7 @@ dps_results: { } } dps_results: { - key: "TestRetribution-Settings-Human-P1-Retribution Paladin SOC-Default-FullBuffs-ShortSingleTarget" + key: "TestRetribution-Settings-Human-P1-Retribution Paladin SOC-default-FullBuffs-ShortSingleTarget" value: { dps: 6209.29437 tps: 6300.50316 @@ -1620,28 +1620,28 @@ dps_results: { } } dps_results: { - key: "TestRetribution-Settings-Human-P1-Retribution Paladin SOC-Default-NoBuffs-LongMultiTarget" + key: "TestRetribution-Settings-Human-P1-Retribution Paladin SOC-default-NoBuffs-LongMultiTarget" value: { dps: 9412.80036 tps: 10973.17542 } } dps_results: { - key: "TestRetribution-Settings-Human-P1-Retribution Paladin SOC-Default-NoBuffs-LongSingleTarget" + key: "TestRetribution-Settings-Human-P1-Retribution Paladin SOC-default-NoBuffs-LongSingleTarget" value: { dps: 2792.76182 tps: 2870.95267 } } dps_results: { - key: "TestRetribution-Settings-Human-P1-Retribution Paladin SOC-Default-NoBuffs-ShortSingleTarget" + key: "TestRetribution-Settings-Human-P1-Retribution Paladin SOC-default-NoBuffs-ShortSingleTarget" value: { dps: 3116.88825 tps: 3201.21454 } } dps_results: { - key: "TestRetribution-Settings-Human-P1-Retribution Paladin SOR-Default-FullBuffs-LongMultiTarget" + key: "TestRetribution-Settings-Human-P1-Retribution Paladin SOR-default-FullBuffs-LongMultiTarget" value: { dps: 16972.62629 tps: 18664.47041 @@ -1649,7 +1649,7 @@ dps_results: { } } dps_results: { - key: "TestRetribution-Settings-Human-P1-Retribution Paladin SOR-Default-FullBuffs-LongSingleTarget" + key: "TestRetribution-Settings-Human-P1-Retribution Paladin SOR-default-FullBuffs-LongSingleTarget" value: { dps: 5855.17061 tps: 5939.7422 @@ -1657,7 +1657,7 @@ dps_results: { } } dps_results: { - key: "TestRetribution-Settings-Human-P1-Retribution Paladin SOR-Default-FullBuffs-ShortSingleTarget" + key: "TestRetribution-Settings-Human-P1-Retribution Paladin SOR-default-FullBuffs-ShortSingleTarget" value: { dps: 6642.34837 tps: 6732.93719 @@ -1665,28 +1665,28 @@ dps_results: { } } dps_results: { - key: "TestRetribution-Settings-Human-P1-Retribution Paladin SOR-Default-NoBuffs-LongMultiTarget" + key: "TestRetribution-Settings-Human-P1-Retribution Paladin SOR-default-NoBuffs-LongMultiTarget" value: { dps: 8240.84027 tps: 9802.46029 } } dps_results: { - key: "TestRetribution-Settings-Human-P1-Retribution Paladin SOR-Default-NoBuffs-LongSingleTarget" + key: "TestRetribution-Settings-Human-P1-Retribution Paladin SOR-default-NoBuffs-LongSingleTarget" value: { dps: 2869.0432 tps: 2947.12054 } } dps_results: { - key: "TestRetribution-Settings-Human-P1-Retribution Paladin SOR-Default-NoBuffs-ShortSingleTarget" + key: "TestRetribution-Settings-Human-P1-Retribution Paladin SOR-default-NoBuffs-ShortSingleTarget" value: { dps: 3203.80154 tps: 3287.59689 } } dps_results: { - key: "TestRetribution-Settings-Human-P1-Retribution Paladin SOV 2 Target Swapping-Default-FullBuffs-LongMultiTarget" + key: "TestRetribution-Settings-Human-P1-Retribution Paladin SOV 2 Target Swapping-default-FullBuffs-LongMultiTarget" value: { dps: 19005.65797 tps: 20690.6051 @@ -1694,7 +1694,7 @@ dps_results: { } } dps_results: { - key: "TestRetribution-Settings-Human-P1-Retribution Paladin SOV 2 Target Swapping-Default-FullBuffs-LongSingleTarget" + key: "TestRetribution-Settings-Human-P1-Retribution Paladin SOV 2 Target Swapping-default-FullBuffs-LongSingleTarget" value: { dps: 6664.20207 tps: 6748.62327 @@ -1702,7 +1702,7 @@ dps_results: { } } dps_results: { - key: "TestRetribution-Settings-Human-P1-Retribution Paladin SOV 2 Target Swapping-Default-FullBuffs-ShortSingleTarget" + key: "TestRetribution-Settings-Human-P1-Retribution Paladin SOV 2 Target Swapping-default-FullBuffs-ShortSingleTarget" value: { dps: 7370.40693 tps: 7461.19821 @@ -1710,28 +1710,28 @@ dps_results: { } } dps_results: { - key: "TestRetribution-Settings-Human-P1-Retribution Paladin SOV 2 Target Swapping-Default-NoBuffs-LongMultiTarget" + key: "TestRetribution-Settings-Human-P1-Retribution Paladin SOV 2 Target Swapping-default-NoBuffs-LongMultiTarget" value: { dps: 9283.36282 tps: 10831.5079 } } dps_results: { - key: "TestRetribution-Settings-Human-P1-Retribution Paladin SOV 2 Target Swapping-Default-NoBuffs-LongSingleTarget" + key: "TestRetribution-Settings-Human-P1-Retribution Paladin SOV 2 Target Swapping-default-NoBuffs-LongSingleTarget" value: { dps: 3382.3599 tps: 3459.75617 } } dps_results: { - key: "TestRetribution-Settings-Human-P1-Retribution Paladin SOV 2 Target Swapping-Default-NoBuffs-ShortSingleTarget" + key: "TestRetribution-Settings-Human-P1-Retribution Paladin SOV 2 Target Swapping-default-NoBuffs-ShortSingleTarget" value: { dps: 3662.94515 tps: 3744.37872 } } dps_results: { - key: "TestRetribution-Settings-Human-P1-Retribution Paladin SOV-Default-FullBuffs-LongMultiTarget" + key: "TestRetribution-Settings-Human-P1-Retribution Paladin SOV-default-FullBuffs-LongMultiTarget" value: { dps: 19005.65797 tps: 20690.6051 @@ -1739,7 +1739,7 @@ dps_results: { } } dps_results: { - key: "TestRetribution-Settings-Human-P1-Retribution Paladin SOV-Default-FullBuffs-LongSingleTarget" + key: "TestRetribution-Settings-Human-P1-Retribution Paladin SOV-default-FullBuffs-LongSingleTarget" value: { dps: 6664.20207 tps: 6748.62327 @@ -1747,7 +1747,7 @@ dps_results: { } } dps_results: { - key: "TestRetribution-Settings-Human-P1-Retribution Paladin SOV-Default-FullBuffs-ShortSingleTarget" + key: "TestRetribution-Settings-Human-P1-Retribution Paladin SOV-default-FullBuffs-ShortSingleTarget" value: { dps: 7370.40693 tps: 7461.19821 @@ -1755,21 +1755,21 @@ dps_results: { } } dps_results: { - key: "TestRetribution-Settings-Human-P1-Retribution Paladin SOV-Default-NoBuffs-LongMultiTarget" + key: "TestRetribution-Settings-Human-P1-Retribution Paladin SOV-default-NoBuffs-LongMultiTarget" value: { dps: 9283.36282 tps: 10831.5079 } } dps_results: { - key: "TestRetribution-Settings-Human-P1-Retribution Paladin SOV-Default-NoBuffs-LongSingleTarget" + key: "TestRetribution-Settings-Human-P1-Retribution Paladin SOV-default-NoBuffs-LongSingleTarget" value: { dps: 3382.3599 tps: 3459.75617 } } dps_results: { - key: "TestRetribution-Settings-Human-P1-Retribution Paladin SOV-Default-NoBuffs-ShortSingleTarget" + key: "TestRetribution-Settings-Human-P1-Retribution Paladin SOV-default-NoBuffs-ShortSingleTarget" value: { dps: 3662.94515 tps: 3744.37872 diff --git a/sim/paladin/retribution/retribution_test.go b/sim/paladin/retribution/retribution_test.go index bfa8ab5bc8..5a9dd42f86 100644 --- a/sim/paladin/retribution/retribution_test.go +++ b/sim/paladin/retribution/retribution_test.go @@ -1,6 +1,8 @@ package retribution import ( + "log" + "os" "testing" _ "github.com/wowsims/wotlk/sim/common" // imported to get item effects included. @@ -12,6 +14,16 @@ func init() { RegisterRetributionPaladin() } +func GetAplRotation(dir string, file string) core.RotationCombo { + filePath := dir + "/" + file + ".json" + data, err := os.ReadFile(filePath) + if err != nil { + log.Fatalf("failed to load apl json file: %s, %s", filePath, err) + } + + return core.RotationCombo{Label: file, Rotation: core.APLRotationFromJsonString(string(data))} +} + func TestRetribution(t *testing.T) { core.RunTestSuite(t, t.Name(), core.FullCharacterTestSuiteGenerator(core.CharacterSuiteConfig{ Class: proto.Class_ClassPaladin, @@ -71,7 +83,7 @@ func TestRetribution(t *testing.T) { }, }, }, - Rotation: core.RotationCombo{Label: "Default", Rotation: DefaultRotation}, + Rotation: GetAplRotation("../../../ui/retribution_paladin/apls", "default"), ItemFilter: core.ItemFilter{ WeaponTypes: []proto.WeaponType{ @@ -145,23 +157,6 @@ var FullConsumes = &proto.Consumes{ ThermalSapper: true, } -var DefaultRotation = core.APLRotationFromJsonString(`{ - "type": "TypeAPL", - "prepullActions": [ - {"action":{"castSpell":{"spellId":{"otherId":"OtherActionPotion"}}},"doAtValue":{"const":{"val":"-1s"}}} - ], - "priorityList": [ - {"action":{"autocastOtherCooldowns":{}}}, - {"action":{"castSpell":{"spellId":{"spellId":67485}}}}, - {"action":{"castSpell":{"spellId":{"spellId":48806}}}}, - {"action":{"castSpell":{"spellId":{"spellId":53408}}}}, - {"action":{"castSpell":{"spellId":{"spellId":35395}}}}, - {"action":{"castSpell":{"spellId":{"spellId":53385}}}}, - {"action":{"condition":{"auraIsActive":{"auraId":{"spellId":53488}}},"castSpell":{"spellId":{"spellId":48801}}}}, - {"action":{"condition":{"cmp":{"op":"OpGt","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"4s"}}}},"castSpell":{"spellId":{"spellId":48819}}}} - ] -}`) - var Phase1Gear = core.EquipmentSpecFromJsonString(`{"items": [ {"id":44006,"enchant":3817,"gems":[41398,49110]}, {"id":44664,"gems":[42142]}, From 1dae70a32c65d21d4cbb96a6fc582d287f5cf269 Mon Sep 17 00:00:00 2001 From: jarves Date: Mon, 25 Sep 2023 17:09:07 -0500 Subject: [PATCH 14/21] =?UTF-8?q?=EF=BB=BFshadowpriest:=20apl=20tests?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: jarves --- sim/priest/shadow/TestShadow.results | 772 ++++++++++++------------ sim/priest/shadow/shadow_priest_test.go | 14 + 2 files changed, 400 insertions(+), 386 deletions(-) diff --git a/sim/priest/shadow/TestShadow.results b/sim/priest/shadow/TestShadow.results index e6773d7c67..c63f3aab30 100644 --- a/sim/priest/shadow/TestShadow.results +++ b/sim/priest/shadow/TestShadow.results @@ -46,1158 +46,1158 @@ character_stats_results: { dps_results: { key: "TestShadow-AllItems-AbsolutionRegalia" value: { - dps: 5342.61274 - tps: 5210.5059 + dps: 5218.88966 + tps: 5004.30031 } } dps_results: { key: "TestShadow-AllItems-Althor'sAbacus-50359" value: { - dps: 7134.22101 - tps: 7103.01626 + dps: 7246.76443 + tps: 6979.28596 } } dps_results: { key: "TestShadow-AllItems-Althor'sAbacus-50366" value: { - dps: 7165.47429 - tps: 7133.93008 + dps: 7283.85386 + tps: 7014.85195 } } dps_results: { key: "TestShadow-AllItems-AustereEarthsiegeDiamond" value: { - dps: 6986.40706 - tps: 6957.01278 + dps: 7104.26851 + tps: 6838.45031 } } dps_results: { key: "TestShadow-AllItems-Bandit'sInsignia-40371" value: { - dps: 6857.31883 - tps: 6807.5988 + dps: 6944.99138 + tps: 6689.90813 } } dps_results: { key: "TestShadow-AllItems-BaubleofTrueBlood-50354" value: { - dps: 6858.30694 - tps: 6808.37839 - hps: 88.26064 + dps: 6946.44223 + tps: 6691.07748 + hps: 88.41863 } } dps_results: { key: "TestShadow-AllItems-BaubleofTrueBlood-50726" value: { - dps: 6858.30694 - tps: 6808.37839 - hps: 88.26064 + dps: 6946.44223 + tps: 6691.07748 + hps: 88.41863 } } dps_results: { key: "TestShadow-AllItems-BeamingEarthsiegeDiamond" value: { - dps: 7094.78575 - tps: 7044.42467 + dps: 7131.6282 + tps: 6865.67313 } } dps_results: { key: "TestShadow-AllItems-BlessedRegaliaofUndeadCleansing" value: { - dps: 6026.31128 - tps: 5871.09317 + dps: 5978.35208 + tps: 5745.14969 } } dps_results: { key: "TestShadow-AllItems-BracingEarthsiegeDiamond" value: { - dps: 7025.14753 - tps: 6861.17261 + dps: 7145.46476 + tps: 6741.088 } } dps_results: { key: "TestShadow-AllItems-ChaoticSkyflareDiamond" value: { - dps: 7158.26737 - tps: 7123.69155 + dps: 7269.43248 + tps: 7003.68687 } } dps_results: { key: "TestShadow-AllItems-CorpseTongueCoin-50349" value: { - dps: 6857.31883 - tps: 6807.5988 + dps: 6944.99138 + tps: 6689.90813 } } dps_results: { key: "TestShadow-AllItems-CorpseTongueCoin-50352" value: { - dps: 6857.31883 - tps: 6807.5988 + dps: 6944.99138 + tps: 6689.90813 } } dps_results: { key: "TestShadow-AllItems-CorrodedSkeletonKey-50356" value: { - dps: 6857.31883 - tps: 6807.5988 + dps: 6944.99138 + tps: 6689.90813 hps: 64 } } dps_results: { key: "TestShadow-AllItems-CrimsonAcolyte'sRaiment" value: { - dps: 6859.72752 - tps: 6775.54044 + dps: 6848.64114 + tps: 6575.70758 } } dps_results: { key: "TestShadow-AllItems-CrimsonAcolyte'sRegalia" value: { - dps: 7794.82797 - tps: 7669.41676 + dps: 7967.9465 + tps: 7718.16905 } } dps_results: { key: "TestShadow-AllItems-DarkmoonCard:Berserker!-42989" value: { - dps: 6974.62368 - tps: 6943.75924 + dps: 7065.81677 + tps: 6810.68239 } } dps_results: { key: "TestShadow-AllItems-DarkmoonCard:Death-42990" value: { - dps: 7016.00742 - tps: 6987.52995 + dps: 7126.03883 + tps: 6871.58845 } } dps_results: { key: "TestShadow-AllItems-DarkmoonCard:Greatness-44255" value: { - dps: 7118.21841 - tps: 6989.31571 + dps: 7030.60584 + tps: 6784.05938 } } dps_results: { key: "TestShadow-AllItems-Death'sChoice-47464" value: { - dps: 6857.31883 - tps: 6807.5988 + dps: 6944.99138 + tps: 6689.90813 } } dps_results: { key: "TestShadow-AllItems-DeathKnight'sAnguish-38212" value: { - dps: 6907.12299 - tps: 6860.69467 + dps: 6980.70188 + tps: 6725.66245 } } dps_results: { key: "TestShadow-AllItems-Deathbringer'sWill-50362" value: { - dps: 6857.31883 - tps: 6807.5988 + dps: 6944.99138 + tps: 6689.90813 } } dps_results: { key: "TestShadow-AllItems-Deathbringer'sWill-50363" value: { - dps: 6857.31883 - tps: 6807.5988 + dps: 6944.99138 + tps: 6689.90813 } } dps_results: { key: "TestShadow-AllItems-Defender'sCode-40257" value: { - dps: 6857.31883 - tps: 6807.5988 + dps: 6944.99138 + tps: 6689.90813 } } dps_results: { key: "TestShadow-AllItems-DestructiveSkyflareDiamond" value: { - dps: 7015.89848 - tps: 6985.67624 + dps: 7136.16317 + tps: 6870.41757 } } dps_results: { key: "TestShadow-AllItems-DislodgedForeignObject-50348" value: { - dps: 7674.8789 - tps: 7473.94868 + dps: 7691.37761 + tps: 7424.42888 } } dps_results: { key: "TestShadow-AllItems-DislodgedForeignObject-50353" value: { - dps: 7603.54306 - tps: 7399.25579 + dps: 7603.64128 + tps: 7338.97398 } } dps_results: { key: "TestShadow-AllItems-EffulgentSkyflareDiamond" value: { - dps: 6986.40706 - tps: 6957.01278 + dps: 7104.26851 + tps: 6838.45031 } } dps_results: { key: "TestShadow-AllItems-EmberSkyflareDiamond" value: { - dps: 7118.14136 - tps: 7062.36193 + dps: 7150.66509 + tps: 6882.80968 } } dps_results: { key: "TestShadow-AllItems-EnigmaticSkyflareDiamond" value: { - dps: 7012.44143 - tps: 6982.21918 + dps: 7131.6282 + tps: 6865.8826 } } dps_results: { key: "TestShadow-AllItems-EnigmaticStarflareDiamond" value: { - dps: 7012.36175 - tps: 6982.35542 + dps: 7127.18411 + tps: 6861.40891 } } dps_results: { key: "TestShadow-AllItems-EphemeralSnowflake-50260" value: { - dps: 7102.595 - tps: 6967.17852 + dps: 7101.4836 + tps: 6849.85083 } } dps_results: { key: "TestShadow-AllItems-EssenceofGossamer-37220" value: { - dps: 6857.31883 - tps: 6807.5988 + dps: 6944.99138 + tps: 6689.90813 } } dps_results: { key: "TestShadow-AllItems-EternalEarthsiegeDiamond" value: { - dps: 6986.40706 - tps: 6957.01278 + dps: 7104.26851 + tps: 6838.45031 } } dps_results: { key: "TestShadow-AllItems-ExtractofNecromanticPower-40373" value: { - dps: 7093.55519 - tps: 7054.43509 + dps: 7130.48441 + tps: 6876.91093 } } dps_results: { key: "TestShadow-AllItems-EyeoftheBroodmother-45308" value: { - dps: 7183.41687 - tps: 7150.90475 + dps: 7279.04403 + tps: 7015.34604 } } dps_results: { key: "TestShadow-AllItems-Figurine-SapphireOwl-42413" value: { - dps: 6998.57084 - tps: 6926.84578 + dps: 6961.91506 + tps: 6706.2071 } } dps_results: { key: "TestShadow-AllItems-ForethoughtTalisman-40258" value: { - dps: 7020.36234 - tps: 6995.13976 + dps: 7132.12439 + tps: 6869.35472 } } dps_results: { key: "TestShadow-AllItems-ForgeEmber-37660" value: { - dps: 7032.45942 - tps: 6999.18379 + dps: 7039.31937 + tps: 6784.16329 } } dps_results: { key: "TestShadow-AllItems-ForlornSkyflareDiamond" value: { - dps: 7025.14753 - tps: 7000.10218 + dps: 7145.46476 + tps: 6877.91538 } } dps_results: { key: "TestShadow-AllItems-ForlornStarflareDiamond" value: { - dps: 7018.00824 - tps: 6993.01084 + dps: 7137.22551 + tps: 6870.02237 } } dps_results: { key: "TestShadow-AllItems-FuryoftheFiveFlights-40431" value: { - dps: 6857.31883 - tps: 6807.5988 + dps: 6944.99138 + tps: 6689.90813 } } dps_results: { key: "TestShadow-AllItems-FuturesightRune-38763" value: { - dps: 7056.74297 - tps: 6994.82768 + dps: 7066.55622 + tps: 6803.45785 } } dps_results: { key: "TestShadow-AllItems-GarbofFaith" value: { - dps: 6459.72568 - tps: 6326.2833 + dps: 6353.19424 + tps: 6103.36912 } } dps_results: { key: "TestShadow-AllItems-Gladiator'sInvestiture" value: { - dps: 6788.93827 - tps: 6685.50575 + dps: 6795.91724 + tps: 6501.24723 } } dps_results: { key: "TestShadow-AllItems-Gladiator'sRaiment" value: { - dps: 6971.69389 - tps: 6766.14234 + dps: 6930.99967 + tps: 6660.30721 } } dps_results: { key: "TestShadow-AllItems-GlowingTwilightScale-54573" value: { - dps: 7147.86617 - tps: 7116.51452 + dps: 7265.30914 + tps: 6997.06896 } } dps_results: { key: "TestShadow-AllItems-GlowingTwilightScale-54589" value: { - dps: 7188.03182 - tps: 7156.05222 + dps: 7307.45622 + tps: 7037.48486 } } dps_results: { key: "TestShadow-AllItems-GnomishLightningGenerator-41121" value: { - dps: 6992.47252 - tps: 6953.94939 + dps: 7091.05208 + tps: 6837.05685 } } dps_results: { key: "TestShadow-AllItems-Heartpierce-49982" value: { - dps: 7158.26737 - tps: 7123.69155 + dps: 7269.43248 + tps: 7003.68687 } } dps_results: { key: "TestShadow-AllItems-Heartpierce-50641" value: { - dps: 7158.26737 - tps: 7123.69155 + dps: 7269.43248 + tps: 7003.68687 } } dps_results: { key: "TestShadow-AllItems-ImpassiveSkyflareDiamond" value: { - dps: 7012.44143 - tps: 6982.21918 + dps: 7131.6282 + tps: 6865.8826 } } dps_results: { key: "TestShadow-AllItems-ImpassiveStarflareDiamond" value: { - dps: 7012.36175 - tps: 6982.35542 + dps: 7127.18411 + tps: 6861.40891 } } dps_results: { key: "TestShadow-AllItems-IncisorFragment-37723" value: { - dps: 6857.31883 - tps: 6807.5988 + dps: 6944.99138 + tps: 6689.90813 } } dps_results: { key: "TestShadow-AllItems-InsightfulEarthsiegeDiamond" value: { - dps: 7137.2865 - tps: 7063.3856 + dps: 7111.77255 + tps: 6849.34749 } } dps_results: { key: "TestShadow-AllItems-InvigoratingEarthsiegeDiamond" value: { - dps: 6986.40706 - tps: 6957.01278 + dps: 7104.26851 + tps: 6838.45031 } } dps_results: { key: "TestShadow-AllItems-LastWord-50179" value: { - dps: 7158.26737 - tps: 7123.69155 + dps: 7269.43248 + tps: 7003.68687 } } dps_results: { key: "TestShadow-AllItems-LastWord-50708" value: { - dps: 7158.26737 - tps: 7123.69155 + dps: 7269.43248 + tps: 7003.68687 } } dps_results: { key: "TestShadow-AllItems-Lavanthor'sTalisman-37872" value: { - dps: 6857.31883 - tps: 6807.5988 + dps: 6944.99138 + tps: 6689.90813 } } dps_results: { key: "TestShadow-AllItems-MajesticDragonFigurine-40430" value: { - dps: 7040.17847 - tps: 6961.26584 + dps: 7014.13537 + tps: 6752.5071 } } dps_results: { key: "TestShadow-AllItems-MeteoriteWhetstone-37390" value: { - dps: 6950.57205 - tps: 6919.43546 + dps: 7041.19364 + tps: 6786.03756 } } dps_results: { key: "TestShadow-AllItems-NevermeltingIceCrystal-50259" value: { - dps: 7243.85245 - tps: 7214.63951 + dps: 7384.06723 + tps: 7120.60249 } } dps_results: { key: "TestShadow-AllItems-Nibelung-49992" value: { - dps: 7158.26737 - tps: 7123.69155 + dps: 7269.43248 + tps: 7003.68687 } } dps_results: { key: "TestShadow-AllItems-Nibelung-50648" value: { - dps: 7158.26737 - tps: 7123.69155 + dps: 7269.43248 + tps: 7003.68687 } } dps_results: { key: "TestShadow-AllItems-OfferingofSacrifice-37638" value: { - dps: 6857.31883 - tps: 6807.5988 + dps: 6944.99138 + tps: 6689.90813 } } dps_results: { key: "TestShadow-AllItems-PersistentEarthshatterDiamond" value: { - dps: 6986.40706 - tps: 6957.01278 + dps: 7104.26851 + tps: 6838.45031 } } dps_results: { key: "TestShadow-AllItems-PersistentEarthsiegeDiamond" value: { - dps: 6986.40706 - tps: 6957.01278 + dps: 7104.26851 + tps: 6838.45031 } } dps_results: { key: "TestShadow-AllItems-PetrifiedScarab-21685" value: { - dps: 6857.31883 - tps: 6807.5988 + dps: 6944.99138 + tps: 6689.90813 } } dps_results: { key: "TestShadow-AllItems-PetrifiedTwilightScale-54571" value: { - dps: 6857.31883 - tps: 6807.5988 + dps: 6944.99138 + tps: 6689.90813 } } dps_results: { key: "TestShadow-AllItems-PetrifiedTwilightScale-54591" value: { - dps: 6857.31883 - tps: 6807.5988 + dps: 6944.99138 + tps: 6689.90813 } } dps_results: { key: "TestShadow-AllItems-PowerfulEarthshatterDiamond" value: { - dps: 6986.40706 - tps: 6957.01278 + dps: 7104.26851 + tps: 6838.45031 } } dps_results: { key: "TestShadow-AllItems-PowerfulEarthsiegeDiamond" value: { - dps: 6986.40706 - tps: 6957.01278 + dps: 7104.26851 + tps: 6838.45031 } } dps_results: { key: "TestShadow-AllItems-PurifiedShardoftheGods" value: { - dps: 6857.31883 - tps: 6807.5988 + dps: 6944.99138 + tps: 6689.90813 } } dps_results: { key: "TestShadow-AllItems-RegaliaofFaith" value: { - dps: 6197.45024 - tps: 6085.95861 + dps: 6155.69092 + tps: 5901.89587 } } dps_results: { key: "TestShadow-AllItems-ReignoftheDead-47316" value: { - dps: 7256.33476 - tps: 7237.36185 + dps: 7362.24941 + tps: 7098.65064 } } dps_results: { key: "TestShadow-AllItems-ReignoftheDead-47477" value: { - dps: 7297.32404 - tps: 7278.84171 + dps: 7412.92382 + tps: 7148.08793 } } dps_results: { key: "TestShadow-AllItems-RelentlessEarthsiegeDiamond" value: { - dps: 7123.20246 - tps: 7098.71414 + dps: 7239.65394 + tps: 6973.83574 } } dps_results: { key: "TestShadow-AllItems-RevitalizingSkyflareDiamond" value: { - dps: 7049.91705 - tps: 7003.46657 + dps: 7104.26851 + tps: 6837.87007 } } dps_results: { key: "TestShadow-AllItems-RuneofRepulsion-40372" value: { - dps: 6857.31883 - tps: 6807.5988 + dps: 6944.99138 + tps: 6689.90813 } } dps_results: { key: "TestShadow-AllItems-SanctificationGarb" value: { - dps: 7127.20465 - tps: 6958.54826 + dps: 6922.19184 + tps: 6664.11758 } } dps_results: { key: "TestShadow-AllItems-SanctificationRegalia" value: { - dps: 6622.40453 - tps: 6519.51557 + dps: 6598.81976 + tps: 6337.02944 } } dps_results: { key: "TestShadow-AllItems-SealofthePantheon-36993" value: { - dps: 6857.31883 - tps: 6807.5988 + dps: 6944.99138 + tps: 6689.90813 } } dps_results: { key: "TestShadow-AllItems-ShinyShardoftheGods" value: { - dps: 6857.31883 - tps: 6807.5988 + dps: 6944.99138 + tps: 6689.90813 } } dps_results: { key: "TestShadow-AllItems-Sindragosa'sFlawlessFang-50361" value: { - dps: 6857.31883 - tps: 6807.5988 + dps: 6944.99138 + tps: 6689.90813 } } dps_results: { key: "TestShadow-AllItems-SliverofPureIce-50339" value: { - dps: 7203.81717 - tps: 7152.4114 + dps: 7211.36089 + tps: 6948.10495 } } dps_results: { key: "TestShadow-AllItems-SliverofPureIce-50346" value: { - dps: 7237.92326 - tps: 7193.73506 + dps: 7245.07855 + tps: 6980.87945 } } dps_results: { key: "TestShadow-AllItems-SoulPreserver-37111" value: { - dps: 6964.12086 - tps: 6939.45627 + dps: 7071.4326 + tps: 6811.15582 } } dps_results: { key: "TestShadow-AllItems-SouloftheDead-40382" value: { - dps: 7086.17683 - tps: 7012.13838 + dps: 7063.51314 + tps: 6808.3254 } } dps_results: { key: "TestShadow-AllItems-SparkofLife-37657" value: { - dps: 7086.67569 - tps: 7009.12863 + dps: 7082.99923 + tps: 6824.832 } } dps_results: { key: "TestShadow-AllItems-SphereofRedDragon'sBlood-37166" value: { - dps: 6852.41732 - tps: 6822.62679 + dps: 6954.36659 + tps: 6699.81495 } } dps_results: { key: "TestShadow-AllItems-SwiftSkyflareDiamond" value: { - dps: 6986.40706 - tps: 6957.01278 + dps: 7104.26851 + tps: 6838.45031 } } dps_results: { key: "TestShadow-AllItems-SwiftStarflareDiamond" value: { - dps: 6986.40706 - tps: 6957.01278 + dps: 7104.26851 + tps: 6838.45031 } } dps_results: { key: "TestShadow-AllItems-SwiftWindfireDiamond" value: { - dps: 6986.40706 - tps: 6957.01278 + dps: 7104.26851 + tps: 6838.45031 } } dps_results: { key: "TestShadow-AllItems-TalismanofTrollDivinity-37734" value: { - dps: 6993.2448 - tps: 6937.24547 + dps: 7009.25486 + tps: 6750.17068 } } dps_results: { key: "TestShadow-AllItems-TearsoftheVanquished-47215" value: { - dps: 6995.80076 - tps: 6919.42113 + dps: 6973.67183 + tps: 6717.38611 } } dps_results: { key: "TestShadow-AllItems-TheGeneral'sHeart-45507" value: { - dps: 6857.31883 - tps: 6807.5988 + dps: 6944.99138 + tps: 6689.90813 } } dps_results: { key: "TestShadow-AllItems-ThunderingSkyflareDiamond" value: { - dps: 6986.40706 - tps: 6957.01278 + dps: 7104.26851 + tps: 6838.45031 } } dps_results: { key: "TestShadow-AllItems-TinyAbominationinaJar-50351" value: { - dps: 6852.41732 - tps: 6822.62679 + dps: 6954.36659 + tps: 6699.81495 } } dps_results: { key: "TestShadow-AllItems-TinyAbominationinaJar-50706" value: { - dps: 6852.41732 - tps: 6822.62679 + dps: 6954.36659 + tps: 6699.81495 } } dps_results: { key: "TestShadow-AllItems-TirelessSkyflareDiamond" value: { - dps: 7025.14753 - tps: 7000.10218 + dps: 7145.46476 + tps: 6877.91538 } } dps_results: { key: "TestShadow-AllItems-TirelessStarflareDiamond" value: { - dps: 7018.00824 - tps: 6993.01084 + dps: 7137.22551 + tps: 6870.02237 } } dps_results: { key: "TestShadow-AllItems-TomeofArcanePhenomena-36972" value: { - dps: 7227.72826 - tps: 7043.43787 + dps: 7164.02707 + tps: 6906.65804 } } dps_results: { key: "TestShadow-AllItems-TrenchantEarthshatterDiamond" value: { - dps: 7018.00824 - tps: 6993.01084 + dps: 7137.22551 + tps: 6870.02237 } } dps_results: { key: "TestShadow-AllItems-TrenchantEarthsiegeDiamond" value: { - dps: 7025.14753 - tps: 7000.10218 + dps: 7145.46476 + tps: 6877.91538 } } dps_results: { key: "TestShadow-AllItems-Val'anyr,HammerofAncientKings-46017" value: { - dps: 7402.83818 - tps: 7383.78261 + dps: 7565.29608 + tps: 7294.47092 } } dps_results: { key: "TestShadow-AllItems-VestmentsofAbsolution" value: { - dps: 5165.90498 - tps: 5028.74138 + dps: 5089.05279 + tps: 4873.13116 } } dps_results: { key: "TestShadow-AllItems-WingedTalisman-37844" value: { - dps: 6989.68841 - tps: 6931.30028 + dps: 7080.81478 + tps: 6813.01997 } } dps_results: { key: "TestShadow-AllItems-Zabra'sRaiment" value: { - dps: 6549.85142 - tps: 6459.09084 + dps: 6504.43066 + tps: 6245.16449 } } dps_results: { key: "TestShadow-AllItems-Zabra'sRegalia" value: { - dps: 6881.41578 - tps: 6803.63239 + dps: 6860.96701 + tps: 6598.813 } } dps_results: { key: "TestShadow-Average-Default" value: { - dps: 7270.91193 - tps: 7213.43353 + dps: 7339.65613 + tps: 7071.31065 } } dps_results: { - key: "TestShadow-Settings-Draenei-P1-Basic--FullBuffs-LongMultiTarget" + key: "TestShadow-Settings-Draenei-P1-Basic-default-FullBuffs-LongMultiTarget" value: { - dps: 7276.98143 - tps: 8015.9716 + dps: 7276.94163 + tps: 7701.97014 } } dps_results: { - key: "TestShadow-Settings-Draenei-P1-Basic--FullBuffs-LongSingleTarget" + key: "TestShadow-Settings-Draenei-P1-Basic-default-FullBuffs-LongSingleTarget" value: { - dps: 7276.98143 - tps: 7196.27849 + dps: 7276.94163 + tps: 7011.89306 } } dps_results: { - key: "TestShadow-Settings-Draenei-P1-Basic--FullBuffs-ShortSingleTarget" + key: "TestShadow-Settings-Draenei-P1-Basic-default-FullBuffs-ShortSingleTarget" value: { - dps: 7899.69067 - tps: 7977.27947 + dps: 8650.42941 + tps: 7831.83563 } } dps_results: { - key: "TestShadow-Settings-Draenei-P1-Basic--NoBuffs-LongMultiTarget" + key: "TestShadow-Settings-Draenei-P1-Basic-default-NoBuffs-LongMultiTarget" value: { - dps: 3755.12997 - tps: 4645.4045 + dps: 3800.38092 + tps: 4557.37 } } dps_results: { - key: "TestShadow-Settings-Draenei-P1-Basic--NoBuffs-LongSingleTarget" + key: "TestShadow-Settings-Draenei-P1-Basic-default-NoBuffs-LongSingleTarget" value: { - dps: 3755.12997 - tps: 3678.54061 + dps: 3800.38092 + tps: 3711.54789 } } dps_results: { - key: "TestShadow-Settings-Draenei-P1-Basic--NoBuffs-ShortSingleTarget" + key: "TestShadow-Settings-Draenei-P1-Basic-default-NoBuffs-ShortSingleTarget" value: { - dps: 3713.44939 - tps: 3701.04956 + dps: 3981.46899 + tps: 3665.49007 } } dps_results: { - key: "TestShadow-Settings-Draenei-P1-Clipping--FullBuffs-LongMultiTarget" + key: "TestShadow-Settings-Draenei-P1-Clipping-default-FullBuffs-LongMultiTarget" value: { - dps: 6831.25177 - tps: 7725.24449 + dps: 7276.94163 + tps: 7701.97014 } } dps_results: { - key: "TestShadow-Settings-Draenei-P1-Clipping--FullBuffs-LongSingleTarget" + key: "TestShadow-Settings-Draenei-P1-Clipping-default-FullBuffs-LongSingleTarget" value: { - dps: 6831.25177 - tps: 6778.86069 + dps: 7276.94163 + tps: 7011.89306 } } dps_results: { - key: "TestShadow-Settings-Draenei-P1-Clipping--FullBuffs-ShortSingleTarget" + key: "TestShadow-Settings-Draenei-P1-Clipping-default-FullBuffs-ShortSingleTarget" value: { - dps: 7565.97118 - tps: 7645.01906 + dps: 8650.42941 + tps: 7831.83563 } } dps_results: { - key: "TestShadow-Settings-Draenei-P1-Clipping--NoBuffs-LongMultiTarget" + key: "TestShadow-Settings-Draenei-P1-Clipping-default-NoBuffs-LongMultiTarget" value: { - dps: 3545.55867 - tps: 4490.91814 + dps: 3800.38092 + tps: 4557.37 } } dps_results: { - key: "TestShadow-Settings-Draenei-P1-Clipping--NoBuffs-LongSingleTarget" + key: "TestShadow-Settings-Draenei-P1-Clipping-default-NoBuffs-LongSingleTarget" value: { - dps: 3545.55867 - tps: 3472.50344 + dps: 3800.38092 + tps: 3711.54789 } } dps_results: { - key: "TestShadow-Settings-Draenei-P1-Clipping--NoBuffs-ShortSingleTarget" + key: "TestShadow-Settings-Draenei-P1-Clipping-default-NoBuffs-ShortSingleTarget" value: { - dps: 3763.63335 - tps: 3634.92771 + dps: 3981.46899 + tps: 3665.49007 } } dps_results: { - key: "TestShadow-Settings-Draenei-P1-Ideal--FullBuffs-LongMultiTarget" + key: "TestShadow-Settings-Draenei-P1-Ideal-default-FullBuffs-LongMultiTarget" value: { - dps: 7164.03473 - tps: 8173.32026 + dps: 7276.94163 + tps: 7701.97014 } } dps_results: { - key: "TestShadow-Settings-Draenei-P1-Ideal--FullBuffs-LongSingleTarget" + key: "TestShadow-Settings-Draenei-P1-Ideal-default-FullBuffs-LongSingleTarget" value: { - dps: 7164.03473 - tps: 7144.68521 + dps: 7276.94163 + tps: 7011.89306 } } dps_results: { - key: "TestShadow-Settings-Draenei-P1-Ideal--FullBuffs-ShortSingleTarget" + key: "TestShadow-Settings-Draenei-P1-Ideal-default-FullBuffs-ShortSingleTarget" value: { - dps: 8006.71042 - tps: 8086.24117 + dps: 8650.42941 + tps: 7831.83563 } } dps_results: { - key: "TestShadow-Settings-Draenei-P1-Ideal--NoBuffs-LongMultiTarget" + key: "TestShadow-Settings-Draenei-P1-Ideal-default-NoBuffs-LongMultiTarget" value: { - dps: 3639.72295 - tps: 4601.44868 + dps: 3800.38092 + tps: 4557.37 } } dps_results: { - key: "TestShadow-Settings-Draenei-P1-Ideal--NoBuffs-LongSingleTarget" + key: "TestShadow-Settings-Draenei-P1-Ideal-default-NoBuffs-LongSingleTarget" value: { - dps: 3639.72295 - tps: 3569.28711 + dps: 3800.38092 + tps: 3711.54789 } } dps_results: { - key: "TestShadow-Settings-Draenei-P1-Ideal--NoBuffs-ShortSingleTarget" + key: "TestShadow-Settings-Draenei-P1-Ideal-default-NoBuffs-ShortSingleTarget" value: { - dps: 4068.36952 - tps: 3847.31857 + dps: 3981.46899 + tps: 3665.49007 } } dps_results: { - key: "TestShadow-Settings-NightElf-P1-Basic--FullBuffs-LongMultiTarget" + key: "TestShadow-Settings-NightElf-P1-Basic-default-FullBuffs-LongMultiTarget" value: { - dps: 7259.92708 - tps: 8000.07994 + dps: 7265.31853 + tps: 7697.20033 } } dps_results: { - key: "TestShadow-Settings-NightElf-P1-Basic--FullBuffs-LongSingleTarget" + key: "TestShadow-Settings-NightElf-P1-Basic-default-FullBuffs-LongSingleTarget" value: { - dps: 7259.92708 - tps: 7179.15618 + dps: 7265.31853 + tps: 6999.81777 } } dps_results: { - key: "TestShadow-Settings-NightElf-P1-Basic--FullBuffs-ShortSingleTarget" + key: "TestShadow-Settings-NightElf-P1-Basic-default-FullBuffs-ShortSingleTarget" value: { - dps: 7885.14842 - tps: 7962.76941 + dps: 8645.49211 + tps: 7827.10931 } } dps_results: { - key: "TestShadow-Settings-NightElf-P1-Basic--NoBuffs-LongMultiTarget" + key: "TestShadow-Settings-NightElf-P1-Basic-default-NoBuffs-LongMultiTarget" value: { - dps: 3752.0472 - tps: 4612.72493 + dps: 3787.79957 + tps: 4544.76748 } } dps_results: { - key: "TestShadow-Settings-NightElf-P1-Basic--NoBuffs-LongSingleTarget" + key: "TestShadow-Settings-NightElf-P1-Basic-default-NoBuffs-LongSingleTarget" value: { - dps: 3752.0472 - tps: 3673.3548 + dps: 3787.79957 + tps: 3698.61644 } } dps_results: { - key: "TestShadow-Settings-NightElf-P1-Basic--NoBuffs-ShortSingleTarget" + key: "TestShadow-Settings-NightElf-P1-Basic-default-NoBuffs-ShortSingleTarget" value: { - dps: 3706.94277 - tps: 3695.86903 + dps: 3975.77889 + tps: 3659.88269 } } dps_results: { - key: "TestShadow-Settings-NightElf-P1-Clipping--FullBuffs-LongMultiTarget" + key: "TestShadow-Settings-NightElf-P1-Clipping-default-FullBuffs-LongMultiTarget" value: { - dps: 6793.01223 - tps: 7750.56109 + dps: 7265.31853 + tps: 7697.20033 } } dps_results: { - key: "TestShadow-Settings-NightElf-P1-Clipping--FullBuffs-LongSingleTarget" + key: "TestShadow-Settings-NightElf-P1-Clipping-default-FullBuffs-LongSingleTarget" value: { - dps: 6793.01223 - tps: 6762.42618 + dps: 7265.31853 + tps: 6999.81777 } } dps_results: { - key: "TestShadow-Settings-NightElf-P1-Clipping--FullBuffs-ShortSingleTarget" + key: "TestShadow-Settings-NightElf-P1-Clipping-default-FullBuffs-ShortSingleTarget" value: { - dps: 7558.95842 - tps: 7638.0063 + dps: 8645.49211 + tps: 7827.10931 } } dps_results: { - key: "TestShadow-Settings-NightElf-P1-Clipping--NoBuffs-LongMultiTarget" + key: "TestShadow-Settings-NightElf-P1-Clipping-default-NoBuffs-LongMultiTarget" value: { - dps: 3523.50806 - tps: 4477.60676 + dps: 3787.79957 + tps: 4544.76748 } } dps_results: { - key: "TestShadow-Settings-NightElf-P1-Clipping--NoBuffs-LongSingleTarget" + key: "TestShadow-Settings-NightElf-P1-Clipping-default-NoBuffs-LongSingleTarget" value: { - dps: 3523.50806 - tps: 3450.60027 + dps: 3787.79957 + tps: 3698.61644 } } dps_results: { - key: "TestShadow-Settings-NightElf-P1-Clipping--NoBuffs-ShortSingleTarget" + key: "TestShadow-Settings-NightElf-P1-Clipping-default-NoBuffs-ShortSingleTarget" value: { - dps: 3755.32093 - tps: 3627.94993 + dps: 3975.77889 + tps: 3659.88269 } } dps_results: { - key: "TestShadow-Settings-NightElf-P1-Ideal--FullBuffs-LongMultiTarget" + key: "TestShadow-Settings-NightElf-P1-Ideal-default-FullBuffs-LongMultiTarget" value: { - dps: 7153.6372 - tps: 8137.77296 + dps: 7265.31853 + tps: 7697.20033 } } dps_results: { - key: "TestShadow-Settings-NightElf-P1-Ideal--FullBuffs-LongSingleTarget" + key: "TestShadow-Settings-NightElf-P1-Ideal-default-FullBuffs-LongSingleTarget" value: { - dps: 7153.6372 - tps: 7119.30913 + dps: 7265.31853 + tps: 6999.81777 } } dps_results: { - key: "TestShadow-Settings-NightElf-P1-Ideal--FullBuffs-ShortSingleTarget" + key: "TestShadow-Settings-NightElf-P1-Ideal-default-FullBuffs-ShortSingleTarget" value: { - dps: 8000.84015 - tps: 8080.37091 + dps: 8645.49211 + tps: 7827.10931 } } dps_results: { - key: "TestShadow-Settings-NightElf-P1-Ideal--NoBuffs-LongMultiTarget" + key: "TestShadow-Settings-NightElf-P1-Ideal-default-NoBuffs-LongMultiTarget" value: { - dps: 3651.39102 - tps: 4623.49943 + dps: 3787.79957 + tps: 4544.76748 } } dps_results: { - key: "TestShadow-Settings-NightElf-P1-Ideal--NoBuffs-LongSingleTarget" + key: "TestShadow-Settings-NightElf-P1-Ideal-default-NoBuffs-LongSingleTarget" value: { - dps: 3651.39102 - tps: 3581.0277 + dps: 3787.79957 + tps: 3698.61644 } } dps_results: { - key: "TestShadow-Settings-NightElf-P1-Ideal--NoBuffs-ShortSingleTarget" + key: "TestShadow-Settings-NightElf-P1-Ideal-default-NoBuffs-ShortSingleTarget" value: { - dps: 4066.77019 - tps: 3846.90487 + dps: 3975.77889 + tps: 3659.88269 } } dps_results: { - key: "TestShadow-Settings-Undead-P1-Basic--FullBuffs-LongMultiTarget" + key: "TestShadow-Settings-Undead-P1-Basic-default-FullBuffs-LongMultiTarget" value: { - dps: 7266.68654 - tps: 7999.1377 + dps: 7269.43248 + tps: 7699.70087 } } dps_results: { - key: "TestShadow-Settings-Undead-P1-Basic--FullBuffs-LongSingleTarget" + key: "TestShadow-Settings-Undead-P1-Basic-default-FullBuffs-LongSingleTarget" value: { - dps: 7266.68654 - tps: 7185.4544 + dps: 7269.43248 + tps: 7003.68687 } } dps_results: { - key: "TestShadow-Settings-Undead-P1-Basic--FullBuffs-ShortSingleTarget" + key: "TestShadow-Settings-Undead-P1-Basic-default-FullBuffs-ShortSingleTarget" value: { - dps: 7889.63057 - tps: 7967.18556 + dps: 8650.52266 + tps: 7831.63135 } } dps_results: { - key: "TestShadow-Settings-Undead-P1-Basic--NoBuffs-LongMultiTarget" + key: "TestShadow-Settings-Undead-P1-Basic-default-NoBuffs-LongMultiTarget" value: { - dps: 3760.12664 - tps: 4626.67404 + dps: 3796.49082 + tps: 4551.85263 } } dps_results: { - key: "TestShadow-Settings-Undead-P1-Basic--NoBuffs-LongSingleTarget" + key: "TestShadow-Settings-Undead-P1-Basic-default-NoBuffs-LongSingleTarget" value: { - dps: 3760.12664 - tps: 3681.99987 + dps: 3796.49082 + tps: 3706.95356 } } dps_results: { - key: "TestShadow-Settings-Undead-P1-Basic--NoBuffs-ShortSingleTarget" + key: "TestShadow-Settings-Undead-P1-Basic-default-NoBuffs-ShortSingleTarget" value: { - dps: 3708.93419 - tps: 3697.66948 + dps: 3978.02595 + tps: 3661.94227 } } dps_results: { - key: "TestShadow-Settings-Undead-P1-Clipping--FullBuffs-LongMultiTarget" + key: "TestShadow-Settings-Undead-P1-Clipping-default-FullBuffs-LongMultiTarget" value: { - dps: 6802.35083 - tps: 7733.77954 + dps: 7269.43248 + tps: 7699.70087 } } dps_results: { - key: "TestShadow-Settings-Undead-P1-Clipping--FullBuffs-LongSingleTarget" + key: "TestShadow-Settings-Undead-P1-Clipping-default-FullBuffs-LongSingleTarget" value: { - dps: 6802.35083 - tps: 6766.33237 + dps: 7269.43248 + tps: 7003.68687 } } dps_results: { - key: "TestShadow-Settings-Undead-P1-Clipping--FullBuffs-ShortSingleTarget" + key: "TestShadow-Settings-Undead-P1-Clipping-default-FullBuffs-ShortSingleTarget" value: { - dps: 7563.17892 - tps: 7642.1608 + dps: 8650.52266 + tps: 7831.63135 } } dps_results: { - key: "TestShadow-Settings-Undead-P1-Clipping--NoBuffs-LongMultiTarget" + key: "TestShadow-Settings-Undead-P1-Clipping-default-NoBuffs-LongMultiTarget" value: { - dps: 3520.65619 - tps: 4469.17963 + dps: 3796.49082 + tps: 4551.85263 } } dps_results: { - key: "TestShadow-Settings-Undead-P1-Clipping--NoBuffs-LongSingleTarget" + key: "TestShadow-Settings-Undead-P1-Clipping-default-NoBuffs-LongSingleTarget" value: { - dps: 3520.65619 - tps: 3447.30751 + dps: 3796.49082 + tps: 3706.95356 } } dps_results: { - key: "TestShadow-Settings-Undead-P1-Clipping--NoBuffs-ShortSingleTarget" + key: "TestShadow-Settings-Undead-P1-Clipping-default-NoBuffs-ShortSingleTarget" value: { - dps: 3757.25166 - tps: 3629.63259 + dps: 3978.02595 + tps: 3661.94227 } } dps_results: { - key: "TestShadow-Settings-Undead-P1-Ideal--FullBuffs-LongMultiTarget" + key: "TestShadow-Settings-Undead-P1-Ideal-default-FullBuffs-LongMultiTarget" value: { - dps: 7158.26737 - tps: 8140.68766 + dps: 7269.43248 + tps: 7699.70087 } } dps_results: { - key: "TestShadow-Settings-Undead-P1-Ideal--FullBuffs-LongSingleTarget" + key: "TestShadow-Settings-Undead-P1-Ideal-default-FullBuffs-LongSingleTarget" value: { - dps: 7158.26737 - tps: 7123.69155 + dps: 7269.43248 + tps: 7003.68687 } } dps_results: { - key: "TestShadow-Settings-Undead-P1-Ideal--FullBuffs-ShortSingleTarget" + key: "TestShadow-Settings-Undead-P1-Ideal-default-FullBuffs-ShortSingleTarget" value: { - dps: 8005.35458 - tps: 8084.81933 + dps: 8650.52266 + tps: 7831.63135 } } dps_results: { - key: "TestShadow-Settings-Undead-P1-Ideal--NoBuffs-LongMultiTarget" + key: "TestShadow-Settings-Undead-P1-Ideal-default-NoBuffs-LongMultiTarget" value: { - dps: 3633.69606 - tps: 4593.49043 + dps: 3796.49082 + tps: 4551.85263 } } dps_results: { - key: "TestShadow-Settings-Undead-P1-Ideal--NoBuffs-LongSingleTarget" + key: "TestShadow-Settings-Undead-P1-Ideal-default-NoBuffs-LongSingleTarget" value: { - dps: 3633.69606 - tps: 3563.04076 + dps: 3796.49082 + tps: 3706.95356 } } dps_results: { - key: "TestShadow-Settings-Undead-P1-Ideal--NoBuffs-ShortSingleTarget" + key: "TestShadow-Settings-Undead-P1-Ideal-default-NoBuffs-ShortSingleTarget" value: { - dps: 4068.95261 - tps: 3848.75656 + dps: 3978.02595 + tps: 3661.94227 } } dps_results: { key: "TestShadow-SwitchInFrontOfTarget-Default" value: { - dps: 7146.67473 - tps: 7123.69155 + dps: 7226.17607 + tps: 7003.68687 } } diff --git a/sim/priest/shadow/shadow_priest_test.go b/sim/priest/shadow/shadow_priest_test.go index afb5ce93e7..d176559f7e 100644 --- a/sim/priest/shadow/shadow_priest_test.go +++ b/sim/priest/shadow/shadow_priest_test.go @@ -1,6 +1,8 @@ package shadow import ( + "log" + "os" "testing" _ "github.com/wowsims/wotlk/sim/common" // imported to get caster sets included. @@ -12,6 +14,16 @@ func init() { RegisterShadowPriest() } +func GetAplRotation(dir string, file string) core.RotationCombo { + filePath := dir + "/" + file + ".json" + data, err := os.ReadFile(filePath) + if err != nil { + log.Fatalf("failed to load apl json file: %s, %s", filePath, err) + } + + return core.RotationCombo{Label: file, Rotation: core.APLRotationFromJsonString(string(data))} +} + func TestShadow(t *testing.T) { core.RunTestSuite(t, t.Name(), core.FullCharacterTestSuiteGenerator(core.CharacterSuiteConfig{ Class: proto.Class_ClassPriest, @@ -29,6 +41,8 @@ func TestShadow(t *testing.T) { {Label: "Clipping", SpecOptions: PlayerOptionsClipping}, }, + Rotation: GetAplRotation("../../../ui/shadow_priest/apls", "default"), + ItemFilter: core.ItemFilter{ WeaponTypes: []proto.WeaponType{ proto.WeaponType_WeaponTypeDagger, From 349cd72f5756ff5421974949018a2c5397d24929 Mon Sep 17 00:00:00 2001 From: jarves Date: Mon, 25 Sep 2023 17:11:20 -0500 Subject: [PATCH 15/21] smitepriest: test apls Signed-off-by: jarves --- sim/priest/smite/TestSmite.results | 12 ++++----- sim/priest/smite/smite_priest_test.go | 36 ++++++++++----------------- 2 files changed, 19 insertions(+), 29 deletions(-) diff --git a/sim/priest/smite/TestSmite.results b/sim/priest/smite/TestSmite.results index 760730a57a..846d3291af 100644 --- a/sim/priest/smite/TestSmite.results +++ b/sim/priest/smite/TestSmite.results @@ -817,42 +817,42 @@ dps_results: { } } dps_results: { - key: "TestSmite-Settings-Undead-P1-Basic-Default-FullBuffs-LongMultiTarget" + key: "TestSmite-Settings-Undead-P1-Basic-default-FullBuffs-LongMultiTarget" value: { dps: 3567.28222 tps: 4024.17641 } } dps_results: { - key: "TestSmite-Settings-Undead-P1-Basic-Default-FullBuffs-LongSingleTarget" + key: "TestSmite-Settings-Undead-P1-Basic-default-FullBuffs-LongSingleTarget" value: { dps: 3567.28222 tps: 2923.4926 } } dps_results: { - key: "TestSmite-Settings-Undead-P1-Basic-Default-FullBuffs-ShortSingleTarget" + key: "TestSmite-Settings-Undead-P1-Basic-default-FullBuffs-ShortSingleTarget" value: { dps: 4892.96346 tps: 4109.83599 } } dps_results: { - key: "TestSmite-Settings-Undead-P1-Basic-Default-NoBuffs-LongMultiTarget" + key: "TestSmite-Settings-Undead-P1-Basic-default-NoBuffs-LongMultiTarget" value: { dps: 1195.49321 tps: 1418.57429 } } dps_results: { - key: "TestSmite-Settings-Undead-P1-Basic-Default-NoBuffs-LongSingleTarget" + key: "TestSmite-Settings-Undead-P1-Basic-default-NoBuffs-LongSingleTarget" value: { dps: 1195.49321 tps: 966.68622 } } dps_results: { - key: "TestSmite-Settings-Undead-P1-Basic-Default-NoBuffs-ShortSingleTarget" + key: "TestSmite-Settings-Undead-P1-Basic-default-NoBuffs-ShortSingleTarget" value: { dps: 2827.933 tps: 2204.06829 diff --git a/sim/priest/smite/smite_priest_test.go b/sim/priest/smite/smite_priest_test.go index 3da33dbab7..7e7911dd81 100644 --- a/sim/priest/smite/smite_priest_test.go +++ b/sim/priest/smite/smite_priest_test.go @@ -1,6 +1,8 @@ package smite import ( + "log" + "os" "testing" _ "github.com/wowsims/wotlk/sim/common" // imported to get caster sets included. @@ -12,6 +14,16 @@ func init() { RegisterSmitePriest() } +func GetAplRotation(dir string, file string) core.RotationCombo { + filePath := dir + "/" + file + ".json" + data, err := os.ReadFile(filePath) + if err != nil { + log.Fatalf("failed to load apl json file: %s, %s", filePath, err) + } + + return core.RotationCombo{Label: file, Rotation: core.APLRotationFromJsonString(string(data))} +} + func TestSmite(t *testing.T) { core.RunTestSuite(t, t.Name(), core.FullCharacterTestSuiteGenerator(core.CharacterSuiteConfig{ Class: proto.Class_ClassPriest, @@ -22,7 +34,7 @@ func TestSmite(t *testing.T) { Glyphs: DefaultGlyphs, Consumes: FullConsumes, SpecOptions: core.SpecOptionsCombo{Label: "Basic", SpecOptions: PlayerOptionsBasic}, - Rotation: core.RotationCombo{Label: "Default", Rotation: DefaultRotation}, + Rotation: GetAplRotation("../../../ui/smite_priest/apls", "default"), ItemFilter: core.ItemFilter{ WeaponTypes: []proto.WeaponType{ @@ -64,28 +76,6 @@ var PlayerOptionsBasic = &proto.Player_SmitePriest{ }, } -var DefaultRotation = core.APLRotationFromJsonString(`{ - "type": "TypeAPL", - "prepullActions": [ - {"action":{"castSpell":{"spellId":{"otherId":"OtherActionPotion"}}},"doAtValue":{"const":{"val":"-1s"}}} - ], - "priorityList": [ - {"action":{"autocastOtherCooldowns":{}}}, - {"action":{"condition":{"and":{"vals":[{"dotIsActive":{"spellId":{"spellId":48135}}},{"cmp":{"op":"OpLe","lhs":{"spellCastTime":{"spellId":{"spellId":48123}}},"rhs":{"dotRemainingTime":{"spellId":{"spellId":48135}}}}}]}},"castSpell":{"spellId":{"spellId":14751}}}}, - {"action":{"condition":{"and":{"vals":[{"dotIsActive":{"spellId":{"spellId":48135}}},{"cmp":{"op":"OpLe","lhs":{"spellCastTime":{"spellId":{"spellId":48123}}},"rhs":{"dotRemainingTime":{"spellId":{"spellId":48135}}}}}]}},"castSpell":{"spellId":{"spellId":48123}}}}, - {"action":{"condition":{"not":{"val":{"dotIsActive":{"spellId":{"spellId":48300}}}}},"castSpell":{"spellId":{"spellId":48300}}}}, - {"action":{"condition":{"not":{"val":{"dotIsActive":{"spellId":{"spellId":48125}}}}},"castSpell":{"spellId":{"spellId":48125}}}}, - {"action":{"castSpell":{"spellId":{"spellId":48135}}}}, - {"action":{"condition":{"and":{"vals":[{"not":{"val":{"spellIsReady":{"spellId":{"spellId":48135}}}}},{"cmp":{"op":"OpLe","lhs":{"spellTimeToReady":{"spellId":{"spellId":48135}}},"rhs":{"const":{"val":"50ms"}}}}]}},"wait":{"duration":{"spellTimeToReady":{"spellId":{"spellId":48135}}}}}}, - {"hide":true,"action":{"condition":{"auraIsActive":{"auraId":{"spellId":59000}}},"castSpell":{"spellId":{"spellId":48123}}}}, - {"hide":true,"action":{"castSpell":{"spellId":{"spellId":53007}}}}, - {"hide":true,"action":{"castSpell":{"spellId":{"spellId":48158}}}}, - {"hide":true,"action":{"castSpell":{"spellId":{"spellId":48127}}}}, - {"hide":true,"action":{"castSpell":{"spellId":{"tag":3,"spellId":48156}}}}, - {"action":{"castSpell":{"spellId":{"spellId":48123}}}} - ] -}`) - var P1Gear = core.EquipmentSpecFromJsonString(`{"items": [ {"id":40562,"enchant":3820,"gems":[41333,42144]}, {"id":44661,"gems":[39998]}, From 3c4ea5bd1b382d23f23da92dcebd8c4545da7e9f Mon Sep 17 00:00:00 2001 From: jarves Date: Mon, 25 Sep 2023 17:14:33 -0500 Subject: [PATCH 16/21] tankdk: apl tests Signed-off-by: jarves --- sim/deathknight/tank/TestBloodTank.results | 108 ++++++++++++++++-- sim/deathknight/tank/tank_deathknight_test.go | 43 +++---- 2 files changed, 112 insertions(+), 39 deletions(-) diff --git a/sim/deathknight/tank/TestBloodTank.results b/sim/deathknight/tank/TestBloodTank.results index 6e03ac96d7..f3fe684dbb 100644 --- a/sim/deathknight/tank/TestBloodTank.results +++ b/sim/deathknight/tank/TestBloodTank.results @@ -833,84 +833,168 @@ dps_results: { } } dps_results: { - key: "TestBloodTank-Settings-Human-Blood Tank P1-Basic-BloodIT-FullBuffs-LongMultiTarget" + key: "TestBloodTank-Settings-Human-Blood Tank P1-Basic-blood_aggro-FullBuffs-LongMultiTarget" + value: { + dps: 2017.78451 + tps: 4435.864 + } +} +dps_results: { + key: "TestBloodTank-Settings-Human-Blood Tank P1-Basic-blood_aggro-FullBuffs-LongSingleTarget" + value: { + dps: 2017.78451 + tps: 4435.864 + } +} +dps_results: { + key: "TestBloodTank-Settings-Human-Blood Tank P1-Basic-blood_aggro-FullBuffs-ShortSingleTarget" + value: { + dps: 2942.28474 + tps: 4803.68868 + } +} +dps_results: { + key: "TestBloodTank-Settings-Human-Blood Tank P1-Basic-blood_aggro-NoBuffs-LongMultiTarget" + value: { + dps: 1218.23094 + tps: 2650.3802 + } +} +dps_results: { + key: "TestBloodTank-Settings-Human-Blood Tank P1-Basic-blood_aggro-NoBuffs-LongSingleTarget" + value: { + dps: 1218.23094 + tps: 2650.3802 + } +} +dps_results: { + key: "TestBloodTank-Settings-Human-Blood Tank P1-Basic-blood_aggro-NoBuffs-ShortSingleTarget" + value: { + dps: 1769.74885 + tps: 2691.44791 + } +} +dps_results: { + key: "TestBloodTank-Settings-Human-Blood Tank P1-Basic-blood_icy_touch-FullBuffs-LongMultiTarget" value: { dps: 7783.10531 tps: 18202.80464 } } dps_results: { - key: "TestBloodTank-Settings-Human-Blood Tank P1-Basic-BloodIT-FullBuffs-LongSingleTarget" + key: "TestBloodTank-Settings-Human-Blood Tank P1-Basic-blood_icy_touch-FullBuffs-LongSingleTarget" value: { dps: 2159.41991 tps: 6527.45547 } } dps_results: { - key: "TestBloodTank-Settings-Human-Blood Tank P1-Basic-BloodIT-FullBuffs-ShortSingleTarget" + key: "TestBloodTank-Settings-Human-Blood Tank P1-Basic-blood_icy_touch-FullBuffs-ShortSingleTarget" value: { dps: 3055.37663 tps: 6992.02998 } } dps_results: { - key: "TestBloodTank-Settings-Human-Blood Tank P1-Basic-BloodIT-NoBuffs-LongMultiTarget" + key: "TestBloodTank-Settings-Human-Blood Tank P1-Basic-blood_icy_touch-NoBuffs-LongMultiTarget" value: { dps: 4168.33725 tps: 9884.74763 } } dps_results: { - key: "TestBloodTank-Settings-Human-Blood Tank P1-Basic-BloodIT-NoBuffs-LongSingleTarget" + key: "TestBloodTank-Settings-Human-Blood Tank P1-Basic-blood_icy_touch-NoBuffs-LongSingleTarget" value: { dps: 1296.45233 tps: 3906.23604 } } dps_results: { - key: "TestBloodTank-Settings-Human-Blood Tank P1-Basic-BloodIT-NoBuffs-ShortSingleTarget" + key: "TestBloodTank-Settings-Human-Blood Tank P1-Basic-blood_icy_touch-NoBuffs-ShortSingleTarget" value: { dps: 1836.37292 tps: 3999.00231 } } dps_results: { - key: "TestBloodTank-Settings-Orc-Blood Tank P1-Basic-BloodIT-FullBuffs-LongMultiTarget" + key: "TestBloodTank-Settings-Orc-Blood Tank P1-Basic-blood_aggro-FullBuffs-LongMultiTarget" + value: { + dps: 2036.88058 + tps: 4470.89112 + } +} +dps_results: { + key: "TestBloodTank-Settings-Orc-Blood Tank P1-Basic-blood_aggro-FullBuffs-LongSingleTarget" + value: { + dps: 2036.88058 + tps: 4470.89112 + } +} +dps_results: { + key: "TestBloodTank-Settings-Orc-Blood Tank P1-Basic-blood_aggro-FullBuffs-ShortSingleTarget" + value: { + dps: 2979.44922 + tps: 4861.41256 + } +} +dps_results: { + key: "TestBloodTank-Settings-Orc-Blood Tank P1-Basic-blood_aggro-NoBuffs-LongMultiTarget" + value: { + dps: 1231.44024 + tps: 2674.91625 + } +} +dps_results: { + key: "TestBloodTank-Settings-Orc-Blood Tank P1-Basic-blood_aggro-NoBuffs-LongSingleTarget" + value: { + dps: 1231.44024 + tps: 2674.91625 + } +} +dps_results: { + key: "TestBloodTank-Settings-Orc-Blood Tank P1-Basic-blood_aggro-NoBuffs-ShortSingleTarget" + value: { + dps: 1796.0932 + tps: 2735.74847 + } +} +dps_results: { + key: "TestBloodTank-Settings-Orc-Blood Tank P1-Basic-blood_icy_touch-FullBuffs-LongMultiTarget" value: { dps: 7866.49144 tps: 18378.54059 } } dps_results: { - key: "TestBloodTank-Settings-Orc-Blood Tank P1-Basic-BloodIT-FullBuffs-LongSingleTarget" + key: "TestBloodTank-Settings-Orc-Blood Tank P1-Basic-blood_icy_touch-FullBuffs-LongSingleTarget" value: { dps: 2179.17614 tps: 6573.01153 } } dps_results: { - key: "TestBloodTank-Settings-Orc-Blood Tank P1-Basic-BloodIT-FullBuffs-ShortSingleTarget" + key: "TestBloodTank-Settings-Orc-Blood Tank P1-Basic-blood_icy_touch-FullBuffs-ShortSingleTarget" value: { dps: 3094.83463 tps: 7057.88326 } } dps_results: { - key: "TestBloodTank-Settings-Orc-Blood Tank P1-Basic-BloodIT-NoBuffs-LongMultiTarget" + key: "TestBloodTank-Settings-Orc-Blood Tank P1-Basic-blood_icy_touch-NoBuffs-LongMultiTarget" value: { dps: 4225.79341 tps: 10007.38607 } } dps_results: { - key: "TestBloodTank-Settings-Orc-Blood Tank P1-Basic-BloodIT-NoBuffs-LongSingleTarget" + key: "TestBloodTank-Settings-Orc-Blood Tank P1-Basic-blood_icy_touch-NoBuffs-LongSingleTarget" value: { dps: 1310.88733 tps: 3940.50247 } } dps_results: { - key: "TestBloodTank-Settings-Orc-Blood Tank P1-Basic-BloodIT-NoBuffs-ShortSingleTarget" + key: "TestBloodTank-Settings-Orc-Blood Tank P1-Basic-blood_icy_touch-NoBuffs-ShortSingleTarget" value: { dps: 1862.89402 tps: 4046.22435 diff --git a/sim/deathknight/tank/tank_deathknight_test.go b/sim/deathknight/tank/tank_deathknight_test.go index 0c4ac63cf7..2a789642ff 100644 --- a/sim/deathknight/tank/tank_deathknight_test.go +++ b/sim/deathknight/tank/tank_deathknight_test.go @@ -1,6 +1,8 @@ package tank import ( + "log" + "os" "testing" _ "github.com/wowsims/wotlk/sim/common" // imported to get item effects included. @@ -12,6 +14,16 @@ func init() { RegisterTankDeathknight() } +func GetAplRotation(dir string, file string) core.RotationCombo { + filePath := dir + "/" + file + ".json" + data, err := os.ReadFile(filePath) + if err != nil { + log.Fatalf("failed to load apl json file: %s, %s", filePath, err) + } + + return core.RotationCombo{Label: file, Rotation: core.APLRotationFromJsonString(string(data))} +} + func TestBloodTank(t *testing.T) { core.RunTestSuite(t, t.Name(), core.FullCharacterTestSuiteGenerator(core.CharacterSuiteConfig{ Class: proto.Class_ClassDeathknight, @@ -23,7 +35,10 @@ func TestBloodTank(t *testing.T) { Glyphs: Glyphs, Consumes: FullConsumes, SpecOptions: core.SpecOptionsCombo{Label: "Basic", SpecOptions: PlayerOptionsBloodTank}, - Rotation: core.RotationCombo{Label: "BloodIT", Rotation: BloodITRotation}, + Rotation: GetAplRotation("../../../ui/tank_deathknight/apls", "blood_icy_touch"), + OtherRotations: []core.RotationCombo{ + GetAplRotation("../../../ui/tank_deathknight/apls", "blood_aggro"), + }, IsTank: true, InFrontOfTarget: true, @@ -98,32 +113,6 @@ var FullDebuffs = &proto.Debuffs{ HeartOfTheCrusader: true, } -var BloodITRotation = core.APLRotationFromJsonString(`{ - "type": "TypeAPL", - "prepullActions": [ - {"action":{"castSpell":{"spellId":{"spellId":48263}}},"doAtValue":{"const":{"val":"-10s"}}}, - {"action":{"castSpell":{"spellId":{"spellId":42650}}},"doAtValue":{"const":{"val":"-6s"}}} - ], - "priorityList": [ - {"action":{"autocastOtherCooldowns":{}}}, - {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"currentHealthPercent":{}},"rhs":{"const":{"val":"40%"}}}},"castSpell":{"spellId":{"spellId":48792}}}}, - {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"currentHealthPercent":{}},"rhs":{"const":{"val":"40%"}}}},"castSpell":{"spellId":{"spellId":55233}}}}, - {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"currentHealthPercent":{}},"rhs":{"const":{"val":"60%"}}}},"castSpell":{"spellId":{"spellId":48982}}}}, - {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"currentHealthPercent":{}},"rhs":{"const":{"val":"60%"}}}},"castSpell":{"spellId":{"spellId":48707}}}}, - {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"currentHealthPercent":{}},"rhs":{"const":{"val":"60%"}}}},"castSpell":{"spellId":{"spellId":48743}}}}, - {"action":{"condition":{"cmp":{"op":"OpGe","lhs":{"currentRunicPower":{}},"rhs":{"const":{"val":"40"}}}},"castSpell":{"spellId":{"spellId":56815}}}}, - {"action":{"condition":{"not":{"val":{"dotIsActive":{"spellId":{"spellId":55095}}}}},"castSpell":{"spellId":{"spellId":59131}}}}, - {"action":{"condition":{"not":{"val":{"dotIsActive":{"spellId":{"spellId":55078}}}}},"castSpell":{"spellId":{"tag":1,"spellId":49921}}}}, - {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"dotRemainingTime":{"spellId":{"spellId":55078}}},"rhs":{"const":{"val":"3s"}}}},"castSpell":{"spellId":{"spellId":50842}}}}, - {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpGt","lhs":{"currentNonDeathRuneCount":{"runeType":"RuneFrost"}},"rhs":{"const":{"val":"0"}}}},{"cmp":{"op":"OpGt","lhs":{"currentNonDeathRuneCount":{"runeType":"RuneUnholy"}},"rhs":{"const":{"val":"0"}}}}]}},"castSpell":{"spellId":{"tag":1,"spellId":49924}}}}, - {"action":{"condition":{"cmp":{"op":"OpGt","lhs":{"currentRuneCount":{"runeType":"RuneDeath"}},"rhs":{"const":{"val":"0"}}}},"castSpell":{"spellId":{"spellId":59131}}}}, - {"action":{"condition":{"or":{"vals":[{"cmp":{"op":"OpGt","lhs":{"currentNonDeathRuneCount":{"runeType":"RuneBlood"}},"rhs":{"const":{"val":"1"}}}},{"spellIsReady":{"spellId":{"spellId":47568}}}]}},"castSpell":{"spellId":{"tag":1,"spellId":49930}}}}, - {"action":{"castSpell":{"spellId":{"spellId":46584}}}}, - {"action":{"castSpell":{"spellId":{"spellId":47568}}}}, - {"action":{"condition":{"cmp":{"op":"OpGe","lhs":{"currentRunicPower":{}},"rhs":{"const":{"val":"80"}}}},"castSpell":{"spellId":{"spellId":49895}}}} - ] -}`) - var BloodP1Gear = core.EquipmentSpecFromJsonString(`{"items": [ {"id":40565,"enchant":3878,"gems":[41380,36767]}, {"id":40387}, From 99403ac74f6a88f67f5e7ccc0598f097d47c6e4e Mon Sep 17 00:00:00 2001 From: jarves Date: Mon, 25 Sep 2023 17:18:42 -0500 Subject: [PATCH 17/21] warlock: apl tests Signed-off-by: jarves --- sim/warlock/TestDemonology.results | 42 +++ sim/warlock/TestDestruction.results | 42 +++ sim/warlock/warlock_test.go | 414 +++++----------------------- 3 files changed, 155 insertions(+), 343 deletions(-) diff --git a/sim/warlock/TestDemonology.results b/sim/warlock/TestDemonology.results index 61e5726465..a25257eee0 100644 --- a/sim/warlock/TestDemonology.results +++ b/sim/warlock/TestDemonology.results @@ -781,6 +781,48 @@ dps_results: { tps: 5875.34853 } } +dps_results: { + key: "TestDemonology-Settings-Orc-P2-Demonology Warlock-demo-FullBuffs-LongMultiTarget" + value: { + dps: 14053.25803 + tps: 13879.46689 + } +} +dps_results: { + key: "TestDemonology-Settings-Orc-P2-Demonology Warlock-demo-FullBuffs-LongSingleTarget" + value: { + dps: 10929.15331 + tps: 9179.00799 + } +} +dps_results: { + key: "TestDemonology-Settings-Orc-P2-Demonology Warlock-demo-FullBuffs-ShortSingleTarget" + value: { + dps: 12443.58454 + tps: 10469.4423 + } +} +dps_results: { + key: "TestDemonology-Settings-Orc-P2-Demonology Warlock-demo-NoBuffs-LongMultiTarget" + value: { + dps: 8659.76095 + tps: 10222.74364 + } +} +dps_results: { + key: "TestDemonology-Settings-Orc-P2-Demonology Warlock-demo-NoBuffs-LongSingleTarget" + value: { + dps: 6316.59541 + tps: 5712.14012 + } +} +dps_results: { + key: "TestDemonology-Settings-Orc-P2-Demonology Warlock-demo-NoBuffs-ShortSingleTarget" + value: { + dps: 6647.74354 + tps: 5918.09956 + } +} dps_results: { key: "TestDemonology-SwitchInFrontOfTarget-Default" value: { diff --git a/sim/warlock/TestDestruction.results b/sim/warlock/TestDestruction.results index 2ed9707188..3a4ad1d4a3 100644 --- a/sim/warlock/TestDestruction.results +++ b/sim/warlock/TestDestruction.results @@ -774,6 +774,48 @@ dps_results: { tps: 5364.44408 } } +dps_results: { + key: "TestDestruction-Settings-Orc-P2-Destruction Warlock-destro-FullBuffs-LongMultiTarget" + value: { + dps: 12356.30025 + tps: 11751.77749 + } +} +dps_results: { + key: "TestDestruction-Settings-Orc-P2-Destruction Warlock-destro-FullBuffs-LongSingleTarget" + value: { + dps: 11320.05232 + tps: 9124.63069 + } +} +dps_results: { + key: "TestDestruction-Settings-Orc-P2-Destruction Warlock-destro-FullBuffs-ShortSingleTarget" + value: { + dps: 12289.804 + tps: 9417.37845 + } +} +dps_results: { + key: "TestDestruction-Settings-Orc-P2-Destruction Warlock-destro-NoBuffs-LongMultiTarget" + value: { + dps: 7045.69684 + tps: 7382.61137 + } +} +dps_results: { + key: "TestDestruction-Settings-Orc-P2-Destruction Warlock-destro-NoBuffs-LongSingleTarget" + value: { + dps: 6333.64271 + tps: 5282.55665 + } +} +dps_results: { + key: "TestDestruction-Settings-Orc-P2-Destruction Warlock-destro-NoBuffs-ShortSingleTarget" + value: { + dps: 6617.52934 + tps: 5134.52671 + } +} dps_results: { key: "TestDestruction-SwitchInFrontOfTarget-Default" value: { diff --git a/sim/warlock/warlock_test.go b/sim/warlock/warlock_test.go index 1eb748d7b9..83763289a5 100644 --- a/sim/warlock/warlock_test.go +++ b/sim/warlock/warlock_test.go @@ -1,6 +1,8 @@ package warlock import ( + "log" + "os" "testing" _ "github.com/wowsims/wotlk/sim/common" @@ -12,6 +14,16 @@ func init() { RegisterWarlock() } +func GetAplRotation(dir string, file string) core.RotationCombo { + filePath := dir + "/" + file + ".json" + data, err := os.ReadFile(filePath) + if err != nil { + log.Fatalf("failed to load apl json file: %s, %s", filePath, err) + } + + return core.RotationCombo{Label: file, Rotation: core.APLRotationFromJsonString(string(data))} +} + func TestAffliction(t *testing.T) { core.RunTestSuite(t, t.Name(), core.FullCharacterTestSuiteGenerator(core.CharacterSuiteConfig{ Class: proto.Class_ClassWarlock, @@ -40,6 +52,9 @@ func TestDemonology(t *testing.T) { Glyphs: DemonologyGlyphs, Consumes: FullConsumes, SpecOptions: core.SpecOptionsCombo{Label: "Demonology Warlock", SpecOptions: DefaultDemonologyWarlock}, + OtherRotations: []core.RotationCombo{ + GetAplRotation("../../ui/warlock/apls", "demo"), + }, ItemFilter: ItemFilter, })) @@ -55,7 +70,9 @@ func TestDestruction(t *testing.T) { Glyphs: DestructionGlyphs, Consumes: FullConsumes, SpecOptions: core.SpecOptionsCombo{Label: "Destruction Warlock", SpecOptions: DefaultDestroWarlock}, - + OtherRotations: []core.RotationCombo{ + GetAplRotation("../../ui/warlock/apls", "destro"), + }, ItemFilter: ItemFilter, })) } @@ -197,350 +214,61 @@ var FullConsumes = &proto.Consumes{ Food: proto.Food_FoodFishFeast, } -var P3Gear_affliction = core.EquipmentSpecFromJsonString(`{"items": [ - { - "id": 47796, - "enchant": 3820, - "gems": [ - 41285, - 40133 - ] - }, - { - "id": 47468, - "gems": [ - 40155 - ] - }, - { - "id": 47793, - "enchant": 3810, - "gems": [ - 40155 - ] - }, - { - "id": 47551, - "enchant": 3722, - "gems": [ - 40113 - ] - }, - { - "id": 47462, - "enchant": 1144, - "gems": [ - 40133, - 40155, - 40113 - ] - }, - { - "id": 47485, - "enchant": 2332, - "gems": [ - 40113, - 0 - ] - }, - { - "id": 47797, - "enchant": 3604, - "gems": [ - 40113, - 0 - ] - }, - { - "id": 47419, - "enchant": 3599, - "gems": [ - 40133, - 40113, - 40113 - ] - }, - { - "id": 47795, - "enchant": 3872, - "gems": [ - 40113, - 40153 - ] - }, - { - "id": 47454, - "enchant": 3606, - "gems": [ - 40133, - 40113 - ] - }, - { - "id": 45495, - "gems": [ - 40113 - ] - }, - { - "id": 47489, - "gems": [ - 40155 - ] - }, - { - "id": 45518 - }, - { - "id": 45466 - }, - { - "id": 47422, - "enchant": 3834, - "gems": [ - 40113 - ] - }, - { - "id": 48032, - "gems": [ - 40155 - ] - }, - { - "id": 45294, - "gems": [ - 40155 - ] - } +var P3Gear_affliction = core.EquipmentSpecFromJsonString(`{"items":[ + {"id":47796,"enchant":3820,"gems":[41285,40133]}, + {"id":47468,"gems":[40155]}, + {"id":47793,"enchant":3810,"gems":[40155]}, + {"id":47551,"enchant":3722,"gems":[40113]}, + {"id":47462,"enchant":1144,"gems":[40133,40155,40113]}, + {"id":47485,"enchant":2332,"gems":[40113,0]}, + {"id":47797,"enchant":3604,"gems":[40113,0]}, + {"id":47419,"enchant":3599,"gems":[40133,40113,40113]}, + {"id":47795,"enchant":3872,"gems":[40113,40153]}, + {"id":47454,"enchant":3606,"gems":[40133,40113]}, + {"id":45495,"gems":[40113]}, + {"id":47489,"gems":[40155]}, + {"id":45518},{"id":45466}, + {"id":47422,"enchant":3834,"gems":[40113]}, + {"id":48032,"gems":[40155]}, + {"id":45294,"gems":[40155]} ]}`) -var P3Gear_demo = core.EquipmentSpecFromJsonString(`{"items": [ - { - "id": 47796, - "enchant": 3820, - "gems": [ - 41285, - 40133 - ] - }, - { - "id": 45133, - "gems": [ - 40153 - ] - }, - { - "id": 47793, - "enchant": 3810, - "gems": [ - 40113 - ] - }, - { - "id": 47554, - "enchant": 3722, - "gems": [ - 40113 - ] - }, - { - "id": 47794, - "enchant": 1144, - "gems": [ - 40113, - 40133 - ] - }, - { - "id": 47485, - "enchant": 2332, - "gems": [ - 40133, - 0 - ] - }, - { - "id": 47788, - "enchant": 3604, - "gems": [ - 40113, - 0 - ] - }, - { - "id": 47419, - "enchant": 3599, - "gems": [ - 40133, - 40113, - 40113 - ] - }, - { - "id": 47435, - "enchant": 3872, - "gems": [ - 40113, - 40133, - 40133 - ] - }, - { - "id": 47454, - "enchant": 3606, - "gems": [ - 40133, - 40113 - ] - }, - { - "id": 45495, - "gems": [ - 40133 - ] - }, - { - "id": 47489, - "gems": [ - 40113 - ] - }, - { - "id": 45518 - }, - { - "id": 40255 - }, - { - "id": 47422, - "enchant": 3834, - "gems": [ - 40133 - ] - }, - { - "id": 47470 - }, - { - "id": 45294, - "gems": [ - 40113 - ] - } +var P3Gear_demo = core.EquipmentSpecFromJsonString(`{"items":[ + {"id":47796,"enchant":3820,"gems":[41285,40133]}, + {"id":45133,"gems":[40153]}, + {"id":47793,"enchant":3810,"gems":[40113]}, + {"id":47554,"enchant":3722,"gems":[40113]}, + {"id":47794,"enchant":1144,"gems":[40113,40133]}, + {"id":47485,"enchant":2332,"gems":[40133,0]}, + {"id":47788,"enchant":3604,"gems":[40113,0]}, + {"id":47419,"enchant":3599,"gems":[40133,40113,40113]}, + {"id":47435,"enchant":3872,"gems":[40113,40133,40133]}, + {"id":47454,"enchant":3606,"gems":[40133,40113]}, + {"id":45495,"gems":[40133]}, + {"id":47489,"gems":[40113]}, + {"id":45518}, + {"id":40255}, + {"id":47422,"enchant":3834,"gems":[40133]}, + {"id":47470}, + {"id":45294,"gems":[40113]} ]}`) -var P3Gear_destro = core.EquipmentSpecFromJsonString(`{"items": [ - { - "id": 47796, - "enchant": 3820, - "gems": [ - 41285, - 40133 - ] - }, - { - "id": 47468, - "gems": [ - 40153 - ] - }, - { - "id": 47793, - "enchant": 3810, - "gems": [ - 40155 - ] - }, - { - "id": 47551, - "enchant": 3722, - "gems": [ - 40113 - ] - }, - { - "id": 47794, - "enchant": 1144, - "gems": [ - 40113, - 40133 - ] - }, - { - "id": 47467, - "enchant": 2332, - "gems": [ - 40153, - 0 - ] - }, - { - "id": 47788, - "enchant": 3604, - "gems": [ - 40113, - 0 - ] - }, - { - "id": 47419, - "enchant": 3599, - "gems": [ - 40133, - 40113, - 40113 - ] - }, - { - "id": 47435, - "enchant": 3872, - "gems": [ - 40113, - 40133, - 40133 - ] - }, - { - "id": 47454, - "enchant": 3606, - "gems": [ - 40133, - 40113 - ] - }, - { - "id": 45495, - "gems": [ - 40133 - ] - }, - { - "id": 47489, - "gems": [ - 40155 - ] - }, - { - "id": 45518 - }, - { - "id": 47477 - }, - { - "id": 47422, - "enchant": 3834, - "gems": [ - 40133 - ] - }, - { - "id": 47437 - }, - { - "id": 45294, - "gems": [ - 40113 - ] - } +var P3Gear_destro = core.EquipmentSpecFromJsonString(`{"items":[ + {"id":47796,"enchant":3820,"gems":[41285,40133]}, + {"id":47468,"gems":[40153]}, + {"id":47793,"enchant":3810,"gems":[40155]}, + {"id":47551,"enchant":3722,"gems":[40113]}, + {"id":47794,"enchant":1144,"gems":[40113,40133]}, + {"id":47467,"enchant":2332,"gems":[40153,0]}, + {"id":47788,"enchant":3604,"gems":[40113,0]}, + {"id":47419,"enchant":3599,"gems":[40133,40113,40113]}, + {"id":47435,"enchant":3872,"gems":[40113,40133,40133]}, + {"id":47454,"enchant":3606,"gems":[40133,40113]}, + {"id":45495,"gems":[40133]}, + {"id":47489,"gems":[40155]}, + {"id":45518}, + {"id":47477}, + {"id":47422,"enchant":3834,"gems":[40133]}, + {"id":47437}, + {"id":45294,"gems":[40113]} ]}`) From 36b390c22329fa923c0d3b0fcc25c0c290c36a71 Mon Sep 17 00:00:00 2001 From: jarves Date: Mon, 25 Sep 2023 17:35:00 -0500 Subject: [PATCH 18/21] warrior: apl tests Signed-off-by: jarves --- sim/warrior/dps/TestFury.results | 84 +++++++++++++++++++ sim/warrior/dps/dps_warrior_test.go | 126 ++++++++-------------------- 2 files changed, 118 insertions(+), 92 deletions(-) diff --git a/sim/warrior/dps/TestFury.results b/sim/warrior/dps/TestFury.results index 493960c95f..1f7dabac9a 100644 --- a/sim/warrior/dps/TestFury.results +++ b/sim/warrior/dps/TestFury.results @@ -929,6 +929,48 @@ dps_results: { tps: 2452.72883 } } +dps_results: { + key: "TestFury-Settings-Human-Fury P1-Basic-fury-FullBuffs-LongMultiTarget" + value: { + dps: 8940.80165 + tps: 7201.76603 + } +} +dps_results: { + key: "TestFury-Settings-Human-Fury P1-Basic-fury-FullBuffs-LongSingleTarget" + value: { + dps: 6661.8289 + tps: 4937.6777 + } +} +dps_results: { + key: "TestFury-Settings-Human-Fury P1-Basic-fury-FullBuffs-ShortSingleTarget" + value: { + dps: 7731.0193 + tps: 5721.91051 + } +} +dps_results: { + key: "TestFury-Settings-Human-Fury P1-Basic-fury-NoBuffs-LongMultiTarget" + value: { + dps: 4316.1764 + tps: 3571.59865 + } +} +dps_results: { + key: "TestFury-Settings-Human-Fury P1-Basic-fury-NoBuffs-LongSingleTarget" + value: { + dps: 3003.64241 + tps: 2274.39433 + } +} +dps_results: { + key: "TestFury-Settings-Human-Fury P1-Basic-fury-NoBuffs-ShortSingleTarget" + value: { + dps: 3118.31294 + tps: 2385.74232 + } +} dps_results: { key: "TestFury-Settings-Orc-Fury P1-Basic--FullBuffs-LongMultiTarget" value: { @@ -971,6 +1013,48 @@ dps_results: { tps: 2459.17541 } } +dps_results: { + key: "TestFury-Settings-Orc-Fury P1-Basic-fury-FullBuffs-LongMultiTarget" + value: { + dps: 8991.19865 + tps: 7236.90857 + } +} +dps_results: { + key: "TestFury-Settings-Orc-Fury P1-Basic-fury-FullBuffs-LongSingleTarget" + value: { + dps: 6732.16748 + tps: 4988.29672 + } +} +dps_results: { + key: "TestFury-Settings-Orc-Fury P1-Basic-fury-FullBuffs-ShortSingleTarget" + value: { + dps: 7808.04519 + tps: 5775.0229 + } +} +dps_results: { + key: "TestFury-Settings-Orc-Fury P1-Basic-fury-NoBuffs-LongMultiTarget" + value: { + dps: 4283.0443 + tps: 3544.33229 + } +} +dps_results: { + key: "TestFury-Settings-Orc-Fury P1-Basic-fury-NoBuffs-LongSingleTarget" + value: { + dps: 3046.94572 + tps: 2303.60851 + } +} +dps_results: { + key: "TestFury-Settings-Orc-Fury P1-Basic-fury-NoBuffs-ShortSingleTarget" + value: { + dps: 3138.9097 + tps: 2390.95592 + } +} dps_results: { key: "TestFury-SwitchInFrontOfTarget-Default" value: { diff --git a/sim/warrior/dps/dps_warrior_test.go b/sim/warrior/dps/dps_warrior_test.go index 808332f385..a955a96a98 100644 --- a/sim/warrior/dps/dps_warrior_test.go +++ b/sim/warrior/dps/dps_warrior_test.go @@ -1,6 +1,8 @@ package dps import ( + "log" + "os" "testing" _ "github.com/wowsims/wotlk/sim/common" // imported to get item effects included. @@ -12,6 +14,16 @@ func init() { RegisterDpsWarrior() } +func GetAplRotation(dir string, file string) core.RotationCombo { + filePath := dir + "/" + file + ".json" + data, err := os.ReadFile(filePath) + if err != nil { + log.Fatalf("failed to load apl json file: %s, %s", filePath, err) + } + + return core.RotationCombo{Label: file, Rotation: core.APLRotationFromJsonString(string(data))} +} + func TestFury(t *testing.T) { core.RunTestSuite(t, t.Name(), core.FullCharacterTestSuiteGenerator(core.CharacterSuiteConfig{ Class: proto.Class_ClassWarrior, @@ -24,6 +36,10 @@ func TestFury(t *testing.T) { Consumes: FullConsumes, SpecOptions: core.SpecOptionsCombo{Label: "Basic", SpecOptions: PlayerOptionsFury}, + OtherRotations: []core.RotationCombo{ + GetAplRotation("../../../ui/warrior/apls", "fury"), + }, + ItemFilter: core.ItemFilter{ ArmorType: proto.ArmorType_ArmorTypePlate, @@ -178,96 +194,22 @@ var FullConsumes = &proto.Consumes{ Food: proto.Food_FoodFishFeast, } -var FuryP1Gear = core.EquipmentSpecFromJsonString(`{"items": [ - { - "id": 44006, - "enchant": 3817, - "gems": [ - 41285, - 42702 - ] - }, - { - "id": 44664, - "gems": [ - 39996 - ] - }, - { - "id": 40530, - "enchant": 3808, - "gems": [ - 40037 - ] - }, - { - "id": 40403, - "enchant": 3605 - }, - { - "id": 40539, - "enchant": 3832, - "gems": [ - 42142 - ] - }, - { - "id": 39765, - "enchant": 3845, - "gems": [ - 39996, - 0 - ] - }, - { - "id": 40541, - "enchant": 3604, - "gems": [ - 0 - ] - }, - { - "id": 40205, - "gems": [ - 42142 - ] - }, - { - "id": 40529, - "enchant": 3823, - "gems": [ - 39996, - 40022 - ] - }, - { - "id": 40591, - "enchant": 3606 - }, - { - "id": 43993, - "gems": [ - 42142 - ] - }, - { - "id": 40717 - }, - { - "id": 42987 - }, - { - "id": 40256 - }, - { - "id": 40384, - "enchant": 3789 - }, - { - "id": 40384, - "enchant": 3789 - }, - { - "id": 40385 - } +var FuryP1Gear = core.EquipmentSpecFromJsonString(`{"items":[ + {"id":44006,"enchant":3817,"gems":[41285,42702]}, + {"id":44664,"gems":[39996]}, + {"id":40530,"enchant":3808,"gems":[40037]}, + {"id":40403,"enchant":3605}, + {"id":40539,"enchant":3832,"gems":[42142]}, + {"id":39765,"enchant":3845,"gems":[39996,0]}, + {"id":40541,"enchant":3604,"gems":[0]}, + {"id":40205,"gems":[42142]}, + {"id":40529,"enchant":3823,"gems":[39996,40022]}, + {"id":40591,"enchant":3606}, + {"id":43993,"gems":[42142]}, + {"id":40717}, + {"id":42987}, + {"id":40256}, + {"id":40384,"enchant":3789}, + {"id":40384,"enchant":3789}, + {"id":40385} ]}`) From 903440b6d5f2344d399847c0655e9e60b0991215 Mon Sep 17 00:00:00 2001 From: jarves Date: Mon, 25 Sep 2023 17:38:22 -0500 Subject: [PATCH 19/21] feral: cleanup test code Signed-off-by: jarves --- sim/druid/feral/feral_test.go | 428 +++++++--------------------------- 1 file changed, 80 insertions(+), 348 deletions(-) diff --git a/sim/druid/feral/feral_test.go b/sim/druid/feral/feral_test.go index 780cb0b067..cb82f23a53 100644 --- a/sim/druid/feral/feral_test.go +++ b/sim/druid/feral/feral_test.go @@ -12,6 +12,20 @@ func init() { RegisterFeralDruid() } +var FeralItemFilter = core.ItemFilter{ + WeaponTypes: []proto.WeaponType{ + proto.WeaponType_WeaponTypeDagger, + proto.WeaponType_WeaponTypeMace, + proto.WeaponType_WeaponTypeOffHand, + proto.WeaponType_WeaponTypeStaff, + proto.WeaponType_WeaponTypePolearm, + }, + ArmorType: proto.ArmorType_ArmorTypeLeather, + RangedWeaponTypes: []proto.RangedWeaponType{ + proto.RangedWeaponType_RangedWeaponTypeIdol, + }, +} + func TestFeral(t *testing.T) { core.RunTestSuite(t, t.Name(), core.FullCharacterTestSuiteGenerator(core.CharacterSuiteConfig{ Class: proto.Class_ClassDruid, @@ -29,20 +43,7 @@ func TestFeral(t *testing.T) { {Label: "Default-NoBleed", SpecOptions: PlayerOptionsMonoCatNoBleed}, {Label: "Flower-Aoe", SpecOptions: PlayerOptionsFlowerCatAoe}, }, - - ItemFilter: core.ItemFilter{ - WeaponTypes: []proto.WeaponType{ - proto.WeaponType_WeaponTypeDagger, - proto.WeaponType_WeaponTypeMace, - proto.WeaponType_WeaponTypeOffHand, - proto.WeaponType_WeaponTypeStaff, - proto.WeaponType_WeaponTypePolearm, - }, - ArmorType: proto.ArmorType_ArmorTypeLeather, - RangedWeaponTypes: []proto.RangedWeaponType{ - proto.RangedWeaponType_RangedWeaponTypeIdol, - }, - }, + ItemFilter: FeralItemFilter, })) } @@ -55,20 +56,7 @@ func TestFeralDoubleArmorPenTrinketsNoDesync(t *testing.T) { Glyphs: StandardGlyphs, Consumes: FullConsumes, SpecOptions: core.SpecOptionsCombo{Label: "Default", SpecOptions: PlayerOptionsMonoCat}, - - ItemFilter: core.ItemFilter{ - WeaponTypes: []proto.WeaponType{ - proto.WeaponType_WeaponTypeDagger, - proto.WeaponType_WeaponTypeMace, - proto.WeaponType_WeaponTypeOffHand, - proto.WeaponType_WeaponTypeStaff, - proto.WeaponType_WeaponTypePolearm, - }, - ArmorType: proto.ArmorType_ArmorTypeLeather, - RangedWeaponTypes: []proto.RangedWeaponType{ - proto.RangedWeaponType_RangedWeaponTypeIdol, - }, - }, + ItemFilter: FeralItemFilter, Cooldowns: &proto.Cooldowns{ DesyncProcTrinket1Seconds: 0, @@ -87,19 +75,7 @@ func TestFeralDoubleArmorPenTrinketsWithDesync(t *testing.T) { Consumes: FullConsumes, SpecOptions: core.SpecOptionsCombo{Label: "Default", SpecOptions: PlayerOptionsMonoCat}, - ItemFilter: core.ItemFilter{ - WeaponTypes: []proto.WeaponType{ - proto.WeaponType_WeaponTypeDagger, - proto.WeaponType_WeaponTypeMace, - proto.WeaponType_WeaponTypeOffHand, - proto.WeaponType_WeaponTypeStaff, - proto.WeaponType_WeaponTypePolearm, - }, - ArmorType: proto.ArmorType_ArmorTypeLeather, - RangedWeaponTypes: []proto.RangedWeaponType{ - proto.RangedWeaponType_RangedWeaponTypeIdol, - }, - }, + ItemFilter: FeralItemFilter, Cooldowns: &proto.Cooldowns{ DesyncProcTrinket1Seconds: 0, @@ -240,315 +216,71 @@ var FullConsumes = &proto.Consumes{ DefaultConjured: proto.Conjured_ConjuredDarkRune, } -var P1Gear = core.EquipmentSpecFromJsonString(`{"items": [ - { - "id": 40473, - "enchant": 3817, - "gems": [ - 41398, - 39996 - ] - }, - { - "id": 44664, - "gems": [ - 39996 - ] - }, - { - "id": 40494, - "enchant": 3808, - "gems": [ - 39996 - ] - }, - { - "id": 40403, - "enchant": 3605 - }, - { - "id": 40539, - "enchant": 3832, - "gems": [ - 39996 - ] - }, - { - "id": 39765, - "enchant": 3845, - "gems": [ - 39996, - 0 - ] - }, - { - "id": 40541, - "enchant": 3604, - "gems": [ - 0 - ] - }, - { - "id": 40205, - "gems": [ - 39996 - ] - }, - { - "id": 44011, - "enchant": 3823, - "gems": [ - 39996, - 49110 - ] - }, - { - "id": 40243, - "enchant": 3606, - "gems": [ - 40014 - ] - }, - { - "id": 40474 - }, - { - "id": 40717 - }, - { - "id": 42987 - }, - { - "id": 40256 - }, - { - "id": 40388, - "enchant": 3789 - }, +var P1Gear = core.EquipmentSpecFromJsonString(` +{ + "items": [ + {"id":40473,"enchant":3817,"gems":[41398,39996]}, + {"id":44664,"gems":[39996]}, + {"id":40494,"enchant":3808,"gems":[39996]}, + {"id":40403,"enchant":3605}, + {"id":40539,"enchant":3832,"gems":[39996]}, + {"id":39765,"enchant":3845,"gems":[39996,0]}, + {"id":40541,"enchant":3604,"gems":[0]}, + {"id":40205,"gems":[39996]}, + {"id":44011,"enchant":3823,"gems":[39996,49110]}, + {"id":40243,"enchant":3606,"gems":[40014]}, + {"id":40474}, + {"id":40717}, + {"id":42987}, + {"id":40256}, + {"id":40388,"enchant":3789}, {}, - { - "id": 39757 - } -]}`) + {"id":39757} + ] +}`) -var P2Gear = core.EquipmentSpecFromJsonString(`{"items": [ - { - "id": 46161, - "enchant": 3817, - "gems": [ - 41398, - 40002 - ] - }, - { - "id": 45517, - "gems": [ - 40002 - ] - }, - { - "id": 45245, - "enchant": 3808, - "gems": [ - 40002, - 40002 - ] - }, - { - "id": 46032, - "enchant": 3605, - "gems": [ - 40002, - 40058 - ] - }, - { - "id": 45473, - "enchant": 3832, - "gems": [ - 40002, - 40002, - 40002 - ] - }, - { - "id": 45869, - "enchant": 3845, - "gems": [ - 40037 - ] - }, - { - "id": 46158, - "enchant": 3604, - "gems": [ - 40002 - ] - }, - { - "id": 46095, - "gems": [ - 40002, - 40002, - 40002 - ] - }, - { - "id": 45536, - "enchant": 3823, - "gems": [ - 39996, - 39996, - 39996 - ] - }, - { - "id": 45564, - "enchant": 3606, - "gems": [ - 39996, - 39996 - ] - }, - { - "id": 46048, - "gems": [ - 45862 - ] - }, - { - "id": 45608, - "gems": [ - 39996 - ] - }, - { - "id": 45931 - }, - { - "id": 46038 - }, - { - "id": 45613, - "enchant": 3789, - "gems": [ - 40037, - 42702 - ] - }, +var P2Gear = core.EquipmentSpecFromJsonString(` +{ + "items": [ + {"id":46161,"enchant":3817,"gems":[41398,40002]}, + {"id":45517,"gems":[40002]}, + {"id":45245,"enchant":3808,"gems":[40002,40002]}, + {"id":46032,"enchant":3605,"gems":[40002,40058]}, + {"id":45473,"enchant":3832,"gems":[40002,40002,40002]}, + {"id":45869,"enchant":3845,"gems":[40037,0]}, + {"id":46158,"enchant":3604,"gems":[40002,0]}, + {"id":46095,"gems":[40002,40002,40002]}, + {"id":45536,"enchant":3823,"gems":[39996,39996,39996]}, + {"id":45564,"enchant":3606,"gems":[39996,39996]}, + {"id":46048,"gems":[45862]}, + {"id":45608,"gems":[39996]}, + {"id":45931}, + {"id":46038}, + {"id":45613,"enchant":3789,"gems":[40037,42702]}, {}, - { - "id": 40713 - } -]}`) + {"id":40713} + ] +}`) -var P2GearDoubleArmorPenTrinkets = core.EquipmentSpecFromJsonString(`{"items": [ - { - "id": 46161, - "enchant": 3817, - "gems": [ - 41398, - 40002 - ] - }, - { - "id": 45517, - "gems": [ - 40002 - ] - }, - { - "id": 45245, - "enchant": 3808, - "gems": [ - 40002, - 40002 - ] - }, - { - "id": 46032, - "enchant": 3605, - "gems": [ - 40002, - 40058 - ] - }, - { - "id": 45473, - "enchant": 3832, - "gems": [ - 40002, - 40002, - 40002 - ] - }, - { - "id": 45869, - "enchant": 3845, - "gems": [ - 40037 - ] - }, - { - "id": 46158, - "enchant": 3604, - "gems": [ - 40002 - ] - }, - { - "id": 46095, - "gems": [ - 40002, - 40002, - 40002 - ] - }, - { - "id": 45536, - "enchant": 3823, - "gems": [ - 39996, - 39996, - 39996 - ] - }, - { - "id": 45564, - "enchant": 3606, - "gems": [ - 39996, - 39996 - ] - }, - { - "id": 46048, - "gems": [ - 45862 - ] - }, - { - "id": 45608, - "gems": [ - 39996 - ] - }, - { - "id": 45931 - }, - { - "id": 40256 - }, - { - "id": 45613, - "enchant": 3789, - "gems": [ - 40037, - 42702 - ] - }, +var P2GearDoubleArmorPenTrinkets = core.EquipmentSpecFromJsonString(` +{ + "items": [ + {"id":46161,"enchant":3817,"gems":[41398,40002]}, + {"id":45517,"gems":[40002]}, + {"id":45245,"enchant":3808,"gems":[40002,40002]}, + {"id":46032,"enchant":3605,"gems":[40002,40058]}, + {"id":45473,"enchant":3832,"gems":[40002,40002,40002]}, + {"id":45869,"enchant":3845,"gems":[40037,0]}, + {"id":46158,"enchant":3604,"gems":[40002,0]}, + {"id":46095,"gems":[40002,40002,40002]}, + {"id":45536,"enchant":3823,"gems":[39996,39996,39996]}, + {"id":45564,"enchant":3606,"gems":[39996,39996]}, + {"id":46048,"gems":[45862]}, + {"id":45608,"gems":[39996]}, + {"id":45931}, + {"id":40256}, + {"id":45613,"enchant":3789,"gems":[40037,42702]}, {}, - { - "id": 40713 - } -]}`) + {"id":40713} + ] +}`) From b122e0a4c479e062e3981544dbba5cbcf89c7974 Mon Sep 17 00:00:00 2001 From: jarves Date: Wed, 4 Oct 2023 23:39:01 -0500 Subject: [PATCH 20/21] ui: rename apls to name.apl.json Signed-off-by: jarves --- sim/deathknight/dps/dps_deathknight_test.go | 2 +- sim/deathknight/tank/TestBloodTank.results | 48 +++++++++---------- sim/deathknight/tank/tank_deathknight_test.go | 2 +- sim/druid/balance/balance_test.go | 2 +- sim/druid/tank/tank_test.go | 2 +- sim/hunter/hunter_test.go | 2 +- sim/mage/mage_test.go | 2 +- sim/paladin/protection/protection_test.go | 2 +- sim/paladin/retribution/retribution_test.go | 2 +- sim/priest/healing/healing_priest_test.go | 2 +- sim/priest/shadow/shadow_priest_test.go | 2 +- sim/priest/smite/smite_priest_test.go | 2 +- sim/rogue/rogue_test.go | 2 +- sim/shaman/elemental/elemental_test.go | 2 +- sim/shaman/enhancement/enhancement_test.go | 2 +- sim/warlock/TestDestruction.results | 4 +- sim/warlock/warlock_test.go | 2 +- sim/warrior/dps/TestFury.results | 48 +++++++++---------- sim/warrior/dps/dps_warrior_test.go | 2 +- .../protection/protection_warrior_test.go | 2 +- .../apls/{basic_p3.json => basic_p3.apl.json} | 0 ui/balance_druid/presets.ts | 2 +- ...{blood_pesti.json => blood_pesti.apl.json} | 0 ...esti_aoe.json => blood_pesti_aoe.apl.json} | 0 ..._pesti_dd.json => blood_pesti_dd.apl.json} | 0 ..._bl_pesti.json => frost_bl_pesti.apl.json} | 0 ..._uh_pesti.json => frost_uh_pesti.apl.json} | 0 .../apls/{uh_2h_ss.json => uh_2h_ss.apl.json} | 0 .../{uh_dnd_aoe.json => uh_dnd_aoe.apl.json} | 0 ...nholy_dw_ss.json => unholy_dw_ss.apl.json} | 0 ui/deathknight/presets.ts | 16 +++---- .../apls/{default.json => default.apl.json} | 0 ui/elemental_shaman/presets.ts | 2 +- .../{default_ft.json => default_ft.apl.json} | 0 .../{default_wf.json => default_wf.apl.json} | 0 .../apls/{phase_3.json => phase_3.apl.json} | 0 ui/enhancement_shaman/presets.ts | 6 +-- .../apls/{default.json => default.apl.json} | 0 ui/feral_tank_druid/presets.ts | 2 +- .../apls/{disc.json => disc.apl.json} | 0 .../apls/{holy.json => holy.apl.json} | 0 ui/healing_priest/presets.ts | 4 +- ui/hunter/apls/{aoe.json => aoe.apl.json} | 0 ui/hunter/apls/{bm.json => bm.apl.json} | 0 ui/hunter/apls/{mm.json => mm.apl.json} | 0 ...{mm_advanced.json => mm_advanced.apl.json} | 0 ui/hunter/apls/{sv.json => sv.apl.json} | 0 ...{sv_advanced.json => sv_advanced.apl.json} | 0 ui/hunter/presets.ts | 12 ++--- ui/mage/apls/{arcane.json => arcane.apl.json} | 0 .../{arcane_aoe.json => arcane_aoe.apl.json} | 0 ui/mage/apls/{fire.json => fire.apl.json} | 0 .../apls/{fire_aoe.json => fire_aoe.apl.json} | 0 ui/mage/apls/{frost.json => frost.apl.json} | 0 .../{frost_aoe.json => frost_aoe.apl.json} | 0 .../{frostfire.json => frostfire.apl.json} | 0 ui/mage/presets.ts | 14 +++--- .../apls/{default.json => default.apl.json} | 0 ui/protection_paladin/presets.ts | 2 +- .../apls/{default.json => default.apl.json} | 0 ui/protection_warrior/presets.ts | 2 +- .../apls/{default.json => default.apl.json} | 0 ui/retribution_paladin/presets.ts | 2 +- .../apls/{combat.json => combat.apl.json} | 0 ...ve_snd.json => combat_cleave_snd.apl.json} | 0 ...json => combat_cleave_snd_expose.apl.json} | 0 ...bat_expose.json => combat_expose.apl.json} | 0 .../apls/{fan_aoe.json => fan_aoe.apl.json} | 0 .../apls/{mutilate.json => mutilate.apl.json} | 0 ...e_expose.json => mutilate_expose.apl.json} | 0 ...utilate.json => rupture_mutilate.apl.json} | 0 ....json => rupture_mutilate_expose.apl.json} | 0 ui/rogue/presets.ts | 18 +++---- .../apls/{default.json => default.apl.json} | 0 ui/shadow_priest/presets.ts | 2 +- .../apls/{default.json => default.apl.json} | 0 ui/smite_priest/presets.ts | 2 +- ...{blood_aggro.json => blood_aggro.apl.json} | 0 ...cy_touch.json => blood_icy_touch.apl.json} | 0 ui/tank_deathknight/presets.ts | 4 +- ui/warlock/apls/{demo.json => demo.apl.json} | 0 .../apls/{destro.json => destro.apl.json} | 0 ui/warlock/presets.ts | 4 +- ui/warrior/apls/{fury.json => fury.apl.json} | 0 ui/warrior/presets.ts | 2 +- 85 files changed, 115 insertions(+), 115 deletions(-) rename ui/balance_druid/apls/{basic_p3.json => basic_p3.apl.json} (100%) rename ui/deathknight/apls/{blood_pesti.json => blood_pesti.apl.json} (100%) rename ui/deathknight/apls/{blood_pesti_aoe.json => blood_pesti_aoe.apl.json} (100%) rename ui/deathknight/apls/{blood_pesti_dd.json => blood_pesti_dd.apl.json} (100%) rename ui/deathknight/apls/{frost_bl_pesti.json => frost_bl_pesti.apl.json} (100%) rename ui/deathknight/apls/{frost_uh_pesti.json => frost_uh_pesti.apl.json} (100%) rename ui/deathknight/apls/{uh_2h_ss.json => uh_2h_ss.apl.json} (100%) rename ui/deathknight/apls/{uh_dnd_aoe.json => uh_dnd_aoe.apl.json} (100%) rename ui/deathknight/apls/{unholy_dw_ss.json => unholy_dw_ss.apl.json} (100%) rename ui/elemental_shaman/apls/{default.json => default.apl.json} (100%) rename ui/enhancement_shaman/apls/{default_ft.json => default_ft.apl.json} (100%) rename ui/enhancement_shaman/apls/{default_wf.json => default_wf.apl.json} (100%) rename ui/enhancement_shaman/apls/{phase_3.json => phase_3.apl.json} (100%) rename ui/feral_tank_druid/apls/{default.json => default.apl.json} (100%) rename ui/healing_priest/apls/{disc.json => disc.apl.json} (100%) rename ui/healing_priest/apls/{holy.json => holy.apl.json} (100%) rename ui/hunter/apls/{aoe.json => aoe.apl.json} (100%) rename ui/hunter/apls/{bm.json => bm.apl.json} (100%) rename ui/hunter/apls/{mm.json => mm.apl.json} (100%) rename ui/hunter/apls/{mm_advanced.json => mm_advanced.apl.json} (100%) rename ui/hunter/apls/{sv.json => sv.apl.json} (100%) rename ui/hunter/apls/{sv_advanced.json => sv_advanced.apl.json} (100%) rename ui/mage/apls/{arcane.json => arcane.apl.json} (100%) rename ui/mage/apls/{arcane_aoe.json => arcane_aoe.apl.json} (100%) rename ui/mage/apls/{fire.json => fire.apl.json} (100%) rename ui/mage/apls/{fire_aoe.json => fire_aoe.apl.json} (100%) rename ui/mage/apls/{frost.json => frost.apl.json} (100%) rename ui/mage/apls/{frost_aoe.json => frost_aoe.apl.json} (100%) rename ui/mage/apls/{frostfire.json => frostfire.apl.json} (100%) rename ui/protection_paladin/apls/{default.json => default.apl.json} (100%) rename ui/protection_warrior/apls/{default.json => default.apl.json} (100%) rename ui/retribution_paladin/apls/{default.json => default.apl.json} (100%) rename ui/rogue/apls/{combat.json => combat.apl.json} (100%) rename ui/rogue/apls/{combat_cleave_snd.json => combat_cleave_snd.apl.json} (100%) rename ui/rogue/apls/{combat_cleave_snd_expose.json => combat_cleave_snd_expose.apl.json} (100%) rename ui/rogue/apls/{combat_expose.json => combat_expose.apl.json} (100%) rename ui/rogue/apls/{fan_aoe.json => fan_aoe.apl.json} (100%) rename ui/rogue/apls/{mutilate.json => mutilate.apl.json} (100%) rename ui/rogue/apls/{mutilate_expose.json => mutilate_expose.apl.json} (100%) rename ui/rogue/apls/{rupture_mutilate.json => rupture_mutilate.apl.json} (100%) rename ui/rogue/apls/{rupture_mutilate_expose.json => rupture_mutilate_expose.apl.json} (100%) rename ui/shadow_priest/apls/{default.json => default.apl.json} (100%) rename ui/smite_priest/apls/{default.json => default.apl.json} (100%) rename ui/tank_deathknight/apls/{blood_aggro.json => blood_aggro.apl.json} (100%) rename ui/tank_deathknight/apls/{blood_icy_touch.json => blood_icy_touch.apl.json} (100%) rename ui/warlock/apls/{demo.json => demo.apl.json} (100%) rename ui/warlock/apls/{destro.json => destro.apl.json} (100%) rename ui/warrior/apls/{fury.json => fury.apl.json} (100%) diff --git a/sim/deathknight/dps/dps_deathknight_test.go b/sim/deathknight/dps/dps_deathknight_test.go index 321b325df6..dcfc6b1e36 100644 --- a/sim/deathknight/dps/dps_deathknight_test.go +++ b/sim/deathknight/dps/dps_deathknight_test.go @@ -15,7 +15,7 @@ func init() { } func GetAplRotation(dir string, file string) core.RotationCombo { - filePath := dir + "/" + file + ".json" + filePath := dir + "/" + file + ".apl.json" data, err := os.ReadFile(filePath) if err != nil { log.Fatalf("failed to load apl json file: %s, %s", filePath, err) diff --git a/sim/deathknight/tank/TestBloodTank.results b/sim/deathknight/tank/TestBloodTank.results index f3fe684dbb..96d3466c83 100644 --- a/sim/deathknight/tank/TestBloodTank.results +++ b/sim/deathknight/tank/TestBloodTank.results @@ -835,43 +835,43 @@ dps_results: { dps_results: { key: "TestBloodTank-Settings-Human-Blood Tank P1-Basic-blood_aggro-FullBuffs-LongMultiTarget" value: { - dps: 2017.78451 - tps: 4435.864 + dps: 2017.54527 + tps: 4434.85079 } } dps_results: { key: "TestBloodTank-Settings-Human-Blood Tank P1-Basic-blood_aggro-FullBuffs-LongSingleTarget" value: { - dps: 2017.78451 - tps: 4435.864 + dps: 2017.54527 + tps: 4434.85079 } } dps_results: { key: "TestBloodTank-Settings-Human-Blood Tank P1-Basic-blood_aggro-FullBuffs-ShortSingleTarget" value: { - dps: 2942.28474 - tps: 4803.68868 + dps: 2940.49796 + tps: 4799.42354 } } dps_results: { key: "TestBloodTank-Settings-Human-Blood Tank P1-Basic-blood_aggro-NoBuffs-LongMultiTarget" value: { - dps: 1218.23094 - tps: 2650.3802 + dps: 1219.58101 + tps: 2654.88028 } } dps_results: { key: "TestBloodTank-Settings-Human-Blood Tank P1-Basic-blood_aggro-NoBuffs-LongSingleTarget" value: { - dps: 1218.23094 - tps: 2650.3802 + dps: 1219.58101 + tps: 2654.88028 } } dps_results: { key: "TestBloodTank-Settings-Human-Blood Tank P1-Basic-blood_aggro-NoBuffs-ShortSingleTarget" value: { - dps: 1769.74885 - tps: 2691.44791 + dps: 1772.51539 + tps: 2696.93294 } } dps_results: { @@ -919,43 +919,43 @@ dps_results: { dps_results: { key: "TestBloodTank-Settings-Orc-Blood Tank P1-Basic-blood_aggro-FullBuffs-LongMultiTarget" value: { - dps: 2036.88058 - tps: 4470.89112 + dps: 2036.47911 + tps: 4469.52564 } } dps_results: { key: "TestBloodTank-Settings-Orc-Blood Tank P1-Basic-blood_aggro-FullBuffs-LongSingleTarget" value: { - dps: 2036.88058 - tps: 4470.89112 + dps: 2036.47911 + tps: 4469.52564 } } dps_results: { key: "TestBloodTank-Settings-Orc-Blood Tank P1-Basic-blood_aggro-FullBuffs-ShortSingleTarget" value: { - dps: 2979.44922 - tps: 4861.41256 + dps: 2978.40272 + tps: 4858.70412 } } dps_results: { key: "TestBloodTank-Settings-Orc-Blood Tank P1-Basic-blood_aggro-NoBuffs-LongMultiTarget" value: { - dps: 1231.44024 - tps: 2674.91625 + dps: 1232.92827 + tps: 2679.69739 } } dps_results: { key: "TestBloodTank-Settings-Orc-Blood Tank P1-Basic-blood_aggro-NoBuffs-LongSingleTarget" value: { - dps: 1231.44024 - tps: 2674.91625 + dps: 1232.92827 + tps: 2679.69739 } } dps_results: { key: "TestBloodTank-Settings-Orc-Blood Tank P1-Basic-blood_aggro-NoBuffs-ShortSingleTarget" value: { - dps: 1796.0932 - tps: 2735.74847 + dps: 1799.5427 + tps: 2742.7054 } } dps_results: { diff --git a/sim/deathknight/tank/tank_deathknight_test.go b/sim/deathknight/tank/tank_deathknight_test.go index 2a789642ff..f9a8bf4d31 100644 --- a/sim/deathknight/tank/tank_deathknight_test.go +++ b/sim/deathknight/tank/tank_deathknight_test.go @@ -15,7 +15,7 @@ func init() { } func GetAplRotation(dir string, file string) core.RotationCombo { - filePath := dir + "/" + file + ".json" + filePath := dir + "/" + file + ".apl.json" data, err := os.ReadFile(filePath) if err != nil { log.Fatalf("failed to load apl json file: %s, %s", filePath, err) diff --git a/sim/druid/balance/balance_test.go b/sim/druid/balance/balance_test.go index 5ee00d90d4..0dda20a82f 100644 --- a/sim/druid/balance/balance_test.go +++ b/sim/druid/balance/balance_test.go @@ -15,7 +15,7 @@ func init() { } func GetAplRotation(dir string, file string) core.RotationCombo { - filePath := dir + "/" + file + ".json" + filePath := dir + "/" + file + ".apl.json" data, err := os.ReadFile(filePath) if err != nil { log.Fatalf("failed to load apl json file: %s, %s", filePath, err) diff --git a/sim/druid/tank/tank_test.go b/sim/druid/tank/tank_test.go index 35582a54a5..ee81fce1b1 100644 --- a/sim/druid/tank/tank_test.go +++ b/sim/druid/tank/tank_test.go @@ -15,7 +15,7 @@ func init() { } func GetAplRotation(dir string, file string) core.RotationCombo { - filePath := dir + "/" + file + ".json" + filePath := dir + "/" + file + ".apl.json" data, err := os.ReadFile(filePath) if err != nil { log.Fatalf("failed to load apl json file: %s, %s", filePath, err) diff --git a/sim/hunter/hunter_test.go b/sim/hunter/hunter_test.go index c93a4a8fb0..75a2ce5aa2 100644 --- a/sim/hunter/hunter_test.go +++ b/sim/hunter/hunter_test.go @@ -15,7 +15,7 @@ func init() { } func GetAplRotation(dir string, file string) core.RotationCombo { - filePath := dir + "/" + file + ".json" + filePath := dir + "/" + file + ".apl.json" data, err := os.ReadFile(filePath) if err != nil { log.Fatalf("failed to load apl json file: %s, %s", filePath, err) diff --git a/sim/mage/mage_test.go b/sim/mage/mage_test.go index 7c6dca1a5d..e6d6ff08a7 100644 --- a/sim/mage/mage_test.go +++ b/sim/mage/mage_test.go @@ -15,7 +15,7 @@ func init() { } func GetAplRotation(dir string, file string) core.RotationCombo { - filePath := dir + "/" + file + ".json" + filePath := dir + "/" + file + ".apl.json" data, err := os.ReadFile(filePath) if err != nil { log.Fatalf("failed to load apl json file: %s, %s", filePath, err) diff --git a/sim/paladin/protection/protection_test.go b/sim/paladin/protection/protection_test.go index a1159b8ba4..4b5e5ebe15 100644 --- a/sim/paladin/protection/protection_test.go +++ b/sim/paladin/protection/protection_test.go @@ -15,7 +15,7 @@ func init() { } func GetAplRotation(dir string, file string) core.RotationCombo { - filePath := dir + "/" + file + ".json" + filePath := dir + "/" + file + ".apl.json" data, err := os.ReadFile(filePath) if err != nil { log.Fatalf("failed to load apl json file: %s, %s", filePath, err) diff --git a/sim/paladin/retribution/retribution_test.go b/sim/paladin/retribution/retribution_test.go index 5a9dd42f86..a94b122896 100644 --- a/sim/paladin/retribution/retribution_test.go +++ b/sim/paladin/retribution/retribution_test.go @@ -15,7 +15,7 @@ func init() { } func GetAplRotation(dir string, file string) core.RotationCombo { - filePath := dir + "/" + file + ".json" + filePath := dir + "/" + file + ".apl.json" data, err := os.ReadFile(filePath) if err != nil { log.Fatalf("failed to load apl json file: %s, %s", filePath, err) diff --git a/sim/priest/healing/healing_priest_test.go b/sim/priest/healing/healing_priest_test.go index f83d54739f..b39b02a5fa 100644 --- a/sim/priest/healing/healing_priest_test.go +++ b/sim/priest/healing/healing_priest_test.go @@ -15,7 +15,7 @@ func init() { } func GetAplRotation(dir string, file string) core.RotationCombo { - filePath := dir + "/" + file + ".json" + filePath := dir + "/" + file + ".apl.json" data, err := os.ReadFile(filePath) if err != nil { log.Fatalf("failed to load apl json file: %s, %s", filePath, err) diff --git a/sim/priest/shadow/shadow_priest_test.go b/sim/priest/shadow/shadow_priest_test.go index d176559f7e..53164dc099 100644 --- a/sim/priest/shadow/shadow_priest_test.go +++ b/sim/priest/shadow/shadow_priest_test.go @@ -15,7 +15,7 @@ func init() { } func GetAplRotation(dir string, file string) core.RotationCombo { - filePath := dir + "/" + file + ".json" + filePath := dir + "/" + file + ".apl.json" data, err := os.ReadFile(filePath) if err != nil { log.Fatalf("failed to load apl json file: %s, %s", filePath, err) diff --git a/sim/priest/smite/smite_priest_test.go b/sim/priest/smite/smite_priest_test.go index 7e7911dd81..0af86ed9e4 100644 --- a/sim/priest/smite/smite_priest_test.go +++ b/sim/priest/smite/smite_priest_test.go @@ -15,7 +15,7 @@ func init() { } func GetAplRotation(dir string, file string) core.RotationCombo { - filePath := dir + "/" + file + ".json" + filePath := dir + "/" + file + ".apl.json" data, err := os.ReadFile(filePath) if err != nil { log.Fatalf("failed to load apl json file: %s, %s", filePath, err) diff --git a/sim/rogue/rogue_test.go b/sim/rogue/rogue_test.go index cf5343831e..1b7880a19a 100644 --- a/sim/rogue/rogue_test.go +++ b/sim/rogue/rogue_test.go @@ -15,7 +15,7 @@ func init() { } func GetAplRotation(dir string, file string) core.RotationCombo { - filePath := dir + "/" + file + ".json" + filePath := dir + "/" + file + ".apl.json" data, err := os.ReadFile(filePath) if err != nil { log.Fatalf("failed to load apl json file: %s, %s", filePath, err) diff --git a/sim/shaman/elemental/elemental_test.go b/sim/shaman/elemental/elemental_test.go index ba35166962..450d6fc0e3 100644 --- a/sim/shaman/elemental/elemental_test.go +++ b/sim/shaman/elemental/elemental_test.go @@ -15,7 +15,7 @@ func init() { } func GetAplRotation(dir string, file string) core.RotationCombo { - filePath := dir + "/" + file + ".json" + filePath := dir + "/" + file + ".apl.json" data, err := os.ReadFile(filePath) if err != nil { log.Fatalf("failed to load apl json file: %s, %s", filePath, err) diff --git a/sim/shaman/enhancement/enhancement_test.go b/sim/shaman/enhancement/enhancement_test.go index 9248f4956a..44e8dfa4e6 100644 --- a/sim/shaman/enhancement/enhancement_test.go +++ b/sim/shaman/enhancement/enhancement_test.go @@ -15,7 +15,7 @@ func init() { } func GetAplRotation(dir string, file string) core.RotationCombo { - filePath := dir + "/" + file + ".json" + filePath := dir + "/" + file + ".apl.json" data, err := os.ReadFile(filePath) if err != nil { log.Fatalf("failed to load apl json file: %s, %s", filePath, err) diff --git a/sim/warlock/TestDestruction.results b/sim/warlock/TestDestruction.results index 3a4ad1d4a3..738083e4cd 100644 --- a/sim/warlock/TestDestruction.results +++ b/sim/warlock/TestDestruction.results @@ -791,8 +791,8 @@ dps_results: { dps_results: { key: "TestDestruction-Settings-Orc-P2-Destruction Warlock-destro-FullBuffs-ShortSingleTarget" value: { - dps: 12289.804 - tps: 9417.37845 + dps: 12281.11135 + tps: 9412.06182 } } dps_results: { diff --git a/sim/warlock/warlock_test.go b/sim/warlock/warlock_test.go index 83763289a5..443beade89 100644 --- a/sim/warlock/warlock_test.go +++ b/sim/warlock/warlock_test.go @@ -15,7 +15,7 @@ func init() { } func GetAplRotation(dir string, file string) core.RotationCombo { - filePath := dir + "/" + file + ".json" + filePath := dir + "/" + file + ".apl.json" data, err := os.ReadFile(filePath) if err != nil { log.Fatalf("failed to load apl json file: %s, %s", filePath, err) diff --git a/sim/warrior/dps/TestFury.results b/sim/warrior/dps/TestFury.results index 1f7dabac9a..9d591d3577 100644 --- a/sim/warrior/dps/TestFury.results +++ b/sim/warrior/dps/TestFury.results @@ -932,43 +932,43 @@ dps_results: { dps_results: { key: "TestFury-Settings-Human-Fury P1-Basic-fury-FullBuffs-LongMultiTarget" value: { - dps: 8940.80165 - tps: 7201.76603 + dps: 8922.62321 + tps: 7185.74753 } } dps_results: { key: "TestFury-Settings-Human-Fury P1-Basic-fury-FullBuffs-LongSingleTarget" value: { - dps: 6661.8289 - tps: 4937.6777 + dps: 6657.75798 + tps: 4934.05953 } } dps_results: { key: "TestFury-Settings-Human-Fury P1-Basic-fury-FullBuffs-ShortSingleTarget" value: { - dps: 7731.0193 - tps: 5721.91051 + dps: 7736.65032 + tps: 5725.66398 } } dps_results: { key: "TestFury-Settings-Human-Fury P1-Basic-fury-NoBuffs-LongMultiTarget" value: { - dps: 4316.1764 - tps: 3571.59865 + dps: 4313.67004 + tps: 3566.86264 } } dps_results: { key: "TestFury-Settings-Human-Fury P1-Basic-fury-NoBuffs-LongSingleTarget" value: { - dps: 3003.64241 - tps: 2274.39433 + dps: 3005.5555 + tps: 2274.66575 } } dps_results: { key: "TestFury-Settings-Human-Fury P1-Basic-fury-NoBuffs-ShortSingleTarget" value: { - dps: 3118.31294 - tps: 2385.74232 + dps: 3147.54453 + tps: 2409.80417 } } dps_results: { @@ -1016,43 +1016,43 @@ dps_results: { dps_results: { key: "TestFury-Settings-Orc-Fury P1-Basic-fury-FullBuffs-LongMultiTarget" value: { - dps: 8991.19865 - tps: 7236.90857 + dps: 8996.21383 + tps: 7238.45452 } } dps_results: { key: "TestFury-Settings-Orc-Fury P1-Basic-fury-FullBuffs-LongSingleTarget" value: { - dps: 6732.16748 - tps: 4988.29672 + dps: 6722.48479 + tps: 4980.74568 } } dps_results: { key: "TestFury-Settings-Orc-Fury P1-Basic-fury-FullBuffs-ShortSingleTarget" value: { - dps: 7808.04519 - tps: 5775.0229 + dps: 7816.14329 + tps: 5781.74265 } } dps_results: { key: "TestFury-Settings-Orc-Fury P1-Basic-fury-NoBuffs-LongMultiTarget" value: { - dps: 4283.0443 - tps: 3544.33229 + dps: 4288.36759 + tps: 3548.56129 } } dps_results: { key: "TestFury-Settings-Orc-Fury P1-Basic-fury-NoBuffs-LongSingleTarget" value: { - dps: 3046.94572 - tps: 2303.60851 + dps: 3055.24022 + tps: 2309.34528 } } dps_results: { key: "TestFury-Settings-Orc-Fury P1-Basic-fury-NoBuffs-ShortSingleTarget" value: { - dps: 3138.9097 - tps: 2390.95592 + dps: 3161.71238 + tps: 2408.1493 } } dps_results: { diff --git a/sim/warrior/dps/dps_warrior_test.go b/sim/warrior/dps/dps_warrior_test.go index a955a96a98..b7ac11b74c 100644 --- a/sim/warrior/dps/dps_warrior_test.go +++ b/sim/warrior/dps/dps_warrior_test.go @@ -15,7 +15,7 @@ func init() { } func GetAplRotation(dir string, file string) core.RotationCombo { - filePath := dir + "/" + file + ".json" + filePath := dir + "/" + file + ".apl.json" data, err := os.ReadFile(filePath) if err != nil { log.Fatalf("failed to load apl json file: %s, %s", filePath, err) diff --git a/sim/warrior/protection/protection_warrior_test.go b/sim/warrior/protection/protection_warrior_test.go index 234fe1b1f0..26ce584881 100644 --- a/sim/warrior/protection/protection_warrior_test.go +++ b/sim/warrior/protection/protection_warrior_test.go @@ -15,7 +15,7 @@ func init() { } func GetAplRotation(dir string, file string) core.RotationCombo { - filePath := dir + "/" + file + ".json" + filePath := dir + "/" + file + ".apl.json" data, err := os.ReadFile(filePath) if err != nil { log.Fatalf("failed to load apl json file: %s, %s", filePath, err) diff --git a/ui/balance_druid/apls/basic_p3.json b/ui/balance_druid/apls/basic_p3.apl.json similarity index 100% rename from ui/balance_druid/apls/basic_p3.json rename to ui/balance_druid/apls/basic_p3.apl.json diff --git a/ui/balance_druid/presets.ts b/ui/balance_druid/presets.ts index 859b8cbed9..6abf54cb4c 100644 --- a/ui/balance_druid/presets.ts +++ b/ui/balance_druid/presets.ts @@ -29,7 +29,7 @@ import * as Tooltips from '../core/constants/tooltips.js'; import { Player } from "../core/player"; import { APLRotation } from '../core/proto/apl.js'; -import BasicP3AplJson from './apls/basic_p3.json'; +import BasicP3AplJson from './apls/basic_p3.apl.json'; // Preset options for this spec. // Eventually we will import these values for the raid sim too, so its good to diff --git a/ui/deathknight/apls/blood_pesti.json b/ui/deathknight/apls/blood_pesti.apl.json similarity index 100% rename from ui/deathknight/apls/blood_pesti.json rename to ui/deathknight/apls/blood_pesti.apl.json diff --git a/ui/deathknight/apls/blood_pesti_aoe.json b/ui/deathknight/apls/blood_pesti_aoe.apl.json similarity index 100% rename from ui/deathknight/apls/blood_pesti_aoe.json rename to ui/deathknight/apls/blood_pesti_aoe.apl.json diff --git a/ui/deathknight/apls/blood_pesti_dd.json b/ui/deathknight/apls/blood_pesti_dd.apl.json similarity index 100% rename from ui/deathknight/apls/blood_pesti_dd.json rename to ui/deathknight/apls/blood_pesti_dd.apl.json diff --git a/ui/deathknight/apls/frost_bl_pesti.json b/ui/deathknight/apls/frost_bl_pesti.apl.json similarity index 100% rename from ui/deathknight/apls/frost_bl_pesti.json rename to ui/deathknight/apls/frost_bl_pesti.apl.json diff --git a/ui/deathknight/apls/frost_uh_pesti.json b/ui/deathknight/apls/frost_uh_pesti.apl.json similarity index 100% rename from ui/deathknight/apls/frost_uh_pesti.json rename to ui/deathknight/apls/frost_uh_pesti.apl.json diff --git a/ui/deathknight/apls/uh_2h_ss.json b/ui/deathknight/apls/uh_2h_ss.apl.json similarity index 100% rename from ui/deathknight/apls/uh_2h_ss.json rename to ui/deathknight/apls/uh_2h_ss.apl.json diff --git a/ui/deathknight/apls/uh_dnd_aoe.json b/ui/deathknight/apls/uh_dnd_aoe.apl.json similarity index 100% rename from ui/deathknight/apls/uh_dnd_aoe.json rename to ui/deathknight/apls/uh_dnd_aoe.apl.json diff --git a/ui/deathknight/apls/unholy_dw_ss.json b/ui/deathknight/apls/unholy_dw_ss.apl.json similarity index 100% rename from ui/deathknight/apls/unholy_dw_ss.json rename to ui/deathknight/apls/unholy_dw_ss.apl.json diff --git a/ui/deathknight/presets.ts b/ui/deathknight/presets.ts index fd37971bc5..f079090329 100644 --- a/ui/deathknight/presets.ts +++ b/ui/deathknight/presets.ts @@ -32,16 +32,16 @@ import { import * as Tooltips from '../core/constants/tooltips.js'; import { APLRotation } from '../core/proto/apl.js'; -import BloodPestiApl from './apls/blood_pesti.json'; -import BloodPestiDDApl from './apls/blood_pesti_dd.json'; -import BloodPestiAoeApl from './apls/blood_pesti_aoe.json'; +import BloodPestiApl from './apls/blood_pesti.apl.json'; +import BloodPestiDDApl from './apls/blood_pesti_dd.apl.json'; +import BloodPestiAoeApl from './apls/blood_pesti_aoe.apl.json'; -import FrostBlPestiApl from './apls/frost_bl_pesti.json'; -import FrostUhPestiApl from './apls/frost_uh_pesti.json'; +import FrostBlPestiApl from './apls/frost_bl_pesti.apl.json'; +import FrostUhPestiApl from './apls/frost_uh_pesti.apl.json'; -import UhDwSsApl from './apls/unholy_dw_ss.json'; -import Uh2hSsApl from './apls/uh_2h_ss.json'; -import UhDndAoeApl from './apls/uh_dnd_aoe.json'; +import UhDwSsApl from './apls/unholy_dw_ss.apl.json'; +import Uh2hSsApl from './apls/uh_2h_ss.apl.json'; +import UhDndAoeApl from './apls/uh_dnd_aoe.apl.json'; // Preset options for this spec. // Eventually we will import these values for the raid sim too, so its good to diff --git a/ui/elemental_shaman/apls/default.json b/ui/elemental_shaman/apls/default.apl.json similarity index 100% rename from ui/elemental_shaman/apls/default.json rename to ui/elemental_shaman/apls/default.apl.json diff --git a/ui/elemental_shaman/presets.ts b/ui/elemental_shaman/presets.ts index f8068a59cb..ed99039bbd 100644 --- a/ui/elemental_shaman/presets.ts +++ b/ui/elemental_shaman/presets.ts @@ -25,7 +25,7 @@ import { import * as Tooltips from '../core/constants/tooltips.js'; import { Faction } from '../core/proto/common.js'; -import DefaultApl from './apls/default.json'; +import DefaultApl from './apls/default.apl.json'; // Preset options for this spec. // Eventually we will import these values for the raid sim too, so its good to diff --git a/ui/enhancement_shaman/apls/default_ft.json b/ui/enhancement_shaman/apls/default_ft.apl.json similarity index 100% rename from ui/enhancement_shaman/apls/default_ft.json rename to ui/enhancement_shaman/apls/default_ft.apl.json diff --git a/ui/enhancement_shaman/apls/default_wf.json b/ui/enhancement_shaman/apls/default_wf.apl.json similarity index 100% rename from ui/enhancement_shaman/apls/default_wf.json rename to ui/enhancement_shaman/apls/default_wf.apl.json diff --git a/ui/enhancement_shaman/apls/phase_3.json b/ui/enhancement_shaman/apls/phase_3.apl.json similarity index 100% rename from ui/enhancement_shaman/apls/phase_3.json rename to ui/enhancement_shaman/apls/phase_3.apl.json diff --git a/ui/enhancement_shaman/presets.ts b/ui/enhancement_shaman/presets.ts index 86fadba408..39ea337304 100644 --- a/ui/enhancement_shaman/presets.ts +++ b/ui/enhancement_shaman/presets.ts @@ -34,9 +34,9 @@ import { import * as Tooltips from '../core/constants/tooltips.js'; import { Player } from 'ui/core/player.js'; -import DefaultFt from './apls/default_ft.json'; -import DefaultWf from './apls/default_wf.json'; -import Phase3Apl from './apls/phase_3.json'; +import DefaultFt from './apls/default_ft.apl.json'; +import DefaultWf from './apls/default_wf.apl.json'; +import Phase3Apl from './apls/phase_3.apl.json'; // Preset options for this spec. // Eventually we will import these values for the raid sim too, so its good to diff --git a/ui/feral_tank_druid/apls/default.json b/ui/feral_tank_druid/apls/default.apl.json similarity index 100% rename from ui/feral_tank_druid/apls/default.json rename to ui/feral_tank_druid/apls/default.apl.json diff --git a/ui/feral_tank_druid/presets.ts b/ui/feral_tank_druid/presets.ts index e37756bfd5..bd030b43ba 100644 --- a/ui/feral_tank_druid/presets.ts +++ b/ui/feral_tank_druid/presets.ts @@ -20,7 +20,7 @@ import { import * as Tooltips from '../core/constants/tooltips.js'; -import DefaultApl from './apls/default.json'; +import DefaultApl from './apls/default.apl.json'; // Preset options for this spec. // Eventually we will import these values for the raid sim too, so its good to diff --git a/ui/healing_priest/apls/disc.json b/ui/healing_priest/apls/disc.apl.json similarity index 100% rename from ui/healing_priest/apls/disc.json rename to ui/healing_priest/apls/disc.apl.json diff --git a/ui/healing_priest/apls/holy.json b/ui/healing_priest/apls/holy.apl.json similarity index 100% rename from ui/healing_priest/apls/holy.json rename to ui/healing_priest/apls/holy.apl.json diff --git a/ui/healing_priest/presets.ts b/ui/healing_priest/presets.ts index 7c5c9deadb..a743e10705 100644 --- a/ui/healing_priest/presets.ts +++ b/ui/healing_priest/presets.ts @@ -25,8 +25,8 @@ import { import * as Tooltips from '../core/constants/tooltips.js'; -import DiscApl from './apls/disc.json'; -import HolyApl from './apls/holy.json'; +import DiscApl from './apls/disc.apl.json'; +import HolyApl from './apls/holy.apl.json'; // Preset options for this spec. // Eventually we will import these values for the raid sim too, so its good to diff --git a/ui/hunter/apls/aoe.json b/ui/hunter/apls/aoe.apl.json similarity index 100% rename from ui/hunter/apls/aoe.json rename to ui/hunter/apls/aoe.apl.json diff --git a/ui/hunter/apls/bm.json b/ui/hunter/apls/bm.apl.json similarity index 100% rename from ui/hunter/apls/bm.json rename to ui/hunter/apls/bm.apl.json diff --git a/ui/hunter/apls/mm.json b/ui/hunter/apls/mm.apl.json similarity index 100% rename from ui/hunter/apls/mm.json rename to ui/hunter/apls/mm.apl.json diff --git a/ui/hunter/apls/mm_advanced.json b/ui/hunter/apls/mm_advanced.apl.json similarity index 100% rename from ui/hunter/apls/mm_advanced.json rename to ui/hunter/apls/mm_advanced.apl.json diff --git a/ui/hunter/apls/sv.json b/ui/hunter/apls/sv.apl.json similarity index 100% rename from ui/hunter/apls/sv.json rename to ui/hunter/apls/sv.apl.json diff --git a/ui/hunter/apls/sv_advanced.json b/ui/hunter/apls/sv_advanced.apl.json similarity index 100% rename from ui/hunter/apls/sv_advanced.json rename to ui/hunter/apls/sv_advanced.apl.json diff --git a/ui/hunter/presets.ts b/ui/hunter/presets.ts index 86cebaa7db..5e8c71bdd5 100644 --- a/ui/hunter/presets.ts +++ b/ui/hunter/presets.ts @@ -23,15 +23,15 @@ import { import * as Tooltips from '../core/constants/tooltips.js'; -import BmApl from './apls/bm.json'; +import BmApl from './apls/bm.apl.json'; -import MmApl from './apls/mm.json'; -import MmAdvApl from './apls/mm_advanced.json'; +import MmApl from './apls/mm.apl.json'; +import MmAdvApl from './apls/mm_advanced.apl.json'; -import SvApl from './apls/sv.json'; -import SvAdvApl from './apls/sv_advanced.json'; +import SvApl from './apls/sv.apl.json'; +import SvAdvApl from './apls/sv_advanced.apl.json'; -import AoeApl from './apls/aoe.json'; +import AoeApl from './apls/aoe.apl.json'; // Preset options for this spec. // Eventually we will import these values for the raid sim too, so its good to diff --git a/ui/mage/apls/arcane.json b/ui/mage/apls/arcane.apl.json similarity index 100% rename from ui/mage/apls/arcane.json rename to ui/mage/apls/arcane.apl.json diff --git a/ui/mage/apls/arcane_aoe.json b/ui/mage/apls/arcane_aoe.apl.json similarity index 100% rename from ui/mage/apls/arcane_aoe.json rename to ui/mage/apls/arcane_aoe.apl.json diff --git a/ui/mage/apls/fire.json b/ui/mage/apls/fire.apl.json similarity index 100% rename from ui/mage/apls/fire.json rename to ui/mage/apls/fire.apl.json diff --git a/ui/mage/apls/fire_aoe.json b/ui/mage/apls/fire_aoe.apl.json similarity index 100% rename from ui/mage/apls/fire_aoe.json rename to ui/mage/apls/fire_aoe.apl.json diff --git a/ui/mage/apls/frost.json b/ui/mage/apls/frost.apl.json similarity index 100% rename from ui/mage/apls/frost.json rename to ui/mage/apls/frost.apl.json diff --git a/ui/mage/apls/frost_aoe.json b/ui/mage/apls/frost_aoe.apl.json similarity index 100% rename from ui/mage/apls/frost_aoe.json rename to ui/mage/apls/frost_aoe.apl.json diff --git a/ui/mage/apls/frostfire.json b/ui/mage/apls/frostfire.apl.json similarity index 100% rename from ui/mage/apls/frostfire.json rename to ui/mage/apls/frostfire.apl.json diff --git a/ui/mage/presets.ts b/ui/mage/presets.ts index db42152f2e..c777e9c92c 100644 --- a/ui/mage/presets.ts +++ b/ui/mage/presets.ts @@ -24,13 +24,13 @@ import { import * as Tooltips from '../core/constants/tooltips.js'; import { APLRotation } from '../core/proto/apl.js'; -import ArcaneApl from './apls/arcane.json'; -import FireApl from './apls/fire.json'; -import FrostApl from './apls/frost.json'; -import ArcaneAoeApl from './apls/arcane_aoe.json'; -import FireAoeApl from './apls/fire_aoe.json'; -import FrostAoeApl from './apls/frost_aoe.json'; -import FrostFireApl from './apls/frostfire.json'; +import ArcaneApl from './apls/arcane.apl.json'; +import FireApl from './apls/fire.apl.json'; +import FrostApl from './apls/frost.apl.json'; +import ArcaneAoeApl from './apls/arcane_aoe.apl.json'; +import FireAoeApl from './apls/fire_aoe.apl.json'; +import FrostAoeApl from './apls/frost_aoe.apl.json'; +import FrostFireApl from './apls/frostfire.apl.json'; // Preset options for this spec. // Eventually we will import these values for the raid sim too, so its good to diff --git a/ui/protection_paladin/apls/default.json b/ui/protection_paladin/apls/default.apl.json similarity index 100% rename from ui/protection_paladin/apls/default.json rename to ui/protection_paladin/apls/default.apl.json diff --git a/ui/protection_paladin/presets.ts b/ui/protection_paladin/presets.ts index eeb9bbc377..a3ca394aa9 100644 --- a/ui/protection_paladin/presets.ts +++ b/ui/protection_paladin/presets.ts @@ -21,7 +21,7 @@ import { import * as Tooltips from '../core/constants/tooltips.js'; -import DefaultApl from './apls/default.json'; +import DefaultApl from './apls/default.apl.json'; // Preset options for this spec. // Eventually we will import these values for the raid sim too, so its good to diff --git a/ui/protection_warrior/apls/default.json b/ui/protection_warrior/apls/default.apl.json similarity index 100% rename from ui/protection_warrior/apls/default.json rename to ui/protection_warrior/apls/default.apl.json diff --git a/ui/protection_warrior/presets.ts b/ui/protection_warrior/presets.ts index dd18331257..7734715415 100644 --- a/ui/protection_warrior/presets.ts +++ b/ui/protection_warrior/presets.ts @@ -20,7 +20,7 @@ import { import * as Tooltips from '../core/constants/tooltips.js'; -import DefaultApl from './apls/default.json'; +import DefaultApl from './apls/default.apl.json'; // Preset options for this spec. // Eventually we will import these values for the raid sim too, so its good to diff --git a/ui/retribution_paladin/apls/default.json b/ui/retribution_paladin/apls/default.apl.json similarity index 100% rename from ui/retribution_paladin/apls/default.json rename to ui/retribution_paladin/apls/default.apl.json diff --git a/ui/retribution_paladin/presets.ts b/ui/retribution_paladin/presets.ts index bb22a2e3cf..fcc2835e60 100644 --- a/ui/retribution_paladin/presets.ts +++ b/ui/retribution_paladin/presets.ts @@ -23,7 +23,7 @@ import { import * as Tooltips from '../core/constants/tooltips.js'; -import DefaultApl from './apls/default.json'; +import DefaultApl from './apls/default.apl.json'; // Preset options for this spec. // Eventually we will import these values for the raid sim too, so its good to diff --git a/ui/rogue/apls/combat.json b/ui/rogue/apls/combat.apl.json similarity index 100% rename from ui/rogue/apls/combat.json rename to ui/rogue/apls/combat.apl.json diff --git a/ui/rogue/apls/combat_cleave_snd.json b/ui/rogue/apls/combat_cleave_snd.apl.json similarity index 100% rename from ui/rogue/apls/combat_cleave_snd.json rename to ui/rogue/apls/combat_cleave_snd.apl.json diff --git a/ui/rogue/apls/combat_cleave_snd_expose.json b/ui/rogue/apls/combat_cleave_snd_expose.apl.json similarity index 100% rename from ui/rogue/apls/combat_cleave_snd_expose.json rename to ui/rogue/apls/combat_cleave_snd_expose.apl.json diff --git a/ui/rogue/apls/combat_expose.json b/ui/rogue/apls/combat_expose.apl.json similarity index 100% rename from ui/rogue/apls/combat_expose.json rename to ui/rogue/apls/combat_expose.apl.json diff --git a/ui/rogue/apls/fan_aoe.json b/ui/rogue/apls/fan_aoe.apl.json similarity index 100% rename from ui/rogue/apls/fan_aoe.json rename to ui/rogue/apls/fan_aoe.apl.json diff --git a/ui/rogue/apls/mutilate.json b/ui/rogue/apls/mutilate.apl.json similarity index 100% rename from ui/rogue/apls/mutilate.json rename to ui/rogue/apls/mutilate.apl.json diff --git a/ui/rogue/apls/mutilate_expose.json b/ui/rogue/apls/mutilate_expose.apl.json similarity index 100% rename from ui/rogue/apls/mutilate_expose.json rename to ui/rogue/apls/mutilate_expose.apl.json diff --git a/ui/rogue/apls/rupture_mutilate.json b/ui/rogue/apls/rupture_mutilate.apl.json similarity index 100% rename from ui/rogue/apls/rupture_mutilate.json rename to ui/rogue/apls/rupture_mutilate.apl.json diff --git a/ui/rogue/apls/rupture_mutilate_expose.json b/ui/rogue/apls/rupture_mutilate_expose.apl.json similarity index 100% rename from ui/rogue/apls/rupture_mutilate_expose.json rename to ui/rogue/apls/rupture_mutilate_expose.apl.json diff --git a/ui/rogue/presets.ts b/ui/rogue/presets.ts index bec726debd..366401e461 100644 --- a/ui/rogue/presets.ts +++ b/ui/rogue/presets.ts @@ -18,15 +18,15 @@ import { import * as Tooltips from '../core/constants/tooltips.js'; import { APLRotation } from '../core/proto/apl.js'; -import MutilateApl from './apls/mutilate.json' -import MutilateExposeApl from './apls/mutilate_expose.json' -import RuptureMutilateApl from './apls/rupture_mutilate.json' -import RuptureMutilateExposeApl from './apls/rupture_mutilate_expose.json' -import CombatApl from './apls/combat.json' -import CombatExposeApl from './apls/combat_expose.json' -import CombatCleaveSndApl from './apls/combat_cleave_snd.json' -import CombatCleaveSndExposeApl from './apls/combat_cleave_snd_expose.json' -import FanAoeApl from './apls/fan_aoe.json' +import MutilateApl from './apls/mutilate.apl.json' +import MutilateExposeApl from './apls/mutilate_expose.apl.json' +import RuptureMutilateApl from './apls/rupture_mutilate.apl.json' +import RuptureMutilateExposeApl from './apls/rupture_mutilate_expose.apl.json' +import CombatApl from './apls/combat.apl.json' +import CombatExposeApl from './apls/combat_expose.apl.json' +import CombatCleaveSndApl from './apls/combat_cleave_snd.apl.json' +import CombatCleaveSndExposeApl from './apls/combat_cleave_snd_expose.apl.json' +import FanAoeApl from './apls/fan_aoe.apl.json' // 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/apls/default.json b/ui/shadow_priest/apls/default.apl.json similarity index 100% rename from ui/shadow_priest/apls/default.json rename to ui/shadow_priest/apls/default.apl.json diff --git a/ui/shadow_priest/presets.ts b/ui/shadow_priest/presets.ts index 02f6c81f38..5ccde5bee6 100644 --- a/ui/shadow_priest/presets.ts +++ b/ui/shadow_priest/presets.ts @@ -22,7 +22,7 @@ import { import * as Tooltips from '../core/constants/tooltips.js'; -import DefaultApl from './apls/default.json' +import DefaultApl from './apls/default.apl.json' // Preset options for this spec. // Eventually we will import these values for the raid sim too, so its good to diff --git a/ui/smite_priest/apls/default.json b/ui/smite_priest/apls/default.apl.json similarity index 100% rename from ui/smite_priest/apls/default.json rename to ui/smite_priest/apls/default.apl.json diff --git a/ui/smite_priest/presets.ts b/ui/smite_priest/presets.ts index fb90b22957..de56dde1b8 100644 --- a/ui/smite_priest/presets.ts +++ b/ui/smite_priest/presets.ts @@ -21,7 +21,7 @@ import { import * as Tooltips from '../core/constants/tooltips.js'; -import DefaultApl from './apls/default.json' +import DefaultApl from './apls/default.apl.json' // Preset options for this spec. // Eventually we will import these values for the raid sim too, so its good to diff --git a/ui/tank_deathknight/apls/blood_aggro.json b/ui/tank_deathknight/apls/blood_aggro.apl.json similarity index 100% rename from ui/tank_deathknight/apls/blood_aggro.json rename to ui/tank_deathknight/apls/blood_aggro.apl.json diff --git a/ui/tank_deathknight/apls/blood_icy_touch.json b/ui/tank_deathknight/apls/blood_icy_touch.apl.json similarity index 100% rename from ui/tank_deathknight/apls/blood_icy_touch.json rename to ui/tank_deathknight/apls/blood_icy_touch.apl.json diff --git a/ui/tank_deathknight/presets.ts b/ui/tank_deathknight/presets.ts index bb8c89754f..26cf29d060 100644 --- a/ui/tank_deathknight/presets.ts +++ b/ui/tank_deathknight/presets.ts @@ -21,8 +21,8 @@ import { import * as Tooltips from '../core/constants/tooltips.js'; -import BloodAggroApl from './apls/blood_aggro.json'; -import BloodIcyTouchApl from './apls/blood_icy_touch.json'; +import BloodAggroApl from './apls/blood_aggro.apl.json'; +import BloodIcyTouchApl from './apls/blood_icy_touch.apl.json'; export const BloodTalents = { name: 'Blood', diff --git a/ui/warlock/apls/demo.json b/ui/warlock/apls/demo.apl.json similarity index 100% rename from ui/warlock/apls/demo.json rename to ui/warlock/apls/demo.apl.json diff --git a/ui/warlock/apls/destro.json b/ui/warlock/apls/destro.apl.json similarity index 100% rename from ui/warlock/apls/destro.json rename to ui/warlock/apls/destro.apl.json diff --git a/ui/warlock/presets.ts b/ui/warlock/presets.ts index 452b19b974..37d46e0769 100644 --- a/ui/warlock/presets.ts +++ b/ui/warlock/presets.ts @@ -31,8 +31,8 @@ import { } from '../core/proto/warlock.js'; import { APLRotation } from '../core/proto/apl.js'; -import DemoApl from './apls/demo.json'; -import DestroApl from './apls/destro.json'; +import DemoApl from './apls/demo.apl.json'; +import DestroApl from './apls/destro.apl.json'; export const BIS_TOOLTIP = 'This gear preset is inspired from Zephan\'s Affliction guide: https://www.warcrafttavern.com/wotlk/guides/pve-affliction-warlock/'; diff --git a/ui/warrior/apls/fury.json b/ui/warrior/apls/fury.apl.json similarity index 100% rename from ui/warrior/apls/fury.json rename to ui/warrior/apls/fury.apl.json diff --git a/ui/warrior/presets.ts b/ui/warrior/presets.ts index 0f6be2d06f..98f1efe371 100644 --- a/ui/warrior/presets.ts +++ b/ui/warrior/presets.ts @@ -25,7 +25,7 @@ import { import * as Tooltips from '../core/constants/tooltips.js'; -import FuryApl from './apls/fury.json'; +import FuryApl from './apls/fury.apl.json'; // Preset options for this spec. // Eventually we will import these values for the raid sim too, so its good to From a02c22dd845bc8bdabf391c0f55e5430bb2e8780 Mon Sep 17 00:00:00 2001 From: jarves Date: Thu, 5 Oct 2023 22:03:51 -0500 Subject: [PATCH 21/21] tests: move getApl func to helper file Signed-off-by: jarves --- sim/core/test_utils.go | 11 ++++++++ sim/deathknight/dps/dps_deathknight_test.go | 28 ++++++------------- sim/deathknight/tank/tank_deathknight_test.go | 16 ++--------- sim/druid/balance/balance_test.go | 16 ++--------- sim/druid/tank/tank_test.go | 14 +--------- sim/hunter/hunter_test.go | 24 ++++------------ sim/mage/mage_test.go | 26 +++++------------ sim/paladin/protection/protection_test.go | 14 +--------- sim/paladin/retribution/retribution_test.go | 14 +--------- sim/priest/healing/healing_priest_test.go | 16 ++--------- sim/priest/shadow/shadow_priest_test.go | 14 +--------- sim/priest/smite/smite_priest_test.go | 14 +--------- sim/rogue/rogue_test.go | 28 ++++++------------- sim/shaman/elemental/elemental_test.go | 14 +--------- sim/shaman/enhancement/enhancement_test.go | 18 ++---------- sim/warlock/warlock_test.go | 16 ++--------- sim/warrior/dps/dps_warrior_test.go | 14 +--------- .../protection/protection_warrior_test.go | 14 +--------- 18 files changed, 59 insertions(+), 252 deletions(-) diff --git a/sim/core/test_utils.go b/sim/core/test_utils.go index a90b0b1d3a..44246d9470 100644 --- a/sim/core/test_utils.go +++ b/sim/core/test_utils.go @@ -2,6 +2,7 @@ package core import ( "log" + "os" "testing" "github.com/wowsims/wotlk/sim/core/proto" @@ -234,3 +235,13 @@ func RaidBenchmark(b *testing.B, rsr *proto.RaidSimRequest) { } } } + +func GetAplRotation(dir string, file string) RotationCombo { + filePath := dir + "/" + file + ".apl.json" + data, err := os.ReadFile(filePath) + if err != nil { + log.Fatalf("failed to load apl json file: %s, %s", filePath, err) + } + + return RotationCombo{Label: file, Rotation: APLRotationFromJsonString(string(data))} +} diff --git a/sim/deathknight/dps/dps_deathknight_test.go b/sim/deathknight/dps/dps_deathknight_test.go index dcfc6b1e36..7e6561bede 100644 --- a/sim/deathknight/dps/dps_deathknight_test.go +++ b/sim/deathknight/dps/dps_deathknight_test.go @@ -1,8 +1,6 @@ package dps import ( - "log" - "os" "testing" _ "github.com/wowsims/wotlk/sim/common" // imported to get item effects included. @@ -14,16 +12,6 @@ func init() { RegisterDpsDeathknight() } -func GetAplRotation(dir string, file string) core.RotationCombo { - filePath := dir + "/" + file + ".apl.json" - data, err := os.ReadFile(filePath) - if err != nil { - log.Fatalf("failed to load apl json file: %s, %s", filePath, err) - } - - return core.RotationCombo{Label: file, Rotation: core.APLRotationFromJsonString(string(data))} -} - func TestBlood(t *testing.T) { core.RunTestSuite(t, t.Name(), core.FullCharacterTestSuiteGenerator(core.CharacterSuiteConfig{ Class: proto.Class_ClassDeathknight, @@ -36,8 +24,8 @@ func TestBlood(t *testing.T) { Consumes: FullConsumes, SpecOptions: core.SpecOptionsCombo{Label: "Basic", SpecOptions: PlayerOptionsBlood}, OtherRotations: []core.RotationCombo{ - GetAplRotation("../../../ui/deathknight/apls", "blood_pesti"), - GetAplRotation("../../../ui/deathknight/apls", "blood_pesti_dd"), + core.GetAplRotation("../../../ui/deathknight/apls", "blood_pesti"), + core.GetAplRotation("../../../ui/deathknight/apls", "blood_pesti_dd"), }, ItemFilter: ItemFilter, @@ -57,9 +45,9 @@ func TestUnholy(t *testing.T) { SpecOptions: core.SpecOptionsCombo{Label: "Basic", SpecOptions: PlayerOptionsUnholy}, OtherRotations: []core.RotationCombo{ - GetAplRotation("../../../ui/deathknight/apls", "uh_2h_ss"), - GetAplRotation("../../../ui/deathknight/apls", "uh_dnd_aoe"), - GetAplRotation("../../../ui/deathknight/apls", "unholy_dw_ss"), + core.GetAplRotation("../../../ui/deathknight/apls", "uh_2h_ss"), + core.GetAplRotation("../../../ui/deathknight/apls", "uh_dnd_aoe"), + core.GetAplRotation("../../../ui/deathknight/apls", "unholy_dw_ss"), }, ItemFilter: ItemFilter, @@ -82,8 +70,8 @@ func TestFrost(t *testing.T) { }, OtherRotations: []core.RotationCombo{ - GetAplRotation("../../../ui/deathknight/apls", "frost_bl_pesti"), - GetAplRotation("../../../ui/deathknight/apls", "frost_uh_pesti"), + core.GetAplRotation("../../../ui/deathknight/apls", "frost_bl_pesti"), + core.GetAplRotation("../../../ui/deathknight/apls", "frost_uh_pesti"), }, ItemFilter: ItemFilter, @@ -102,7 +90,7 @@ func TestFrostUH(t *testing.T) { Consumes: FullConsumes, SpecOptions: core.SpecOptionsCombo{Label: "Basic", SpecOptions: PlayerOptionsFrost}, OtherRotations: []core.RotationCombo{ - GetAplRotation("../../../ui/deathknight/apls", "frost_uh_pesti"), + core.GetAplRotation("../../../ui/deathknight/apls", "frost_uh_pesti"), }, ItemFilter: ItemFilter, diff --git a/sim/deathknight/tank/tank_deathknight_test.go b/sim/deathknight/tank/tank_deathknight_test.go index f9a8bf4d31..bedd5448b5 100644 --- a/sim/deathknight/tank/tank_deathknight_test.go +++ b/sim/deathknight/tank/tank_deathknight_test.go @@ -1,8 +1,6 @@ package tank import ( - "log" - "os" "testing" _ "github.com/wowsims/wotlk/sim/common" // imported to get item effects included. @@ -14,16 +12,6 @@ func init() { RegisterTankDeathknight() } -func GetAplRotation(dir string, file string) core.RotationCombo { - filePath := dir + "/" + file + ".apl.json" - data, err := os.ReadFile(filePath) - if err != nil { - log.Fatalf("failed to load apl json file: %s, %s", filePath, err) - } - - return core.RotationCombo{Label: file, Rotation: core.APLRotationFromJsonString(string(data))} -} - func TestBloodTank(t *testing.T) { core.RunTestSuite(t, t.Name(), core.FullCharacterTestSuiteGenerator(core.CharacterSuiteConfig{ Class: proto.Class_ClassDeathknight, @@ -35,9 +23,9 @@ func TestBloodTank(t *testing.T) { Glyphs: Glyphs, Consumes: FullConsumes, SpecOptions: core.SpecOptionsCombo{Label: "Basic", SpecOptions: PlayerOptionsBloodTank}, - Rotation: GetAplRotation("../../../ui/tank_deathknight/apls", "blood_icy_touch"), + Rotation: core.GetAplRotation("../../../ui/tank_deathknight/apls", "blood_icy_touch"), OtherRotations: []core.RotationCombo{ - GetAplRotation("../../../ui/tank_deathknight/apls", "blood_aggro"), + core.GetAplRotation("../../../ui/tank_deathknight/apls", "blood_aggro"), }, IsTank: true, diff --git a/sim/druid/balance/balance_test.go b/sim/druid/balance/balance_test.go index 0dda20a82f..cf60fe23f2 100644 --- a/sim/druid/balance/balance_test.go +++ b/sim/druid/balance/balance_test.go @@ -1,8 +1,6 @@ package balance import ( - "log" - "os" "testing" _ "github.com/wowsims/wotlk/sim/common" // imported to get caster sets included. (we use spellfire here) @@ -14,16 +12,6 @@ func init() { RegisterBalanceDruid() } -func GetAplRotation(dir string, file string) core.RotationCombo { - filePath := dir + "/" + file + ".apl.json" - data, err := os.ReadFile(filePath) - if err != nil { - log.Fatalf("failed to load apl json file: %s, %s", filePath, err) - } - - return core.RotationCombo{Label: file, Rotation: core.APLRotationFromJsonString(string(data))} -} - func TestBalance(t *testing.T) { core.RunTestSuite(t, t.Name(), core.FullCharacterTestSuiteGenerator(core.CharacterSuiteConfig{ Class: proto.Class_ClassDruid, @@ -39,7 +27,7 @@ func TestBalance(t *testing.T) { Glyphs: StandardGlyphs, Consumes: FullConsumes, SpecOptions: core.SpecOptionsCombo{Label: "Default", SpecOptions: PlayerOptionsAdaptive}, - Rotation: GetAplRotation("../../../ui/balance_druid/apls", "basic_p3"), + Rotation: core.GetAplRotation("../../../ui/balance_druid/apls", "basic_p3"), ItemFilter: ItemFilter, })) @@ -59,7 +47,7 @@ func TestBalancePhase3(t *testing.T) { }, Consumes: FullConsumes, SpecOptions: core.SpecOptionsCombo{Label: "Default", SpecOptions: PlayerOptionsAdaptive}, - Rotation: GetAplRotation("../../../ui/balance_druid/apls", "basic_p3"), + Rotation: core.GetAplRotation("../../../ui/balance_druid/apls", "basic_p3"), ItemFilter: core.ItemFilter{ WeaponTypes: []proto.WeaponType{ diff --git a/sim/druid/tank/tank_test.go b/sim/druid/tank/tank_test.go index ee81fce1b1..585441a4e7 100644 --- a/sim/druid/tank/tank_test.go +++ b/sim/druid/tank/tank_test.go @@ -1,8 +1,6 @@ package tank import ( - "log" - "os" "testing" _ "github.com/wowsims/wotlk/sim/common" @@ -14,16 +12,6 @@ func init() { RegisterFeralTankDruid() } -func GetAplRotation(dir string, file string) core.RotationCombo { - filePath := dir + "/" + file + ".apl.json" - data, err := os.ReadFile(filePath) - if err != nil { - log.Fatalf("failed to load apl json file: %s, %s", filePath, err) - } - - return core.RotationCombo{Label: file, Rotation: core.APLRotationFromJsonString(string(data))} -} - func TestFeralTank(t *testing.T) { core.RunTestSuite(t, t.Name(), core.FullCharacterTestSuiteGenerator(core.CharacterSuiteConfig{ Class: proto.Class_ClassDruid, @@ -34,7 +22,7 @@ func TestFeralTank(t *testing.T) { Glyphs: StandardGlyphs, Consumes: FullConsumes, SpecOptions: core.SpecOptionsCombo{Label: "Default", SpecOptions: PlayerOptionsDefault}, - Rotation: GetAplRotation("../../../ui/feral_tank_druid/apls", "default"), + Rotation: core.GetAplRotation("../../../ui/feral_tank_druid/apls", "default"), IsTank: true, InFrontOfTarget: true, diff --git a/sim/hunter/hunter_test.go b/sim/hunter/hunter_test.go index 75a2ce5aa2..4d95d8655c 100644 --- a/sim/hunter/hunter_test.go +++ b/sim/hunter/hunter_test.go @@ -1,8 +1,6 @@ package hunter import ( - "log" - "os" "testing" _ "github.com/wowsims/wotlk/sim/common" // imported to get item effects included. @@ -14,16 +12,6 @@ func init() { RegisterHunter() } -func GetAplRotation(dir string, file string) core.RotationCombo { - filePath := dir + "/" + file + ".apl.json" - data, err := os.ReadFile(filePath) - if err != nil { - log.Fatalf("failed to load apl json file: %s, %s", filePath, err) - } - - return core.RotationCombo{Label: file, Rotation: core.APLRotationFromJsonString(string(data))} -} - func TestBM(t *testing.T) { core.RunTestSuite(t, t.Name(), core.FullCharacterTestSuiteGenerator(core.CharacterSuiteConfig{ Class: proto.Class_ClassHunter, @@ -35,7 +23,7 @@ func TestBM(t *testing.T) { Glyphs: BMGlyphs, Consumes: FullConsumes, SpecOptions: core.SpecOptionsCombo{Label: "Basic", SpecOptions: PlayerOptionsBasic}, - Rotation: GetAplRotation("../../ui/hunter/apls", "bm"), + Rotation: core.GetAplRotation("../../ui/hunter/apls", "bm"), ItemFilter: ItemFilter, })) @@ -52,9 +40,9 @@ func TestMM(t *testing.T) { Glyphs: MMGlyphs, Consumes: FullConsumes, SpecOptions: core.SpecOptionsCombo{Label: "Basic", SpecOptions: PlayerOptionsBasic}, - Rotation: GetAplRotation("../../ui/hunter/apls", "mm"), + Rotation: core.GetAplRotation("../../ui/hunter/apls", "mm"), OtherRotations: []core.RotationCombo{ - GetAplRotation("../../ui/hunter/apls", "mm_advanced"), + core.GetAplRotation("../../ui/hunter/apls", "mm_advanced"), }, ItemFilter: ItemFilter, @@ -72,10 +60,10 @@ func TestSV(t *testing.T) { Glyphs: SVGlyphs, Consumes: FullConsumes, SpecOptions: core.SpecOptionsCombo{Label: "Basic", SpecOptions: PlayerOptionsBasic}, - Rotation: GetAplRotation("../../ui/hunter/apls", "sv"), + Rotation: core.GetAplRotation("../../ui/hunter/apls", "sv"), OtherRotations: []core.RotationCombo{ - GetAplRotation("../../ui/hunter/apls", "sv_advanced"), - GetAplRotation("../../ui/hunter/apls", "aoe"), + core.GetAplRotation("../../ui/hunter/apls", "sv_advanced"), + core.GetAplRotation("../../ui/hunter/apls", "aoe"), }, ItemFilter: ItemFilter, diff --git a/sim/mage/mage_test.go b/sim/mage/mage_test.go index e6d6ff08a7..003246b70e 100644 --- a/sim/mage/mage_test.go +++ b/sim/mage/mage_test.go @@ -1,8 +1,6 @@ package mage import ( - "log" - "os" "testing" _ "github.com/wowsims/wotlk/sim/common" @@ -14,16 +12,6 @@ func init() { RegisterMage() } -func GetAplRotation(dir string, file string) core.RotationCombo { - filePath := dir + "/" + file + ".apl.json" - data, err := os.ReadFile(filePath) - if err != nil { - log.Fatalf("failed to load apl json file: %s, %s", filePath, err) - } - - return core.RotationCombo{Label: file, Rotation: core.APLRotationFromJsonString(string(data))} -} - func TestArcane(t *testing.T) { core.RunTestSuite(t, t.Name(), core.FullCharacterTestSuiteGenerator(core.CharacterSuiteConfig{ Class: proto.Class_ClassMage, @@ -34,9 +22,9 @@ func TestArcane(t *testing.T) { Glyphs: ArcaneGlyphs, Consumes: FullArcaneConsumes, SpecOptions: core.SpecOptionsCombo{Label: "Arcane", SpecOptions: PlayerOptionsArcane}, - Rotation: GetAplRotation("../../ui/mage/apls", "arcane"), + Rotation: core.GetAplRotation("../../ui/mage/apls", "arcane"), OtherRotations: []core.RotationCombo{ - GetAplRotation("../../ui/mage/apls", "arcane_aoe"), + core.GetAplRotation("../../ui/mage/apls", "arcane_aoe"), }, ItemFilter: ItemFilter, @@ -53,9 +41,9 @@ func TestFire(t *testing.T) { Glyphs: FireGlyphs, Consumes: FullFireConsumes, SpecOptions: core.SpecOptionsCombo{Label: "Fire", SpecOptions: PlayerOptionsFire}, - Rotation: GetAplRotation("../../ui/mage/apls", "fire"), + Rotation: core.GetAplRotation("../../ui/mage/apls", "fire"), OtherRotations: []core.RotationCombo{ - GetAplRotation("../../ui/mage/apls", "fire_aoe"), + core.GetAplRotation("../../ui/mage/apls", "fire_aoe"), }, ItemFilter: ItemFilter, @@ -72,7 +60,7 @@ func TestFrostFire(t *testing.T) { Glyphs: FrostFireGlyphs, Consumes: FullFireConsumes, SpecOptions: core.SpecOptionsCombo{Label: "Fire", SpecOptions: PlayerOptionsFire}, - Rotation: GetAplRotation("../../ui/mage/apls", "frostfire"), + Rotation: core.GetAplRotation("../../ui/mage/apls", "frostfire"), ItemFilter: ItemFilter, })) @@ -88,9 +76,9 @@ func TestFrost(t *testing.T) { Glyphs: FrostGlyphs, Consumes: FullFrostConsumes, SpecOptions: core.SpecOptionsCombo{Label: "Frost", SpecOptions: PlayerOptionsFrost}, - Rotation: GetAplRotation("../../ui/mage/apls", "frost"), + Rotation: core.GetAplRotation("../../ui/mage/apls", "frost"), OtherRotations: []core.RotationCombo{ - GetAplRotation("../../ui/mage/apls", "frost_aoe"), + core.GetAplRotation("../../ui/mage/apls", "frost_aoe"), }, ItemFilter: ItemFilter, diff --git a/sim/paladin/protection/protection_test.go b/sim/paladin/protection/protection_test.go index 4b5e5ebe15..fb6bc1d99f 100644 --- a/sim/paladin/protection/protection_test.go +++ b/sim/paladin/protection/protection_test.go @@ -1,8 +1,6 @@ package protection import ( - "log" - "os" "testing" _ "github.com/wowsims/wotlk/sim/common" // imported to get item effects included. @@ -14,16 +12,6 @@ func init() { RegisterProtectionPaladin() } -func GetAplRotation(dir string, file string) core.RotationCombo { - filePath := dir + "/" + file + ".apl.json" - data, err := os.ReadFile(filePath) - if err != nil { - log.Fatalf("failed to load apl json file: %s, %s", filePath, err) - } - - return core.RotationCombo{Label: file, Rotation: core.APLRotationFromJsonString(string(data))} -} - func TestProtection(t *testing.T) { core.RunTestSuite(t, t.Name(), core.FullCharacterTestSuiteGenerator(core.CharacterSuiteConfig{ Class: proto.Class_ClassPaladin, @@ -63,7 +51,7 @@ func TestProtection(t *testing.T) { }, }, }, - Rotation: GetAplRotation("../../../ui/protection_paladin/apls", "default"), + Rotation: core.GetAplRotation("../../../ui/protection_paladin/apls", "default"), IsTank: true, InFrontOfTarget: true, diff --git a/sim/paladin/retribution/retribution_test.go b/sim/paladin/retribution/retribution_test.go index a94b122896..e858551a95 100644 --- a/sim/paladin/retribution/retribution_test.go +++ b/sim/paladin/retribution/retribution_test.go @@ -1,8 +1,6 @@ package retribution import ( - "log" - "os" "testing" _ "github.com/wowsims/wotlk/sim/common" // imported to get item effects included. @@ -14,16 +12,6 @@ func init() { RegisterRetributionPaladin() } -func GetAplRotation(dir string, file string) core.RotationCombo { - filePath := dir + "/" + file + ".apl.json" - data, err := os.ReadFile(filePath) - if err != nil { - log.Fatalf("failed to load apl json file: %s, %s", filePath, err) - } - - return core.RotationCombo{Label: file, Rotation: core.APLRotationFromJsonString(string(data))} -} - func TestRetribution(t *testing.T) { core.RunTestSuite(t, t.Name(), core.FullCharacterTestSuiteGenerator(core.CharacterSuiteConfig{ Class: proto.Class_ClassPaladin, @@ -83,7 +71,7 @@ func TestRetribution(t *testing.T) { }, }, }, - Rotation: GetAplRotation("../../../ui/retribution_paladin/apls", "default"), + Rotation: core.GetAplRotation("../../../ui/retribution_paladin/apls", "default"), ItemFilter: core.ItemFilter{ WeaponTypes: []proto.WeaponType{ diff --git a/sim/priest/healing/healing_priest_test.go b/sim/priest/healing/healing_priest_test.go index b39b02a5fa..95648f89e7 100644 --- a/sim/priest/healing/healing_priest_test.go +++ b/sim/priest/healing/healing_priest_test.go @@ -1,8 +1,6 @@ package healing import ( - "log" - "os" "testing" _ "github.com/wowsims/wotlk/sim/common" // imported to get caster sets included. @@ -14,16 +12,6 @@ func init() { RegisterHealingPriest() } -func GetAplRotation(dir string, file string) core.RotationCombo { - filePath := dir + "/" + file + ".apl.json" - data, err := os.ReadFile(filePath) - if err != nil { - log.Fatalf("failed to load apl json file: %s, %s", filePath, err) - } - - return core.RotationCombo{Label: file, Rotation: core.APLRotationFromJsonString(string(data))} -} - func TestDisc(t *testing.T) { core.RunTestSuite(t, t.Name(), core.FullCharacterTestSuiteGenerator(core.CharacterSuiteConfig{ Class: proto.Class_ClassPriest, @@ -35,7 +23,7 @@ func TestDisc(t *testing.T) { Glyphs: DiscGlyphs, Consumes: FullConsumes, SpecOptions: core.SpecOptionsCombo{Label: "Disc", SpecOptions: PlayerOptionsDisc}, - Rotation: GetAplRotation("../../../ui/healing_priest/apls", "disc"), + Rotation: core.GetAplRotation("../../../ui/healing_priest/apls", "disc"), ItemFilter: core.ItemFilter{ WeaponTypes: []proto.WeaponType{ @@ -71,7 +59,7 @@ func TestHoly(t *testing.T) { Glyphs: HolyGlyphs, Consumes: FullConsumes, SpecOptions: core.SpecOptionsCombo{Label: "Holy", SpecOptions: PlayerOptionsHoly}, - Rotation: GetAplRotation("../../../ui/healing_priest/apls", "holy"), + Rotation: core.GetAplRotation("../../../ui/healing_priest/apls", "holy"), ItemFilter: core.ItemFilter{ WeaponTypes: []proto.WeaponType{ diff --git a/sim/priest/shadow/shadow_priest_test.go b/sim/priest/shadow/shadow_priest_test.go index 53164dc099..32819e9a8c 100644 --- a/sim/priest/shadow/shadow_priest_test.go +++ b/sim/priest/shadow/shadow_priest_test.go @@ -1,8 +1,6 @@ package shadow import ( - "log" - "os" "testing" _ "github.com/wowsims/wotlk/sim/common" // imported to get caster sets included. @@ -14,16 +12,6 @@ func init() { RegisterShadowPriest() } -func GetAplRotation(dir string, file string) core.RotationCombo { - filePath := dir + "/" + file + ".apl.json" - data, err := os.ReadFile(filePath) - if err != nil { - log.Fatalf("failed to load apl json file: %s, %s", filePath, err) - } - - return core.RotationCombo{Label: file, Rotation: core.APLRotationFromJsonString(string(data))} -} - func TestShadow(t *testing.T) { core.RunTestSuite(t, t.Name(), core.FullCharacterTestSuiteGenerator(core.CharacterSuiteConfig{ Class: proto.Class_ClassPriest, @@ -41,7 +29,7 @@ func TestShadow(t *testing.T) { {Label: "Clipping", SpecOptions: PlayerOptionsClipping}, }, - Rotation: GetAplRotation("../../../ui/shadow_priest/apls", "default"), + Rotation: core.GetAplRotation("../../../ui/shadow_priest/apls", "default"), ItemFilter: core.ItemFilter{ WeaponTypes: []proto.WeaponType{ diff --git a/sim/priest/smite/smite_priest_test.go b/sim/priest/smite/smite_priest_test.go index 0af86ed9e4..771c73db8e 100644 --- a/sim/priest/smite/smite_priest_test.go +++ b/sim/priest/smite/smite_priest_test.go @@ -1,8 +1,6 @@ package smite import ( - "log" - "os" "testing" _ "github.com/wowsims/wotlk/sim/common" // imported to get caster sets included. @@ -14,16 +12,6 @@ func init() { RegisterSmitePriest() } -func GetAplRotation(dir string, file string) core.RotationCombo { - filePath := dir + "/" + file + ".apl.json" - data, err := os.ReadFile(filePath) - if err != nil { - log.Fatalf("failed to load apl json file: %s, %s", filePath, err) - } - - return core.RotationCombo{Label: file, Rotation: core.APLRotationFromJsonString(string(data))} -} - func TestSmite(t *testing.T) { core.RunTestSuite(t, t.Name(), core.FullCharacterTestSuiteGenerator(core.CharacterSuiteConfig{ Class: proto.Class_ClassPriest, @@ -34,7 +22,7 @@ func TestSmite(t *testing.T) { Glyphs: DefaultGlyphs, Consumes: FullConsumes, SpecOptions: core.SpecOptionsCombo{Label: "Basic", SpecOptions: PlayerOptionsBasic}, - Rotation: GetAplRotation("../../../ui/smite_priest/apls", "default"), + Rotation: core.GetAplRotation("../../../ui/smite_priest/apls", "default"), ItemFilter: core.ItemFilter{ WeaponTypes: []proto.WeaponType{ diff --git a/sim/rogue/rogue_test.go b/sim/rogue/rogue_test.go index 1b7880a19a..21d5a183dd 100644 --- a/sim/rogue/rogue_test.go +++ b/sim/rogue/rogue_test.go @@ -1,8 +1,6 @@ package rogue import ( - "log" - "os" "testing" _ "github.com/wowsims/wotlk/sim/common" // imported to get item effects included. @@ -14,16 +12,6 @@ func init() { RegisterRogue() } -func GetAplRotation(dir string, file string) core.RotationCombo { - filePath := dir + "/" + file + ".apl.json" - data, err := os.ReadFile(filePath) - if err != nil { - log.Fatalf("failed to load apl json file: %s, %s", filePath, err) - } - - return core.RotationCombo{Label: file, Rotation: core.APLRotationFromJsonString(string(data))} -} - func TestCombat(t *testing.T) { core.RunTestSuite(t, t.Name(), core.FullCharacterTestSuiteGenerator(core.CharacterSuiteConfig{ Class: proto.Class_ClassRogue, @@ -39,11 +27,11 @@ func TestCombat(t *testing.T) { {Label: "MH Instant OH Instant", SpecOptions: PlayerOptionsCombatII}, {Label: "MH Deadly OH Deadly", SpecOptions: PlayerOptionsCombatDD}, }, - Rotation: GetAplRotation("../../ui/rogue/apls", "combat_expose"), + Rotation: core.GetAplRotation("../../ui/rogue/apls", "combat_expose"), OtherRotations: []core.RotationCombo{ - GetAplRotation("../../ui/rogue/apls", "combat_cleave_snd"), - GetAplRotation("../../ui/rogue/apls", "combat_cleave_snd_expose"), - GetAplRotation("../../ui/rogue/apls", "fan_aoe"), + core.GetAplRotation("../../ui/rogue/apls", "combat_cleave_snd"), + core.GetAplRotation("../../ui/rogue/apls", "combat_cleave_snd_expose"), + core.GetAplRotation("../../ui/rogue/apls", "fan_aoe"), }, ItemFilter: core.ItemFilter{ ArmorType: proto.ArmorType_ArmorTypeLeather, @@ -71,11 +59,11 @@ func TestAssassination(t *testing.T) { {Label: "MH Instant OH Instant", SpecOptions: PlayerOptionsAssassinationII}, {Label: "MH Deadly OH Deadly", SpecOptions: PlayerOptionsAssassinationDD}, }, - Rotation: GetAplRotation("../../ui/rogue/apls", "rupture_mutilate_expose"), + Rotation: core.GetAplRotation("../../ui/rogue/apls", "rupture_mutilate_expose"), OtherRotations: []core.RotationCombo{ - GetAplRotation("../../ui/rogue/apls", "rupture_mutilate"), - GetAplRotation("../../ui/rogue/apls", "mutilate"), - GetAplRotation("../../ui/rogue/apls", "mutilate_expose"), + core.GetAplRotation("../../ui/rogue/apls", "rupture_mutilate"), + core.GetAplRotation("../../ui/rogue/apls", "mutilate"), + core.GetAplRotation("../../ui/rogue/apls", "mutilate_expose"), }, ItemFilter: core.ItemFilter{ diff --git a/sim/shaman/elemental/elemental_test.go b/sim/shaman/elemental/elemental_test.go index 450d6fc0e3..a558b1b420 100644 --- a/sim/shaman/elemental/elemental_test.go +++ b/sim/shaman/elemental/elemental_test.go @@ -1,8 +1,6 @@ package elemental import ( - "log" - "os" "testing" _ "github.com/wowsims/wotlk/sim/common" @@ -14,16 +12,6 @@ func init() { RegisterElementalShaman() } -func GetAplRotation(dir string, file string) core.RotationCombo { - filePath := dir + "/" + file + ".apl.json" - data, err := os.ReadFile(filePath) - if err != nil { - log.Fatalf("failed to load apl json file: %s, %s", filePath, err) - } - - return core.RotationCombo{Label: file, Rotation: core.APLRotationFromJsonString(string(data))} -} - func TestElemental(t *testing.T) { core.RunTestSuite(t, t.Name(), core.FullCharacterTestSuiteGenerator(core.CharacterSuiteConfig{ Class: proto.Class_ClassShaman, @@ -38,7 +26,7 @@ func TestElemental(t *testing.T) { OtherSpecOptions: []core.SpecOptionsCombo{ {Label: "EleFireElemental", SpecOptions: PlayerOptionsAdaptiveFireElemental}, }, - Rotation: GetAplRotation("../../../ui/elemental_shaman/apls", "default"), + Rotation: core.GetAplRotation("../../../ui/elemental_shaman/apls", "default"), ItemFilter: core.ItemFilter{ WeaponTypes: []proto.WeaponType{ diff --git a/sim/shaman/enhancement/enhancement_test.go b/sim/shaman/enhancement/enhancement_test.go index 44e8dfa4e6..b551c4b117 100644 --- a/sim/shaman/enhancement/enhancement_test.go +++ b/sim/shaman/enhancement/enhancement_test.go @@ -1,8 +1,6 @@ package enhancement import ( - "log" - "os" "testing" _ "github.com/wowsims/wotlk/sim/common" // imported to get item effects included. @@ -14,16 +12,6 @@ func init() { RegisterEnhancementShaman() } -func GetAplRotation(dir string, file string) core.RotationCombo { - filePath := dir + "/" + file + ".apl.json" - data, err := os.ReadFile(filePath) - if err != nil { - log.Fatalf("failed to load apl json file: %s, %s", filePath, err) - } - - return core.RotationCombo{Label: file, Rotation: core.APLRotationFromJsonString(string(data))} -} - func TestEnhancement(t *testing.T) { core.RunTestSuite(t, t.Name(), core.FullCharacterTestSuiteGenerator(core.CharacterSuiteConfig{ Class: proto.Class_ClassShaman, @@ -38,10 +26,10 @@ func TestEnhancement(t *testing.T) { OtherSpecOptions: []core.SpecOptionsCombo{ {Label: "WF", SpecOptions: PlayerOptionsWFWF}, }, - Rotation: GetAplRotation("../../../ui/enhancement_shaman/apls", "default_ft"), + Rotation: core.GetAplRotation("../../../ui/enhancement_shaman/apls", "default_ft"), OtherRotations: []core.RotationCombo{ - GetAplRotation("../../../ui/enhancement_shaman/apls", "default_wf"), - GetAplRotation("../../../ui/enhancement_shaman/apls", "phase_3"), + core.GetAplRotation("../../../ui/enhancement_shaman/apls", "default_wf"), + core.GetAplRotation("../../../ui/enhancement_shaman/apls", "phase_3"), }, ItemFilter: core.ItemFilter{ diff --git a/sim/warlock/warlock_test.go b/sim/warlock/warlock_test.go index 443beade89..9c3dde5e23 100644 --- a/sim/warlock/warlock_test.go +++ b/sim/warlock/warlock_test.go @@ -1,8 +1,6 @@ package warlock import ( - "log" - "os" "testing" _ "github.com/wowsims/wotlk/sim/common" @@ -14,16 +12,6 @@ func init() { RegisterWarlock() } -func GetAplRotation(dir string, file string) core.RotationCombo { - filePath := dir + "/" + file + ".apl.json" - data, err := os.ReadFile(filePath) - if err != nil { - log.Fatalf("failed to load apl json file: %s, %s", filePath, err) - } - - return core.RotationCombo{Label: file, Rotation: core.APLRotationFromJsonString(string(data))} -} - func TestAffliction(t *testing.T) { core.RunTestSuite(t, t.Name(), core.FullCharacterTestSuiteGenerator(core.CharacterSuiteConfig{ Class: proto.Class_ClassWarlock, @@ -53,7 +41,7 @@ func TestDemonology(t *testing.T) { Consumes: FullConsumes, SpecOptions: core.SpecOptionsCombo{Label: "Demonology Warlock", SpecOptions: DefaultDemonologyWarlock}, OtherRotations: []core.RotationCombo{ - GetAplRotation("../../ui/warlock/apls", "demo"), + core.GetAplRotation("../../ui/warlock/apls", "demo"), }, ItemFilter: ItemFilter, @@ -71,7 +59,7 @@ func TestDestruction(t *testing.T) { Consumes: FullConsumes, SpecOptions: core.SpecOptionsCombo{Label: "Destruction Warlock", SpecOptions: DefaultDestroWarlock}, OtherRotations: []core.RotationCombo{ - GetAplRotation("../../ui/warlock/apls", "destro"), + core.GetAplRotation("../../ui/warlock/apls", "destro"), }, ItemFilter: ItemFilter, })) diff --git a/sim/warrior/dps/dps_warrior_test.go b/sim/warrior/dps/dps_warrior_test.go index b7ac11b74c..b14d515960 100644 --- a/sim/warrior/dps/dps_warrior_test.go +++ b/sim/warrior/dps/dps_warrior_test.go @@ -1,8 +1,6 @@ package dps import ( - "log" - "os" "testing" _ "github.com/wowsims/wotlk/sim/common" // imported to get item effects included. @@ -14,16 +12,6 @@ func init() { RegisterDpsWarrior() } -func GetAplRotation(dir string, file string) core.RotationCombo { - filePath := dir + "/" + file + ".apl.json" - data, err := os.ReadFile(filePath) - if err != nil { - log.Fatalf("failed to load apl json file: %s, %s", filePath, err) - } - - return core.RotationCombo{Label: file, Rotation: core.APLRotationFromJsonString(string(data))} -} - func TestFury(t *testing.T) { core.RunTestSuite(t, t.Name(), core.FullCharacterTestSuiteGenerator(core.CharacterSuiteConfig{ Class: proto.Class_ClassWarrior, @@ -37,7 +25,7 @@ func TestFury(t *testing.T) { SpecOptions: core.SpecOptionsCombo{Label: "Basic", SpecOptions: PlayerOptionsFury}, OtherRotations: []core.RotationCombo{ - GetAplRotation("../../../ui/warrior/apls", "fury"), + core.GetAplRotation("../../../ui/warrior/apls", "fury"), }, ItemFilter: core.ItemFilter{ diff --git a/sim/warrior/protection/protection_warrior_test.go b/sim/warrior/protection/protection_warrior_test.go index 26ce584881..3206e6342a 100644 --- a/sim/warrior/protection/protection_warrior_test.go +++ b/sim/warrior/protection/protection_warrior_test.go @@ -1,8 +1,6 @@ package protection import ( - "log" - "os" "testing" _ "github.com/wowsims/wotlk/sim/common" // imported to get item effects included. @@ -14,16 +12,6 @@ func init() { RegisterProtectionWarrior() } -func GetAplRotation(dir string, file string) core.RotationCombo { - filePath := dir + "/" + file + ".apl.json" - data, err := os.ReadFile(filePath) - if err != nil { - log.Fatalf("failed to load apl json file: %s, %s", filePath, err) - } - - return core.RotationCombo{Label: file, Rotation: core.APLRotationFromJsonString(string(data))} -} - func TestProtectionWarrior(t *testing.T) { core.RunTestSuite(t, t.Name(), core.FullCharacterTestSuiteGenerator(core.CharacterSuiteConfig{ Class: proto.Class_ClassWarrior, @@ -35,7 +23,7 @@ func TestProtectionWarrior(t *testing.T) { Glyphs: DefaultGlyphs, Consumes: FullConsumes, SpecOptions: core.SpecOptionsCombo{Label: "Basic", SpecOptions: PlayerOptionsBasic}, - Rotation: GetAplRotation("../../../ui/protection_warrior/apls", "default"), + Rotation: core.GetAplRotation("../../../ui/protection_warrior/apls", "default"), IsTank: true, InFrontOfTarget: true,