Scripts/Spells: fix Seaforium Blast script crash

Closes #21663

(cherry picked from commit 6eb122792c)
This commit is contained in:
ariel-
2018-03-18 16:08:36 -03:00
committed by Shauren
parent c8d7289245
commit 6d3a11e1d1

View File

@@ -2802,17 +2802,15 @@ class spell_gen_seaforium_blast : public SpellScript
bool Load() override
{
// OriginalCaster is always available in Spell::prepare
return GetOriginalCaster()->GetTypeId() == TYPEID_PLAYER;
return GetGObjCaster()->GetOwnerGUID().IsPlayer();
}
void AchievementCredit(SpellEffIndex /*effIndex*/)
{
// but in effect handling OriginalCaster can become nullptr
if (Unit* originalCaster = GetOriginalCaster())
if (Unit* owner = GetGObjCaster()->GetOwner())
if (GameObject* go = GetHitGObj())
if (go->GetGOInfo()->type == GAMEOBJECT_TYPE_DESTRUCTIBLE_BUILDING)
originalCaster->CastSpell(originalCaster, SPELL_PLANT_CHARGES_CREDIT_ACHIEVEMENT, true);
owner->CastSpell(nullptr, SPELL_PLANT_CHARGES_CREDIT_ACHIEVEMENT, true);
}
void Register() override