Core/Scripts: Move some spells to scripts

Port From (https://github.com/TrinityCore/TrinityCore/commit/3b1ed434aeacfa57f392387c2176dfb4438b13f8)
This commit is contained in:
hondacrx
2021-11-18 20:13:29 -05:00
parent 24729c13a2
commit a1e0e2e1d0
4 changed files with 33 additions and 36 deletions
+1 -1
View File
@@ -260,7 +260,7 @@ namespace Framework.Constants
WildPet = 14, WildPet = 14,
Aberration = 15, Aberration = 15,
MaskDemonOrUnDead = (1 << (Demon - 1)) | (1 << (Undead - 1)), MaskDemonOrUndead = (1 << (Demon - 1)) | (1 << (Undead - 1)),
MaskHumanoidOrUndead = (1 << (Humanoid - 1)) | (1 << (Undead - 1)), MaskHumanoidOrUndead = (1 << (Humanoid - 1)) | (1 << (Undead - 1)),
MaskMechanicalOrElemental = (1 << (Mechanical - 1)) | (1 << (Elemental - 1)) MaskMechanicalOrElemental = (1 << (Mechanical - 1)) | (1 << (Elemental - 1))
} }
-33
View File
@@ -161,39 +161,6 @@ namespace Game.Spells
damage /= (int)count; damage /= (int)count;
} }
switch (m_spellInfo.SpellFamilyName)
{
case SpellFamilyNames.Generic:
{
///@todo: move those to scripts
switch (m_spellInfo.Id) // better way to check unknown
{
// Consumption
case 28865:
damage = 2750;
if (m_caster.GetMap().IsHeroic())
damage = 4250;
break;
// percent from health with min
case 25599: // Thundercrash
{
damage = (int)unitTarget.GetHealth() / 2;
if (damage < 200)
damage = 200;
break;
}
// arcane charge. must only affect demons (also undead?)
case 45072:
{
if ((unitTarget.GetCreatureTypeMask() & (uint)CreatureType.MaskDemonOrUnDead) == 0)
return;
break;
}
}
break;
}
}
if (unitCaster != null && apply_direct_bonus) if (unitCaster != null && apply_direct_bonus)
{ {
uint bonus = unitCaster.SpellDamageBonusDone(unitTarget, m_spellInfo, (uint)damage, DamageEffectType.SpellDirect, effectInfo); uint bonus = unitCaster.SpellDamageBonusDone(unitTarget, m_spellInfo, (uint)damage, DamageEffectType.SpellDirect, effectInfo);
+23 -2
View File
@@ -528,6 +528,27 @@ namespace Scripts.Spells.Generic
} }
} }
[Script]
class spell_gen_arcane_charge : SpellScript
{
SpellCastResult CheckRequirement()
{
Unit target = GetExplTargetUnit();
if (target != null)
{
if ((target.GetCreatureTypeMask() & (uint)CreatureType.MaskDemonOrUndead) == 0)
return SpellCastResult.DontReport;
}
return SpellCastResult.SpellCastOk;
}
public override void Register()
{
OnCheckCast.Add(new CheckCastHandler(CheckRequirement));
}
}
// 430 Drink // 430 Drink
// 431 Drink // 431 Drink
// 432 Drink // 432 Drink
@@ -1624,7 +1645,7 @@ namespace Scripts.Spells.Generic
AfterEffectRemove.Add(new EffectApplyHandler(HandleRemove, 0, AuraType.Dummy, AuraEffectHandleModes.Real)); AfterEffectRemove.Add(new EffectApplyHandler(HandleRemove, 0, AuraType.Dummy, AuraEffectHandleModes.Real));
} }
} }
[Script] // 131474 - Fishing [Script] // 131474 - Fishing
class spell_gen_fishing : SpellScript class spell_gen_fishing : SpellScript
{ {
@@ -3832,4 +3853,4 @@ namespace Scripts.Spells.Generic
OnEffectHitTarget.Add(new EffectHandler(HandleDummy, 0, SpellEffectName.Dummy)); OnEffectHitTarget.Add(new EffectHandler(HandleDummy, 0, SpellEffectName.Dummy));
} }
} }
} }
@@ -0,0 +1,9 @@
DELETE FROM `spell_script_names` WHERE `ScriptName` IN
('spell_four_horsemen_consumption',
'spell_rajaxx_thundercrash',
'spell_gen_arcane_charge');
INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES
(28865, 'spell_four_horsemen_consumption'),
(25599, 'spell_rajaxx_thundercrash'),
(45072, 'spell_gen_arcane_charge');