Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void warlock_t::apl_precombat()
- {
- std::string& precombat_list =
- get_action_priority_list( "precombat" )->action_list_str;
- if ( sim->allow_flasks )
- {
- // Flask
- if ( level == 100 )
- precombat_list = "flask,type=greater_draenor_mastery_flask";
- else if ( level >= 90 )
- precombat_list = "flask,type=warm_sun";
- }
- if ( sim->allow_food )
- {
- // Food
- if ( level >= 80 )
- {
- precombat_list += "/food,type=";
- precombat_list +=
- ( level > 85 ) ? "mogu_fish_stew" : "seafood_magnifique_feast";
- }
- }
- add_action( "Dark Intent", "if=!aura.spell_power_multiplier.up",
- "precombat" );
- precombat_list +=
- "/summon_pet,if=!talent.grimoire_of_sacrifice.enabled|buff.grimoire_of_sacrifice.down";
- precombat_list += "/snapshot_stats";
- precombat_list +=
- "/grimoire_of_sacrifice,if=talent.grimoire_of_sacrifice.enabled";
- precombat_list += "/service_pet,if=talent.grimoire_of_service.enabled";
- if ( sim->allow_potions )
- {
- // Pre-potion
- if ( level == 100 )
- precombat_list += "/potion,name=draenor_intellect";
- else if ( level >= 90 )
- precombat_list += "/potion,name=jade_serpent_potion";
- }
- // Usable Item
- for ( int i = as<int>( items.size() ) - 1; i >= 0; i-- )
- {
- if ( items[ i ].has_special_effect( SPECIAL_EFFECT_SOURCE_NONE, SPECIAL_EFFECT_USE ) )
- {
- action_list_str += "/use_item,name=";
- action_list_str += items[i].name();
- }
- }
- if ( sim->allow_potions )
- {
- // Potion
- if ( level == 100 )
- action_list_str +=
- "/potion,name=draenor_intellect,if=buff.bloodlust.react|target.health.pct<=20";
- else if ( level >= 90 )
- action_list_str +=
- "/potion,name=jade_serpent_potion,if=buff.bloodlust.react|target.health.pct<=20";
- }
- action_list_str += init_use_profession_actions();
- action_list_str += init_use_racial_actions();
- if ( specialization() == WARLOCK_DEMONOLOGY )
- {
- if ( spec.imp_swarm->ok() )
- action_list_str +=
- "/imp_swarm,if=(buff.dark_soul.up|(cooldown.dark_soul.remains>(120%(1%spell_haste)))|time_to_die<32)&time>3";
- }
- add_action(
- spec.dark_soul,
- "if=!talent.archimondes_darkness.enabled|(talent.archimondes_darkness.enabled&(charges=2|trinket.proc.intellect.react|trinket.stacking_proc.intellect.react|target.health.pct<=10))" );
- action_list_str += "/service_pet,if=talent.grimoire_of_service.enabled";
- if ( specialization() == WARLOCK_DEMONOLOGY )
- {
- action_list_str += "/felguard:felstorm";
- action_list_str += "/wrathguard:wrathstorm";
- }
- int multidot_max = 3;
- switch ( specialization() )
- {
- case WARLOCK_AFFLICTION:
- multidot_max = 6;
- break;
- case WARLOCK_DESTRUCTION:
- multidot_max = 3;
- break;
- case WARLOCK_DEMONOLOGY:
- multidot_max = 4;
- break;
- default:
- break;
- }
- action_list_str += "/run_action_list,name=aoe,if=active_enemies>"
- + util::to_string( multidot_max );
- add_action( "Summon Doomguard" );
- add_action( "Summon Infernal", "", "aoe" );
- }
- void warlock_t::apl_global_filler()
- {
- add_action( "Life Tap" );
- }
- void warlock_t::apl_default()
- {
- add_action(
- "Corruption",
- "if=(!ticking|remains<tick_time)&target.time_to_die>=6&miss_react" );
- add_action( "Shadow Bolt" );
- // AoE action list
- add_action( "Corruption", "cycle_targets=1,if=!ticking", "aoe" );
- add_action( "Shadow Bolt", "", "aoe" );
- }
- void warlock_t::apl_affliction()
- {
- add_action( "Soul Swap", "if=buff.soulburn.up" );
- add_action( "Soulburn", "if=!dot.agony.remains&!dot.corruption.remains&!dot.unstable_affliction.remains" );
- add_action( "Haunt", "if=!in_flight_to_target&remains<cast_time+travel_time+tick_time&shard_react&(soul_shard>3|buff.dark_soul.react|trinket.proc.intellect.react|trinket.stacking_proc.intellect.react>6|time_to_die<30)" );
- add_action( "Agony", "if=remains<=(duration*0.3)" );
- add_action( "Unstable Affliction", "if=remains<=(duration*0.3)" );
- add_action( "Corruption", "if=remains<=(duration*0.3)" );
- add_action( "Drain Soul" );
- // AoE action list
- add_action(
- "Soulburn",
- "cycle_targets=1,if=buff.soulburn.down&!dot.soulburn_seed_of_corruption.ticking&!action.soulburn_seed_of_corruption.in_flight_to_target&shard_react",
- "aoe" );
- add_action( "Soul Swap",
- "if=buff.soulburn.up&!dot.agony.ticking&!dot.corruption.ticking",
- "aoe" );
- add_action(
- "Soul Swap",
- "cycle_targets=1,if=buff.soulburn.up&dot.corruption.ticking&!dot.agony.ticking",
- "aoe" );
- add_action(
- "Seed of Corruption",
- "cycle_targets=1,if=(buff.soulburn.down&!in_flight_to_target&!ticking)|(buff.soulburn.up&!dot.soulburn_seed_of_corruption.ticking&!action.soulburn_seed_of_corruption.in_flight_to_target)",
- "aoe" );
- add_action(
- "Haunt",
- "cycle_targets=1,if=!in_flight_to_target&debuff.haunt.remains<cast_time+travel_time&shard_react",
- "aoe" );
- add_action( "Life Tap", "if=mana.pct<70", "aoe" );
- }
- void warlock_t::apl_demonology()
- {
- {
- add_action( "doom", "if=buff.metamorphosis.up&target.time_to_die>=30&miss_react&remains<=(duration*0.3)" );
- add_action( "cancel_metamorphosis", "if=buff.metamorphosis.up&buff.dark_soul.down&demonic_fury<=650&target.time_to_die>30&(cooldown.metamorphosis.remains<4|demonic_fury<=300)" );
- add_action( "Soul Fire", "if=buff.metamorphosis.up&buff.molten_core.react&(buff.dark_soul.remains<action.shadow_bolt.cast_time|buff.dark_soul.remains>cast_time)" );
- add_action( "touch of chaos", "if=buff.metamorphosis.up" );
- add_action( "metamorphosis", "if=(buff.dark_soul.up&buff.dark_soul.remains<demonic_fury%32)|demonic_fury>=950|demonic_fury%32>target.time_to_die" );
- add_action( "corruption", "if=target.time_to_die>=6&miss_react&remains<=(duration*0.3)" );
- add_action( "hand_of_guldan" );
- add_action( "Soul Fire", "if=buff.molten_core.react&(buff.dark_soul.remains<action.shadow_bolt.cast_time|buff.dark_soul.remains>cast_time)&(buff.molten_core.react>9|target.health.pct<=28)" );
- add_action( "Life Tap", "if=mana.pct<60" );
- add_action( "Shadow Bolt" );
- // AoE action list
- if ( find_class_spell( "Metamorphosis" )->ok() )
- get_action_priority_list( "aoe" )->action_list_str +=
- "/cancel_metamorphosis,if=buff.metamorphosis.up&dot.corruption.remains>10&demonic_fury<=650&buff.dark_soul.down&!dot.immolation_aura.ticking";
- add_action( "Immolation Aura", "if=buff.metamorphosis.up", "aoe" );
- add_action(
- spec.doom,
- "cycle_targets=1,if=buff.metamorphosis.up&(!ticking|remains<tick_time|(ticks_remain+1<buff.dark_soul.up))&target.time_to_die>=30&miss_react",
- "aoe" );
- add_action( "Corruption",
- "cycle_targets=1,if=!ticking&target.time_to_die>30&miss_react",
- "aoe" );
- add_action( "Hand of Gul'dan", "", "aoe" );
- add_action(
- "Metamorphosis",
- "if=dot.corruption.remains<10|buff.dark_soul.up|demonic_fury>=950|demonic_fury%32>target.time_to_die",
- "aoe" );
- add_action( "Hellfire", "chain=1,interrupt=1", "aoe" );
- add_action( "Life Tap", "", "aoe" );
- }
- }
- void warlock_t::apl_destruction()
- {
- add_action(
- "Shadowburn",
- "if=(burning_ember>3.5|mana.pct<=20|target.time_to_die<20|trinket.proc.intellect.react|(trinket.stacking_proc.intellect.remains<cast_time*4&trinket.stacking_proc.intellect.remains>cast_time))" );
- add_action(
- "Immolate",
- "if=miss_react&remains<=(duration*0.3)" );
- add_action( "Conflagrate", "if=charges=2" );
- add_action(
- "Chaos Bolt",
- "if=target.health.pct>20&(buff.backdraft.stack<3|level<86|(active_enemies>1&action.incinerate.cast_time<1))&(burning_ember>(4.5-active_enemies)|(trinket.proc.intellect.react&trinket.proc.intellect.remains>cast_time)|(trinket.stacking_proc.intellect.remains<cast_time*2.5&trinket.stacking_proc.intellect.remains>cast_time))" );
- add_action( "Conflagrate" );
- add_action( "Incinerate" );
- // AoE action list
- add_action( "Rain of Fire", "if=!ticking&!in_flight", "aoe" );
- add_action( "Fire and Brimstone",
- "if=ember_react&buff.fire_and_brimstone.down", "aoe" );
- add_action( "Immolate", "if=buff.fire_and_brimstone.up&!ticking", "aoe" );
- add_action( "Conflagrate", "if=buff.fire_and_brimstone.up", "aoe" );
- add_action( "Incinerate", "if=buff.fire_and_brimstone.up", "aoe" );
- add_action( "Incinerate", "", "aoe" );
- }
Advertisement
Add Comment
Please, Sign In to add comment