Core/Scripts: Move some spells to scripts
Port From (https://github.com/TrinityCore/TrinityCore/commit/3b1ed434aeacfa57f392387c2176dfb4438b13f8)
This commit is contained in:
@@ -260,7 +260,7 @@ namespace Framework.Constants
|
||||
WildPet = 14,
|
||||
Aberration = 15,
|
||||
|
||||
MaskDemonOrUnDead = (1 << (Demon - 1)) | (1 << (Undead - 1)),
|
||||
MaskDemonOrUndead = (1 << (Demon - 1)) | (1 << (Undead - 1)),
|
||||
MaskHumanoidOrUndead = (1 << (Humanoid - 1)) | (1 << (Undead - 1)),
|
||||
MaskMechanicalOrElemental = (1 << (Mechanical - 1)) | (1 << (Elemental - 1))
|
||||
}
|
||||
|
||||
@@ -161,39 +161,6 @@ namespace Game.Spells
|
||||
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)
|
||||
{
|
||||
uint bonus = unitCaster.SpellDamageBonusDone(unitTarget, m_spellInfo, (uint)damage, DamageEffectType.SpellDirect, effectInfo);
|
||||
|
||||
@@ -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
|
||||
// 431 Drink
|
||||
// 432 Drink
|
||||
@@ -1624,7 +1645,7 @@ namespace Scripts.Spells.Generic
|
||||
AfterEffectRemove.Add(new EffectApplyHandler(HandleRemove, 0, AuraType.Dummy, AuraEffectHandleModes.Real));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
[Script] // 131474 - Fishing
|
||||
class spell_gen_fishing : SpellScript
|
||||
{
|
||||
@@ -3832,4 +3853,4 @@ namespace Scripts.Spells.Generic
|
||||
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');
|
||||
Reference in New Issue
Block a user