RegisteredObjectSets.xml 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <AssetDeclaration xmlns="uri:ea.com:eala:asset">
  3. <Includes>
  4. <Include
  5. type="all"
  6. source="DATA:GlobalData/GlobalDefines.xml" />
  7. </Includes>
  8. <RegisteredObjectSet
  9. id="PlayerEverythingROS"
  10. SetId="PLAYER_EVERYTHING"
  11. Type="PLAYER">
  12. <ObjectFilter
  13. Rule="ALL"
  14. Exclude="INERT">
  15. </ObjectFilter>
  16. </RegisteredObjectSet>
  17. <RegisteredObjectSet
  18. id="GarrisonsROS"
  19. SetId="GARRISONS"
  20. Type="GLOBAL">
  21. <ObjectFilter
  22. Rule="ANY"
  23. Include="GARRISON">
  24. </ObjectFilter>
  25. </RegisteredObjectSet>
  26. <RegisteredObjectSet
  27. id="TechBuildingsROS"
  28. SetId="NEUTRAL_TECH"
  29. Type="GLOBAL">
  30. <ObjectFilter
  31. Rule="ANY"
  32. Include="CAPTUREFLAG NEUTRAL_TECH"/>
  33. </RegisteredObjectSet>
  34. <RegisteredObjectSet
  35. id="PlayerTechBuildingsROS"
  36. SetId="PLAYER_NEUTRAL_TECH"
  37. Type="PLAYER">
  38. <ObjectFilter
  39. Rule="ANY"
  40. Include="CAPTUREFLAG NEUTRAL_TECH"
  41. Relationship="SAME_PLAYER" />
  42. </RegisteredObjectSet>
  43. <RegisteredObjectSet
  44. id="StructuresROS"
  45. SetId="STRUCTURES"
  46. Type="PLAYER">
  47. <ObjectFilter
  48. Rule="ANY"
  49. Include="STRUCTURE BEACON"
  50. Relationship="SAME_PLAYER" />
  51. </RegisteredObjectSet>
  52. <RegisteredObjectSet
  53. id="FactionStructuresROS"
  54. SetId="FACTION_STRUCTURES"
  55. Type="PLAYER">
  56. <ObjectFilter
  57. Rule="ANY"
  58. Include="STRUCTURE"
  59. Exclude="GARRISON NEUTRAL_TECH"
  60. Relationship="SAME_PLAYER" />
  61. </RegisteredObjectSet>
  62. <!-- Things the SkirmishAI cares about defending -->
  63. <RegisteredObjectSet
  64. id="SkirmishAIDefenseTargetsROS"
  65. SetId="SKIRMISH_AI_DEFENSE_TARGETS"
  66. Type="PLAYER">
  67. <ObjectFilter
  68. Rule="ANY"
  69. Include="STRUCTURE HARVESTER UNPACKS_INTO_BUILDING"
  70. Exclude="GARRISON"
  71. Relationship="SAME_PLAYER" />
  72. </RegisteredObjectSet>
  73. <RegisteredObjectSet
  74. id="SkirmishAIThreatsToDodgeROS"
  75. SetId="SKIRMISH_AI_THREATS_TO_DODGE"
  76. Type="GLOBAL">
  77. <ObjectFilter
  78. Rule="NONE"
  79. Include="SKIRMISH_AI_ATTEMPT_TO_DODGE"/>
  80. </RegisteredObjectSet>
  81. <!-- These are units that the AI can pretty much recruit onto any team and have them move and shoot as normal with competent behavior.
  82. Units like aircraft that have to reload have more unusual behavior and tend to not work well when mixed with "normal" units. -->
  83. <RegisteredObjectSet
  84. id="SkirmishAINormalCombatUnitsROS"
  85. SetId="SKIRMISH_AI_NORMAL_COMBAT_UNITS"
  86. Type="PLAYER">
  87. <ObjectFilter
  88. Rule="NONE"
  89. Include="CAN_ATTACK SELECTABLE"
  90. Exclude="STRUCTURE IGNORES_SELECT_ALL HARVESTER ENGINEER UNPACKS_INTO_BUILDING"
  91. Relationship="SAME_PLAYER">
  92. <ExcludeThing>AlliedFighterAircraft</ExcludeThing>
  93. <ExcludeThing>AlliedAntiGroundAircraft</ExcludeThing>
  94. <ExcludeThing>AlliedBomberAircraft</ExcludeThing>
  95. <ExcludeThing>SovietFighterAircraft</ExcludeThing>
  96. </ObjectFilter>
  97. </RegisteredObjectSet>
  98. <RegisteredObjectSet
  99. id="BeaconsROS"
  100. SetId="BEACONS"
  101. Type="PLAYER">
  102. <ObjectFilter
  103. Rule="ANY"
  104. Include="BEACON"
  105. Relationship="ALLIES" />
  106. </RegisteredObjectSet>
  107. <RegisteredObjectSet
  108. id="UnitsROS"
  109. SetId="UNITS"
  110. Type="PLAYER">
  111. <ObjectFilter
  112. Rule="ANY"
  113. Include="SELECTABLE"
  114. Exclude="STRUCTURE"
  115. Relationship="SAME_PLAYER" />
  116. </RegisteredObjectSet>
  117. <RegisteredObjectSet
  118. id="UnitsAndStructuresROS"
  119. SetId="UNITS_AND_STRUCTURES"
  120. Type="PLAYER">
  121. <ObjectFilter
  122. Rule="ANY"
  123. Include="SELECTABLE STRUCTURE BEACON"
  124. Relationship="SAME_PLAYER" />
  125. </RegisteredObjectSet>
  126. <RegisteredObjectSet
  127. id="VictoryConditionStructuresROS"
  128. SetId="VICTORY_CONDITION_STRUCTURES"
  129. Type="PLAYER">
  130. <ObjectFilter
  131. Rule="ANY"
  132. Include="STRUCTURE"
  133. Exclude="FS_BASE_DEFENSE NEUTRAL_TECH GARRISON BEACON CIVILIAN_BUILDING IGNORE_FOR_VICTORY"
  134. Relationship="SAME_PLAYER" />
  135. </RegisteredObjectSet>
  136. <RegisteredObjectSet
  137. id="HarvestersROS"
  138. SetId="HARVESTERS"
  139. Type="PLAYER">
  140. <ObjectFilter
  141. Rule="ANY"
  142. Include="HARVESTER"
  143. Relationship="SAME_PLAYER" />
  144. </RegisteredObjectSet>
  145. <RegisteredObjectSet
  146. id="SurveyorROS"
  147. SetId="SURVEYORS"
  148. Type="PLAYER">
  149. <ObjectFilter
  150. Rule="ANY"
  151. Include="EXPANSION_UNIT"
  152. Relationship="SAME_PLAYER" />
  153. </RegisteredObjectSet>
  154. <RegisteredObjectSet
  155. id="OutpostROS"
  156. SetId="OUTPOSTS"
  157. Type="PLAYER">
  158. <ObjectFilter
  159. Rule="ANY"
  160. Include="OUTPOST"
  161. Relationship="SAME_PLAYER" />
  162. </RegisteredObjectSet>
  163. <RegisteredObjectSet
  164. id="GlobalHarvestersROS"
  165. SetId="GLOBAL_HARVESTERS"
  166. Type="GLOBAL">
  167. <ObjectFilter
  168. Rule="ANY"
  169. Include="HARVESTER" />
  170. </RegisteredObjectSet>
  171. <RegisteredObjectSet
  172. id="TiberiumFieldROS"
  173. SetId="TIBERIUM_FIELDS"
  174. Type="GLOBAL">
  175. <ObjectFilter
  176. Rule="NONE"/>
  177. </RegisteredObjectSet>
  178. <RegisteredObjectSet
  179. id="OreMineROS"
  180. SetId="ORE_MINES"
  181. Type="GLOBAL">
  182. <ObjectFilter
  183. Rule="ANY"
  184. Include="ORE_NODE">
  185. </ObjectFilter>
  186. </RegisteredObjectSet>
  187. <RegisteredObjectSet
  188. id="SigmaFieldROS"
  189. SetId="SIGMA_FIELDS"
  190. Type="GLOBAL">
  191. <ObjectFilter
  192. Rule="NONE"/>
  193. </RegisteredObjectSet>
  194. <RegisteredObjectSet
  195. id="InfantryROS"
  196. SetId="INFANTRY"
  197. Type="PLAYER">
  198. <ObjectFilter
  199. Rule="ANY"
  200. Include="INFANTRY"
  201. Relationship="SAME_PLAYER" />
  202. </RegisteredObjectSet>
  203. <RegisteredObjectSet
  204. id="VehiclesROS"
  205. SetId="VEHICLES"
  206. Type="PLAYER">
  207. <ObjectFilter
  208. Rule="ANY"
  209. Include="VEHICLE"
  210. Relationship="SAME_PLAYER" />
  211. </RegisteredObjectSet>
  212. <RegisteredObjectSet
  213. id="ShipsROS"
  214. SetId="SHIPS"
  215. Type="PLAYER">
  216. <ObjectFilter
  217. Rule="ANY"
  218. Include="SHIP"
  219. Exclude="UNATTACKABLE STRUCTURE"
  220. Relationship="SAME_PLAYER" />
  221. </RegisteredObjectSet>
  222. <RegisteredObjectSet
  223. id="AircraftROS"
  224. SetId="AIRCRAFT"
  225. Type="PLAYER">
  226. <ObjectFilter
  227. Rule="ANY"
  228. Include="AIRCRAFT"
  229. Relationship="SAME_PLAYER" />
  230. </RegisteredObjectSet>
  231. <RegisteredObjectSet
  232. id="DozersROS"
  233. SetId="DOZERS"
  234. Type="PLAYER">
  235. <ObjectFilter
  236. Rule="ANY"
  237. Include="DOZER"
  238. Relationship="SAME_PLAYER" />
  239. </RegisteredObjectSet>
  240. <RegisteredObjectSet
  241. id="HordesROS"
  242. SetId="HORDES"
  243. Type="PLAYER">
  244. <ObjectFilter
  245. Rule="ANY"
  246. Include="HORDE"
  247. Relationship="SAME_PLAYER" />
  248. </RegisteredObjectSet>
  249. <RegisteredObjectSet
  250. id="HordeMembersROS"
  251. SetId="HORDE_MEMBERS"
  252. Type="PLAYER">
  253. <ObjectFilter
  254. Rule="ANY"
  255. Include="CAN_ATTACK INFANTRY VEHICLE"
  256. Exclude="UNATTACKABLE STRUCTURE IMMOBILE SHIP"
  257. StatusBitFlags="HORDE_MEMBER"
  258. Relationship="SAME_PLAYER" />
  259. </RegisteredObjectSet>
  260. <RegisteredObjectSet
  261. id="UnpacksIntoBuildingUnitsROS"
  262. SetId="UNPACKS_INTO_BUILDING_UNITS"
  263. Type="PLAYER">
  264. <ObjectFilter
  265. Rule="ANY"
  266. Include="UNPACKS_INTO_BUILDING"
  267. Relationship="SAME_PLAYER" />
  268. </RegisteredObjectSet>
  269. <RegisteredObjectSet
  270. id="RefineriesROS"
  271. SetId="REFINERIES"
  272. Type="PLAYER">
  273. <ObjectFilter
  274. Rule="ANY"
  275. Include="SUPPLY_GATHERING_CENTER"
  276. Relationship="SAME_PLAYER" />
  277. </RegisteredObjectSet>
  278. <RegisteredObjectSet
  279. id="RefineriesAndRefineryEggsROS"
  280. SetId="REFINERIES_AND_REFINERY_EGGS"
  281. Type="PLAYER">
  282. <ObjectFilter
  283. Rule="ANY"
  284. Include="SUPPLY_GATHERING_CENTER"
  285. Relationship="SAME_PLAYER" >
  286. <IncludeThing>JapanRefineryEgg</IncludeThing>
  287. </ObjectFilter>
  288. </RegisteredObjectSet>
  289. <RegisteredObjectSet
  290. id="TiberiumRefineriesROS"
  291. SetId="TIBERIUM_REFINERIES"
  292. Type="PLAYER">
  293. <ObjectFilter
  294. Rule="NONE" >
  295. </ObjectFilter>
  296. </RegisteredObjectSet>
  297. <RegisteredObjectSet
  298. id="GlobalTiberiumRefineriesROS"
  299. SetId="GLOBAL_TIBERIUM_REFINERIES"
  300. Type="GLOBAL">
  301. <ObjectFilter
  302. Rule="NONE" >
  303. </ObjectFilter>
  304. </RegisteredObjectSet>
  305. <RegisteredObjectSet
  306. id="OreRefineriesROS"
  307. SetId="ORE_REFINERIES"
  308. Type="PLAYER">
  309. <ObjectFilter
  310. Rule="ANY"
  311. Relationship="SAME_PLAYER" >
  312. <IncludeThing>AlliedRefinery</IncludeThing>
  313. <IncludeThing>SovietRefinery</IncludeThing>
  314. <IncludeThing>JapanRefinery</IncludeThing>
  315. </ObjectFilter>
  316. </RegisteredObjectSet>
  317. <RegisteredObjectSet
  318. id="GlobalOreRefineriesROS"
  319. SetId="GLOBAL_ORE_REFINERIES"
  320. Type="GLOBAL">
  321. <ObjectFilter
  322. Rule="ANY" >
  323. <IncludeThing>AlliedRefinery</IncludeThing>
  324. <IncludeThing>SovietRefinery</IncludeThing>
  325. <IncludeThing>JapanRefinery</IncludeThing>
  326. </ObjectFilter>
  327. </RegisteredObjectSet>
  328. <RegisteredObjectSet
  329. id="SigmaRefineriesROS"
  330. SetId="SIGMA_REFINERIES"
  331. Type="PLAYER">
  332. <ObjectFilter
  333. Rule="NONE" >
  334. </ObjectFilter>
  335. </RegisteredObjectSet>
  336. <RegisteredObjectSet
  337. id="GlobalSigmaRefineriesROS"
  338. SetId="GLOBAL_SIGMA_REFINERIES"
  339. Type="GLOBAL">
  340. <ObjectFilter
  341. Rule="NONE" >
  342. </ObjectFilter>
  343. </RegisteredObjectSet>
  344. <RegisteredObjectSet
  345. id="SilosROS"
  346. SetId="SILOS"
  347. Type="PLAYER">
  348. <ObjectFilter
  349. Rule="ANY"
  350. Include="FS_MONEY_STORAGE"
  351. Relationship="SAME_PLAYER" />
  352. </RegisteredObjectSet>
  353. <RegisteredObjectSet
  354. id="FarmsROS"
  355. SetId="FARMS"
  356. Type="PLAYER">
  357. <ObjectFilter
  358. Rule="ANY"
  359. Include=""
  360. Relationship="SAME_PLAYER" />
  361. </RegisteredObjectSet>
  362. <RegisteredObjectSet
  363. id="PowerPlantsROS"
  364. SetId="POWER_PLANTS"
  365. Type="PLAYER">
  366. <ObjectFilter
  367. Rule="ANY"
  368. Include="FS_POWER"
  369. Relationship="SAME_PLAYER" />
  370. </RegisteredObjectSet>
  371. <RegisteredObjectSet
  372. id="FactoriesROS"
  373. SetId="FACTORIES"
  374. Type="PLAYER">
  375. <ObjectFilter
  376. Rule="ANY"
  377. Include="FS_FACTORY"
  378. Relationship="SAME_PLAYER" />
  379. </RegisteredObjectSet>
  380. <RegisteredObjectSet
  381. id="UnitFactoriesROS"
  382. SetId="UNIT_FACTORIES"
  383. Type="PLAYER">
  384. <ObjectFilter
  385. Rule="ANY"
  386. Include="FS_BARRACKS FS_WAR_FACTORY FS_AIR_FIELD"
  387. Relationship="SAME_PLAYER" />
  388. </RegisteredObjectSet>
  389. <RegisteredObjectSet
  390. id="TechCentersROS"
  391. SetId="TECH_CENTERS"
  392. Type="PLAYER">
  393. <ObjectFilter
  394. Rule="ANY"
  395. Include="FS_TECH_CENTER FS_TECHNOLOGY"
  396. Relationship="SAME_PLAYER" />
  397. </RegisteredObjectSet>
  398. <RegisteredObjectSet
  399. id="RadarsROS"
  400. SetId="RADARS"
  401. Type="PLAYER">
  402. <ObjectFilter
  403. Rule="ANY"
  404. Include="FS_RADAR"
  405. Relationship="SAME_PLAYER" />
  406. </RegisteredObjectSet>
  407. <RegisteredObjectSet
  408. id="ConyardsROS"
  409. SetId="CONYARDS"
  410. Type="PLAYER">
  411. <ObjectFilter
  412. Rule="ANY"
  413. Include="CONSTRUCTION_YARD"
  414. Relationship="SAME_PLAYER" />
  415. </RegisteredObjectSet>
  416. <RegisteredObjectSet
  417. id="MCVsROS"
  418. SetId="MCVS"
  419. Type="PLAYER">
  420. <ObjectFilter
  421. Rule="ANY"
  422. Include="MCV"
  423. Relationship="SAME_PLAYER" />
  424. </RegisteredObjectSet>
  425. <RegisteredObjectSet
  426. id="BaseDefensesROS"
  427. SetId="BASE_DEFENSES"
  428. Type="PLAYER">
  429. <ObjectFilter
  430. Rule="ANY"
  431. Include="FS_BASE_DEFENSE"
  432. Exclude="UNPACKS_INTO_BUILDING"
  433. Relationship="SAME_PLAYER" />
  434. </RegisteredObjectSet>
  435. <!-- Basically everything that is immobile and can potentially attack -->
  436. <RegisteredObjectSet
  437. id="BaseDefensesAndGarrisonROS"
  438. SetId="BASE_DEFENSES_AND_GARRISONS"
  439. Type="PLAYER">
  440. <ObjectFilter
  441. Rule="ANY"
  442. Include="FS_BASE_DEFENSE GARRISON"
  443. Exclude="UNPACKS_INTO_BUILDING"
  444. Relationship="SAME_PLAYER" />
  445. </RegisteredObjectSet>
  446. <RegisteredObjectSet
  447. id="EnemyBaseDefensesROS"
  448. SetId="ENEMY_BASE_DEFENSES"
  449. Type="PLAYER">
  450. <ObjectFilter
  451. Rule="ANY"
  452. Include="FS_BASE_DEFENSE"
  453. Exclude="UNPACKS_INTO_BUILDING"
  454. Relationship="ENEMIES" />
  455. </RegisteredObjectSet>
  456. <RegisteredObjectSet
  457. id="EngineersROS"
  458. SetId="ENGINEERS"
  459. Type="PLAYER">
  460. <ObjectFilter
  461. Rule="ANY"
  462. Include="ENGINEER"
  463. Relationship="SAME_PLAYER" />
  464. </RegisteredObjectSet>
  465. <RegisteredObjectSet
  466. id="EnemyEngineersROS"
  467. SetId="ENEMY_ENGINEERS"
  468. Type="PLAYER">
  469. <ObjectFilter
  470. Rule="ANY"
  471. Include="ENGINEER"
  472. Relationship="ENEMIES" />
  473. </RegisteredObjectSet>
  474. <RegisteredObjectSet
  475. id="MobileGroundUnitROS"
  476. SetId="MOBILE_GROUND_UNITS"
  477. Type="PLAYER">
  478. <ObjectFilter
  479. Rule="ANY"
  480. Include="SELECTABLE"
  481. Exclude="STRUCTURE IMMOBILE AIRCRAFT"
  482. Relationship="SAME_PLAYER" />
  483. </RegisteredObjectSet>
  484. <RegisteredObjectSet
  485. id="PlayerPowerUpdatableROS"
  486. SetId="AI_PLAYER_POWER_UPDATABLE"
  487. Type="PLAYER">
  488. <ObjectFilter
  489. Rule="ANY"
  490. Include="AI_NEEDS_PLAYER_POWER_UPDATE"
  491. Relationship="SAME_PLAYER" />
  492. </RegisteredObjectSet>
  493. <!--
  494. <RegisteredObjectSet
  495. id="ROS"
  496. SetId=""
  497. Type="PLAYER">
  498. <ObjectFilter
  499. Rule="ANY"
  500. Include=""
  501. Relationship="SAME_PLAYER" />
  502. </RegisteredObjectSet>
  503. -->
  504. <!-- this is somewhat of a hack for RA3 NanoSwarmHives, but it is at least a data-driven hack that is replacing a code-hack -->
  505. <RegisteredObjectSet
  506. id="EnclosureROS"
  507. SetId="ENCLOSURES"
  508. Type="GLOBAL">
  509. <ObjectFilter
  510. Rule="NONE"
  511. Include="ENCLOSURE"/>
  512. </RegisteredObjectSet>
  513. </AssetDeclaration>