aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sql/base/world_database.sql2
-rw-r--r--sql/updates/9805_world_spell_proc_event.sql4
-rw-r--r--src/server/game/Entities/Unit/Unit.cpp40
3 files changed, 46 insertions, 0 deletions
diff --git a/sql/base/world_database.sql b/sql/base/world_database.sql
index 89bb6c7aa5b..3f7b66e2163 100644
--- a/sql/base/world_database.sql
+++ b/sql/base/world_database.sql
@@ -19283,6 +19283,8 @@ INSERT INTO `spell_proc_event` (`entry`,`SchoolMask`,`SpellFamilyName`,`SpellFam
( 72419, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0, 0, 60), -- Item - Icecrown Reputation Ring Healer Trigger
( 71404, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000002, 0, 0, 45), -- Item - Icecrown Dungeon Melee Trinket
( 71564, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000002, 0, 0, 0), -- Nevermelting Ice Crystal
+ (71545, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0, 50, 0), -- Tiny Abomination in a Jar (Heroic)
+( 71406, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0, 50, 0), -- Tiny Abomination in a Jar
( 75474, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0, 0, 45), -- Charred Twilight Scale (Heroic)
( 75465, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0, 0, 45), -- Charred Twilight Scale
( 75457, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0, 0, 45), -- Sharpened Twilight Scale (Heroic)
diff --git a/sql/updates/9805_world_spell_proc_event.sql b/sql/updates/9805_world_spell_proc_event.sql
new file mode 100644
index 00000000000..d3a9b7ca7fe
--- /dev/null
+++ b/sql/updates/9805_world_spell_proc_event.sql
@@ -0,0 +1,4 @@
+DELETE FROM `spell_proc_event` WHERE `entry` IN (71545,71406);
+INSERT INTO `spell_proc_event` (`entry`,`SchoolMask`,`SpellFamilyName`,`SpellFamilyMask0`,`SpellFamilyMask1`,`SpellFamilyMask2`,`procFlags`,`procEx`,`ppmRate`,`CustomChance`,`Cooldown`) VALUES
+(71545,0x00,0,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0,50,0), -- Tiny Abomination in a Jar (Heroic)
+(71406,0x00,0,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0,50,0); -- Tiny Abomination in a Jar
diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp
index ed97fbf077a..8fbec2eefb2 100644
--- a/src/server/game/Entities/Unit/Unit.cpp
+++ b/src/server/game/Entities/Unit/Unit.cpp
@@ -7156,6 +7156,46 @@ bool Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, AuraEffect* trigger
basepoints0 = triggerAmount*damage/100;
break;
}
+ case 71406: // Tiny Abomination in a Jar
+ {
+ if (!pVictim || !pVictim->isAlive())
+ return false;
+
+ CastSpell(this, 71432, true, NULL, triggeredByAura);
+
+ Aura const* dummy = GetAura(71432);
+ if (!dummy || dummy->GetStackAmount() < 8)
+ return false;
+
+ RemoveAurasDueToSpell(71432);
+ triggered_spell_id = 71433; // default main hand attack
+ // roll if offhand
+ if (Player const* player = ToPlayer())
+ if (player->GetWeaponForAttack(OFF_ATTACK, true) && urand(0, 1))
+ triggered_spell_id = 71434;
+ target = pVictim;
+ break;
+ }
+ case 71545: // Tiny Abomination in a Jar (Heroic)
+ {
+ if (!pVictim || !pVictim->isAlive())
+ return false;
+
+ CastSpell(this, 71432, true, NULL, triggeredByAura);
+
+ Aura const* dummy = GetAura(71432);
+ if (!dummy || dummy->GetStackAmount() < 7)
+ return false;
+
+ RemoveAurasDueToSpell(71432);
+ triggered_spell_id = 71433; // default main hand attack
+ // roll if offhand
+ if (Player const* player = ToPlayer())
+ if (player->GetWeaponForAttack(OFF_ATTACK, true) && urand(0, 1))
+ triggered_spell_id = 71434;
+ target = pVictim;
+ break;
+ }
}
break;
}