google-code-export / oregoncore

Automatically exported from code.google.com/p/oregoncore
GNU General Public License v2.0
1 stars 0 forks source link

Spellsteal #148

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
By niyo (07 May 2010 - automatically ported issue):

You can Spellsteal the whole stack of lifebloom from your enemy, you should 
just steal 1 stack amount.

Original issue reported on code.google.com by stfxm...@gmail.com on 30 Dec 2010 at 3:46

GoogleCodeExporter commented 9 years ago
By Anonymous:
Confirmed

Original comment by stfxm...@gmail.com on 30 Dec 2010 at 3:46

GoogleCodeExporter commented 9 years ago
By stfx:
Well on retail Lifeblood was overpowered so ... :)

Original comment by stfxm...@gmail.com on 30 Dec 2010 at 3:46

GoogleCodeExporter commented 9 years ago
By stfx:
the same for earthshield I guess?

Original comment by stfxm...@gmail.com on 30 Dec 2010 at 3:46

GoogleCodeExporter commented 9 years ago
By stfx:
Wrong because earthshield uses charges instead of stacks. Here is the changed 
spellsteal code to only steal 1 stack. Thanks to bub:
diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp
--- a/src/game/Unit.cpp
+++ b/src/game/Unit.cpp
@@ -3736,7 +3736,18 @@
             // add the new aura to stealer
             stealer->AddAura(new_aur);
             // Remove aura as dispel
-            RemoveAura(iter, AURA_REMOVE_BY_DISPEL);
+            if (iter->second->GetStackAmount() > 1)
+            {
+                // reapply modifier with reduced stack amount
+                iter->second->ApplyModifier(false,true);
+                iter->second->SetStackAmount(iter->second->GetStackAmount()-1);
+                iter->second->ApplyModifier(true,true);
+
+                iter->second->UpdateSlotCounter();
+                return; // do not remove aura if stack amount > 1
+            }
+            else
+                RemoveAura(iter, AURA_REMOVE_BY_DISPEL);
         }
         else
             ++iter;

Original comment by stfxm...@gmail.com on 30 Dec 2010 at 3:46

GoogleCodeExporter commented 9 years ago
By Anonymous:
Stfx you're right about earthshield - if you steal it you get all charges of it 
(blizzlike).
But its still a little buggy : iF you steal a shaman shield you will always get 
max charges on it no matter how many charges it had before it was stolen.

Original comment by stfxm...@gmail.com on 30 Dec 2010 at 3:46

GoogleCodeExporter commented 9 years ago
By stfx:
I think getting all charges is blizzlike as well (at least for earthshield if I 
remember correctly)

Original comment by stfxm...@gmail.com on 30 Dec 2010 at 3:46

GoogleCodeExporter commented 9 years ago

Original comment by stfxm...@gmail.com on 30 Dec 2010 at 5:53