hondacrx
2022-07-02 15:54:54 -04:00
parent cabb59efe8
commit 2cb497075c
2 changed files with 100 additions and 7 deletions
+26
View File
@@ -33,6 +33,10 @@ namespace Scripts.Pets
//SoulTrader //SoulTrader
public const uint EtherealOnSummon = 50052; public const uint EtherealOnSummon = 50052;
public const uint EtherealPetRemoveAura = 50055; public const uint EtherealPetRemoveAura = 50055;
//LichPet
public const uint LichOnSummon = 69735;
public const uint LichRemoveAura = 69736;
} }
struct TextIds struct TextIds
@@ -67,5 +71,27 @@ namespace Scripts.Pets
base.JustAppeared(); 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();
}
}
} }
} }
+67
View File
@@ -133,6 +133,10 @@ namespace Scripts.Spells.Generic
// Interrupt // Interrupt
public const uint GenThrowInterrupt = 32747; public const uint GenThrowInterrupt = 32747;
// LichPet
public const uint LichPetAura = 69732;
public const uint LichPetAuraOnkill = 69731;
// Genericlifebloomspells // Genericlifebloomspells
public const uint HexlordMalacrass = 43422; public const uint HexlordMalacrass = 43422;
public const uint TurragePaw = 52552; public const uint TurragePaw = 52552;
@@ -357,6 +361,9 @@ namespace Scripts.Spells.Generic
public const uint Trollbane = 161707; public const uint Trollbane = 161707;
public const uint Whitemane = 161708; public const uint Whitemane = 161708;
public const uint Morgaine = 161709; public const uint Morgaine = 161709;
// LichPet
public const uint LichPet = 36979;
} }
struct ModelIds 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_hexlord_lifebloom", SpellIds.HexlordMalacrass)]
[Script("spell_tur_ragepaw_lifebloom", SpellIds.TurragePaw)] [Script("spell_tur_ragepaw_lifebloom", SpellIds.TurragePaw)]
[Script("spell_cenarion_scout_lifebloom", SpellIds.CenarionScout)] [Script("spell_cenarion_scout_lifebloom", SpellIds.CenarionScout)]