mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-16 07:30:42 +01:00
Scripts/Spells: Great/Fish/Gigantic/Small/Bountiful Feast (#28114)
This commit is contained in:
20
sql/updates/world/3.3.5/2022_07_13_01_world.sql
Normal file
20
sql/updates/world/3.3.5/2022_07_13_01_world.sql
Normal file
@@ -0,0 +1,20 @@
|
||||
--
|
||||
DELETE FROM `spell_scripts` WHERE `id` IN (57337,57397,58466,58475,66477);
|
||||
DELETE FROM `spell_script_names` WHERE `ScriptName` IN (
|
||||
'spell_item_great_feast',
|
||||
'spell_item_fish_feast',
|
||||
'spell_item_gigantic_feast',
|
||||
'spell_item_small_feast',
|
||||
'spell_item_bountiful_feast',
|
||||
'spell_gen_feast');
|
||||
INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES
|
||||
(57301,'spell_item_great_feast'),
|
||||
(57426,'spell_item_fish_feast'),
|
||||
(58465,'spell_item_gigantic_feast'),
|
||||
(58474,'spell_item_small_feast'),
|
||||
(66476,'spell_item_bountiful_feast'),
|
||||
(57337,'spell_gen_feast'),
|
||||
(57397,'spell_gen_feast'),
|
||||
(58466,'spell_gen_feast'),
|
||||
(58475,'spell_gen_feast'),
|
||||
(66477,'spell_gen_feast');
|
||||
@@ -1599,6 +1599,94 @@ class spell_steal_essence_visual : public AuraScript
|
||||
}
|
||||
};
|
||||
|
||||
enum Feast
|
||||
{
|
||||
SPELL_GREAT_FEAST = 57337,
|
||||
SPELL_FISH_FEAST = 57397,
|
||||
SPELL_GIGANTIC_FEAST = 58466,
|
||||
SPELL_SMALL_FEAST = 58475,
|
||||
SPELL_BOUNTIFUL_FEAST = 66477,
|
||||
|
||||
SPELL_FEAST_FOOD = 45548,
|
||||
SPELL_FEAST_DRINK = 57073,
|
||||
SPELL_BOUNTIFUL_FEAST_DRINK = 66041,
|
||||
SPELL_BOUNTIFUL_FEAST_FOOD = 66478,
|
||||
|
||||
SPELL_GREAT_FEAST_REFRESHMENT = 57338,
|
||||
SPELL_FISH_FEAST_REFRESHMENT = 57398,
|
||||
SPELL_GIGANTIC_FEAST_REFRESHMENT = 58467,
|
||||
SPELL_SMALL_FEAST_REFRESHMENT = 58477,
|
||||
SPELL_BOUNTIFUL_FEAST_REFRESHMENT = 66622
|
||||
};
|
||||
|
||||
/* 57337 - Great Feast
|
||||
57397 - Fish Feast
|
||||
58466 - Gigantic Feast
|
||||
58475 - Small Feast
|
||||
66477 - Bountiful Feast */
|
||||
class spell_gen_feast : public SpellScript
|
||||
{
|
||||
PrepareSpellScript(spell_gen_feast);
|
||||
|
||||
bool Validate(SpellInfo const* /*spellInfo*/) override
|
||||
{
|
||||
return ValidateSpellInfo(
|
||||
{
|
||||
SPELL_FEAST_FOOD,
|
||||
SPELL_FEAST_DRINK,
|
||||
SPELL_BOUNTIFUL_FEAST_DRINK,
|
||||
SPELL_BOUNTIFUL_FEAST_FOOD,
|
||||
|
||||
SPELL_GREAT_FEAST_REFRESHMENT,
|
||||
SPELL_FISH_FEAST_REFRESHMENT,
|
||||
SPELL_GIGANTIC_FEAST_REFRESHMENT,
|
||||
SPELL_SMALL_FEAST_REFRESHMENT,
|
||||
SPELL_BOUNTIFUL_FEAST_REFRESHMENT
|
||||
});
|
||||
}
|
||||
|
||||
void HandleScript(SpellEffIndex /*effIndex*/)
|
||||
{
|
||||
Unit* target = GetHitUnit();
|
||||
|
||||
switch (GetSpellInfo()->Id)
|
||||
{
|
||||
case SPELL_GREAT_FEAST:
|
||||
target->CastSpell(target, SPELL_FEAST_FOOD);
|
||||
target->CastSpell(target, SPELL_FEAST_DRINK);
|
||||
target->CastSpell(target, SPELL_GREAT_FEAST_REFRESHMENT);
|
||||
break;
|
||||
case SPELL_FISH_FEAST:
|
||||
target->CastSpell(target, SPELL_FEAST_FOOD);
|
||||
target->CastSpell(target, SPELL_FEAST_DRINK);
|
||||
target->CastSpell(target, SPELL_FISH_FEAST_REFRESHMENT);
|
||||
break;
|
||||
case SPELL_GIGANTIC_FEAST:
|
||||
target->CastSpell(target, SPELL_FEAST_FOOD);
|
||||
target->CastSpell(target, SPELL_FEAST_DRINK);
|
||||
target->CastSpell(target, SPELL_GIGANTIC_FEAST_REFRESHMENT);
|
||||
break;
|
||||
case SPELL_SMALL_FEAST:
|
||||
target->CastSpell(target, SPELL_FEAST_FOOD);
|
||||
target->CastSpell(target, SPELL_FEAST_DRINK);
|
||||
target->CastSpell(target, SPELL_SMALL_FEAST_REFRESHMENT);
|
||||
break;
|
||||
case SPELL_BOUNTIFUL_FEAST:
|
||||
target->CastSpell(target, SPELL_BOUNTIFUL_FEAST_REFRESHMENT);
|
||||
target->CastSpell(target, SPELL_BOUNTIFUL_FEAST_DRINK);
|
||||
target->CastSpell(target, SPELL_BOUNTIFUL_FEAST_FOOD);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void Register() override
|
||||
{
|
||||
OnEffectHitTarget += SpellEffectFn(spell_gen_feast::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
|
||||
}
|
||||
};
|
||||
|
||||
/*
|
||||
There are only 3 possible flags Feign Death auras can apply: UNIT_DYNFLAG_DEAD, UNIT_FLAG2_FEIGN_DEATH
|
||||
and UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT. Some auras can apply only 2 flags
|
||||
@@ -4447,6 +4535,7 @@ void AddSC_generic_spell_scripts()
|
||||
RegisterSpellScript(spell_ethereal_pet_onsummon);
|
||||
RegisterSpellScript(spell_ethereal_pet_aura_remove);
|
||||
RegisterSpellScript(spell_steal_essence_visual);
|
||||
RegisterSpellScript(spell_gen_feast);
|
||||
RegisterSpellScript(spell_gen_feign_death_all_flags);
|
||||
RegisterSpellScript(spell_gen_feign_death_no_dyn_flag);
|
||||
RegisterSpellScript(spell_gen_feign_death_no_prevent_emotes);
|
||||
|
||||
@@ -1067,6 +1067,47 @@ class spell_item_fate_rune_of_unsurpassed_vigor : public AuraScript
|
||||
}
|
||||
};
|
||||
|
||||
enum Feast
|
||||
{
|
||||
TEXT_GREAT_FEAST = 31843,
|
||||
TEXT_FISH_FEAST = 31844,
|
||||
TEXT_GIGANTIC_FEAST = 31846,
|
||||
TEXT_SMALL_FEAST = 31845,
|
||||
TEXT_BOUNTIFUL_FEAST = 35153
|
||||
};
|
||||
|
||||
/* 57301 - Great Feast
|
||||
57426 - Fish Feast
|
||||
58465 - Gigantic Feast
|
||||
58474 - Small Feast
|
||||
66476 - Bountiful Feast */
|
||||
class spell_item_feast : public SpellScript
|
||||
{
|
||||
PrepareSpellScript(spell_item_feast);
|
||||
|
||||
public:
|
||||
spell_item_feast(uint32 text) : SpellScript(), _text(text) { }
|
||||
|
||||
private:
|
||||
bool Validate(SpellInfo const* /*spellInfo*/) override
|
||||
{
|
||||
return sObjectMgr->GetBroadcastText(_text);
|
||||
}
|
||||
|
||||
void HandleScript(SpellEffIndex /*effIndex*/)
|
||||
{
|
||||
Unit* caster = GetCaster();
|
||||
caster->Unit::TextEmote(_text, caster, false);
|
||||
}
|
||||
|
||||
void Register() override
|
||||
{
|
||||
OnEffectHit += SpellEffectFn(spell_item_feast::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
|
||||
}
|
||||
|
||||
uint32 _text;
|
||||
};
|
||||
|
||||
// http://www.wowhead.com/item=47499 Flask of the North
|
||||
// 67019 Flask of the North
|
||||
enum FlaskOfTheNorthSpells
|
||||
@@ -4285,6 +4326,11 @@ void AddSC_item_spell_scripts()
|
||||
RegisterSpellScript(spell_item_echoes_of_light);
|
||||
RegisterSpellScript(spell_item_extract_gas);
|
||||
RegisterSpellScript(spell_item_fate_rune_of_unsurpassed_vigor);
|
||||
RegisterSpellScriptWithArgs(spell_item_feast, "spell_item_great_feast", TEXT_GREAT_FEAST);
|
||||
RegisterSpellScriptWithArgs(spell_item_feast, "spell_item_fish_feast", TEXT_FISH_FEAST);
|
||||
RegisterSpellScriptWithArgs(spell_item_feast, "spell_item_gigantic_feast", TEXT_GIGANTIC_FEAST);
|
||||
RegisterSpellScriptWithArgs(spell_item_feast, "spell_item_small_feast", TEXT_SMALL_FEAST);
|
||||
RegisterSpellScriptWithArgs(spell_item_feast, "spell_item_bountiful_feast", TEXT_BOUNTIFUL_FEAST);
|
||||
RegisterSpellScript(spell_item_flask_of_the_north);
|
||||
RegisterSpellScript(spell_item_frozen_shadoweave);
|
||||
RegisterSpellScript(spell_item_gnomish_death_ray);
|
||||
|
||||
Reference in New Issue
Block a user