Scripts/Spells: Implemented Flurry
Port From (https://github.com/TrinityCore/TrinityCore/commit/47d4fa09850a778e48036a6d7cc42310e7e5c6a3)
This commit is contained in:
@@ -41,6 +41,7 @@ namespace Scripts.Spells.Mage
|
|||||||
public const uint EverwarmSocks = 320913;
|
public const uint EverwarmSocks = 320913;
|
||||||
public const uint FingersOfFrost = 44544;
|
public const uint FingersOfFrost = 44544;
|
||||||
public const uint FireBlast = 108853;
|
public const uint FireBlast = 108853;
|
||||||
|
public const uint FlurryDamage = 228596;
|
||||||
public const uint Firestarter = 205026;
|
public const uint Firestarter = 205026;
|
||||||
public const uint FrostNova = 122;
|
public const uint FrostNova = 122;
|
||||||
public const uint GiraffeForm = 32816;
|
public const uint GiraffeForm = 32816;
|
||||||
@@ -68,6 +69,7 @@ namespace Scripts.Spells.Mage
|
|||||||
public const uint ChainReactionDummy = 278309;
|
public const uint ChainReactionDummy = 278309;
|
||||||
public const uint ChainReaction = 278310;
|
public const uint ChainReaction = 278310;
|
||||||
public const uint TouchOfTheMagiExplode = 210833;
|
public const uint TouchOfTheMagiExplode = 210833;
|
||||||
|
public const uint WintersChill = 228358;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 110909 - Alter Time Aura
|
// 110909 - Alter Time Aura
|
||||||
@@ -604,7 +606,7 @@ namespace Scripts.Spells.Mage
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 205029 - Flame On
|
[Script] // 205029 - Flame On
|
||||||
class spell_mage_flame_on : AuraScript
|
class spell_mage_flame_on : AuraScript
|
||||||
{
|
{
|
||||||
public override bool Validate(SpellInfo spellInfo)
|
public override bool Validate(SpellInfo spellInfo)
|
||||||
@@ -626,6 +628,75 @@ namespace Scripts.Spells.Mage
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 44614 - Flurry
|
||||||
|
class spell_mage_flurry : SpellScript
|
||||||
|
{
|
||||||
|
class FlurryEvent : BasicEvent
|
||||||
|
{
|
||||||
|
Unit _caster;
|
||||||
|
ObjectGuid _target;
|
||||||
|
ObjectGuid _originalCastId;
|
||||||
|
int _count;
|
||||||
|
|
||||||
|
public FlurryEvent(Unit caster, ObjectGuid target, ObjectGuid originalCastId, int count)
|
||||||
|
{
|
||||||
|
_caster = caster;
|
||||||
|
_target = target;
|
||||||
|
_originalCastId = originalCastId;
|
||||||
|
_count = count;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override bool Execute(ulong time, uint diff)
|
||||||
|
{
|
||||||
|
Unit target = Global.ObjAccessor.GetUnit(_caster, _target);
|
||||||
|
if (target == null)
|
||||||
|
return true;
|
||||||
|
|
||||||
|
_caster.CastSpell(target, SpellIds.FlurryDamage, new CastSpellExtraArgs(TriggerCastFlags.IgnoreCastInProgress).SetOriginalCastId(_originalCastId));
|
||||||
|
|
||||||
|
if ((--_count) == 0)
|
||||||
|
return true;
|
||||||
|
|
||||||
|
_caster.m_Events.AddEvent(this, TimeSpan.FromMilliseconds(time) + RandomHelper.RandTime(TimeSpan.FromMilliseconds(300), TimeSpan.FromMilliseconds(400)));
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public override bool Validate(SpellInfo spellInfo)
|
||||||
|
{
|
||||||
|
return ValidateSpellInfo(SpellIds.FlurryDamage);
|
||||||
|
}
|
||||||
|
|
||||||
|
void EffectHit(uint effIndex)
|
||||||
|
{
|
||||||
|
GetCaster().m_Events.AddEventAtOffset(new FlurryEvent(GetCaster(), GetHitUnit().GetGUID(), GetSpell().m_castId, GetEffectValue() - 1), RandomHelper.RandTime(TimeSpan.FromMilliseconds(300), TimeSpan.FromMilliseconds(400)));
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void Register()
|
||||||
|
{
|
||||||
|
OnEffectHitTarget.Add(new EffectHandler(EffectHit, 0, SpellEffectName.Dummy));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[Script] // 228354 - Flurry (damage)
|
||||||
|
class spell_mage_flurry_damage : SpellScript
|
||||||
|
{
|
||||||
|
public override bool Validate(SpellInfo spellInfo)
|
||||||
|
{
|
||||||
|
return ValidateSpellInfo(SpellIds.WintersChill);
|
||||||
|
}
|
||||||
|
|
||||||
|
void HandleDamage(uint effIndex)
|
||||||
|
{
|
||||||
|
GetCaster().CastSpell(GetHitUnit(), SpellIds.WintersChill, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void Register()
|
||||||
|
{
|
||||||
|
OnEffectHitTarget.Add(new EffectHandler(HandleDamage, 1, SpellEffectName.SchoolDamage));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
[Script] // 116 - Frostbolt
|
[Script] // 116 - Frostbolt
|
||||||
class spell_mage_frostbolt : SpellScript
|
class spell_mage_frostbolt : SpellScript
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user