tjc12821

Untitled

Jul 5th, 2014
264
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.45 KB | None | 0 0
  1. void warlock_t::apl_precombat()
  2. {
  3. std::string& precombat_list =
  4. get_action_priority_list( "precombat" )->action_list_str;
  5.  
  6. if ( sim->allow_flasks )
  7. {
  8. // Flask
  9. if ( level == 100 )
  10. precombat_list = "flask,type=greater_draenor_mastery_flask";
  11. else if ( level >= 90 )
  12. precombat_list = "flask,type=warm_sun";
  13. }
  14.  
  15. if ( sim->allow_food )
  16. {
  17. // Food
  18. if ( level >= 80 )
  19. {
  20. precombat_list += "/food,type=";
  21. precombat_list +=
  22. ( level > 85 ) ? "mogu_fish_stew" : "seafood_magnifique_feast";
  23. }
  24. }
  25.  
  26. add_action( "Dark Intent", "if=!aura.spell_power_multiplier.up",
  27. "precombat" );
  28.  
  29. precombat_list +=
  30. "/summon_pet,if=!talent.grimoire_of_sacrifice.enabled|buff.grimoire_of_sacrifice.down";
  31.  
  32. precombat_list += "/snapshot_stats";
  33.  
  34. precombat_list +=
  35. "/grimoire_of_sacrifice,if=talent.grimoire_of_sacrifice.enabled";
  36. precombat_list += "/service_pet,if=talent.grimoire_of_service.enabled";
  37.  
  38. if ( sim->allow_potions )
  39. {
  40. // Pre-potion
  41. if ( level == 100 )
  42. precombat_list += "/potion,name=draenor_intellect";
  43. else if ( level >= 90 )
  44. precombat_list += "/potion,name=jade_serpent_potion";
  45. }
  46.  
  47. // Usable Item
  48. for ( int i = as<int>( items.size() ) - 1; i >= 0; i-- )
  49. {
  50. if ( items[ i ].has_special_effect( SPECIAL_EFFECT_SOURCE_NONE, SPECIAL_EFFECT_USE ) )
  51. {
  52. action_list_str += "/use_item,name=";
  53. action_list_str += items[i].name();
  54. }
  55. }
  56.  
  57. if ( sim->allow_potions )
  58. {
  59. // Potion
  60. if ( level == 100 )
  61. action_list_str +=
  62. "/potion,name=draenor_intellect,if=buff.bloodlust.react|target.health.pct<=20";
  63. else if ( level >= 90 )
  64. action_list_str +=
  65. "/potion,name=jade_serpent_potion,if=buff.bloodlust.react|target.health.pct<=20";
  66. }
  67.  
  68. action_list_str += init_use_profession_actions();
  69. action_list_str += init_use_racial_actions();
  70. if ( specialization() == WARLOCK_DEMONOLOGY )
  71. {
  72. if ( spec.imp_swarm->ok() )
  73. action_list_str +=
  74. "/imp_swarm,if=(buff.dark_soul.up|(cooldown.dark_soul.remains>(120%(1%spell_haste)))|time_to_die<32)&time>3";
  75. }
  76.  
  77. add_action(
  78. spec.dark_soul,
  79. "if=!talent.archimondes_darkness.enabled|(talent.archimondes_darkness.enabled&(charges=2|trinket.proc.intellect.react|trinket.stacking_proc.intellect.react|target.health.pct<=10))" );
  80.  
  81. action_list_str += "/service_pet,if=talent.grimoire_of_service.enabled";
  82.  
  83. if ( specialization() == WARLOCK_DEMONOLOGY )
  84. {
  85. action_list_str += "/felguard:felstorm";
  86. action_list_str += "/wrathguard:wrathstorm";
  87. }
  88.  
  89. int multidot_max = 3;
  90.  
  91. switch ( specialization() )
  92. {
  93. case WARLOCK_AFFLICTION:
  94. multidot_max = 6;
  95. break;
  96. case WARLOCK_DESTRUCTION:
  97. multidot_max = 3;
  98. break;
  99. case WARLOCK_DEMONOLOGY:
  100. multidot_max = 4;
  101. break;
  102. default:
  103. break;
  104. }
  105.  
  106. action_list_str += "/run_action_list,name=aoe,if=active_enemies>"
  107. + util::to_string( multidot_max );
  108.  
  109. add_action( "Summon Doomguard" );
  110. add_action( "Summon Infernal", "", "aoe" );
  111.  
  112. }
  113.  
  114. void warlock_t::apl_global_filler()
  115. {
  116. add_action( "Life Tap" );
  117. }
  118.  
  119. void warlock_t::apl_default()
  120. {
  121. add_action(
  122. "Corruption",
  123. "if=(!ticking|remains<tick_time)&target.time_to_die>=6&miss_react" );
  124. add_action( "Shadow Bolt" );
  125.  
  126. // AoE action list
  127. add_action( "Corruption", "cycle_targets=1,if=!ticking", "aoe" );
  128. add_action( "Shadow Bolt", "", "aoe" );
  129. }
  130.  
  131. void warlock_t::apl_affliction()
  132. {
  133. add_action( "Soul Swap", "if=buff.soulburn.up" );
  134. add_action( "Soulburn", "if=!dot.agony.remains&!dot.corruption.remains&!dot.unstable_affliction.remains" );
  135. 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)" );
  136. add_action( "Agony", "if=remains<=(duration*0.3)" );
  137. add_action( "Unstable Affliction", "if=remains<=(duration*0.3)" );
  138. add_action( "Corruption", "if=remains<=(duration*0.3)" );
  139. add_action( "Drain Soul" );
  140.  
  141. // AoE action list
  142. add_action(
  143. "Soulburn",
  144. "cycle_targets=1,if=buff.soulburn.down&!dot.soulburn_seed_of_corruption.ticking&!action.soulburn_seed_of_corruption.in_flight_to_target&shard_react",
  145. "aoe" );
  146. add_action( "Soul Swap",
  147. "if=buff.soulburn.up&!dot.agony.ticking&!dot.corruption.ticking",
  148. "aoe" );
  149. add_action(
  150. "Soul Swap",
  151. "cycle_targets=1,if=buff.soulburn.up&dot.corruption.ticking&!dot.agony.ticking",
  152. "aoe" );
  153. add_action(
  154. "Seed of Corruption",
  155. "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)",
  156. "aoe" );
  157. add_action(
  158. "Haunt",
  159. "cycle_targets=1,if=!in_flight_to_target&debuff.haunt.remains<cast_time+travel_time&shard_react",
  160. "aoe" );
  161. add_action( "Life Tap", "if=mana.pct<70", "aoe" );
  162. }
  163.  
  164. void warlock_t::apl_demonology()
  165. {
  166. {
  167. add_action( "doom", "if=buff.metamorphosis.up&target.time_to_die>=30&miss_react&remains<=(duration*0.3)" );
  168. 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)" );
  169. 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)" );
  170. add_action( "touch of chaos", "if=buff.metamorphosis.up" );
  171. 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" );
  172. add_action( "corruption", "if=target.time_to_die>=6&miss_react&remains<=(duration*0.3)" );
  173. add_action( "hand_of_guldan" );
  174. 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)" );
  175. add_action( "Life Tap", "if=mana.pct<60" );
  176. add_action( "Shadow Bolt" );
  177.  
  178. // AoE action list
  179. if ( find_class_spell( "Metamorphosis" )->ok() )
  180. get_action_priority_list( "aoe" )->action_list_str +=
  181. "/cancel_metamorphosis,if=buff.metamorphosis.up&dot.corruption.remains>10&demonic_fury<=650&buff.dark_soul.down&!dot.immolation_aura.ticking";
  182.  
  183. add_action( "Immolation Aura", "if=buff.metamorphosis.up", "aoe" );
  184. add_action(
  185. spec.doom,
  186. "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",
  187. "aoe" );
  188. add_action( "Corruption",
  189. "cycle_targets=1,if=!ticking&target.time_to_die>30&miss_react",
  190. "aoe" );
  191. add_action( "Hand of Gul'dan", "", "aoe" );
  192. add_action(
  193. "Metamorphosis",
  194. "if=dot.corruption.remains<10|buff.dark_soul.up|demonic_fury>=950|demonic_fury%32>target.time_to_die",
  195. "aoe" );
  196. add_action( "Hellfire", "chain=1,interrupt=1", "aoe" );
  197. add_action( "Life Tap", "", "aoe" );
  198. }
  199. }
  200.  
  201. void warlock_t::apl_destruction()
  202. {
  203.  
  204. add_action(
  205. "Shadowburn",
  206. "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))" );
  207. add_action(
  208. "Immolate",
  209. "if=miss_react&remains<=(duration*0.3)" );
  210. add_action( "Conflagrate", "if=charges=2" );
  211. add_action(
  212. "Chaos Bolt",
  213. "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))" );
  214. add_action( "Conflagrate" );
  215. add_action( "Incinerate" );
  216.  
  217. // AoE action list
  218. add_action( "Rain of Fire", "if=!ticking&!in_flight", "aoe" );
  219. add_action( "Fire and Brimstone",
  220. "if=ember_react&buff.fire_and_brimstone.down", "aoe" );
  221. add_action( "Immolate", "if=buff.fire_and_brimstone.up&!ticking", "aoe" );
  222. add_action( "Conflagrate", "if=buff.fire_and_brimstone.up", "aoe" );
  223. add_action( "Incinerate", "if=buff.fire_and_brimstone.up", "aoe" );
  224. add_action( "Incinerate", "", "aoe" );
  225.  
  226. }
Advertisement
Add Comment
Please, Sign In to add comment