Permalink
Browse files

[Demon Hunter] Havoc

 - Significant update to Havoc APL involving opener / meta usage as well as adding Blur / Demon Speed.
 - Regenerate profiles.
  • Loading branch information...
aggixx committed Sep 20, 2016
1 parent 6ff9211 commit a67fc0553ae9aab65ac7d7066a14b76619cae3c8
@@ -6093,14 +6093,19 @@ void demon_hunter_t::apl_precombat()
// Pre-Potion
if ( sim -> allow_potions )
{
std::string potion;
std::string potion;
if ( specialization() == DEMON_HUNTER_HAVOC )
potion = true_level > 100 ? "deadly_grace" : "draenic_agility";
else
potion = true_level > 100 ? "unbending_potion" : "draenic_versatility";
if ( specialization() == DEMON_HUNTER_HAVOC )
potion = true_level > 100 ? "deadly_grace" : "draenic_agility";
else
potion = true_level > 100 ? "unbending_potion" : "draenic_versatility";
pre -> add_action( "potion,name=" + potion );
if ( specialization() == DEMON_HUNTER_HAVOC )
{
pre -> add_action( this, "Metamorphosis" );
}
}
}
@@ -6157,11 +6162,22 @@ void add_havoc_use_items( demon_hunter_t* p, action_priority_list_t* apl )
void demon_hunter_t::apl_havoc()
{
talent_overrides_str +=
"/fel_barrage,if=desired_targets>1|raid_event.adds.exists";
"/fel_barrage,if=active_enemies>1|raid_event.adds.exists";
action_priority_list_t* def = get_action_priority_list( "default" );
def -> add_action( "auto_attack" );
def -> add_action( "variable,name=pooling_for_meta,value=cooldown.metamorp"
"hosis.ready&buff.metamorphosis.down&(!talent.demonic.enabled|!cooldown."
"eye_beam.ready)&(!talent.chaos_blades.enabled|cooldown.chaos_blades.rea"
"dy)&(!talent.nemesis.enabled|debuff.nemesis.up|cooldown.nemesis.ready)",
"\"Getting ready to use meta\" conditions, this is used in a few places." );
def -> add_action( this, "Blur", "if=artifact.demon_speed.enabled&cooldown"
".fel_rush.charges_fractional<0.5&cooldown.vengeful_retreat.remains-buff"
".momentum.remains>4" );
def -> add_action( "call_action_list,name=cooldown" );
def -> add_action( this, "Fel Rush", "animation_cancel=1,if=time=0",
"Fel Rush in at the start of combat." );
def -> add_action(
"pick_up_fragment,if=talent.demonic_appetite.enabled&fury.deficit>=30" );
def -> add_action( this, "Consume Magic" );
@@ -6177,15 +6193,18 @@ void demon_hunter_t::apl_havoc()
"momentum.down)&(!talent.fel_mastery.enabled|fury.deficit>="
"25)&raid_event.movement.in>charges*10",
"Fel Rush for Momentum and for fury from Fel Mastery." );
def -> add_action( this, "Eye Beam",
"if=talent.demonic.enabled&buff.metamorphosis.down&(!talent."
"first_blood.enabled|fury>=80|fury.deficit<30)" );
def -> add_action(
this, "Demon's Bite", "sync=metamorphosis,if=fury.deficit>=25",
"If Metamorphosis is ready, pool fury first before using it." );
def -> add_action( "call_action_list,name=cooldown" );
def -> add_talent( this, "Fel Barrage",
"if=charges>=5&(buff.momentum.up|!talent.momentum.enabled)"
"&(active_enemies>desired_targets|raid_event.adds.in>30)",
"Use Fel Barrage at max charges, saving it for Momentum and "
"adds if possible." );
def -> add_action( this, "Throw Glaive", "if=talent.bloodlet.enabled&(!tal"
"ent.momentum.enabled|buff.momentum.up)&charges=2" );
def -> add_action( this, artifact.fury_of_the_illidari, "fury_of_the_illidari",
"if=active_enemies>desired_targets|raid_event.adds.in>55" );
"if=active_enemies>desired_targets|raid_event.adds.in>55&"
"(!talent.momentum.enabled|buff.momentum.up)" );
def -> add_action( this, "Eye Beam",
"if=talent.demonic.enabled&buff.metamorphosis.down&fury.deficit<30" );
def -> add_action(
this, spec.death_sweep, "death_sweep", "if=death_sweep_worth_using",
"Use Death Sweep if it is more effective than Annihilation. See the "
@@ -6197,11 +6216,6 @@ void demon_hunter_t::apl_havoc()
"Use Blade Dance if it is more effective than Chaos Strike. "
"See the Demon Hunter section of the wiki for how this is "
"calculated." );
def -> add_talent( this, "Fel Barrage",
"if=charges>=5&(buff.momentum.up|!talent.momentum.enabled)&("
"active_enemies>desired_targets|raid_event.adds.in>30)",
"Use Fel Barrage at max charges, saving it for Momentum and "
"adds if possible." );
def -> add_action( this, "Throw Glaive",
"if=talent.bloodlet.enabled&spell_targets>=2+talent.chaos_"
"cleave.enabled&(!talent.master_of_the_glaive.enabled|!"
@@ -6215,10 +6229,10 @@ void demon_hunter_t::apl_havoc()
"if=talent.bloodlet.enabled&(!talent.master_of_the_glaive."
"enabled|!talent.momentum.enabled|buff.momentum.up)" );
def -> add_action( this, "Eye Beam",
"if=!talent.demonic.enabled&(spell_targets.eye_beam_tick>"
"desired_targets|(raid_event.adds.in>45&buff.metamorphosis."
"down&(artifact.anguish_of_the_deceiver.enabled|active_"
"enemies>1|level=100)))" );
"if=!talent.demonic.enabled&((spell_targets.eye_beam_tick"
">desired_targets&active_enemies>1)|(raid_event.adds.in>45&!variable.poo"
"ling_for_meta&buff.metamorphosis.down&(artifact.anguish_of_the_deceiver"
".enabled|active_enemies>1)))" );
def -> add_action( this, "Demon's Bite",
"if=buff.metamorphosis.down&cooldown.blade_dance.remains<"
"gcd&fury<55&blade_dance_worth_using",
@@ -6232,8 +6246,9 @@ void demon_hunter_t::apl_havoc()
def -> add_action( this, "Throw Glaive",
"if=buff.metamorphosis.down&spell_targets>=3" );
def -> add_action( this, "Chaos Strike",
"if=!talent.momentum.enabled|buff.momentum.up|fury.deficit<="
"30+buff.prepared.up*8" );
"if=(!talent.momentum.enabled|buff.momentum.up|fury.defic"
"it<=30+buff.prepared.up*8)&!variable.pooling_for_meta&(!talent.demonic."
"enabled|!cooldown.eye_beam.ready)" );
def -> add_talent( this, "Fel Barrage",
"if=charges=4&buff.metamorphosis.down&(buff.momentum.up|!"
"talent.momentum.enabled)&(active_enemies>desired_targets|"
@@ -6245,7 +6260,7 @@ void demon_hunter_t::apl_havoc()
"movement.in>charges*10" );
def -> add_action( this, "Demon's Bite" );
def -> add_action( this, "Throw Glaive" );
def -> add_action( this, "Felblade",
def -> add_talent( this, "Felblade",
"if=movement.distance|buff.out_of_range.up" );
def -> add_action( this, "Fel Rush",
"if=movement.distance>15|(buff.out_of_range.up&!talent."
@@ -6269,18 +6284,16 @@ void demon_hunter_t::apl_havoc()
"target.time_to_die<20" );
cd -> add_action(
this, "Metamorphosis",
"if=buff.metamorphosis.down&(!talent.demonic.enabled|!cooldown.eye_beam."
"ready)&(!talent.chaos_blades.enabled|cooldown.chaos_blades.ready)"
"&(!talent.nemesis.enabled|debuff.nemesis.up|cooldown.nemesis.ready)",
"Use Metamorphosis if Nemesis and Chaos Blades are ready." );
"if=variable.pooling_for_meta&fury.deficit<30&(talent.chaos_blades.enabl"
"ed|!cooldown.fury_of_the_illidari.ready&!cooldown.throw_glaive.ready)" );
// Pre-Potion
if ( sim -> allow_potions )
{
if ( true_level > 100 )
cd -> add_action( "potion,name=deadly_grace,if=buff.metamorphosis.remains>25" );
else
cd -> add_action( "potion,name=draenic_agility_potion,if=buff.metamorphosis.remains>25" );
else
cd -> add_action( "potion,name=draenic_agility_potion,if=buff.metamorphosis.remains>25" );
}
}
@@ -41,7 +41,7 @@ actions.build+=/arcane_blast
actions.burn=call_action_list,name=cooldowns
actions.burn+=/arcane_missiles,if=buff.arcane_missiles.react=3
actions.burn+=/arcane_explosion,if=buff.quickening.remains<action.arcane_blast.cast_time
actions.burn+=/arcane_explosion,if=buff.quickening.remains<action.arcane_blast.cast_time&talent.quickening.enabled
actions.burn+=/nether_tempest,if=dot.nether_tempest.remains<=2|!ticking
actions.burn+=/arcane_blast,if=mana.pct%10*execute_time>target.time_to_die
actions.burn+=/presence_of_mind,if=buff.arcane_power.remains>2*gcd
@@ -54,7 +54,7 @@ actions.burn+=/arcane_blast
actions.burn+=/evocation
actions.conserve=arcane_missiles,if=buff.arcane_missiles.react=3
actions.conserve+=/arcane_explosion,if=buff.quickening.remains<action.arcane_blast.cast_time
actions.conserve+=/arcane_explosion,if=buff.quickening.remains<action.arcane_blast.cast_time&talent.quickening.enabled
actions.conserve+=/arcane_blast,if=mana.pct>99
actions.conserve+=/nether_tempest,if=(refreshable|!ticking)|(cooldown.rune_of_power.remains<gcd.max&dot.nether_tempest.remains<10)
actions.conserve+=/arcane_blast,if=buff.rhonins_assaulting_armwraps.up&equipped.132413
@@ -80,7 +80,7 @@ actions.init_burn+=/rune_of_power
actions.init_burn+=/start_burn_phase,if=((cooldown.evocation.remains-(2*burn_phase_duration))%2<burn_phase_duration)|cooldown.arcane_power.remains=0|target.time_to_die<55
actions.rop_phase=arcane_missiles,if=buff.arcane_missiles.react=3
actions.rop_phase+=/arcane_explosion,if=buff.quickening.remains<action.arcane_blast.cast_time
actions.rop_phase+=/arcane_explosion,if=buff.quickening.remains<action.arcane_blast.cast_time&talent.quickening.enabled
actions.rop_phase+=/nether_tempest,if=dot.nether_tempest.remains<=2|!ticking
actions.rop_phase+=/arcane_missiles,if=buff.arcane_charge.stack=4
actions.rop_phase+=/arcane_explosion,if=active_enemies>1
@@ -22,7 +22,7 @@ actions.precombat+=/snapshot_stats
actions.precombat+=/grimoire_of_sacrifice,if=talent.grimoire_of_sacrifice.enabled
actions.precombat+=/potion,name=draenic_intellect
actions.precombat+=/mana_tap,if=talent.mana_tap.enabled&!buff.mana_tap.remains
actions.precombat+=/incinerate
actions.precombat+=/chaos_bolt
# Executed every time the actor is available.
actions=dimensional_rift,if=charges=3
@@ -41,7 +41,7 @@ actions.build+=/arcane_blast
actions.burn=call_action_list,name=cooldowns
actions.burn+=/arcane_missiles,if=buff.arcane_missiles.react=3
actions.burn+=/arcane_explosion,if=buff.quickening.remains<action.arcane_blast.cast_time
actions.burn+=/arcane_explosion,if=buff.quickening.remains<action.arcane_blast.cast_time&talent.quickening.enabled
actions.burn+=/nether_tempest,if=dot.nether_tempest.remains<=2|!ticking
actions.burn+=/arcane_blast,if=mana.pct%10*execute_time>target.time_to_die
actions.burn+=/presence_of_mind,if=buff.arcane_power.remains>2*gcd
@@ -54,7 +54,7 @@ actions.burn+=/arcane_blast
actions.burn+=/evocation
actions.conserve=arcane_missiles,if=buff.arcane_missiles.react=3
actions.conserve+=/arcane_explosion,if=buff.quickening.remains<action.arcane_blast.cast_time
actions.conserve+=/arcane_explosion,if=buff.quickening.remains<action.arcane_blast.cast_time&talent.quickening.enabled
actions.conserve+=/arcane_blast,if=mana.pct>99
actions.conserve+=/nether_tempest,if=(refreshable|!ticking)|(cooldown.rune_of_power.remains<gcd.max&dot.nether_tempest.remains<10)
actions.conserve+=/arcane_blast,if=buff.rhonins_assaulting_armwraps.up&equipped.132413
@@ -81,7 +81,7 @@ actions.init_burn+=/rune_of_power
actions.init_burn+=/start_burn_phase,if=((cooldown.evocation.remains-(2*burn_phase_duration))%2<burn_phase_duration)|cooldown.arcane_power.remains=0|target.time_to_die<55
actions.rop_phase=arcane_missiles,if=buff.arcane_missiles.react=3
actions.rop_phase+=/arcane_explosion,if=buff.quickening.remains<action.arcane_blast.cast_time
actions.rop_phase+=/arcane_explosion,if=buff.quickening.remains<action.arcane_blast.cast_time&talent.quickening.enabled
actions.rop_phase+=/nether_tempest,if=dot.nether_tempest.remains<=2|!ticking
actions.rop_phase+=/arcane_missiles,if=buff.arcane_charge.stack=4
actions.rop_phase+=/arcane_explosion,if=active_enemies>1
@@ -6,41 +6,6 @@ position=back
talents=1313323
spec=mistweaver
# This default action priority list is automatically created based on your character.
# It is a attempt to provide you with a action list that is both simple and practicable,
# while resulting in a meaningful and good simulation. It may not result in the absolutely highest possible dps.
# Feel free to edit, adapt and improve it to your own needs.
# SimulationCraft is always looking for updates and improvements to the default action lists.
# Executed before combat begins. Accepts non-harmful actions only.
actions.precombat=flask,type=greater_draenic_intellect_flask
actions.precombat+=/food,type=salty_squid_roll
actions.precombat+=/snapshot_stats
actions.precombat+=/potion,name=draenic_intellect_potion
# Executed every time the actor is available.
actions=auto_attack
actions+=/invoke_xuen
actions+=/use_item,name=intuitions_gift
actions+=/use_item,name=mirror_of_the_blademaster
actions+=/blood_fury,if=target.time_to_die<18
actions+=/berserking,if=target.time_to_die<18
actions+=/arcane_torrent,if=chi.max-chi>=1&target.time_to_die<18
actions+=/potion,name=draenic_intellect,if=buff.bloodlust.react|target.time_to_die<=60
actions+=/run_action_list,name=aoe,if=active_enemies>=3
actions+=/call_action_list,name=st,if=active_enemies<3
actions.aoe=spinning_crane_kick
actions.aoe+=/refreshing_jade_wind
actions.aoe+=/chi_burst
actions.aoe+=/blackout_kick
actions.aoe+=/tiger_palm,if=talent.rushing_jade_wind.enabled
actions.st=rising_sun_kick,if=buff.teachings_of_the_monastery.up
actions.st+=/blackout_kick,if=buff.teachings_of_the_monastery.up
actions.st+=/chi_burst
actions.st+=/tiger_palm,if=buff.teachings_of_the_monastery.down
head=helm_of_the_somber_gaze,id=115556,bonus_id=567
neck=choker_of_forbidden_indulgence,id=124391,bonus_id=567,upgrade=2,enchant=75mult
shoulders=mantle_of_the_somber_gaze,id=115559,bonus_id=567
@@ -22,7 +22,7 @@ actions.precombat+=/snapshot_stats
actions.precombat+=/grimoire_of_sacrifice,if=talent.grimoire_of_sacrifice.enabled
actions.precombat+=/potion,name=draenic_intellect
actions.precombat+=/mana_tap,if=talent.mana_tap.enabled&!buff.mana_tap.remains
actions.precombat+=/incinerate
actions.precombat+=/chaos_bolt
# Executed every time the actor is available.
actions=use_item,name=nithramus_the_allseer
@@ -41,7 +41,7 @@ actions.build+=/arcane_blast
actions.burn=call_action_list,name=cooldowns
actions.burn+=/arcane_missiles,if=buff.arcane_missiles.react=3
actions.burn+=/arcane_explosion,if=buff.quickening.remains<action.arcane_blast.cast_time
actions.burn+=/arcane_explosion,if=buff.quickening.remains<action.arcane_blast.cast_time&talent.quickening.enabled
actions.burn+=/nether_tempest,if=dot.nether_tempest.remains<=2|!ticking
actions.burn+=/arcane_blast,if=mana.pct%10*execute_time>target.time_to_die
actions.burn+=/presence_of_mind,if=buff.arcane_power.remains>2*gcd
@@ -54,7 +54,7 @@ actions.burn+=/arcane_blast
actions.burn+=/evocation
actions.conserve=arcane_missiles,if=buff.arcane_missiles.react=3
actions.conserve+=/arcane_explosion,if=buff.quickening.remains<action.arcane_blast.cast_time
actions.conserve+=/arcane_explosion,if=buff.quickening.remains<action.arcane_blast.cast_time&talent.quickening.enabled
actions.conserve+=/arcane_blast,if=mana.pct>99
actions.conserve+=/nether_tempest,if=(refreshable|!ticking)|(cooldown.rune_of_power.remains<gcd.max&dot.nether_tempest.remains<10)
actions.conserve+=/arcane_blast,if=buff.rhonins_assaulting_armwraps.up&equipped.132413
@@ -80,7 +80,7 @@ actions.init_burn+=/rune_of_power
actions.init_burn+=/start_burn_phase,if=((cooldown.evocation.remains-(2*burn_phase_duration))%2<burn_phase_duration)|cooldown.arcane_power.remains=0|target.time_to_die<55
actions.rop_phase=arcane_missiles,if=buff.arcane_missiles.react=3
actions.rop_phase+=/arcane_explosion,if=buff.quickening.remains<action.arcane_blast.cast_time
actions.rop_phase+=/arcane_explosion,if=buff.quickening.remains<action.arcane_blast.cast_time&talent.quickening.enabled
actions.rop_phase+=/nether_tempest,if=dot.nether_tempest.remains<=2|!ticking
actions.rop_phase+=/arcane_missiles,if=buff.arcane_charge.stack=4
actions.rop_phase+=/arcane_explosion,if=active_enemies>1
@@ -22,7 +22,7 @@ actions.precombat+=/snapshot_stats
actions.precombat+=/grimoire_of_sacrifice,if=talent.grimoire_of_sacrifice.enabled
actions.precombat+=/potion,name=draenic_intellect
actions.precombat+=/mana_tap,if=talent.mana_tap.enabled&!buff.mana_tap.remains
actions.precombat+=/incinerate
actions.precombat+=/chaos_bolt
# Executed every time the actor is available.
actions=dimensional_rift,if=charges=3
@@ -53,7 +53,7 @@ neck=blackened_portalstone_necklace,id=139332,bonus_id=1805,enchant=mark_of_the_
shoulders=matted_fur_pauldrons,id=139217,bonus_id=1805
back=evergreen_vinewrap_drape,id=139248,bonus_id=1805,enchant=200agi
chest=patient_ambushers_hauberk,id=139221,bonus_id=1805
wrists=scored_ironclaw_sabatons,id=139220,bonus_id=1805
wrists=manacles_of_the_nightmare_colossus,id=139222,bonus_id=1805
hands=gauntlets_of_malevolent_intent,id=139213,bonus_id=1805
waist=laughing_sisters_pouchchain,id=139211,bonus_id=1805
legs=disjointed_linkage_leggings,id=139216,bonus_id=1805
@@ -66,11 +66,11 @@ main_hand=talonclaw,id=128808,gem_id=139262/139257/139255,relic_id=1805/1805/180
# Gear Summary
# gear_ilvl=866.93
# gear_agility=14479
# gear_stamina=23065
# gear_crit_rating=9859
# gear_haste_rating=4565
# gear_mastery_rating=2771
# gear_agility=14199
# gear_stamina=22645
# gear_crit_rating=9208
# gear_haste_rating=4636
# gear_mastery_rating=3093
# gear_versatility_rating=1639
# gear_armor=2738
# gear_armor=2630
summon_pet=cat
@@ -64,7 +64,7 @@ neck=blackened_portalstone_necklace,id=139332,bonus_id=1805,enchant=mark_of_the_
shoulders=matted_fur_pauldrons,id=139217,bonus_id=1805
back=evergreen_vinewrap_drape,id=139248,bonus_id=1805,enchant=200agi
chest=patient_ambushers_hauberk,id=139221,bonus_id=1805
wrists=scored_ironclaw_sabatons,id=139220,bonus_id=1805
wrists=manacles_of_the_nightmare_colossus,id=139222,bonus_id=1805
hands=gauntlets_of_malevolent_intent,id=139213,bonus_id=1805
waist=laughing_sisters_pouchchain,id=139211,bonus_id=1805
legs=disjointed_linkage_leggings,id=139216,bonus_id=1805
Oops, something went wrong.

0 comments on commit a67fc05

Please sign in to comment.