Ulduar: Halls of Stone, Krystallus: Fix Shatter usage

--HG--
branch : trunk
This commit is contained in:
Tartalo
2010-06-19 23:52:24 +02:00
parent fb7dc51826
commit 2c407aca1f
@@ -20,6 +20,9 @@ enum Spells
SPELL_GROUND_SLAM = 50827, SPELL_GROUND_SLAM = 50827,
SPELL_SHATTER = 50810, SPELL_SHATTER = 50810,
H_SPELL_SHATTER = 61546, H_SPELL_SHATTER = 61546,
SPELL_SHATTER_EFFECT = 50811,
H_SPELL_SHATTER_EFFECT = 61547,
SPELL_STONED = 50812,
SPELL_STOMP = 48131, SPELL_STOMP = 48131,
H_SPELL_STOMP = 59744 H_SPELL_STOMP = 59744
}; };
@@ -108,8 +111,7 @@ struct boss_krystallusAI : public ScriptedAI
{ {
if (uiShatterTimer <= diff) if (uiShatterTimer <= diff)
{ {
DoCast(me, SPELL_SHATTER); DoCast(me, DUNGEON_MODE(SPELL_SHATTER, H_SPELL_SHATTER));
bIsSlam = false;
} else uiShatterTimer -= diff; } else uiShatterTimer -= diff;
} }
@@ -130,6 +132,32 @@ struct boss_krystallusAI : public ScriptedAI
return; return;
DoScriptText(SAY_KILL, me); DoScriptText(SAY_KILL, me);
} }
void SpellHitTarget(Unit* pTarget, const SpellEntry* pSpell)
{
//this part should be in the core
if (pSpell->Id == SPELL_SHATTER || pSpell->Id == H_SPELL_SHATTER)
{
//this spell must have custom handling in the core, dealing damage based on distance
pTarget->CastSpell(pTarget, DUNGEON_MODE(SPELL_SHATTER_EFFECT, H_SPELL_SHATTER_EFFECT), true);
if (pTarget->HasAura(SPELL_STONED))
pTarget->RemoveAurasDueToSpell(SPELL_STONED);
//clear this, if we are still performing
if (bIsSlam)
{
bIsSlam = false;
//and correct movement, if not already
if (me->GetMotionMaster()->GetCurrentMovementGeneratorType() != TARGETED_MOTION_TYPE)
{
if (me->getVictim())
me->GetMotionMaster()->MoveChase(me->getVictim());
}
}
}
}
}; };
CreatureAI* GetAI_boss_krystallus(Creature* pCreature) CreatureAI* GetAI_boss_krystallus(Creature* pCreature)