public virtual void BreathDealDamage( Mobile target )
{
if( !Evasion.CheckSpellEvasion( target ) )
{
int physDamage = BreathPhysicalDamage;
int fireDamage = BreathFireDamage;
int coldDamage = BreathColdDamage;
int poisDamage = BreathPoisonDamage;
int nrgyDamage = BreathEnergyDamage;
if( BreathChaosDamage > 0 )
{
switch( Utility.Random( 5 ))
{
case 0: physDamage += BreathChaosDamage; break;
case 1: fireDamage += BreathChaosDamage; break;
case 2: coldDamage += BreathChaosDamage; break;
case 3: poisDamage += BreathChaosDamage; break;
case 4: nrgyDamage += BreathChaosDamage; break;
}
}
if( physDamage == 0 && fireDamage == 0 && coldDamage == 0 && poisDamage == 0 && nrgyDamage == 0 )
{
target.Damage( BreathComputeDamage(), this );// Unresistable damage even in AOS
}
else
{
AOS.Damage( target, this, BreathComputeDamage(), physDamage, fireDamage, coldDamage, poisDamage, nrgyDamage );
}
}
}