AssetTypeGameObject.xsd 54 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="uri:ea.com:eala:asset" xmlns:at="uri:ea.com:eala:asset:type" xmlns:xas="uri:ea.com:eala:asset:schema" xmlns:balance="uri:ea.com:eala:balance" targetNamespace="uri:ea.com:eala:asset" elementFormDefault="qualified" xmlns:XmlEdit="http://tempuri.org/XmlEdit.xsd">
  3. <xs:include schemaLocation="GameObject/ThingSort.xsd" />
  4. <xs:include schemaLocation="GameObject/RadarPriority.xsd" />
  5. <xs:include schemaLocation="SkirmishAI/AssetTypeArmyDefinition.xsd" />
  6. <xs:include schemaLocation="SkirmishAI/AIBaseSelectionCriteria.xsd" />
  7. <xs:complexType name="BehaviorModules">
  8. <xs:choice minOccurs="0" maxOccurs="unbounded">
  9. <!-- BEGIN: Absolutely required modules (otherwise bad things will probably happen) -->
  10. <xs:element name="ObjectSMCHelper" type="ObjectSMCHelperModuleData" minOccurs="1" maxOccurs="1" />
  11. <xs:element name="ObjectDefectionHelper" type="ObjectDefectionHelperModuleData" minOccurs="1" maxOccurs="1" />
  12. <!-- END: Absolutely required modules -->
  13. <xs:element name="AttributeModifierUpgrade" type="AttributeModifierUpgradeModuleData" />
  14. <xs:element name="AttackTargetSpecialPower" type="AttackTargetSpecialPowerModuleData" />
  15. <xs:element name="ArmorUpgrade" type="ArmorUpgradeModuleData" />
  16. <xs:element name="BeamTargetBehavior" type="BeamTargetModuleData" />
  17. <xs:element name="SlavedUpdate" type="SlavedUpdateModuleData" />
  18. <xs:element name="SecondaryDamageTracker" type="SecondaryDamageTrackerModuleData" />
  19. <xs:element name="BezierProjectile" type="BezierProjectileBehaviorModuleData" />
  20. <xs:element name="BuildingBehavior" type="BuildingBehaviorModuleData" />
  21. <xs:element name="ClusterBombUpdate" type="ClusterBombUpdateModuleData" />
  22. <xs:element name="Collide" type="CollideModuleData" />
  23. <xs:element name="CommandSetUpgrade" type="CommandSetUpgradeModuleData" />
  24. <xs:element name="CreateObjectDie" type="CreateObjectDieModuleData" />
  25. <xs:element name="CrushDie" type="CrushDieModuleData" />
  26. <xs:element name="DefaultProductionExit" type="DefaultProductionExitUpdateModuleData" />
  27. <xs:element name="DestroyDie" type="DestroyDieModuleData" />
  28. <xs:element name="EmotionTrackerUpdate" type="EmotionTrackerUpdateModuleData" />
  29. <xs:element name="DominateEnemySpecialPower" type="DominateEnemySpecialPowerModuleData" />
  30. <xs:element name="ReconstituteStateSpecialAbility" type="ReconstituteStateSpecialAbilityModuleData" />
  31. <xs:element name="EngineerContain" type="EngineerContainModuleData" />
  32. <xs:element name="InfiltratorContain" type="InfiltratorContainModuleData" />
  33. <xs:element name="InvalidTargetsDeathUpdate" type="InvalidTargetsDeathUpdateModuleData" />
  34. <xs:element name="FireWeaponCollide" type="FireWeaponCollideModuleData" />
  35. <xs:element name="EnableDynamicsCollide" type="EnableDynamicsCollideModuleData" />
  36. <xs:element name="FireWeaponUpdate" type="FireWeaponUpdateModuleData" />
  37. <xs:element name="BombardAreaUpdate" type="BombardAreaUpdateModuleData" />
  38. <xs:element name="LiftObjectUpdate" type="LiftObjectUpdateModuleData" />
  39. <xs:element name="SpecialDisguiseUpdate" type="SpecialDisguiseUpdateModuleData" />
  40. <xs:element name="ToppleUpdate" type="ToppleUpdateModuleData" />
  41. <xs:element name="DamageFieldUpdate" type="DamageFieldUpdateModuleData" />
  42. <!-- <xs:element name="FlammableUpdate" type="FlammableUpdateModuleData" /> -->
  43. <xs:element name="AutoDepositUpdate" type="AutoDepositUpdateModuleData" />
  44. <xs:element name="FXListBehavior" type="FXListBehaviorModuleData" />
  45. <xs:element name="GeometryUpgrade" type="GeometryUpgradeModuleData" />
  46. <xs:element name="GiveUpgradeUpdate" type="GiveUpgradeUpdateModuleData" />
  47. <xs:element name="GrantUpgradeCreate" type="GrantUpgradeCreateModuleData" />
  48. <xs:element name="HeightDieUpdate" type="HeightDieUpdateModuleData" />
  49. <xs:element name="MissileUpdate" type="MissileUpdateModuleData" />
  50. <xs:element name="SpecialPowerAssistResponseBehavior" type="SpecialPowerAssistResponseBehaviorModuleData" />
  51. <xs:element name="AttackAssistResponseBehavior" type="AttackAssistResponseBehaviorModuleData" />
  52. <xs:element name="LevelUpUpgrade" type="LevelUpUpgradeModuleData" />
  53. <xs:element name="LifetimeUpdate" type="LifetimeUpdateModuleData" />
  54. <xs:element name="GatherEjectUpdate" type="GatherEjectUpdateModuleData" />
  55. <xs:element name="SqueezeFlingUpdate" type="SqueezeFlingUpdateModuleData" />
  56. <xs:element name="LocomotorSetUpgrade" type="LocomotorSetModuleData" />
  57. <xs:element name="SwitchLocomotorsSpecialAbilityUpdate" type="SwitchLocomotorsSpecialAbilityUpdateModuleData" />
  58. <xs:element name="MaxHealthUpgrade" type="MaxHealthUpgradeModuleData" />
  59. <xs:element name="MinefieldBehavior" type="MinefieldBehaviorModuleData" />
  60. <xs:element name="ModelConditionUpgrade" type="ModelConditionUpgradeModuleData" />
  61. <xs:element name="RandomModelCondition" type="RandomModelConditionBehaviorModuleData" />
  62. <xs:element name="StrafeAreaUpdate" type="StrafeAreaUpdateModuleData" />
  63. <xs:element name="OCLMonitorUpdate" type="OCLMonitorUpdateModuleData" />
  64. <xs:element name="TeleportSpecialAbilityUpdate" type="TeleportSpecialAbilityUpdateModuleData" />
  65. <xs:element name="TeleportToCasterSpecialPower" type="TeleportToCasterSpecialPowerModuleData" />
  66. <xs:element name="ToggleStatusSpecialAbilityUpdate" type="ToggleStatusSpecialAbilityUpdateModuleData" />
  67. <xs:element name="ObjectCreationUpgrade" type="ObjectCreationUpgradeModuleData" />
  68. <xs:element name="SlaveWatcherBehavior" type="SlaveWatcherBehaviorModuleData" />
  69. <xs:element name="TimedOpacityUpdate" type="TimedOpacityUpdateModuleData" />
  70. <xs:element name="OCLSpecialPower" type="OCLSpecialPowerModuleData" />
  71. <xs:element name="TemporaryOwnerSpecialPower" type="TemporaryOwnerSpecialPowerModuleData" />
  72. <xs:element name="OCLUpdate" type="OCLUpdateModuleData" />
  73. <xs:element name="OpenContain" type="OpenContainModuleData" />
  74. <xs:element name="FreefallUpdate" type="FreefallUpdateModuleData"/>
  75. <xs:element name="HealContain" type="HealContainModuleData" />
  76. <xs:element name="Physics" type="PhysicsBehaviorModuleData" />
  77. <xs:element name="CombinedInfoModule" type="CombinedInfoModuleData" />
  78. <xs:element name="CompositeStructureInfoModule" type="CompositeStructureInfoModuleData" />
  79. <xs:element name="PlayerUpgradeSpecialPower" type="PlayerUpgradeSpecialPowerModuleData" />
  80. <xs:element name="ProductionUpdate" type="ProductionUpdateModuleData" />
  81. <xs:element name="ProductionUpdateInfo" type="ProductionUpdateInfoModuleData" />
  82. <xs:element name="QueueProductionExitUpdate" type="QueueProductionExitUpdateModuleData" />
  83. <xs:element name="CombineSpecialPower" type="CombineSpecialPowerModuleData" />
  84. <xs:element name="UncombineSpecialPower" type="UncombineSpecialPowerModuleData" />
  85. <xs:element name="RadarHackSpecialPower" type="RadarHackSpecialPowerModuleData" />
  86. <xs:element name="RadarJamSpecialPower" type="RadarJamSpecialPowerModuleData" />
  87. <xs:element name="RadarSpySpecialPower" type="RadarSpySpecialPowerModuleData" />
  88. <xs:element name="RadarFreezeSpecialPower" type="RadarFreezeSpecialPowerModuleData" />
  89. <xs:element name="CaptureAndGiveCommandSetSpecialPower" type="CaptureAndGiveCommandSetSpecialPowerModuleData" />
  90. <xs:element name="GiveOrRestoreUpgradeSpecialPower" type="GiveOrRestoreUpgradeSpecialPowerModuleData" />
  91. <xs:element name="RefundDie" type="RefundDieModuleData" />
  92. <xs:element name="RemoveUpgradeUpgrade" type="RemoveUpgradeUpgradeModuleData" />
  93. <xs:element name="ReplaceSelfUpgrade" type="ReplaceSelfUpgradeModuleData" />
  94. <xs:element name="CrateCollide" type="CrateCollideModuleData" />
  95. <xs:element name="SalvageCrateCollide" type="SalvageCrateCollideModuleData" />
  96. <xs:element name="HealCrateCollide" type="HealCrateCollideModuleData" />
  97. <xs:element name="MoneyCrateCollide" type="MoneyCrateCollideModuleData" />
  98. <xs:element name="UnitCrateCollide" type="UnitCrateCollideModuleData" />
  99. <xs:element name="VeterancyCrateCollide" type="VeterancyCrateCollideModuleData" />
  100. <xs:element name="AttributeCrateCollide" type="AttributeCrateCollideModuleData" />
  101. <xs:element name="RandomCrateCollide" type="RandomCrateCollideModuleData" />
  102. <xs:element name="SlowDeath" type="SlowDeathBehaviorModuleData" />
  103. <xs:element name="ShipSlowDeath" type="ShipSlowDeathBehaviorModuleData" />
  104. <xs:element name="SpawnBehavior" type="SpawnBehaviorModuleData" />
  105. <xs:element name="SpecialAbilityUpdate" type="SpecialAbilityUpdateModuleData" />
  106. <xs:element name="OCLMonitorSpecialAbilityUpdate" type="OCLMonitorSpecialAbilityUpdateModuleData" />
  107. <xs:element name="EjectPassengersSpecialAbilityUpdate" type="EjectPassengersSpecialAbilityUpdateModuleData" />
  108. <xs:element name="SpecialPower" type="SpecialPowerModuleData" />
  109. <xs:element name="AssignSlavesTargetObjectSpecialPower" type="AssignSlavesTargetObjectSpecialPowerModuleData" />
  110. <xs:element name="HordeDispatchSpecialPower" type="HordeDispatchSpecialPowerModuleData" />
  111. <xs:element name="SpecialPowerDispatchSpecialPower" type="SpecialPowerDispatchSpecialPowerModuleData" />
  112. <xs:element name="SpecialPowerUpdate" type="SpecialPowerUpdateModuleData" />
  113. <xs:element name="StealthDetectorUpdate" type="StealthDetectorUpdateModuleData" />
  114. <xs:element name="InitiateRepairDie" type="InitiateRepairDieModuleData" />
  115. <xs:element name="AttributeModifierAuraUpdate" type="AttributeModifierAuraUpdateModuleData" />
  116. <xs:element name="ShieldBodyUpdate" type="ShieldBodyUpdateModuleData" />
  117. <xs:element name="ShieldSphereUpdate" type="ShieldSphereUpdateModuleData" />
  118. <xs:element name="SpiderHoleUpdate" type="SpiderHoleUpdateModuleData" />
  119. <xs:element name="ActivateSpecialPowerOnCreate" type="ActivateSpecialPowerOnCreate" />
  120. <xs:element name="SubObjectsUpgrade" type="SubObjectsUpgradeModuleData" />
  121. <xs:element name="TerrainResource" type="TerrainResourceBehaviorModuleData" />
  122. <xs:element name="TransportContain" type="TransportContainModuleData" />
  123. <xs:element name="HordeTransportContain" type="HordeTransportContainModuleData" />
  124. <xs:element name="HordeContain" balance:category="HordeContain" type="HordeContainModuleData" />
  125. <xs:element name="UnpauseSpecialPowerUpgrade" type="UnpauseSpecialPowerUpgradeModuleData" />
  126. <xs:element name="Upgrade" balance:category="Upgrade" type="UpgradeModuleData" />
  127. <xs:element name="AudioLoopUpgrade" type="AudioLoopUpgradeModuleData" />
  128. <xs:element name="WeaponSetUpdate" balance:category="WeaponSetUpdate" type="WeaponSetUpdateModuleData" />
  129. <xs:element name="BeamSpecialAbilityUpdate" type="BeamSpecialAbilityUpdateModuleData" />
  130. <xs:element name="CaptureSpecialAbilityUpdate" type="CaptureSpecialAbilityUpdateModuleData" />
  131. <xs:element name="DieOnProducerDeathUpdate" type="DieOnProducerDeathUpdateModuleData" />
  132. <xs:element name="ReplaceSelfSpecialAbility" type="ReplaceSelfSpecialAbilityModuleData" />
  133. <xs:element name="WeaponFireSpecialAbilityUpdate" type="WeaponFireSpecialAbilityUpdateModuleData" />
  134. <xs:element name="DelayedWeaponFireSpecialAbilityUpdate" type="DelayedWeaponFireSpecialAbilityUpdateModuleData" />
  135. <xs:element name="TiberiumThiefSpecialAbilityUpdate" type="TiberiumThiefSpecialAbilityUpdateModuleData" />
  136. <xs:element name="TiberiumField" type="TiberiumFieldBehaviorModuleData" />
  137. <xs:element name="TiberiumCrystal" type="TiberiumCrystalBehaviorModuleData" />
  138. <xs:element name="TiberiumGrowthModBehavior" type="TiberiumGrowthModBehaviorModuleData" />
  139. <xs:element name="RadarBehavior" type="RadarBehaviorModuleData" />
  140. <xs:element name="DockUpdate" type="DockUpdateModuleData" />
  141. <xs:element name="RepairUpdate" type="RepairUpdateModuleData" />
  142. <xs:element name="SupplyCenterDockUpdate" type="SupplyCenterDockUpdateModuleData" />
  143. <xs:element name="SupplyWarehouseDockUpdate" type="SupplyWarehouseDockUpdateModuleData" />
  144. <xs:element name="AimWeapon" type="AimWeaponBehaviorModuleData" />
  145. <xs:element name="DistributedMoney" type="DistributedMoneyBehaviorModuleData" />
  146. <xs:element name="AutoAbility" type="AutoAbilityBehaviorModuleData" />
  147. <xs:element name="FireWeaponWhenDamaged" type="FireWeaponWhenDamagedBehaviorModuleData" />
  148. <xs:element name="FireWeaponWhenDead" type="FireWeaponWhenDeadBehaviorModuleData" />
  149. <xs:element name="GarrisonContain" type="GarrisonContainModuleData" />
  150. <xs:element name="ContestableGarrisonContain" type="ContestableGarrisonContainModuleData" />
  151. <xs:element name="ExperienceLevelCreate" type="ExperienceLevelCreateModuleData" />
  152. <xs:element name="InheritUpgradeCreate" type="InheritUpgradeCreateModuleData" />
  153. <xs:element name="DeletionUpdate" type="DeletionUpdateModuleData" />
  154. <xs:element name="EMPUpdate" type="EMPUpdateModuleData" />
  155. <xs:element name="DelayedUpgrade" type="DelayedUpgradeModuleData" />
  156. <xs:element name="StatusBitsUpgrade" type="StatusBitsUpgradeModuleData" />
  157. <xs:element name="RadarUpdate" type="RadarUpdateModuleData" />
  158. <xs:element name="UpgradeDie" type="UpgradeDieModuleData" />
  159. <xs:element name="KeepObjectDie" type="KeepObjectDieModuleData" />
  160. <xs:element name="AutoHealBehavior" type="AutoHealBehaviorModuleData" />
  161. <xs:element name="EnergyDisablingBehavior" type="EnergyDisablingBehaviorModuleData" />
  162. <xs:element name="UnitVisionBehavior" type="UnitVisionBehaviorModuleData" />
  163. <xs:element name="ParkingPlaceBehavior" type="ParkingPlaceBehaviorModuleData" />
  164. <xs:element name="ExperienceScalarUpgrade" type="ExperienceScalarUpgradeModuleData" />
  165. <xs:element name="LevelGrantSpecialPower" type="LevelGrantSpecialPowerModuleData" />
  166. <xs:element name="CostModifierUpgrade" type="CostModifierUpgradeModuleData" />
  167. <xs:element name="SquishCollide" type="SquishCollideModuleData" />
  168. <xs:element name="Damage" type="DamageModuleData" />
  169. <xs:element name="TrackDamage" type="TrackDamageModuleData" />
  170. <xs:element name="Damager" type="DamagerModuleData" />
  171. <xs:element name="Destroy" type="DestroyModuleData" />
  172. <xs:element name="DamageStateList" type="DamageStateListModuleData" />
  173. <xs:element name="LaserUpdate" type="LaserUpdateModuleData" />
  174. <xs:element name="LaserState" type="LaserStateModuleData" />
  175. <xs:element name="SweepingLaserState" type="SweepingLaserStateModuleData" />
  176. <xs:element name="ConvergingLaserState" type="ConvergingLaserStateModuleData" />
  177. <xs:element name="StreamState" type="StreamStateModuleData" />
  178. <xs:element name="ActivateModuleSpecialAbilityUpdate" type="ActivateModuleSpecialAbilityUpdateModuleData" />
  179. <xs:element name="CaptureBehavior" type="CaptureBehaviorModuleData" />
  180. <xs:element name="StoreCurrentStateUpdate" type="StoreCurrentStateUpdateModuleData" />
  181. <xs:element name="StorePurchasedUpgradeBehavior" type="StorePurchasedUpgradeBehaviorModuleData" />
  182. <xs:element name="StoreObjectsSpecialPower" type="StoreObjectsSpecialPowerModuleData" />
  183. <xs:element name="CloneStoredObjectsSpecialPowerUpdate" type="CloneStoredObjectsSpecialPowerUpdateModuleData" />
  184. <xs:element name="TeleportStoredObjectsUpdate" type="TeleportStoredObjectsUpdateModuleData" />
  185. <xs:element name="TeleportStoredObjectsSpecialPower" type="TeleportStoredObjectsSpecialPowerModuleData" />
  186. <xs:element name="RecallUnitsSpecialPower" type="RecallUnitsSpecialPowerModuleData" />
  187. <xs:element name="ReturnToProducerSpecialPower" type="ReturnToProducerSpecialPowerModuleData" />
  188. <xs:element name="ReturnToDockSpecialPower" type="ReturnToDockSpecialPowerModuleData" />
  189. <xs:element name="HordeGarrisonContain" type="HordeGarrisonContainModuleData" />
  190. <xs:element name="TunnelContain" type="TunnelContainModuleData" />
  191. <xs:element name="TunnelTeleportContain" type="TunnelTeleportContainModuleData" />
  192. <xs:element name="SlaughterHordeContain" type="SlaughterHordeContainModuleData" />
  193. <xs:element name="InvisibilityUpdate" type="InvisibilityUpdateModuleData" />
  194. <xs:element name="InvisibilityBroadcastUpdate" type="InvisibilityBroadcastUpdateModuleData" />
  195. <xs:element name="InvisibilitySpecialPower" type="InvisibilitySpecialPowerModuleData" />
  196. <xs:element name="InvisibilityBehavior" type="InvisibilityBehaviorModuleData" />
  197. <xs:element name="InvisibilityUpgrade" type="InvisibilityUpgradeModuleData" />
  198. <xs:element name="PowerUpdate" type="PowerUpdateModuleData" />
  199. <xs:element name="SupplyCenterCreate" type="SupplyCenterCreateModuleData" />
  200. <xs:element name="GatherSlavesUpdate" type="GatherSlavesUpdateModuleData" />
  201. <xs:element name="StancesBehavior" type="StancesBehaviorModuleData" />
  202. <xs:element name="FiringTracker" type="FiringTrackerModuleData" />
  203. <xs:element name="SpecialPowerTimerRefreshSpecialPower" type="SpecialPowerTimerRefreshSpecialPowerModuleData" />
  204. <xs:element name="BuildingDestructionBehavior" type="BuildingDestructionModuleData" />
  205. <xs:element name="OreNodeBehavior" type="OreNodeModuleData" />
  206. <xs:element name="OreMinerBehavior" type="OreMinerModuleData" />
  207. <xs:element name="QueueDockBehavior" type="QueueDockModuleData" />
  208. <xs:element name="SecondaryObjectListenerModule" type="SecondaryObjectListenerModule" />
  209. <xs:element name="HitReactionBehavior" type="HitReactionBehaviorModuleData" />
  210. <xs:element name="ReplaceObjectUpdate" type="ReplaceObjectUpdateModuleData" />
  211. <xs:element name="HelicopterSlowDeath" type="HelicopterSlowDeathBehaviorModuleData" />
  212. <xs:element name="ClearanceTestingSlowDeathBehavior" type="ClearanceTestingSlowDeathBehaviorModuleData" />
  213. <xs:element name="LeechTargetingAttachUpdate" type="LeechTargetingAttachUpdateModuleData" />
  214. <xs:element name="MoneyGainAttachUpdate" type="MoneyGainAttachUpdateModuleData" />
  215. <xs:element name="AttachUpdate" type="AttachUpdateModuleData" />
  216. <xs:element name="ParabolicCurveUpdate" type="ParabolicCurveUpdateModuleData" />
  217. <xs:element name="LineSegmentDamageUpdate" type="LineSegmentDamageUpdateModuleData" />
  218. <xs:element name="BoobyTrapUpdate" type="BoobyTrapUpdateModuleData" />
  219. <xs:element name="StealUnitUpdate" type="StealUnitUpdateModuleData" />
  220. <xs:element name="SpawnCrateUpdate" type="SpawnCrateUpdateModuleData" />
  221. <xs:element name="BridgeBuilder" type="BridgeBuilderModuleData" />
  222. <xs:element name="PassiveAreaEffectBehavior" type="PassiveAreaEffectBehaviorModuleData" />
  223. <xs:element name="PowerUpgrade" type="PowerUpgradeModuleData" />
  224. <xs:element name="CreateAndEnterObjectSpecialPower" type="CreateAndEnterObjectSpecialPowerModuleData" />
  225. <xs:element name="MoveToPositionAndEvacuateSpecialPower" type="MoveToPositionAndEvacuateSpecialPowerModuleData" />
  226. <xs:element name="MoveToPositionAndReplaceSelfSpecialPower" type="MoveToPositionAndReplaceSelfSpecialPowerModuleData" />
  227. <xs:element name="TechUpgrade" type="TechUpgradeModuleData" />
  228. <xs:element name="TechUpgradeReceiver" type="TechUpgradeReceiverModuleData" />
  229. <xs:element name="SubStructureBuild" type="SubStructureBuildUpgradeModuleData" />
  230. <xs:element name="SubStructureBehavior" type="SubStructureBehaviorModuleData" />
  231. <xs:element name="SubStructureStorageBehavior" type="SubStructureStorageBehaviorModuleData" />
  232. <xs:element name="ActivateModuleSpecialPower" type="ActivateModuleSpecialPower" />
  233. <xs:element name="SwitchLocomotorUpdate" type="SwitchLocomotorUpdate" />
  234. <xs:element name="RunOffMapBehavior" type="RunOffMapBehaviorModuleData" />
  235. <xs:element name="SuppressionUpdate" balance:category="SuppressionUpdate" type="SuppressionUpdateModuleData" />
  236. <xs:element name="AttributeModifierPoolUpdate" type="AttributeModifierPoolUpdateModuleData" />
  237. <xs:element name="ProjectileUpdate" type="ProjectileUpdateModuleData"/>
  238. <xs:element name="WallHubBehavior" type="WallHubBehaviorModuleData" />
  239. <xs:element name="StructureUnpackUpdate" type="StructureUnpackUpdateModuleData" />
  240. <xs:element name="StructureSellUpdate" type="StructureSellUpdateModuleData" />
  241. <xs:element name="FindCoverBehavior" type="FindCoverBehaviorModuleData" />
  242. <xs:element name="RepairSpecialPower" type="RepairSpecialPowerModuleData" />
  243. <xs:element name="RadarScanMapSpecialAbilityUpdate" type="RadarScanMapSpecialAbilityUpdateModuleData" />
  244. <xs:element name="RestrictSpecialPowerBehavior" type="RestrictSpecialPowerBehaviorModuleData" />
  245. <xs:element name="AreaRestrictSpecialPowerBehavior" type="AreaRestrictSpecialPowerBehaviorModuleData" />
  246. <xs:element name="MonitorConditionUpdate" type="MonitorConditionUpdateModuleData" />
  247. <xs:element name="MonitorSpecialPowerTimerUpdate" type="MonitorSpecialPowerTimerUpdateModuleData" />
  248. <xs:element name="LinearDamageUpdate" type="LinearDamageUpdateModuleData" />
  249. <xs:element name="CircularDamageUpdate" type="CircularDamageUpdateModuleData" />
  250. <xs:element name="GrantUpgradeAreaOfEffectSpecialPower" type="GrantUpgradeAreaOfEffectSpecialPowerModuleData" />
  251. <xs:element name="SetLocomotorSpeedUpdate" type="SetLocomotorSpeedUpdateModuleData" />
  252. <xs:element name="DestroyObjectsUpdate" type="DestroyObjectsUpdateModuleData" />
  253. <xs:element name="PlayerPowerManager" type="PlayerPowerManagerBehaviorModuleData" />
  254. <xs:element name="LUAEventList" type="LUAEventListBehaviorModuleData" />
  255. <xs:element name="AttributeModifierNaval" type="AttributeModifierNavalModuleData" />
  256. <xs:element name="DynamicsUpdate" type="DynamicsUpdateModuleData" />
  257. <xs:element name="NotifyWhenAttackingBehavior" type="NotifyWhenAttackingBehaviorModuleData" />
  258. <xs:element name="EncloseBehavior" type="EncloseBehaviorModuleData" />
  259. <xs:element name="TrackIncomingWeaponFireBehavior" type="TrackIncomingWeaponFireBehaviorModuleData" />
  260. <xs:element name="DestructibleEnvironmentUpdate" type="DestructibleEnvironmentUpdateModuleData" />
  261. <xs:element name="MagneticEffectUpdate" type="MagneticEffectUpdateModuleData" />
  262. <xs:element name="LoseHealthUpdate" type="LoseHealthUpdateModuleData" />
  263. <xs:element name="WeaponScatterEffectUpdate" type="WeaponScatterEffectUpdateModuleData" />
  264. <xs:element name="LaserScatterUpdate" type="LaserScatterUpdateModuleData" />
  265. <xs:element name="ObjectStatusSpecialAbilityUpdate" type="ObjectStatusSpecialAbilityUpdateModuleData" />
  266. <xs:element name="MovementSpecialPower" type="MovementSpecialPowerModuleData" />
  267. <xs:element name="PrematureDischargeSpecialPower" type="PrematureDischargeSpecialPowerModuleData" />
  268. <xs:element name="GiveProductionBonusSpecialPower" type="GiveProductionBonusSpecialPowerModuleData" />
  269. <xs:element name="WallBuilderBehavior" type="WallBuilderBehaviorModuleData" />
  270. <xs:element name="GrapplingHookUpdate" type="GrapplingHookUpdateModuleData" />
  271. <xs:element name="ChargeWeaponUpdate" type="ChargeWeaponUpdateModuleData" />
  272. <xs:element name="StrafeAreaTargetChooser" type="StrafeAreaTargetChooserModuleData" />
  273. <xs:element name="SuckUpObjectsUpdate" type="SuckUpObjectsUpdateModuleData" />
  274. <xs:element name="StoreTemplateIDBehavior" type="StoreTemplateIDBehaviorModuleData" />
  275. <xs:element name="RenderStoredThingTemplate" type="ReplaceDrawModuleBehaviorModuleData" />
  276. <xs:element name="DistributeEnergyToAlliesBehavior" type="DistributeEnergyToAlliesBehaviorModuleData" />
  277. <xs:element name="UnifiedControlBehavior" type="UnifiedControlBehaviorModuleData" />
  278. <xs:element name="UnifiedShroudRevealBehavior" type="UnifiedShroudRevealBehaviorModuleData" />
  279. <xs:element name="CaptureAndGiveUpgradeBehavior" type="CaptureAndGiveUpgradeBehaviorModuleData" />
  280. <xs:element name="AssistedPlacementBehavior" type="AssistedPlacementBehaviorModuleData" />
  281. <xs:element name="AssistedPlacementInfoBehavior" type="AssistedPlacementInfoBehaviorModuleData" />
  282. <xs:element name="SelectiveVisibilityBehavior" type="SelectiveVisibilityBehaviorModuleData" />
  283. <xs:element name="AssembleStructureSpecialAbilityUpdate" type="AssembleStructureSpecialAbilityUpdateModuleData" />
  284. <xs:element name="StructurePlacementBehavior" type="StructurePlacementBehaviorModuleData" />
  285. </xs:choice>
  286. </xs:complexType>
  287. <xs:complexType name="AIModule">
  288. <xs:choice minOccurs="0" maxOccurs="2">
  289. <xs:element name="AIUpdate" type="AIUpdateModuleData" />
  290. <xs:element name="ConstructionYardAIUpdate" type="ConstructionYardAIUpdateModuleData" />
  291. <xs:element name="AIGateUpdate" type="AIGateUpdateModuleData" />
  292. <xs:element name="DeployStyleAIUpdate" type="DeployStyleAIUpdateModuleData" />
  293. <xs:element name="TransportAIUpdate" type="TransportAIUpdateModuleData" />
  294. <xs:element name="HordeAIUpdate" type="HordeAIUpdateModuleData" />
  295. <xs:element name="JetAIUpdate" type="JetAIUpdateModuleData" />
  296. <xs:element name="SupplyTruckAIUpdate" type="SupplyTruckAIUpdateModuleData" />
  297. <xs:element name="WanderAIUpdate" type="WanderAIUpdateModuleData" />
  298. <xs:element name="AnimalAIUpdate" type="AnimalAIUpdateModuleData" />
  299. </xs:choice>
  300. </xs:complexType>
  301. <xs:complexType name="BodyModule">
  302. <xs:choice minOccurs="1" maxOccurs="1">
  303. <xs:element name="ActiveBody" balance:category="ActiveBody" type="ActiveBodyModuleData" />
  304. <xs:element name="ShieldBody" balance:category="ActiveBody" type="ShieldBodyModuleData" />
  305. <xs:element name="ImmortalBody" type="ImmortalBodyModuleData" />
  306. <xs:element name="HighlanderBody" type="HighlanderBodyModuleData" />
  307. <xs:element name="InactiveBody" type="InactiveBodyModuleData" />
  308. <xs:element name="PropBody" type="PropBodyModuleData" />
  309. <xs:element name="ManagerBody" type="ManagerBodyModuleData" />
  310. <xs:element name="ManagedActiveBody" type="ManagedActiveBodyModuleData" />
  311. <xs:element name="ManagedImmortalBody" type="ManagedImmortalBodyModuleData" />
  312. </xs:choice>
  313. </xs:complexType>
  314. <xs:complexType name="ClientUpdateModules">
  315. <xs:choice minOccurs="0" maxOccurs="unbounded">
  316. <xs:element name="BeaconClientUpdate" type="BeaconClientUpdateModuleData" />
  317. <xs:element name="EvaAnnounceClientCreate" type="EvaAnnounceClientCreateModuleData" />
  318. <xs:element name="EvaAnnounceSpecialPowerReadyClientUpdate" type="EvaAnnounceSpecialPowerReadyClientUpdateModuleData" />
  319. <xs:element name="LaserUpdate" type="LaserUpdateModuleData" />
  320. <xs:element name="RadarMarkerClientUpdate" type="RadarMarkerClientUpdateModuleData" />
  321. <xs:element name="LargeGroupAudioClientUpdate" type="LargeGroupAudioClientUpdateModuleData" />
  322. </xs:choice>
  323. </xs:complexType>
  324. <xs:complexType name="ClientBehaviorModules">
  325. <xs:choice minOccurs="0" maxOccurs="unbounded">
  326. <xs:element name="AnimationSoundClientBehavior" type="AnimationSoundClientBehaviorModuleData" />
  327. <xs:element name="ModelConditionAudioLoopClientBehavior" type="ModelConditionAudioLoopClientBehaviorModuleData" />
  328. <xs:element name="ModelConditionSoundSelectorClientBehavior" type="ModelConditionSoundSelectorClientBehaviorModuleData" />
  329. <xs:element name="RandomSoundSelectorClientBehavior" type="RandomSoundSelectorClientBehaviorModuleData" />
  330. <xs:element name="UpgradeSoundSelectorClientBehavior" type="UpgradeSoundSelectorClientBehaviorModuleData" />
  331. <xs:element name="ModelConditionEvaEventSelectorClientBehavior" type="ModelConditionEvaEventSelectorClientBehaviorModuleData" />
  332. </xs:choice>
  333. </xs:complexType>
  334. <xs:complexType name="AutoResolveInfo">
  335. <xs:sequence>
  336. </xs:sequence>
  337. <xs:attribute name="AutoResolveUnitType" type="xs:string" />
  338. <xs:attribute name="AutoResolveBody" type="Poid" xas:refType="ModuleData" />
  339. <xs:attribute name="AutoResolveArmor" type="ArmorRef" />
  340. <xs:attribute name="AutoResolveWeapon" type="WeaponRef" />
  341. <xs:attribute name="AutoResolveLeadership" type="xs:string" />
  342. <xs:attribute name="AutoResolveCombatChain" type="xs:string" />
  343. </xs:complexType>
  344. <xs:simpleType name="BuildPlacementType">
  345. <xs:restriction base="xs:string">
  346. <xs:enumeration value="INVALID" />
  347. <xs:enumeration value="MAIN_STRUCTURE" />
  348. <xs:enumeration value="OTHER_STRUCTURE" />
  349. <xs:enumeration value="TIBERIUM_FIELD" />
  350. <xs:enumeration value="BLOCKED" />
  351. </xs:restriction>
  352. </xs:simpleType>
  353. <xs:simpleType name="BuildableStatus" xas:useEnumPrefix="false" xas:enumItemPrefix="BSTATUS_" xas:targetNamespace="">
  354. <xs:restriction base="xs:string">
  355. <xs:enumeration value="YES" />
  356. <xs:enumeration value="IGNORE_PREREQUISITES" />
  357. <xs:enumeration value="NO" />
  358. <xs:enumeration value="ONLY_BY_AI" />
  359. </xs:restriction>
  360. </xs:simpleType>
  361. <xs:simpleType name="BuildPlacementTypeBitFlags">
  362. <xs:list itemType="BuildPlacementType">
  363. </xs:list>
  364. </xs:simpleType>
  365. <xs:complexType name="ProjectedBuildabilityInfo">
  366. <xs:sequence>
  367. <xs:element name="AllowedObjectFilter" type="ObjectFilter" minOccurs="0" maxOccurs="1" />
  368. </xs:sequence>
  369. <xs:attribute name="Radius" balance:field="Radius" type="SageReal" default="0" />
  370. <xs:attribute name="RadiusY" balance:field="RadiusY" type="SageReal" use="optional" /> <!-- This is used for to specify oblong buildability areas -->
  371. <xs:attribute name="BuildPlacementTypes" type="BuildPlacementTypeBitFlags" default="INVALID" />
  372. <xs:attribute name="StatusToReject" type="ObjectStatusBitFlags" />
  373. <xs:attribute name="ModelConditionsToReject" type="ModelConditionBitFlags" default="STRUCTURE_UNPACKING"/> <!-- In RA3 no structures provide buildability until fully unpacked -->
  374. <xs:attribute name="AllowedBuildabilityHeightVariation" type="SageReal" default="50.0"/>
  375. <xs:attribute name="PrimaryBuidability" type="SageBool" default="true"/> <!-- This is used to find the buildability that is representative of the area, and is used by the AI. The first one with this value is considered the primary info -->
  376. </xs:complexType>
  377. <xs:complexType name="ObjectResourceInfo">
  378. <xs:choice minOccurs="0" maxOccurs="unbounded">
  379. <xs:element name="BuildCost" type="MoneyTransaction" minOccurs="0" maxOccurs="unbounded" />
  380. </xs:choice>
  381. </xs:complexType>
  382. <xs:complexType name="GameObject" xas:runtimeWrapper="::ThingTemplate" xas:typeGroup="Tokenized">
  383. <xs:complexContent>
  384. <xs:extension base="BaseInheritableAsset">
  385. <xs:sequence>
  386. <xs:element name="DisplayName" type="xs:string" minOccurs="0" maxOccurs="1" XmlEdit:Category="Design" />
  387. <xs:element name="DisplayNameTransformed" type="xs:string" minOccurs="0" maxOccurs="1" XmlEdit:Category="Design" />
  388. <xs:element name="GameDependency" type="GameDependencyType" minOccurs="0" maxOccurs="1" />
  389. <xs:element name="ObjectResourceInfo" type="ObjectResourceInfo" minOccurs="0" maxOccurs="1" />
  390. <xs:element name="ArmorSet" balance:category="Armor Sets" type="ArmorTemplateSet" minOccurs="0" maxOccurs="unbounded" XmlEdit:Category="Design" />
  391. <xs:element name="LocomotorSet" balance:category="Locomotor Sets" type="LocomotorSet" minOccurs="0" maxOccurs="unbounded" XmlEdit:Category="Engineering" />
  392. <xs:element name="Buildable" type="BuildableStatus" minOccurs="0" default="YES" XmlEdit:Category="Engineering" />
  393. <xs:element name="ThingClass" type="ThingClassType" minOccurs="0" default="UNSPECIFIED" XmlEdit:Category="Engineering" />
  394. <xs:element name="BuildFadeInOnCreateList" type="StringList" minOccurs="0" XmlEdit:Category="Engineering" />
  395. <xs:element name="BuildVariations" type="StringList" minOccurs="0" XmlEdit:Category="Engineering" />
  396. <xs:element name="EquivalentTo" type="GameObjectWeakRef" minOccurs="0" maxOccurs="unbounded" XmlEdit:Category="Engineering" />
  397. <xs:element name="DisplayColor" type="Color4" minOccurs="0" XmlEdit:Category="Art" />
  398. <xs:element name="Flammability" type="Flammability" minOccurs="0" XmlEdit:Category="Design" />
  399. <xs:element name="SkirmishAIInformation" type="SkirmishAIInformation" minOccurs="0" maxOccurs="1" XmlEdit:Category="Design" />
  400. <xs:element name="Draws" type="DrawModules" minOccurs="0" XmlEdit:Category="Art" />
  401. <xs:element name="Behaviors" balance:category="Behaviors" type="BehaviorModules" minOccurs="0" XmlEdit:Category="Engineering" />
  402. <xs:element name="AI" type="AIModule" minOccurs="0" xas:byValue="true" XmlEdit:Category="Engineering" />
  403. <xs:element name="Body" balance:category="Body" type="BodyModule" minOccurs="1" XmlEdit:Category="Engineering" balance:snapshot="true"/>
  404. <xs:element name="ClientUpdates" type="ClientUpdateModules" minOccurs="0" XmlEdit:Category="Engineering" />
  405. <xs:element name="ClientBehaviors" type="ClientBehaviorModules" minOccurs="0" XmlEdit:Category="Engineering" />
  406. <xs:element name="Geometry" type="Geometry" minOccurs="0" XmlEdit:Category="Engineering" />
  407. <xs:element name="ReplaceModule" type="ReplaceModule" minOccurs="0" />
  408. <xs:element name="InheritableModule" type="InheritableModule" minOccurs="0" XmlEdit:Category="Engineering" />
  409. <xs:element name="AutoResolveArmor" type="AutoResolveArmor" minOccurs="0" XmlEdit:Category="Engineering" />
  410. <xs:element name="AutoResolveWeapon" type="AutoResolveWeapon" minOccurs="0" XmlEdit:Category="Engineering" />
  411. <xs:element name="FormationPreviewDecal" type="FormationPreviewDecal" minOccurs="0" XmlEdit:Category="Art" />
  412. <xs:element name="FormationPreviewItemDecal" type="FormationPreviewDecal" minOccurs="0" XmlEdit:Category="Art" />
  413. <xs:element name="LiveCameraOffset" type="Vector3" minOccurs="0" XmlEdit:Category="Engineering" />
  414. <xs:element name="AudioArrayVoice" type="AudioArrayVoice" minOccurs="0" maxOccurs="1" XmlEdit:Category="Audio" />
  415. <xs:element name="AudioArraySound" type="AudioArraySound" minOccurs="0" maxOccurs="1" XmlEdit:Category="Audio" />
  416. <xs:element name="EvaEventArray" type="EvaEventArray" minOccurs="0" maxOccurs="1" XmlEdit:Category="Audio" />
  417. <xs:element name="UpgradeCameo" type="xs:string" minOccurs="0" maxOccurs="5" XmlEdit:Category="Engineering" />
  418. <xs:element name="ShadowInfo" type="ShadowInfo" minOccurs="0" maxOccurs="1" XmlEdit:Category="Engineering" />
  419. <xs:element name="AutoResolveInfo" type="AutoResolveInfo" minOccurs="0" maxOccurs="1" />
  420. <xs:element name="VisionInfo" balance:category="VisionInfo" type="VisionInfo" minOccurs="0" maxOccurs="1" XmlEdit:Category="Design" />
  421. <xs:element name="CrusherInfo" balance:category="CrusherInfo" type="CrusherInfo" minOccurs="0" maxOccurs="1" XmlEdit:Category="Design" />
  422. <xs:element name="ProjectedBuildabilityInfo" balance:category="ProjectedBuildabilityInfo" type="ProjectedBuildabilityInfo" minOccurs="0" maxOccurs="unbounded" XmlEdit:Category="Design" />
  423. <xs:element name="DisplayUpgrade" type="UpgradeTemplateWeakRef" minOccurs="0" maxOccurs="2" XmlEdit:Category="Design" />
  424. </xs:sequence>
  425. <xs:attribute name="KindOf" type="KindOfBitFlags" XmlEdit:Category="Engineering" />
  426. <xs:attribute name="Browser" type="StringList" XmlEdit:Category="Design" />
  427. <xs:attribute name="Description" type="xs:string" XmlEdit:Category="Design" />
  428. <xs:attribute name="DescriptionTransformed" type="xs:string" XmlEdit:Category="Design" />
  429. <xs:attribute name="TypeDescription" type="xs:string" XmlEdit:Category="Design" />
  430. <xs:attribute name="TypeDescriptionTransformed" type="xs:string" XmlEdit:Category="Design" />
  431. <xs:attribute name="RadarPriority" type="RadarPriorityType" default="INVALID" XmlEdit:Category="Design" />
  432. <xs:attribute name="TransportSlotCount" type="xs:unsignedByte" default="0" XmlEdit:Category="Engineering" />
  433. <xs:attribute name="FenceWidth" type="SageReal" default="0" XmlEdit:Category="Engineering" />
  434. <xs:attribute name="FenceXOffset" type="SageReal" default="0" />
  435. <xs:attribute name="RemoveTerrainRadius" type="SageReal" default="0.0" />
  436. <xs:attribute name="EmotionRange" type="SageReal" default="0" XmlEdit:Category="Engineering" />
  437. <xs:attribute name="PlacementViewAngle" type="Angle" default="0r" XmlEdit:Category="Art" />
  438. <xs:attribute name="JustBuiltTime" type="Time" default="0s" />
  439. <xs:attribute name="FactoryExitWidth" type="SageReal" default="0.0" />
  440. <xs:attribute name="FactoryExtraBibWidth" type="SageReal" default="0.0" />
  441. <xs:attribute name="IsTrainable" type="SageBool" default="true" XmlEdit:Category="Engineering" />
  442. <xs:attribute name="Side" balance:filter="Side" type="PlayerTemplateWeakRef" XmlEdit:Category="Design" balance:snapshot="true"/>
  443. <xs:attribute name="EditorName" balance:field="Name" type="xs:string" />
  444. <xs:attribute name="EditorSorting" type="EditorSortingType" default="NONE" XmlEdit:Category="Design" balance:snapshot="true"/>
  445. <xs:attribute name="BountyValue" type="SageInt" default="0" XmlEdit:Category="Design" />
  446. <xs:attribute name="BuildTime" balance:field="Build Time" type="SageReal" default="0.0" XmlEdit:Category="Design" />
  447. <xs:attribute name="RefundValue" type="SageUnsignedShort" default="0" XmlEdit:Category="Design" />
  448. <xs:attribute name="EnergyProduction" balance:field="EnergyProduction" type="SageInt" default="0" XmlEdit:Category="Design" />
  449. <xs:attribute name="EnergyBonus" type="SageInt" default="0" XmlEdit:Category="Design" />
  450. <xs:attribute name="IsForbidden" type="SageBool" default="false" XmlEdit:Category="Engineering" />
  451. <xs:attribute name="IsPrerequisite" type="SageBool" default="false" XmlEdit:Category="Engineering" />
  452. <xs:attribute name="IsGrabbable" type="SageBool" default="false" XmlEdit:Category="Engineering" />
  453. <xs:attribute name="IsHarvestable" type="SageBool" default="false" XmlEdit:Category="Engineering" />
  454. <xs:attribute name="CommandSet" type="LogicCommandSetWeakRef" default="" XmlEdit:Category="Design" />
  455. <xs:attribute name="SelectPortrait" type="ImageWeakRef" default="" XmlEdit:Category="Art" />
  456. <xs:attribute name="SelectPortraitTransformed" type="ImageWeakRef" default="" XmlEdit:Category="Art" />
  457. <xs:attribute name="ButtonImage" type="ImageWeakRef" default="" XmlEdit:Category="Art" />
  458. <xs:attribute name="ButtonImageTransformed" type="ImageWeakRef" default="" XmlEdit:Category="Art" />
  459. <xs:attribute name="VoicePriority" type="SageInt" XmlEdit:Category="Audio" />
  460. <xs:attribute name="MinZIncreaseForVoiceMoveToHigherGround" type="SageReal" default="-1" XmlEdit:Category="Audio" />
  461. <xs:attribute name="CrowdResponse" type="CrowdResponseTemplateRef" XmlEdit:Category="Audio" />
  462. <xs:attribute name="CampnessValue" type="SageUnsignedInt" default="0" XmlEdit:Category="Audio" />
  463. <xs:attribute name="CampnessValueRadius" type="SageReal" default="600.0" XmlEdit:Category="Audio" />
  464. <xs:attribute name="Scale" type="SageReal" default="1.0" XmlEdit:Category="Art" />
  465. <xs:attribute name="HealthBoxHeightOffset" type="SageReal" default="10.0" XmlEdit:Category="Art" />
  466. <xs:attribute name="LiveCameraFXPitch" type="SageReal" default="0" XmlEdit:Category="Engineering" />
  467. <xs:attribute name="FormationWidth" type="SageInt" default="1" XmlEdit:Category="Design" />
  468. <xs:attribute name="FormationDepth" type="SageInt" default="1" XmlEdit:Category="Design" />
  469. <xs:attribute name="InstanceScaleFuzziness" type="SageReal" />
  470. <xs:attribute name="StructureRubbleHeight" type="SageReal" default="0" XmlEdit:Category="Engineering" />
  471. <xs:attribute name="MaxSimultaneousOfType" type="SageUnsignedShort" />
  472. <xs:attribute name="RamPower" type="SageInt" default="0" XmlEdit:Category="Engineering" />
  473. <xs:attribute name="RamZMult" type="SageReal" default="1.0" XmlEdit:Category="Engineering" />
  474. <xs:attribute name="ShockwaveResistance" type="SageReal" default="0" XmlEdit:Category="Design" />
  475. <xs:attribute name="CommandPoints" type="SageInt" default="0" XmlEdit:Category="Design" />
  476. <xs:attribute name="CommandPointBonus" type="SageInt" default="0" XmlEdit:Category="Design" />
  477. <!-- Todo: VoiceAttackChargeTimeout should be in seconds like everything else in the world; right now it is in logic frames. -->
  478. <xs:attribute name="VoiceAttackChargeTimeout" type="SageUnsignedInt" default="150" XmlEdit:Category="Audio" />
  479. <xs:attribute name="VoiceMoveLandToWaterTimeout" type="Time" default="5s" XmlEdit:Category="Audio" />
  480. <xs:attribute name="VoiceMoveWaterToLandTimeout" type="Time" default="5s" XmlEdit:Category="Audio" />
  481. <xs:attribute name="VoiceSelectUnderFireTimeout" type="Time" default="20s" XmlEdit:Category="Audio" />
  482. <xs:attribute name="VoiceSelectUnderFireDamageTime" type="Time" default="3s" XmlEdit:Category="Audio" />
  483. <xs:attribute name="MaxDistanceForEngaged" type="SageReal" default="150" XmlEdit:Category="Audio" />
  484. <!-- todo: EngagedStateTimeout should be in seconds like everything else in the world; right now it is in logic frames -->
  485. <xs:attribute name="EngagedStateTimeout" type="SageUnsignedInt" default="30" XmlEdit:Category="Audio" />
  486. <xs:attribute name="ThreatLevel" type="SageReal" default="1.0" XmlEdit:Category="Design" />
  487. <xs:attribute name="ForceLuaRegistration" type="SageBool" default="false" XmlEdit:Category="Engineering" />
  488. <xs:attribute name="KeepSelectableWhenDead" type="SageBool" default="false" XmlEdit:Category="Engineering" />
  489. <xs:attribute name="IsAutoBuilt" type="SageBool" default="false" XmlEdit:Category="Engineering" />
  490. <xs:attribute name="CanPathThroughGates" type="SageBool" default="true" XmlEdit:Category="Engineering" />
  491. <xs:attribute name="SlopeLimitIndex" type="SageUnsignedInt" default="0" XmlEdit:Category="Engineering" />
  492. <xs:attribute name="PathfindDiameter" type="SageReal" default="-1" XmlEdit:Category="Engineering" />
  493. <xs:attribute name="SupplyOverride" type="SageInt" default="0" XmlEdit:Category="Engineering" />
  494. <xs:attribute name="ExperienceScalarTable" type="xs:string" />
  495. <xs:attribute name="FiringArc" type="SageReal" default="360" XmlEdit:Category="Engineering" />
  496. <xs:attribute name="CamouflageDetectorLevel" type="SageInt" default="1" XmlEdit:Category="Design" />
  497. <xs:attribute name="SelectionPriority" type="SageInt" default="2147483647" XmlEdit:Category="Engineering" />
  498. <xs:attribute name="PathPriority" type="xs:int" default="25" XmlEdit:Category="Design"/>
  499. <xs:attribute name="ProductionQueueType" type="ProductionQueueType" default="INVALID" XmlEdit:Category="Design" />
  500. <xs:attribute name="BuildPlacementTypeFlag" type="BuildPlacementType" default="INVALID" XmlEdit:Category="Design" />
  501. <xs:attribute name="BuildInProximityToSamePlayerStucture" type="SageBool" default="true" XmlEdit:Category="Design" />
  502. <xs:attribute name="BuildOnRequiredObjectKindOf" type="KindOfBitFlags" XmlEdit:Category="Design" />
  503. <xs:attribute name="UnitCategory" balance:filter="Unit" type="UnitCategory" default="NONE" XmlEdit:Category="Design" />
  504. <xs:attribute name="WeaponCategory" balance:filter="Weapon" type="WeaponCategory" default="NONE" XmlEdit:Category="Design" />
  505. <xs:attribute name="HasFiredRecentlyTime" type="Time" default="2s" XmlEdit:Category="Design" />
  506. <xs:attribute name="UnitTypeIcon" type="UnitTypeIconRef" XmlEdit:Category="Design" />
  507. <xs:attribute name="ReinvisibilityDelay" type="Time" default="0.5s" XmlEdit:Category="Design" />
  508. <xs:attribute name="InvisibilityOpacityMin" type="SageReal" default="0.4" XmlEdit:Category="Engineering" />
  509. <xs:attribute name="InvisibilityOpacityMax" type="SageReal" default="0.9" XmlEdit:Category="Engineering" />
  510. <xs:attribute name="HealthBar" type="HealthBarTemplateWeakRef" XmlEdit:Category="Design" />
  511. <xs:attribute name="SubGroupPriority" type="SageInt" default="500" XmlEdit:Category="Design" />
  512. <xs:attribute name="EvaEventSecondDamageFarFromFirstScanRange" type="SageReal" default="200" />
  513. <xs:attribute name="EvaEventSecondDamageFarFromFirstTimeoutMS" type="DurationUnsignedInt" default="31000" />
  514. <xs:attribute name="UnitIntro" type="UnitIntroRef" XmlEdit:Category="Design" />
  515. </xs:extension>
  516. </xs:complexContent>
  517. </xs:complexType>
  518. <xs:simpleType name="DamageFXRef" xas:refType="DamageFX">
  519. <xs:restriction base="AssetReference" />
  520. </xs:simpleType>
  521. <xs:complexType name="ArmorType">
  522. <xs:sequence>
  523. </xs:sequence>
  524. <xs:attribute name="Conditions" type="xs:string" />
  525. <xs:attribute name="DamageFX" type="DamageFXRef" />
  526. </xs:complexType>
  527. <xs:complexType name="ArmorTemplateSet">
  528. <xs:sequence>
  529. </xs:sequence>
  530. <xs:attribute name="id" type="Poid" xas:pipelineOnly="true" />
  531. <xs:attribute name="Armor" balance:field="Armor" balance:category="Armor" type="AssetReference" xas:refType="ArmorTemplate" use="required" />
  532. <xs:attribute name="DamageFX" type="DamageFXRef" />
  533. <xs:attribute name="Conditions" type="ArmorSetBitFlags" />
  534. </xs:complexType>
  535. <xs:complexType name="LocomotorSet">
  536. <xs:sequence>
  537. </xs:sequence>
  538. <xs:attribute name="id" type="Poid" xas:pipelineOnly="true" />
  539. <xs:attribute name="Speed" balance:field="Speed" type="SageReal" />
  540. <xs:attribute name="Condition" balance:field="Condition" type="LocomotorSetType" />
  541. <xs:attribute name="Locomotor" balance:field="Locomotor" type="AssetReference" xas:refType="LocomotorTemplate" />
  542. </xs:complexType>
  543. <xs:complexType name="Flammability">
  544. <xs:sequence>
  545. </xs:sequence>
  546. <xs:attribute name="Fuel" type="SageUnsignedInt" default="0" />
  547. <xs:attribute name="MaxBurnRate" type="SageUnsignedInt" default="0" />
  548. <xs:attribute name="Decay" type="SageUnsignedInt" default="0" />
  549. <xs:attribute name="Resistance" type="SageUnsignedInt" default="0" />
  550. </xs:complexType>
  551. <xs:simpleType name="SkirmishAIBaseLocation">
  552. <xs:restriction base="xs:string">
  553. <xs:enumeration value="FRONT" />
  554. <xs:enumeration value="SIDE" />
  555. <xs:enumeration value="BACK" />
  556. <xs:enumeration value="SPREAD" />
  557. <xs:enumeration value="CENTER" />
  558. <xs:enumeration value="DEFENSE" />
  559. <xs:enumeration value="NEAR_RESOURCE_NODE" /> <!-- Type of resource given by NearResourceNodeType. -->
  560. </xs:restriction>
  561. </xs:simpleType>
  562. <xs:complexType name="SkirmishAIInformation">
  563. <xs:sequence>
  564. <xs:element name="AIContextualPower" type="AISpecialPowerInfo" minOccurs="0" maxOccurs="unbounded" />
  565. <!-- Only for structure placement. Note: For type NEAR_RESOURCE_NODE, this is used only if the refinery cannot be placed next
  566. to a resource node and just gets placed in a base like a normal building -->
  567. <xs:element name="ConstructionBaseSelectionCriteria" type="AIBaseSelectionCriteria" minOccurs="0" maxOccurs="1" />
  568. <!-- Only for NEAR_RESOURCE_NODE structure placement. We first place NEAR_RESOURCE_NODE buildings near resource
  569. nodes which are close to bases (and far from other refineries). The first base returned from this criteria
  570. is the one considered closest to the node, so the node closest to that base is the one that will be chosen.
  571. It is **HIGHLY** recommended that all NEAR_RESOURCE_NODE structures has this elements and that the SortOrder
  572. is always set to PREFER_CLOSEST. Otherwise very odd things will happen. -->
  573. <xs:element name="ResourceNodeBaseClosenessTestSelectionCriteria" type="AIBaseSelectionCriteria" minOccurs="0" maxOccurs="1" />
  574. <!-- Tells the MicroManager which units should try to dodge this object -->
  575. <xs:element name="DodgeWithUnits" type="ObjectFilter" minOccurs="0" maxOccurs="1"/>
  576. </xs:sequence>
  577. <xs:attribute name="BaseBuildingLocation" type="SkirmishAIBaseLocation" default="FRONT" />
  578. <xs:attribute name="AdditionalRotation" type="Angle" default="0r" />
  579. <xs:attribute name="BaseBuildingMaxNudges" type="SageInt" default="3" />
  580. <!-- BlockIfUnpackTargetBuildingCannotBeRebuilt: If the campaign UseStructureRebuild flag is on (only rebuild
  581. structures in the spots where the AI already had a building), AND this object is of type UNPACK_INTO_BUILDING,
  582. AND the BlockIfUnpackTargetBuildingCannotBeRebuilt is true, then refuse to construct this object if the
  583. building it unpacks into cannot be placed because no AI buildings of the appropriate type have been
  584. destroyed. This is mostly for the AlliedHarvester, which sets this to false so that it can be built
  585. even though there are no destroyed AlliedOutpost 'slots' available. -->
  586. <xs:attribute name="BlockIfUnpackTargetBuildingCannotBeRebuilt" type="SageBool" default="true" />
  587. <xs:attribute name="UnitBuilderStandardCombatUnit" type="xs:boolean" default="false" />
  588. <xs:attribute name="TargetDuringCrush" type="xs:boolean" default="false" />
  589. <xs:attribute name="CrushSpeedBonus" type="SageReal" default="0.0" />
  590. <!-- Used by AIMicroManager::DetermineTargetsFocusFire to worsen the score of targets out of range of their attacker.
  591. A higher value is a greater penalty making units prefer to not move to attack something more. Setting this
  592. below 1.0 would make out-of-range units appear BETTER. -->
  593. <xs:attribute name="OutOfRangePenalty" type="SageReal" default="1.3" />
  594. <xs:attribute name="ContainedMembersProvideWeapon" type="xs:boolean" default="false" />
  595. <xs:attribute name="ConquerMetricsOverrideDPS" type="xs:float" use="optional" />
  596. <xs:attribute name="ConquerMetricsOverrideDamageType" type="DamageType" default="UNDEFINED" />
  597. <xs:attribute name="ConquerMetricsOverrideAntiMask" type="WeaponAntiBitFlags" default="ANTI_GROUND ANTI_WATER" />
  598. <xs:attribute name="ConquerMetricsOverrideForbiddenAntiMask" type="WeaponAntiBitFlags" default="" />
  599. <xs:attribute name="ConquerMetricsOverrideDefendingAntiMask" type="WeaponAntiBitFlags" use="optional" />
  600. <xs:attribute name="ConquerMetricsDpsBonusAgainstDefenses" type="xs:float" default="1.0" />
  601. <xs:attribute name="NearResourceNodeType" type="EconomyResourceType" default="ORE" />
  602. <xs:attribute name="DodgeSafetyDistance" type="SageReal" default="300.0" />
  603. <!-- Usually, when trying to path 'to a target', we check if we can get to a circle at the min range of our weapon
  604. or to a circle at the max range. For some weapons, this doesn't make sense, so override the distances we use
  605. for the checks. For use when the weapon ranges are meaningless -->
  606. <xs:attribute name="OverrideInnerDistanceToTarget" type="SageReal" use="optional" />
  607. <xs:attribute name="OverrideOuterDistanceToTarget" type="SageReal" use="optional" />
  608. <xs:attribute name="CanFireUpCliffs" type="SageBool" default="false" />
  609. <xs:attribute name="DoesSecondaryDamage" type="SageBool" default="false" />
  610. </xs:complexType>
  611. <xs:complexType name="ReplaceModule">
  612. <xs:sequence>
  613. </xs:sequence>
  614. </xs:complexType>
  615. <xs:complexType name="InheritableModule">
  616. <xs:sequence>
  617. </xs:sequence>
  618. </xs:complexType>
  619. <xs:complexType name="AutoResolveArmor">
  620. <xs:sequence>
  621. <xs:element name="RequiredUpgrade" type="UpgradeTemplateWeakRef" minOccurs="0" maxOccurs="unbounded" />
  622. <xs:element name="ExcludedUpgrade" type="UpgradeTemplateWeakRef" minOccurs="0" maxOccurs="unbounded" />
  623. </xs:sequence>
  624. <xs:attribute name="Armor" type="ArmorRef" />
  625. </xs:complexType>
  626. <xs:complexType name="AutoResolveWeapon">
  627. <xs:sequence>
  628. <xs:element name="RequiredUpgrade" type="UpgradeTemplateWeakRef" minOccurs="0" maxOccurs="unbounded" />
  629. <xs:element name="ExcludedUpgrade" type="UpgradeTemplateWeakRef" minOccurs="0" maxOccurs="unbounded" />
  630. </xs:sequence>
  631. <xs:attribute name="Weapon" type="WeaponRef" />
  632. </xs:complexType>
  633. <xs:complexType name="FormationPreviewDecal">
  634. <xs:sequence>
  635. </xs:sequence>
  636. <xs:attribute name="Texture" type="AssetId" />
  637. <xs:attribute name="Width" type="SageReal" default="50.0" />
  638. <xs:attribute name="Height" type="SageReal" default="50.0" />
  639. </xs:complexType>
  640. <xs:simpleType name="Module">
  641. <xs:restriction base="xs:string" />
  642. </xs:simpleType>
  643. <xs:complexType name="VisionInfo">
  644. <xs:sequence>
  645. </xs:sequence>
  646. <xs:attribute name="VisionRange" balance:field="VisionRange" type="SageReal" default="0.00" />
  647. <xs:attribute name="ShroudClearingRange" balance:field="Shroud" type="SageReal" default="0.0" />
  648. <xs:attribute name="ShroudClearingHeight" balance:field="Shroud" type="SageReal" default="50.0" />
  649. <xs:attribute name="VisionSide" balance:field="VisionSide" type="Percentage" default="100" />
  650. <xs:attribute name="VisionRear" balance:field="VisionRear" type="Percentage" default="100" />
  651. <xs:attribute name="VisionBonusTestRadius" balance:field="VisionBonusTestRadius" type="SageReal" default="100" />
  652. <xs:attribute name="VisionBonusTestSegments" type="SageUnsignedInt" default="8" />
  653. <xs:attribute name="VisionBonusPercentPerFoot" balance:field="VisionBonusPercentPerFoot" type="Percentage" default="0" />
  654. <xs:attribute name="MaxVisionBonusPercent" balance:field="MaxVisionBonusPercent" type="Percentage" default="50" />
  655. <xs:attribute name="MinVisionBonusPercent" type="Percentage" default="-50" />
  656. </xs:complexType>
  657. <xs:complexType name="CrusherLevelModelConditionInfo">
  658. <xs:sequence></xs:sequence>
  659. <xs:attribute name="CrusherLevel" balance:field="CrusherLevel" type="xs:byte" default="0" />
  660. <xs:attribute name="CrushableLevel" balance:field="CrushableLevel" type="xs:byte" default="127" />
  661. <xs:attribute name="ModelConditionMatch" type="ModelConditionFlagType" use="required" />
  662. </xs:complexType>
  663. <xs:complexType name="CrusherInfo">
  664. <xs:sequence>
  665. <xs:element name="ExtraCrushLevels" type="CrusherLevelModelConditionInfo" minOccurs="0" maxOccurs="unbounded"/>
  666. </xs:sequence>
  667. <xs:attribute name="id" type="Poid" xas:pipelineOnly="true"/>
  668. <xs:attribute name="CrusherLevel" balance:field="CrusherLevel" type="xs:byte" default="0" />
  669. <xs:attribute name="CrushableLevel" balance:field="CrushableLevel" type="xs:byte" default="127" />
  670. <xs:attribute name="CrushKnockback" type="SageInt" default="0" />
  671. <xs:attribute name="CrushZFactor" type="SageReal" default="1" />
  672. <xs:attribute name="CrushEqualLevelProps" type="SageBool" default="false" />
  673. <xs:attribute name="UseCrushAttack" type="SageBool" default="true" />
  674. <xs:attribute name="CrushOnlyWhileCharging" type="SageBool" default="false" />
  675. <xs:attribute name="MinCrushVelocityPercent" type="Percentage" default="1" />
  676. <xs:attribute name="CrushDecelerationPercent" type="Percentage" default="0" />
  677. <xs:attribute name="CrushAllies" type="SageBool" default="false" />
  678. <xs:attribute name="CrushWeapon" type="WeaponRef" XmlEdit:Category="Engineering" />
  679. <xs:attribute name="CrushWhileStationary" type="SageBool" default="false" XmlEdit:Category="Engineering" />
  680. </xs:complexType>
  681. <xs:complexType name="DrawModules">
  682. <xs:choice minOccurs="0" maxOccurs="unbounded">
  683. <xs:element name="ScriptedModelDraw" type="W3DScriptedModelDrawModuleData" />
  684. <xs:element name="TankDraw" type="W3DTankDrawModuleData" />
  685. <xs:element name="TruckDraw" type="W3DTruckDrawModuleData" />
  686. <xs:element name="PropDraw" type="W3DPropDrawModuleData" />
  687. <xs:element name="LaserDraw" type="W3DLaserDrawModuleData" />
  688. <xs:element name="StreamDraw" type="W3DStreamDrawModuleData" />
  689. <xs:element name="TracerModelDraw" type="W3DTracerDrawModuleData" />
  690. <xs:element name="SpotlightDraw" type="W3DSpotlightDrawModuleData" />
  691. <xs:element name="DynamicsDraw" type="W3DDynamicsDrawModuleData" />
  692. </xs:choice>
  693. </xs:complexType>
  694. </xs:schema>