コード例 #1
0
ファイル: Ability.cs プロジェクト: xjamxx/FFTPatcher
        protected override void WriteXml(XmlWriter writer)
        {
            writer.WriteAttributeString("Name", Name);
            writer.WriteStartAttribute("Offset");
            writer.WriteValue(Offset);
            writer.WriteEndAttribute();

            writer.WriteValueElement(Strings.JPCost, JPCost);
            writer.WriteValueElement(Strings.LearnRate, LearnRate);
            writer.WriteValueElement(Strings.AbilityType, AbilityType);
            writer.WriteValueElement(Strings.LearnWithJP, LearnWithJP);
            writer.WriteValueElement(Strings.Action, Action);
            writer.WriteValueElement(Strings.LearnOnHit, LearnOnHit);
            writer.WriteValueElement(Strings.Blank1, Blank1);
            writer.WriteValueElement(Strings.Unknown1, Unknown1);
            writer.WriteValueElement(Strings.Unknown2, Unknown2);
            writer.WriteValueElement(Strings.Unknown3, Unknown3);
            writer.WriteValueElement(Strings.Blank2, Blank2);
            writer.WriteValueElement(Strings.Blank3, Blank3);
            writer.WriteValueElement(Strings.Blank4, Blank4);
            writer.WriteValueElement(Strings.Blank5, Blank5);
            writer.WriteValueElement(Strings.Unknown4, Unknown4);

            writer.WriteStartElement("AI");
            ((IXmlSerializable)AIFlags).WriteXml(writer);
            writer.WriteEndElement();

            if (Effect != null)
            {
                writer.WriteStartElement("Effect");
                writer.WriteStartAttribute("value");
                writer.WriteValue(Effect.Value);
                writer.WriteEndAttribute();
                writer.WriteAttributeString("name", Effect.Name);
            }

            if (IsNormal)
            {
                writer.WriteStartElement("Attributes");
                ((IXmlSerializable)Attributes).WriteXml(writer);
                writer.WriteEndElement();
            }
            else if (IsItem)
            {
                writer.WriteStartElement("ItemOffset");
                writer.WriteValue(ItemOffset);
            }
            else if (IsThrowing)
            {
                writer.WriteStartElement("Throwing");
                writer.WriteValue(Throwing.ToString());
            }
            else if (IsJumping)
            {
                writer.WriteStartElement("Jumping");
                writer.WriteValueElement("JumpHorizontal", JumpHorizontal);
                writer.WriteValueElement("JumpVertical", JumpVertical);
            }
            else if (IsCharging)
            {
                writer.WriteStartElement("Charging");
                writer.WriteValueElement("ChargeCT", ChargeCT);
                writer.WriteValueElement("ChargeBonus", ChargeBonus);
            }
            else if (IsArithmetick)
            {
                writer.WriteStartElement("ArithmetickSkill");
                writer.WriteValue(ArithmetickSkill);
            }
            else if (IsOther)
            {
                writer.WriteStartElement("OtherID");
                writer.WriteValue(OtherID);
            }
            else
            {
                throw new InvalidOperationException("Invalid item type");
            }
            writer.WriteEndElement();
        }