Skip to content

Commit

Permalink
[Warlock] Destruction Row 8 updates (simulationcraft#9044)
Browse files Browse the repository at this point in the history
* Implement Devastation

* Shuffle Ritual of Ruin

* Update Ruin
  • Loading branch information
Azevara authored Jul 19, 2024
1 parent f090da9 commit 5ef7474
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 13 deletions.
4 changes: 2 additions & 2 deletions engine/class_modules/warlock/sc_warlock.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -404,7 +404,7 @@ struct warlock_t : public player_t
player_talent_t internal_combustion;
player_talent_t demonfire_mastery;

player_talent_t devastation; // TODO: New
player_talent_t devastation;
player_talent_t ritual_of_ruin;
const spell_data_t* impending_ruin_buff; // Stacking buff, triggers Ritual of Ruin buff at max
const spell_data_t* ritual_of_ruin_buff;
Expand Down Expand Up @@ -453,7 +453,7 @@ struct warlock_t : public player_t
player_talent_t abyssal_dominion;
player_talent_t gloom_of_nathreza;

player_talent_t ruination; // TODO: Backdraft, Indiscriminate Flames
player_talent_t ruination; // TODO: Backdraft, Indiscriminate Flames, Ritual of Ruin

// Hellcaller
player_talent_t wither; // TODO: Socrethar's Guile, Seed of Corruption, Absolute Corruption, Siphon Life, Kindled Malice, Sacrolash, Darkglare, Death's Embrace, Roaring Blaze, Scalding Flames, Ashen Remains, Channel Demonfire, Flashpoint, Raging Demonfire, Internal Combustion
Expand Down
15 changes: 10 additions & 5 deletions engine/class_modules/warlock/sc_warlock_actions.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,8 @@ using namespace helpers;
bool ashen_remains = false;
bool emberstorm_dd = false;
bool emberstorm_td = false;
bool devastation = false;
bool ruin = false;
bool chaos_incarnate = false;
} affected_by;

Expand Down Expand Up @@ -82,6 +84,8 @@ using namespace helpers;
affected_by.roaring_blaze = data().affected_by( p->talents.conflagrate_debuff->effectN( 1 ) );
affected_by.emberstorm_dd = data().affected_by( p->talents.emberstorm->effectN( 1 ) );
affected_by.emberstorm_td = data().affected_by( p->talents.emberstorm->effectN( 3 ) );
affected_by.devastation = data().affected_by( p->talents.devastation->effectN( 1 ) );
affected_by.ruin = data().affected_by( p->talents.ruin->effectN( 1 ) );
}

warlock_spell_t( util::string_view token, warlock_t* p, const spell_data_t* s, util::string_view options_str )
Expand Down Expand Up @@ -208,6 +212,9 @@ using namespace helpers;
if ( affliction() && affected_by.malediction )
c += p()->talents.malediction->effectN( 1 ).percent();

if ( destruction() && affected_by.devastation )
c += p()->talents.devastation->effectN( 1 ).percent();

return c;
}

Expand All @@ -221,6 +228,9 @@ using namespace helpers;
if ( demonology() && affected_by.demonic_brutality )
m *= 1.0 + p()->talents.demonic_brutality->effectN( 1 ).percent();

if ( destruction() && affected_by.ruin )
m *= 1.0 + p()->talents.ruin->effectN( 1 ).percent();

return m;
}

Expand Down Expand Up @@ -2873,8 +2883,6 @@ using namespace helpers;
cooldown->hasted = true;
cooldown->charges += as<int>( p->talents.improved_conflagrate->effectN( 1 ).base_value() );
cooldown->duration += p->talents.explosive_potential->effectN( 1 ).time_value();

base_multiplier *= 1.0 + p->talents.ruin->effectN( 1 ).percent();
}

void impact( action_state_t* s ) override
Expand Down Expand Up @@ -3077,7 +3085,6 @@ using namespace helpers;
affected_by.ashen_remains = true;
affected_by.chaos_incarnate = p->talents.chaos_incarnate.ok();

base_multiplier *= 1.0 + p->talents.ruin->effectN( 1 ).percent();
base_dd_multiplier *= 1.0 + p->talents.blistering_atrophy->effectN( 1 ).percent();
}

Expand Down Expand Up @@ -3459,8 +3466,6 @@ using namespace helpers;
affected_by.chaotic_energies = true;
affected_by.havoc = true;

base_multiplier *= 1.0 + p->talents.ruin->effectN( 1 ).percent();

immolate->background = true;
immolate->dual = true;
immolate->base_costs[ RESOURCE_MANA ] = 0;
Expand Down
14 changes: 8 additions & 6 deletions engine/class_modules/warlock/sc_warlock_init.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -413,19 +413,21 @@ namespace warlock

talents.demonfire_mastery = find_talent_spell( talent_tree::SPECIALIZATION, "Demonfire Mastery" ); // Should be ID 456946

talents.devastation = find_talent_spell( talent_tree::SPECIALIZATION, "Devastation" ); // Should be ID 454735

talents.ritual_of_ruin = find_talent_spell( talent_tree::SPECIALIZATION, "Ritual of Ruin" ); // Should be ID 387156
talents.impending_ruin_buff = find_spell( 387158 );
talents.ritual_of_ruin_buff = find_spell( 387157 );

talents.ruin = find_talent_spell( talent_tree::SPECIALIZATION, "Ruin" ); // Should be ID 387103

talents.soul_fire = find_talent_spell( talent_tree::SPECIALIZATION, "Soul Fire" ); // Should be ID 6353
talents.soul_fire_2 = find_spell( 281490 );

talents.decimation = find_talent_spell( talent_tree::SPECIALIZATION, "Decimation" ); // Should be ID 387176

talents.ruin = find_talent_spell( talent_tree::SPECIALIZATION, "Ruin" ); // Should be ID 387103

talents.diabolic_embers = find_talent_spell( talent_tree::SPECIALIZATION, "Diabolic Embers" ); // Should be ID 387173

talents.ritual_of_ruin = find_talent_spell( talent_tree::SPECIALIZATION, "Ritual of Ruin" ); // Should be ID 387156
talents.impending_ruin_buff = find_spell( 387158 );
talents.ritual_of_ruin_buff = find_spell( 387157 );

talents.power_overwhelming = find_talent_spell( talent_tree::SPECIALIZATION, "Power Overwhelming" ); // Should be ID 387279
talents.power_overwhelming_buff = find_spell( 387283 );

Expand Down

0 comments on commit 5ef7474

Please sign in to comment.