All pastes #885371 Raw Edit

Anonymous

public text v1 · immutable
#885371 ·published 2008-01-30 21:52 UTC
rendered paste body
Index: src/game/Spell.cpp
===================================================================
--- src/game/Spell.cpp    (revision 4985)
+++ src/game/Spell.cpp    (working copy)
@@ -1031,14 +1031,19 @@
         }break;
         case TARGET_CURRENT_SELECTED_ENEMY:
         {
-            CellPair p(MaNGOS::ComputeCellPair(m_caster->GetPositionX(), m_caster->GetPositionY()));
-            Cell cell(p);
-            cell.data.Part.reserved = ALL_DISTRICT;
-            cell.SetNoCreate();
-            MaNGOS::SpellNotifierPlayer notifier(*this, TagUnitMap, i, radius);
-            TypeContainerVisitor<MaNGOS::SpellNotifierPlayer, WorldTypeMapContainer > player_notifier(notifier);
-            CellLock<GridReadGuard> cell_lock(cell, p);
-            cell_lock->Visit(cell_lock, player_notifier, *MapManager::Instance().GetMap(m_caster->GetMapId(), m_caster));
+            if (m_spellInfo->Id == 34433)
+                TagUnitMap.push_back(m_caster);
+            else
+            {
+                CellPair p(MaNGOS::ComputeCellPair(m_caster->GetPositionX(), m_caster->GetPositionY()));
+                Cell cell(p);
+                cell.data.Part.reserved = ALL_DISTRICT;
+                cell.SetNoCreate();
+                MaNGOS::SpellNotifierPlayer notifier(*this, TagUnitMap, i, radius);
+                TypeContainerVisitor<MaNGOS::SpellNotifierPlayer, WorldTypeMapContainer > player_notifier(notifier);
+                CellLock<GridReadGuard> cell_lock(cell, p);
+                cell_lock->Visit(cell_lock, player_notifier, *MapManager::Instance().GetMap(m_caster->GetMapId(), m_caster));
+            }
         }break;
         default:
         {
Index: src/game/Unit.cpp
===================================================================
--- src/game/Unit.cpp    (revision 4985)
+++ src/game/Unit.cpp    (working copy)
@@ -454,7 +454,24 @@
     // root type spells do not dispell the root effect
     if(!spellProto || spellProto->Mechanic != MECHANIC_ROOT)
         pVictim->RemoveSpellbyDamageTaken(SPELL_AURA_MOD_ROOT, damage);
-
+        
+    //Shadowfiend
+    if (GetTypeId() == TYPEID_UNIT && ((Creature*)this)->GetEntry() == 19668)
+    {    
+        if (((Creature*)this)->isPet())
+        {
+            Unit* master = ((Pet*)this)->GetOwner();
+            if (master)
+            {
+                float mana = ((float(SpellBaseDamageBonus(SPELL_SCHOOL_SHADOW)) * 0.65f + float(damage)) * 2.5f);
+                int32 gain = master->ModifyPower(POWER_MANA,int32(mana));
+                if(gain)
+                    if(master->GetTypeId() == TYPEID_PLAYER)
+                        master->SendHealSpellOnPlayerPet(master, 34433, gain, POWER_MANA);
+            }
+        }        
+    }
+    
     if(pVictim->GetTypeId() != TYPEID_PLAYER)
     {
         //pVictim->SetInFront(this);