Server.LootPackEntry.Mutate C# (CSharp) Méthode

Mutate() public méthode

public Mutate ( Server.Mobile from, Item item ) : Item
from Server.Mobile
item Item
Résultat Item
		public Item Mutate( Mobile from, Item item )
		{
			if ( item != null )
			{
                if (item is BaseWeapon || item is BaseArmor || item is BaseJewel || item is BaseHat)
                {
                    if (item is BaseWeapon)
                    {
                        BaseWeapon weapon = (BaseWeapon)item;

                        if (80 > Utility.Random(100))
                            weapon.AccuracyLevel = (WeaponAccuracyLevel)GetRandomOldBonus();

                        if (60 > Utility.Random(100))
                            weapon.DamageLevel = (WeaponDamageLevel)GetRandomOldBonus();

                        if (40 > Utility.Random(100))
                            weapon.DurabilityLevel = (WeaponDurabilityLevel)GetRandomOldBonus();

                        if (5 > Utility.Random(100))
                            weapon.Slayer = SlayerName.Silver;

                        if (from != null && weapon.AccuracyLevel == 0 && weapon.DamageLevel == 0 && weapon.DurabilityLevel == 0 && weapon.Slayer == SlayerName.None && 5 > Utility.Random(100))
                            weapon.Slayer = SlayerGroup.GetLootSlayerType(from.GetType());
                    }
                    else if (item is BaseArmor)
                    {
                        BaseArmor armor = (BaseArmor)item;

                        if (80 > Utility.Random(100))
                            armor.ProtectionLevel = (ArmorProtectionLevel)GetRandomOldBonus();

                        if (40 > Utility.Random(100))
                            armor.Durability = (ArmorDurabilityLevel)GetRandomOldBonus();
                    }
                }
                else if ( item is BaseInstrument )
				{
					SlayerName slayer = SlayerName.None;

					slayer = SlayerGroup.GetLootSlayerType( from.GetType() );

					if ( slayer == SlayerName.None )
					{
						item.Delete();
						return null;
					}

					BaseInstrument instr = (BaseInstrument)item;

					instr.Quality = InstrumentQuality.Regular;
					instr.Slayer = slayer;
				}

				if ( item.Stackable )
					item.Amount = m_Quantity.Roll();
			}

			return item;
		}