WeaponSetUpdate.xsd 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  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:balance="uri:ea.com:eala:balance" xmlns:at="uri:ea.com:eala:asset:type" xmlns:xas="uri:ea.com:eala:asset:schema" targetNamespace="uri:ea.com:eala:asset" elementFormDefault="qualified" xmlns:XmlEdit="http://tempuri.org/XmlEdit.xsd">
  3. <xs:simpleType name="WeaponChoiceCriteria">
  4. <xs:restriction base="xs:string">
  5. <!-- choose the weapon that will do the most damage -->
  6. <xs:enumeration value="PREFER_MOST_DAMAGE" />
  7. <!-- choose the weapon with the longest range (that will do nonzero damage) -->
  8. <xs:enumeration value="PREFER_LONGEST_RANGE" />
  9. <!-- choose the weapon that has a grab nugget, or failing that, the one with the most damage -->
  10. <xs:enumeration value="PREFER_GRAB_OVER_DAMAGE" />
  11. <!-- choose the weapon that results in having to move the least to get in range (ie, longest range weapon when far away, melee weapon when close) -->
  12. <xs:enumeration value="PREFER_LEAST_MOVEMENT" />
  13. <!-- choose a weapon randomly from all weapons in the set that can currently be used -->
  14. <xs:enumeration value="SELECT_AT_RANDOM" />
  15. <!-- use default weapon choice critera set in the WeaponSet -->
  16. <xs:enumeration value="USE_WEAPONSET_DEFAULT_CRITERIA" />
  17. </xs:restriction>
  18. </xs:simpleType>
  19. <xs:complexType name="WeaponSlot_WeaponData">
  20. <xs:sequence></xs:sequence>
  21. <xs:attribute name="Ordering" type="WeaponSlotType" />
  22. <xs:attribute name="Template" balance:field="Template" balance:category="Template" type="WeaponRef" />
  23. <xs:attribute name="Upgrade" type="UpgradeTemplateRef" />
  24. <xs:attribute name="ObjectStatus" type="ObjectStatusBitFlags" default=""/>
  25. <xs:attribute name="ForbiddenObjectStatus" type="ObjectStatusBitFlags" default=""/>
  26. <xs:attribute name="IsPlayerUpgradePermanent" type="SageBool" default="false" />
  27. <!-- Tells the SkirmishAI to always count this weapon's damage in the template calculation regardless of any upgrades or object status requirements -->
  28. <xs:attribute name="ConquerMetricsAlwaysCount" type="SageBool" default="false" />
  29. </xs:complexType><xs:simpleType name="WeaponSlotInterleavedStyleType">
  30. <xs:restriction base="xs:string">
  31. <xs:enumeration value="INTERLEAVE_FIRST_AVAILABLE" />
  32. <xs:enumeration value="INTERLEAVE_RANDOM" />
  33. </xs:restriction>
  34. </xs:simpleType>
  35. <xs:complexType name="WeaponSlot_Hardpoint" xas:isPolymorphic="true">
  36. <xs:sequence>
  37. <xs:element name="Weapon" balance:category="Weapon" type="WeaponSlot_WeaponData" minOccurs="0" maxOccurs="unbounded" xas:sortBy="Ordering"/>
  38. <!-- WeaponSlot expects this to be sorted -->
  39. </xs:sequence>
  40. <xs:attribute name="ID" type="SageUnsignedInt" />
  41. <xs:attribute name="AllowInterleavedFiring" type="SageBool" default="false" />
  42. <xs:attribute name="InterleavedStyle" type="WeaponSlotInterleavedStyleType" default="INTERLEAVE_RANDOM" />
  43. <xs:attribute name="WeaponChoiceCriteria" type="WeaponChoiceCriteria" default="PREFER_MOST_DAMAGE" />
  44. <xs:attribute name="AutoChooseWeapon" type="SageBool" default="true" />
  45. </xs:complexType>
  46. <xs:complexType name="WeaponSlot_Turret">
  47. <xs:complexContent>
  48. <xs:extension base="WeaponSlot_Hardpoint">
  49. <xs:sequence>
  50. <xs:element name="TurretSettings" balance:category="TurretSettings" type="TurretAIData" minOccurs="1" maxOccurs="1" />
  51. </xs:sequence>
  52. <!-- Can this weapon force it's owning object to rotate to maintain firing arc at a target -->
  53. <xs:attribute name="ForceRotateObjectToMaintainFiringArc" type="SageBool" default="true" />
  54. </xs:extension>
  55. </xs:complexContent>
  56. </xs:complexType>
  57. <xs:complexType name="WeaponSlot_HierarchicalTurret">
  58. <xs:complexContent>
  59. <xs:extension base="WeaponSlot_Turret">
  60. <xs:sequence>
  61. </xs:sequence>
  62. <xs:attribute name="ParentID" type="SageUnsignedInt" default="0" />
  63. </xs:extension>
  64. </xs:complexContent>
  65. </xs:complexType>
  66. <xs:complexType name="WeaponSlot_Contained">
  67. <xs:complexContent>
  68. <xs:extension base="WeaponSlot_Hardpoint">
  69. <xs:sequence>
  70. </xs:sequence>
  71. </xs:extension>
  72. </xs:complexContent>
  73. </xs:complexType>
  74. <xs:complexType name="WeaponSetUpdateModuleData">
  75. <xs:complexContent>
  76. <xs:extension base="UpdateModuleData">
  77. <xs:sequence>
  78. <xs:element balance:category="WeaponSlot" name="WeaponSlotHardpoint" type="WeaponSlot_Hardpoint" minOccurs="0" maxOccurs="unbounded" />
  79. <xs:element balance:category="WeaponSlot" name="WeaponSlotTurret" type="WeaponSlot_Turret" minOccurs="0" maxOccurs="unbounded" />
  80. <xs:element balance:category="WeaponSlot" name="WeaponSlotHierarchicalTurret" type="WeaponSlot_HierarchicalTurret" minOccurs="0" maxOccurs="unbounded" />
  81. <xs:element balance:category="WeaponSlot" name="WeaponSlotContained" type="WeaponSlot_Contained" minOccurs="0" maxOccurs="unbounded" />
  82. </xs:sequence>
  83. <xs:attribute name="ActiveWhenDisabledBy" type="DisabledBitFlags" default="HELD" />
  84. </xs:extension>
  85. </xs:complexContent>
  86. </xs:complexType>
  87. </xs:schema>