public static UnravelInfo GetUnravelInfo(Mobile from, Item item) { int intensity = GetUnravelWeight(from, item); if (intensity > 0) { for (int i = m_UnravelTable.Length - 1; i >= 0; i--) { UnravelInfo info = m_UnravelTable[i]; if (intensity >= info.MinIntensity) { return(info); } } } return(null); }
public static bool Unravel(Mobile from, Item toUnravel) { UnravelInfo info = GetUnravelInfo(from, toUnravel); if (info == null) { // You cannot magically unravel this item. It appears to possess little or no magic. from.SendLocalizedMessage(1080437); return(false); } else { double imbuing = from.Skills[SkillName.Imbuing].Value; if (imbuing < info.MinSkill) { // Your Imbuing skill is not high enough to magically unravel this item. from.SendLocalizedMessage(1080434); return(false); } else { bool plus = from.CheckSkill(SkillName.Imbuing, info.MinSkill, info.MinSkill + 70.0); toUnravel.Delete(); Item resource = Activator.CreateInstance(info.Resource) as Item; resource.Amount = plus ? info.MaxResource : info.MinResource; from.AddToBackpack(resource); from.SendLocalizedMessage(1080429); // You magically unravel the item! from.SendLocalizedMessage(1072223); // An item has been placed in your backpack. Effects.SendPacket(from, from.Map, new GraphicalEffect(EffectType.FixedFrom, from.Serial, Serial.Zero, 0x375A, from.Location, from.Location, 1, 17, true, false)); from.PlaySound(0x1EB); return(true); } } }