protected override void OnTick()
{
if ( m_From.CheckTargetSkill( SkillName.Poisoning, m_Target, m_MinSkill, m_MaxSkill ) )
{
if ( m_Target is Food )
{
((Food)m_Target).Poison = m_Poison;
}
else if ( m_Target is BaseWeapon )
{
((BaseWeapon)m_Target).Poison = m_Poison;
((BaseWeapon)m_Target).PoisonCharges = 18 - (m_Poison.Level * 2);
}
m_From.SendLocalizedMessage( 1010517 ); // You apply the poison
Misc.Titles.AwardKarma( m_From, -20, true );
}
else // Failed
{
// 5% of chance of getting poisoned if failed
if ( m_From.Skills[SkillName.Poisoning].Base < 80.0 && Utility.Random( 20 ) == 0 )
{
m_From.SendLocalizedMessage( 502148 ); // You make a grave mistake while applying the poison.
m_From.ApplyPoison( m_From, m_Poison );
}
else
{
if ( m_Target is BaseWeapon )
{
BaseWeapon weapon = (BaseWeapon)m_Target;
if ( weapon.Type == WeaponType.Slashing )
m_From.SendLocalizedMessage( 1010516 ); // You fail to apply a sufficient dose of poison on the blade
else
m_From.SendLocalizedMessage( 1010518 ); // You fail to apply a sufficient dose of poison
}
else
{
m_From.SendLocalizedMessage( 1010518 ); // You fail to apply a sufficient dose of poison
}
}
}
}
}