{
  "format": "keyrota-rotation",
  "version": 1,
  "title": "Assassination, raid v2.8: Burst button, Method 12.1, SimulationCraft, top logs",
  "specID": 259,
  "ignoreMainIcon": true,
  "enemies": {"range": 8, "combatOnly": true},
  "notes": [
    "Assassination, raid. Based on the Method guide (patch 12.1), the SimulationCraft action list and the top Warcraft Logs players.",
    "Ignore main icon: on. Deathmark and Kingsbane only with Burst on; Vanish only while Deathmark is on the target.",
    "Combo points in percent of 7: 3 = 43%, 4 = 57%, 5 = 71%, 6 = 86%, 7 = 100%.",
    "",
    "v2.4: Kingsbane only at 0–3 combo points (Implacable Strikes then add 5), Vanish at 0–4 (Garrote from stealth adds 3).",
    "v2.5: Crimson Tempest only when just one of the two bleeds is fresh; before that it was pressed several times in a row.",
    "v2.6: with Burst on and Deathmark ready or already on the target, Garrote and Rupture go on a target at any health.",
    "v2.7 and v2.8: a new target without bleeds, Burst on, Deathmark ready, 2+ enemies nearby: Crimson Tempest copies the bleeds first (at any combo points), then Deathmark."
  ],
  "resources": ["PlayerHP", "TargetHP", "Energy", "Combo_Points"],
  "auras": [
    {"n": 1, "alias": "Garrote_DoT", "label": "Garrote on target [703]", "spell": 703},
    {"n": 2, "alias": "Rupture_DoT", "label": "Rupture on target [1943]", "spell": 1943},
    {"n": 3, "alias": "Envenom_Buff", "label": "Envenom [32645]", "spell": 32645},
    {"n": 4, "alias": "Deathmark_DoT", "label": "Deathmark on target [360194]", "spell": 360194},
    {"n": 5, "alias": "Improved_Garrote", "label": "Improved Garrote [392401]", "spell": 392401},
    {"n": 6, "alias": "Darkest_Night", "label": "Darkest Night [457280]", "spell": 457280},
    {"n": 7, "alias": "Blindside", "label": "Blindside [121153]", "spell": 121153},
    {"n": 8, "alias": "Stealth_Buff", "label": "Stealth [1784]", "spell": 1784},
    {"n": 9, "alias": "Stealth_Sub", "label": "Stealth (Subterfuge) [115191]", "spell": 115191},
    {"n": 10, "alias": "Vanish_Buff", "label": "Vanish [11327]", "spell": 11327}
  ],
  "slots": [
    {
      "n": 1,
      "alias": "Garrote",
      "label": "Garrote",
      "spell": 703,
      "show": "target",
      "manual": false,
      "channel": false,
      "offGcd": false,
      "queue": false
    },
    {
      "n": 2,
      "alias": "Rupture",
      "label": "Rupture",
      "spell": 1943,
      "show": "target",
      "manual": false,
      "channel": false,
      "offGcd": false,
      "queue": false
    },
    {
      "n": 3,
      "alias": "Envenom",
      "label": "Envenom",
      "spell": 32645,
      "show": "target",
      "manual": false,
      "channel": false,
      "offGcd": false,
      "queue": false
    },
    {
      "n": 4,
      "alias": "Mutilate",
      "label": "Mutilate",
      "spell": 1329,
      "show": "target",
      "manual": false,
      "channel": false,
      "offGcd": false,
      "queue": false
    },
    {
      "n": 5,
      "alias": "Ambush",
      "label": "Ambush",
      "spell": 8676,
      "show": "target",
      "manual": false,
      "channel": false,
      "offGcd": false,
      "queue": false
    },
    {
      "n": 6,
      "alias": "Fan_of_Knives",
      "label": "Fan of Knives",
      "spell": 51723,
      "show": "target",
      "manual": false,
      "channel": false,
      "offGcd": false,
      "queue": false
    },
    {
      "n": 7,
      "alias": "Crimson_Tempest",
      "label": "Crimson Tempest",
      "spell": 1247227,
      "show": "target",
      "manual": false,
      "channel": false,
      "offGcd": false,
      "queue": false
    },
    {
      "n": 8,
      "alias": "Deathmark",
      "label": "Deathmark",
      "spell": 360194,
      "show": "target",
      "manual": false,
      "channel": false,
      "offGcd": false,
      "queue": false
    },
    {
      "n": 9,
      "alias": "Kingsbane",
      "label": "Kingsbane",
      "spell": 385627,
      "show": "target",
      "manual": false,
      "channel": false,
      "offGcd": false,
      "queue": false
    },
    {
      "n": 10,
      "alias": "Vanish",
      "label": "Vanish",
      "spell": 1856,
      "show": "target",
      "manual": false,
      "channel": false,
      "offGcd": true,
      "queue": true
    },
    {
      "n": 11,
      "alias": "Crimson_Vial",
      "label": "Crimson Vial",
      "spell": 185311,
      "show": "combat",
      "manual": false,
      "channel": false,
      "offGcd": false,
      "queue": false
    }
  ],
  "rules": [
    {
      "use": "Crimson_Vial",
      "name": "Crimson Vial",
      "note": ["--- Defensive: only with Healing / defense on ---"],
      "when": [{"all": ["defensives == 1", "PlayerHP <= 40"], "comment": "health 40% or lower"}]
    },
    {
      "use": "Garrote",
      "name": "Garrote from stealth",
      "note": ["=== Stealth ==="],
      "when": [
        {"all": ["Stealth_Buff.up"], "comment": "in stealth"},
        {"all": ["Stealth_Sub.up"], "comment": "in stealth (Subterfuge)"},
        {"all": ["Vanish_Buff.up"], "comment": "right after Vanish"}
      ]
    },
    {
      "use": "Garrote",
      "name": "Garrote: the Improved Garrote window",
      "when": [
        {
          "all": ["Improved_Garrote.up", "Garrote_DoT.down"],
          "comment": "the window is open, no Garrote on the target"
        },
        {
          "all": ["Improved_Garrote.up", "Garrote_DoT.duration <= 78"],
          "comment": "SimulationCraft: refresh with 14 of 18 seconds left"
        }
      ]
    },
    {
      "use": "Deathmark",
      "name": "Deathmark",
      "note": ["=== Cooldowns (Burst button) ==="],
      "when": [
        {
          "all": [
            "cd == 1",
            "Garrote_DoT.up",
            "Rupture_DoT.up",
            "Kingsbane.cd <= 3",
            "Envenom_Buff.duration >= 35",
            "Stealth_Buff.down",
            "Stealth_Sub.down"
          ],
          "comment": "Burst on, bleeds up, Kingsbane ready, Envenom for 2+ more seconds"
        }
      ]
    },
    {
      "use": "Kingsbane",
      "name": "Kingsbane",
      "when": [
        {
          "all": [
            "cd == 1",
            "Garrote_DoT.up",
            "Rupture_DoT.up",
            "Envenom_Buff.up",
            "Deathmark_DoT.up",
            "Combo_Points < 50",
            "Stealth_Buff.down",
            "Stealth_Sub.down"
          ],
          "comment": "Burst on, Deathmark on the target, 0–3 combo points"
        },
        {
          "all": [
            "cd == 1",
            "Garrote_DoT.up",
            "Rupture_DoT.up",
            "Envenom_Buff.up",
            "Deathmark.cd >= 44",
            "Combo_Points < 50",
            "Stealth_Buff.down",
            "Stealth_Sub.down"
          ],
          "comment": "Burst on, Deathmark more than 52 s away, 0–3 combo points"
        }
      ]
    },
    {
      "use": "Vanish",
      "name": "Vanish",
      "when": [
        {
          "all": [
            "Deathmark_DoT.up",
            "Improved_Garrote.down",
            "Combo_Points < 65",
            "Stealth_Buff.down",
            "Stealth_Sub.down"
          ],
          "comment": "Deathmark on the target, 0–4 combo points (Garrote from stealth adds 3)"
        }
      ]
    },
    {
      "use": "Crimson_Tempest",
      "name": "Crimson Tempest: copy the bleeds to a new target for Deathmark",
      "note": ["=== Bleeds ==="],
      "when": [
        {
          "all": [
            "cd == 1",
            "Deathmark.cd <= 3",
            "Garrote_DoT.down",
            "Rupture_DoT.down",
            "Envenom_Buff.up",
            "enemies >= 2"
          ],
          "comment": "combo points don't matter"
        }
      ]
    },
    {
      "use": "Garrote",
      "name": "Garrote: upkeep",
      "note": [
        "No new bleed on adds about to die (like SimulationCraft’s “the target lives 12+ more seconds”): on 1–2 targets and in Single mode always;",
        "on 3+ targets only if the target has 50%+ health, or Burst is on and Deathmark is ready, or Deathmark is already on the target."
      ],
      "when": [
        {"all": ["Garrote_DoT.down", "Combo_Points < 95", "enemies <= 2"]},
        {"all": ["Garrote_DoT.down", "Combo_Points < 95", "st == 1"]},
        {
          "all": ["Garrote_DoT.down", "Combo_Points < 95", "TargetHP >= 50"],
          "comment": "3+ targets: only a target that will live"
        },
        {
          "all": ["Garrote_DoT.down", "Combo_Points < 95", "cd == 1", "Deathmark.cd <= 3"],
          "comment": "Burst on and Deathmark ready: health doesn't matter"
        },
        {
          "all": ["Garrote_DoT.down", "Combo_Points < 95", "Deathmark_DoT.up"],
          "comment": "Deathmark on the target (copied bleeds)"
        },
        {
          "all": ["Garrote_DoT.up", "Garrote_DoT.duration <= 30", "Combo_Points < 95"],
          "comment": "pandemic window (already up)"
        }
      ]
    },
    {
      "use": "Rupture",
      "name": "Rupture",
      "when": [
        {"all": ["Combo_Points >= 70", "Rupture_DoT.down", "enemies <= 2"]},
        {"all": ["Combo_Points >= 70", "Rupture_DoT.down", "st == 1"]},
        {
          "all": ["Combo_Points >= 70", "Rupture_DoT.down", "TargetHP >= 50"],
          "comment": "3+ targets: only a target that will live"
        },
        {
          "all": ["Combo_Points >= 70", "Rupture_DoT.down", "cd == 1", "Deathmark.cd <= 3"],
          "comment": "Burst on and Deathmark ready"
        },
        {
          "all": ["Combo_Points >= 70", "Rupture_DoT.down", "Deathmark_DoT.up"],
          "comment": "Deathmark on the target"
        },
        {
          "all": ["Combo_Points >= 70", "Rupture_DoT.up", "Rupture_DoT.duration <= 25", "Darkest_Night.down"],
          "comment": "refresh; don't spend the 7 combo points of Darkest Night on it"
        }
      ]
    },
    {
      "use": "Crimson_Tempest",
      "name": "Crimson Tempest: spread the bleeds right after a fresh Rupture or Garrote",
      "note": [
        "=== Builders: up to 5 combo points, up to 7 with Darkest Night ===",
        "",
        "Crimson Tempest once right after a fresh Rupture (on 4+ targets also after a fresh Garrote); otherwise Fan of Knives.",
        "Only one of the two may be fresh (94%+): right after Crimson Tempest both are fresh, so the next one waits."
      ],
      "when": [
        {
          "all": [
            "aoe == 1",
            "Darkest_Night.down",
            "Combo_Points < 70",
            "Garrote_DoT.up",
            "Rupture_DoT.up",
            "Rupture_DoT.duration >= 94",
            "Garrote_DoT.duration < 94"
          ]
        },
        {
          "all": [
            "aoe == 1",
            "Darkest_Night.down",
            "Combo_Points < 70",
            "Garrote_DoT.up",
            "Rupture_DoT.up",
            "Garrote_DoT.duration >= 94",
            "Rupture_DoT.duration < 94"
          ]
        },
        {
          "all": [
            "aoe == 1",
            "Darkest_Night.up",
            "Combo_Points < 95",
            "Garrote_DoT.up",
            "Rupture_DoT.up",
            "Rupture_DoT.duration >= 94",
            "Garrote_DoT.duration < 94"
          ]
        },
        {
          "all": [
            "aoe == 1",
            "Darkest_Night.up",
            "Combo_Points < 95",
            "Garrote_DoT.up",
            "Rupture_DoT.up",
            "Garrote_DoT.duration >= 94",
            "Rupture_DoT.duration < 94"
          ]
        },
        {
          "all": [
            "st == 0",
            "enemies >= 4",
            "Darkest_Night.down",
            "Combo_Points < 70",
            "Garrote_DoT.up",
            "Rupture_DoT.up",
            "Rupture_DoT.duration >= 94",
            "Garrote_DoT.duration < 94"
          ]
        },
        {
          "all": [
            "st == 0",
            "enemies >= 4",
            "Darkest_Night.down",
            "Combo_Points < 70",
            "Garrote_DoT.up",
            "Rupture_DoT.up",
            "Garrote_DoT.duration >= 94",
            "Rupture_DoT.duration < 94"
          ]
        },
        {
          "all": [
            "st == 0",
            "enemies >= 4",
            "Darkest_Night.up",
            "Combo_Points < 95",
            "Garrote_DoT.up",
            "Rupture_DoT.up",
            "Rupture_DoT.duration >= 94",
            "Garrote_DoT.duration < 94"
          ]
        },
        {
          "all": [
            "st == 0",
            "enemies >= 4",
            "Darkest_Night.up",
            "Combo_Points < 95",
            "Garrote_DoT.up",
            "Rupture_DoT.up",
            "Garrote_DoT.duration >= 94",
            "Rupture_DoT.duration < 94"
          ]
        },
        {
          "all": [
            "st == 0",
            "enemies >= 2",
            "enemies <= 3",
            "Darkest_Night.down",
            "Combo_Points < 70",
            "Garrote_DoT.up",
            "Rupture_DoT.up",
            "Rupture_DoT.duration >= 94",
            "Garrote_DoT.duration < 94"
          ],
          "comment": "2–3 targets: only after a fresh Rupture"
        },
        {
          "all": [
            "st == 0",
            "enemies >= 2",
            "enemies <= 3",
            "Darkest_Night.up",
            "Combo_Points < 95",
            "Garrote_DoT.up",
            "Rupture_DoT.up",
            "Rupture_DoT.duration >= 94",
            "Garrote_DoT.duration < 94"
          ],
          "comment": "2–3 targets: only after a fresh Rupture"
        }
      ]
    },
    {
      "use": "Fan_of_Knives",
      "name": "Fan of Knives: single target, Darkest Night, one combo point short",
      "when": [
        {"all": ["st == 1", "Darkest_Night.up", "Combo_Points >= 80", "Combo_Points < 95"]},
        {"all": ["aoe == 0", "enemies <= 1", "Darkest_Night.up", "Combo_Points >= 80", "Combo_Points < 95"]}
      ]
    },
    {
      "use": "Fan_of_Knives",
      "name": "Fan of Knives: 2+ targets",
      "when": [
        {"all": ["aoe == 1", "Darkest_Night.down", "Combo_Points < 70"]},
        {"all": ["aoe == 1", "Darkest_Night.up", "Combo_Points < 95"]},
        {"all": ["st == 0", "enemies >= 2", "Darkest_Night.down", "Combo_Points < 70"]},
        {"all": ["st == 0", "enemies >= 2", "Darkest_Night.up", "Combo_Points < 95"]}
      ]
    },
    {
      "use": "Ambush",
      "name": "Ambush (Blindside)",
      "when": [
        {"all": ["Blindside.up", "st == 1", "Darkest_Night.down", "Combo_Points < 70"]},
        {"all": ["Blindside.up", "st == 1", "Darkest_Night.up", "Combo_Points < 95"]},
        {"all": ["Blindside.up", "aoe == 0", "enemies <= 1", "Darkest_Night.down", "Combo_Points < 70"]},
        {"all": ["Blindside.up", "aoe == 0", "enemies <= 1", "Darkest_Night.up", "Combo_Points < 95"]}
      ]
    },
    {
      "use": "Mutilate",
      "name": "Mutilate",
      "when": [
        {"all": ["st == 1", "Darkest_Night.down", "Combo_Points < 70"]},
        {"all": ["st == 1", "Darkest_Night.up", "Combo_Points < 95"]},
        {"all": ["aoe == 0", "enemies <= 1", "Darkest_Night.down", "Combo_Points < 70"]},
        {"all": ["aoe == 0", "enemies <= 1", "Darkest_Night.up", "Combo_Points < 95"]}
      ]
    },
    {
      "use": "Envenom",
      "name": "Envenom",
      "note": [
        "=== Spender: 5+ combo points (7 with Darkest Night) ===",
        "SimulationCraft: keep Envenom up rather than pressing it at once: in the buff's last second, while Deathmark is on the target, before energy caps, earlier on 4+ targets."
      ],
      "when": [
        {"all": ["Darkest_Night.down", "Combo_Points >= 70", "Envenom_Buff.down"]},
        {
          "all": ["Darkest_Night.down", "Combo_Points >= 70", "Envenom_Buff.duration <= 20"],
          "comment": "about 1 s left"
        },
        {"all": ["Darkest_Night.down", "Combo_Points >= 70", "Deathmark_DoT.up"]},
        {"all": ["Darkest_Night.down", "Combo_Points >= 70", "Energy >= 70"], "comment": "don't cap energy"},
        {"all": ["Darkest_Night.down", "Combo_Points >= 70", "Energy >= 30", "enemies >= 4"]},
        {"all": ["Darkest_Night.up", "Combo_Points >= 95", "Envenom_Buff.down"]},
        {"all": ["Darkest_Night.up", "Combo_Points >= 95", "Envenom_Buff.duration <= 20"]},
        {"all": ["Darkest_Night.up", "Combo_Points >= 95", "Deathmark_DoT.up"]},
        {"all": ["Darkest_Night.up", "Combo_Points >= 95", "Energy >= 70"]},
        {"all": ["Darkest_Night.up", "Combo_Points >= 95", "Energy >= 30", "enemies >= 4"]}
      ]
    }
  ]
}
