mirror of
https://github.com/araxiaonline/TrinityCore.git
synced 2026-06-16 04:59:41 -04:00
*Do not take ammo for shockwave
*Do not check weapon skills for hits against players' summons *Apply range mods for channeled spell range check --HG-- branch : trunk
This commit is contained in:
@@ -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);
|
||||
|
||||
@@ -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()))
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user