Example #1
0
 public override void StreamXml(KSoft.IO.XmlElementStream s, FA mode, XML.BXmlSerializerInterface xs)
 {
     s.StreamAttribute(mode, kXmlAttrObjectDBID, ref mObjectDBID);
     XML.Util.Serialize(s, mode, xs, Effects, BCollectibleSkullEffect.kBListXmlParams);
     xs.StreamXmlForStringID(s, mode, kXmlElementDescriptionID, ref mDescriptionID);
     XML.Util.StreamElementNamedFlag(s, mode, kXmlElementHidden, ref mHidden);
 }
Example #2
0
        public override void StreamXml(KSoft.IO.XmlElementStream s, FA mode, XML.BXmlSerializerInterface xs)
        {
            base.StreamXml(s, mode, xs);

            xs.StreamXmlForDBID(s, mode, kXmlElementTech, ref mTechID, DatabaseObjectKind.Tech);
            xs.StreamXmlForDBID(s, mode, kXmlElementCiv, ref mCivID, DatabaseObjectKind.Civ);
            xs.StreamXmlForDBID(s, mode, kXmlElementPower, ref mPowerID, DatabaseObjectKind.Power);
            xs.StreamXmlForStringID(s, mode, kXmlElementNameID, ref mNameID);

            XML.Util.Serialize(s, mode, xs, Resources, BResource.kBListTypeValuesXmlParams);
            if (ShouldStreamStartingUnit(s, mode))
            {
                StreamXmlStartingUnit(s, mode, xs);
            }
            XML.Util.Serialize(s, mode, xs, StartingSquads, kStartingSquadBListXmlParams);
            XML.Util.Serialize(s, mode, xs, Populations, BPopulation.kBListXmlParams);
        }
Example #3
0
 public override void StreamXml(KSoft.IO.XmlElementStream s, FA mode, XML.BXmlSerializerInterface xs)
 {
     xs.StreamXmlForStringID(s, mode, kXmlElementDisplayName, ref mDisplayNameID);
 }
Example #4
0
        public override void StreamXml(KSoft.IO.XmlElementStream s, FA mode, XML.BXmlSerializerInterface xs)
        {
            var td = s.Owner as BTacticData;

            s.StreamElementEnumOpt(mode, kXmlElementActionType, ref mActionType, kNotInvalidActionType);
            s.StreamElementOpt(mode, kXmlElementProjectileSpread, ref mProjectileSpread, Util.kNotInvalidPredicateSingle);

            xs.StreamXmlForDBID(s, mode, kXmlElementSquadType, ref mSquadTypeID, DatabaseObjectKind.Squad);
            td.StreamXmlForID(s, mode, kXmlElementWeapon, ref mWeaponID, BTacticData.ObjectKind.Weapon);
            td.StreamXmlForID(s, mode, kXmlElementLinkedAction, ref mLinkedActionID, BTacticData.ObjectKind.Action);

            s.StreamElementEnumOpt(mode, kXmlElementSquadMode, ref mSquadMode, kNotInvalidSquadMode);
            s.StreamElementEnumOpt(mode, kXmlElementNewSquadMode, ref mNewSquadMode, kNotInvalidSquadMode);
#if false
            td.StreamXmlForID(s, mode, kXmlElementNewTacticState, ref mNewTacticStateID, BTacticData.ObjectKind.TacticState);
#endif

            #region Work
            s.StreamElementOpt(mode, kXmlElementWorkRate, ref mWorkRate, Util.kNotInvalidPredicateSingle);
            s.StreamElementOpt(mode, kXmlElementWorkRateVariance, ref mWorkRateVariance, Util.kNotInvalidPredicateSingle);
            s.StreamElementOpt(mode, kXmlElementWorkRange, ref mWorkRange, Util.kNotInvalidPredicateSingle);
            #endregion

            #region DamageModifiers
            if (ShouldStreamDamageModifiers(s, mode))
            {
                using (s.EnterCursorBookmark(mode, kXmlElementDamageModifiers))
                {
                    s.StreamAttribute(mode, kXmlElementDamageModifiersAttrDamage, ref mDamageModifiersDmg);
                    s.StreamAttributeOpt(mode, kXmlElementDamageModifiersAttrDamageTaken, ref mDamageModifiersDmgTaken, Util.kNotInvalidPredicateSingle);
                    s.StreamAttributeOpt(mode, kXmlElementDamageModifiersAttrByCombatValue, ref mDamageModifiersByCombatValue, Util.kNotFalsePredicate);
                }
            }
            #endregion

            xs.StreamXmlForTypeName(s, mode, kXmlElementResource, ref mResourceID, DatabaseTypeKind.Cost);
            s.StreamElementOpt(mode, kXmlElementDefault, ref mDefault, Util.kNotFalsePredicate);

            td.StreamXmlForID(s, mode, kXmlElementSlaveAttackAction, ref mSlaveAttackActionID, BTacticData.ObjectKind.Action);
            td.StreamXmlForID(s, mode, kXmlElementBaseDPSWeapon, ref mBaseDPSWeaponID, BTacticData.ObjectKind.Weapon);

            s.StreamElementEnumOpt(mode, kXmlElementPersistentActionType, ref mPersistentActionType, kNotInvalidActionType);

            #region Duration
            if (ShouldStreamDuration(s, mode))
            {
                using (s.EnterCursorBookmark(mode, kXmlElementDuration))
                {
                    s.StreamCursor(mode, ref mDuration);
                    s.StreamAttributeOpt(mode, kXmlElementDurationAttrSpread, ref mDurationSpread, Util.kNotInvalidPredicateSingle);
                }
            }
            #endregion

            #region AutoRepair
            if (ShouldStreamAutoRepair(s, mode))
            {
                using (s.EnterCursorBookmark(mode, kXmlElementAutoRepair))
                {
                    s.StreamAttribute(mode, kXmlElementAutoRepairAttrIdleTime, ref mAutoRepairIdleTime);
                    s.StreamAttribute(mode, kXmlElementAutoRepairAttrThreshold, ref mAutoRepairThreshold);
                    s.StreamAttribute(mode, kXmlElementAutoRepairAttrSearchDistance, ref mAutoRepairSearchDistance);
                }
            }
            #endregion
            xs.StreamXmlForDBID(s, mode, kXmlElementInvalidTarget, ref mInvalidTargetObjectID, DatabaseObjectKind.Object);

            #region ProtoObject
            if (ShouldStreamProtoObject(s, mode))
            {
                using (s.EnterCursorBookmark(mode, kXmlElementProtoObject))
                {
                    // TODO: This IS optional, right? Only on 'true'?
                    s.StreamAttributeOpt(mode, kXmlElementProtoObjectAttrSquad, ref mProtoObjectIsSquad, Util.kNotFalsePredicate);
                    xs.StreamXmlForDBID(s, mode, null, ref mSquadTypeID,
                                        mProtoObjectIsSquad ? DatabaseObjectKind.Squad : DatabaseObjectKind.Object, false, XML.Util.kSourceCursor);
                }
            }
            #endregion
#if false
            xs.StreamXmlForStringID(s, mode, kXmlElementCount, ref mCountStringID);
#endif
            s.StreamElementOpt(mode, kXmlElementMaxNumUnitsPerformAction, ref mMaxNumUnitsPerformAction, Util.kNotInvalidPredicate);
            s.StreamElementOpt(mode, kXmlElementDamageCharge, ref mDamageCharge, Util.kNotInvalidPredicateSingle);
        }