public virtual void GenerateiProps(object miref) { // Item type ItemType = miref.GetType(); // Approximate label ClassNameTranslator cnt = new ClassNameTranslator(); sApproxLabel = cnt.TranslateClass(ItemType); // Magical properties iProps = new int[4]; // Default to blacksmithing requirement for enhancement iMajorSkill = (int)SkillName.Blacksmith; if (miref is BaseArmor) { BaseArmor ba = (BaseArmor)miref; // Stored : Protection / Durability iProps[0] = ba.GetProtOffset() + 1; iProps[1] = (int)ba.Durability; iProps[2] = 0; // Figure out what kind of material was used if (ba.MaterialType == ArmorMaterialType.Leather || ba.MaterialType == ArmorMaterialType.Studded || ba.MaterialType == ArmorMaterialType.Bone) { iMajorSkill = (int)SkillName.Tailoring; } else if (miref is WoodenShield) { iMajorSkill = (int)SkillName.Carpentry; } } else if (miref is BaseWeapon) { BaseWeapon bw = (BaseWeapon)miref; // Stored : Damage / Durability / Accuracy / Silver iProps[0] = (int)bw.DamageLevel; iProps[1] = (int)bw.DurabilityLevel; iProps[2] = (int)bw.AccuracyLevel; iProps[3] = (int)bw.Slayer; // If it's a bow or a staff, a carpenter made it. // Blackstaffs are made by tinkers. if (miref is BaseRanged || (miref is BaseStaff && !(miref is BlackStaff)) || miref is Club) { iMajorSkill = (int)SkillName.Carpentry; } else if (miref is BlackStaff || miref is Pitchfork) { iMajorSkill = (int)SkillName.Tinkering; } } else if (miref is BaseClothing) { // Store : // [0] - int representing the type of charge // [1] - int representing the number of charges BaseClothing bc = (BaseClothing)miref; iProps[0] = (int)bc.MagicType; iProps[1] = (int)bc.MagicCharges; iMajorSkill = (int)SkillName.Tailoring; } else if (miref is BaseJewel) { // Store : // [0] - int representing the type of charge // [1] - int representing the number of charges BaseJewel bj = (BaseJewel)miref; iProps[0] = (int)bj.MagicType; iProps[1] = (int)bj.MagicCharges; iMajorSkill = (int)SkillName.Tinkering; } else { // We've been passed an object that cannot be handled... // don't drop this enchanted item! this.Delete(); return; } // Skill requirements SkillReq = new int[52]; // all enhancements require these SkillReq[(int)SkillName.Magery] = 80; if (ItemType.IsSubclassOf(typeof(BaseJewel)) || ItemType.IsSubclassOf(typeof(BaseClothing))) { SkillReq[(int)SkillName.ItemID] = 80; } else { SkillReq[(int)SkillName.ArmsLore] = 80; } // base final skill on what kind of object we're dealing with SkillReq[iMajorSkill] = 90; }