Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Review for Arcane Mage's 11.1 Changes #9887

Conversation

pinepinepinepinepine
Copy link

No description provided.

@pinepinepinepinepine
Copy link
Author

should note that i hadnt removed av/concentration just to be safe -- don't think it gets called now, but its there.

Copy link
Contributor

@vituscze vituscze left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the PR. I implemented all of this (and more) myself, but I appreciate the effort. Left some comments that might be useful for your next PR.

@@ -3498,10 +3493,13 @@ struct arcane_barrage_t final : public dematerialize_spell_t
{
p()->trigger_clearcasting( 1.0, 0_ms );
p()->trigger_arcane_charge( arcane_soul_charges );
p()->buffs.arcane_soul_counter->trigger( p()->buffs.arcane_soul->remains() );
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The counter doesn't last that long, it can actually expire before Arcane Soul does.

}

p()->trigger_spellfire_spheres();
p()->trigger_mana_cascade();
p()->consume_burden_of_power();
consume_nether_precision( target, true );
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Calling consume_nether_precision with true as the 2nd argument doesn't make sense here. With AV gone, the second param should just be removed.

}

p()->trigger_spellfire_spheres();
p()->trigger_mana_cascade();
p()->consume_burden_of_power();
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This triggers Glorious Incandescence, which is then immediately consumed. The order of these function calls needs to be adjusted.

trigger_glorious_incandescence( s->target );

if ( ( s->n_targets > 2 ) && result_is_hit( s->result ) && p()->talents.arcane_rebound.ok() )
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This would trigger the Rebound on every target rather than just the primary one.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also, hardcoding the target threshold is bad practice.

@@ -3965,6 +3970,15 @@ struct arcane_missiles_t final : public custom_state_spell_t<arcane_mage_spell_t
{
p()->buffs.clearcasting_channel->trigger();
p()->trigger_time_manipulation();
p()->buffs.intuition->trigger();

if ( rng().roll( p()->talents.leydrinker->effectN( 1 ).percent() ) )
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What about Arcane Explosion? This is the wrong place to trigger Leydrinker.

struct arcane_rebound_t final : public arcane_mage_spell_t
{
arcane_rebound_t( std::string_view n, mage_t* p ) :
arcane_mage_spell_t( n, p, p->find_spell( 210817 ) )
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is the old Legion spell; in-game it uses 1223801.

@@ -6069,6 +6084,16 @@ struct meteorite_impact_t final : public mage_spell_t
}
};

struct arcane_rebound_t final : public arcane_mage_spell_t
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This needs to derive from spell_t since it doesn't benefit from any of the mage effects.

@@ -8543,6 +8574,8 @@ void mage_t::create_buffs()
// Sunfury
buffs.arcane_soul = make_buff( this, "arcane_soul", find_spell( 451038 ) )
->set_chance( specialization() == MAGE_ARCANE && talents.memory_of_alar.ok() );
buffs.arcane_soul_counter = make_buff( this, "arcane_soul_counter", find_spell( 1223522 ) )
->set_chance( specialization() == MAGE_ARCANE && talents.memory_of_alar.ok() );
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You're not setting the default value here. The buff does nothing.

->set_default_value_from_effect( 1 )
->set_chance( sets->set( MAGE_ARCANE, TWW1, B4 )->effectN( 1 ).percent() );
->set_chance( find_spell( 1223798 )->effectN( 1 ).percent() );
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is missing the talent check. It just triggers regardless of whether you have the talent or not.

@@ -3965,6 +3970,15 @@ struct arcane_missiles_t final : public custom_state_spell_t<arcane_mage_spell_t
{
p()->buffs.clearcasting_channel->trigger();
p()->trigger_time_manipulation();
p()->buffs.intuition->trigger();
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Even though AM cannot be cast without CC, you shouldn't assume this will always be the case. Intuition wouldn't work properly then.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants