diff options
| author | megamage <none@none> | 2009-03-02 16:34:17 -0600 |
|---|---|---|
| committer | megamage <none@none> | 2009-03-02 16:34:17 -0600 |
| commit | 5997e2d5db5618e5d84733bd224426499f621f33 (patch) | |
| tree | 345db0d11ce4feb8c9ca68e52458cbc954b05bd6 /src/game/SpellEffects.cpp | |
| parent | 352df954f6e1a8542118e8108928ea5fe268f431 (diff) | |
| parent | cdd178b9c29853d5e498b474006a3635009a50a4 (diff) | |
*Merge.
--HG--
branch : trunk
Diffstat (limited to 'src/game/SpellEffects.cpp')
| -rw-r--r-- | src/game/SpellEffects.cpp | 45 |
1 files changed, 21 insertions, 24 deletions
diff --git a/src/game/SpellEffects.cpp b/src/game/SpellEffects.cpp index 967b3407326..d1355ea505d 100644 --- a/src/game/SpellEffects.cpp +++ b/src/game/SpellEffects.cpp @@ -347,14 +347,6 @@ void Spell::SpellDamageSchoolDmg(uint32 effect_idx) } break; } - case 43648: //Electrical Storm - { - if(unitTarget && unitTarget->HasAura(44007, 0)) // Immune Aura - { - damage = 0; - } - break; - } // percent from health with min case 25599: // Thundercrash { @@ -1230,7 +1222,7 @@ void Spell::EffectDummy(uint32 i) m_caster->CastSpell(m_caster, 30452, true, NULL); return; - } + } case 53341: case 53343: { @@ -2525,13 +2517,6 @@ void Spell::SpellDamageHeal(uint32 /*i*/) sLog.outError("Target(GUID:" I64FMTD ") has aurastate AURA_STATE_SWIFTMEND but no matching aura.", unitTarget->GetGUID()); return; } - int idx = 0; - while(idx < 3) - { - if(targetAura->GetSpellProto()->EffectApplyAuraName[idx] == SPELL_AURA_PERIODIC_HEAL) - break; - idx++; - } int32 tickheal = targetAura->GetModifier()->m_amount; if(Unit* auraCaster = targetAura->GetCaster()) @@ -2539,7 +2524,15 @@ void Spell::SpellDamageHeal(uint32 /*i*/) //int32 tickheal = targetAura->GetSpellProto()->EffectBasePoints[idx] + 1; //It is said that talent bonus should not be included - int32 tickcount = GetSpellDuration(targetAura->GetSpellProto()) / targetAura->GetSpellProto()->EffectAmplitude[idx]; + int32 tickcount = 0; + if(targetAura->GetSpellProto()->SpellFamilyName == SPELLFAMILY_DRUID) + { + switch(targetAura->GetSpellProto()->SpellFamilyFlags)//TODO: proper spellfamily for 3.0.x + { + case 0x10: tickcount = 4; break; // Rejuvenation + case 0x40: tickcount = 6; break; // Regrowth + } + } addhealth += tickheal * tickcount; unitTarget->RemoveAurasByCasterSpell(targetAura->GetId(), targetAura->GetCasterGUID()); @@ -2971,6 +2964,10 @@ void Spell::SendLoot(uint64 guid, LootType loottype) if(uint32 trapEntry = gameObjTarget->GetGOInfo()->goober.linkedTrapId) gameObjTarget->TriggeringLinkedGameObject(trapEntry,m_caster); + // activate GO scripts + Script->GOHello(player, gameObjTarget); + sWorld.ScriptsStart(sGameObjectScripts, gameObjTarget->GetDBTableGUIDLow(), player, gameObjTarget); + return; case GAMEOBJECT_TYPE_CHEST: @@ -4766,13 +4763,13 @@ void Spell::EffectScriptEffect(uint32 effIndex) unitTarget->HandleEmoteCommand(EMOTE_STATE_DANCE); break; } - // Escape artist
- case 20589:
- {
- if(!unitTarget)
- return;
- // It is said that removing effects by script should include dispel resist mods
- unitTarget->RemoveSpellsCausingAuraWithDispel(SPELL_AURA_MOD_ROOT, this);
+ // Escape artist + case 20589: + { + if(!unitTarget) + return; + // It is said that removing effects by script should include dispel resist mods + unitTarget->RemoveSpellsCausingAuraWithDispel(SPELL_AURA_MOD_ROOT, this); unitTarget->RemoveSpellsCausingAuraWithDispel(SPELL_AURA_MOD_DECREASE_SPEED, this); } // Mirren's Drinking Hat |
