Пример #1
0
 public void AddPart(BodypartType part, BodypartAbilities props, int stdCount)
 {
     for (int i = 1; i <= stdCount; i++)
     {
         AddPart((int)part);
     }
 }
        public override void LoadXML(XmlNode element, FileVersion version)
        {
            try {
                base.LoadXML(element, version);

                ImageName = ReadElement(element, "ImageName");
                ItmKind   = (ItemKind)Enum.Parse(typeof(ItemKind), ReadElement(element, "Kind"));

                string signs = ReadElement(element, "Signs");
                Flags = new ItemFlags(signs);
                string newSigns = Flags.Signature;
                if (!signs.Equals(newSigns))
                {
                    throw new Exception("ItemSigns not equals (" + ImageName + ")");
                }

                EqKind    = (BodypartType)Enum.Parse(typeof(BodypartType), ReadElement(element, "eqKind"));
                Frequency = Convert.ToSByte(ReadElement(element, "Frequency"));
                Satiety   = Convert.ToInt16(ReadElement(element, "Satiety"));
                Price     = Convert.ToInt16(ReadElement(element, "Price"));
                Weight    = (float)ConvertHelper.ParseFloat(ReadElement(element, "Weight"), 0.0f, true);

                XmlNode ael = element.SelectSingleNode("Attributes");
                for (int i = ItemAttribute.ia_First; i <= ItemAttribute.ia_Last; i++)
                {
                    string atSign = dbItemAttributes[i - 1];
                    Attributes[i - 1] = Convert.ToInt32(ReadElement(ael, atSign));
                }

                XmlNodeList nl = element.SelectSingleNode("Effects").ChildNodes;
                Effects = new EffectEntry[nl.Count];
                for (int i = 0; i < nl.Count; i++)
                {
                    XmlNode n = nl[i];
                    Effects[i]         = new EffectEntry();
                    Effects[i].EffID   = (EffectID)Enum.Parse(typeof(EffectID), n.Attributes["EffectID"].InnerText);
                    Effects[i].ExtData = Convert.ToInt32(n.Attributes["ExtData"].InnerText);
                }

                nl       = element.SelectSingleNode("Contents").ChildNodes;
                Contents = new ContentsEntry[nl.Count];
                for (int i = 0; i < nl.Count; i++)
                {
                    XmlNode n = nl[i];
                    Contents[i]        = new ContentsEntry();
                    Contents[i].ItemID = n.Attributes["ItemID"].InnerText;
                    Contents[i].Chance = Convert.ToInt32(n.Attributes["Chance"].InnerText);
                }

                Material = (MaterialKind)Enum.Parse(typeof(MaterialKind), ReadElement(element, "Material"));

                FramesCount    = Convert.ToSByte(ReadElement(element, "FramesCount"));
                BonusRange.Min = Convert.ToInt32(ReadElement(element, "BonusRange_Min"));
                BonusRange.Max = Convert.ToInt32(ReadElement(element, "BonusRange_Max"));
            } catch (Exception ex) {
                Logger.Write("ItemEntry.loadXML(): " + ex.Message);
                throw ex;
            }
        }
Пример #3
0
    public int GetPartIndex(BodypartType bodypartType)
    {
        int i = -1;

        if (parts.Count > 0)
        {
            for (i = 0; i < parts.Count; i++)
            {
                if (parts[i].bodypartType == bodypartType)
                {
                    break;
                }
            }
        }
        return(i);
    }
Пример #4
0
 public Bodypart GetBodypart(BodypartType type)
 {
     return(Bodyparts.Find(bodypart => bodypart.PartType == type));
 }