diff --git a/src/game/Server/SharedDefines.h b/src/game/Server/SharedDefines.h index de8cd592..0a3baaca 100644 --- a/src/game/Server/SharedDefines.h +++ b/src/game/Server/SharedDefines.h @@ -2608,4 +2608,23 @@ enum WhisperLoggingLevels WHISPER_LOGGING_EVERYTHING = 2 }; +/* + Creature entries for more readable code +*/ +enum CreatureEntriesConsts +{ + CREATURE_TAINTED_OOZE = 7092, + CREATURE_CURSED_OOZE = 7086, + CREATURE_MUCULENT_OOZE = 6556, + CREATURE_PRIMAL_OOZE = 6557, + CREATURE_GLUTINOUS_OOZE = 6559, +}; + +enum SpellEntriesConsts +{ + SPELL_FILLING_EMPTY_JAR__CURSED_OOZE = 15698, + SPELL_FILLING_EMPTY_JAR__TAINTED_OOZE = 15699, + SPELL_FILLING_EMPTY_JAR__PURE_OOZE = 15702, // (Works on Primal, Muculent and Glutonous Ooze) +}; + #endif diff --git a/src/game/WorldHandlers/SpellEffects.cpp b/src/game/WorldHandlers/SpellEffects.cpp index ed7b7124..3bda51cd 100644 --- a/src/game/WorldHandlers/SpellEffects.cpp +++ b/src/game/WorldHandlers/SpellEffects.cpp @@ -2259,6 +2259,40 @@ void Spell::DoCreateItem(SpellEffectIndex eff_idx, uint32 itemtype) void Spell::EffectCreateItem(SpellEffectIndex eff_idx) { + switch (m_spellInfo->Id) + { + case SPELL_FILLING_EMPTY_JAR__CURSED_OOZE: // Spell 15698 (for Cursed Ooze) + case SPELL_FILLING_EMPTY_JAR__TAINTED_OOZE: // Spell 15699 (for Tainted Ooze) + { + if (unitTarget->GetTypeId() == TYPEID_UNIT) { + + Creature* creature = static_cast(unitTarget); + if (creature->IsDead() && (creature->GetEntry() == CREATURE_TAINTED_OOZE || creature->GetEntry() == CREATURE_CURSED_OOZE)) + { + creature->ForcedDespawn(); + } + } + + break; + } + case SPELL_FILLING_EMPTY_JAR__PURE_OOZE: // Spell 15702 (for Primal, Muculent and Glutonous Ooze): + { + if (unitTarget->GetTypeId() == TYPEID_UNIT) { + + Creature* creature = static_cast(unitTarget); + if (creature->IsDead() && ( + creature->GetEntry() == CREATURE_MUCULENT_OOZE || + creature->GetEntry() == CREATURE_PRIMAL_OOZE || + creature->GetEntry() == CREATURE_GLUTINOUS_OOZE + )) + { + creature->ForcedDespawn(); + } + } + + break; + } + } DoCreateItem(eff_idx, m_spellInfo->EffectItemType[eff_idx]); }