UIComponentLobby.xsd 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <xs:schema
  3. xmlns:xs="http://www.w3.org/2001/XMLSchema"
  4. xmlns="uri:ea.com:eala:asset"
  5. xmlns:at="uri:ea.com:eala:asset:type"
  6. xmlns:xas="uri:ea.com:eala:asset:schema"
  7. targetNamespace="uri:ea.com:eala:asset"
  8. elementFormDefault="qualified"
  9. xmlns:XmlEdit="http://tempuri.org/XmlEdit.xsd">
  10. <xs:include schemaLocation="../Includes/UIBaseComponent.xsd"/>
  11. <xs:include schemaLocation="../Includes/FactionType.xsd"/>
  12. <!-- Type definitions for things used by UIComponentLobby -->
  13. <xs:include schemaLocation="MultiplayerCommonUIData.xsd"/>
  14. <xs:simpleType name="SlotStateType"
  15. xas:useEnumPrefix="true"
  16. xas:enumItemPrefix="SLOT_STATE_"
  17. xas:targetNamespace="Sage::UI::Joypad">
  18. <xs:restriction base="xs:string">
  19. <!-- These states need to correspond to the slot states defined in code in GameInfo.h -->
  20. <xs:enumeration value="OPEN" />
  21. <xs:enumeration value="CLOSED" />
  22. <xs:enumeration value="PRIVATE" />
  23. <xs:enumeration value="AI" />
  24. </xs:restriction>
  25. </xs:simpleType>
  26. <xs:complexType name="SlotState">
  27. <xs:attribute name="Label" type="xs:string" />
  28. <xs:attribute name="Value" type="SlotStateType"/>
  29. <xs:attribute name="AvailableInRanked" type="SageBool" default="true"/>
  30. <xs:attribute name="AvailableInModerated" type="SageBool" default="true"/>
  31. </xs:complexType>
  32. <xs:simpleType name="AIDifficultyValue"
  33. xas:useEnumPrefix="true"
  34. xas:enumItemPrefix="AI_"
  35. xas:targetNamespace="Sage::UI::Joypad">
  36. <xs:restriction base="xs:string">
  37. <!-- These states need to correspond to the slot states defined in code in GameInfo.h -->
  38. <xs:enumeration value="EASY" />
  39. <xs:enumeration value="MEDIUM" />
  40. <xs:enumeration value="HARD" />
  41. <xs:enumeration value="BRUTAL" />
  42. </xs:restriction>
  43. </xs:simpleType>
  44. <xs:complexType name="AIDifficultySetting">
  45. <xs:attribute name="Label" type="xs:string" />
  46. <xs:attribute name="Value" type="AIDifficultyValue"/>
  47. </xs:complexType>
  48. <xs:complexType name="TeamSetting">
  49. <xs:attribute name="Label" type="xs:string" />
  50. <xs:attribute name="Value" type="SageInt"/>
  51. </xs:complexType>
  52. <xs:complexType name="GameTimeSetting">
  53. <xs:attribute name="Label" type="xs:string" />
  54. <xs:attribute name="Value" type="SageInt"/>
  55. <xs:attribute name="Default" type="SageBool" default="false"/>
  56. <xs:attribute name="MinGameTimeValue" type="SageInt" default="0"/>
  57. </xs:complexType>
  58. <xs:complexType name="GameResourcesSetting">
  59. <xs:attribute name="Value" type="SageInt"/>
  60. <xs:attribute name="Default" type="SageBool" default="false"/>
  61. </xs:complexType>
  62. <xs:complexType name="GamePointsSetting">
  63. <xs:attribute name="Value" type="SageInt"/>
  64. <xs:attribute name="Default" type="SageBool" default="false"/>
  65. </xs:complexType>
  66. <xs:complexType name="GameFlagsSetting">
  67. <xs:attribute name="Value" type="SageInt"/>
  68. <xs:attribute name="Default" type="SageBool" default="false"/>
  69. </xs:complexType>
  70. <!-- Structure for MP lobby exclusive options. -->
  71. <xs:complexType name="MultiplayerLobbyData">
  72. <xs:sequence>
  73. <xs:element name="LobbyTitleLabelSpec" type="xs:string" minOccurs="1" maxOccurs="1"/>
  74. <xs:element name="UnmoderatedLobbyTitleTemplateSpec" type="xs:string" minOccurs="1" maxOccurs="1"/>
  75. <xs:element name="ModeratedLobbyTitleTemplateSpec" type="xs:string" minOccurs="1" maxOccurs="1"/>
  76. <xs:element name="PlayerNameLabelSpec" type="xs:string" minOccurs="1" maxOccurs="1"/>
  77. <xs:element name="SlotLabelSpec" type="xs:string" minOccurs="1" maxOccurs="1"/>
  78. <xs:element name="SlotState" type="SlotState" minOccurs="0" maxOccurs="unbounded"/>
  79. </xs:sequence>
  80. </xs:complexType>
  81. <!-- Structure for Skirmish lobby exclusive options. -->
  82. <xs:complexType name="SkirmishLobbyData">
  83. <xs:sequence>
  84. <xs:element name="LoadMusic" type="xs:string" minOccurs="1" maxOccurs="1"/>
  85. <xs:element name="SlotLabelSpec" type="xs:string" minOccurs="1" maxOccurs="1"/>
  86. <xs:element name="SlotState" type="SlotState" minOccurs="0" maxOccurs="unbounded"/>
  87. </xs:sequence>
  88. </xs:complexType>
  89. <!-- Definition of the UI Component -->
  90. <xs:complexType name="UIComponentLobby">
  91. <xs:complexContent>
  92. <xs:extension base="UIBaseComponent">
  93. <xs:sequence>
  94. <!-- Label for the localized string for 'Random'. Didn't want to hardcode this in the lobby. -->
  95. <xs:element name="RandomStringLabel" type="xs:string" minOccurs="1" maxOccurs="1"/>
  96. <!-- Label spec's are used to set the contents of Apt strings. Better to put it here than hard code it. -->
  97. <xs:element name="FactionLabelSpec" type="xs:string" minOccurs="1" maxOccurs="1"/>
  98. <xs:element name="AIPersonalityLabelSpec" type="xs:string" minOccurs="1" maxOccurs="1"/>
  99. <xs:element name="AIDifficultyLabelSpec" type="xs:string" minOccurs="1" maxOccurs="1"/>
  100. <xs:element name="TeamLabelSpec" type="xs:string" minOccurs="1" maxOccurs="1"/>
  101. <xs:element name="MapListSpec" type="xs:string" minOccurs="1" maxOccurs="1"/>
  102. <xs:element name="GameplayTypeSpec" type="xs:string" minOccurs="1" maxOccurs="1"/>
  103. <xs:element name="GameTimeLimitSpec" type="xs:string" minOccurs="1" maxOccurs="1"/>
  104. <xs:element name="GameResourcesSpec" type="xs:string" minOccurs="1" maxOccurs="1"/>
  105. <xs:element name="HillTimeSpec" type="xs:string" minOccurs="1" maxOccurs="1"/>
  106. <xs:element name="CapturePointsSpec" type="xs:string" minOccurs="1" maxOccurs="1"/>
  107. <xs:element name="BarrierTimeSpec" type="xs:string" minOccurs="1" maxOccurs="1"/>
  108. <xs:element name="CaptureFlagsSpec" type="xs:string" minOccurs="1" maxOccurs="1"/>
  109. <!-- These setting lists are used to populate the lobby UI with options the player can choose from. -->
  110. <xs:element name="Faction" type="FactionType" minOccurs="0" maxOccurs="unbounded"/>
  111. <xs:element name="AIDifficulty" type="AIDifficultySetting" minOccurs="0" maxOccurs="unbounded"/>
  112. <xs:element name="Team" type="TeamSetting" minOccurs="0" maxOccurs="unbounded"/>
  113. <xs:element name="GameType" type="GameplayTypeSetting" minOccurs="0" maxOccurs="unbounded"/>
  114. <xs:element name="GameTime" type="GameTimeSetting" minOccurs="0" maxOccurs="unbounded"/>
  115. <xs:element name="GameResources" type="GameResourcesSetting" minOccurs="0" maxOccurs="unbounded"/>
  116. <xs:element name="HillTime" type="GameTimeSetting" minOccurs="0" maxOccurs="unbounded"/>
  117. <xs:element name="BarrierTime" type="GameTimeSetting" minOccurs="0" maxOccurs="unbounded"/>
  118. <xs:element name="CapturePoints" type="GamePointsSetting" minOccurs="0" maxOccurs="unbounded"/>
  119. <xs:element name="CaptureFlags" type="GameFlagsSetting" minOccurs="0" maxOccurs="unbounded"/>
  120. <!-- MP lobby exclusive data. -->
  121. <xs:element name="MultiplayerLobbySettings" type="MultiplayerLobbyData" minOccurs="1" maxOccurs="1"/>
  122. <!-- Skirmish lobby exclusive data. -->
  123. <xs:element name="SkirmishLobbySettings" type="SkirmishLobbyData" minOccurs="1" maxOccurs="1"/>
  124. </xs:sequence>
  125. </xs:extension>
  126. </xs:complexContent>
  127. </xs:complexType>
  128. </xs:schema>