Skip to content

Commit

Permalink
Merge branch 'simulationcraft:thewarwithin' into thewarwithin
Browse files Browse the repository at this point in the history
  • Loading branch information
Fluttershy-git authored Oct 3, 2024
2 parents 9509730 + b355db6 commit 9c04046
Show file tree
Hide file tree
Showing 8 changed files with 416 additions and 208 deletions.
1 change: 1 addition & 0 deletions dbc_extract3/dbc/generator.py
Original file line number Diff line number Diff line change
Expand Up @@ -1521,6 +1521,7 @@ class SpellDataGenerator(DataGenerator):
455441, 455454, 455455, 455456, #Unstable Power Core Mastery Crit Haste Vers
455521, 455522, 457627, # Woven Dawn Tailoring Set
449441, # Fury of the Stormrook Set
469917, 469920, # golem gearbox
),

# Warrior:
Expand Down
2 changes: 1 addition & 1 deletion engine/class_modules/sc_death_knight.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -4771,7 +4771,7 @@ struct death_knight_action_t : public parse_action_effects_t<Base>
}

if ( p()->talent.deathbringer.reapers_mark.ok() && this->data().id() != p()->spell.reapers_mark_explosion->id() &&
this->data().id() != 66198 ) // TODO-TWW verify if offhand obliterate bug is fixed
this->data().id() != 66198 && this->data().id() != 439539 ) // TODO-TWW verify if offhand obliterate bug is fixed
{
death_knight_td_t* td = get_td( s->target );
if ( td->debuff.reapers_mark->check() )
Expand Down
23 changes: 12 additions & 11 deletions engine/class_modules/sc_evoker.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -5273,23 +5273,24 @@ struct eruption_t : public essence_spell_t
->buffs.blistering_scales->bump( as<int>( p()->talent.regenerative_chitin->effectN( 3 ).base_value() ) );
}

if ( p()->talent.scalecommander.mass_eruption.enabled() && p()->buff.mass_eruption_stacks->check() && execute_state )
if ( !is_overlord )
{
int eruptions = 1;
for ( auto potential_target : target_list() )
if ( p()->talent.scalecommander.mass_eruption.enabled() && p()->buff.mass_eruption_stacks->check() &&
execute_state )
{
if ( potential_target == execute_state->target )
continue;
int eruptions = 1;
for ( auto potential_target : target_list() )
{
if ( potential_target == execute_state->target )
continue;

mass_eruption->execute_on_target( potential_target );
mass_eruption->execute_on_target( potential_target );

if ( ++eruptions >= mass_eruption_max_targets )
break;
if ( ++eruptions >= mass_eruption_max_targets )
break;
}
}
}

if ( !is_overlord )
{
p()->buff.volcanic_upsurge->decrement();
p()->buff.mass_eruption_stacks->decrement();
}
Expand Down
48 changes: 44 additions & 4 deletions engine/class_modules/sc_shaman.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -663,6 +663,10 @@ struct shaman_t : public player_t
unsigned ancient_fellowship_positive = 0U;
unsigned ancient_fellowship_total = 0U;

// Routine Communication Deck-of-Cards RNG parametrization
unsigned routine_communication_positive = 0U;
unsigned routine_communication_total = 0U;

// Thunderstrike Ward Uniform RNG proc chance
// TODO: Double check for CL. A ~5h LB test resulted in a ~30% chance.
double thunderstrike_ward_proc_chance = 0.3;
Expand Down Expand Up @@ -1069,6 +1073,7 @@ struct shaman_t : public player_t

shuffled_rng_t* icefury;
shuffled_rng_t* ancient_fellowship;
shuffled_rng_t* routine_communication;
} rng_obj;

// Cached pointer for ascendance / normal white melee
Expand Down Expand Up @@ -5931,6 +5936,11 @@ struct chain_lightning_t : public chained_base_t
{
p()->buff.icefury_cast->trigger();
}

if ( p()->talent.routine_communication.ok() && p()->rng_obj.routine_communication->trigger() )
{
p()->summon_ancestor();
}
}
}

Expand Down Expand Up @@ -6791,9 +6801,9 @@ struct lava_burst_t : public shaman_spell_t
p()->buff.icefury_cast->trigger();
}

if ( p()->talent.routine_communication.ok() && exec_type == spell_variant::NORMAL )
if ( p()->talent.routine_communication.ok() && p()->rng_obj.routine_communication->trigger() && exec_type == spell_variant::NORMAL )
{
p()->summon_ancestor( p()->talent.routine_communication->effectN( 2 ).percent() );
p()->summon_ancestor();
}

// [BUG] 2024-08-23 Supercharge works on Lava Burst in-game
Expand Down Expand Up @@ -7005,6 +7015,11 @@ struct lightning_bolt_t : public shaman_spell_t
p()->buff.icefury_cast->trigger();
}
}

if ( p()->is_ptr() && p()->talent.routine_communication.ok() && p()->rng_obj.routine_communication->trigger() )
{
p()->summon_ancestor();
}
}

p()->trigger_flash_of_lightning();
Expand Down Expand Up @@ -7365,9 +7380,16 @@ struct icefury_t : public shaman_spell_t
p()->buff.icefury_dmg->trigger( as<int>( p()->buff.icefury_dmg->data().effectN( 4 ).base_value() ) );
}

p()->buff.flux_melting->trigger();

p()->buff.fusion_of_elements_nature->trigger();
p()->buff.fusion_of_elements_fire->trigger();

if ( p()->is_ptr() && p()->talent.routine_communication.ok() && p()->rng_obj.routine_communication->trigger() )
{
p()->summon_ancestor();
}

p()->buff.icefury_cast->decrement();
}

Expand Down Expand Up @@ -8501,6 +8523,11 @@ struct frost_shock_t : public shaman_spell_t
p()->proc.surge_of_power_wasted->occur();
p()->buff.surge_of_power->decrement();
}

if ( p()->is_ptr() && p()->talent.routine_communication.ok() && p()->rng_obj.routine_communication->trigger() )
{
p()->summon_ancestor();
}
}

bool ready() override
Expand Down Expand Up @@ -10765,6 +10792,9 @@ void shaman_t::create_options()
add_option( opt_uint( "shaman.ancient_fellowship_positive", options.ancient_fellowship_positive, 0U, 100U ) );
add_option( opt_uint( "shaman.ancient_fellowship_total", options.ancient_fellowship_total, 0U, 100U ) );

add_option( opt_uint( "shaman.routine_communication_positive", options.routine_communication_positive, 0U, 100U ) );
add_option( opt_uint( "shaman.routine_communication_total", options.routine_communication_total, 0U, 100U ) );

add_option( opt_float( "shaman.thunderstrike_ward_proc_chance", options.thunderstrike_ward_proc_chance,
0.0, 1.0 ) );

Expand Down Expand Up @@ -12860,20 +12890,30 @@ void shaman_t::init_rng()
if ( options.ancient_fellowship_positive == 0 ) {
options.ancient_fellowship_positive = as<unsigned>( talent.ancient_fellowship->effectN( 3 ).base_value() );
}

if ( options.ancient_fellowship_total == 0 ) {
options.ancient_fellowship_total = as<unsigned>( talent.ancient_fellowship->effectN( 2 ).base_value() );
}
rng_obj.ancient_fellowship =
get_shuffled_rng( "ancient_fellowship", options.ancient_fellowship_positive, options.ancient_fellowship_total );

if ( options.icefury_positive == 0 ) {
options.icefury_positive = as<unsigned>( talent.icefury->effectN( 1 ).base_value() );
}

if ( options.icefury_total == 0 ) {
options.icefury_total = as<unsigned>( talent.icefury->effectN( 2 ).base_value() );
}
rng_obj.icefury = get_shuffled_rng( "icefury", options.icefury_positive, options.icefury_total );

if ( options.routine_communication_positive == 0 ) {
options.routine_communication_positive = as<unsigned>( talent.routine_communication->effectN( 5 ).base_value() );
}
if ( options.routine_communication_total == 0 ) {
// This is effect 6 based on live data. PTR data is confusing in comparison.
options.routine_communication_total = as<unsigned>( talent.routine_communication->effectN( 6 ).base_value() );
}
rng_obj.routine_communication =
get_shuffled_rng( "routine_communication", options.routine_communication_positive, options.routine_communication_total );

}

// shaman_t::init_items =====================================================
Expand Down
Loading

0 comments on commit 9c04046

Please sign in to comment.