From a89344ae527fa3053b07d489541a6e891422c50a Mon Sep 17 00:00:00 2001 From: Woliance <34073843+Woliance@users.noreply.github.com> Date: Fri, 11 Sep 2026 19:47:18 +0200 Subject: [PATCH 1/6] APL Update for Protection Paladin &cooldown.avenging_wrath.remains<3 --- engine/class_modules/apl/apl_paladin.cpp | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/engine/class_modules/apl/apl_paladin.cpp b/engine/class_modules/apl/apl_paladin.cpp index 99334ea3198..15a6cb195ea 100644 --- a/engine/class_modules/apl/apl_paladin.cpp +++ b/engine/class_modules/apl/apl_paladin.cpp @@ -82,32 +82,31 @@ void protection( player_t* p ) default_->add_action( "use_item,name=algethar_puzzle_box" ); default_->add_action( "use_items" ); default_->add_action( "potion,if=buff.avenging_wrath.up" ); - default_->add_action( "avenging_wrath,if=cooldown.divine_toll.remains<=10" ); + default_->add_action( "holy_armaments,if=next_armament=holy_bulwark&(cooldown.avenging_wrath.up|buff.avenging_wrath.up)" ); + default_->add_action( "avenging_wrath,if=cooldown.divine_toll.remains<=10&(hero_tree.templar|(buff.holy_bulwark.up|next_armament=sacred_weapon&cooldown.holy_armaments.charges<2|cooldown.holy_armaments.charges<1))" ); default_->add_action( "fireblood,if=buff.avenging_wrath.up" ); default_->add_action( "divine_toll,if=buff.avenging_wrath.up|(!talent.righteous_protector.enabled&cooldown.avenging_wrath.remains>30)" ); default_->add_action( "hammer_of_light,if=(!buff.undisputed_ruling.up|buff.hammer_of_light_ready.remains<5)&debuff.judgment.up" ); default_->add_action( "shield_of_the_righteous,if=!buff.hammer_of_light_ready.up|(!buff.hammer_of_light_ready.remains<5&buff.undisputed_ruling.up)|buff.hammer_of_light_free.up|prev_gcd.1.divine_toll" ); - default_->add_action( "holy_armaments,if=next_armament=sacred_weapon&(buff.sacred_weapon.remains<6|!buff.sacred_weapon.up)" ); + default_->add_action( "holy_armaments,if=next_armament=sacred_weapon&((buff.sacred_weapon.remains<6|!buff.sacred_weapon.up|(cooldown.avenging_wrath.remains>20&!buff.avenging_wrath.up))|charges=2)" ); default_->add_action( "hammer_of_wrath,if=buff.hammer_of_light_ready.up&!debuff.judgment.up" ); - default_->add_action( "hammer_of_wrath,if=hero_tree.lightsmith" ); + default_->add_action( "hammer_of_wrath,if=hero_tree.lightsmith&full_recharge_time<=gcd*2" ); default_->add_action( "judgment,if=buff.hammer_of_light_ready.up&!debuff.judgment.up" ); default_->add_action( "avengers_shield,if=buff.vanguard.up|(buff.avenging_wrath.up&apex.3)" ); - default_->add_action( "holy_armaments,if=next_armament=holy_bulwark&cooldown.avenging_wrath.remains<5" ); - default_->add_action( "consecration,if=buff.divine_guidance.stack>=5" ); + default_->add_action( "holy_armaments,if=next_armament=holy_bulwark&cooldown.avenging_wrath.remains<3" ); + default_->add_action( "consecration,if=buff.divine_guidance.stack=5" ); default_->add_action( "hammer_of_wrath" ); default_->add_action( "judgment,if=full_recharge_time<=gcd*2" ); default_->add_action( "avengers_shield" ); - default_->add_action( "consecration,if=!consecration.up" ); default_->add_action( "hammer_of_the_righteous,if=buff.blessed_assurance.up" ); default_->add_action( "blessed_hammer,if=buff.blessed_assurance.up" ); default_->add_action( "judgment" ); + default_->add_action( "consecration,if=buff.divine_guidance.stack>=4" ); default_->add_action( "holy_armaments,if=next_armament=holy_bulwark&charges=2" ); - default_->add_action( "consecration,if=!consecration.up" ); default_->add_action( "blessed_hammer" ); default_->add_action( "hammer_of_the_righteous" ); default_->add_action( "arcane_torrent" ); default_->add_action( "word_of_glory,if=buff.shining_light_free.up" ); - default_->add_action( "consecration" ); } //protection_apl_end } // namespace paladin_apl From 46f827c5258c265ea5abf2bcbe20495f017f5e76 Mon Sep 17 00:00:00 2001 From: Woliance <34073843+Woliance@users.noreply.github.com> Date: Fri, 11 Sep 2026 20:12:59 +0200 Subject: [PATCH 2/6] Small Profile Update Most of the diff is changing the order of bonuses. --- .../MID2/MID2_Generate_Paladin.simc | 31 +++++++++---------- 1 file changed, 15 insertions(+), 16 deletions(-) diff --git a/profiles/generators/MID2/MID2_Generate_Paladin.simc b/profiles/generators/MID2/MID2_Generate_Paladin.simc index 7340966a176..390f8b29cd7 100644 --- a/profiles/generators/MID2/MID2_Generate_Paladin.simc +++ b/profiles/generators/MID2/MID2_Generate_Paladin.simc @@ -56,7 +56,7 @@ main_hand=,id=268213,enchant_id=8689,ilevel=344 save=MID2_Paladin_Retribution_Templar.simc -paladin=MID2_Paladin_Protection +paladin=MID2_Paladin_Protection_Templar level=90 race=tauren role=tank @@ -82,9 +82,9 @@ trinket2=,id=270175,ilevel=344 main_hand=,id=268209,enchant_id=8039,ilevel=344 off_hand=,id=268196,ilevel=334 -save=MID2_Paladin_Protection.simc +save=MID2_Paladin_Protection_Templar.simc -paladin=MID2_Paladin_Protection_Lightsmith +paladin=MID2_Paladin_Protection level=90 race=tauren role=tank @@ -93,22 +93,21 @@ spec=protection talents=CIEAAAAAAAAAAAAAAAAAAAAAAsNzYWmZMzYmxyyALzCDDAwAAAAAAg0MDzYmZMzs1GAGYGYGsNAAACwMzyySLzMWsshBghZYMAYmBAzAM2A omnium_talents=136822:1/136816:1/136817:1/136815:1/136826:1 -head=,id=271465,bonus_id=13692/13698/1808,gem_id=240983,ilevel=334,enchant_id=7991,redirected_base_stats=251126 -neck=,id=268265,gem_id=240890/240890,bonus_id=13708/13668,ilevel=344 -shoulder=,id=271463,enchant_id=7973,ilevel=334,redirected_base_stats=251138 +head=,id=271465,enchant_id=7961,gem_id=240983,bonus_id=1808/13692/13698,redirected_base_stats=251126,ilevel=334 +neck=,id=268265,gem_id=240894/240894,bonus_id=13668/13708,ilevel=344 +shoulder=,id=271463,enchant_id=8031,bonus_id=13694/13697,redirected_base_stats=251138,ilevel=334 back=,id=268253,ilevel=344 -chest=,id=271468,enchant_id=7987,ilevel=344,redirected_base_stats=268222 -wrist=,id=237834,bonus_id=13836/13751/9627/8960/12384,crafted_stats=32/36,crafting_quality=5 -hands=,id=271466,bonus_id=13691/13697,ilevel=334,redirected_base_stats=251214 -waist=,id=268259,ilevel=344,gem_id=240890 -legs=,id=271464,enchant_id=8159,bonus_id=13846,ilevel=344,redirected_base_stats=271878 -feet=,id=237828,enchant_id=8019,bonus_id=13836/13751/9627/8960/12384,crafted_stats=32/36,crafting_quality=5 -finger1=,id=268252,enchant_id=8025,gem_id=240900,bonus_id=13668,ilevel=334 -finger2=,id=252258,enchant_id=8025,gem_id=240900,bonus_id=13668,ilevel=334 +chest=,id=271468,enchant_id=7987,bonus_id=13690/13698,redirected_base_stats=268222,ilevel=344 +wrist=,id=237834,bonus_id=8960/12384/13751/13836/9627,crafted_stats=32/36,crafting_quality=5 +hands=,id=271466,bonus_id=13691/13697,redirected_base_stats=251214,ilevel=334 +waist=,id=268259,gem_id=240894,bonus_id=13750,ilevel=344 +legs=,id=271464,enchant_id=8159,bonus_id=13846,redirected_base_stats=271878,ilevel=344 +feet=,id=237828,enchant_id=8019,bonus_id=8960/12384/13751/13836/9627,crafted_stats=32/36,crafting_quality=5 +finger1=,id=268252,enchant_id=7967,gem_id=240894,bonus_id=13668,ilevel=334 +finger2=,id=252258,enchant_id=7967,gem_id=240894,bonus_id=13668,ilevel=334 trinket1=,id=270173,ilevel=344 trinket2=,id=270175,ilevel=344 main_hand=,id=268209,enchant_id=8039,ilevel=344 off_hand=,id=251150,ilevel=334 - -save=MID2_Paladin_Protection_Lightsmith.simc +save=MID2_Paladin_Protection.simc From f7f0e71dfb7a3b89bb54f1e4f9ef1ab789702692 Mon Sep 17 00:00:00 2001 From: Woliance <34073843+Woliance@users.noreply.github.com> Date: Sun, 13 Sep 2026 05:52:43 +0200 Subject: [PATCH 3/6] Updating APL, Lightsmith Profile, and default Pot&Flask Default flask largely depends on gear, chosen purely based on profile gear. --- engine/class_modules/apl/apl_paladin.cpp | 16 ++++++++++---- engine/class_modules/paladin/sc_paladin.cpp | 6 ++--- .../MID2/MID2_Generate_Paladin.simc | 22 +++++++++---------- 3 files changed, 26 insertions(+), 18 deletions(-) diff --git a/engine/class_modules/apl/apl_paladin.cpp b/engine/class_modules/apl/apl_paladin.cpp index 15a6cb195ea..a4016adf351 100644 --- a/engine/class_modules/apl/apl_paladin.cpp +++ b/engine/class_modules/apl/apl_paladin.cpp @@ -75,38 +75,46 @@ void protection( player_t* p ) precombat->add_action( "rite_of_adjuration" ); precombat->add_action( "snapshot_stats" ); precombat->add_action( "devotion_aura" ); + precombat->add_action( "potion,pre_pot_time=8,if=potion.liquid_luster" ); precombat->add_action( "lights_judgment" ); precombat->add_action( "consecration" ); default_->add_action( "auto_attack" ); - default_->add_action( "use_item,name=algethar_puzzle_box" ); default_->add_action( "use_items" ); - default_->add_action( "potion,if=buff.avenging_wrath.up" ); + default_->add_action( "potion,if=(buff.avenging_wrath.up&!potion.liquid_luster)|(cooldown.avenging_wrath.remains<=8&potion.liquid_luster)" ); default_->add_action( "holy_armaments,if=next_armament=holy_bulwark&(cooldown.avenging_wrath.up|buff.avenging_wrath.up)" ); default_->add_action( "avenging_wrath,if=cooldown.divine_toll.remains<=10&(hero_tree.templar|(buff.holy_bulwark.up|next_armament=sacred_weapon&cooldown.holy_armaments.charges<2|cooldown.holy_armaments.charges<1))" ); default_->add_action( "fireblood,if=buff.avenging_wrath.up" ); default_->add_action( "divine_toll,if=buff.avenging_wrath.up|(!talent.righteous_protector.enabled&cooldown.avenging_wrath.remains>30)" ); default_->add_action( "hammer_of_light,if=(!buff.undisputed_ruling.up|buff.hammer_of_light_ready.remains<5)&debuff.judgment.up" ); - default_->add_action( "shield_of_the_righteous,if=!buff.hammer_of_light_ready.up|(!buff.hammer_of_light_ready.remains<5&buff.undisputed_ruling.up)|buff.hammer_of_light_free.up|prev_gcd.1.divine_toll" ); + default_->add_action( "shield_of_the_righteous,if=hero_tree.templar&(!buff.hammer_of_light_ready.up|(!buff.hammer_of_light_ready.remains<5&buff.undisputed_ruling.up)|buff.hammer_of_light_free.up|prev_gcd.1.divine_toll)" ); + default_->add_action( "shield_of_the_righteous,if=hero_tree.lightsmith&(((debuff.judgment.up&(holy_power>=5&buff.avenging_wrath.up)|(holy_power>=3&!buff.avenging_wrath.up))|holy_power=5)|!talent.instrument_of_the_divine.enabled|buff.divine_purpose.up)" ); default_->add_action( "holy_armaments,if=next_armament=sacred_weapon&((buff.sacred_weapon.remains<6|!buff.sacred_weapon.up|(cooldown.avenging_wrath.remains>20&!buff.avenging_wrath.up))|charges=2)" ); default_->add_action( "hammer_of_wrath,if=buff.hammer_of_light_ready.up&!debuff.judgment.up" ); default_->add_action( "hammer_of_wrath,if=hero_tree.lightsmith&full_recharge_time<=gcd*2" ); default_->add_action( "judgment,if=buff.hammer_of_light_ready.up&!debuff.judgment.up" ); + default_->add_action( "shield_of_the_righteous,if=buff.avenging_wrath.up&talent.instrument_of_the_divine" ); default_->add_action( "avengers_shield,if=buff.vanguard.up|(buff.avenging_wrath.up&apex.3)" ); default_->add_action( "holy_armaments,if=next_armament=holy_bulwark&cooldown.avenging_wrath.remains<3" ); - default_->add_action( "consecration,if=buff.divine_guidance.stack=5" ); + default_->add_action( "consecration,if=buff.divine_guidance.stack>=5" ); default_->add_action( "hammer_of_wrath" ); default_->add_action( "judgment,if=full_recharge_time<=gcd*2" ); default_->add_action( "avengers_shield" ); + default_->add_action( "consecration,if=!consecration.up" ); default_->add_action( "hammer_of_the_righteous,if=buff.blessed_assurance.up" ); default_->add_action( "blessed_hammer,if=buff.blessed_assurance.up" ); default_->add_action( "judgment" ); default_->add_action( "consecration,if=buff.divine_guidance.stack>=4" ); default_->add_action( "holy_armaments,if=next_armament=holy_bulwark&charges=2" ); + default_->add_action( "consecration,if=!consecration.up" ); default_->add_action( "blessed_hammer" ); default_->add_action( "hammer_of_the_righteous" ); default_->add_action( "arcane_torrent" ); default_->add_action( "word_of_glory,if=buff.shining_light_free.up" ); + default_->add_action( "hammer_of_the_righteous" ); + default_->add_action( "arcane_torrent" ); + default_->add_action( "word_of_glory,if=buff.shining_light_free.up" ); + default_->add_action( "consecration" ); } //protection_apl_end } // namespace paladin_apl diff --git a/engine/class_modules/paladin/sc_paladin.cpp b/engine/class_modules/paladin/sc_paladin.cpp index 68c4e77768c..2afac2dee6b 100644 --- a/engine/class_modules/paladin/sc_paladin.cpp +++ b/engine/class_modules/paladin/sc_paladin.cpp @@ -3773,7 +3773,7 @@ std::string paladin_t::default_potion() const { std::string retribution_pot = ( true_level > 80 ) ? "lights_potential_2" : "disabled"; - std::string protection_pot = ( true_level > 80 ) ? "lights_potential_2" : "disabled"; + std::string protection_pot = ( true_level > 80 ) ? "liquid_luster_2" : "disabled"; std::string holy_dps_pot = ( true_level > 50 ) ? "spectral_intellect" : "disabled"; @@ -3796,7 +3796,7 @@ std::string paladin_t::default_food() const { std::string retribution_food = ( true_level > 80 ) ? "royal_roast" : "disabled"; - std::string protection_food = ( true_level > 80 ) ? "blooming_feast" : "disabled"; + std::string protection_food = ( true_level > 80 ) ? "silvermoon_parade" : "disabled"; std::string holy_dps_food = ( true_level > 50 ) ? "feast_of_gluttonous_hedonism" : "disabled"; @@ -3819,7 +3819,7 @@ std::string paladin_t::default_flask() const { std::string retribution_flask = ( true_level > 80 ) ? "flask_of_the_magisters_2" : "disabled"; - std::string protection_flask = ( true_level > 80 ) ? "flask_of_the_shattered_sun_2" : "disabled"; + std::string protection_flask = ( true_level > 80 ) ? "flask_of_the_blood_knights_2" : "disabled"; std::string holy_dps_flask = ( true_level > 50 ) ? "spectral_flask_of_power" : "disabled"; diff --git a/profiles/generators/MID2/MID2_Generate_Paladin.simc b/profiles/generators/MID2/MID2_Generate_Paladin.simc index 390f8b29cd7..3567cf7fefc 100644 --- a/profiles/generators/MID2/MID2_Generate_Paladin.simc +++ b/profiles/generators/MID2/MID2_Generate_Paladin.simc @@ -90,24 +90,24 @@ race=tauren role=tank position=front spec=protection -talents=CIEAAAAAAAAAAAAAAAAAAAAAAsNzYWmZMzYmxyyALzCDDAwAAAAAAg0MDzYmZMzs1GAGYGYGsNAAACwMzyySLzMWsshBghZYMAYmBAzAM2A +talents=CIEAAAAAAAAAAAAAAAAAAAAAAsNzYWmZMzYmxyyALzCDDAwAAAAAAg0MDzYmZMzs1GAGYGYGsNAAACwMzyySLzMWsthBghZYMAYmBAzAM2A omnium_talents=136822:1/136816:1/136817:1/136815:1/136826:1 -head=,id=271465,enchant_id=7961,gem_id=240983,bonus_id=1808/13692/13698,redirected_base_stats=251126,ilevel=334 -neck=,id=268265,gem_id=240894/240894,bonus_id=13668/13708,ilevel=344 -shoulder=,id=271463,enchant_id=8031,bonus_id=13694/13697,redirected_base_stats=251138,ilevel=334 +head=,id=237832,enchant_id=7961,gem_id=240983,bonus_id=13836/13751/9627/8960/12384/13750,crafted_stats=32/36,crafting_quality=5 +neck=,id=268265,gem_id=240910/240910,bonus_id=13987,ilevel=344 +shoulder=,id=271463,enchant_id=8031,bonus_id=13694/13697,ilevel=334 back=,id=268253,ilevel=344 chest=,id=271468,enchant_id=7987,bonus_id=13690/13698,redirected_base_stats=268222,ilevel=344 -wrist=,id=237834,bonus_id=8960/12384/13751/13836/9627,crafted_stats=32/36,crafting_quality=5 +wrist=,id=237834,gem_id=240910,bonus_id=8960/12384/13751/13836/9627/13750,crafted_stats=32/36,crafting_quality=5 hands=,id=271466,bonus_id=13691/13697,redirected_base_stats=251214,ilevel=334 -waist=,id=268259,gem_id=240894,bonus_id=13750,ilevel=344 -legs=,id=271464,enchant_id=8159,bonus_id=13846,redirected_base_stats=271878,ilevel=344 -feet=,id=237828,enchant_id=8019,bonus_id=8960/12384/13751/13836/9627,crafted_stats=32/36,crafting_quality=5 -finger1=,id=268252,enchant_id=7967,gem_id=240894,bonus_id=13668,ilevel=334 -finger2=,id=252258,enchant_id=7967,gem_id=240894,bonus_id=13668,ilevel=334 +waist=,id=268259,gem_id=240910,bonus_id=13750,ilevel=344 +legs=,id=271464,enchant_id=8159,bonus_id=13708,redirected_base_stats=271878,ilevel=344 +feet=,id=268245,enchant_id=8019,ilevel=334 +finger1=,id=159459,enchant_id=7967,gem_id=240910,bonus_id=13750,ilevel=334 +finger2=,id=252258,enchant_id=7967,gem_id=240910,bonus_id=13668,ilevel=334 trinket1=,id=270173,ilevel=344 trinket2=,id=270175,ilevel=344 main_hand=,id=268209,enchant_id=8039,ilevel=344 -off_hand=,id=251150,ilevel=334 +off_hand=,id=268196,ilevel=334 save=MID2_Paladin_Protection.simc From cee2f672322ac749c0931d0ab150408874af8f33 Mon Sep 17 00:00:00 2001 From: Woliance <34073843+Woliance@users.noreply.github.com> Date: Sun, 13 Sep 2026 06:07:56 +0200 Subject: [PATCH 4/6] Changing Default Armament And adding a comment. --- engine/class_modules/paladin/sc_paladin.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/engine/class_modules/paladin/sc_paladin.cpp b/engine/class_modules/paladin/sc_paladin.cpp index 2afac2dee6b..d7946c88b6c 100644 --- a/engine/class_modules/paladin/sc_paladin.cpp +++ b/engine/class_modules/paladin/sc_paladin.cpp @@ -4925,7 +4925,8 @@ void paladin_t::combat_begin() else if ( options.starting_armament == "holy_bulwark" || sim->rng().roll( .5 ) ) next_armament = HOLY_BULWARK; else - next_armament = SACRED_WEAPON; + // Default Starting Armament + next_armament = HOLY_BULWARK; if ( talents.herald_of_the_sun.morning_star->ok() ) { From a811d3c48b93d4135c3dffdc56615f836992e503 Mon Sep 17 00:00:00 2001 From: Woliance <34073843+Woliance@users.noreply.github.com> Date: Sun, 13 Sep 2026 17:45:34 +0200 Subject: [PATCH 5/6] Correcting Implementation of starting armaments --- engine/class_modules/paladin/sc_paladin.cpp | 3 +-- engine/class_modules/paladin/sc_paladin.hpp | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/engine/class_modules/paladin/sc_paladin.cpp b/engine/class_modules/paladin/sc_paladin.cpp index d7946c88b6c..2afac2dee6b 100644 --- a/engine/class_modules/paladin/sc_paladin.cpp +++ b/engine/class_modules/paladin/sc_paladin.cpp @@ -4925,8 +4925,7 @@ void paladin_t::combat_begin() else if ( options.starting_armament == "holy_bulwark" || sim->rng().roll( .5 ) ) next_armament = HOLY_BULWARK; else - // Default Starting Armament - next_armament = HOLY_BULWARK; + next_armament = SACRED_WEAPON; if ( talents.herald_of_the_sun.morning_star->ok() ) { diff --git a/engine/class_modules/paladin/sc_paladin.hpp b/engine/class_modules/paladin/sc_paladin.hpp index afa30d7fe99..4f2c3f1be18 100644 --- a/engine/class_modules/paladin/sc_paladin.hpp +++ b/engine/class_modules/paladin/sc_paladin.hpp @@ -772,7 +772,7 @@ struct paladin_t : public player_t double blessed_hammer_strikes = 2.0; double reflection_of_radiance_proc_chance_sacred_weapon = .1; double reflection_of_radiance_proc_chance_holy_bulwark = .2; - std::string starting_armament = "sacred_weapon"; + std::string starting_armament = "holy_bulwark"; } options; player_t* beacon_target; From 707e30fb34adab8a4681d7a3c3a5b14695722a03 Mon Sep 17 00:00:00 2001 From: Woliance <34073843+Woliance@users.noreply.github.com> Date: Sun, 13 Sep 2026 17:54:57 +0200 Subject: [PATCH 6/6] Changing Default Armament --- engine/class_modules/paladin/sc_paladin.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/engine/class_modules/paladin/sc_paladin.hpp b/engine/class_modules/paladin/sc_paladin.hpp index c71d90a2aa6..ba6e9c4d8b6 100644 --- a/engine/class_modules/paladin/sc_paladin.hpp +++ b/engine/class_modules/paladin/sc_paladin.hpp @@ -778,7 +778,7 @@ struct paladin_t : public player_t double blessed_hammer_strikes = 2.0; double reflection_of_radiance_proc_chance_sacred_weapon = .1; double reflection_of_radiance_proc_chance_holy_bulwark = .2; - std::string starting_armament = "sacred_weapon"; + std::string starting_armament = "holy_bulwark"; bool max_range_apex = false; } options; player_t* beacon_target;