*Merge 94c7ee9cce6a by win32, don't mod damage on broken items.

--HG--
branch : trunk
This commit is contained in:
maximius
2009-11-17 21:27:08 -08:00
parent 4eb608b478
commit dfc9338812
+10 -10
View File
@@ -7204,11 +7204,11 @@ void Player::_ApplyWeaponDependentAuraMods(Item *item,WeaponAttackType attackTyp
void Player::_ApplyWeaponDependentAuraCritMod(Item *item, WeaponAttackType attackType, AuraEffect* aura, bool apply) void Player::_ApplyWeaponDependentAuraCritMod(Item *item, WeaponAttackType attackType, AuraEffect* aura, bool apply)
{ {
// generic not weapon specific case processes in aura code // generic not weapon specific case processes in aura code
if(aura->GetSpellProto()->EquippedItemClass == -1) if (aura->GetSpellProto()->EquippedItemClass == -1)
return; return;
BaseModGroup mod = BASEMOD_END; BaseModGroup mod = BASEMOD_END;
switch(attackType) switch (attackType)
{ {
case BASE_ATTACK: mod = CRIT_PERCENTAGE; break; case BASE_ATTACK: mod = CRIT_PERCENTAGE; break;
case OFF_ATTACK: mod = OFFHAND_CRIT_PERCENTAGE;break; case OFF_ATTACK: mod = OFFHAND_CRIT_PERCENTAGE;break;
@@ -7217,23 +7217,25 @@ void Player::_ApplyWeaponDependentAuraCritMod(Item *item, WeaponAttackType attac
} }
if (item->IsFitToSpellRequirements(aura->GetSpellProto())) if (item->IsFitToSpellRequirements(aura->GetSpellProto()))
{
HandleBaseModValue(mod, FLAT_MOD, float (aura->GetAmount()), apply); HandleBaseModValue(mod, FLAT_MOD, float (aura->GetAmount()), apply);
}
} }
void Player::_ApplyWeaponDependentAuraDamageMod(Item *item, WeaponAttackType attackType, AuraEffect* aura, bool apply) void Player::_ApplyWeaponDependentAuraDamageMod(Item *item, WeaponAttackType attackType, AuraEffect* aura, bool apply)
{ {
//don't apply mod if item is broken
if (item->IsBroken())
return;
// ignore spell mods for not wands // ignore spell mods for not wands
if((aura->GetMiscValue() & SPELL_SCHOOL_MASK_NORMAL)==0 && (getClassMask() & CLASSMASK_WAND_USERS)==0) if ((aura->GetMiscValue() & SPELL_SCHOOL_MASK_NORMAL) == 0 && (getClassMask() & CLASSMASK_WAND_USERS) == 0)
return; return;
// generic not weapon specific case processes in aura code // generic not weapon specific case processes in aura code
if(aura->GetSpellProto()->EquippedItemClass == -1) if (aura->GetSpellProto()->EquippedItemClass == -1)
return; return;
UnitMods unitMod = UNIT_MOD_END; UnitMods unitMod = UNIT_MOD_END;
switch(attackType) switch (attackType)
{ {
case BASE_ATTACK: unitMod = UNIT_MOD_DAMAGE_MAINHAND; break; case BASE_ATTACK: unitMod = UNIT_MOD_DAMAGE_MAINHAND; break;
case OFF_ATTACK: unitMod = UNIT_MOD_DAMAGE_OFFHAND; break; case OFF_ATTACK: unitMod = UNIT_MOD_DAMAGE_OFFHAND; break;
@@ -7242,7 +7244,7 @@ void Player::_ApplyWeaponDependentAuraDamageMod(Item *item, WeaponAttackType att
} }
UnitModifierType unitModType = TOTAL_VALUE; UnitModifierType unitModType = TOTAL_VALUE;
switch(aura->GetAuraName()) switch (aura->GetAuraName())
{ {
case SPELL_AURA_MOD_DAMAGE_DONE: unitModType = TOTAL_VALUE; break; case SPELL_AURA_MOD_DAMAGE_DONE: unitModType = TOTAL_VALUE; break;
case SPELL_AURA_MOD_DAMAGE_PERCENT_DONE: unitModType = TOTAL_PCT; break; case SPELL_AURA_MOD_DAMAGE_PERCENT_DONE: unitModType = TOTAL_PCT; break;
@@ -7250,9 +7252,7 @@ void Player::_ApplyWeaponDependentAuraDamageMod(Item *item, WeaponAttackType att
} }
if (item->IsFitToSpellRequirements(aura->GetSpellProto())) if (item->IsFitToSpellRequirements(aura->GetSpellProto()))
{
HandleStatModifier(unitMod, unitModType, float(aura->GetAmount()),apply); HandleStatModifier(unitMod, unitModType, float(aura->GetAmount()),apply);
}
} }
void Player::ApplyItemEquipSpell(Item *item, bool apply, bool form_change) void Player::ApplyItemEquipSpell(Item *item, bool apply, bool form_change)