diff --git a/ui/rogue/apls/P5_Assassination_Backstab.apl.json b/ui/rogue/apls/P5_Assassination_Backstab.apl.json new file mode 100644 index 0000000000..83f4019bd9 --- /dev/null +++ b/ui/rogue/apls/P5_Assassination_Backstab.apl.json @@ -0,0 +1,26 @@ +{ + "type": "TypeAPL", + "prepullActions": [ + {"action":{"activateAura":{"auraId":{"spellId":1787}}},"doAtValue":{"const":{"val":"0s"}}}, + {"action":{"castSpell":{"spellId":{"spellId":20572}}},"doAtValue":{"const":{"val":"-1.5s"}}}, + {"action":{"castSpell":{"spellId":{"itemId":228078}}},"doAtValue":{"const":{"val":"-1.6s"}}}, + {"action":{"castSpell":{"spellId":{"itemId":215162}}},"doAtValue":{"const":{"val":"-0.1s"}}} + ], + "priorityList": [ + {"action":{"condition":{"or":{"vals":[{"and":{"vals":[{"cmp":{"op":"OpLe","lhs":{"currentEnergy":{}},"rhs":{"const":{"val":"10"}}}},{"cmp":{"op":"OpLe","lhs":{"currentComboPoints":{}},"rhs":{"const":{"val":"4"}}}}]}},{"and":{"vals":[{"cmp":{"op":"OpLe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"15"}}}},{"cmp":{"op":"OpLe","lhs":{"currentEnergy":{}},"rhs":{"const":{"val":"40"}}}}]}}]}},"castSpell":{"spellId":{"itemId":7676}}}}, + {"action":{"autocastOtherCooldowns":{}}}, + {"action":{"condition":{"or":{"vals":[{"auraIsActive":{"sourceUnit":{"type":"CurrentTarget"},"auraId":{"spellId":432276}}},{"not":{"val":{"runeIsEquipped":{"runeId":{"spellId":432276}}}}}]}},"castSpell":{"spellId":{"itemId":10646}}}}, + {"action":{"condition":{"or":{"vals":[{"and":{"vals":[{"auraIsActive":{"auraId":{"spellId":6774,"rank":2}}},{"auraIsActive":{"sourceUnit":{"type":"CurrentTarget"},"auraId":{"spellId":432276}}}]}}]}},"castSpell":{"spellId":{"spellId":13877}}}}, + {"action":{"condition":{"cmp":{"op":"OpLe","lhs":{"currentEnergy":{}},"rhs":{"const":{"val":"30"}}}},"castSpell":{"spellId":{"spellId":13750}}}}, + {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpGe","lhs":{"auraNumStacks":{"sourceUnit":{"type":"CurrentTarget"},"auraId":{"spellId":11356,"tag":100,"rank":4}}},"rhs":{"const":{"val":"4"}}}},{"cmp":{"op":"OpLt","lhs":{"currentComboPoints":{}},"rhs":{"const":{"val":"5"}}}},{"cmp":{"op":"OpLe","lhs":{"currentEnergy":{}},"rhs":{"const":{"val":"30"}}}},{"not":{"val":{"auraIsActive":{"auraId":{"spellId":467735}}}}}]}},"castSpell":{"spellId":{"spellId":425012}}}}, + {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpGe","lhs":{"currentEnergy":{}},"rhs":{"const":{"val":"60"}}}},{"auraIsActive":{"auraId":{"spellId":467735}}}]}},"castSpell":{"spellId":{"spellId":11281,"rank":8}}}}, + {"action":{"condition":{"or":{"vals":[{"and":{"vals":[{"cmp":{"op":"OpGe","lhs":{"currentComboPoints":{}},"rhs":{"const":{"val":"5"}}}},{"cmp":{"op":"OpGe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"16"}}}},{"not":{"val":{"auraIsActive":{"sourceUnit":{"type":"CurrentTarget"},"auraId":{"spellId":11275,"rank":6}}}}}]}},{"and":{"vals":[{"cmp":{"op":"OpGe","lhs":{"currentComboPoints":{}},"rhs":{"const":{"val":"3"}}}},{"cmp":{"op":"OpGe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"6"}}}},{"not":{"val":{"auraIsActive":{"sourceUnit":{"type":"CurrentTarget"},"auraId":{"spellId":11275,"rank":6}}}}},{"cmp":{"op":"OpLe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"16"}}}}]}}]}},"castSpell":{"spellId":{"spellId":11275,"rank":6}}}}, + {"action":{"condition":{"or":{"vals":[{"and":{"vals":[{"cmp":{"op":"OpGe","lhs":{"currentComboPoints":{}},"rhs":{"const":{"val":"5"}}}},{"cmp":{"op":"OpLt","lhs":{"auraRemainingTime":{"auraId":{"spellId":6774,"rank":2}}},"rhs":{"const":{"val":"1"}}}},{"cmp":{"op":"OpGe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"10"}}}}]}}]}},"castSpell":{"spellId":{"spellId":6774,"rank":2}}}}, + {"action":{"condition":{"and":{"vals":[{"not":{"val":{"auraIsActive":{"auraId":{"spellId":425096}}}}},{"cmp":{"op":"OpLe","lhs":{"currentComboPoints":{}},"rhs":{"const":{"val":"4"}}}},{"not":{"val":{"auraIsActive":{"auraId":{"spellId":462707}}}}},{"cmp":{"op":"OpGe","lhs":{"currentEnergy":{}},"rhs":{"const":{"val":"30"}}}}]}},"strictSequence":{"actions":[{"castSpell":{"spellId":{"spellId":1856,"rank":1}}},{"castSpell":{"spellId":{"spellId":11269,"rank":6}}}]}}}, + {"action":{"condition":{"or":{"vals":[{"and":{"vals":[{"cmp":{"op":"OpGe","lhs":{"currentComboPoints":{}},"rhs":{"const":{"val":"5"}}}},{"cmp":{"op":"OpGe","lhs":{"auraRemainingTime":{"sourceUnit":{"type":"CurrentTarget"},"auraId":{"spellId":11275,"rank":6}}},"rhs":{"const":{"val":"8"}}}}]}},{"and":{"vals":[{"cmp":{"op":"OpGe","lhs":{"currentComboPoints":{}},"rhs":{"const":{"val":"4"}}}},{"cmp":{"op":"OpLe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"4"}}}}]}}]}},"castSpell":{"spellId":{"spellId":399963}}}}, + {"action":{"condition":{"or":{"vals":[{"cmp":{"op":"OpLe","lhs":{"currentComboPoints":{}},"rhs":{"const":{"val":"4"}}}},{"and":{"vals":[{"cmp":{"op":"OpLe","lhs":{"auraRemainingTime":{"sourceUnit":{"type":"CurrentTarget"},"auraId":{"spellId":11275,"rank":6}}},"rhs":{"const":{"val":"8"}}}}]}}]}},"castSpell":{"spellId":{"spellId":11269,"rank":6}}}}, + {"action":{"condition":{"or":{"vals":[{"cmp":{"op":"OpLe","lhs":{"currentComboPoints":{}},"rhs":{"const":{"val":"4"}}}},{"and":{"vals":[{"cmp":{"op":"OpLe","lhs":{"auraRemainingTime":{"sourceUnit":{"type":"CurrentTarget"},"auraId":{"spellId":11275,"rank":6}}},"rhs":{"const":{"val":"8"}}}}]}}]}},"castSpell":{"spellId":{"spellId":11281,"rank":8}}}}, + {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpGe","lhs":{"auraNumStacks":{"sourceUnit":{"type":"CurrentTarget"},"auraId":{"spellId":11356,"tag":100,"rank":4}}},"rhs":{"const":{"val":"4"}}}}]}},"castSpell":{"spellId":{"spellId":425012}}}}, + {"action":{"condition":{"or":{"vals":[{"auraIsActive":{"sourceUnit":{"type":"CurrentTarget"},"auraId":{"spellId":432276}}},{"not":{"val":{"runeIsEquipped":{"runeId":{"spellId":432276}}}}}]}},"castSpell":{"spellId":{"itemId":18641}}}} + ] +} \ No newline at end of file diff --git a/ui/rogue/apls/P5_Mutilate.apl.json b/ui/rogue/apls/P5_Mutilate.apl.json new file mode 100644 index 0000000000..cbe54c097d --- /dev/null +++ b/ui/rogue/apls/P5_Mutilate.apl.json @@ -0,0 +1,22 @@ +{ + "type": "TypeAPL", + "prepullActions": [ + {"action":{"activateAura":{"auraId":{"spellId":1787}}},"doAtValue":{"const":{"val":"0s"}}}, + {"action":{"castSpell":{"spellId":{"spellId":20572}}},"doAtValue":{"const":{"val":"-1.5s"}}}, + {"action":{"castSpell":{"spellId":{"itemId":228078}}},"doAtValue":{"const":{"val":"-1.6s"}}}, + {"action":{"castSpell":{"spellId":{"itemId":215162}}},"doAtValue":{"const":{"val":"-0.1s"}}} + ], + "priorityList": [ + {"action":{"condition":{"or":{"vals":[{"cmp":{"op":"OpLe","lhs":{"currentEnergy":{}},"rhs":{"const":{"val":"20"}}}},{"and":{"vals":[{"cmp":{"op":"OpLe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"20"}}}},{"cmp":{"op":"OpLe","lhs":{"currentEnergy":{}},"rhs":{"const":{"val":"40"}}}}]}}]}},"castSpell":{"spellId":{"itemId":7676}}}}, + {"action":{"condition":{"or":{"vals":[{"cmp":{"op":"OpLe","lhs":{"currentEnergy":{}},"rhs":{"const":{"val":"20"}}}},{"and":{"vals":[{"cmp":{"op":"OpLe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"20"}}}},{"cmp":{"op":"OpLe","lhs":{"currentEnergy":{}},"rhs":{"const":{"val":"50"}}}}]}}]}},"castSpell":{"spellId":{"itemId":231287}}}}, + {"action":{"autocastOtherCooldowns":{}}}, + {"action":{"condition":{"or":{"vals":[{"and":{"vals":[{"auraIsActive":{"auraId":{"spellId":6774,"rank":2}}},{"auraIsActive":{"auraId":{"spellId":399963}}}]}}]}},"castSpell":{"spellId":{"spellId":13877}}}}, + {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpGe","lhs":{"auraNumStacks":{"sourceUnit":{"type":"CurrentTarget"},"auraId":{"spellId":11356,"tag":100,"rank":4}}},"rhs":{"const":{"val":"4"}}}},{"cmp":{"op":"OpLt","lhs":{"currentComboPoints":{}},"rhs":{"const":{"val":"5"}}}},{"cmp":{"op":"OpLe","lhs":{"currentEnergy":{}},"rhs":{"const":{"val":"70"}}}}]}},"castSpell":{"spellId":{"spellId":425012}}}}, + {"action":{"condition":{"or":{"vals":[{"and":{"vals":[{"cmp":{"op":"OpGe","lhs":{"currentComboPoints":{}},"rhs":{"const":{"val":"1"}}}},{"not":{"val":{"auraIsActive":{"auraId":{"spellId":6774,"rank":2}}}}},{"cmp":{"op":"OpGe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"10"}}}}]}}]}},"castSpell":{"spellId":{"spellId":6774,"rank":2}}}}, + {"action":{"condition":{"and":{"vals":[{"not":{"val":{"auraIsActive":{"auraId":{"spellId":425096}}}}},{"cmp":{"op":"OpEq","lhs":{"currentComboPoints":{}},"rhs":{"const":{"val":"5"}}}},{"spellCanCast":{"spellId":{"spellId":399963}}}]}},"castSpell":{"spellId":{"spellId":1856,"rank":1}}}}, + {"action":{"condition":{"or":{"vals":[{"and":{"vals":[{"cmp":{"op":"OpEq","lhs":{"currentComboPoints":{}},"rhs":{"const":{"val":"5"}}}},{"cmp":{"op":"OpEq","lhs":{"auraNumStacks":{"sourceUnit":{"type":"CurrentTarget"},"auraId":{"spellId":11356,"tag":100,"rank":4}}},"rhs":{"const":{"val":"5"}}}},{"spellCanCast":{"spellId":{"spellId":399963}}},{}]}}]}},"strictSequence":{"actions":[{"castSpell":{"spellId":{"spellId":14177}}},{"castSpell":{"spellId":{"itemId":230250}}},{"castSpell":{"spellId":{"spellId":399963}}},{"castSpell":{"spellId":{"spellId":437349}}}]}}}, + {"action":{"condition":{"or":{"vals":[{"and":{"vals":[{"cmp":{"op":"OpGe","lhs":{"currentComboPoints":{}},"rhs":{"const":{"val":"5"}}}}]}},{"and":{"vals":[{"cmp":{"op":"OpGe","lhs":{"currentComboPoints":{}},"rhs":{"const":{"val":"3"}}}},{"cmp":{"op":"OpLe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"4"}}}}]}},{"and":{"vals":[{"cmp":{"op":"OpGe","lhs":{"currentComboPoints":{}},"rhs":{"const":{"val":"4"}}}},{"cmp":{"op":"OpGe","lhs":{"currentEnergy":{}},"rhs":{"const":{"val":"55"}}}}]}}]}},"castSpell":{"spellId":{"spellId":399963}}}}, + {"action":{"condition":{"or":{"vals":[{"cmp":{"op":"OpLe","lhs":{"currentComboPoints":{}},"rhs":{"const":{"val":"3"}}}}]}},"castSpell":{"spellId":{"spellId":399956}}}}, + {"action":{"castSpell":{"spellId":{"itemId":18641}}}} + ] +} \ No newline at end of file diff --git a/ui/rogue/apls/P5_Mutilate_IEA.apl.json b/ui/rogue/apls/P5_Mutilate_IEA.apl.json new file mode 100644 index 0000000000..3d1f6bbcba --- /dev/null +++ b/ui/rogue/apls/P5_Mutilate_IEA.apl.json @@ -0,0 +1,24 @@ +{ + "type": "TypeAPL", + "prepullActions": [ + {"action":{"activateAura":{"auraId":{"spellId":1787}}},"doAtValue":{"const":{"val":"0s"}}}, + {"action":{"castSpell":{"spellId":{"spellId":20572}}},"doAtValue":{"const":{"val":"-1.5s"}}}, + {"action":{"castSpell":{"spellId":{"itemId":228078}}},"doAtValue":{"const":{"val":"-1.6s"}}}, + {"action":{"castSpell":{"spellId":{"itemId":215162}}},"doAtValue":{"const":{"val":"-0.1s"}}} + ], + "priorityList": [ + {"action":{"condition":{"or":{"vals":[{"cmp":{"op":"OpLe","lhs":{"currentEnergy":{}},"rhs":{"const":{"val":"10"}}}},{"and":{"vals":[{"cmp":{"op":"OpLe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"20"}}}},{"cmp":{"op":"OpLe","lhs":{"currentEnergy":{}},"rhs":{"const":{"val":"40"}}}}]}}]}},"castSpell":{"spellId":{"itemId":7676}}}}, + {"action":{"condition":{"or":{"vals":[{"cmp":{"op":"OpLe","lhs":{"currentEnergy":{}},"rhs":{"const":{"val":"20"}}}},{"and":{"vals":[{"cmp":{"op":"OpLe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"20"}}}},{"cmp":{"op":"OpLe","lhs":{"currentEnergy":{}},"rhs":{"const":{"val":"50"}}}}]}}]}},"castSpell":{"spellId":{"itemId":231287}}}}, + {"action":{"autocastOtherCooldowns":{}}}, + {"action":{"condition":{"or":{"vals":[{"auraIsActive":{"sourceUnit":{"type":"CurrentTarget"},"auraId":{"spellId":432276}}},{"not":{"val":{"runeIsEquipped":{"runeId":{"spellId":432276}}}}}]}},"castSpell":{"spellId":{"itemId":10646}}}}, + {"action":{"condition":{"or":{"vals":[{"and":{"vals":[{"auraIsActive":{"auraId":{"spellId":6774,"rank":2}}},{"auraIsActive":{"sourceUnit":{"type":"CurrentTarget"},"auraId":{"spellId":432276}}}]}}]}},"castSpell":{"spellId":{"spellId":13877}}}}, + {"action":{"condition":{"or":{"vals":[{"and":{"vals":[{"cmp":{"op":"OpGe","lhs":{"currentComboPoints":{}},"rhs":{"const":{"val":"1"}}}},{"cmp":{"op":"OpLe","lhs":{"auraRemainingTime":{"auraId":{"spellId":6774,"rank":2}}},"rhs":{"const":{"val":"1"}}}},{"cmp":{"op":"OpGe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"10"}}}},{"auraIsActive":{"sourceUnit":{"type":"CurrentTarget"},"auraId":{"spellId":11198,"rank":5}}}]}}]}},"castSpell":{"spellId":{"spellId":6774,"rank":2}}}}, + {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpGe","lhs":{"auraNumStacks":{"sourceUnit":{"type":"CurrentTarget"},"auraId":{"spellId":11356,"tag":100,"rank":4}}},"rhs":{"const":{"val":"4"}}}},{"cmp":{"op":"OpLt","lhs":{"currentComboPoints":{}},"rhs":{"const":{"val":"5"}}}},{"cmp":{"op":"OpLe","lhs":{"currentEnergy":{}},"rhs":{"const":{"val":"70"}}}}]}},"castSpell":{"spellId":{"spellId":425012}}}}, + {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpLt","lhs":{"auraRemainingTime":{"sourceUnit":{"type":"CurrentTarget"},"auraId":{"spellId":11198,"rank":5}}},"rhs":{"const":{"val":"3"}}}},{"cmp":{"op":"OpEq","lhs":{"currentComboPoints":{}},"rhs":{"const":{"val":"5"}}}},{"cmp":{"op":"OpGe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"3"}}}}]}},"castSpell":{"spellId":{"spellId":11198,"rank":5}}}}, + {"action":{"condition":{"and":{"vals":[{"not":{"val":{"auraIsActive":{"auraId":{"spellId":425096}}}}},{"cmp":{"op":"OpEq","lhs":{"currentComboPoints":{}},"rhs":{"const":{"val":"5"}}}},{"spellCanCast":{"spellId":{"spellId":399963}}},{"auraIsActive":{"sourceUnit":{"type":"CurrentTarget"},"auraId":{"spellId":11198,"rank":5}}}]}},"castSpell":{"spellId":{"spellId":1856,"rank":1}}}}, + {"action":{"condition":{"or":{"vals":[{"and":{"vals":[{"cmp":{"op":"OpEq","lhs":{"currentComboPoints":{}},"rhs":{"const":{"val":"5"}}}},{"cmp":{"op":"OpEq","lhs":{"auraNumStacks":{"sourceUnit":{"type":"CurrentTarget"},"auraId":{"spellId":11356,"tag":100,"rank":4}}},"rhs":{"const":{"val":"5"}}}},{"spellCanCast":{"spellId":{"spellId":399963}}},{"auraIsActive":{"sourceUnit":{"type":"CurrentTarget"},"auraId":{"spellId":11198,"rank":5}}}]}}]}},"strictSequence":{"actions":[{"castSpell":{"spellId":{"spellId":14177}}},{"castSpell":{"spellId":{"itemId":230250}}},{"castSpell":{"spellId":{"spellId":399963}}}]}}}, + {"action":{"condition":{"or":{"vals":[{"and":{"vals":[{"cmp":{"op":"OpGe","lhs":{"currentComboPoints":{}},"rhs":{"const":{"val":"4"}}}},{"auraIsActive":{"sourceUnit":{"type":"CurrentTarget"},"auraId":{"spellId":11198,"rank":5}}}]}},{"and":{"vals":[{"cmp":{"op":"OpGe","lhs":{"currentComboPoints":{}},"rhs":{"const":{"val":"3"}}}},{"cmp":{"op":"OpLe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"4"}}}},{"auraIsActive":{"sourceUnit":{"type":"CurrentTarget"},"auraId":{"spellId":11198,"rank":5}}}]}}]}},"castSpell":{"spellId":{"spellId":399963}}}}, + {"action":{"condition":{"or":{"vals":[{"cmp":{"op":"OpLe","lhs":{"currentComboPoints":{}},"rhs":{"const":{"val":"3"}}}}]}},"castSpell":{"spellId":{"spellId":399956}}}}, + {"action":{"condition":{"or":{"vals":[{"auraIsActive":{"sourceUnit":{"type":"CurrentTarget"},"auraId":{"spellId":432276}}},{"not":{"val":{"runeIsEquipped":{"runeId":{"spellId":432276}}}}}]}},"castSpell":{"spellId":{"itemId":18641}}}} + ] +} \ No newline at end of file diff --git a/ui/rogue/apls/P5_Saber.apl.json b/ui/rogue/apls/P5_Saber.apl.json new file mode 100644 index 0000000000..c9bb0c109b --- /dev/null +++ b/ui/rogue/apls/P5_Saber.apl.json @@ -0,0 +1,24 @@ +{ + "type": "TypeAPL", + "prepullActions": [ + {"action":{"activateAura":{"auraId":{"spellId":1787}}},"doAtValue":{"const":{"val":"0s"}}}, + {"action":{"castSpell":{"spellId":{"spellId":20572}}},"doAtValue":{"const":{"val":"-1.5s"}}}, + {"action":{"castSpell":{"spellId":{"itemId":228078}}},"doAtValue":{"const":{"val":"-1.6s"}}}, + {"action":{"castSpell":{"spellId":{"itemId":215162}}},"doAtValue":{"const":{"val":"-0.1s"}}} + ], + "priorityList": [ + {"action":{"condition":{"or":{"vals":[{"cmp":{"op":"OpLe","lhs":{"currentEnergy":{}},"rhs":{"const":{"val":"10"}}}},{"and":{"vals":[{"cmp":{"op":"OpLe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"15"}}}},{"cmp":{"op":"OpLe","lhs":{"currentEnergy":{}},"rhs":{"const":{"val":"40"}}}}]}}]}},"castSpell":{"spellId":{"itemId":7676}}}}, + {"action":{"autocastOtherCooldowns":{}}}, + {"action":{"condition":{"or":{"vals":[{"auraIsActive":{"sourceUnit":{"type":"CurrentTarget"},"auraId":{"spellId":432276}}},{"not":{"val":{"runeIsEquipped":{"runeId":{"spellId":432276}}}}}]}},"castSpell":{"spellId":{"itemId":10646}}}}, + {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpLt","lhs":{"currentComboPoints":{}},"rhs":{"const":{"val":"4"}}}},{"or":{"vals":[{"cmp":{"op":"OpLt","lhs":{"auraNumStacks":{"sourceUnit":{"type":"CurrentTarget"},"auraId":{"spellId":424785,"tag":100}}},"rhs":{"const":{"val":"3"}}}},{"cmp":{"op":"OpLt","lhs":{"auraRemainingTime":{"sourceUnit":{"type":"CurrentTarget"},"auraId":{"spellId":424785,"tag":100}}},"rhs":{"const":{"val":"2"}}}}]}},{"cmp":{"op":"OpLt","lhs":{"auraRemainingTime":{"sourceUnit":{"type":"Target"},"auraId":{"spellId":424785,"tag":100}}},"rhs":{"math":{"op":"OpAdd","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"2"}}}}}}]}},"castSpell":{"spellId":{"spellId":424785}}}}, + {"action":{"condition":{"or":{"vals":[{"and":{"vals":[{"auraIsActive":{"auraId":{"spellId":6774,"rank":2}}},{"cmp":{"op":"OpEq","lhs":{"auraNumStacks":{"sourceUnit":{"type":"CurrentTarget"},"auraId":{"spellId":424785,"tag":100}}},"rhs":{"const":{"val":"3"}}}}]}}]}},"castSpell":{"spellId":{"spellId":13877}}}}, + {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpGe","lhs":{"auraNumStacks":{"sourceUnit":{"type":"CurrentTarget"},"auraId":{"spellId":11356,"tag":100,"rank":4}}},"rhs":{"const":{"val":"4"}}}},{"cmp":{"op":"OpLt","lhs":{"currentComboPoints":{}},"rhs":{"const":{"val":"5"}}}},{"cmp":{"op":"OpLe","lhs":{"currentEnergy":{}},"rhs":{"const":{"val":"80"}}}}]}},"castSpell":{"spellId":{"spellId":425012}}}}, + {"action":{"condition":{"or":{"vals":[{"and":{"vals":[{"cmp":{"op":"OpGe","lhs":{"currentComboPoints":{}},"rhs":{"const":{"val":"4"}}}},{"cmp":{"op":"OpLt","lhs":{"auraRemainingTime":{"auraId":{"spellId":6774,"rank":2}}},"rhs":{"const":{"val":"1"}}}},{"cmp":{"op":"OpGe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"20"}}}}]}}]}},"castSpell":{"spellId":{"spellId":6774,"rank":2}}}}, + {"action":{"condition":{"and":{"vals":[{"not":{"val":{"auraIsActive":{"auraId":{"spellId":425096}}}}},{"cmp":{"op":"OpEq","lhs":{"currentComboPoints":{}},"rhs":{"const":{"val":"5"}}}},{"spellCanCast":{"spellId":{"spellId":399963}}}]}},"castSpell":{"spellId":{"spellId":1856,"rank":1}}}}, + {"action":{"condition":{"or":{"vals":[{"and":{"vals":[{"cmp":{"op":"OpEq","lhs":{"currentComboPoints":{}},"rhs":{"const":{"val":"5"}}}},{"cmp":{"op":"OpEq","lhs":{"auraNumStacks":{"sourceUnit":{"type":"CurrentTarget"},"auraId":{"spellId":11356,"tag":100,"rank":4}}},"rhs":{"const":{"val":"5"}}}},{"spellCanCast":{"spellId":{"spellId":399963}}},{}]}}]}},"strictSequence":{"actions":[{"castSpell":{"spellId":{"spellId":14177}}},{"castSpell":{"spellId":{"spellId":399963}}}]}}}, + {"action":{"condition":{"or":{"vals":[{"and":{"vals":[{"cmp":{"op":"OpEq","lhs":{"currentComboPoints":{}},"rhs":{"const":{"val":"5"}}}}]}},{"and":{"vals":[{"cmp":{"op":"OpGe","lhs":{"currentComboPoints":{}},"rhs":{"const":{"val":"3"}}}},{"cmp":{"op":"OpLe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"4"}}}}]}},{"and":{"vals":[{"cmp":{"op":"OpGe","lhs":{"currentComboPoints":{}},"rhs":{"const":{"val":"4"}}}},{"cmp":{"op":"OpGe","lhs":{"currentEnergy":{}},"rhs":{"const":{"val":"70"}}}}]}}]}},"castSpell":{"spellId":{"spellId":399963}}}}, + {"action":{"condition":{"or":{"vals":[{"and":{"vals":[{"cmp":{"op":"OpLt","lhs":{"currentComboPoints":{}},"rhs":{"const":{"val":"5"}}}},{"cmp":{"op":"OpGe","lhs":{"currentEnergy":{}},"rhs":{"const":{"val":"75"}}}},{"cmp":{"op":"OpEq","lhs":{"auraRemainingTime":{"sourceUnit":{"type":"CurrentTarget"},"auraId":{"spellId":424785,"tag":100}}},"rhs":{"const":{"val":"8"}}}}]}},{"and":{"vals":[{"cmp":{"op":"OpLt","lhs":{"currentComboPoints":{}},"rhs":{"const":{"val":"3"}}}},{"cmp":{"op":"OpLe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"4"}}}}]}},{"and":{"vals":[{"cmp":{"op":"OpLe","lhs":{"currentComboPoints":{}},"rhs":{"const":{"val":"2"}}}},{"cmp":{"op":"OpGe","lhs":{"auraRemainingTime":{"sourceUnit":{"type":"CurrentTarget"},"auraId":{"spellId":424785,"tag":100}}},"rhs":{"const":{"val":"8"}}}}]}}]}},"castSpell":{"spellId":{"spellId":11294,"rank":8}}}}, + {"action":{"condition":{"or":{"vals":[{"and":{"vals":[{"cmp":{"op":"OpLt","lhs":{"currentComboPoints":{}},"rhs":{"const":{"val":"5"}}}},{"cmp":{"op":"OpGe","lhs":{"currentEnergy":{}},"rhs":{"const":{"val":"75"}}}}]}},{"cmp":{"op":"OpLe","lhs":{"currentComboPoints":{}},"rhs":{"const":{"val":"2"}}}}]}},"castSpell":{"spellId":{"spellId":424785}}}}, + {"action":{"condition":{"or":{"vals":[{"auraIsActive":{"sourceUnit":{"type":"CurrentTarget"},"auraId":{"spellId":432276}}},{"not":{"val":{"runeIsEquipped":{"runeId":{"spellId":432276}}}}}]}},"castSpell":{"spellId":{"itemId":18641}}}} + ] +} \ No newline at end of file diff --git a/ui/rogue/apls/P5_Saber_IEA.apl.json b/ui/rogue/apls/P5_Saber_IEA.apl.json new file mode 100644 index 0000000000..5dc075d410 --- /dev/null +++ b/ui/rogue/apls/P5_Saber_IEA.apl.json @@ -0,0 +1,25 @@ +{ + "type": "TypeAPL", + "prepullActions": [ + {"action":{"activateAura":{"auraId":{"spellId":1787}}},"doAtValue":{"const":{"val":"0s"}}}, + {"action":{"castSpell":{"spellId":{"spellId":20572}}},"doAtValue":{"const":{"val":"-1.5s"}}}, + {"action":{"castSpell":{"spellId":{"itemId":228078}}},"doAtValue":{"const":{"val":"-1.6s"}}}, + {"action":{"castSpell":{"spellId":{"itemId":215162}}},"doAtValue":{"const":{"val":"-0.1s"}}} + ], + "priorityList": [ + {"action":{"condition":{"or":{"vals":[{"cmp":{"op":"OpLe","lhs":{"currentEnergy":{}},"rhs":{"const":{"val":"10"}}}},{"and":{"vals":[{"cmp":{"op":"OpLe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"15"}}}},{"cmp":{"op":"OpLe","lhs":{"currentEnergy":{}},"rhs":{"const":{"val":"40"}}}}]}}]}},"castSpell":{"spellId":{"itemId":7676}}}}, + {"action":{"autocastOtherCooldowns":{}}}, + {"action":{"condition":{"or":{"vals":[{"auraIsActive":{"sourceUnit":{"type":"CurrentTarget"},"auraId":{"spellId":432276}}},{"not":{"val":{"runeIsEquipped":{"runeId":{"spellId":432276}}}}}]}},"castSpell":{"spellId":{"itemId":10646}}}}, + {"action":{"condition":{"or":{"vals":[{"and":{"vals":[{"cmp":{"op":"OpGe","lhs":{"currentComboPoints":{}},"rhs":{"const":{"val":"1"}}}},{"cmp":{"op":"OpLe","lhs":{"auraRemainingTime":{"auraId":{"spellId":6774,"rank":2}}},"rhs":{"const":{"val":"1"}}}},{"cmp":{"op":"OpGe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"20"}}}},{"auraIsActive":{"sourceUnit":{"type":"CurrentTarget"},"auraId":{"spellId":11198,"rank":5}}}]}}]}},"castSpell":{"spellId":{"spellId":6774,"rank":2}}}}, + {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpLt","lhs":{"currentComboPoints":{}},"rhs":{"const":{"val":"4"}}}},{"or":{"vals":[{"cmp":{"op":"OpLt","lhs":{"auraNumStacks":{"sourceUnit":{"type":"CurrentTarget"},"auraId":{"spellId":424785,"tag":100}}},"rhs":{"const":{"val":"3"}}}},{"cmp":{"op":"OpLt","lhs":{"auraRemainingTime":{"sourceUnit":{"type":"CurrentTarget"},"auraId":{"spellId":424785,"tag":100}}},"rhs":{"const":{"val":"2"}}}}]}},{"cmp":{"op":"OpLt","lhs":{"auraRemainingTime":{"sourceUnit":{"type":"Target"},"auraId":{"spellId":424785,"tag":100}}},"rhs":{"math":{"op":"OpAdd","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"2"}}}}}}]}},"castSpell":{"spellId":{"spellId":424785}}}}, + {"action":{"condition":{"or":{"vals":[{"and":{"vals":[{"auraIsActive":{"auraId":{"spellId":6774,"rank":2}}},{"cmp":{"op":"OpEq","lhs":{"auraNumStacks":{"sourceUnit":{"type":"CurrentTarget"},"auraId":{"spellId":424785,"tag":100}}},"rhs":{"const":{"val":"3"}}}}]}}]}},"castSpell":{"spellId":{"spellId":13877}}}}, + {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpGe","lhs":{"auraNumStacks":{"sourceUnit":{"type":"CurrentTarget"},"auraId":{"spellId":11356,"tag":100,"rank":4}}},"rhs":{"const":{"val":"4"}}}},{"cmp":{"op":"OpLt","lhs":{"currentComboPoints":{}},"rhs":{"const":{"val":"5"}}}},{"cmp":{"op":"OpLe","lhs":{"currentEnergy":{}},"rhs":{"const":{"val":"80"}}}}]}},"castSpell":{"spellId":{"spellId":425012}}}}, + {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpLt","lhs":{"auraRemainingTime":{"sourceUnit":{"type":"CurrentTarget"},"auraId":{"spellId":11198,"rank":5}}},"rhs":{"const":{"val":"3"}}}},{"cmp":{"op":"OpEq","lhs":{"currentComboPoints":{}},"rhs":{"const":{"val":"5"}}}},{"cmp":{"op":"OpGe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"3"}}}}]}},"castSpell":{"spellId":{"spellId":11198,"rank":5}}}}, + {"action":{"condition":{"and":{"vals":[{"not":{"val":{"auraIsActive":{"auraId":{"spellId":425096}}}}},{"cmp":{"op":"OpEq","lhs":{"currentComboPoints":{}},"rhs":{"const":{"val":"5"}}}},{"spellCanCast":{"spellId":{"spellId":399963}}},{"auraIsActive":{"sourceUnit":{"type":"CurrentTarget"},"auraId":{"spellId":11198,"rank":5}}}]}},"castSpell":{"spellId":{"spellId":1856,"rank":1}}}}, + {"action":{"condition":{"or":{"vals":[{"and":{"vals":[{"cmp":{"op":"OpEq","lhs":{"currentComboPoints":{}},"rhs":{"const":{"val":"5"}}}},{"cmp":{"op":"OpEq","lhs":{"auraNumStacks":{"sourceUnit":{"type":"CurrentTarget"},"auraId":{"spellId":11356,"tag":100,"rank":4}}},"rhs":{"const":{"val":"5"}}}},{"spellCanCast":{"spellId":{"spellId":399963}}},{"auraIsActive":{"sourceUnit":{"type":"CurrentTarget"},"auraId":{"spellId":11198,"rank":5}}}]}}]}},"strictSequence":{"actions":[{"castSpell":{"spellId":{"spellId":14177}}},{"castSpell":{"spellId":{"spellId":399963}}}]}}}, + {"action":{"condition":{"or":{"vals":[{"and":{"vals":[{"cmp":{"op":"OpEq","lhs":{"currentComboPoints":{}},"rhs":{"const":{"val":"5"}}}},{"auraIsActive":{"sourceUnit":{"type":"CurrentTarget"},"auraId":{"spellId":11198,"rank":5}}}]}},{"and":{"vals":[{"cmp":{"op":"OpGe","lhs":{"currentComboPoints":{}},"rhs":{"const":{"val":"3"}}}},{"cmp":{"op":"OpLe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"4"}}}},{"auraIsActive":{"sourceUnit":{"type":"CurrentTarget"},"auraId":{"spellId":11198,"rank":5}}}]}},{"and":{"vals":[{"cmp":{"op":"OpGe","lhs":{"currentComboPoints":{}},"rhs":{"const":{"val":"4"}}}},{"cmp":{"op":"OpGe","lhs":{"currentEnergy":{}},"rhs":{"const":{"val":"70"}}}},{"auraIsActive":{"sourceUnit":{"type":"CurrentTarget"},"auraId":{"spellId":11198,"rank":5}}}]}}]}},"castSpell":{"spellId":{"spellId":399963}}}}, + {"action":{"condition":{"or":{"vals":[{"and":{"vals":[{"cmp":{"op":"OpLt","lhs":{"currentComboPoints":{}},"rhs":{"const":{"val":"5"}}}},{"cmp":{"op":"OpGe","lhs":{"currentEnergy":{}},"rhs":{"const":{"val":"75"}}}},{"cmp":{"op":"OpEq","lhs":{"auraRemainingTime":{"sourceUnit":{"type":"CurrentTarget"},"auraId":{"spellId":424785,"tag":100}}},"rhs":{"const":{"val":"8"}}}}]}},{"and":{"vals":[{"cmp":{"op":"OpLt","lhs":{"currentComboPoints":{}},"rhs":{"const":{"val":"3"}}}},{"cmp":{"op":"OpLe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"4"}}}}]}},{"and":{"vals":[{"cmp":{"op":"OpLe","lhs":{"currentComboPoints":{}},"rhs":{"const":{"val":"2"}}}},{"cmp":{"op":"OpGe","lhs":{"auraRemainingTime":{"sourceUnit":{"type":"CurrentTarget"},"auraId":{"spellId":424785,"tag":100}}},"rhs":{"const":{"val":"8"}}}}]}}]}},"castSpell":{"spellId":{"spellId":11294,"rank":8}}}}, + {"action":{"condition":{"or":{"vals":[{"and":{"vals":[{"cmp":{"op":"OpLt","lhs":{"currentComboPoints":{}},"rhs":{"const":{"val":"5"}}}},{"cmp":{"op":"OpGe","lhs":{"currentEnergy":{}},"rhs":{"const":{"val":"75"}}}}]}},{"cmp":{"op":"OpLe","lhs":{"currentComboPoints":{}},"rhs":{"const":{"val":"2"}}}}]}},"castSpell":{"spellId":{"spellId":424785}}}}, + {"action":{"condition":{"or":{"vals":[{"auraIsActive":{"sourceUnit":{"type":"CurrentTarget"},"auraId":{"spellId":432276}}},{"not":{"val":{"runeIsEquipped":{"runeId":{"spellId":432276}}}}}]}},"castSpell":{"spellId":{"itemId":18641}}}} + ] +} \ No newline at end of file diff --git a/ui/rogue/gear_sets/p4_muti.gear.json b/ui/rogue/gear_sets/p4_muti.gear.json index a85683404a..15abe1ce8c 100644 --- a/ui/rogue/gear_sets/p4_muti.gear.json +++ b/ui/rogue/gear_sets/p4_muti.gear.json @@ -1,21 +1,21 @@ { "items": [ - {"id":226829,"enchant":1508,"rune":432256}, + {"id":226446,"enchant":1508,"rune":432259}, {"id":228685}, {"id":226444,"enchant":7328}, - {"id":228383,"enchant":849,"rune":409240}, + {"id":228383,"enchant":849}, {"id":226447,"enchant":1891,"rune":399965}, - {"id":226442,"enchant":1885,"rune":432276}, - {"id":226441,"enchant":1887,"rune":399956}, + {"id":226442,"enchant":1885,"rune":432271}, + {"id":228257,"enchant":1887,"rune":399956}, {"id":226440,"rune":425012}, {"id":226445,"enchant":1508,"rune":399963}, - {"id":226842,"enchant":1887,"rune":425096}, + {"id":226443,"enchant":911,"rune":425096}, {"id":228286,"rune":442887}, - {"id":228261,"rune":442896}, - {"id":221307}, - {"id":223195}, - {"id":228757,"enchant":1900}, - {"id":228277,"enchant":1900}, + {"id":227280,"rune":442896}, + {"id":228078}, + {"id":228722}, + {"id":228511,"enchant":1900}, + {"id":228701,"enchant":1900}, {"id":228252} ] } diff --git a/ui/rogue/gear_sets/p4_saber.gear.json b/ui/rogue/gear_sets/p4_saber.gear.json index 1efe773c26..7133e410a6 100644 --- a/ui/rogue/gear_sets/p4_saber.gear.json +++ b/ui/rogue/gear_sets/p4_saber.gear.json @@ -1,19 +1,19 @@ { "items": [ {"id":226829,"enchant":1508,"rune":432264}, - {"id":228685}, + {"id":228354}, {"id":226444,"enchant":7328}, - {"id":228383,"enchant":849,"rune":409240}, - {"id":226447,"enchant":1891,"rune":399965}, + {"id":228383,"enchant":849}, + {"id":226825,"enchant":1891,"rune":399965}, {"id":226442,"enchant":1885,"rune":432276}, {"id":226441,"enchant":1887,"rune":424785}, {"id":226440,"rune":425012}, {"id":226445,"enchant":1508,"rune":399963}, - {"id":226842,"enchant":1887,"rune":425096}, - {"id":228286,"rune":442887}, - {"id":228261,"rune":442896}, - {"id":221307}, - {"id":223195}, + {"id":226443,"enchant":911,"rune":425096}, + {"id":228286,"rune":442896}, + {"id":227280,"rune":442813}, + {"id":228078}, + {"id":228722}, {"id":228265,"enchant":1900}, {"id":228143,"enchant":1900}, {"id":228252} diff --git a/ui/rogue/gear_sets/p5_backstab.gear.json b/ui/rogue/gear_sets/p5_backstab.gear.json new file mode 100644 index 0000000000..4d6e17c13b --- /dev/null +++ b/ui/rogue/gear_sets/p5_backstab.gear.json @@ -0,0 +1,21 @@ +{ + "items": [ + {"id":231043,"enchant":7625,"rune":432256}, + {"id":231336}, + {"id":231338,"enchant":2606}, + {"id":230842,"enchant":849,"rune":412096}, + {"id":231337,"enchant":1891,"rune":424925}, + {"id":231339,"enchant":1885,"rune":432276}, + {"id":231042,"enchant":1887,"rune":462708}, + {"id":231045,"rune":425012}, + {"id":231044,"enchant":7625,"rune":399963}, + {"id":231041,"enchant":1887,"rune":425096}, + {"id":228286,"rune":442887}, + {"id":227280,"rune":442896}, + {"id":231287}, + {"id":230282}, + {"id":228296,"enchant":1900}, + {"id":224122,"enchant":1900}, + {"id":228252} + ] +} diff --git a/ui/rogue/gear_sets/p5_mutilate.gear.json b/ui/rogue/gear_sets/p5_mutilate.gear.json new file mode 100644 index 0000000000..7364936140 --- /dev/null +++ b/ui/rogue/gear_sets/p5_mutilate.gear.json @@ -0,0 +1,21 @@ +{ + "items": [ + {"id":215166,"enchant":7625,"rune":432264}, + {"id":231336}, + {"id":231338,"enchant":2606}, + {"id":228383,"enchant":849}, + {"id":232190,"enchant":1891,"rune":399965}, + {"id":232183,"enchant":1885,"rune":432271}, + {"id":232188,"enchant":1887,"rune":399956}, + {"id":232184,"rune":425012}, + {"id":232186,"enchant":7625,"rune":399963}, + {"id":232189,"enchant":1887,"rune":425096}, + {"id":227280,"rune":442887}, + {"id":228286,"rune":442896}, + {"id":230250}, + {"id":231287}, + {"id":224122,"enchant":1900}, + {"id":228277,"enchant":1900}, + {"id":228252} + ] +} diff --git a/ui/rogue/gear_sets/p5_saber.gear.json b/ui/rogue/gear_sets/p5_saber.gear.json new file mode 100644 index 0000000000..ca218d8421 --- /dev/null +++ b/ui/rogue/gear_sets/p5_saber.gear.json @@ -0,0 +1,21 @@ +{ + "items": [ + {"id":232187,"enchant":7625,"rune":432264}, + {"id":231803}, + {"id":232185,"enchant":2606}, + {"id":230842,"enchant":849}, + {"id":232190,"enchant":1891,"rune":399965}, + {"id":232183,"enchant":1885,"rune":432276}, + {"id":231042,"enchant":1887,"rune":424785}, + {"id":231045,"rune":425012}, + {"id":231044,"enchant":7625,"rune":399963}, + {"id":231041,"enchant":1887,"rune":425096}, + {"id":228286,"rune":442887}, + {"id":227280,"rune":442813}, + {"id":230250}, + {"id":230282}, + {"id":230224,"enchant":1900}, + {"id":224122,"enchant":1900}, + {"id":228252} + ] +} diff --git a/ui/rogue/presets.ts b/ui/rogue/presets.ts index 195d7062cf..38153572c3 100644 --- a/ui/rogue/presets.ts +++ b/ui/rogue/presets.ts @@ -27,6 +27,11 @@ import MutilateDPSAPL60 from './apls/Mutilate_60.apl.json'; import MutilateDPSApl50 from './apls/Mutilate_DPS_50.apl.json'; import MutilateIEAApl40 from './apls/mutilate_IEA.apl.json'; import MutilateIEAApl50 from './apls/Mutilate_IEA_50.apl.json'; +import P5BackstabAPL from './apls/P5_Assassination_Backstab.apl.json'; +import P5MutilateAPL from './apls/P5_Mutilate.apl.json'; +import P5MutilateIEAAPL from './apls/P5_Mutilate_IEA.apl.json'; +import P5SaberAPL from './apls/P5_Saber.apl.json'; +import P5SaberIEAAPL from './apls/P5_Saber_IEA.apl.json'; import SaberDPSApl50 from './apls/Saber_DPS_50.apl.json'; import SaberDPSAPL60 from './apls/Saber_DPS_60.apl.json'; import SaberIEAApl50 from './apls/Saber_IEA_50.apl.json'; @@ -40,6 +45,9 @@ import P3MutiHatGear from './gear_sets/p3_muti_hat.gear.json'; import P3SaberGear from './gear_sets/p3_saber.gear.json'; import P4MutiGear from './gear_sets/p4_muti.gear.json'; import P4SaberGear from './gear_sets/p4_saber.gear.json'; +import P5BackstabGear from './gear_sets/p5_backstab.gear.json'; +import P5MutilateGear from './gear_sets/p5_mutilate.gear.json'; +import P5SaberGear from './gear_sets/p5_saber.gear.json'; // Preset options for this spec. // Eventually we will import these values for the raid sim too, so its good to @@ -56,18 +64,24 @@ export const P2GearDaggers = PresetUtils.makePresetGear('P2 Daggers', P2DaggersG export const P3GearMuti = PresetUtils.makePresetGear('P3 Mutilate', P3MutiGear, { customCondition: player => player.getLevel() === 50 }); export const P3GearMutiHat = PresetUtils.makePresetGear('P3 Mutilate (HaT)', P3MutiHatGear, { customCondition: player => player.getLevel() === 50 }); export const P3GearSaber = PresetUtils.makePresetGear('P3 Saber', P3SaberGear, { customCondition: player => player.getLevel() === 50 }); -export const P4GearMuti = PresetUtils.makePresetGear('P4 Muti', P4MutiGear, { customCondition: player => player.getLevel() === 60 }); +export const P4GearMuti = PresetUtils.makePresetGear('P4 Mutilate', P4MutiGear, { customCondition: player => player.getLevel() === 60 }); export const P4GearSaber = PresetUtils.makePresetGear('P4 Saber', P4SaberGear, { customCondition: player => player.getLevel() === 60 }); +export const P5GearBackstab = PresetUtils.makePresetGear('P5 Backstab', P5BackstabGear, { customCondition: player => player.getLevel() === 60 }); +export const P5GearMutilate = PresetUtils.makePresetGear('P5 Mutilate', P5MutilateGear, { customCondition: player => player.getLevel() === 60 }); +export const P5GearSaber = PresetUtils.makePresetGear('P5 Saber', P5SaberGear, { customCondition: player => player.getLevel() === 60 }); export const GearPresets = { [Phase.Phase1]: [P1GearDaggers, P1GearSaber], [Phase.Phase2]: [P2GearDaggers], [Phase.Phase3]: [P3GearMuti, P3GearMutiHat, P3GearSaber], [Phase.Phase4]: [P4GearMuti, P4GearSaber], - [Phase.Phase5]: [], + [Phase.Phase5]: [P5GearBackstab, P5GearMutilate, P5GearSaber], }; -export const DefaultGear = GearPresets[Phase.Phase4][0]; +export const DefaultGear = GearPresets[Phase.Phase5][0]; +export const DefaultGearBackstab = GearPresets[Phase.Phase5][0]; +export const DefaultGearMutilate = GearPresets[Phase.Phase5][1]; +export const DefaultGearSaber = GearPresets[Phase.Phase5][2]; /////////////////////////////////////////////////////////////////////////// // APL Presets[] @@ -76,14 +90,12 @@ export const DefaultGear = GearPresets[Phase.Phase4][0]; export const ROTATION_PRESET_SINISTER_25 = PresetUtils.makePresetAPLRotation('P1 Sinister', SinisterApl25, { customCondition: player => player.getLevel() === 25, }); - export const ROTATION_PRESET_MUTILATE = PresetUtils.makePresetAPLRotation('P2 Mutilate', MutilateApl40, { customCondition: player => player.getLevel() === 40, }); export const ROTATION_PRESET_MUTILATE_IEA = PresetUtils.makePresetAPLRotation('P2 Mutilate IEA', MutilateIEAApl40, { customCondition: player => player.getLevel() === 40, }); - export const ROTATION_PRESET_MUTILATE_DPS_50 = PresetUtils.makePresetAPLRotation('P3 Mutilate DPS', MutilateDPSApl50, { customCondition: player => player.getLevel() === 50, }); @@ -96,14 +108,28 @@ export const ROTATION_PRESET_SABER_SLASH_DPS_50 = PresetUtils.makePresetAPLRotat export const ROTATION_PRESET_SABER_SLASH_IEA_50 = PresetUtils.makePresetAPLRotation('P3 Saber Slash IEA', SaberIEAApl50, { customCondition: player => player.getLevel() === 50, }); - export const ROTATION_PRESET_SABER_SLASH_DPS_60 = PresetUtils.makePresetAPLRotation('P4 Saber Slash', SaberDPSAPL60, { customCondition: player => player.getLevel() === 60, }); export const ROTATION_PRESET_MUTILATE_DPS_60 = PresetUtils.makePresetAPLRotation('P4 Mutilate', MutilateDPSAPL60, { customCondition: player => player.getLevel() === 60, }); -export const ROTATION_PRESET_SLAUGHTER_CUTTHROAT_DPS_60 = PresetUtils.makePresetAPLRotation('P4 Slaughter Cutthroat', SlaughterCutthroatDPSAPL60, { +export const ROTATION_PRESET_SLAUGHTER_CUTTHROAT_DPS_60 = PresetUtils.makePresetAPLRotation('P4 Backstab', SlaughterCutthroatDPSAPL60, { + customCondition: player => player.getLevel() === 60, +}); +export const ROTATION_PRESET_BACKSTAB_DPS_P5 = PresetUtils.makePresetAPLRotation('P5 Backstab', P5BackstabAPL, { + customCondition: player => player.getLevel() === 60, +}); +export const ROTATION_PRESET_MUTILATE_DPS_P5 = PresetUtils.makePresetAPLRotation('P5 Mutilate', P5MutilateAPL, { + customCondition: player => player.getLevel() === 60, +}); +export const ROTATION_PRESET_SABER_DPS_P5 = PresetUtils.makePresetAPLRotation('P5 Saber Slash', P5SaberAPL, { + customCondition: player => player.getLevel() === 60, +}); +export const ROTATION_PRESET_MUTILATE_IEA_P5 = PresetUtils.makePresetAPLRotation('P5 Mutilate IEA', P5MutilateIEAAPL, { + customCondition: player => player.getLevel() === 60, +}); +export const ROTATION_PRESET_SABER_IEA_P5 = PresetUtils.makePresetAPLRotation('P5 Saber Slash IEA', P5SaberIEAAPL, { customCondition: player => player.getLevel() === 60, }); @@ -112,7 +138,13 @@ export const APLPresets = { [Phase.Phase2]: [ROTATION_PRESET_MUTILATE, ROTATION_PRESET_MUTILATE_IEA], [Phase.Phase3]: [ROTATION_PRESET_MUTILATE_DPS_50, ROTATION_PRESET_SABER_SLASH_DPS_50, ROTATION_PRESET_MUTILATE_IEA_50, ROTATION_PRESET_SABER_SLASH_IEA_50], [Phase.Phase4]: [ROTATION_PRESET_MUTILATE_DPS_60, ROTATION_PRESET_SLAUGHTER_CUTTHROAT_DPS_60, ROTATION_PRESET_SABER_SLASH_DPS_60], - [Phase.Phase5]: [], + [Phase.Phase5]: [ + ROTATION_PRESET_BACKSTAB_DPS_P5, + ROTATION_PRESET_MUTILATE_DPS_P5, + ROTATION_PRESET_SABER_DPS_P5, + ROTATION_PRESET_MUTILATE_IEA_P5, + ROTATION_PRESET_SABER_IEA_P5, + ], }; export const DefaultAPLs: Record> = { @@ -125,12 +157,16 @@ export const DefaultAPLs: Record player.getLevel() === 50, }); -export const P4TalentsMutiSaber = PresetUtils.makePresetTalents('P4 Muti/Saber', SavedTalents.create({ talentsString: '00532310155104-02330520000501' }), { +export const P4TalentsMutiSaber = PresetUtils.makePresetTalents('P4 Mutilate/Saber', SavedTalents.create({ talentsString: '00532310155104-02330520000501' }), { customCondition: player => player.getLevel() === 60, }); @@ -175,20 +211,95 @@ export const P4TalentsSlaughter = PresetUtils.makePresetTalents('P4 Backstab', S customCondition: player => player.getLevel() === 60, }); +export const P5TalentBackstabAssassination = PresetUtils.makePresetTalents( + 'P5 Backstab Assassination', + SavedTalents.create({ talentsString: '005323105551051-023302-05' }), + { + customCondition: player => player.getLevel() === 60, + }, +); + +export const P5TalentBackstabCombat = PresetUtils.makePresetTalents( + 'P5 Backstab Combat', + SavedTalents.create({ talentsString: '005023104-0233050020550100221-05' }), + { + customCondition: player => player.getLevel() === 60, + }, +); + +export const P5TalentMutilateSaberslashCarnage = PresetUtils.makePresetTalents( + 'P5 Mutilate/Saber Carnage', + SavedTalents.create({ talentsString: '00532310155104-02330520000501' }), + { + customCondition: player => player.getLevel() === 60, + }, +); + +export const P5TalentMutilateSaberslashCTTC = PresetUtils.makePresetTalents( + 'P5 Mutilate/Saber CTTC', + SavedTalents.create({ talentsString: '00532010455104-02330520000501' }), + { + customCondition: player => player.getLevel() === 60, + }, +); + +export const P5TalentBackstabAssassinationIEA = PresetUtils.makePresetTalents( + 'P5 Backstab IEA', + SavedTalents.create({ talentsString: '005323125501051-023305-05' }), + { + customCondition: player => player.getLevel() === 60, + }, +); + +export const P5TalentMutilateSaberslashCTTCIEA = PresetUtils.makePresetTalents( + 'P5 Mutilate/Saber CTTC IEA', + SavedTalents.create({ talentsString: '00532012255104-02400520200501' }), + { + customCondition: player => player.getLevel() === 60, + }, +); + export const TalentPresets = { [Phase.Phase1]: [CombatDagger25Talents], [Phase.Phase2]: [ColdBloodMutilate40Talents, IEAMutilate40Talents, CombatMutilate40Talents], [Phase.Phase3]: [P3TalentsMuti, P3TalentsMutiHat, P3TalentsSaber], - [Phase.Phase4]: [P4TalentsMutiSaber, P4TalentsSlaughter], - [Phase.Phase5]: [P4TalentsMutiSaber, P4TalentsSlaughter], + // [Phase.Phase4]: [P4TalentsMutiSaber, P4TalentsSlaughter], + [Phase.Phase5]: [ + P5TalentBackstabAssassination, + P5TalentBackstabCombat, + P5TalentMutilateSaberslashCarnage, + P5TalentMutilateSaberslashCTTC, + P5TalentBackstabAssassinationIEA, + P5TalentMutilateSaberslashCTTCIEA, + ], }; -export const DefaultTalentsAssassin = TalentPresets[Phase.Phase4][0]; -export const DefaultTalentsCombat = TalentPresets[Phase.Phase4][0]; -export const DefaultTalentsSubtlety = TalentPresets[Phase.Phase4][0]; +export const DefaultTalentsAssassin = TalentPresets[Phase.Phase5][0]; +export const DefaultTalentsCombat = TalentPresets[Phase.Phase5][0]; +export const DefaultTalentsSubtlety = TalentPresets[Phase.Phase5][0]; + +export const DefaultTalentsBackstab = TalentPresets[Phase.Phase5][0]; +export const DefaultTalentsMutilate = TalentPresets[Phase.Phase5][3]; +export const DefaultTalentsSaber = TalentPresets[Phase.Phase5][2]; export const DefaultTalents = DefaultTalentsAssassin; +export const PresetBuildBackstab = PresetUtils.makePresetBuild('Backstab', DefaultGearBackstab, P5TalentBackstabAssassination, DefaultAPLBackstab); +export const PresetBuildMutilate = PresetUtils.makePresetBuild('Mutilate', DefaultGearMutilate, DefaultTalentsMutilate, DefaultAPLMutilate); +export const PresetBuildSaber = PresetUtils.makePresetBuild('Saber Slash', DefaultGearSaber, DefaultTalentsSaber, DefaultAPLSaber); +export const PresetBuildMutilateIEA = PresetUtils.makePresetBuild( + 'Mutilate IEA', + DefaultGearMutilate, + P5TalentMutilateSaberslashCTTCIEA, + ROTATION_PRESET_MUTILATE_IEA_P5, +); +export const PresetBuildSaberIEA = PresetUtils.makePresetBuild( + 'Saber Slash IEA', + DefaultGearSaber, + P5TalentMutilateSaberslashCTTCIEA, + ROTATION_PRESET_SABER_IEA_P5, +); + /////////////////////////////////////////////////////////////////////////// // Options /////////////////////////////////////////////////////////////////////////// @@ -234,10 +345,28 @@ export const P4Consumes = Consumes.create({ flask: Flask.FlaskOfSupremePower, food: Food.FoodGrilledSquid, mainHandImbue: WeaponImbue.WildStrikes, - offHandImbue: WeaponImbue.WizardOil, + miscConsumes: { + jujuEmber: true, + }, + offHandImbue: WeaponImbue.ElementalSharpeningStone, + spellPowerBuff: SpellPowerBuff.GreaterArcaneElixir, + strengthBuff: StrengthBuff.JujuPower, + zanzaBuff: ZanzaBuff.GroundScorpokAssay, +}); + +export const P5Consumes = Consumes.create({ + agilityElixir: AgilityElixir.ElixirOfTheMongoose, + attackPowerBuff: AttackPowerBuff.JujuMight, + defaultConjured: Conjured.ConjuredRogueThistleTea, + dragonBreathChili: true, + enchantedSigil: EnchantedSigil.FlowingWatersSigil, + flask: Flask.FlaskOfSupremePower, + food: Food.FoodGrilledSquid, + mainHandImbue: WeaponImbue.WildStrikes, + offHandImbue: WeaponImbue.ElementalSharpeningStone, spellPowerBuff: SpellPowerBuff.GreaterArcaneElixir, strengthBuff: StrengthBuff.JujuPower, - zanzaBuff: ZanzaBuff.ROIDS, + zanzaBuff: ZanzaBuff.GroundScorpokAssay, }); export const DefaultConsumes = { @@ -245,6 +374,7 @@ export const DefaultConsumes = { [Phase.Phase2]: P2Consumes, [Phase.Phase3]: P3Consumes, [Phase.Phase4]: P4Consumes, + [Phase.Phase5]: P5Consumes, }; export const DefaultRaidBuffs = RaidBuffs.create({ @@ -277,7 +407,7 @@ export const DefaultDebuffs = Debuffs.create({ curseOfRecklessness: true, dreamstate: true, faerieFire: true, - homunculi: 70, + homunculi: 100, improvedFaerieFire: true, improvedScorch: true, mangle: true, @@ -287,5 +417,5 @@ export const DefaultDebuffs = Debuffs.create({ export const OtherDefaults = { profession1: Profession.Engineering, - profession2: Profession.Leatherworking, + profession2: Profession.Alchemy, }; diff --git a/ui/rogue/sim.ts b/ui/rogue/sim.ts index f241f0067d..06e14ea2de 100644 --- a/ui/rogue/sim.ts +++ b/ui/rogue/sim.ts @@ -56,9 +56,7 @@ const SPEC_CONFIG = registerSpecConfig(Spec.SpecRogue, { Stat.StatAttackPower, Stat.StatMeleeHit, Stat.StatMeleeCrit, - Stat.StatSpellDamage, Stat.StatSpellPower, - Stat.StatNaturePower, Stat.StatSpellHit, Stat.StatSpellCrit, Stat.StatDefense, @@ -74,7 +72,6 @@ const SPEC_CONFIG = registerSpecConfig(Spec.SpecRogue, { Stat.StatAgility, Stat.StatStrength, Stat.StatAttackPower, - Stat.StatSpellDamage, Stat.StatMeleeHit, Stat.StatSpellHit, Stat.StatMeleeCrit, @@ -90,26 +87,24 @@ const SPEC_CONFIG = registerSpecConfig(Spec.SpecRogue, { // Default EP weights for sorting gear in the gear picker. epWeights: Stats.fromMap( { - [Stat.StatAgility]: 1.23, - [Stat.StatStrength]: 1.64, + [Stat.StatAgility]: 2.51, + [Stat.StatStrength]: 1.31, [Stat.StatAttackPower]: 1.0, - [Stat.StatSpellDamage]: 1.09, - [Stat.StatNaturePower]: 0.81, - [Stat.StatSpellCrit]: 4.93, + [Stat.StatSpellCrit]: 0.12, [Stat.StatSpellHit]: 11.94, - [Stat.StatMeleeHit]: 14.11, - [Stat.StatMeleeCrit]: 25.97, + [Stat.StatMeleeHit]: 19.43, + [Stat.StatMeleeCrit]: 26.72, [Stat.StatFireResistance]: 0.5, }, { - [PseudoStat.PseudoStatMainHandDps]: 4.05, - [PseudoStat.PseudoStatOffHandDps]: 2.74, - [PseudoStat.PseudoStatMeleeSpeedMultiplier]: 2.74, + [PseudoStat.PseudoStatMainHandDps]: 9.86, + [PseudoStat.PseudoStatOffHandDps]: 1.02, + [PseudoStat.PseudoStatMeleeSpeedMultiplier]: 5.0, }, ), // Default consumes settings. - consumes: Presets.DefaultConsumes[Phase.Phase4], + consumes: Presets.DefaultConsumes[Phase.Phase5], // Default talents. talents: Presets.DefaultTalents.data, // Default spec-specific settings. @@ -150,7 +145,7 @@ const SPEC_CONFIG = registerSpecConfig(Spec.SpecRogue, { // Preset talents that the user can quickly select. talents: [ ...Presets.TalentPresets[Phase.Phase5], - ...Presets.TalentPresets[Phase.Phase4], + //...Presets.TalentPresets[Phase.Phase4], Removed due to duplication with P5 ...Presets.TalentPresets[Phase.Phase3], ...Presets.TalentPresets[Phase.Phase2], ...Presets.TalentPresets[Phase.Phase1], @@ -158,7 +153,7 @@ const SPEC_CONFIG = registerSpecConfig(Spec.SpecRogue, { // Preset rotations that the user can quickly select. rotations: [ ...Presets.APLPresets[Phase.Phase5], - ...Presets.APLPresets[Phase.Phase4], + //...Presets.APLPresets[Phase.Phase4], Removed due to duplication with P5 ...Presets.APLPresets[Phase.Phase3], ...Presets.APLPresets[Phase.Phase2], ...Presets.APLPresets[Phase.Phase1], @@ -171,6 +166,13 @@ const SPEC_CONFIG = registerSpecConfig(Spec.SpecRogue, { ...Presets.GearPresets[Phase.Phase2], ...Presets.GearPresets[Phase.Phase1], ], + builds: [ + Presets.PresetBuildBackstab, + Presets.PresetBuildMutilate, + Presets.PresetBuildSaber, + Presets.PresetBuildMutilateIEA, + Presets.PresetBuildSaberIEA, + ], }, autoRotation: player => { diff --git a/ui/tank_rogue/apls/P5_Saber.apl.json b/ui/tank_rogue/apls/P5_Saber.apl.json new file mode 100644 index 0000000000..f39e81e46c --- /dev/null +++ b/ui/tank_rogue/apls/P5_Saber.apl.json @@ -0,0 +1,29 @@ +{ + "type": "TypeAPL", + "prepullActions": [ + {"action":{"activateAura":{"auraId":{"spellId":1787}}},"doAtValue":{"const":{"val":"0s"}}}, + {"action":{"castSpell":{"spellId":{"spellId":26297,"tag":6}}},"doAtValue":{"const":{"val":"-1.5s"}}} + ], + "priorityList": [ + {"action":{"condition":{"not":{"val":{"auraIsActive":{"auraId":{"spellId":1787,"rank":4}}}}},"autocastOtherCooldowns":{}}}, + {"action":{"condition":{"and":{"vals":[{"not":{"val":{"auraIsActive":{"auraId":{"spellId":1787,"rank":4}}}}},{"auraIsActive":{"auraId":{"spellId":6774,"rank":2}}},{"auraIsActive":{"sourceUnit":{"type":"CurrentTarget"},"auraId":{"spellId":432276}}}]}},"castSpell":{"spellId":{"itemId":10646}}}}, + {"action":{"condition":{"and":{"vals":[{"not":{"val":{"auraIsActive":{"auraId":{"spellId":1787,"rank":4}}}}},{"auraIsActive":{"auraId":{"spellId":6774,"rank":2}}},{"auraIsActive":{"sourceUnit":{"type":"CurrentTarget"},"auraId":{"spellId":432276}}}]}},"strictSequence":{"actions":[{"castSpell":{"spellId":{"itemId":215168}}},{"castSpell":{"spellId":{"itemId":4395}}}]}}}, + {"hide":true,"action":{"condition":{"and":{"vals":[{"runeIsEquipped":{"runeId":{"spellId":432276}}},{"or":{"vals":[{"not":{"val":{"auraIsActive":{"sourceUnit":{"type":"CurrentTarget"},"auraId":{"spellId":432276}}}}},{"and":{"vals":[{"auraIsActive":{"sourceUnit":{"type":"CurrentTarget"},"auraId":{"spellId":11273}}},{"cmp":{"op":"OpLt","lhs":{"auraRemainingTime":{"sourceUnit":{"type":"CurrentTarget"},"auraId":{"spellId":11273}}},"rhs":{"const":{"val":"1s"}}}}]}},{"and":{"vals":[{"not":{"val":{"auraIsActive":{"sourceUnit":{"type":"CurrentTarget"},"auraId":{"spellId":11273}}}}},{"cmp":{"op":"OpLt","lhs":{"auraRemainingTime":{"sourceUnit":{"type":"CurrentTarget"},"auraId":{"spellId":11289}}},"rhs":{"const":{"val":"1.5s"}}}}]}}]}},{"cmp":{"op":"OpGe","lhs":{"currentComboPoints":{}},"rhs":{"const":{"val":"3"}}}},{"cmp":{"op":"OpGt","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"8s"}}}}]}},"castSpell":{"spellId":{"spellId":11273}}}}, + {"action":{"condition":{"and":{"vals":[{"runeIsEquipped":{"runeId":{"spellId":432271}}},{"not":{"val":{"auraIsActive":{"auraId":{"spellId":400012}}}}},{"cmp":{"op":"OpGe","lhs":{"currentComboPoints":{}},"rhs":{"const":{"val":"1"}}}},{"cmp":{"op":"OpGe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"10s"}}}}]}},"castSpell":{"spellId":{"spellId":400012}}}}, + {"action":{"condition":{"and":{"vals":[{"not":{"val":{"runeIsEquipped":{"runeId":{"spellId":432271}}}}},{"cmp":{"op":"OpLt","lhs":{"auraRemainingTime":{"auraId":{"spellId":400012}}},"rhs":{"const":{"val":"1s"}}}},{"cmp":{"op":"OpGe","lhs":{"currentComboPoints":{}},"rhs":{"const":{"val":"3"}}}},{"cmp":{"op":"OpGe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"20"}}}}]}},"castSpell":{"spellId":{"spellId":400012}}}}, + {"action":{"condition":{"and":{"vals":[{"not":{"val":{"auraIsActive":{"sourceUnit":{"type":"CurrentTarget"},"auraId":{"spellId":11198,"rank":5}}}}},{"cmp":{"op":"OpEq","lhs":{"currentComboPoints":{}},"rhs":{"const":{"val":"5"}}}}]}},"castSpell":{"spellId":{"spellId":11198,"rank":5}}}}, + {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpLt","lhs":{"auraRemainingTime":{"sourceUnit":{"type":"CurrentTarget"},"auraId":{"spellId":11198,"rank":5}}},"rhs":{"const":{"val":"8s"}}}},{"cmp":{"op":"OpEq","lhs":{"currentComboPoints":{}},"rhs":{"const":{"val":"5"}}}},{"cmp":{"op":"OpGe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"10"}}}}]}},"castSpell":{"spellId":{"spellId":11198,"rank":5}}}}, + {"action":{"condition":{"and":{"vals":[{"runeIsEquipped":{"runeId":{"spellId":432271}}},{"not":{"val":{"auraIsActive":{"auraId":{"spellId":6774,"rank":2}}}}},{"cmp":{"op":"OpGe","lhs":{"currentComboPoints":{}},"rhs":{"const":{"val":"1"}}}},{"cmp":{"op":"OpGe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"10s"}}}}]}},"castSpell":{"spellId":{"spellId":6774,"rank":2}}}}, + {"action":{"condition":{"and":{"vals":[{"not":{"val":{"runeIsEquipped":{"runeId":{"spellId":432271}}}}},{"cmp":{"op":"OpLt","lhs":{"auraRemainingTime":{"auraId":{"spellId":6774,"rank":2}}},"rhs":{"const":{"val":"1s"}}}},{"cmp":{"op":"OpGe","lhs":{"currentComboPoints":{}},"rhs":{"const":{"val":"3"}}}},{"cmp":{"op":"OpGe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"20"}}}}]}},"castSpell":{"spellId":{"spellId":6774,"rank":2}}}}, + {"action":{"condition":{"and":{"vals":[{"not":{"val":{"runeIsEquipped":{"runeId":{"spellId":432264}}}}},{"cmp":{"op":"OpGe","lhs":{"currentComboPoints":{}},"rhs":{"const":{"val":"4"}}}}]}},"castSpell":{"spellId":{"spellId":31016}}}}, + {"action":{"condition":{"and":{"vals":[{"runeIsEquipped":{"runeId":{"spellId":432264}}},{"or":{"vals":[{"cmp":{"op":"OpEq","lhs":{"currentComboPoints":{}},"rhs":{"const":{"val":"5"}}}},{"and":{"vals":[{"cmp":{"op":"OpGe","lhs":{"currentComboPoints":{}},"rhs":{"const":{"val":"4"}}}},{"cmp":{"op":"OpGe","lhs":{"currentEnergy":{}},"rhs":{"const":{"val":"70"}}}}]}}]}}]}},"castSpell":{"spellId":{"spellId":31016}}}}, + {"action":{"condition":{"and":{"vals":[{"spellIsKnown":{"spellId":{"spellId":14251}}},{"spellCanCast":{"spellId":{"spellId":14251}}}]}},"castSpell":{"spellId":{"spellId":14251}}}}, + {"action":{"condition":{"and":{"vals":[{"cmp":{"op":"OpLe","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"3s"}}}},{"cmp":{"op":"OpGe","lhs":{"currentComboPoints":{}},"rhs":{"const":{"val":"2"}}}}]}},"castSpell":{"spellId":{"spellId":31016}}}}, + {"action":{"condition":{"and":{"vals":[{"runeIsEquipped":{"runeId":{"spellId":424785}}},{"cmp":{"op":"OpLe","lhs":{"auraRemainingTime":{"sourceUnit":{"type":"CurrentTarget"},"auraId":{"spellId":424785,"tag":100}}},"rhs":{"const":{"val":"2"}}}}]}},"castSpell":{"spellId":{"spellId":424785}}}}, + {"action":{"condition":{"and":{"vals":[{"runeIsEquipped":{"runeId":{"spellId":425012}}},{"not":{"val":{"auraIsActive":{"auraId":{"spellId":13750}}}}},{"cmp":{"op":"OpLe","lhs":{"currentComboPoints":{}},"rhs":{"const":{"val":"4"}}}}]}},"castSpell":{"spellId":{"spellId":425012}}}}, + {"action":{"condition":{"and":{"vals":[{"runeIsEquipped":{"runeId":{"spellId":432264}}},{"or":{"vals":[{"cmp":{"op":"OpLe","lhs":{"currentComboPoints":{}},"rhs":{"const":{"val":"1"}}}},{"and":{"vals":[{"or":{"vals":[{"cmp":{"op":"OpGe","lhs":{"currentEnergy":{}},"rhs":{"const":{"val":"70"}}}},{"and":{"vals":[{"auraIsKnown":{"auraId":{"spellId":13750}}},{"auraIsActive":{"auraId":{"spellId":13750}}},{"cmp":{"op":"OpGe","lhs":{"currentEnergy":{}},"rhs":{"const":{"val":"50"}}}}]}}]}},{"cmp":{"op":"OpLt","lhs":{"timeToEnergyTick":{}},"rhs":{"const":{"val":"1s"}}}}]}},{"and":{"vals":[{"auraIsKnown":{"auraId":{"spellId":425096}}},{"auraIsActive":{"auraId":{"spellId":425096}}},{"cmp":{"op":"OpLe","lhs":{"currentComboPoints":{}},"rhs":{"const":{"val":"3"}}}}]}},{"cmp":{"op":"OpLt","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"6s"}}}}]}},{"cmp":{"op":"OpGe","lhs":{"dotRemainingTime":{"spellId":{"spellId":424785,"tag":100}}},"rhs":{"const":{"val":"7"}}}},{"cmp":{"op":"OpEq","lhs":{"auraNumStacks":{"sourceUnit":{"type":"CurrentTarget"},"auraId":{"spellId":424785,"tag":100}}},"rhs":{"const":{"val":"3"}}}}]}},"castSpell":{"spellId":{"spellId":11294,"rank":8}}}}, + {"action":{"condition":{"and":{"vals":[{"runeIsEquipped":{"runeId":{"spellId":432264}}},{"or":{"vals":[{"cmp":{"op":"OpLe","lhs":{"currentComboPoints":{}},"rhs":{"const":{"val":"1"}}}},{"and":{"vals":[{"or":{"vals":[{"cmp":{"op":"OpGe","lhs":{"currentEnergy":{}},"rhs":{"const":{"val":"70"}}}},{"and":{"vals":[{"auraIsKnown":{"auraId":{"spellId":13750}}},{"auraIsActive":{"auraId":{"spellId":13750}}},{"cmp":{"op":"OpGe","lhs":{"currentEnergy":{}},"rhs":{"const":{"val":"50"}}}}]}}]}},{"cmp":{"op":"OpLt","lhs":{"timeToEnergyTick":{}},"rhs":{"const":{"val":"1s"}}}}]}},{"and":{"vals":[{"auraIsKnown":{"auraId":{"spellId":425096}}},{"auraIsActive":{"auraId":{"spellId":425096}}},{"cmp":{"op":"OpLe","lhs":{"currentComboPoints":{}},"rhs":{"const":{"val":"3"}}}}]}},{"cmp":{"op":"OpLt","lhs":{"remainingTime":{}},"rhs":{"const":{"val":"6s"}}}}]}}]}},"castSpell":{"spellId":{"spellId":424785}}}}, + {"action":{"condition":{"and":{"vals":[{"not":{"val":{"runeIsEquipped":{"runeId":{"spellId":432264}}}}},{"cmp":{"op":"OpLe","lhs":{"currentComboPoints":{}},"rhs":{"const":{"val":"3"}}}}]}},"castSpell":{"spellId":{"spellId":424785}}}}, + {"action":{"condition":{"spellIsKnown":{"spellId":{"spellId":436564}}},"castSpell":{"spellId":{"spellId":436564}}}} + ] +} \ No newline at end of file diff --git a/ui/tank_rogue/gear_sets/p5_saber.gear.json b/ui/tank_rogue/gear_sets/p5_saber.gear.json new file mode 100644 index 0000000000..3ffa256f0e --- /dev/null +++ b/ui/tank_rogue/gear_sets/p5_saber.gear.json @@ -0,0 +1,21 @@ +{ + "items": [ + {"id":231043,"enchant":7624,"rune":432264}, + {"id":231803}, + {"id":232193,"enchant":2606}, + {"id":227854,"enchant":849,"rune":436564}, + {"id":231040,"enchant":1891,"rune":400014}, + {"id":231046,"enchant":923,"rune":432273}, + {"id":232196,"enchant":1887,"rune":424785}, + {"id":232192,"rune":425012}, + {"id":231044,"enchant":7624,"rune":400012}, + {"id":232197,"enchant":1887,"rune":400016}, + {"id":228286,"rune":442813}, + {"id":230734,"rune":459312}, + {"id":228686}, + {"id":230282}, + {"id":230224,"enchant":1900}, + {"id":224122,"enchant":2564}, + {"id":228252} + ] +} \ No newline at end of file diff --git a/ui/tank_rogue/presets.ts b/ui/tank_rogue/presets.ts index e68fcb5cda..fb63eda663 100644 --- a/ui/tank_rogue/presets.ts +++ b/ui/tank_rogue/presets.ts @@ -3,15 +3,22 @@ import * as PresetUtils from '../core/preset_utils.js'; import { Player } from '../core/proto/api'; import { AgilityElixir, + AttackPowerBuff, + Conjured, Consumes, Debuffs, EnchantedSigil, + Flask, + Food, IndividualBuffs, Profession, RaidBuffs, + SaygesFortune, + SpellPowerBuff, StrengthBuff, TristateEffect, WeaponImbue, + ZanzaBuff, } from '../core/proto/common.js'; import { RogueOptions } from '../core/proto/rogue.js'; import { SavedTalents } from '../core/proto/ui.js'; @@ -20,6 +27,7 @@ import MutilateApl from './apls/mutilate.apl.json'; import P3MutilateApl from './apls/Mutilate_DPS_50.apl.json'; import MutilateIEAApl from './apls/mutilate_IEA.apl.json'; import P3ExposeMutilateApl from './apls/Mutilate_IEA_50.apl.json'; +import P5SaberAPL from './apls/P5_Saber.apl.json'; import P3SaberApl from './apls/Saber_DPS_50.apl.json'; import P3SaberIEAApl from './apls/Saber_IEA_50.apl.json'; import P4SaberWeaveApl from './apls/Saber_Weave_60.apl.json'; @@ -30,6 +38,7 @@ import P2DaggersGear from './gear_sets/p2_daggers.gear.json'; import P3DaggersGear from './gear_sets/p3_daggers.gear.json'; import P3SaberGear from './gear_sets/p3_saber.gear.json'; import P4SaberGear from './gear_sets/p4_saber.gear.json'; +import P5SaberGear from './gear_sets/p5_saber.gear.json'; // Preset options for this spec. // Eventually we will import these values for the raid sim too, so its good to @@ -47,16 +56,17 @@ export const GearCombatP1 = PresetUtils.makePresetGear('P1 Combat', P1CombatGear export const GearDaggersP3 = PresetUtils.makePresetGear('P3 Daggers', P3DaggersGear, { customCondition: player => player.getLevel() == 50 }); export const GearSaberP3 = PresetUtils.makePresetGear('P3 Saber', P3SaberGear, { customCondition: player => player.getLevel() == 50 }); export const GearSaberP4 = PresetUtils.makePresetGear('P4 Saber', P4SaberGear, { customCondition: player => player.getLevel() == 60 }); +export const GearSaberP5 = PresetUtils.makePresetGear('P5 Saber', P5SaberGear, { customCondition: player => player.getLevel() == 60 }); export const GearPresets = { [Phase.Phase1]: [GearDaggersP1, GearCombatP1], [Phase.Phase2]: [GearDaggersP2], [Phase.Phase3]: [GearDaggersP3, GearSaberP3], [Phase.Phase4]: [GearSaberP4], - [Phase.Phase5]: [], + [Phase.Phase5]: [GearSaberP5], }; -export const DefaultGear = GearPresets[Phase.Phase4][0]; +export const DefaultGear = GearPresets[Phase.Phase5][0]; /////////////////////////////////////////////////////////////////////////// // APL Presets @@ -79,13 +89,16 @@ export const ROTATION_PRESET_SABER_IEA_P3 = PresetUtils.makePresetAPLRotation('P export const ROTATION_PRESET_SABER_WEAVE_P4 = PresetUtils.makePresetAPLRotation('P4 Saber Weave', P4SaberWeaveApl, { customCondition: player => player.getLevel() === 60, }); +export const ROTATION_PRESET_SABER_P5 = PresetUtils.makePresetAPLRotation('P5 Saber', P5SaberAPL, { + customCondition: player => player.getLevel() === 60, +}); export const APLPresets = { [Phase.Phase1]: [ROTATION_PRESET_MUTILATE], [Phase.Phase2]: [ROTATION_PRESET_MUTILATE, ROTATION_PRESET_MUTILATE_IEA], [Phase.Phase3]: [ROTATION_PRESET_MUTILATE_P3, ROTATION_PRESET_MUTILATE_IEA_P3, ROTATION_PRESET_SABER_P3, ROTATION_PRESET_SABER_IEA_P3], [Phase.Phase4]: [ROTATION_PRESET_SABER_WEAVE_P4], - [Phase.Phase5]: [], + [Phase.Phase5]: [ROTATION_PRESET_SABER_P5], }; export const DefaultAPLs: Record> = { @@ -105,9 +118,9 @@ export const DefaultAPLs: Record player.getLevel() === 60, }); +export const P5TankSaberTalents = PresetUtils.makePresetTalents('P5 Saber', SavedTalents.create({ talentsString: '30532312-0230550100050140231' }), { + customCondition: player => player.getLevel() === 60, +}); + export const TalentPresets = { [Phase.Phase1]: [CombatDagger25Talents], [Phase.Phase2]: [ColdBloodMutilate40Talents, IEAMutilate40Talents, CombatMutilate40Talents], [Phase.Phase3]: [TankMutilate50Talents, TankSaber50Talents, TankBladeFlurry50Talents], [Phase.Phase4]: [TankSaber60Talents], - [Phase.Phase5]: [], + [Phase.Phase5]: [P5TankSaberTalents], }; -export const DefaultTalentsAssassin = TalentPresets[Phase.Phase4][0]; -export const DefaultTalentsCombat = TalentPresets[Phase.Phase4][0]; -export const DefaultTalentsSubtlety = TalentPresets[Phase.Phase4][0]; +export const DefaultTalentsAssassin = TalentPresets[Phase.Phase5][0]; +export const DefaultTalentsCombat = TalentPresets[Phase.Phase5][0]; +export const DefaultTalentsSubtlety = TalentPresets[Phase.Phase5][0]; export const DefaultTalents = DefaultTalentsCombat; @@ -181,33 +198,54 @@ export const DefaultOptions = RogueOptions.create({ /////////////////////////////////////////////////////////////////////////// export const DefaultConsumes = Consumes.create({ - agilityElixir: AgilityElixir.ElixirOfAgility, - dragonBreathChili: false, + agilityElixir: AgilityElixir.ElixirOfTheMongoose, + attackPowerBuff: AttackPowerBuff.JujuMight, + defaultConjured: Conjured.ConjuredRogueThistleTea, enchantedSigil: EnchantedSigil.FlowingWatersSigil, - strengthBuff: StrengthBuff.ElixirOfOgresStrength, + flask: Flask.FlaskOfTheTitans, + food: Food.FoodGrilledSquid, mainHandImbue: WeaponImbue.WildStrikes, offHandImbue: WeaponImbue.DeadlyPoison, + strengthBuff: StrengthBuff.JujuPower, + zanzaBuff: ZanzaBuff.GroundScorpokAssay, }); export const DefaultRaidBuffs = RaidBuffs.create({ aspectOfTheLion: true, - battleShout: TristateEffect.TristateEffectRegular, + battleShout: TristateEffect.TristateEffectImproved, + demonicPact: 80, fireResistanceAura: true, fireResistanceTotem: true, giftOfTheWild: TristateEffect.TristateEffectImproved, strengthOfEarthTotem: TristateEffect.TristateEffectImproved, + graceOfAirTotem: TristateEffect.TristateEffectImproved, + leaderOfThePack: true, }); export const DefaultIndividualBuffs = IndividualBuffs.create({ - blessingOfMight: TristateEffect.TristateEffectRegular, + blessingOfKings: true, + blessingOfMight: TristateEffect.TristateEffectImproved, + fengusFerocity: true, + mightOfStormwind: true, + rallyingCryOfTheDragonslayer: true, + saygesFortune: SaygesFortune.SaygesDamage, + slipkiksSavvy: true, + songflowerSerenade: true, + valorOfAzeroth: true, + warchiefsBlessing: true, + spiritOfZandalar: true, }); export const DefaultDebuffs = Debuffs.create({ curseOfRecklessness: true, dreamstate: true, faerieFire: true, - sunderArmor: true, + homunculi: 100, + improvedFaerieFire: true, + improvedScorch: true, mangle: true, + markOfChaos: true, + sunderArmor: true, }); export const OtherDefaults = { diff --git a/ui/tank_rogue/sim.ts b/ui/tank_rogue/sim.ts index 9625a54944..2649be1c21 100644 --- a/ui/tank_rogue/sim.ts +++ b/ui/tank_rogue/sim.ts @@ -21,14 +21,13 @@ const SPEC_CONFIG = registerSpecConfig(Spec.SpecTankRogue, { Stat.StatAttackPower, Stat.StatMeleeHit, Stat.StatMeleeCrit, - Stat.StatSpellDamage, - Stat.StatSpellPower, - Stat.StatNaturePower, Stat.StatSpellHit, Stat.StatSpellCrit, // Tank stats Stat.StatDefense, + Stat.StatDodge, + Stat.StatParry, Stat.StatArmor, Stat.StatBonusArmor, Stat.StatStamina, @@ -43,7 +42,6 @@ const SPEC_CONFIG = registerSpecConfig(Spec.SpecTankRogue, { Stat.StatAgility, Stat.StatStrength, Stat.StatAttackPower, - Stat.StatSpellPower, Stat.StatMeleeHit, Stat.StatSpellHit, Stat.StatMeleeCrit, @@ -134,11 +132,29 @@ const SPEC_CONFIG = registerSpecConfig(Spec.SpecTankRogue, { presets: { // Preset talents that the user can quickly select. - talents: [...Presets.TalentPresets[Phase.Phase4], ...Presets.TalentPresets[Phase.Phase3], ...Presets.TalentPresets[Phase.Phase2], ...Presets.TalentPresets[Phase.Phase1]], + talents: [ + ...Presets.TalentPresets[Phase.Phase5], + ...Presets.TalentPresets[Phase.Phase4], + ...Presets.TalentPresets[Phase.Phase3], + ...Presets.TalentPresets[Phase.Phase2], + ...Presets.TalentPresets[Phase.Phase1], + ], // Preset rotations that the user can quickly select. - rotations: [...Presets.APLPresets[Phase.Phase4], ...Presets.APLPresets[Phase.Phase3], ...Presets.APLPresets[Phase.Phase2], ...Presets.APLPresets[Phase.Phase1]], + rotations: [ + ...Presets.APLPresets[Phase.Phase5], + ...Presets.APLPresets[Phase.Phase4], + ...Presets.APLPresets[Phase.Phase3], + ...Presets.APLPresets[Phase.Phase2], + ...Presets.APLPresets[Phase.Phase1], + ], // Preset gear configurations that the user can quickly select. - gear: [...Presets.GearPresets[Phase.Phase4], ...Presets.GearPresets[Phase.Phase3], ...Presets.GearPresets[Phase.Phase2], ...Presets.GearPresets[Phase.Phase1]], + gear: [ + ...Presets.GearPresets[Phase.Phase5], + ...Presets.GearPresets[Phase.Phase4], + ...Presets.GearPresets[Phase.Phase3], + ...Presets.GearPresets[Phase.Phase2], + ...Presets.GearPresets[Phase.Phase1], + ], }, autoRotation: player => {