Server.Spells.Ninjitsu.SurpriseAttack.OnHit C# (CSharp) Method

OnHit() public method

public OnHit ( Mobile attacker, Mobile defender, int damage ) : void
attacker Mobile
defender Mobile
damage int
return void
		public override void OnHit( Mobile attacker, Mobile defender, int damage )
		{
			//Validates before swing

			ClearCurrentMove( attacker );

			attacker.SendLocalizedMessage( 1063129 ); // You catch your opponent off guard with your Surprise Attack!
			defender.SendLocalizedMessage( 1063130 ); // Your defenses are lowered as your opponent surprises you!

			defender.FixedParticles( 0x37B9, 1, 5, 0x26DA, 0, 3, EffectLayer.Head );

			attacker.RevealingAction();

			SurpriseAttackInfo info;

			if ( m_Table.Contains( defender ) )
			{
				info = (SurpriseAttackInfo)m_Table[defender];

				if ( info.m_Timer != null )
					info.m_Timer.Stop();

				m_Table.Remove( defender );
			}

			int ninjitsu = attacker.Skills[SkillName.Ninjitsu].Fixed;

			int malus = ninjitsu / 60 + (int)Tracking.GetStalkingBonus( attacker, defender );

			info = new SurpriseAttackInfo( defender, malus );
			info.m_Timer = Timer.DelayCall( TimeSpan.FromSeconds( 8.0 ), new TimerStateCallback( EndSurprise ), info );

			m_Table[defender] = info;

			CheckGain( attacker );
		}