diff options
-rw-r--r-- | src/game/Spell.cpp | 7 | ||||
-rw-r--r-- | src/game/SpellAuras.cpp | 5 | ||||
-rw-r--r-- | src/game/SpellEffects.cpp | 6 | ||||
-rw-r--r-- | src/game/Unit.cpp | 6 |
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 |