Scripts/Pet: Lil' K.T
Port From (https://github.com/TrinityCore/TrinityCore/commit/74174332c6f8f8cda136c2804bad6c665724185d)
This commit is contained in:
@@ -33,6 +33,10 @@ namespace Scripts.Pets
|
||||
//SoulTrader
|
||||
public const uint EtherealOnSummon = 50052;
|
||||
public const uint EtherealPetRemoveAura = 50055;
|
||||
|
||||
//LichPet
|
||||
public const uint LichOnSummon = 69735;
|
||||
public const uint LichRemoveAura = 69736;
|
||||
}
|
||||
|
||||
struct TextIds
|
||||
@@ -67,5 +71,27 @@ namespace Scripts.Pets
|
||||
base.JustAppeared();
|
||||
}
|
||||
}
|
||||
|
||||
[Script]
|
||||
class npc_pet_lich : ScriptedAI
|
||||
{
|
||||
public npc_pet_lich(Creature creature) : base(creature) { }
|
||||
|
||||
public override void LeavingWorld()
|
||||
{
|
||||
Unit owner = me.GetOwner();
|
||||
if (owner != null)
|
||||
DoCast(owner, SpellIds.LichRemoveAura);
|
||||
}
|
||||
|
||||
public override void JustAppeared()
|
||||
{
|
||||
Unit owner = me.GetOwner();
|
||||
if (owner != null)
|
||||
DoCast(owner, SpellIds.LichOnSummon);
|
||||
|
||||
base.JustAppeared();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -133,6 +133,10 @@ namespace Scripts.Spells.Generic
|
||||
// Interrupt
|
||||
public const uint GenThrowInterrupt = 32747;
|
||||
|
||||
// LichPet
|
||||
public const uint LichPetAura = 69732;
|
||||
public const uint LichPetAuraOnkill = 69731;
|
||||
|
||||
// Genericlifebloomspells
|
||||
public const uint HexlordMalacrass = 43422;
|
||||
public const uint TurragePaw = 52552;
|
||||
@@ -357,6 +361,9 @@ namespace Scripts.Spells.Generic
|
||||
public const uint Trollbane = 161707;
|
||||
public const uint Whitemane = 161708;
|
||||
public const uint Morgaine = 161709;
|
||||
|
||||
// LichPet
|
||||
public const uint LichPet = 36979;
|
||||
}
|
||||
|
||||
struct ModelIds
|
||||
@@ -2148,6 +2155,66 @@ namespace Scripts.Spells.Generic
|
||||
}
|
||||
}
|
||||
|
||||
[Script] // 69732 - Lich Pet Aura
|
||||
class spell_gen_lich_pet_aura : AuraScript
|
||||
{
|
||||
bool CheckProc(ProcEventInfo eventInfo)
|
||||
{
|
||||
return eventInfo.GetProcTarget().IsPlayer();
|
||||
}
|
||||
|
||||
void HandleProc(AuraEffect aurEff, ProcEventInfo eventInfo)
|
||||
{
|
||||
PreventDefaultAction();
|
||||
|
||||
List<TempSummon> minionList = new();
|
||||
GetUnitOwner().GetAllMinionsByEntry(minionList, CreatureIds.LichPet);
|
||||
foreach (Creature minion in minionList)
|
||||
if (minion.IsAIEnabled())
|
||||
minion.GetAI().DoCastSelf(SpellIds.LichPetAuraOnkill);
|
||||
}
|
||||
|
||||
public override void Register()
|
||||
{
|
||||
DoCheckProc.Add(new CheckProcHandler(CheckProc));
|
||||
OnEffectProc.Add(new EffectProcHandler(HandleProc, 0, AuraType.ProcTriggerSpell));
|
||||
}
|
||||
}
|
||||
|
||||
[Script] // 69735 - Lich Pet OnSummon
|
||||
class spell_gen_lich_pet_onsummon : SpellScript
|
||||
{
|
||||
public override bool Validate(SpellInfo spellInfo)
|
||||
{
|
||||
return ValidateSpellInfo(SpellIds.LichPetAura);
|
||||
}
|
||||
|
||||
void HandleScriptEffect(uint effIndex)
|
||||
{
|
||||
Unit target = GetHitUnit();
|
||||
target.CastSpell(target, SpellIds.LichPetAura, true);
|
||||
}
|
||||
|
||||
public override void Register()
|
||||
{
|
||||
OnEffectHitTarget.Add(new EffectHandler(HandleScriptEffect, 0, SpellEffectName.ScriptEffect));
|
||||
}
|
||||
}
|
||||
|
||||
[Script] // 69736 - Lich Pet Aura Remove
|
||||
class spell_gen_lich_pet_aura_remove : SpellScript
|
||||
{
|
||||
void HandleScriptEffect(uint effIndex)
|
||||
{
|
||||
GetHitUnit().RemoveAurasDueToSpell(SpellIds.LichPetAura);
|
||||
}
|
||||
|
||||
public override void Register()
|
||||
{
|
||||
OnEffectHitTarget.Add(new EffectHandler(HandleScriptEffect, 0, SpellEffectName.ScriptEffect));
|
||||
}
|
||||
}
|
||||
|
||||
[Script("spell_hexlord_lifebloom", SpellIds.HexlordMalacrass)]
|
||||
[Script("spell_tur_ragepaw_lifebloom", SpellIds.TurragePaw)]
|
||||
[Script("spell_cenarion_scout_lifebloom", SpellIds.CenarionScout)]
|
||||
|
||||
Reference in New Issue
Block a user