From bef1b3fdb7f52176539d03c4f74c504e7dc8050c Mon Sep 17 00:00:00 2001 From: nimchip Date: Tue, 21 Apr 2026 14:07:57 -0400 Subject: [PATCH 1/7] [Warrior] Adjusted Execute priority on AOE actions --- engine/class_modules/apl/apl_warrior.cpp | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/engine/class_modules/apl/apl_warrior.cpp b/engine/class_modules/apl/apl_warrior.cpp index 0cc73c337be..bb6143a019f 100644 --- a/engine/class_modules/apl/apl_warrior.cpp +++ b/engine/class_modules/apl/apl_warrior.cpp @@ -375,14 +375,25 @@ void protection( player_t* p ) aoe->add_action( "thunder_blast,if=dot.rend_dot.remains<=1" ); aoe->add_action( "thunder_clap,if=dot.rend_dot.remains<=1" ); aoe->add_action( "thunder_blast,if=spell_targets.thunder_clap>=2&buff.avatar.up" ); - aoe->add_action( "execute,if=spell_targets.execute>=2&(rage>=50|buff.sudden_death.up)&talent.heavy_handed.enabled" ); aoe->add_action( "thunder_clap,if=spell_targets.thunder_clap>=4&buff.avatar.up&hero_tree.mountain_thane|spell_targets.thunder_clap>6&buff.avatar.up" ); aoe->add_action( "revenge,if=rage>=70&spell_targets.revenge>=3" ); aoe->add_action( "shield_slam,if=rage<=60|buff.violent_outburst.up" ); aoe->add_action( "thunder_blast" ); aoe->add_action( "thunder_clap" ); + aoe->add_action( "execute,if=hero_tree.mountain_thane&spell_targets.execute>=2&(rage>=50|buff.sudden_death.up)&talent.heavy_handed.enabled" ); aoe->add_action( "revenge,if=rage>=30|rage>=40&talent.barbaric_training.enabled" ); + aoe->add_action( "execute,if=hero_tree.colossus&spell_targets.execute>=2&(rage>=50|buff.sudden_death.up)&talent.heavy_handed.enabled" ); + colossus_st->add_action( "shield_slam" ); + colossus_st->add_action( "thunder_clap" ); + colossus_st->add_action( "revenge,if=buff.ravager.up" ); + colossus_st->add_action( "execute,if=buff.sudden_death.up&talent.deep_wounds|talent.deep_wounds&rage>=40" ); + colossus_st->add_action( "thunder_clap,if=(spell_targets.thunder_clap>=1|cooldown.shield_slam.remains)&hero_tree.mountain_thane&rage<=80" ); + colossus_st->add_action( "revenge,if=rage>=80&!variable.execute_phase|buff.revenge.up&variable.execute_phase&rage<=18&cooldown.shield_slam.remains|buff.revenge.up&!variable.execute_phase" ); + colossus_st->add_action( "wrecking_throw,if=talent.javelineer.enabled" ); + colossus_st->add_action( "shattering_throw,if=talent.javelineer.enabled" ); + colossus_st->add_action( "revenge" ); + colossus_st->add_action( "devastate" ); thane_st->add_action( "thunder_blast" ); thane_st->add_action( "thunder_clap,if=buff.ravager.up" ); @@ -396,17 +407,6 @@ void protection( player_t* p ) thane_st->add_action( "revenge" ); thane_st->add_action( "devastate" ); - colossus_st->add_action( "shield_slam" ); - colossus_st->add_action( "thunder_clap" ); - colossus_st->add_action( "revenge,if=buff.ravager.up" ); - colossus_st->add_action( "execute,if=buff.sudden_death.up&talent.deep_wounds|talent.deep_wounds&rage>=40" ); - colossus_st->add_action( "thunder_clap,if=(spell_targets.thunder_clap>=1|cooldown.shield_slam.remains)&hero_tree.mountain_thane&rage<=80" ); - colossus_st->add_action( "revenge,if=rage>=80&!variable.execute_phase|buff.revenge.up&variable.execute_phase&rage<=18&cooldown.shield_slam.remains|buff.revenge.up&!variable.execute_phase" ); - colossus_st->add_action( "wrecking_throw,if=talent.javelineer.enabled" ); - colossus_st->add_action( "shattering_throw,if=talent.javelineer.enabled" ); - colossus_st->add_action( "revenge" ); - colossus_st->add_action( "devastate" ); - variables->add_action( "variable,name=execute_phase,value=(talent.massacre.enabled&target.health.pct<35)|target.health.pct<20" ); } //protection_apl_end From 3e56a11d23dffb14eac2402912c60d31bcdd16e1 Mon Sep 17 00:00:00 2001 From: nimchip Date: Tue, 21 Apr 2026 14:28:58 -0400 Subject: [PATCH 2/7] [Warrior] Split AOE APLs for hero specs --- engine/class_modules/apl/apl_warrior.cpp | 42 ++++++++++++++++-------- 1 file changed, 28 insertions(+), 14 deletions(-) diff --git a/engine/class_modules/apl/apl_warrior.cpp b/engine/class_modules/apl/apl_warrior.cpp index bb6143a019f..0708fb8c876 100644 --- a/engine/class_modules/apl/apl_warrior.cpp +++ b/engine/class_modules/apl/apl_warrior.cpp @@ -335,9 +335,10 @@ void protection( player_t* p ) { action_priority_list_t* default_ = p->get_action_priority_list( "default" ); action_priority_list_t* precombat = p->get_action_priority_list( "precombat" ); - action_priority_list_t* aoe = p->get_action_priority_list( "aoe" ); - action_priority_list_t* thane_st = p->get_action_priority_list( "thane_st" ); + action_priority_list_t* colossus_aoe = p->get_action_priority_list( "colossus_aoe" ); + action_priority_list_t* thane_aoe = p->get_action_priority_list( "thane_aoe" ); action_priority_list_t* colossus_st = p->get_action_priority_list( "colossus_st" ); + action_priority_list_t* thane_st = p->get_action_priority_list( "thane_st" ); action_priority_list_t* variables = p->get_action_priority_list( "variables" ); precombat->add_action( "snapshot_stats" ); @@ -368,21 +369,34 @@ void protection( player_t* p ) default_->add_action( "demolish,if=buff.colossal_might.stack>=3" ); default_->add_action( "shield_charge" ); default_->add_action( "shield_block,if=buff.shield_block.remains<=10" ); - default_->add_action( "run_action_list,name=aoe,if=spell_targets.thunder_clap>=3" ); + default_->add_action( "run_action_list,name=colossus_aoe,if=spell_targets.thunder_clap>=3" ); + default_->add_action( "run_action_list,name=thane_aoe,if=spell_targets.thunder_clap>=3" ); default_->add_action( "run_action_list,name=colossus_st,if=talent.demolish" ); default_->add_action( "run_action_list,name=thane_st,if=talent.lightning_strikes" ); - aoe->add_action( "thunder_blast,if=dot.rend_dot.remains<=1" ); - aoe->add_action( "thunder_clap,if=dot.rend_dot.remains<=1" ); - aoe->add_action( "thunder_blast,if=spell_targets.thunder_clap>=2&buff.avatar.up" ); - aoe->add_action( "thunder_clap,if=spell_targets.thunder_clap>=4&buff.avatar.up&hero_tree.mountain_thane|spell_targets.thunder_clap>6&buff.avatar.up" ); - aoe->add_action( "revenge,if=rage>=70&spell_targets.revenge>=3" ); - aoe->add_action( "shield_slam,if=rage<=60|buff.violent_outburst.up" ); - aoe->add_action( "thunder_blast" ); - aoe->add_action( "thunder_clap" ); - aoe->add_action( "execute,if=hero_tree.mountain_thane&spell_targets.execute>=2&(rage>=50|buff.sudden_death.up)&talent.heavy_handed.enabled" ); - aoe->add_action( "revenge,if=rage>=30|rage>=40&talent.barbaric_training.enabled" ); - aoe->add_action( "execute,if=hero_tree.colossus&spell_targets.execute>=2&(rage>=50|buff.sudden_death.up)&talent.heavy_handed.enabled" ); + colossus_aoe->add_action( "thunder_blast,if=dot.rend_dot.remains<=1" ); + colossus_aoe->add_action( "thunder_clap,if=dot.rend_dot.remains<=1" ); + colossus_aoe->add_action( "thunder_blast,if=spell_targets.thunder_clap>=2&buff.avatar.up" ); + colossus_aoe->add_action( "thunder_clap,if=spell_targets.thunder_clap>=4&buff.avatar.up&hero_tree.mountain_thane|spell_targets.thunder_clap>6&buff.avatar.up" ); + colossus_aoe->add_action( "revenge,if=rage>=70&spell_targets.revenge>=3" ); + colossus_aoe->add_action( "shield_slam,if=rage<=60|buff.violent_outburst.up" ); + colossus_aoe->add_action( "thunder_blast" ); + colossus_aoe->add_action( "thunder_clap" ); + colossus_aoe->add_action( "execute,if=hero_tree.mountain_thane&spell_targets.execute>=2&(rage>=50|buff.sudden_death.up)&talent.heavy_handed.enabled" ); + colossus_aoe->add_action( "revenge,if=rage>=30|rage>=40&talent.barbaric_training.enabled" ); + colossus_aoe->add_action( "execute,if=hero_tree.colossus&spell_targets.execute>=2&(rage>=50|buff.sudden_death.up)&talent.heavy_handed.enabled" ); + + thane_aoe->add_action( "thunder_blast,if=dot.rend_dot.remains<=1" ); + thane_aoe->add_action( "thunder_clap,if=dot.rend_dot.remains<=1" ); + thane_aoe->add_action( "thunder_blast,if=spell_targets.thunder_clap>=2&buff.avatar.up" ); + thane_aoe->add_action( "thunder_clap,if=spell_targets.thunder_clap>=4&buff.avatar.up&hero_tree.mountain_thane|spell_targets.thunder_clap>6&buff.avatar.up" ); + thane_aoe->add_action( "revenge,if=rage>=70&spell_targets.revenge>=3" ); + thane_aoe->add_action( "shield_slam,if=rage<=60|buff.violent_outburst.up" ); + thane_aoe->add_action( "thunder_blast" ); + thane_aoe->add_action( "thunder_clap" ); + thane_aoe->add_action( "execute,if=hero_tree.mountain_thane&spell_targets.execute>=2&(rage>=50|buff.sudden_death.up)&talent.heavy_handed.enabled" ); + thane_aoe->add_action( "revenge,if=rage>=30|rage>=40&talent.barbaric_training.enabled" ); + thane_aoe->add_action( "execute,if=hero_tree.colossus&spell_targets.execute>=2&(rage>=50|buff.sudden_death.up)&talent.heavy_handed.enabled" ); colossus_st->add_action( "shield_slam" ); colossus_st->add_action( "thunder_clap" ); From 20cad4a51d95a07c568bfae7ab42be165435b5aa Mon Sep 17 00:00:00 2001 From: nimchip Date: Tue, 21 Apr 2026 14:30:55 -0400 Subject: [PATCH 3/7] [Warrior] Cleaned up split aoe actions for both specs --- engine/class_modules/apl/apl_warrior.cpp | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/engine/class_modules/apl/apl_warrior.cpp b/engine/class_modules/apl/apl_warrior.cpp index 0708fb8c876..37fd4c5e4cc 100644 --- a/engine/class_modules/apl/apl_warrior.cpp +++ b/engine/class_modules/apl/apl_warrior.cpp @@ -374,29 +374,24 @@ void protection( player_t* p ) default_->add_action( "run_action_list,name=colossus_st,if=talent.demolish" ); default_->add_action( "run_action_list,name=thane_st,if=talent.lightning_strikes" ); - colossus_aoe->add_action( "thunder_blast,if=dot.rend_dot.remains<=1" ); colossus_aoe->add_action( "thunder_clap,if=dot.rend_dot.remains<=1" ); - colossus_aoe->add_action( "thunder_blast,if=spell_targets.thunder_clap>=2&buff.avatar.up" ); - colossus_aoe->add_action( "thunder_clap,if=spell_targets.thunder_clap>=4&buff.avatar.up&hero_tree.mountain_thane|spell_targets.thunder_clap>6&buff.avatar.up" ); + colossus_aoe->add_action( "thunder_clap,if=spell_targets.thunder_clap>6&buff.avatar.up" ); colossus_aoe->add_action( "revenge,if=rage>=70&spell_targets.revenge>=3" ); colossus_aoe->add_action( "shield_slam,if=rage<=60|buff.violent_outburst.up" ); - colossus_aoe->add_action( "thunder_blast" ); colossus_aoe->add_action( "thunder_clap" ); - colossus_aoe->add_action( "execute,if=hero_tree.mountain_thane&spell_targets.execute>=2&(rage>=50|buff.sudden_death.up)&talent.heavy_handed.enabled" ); colossus_aoe->add_action( "revenge,if=rage>=30|rage>=40&talent.barbaric_training.enabled" ); colossus_aoe->add_action( "execute,if=hero_tree.colossus&spell_targets.execute>=2&(rage>=50|buff.sudden_death.up)&talent.heavy_handed.enabled" ); thane_aoe->add_action( "thunder_blast,if=dot.rend_dot.remains<=1" ); thane_aoe->add_action( "thunder_clap,if=dot.rend_dot.remains<=1" ); thane_aoe->add_action( "thunder_blast,if=spell_targets.thunder_clap>=2&buff.avatar.up" ); - thane_aoe->add_action( "thunder_clap,if=spell_targets.thunder_clap>=4&buff.avatar.up&hero_tree.mountain_thane|spell_targets.thunder_clap>6&buff.avatar.up" ); + thane_aoe->add_action( "thunder_clap,if=spell_targets.thunder_clap>=4&buff.avatar.up" ); thane_aoe->add_action( "revenge,if=rage>=70&spell_targets.revenge>=3" ); thane_aoe->add_action( "shield_slam,if=rage<=60|buff.violent_outburst.up" ); thane_aoe->add_action( "thunder_blast" ); thane_aoe->add_action( "thunder_clap" ); thane_aoe->add_action( "execute,if=hero_tree.mountain_thane&spell_targets.execute>=2&(rage>=50|buff.sudden_death.up)&talent.heavy_handed.enabled" ); thane_aoe->add_action( "revenge,if=rage>=30|rage>=40&talent.barbaric_training.enabled" ); - thane_aoe->add_action( "execute,if=hero_tree.colossus&spell_targets.execute>=2&(rage>=50|buff.sudden_death.up)&talent.heavy_handed.enabled" ); colossus_st->add_action( "shield_slam" ); colossus_st->add_action( "thunder_clap" ); From d1442268727ab14537d9d76774101a8c0ba7c376 Mon Sep 17 00:00:00 2001 From: nimchip Date: Tue, 21 Apr 2026 14:47:43 -0400 Subject: [PATCH 4/7] [Warrior] Fixed issue with missing hero talent conditionals on aoe actions split --- engine/class_modules/apl/apl_warrior.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/engine/class_modules/apl/apl_warrior.cpp b/engine/class_modules/apl/apl_warrior.cpp index 37fd4c5e4cc..135a7012c22 100644 --- a/engine/class_modules/apl/apl_warrior.cpp +++ b/engine/class_modules/apl/apl_warrior.cpp @@ -369,8 +369,8 @@ void protection( player_t* p ) default_->add_action( "demolish,if=buff.colossal_might.stack>=3" ); default_->add_action( "shield_charge" ); default_->add_action( "shield_block,if=buff.shield_block.remains<=10" ); - default_->add_action( "run_action_list,name=colossus_aoe,if=spell_targets.thunder_clap>=3" ); - default_->add_action( "run_action_list,name=thane_aoe,if=spell_targets.thunder_clap>=3" ); + default_->add_action( "run_action_list,name=colossus_aoe,if=hero_tree.colossus&spell_targets.thunder_clap>=3" ); + default_->add_action( "run_action_list,name=thane_aoe,if=hero_tree.mountain_thane&spell_targets.thunder_clap>=3" ); default_->add_action( "run_action_list,name=colossus_st,if=talent.demolish" ); default_->add_action( "run_action_list,name=thane_st,if=talent.lightning_strikes" ); From a6efd43733b9ed781dd49e92b0d348402077d0fc Mon Sep 17 00:00:00 2001 From: nimchip Date: Tue, 21 Apr 2026 15:35:09 -0400 Subject: [PATCH 5/7] [Warrior] Additional clean up for AOE action split --- engine/class_modules/apl/apl_warrior.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/engine/class_modules/apl/apl_warrior.cpp b/engine/class_modules/apl/apl_warrior.cpp index 135a7012c22..04ab5f6e26c 100644 --- a/engine/class_modules/apl/apl_warrior.cpp +++ b/engine/class_modules/apl/apl_warrior.cpp @@ -380,7 +380,7 @@ void protection( player_t* p ) colossus_aoe->add_action( "shield_slam,if=rage<=60|buff.violent_outburst.up" ); colossus_aoe->add_action( "thunder_clap" ); colossus_aoe->add_action( "revenge,if=rage>=30|rage>=40&talent.barbaric_training.enabled" ); - colossus_aoe->add_action( "execute,if=hero_tree.colossus&spell_targets.execute>=2&(rage>=50|buff.sudden_death.up)&talent.heavy_handed.enabled" ); + colossus_aoe->add_action( "execute,if=spell_targets.execute>=2&(rage>=50|buff.sudden_death.up)&talent.heavy_handed.enabled" ); thane_aoe->add_action( "thunder_blast,if=dot.rend_dot.remains<=1" ); thane_aoe->add_action( "thunder_clap,if=dot.rend_dot.remains<=1" ); @@ -390,7 +390,7 @@ void protection( player_t* p ) thane_aoe->add_action( "shield_slam,if=rage<=60|buff.violent_outburst.up" ); thane_aoe->add_action( "thunder_blast" ); thane_aoe->add_action( "thunder_clap" ); - thane_aoe->add_action( "execute,if=hero_tree.mountain_thane&spell_targets.execute>=2&(rage>=50|buff.sudden_death.up)&talent.heavy_handed.enabled" ); + thane_aoe->add_action( "execute,if=spell_targets.execute>=2&(rage>=50|buff.sudden_death.up)&talent.heavy_handed.enabled" ); thane_aoe->add_action( "revenge,if=rage>=30|rage>=40&talent.barbaric_training.enabled" ); colossus_st->add_action( "shield_slam" ); From 1c0186b79c1593784d717a9dbaaf904f9edb975f Mon Sep 17 00:00:00 2001 From: nimchip Date: Tue, 21 Apr 2026 15:35:59 -0400 Subject: [PATCH 6/7] [Warrior] Added phalanx optimizations for AOE actions --- engine/class_modules/apl/apl_warrior.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/engine/class_modules/apl/apl_warrior.cpp b/engine/class_modules/apl/apl_warrior.cpp index 04ab5f6e26c..ac097c2ab30 100644 --- a/engine/class_modules/apl/apl_warrior.cpp +++ b/engine/class_modules/apl/apl_warrior.cpp @@ -375,6 +375,7 @@ void protection( player_t* p ) default_->add_action( "run_action_list,name=thane_st,if=talent.lightning_strikes" ); colossus_aoe->add_action( "thunder_clap,if=dot.rend_dot.remains<=1" ); + colossus_aoe->add_action( "shield_slam,if=buff.violent_outburst.up&buff.phalanx.up" ); colossus_aoe->add_action( "thunder_clap,if=spell_targets.thunder_clap>6&buff.avatar.up" ); colossus_aoe->add_action( "revenge,if=rage>=70&spell_targets.revenge>=3" ); colossus_aoe->add_action( "shield_slam,if=rage<=60|buff.violent_outburst.up" ); @@ -384,7 +385,9 @@ void protection( player_t* p ) thane_aoe->add_action( "thunder_blast,if=dot.rend_dot.remains<=1" ); thane_aoe->add_action( "thunder_clap,if=dot.rend_dot.remains<=1" ); + thane_aoe->add_action( "shield_slam,if=buff.violent_outburst.up&buff.phalanx.up" ); thane_aoe->add_action( "thunder_blast,if=spell_targets.thunder_clap>=2&buff.avatar.up" ); + thane_aoe->add_action( "shield_slam,if=buff.phalanx.up" ); thane_aoe->add_action( "thunder_clap,if=spell_targets.thunder_clap>=4&buff.avatar.up" ); thane_aoe->add_action( "revenge,if=rage>=70&spell_targets.revenge>=3" ); thane_aoe->add_action( "shield_slam,if=rage<=60|buff.violent_outburst.up" ); From 55db5fee7ec411403a4e3f6321e11f0800ca8f83 Mon Sep 17 00:00:00 2001 From: nimchip Date: Sun, 9 Aug 2026 17:06:05 -0400 Subject: [PATCH 7/7] [Warrior] 12.1 Protection APL updates --- engine/class_modules/apl/apl_warrior.cpp | 52 ++++++++++++------------ 1 file changed, 26 insertions(+), 26 deletions(-) diff --git a/engine/class_modules/apl/apl_warrior.cpp b/engine/class_modules/apl/apl_warrior.cpp index 21682da9120..1dc6557fc20 100644 --- a/engine/class_modules/apl/apl_warrior.cpp +++ b/engine/class_modules/apl/apl_warrior.cpp @@ -337,8 +337,8 @@ void protection( player_t* p ) action_priority_list_t* default_ = p->get_action_priority_list( "default" ); action_priority_list_t* precombat = p->get_action_priority_list( "precombat" ); action_priority_list_t* colossus_aoe = p->get_action_priority_list( "colossus_aoe" ); - action_priority_list_t* thane_aoe = p->get_action_priority_list( "thane_aoe" ); action_priority_list_t* colossus_st = p->get_action_priority_list( "colossus_st" ); + action_priority_list_t* thane_aoe = p->get_action_priority_list( "thane_aoe" ); action_priority_list_t* thane_st = p->get_action_priority_list( "thane_st" ); action_priority_list_t* variables = p->get_action_priority_list( "variables" ); @@ -363,6 +363,7 @@ void protection( player_t* p ) default_->add_action( "potion,if=buff.avatar.up|buff.avatar.up&target.health.pct<=20" ); default_->add_action( "ignore_pain,if=target.health.pct>=20&(rage.deficit<=15&cooldown.shield_slam.ready|rage.deficit<=20&cooldown.shield_charge.ready|rage.deficit<=20&cooldown.demoralizing_shout.ready&talent.booming_voice.enabled|rage.deficit<=15|rage.deficit<=40&cooldown.shield_slam.ready&buff.violent_outburst.up&talent.heavy_repercussions.enabled&talent.practiced_strikes.enabled|rage.deficit<=17&cooldown.shield_slam.ready&talent.heavy_repercussions.enabled|rage.deficit<=18&cooldown.shield_slam.ready&talent.practiced_strikes.enabled)|(rage>=70|buff.seeing_red.stack=7&rage>=35)&cooldown.shield_slam.remains<=1&buff.shield_block.remains,use_off_gcd=1" ); default_->add_action( "ravager" ); + default_->add_action( "thunder_blast,if=talent.booming_voice.enabled&buff.thunder_blast.stack=2&talent.snap_induction.enabled" ); default_->add_action( "demoralizing_shout,if=talent.booming_voice.enabled" ); default_->add_action( "champions_leap" ); default_->add_action( "champions_spear" ); @@ -375,48 +376,47 @@ void protection( player_t* p ) default_->add_action( "run_action_list,name=colossus_st,if=talent.demolish" ); default_->add_action( "run_action_list,name=thane_st,if=talent.lightning_strikes" ); - colossus_aoe->add_action( "thunder_clap,if=dot.rend_dot.remains<=1" ); - colossus_aoe->add_action( "shield_slam,if=buff.violent_outburst.up&buff.phalanx.up" ); - colossus_aoe->add_action( "thunder_clap,if=spell_targets.thunder_clap>6&buff.avatar.up" ); - colossus_aoe->add_action( "revenge,if=rage>=70&spell_targets.revenge>=3" ); - colossus_aoe->add_action( "shield_slam,if=rage<=60|buff.violent_outburst.up" ); + colossus_aoe->add_action( "thunder_clap,if=buff.ravager.up&!dot.rend_dot.ticking" ); + colossus_aoe->add_action( "revenge,if=buff.revenge.up" ); + colossus_aoe->add_action( "shield_slam,if=buff.phalanx.up&(buff.violent_outburst.up|rage<30)" ); + colossus_aoe->add_action( "thunder_clap,if=rage<30" ); + colossus_aoe->add_action( "revenge,if=spell_targets.revenge>=3" ); + colossus_aoe->add_action( "shield_slam" ); colossus_aoe->add_action( "thunder_clap" ); - colossus_aoe->add_action( "revenge,if=rage>=30|rage>=40&talent.barbaric_training.enabled" ); + colossus_aoe->add_action( "revenge,if=rage>=30" ); colossus_aoe->add_action( "execute,if=spell_targets.execute>=2&(rage>=50|buff.sudden_death.up)&talent.heavy_handed.enabled" ); - thane_aoe->add_action( "thunder_blast,if=dot.rend_dot.remains<=1" ); - thane_aoe->add_action( "thunder_clap,if=dot.rend_dot.remains<=1" ); - thane_aoe->add_action( "shield_slam,if=buff.violent_outburst.up&buff.phalanx.up" ); - thane_aoe->add_action( "thunder_blast,if=spell_targets.thunder_clap>=2&buff.avatar.up" ); - thane_aoe->add_action( "shield_slam,if=buff.phalanx.up" ); - thane_aoe->add_action( "thunder_clap,if=spell_targets.thunder_clap>=4&buff.avatar.up" ); - thane_aoe->add_action( "revenge,if=rage>=70&spell_targets.revenge>=3" ); - thane_aoe->add_action( "shield_slam,if=rage<=60|buff.violent_outburst.up" ); - thane_aoe->add_action( "thunder_blast" ); - thane_aoe->add_action( "thunder_clap" ); - thane_aoe->add_action( "execute,if=spell_targets.execute>=2&(rage>=50|buff.sudden_death.up)&talent.heavy_handed.enabled" ); - thane_aoe->add_action( "revenge,if=rage>=30|rage>=40&talent.barbaric_training.enabled" ); - colossus_st->add_action( "shield_slam" ); + colossus_st->add_action( "thunder_clap,if=!buff.phalanx.up" ); + colossus_st->add_action( "execute" ); + colossus_st->add_action( "revenge,if=buff.revenge.up" ); colossus_st->add_action( "thunder_clap" ); - colossus_st->add_action( "revenge,if=buff.ravager.up" ); - colossus_st->add_action( "execute,if=buff.sudden_death.up&talent.deep_wounds|talent.deep_wounds&rage>=40" ); + colossus_st->add_action( "revenge" ); colossus_st->add_action( "thunder_clap,if=(spell_targets.thunder_clap>=1|cooldown.shield_slam.remains)&hero_tree.mountain_thane&rage<=80" ); colossus_st->add_action( "revenge,if=rage>=80&!variable.execute_phase|buff.revenge.up&variable.execute_phase&rage<=18&cooldown.shield_slam.remains|buff.revenge.up&!variable.execute_phase" ); colossus_st->add_action( "wrecking_throw,if=talent.javelineer.enabled" ); colossus_st->add_action( "shattering_throw,if=talent.javelineer.enabled" ); - colossus_st->add_action( "revenge" ); colossus_st->add_action( "devastate" ); + thane_aoe->add_action( "thunder_blast" ); + thane_aoe->add_action( "shield_slam,if=buff.phalanx.up" ); + thane_aoe->add_action( "thunder_clap" ); + thane_aoe->add_action( "revenge,if=buff.revenge.up" ); + thane_aoe->add_action( "shield_slam" ); + thane_aoe->add_action( "revenge" ); + thane_aoe->add_action( "execute,if=spell_targets.execute=3&(rage>=50|buff.sudden_death.up)&talent.heavy_handed.enabled" ); + thane_st->add_action( "thunder_blast" ); - thane_st->add_action( "thunder_clap,if=buff.ravager.up" ); thane_st->add_action( "shield_slam" ); + thane_st->add_action( "execute" ); + + colossus_st->add_action( "thunder_clap,if=!buff.phalanx.up" ); + + thane_st->add_action( "revenge,if=buff.revenge.up" ); thane_st->add_action( "thunder_clap" ); thane_st->add_action( "thunder_blast,if=(spell_targets.thunder_clap>=1|cooldown.shield_slam.remains)" ); - thane_st->add_action( "execute,if=buff.sudden_death.up|rage>=40" ); thane_st->add_action( "wrecking_throw,if=talent.javelineer.enabled" ); thane_st->add_action( "shattering_throw,if=talent.javelineer.enabled" ); - thane_st->add_action( "revenge,if=rage>=80&!variable.execute_phase|buff.revenge.up&variable.execute_phase&rage<=18&cooldown.shield_slam.remains|buff.revenge.up&!variable.execute_phase" ); thane_st->add_action( "revenge" ); thane_st->add_action( "devastate" );