aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/game/Spell.cpp7
-rw-r--r--src/game/SpellAuras.cpp5
-rw-r--r--src/game/SpellEffects.cpp6
-rw-r--r--src/game/Unit.cpp6
4 files changed, 12 insertions, 12 deletions
diff --git a/src/game/Spell.cpp b/src/game/Spell.cpp
index 91d4fd0bc07..9d9c0ad6cc3 100644
--- a/src/game/Spell.cpp
+++ b/src/game/Spell.cpp
@@ -377,7 +377,7 @@ Spell::Spell( Unit* Caster, SpellEntry const *info, bool triggered, uint64 origi
m_attackType = BASE_ATTACK;
break;
case SPELL_DAMAGE_CLASS_RANGED:
- m_attackType = RANGED_ATTACK;
+ m_attackType = IsRangedSpell() ? RANGED_ATTACK : BASE_ATTACK;
break;
default:
// Wands
@@ -1345,7 +1345,10 @@ bool Spell::UpdateChanneledTargetList()
{
if(Aura * aur = unit->GetAura(m_spellInfo->Id, m_caster->GetGUID()))
{
- if (m_caster != unit && !m_caster->IsWithinDistInMap(unit,m_caster->GetSpellMaxRangeForTarget(unit,GetSpellRangeStore()->LookupEntry(m_spellInfo->rangeIndex))))
+ float range = m_caster->GetSpellMaxRangeForTarget(unit,GetSpellRangeStore()->LookupEntry(m_spellInfo->rangeIndex));
+ if(Player * modOwner = m_caster->GetSpellModOwner())
+ modOwner->ApplySpellMod(m_spellInfo->Id, SPELLMOD_RANGE, range, this);
+ if (m_caster != unit && !m_caster->IsWithinDistInMap(unit,range))
{
ihit->effectMask &= ~aur->GetEffectMask();
unit->RemoveAura(aur);
diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp
index 2cc133d4f01..105c5a97f67 100644
--- a/src/game/SpellAuras.cpp
+++ b/src/game/SpellAuras.cpp
@@ -1071,11 +1071,6 @@ void Aura::_RemoveAura()
{
Unit* caster = GetCaster();
- //passive auras do not get put in slots
- // Note: but totem can be not accessible for aura target in time remove (to far for find in grid)
- //if(m_isPassive && !(caster && caster->GetTypeId() == TYPEID_UNIT && ((Creature*)caster)->isTotem()))
- // return;
-
uint8 slot = GetAuraSlot();
if (Aura * foundAura = m_target->GetAura(GetId(), GetCasterGUID()))
diff --git a/src/game/SpellEffects.cpp b/src/game/SpellEffects.cpp
index e441e2113d2..9da352bfbda 100644
--- a/src/game/SpellEffects.cpp
+++ b/src/game/SpellEffects.cpp
@@ -1389,6 +1389,12 @@ void Spell::EffectDummy(uint32 i)
m_damage+= uint32(damage * m_caster->GetTotalAttackPowerValue(BASE_ATTACK) / 100);
return;
}
+ // Shockwave
+ if(m_spellInfo->SpellFamilyFlags[1] & 0x8000)
+ {
+ m_damage+= uint32(damage * m_caster->GetTotalAttackPowerValue(BASE_ATTACK) / 100);
+ return;
+ }
switch(m_spellInfo->Id)
{
// Warrior's Wrath
diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp
index b8d1be768d7..d05d84416ce 100644
--- a/src/game/Unit.cpp
+++ b/src/game/Unit.cpp
@@ -3187,11 +3187,7 @@ uint32 Unit::GetWeaponSkillValue (WeaponAttackType attType, Unit const* target)
// feral or unarmed skill only for base attack
if(attType != BASE_ATTACK && !item )
- {
- if(attType == RANGED_ATTACK && getClass() == CLASS_PALADIN) //hammer
- return GetMaxSkillValueForLevel();
return 0;
- }
if(IsInFeralForm())
return GetMaxSkillValueForLevel(); // always maximized SKILL_FERAL_COMBAT in fact
@@ -3200,7 +3196,7 @@ uint32 Unit::GetWeaponSkillValue (WeaponAttackType attType, Unit const* target)
uint32 skill = item ? item->GetSkill() : SKILL_UNARMED;
// in PvP use full skill instead current skill value
- value = (target && target->GetTypeId() == TYPEID_PLAYER)
+ value = (target && target->GetTypeId() == TYPEID_PLAYER || IS_PLAYER_GUID(GetOwnerGUID()))
? ((Player*)this)->GetMaxSkillValue(skill)
: ((Player*)this)->GetSkillValue(skill);
// Modify value from ratings