aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/bindings/scripts/scripts/northrend/utgarde_keep/utgarde_pinnacle/boss_palehoof.cpp2
-rw-r--r--src/bindings/scripts/scripts/northrend/zuldrak.cpp49
-rw-r--r--src/game/SpellEffects.cpp9
-rw-r--r--src/game/Unit.cpp5
4 files changed, 38 insertions, 27 deletions
diff --git a/src/bindings/scripts/scripts/northrend/utgarde_keep/utgarde_pinnacle/boss_palehoof.cpp b/src/bindings/scripts/scripts/northrend/utgarde_keep/utgarde_pinnacle/boss_palehoof.cpp
index 64759d62b94..49dc134eb51 100644
--- a/src/bindings/scripts/scripts/northrend/utgarde_keep/utgarde_pinnacle/boss_palehoof.cpp
+++ b/src/bindings/scripts/scripts/northrend/utgarde_keep/utgarde_pinnacle/boss_palehoof.cpp
@@ -737,7 +737,7 @@ struct TRINITY_DLL_DECL mob_palehoof_orbAI : public ScriptedAI
{
if (type != POINT_MOTION_TYPE)
return;
- if(id<0&&id>4)
+ if(id<0 || id>4)
return;
Creature *pNext;
switch(id)
diff --git a/src/bindings/scripts/scripts/northrend/zuldrak.cpp b/src/bindings/scripts/scripts/northrend/zuldrak.cpp
index 00129033b56..1b099152397 100644
--- a/src/bindings/scripts/scripts/northrend/zuldrak.cpp
+++ b/src/bindings/scripts/scripts/northrend/zuldrak.cpp
@@ -40,39 +40,37 @@ struct TRINITY_DLL_DECL npc_drakuru_shacklesAI : public ScriptedAI
void Reset()
{
+ Rageclaw = NULL;
m_creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
+
float x, y, z;
- Rageclaw = NULL;
- m_creature->GetClosePoint(x, y, z, m_creature->GetObjectSize()/3,0.1);
- if (Unit* summon = m_creature->SummonCreature(NPC_RAGECLAW,x,y,z,0,TEMPSUMMON_DEAD_DESPAWN,1000))
- DoActionOnRageclaw(true,summon);
+ m_creature->GetClosePoint(x, y, z, m_creature->GetObjectSize() / 3, 0.1f);
+
+ if (Unit* summon = m_creature->SummonCreature(NPC_RAGECLAW, x, y, z,
+ 0, TEMPSUMMON_DEAD_DESPAWN, 1000))
+ {
+ Rageclaw = summon;
+ LockRageclaw();
+ }
+ }
+
+ void LockRageclaw()
+ {
+ m_creature->SetInFront(Rageclaw);
+ Rageclaw->SetInFront(m_creature);
+
+ DoCast(Rageclaw, SPELL_LEFT_CHAIN, true);
+ DoCast(Rageclaw, SPELL_RIGHT_CHAIN, true);
}
- void DoActionOnRageclaw(bool bLocking, Unit* pWho)
+ void UnlockRageclaw(Unit* pWho)
{
if (!pWho)
return;
- Rageclaw = pWho;
+ DoCast(Rageclaw, SPELL_FREE_RAGECLAW, true);
- if (bLocking)
- {
- if (pWho)
- {
- m_creature->SetInFront(Rageclaw);
- Rageclaw->SetInFront(m_creature);
-
- DoCast(Rageclaw, SPELL_LEFT_CHAIN, true);
- DoCast(Rageclaw, SPELL_RIGHT_CHAIN, true);
- }
- }
- else
- {
- DoCast(Rageclaw, SPELL_FREE_RAGECLAW, true);
- if (pWho->GetTypeId() == TYPEID_PLAYER)
- CAST_PLR(pWho)->CastSpell(Rageclaw, SPELL_UNLOCK_SHACKLE, true);
- m_creature->setDeathState(DEAD);
- }
+ m_creature->setDeathState(DEAD);
}
void SpellHit(Unit* pCaster, const SpellEntry* pSpell)
@@ -80,13 +78,14 @@ struct TRINITY_DLL_DECL npc_drakuru_shacklesAI : public ScriptedAI
if (pSpell->Id == SPELL_UNLOCK_SHACKLE)
{
if (Rageclaw)
- DoActionOnRageclaw(false, pCaster);
+ UnlockRageclaw(pCaster);
else
m_creature->setDeathState(JUST_DIED);
}
}
};
+
CreatureAI* GetAI_npc_drakuru_shackles(Creature* pCreature)
{
return new npc_drakuru_shacklesAI (pCreature);
diff --git a/src/game/SpellEffects.cpp b/src/game/SpellEffects.cpp
index 217497820c4..26fd94a3ef6 100644
--- a/src/game/SpellEffects.cpp
+++ b/src/game/SpellEffects.cpp
@@ -437,7 +437,14 @@ void Spell::SpellDamageSchoolDmg(uint32 effect_idx)
damage = uint32(damage * (m_caster->GetTotalAttackPowerValue(BASE_ATTACK)) / 100);
// Shield Slam
else if(m_spellInfo->SpellFamilyFlags[1] & 0x200 && m_spellInfo->Category == 1209)
+ {
damage += int32(m_caster->GetShieldBlockValue());
+
+ // Glyph of Shield Slam
+ if (m_caster->HasAura(58375))
+ m_caster->CastSpell(m_caster, 58374, true);
+ }
+
// Victory Rush
else if(m_spellInfo->SpellFamilyFlags[1] & 0x100)
{
@@ -611,7 +618,7 @@ void Spell::SpellDamageSchoolDmg(uint32 effect_idx)
for (uint32 i = 0; i < doses; ++i)
unitTarget->RemoveAuraFromStack(spellId);
damage *= doses;
- damage += int32(((Player*)m_caster)->GetTotalAttackPowerValue(BASE_ATTACK) * 0.03f * doses);
+ damage += int32(((Player*)m_caster)->GetTotalAttackPowerValue(BASE_ATTACK) * 0.09f * doses);
}
// Eviscerate and Envenom Bonus Damage (item set effect)
if (m_caster->HasAura(37169))
diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp
index 718fbae1e4d..bc36ca8aaf4 100644
--- a/src/game/Unit.cpp
+++ b/src/game/Unit.cpp
@@ -10278,6 +10278,11 @@ uint32 Unit::SpellHealingBonus(Unit *pVictim, SpellEntry const *spellProto, uint
TakenTotalMod *= (HealingWay->GetAmount() + 100.0f) / 100.0f;
}
+ // Tenacity increase healing % taken
+ if (AuraEffect const* Tenacity = pVictim->GetAuraEffect(58549, 0))
+ TakenTotalMod *= (Tenacity->GetAmount() + 100.0f) / 100.0f;
+
+
// Healing taken percent
float minval = pVictim->GetMaxNegativeAuraModifier(SPELL_AURA_MOD_HEALING_PCT);
if (minval)