public void Generate(Mobile from, Container cont, bool spawning, int luckChance) { if (cont == null) { return; } bool checkLuck = Core.AOS; for (int i = 0; i < m_Entries.Length; ++i) { LootPackEntry entry = m_Entries[i]; bool shouldAdd = (entry.Chance > Utility.Random(10000)); if (!shouldAdd && checkLuck) { checkLuck = false; if (LootPack.CheckLuck(luckChance)) { shouldAdd = (entry.Chance > Utility.Random(10000)); } } if (!shouldAdd) { continue; } Item item = entry.Construct(from, luckChance, spawning); // Plume begin check Identification if (item is BaseWeapon || item is BaseArmor || item is BaseClothing || item is BaseJewel) { bool IsID = true; int bonusProps = entry.GetBonusProperties(); double min = (double)entry.MinIntensity; double max = (double)entry.MaxIntensity; if (bonusProps < entry.MaxProps && LootPack.CheckLuck(luckChance)) { ++bonusProps; } int props = 1 + bonusProps; double dblID = (((min / max) + (min / 5.0) + (max / 10.0)) * (props + props / 10.0)) / 100.0; if (props >= 5 && Utility.Random(0, 100) > 1) { IsID = false; } else if (dblID > Utility.RandomDouble()) { IsID = false; } if (!IsID) { if (item is BaseWeapon) { ((BaseWeapon)item).Identified = false; } else if (item is BaseArmor) { ((BaseArmor)item).Identified = false; } else if (item is BaseClothing) { ((BaseClothing)item).Identified = false; } else if (item is BaseJewel) { ((BaseJewel)item).Identified = false; } } } // End if (item != null) { if (!item.Stackable || !cont.TryDropItem(from, item, false)) { cont.DropItem(item); } } } }