Skip to content

Commit

Permalink
[Paladin] Fix Ret For Whom The Bell Tolls behaviour
Browse files Browse the repository at this point in the history
  • Loading branch information
Fluttershy-git committed Aug 28, 2024
1 parent 6e22f25 commit 5504552
Show file tree
Hide file tree
Showing 3 changed files with 24 additions and 7 deletions.
10 changes: 5 additions & 5 deletions engine/class_modules/paladin/sc_paladin.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1733,10 +1733,10 @@ void judgment_t::execute()
}
}

// ToDo (Ret): Check if this doesn't trigger on Ret's Divine Toll, but Ret's Divine Resonance
p()->buffs.templar.for_whom_the_bell_tolls->decrement();
// Decrement only if active Judgment, Divine Toll handling on judgment_ret_t
if ( !background )
p()->buffs.templar.for_whom_the_bell_tolls->decrement();

// ToDo (Ret): Check if this correctly gives Ret 5 Stacks on Divine Toll and 1 Stack on Divine Resonance
if ( p()->talents.templar.sanctification->ok() )
{
p()->buffs.templar.sanctification->trigger();
Expand All @@ -1750,8 +1750,8 @@ double judgment_t::action_multiplier() const
if ( p()->talents.justification->ok() )
am *= 1.0 + p()->talents.justification->effectN( 1 ).percent();

// ToDo (Ret): Check if this doesn't benefit for Ret's Divine Toll, but Ret's Divine Resonance
if ( p()->buffs.templar.for_whom_the_bell_tolls->up() )
// Increase only if active Judgment, Divine Toll handling on judgment_ret_t
if ( p()->buffs.templar.for_whom_the_bell_tolls->up() && !background )
am *= 1.0 + p()->buffs.templar.for_whom_the_bell_tolls->current_value;

return am;
Expand Down
1 change: 0 additions & 1 deletion engine/class_modules/paladin/sc_paladin.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -1483,7 +1483,6 @@ struct paladin_action_t : public Base
// Handles both holy and ret judgment
if ( affected_by.judgment && td->debuff.judgment->up() )
{
// ToDo (Ret): Check if this is correct for Ret, too
double judg_mul = 1.0 + td->debuff.judgment->default_value;
if ( p()->sets->has_set_bonus( PALADIN_RETRIBUTION, T30, B4 ) )
judg_mul += p()->sets->set( PALADIN_RETRIBUTION, T30, B4 )->effectN( 1 ).percent();
Expand Down
20 changes: 19 additions & 1 deletion engine/class_modules/paladin/sc_paladin_retribution.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -899,6 +899,7 @@ struct judgment_ret_t : public judgment_t
{
int holy_power_generation;
bool procsT31;
bool local_is_divine_toll;

judgment_ret_t( paladin_t* p, util::string_view name, util::string_view options_str ) :
judgment_t( p, name ),
Expand Down Expand Up @@ -928,7 +929,8 @@ struct judgment_ret_t : public judgment_t
judgment_ret_t( paladin_t* p, util::string_view name, bool is_divine_toll ) :
judgment_t( p, name ),
holy_power_generation( as<int>( p->find_spell( 220637 )->effectN( 1 ).base_value() ) ),
procsT31( false ) // Divine Toll proc in divine_toll_t
procsT31( false ), // Divine Toll proc in divine_toll_t
local_is_divine_toll( is_divine_toll )
{
// This is for Divine Toll's background judgments
background = true;
Expand Down Expand Up @@ -971,6 +973,9 @@ struct judgment_ret_t : public judgment_t
p()->buffs.empyrean_legacy_cooldown->trigger();
}
}
// Decrement For Whom The Bell Tolls Stacks only on Divine Resonance Judgments
if ( !local_is_divine_toll )
p()->buffs.templar.for_whom_the_bell_tolls->decrement();
}

void impact(action_state_t* s) override
Expand Down Expand Up @@ -1001,6 +1006,19 @@ struct judgment_ret_t : public judgment_t
p()->active.highlords_judgment->execute();
}
}

double action_multiplier() const
{
double am = judgment_t::action_multiplier();

// Increase Judgments damage only if it is Divine Resonance
if ( p()->buffs.templar.for_whom_the_bell_tolls->up() && !local_is_divine_toll )
{
am *= 1.0 + p()->buffs.templar.for_whom_the_bell_tolls->current_value;
}
return am;
}

};

// Justicar's Vengeance
Expand Down

0 comments on commit 5504552

Please sign in to comment.