*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:
+15
-10
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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 ;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user