Scripts/Spells: Implement effect "Party Time" & Add Rejuvenation when eating Deviate Fish
Port From (https://github.com/TrinityCore/TrinityCore/commit/f258d2443f335cfdb4fda5b2f657e8a6703ab651)
This commit is contained in:
@@ -16,6 +16,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
using Framework.Constants;
|
using Framework.Constants;
|
||||||
|
using Framework.Dynamic;
|
||||||
using Game.BattleGrounds;
|
using Game.BattleGrounds;
|
||||||
using Game.DataStorage;
|
using Game.DataStorage;
|
||||||
using Game.Entities;
|
using Game.Entities;
|
||||||
@@ -105,6 +106,7 @@ namespace Scripts.Spells.Items
|
|||||||
public const uint Shrink = 8066;
|
public const uint Shrink = 8066;
|
||||||
public const uint PartyTime = 8067;
|
public const uint PartyTime = 8067;
|
||||||
public const uint HealthySpirit = 8068;
|
public const uint HealthySpirit = 8068;
|
||||||
|
public const uint Rejuvenation = 8070;
|
||||||
|
|
||||||
//Discerningeyebeastmisc
|
//Discerningeyebeastmisc
|
||||||
public const uint DiscerningEyeBeast = 59914;
|
public const uint DiscerningEyeBeast = 59914;
|
||||||
@@ -1138,13 +1140,13 @@ namespace Scripts.Spells.Items
|
|||||||
|
|
||||||
public override bool Validate(SpellInfo spellInfo)
|
public override bool Validate(SpellInfo spellInfo)
|
||||||
{
|
{
|
||||||
return ValidateSpellInfo(SpellIds.Sleepy, SpellIds.Invigorate, SpellIds.Shrink, SpellIds.PartyTime, SpellIds.HealthySpirit);
|
return ValidateSpellInfo(SpellIds.Sleepy, SpellIds.Invigorate, SpellIds.Shrink, SpellIds.PartyTime, SpellIds.HealthySpirit, SpellIds.Rejuvenation);
|
||||||
}
|
}
|
||||||
|
|
||||||
void HandleDummy(uint effIndex)
|
void HandleDummy(uint effIndex)
|
||||||
{
|
{
|
||||||
Unit caster = GetCaster();
|
Unit caster = GetCaster();
|
||||||
uint spellId = RandomHelper.URand(SpellIds.Sleepy, SpellIds.HealthySpirit);
|
uint spellId = RandomHelper.RAND(SpellIds.Sleepy, SpellIds.Invigorate, SpellIds.Shrink, SpellIds.PartyTime, SpellIds.HealthySpirit, SpellIds.Rejuvenation);
|
||||||
caster.CastSpell(caster, spellId, true);
|
caster.CastSpell(caster, spellId, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1154,6 +1156,49 @@ namespace Scripts.Spells.Items
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
class PartyTimeEmoteEvent : BasicEvent
|
||||||
|
{
|
||||||
|
Player _player;
|
||||||
|
|
||||||
|
public PartyTimeEmoteEvent(Player player)
|
||||||
|
{
|
||||||
|
_player = player;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override bool Execute(ulong time, uint diff)
|
||||||
|
{
|
||||||
|
if (!_player.HasAura(SpellIds.PartyTime))
|
||||||
|
return true;
|
||||||
|
|
||||||
|
if (_player.IsMoving())
|
||||||
|
_player.HandleEmoteCommand(RandomHelper.RAND(Emote.OneshotApplaud, Emote.OneshotLaugh, Emote.OneshotCheer, Emote.OneshotChicken));
|
||||||
|
else
|
||||||
|
_player.HandleEmoteCommand(RandomHelper.RAND(Emote.OneshotApplaud, Emote.OneshotDancespecial, Emote.OneshotLaugh, Emote.OneshotCheer, Emote.OneshotChicken));
|
||||||
|
|
||||||
|
_player.m_Events.AddEventAtOffset(this, TimeSpan.FromSeconds(RandomHelper.RAND(5, 10, 15)));
|
||||||
|
|
||||||
|
return false; // do not delete re-added event in EventProcessor::Update
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[Script]
|
||||||
|
class spell_item_party_time : AuraScript
|
||||||
|
{
|
||||||
|
void HandleEffectApply(AuraEffect aurEff, AuraEffectHandleModes mode)
|
||||||
|
{
|
||||||
|
Player player = GetOwner().ToPlayer();
|
||||||
|
if (player == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
player.m_Events.AddEventAtOffset(new PartyTimeEmoteEvent(player), TimeSpan.FromSeconds(RandomHelper.RAND(5, 10, 15)));
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void Register()
|
||||||
|
{
|
||||||
|
OnEffectApply.Add(new EffectApplyHandler(HandleEffectApply, 0, AuraType.Dummy, AuraEffectHandleModes.Real));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
[Script] // 59915 - Discerning Eye of the Beast Dummy
|
[Script] // 59915 - Discerning Eye of the Beast Dummy
|
||||||
class spell_item_discerning_eye_beast_dummy : AuraScript
|
class spell_item_discerning_eye_beast_dummy : AuraScript
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user