diff --git a/engine/class_modules/apl/apl_monk.cpp b/engine/class_modules/apl/apl_monk.cpp index dab19526ca2..8179274e4f3 100644 --- a/engine/class_modules/apl/apl_monk.cpp +++ b/engine/class_modules/apl/apl_monk.cpp @@ -212,10 +212,10 @@ std::string monk_t::aura_expr_from_spell_id( unsigned int spell_id, bool on_self { switch ( spell_id ) { - case 443421: // Heart of the Jade Serpent Strike of the Windlord Cooldown Reduction - return "buff.heart_of_the_jade_serpent_cdr"; - case 443616: // Heart of the Jade Serpent Conduit of the Celestial Cooldown Reduction - return "buff.heart_of_the_jade_serpent_cdr_celestial"; + case 443616: + return "buff.heart_of_the_jade_serpent_unity_within"; + case 1238904: + return "buff.heart_of_the_jade_serpent_yulons_avatar"; } } diff --git a/engine/class_modules/monk/sc_monk.cpp b/engine/class_modules/monk/sc_monk.cpp index ba7563ce937..a4870438786 100644 --- a/engine/class_modules/monk/sc_monk.cpp +++ b/engine/class_modules/monk/sc_monk.cpp @@ -143,10 +143,10 @@ void monk_action_t::apply_buff_effects() parse_effects( p()->buff.invoke_xuen, effect_mask_t( false ).enable( 3 ), "Ferociousness" ); // Conduit of the Celestials - parse_effects( p()->buff.heart_of_the_jade_serpent_cdr, - [ & ] { return !p()->buff.heart_of_the_jade_serpent_cdr_celestial->check(); } ); - parse_effects( p()->buff.heart_of_the_jade_serpent_cdr_celestial ); - parse_effects( p()->tier.tww3.coc_2pc_heart_of_the_jade_serpent ); + parse_effects( p()->buff.heart_of_the_jade_serpent, + [ & ] { return !p()->buff.heart_of_the_jade_serpent_yulons_avatar->check(); } ); + parse_effects( p()->buff.heart_of_the_jade_serpent_yulons_avatar ); + parse_effects( p()->buff.heart_of_the_jade_serpent_unity_within ); parse_effects( p()->buff.jade_sanctuary ); parse_effects( p()->buff.strength_of_the_black_ox ); if ( p()->talent.conduit_of_the_celestials.restore_balance->ok() ) @@ -611,6 +611,7 @@ flurry_strikes_t::flurry_strikes_t( bool fallback, monk_t *player ) switch ( key ) { case FLURRY_STRIKES: + case WISDOM_OF_THE_WALL: break; case STAND_READY: if ( const auto &effect = player->talent.shado_pan.stand_ready->effectN( 2 ); effect.ok() ) @@ -619,8 +620,6 @@ flurry_strikes_t::flurry_strikes_t( bool fallback, monk_t *player ) .set_note( "Stand Ready Efficiency Multiplier" ) .set_eff( &effect ); break; - case WISDOM_OF_THE_WALL: - break; default: assert( false ); } @@ -1362,6 +1361,9 @@ struct blackout_kick_t : overwhelming_force_ttalent.windwalker.obsidian_spiral->ok() ) + parse_effect_data( p->talent.windwalker.obsidian_spiral_energize->effectN( 1 ) ); } double composite_target_multiplier( player_t *target ) const override @@ -2000,7 +2002,7 @@ struct strike_of_the_windlord_t : public monk_melee_attack_t p()->buff.tigers_ferocity->trigger(); - p()->buff.heart_of_the_jade_serpent_cdr->trigger(); + p()->buff.heart_of_the_jade_serpent->trigger(); p()->buff.inner_compass_serpent_stance->trigger(); } }; @@ -2664,14 +2666,7 @@ struct slicing_winds_t : public monk_melee_attack_t trigger_gcd = timespan_t::from_millis( 1400 ); if ( player->talent.windwalker.airborne_rhythm->ok() ) - parse_effect_data( player->talent.windwalker.airborne_rhythm_resource_gain->effectN( 1 ) ); - } - - void execute() override - { - monk_melee_attack_t::execute(); - - p()->tier.tww3.coc_2pc_heart_of_the_jade_serpent->trigger(); + parse_effect_data( player->talent.windwalker.airborne_rhythm_energize->effectN( 1 ) ); } }; } // namespace attacks @@ -3637,19 +3632,40 @@ struct celestial_conduit_t : public monk_spell_t struct zenith_t : public monk_spell_t { + struct zenith_stomp_t : public monk_spell_t + { + zenith_stomp_t( monk_t *player ) : monk_spell_t( player, "zenith_stomp", player->talent.monk.zenith_stomp_damage ) + { + aoe = -1; + reduced_aoe_targets = player->talent.monk.zenith_stomp->effectN( 1 ).base_value(); + } + }; + + action_t *zenith_stomp; + zenith_t( monk_t *player, std::string_view options_str ) - : monk_spell_t( player, "zenith", player->talent.windwalker.zenith ) + : monk_spell_t( player, "zenith", player->talent.windwalker.zenith ), zenith_stomp( nullptr ) { parse_options( options_str ); + + if ( player->talent.monk.zenith_stomp->ok() ) + { + zenith_stomp = new zenith_stomp_t( player ); + add_child( zenith_stomp ); + } } void execute() override { + p()->buff.heart_of_the_jade_serpent_yulons_avatar->trigger(); + monk_spell_t::execute(); + if ( zenith_stomp ) + zenith_stomp->execute_on_target( target ); + p()->buff.zenith->trigger(); p()->cooldown.rising_sun_kick->reset( true ); - p()->resource_gain( RESOURCE_CHI, data().effectN( 9 ).base_value(), p()->gain.zenith ); p()->buff.stand_ready->trigger(); } }; @@ -4713,7 +4729,11 @@ void monk_t::parse_player_effects() parse_effects( talent.windwalker.ferociousness, [ & ]( double value ) { if ( buff.invoke_xuen->check() ) value *= 1.0 + talent.conduit_of_the_celestials.invoke_xuen_the_white_tiger->effectN( 3 ).percent(); - + return value; + } ); + parse_effects( talent.windwalker.martial_agility, [ & ]( double value ) { + if ( buff.zenith->check() ) + return talent.windwalker.martial_agility->effectN( 3 ).percent(); return value; } ); @@ -4725,17 +4745,19 @@ void monk_t::parse_player_effects() parse_effects( buff.inner_compass_serpent_stance ); parse_effects( buff.inner_compass_tiger_stance ); + effect_mask_t em = talent.conduit_of_the_celestials.flowing_wisdom->ok() ? effect_mask_t( true ) + : effect_mask_t( true ).disable( 8 ); + parse_effects( buff.heart_of_the_jade_serpent, em, + [ & ] { return !buff.heart_of_the_jade_serpent_yulons_avatar->check(); } ); + parse_effects( buff.heart_of_the_jade_serpent_yulons_avatar, em ); + parse_effects( buff.heart_of_the_jade_serpent_unity_within, em ); + // TWW S1 Set Effects parse_effects( buff.shuffle, sets->set( MONK_BREWMASTER, TWW1, B2 ) ); // TWW S2 Set Effects // TWW S3 Set Effects - effect_mask_t em = tier.tww3.coc_4pc->ok() ? effect_mask_t( true ) : effect_mask_t( true ).disable( 8 ); - parse_effects( buff.heart_of_the_jade_serpent_cdr, em, - [ & ] { return !buff.heart_of_the_jade_serpent_cdr_celestial->check(); } ); - parse_effects( buff.heart_of_the_jade_serpent_cdr_celestial, em ); - parse_effects( tier.tww3.coc_2pc_heart_of_the_jade_serpent, em ); // TWW S4 Set Effects } @@ -5106,6 +5128,7 @@ void monk_t::init_spells() talent.monk.profound_rebuttal = _CT( "Profound Rebuttal" ); talent.monk.summon_black_ox_statue = _CT( "Summon Black Ox Statue" ); talent.monk.zenith_stomp = _CT( "Zenith Stomp" ); + talent.monk.zenith_stomp_damage = find_spell( 1272696 ); talent.monk.ironshell_brew = _CT( "Ironshell Brew" ); talent.monk.expeditious_fortification = _CT( "Expeditious Fortification" ); talent.monk.diffuse_magic = _CT( "Diffuse Magic" ); @@ -5233,6 +5256,7 @@ void monk_t::init_spells() talent.windwalker.drinking_horn_cover = _ST( "Drinking Horn Cover" ); talent.windwalker.spiritual_focus = _ST( "Spiritual Focus" ); talent.windwalker.obsidian_spiral = _ST( "Obsidian Spiral" ); + talent.windwalker.obsidian_spiral_energize = find_spell( 1249833 ); talent.windwalker.combo_breaker = _ST( "Combo Breaker" ); talent.windwalker.combo_breaker_buff = find_spell( 116768 ); talent.windwalker.dance_of_chiji = _ST( "Dance of Chi-Ji" ); @@ -5274,7 +5298,7 @@ void monk_t::init_spells() talent.windwalker.flurry_of_xuen_driver = find_spell( 452117 ); talent.windwalker.martial_agility = _ST( "Martial Agility" ); talent.windwalker.airborne_rhythm = _ST( "Airborne Rhythm" ); - talent.windwalker.airborne_rhythm_resource_gain = find_spell( 1248835 ); + talent.windwalker.airborne_rhythm_energize = find_spell( 1248835 ); talent.windwalker.hurricanes_vault = _ST( "Hurricane's Vault" ); talent.windwalker.path_of_jade = _ST( "Path of Jade" ); talent.windwalker.singularly_focused_jade = _ST( "Singularly Focused Jade" ); @@ -5282,44 +5306,45 @@ void monk_t::init_spells() // monk_t::talent::conduit_of_the_celestials { - talent.conduit_of_the_celestials.invoke_xuen_the_white_tiger = _HT( "Invoke Xuen, the White Tiger" ); - talent.conduit_of_the_celestials.invoke_xuen_the_white_tiger_npc = find_spell( 132578 ); - talent.conduit_of_the_celestials.crackling_tiger_lightning_driver = find_spell( 123999 ); - talent.conduit_of_the_celestials.temple_training = _HT( "Temple Training" ); - talent.conduit_of_the_celestials.xuens_guidance = _HT( "Xuen's Guidance" ); - talent.conduit_of_the_celestials.courage_of_the_white_tiger = _HT( "Courage of the White Tiger" ); - talent.conduit_of_the_celestials.courage_of_the_white_tiger_buff = find_spell( 460127 ); - talent.conduit_of_the_celestials.courage_of_the_white_tiger_damage = find_spell( 457917 ); - talent.conduit_of_the_celestials.courage_of_the_white_tiger_heal = find_spell( 443106 ); - talent.conduit_of_the_celestials.restore_balance = _HT( "Restore Balance" ); - talent.conduit_of_the_celestials.xuens_bond = _HT( "Xuen's Bond" ); - talent.conduit_of_the_celestials.heart_of_the_jade_serpent = _HT( "Heart of the Jade Serpent" ); - talent.conduit_of_the_celestials.heart_of_the_jade_serpent_buff = find_spell( 443421 ); - talent.conduit_of_the_celestials.heart_of_the_jade_serpent_celestial_buff = find_spell( 443616 ); - talent.conduit_of_the_celestials.chijis_swiftness = _HT( "Chi-Ji's Swiftness" ); - talent.conduit_of_the_celestials.chijis_swiftness_buff = find_spell( 443028 ); - talent.conduit_of_the_celestials.strength_of_the_black_ox = _HT( "Strength of the Black Ox" ); - talent.conduit_of_the_celestials.strength_of_the_black_ox_buff = find_spell( 443112 ); - talent.conduit_of_the_celestials.strength_of_the_black_ox_absorb = find_spell( 443113 ); - talent.conduit_of_the_celestials.strength_of_the_black_ox_damage = find_spell( 443127 ); - talent.conduit_of_the_celestials.path_of_the_falling_star = _HT( "Path of the Falling Star" ); - talent.conduit_of_the_celestials.yulons_avatar = _HT( "Yu'lon's Avatar" ); - talent.conduit_of_the_celestials.niuzaos_protection = _HT( "Niuzao's Protection" ); - talent.conduit_of_the_celestials.jade_sanctuary = _HT( "Jade Sanctuary" ); - talent.conduit_of_the_celestials.jade_sanctuary_buff = find_spell( 448508 ); - talent.conduit_of_the_celestials.celestial_conduit = _HT( "Celestial Conduit" ); - talent.conduit_of_the_celestials.celestial_conduit_action = find_spell( 443028 ); - talent.conduit_of_the_celestials.celestial_conduit_damage = find_spell( 443038 ); - talent.conduit_of_the_celestials.celestial_conduit_heal = find_spell( 443039 ); - talent.conduit_of_the_celestials.inner_compass = _HT( "Inner Compass" ); - talent.conduit_of_the_celestials.inner_compass_crane_stance_buff = find_spell( 443572 ); - talent.conduit_of_the_celestials.inner_compass_ox_stance_buff = find_spell( 443574 ); - talent.conduit_of_the_celestials.inner_compass_tiger_stance_buff = find_spell( 443575 ); - talent.conduit_of_the_celestials.inner_compass_serpent_stance_buff = find_spell( 443576 ); - talent.conduit_of_the_celestials.flowing_wisdom = _HT( "Flowing Wisdom" ); - talent.conduit_of_the_celestials.unity_within = _HT( "Unity Within" ); - talent.conduit_of_the_celestials.unity_within_buff = find_spell( 443592 ); - talent.conduit_of_the_celestials.unity_within_dmg_mult = find_spell( 443591 ); + talent.conduit_of_the_celestials.invoke_xuen_the_white_tiger = _HT( "Invoke Xuen, the White Tiger" ); + talent.conduit_of_the_celestials.invoke_xuen_the_white_tiger_npc = find_spell( 132578 ); + talent.conduit_of_the_celestials.crackling_tiger_lightning_driver = find_spell( 123999 ); + talent.conduit_of_the_celestials.temple_training = _HT( "Temple Training" ); + talent.conduit_of_the_celestials.xuens_guidance = _HT( "Xuen's Guidance" ); + talent.conduit_of_the_celestials.courage_of_the_white_tiger = _HT( "Courage of the White Tiger" ); + talent.conduit_of_the_celestials.courage_of_the_white_tiger_buff = find_spell( 460127 ); + talent.conduit_of_the_celestials.courage_of_the_white_tiger_damage = find_spell( 457917 ); + talent.conduit_of_the_celestials.courage_of_the_white_tiger_heal = find_spell( 443106 ); + talent.conduit_of_the_celestials.restore_balance = _HT( "Restore Balance" ); + talent.conduit_of_the_celestials.xuens_bond = _HT( "Xuen's Bond" ); + talent.conduit_of_the_celestials.heart_of_the_jade_serpent = _HT( "Heart of the Jade Serpent" ); + talent.conduit_of_the_celestials.heart_of_the_jade_serpent_buff = find_spell( 443421 ); + talent.conduit_of_the_celestials.chijis_swiftness = _HT( "Chi-Ji's Swiftness" ); + talent.conduit_of_the_celestials.chijis_swiftness_buff = find_spell( 443028 ); + talent.conduit_of_the_celestials.strength_of_the_black_ox = _HT( "Strength of the Black Ox" ); + talent.conduit_of_the_celestials.strength_of_the_black_ox_buff = find_spell( 443112 ); + talent.conduit_of_the_celestials.strength_of_the_black_ox_absorb = find_spell( 443113 ); + talent.conduit_of_the_celestials.strength_of_the_black_ox_damage = find_spell( 443127 ); + talent.conduit_of_the_celestials.path_of_the_falling_star = _HT( "Path of the Falling Star" ); + talent.conduit_of_the_celestials.yulons_avatar = _HT( "Yu'lon's Avatar" ); + talent.conduit_of_the_celestials.yulons_avatar_buff = find_spell( 1238904 ); + talent.conduit_of_the_celestials.niuzaos_protection = _HT( "Niuzao's Protection" ); + talent.conduit_of_the_celestials.jade_sanctuary = _HT( "Jade Sanctuary" ); + talent.conduit_of_the_celestials.jade_sanctuary_buff = find_spell( 448508 ); + talent.conduit_of_the_celestials.celestial_conduit = _HT( "Celestial Conduit" ); + talent.conduit_of_the_celestials.celestial_conduit_action = find_spell( 443028 ); + talent.conduit_of_the_celestials.celestial_conduit_damage = find_spell( 443038 ); + talent.conduit_of_the_celestials.celestial_conduit_heal = find_spell( 443039 ); + talent.conduit_of_the_celestials.inner_compass = _HT( "Inner Compass" ); + talent.conduit_of_the_celestials.inner_compass_crane_stance_buff = find_spell( 443572 ); + talent.conduit_of_the_celestials.inner_compass_ox_stance_buff = find_spell( 443574 ); + talent.conduit_of_the_celestials.inner_compass_tiger_stance_buff = find_spell( 443575 ); + talent.conduit_of_the_celestials.inner_compass_serpent_stance_buff = find_spell( 443576 ); + talent.conduit_of_the_celestials.flowing_wisdom = _HT( "Flowing Wisdom" ); + talent.conduit_of_the_celestials.unity_within = _HT( "Unity Within" ); + talent.conduit_of_the_celestials.unity_within_buff = find_spell( 443592 ); + talent.conduit_of_the_celestials.unity_within_heart_of_the_jade_serpent_buff = find_spell( 443616 ); + talent.conduit_of_the_celestials.unity_within_dmg_mult = find_spell( 443591 ); } // monk_t::talent::master_of_harmony @@ -5463,6 +5488,7 @@ void monk_t::init_spells() : effect_mask_t( true ) ); deregister_passive_spell( talent.windwalker.ferociousness ); + deregister_passive_spell( talent.windwalker.martial_agility ); parse_all_class_passives(); parse_all_passive_talents(); @@ -5827,7 +5853,8 @@ void monk_t::create_buffs() buff.whirling_dragon_punch = make_buff_fallback( talent.windwalker.whirling_dragon_punch->ok(), this, "whirling_dragon_punch" ); - buff.zenith = make_buff_fallback( talent.windwalker.zenith->ok(), this, "zenith", talent.windwalker.zenith ); + buff.zenith = make_buff_fallback( talent.windwalker.zenith->ok(), this, "zenith", talent.windwalker.zenith ) + ->add_invalidate( CACHE_AUTO_ATTACK_SPEED ); buff.rushing_wind_kick = make_buff_fallback( talent.windwalker.rushing_wind_kick->ok(), this, "rushing_wind_kick", talent.windwalker.rushing_wind_kick_buff ); @@ -5845,23 +5872,23 @@ void monk_t::create_buffs() talent.conduit_of_the_celestials.courage_of_the_white_tiger->ok(), this, "courage_of_the_white_tiger", talent.conduit_of_the_celestials.courage_of_the_white_tiger_buff ); - buff.heart_of_the_jade_serpent_cdr = - make_buff_fallback( talent.conduit_of_the_celestials.heart_of_the_jade_serpent->ok(), this, - "heart_of_the_jade_serpent_cdr", - talent.conduit_of_the_celestials.heart_of_the_jade_serpent_buff ) - ->set_expire_callback( - [ & ]( buff_t *, int, timespan_t ) { tier.tww3.coc_4pc_jade_serpents_blessing->trigger(); } ); - - buff.heart_of_the_jade_serpent_cdr_celestial = - make_buff_fallback( talent.conduit_of_the_celestials.heart_of_the_jade_serpent->ok(), this, - "heart_of_the_jade_serpent_cdr_celestial", - talent.conduit_of_the_celestials.heart_of_the_jade_serpent_celestial_buff ) + buff.heart_of_the_jade_serpent = make_buff_fallback( + talent.conduit_of_the_celestials.heart_of_the_jade_serpent->ok(), this, "heart_of_the_jade_serpent", + talent.conduit_of_the_celestials.heart_of_the_jade_serpent_buff ); + + buff.heart_of_the_jade_serpent_yulons_avatar = make_buff_fallback( + talent.conduit_of_the_celestials.yulons_avatar->ok(), this, "heart_of_the_jade_serpent_yulons_avatar", + talent.conduit_of_the_celestials.yulons_avatar_buff ); + + // TODO: does this cancel zenith (yulon's avatar) hotjs? + buff.heart_of_the_jade_serpent_unity_within = + make_buff_fallback( talent.conduit_of_the_celestials.unity_within->ok(), this, + "heart_of_the_jade_serpent_unity_within", + talent.conduit_of_the_celestials.unity_within_heart_of_the_jade_serpent_buff ) ->set_stack_change_callback( [ & ]( buff_t *, int old_, int new_ ) { if ( new_ && !old_ ) - buff.heart_of_the_jade_serpent_cdr->expire(); - } ) - ->set_expire_callback( - [ & ]( buff_t *, int, timespan_t ) { tier.tww3.coc_4pc_jade_serpents_blessing->trigger(); } ); + buff.heart_of_the_jade_serpent->expire(); + } ); buff.inner_compass_crane_stance = make_buff_fallback( talent.conduit_of_the_celestials.inner_compass->ok(), this, "crane_stance", @@ -5925,7 +5952,7 @@ void monk_t::create_buffs() action.strength_of_the_black_ox.celestial->execute(); action.courage_of_the_white_tiger.celestial->execute(); - buff.heart_of_the_jade_serpent_cdr_celestial->trigger(); + buff.heart_of_the_jade_serpent_unity_within->trigger(); } ); buff.aspect_of_harmony.construct_buffs( this ); @@ -5979,13 +6006,6 @@ void monk_t::create_buffs() // TWW S3 Tier Buffs // CoC - tier.tww3.coc_2pc_heart_of_the_jade_serpent = - make_buff_fallback( tier.tww3.coc_2pc->ok(), this, "heart_of_the_jade_serpent_tww3_tier", - tier.tww3.coc_2pc_heart_of_the_jade_serpent_data ) - ->set_duration( tier.tww3.coc_2pc->effectN( 1 ).time_value() ) - ->set_expire_callback( - [ & ]( buff_t *, int, timespan_t ) { tier.tww3.coc_4pc_jade_serpents_blessing->trigger(); } ); - tier.tww3.coc_4pc_jade_serpents_blessing = make_buff_fallback( tier.tww3.coc_4pc->ok(), this, "jade_serpents_blessing_tww3_tier", tier.tww3.coc_4pc_jade_serpents_blessing_data ) diff --git a/engine/class_modules/monk/sc_monk.hpp b/engine/class_modules/monk/sc_monk.hpp index 40ba540958d..cb190f4b912 100644 --- a/engine/class_modules/monk/sc_monk.hpp +++ b/engine/class_modules/monk/sc_monk.hpp @@ -531,8 +531,9 @@ struct monk_t : public stagger_t propagate_const celestial_conduit; propagate_const chijis_swiftness; propagate_const courage_of_the_white_tiger; - propagate_const heart_of_the_jade_serpent_cdr_celestial; - propagate_const heart_of_the_jade_serpent_cdr; + propagate_const heart_of_the_jade_serpent; + propagate_const heart_of_the_jade_serpent_yulons_avatar; + propagate_const heart_of_the_jade_serpent_unity_within; propagate_const inner_compass_crane_stance; propagate_const inner_compass_ox_stance; propagate_const inner_compass_serpent_stance; @@ -734,6 +735,7 @@ struct monk_t : public stagger_t player_talent_t profound_rebuttal; player_talent_t summon_black_ox_statue; // Brewmaster player_talent_t zenith_stomp; // Windwalker + const spell_data_t *zenith_stomp_damage; player_talent_t ironshell_brew; player_talent_t expeditious_fortification; player_talent_t diffuse_magic; @@ -882,6 +884,7 @@ struct monk_t : public stagger_t player_talent_t drinking_horn_cover; player_talent_t spiritual_focus; player_talent_t obsidian_spiral; + const spell_data_t *obsidian_spiral_energize; player_talent_t combo_breaker; const spell_data_t *combo_breaker_buff; // Row 7 @@ -927,7 +930,7 @@ struct monk_t : public stagger_t const spell_data_t *flurry_of_xuen_driver; player_talent_t martial_agility; player_talent_t airborne_rhythm; - const spell_data_t *airborne_rhythm_resource_gain; + const spell_data_t *airborne_rhythm_energize; player_talent_t hurricanes_vault; player_talent_t path_of_jade; player_talent_t singularly_focused_jade; @@ -955,7 +958,6 @@ struct monk_t : public stagger_t player_talent_t xuens_bond; player_talent_t heart_of_the_jade_serpent; const spell_data_t *heart_of_the_jade_serpent_buff; - const spell_data_t *heart_of_the_jade_serpent_celestial_buff; // Row 3 player_talent_t chijis_swiftness; const spell_data_t *chijis_swiftness_buff; @@ -965,6 +967,7 @@ struct monk_t : public stagger_t const spell_data_t *strength_of_the_black_ox_damage; player_talent_t path_of_the_falling_star; player_talent_t yulons_avatar; + const spell_data_t *yulons_avatar_buff; // Row 4 player_talent_t niuzaos_protection; player_talent_t jade_sanctuary; @@ -982,6 +985,7 @@ struct monk_t : public stagger_t // Row 5 player_talent_t unity_within; const spell_data_t *unity_within_buff; + const spell_data_t *unity_within_heart_of_the_jade_serpent_buff; const spell_data_t *unity_within_dmg_mult; } conduit_of_the_celestials; diff --git a/engine/report/report_html_sim.cpp b/engine/report/report_html_sim.cpp index b1c0bd7520d..1c23cf5410c 100644 --- a/engine/report/report_html_sim.cpp +++ b/engine/report/report_html_sim.cpp @@ -1284,7 +1284,8 @@ void print_html_( report::sc_html_stream& os, sim_t& sim ) os << R"()"; } - os << std::endl << R"()"; + if ( !sim.offline ) + os << std::endl << R"()"; } if ( sim.hosted_html ) diff --git a/engine/sim/sim.cpp b/engine/sim/sim.cpp index efbeeea0b38..004111c7756 100644 --- a/engine/sim/sim.cpp +++ b/engine/sim/sim.cpp @@ -1524,6 +1524,7 @@ sim_t::sim_t() report_all_variables( false ), report_rng( 0 ), hosted_html( 0 ), + offline( 0 ), save_raid_summary( 0 ), save_gear_comments( 0 ), statistics_level( 1 ), @@ -3748,6 +3749,7 @@ void sim_t::create_options() add_option( opt_func( "json2", replace_json2 ) ); add_option( opt_string( "html", html_file_str ) ); add_option( opt_bool( "hosted_html", hosted_html ) ); + add_option( opt_bool( "offline", offline ) ); add_option( opt_int( "healing", healing ) ); add_option( opt_bool( "log", log ) ); add_option( opt_string( "output", output_file_str ) ); diff --git a/engine/sim/sim.hpp b/engine/sim/sim.hpp index 21b1b1138fa..1ec55458395 100644 --- a/engine/sim/sim.hpp +++ b/engine/sim/sim.hpp @@ -548,6 +548,7 @@ struct sim_t : private sc_thread_t bool report_all_variables; int report_rng; int hosted_html; + int offline; int save_raid_summary; int save_gear_comments; int statistics_level;