diff --git a/sim/core/apl_values_aura.go b/sim/core/apl_values_aura.go index 6a5434c6d0..24663beb54 100644 --- a/sim/core/apl_values_aura.go +++ b/sim/core/apl_values_aura.go @@ -25,7 +25,7 @@ func (value *APLValueAuraIsKnown) GetBool(sim *Simulation) bool { return value.aura.Get() != nil } func (value *APLValueAuraIsKnown) String() string { - return fmt.Sprintf("Aura Active(%s)", value.aura.String()) + return fmt.Sprintf("Aura Known(%s)", value.aura.String()) } type APLValueAuraIsActive struct { diff --git a/sim/core/aura.go b/sim/core/aura.go index 39b79f5ce6..cda398beb3 100644 --- a/sim/core/aura.go +++ b/sim/core/aura.go @@ -227,6 +227,10 @@ func (aura *Aura) RemoveStacks(sim *Simulation, stacks int32) { } func (aura *Aura) UpdateExpires(newExpires time.Duration) { + if aura == nil { + return + } + aura.expires = newExpires } diff --git a/sim/death_knight/death_knight.go b/sim/death_knight/death_knight.go index 931cdc68f7..5b0ff5d53b 100644 --- a/sim/death_knight/death_knight.go +++ b/sim/death_knight/death_knight.go @@ -52,6 +52,7 @@ type DeathKnight struct { RaiseDeadAura *core.Aura ThreatOfThassarianAura *core.Aura KillingMachineAura *core.Aura + DarkTransformationAura *core.Aura // Diseases FrostFeverSpell *core.Spell diff --git a/sim/death_knight/glyphs.go b/sim/death_knight/glyphs.go index 89fce588bd..fb33bd7661 100644 --- a/sim/death_knight/glyphs.go +++ b/sim/death_knight/glyphs.go @@ -118,8 +118,9 @@ func (dk *DeathKnight) registerGlyphOfTheLoudHorn() { ClassMask: DeathKnightSpellHornOfWinter, FloatValue: 2.0, }).AttachProcTrigger(core.ProcTrigger{ - Callback: core.CallbackOnCastComplete, - ClassSpellMask: DeathKnightSpellHornOfWinter, + Callback: core.CallbackOnCastComplete, + ClassSpellMask: DeathKnightSpellHornOfWinter, + TriggerImmediately: true, Handler: func(sim *core.Simulation, spell *core.Spell, result *core.SpellResult) { dk.AddRunicPower(sim, 10, rpMetrics) diff --git a/sim/death_knight/items.go b/sim/death_knight/items.go index debdf2bce0..74d66fa48c 100644 --- a/sim/death_knight/items.go +++ b/sim/death_knight/items.go @@ -256,6 +256,7 @@ var ItemSetBattleplateOfCyclopeanDread = core.NewItemSet(core.ItemSet{ Handler: func(sim *core.Simulation, spell *core.Spell, result *core.SpellResult) { if dk.Ghoul.DarkTransformationAura.IsActive() { dk.Ghoul.DarkTransformationAura.UpdateExpires(dk.Ghoul.DarkTransformationAura.ExpiresAt() + time.Second*2) + dk.DarkTransformationAura.UpdateExpires(dk.DarkTransformationAura.ExpiresAt() + time.Second*2) } }, }) diff --git a/sim/death_knight/unholy/TestUnholy.results b/sim/death_knight/unholy/TestUnholy.results index ae582cdc22..7dcf6916f8 100644 --- a/sim/death_knight/unholy/TestUnholy.results +++ b/sim/death_knight/unholy/TestUnholy.results @@ -105,9 +105,9 @@ dps_results: { dps_results: { key: "TestUnholy-AllItems-BattleplateofCyclopeanDread" value: { - dps: 207159.65857 - tps: 145900.00604 - hps: 2536.16146 + dps: 209560.57313 + tps: 147336.23157 + hps: 2539.0913 } } dps_results: { diff --git a/sim/death_knight/unholy/dark_transformation.go b/sim/death_knight/unholy/dark_transformation.go index 5f5d0d78b5..63423ca358 100644 --- a/sim/death_knight/unholy/dark_transformation.go +++ b/sim/death_knight/unholy/dark_transformation.go @@ -14,6 +14,12 @@ The Ghoul's abilities are empowered and take on new functions while the transfor func (uhdk *UnholyDeathKnight) registerDarkTransformation() { actionID := core.ActionID{SpellID: 63560} + uhdk.DarkTransformationAura = uhdk.GetOrRegisterAura(core.Aura{ + Label: "Dark Transformation" + uhdk.Label, + ActionID: actionID, + Duration: time.Second * 30, + }) + uhdk.Ghoul.DarkTransformationAura = core.BlockPrepull(uhdk.Ghoul.GetOrRegisterAura(core.Aura{ Label: "Dark Transformation" + uhdk.Ghoul.Label, ActionID: actionID, @@ -24,11 +30,7 @@ func (uhdk *UnholyDeathKnight) registerDarkTransformation() { Kind: core.SpellMod_DamageDone_Pct, ClassMask: death_knight.GhoulSpellClaw, FloatValue: 0.2, - }).AttachDependentAura(uhdk.GetOrRegisterAura(core.Aura{ - Label: "Dark Transformation" + uhdk.Label, - ActionID: actionID, - Duration: time.Second * 30, - })) + }).AttachDependentAura(uhdk.DarkTransformationAura) uhdk.GetOrRegisterSpell(core.SpellConfig{ ActionID: actionID, diff --git a/ui/death_knight/frost/apls/masterfrost.apl.json b/ui/death_knight/frost/apls/masterfrost.apl.json index 6ad6e55b18..8424e05fc0 100644 --- a/ui/death_knight/frost/apls/masterfrost.apl.json +++ b/ui/death_knight/frost/apls/masterfrost.apl.json @@ -13,15 +13,11 @@ {"action":{"castSpell":{"spellId":{"spellId":126734}}}}, {"action":{"condition":{"and":{"vals":[{"or":{"vals":[{"cmp":{"op":"OpLe","lhs":{"spellTimeToReady":{"spellId":{"spellId":51271}}},"rhs":{"const":{"val":"5"}}}},{"auraIsActive":{"auraId":{"spellId":51271}}},{"cmp":{"op":"OpLe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"65"}}}}]}},{"cmp":{"op":"OpGt","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"10"}}}}]}},"castSpell":{"spellId":{"spellId":46584}}}}, {"action":{"condition":{"or":{"vals":[{"cmp":{"op":"OpLe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"30s"}}}},{"and":{"vals":[{"cmp":{"op":"OpLe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"60s"}}}},{"or":{"vals":[{"auraIsActive":{"auraId":{"spellId":51271}}},{"cmp":{"op":"OpLe","lhs":{"spellTimeToReady":{"spellId":{"spellId":51271}}},"rhs":{"const":{"val":"4"}}}}]}}]}}]}},"castSpell":{"spellId":{"otherId":"OtherActionPotion"}}}}, - {"action":{"condition":{"or":{"vals":[{"cmp":{"op":"OpGt","lhs":{"auraNumStacks":{"auraId":{"spellId":114851}}},"rhs":{"const":{"val":"10"}}}},{"cmp":{"op":"OpLt","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"5"}}}}]}},"castSpell":{"spellId":{"spellId":45529}}}}, - {"action":{"condition":{"and":{"vals":[{"spellIsReady":{"spellId":{"spellId":51271}}},{"cmp":{"op":"OpEq","lhs":{"currentRuneCount":{"runeType":"RuneDeath"}},"rhs":{"const":{"val":"0"}}}},{"cmp":{"op":"OpEq","lhs":{"currentRuneCount":{"runeType":"RuneFrost"}},"rhs":{"const":{"val":"0"}}}}]}},"castSpell":{"spellId":{"spellId":45529}}}}, - {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpLe","lhs":{"numberTargets":{}},"rhs":{"const":{"val":"4"}}}},{"auraIsKnown":{"auraId":{"spellId":138347}}},{"cmp":{"op":"OpGt","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"5"}}}},{"isExecutePhase":{"threshold":"E45"}}]}},"castSpell":{"spellId":{"spellId":114867,"tag":2}}}}, - {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpLe","lhs":{"numberTargets":{}},"rhs":{"const":{"val":"3"}}}},{"not":{"val":{"auraIsKnown":{"auraId":{"spellId":138347}}}}},{"cmp":{"op":"OpGt","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"5"}}}},{"isExecutePhase":{"threshold":"E35"}}]}},"castSpell":{"spellId":{"spellId":114867,"tag":2}}}}, - {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpLe","lhs":{"numberTargets":{}},"rhs":{"const":{"val":"4"}}}},{"auraIsKnown":{"auraId":{"spellId":138347}}},{"isExecutePhase":{"threshold":"E45"}},{"spellIsReady":{"spellId":{"spellId":114867,"tag":2}}},{"cmp":{"op":"OpEq","lhs":{"currentRuneCount":{"runeType":"RuneDeath"}},"rhs":{"const":{"val":"0"}}}},{"cmp":{"op":"OpEq","lhs":{"currentRuneCount":{"runeType":"RuneFrost"}},"rhs":{"const":{"val":"0"}}}}]}},"castSpell":{"spellId":{"spellId":45529}}}}, - {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpLe","lhs":{"numberTargets":{}},"rhs":{"const":{"val":"3"}}}},{"not":{"val":{"auraIsKnown":{"auraId":{"spellId":138347}}}}},{"isExecutePhase":{"threshold":"E35"}},{"spellIsReady":{"spellId":{"spellId":114867,"tag":2}}},{"cmp":{"op":"OpEq","lhs":{"currentRuneCount":{"runeType":"RuneDeath"}},"rhs":{"const":{"val":"0"}}}},{"cmp":{"op":"OpEq","lhs":{"currentRuneCount":{"runeType":"RuneFrost"}},"rhs":{"const":{"val":"0"}}}}]}},"castSpell":{"spellId":{"spellId":45529}}}}, + {"action":{"condition":{"or":{"vals":[{"cmp":{"op":"OpGt","lhs":{"auraNumStacks":{"auraId":{"spellId":114851}}},"rhs":{"const":{"val":"10"}}}},{"cmp":{"op":"OpLt","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"5"}}}},{"and":{"vals":[{"spellIsReady":{"spellId":{"spellId":51271}}},{"cmp":{"op":"OpEq","lhs":{"currentRuneCount":{"runeType":"RuneDeath"}},"rhs":{"const":{"val":"0"}}}},{"cmp":{"op":"OpEq","lhs":{"currentRuneCount":{"runeType":"RuneFrost"}},"rhs":{"const":{"val":"0"}}}}]}}]}},"castSpell":{"spellId":{"spellId":45529}}}}, + {"action":{"condition":{"or":{"vals":[{"and":{"vals":[{"auraIsKnown":{"auraId":{"spellId":138347}}},{"isExecutePhase":{"threshold":"E45"}},{"cmp":{"op":"OpLe","lhs":{"numberTargets":{}},"rhs":{"const":{"val":"4"}}}},{"cmp":{"op":"OpGt","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"5s"}}}}]}},{"and":{"vals":[{"not":{"val":{"auraIsKnown":{"auraId":{"spellId":138347}}}}},{"isExecutePhase":{"threshold":"E35"}},{"cmp":{"op":"OpLe","lhs":{"numberTargets":{}},"rhs":{"const":{"val":"3"}}}},{"cmp":{"op":"OpGt","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"5s"}}}}]}}]}},"castSpell":{"spellId":{"spellId":114867,"tag":2}}}}, + {"action":{"condition":{"or":{"vals":[{"and":{"vals":[{"auraIsKnown":{"auraId":{"spellId":138347}}},{"isExecutePhase":{"threshold":"E45"}},{"spellIsReady":{"spellId":{"spellId":114867,"tag":2}}},{"cmp":{"op":"OpLe","lhs":{"numberTargets":{}},"rhs":{"const":{"val":"4"}}}},{"cmp":{"op":"OpEq","lhs":{"currentRuneCount":{"runeType":"RuneDeath"}},"rhs":{"const":{"val":"0"}}}},{"cmp":{"op":"OpEq","lhs":{"currentRuneCount":{"runeType":"RuneFrost"}},"rhs":{"const":{"val":"0"}}}}]}},{"and":{"vals":[{"not":{"val":{"auraIsKnown":{"auraId":{"spellId":138347}}}}},{"isExecutePhase":{"threshold":"E35"}},{"spellIsReady":{"spellId":{"spellId":114867,"tag":2}}},{"cmp":{"op":"OpLe","lhs":{"numberTargets":{}},"rhs":{"const":{"val":"3"}}}},{"cmp":{"op":"OpEq","lhs":{"currentRuneCount":{"runeType":"RuneDeath"}},"rhs":{"const":{"val":"0"}}}},{"cmp":{"op":"OpEq","lhs":{"currentRuneCount":{"runeType":"RuneFrost"}},"rhs":{"const":{"val":"0"}}}}]}}]}},"castSpell":{"spellId":{"spellId":45529}}}}, {"action":{"condition":{"or":{"vals":[{"and":{"vals":[{"auraIsActive":{"auraId":{"spellId":51124},"includeReactionTime":true}},{"auraIsActive":{"auraId":{"spellId":59052},"includeReactionTime":true}}]}},{"cmp":{"op":"OpGt","lhs":{"currentRunicPower":{}},"rhs":{"const":{"val":"88"}}}}]}},"castSpell":{"spellId":{"spellId":49143,"tag":1}}}}, - {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpEq","lhs":{"numberTargets":{}},"rhs":{"const":{"val":"1"}}}},{"cmp":{"op":"OpEq","lhs":{"currentNonDeathRuneCount":{"runeType":"RuneUnholy"}},"rhs":{"const":{"val":"2"}}}},{"dotIsActive":{"spellId":{"spellId":55078}}},{"dotIsActive":{"spellId":{"spellId":55095}}}]}},"castSpell":{"spellId":{"spellId":49020,"tag":1}}}}, - {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpEq","lhs":{"numberTargets":{}},"rhs":{"const":{"val":"1"}}}},{"auraIsActive":{"auraId":{"spellId":51124},"includeReactionTime":true}},{"cmp":{"op":"OpLt","lhs":{"currentRunicPower":{}},"rhs":{"const":{"val":"76"}}}},{"dotIsActive":{"spellId":{"spellId":55078}}},{"dotIsActive":{"spellId":{"spellId":55095}}},{"auraIsActive":{"auraId":{"spellId":2825,"tag":-1},"includeReactionTime":true}},{"or":{"vals":[{"not":{"val":{"auraIsActive":{"auraId":{"spellId":53365},"includeReactionTime":true}}}},{"not":{"val":{"auraIsActive":{"auraId":{"spellId":51271},"includeReactionTime":true}}}},{"not":{"val":{"anyTrinketStatProcsActive":{"statType2":-1,"statType3":-1}}}},{"not":{"val":{"auraIsActive":{"auraId":{"itemId":76095},"includeReactionTime":true}}}}]}}]}},"castSpell":{"spellId":{"spellId":49020,"tag":1}}}}, + {"action":{"condition":{"or":{"vals":[{"and":{"vals":[{"cmp":{"op":"OpEq","lhs":{"numberTargets":{}},"rhs":{"const":{"val":"1"}}}},{"cmp":{"op":"OpEq","lhs":{"currentNonDeathRuneCount":{"runeType":"RuneUnholy"}},"rhs":{"const":{"val":"2"}}}},{"dotIsActive":{"spellId":{"spellId":55078}}},{"dotIsActive":{"spellId":{"spellId":55095}}}]}},{"and":{"vals":[{"cmp":{"op":"OpEq","lhs":{"numberTargets":{}},"rhs":{"const":{"val":"1"}}}},{"auraIsActive":{"auraId":{"spellId":51124},"includeReactionTime":true}},{"cmp":{"op":"OpLt","lhs":{"currentRunicPower":{}},"rhs":{"const":{"val":"76"}}}},{"dotIsActive":{"spellId":{"spellId":55078}}},{"dotIsActive":{"spellId":{"spellId":55095}}},{"auraIsActive":{"auraId":{"spellId":2825,"tag":-1},"includeReactionTime":true}},{"or":{"vals":[{"not":{"val":{"auraIsActive":{"auraId":{"spellId":53365},"includeReactionTime":true}}}},{"not":{"val":{"auraIsActive":{"auraId":{"spellId":51271},"includeReactionTime":true}}}},{"not":{"val":{"anyTrinketStatProcsActive":{"statType2":-1,"statType3":-1}}}},{"not":{"val":{"auraIsActive":{"auraId":{"itemId":76095},"includeReactionTime":true}}}}]}}]}}]}},"castSpell":{"spellId":{"spellId":49020,"tag":1}}}}, {"action":{"condition":{"auraIsActive":{"auraId":{"spellId":51124},"includeReactionTime":true}},"castSpell":{"spellId":{"spellId":49143,"tag":1}}}}, {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpEq","lhs":{"numberTargets":{}},"rhs":{"const":{"val":"1"}}}},{"auraIsActive":{"auraId":{"spellId":51124},"includeReactionTime":true}},{"cmp":{"op":"OpLt","lhs":{"currentRunicPower":{}},"rhs":{"const":{"val":"76"}}}},{"dotIsActive":{"spellId":{"spellId":55078}}},{"dotIsActive":{"spellId":{"spellId":55095}}},{"cmp":{"op":"OpGt","lhs":{"currentNonDeathRuneCount":{"runeType":"RuneUnholy"}},"rhs":{"const":{"val":"0"}}}}]}},"castSpell":{"spellId":{"spellId":49020,"tag":1}}}}, {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpEq","lhs":{"numberTargets":{}},"rhs":{"const":{"val":"1"}}}},{"auraIsActive":{"auraId":{"spellId":51124},"includeReactionTime":true}},{"cmp":{"op":"OpLt","lhs":{"currentRunicPower":{}},"rhs":{"const":{"val":"76"}}}},{"dotIsActive":{"spellId":{"spellId":55078}}},{"dotIsActive":{"spellId":{"spellId":55095}}},{"or":{"vals":[{"and":{"vals":[{"cmp":{"op":"OpEq","lhs":{"currentRuneCount":{"runeType":"RuneBlood"}},"rhs":{"const":{"val":"0"}}}},{"cmp":{"op":"OpEq","lhs":{"currentRuneCount":{"runeType":"RuneFrost"}},"rhs":{"const":{"val":"0"}}}},{"cmp":{"op":"OpEq","lhs":{"currentNonDeathRuneCount":{"runeType":"RuneUnholy"}},"rhs":{"const":{"val":"1"}}}}]}}]}}]}},"castSpell":{"spellId":{"spellId":45529}}}}, @@ -37,12 +33,11 @@ {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpGt","lhs":{"numberTargets":{}},"rhs":{"const":{"val":"1"}}}},{"cmp":{"op":"OpGt","lhs":{"currentNonDeathRuneCount":{"runeType":"RuneUnholy"}},"rhs":{"const":{"val":"0"}}}}]}},"castSpell":{"spellId":{"spellId":43265}}}}, {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpEq","lhs":{"numberTargets":{}},"rhs":{"const":{"val":"1"}}}},{"cmp":{"op":"OpGt","lhs":{"currentRunicPower":{}},"rhs":{"const":{"val":"76"}}}},{"cmp":{"op":"OpGt","lhs":{"currentNonDeathRuneCount":{"runeType":"RuneUnholy"}},"rhs":{"const":{"val":"0"}}}}]}},"castSpell":{"spellId":{"spellId":49143,"tag":1}}}}, {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpGt","lhs":{"currentNonDeathRuneCount":{"runeType":"RuneUnholy"}},"rhs":{"const":{"val":"0"}}}},{"dotIsActive":{"spellId":{"spellId":55078}}},{"dotIsActive":{"spellId":{"spellId":55095}}},{"cmp":{"op":"OpLt","lhs":{"currentRunicPower":{}},"rhs":{"const":{"val":"77"}}}}]}},"castSpell":{"spellId":{"spellId":49020,"tag":1}}}}, - {"action":{"condition":{"or":{"vals":[{"and":{"vals":[{"auraIsKnown":{"auraId":{"spellId":81229}}},{"cmp":{"op":"OpGe","lhs":{"currentNonDeathRuneCount":{"runeType":"RuneUnholy"}},"rhs":{"const":{"val":"1"}}}},{"or":{"vals":[{"cmp":{"op":"OpEq","lhs":{"currentRuneCount":{"runeType":"RuneBlood"}},"rhs":{"const":{"val":"0"}}}},{"cmp":{"op":"OpEq","lhs":{"currentRuneCount":{"runeType":"RuneFrost"}},"rhs":{"const":{"val":"0"}}}}]}}]}}]}},"castSpell":{"spellId":{"spellId":49143,"tag":1}}}}, + {"action":{"condition":{"and":{"vals":[{"auraIsKnown":{"auraId":{"spellId":81229}}},{"cmp":{"op":"OpGe","lhs":{"currentNonDeathRuneCount":{"runeType":"RuneUnholy"}},"rhs":{"const":{"val":"1"}}}},{"or":{"vals":[{"cmp":{"op":"OpEq","lhs":{"currentRuneCount":{"runeType":"RuneBlood"}},"rhs":{"const":{"val":"0"}}}},{"cmp":{"op":"OpEq","lhs":{"currentRuneCount":{"runeType":"RuneFrost"}},"rhs":{"const":{"val":"0"}}}}]}}]}},"castSpell":{"spellId":{"spellId":49143,"tag":1}}}}, {"action":{"castSpell":{"spellId":{"spellId":49184}}}}, {"action":{"condition":{"and":{"vals":[{"or":{"vals":[{"auraIsActive":{"auraId":{"spellId":51271}}},{"cmp":{"op":"OpGt","lhs":{"numberTargets":{}},"rhs":{"const":{"val":"2"}}}}]}},{"cmp":{"op":"OpEq","lhs":{"currentRuneCount":{"runeType":"RuneFrost"}},"rhs":{"const":{"val":"0"}}}},{"cmp":{"op":"OpEq","lhs":{"currentRuneCount":{"runeType":"RuneDeath"}},"rhs":{"const":{"val":"0"}}}}]}},"castSpell":{"spellId":{"spellId":45529}}}}, - {"action":{"castSpell":{"spellId":{"spellId":50613}}}}, - {"action":{"condition":{"and":{"vals":[{"auraIsInactive":{"auraId":{"spellId":2825,"tag":-1},"includeReactionTime":true}},{"auraIsInactive":{"auraId":{"spellId":51271},"includeReactionTime":true}},{"not":{"val":{"anyTrinketStatProcsActive":{"statType2":7,"statType3":-1}}}},{"auraIsInactive":{"auraId":{"itemId":76095},"includeReactionTime":true}},{"auraIsInactive":{"auraId":{"spellId":53365},"includeReactionTime":true}}]}},"castSpell":{"spellId":{"spellId":57330}}}}, - {"action":{"condition":{"cmp":{"op":"OpGe","lhs":{"math":{"op":"OpAdd","lhs":{"currentTime":{}},"rhs":{"remainingTime":{}}}},"rhs":{"const":{"val":"235s"}}}},"castSpell":{"spellId":{"spellId":57330}}}}, + {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"currentRunicPower":{}},"rhs":{"math":{"op":"OpSub","lhs":{"maxRunicPower":{}},"rhs":{"const":{"val":"18"}}}}}},"castSpell":{"spellId":{"spellId":50613}}}}, + {"action":{"condition":{"and":{"vals":[{"or":{"vals":[{"and":{"vals":[{"auraIsInactive":{"auraId":{"spellId":2825,"tag":-1},"includeReactionTime":true}},{"auraIsInactive":{"auraId":{"spellId":51271},"includeReactionTime":true}},{"not":{"val":{"anyTrinketStatProcsActive":{"statType2":7,"statType3":-1}}}},{"auraIsInactive":{"auraId":{"itemId":76095},"includeReactionTime":true}},{"auraIsInactive":{"auraId":{"spellId":53365},"includeReactionTime":true}}]}},{"cmp":{"op":"OpGe","lhs":{"math":{"op":"OpAdd","lhs":{"currentTime":{}},"rhs":{"remainingTime":{}}}},"rhs":{"const":{"val":"235s"}}}}]}},{"or":{"vals":[{"and":{"vals":[{"auraIsKnown":{"auraId":{"spellId":146646}}},{"cmp":{"op":"OpLe","lhs":{"currentRunicPower":{}},"rhs":{"math":{"op":"OpSub","lhs":{"maxRunicPower":{}},"rhs":{"const":{"val":"24"}}}}}}]}},{"and":{"vals":[{"not":{"val":{"auraIsKnown":{"auraId":{"spellId":146646}}}}},{"cmp":{"op":"OpLe","lhs":{"currentRunicPower":{}},"rhs":{"math":{"op":"OpSub","lhs":{"maxRunicPower":{}},"rhs":{"const":{"val":"12"}}}}}}]}}]}}]}},"castSpell":{"spellId":{"spellId":57330}}}}, {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpEq","lhs":{"currentRuneCount":{"runeType":"RuneBlood"}},"rhs":{"const":{"val":"0"}}}},{"cmp":{"op":"OpEq","lhs":{"currentRuneCount":{"runeType":"RuneFrost"}},"rhs":{"const":{"val":"0"}}}},{"cmp":{"op":"OpEq","lhs":{"currentRuneCount":{"runeType":"RuneUnholy"}},"rhs":{"const":{"val":"0"}}}},{"cmp":{"op":"OpLt","lhs":{"currentRunicPower":{}},"rhs":{"const":{"val":"20"}}}}]}},"castSpell":{"spellId":{"spellId":47568}}}}, {"action":{"condition":{"variableRef":{"name":"Plague Leech"}},"castSpell":{"spellId":{"spellId":123693}}}}, {"action":{"condition":{"cmp":{"op":"OpGe","lhs":{"currentRunicPower":{}},"rhs":{"const":{"val":"20"}}}},"castSpell":{"spellId":{"spellId":49143,"tag":1}}}}, diff --git a/ui/death_knight/frost/apls/obliterate.apl.json b/ui/death_knight/frost/apls/obliterate.apl.json index b21647be16..fed7cc7114 100644 --- a/ui/death_knight/frost/apls/obliterate.apl.json +++ b/ui/death_knight/frost/apls/obliterate.apl.json @@ -16,8 +16,7 @@ {"action":{"condition":{"and":{"vals":[{"or":{"vals":[{"isExecutePhase":{"threshold":"E35"}},{"and":{"vals":[{"auraIsKnown":{"auraId":{"spellId":138347}}},{"isExecutePhase":{"threshold":"E45"}}]}}]}},{"cmp":{"op":"OpGt","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"5"}}}}]}},"castSpell":{"spellId":{"spellId":114867,"tag":2}}}}, {"action":{"condition":{"and":{"vals":[{"spellIsReady":{"spellId":{"spellId":114867,"tag":2}}},{"or":{"vals":[{"isExecutePhase":{"threshold":"E35"}},{"and":{"vals":[{"auraIsKnown":{"auraId":{"spellId":138347}}},{"isExecutePhase":{"threshold":"E45"}}]}}]}},{"cmp":{"op":"OpGt","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"5"}}}}]}},"castSpell":{"spellId":{"spellId":45529}}}}, {"action":{"condition":{"or":{"vals":[{"cmp":{"op":"OpLt","lhs":{"dotRemainingTime":{"spellId":{"spellId":55078}}},"rhs":{"const":{"val":"1s"}}}},{"cmp":{"op":"OpLt","lhs":{"dotRemainingTime":{"spellId":{"spellId":55095}}},"rhs":{"const":{"val":"1s"}}}},{"variableRef":{"name":"Plague Leech"}}]}},"castSpell":{"spellId":{"spellId":123693}}}}, - {"action":{"condition":{"or":{"vals":[{"cmp":{"op":"OpGt","lhs":{"auraNumStacks":{"auraId":{"spellId":114851}}},"rhs":{"const":{"val":"10"}}}},{"cmp":{"op":"OpLt","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"5"}}}}]}},"castSpell":{"spellId":{"spellId":45529}}}}, - {"action":{"condition":{"and":{"vals":[{"spellIsReady":{"spellId":{"spellId":51271}}},{"cmp":{"op":"OpEq","lhs":{"currentRuneCount":{"runeType":"RuneDeath"}},"rhs":{"const":{"val":"0"}}}},{"cmp":{"op":"OpEq","lhs":{"currentRuneCount":{"runeType":"RuneFrost"}},"rhs":{"const":{"val":"0"}}}}]}},"castSpell":{"spellId":{"spellId":45529}}}}, + {"action":{"condition":{"or":{"vals":[{"cmp":{"op":"OpGt","lhs":{"auraNumStacks":{"auraId":{"spellId":114851}}},"rhs":{"const":{"val":"10"}}}},{"cmp":{"op":"OpLt","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"5"}}}},{"and":{"vals":[{"spellIsReady":{"spellId":{"spellId":51271}}},{"cmp":{"op":"OpEq","lhs":{"currentRuneCount":{"runeType":"RuneDeath"}},"rhs":{"const":{"val":"0"}}}},{"cmp":{"op":"OpEq","lhs":{"currentRuneCount":{"runeType":"RuneFrost"}},"rhs":{"const":{"val":"0"}}}}]}}]}},"castSpell":{"spellId":{"spellId":45529}}}}, {"action":{"condition":{"and":{"vals":[{"variableRef":{"name":"Plague Leech"}},{"cmp":{"op":"OpGe","lhs":{"currentTime":{}},"rhs":{"const":{"val":"25"}}}}]}},"castSpell":{"spellId":{"spellId":123693}}}}, {"action":{"condition":{"or":{"vals":[{"not":{"val":{"dotIsActive":{"spellId":{"spellId":55078}}}}},{"not":{"val":{"dotIsActive":{"spellId":{"spellId":55095}}}}}]}},"castSpell":{"spellId":{"spellId":77575}}}}, {"action":{"condition":{"or":{"vals":[{"not":{"val":{"dotIsActive":{"spellId":{"spellId":55078}}}}},{"not":{"val":{"dotIsActive":{"spellId":{"spellId":55095}}}}}]}},"castSpell":{"spellId":{"spellId":115989}}}}, @@ -25,15 +24,11 @@ {"action":{"condition":{"not":{"val":{"dotIsActive":{"spellId":{"spellId":55078}}}}},"castSpell":{"spellId":{"spellId":45462,"tag":1}}}}, {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpGe","lhs":{"numberTargets":{}},"rhs":{"const":{"val":"3"}}}},{"not":{"val":{"dotIsActive":{"targetUnit":{"type":"Target","index":1},"spellId":{"spellId":55078}}}}},{"cmp":{"op":"OpGe","lhs":{"remainingTime":{}},"rhs":{"math":{"op":"OpAdd","lhs":{"dotRemainingTime":{"targetUnit":{"type":"Target","index":1},"spellId":{"spellId":55078}}},"rhs":{"const":{"val":"15"}}}}}}]}},"castSpell":{"spellId":{"spellId":50842}}}}, {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpLe","lhs":{"numberTargets":{}},"rhs":{"const":{"val":"3"}}}},{"auraIsActive":{"auraId":{"spellId":51124},"includeReactionTime":true}}]}},"castSpell":{"spellId":{"spellId":49020,"tag":1}}}}, - {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpLe","lhs":{"numberTargets":{}},"rhs":{"const":{"val":"3"}}}},{"auraIsActive":{"auraId":{"spellId":51124},"includeReactionTime":true}},{"variableRef":{"name":"Blood Tap"}}]}},"castSpell":{"spellId":{"spellId":45529}}}}, - {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpGe","lhs":{"numberTargets":{}},"rhs":{"const":{"val":"4"}}}},{"and":{"vals":[{"cmp":{"op":"OpEq","lhs":{"currentRuneCount":{"runeType":"RuneFrost"}},"rhs":{"const":{"val":"0"}}}},{"cmp":{"op":"OpEq","lhs":{"currentRuneCount":{"runeType":"RuneDeath"}},"rhs":{"const":{"val":"0"}}}}]}}]}},"castSpell":{"spellId":{"spellId":45529}}}}, - {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpLe","lhs":{"numberTargets":{}},"rhs":{"const":{"val":"3"}}}},{"cmp":{"op":"OpGt","lhs":{"currentRunicPower":{}},"rhs":{"const":{"val":"76"}}}}]}},"castSpell":{"spellId":{"spellId":49143,"tag":1}}}}, - {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpGe","lhs":{"numberTargets":{}},"rhs":{"const":{"val":"4"}}}},{"cmp":{"op":"OpGt","lhs":{"currentRunicPower":{}},"rhs":{"const":{"val":"88"}}}}]}},"castSpell":{"spellId":{"spellId":49143,"tag":1}}}}, - {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpEq","lhs":{"numberTargets":{}},"rhs":{"const":{"val":"1"}}}},{"or":{"vals":[{"cmp":{"op":"OpEq","lhs":{"currentRuneCount":{"runeType":"RuneBlood"}},"rhs":{"const":{"val":"2"}}}},{"cmp":{"op":"OpEq","lhs":{"currentRuneCount":{"runeType":"RuneFrost"}},"rhs":{"const":{"val":"2"}}}},{"cmp":{"op":"OpEq","lhs":{"currentRuneCount":{"runeType":"RuneUnholy"}},"rhs":{"const":{"val":"2"}}}}]}}]}},"castSpell":{"spellId":{"spellId":49020,"tag":1}}}}, - {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpGe","lhs":{"numberTargets":{}},"rhs":{"const":{"val":"4"}}}},{"auraIsActive":{"auraId":{"spellId":51124},"includeReactionTime":true}},{"cmp":{"op":"OpGe","lhs":{"currentNonDeathRuneCount":{"runeType":"RuneUnholy"}},"rhs":{"const":{"val":"1"}}}}]}},"castSpell":{"spellId":{"spellId":49020,"tag":1}}}}, + {"action":{"condition":{"or":{"vals":[{"and":{"vals":[{"cmp":{"op":"OpLe","lhs":{"numberTargets":{}},"rhs":{"const":{"val":"3"}}}},{"auraIsActive":{"auraId":{"spellId":51124},"includeReactionTime":true}},{"variableRef":{"name":"Blood Tap"}}]}},{"and":{"vals":[{"cmp":{"op":"OpGe","lhs":{"numberTargets":{}},"rhs":{"const":{"val":"4"}}}},{"and":{"vals":[{"cmp":{"op":"OpEq","lhs":{"currentRuneCount":{"runeType":"RuneFrost"}},"rhs":{"const":{"val":"0"}}}},{"cmp":{"op":"OpEq","lhs":{"currentRuneCount":{"runeType":"RuneDeath"}},"rhs":{"const":{"val":"0"}}}}]}}]}}]}},"castSpell":{"spellId":{"spellId":45529}}}}, + {"action":{"condition":{"or":{"vals":[{"and":{"vals":[{"cmp":{"op":"OpLe","lhs":{"numberTargets":{}},"rhs":{"const":{"val":"3"}}}},{"cmp":{"op":"OpGt","lhs":{"currentRunicPower":{}},"rhs":{"const":{"val":"76"}}}}]}},{"and":{"vals":[{"cmp":{"op":"OpGe","lhs":{"numberTargets":{}},"rhs":{"const":{"val":"4"}}}},{"cmp":{"op":"OpGt","lhs":{"currentRunicPower":{}},"rhs":{"const":{"val":"88"}}}}]}}]}},"castSpell":{"spellId":{"spellId":49143,"tag":1}}}}, + {"action":{"condition":{"or":{"vals":[{"and":{"vals":[{"cmp":{"op":"OpEq","lhs":{"numberTargets":{}},"rhs":{"const":{"val":"1"}}}},{"or":{"vals":[{"cmp":{"op":"OpEq","lhs":{"currentRuneCount":{"runeType":"RuneBlood"}},"rhs":{"const":{"val":"2"}}}},{"cmp":{"op":"OpEq","lhs":{"currentRuneCount":{"runeType":"RuneFrost"}},"rhs":{"const":{"val":"2"}}}},{"cmp":{"op":"OpEq","lhs":{"currentRuneCount":{"runeType":"RuneUnholy"}},"rhs":{"const":{"val":"2"}}}}]}}]}},{"and":{"vals":[{"cmp":{"op":"OpGe","lhs":{"numberTargets":{}},"rhs":{"const":{"val":"4"}}}},{"auraIsActive":{"auraId":{"spellId":51124},"includeReactionTime":true}},{"cmp":{"op":"OpGe","lhs":{"currentNonDeathRuneCount":{"runeType":"RuneUnholy"}},"rhs":{"const":{"val":"1"}}}}]}}]}},"castSpell":{"spellId":{"spellId":49020,"tag":1}}}}, {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpGe","lhs":{"numberTargets":{}},"rhs":{"const":{"val":"4"}}}},{"cmp":{"op":"OpEq","lhs":{"currentNonDeathRuneCount":{"runeType":"RuneUnholy"}},"rhs":{"const":{"val":"2"}}}}]}},"castSpell":{"spellId":{"spellId":43265}}}}, - {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpGt","lhs":{"numberTargets":{}},"rhs":{"const":{"val":"1"}}}},{"or":{"vals":[{"cmp":{"op":"OpEq","lhs":{"currentRuneCount":{"runeType":"RuneBlood"}},"rhs":{"const":{"val":"2"}}}},{"cmp":{"op":"OpEq","lhs":{"currentRuneCount":{"runeType":"RuneFrost"}},"rhs":{"const":{"val":"2"}}}}]}}]}},"castSpell":{"spellId":{"spellId":49184}}}}, - {"action":{"condition":{"auraIsActive":{"auraId":{"spellId":59052},"includeReactionTime":true}},"castSpell":{"spellId":{"spellId":49184}}}}, + {"action":{"condition":{"or":{"vals":[{"and":{"vals":[{"cmp":{"op":"OpGt","lhs":{"numberTargets":{}},"rhs":{"const":{"val":"1"}}}},{"or":{"vals":[{"cmp":{"op":"OpEq","lhs":{"currentRuneCount":{"runeType":"RuneBlood"}},"rhs":{"const":{"val":"2"}}}},{"cmp":{"op":"OpEq","lhs":{"currentRuneCount":{"runeType":"RuneFrost"}},"rhs":{"const":{"val":"2"}}}}]}}]}},{"auraIsActive":{"auraId":{"spellId":59052},"includeReactionTime":true}}]}},"castSpell":{"spellId":{"spellId":49184}}}}, {"action":{"condition":{"or":{"vals":[{"cmp":{"op":"OpLt","lhs":{"dotRemainingTime":{"spellId":{"spellId":55078}}},"rhs":{"const":{"val":"3s"}}}},{"cmp":{"op":"OpLt","lhs":{"dotRemainingTime":{"spellId":{"spellId":55095}}},"rhs":{"const":{"val":"3s"}}}}]}},"castSpell":{"spellId":{"spellId":77575}}}}, {"action":{"condition":{"cmp":{"op":"OpLt","lhs":{"dotRemainingTime":{"spellId":{"spellId":55078}}},"rhs":{"const":{"val":"3s"}}}},"castSpell":{"spellId":{"spellId":45462,"tag":1}}}}, {"action":{"condition":{"cmp":{"op":"OpLt","lhs":{"dotRemainingTime":{"spellId":{"spellId":55095}}},"rhs":{"const":{"val":"3s"}}}},"castSpell":{"spellId":{"spellId":49184}}}}, @@ -45,7 +40,8 @@ {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpEq","lhs":{"currentRuneCount":{"runeType":"RuneBlood"}},"rhs":{"const":{"val":"0"}}}},{"cmp":{"op":"OpEq","lhs":{"currentRuneCount":{"runeType":"RuneFrost"}},"rhs":{"const":{"val":"0"}}}},{"cmp":{"op":"OpLe","lhs":{"currentRuneCount":{"runeType":"RuneUnholy"}},"rhs":{"const":{"val":"0"}}}},{"auraIsInactive":{"auraId":{"spellId":2825,"tag":-1},"includeReactionTime":true}}]}},"castSpell":{"spellId":{"spellId":47568}}}}, {"action":{"castSpell":{"spellId":{"spellId":123693}}}}, {"action":{"castSpell":{"spellId":{"spellId":49143,"tag":1}}}}, - {"action":{"castSpell":{"spellId":{"spellId":57330}}}} + {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"currentRunicPower":{}},"rhs":{"math":{"op":"OpSub","lhs":{"maxRunicPower":{}},"rhs":{"const":{"val":"18"}}}}}},"castSpell":{"spellId":{"spellId":50613}}}}, + {"action":{"condition":{"or":{"vals":[{"and":{"vals":[{"auraIsKnown":{"auraId":{"spellId":146646}}},{"cmp":{"op":"OpLe","lhs":{"currentRunicPower":{}},"rhs":{"math":{"op":"OpSub","lhs":{"maxRunicPower":{}},"rhs":{"const":{"val":"24"}}}}}}]}},{"and":{"vals":[{"not":{"val":{"auraIsKnown":{"auraId":{"spellId":146646}}}}},{"cmp":{"op":"OpLe","lhs":{"currentRunicPower":{}},"rhs":{"math":{"op":"OpSub","lhs":{"maxRunicPower":{}},"rhs":{"const":{"val":"12"}}}}}}]}}]}},"castSpell":{"spellId":{"spellId":57330}}}} ], "valueVariables": [ {"name":"Plague Leech","value":{"or":{"vals":[{"and":{"vals":[{"cmp":{"op":"OpEq","lhs":{"currentRuneCount":{"runeType":"RuneBlood"}},"rhs":{"const":{"val":"0"}}}},{"cmp":{"op":"OpEq","lhs":{"currentRuneCount":{"runeType":"RuneFrost"}},"rhs":{"const":{"val":"0"}}}}]}},{"and":{"vals":[{"cmp":{"op":"OpEq","lhs":{"currentRuneCount":{"runeType":"RuneBlood"}},"rhs":{"const":{"val":"0"}}}},{"cmp":{"op":"OpEq","lhs":{"currentRuneCount":{"runeType":"RuneUnholy"}},"rhs":{"const":{"val":"0"}}}}]}},{"and":{"vals":[{"cmp":{"op":"OpEq","lhs":{"currentRuneCount":{"runeType":"RuneFrost"}},"rhs":{"const":{"val":"0"}}}},{"cmp":{"op":"OpEq","lhs":{"currentRuneCount":{"runeType":"RuneUnholy"}},"rhs":{"const":{"val":"0"}}}}]}}]}}}, diff --git a/ui/death_knight/frost/gear_sets/p5.2h-obliterate.gear.json b/ui/death_knight/frost/gear_sets/p5.2h-obliterate.gear.json new file mode 100644 index 0000000000..631ca47372 --- /dev/null +++ b/ui/death_knight/frost/gear_sets/p5.2h-obliterate.gear.json @@ -0,0 +1,20 @@ +{ + "items": [ + { "id": 99337, "gems": [95346, 76661], "reforging": 152, "upgradeStep": "UpgradeStepFour" }, + { "id": 105566, "upgradeStep": "UpgradeStepFour" }, + { "id": 105642, "enchant": 4803, "gems": [76661, 76661, 76661], "upgradeStep": "UpgradeStepFour" }, + { "id": 102249, "enchant": 4424, "gems": [76661], "reforging": 153, "upgradeStep": "UpgradeStepFour", "tinker": 4897 }, + { "id": 99335, "enchant": 4419, "gems": [76661, 76661, 76661], "reforging": 166, "upgradeStep": "UpgradeStepFour" }, + { "id": 105456, "enchant": 4415, "gems": [0], "upgradeStep": "UpgradeStepFour" }, + { "id": 99336, "enchant": 4432, "gems": [76661, 76661, 0], "reforging": 166, "upgradeStep": "UpgradeStepFour", "tinker": 4898 }, + { "id": 105533, "gems": [76661, 76641, 76697], "reforging": 139, "upgradeStep": "UpgradeStepFour", "tinker": 4223 }, + { "id": 99338, "enchant": 4823, "gems": [76697, 76697], "upgradeStep": "UpgradeStepFour" }, + { "id": 105478, "enchant": 4426, "gems": [76661], "reforging": 139, "upgradeStep": "UpgradeStepFour" }, + { "id": 105611, "gems": [76661], "reforging": 166, "upgradeStep": "UpgradeStepFour" }, + { "id": 105589, "gems": [76661], "upgradeStep": "UpgradeStepFour" }, + { "id": 105491, "upgradeStep": "UpgradeStepFour" }, + { "id": 105609, "upgradeStep": "UpgradeStepFour" }, + { "id": 105644, "enchant": 3368, "gems": [76661], "upgradeStep": "UpgradeStepFour" }, + {} + ] +} diff --git a/ui/death_knight/frost/gear_sets/p5.masterfrost.gear.json b/ui/death_knight/frost/gear_sets/p5.masterfrost.gear.json new file mode 100644 index 0000000000..fc8f5acd94 --- /dev/null +++ b/ui/death_knight/frost/gear_sets/p5.masterfrost.gear.json @@ -0,0 +1,20 @@ +{ + "items": [ + { "id": 99337, "gems": [95346, 76674], "upgradeStep": "UpgradeStepFour" }, + { "id": 105566, "reforging": 145, "upgradeStep": "UpgradeStepFour" }, + { "id": 99339, "enchant": 4803, "gems": [76674, 76674], "reforging": 160, "upgradeStep": "UpgradeStepFour" }, + { "id": 102249, "enchant": 4424, "gems": [76674], "upgradeStep": "UpgradeStepFour", "tinker": 4897 }, + { "id": 99335, "enchant": 4419, "gems": [76674, 76674, 76674], "upgradeStep": "UpgradeStepFour" }, + { "id": 105456, "enchant": 4415, "gems": [0], "reforging": 145, "upgradeStep": "UpgradeStepFour" }, + { "id": 99336, "enchant": 4432, "gems": [76674, 76674, 0], "reforging": 138, "upgradeStep": "UpgradeStepFour", "tinker": 4898 }, + { "id": 105509, "gems": [76674, 76700, 76700], "upgradeStep": "UpgradeStepFour", "tinker": 4223 }, + { "id": 105565, "enchant": 4823, "gems": [76643, 76643, 76674], "reforging": 145, "upgradeStep": "UpgradeStepFour" }, + { "id": 105563, "enchant": 4429, "gems": [76700], "reforging": 160, "upgradeStep": "UpgradeStepFour" }, + { "id": 105611, "gems": [76674], "reforging": 160, "upgradeStep": "UpgradeStepFour" }, + { "id": 105534, "gems": [76700], "reforging": 138, "upgradeStep": "UpgradeStepFour" }, + { "id": 105491, "upgradeStep": "UpgradeStepFour" }, + { "id": 105609, "upgradeStep": "UpgradeStepFour" }, + { "id": 105460, "enchant": 3368, "gems": [76671], "reforging": 138, "upgradeStep": "UpgradeStepFour" }, + { "id": 105460, "enchant": 3370, "gems": [76674], "reforging": 138, "upgradeStep": "UpgradeStepFour" } + ] +} diff --git a/ui/death_knight/frost/presets.ts b/ui/death_knight/frost/presets.ts index 8ecf1e716d..47322ae10f 100644 --- a/ui/death_knight/frost/presets.ts +++ b/ui/death_knight/frost/presets.ts @@ -14,6 +14,8 @@ import P22HObliterateGear from '../../death_knight/frost/gear_sets/p2.2h-obliter import P2MasterfrostGear from '../../death_knight/frost/gear_sets/p2.masterfrost.gear.json'; import P32HObliterateGear from '../../death_knight/frost/gear_sets/p3.2h-obliterate.gear.json'; import P3MasterfrostGear from '../../death_knight/frost/gear_sets/p3.masterfrost.gear.json'; +import P5MasterfrostGear from '../../death_knight/frost/gear_sets/p5.masterfrost.gear.json'; +import P52HObliterateGear from '../../death_knight/frost/gear_sets/p5.2h-obliterate.gear.json'; import PrebisMasterfrostGear from '../../death_knight/frost/gear_sets/prebis.masterfrost.gear.json'; import Prebis2HObliterateGear from '../../death_knight/frost/gear_sets/prebis.2h-obliterate.gear.json'; @@ -21,6 +23,8 @@ export const P2_2H_OBLITERATE_GEAR_PRESET = PresetUtils.makePresetGear('P2 - 2h export const P2_MASTERFROST_GEAR_PRESET = PresetUtils.makePresetGear('P2 - Masterfrost', P2MasterfrostGear); export const P3_2H_OBLITERATE_GEAR_PRESET = PresetUtils.makePresetGear('P3 - 2h Obliterate', P32HObliterateGear); export const P3_MASTERFROST_GEAR_PRESET = PresetUtils.makePresetGear('P3 - Masterfrost', P3MasterfrostGear); +export const P5_MASTERFROST_GEAR_PRESET = PresetUtils.makePresetGear('P5 (WiP) - Masterfrost', P5MasterfrostGear); +export const P5_2H_OBLITERATE_GEAR_PRESET = PresetUtils.makePresetGear('P5 (WiP) - 2h Obliterate', P52HObliterateGear); export const PREBIS_MASTERFROST_GEAR_PRESET = PresetUtils.makePresetGear('Prebis - Masterfrost', PrebisMasterfrostGear); export const PREBIS_2H_OBLITERATE_GEAR_PRESET = PresetUtils.makePresetGear('Prebis - 2h Obliterate', Prebis2HObliterateGear); diff --git a/ui/death_knight/frost/sim.ts b/ui/death_knight/frost/sim.ts index 37ec7ce702..ffaccabd8a 100644 --- a/ui/death_knight/frost/sim.ts +++ b/ui/death_knight/frost/sim.ts @@ -141,6 +141,8 @@ const SPEC_CONFIG = registerSpecConfig(Spec.SpecFrostDeathKnight, { Presets.P2_2H_OBLITERATE_GEAR_PRESET, Presets.P3_MASTERFROST_GEAR_PRESET, Presets.P3_2H_OBLITERATE_GEAR_PRESET, + Presets.P5_MASTERFROST_GEAR_PRESET, + Presets.P5_2H_OBLITERATE_GEAR_PRESET, ], builds: [ Presets.PRESET_BUILD_P2_MASTERFROST, @@ -167,11 +169,13 @@ const SPEC_CONFIG = registerSpecConfig(Spec.SpecFrostDeathKnight, { 1: Presets.PREBIS_MASTERFROST_GEAR_PRESET.gear, 2: Presets.P2_MASTERFROST_GEAR_PRESET.gear, 3: Presets.P3_MASTERFROST_GEAR_PRESET.gear, + 5: Presets.P5_MASTERFROST_GEAR_PRESET.gear, }, [Faction.Horde]: { 1: Presets.PREBIS_MASTERFROST_GEAR_PRESET.gear, 2: Presets.P2_MASTERFROST_GEAR_PRESET.gear, 3: Presets.P3_MASTERFROST_GEAR_PRESET.gear, + 5: Presets.P5_MASTERFROST_GEAR_PRESET.gear, }, }, otherDefaults: Presets.OtherDefaults, diff --git a/ui/death_knight/unholy/apls/default.apl.json b/ui/death_knight/unholy/apls/default.apl.json index 73e46d4e45..de784a6fd5 100644 --- a/ui/death_knight/unholy/apls/default.apl.json +++ b/ui/death_knight/unholy/apls/default.apl.json @@ -34,7 +34,8 @@ {"action":{"condition":{"or":{"vals":[{"variableRef":{"name":"HolyMoly"}},{"cmp":{"op":"OpLt","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"5s"}}}}]}},"groupReference":{"groupName":"DND/SStrikey"}}}, {"action":{"condition":{"not":{"val":{"and":{"vals":[{"auraIsActive":{"auraId":{"spellId":63560}}},{"or":{"vals":[{"and":{"vals":[{"auraIsKnown":{"auraId":{"spellId":138759}}},{"cmp":{"op":"OpLe","lhs":{"auraRemainingTime":{"auraId":{"spellId":63560}}},"rhs":{"const":{"val":"10s"}}}}]}},{"cmp":{"op":"OpLe","lhs":{"auraRemainingTime":{"auraId":{"spellId":63560}}},"rhs":{"const":{"val":"5s"}}}}]}},{"cmp":{"op":"OpGe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"15s"}}}}]}}}},"castSpell":{"spellId":{"spellId":47541}}}}, {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpGe","lhs":{"currentNonDeathRuneCount":{"runeType":"RuneBlood"}},"rhs":{"const":{"val":"1"}}}},{"cmp":{"op":"OpGe","lhs":{"currentNonDeathRuneCount":{"runeType":"RuneFrost"}},"rhs":{"const":{"val":"1"}}}}]}},"castSpell":{"spellId":{"spellId":85948,"tag":1}}}}, - {"action":{"castSpell":{"spellId":{"spellId":57330}}}}, + {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"currentRunicPower":{}},"rhs":{"math":{"op":"OpSub","lhs":{"maxRunicPower":{}},"rhs":{"const":{"val":"15"}}}}}},"castSpell":{"spellId":{"spellId":50613}}}}, + {"action":{"condition":{"or":{"vals":[{"and":{"vals":[{"auraIsKnown":{"auraId":{"spellId":146646}}},{"cmp":{"op":"OpLe","lhs":{"currentRunicPower":{}},"rhs":{"math":{"op":"OpSub","lhs":{"maxRunicPower":{}},"rhs":{"const":{"val":"20"}}}}}}]}},{"and":{"vals":[{"not":{"val":{"auraIsKnown":{"auraId":{"spellId":146646}}}}},{"cmp":{"op":"OpLe","lhs":{"currentRunicPower":{}},"rhs":{"math":{"op":"OpSub","lhs":{"maxRunicPower":{}},"rhs":{"const":{"val":"10"}}}}}}]}}]}},"castSpell":{"spellId":{"spellId":57330}}}}, {"action":{"condition":{"and":{"vals":[{"variableRef":{"name":"no UD Runies"}},{"cmp":{"op":"OpGe","lhs":{"runeCooldown":{"runeType":"RuneUnholy"}},"rhs":{"const":{"val":"3s"}}}},{"or":{"vals":[{"and":{"vals":[{"cmp":{"op":"OpLe","lhs":{"currentRuneCount":{"runeType":"RuneBlood"}},"rhs":{"const":{"val":"1"}}}},{"cmp":{"op":"OpEq","lhs":{"currentRuneCount":{"runeType":"RuneFrost"}},"rhs":{"const":{"val":"0"}}}},{"cmp":{"op":"OpGe","lhs":{"runeCooldown":{"runeType":"RuneFrost"}},"rhs":{"const":{"val":"3s"}}}}]}},{"and":{"vals":[{"cmp":{"op":"OpLe","lhs":{"currentRuneCount":{"runeType":"RuneFrost"}},"rhs":{"const":{"val":"1"}}}},{"cmp":{"op":"OpEq","lhs":{"currentRuneCount":{"runeType":"RuneBlood"}},"rhs":{"const":{"val":"0"}}}},{"cmp":{"op":"OpGe","lhs":{"runeCooldown":{"runeType":"RuneBlood"}},"rhs":{"const":{"val":"3s"}}}}]}}]}},{"not":{"val":{"spellCanCast":{"spellId":{"spellId":47541}}}}},{"gcdIsReady":{}},{"auraIsInactive":{"auraId":{"spellId":2825,"tag":-1},"includeReactionTime":true}}]}},"castSpell":{"spellId":{"spellId":47568}}}} ], "groups": [ diff --git a/ui/death_knight/unholy/gear_sets/p5.gear.json b/ui/death_knight/unholy/gear_sets/p5.gear.json new file mode 100644 index 0000000000..6506805b98 --- /dev/null +++ b/ui/death_knight/unholy/gear_sets/p5.gear.json @@ -0,0 +1,20 @@ +{ + "items": [ + { "id": 99337, "gems": [95346, 76661], "reforging": 166, "upgradeStep": "UpgradeStepFour" }, + { "id": 105566, "reforging": 167, "upgradeStep": "UpgradeStepFour" }, + { "id": 105642, "enchant": 4803, "gems": [76659, 76661, 76661], "reforging": 167, "upgradeStep": "UpgradeStepFour" }, + { "id": 102249, "enchant": 4424, "gems": [76659], "upgradeStep": "UpgradeStepFour", "tinker": 4897 }, + { "id": 99335, "enchant": 4419, "gems": [76659, 76659, 76661], "reforging": 166, "upgradeStep": "UpgradeStepFour" }, + { "id": 105456, "enchant": 4415, "gems": [0], "reforging": 167, "upgradeStep": "UpgradeStepFour" }, + { "id": 99336, "enchant": 4432, "gems": [76659, 76659, 0], "reforging": 137, "upgradeStep": "UpgradeStepFour", "tinker": 4898 }, + { "id": 105533, "enchant": 4223, "gems": [76659, 76641, 76697], "reforging": 137, "upgradeStep": "UpgradeStepFour", "tinker": 4223 }, + { "id": 99338, "enchant": 4823, "gems": [76697, 76697], "upgradeStep": "UpgradeStepFour" }, + { "id": 105478, "enchant": 4426, "gems": [76659], "reforging": 138, "upgradeStep": "UpgradeStepFour" }, + { "id": 105611, "gems": [76697], "reforging": 159, "upgradeStep": "UpgradeStepFour" }, + { "id": 105589, "gems": [76681], "upgradeStep": "UpgradeStepFour" }, + { "id": 105491, "upgradeStep": "UpgradeStepFour" }, + { "id": 105609, "upgradeStep": "UpgradeStepFour" }, + { "id": 105644, "enchant": 3368, "gems": [76659], "reforging": 167, "upgradeStep": "UpgradeStepFour" }, + {} + ] +} diff --git a/ui/death_knight/unholy/presets.ts b/ui/death_knight/unholy/presets.ts index 254ae718c1..25e2221fa7 100644 --- a/ui/death_knight/unholy/presets.ts +++ b/ui/death_knight/unholy/presets.ts @@ -12,6 +12,7 @@ import P3Build from '../../death_knight/unholy/builds/p3.build.json'; import PrebisBuild from '../../death_knight/unholy/builds/prebis.build.json'; import P2Gear from '../../death_knight/unholy/gear_sets/p2.gear.json'; import P3Gear from '../../death_knight/unholy/gear_sets/p3.gear.json'; +import P5Gear from '../../death_knight/unholy/gear_sets/p5.gear.json'; import PrebisGear from '../../death_knight/unholy/gear_sets/prebis.gear.json'; // Preset options for this spec. @@ -20,6 +21,7 @@ import PrebisGear from '../../death_knight/unholy/gear_sets/prebis.gear.json'; export const PREBIS_GEAR_PRESET = PresetUtils.makePresetGear('Prebis', PrebisGear); export const P2_BIS_GEAR_PRESET = PresetUtils.makePresetGear('P2', P2Gear); export const P3_BIS_GEAR_PRESET = PresetUtils.makePresetGear('P3', P3Gear); +export const P5_BIS_GEAR_PRESET = PresetUtils.makePresetGear('P5 (WiP)', P5Gear); export const DEFAULT_ROTATION_PRESET = PresetUtils.makePresetAPLRotation('Default', DefaultApl); export const FESTERBLIGHT_ROTATION_PRESET = PresetUtils.makePresetAPLRotation('Festerblight', FesterblightApl, { diff --git a/ui/death_knight/unholy/sim.ts b/ui/death_knight/unholy/sim.ts index 8d4bb5963d..90b87d773f 100644 --- a/ui/death_knight/unholy/sim.ts +++ b/ui/death_knight/unholy/sim.ts @@ -125,7 +125,7 @@ const SPEC_CONFIG = registerSpecConfig(Spec.SpecUnholyDeathKnight, { // Preset rotations that the user can quickly select. rotations: [Presets.DEFAULT_ROTATION_PRESET, Presets.FESTERBLIGHT_ROTATION_PRESET], // Preset gear configurations that the user can quickly select. - gear: [Presets.PREBIS_GEAR_PRESET, Presets.P2_BIS_GEAR_PRESET, Presets.P3_BIS_GEAR_PRESET], + gear: [Presets.PREBIS_GEAR_PRESET, Presets.P2_BIS_GEAR_PRESET, Presets.P3_BIS_GEAR_PRESET, Presets.P5_BIS_GEAR_PRESET], builds: [Presets.PREBIS_PRESET, Presets.P2_PRESET, Presets.P3_PRESET], }, @@ -146,11 +146,13 @@ const SPEC_CONFIG = registerSpecConfig(Spec.SpecUnholyDeathKnight, { 1: Presets.PREBIS_GEAR_PRESET.gear, 2: Presets.P2_BIS_GEAR_PRESET.gear, 3: Presets.P3_BIS_GEAR_PRESET.gear, + 5: Presets.P5_BIS_GEAR_PRESET.gear, }, [Faction.Horde]: { 1: Presets.PREBIS_GEAR_PRESET.gear, 2: Presets.P2_BIS_GEAR_PRESET.gear, 3: Presets.P3_BIS_GEAR_PRESET.gear, + 5: Presets.P5_BIS_GEAR_PRESET.gear, }, }, otherDefaults: Presets.OtherDefaults, diff --git a/ui/paladin/retribution/gear_sets/p5.gear.json b/ui/paladin/retribution/gear_sets/p5.gear.json new file mode 100644 index 0000000000..e8b9096f00 --- /dev/null +++ b/ui/paladin/retribution/gear_sets/p5.gear.json @@ -0,0 +1,20 @@ +{ + "items": [ + { "id": 99379, "gems": [95346, 76671], "reforging": 152, "upgradeStep": "UpgradeStepFour" }, + { "id": 105513, "reforging": 137, "upgradeStep": "UpgradeStepFour" }, + { "id": 99373, "enchant": 4803, "gems": [76671, 76671], "reforging": 160, "upgradeStep": "UpgradeStepFour" }, + { "id": 102249, "enchant": 4424, "gems": [76671], "upgradeStep": "UpgradeStepFour", "tinker": 4897 }, + { "id": 99387, "enchant": 4419, "gems": [76671, 76674, 76674], "upgradeStep": "UpgradeStepFour" }, + { "id": 105411, "enchant": 4415, "gems": [0], "reforging": 140, "upgradeStep": "UpgradeStepFour" }, + { "id": 99380, "enchant": 4432, "gems": [76671, 76671, 0], "reforging": 154, "upgradeStep": "UpgradeStepFour", "tinker": 4898 }, + { "id": 105509, "enchant": 4223, "gems": [76674, 76700, 76700], "upgradeStep": "UpgradeStepFour", "tinker": 4223 }, + { "id": 105640, "enchant": 4823, "gems": [76643, 76643, 76671], "upgradeStep": "UpgradeStepFour" }, + { "id": 105531, "enchant": 4429, "gems": [76700], "reforging": 147, "upgradeStep": "UpgradeStepFour" }, + { "id": 105620, "gems": [76700], "reforging": 161, "upgradeStep": "UpgradeStepFour" }, + { "id": 105589, "gems": [76700], "reforging": 154, "upgradeStep": "UpgradeStepFour" }, + { "id": 105491, "upgradeStep": "UpgradeStepFour" }, + { "id": 105609, "upgradeStep": "UpgradeStepFour" }, + { "id": 105610, "enchant": 4444, "gems": [76700], "upgradeStep": "UpgradeStepFour" }, + {} + ] +} diff --git a/ui/paladin/retribution/presets.ts b/ui/paladin/retribution/presets.ts index 24cd75f7fd..c6eb4904c8 100644 --- a/ui/paladin/retribution/presets.ts +++ b/ui/paladin/retribution/presets.ts @@ -7,12 +7,14 @@ import { Stats } from '../../core/proto_utils/stats'; import DefaultApl from './apls/default.apl.json'; import P2_Gear from './gear_sets/p2.gear.json'; import P3_Gear from './gear_sets/p3.gear.json'; +import P5_Gear from './gear_sets/p5.gear.json'; import Preraid_Gear from './gear_sets/preraid.gear.json'; import P2RetBuild from './builds/p2.build.json'; import P3RetBuild from './builds/p3.build.json'; export const P2_GEAR_PRESET = PresetUtils.makePresetGear('P2', P2_Gear); export const P3_GEAR_PRESET = PresetUtils.makePresetGear('P3', P3_Gear); +export const P5_GEAR_PRESET = PresetUtils.makePresetGear('P5 (WiP)', P5_Gear); export const PRERAID_GEAR_PRESET = PresetUtils.makePresetGear('Pre-raid', Preraid_Gear); export const APL_PRESET = PresetUtils.makePresetAPLRotation('Default', DefaultApl); diff --git a/ui/paladin/retribution/sim.ts b/ui/paladin/retribution/sim.ts index 254ea6bbc8..eec2e291d7 100644 --- a/ui/paladin/retribution/sim.ts +++ b/ui/paladin/retribution/sim.ts @@ -154,7 +154,7 @@ const SPEC_CONFIG = registerSpecConfig(Spec.SpecRetributionPaladin, { // Preset talents that the user can quickly select. talents: [Presets.DefaultTalents], // Preset gear configurations that the user can quickly select. - gear: [Presets.P2_GEAR_PRESET, Presets.P3_GEAR_PRESET, Presets.PRERAID_GEAR_PRESET], + gear: [Presets.P2_GEAR_PRESET, Presets.P3_GEAR_PRESET, Presets.P5_GEAR_PRESET, Presets.PRERAID_GEAR_PRESET], builds: [Presets.P2_BUILD_PRESET, Presets.P3_BUILD_PRESET], }, @@ -179,11 +179,13 @@ const SPEC_CONFIG = registerSpecConfig(Spec.SpecRetributionPaladin, { 1: Presets.PRERAID_GEAR_PRESET.gear, 2: Presets.P2_GEAR_PRESET.gear, 3: Presets.P3_GEAR_PRESET.gear, + 5: Presets.P5_GEAR_PRESET.gear, }, [Faction.Horde]: { 1: Presets.PRERAID_GEAR_PRESET.gear, 2: Presets.P2_GEAR_PRESET.gear, 3: Presets.P3_GEAR_PRESET.gear, + 5: Presets.P5_GEAR_PRESET.gear, }, }, },