void MountedChampionAI::DamageTaken(Unit* /*attacker*/, uint32& damage) { if (!isGrandChampion()) return; if (defeated) { damage = 0; return; } if (damage >= me->GetHealth()) { damage = 0; defeated = true; me->GetMotionMaster()->MoveIdle(); me->Dismount(); me->RemoveAurasDueToSpell(SPELL_SHIELD); me->CastSpell(me, SPELL_KNEE, true); me->SetTarget(0); if (pInstance) pInstance->SetData(ENCOUNTER_DATA_GC_BOSS_DEFEATED, 1); } }
void DamageTaken(Unit* /*attacker*/, uint32 & damage) { if (!isGrandChampion()) return; if(_defeated) { damage = 0; return; } if(damage >= me->GetHealth()) { damage = 0; _defeated = true; me->GetMotionMaster()->MoveIdle(); me->Dismount(); me->RemoveAurasDueToSpell(SPELL_SHIELD); me->CastSpell(me, SPELL_KNEE, true); me->SetTarget(0); me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); } }
void MountedChampionAI::JustDied(Unit* /*killer*/) { if (!isGrandChampion()) pInstance->SetData(ENCOUNTER_DATA_GC_ADDS_DEFEATED, 1); }