*Make disarm also works on creatures. (Please check if visual effect is correct, i.e., equipments are removed, if not, please report)

--HG--
branch : trunk
This commit is contained in:
megamage
2008-11-22 14:28:11 -06:00
parent f064caa5cb
commit e2b90f8dc0
2 changed files with 22 additions and 11 deletions
+15 -10
View File
@@ -3147,18 +3147,23 @@ void Aura::HandleAuraModDisarm(bool apply, bool Real)
else
m_target->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISARMED);
// only at real add/remove aura
if (m_target->GetTypeId() != TYPEID_PLAYER)
return;
if (m_target->GetTypeId() == TYPEID_PLAYER)
{
// main-hand attack speed already set to special value for feral form already and don't must change and reset at remove.
if (((Player *)m_target)->IsInFeralForm())
return;
// main-hand attack speed already set to special value for feral form already and don't must change and reset at remove.
if (((Player *)m_target)->IsInFeralForm())
return;
if (apply)
m_target->SetAttackTime(BASE_ATTACK,BASE_ATTACK_TIME);
if (apply)
m_target->SetAttackTime(BASE_ATTACK,BASE_ATTACK_TIME);
else
((Player *)m_target)->SetRegularAttackTime();
}
else
((Player *)m_target)->SetRegularAttackTime();
{
// creature does not have equipment
if(apply && !((Creature*)m_target)->GetCurrentEquipmentId())
return;
}
m_target->UpdateDamagePhysical(BASE_ATTACK);
}
+7 -1
View File
@@ -752,7 +752,13 @@ void Creature::UpdateDamagePhysical(WeaponAttackType attType)
float base_pct = GetModifierValue(unitMod, BASE_PCT);
float total_value = GetModifierValue(unitMod, TOTAL_VALUE);
float total_pct = GetModifierValue(unitMod, TOTAL_PCT);
if(attType == BASE_ATTACK && HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISARMED))
{
weapon_mindamage = 0;
weapon_maxdamage = 0;
}
float mindamage = ((base_value + weapon_mindamage) * base_pct + total_value) * total_pct ;
float maxdamage = ((base_value + weapon_maxdamage) * base_pct + total_value) * total_pct ;