aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sql/scripts/world_scripts_full.sql1
-rw-r--r--sql/updates/world/2011_02_12_0_world_script_name.sql2
-rw-r--r--src/server/scripts/Spells/spell_item.cpp47
3 files changed, 50 insertions, 0 deletions
diff --git a/sql/scripts/world_scripts_full.sql b/sql/scripts/world_scripts_full.sql
index d8f8dae3a49..83e7b601905 100644
--- a/sql/scripts/world_scripts_full.sql
+++ b/sql/scripts/world_scripts_full.sql
@@ -2073,6 +2073,7 @@ INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES
( 59640, 'spell_item_underbelly_elixir'),
( 71905, 'spell_item_shadowmourne'),
( 67533, 'spell_item_red_rider_air_rifle'),
+( 26678,'spell_item_create_heart_candy'),
-- warrior
( 12975, 'spell_warr_last_stand'),
( 59725, 'spell_warr_improved_spell_reflection'),
diff --git a/sql/updates/world/2011_02_12_0_world_script_name.sql b/sql/updates/world/2011_02_12_0_world_script_name.sql
new file mode 100644
index 00000000000..e3861d13dbb
--- /dev/null
+++ b/sql/updates/world/2011_02_12_0_world_script_name.sql
@@ -0,0 +1,2 @@
+DELETE FROM `spell_script_names` WHERE `spell_id`=26678;
+INSERT INTO `spell_script_names` VALUES (26678,'spell_item_create_heart_candy'); \ No newline at end of file
diff --git a/src/server/scripts/Spells/spell_item.cpp b/src/server/scripts/Spells/spell_item.cpp
index d1d8620b028..43589c68180 100644
--- a/src/server/scripts/Spells/spell_item.cpp
+++ b/src/server/scripts/Spells/spell_item.cpp
@@ -804,6 +804,51 @@ enum eGenericData
SPELL_MITHRIL_MECHANICAL_DRAGONLING = 12749,
};
+enum CreateHeartCandy
+{
+ ITEM_HEART_CANDY_1 = 21818,
+ ITEM_HEART_CANDY_2 = 21817,
+ ITEM_HEART_CANDY_3 = 21821,
+ ITEM_HEART_CANDY_4 = 21819,
+ ITEM_HEART_CANDY_5 = 21816,
+ ITEM_HEART_CANDY_6 = 21823,
+ ITEM_HEART_CANDY_7 = 21822,
+ ITEM_HEART_CANDY_8 = 21820,
+};
+
+class spell_item_create_heart_candy : public SpellScriptLoader
+{
+ public:
+ spell_item_create_heart_candy() : SpellScriptLoader("spell_item_create_heart_candy") { }
+
+ class spell_item_create_heart_candy_SpellScript : public SpellScript
+ {
+ PrepareSpellScript(spell_item_create_heart_candy_SpellScript);
+
+ void HandleScript(SpellEffIndex effIndex)
+ {
+ if (!GetHitUnit() || !GetHitUnit()->ToPlayer())
+ return;
+
+ Player* target = GetHitUnit()->ToPlayer();
+
+ static const uint32 items[] = {ITEM_HEART_CANDY_1,ITEM_HEART_CANDY_2,ITEM_HEART_CANDY_3,ITEM_HEART_CANDY_4,ITEM_HEART_CANDY_5,ITEM_HEART_CANDY_6,ITEM_HEART_CANDY_7,ITEM_HEART_CANDY_8};
+
+ target->AddItem(items[urand(0,7)],1);
+ }
+
+ void Register()
+ {
+ OnEffect += SpellEffectFn(spell_item_create_heart_candy_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
+ }
+ };
+
+ SpellScript* GetSpellScript() const
+ {
+ return new spell_item_create_heart_candy_SpellScript();
+ }
+};
+
void AddSC_item_spell_scripts()
{
// 23074 Arcanite Dragonling
@@ -827,4 +872,6 @@ void AddSC_item_spell_scripts()
new spell_item_underbelly_elixir();
new spell_item_shadowmourne();
new spell_item_red_rider_air_rifle();
+
+ new spell_item_create_heart_candy();
}