aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Entities/Unit
diff options
context:
space:
mode:
authorMachiavelli <machiavelli.trinity@gmail.com>2011-12-10 15:21:55 +0100
committerMachiavelli <machiavelli.trinity@gmail.com>2011-12-10 15:21:55 +0100
commitb1c8226d58ecdda9a9af5b4e3e8d88c1d44f589f (patch)
treeed9d70ffb03d5a85fd8abe4ea618a20a5b297635 /src/server/game/Entities/Unit
parentfe69bd654a424f560f37774d5c3e763fd6589607 (diff)
parent11fb0beaf0cb877b14f24aa88f19832e0aa3dc88 (diff)
Merge branch 'master' of github.com:TrinityCore/TrinityCore into 4.x
Diffstat (limited to 'src/server/game/Entities/Unit')
-rwxr-xr-xsrc/server/game/Entities/Unit/Unit.cpp48
1 files changed, 28 insertions, 20 deletions
diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp
index d1e9d812668..63ba5c5b843 100755
--- a/src/server/game/Entities/Unit/Unit.cpp
+++ b/src/server/game/Entities/Unit/Unit.cpp
@@ -6062,6 +6062,16 @@ bool Unit::HandleDummyAuraProc(Unit* victim, uint32 damage, AuraEffect* triggere
triggered_spell_id = 37378;
break;
}
+ // Glyph of Succubus
+ case 56250:
+ {
+ if (!target)
+ return false;
+ target->RemoveAurasByType(SPELL_AURA_PERIODIC_DAMAGE, 0, target->GetAura(32409)); // SW:D shall not be removed.
+ target->RemoveAurasByType(SPELL_AURA_PERIODIC_DAMAGE_PERCENT);
+ target->RemoveAurasByType(SPELL_AURA_PERIODIC_LEECH);
+ return true;
+ }
}
break;
}
@@ -6490,6 +6500,16 @@ bool Unit::HandleDummyAuraProc(Unit* victim, uint32 damage, AuraEffect* triggere
triggered_spell_id = 32747;
break;
}
+ case 57934: // Tricks of the Trade
+ {
+ Unit* redirectTarget = GetMisdirectionTarget();
+ RemoveAura(57934);
+ if (!redirectTarget)
+ break;
+ redirectTarget->CastSpell(this,59628,true);
+ CastSpell(redirectTarget,57933,true);
+ break;
+ }
}
switch (dummySpell->SpellIconID)
@@ -15629,29 +15649,17 @@ void Unit::Kill(Unit* victim, bool durabilityLoss)
}
// Hook for OnPVPKill Event
- if (GetTypeId() == TYPEID_PLAYER)
+ if (Player* killerPlr = ToPlayer())
{
- if (victim->GetTypeId() == TYPEID_PLAYER)
- {
- Player* killer = ToPlayer();
- Player* killed = victim->ToPlayer();
- sScriptMgr->OnPVPKill(killer, killed);
- }
- else if (victim->GetTypeId() == TYPEID_UNIT)
- {
- Player* killer = ToPlayer();
- Creature* killed = victim->ToCreature();
- sScriptMgr->OnCreatureKill(killer, killed);
- }
+ if (Player* killedPlr = victim->ToPlayer())
+ sScriptMgr->OnPVPKill(killerPlr, killedPlr);
+ else if (Creature* killedCre = victim->ToCreature())
+ sScriptMgr->OnCreatureKill(killerPlr, killedCre);
}
- else if (GetTypeId() == TYPEID_UNIT)
+ else if (Creature* killerCre = ToCreature())
{
- if (victim->GetTypeId() == TYPEID_PLAYER)
- {
- Creature* killer = ToCreature();
- Player* killed = victim->ToPlayer();
- sScriptMgr->OnPlayerKilledByCreature(killer, killed);
- }
+ if (Player* killed = victim->ToPlayer())
+ sScriptMgr->OnPlayerKilledByCreature(killerCre, killed);
}
if (victim->GetVehicle())