Server.Items.ArcaneGem.OnTarget C# (CSharp) Méthode

OnTarget() public méthode

public OnTarget ( Mobile from, object obj ) : void
from Mobile
obj object
Résultat void
		public void OnTarget( Mobile from, object obj )
		{
			if ( !IsChildOf( from.Backpack ) )
			{
				from.SendLocalizedMessage( 1042001 ); // That must be in your pack for you to use it.
				return;
			}

			if ( obj is IArcaneEquip && obj is Item )
			{
				Item item = (Item)obj;
				CraftResource resource = CraftResource.None;

				if( item is BaseClothing )
					resource = ((BaseClothing)item).Resource;
				else if( item is BaseArmor )
					resource = ((BaseArmor)item).Resource;
				else if( item is BaseWeapon ) // Sanity, weapons cannot recieve gems...
					resource = ((BaseWeapon)item).Resource;

				IArcaneEquip eq = (IArcaneEquip)obj;

				if ( !item.IsChildOf( from.Backpack ) )
				{
					from.SendLocalizedMessage( 1042001 ); // That must be in your pack for you to use it.
					return;
				}
				else if ( item.LootType == LootType.Blessed )
				{
					from.SendMessage( "You can only use this on exceptionally crafted robes, thigh boots, cloaks, or leather gloves." );
					return;
				}
				else if ( resource != CraftResource.None && resource != CraftResource.RegularLeather )
				{
					from.SendLocalizedMessage( 1049690 ); // Arcane gems can not be used on that type of leather.
					return;
				}

				int charges = GetChargesFor( from );

				if ( eq.IsArcane )
				{
					if ( eq.CurArcaneCharges >= eq.MaxArcaneCharges )
					{
						from.SendMessage( "That item is already fully charged." );
					}
					else
					{
						if ( eq.CurArcaneCharges <= 0 )
							item.Hue = DefaultArcaneHue;

						if ( (eq.CurArcaneCharges + charges) > eq.MaxArcaneCharges )
							eq.CurArcaneCharges = eq.MaxArcaneCharges;
						else
							eq.CurArcaneCharges += charges;

						from.SendMessage( "You recharge the item." );
						if ( Amount <= 1 )
							Delete();
						else Amount--;
					}
				}
				else if ( from.Skills[SkillName.Tailoring].Value >= 80.0 )
				{
					bool isExceptional = false;

					if ( item is BaseClothing )
						isExceptional = ( ((BaseClothing)item).Quality == ClothingQuality.Exceptional );
					else if ( item is BaseArmor )
						isExceptional = ( ((BaseArmor)item).Quality == ArmorQuality.Exceptional );
					else if ( item is BaseWeapon )
						isExceptional = ( ((BaseWeapon)item).Quality == WeaponQuality.Exceptional );

					if ( isExceptional )
					{
						if ( item is BaseClothing )
						{
							((BaseClothing)item).Quality = ClothingQuality.Regular;
							((BaseClothing)item).Crafter = from;
						}
						else if ( item is BaseArmor )
						{
							((BaseArmor)item).Quality = ArmorQuality.Regular;
							((BaseArmor)item).Crafter = from;
						}
						else if ( item is BaseWeapon ) // Sanity, weapons cannot recieve gems...
						{
							((BaseWeapon)item).Quality = WeaponQuality.Regular;
							((BaseWeapon)item).Crafter = from;
						}

						eq.CurArcaneCharges = eq.MaxArcaneCharges = charges;

						item.Hue = DefaultArcaneHue;

						from.SendMessage( "You enhance the item with your gem." );
						if ( Amount <= 1 )
							Delete();
						else Amount--;
					}
					else
					{
						from.SendMessage( "Only exceptional items can be enhanced with the gem." );
					}
				}
				else
				{
					from.SendMessage( "You do not have enough skill in tailoring to enhance the item." );
				}
			}
			else
			{
				from.SendMessage( "You can only use this on exceptionally crafted robes, thigh boots, cloaks, or leather gloves." );
			}
		}