コード例 #1
0
		public override void OnDoubleClick( Mobile from )
		{
			if (IsChildOf(from.Backpack))
			{
				if (Hue == 0) 
				{
					from.SendMessage("Please select a hue...");
					from.SendHuePicker( new InternalPicker( this ) );
				}
				else if (i_Charges < 1)
					from.SendMessage("You don't have enough charges to dye anymore.");
				else switch (i_DyeType)
				{
					case 0: default: from.SendMessage("Please select leather armor to dye..."); from.Target = new InternalTarget( this, 0, Hue ); break;
					case 1: from.SendMessage("Please select metal armor to dye..."); from.Target = new InternalTarget( this, 1, Hue ); break;
					case 2: from.SendMessage("Please select metal weapon to dye..."); from.Target = new InternalTarget( this, 2, Hue ); break;
				}
			}
		}
コード例 #2
0
			protected override void OnTarget( Mobile from, object targeted )
			{
				if ( targeted is Item )
				{
					Item item = (Item)targeted;
					if (it_Tub != null)
					{
						if (!(item.IsChildOf(from.Backpack)))
						{			
							from.SendMessage("This must be in your backpack.");
						}
						else if (targeted is ChargedDyeTub)
						{
							ChargedDyeTub tub = targeted as ChargedDyeTub;
							if (it_Tub == tub)
							{
								from.SendMessage("Please select a hue...");
								from.SendHuePicker( new InternalPicker( tub ) );
							}
							else if (tub.DyeType == i_DyeType)
							{
								it_Tub.Charges += tub.Charges;
								from.SendMessage("You combined the dye tubs");
								tub.Delete();
							}
							else
								from.SendMessage("You can't combine different charged dye tubs");
						}
						else switch (i_DyeType)
						{
							case 0: default:  //leather armor
							{
								if ( targeted is BaseArmor && (((BaseArmor)item).MaterialType == ArmorMaterialType.Leather || ((BaseArmor)item).MaterialType == ArmorMaterialType.Studded))
								{
									item.Hue = i_DyeHue;
									from.PlaySound( 0x23E );
									it_Tub.Charges--;
								}
								else
									from.SendMessage("That's not leather armor!!!");
								break;
							}
							case 1: //metal armor
							{
								if ( targeted is BaseArmor && !(targeted is BaseShield) && !(((BaseArmor)item).MaterialType == ArmorMaterialType.Leather || ((BaseArmor)item).MaterialType == ArmorMaterialType.Studded))
								{
									item.Hue = i_DyeHue;
									from.PlaySound( 0x23E );
									it_Tub.Charges--;
								}
								else
									from.SendMessage("That's not metal armor!!!");
								break;
							}
							case 2: //weapons
							{
								if ( targeted is BaseWeapon && !(targeted is BaseRanged) && !(targeted is BaseStaff) && ((BaseWeapon)item).Resource >= CraftResource.Iron && ((BaseWeapon)item).Resource <= CraftResource.Sunstone )
								{
									item.Hue = i_DyeHue;
									from.PlaySound( 0x23E );
									it_Tub.Charges--;
								}
								else
									from.SendMessage("That's not metal weapon!!!");
								break;
							}
						}
					}
				}
			}