Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- struct immolate_dot_t : public destruction_spell_t
- {
- immolate_dot_t( warlock_t* p ) :
- destruction_spell_t( "immolate", p, p -> find_spell( 157736 ) )
- {
- background = true;
- hasted_ticks = true;
- tick_may_crit = true;
- dot_duration = data().duration();
- spell_power_mod.tick = data().effectN( 1 ).sp_coeff();
- base_tick_time = data().effectN( 1 ).period();
- }
- virtual void tick( dot_t* d ) override
- {
- destruction_spell_t::tick( d );
- if ( d->state->result == RESULT_CRIT && rng().roll( data().effectN( 2 ).percent() ) )
- p()->resource_gain( RESOURCE_SOUL_SHARD, 0.1, p()->gains.immolate_crits );
- p()->resource_gain( RESOURCE_SOUL_SHARD, 0.1, p()->gains.immolate );
- if ( d->state->result_amount > 0.0 && p()->azerite.flashpoint.ok() && target->health_percentage() > 80 )
- p()->buffs.flashpoint->trigger();
- }
- };
- struct immolate_t : public destruction_spell_t
- {
- immolate_dot_t* immolate_dot;
- immolate_t( warlock_t* p, const std::string& options_str ) :
- destruction_spell_t( "immolate", p, p -> find_spell( 348 ) ),
- immolate_dot( new immolate_dot_t( p ) )
- {
- parse_options( options_str );
- can_havoc = true;
- dot_duration = timespan_t::zero();
- add_child( immolate_dot );
- }
- void impact( action_state_t* s ) override
- {
- destruction_spell_t::impact( s );
- immolate_dot->execute();
- }
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement