fix(Scripts/Item): Gnomish Death Ray. (#7062)

- Closes #5648
This commit is contained in:
UltraNix
2021-07-23 13:13:49 +02:00
committed by GitHub
parent b8b3708b1b
commit ba85988d31
3 changed files with 12 additions and 15 deletions

View File

@@ -0,0 +1,5 @@
INSERT INTO `version_db_world` (`sql_rev`) VALUES ('1626953516206751500');
DELETE FROM `spell_linked_spell` WHERE `spell_trigger` = 13278 AND `spell_effect` = 13493;
INSERT INTO `spell_linked_spell` (`spell_trigger`,`spell_effect`,`type`,`comment`) VALUES
(13278, 13493, 0, 'Gnomish Death Ray');

View File

@@ -7081,12 +7081,6 @@ void SpellMgr::LoadDbcDataCorrections()
spellInfo->AttributesEx3 |= SPELL_ATTR3_ALLOW_AURA_WHILE_DEAD;
});
// Gnomish Death Ray
ApplySpellFix({ 13278, 13280 }, [](SpellEntry* spellInfo)
{
spellInfo->EffectImplicitTargetA[0] = TARGET_UNIT_TARGET_ENEMY;
});
// Stormchops
ApplySpellFix({ 43730 }, [](SpellEntry* spellInfo)
{

View File

@@ -2126,8 +2126,7 @@ public:
// 13280 Gnomish Death Ray
enum GnomishDeathRay
{
SPELL_GNOMISH_DEATH_RAY_SELF = 13493,
SPELL_GNOMISH_DEATH_RAY_TARGET = 13279,
SPELL_GNOMISH_DEATH_RAY_TARGET = 13279,
};
class spell_item_gnomish_death_ray : public SpellScriptLoader
@@ -2141,18 +2140,17 @@ public:
bool Validate(SpellInfo const* /*spellInfo*/) override
{
return ValidateSpellInfo({ SPELL_GNOMISH_DEATH_RAY_SELF, SPELL_GNOMISH_DEATH_RAY_TARGET });
return ValidateSpellInfo({ SPELL_GNOMISH_DEATH_RAY_TARGET });
}
void HandleDummy(SpellEffIndex /*effIndex*/)
{
Unit* caster = GetCaster();
if (Unit* target = GetHitUnit())
if (Unit* caster = GetCaster())
{
if (urand(0, 99) < 15)
caster->CastSpell(caster, SPELL_GNOMISH_DEATH_RAY_SELF, true, nullptr); // failure
else
caster->CastSpell(target, SPELL_GNOMISH_DEATH_RAY_TARGET, true, nullptr);
if (Unit* target = ObjectAccessor::GetUnit(*caster, caster->GetGuidValue(UNIT_FIELD_CHANNEL_OBJECT)))
{
caster->CastSpell(target, SPELL_GNOMISH_DEATH_RAY_TARGET, true);
}
}
}