From f760401b057d1d6f4b17e8f3dae576d38d041c1d Mon Sep 17 00:00:00 2001 From: pinepinepine Date: Sat, 14 Mar 2026 07:37:21 -0400 Subject: [PATCH 1/4] pulse benefits from ac --- engine/class_modules/sc_mage.cpp | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/engine/class_modules/sc_mage.cpp b/engine/class_modules/sc_mage.cpp index 9aa985af1c4..e2ddabe289f 100644 --- a/engine/class_modules/sc_mage.cpp +++ b/engine/class_modules/sc_mage.cpp @@ -3010,6 +3010,17 @@ struct arcane_pulse_t final : public arcane_mage_spell_t return am; } + + double execute_time_pct_multiplier() const override + { + double mul = arcane_mage_spell_t::execute_time_pct_multiplier(); + + // Unmentioned by tooltip + if ( sim->dbc->ptr ) + mul *= 1.0 + p()->buffs.arcane_charge->check() * p()->buffs.arcane_charge->data().effectN( 4 ).percent(); + + return mul; + } }; struct arcane_assault_t final : public arcane_mage_spell_t From 3a6ee478eee89dcab64679afbe9ee9554a378843 Mon Sep 17 00:00:00 2001 From: pinepinepine Date: Sat, 14 Mar 2026 09:46:35 -0400 Subject: [PATCH 2/4] revert this if it's not preferable --- engine/class_modules/sc_mage.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/engine/class_modules/sc_mage.cpp b/engine/class_modules/sc_mage.cpp index e2ddabe289f..9988fd0826f 100644 --- a/engine/class_modules/sc_mage.cpp +++ b/engine/class_modules/sc_mage.cpp @@ -3016,7 +3016,7 @@ struct arcane_pulse_t final : public arcane_mage_spell_t double mul = arcane_mage_spell_t::execute_time_pct_multiplier(); // Unmentioned by tooltip - if ( sim->dbc->ptr ) + if ( data().affected_by( p()->buffs.arcane_charge->data().effectN( 4 ) ) ) mul *= 1.0 + p()->buffs.arcane_charge->check() * p()->buffs.arcane_charge->data().effectN( 4 ).percent(); return mul; From 77c269297414e3f8b57c964d541f1d32c905f8ae Mon Sep 17 00:00:00 2001 From: pinepinepine Date: Sat, 14 Mar 2026 10:07:18 -0400 Subject: [PATCH 3/4] i don't know if this is more preferable than the other commit (which also mentions if that ones more preferable... I GUESS PICK YOUR POISON ATP) --- engine/class_modules/sc_mage.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/engine/class_modules/sc_mage.cpp b/engine/class_modules/sc_mage.cpp index 9988fd0826f..cd7a7d93942 100644 --- a/engine/class_modules/sc_mage.cpp +++ b/engine/class_modules/sc_mage.cpp @@ -2945,9 +2945,11 @@ struct arcane_explosion_t final : public arcane_mage_spell_t struct arcane_pulse_t final : public arcane_mage_spell_t { action_t* arcane_pulse_echo = nullptr; + const bool ac_affects_cast; arcane_pulse_t( std::string_view n, mage_t* p, std::string_view options_str, bool echo = false ) : - arcane_mage_spell_t( n, p, echo ? p->find_spell( 1243460 ) : p->talents.arcane_pulse ) + arcane_mage_spell_t( n, p, echo ? p->find_spell( 1243460 ) : p->talents.arcane_pulse ), + ac_affects_cast( data().affected_by( p->buffs.arcane_charge->data().effectN( 4 ) ) ) { parse_options( options_str ); aoe = -1; @@ -3016,7 +3018,7 @@ struct arcane_pulse_t final : public arcane_mage_spell_t double mul = arcane_mage_spell_t::execute_time_pct_multiplier(); // Unmentioned by tooltip - if ( data().affected_by( p()->buffs.arcane_charge->data().effectN( 4 ) ) ) + if ( ac_affects_cast ) mul *= 1.0 + p()->buffs.arcane_charge->check() * p()->buffs.arcane_charge->data().effectN( 4 ).percent(); return mul; From 11150777313b10754fdd4ccb254f538c720a21b4 Mon Sep 17 00:00:00 2001 From: pinepinepine Date: Sat, 14 Mar 2026 10:27:38 -0400 Subject: [PATCH 4/4] just a happy friendly comment, no preference stuff. --- engine/class_modules/sc_mage.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/engine/class_modules/sc_mage.cpp b/engine/class_modules/sc_mage.cpp index cd7a7d93942..abe37890bf1 100644 --- a/engine/class_modules/sc_mage.cpp +++ b/engine/class_modules/sc_mage.cpp @@ -2945,7 +2945,7 @@ struct arcane_explosion_t final : public arcane_mage_spell_t struct arcane_pulse_t final : public arcane_mage_spell_t { action_t* arcane_pulse_echo = nullptr; - const bool ac_affects_cast; + const bool ac_affects_cast; // Delete whenever 12.0.5 goes live. arcane_pulse_t( std::string_view n, mage_t* p, std::string_view options_str, bool echo = false ) : arcane_mage_spell_t( n, p, echo ? p->find_spell( 1243460 ) : p->talents.arcane_pulse ),