void HandleAchievementCredit(SpellEffIndex /*effIndex*/) { uint32 _creditSpell = 0; Unit* caster = GetOriginalCaster(); if (!caster) return; if (GetSpellInfo()->Id == SPELL_SEAFORIUM_BLAST) _creditSpell = SPELL_A_BOMB_INABLE_CREDIT; else if (GetSpellInfo()->Id == SPELL_HUGE_SEAFORIUM_BLAST) _creditSpell = SPELL_A_BOMB_INATION_CREDIT; if (GetHitGObj() && GetHitGObj()->IsDestructibleBuilding()) caster->CastSpell(caster, _creditSpell, true); }
void HandleActivateObject(SpellEffIndex effIndex) { PreventHitDefaultEffect(effIndex); if (GameObject* go = GetHitGObj()) { go->SetGoState(GO_STATE_ACTIVE); if (Map* map = go->GetMap()) { Map::PlayerList const &PlayerList = map->GetPlayers(); for (Map::PlayerList::const_iterator i = PlayerList.begin(); i != PlayerList.end(); ++i) if (i->GetSource()) { UpdateData data; WorldPacket pkt; go->BuildValuesUpdateBlockForPlayer(&data, i->GetSource()); data.BuildPacket(&pkt); i->GetSource()->GetSession()->SendPacket(&pkt); } } } }
void Activate(SpellEffIndex index) { PreventHitDefaultEffect(index); GetHitGObj()->SendCustomAnim(0); }
void Activate(SpellEffIndex index) { PreventHitDefaultEffect(index); GetHitGObj()->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); }