mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-16 07:30:42 +01:00
Merge pull request #16245 from sirikfoll/Turkinator
Core/Spells Implement SpellScript needed for Achievement The Turkinator
(cherry picked from commit 529899675a)
This commit is contained in:
@@ -0,0 +1,15 @@
|
||||
UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=32820;
|
||||
DELETE FROM `smart_scripts` WHERE `source_type`=0 AND `entryorguid`=32820;
|
||||
INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES
|
||||
(32820,0,0,0,6,0,100,0,0,0,0,0,11,62014,2,0,0,0,0,7,0,0,0,0,0,0,0,"Wild Turkey - On Just Died - Cast 'Turkey Tracker'");
|
||||
|
||||
DELETE FROM `creature_text` WHERE `entry`=32820;
|
||||
INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`BroadcastTextId`,`TextRange`,`comment`) VALUES
|
||||
(32820,0,0,'Turkey Hunter!',42,0,100,0,0,0,33163,0,'Wild Turkey'),
|
||||
(32820,1,0,'Turkey Domination!',42,0,100,0,0,0,33164,0,'Wild Turkey'),
|
||||
(32820,2,0,'Turkey Slaughter!',42,0,100,0,0,0,33165,0,'Wild Turkey'),
|
||||
(32820,3,0,'TURKEY TRIUMPH!',42,0,100,0,0,0,33167,0,'Wild Turkey');
|
||||
|
||||
DELETE FROM `spell_script_names` WHERE `ScriptName`='spell_pilgrims_bounty_turkey_tracker';
|
||||
INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES
|
||||
(62014,'spell_pilgrims_bounty_turkey_tracker');
|
||||
@@ -410,6 +410,80 @@ class spell_pilgrims_bounty_buff_food : public SpellScriptLoader
|
||||
}
|
||||
};
|
||||
|
||||
enum TheTurkinator
|
||||
{
|
||||
SPELL_KILL_COUNTER_VISUAL = 62015,
|
||||
SPELL_KILL_COUNTER_VISUAL_MAX = 62021,
|
||||
EMOTE_TURKEY_HUNTER = 0,
|
||||
EMOTE_TURKEY_DOMINATION = 1,
|
||||
EMOTE_TURKEY_SLAUGHTER = 2,
|
||||
EMOTE_TURKEY_TRIUMPH = 3
|
||||
};
|
||||
|
||||
class spell_pilgrims_bounty_turkey_tracker : public SpellScriptLoader
|
||||
{
|
||||
public:
|
||||
spell_pilgrims_bounty_turkey_tracker() : SpellScriptLoader("spell_pilgrims_bounty_turkey_tracker") { }
|
||||
|
||||
class spell_pilgrims_bounty_turkey_tracker_SpellScript : public SpellScript
|
||||
{
|
||||
PrepareSpellScript(spell_pilgrims_bounty_turkey_tracker_SpellScript);
|
||||
|
||||
bool Validate(SpellInfo const* /*spell*/)
|
||||
{
|
||||
if (!sSpellMgr->GetSpellInfo(SPELL_KILL_COUNTER_VISUAL) || !sSpellMgr->GetSpellInfo(SPELL_KILL_COUNTER_VISUAL_MAX))
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
void HandleScript(SpellEffIndex /*effIndex*/)
|
||||
{
|
||||
Creature* caster = GetCaster()->ToCreature();
|
||||
Unit* target = GetHitUnit();
|
||||
|
||||
if (!target || !caster)
|
||||
return;
|
||||
|
||||
if (target->HasAura(SPELL_KILL_COUNTER_VISUAL_MAX))
|
||||
return;
|
||||
|
||||
if (Aura const* aura = target->GetAura(GetSpellInfo()->Id))
|
||||
{
|
||||
switch (aura->GetStackAmount())
|
||||
{
|
||||
case 10:
|
||||
caster->AI()->Talk(EMOTE_TURKEY_HUNTER, target);
|
||||
break;
|
||||
case 20:
|
||||
caster->AI()->Talk(EMOTE_TURKEY_DOMINATION, target);
|
||||
break;
|
||||
case 30:
|
||||
caster->AI()->Talk(EMOTE_TURKEY_SLAUGHTER, target);
|
||||
break;
|
||||
case 40:
|
||||
caster->AI()->Talk(EMOTE_TURKEY_TRIUMPH, target);
|
||||
target->CastSpell(target, SPELL_KILL_COUNTER_VISUAL_MAX, true);
|
||||
target->RemoveAurasDueToSpell(GetSpellInfo()->Id);
|
||||
break;
|
||||
default:
|
||||
return;
|
||||
}
|
||||
target->CastSpell(target, SPELL_KILL_COUNTER_VISUAL, true);
|
||||
}
|
||||
}
|
||||
|
||||
void Register()
|
||||
{
|
||||
OnEffectHitTarget += SpellEffectFn(spell_pilgrims_bounty_turkey_tracker_SpellScript::HandleScript, EFFECT_1, SPELL_EFFECT_SCRIPT_EFFECT);
|
||||
}
|
||||
};
|
||||
|
||||
SpellScript* GetSpellScript() const
|
||||
{
|
||||
return new spell_pilgrims_bounty_turkey_tracker_SpellScript();
|
||||
}
|
||||
};
|
||||
|
||||
enum Mistletoe
|
||||
{
|
||||
SPELL_CREATE_MISTLETOE = 26206,
|
||||
@@ -973,6 +1047,7 @@ void AddSC_holiday_spell_scripts()
|
||||
new spell_pilgrims_bounty_buff_food("spell_gen_spice_bread_stuffing", SPELL_WELL_FED_HIT_TRIGGER);
|
||||
new spell_pilgrims_bounty_buff_food("spell_gen_pumpkin_pie", SPELL_WELL_FED_SPIRIT_TRIGGER);
|
||||
new spell_pilgrims_bounty_buff_food("spell_gen_candied_sweet_potato", SPELL_WELL_FED_HASTE_TRIGGER);
|
||||
new spell_pilgrims_bounty_turkey_tracker();
|
||||
// Winter Veil
|
||||
new spell_winter_veil_mistletoe();
|
||||
new spell_winter_veil_px_238_winter_wondervolt();
|
||||
|
||||
Reference in New Issue
Block a user