diff --git a/sim/rogue/TestAssassination.results b/sim/rogue/TestAssassination.results index e29905f24a..93fd2e94a5 100644 --- a/sim/rogue/TestAssassination.results +++ b/sim/rogue/TestAssassination.results @@ -13,7 +13,7 @@ character_stats_results: { final_stats: 221 final_stats: 0 final_stats: 5504.84 - final_stats: 469.94995 + final_stats: 469.94994 final_stats: 2072.9756 final_stats: 221 final_stats: 94 diff --git a/sim/rogue/TestCombat.results b/sim/rogue/TestCombat.results index 51c0d19251..582389d490 100644 --- a/sim/rogue/TestCombat.results +++ b/sim/rogue/TestCombat.results @@ -13,7 +13,7 @@ character_stats_results: { final_stats: 264 final_stats: 0 final_stats: 5996.3904 - final_stats: 418.94995 + final_stats: 418.94994 final_stats: 2218.9399 final_stats: 264 final_stats: 94 diff --git a/sim/warrior/dps/TestArms.results b/sim/warrior/dps/TestArms.results index 21bde4c852..98e37f5236 100644 --- a/sim/warrior/dps/TestArms.results +++ b/sim/warrior/dps/TestArms.results @@ -929,6 +929,48 @@ dps_results: { tps: 2916.28216 } } +dps_results: { + key: "TestArms-Settings-Human-p1_arms-Basic-arms-FullBuffs-LongMultiTarget" + value: { + dps: 10652.07342 + tps: 10007.49125 + } +} +dps_results: { + key: "TestArms-Settings-Human-p1_arms-Basic-arms-FullBuffs-LongSingleTarget" + value: { + dps: 6733.8157 + tps: 5425.80149 + } +} +dps_results: { + key: "TestArms-Settings-Human-p1_arms-Basic-arms-FullBuffs-ShortSingleTarget" + value: { + dps: 7279.26113 + tps: 5922.37023 + } +} +dps_results: { + key: "TestArms-Settings-Human-p1_arms-Basic-arms-NoBuffs-LongMultiTarget" + value: { + dps: 5528.79397 + tps: 5348.07684 + } +} +dps_results: { + key: "TestArms-Settings-Human-p1_arms-Basic-arms-NoBuffs-LongSingleTarget" + value: { + dps: 3508.72973 + tps: 2830.91293 + } +} +dps_results: { + key: "TestArms-Settings-Human-p1_arms-Basic-arms-NoBuffs-ShortSingleTarget" + value: { + dps: 3700.71515 + tps: 3012.98824 + } +} dps_results: { key: "TestArms-Settings-Orc-p1_arms-Basic--FullBuffs-LongMultiTarget" value: { @@ -971,6 +1013,48 @@ dps_results: { tps: 2997.17387 } } +dps_results: { + key: "TestArms-Settings-Orc-p1_arms-Basic-arms-FullBuffs-LongMultiTarget" + value: { + dps: 10689.87998 + tps: 10049.09221 + } +} +dps_results: { + key: "TestArms-Settings-Orc-p1_arms-Basic-arms-FullBuffs-LongSingleTarget" + value: { + dps: 6785.38856 + tps: 5487.0128 + } +} +dps_results: { + key: "TestArms-Settings-Orc-p1_arms-Basic-arms-FullBuffs-ShortSingleTarget" + value: { + dps: 7379.87823 + tps: 6038.23714 + } +} +dps_results: { + key: "TestArms-Settings-Orc-p1_arms-Basic-arms-NoBuffs-LongMultiTarget" + value: { + dps: 5670.62396 + tps: 5482.18162 + } +} +dps_results: { + key: "TestArms-Settings-Orc-p1_arms-Basic-arms-NoBuffs-LongSingleTarget" + value: { + dps: 3535.77971 + tps: 2856.56853 + } +} +dps_results: { + key: "TestArms-Settings-Orc-p1_arms-Basic-arms-NoBuffs-ShortSingleTarget" + value: { + dps: 3767.68859 + tps: 3083.31246 + } +} dps_results: { key: "TestArms-SwitchInFrontOfTarget-Default" value: { diff --git a/sim/warrior/dps/dps_warrior_test.go b/sim/warrior/dps/dps_warrior_test.go index 3fe66bf497..443d416fc7 100644 --- a/sim/warrior/dps/dps_warrior_test.go +++ b/sim/warrior/dps/dps_warrior_test.go @@ -54,6 +54,10 @@ func TestArms(t *testing.T) { Consumes: FullConsumes, SpecOptions: core.SpecOptionsCombo{Label: "Basic", SpecOptions: PlayerOptionsArms}, + OtherRotations: []core.RotationCombo{ + core.GetAplRotation("../../../ui/warrior/apls", "arms"), + }, + ItemFilter: core.ItemFilter{ ArmorType: proto.ArmorType_ArmorTypePlate, diff --git a/ui/warrior/apls/arms.apl.json b/ui/warrior/apls/arms.apl.json new file mode 100644 index 0000000000..8c4f56b8f5 --- /dev/null +++ b/ui/warrior/apls/arms.apl.json @@ -0,0 +1,25 @@ +{ + "type": "TypeAPL", + "prepullActions": [ + {"action":{"castSpell":{"spellId":{"spellId":2687}}},"doAtValue":{"const":{"val":"-10s"}}}, + {"action":{"castSpell":{"spellId":{"spellId":1719}}},"doAtValue":{"const":{"val":"-3s"}}}, + {"action":{"castSpell":{"spellId":{"spellId":2457}}},"doAtValue":{"const":{"val":"-2s"}}}, + {"action":{"castSpell":{"spellId":{"otherId":"OtherActionPotion"}}},"doAtValue":{"const":{"val":"-0.1s"}}} + ], + "priorityList": [ + {"action":{"autocastOtherCooldowns":{}}}, + {"action":{"condition":{"cmp":{"op":"OpLt","lhs":{"currentRage":{}},"rhs":{"const":{"val":"20"}}}},"castSpell":{"spellId":{"spellId":2687}}}}, + {"action":{"condition":{"isExecutePhase":{"threshold":"E20"}},"castSpell":{"spellId":{"otherId":"OtherActionPotion"}}}}, + {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpGe","lhs":{"currentRage":{}},"rhs":{"const":{"val":"35"}}}},{"cmp":{"op":"OpLe","lhs":{"autoTimeToNext":{}},"rhs":{"const":{"val":"1ms"}}}},{"cmp":{"op":"OpGt","lhs":{"numberTargets":{}},"rhs":{"const":{"val":"1"}}}}]}},"castSpell":{"spellId":{"spellId":47520,"tag":1}}}}, + {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpGe","lhs":{"currentRage":{}},"rhs":{"const":{"val":"40"}}}},{"cmp":{"op":"OpLe","lhs":{"autoTimeToNext":{}},"rhs":{"const":{"val":"1ms"}}}},{"cmp":{"op":"OpEq","lhs":{"numberTargets":{}},"rhs":{"const":{"val":"1"}}}}]}},"castSpell":{"spellId":{"spellId":47450,"tag":1}}}}, + {"hide":true,"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpLt","lhs":{"auraNumStacks":{"sourceUnit":{"type":"CurrentTarget"},"auraId":{"spellId":47467}}},"rhs":{"const":{"val":"5"}}}},{"not":{"val":{"auraIsActive":{"sourceUnit":{"type":"CurrentTarget"},"auraId":{"spellId":8647}}}}}]}},"castSpell":{"spellId":{"spellId":47467}}}}, + {"hide":true,"action":{"condition":{"auraShouldRefresh":{"auraId":{"spellId":47467},"maxOverlap":{"const":{"val":"3s"}}}},"castSpell":{"spellId":{"spellId":47467}}}}, + {"action":{"condition":{"and":{"vals":[{"not":{"val":{"auraIsActive":{"sourceUnit":{"type":"CurrentTarget"},"auraId":{"spellId":47465}}}}},{"cmp":{"op":"OpGt","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"7s"}}}}]}},"castSpell":{"spellId":{"spellId":47465}}}}, + {"action":{"condition":{"auraIsActive":{"auraId":{"spellId":68051}}},"castSpell":{"spellId":{"spellId":7384}}}}, + {"action":{"condition":{"cmp":{"op":"OpGt","lhs":{"currentTime":{}},"rhs":{"const":{"val":"3.5s"}}}},"castSpell":{"spellId":{"spellId":46924}}}}, + {"action":{"condition":{"cmp":{"op":"OpGe","lhs":{"currentRage":{}},"rhs":{"const":{"val":"30"}}}},"castSpell":{"spellId":{"spellId":47486}}}}, + {"action":{"condition":{"cmp":{"op":"OpGe","lhs":{"currentRage":{}},"rhs":{"const":{"val":"15"}}}},"castSpell":{"spellId":{"spellId":47471}}}}, + {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpGe","lhs":{"currentRage":{}},"rhs":{"const":{"val":"15"}}}},{"cmp":{"op":"OpGt","lhs":{"numberTargets":{}},"rhs":{"const":{"val":"1"}}}}]}},"castSpell":{"spellId":{"spellId":47502}}}}, + {"action":{"condition":{"cmp":{"op":"OpGe","lhs":{"currentRage":{}},"rhs":{"const":{"val":"15"}}}},"castSpell":{"spellId":{"spellId":47475}}}} + ] + } \ No newline at end of file diff --git a/ui/warrior/presets.ts b/ui/warrior/presets.ts index 55b172b449..d0eb83339a 100644 --- a/ui/warrior/presets.ts +++ b/ui/warrior/presets.ts @@ -36,6 +36,7 @@ import P3FuryHordeGear from './gear_sets/p3_fury_horde.gear.json'; import FuryApl from './apls/fury.apl.json'; import FurySunderApl from './apls/fury_sunder.apl.json'; +import ArmsApl from './apls/arms.apl.json'; // Preset options for this spec. // Eventually we will import these values for the raid sim too, so its good to @@ -93,6 +94,7 @@ export const ArmsRotation = WarriorRotation.create({ export const ROTATION_FURY = PresetUtils.makePresetAPLRotation('Fury', FuryApl, { talentTree: 1 }); export const ROTATION_FURY_SUNDER = PresetUtils.makePresetAPLRotation('Fury + Sunder', FurySunderApl, { talentTree: 1 }); +export const ROTATION_ARMS = PresetUtils.makePresetAPLRotation('Arms', ArmsApl, { talentTree: 0 }); // 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/warrior/sim.ts b/ui/warrior/sim.ts index 90bc1e58cd..496040dd20 100644 --- a/ui/warrior/sim.ts +++ b/ui/warrior/sim.ts @@ -167,6 +167,7 @@ export class WarriorSimUI extends IndividualSimUI { rotations: [ Presets.ROTATION_FURY, Presets.ROTATION_FURY_SUNDER, + Presets.ROTATION_ARMS, ], // Preset gear configurations that the user can quickly select. gear: [