SovietPowerPlant.xml 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <AssetDeclaration xmlns="uri:ea.com:eala:asset" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xi="http://www.w3.org/2001/XInclude">
  3. <Tags></Tags>
  4. <Includes>
  5. <Include type="all" source="DATA:GlobalData/GlobalDefines.xml" />
  6. <Include
  7. type="all"
  8. source="ART:SBPowerPlant_SKN.w3x" />
  9. <Include
  10. type="all"
  11. source="ART:SBPowerPlant_BLD.w3x" />
  12. <Include
  13. type="all"
  14. source="ART:SBPowerPlant_IDLA.w3x" />
  15. <Include
  16. type="all"
  17. source="ART:SBPowerPlant_Scaffold.w3x" />
  18. <Include
  19. type="all"
  20. source="ART:SBPowerPlant_particles.w3x" />
  21. <Include
  22. type="all"
  23. source="ART:SBPowerPlant_Platform_SKN.w3x" />
  24. <Include
  25. type="all"
  26. source="ART:SBPowerPlant_Platform_BLD.w3x" />
  27. <Include
  28. type="all"
  29. source="ART:SBPowerPlant_Platform_PAK.w3x" />
  30. <Include
  31. type="all"
  32. source="ART:SBPowerPlant_FX.w3x" />
  33. <!-- Base Object -->
  34. <Include
  35. type="instance"
  36. source="DATA:BaseObjects/BaseSovietStructure.xml" />
  37. </Includes>
  38. <Defines>
  39. <Define name="SOVIET_POWERPLANT_LOCAL_UNPACK_TIME" value="10s" />
  40. </Defines>
  41. <GameObject
  42. id="SovietPowerPlant"
  43. inheritFrom="BaseSovietStructure"
  44. ButtonImage="Button_SovietPowerPlant_small"
  45. SelectPortrait="Portrait_SovietPowerPlant_big"
  46. Side="Soviet"
  47. EditorSorting="STRUCTURE"
  48. TransportSlotCount="1"
  49. BuildTime="0.0"
  50. EnergyProduction="100"
  51. EnergyBonus="10"
  52. CommandSet="SovietPowerPlantCommandSet"
  53. KindOf="+FS_POWER +SKIRMISH_AI_CAN_BUILD_DURING_EMERGENCY_NO_INCOME"
  54. RadarPriority="STRUCTURE"
  55. PlacementViewAngle="315d"
  56. ProductionQueueType="MAIN_STRUCTURE"
  57. BuildPlacementTypeFlag="MAIN_STRUCTURE"
  58. EditorName="SovietPowerPlant"
  59. Description="Desc:SovietPowerPlant"
  60. TypeDescription="Type:SovietPowerPlant">
  61. <DisplayName
  62. xai:joinAction="Replace" xmlns:xai="uri:ea.com:eala:asset:instance">Name:SovietPowerPlant</DisplayName>
  63. <ObjectResourceInfo>
  64. <BuildCost Account="=$ACCOUNT_ORE" Amount="800"/>
  65. </ObjectResourceInfo>
  66. <ArmorSet
  67. Armor="SovietPowerPlantArmor"
  68. DamageFX="FactionStructureDamageFX" />
  69. <SkirmishAIInformation
  70. BaseBuildingLocation="SPREAD">
  71. <ConstructionBaseSelectionCriteria
  72. ExcludedBaseTypes="NO_BUILD_RADIUS CAPTURED"/>
  73. </SkirmishAIInformation>
  74. <Draws>
  75. <ScriptedModelDraw
  76. id="ModuleTag_Draw"
  77. OkToChangeModelColor="true"
  78. ExtraPublicBone="BONE_CONTACT_POINT_01 BONE_CONTACT_POINT_02 BONE_CONTACT_POINT_03 BONE_CONTACT_POINT_04 BONE_CONTACT_POINT_05 BONE_CONTACT_POINT_06 BONE_CONTACT_POINT_07">
  79. <ModelConditionState
  80. ParseCondStateType="PARSE_DEFAULT">
  81. <Model
  82. Name="SBPowerPlant_SKN" />
  83. <ParticleSysBone
  84. BoneName="FXBone01"
  85. FXParticleSystemTemplate="SovietPowerGlow"
  86. FollowBone="true" />
  87. <ParticleSysBone
  88. BoneName="FXBone01"
  89. FXParticleSystemTemplate="SovietPowerSmoke"
  90. FollowBone="true" />
  91. </ModelConditionState>
  92. <ModelConditionState
  93. ParseCondStateType="PARSE_NORMAL"
  94. ConditionsYes="BUILD_PLACEMENT_CURSOR">
  95. <Model
  96. Name="SBPowerPlant_SKN" />
  97. <Texture
  98. Original="SBBuilding_Holes"
  99. New="SBBuilding_FP" />
  100. <Texture
  101. Original="SBBuilding_Filler"
  102. New="SBBuilding_FP" />
  103. </ModelConditionState>
  104. <!-- BUILDING -->
  105. <ModelConditionState
  106. ParseCondStateType="PARSE_NORMAL"
  107. ConditionsYes="STRUCTURE_UNPACKING JUST_BUILT">
  108. <Model
  109. Name="" />
  110. </ModelConditionState>
  111. <ModelConditionState
  112. ParseCondStateType="PARSE_NORMAL"
  113. ConditionsYes="STRUCTURE_UNPACKING">
  114. <Model
  115. Name="SBPowerPlant_SKN" />
  116. </ModelConditionState>
  117. <AnimationState
  118. ParseCondStateType="PARSE_DEFAULT">
  119. <Animation
  120. AnimationName="SBPowerPlant_IDLA"
  121. AnimationMode="LOOP"/>
  122. </AnimationState>
  123. <AnimationState
  124. ParseCondStateType="PARSE_NORMAL"
  125. ConditionsYes="SOLD"
  126. Flags="START_FRAME_LAST">
  127. <Animation
  128. AnimationName="SBPowerPlant_BLD"
  129. AnimationMode="ONCE_BACKWARDS"
  130. AnimationAbsoluteTime="2s"/>
  131. </AnimationState>
  132. <AnimationState
  133. ParseCondStateType="PARSE_NORMAL"
  134. ConditionsYes="STRUCTURE_UNPACKING">
  135. <Animation
  136. AnimationName="SBPowerPlant_BLD"
  137. AnimationMode="MATCH_UNPACKING"
  138. AnimationBlendTime="0" />
  139. <ParticleSysBone
  140. BoneName="NONE"
  141. FXParticleSystemTemplate="Con_Med"
  142. FollowBone="true" />
  143. <ParticleSysBone
  144. BoneName="NONE"
  145. FXParticleSystemTemplate="Con_Lights"
  146. FollowBone="true" />
  147. <ParticleSysBone
  148. BoneName="NONE"
  149. FXParticleSystemTemplate="Con_Flash"
  150. FollowBone="true" />
  151. </AnimationState>
  152. </ScriptedModelDraw>
  153. <!-- DRAW PLATFORM -->
  154. <ScriptedModelDraw
  155. id="ModuleTag_Draw_Platform"
  156. OkToChangeModelColor="true">
  157. <ModelConditionState
  158. ParseCondStateType="PARSE_DEFAULT">
  159. <Model
  160. Name="SBPowerPlant_Platform_SKN" />
  161. </ModelConditionState>
  162. <AnimationState
  163. ParseCondStateType="PARSE_DEFAULT"
  164. StateName="STATE_IdleOnLand"
  165. Flags="START_FRAME_LAST">
  166. <Animation
  167. AnimationName="SBPowerPlant_Platform_PAK"
  168. AnimationMode="ONCE"
  169. AnimationBlendTime="0" />
  170. <Script>
  171. Prev = CurDrawablePrevAnimationState()
  172. if Prev == "STATE_BuildingOnWater" and Prev ~= "STATE_IdleOnLand" then CurDrawableSetTransitionAnimState("TRANS_toIdle") end;
  173. CurDrawableShowSubObjectPermanently("Bib")
  174. CurDrawableHideSubObjectPermanently("Platform")
  175. CurDrawableHideSubObjectPermanently("Wall")
  176. </Script>
  177. </AnimationState>
  178. <AnimationState
  179. ParseCondStateType="PARSE_NORMAL"
  180. ConditionsYes="STRUCTURE_UNPACKING OVER_WATER"
  181. Flags="START_FRAME_FIRST"
  182. StateName="STATE_BuildingOnWater">
  183. <Animation
  184. AnimationName="SBPowerPlant_Platform_BLD"
  185. AnimationMode="ONCE"
  186. AnimationBlendTime="0"/>
  187. <ParticleSysBone
  188. BoneName="None"
  189. FXParticleSystemTemplate="AlliedPowerPlantWaterBuildupFroth"
  190. FollowBone="true" />
  191. <ParticleSysBone
  192. BoneName="None"
  193. FXParticleSystemTemplate="AlliedPowerPlantWaterBuildupMist"
  194. FollowBone="true" />
  195. <ParticleSysBone
  196. BoneName="None"
  197. FXParticleSystemTemplate="ABAirBaseWakeSplash"
  198. FollowBone="true" />
  199. <ParticleSysBone
  200. BoneName="None"
  201. FXParticleSystemTemplate="AlliedPowerPlantBuildupFlashes"
  202. FollowBone="true" />
  203. <ParticleSysBone
  204. BoneName="None"
  205. FXParticleSystemTemplate="AlliedPowerPlantBuildupSparksSeed"
  206. FollowBone="true" />
  207. <Script>
  208. CurDrawableShowSubObjectPermanently("Platform")
  209. CurDrawableHideSubObjectPermanently("Bib")
  210. CurDrawableShowSubObjectPermanently("Wall")
  211. </Script>
  212. </AnimationState>
  213. <AnimationState
  214. ParseCondStateType="PARSE_NORMAL"
  215. ConditionsYes="STRUCTURE_UNPACKING"
  216. Flags="START_FRAME_FIRST"
  217. StateName="STATE_BuildingOnLand">
  218. <Animation
  219. AnimationName="SBPowerPlant_Platform_BLD"
  220. AnimationMode="ONCE"
  221. AnimationBlendTime="0"/>
  222. <Script>
  223. CurDrawableHideSubObjectPermanently("Platform")
  224. CurDrawableShowSubObjectPermanently("Bib")
  225. CurDrawableHideSubObjectPermanently("Wall")
  226. </Script>
  227. </AnimationState>
  228. <AnimationState
  229. ParseCondStateType="PARSE_NORMAL"
  230. ConditionsYes="SOLD OVER_WATER"
  231. Flags="START_FRAME_LAST" >
  232. <Animation
  233. AnimationName="SBPowerPlant_Platform_BLD"
  234. AnimationMode="ONCE_BACKWARDS"
  235. AnimationAbsoluteTime="2s"
  236. AnimationBlendTime="0" />
  237. <ParticleSysBone
  238. BoneName="None"
  239. FXParticleSystemTemplate="AlliedPowerPlantWaterBuildupFroth"
  240. FollowBone="true" />
  241. <ParticleSysBone
  242. BoneName="None"
  243. FXParticleSystemTemplate="AlliedPowerPlantWaterBuildupMist"
  244. FollowBone="true" />
  245. <ParticleSysBone
  246. BoneName="None"
  247. FXParticleSystemTemplate="ABAirBaseWakeSplash"
  248. FollowBone="true" />
  249. </AnimationState>
  250. <AnimationState
  251. ParseCondStateType="PARSE_NORMAL"
  252. ConditionsYes="SOLD"
  253. Flags="START_FRAME_LAST" >
  254. <Animation
  255. AnimationName="SBPowerPlant_Platform_BLD"
  256. AnimationMode="ONCE_BACKWARDS"
  257. AnimationAbsoluteTime="2s"
  258. AnimationBlendTime="0" />
  259. </AnimationState>
  260. <AnimationState
  261. ParseCondStateType="PARSE_NORMAL"
  262. ConditionsYes="OVER_WATER"
  263. StateName="STATE_IdleOnWater"
  264. Flags="START_FRAME_LAST">
  265. <Animation
  266. AnimationName="SBPowerPlant_Platform_PAK"
  267. AnimationMode="ONCE"
  268. AnimationBlendTime="0" />
  269. <Script>
  270. Prev = CurDrawablePrevAnimationState()
  271. if Prev == "STATE_BuildingOnWater" and Prev ~= "STATE_IdleOnLand" then CurDrawableSetTransitionAnimState("TRANS_toIdle") end;
  272. CurDrawableShowSubObjectPermanently("Platform")
  273. CurDrawableHideSubObjectPermanently("Bib")
  274. CurDrawableShowSubObjectPermanently("Wall")
  275. </Script>
  276. </AnimationState>
  277. <AnimationState
  278. ParseCondStateType="PARSE_TRANSITION"
  279. StateName="TRANS_toIdle">
  280. <Animation
  281. AnimationName="SBPowerPlant_Platform_PAK"
  282. AnimationMode="ONCE"
  283. AnimationBlendTime="0" />
  284. </AnimationState>
  285. </ScriptedModelDraw>
  286. <!-- DRAW SCAFFOLD -->
  287. <ScriptedModelDraw
  288. id="ModuleTag_Draw_Scaffold"
  289. OkToChangeModelColor="true"
  290. ExtraPublicBone="BONE_CONTACT_POINT_01 BONE_CONTACT_POINT_02 BONE_CONTACT_POINT_03 BONE_CONTACT_POINT_04 BONE_CONTACT_POINT_05 BONE_CONTACT_POINT_06 BONE_CONTACT_POINT_07">
  291. <ModelConditionState
  292. ParseCondStateType="PARSE_DEFAULT">
  293. <Model
  294. Name="" />
  295. </ModelConditionState>
  296. <ModelConditionState
  297. ParseCondStateType="PARSE_NORMAL"
  298. ConditionsYes="SOLD">
  299. <Model
  300. Name="SBPowerPlant_Scaffold" />
  301. </ModelConditionState>
  302. <ModelConditionState
  303. ParseCondStateType="PARSE_NORMAL"
  304. ConditionsYes="STRUCTURE_UNPACKING">
  305. <Model
  306. Name="SBPowerPlant_Scaffold" />
  307. </ModelConditionState>
  308. <AnimationState
  309. ParseCondStateType="PARSE_DEFAULT">
  310. </AnimationState>
  311. <AnimationState
  312. ParseCondStateType="PARSE_NORMAL"
  313. ConditionsYes="SOLD"
  314. Flags="START_FRAME_LAST">
  315. <Animation
  316. AnimationName="SBPowerPlant_Scaffold"
  317. AnimationMode="ONCE_BACKWARDS"
  318. AnimationAbsoluteTime="2s"/>
  319. </AnimationState>
  320. <AnimationState
  321. ParseCondStateType="PARSE_NORMAL"
  322. ConditionsYes="STRUCTURE_UNPACKING">
  323. <Animation
  324. AnimationName="SBPowerPlant_Scaffold"
  325. AnimationMode="MATCH_UNPACKING"
  326. AnimationBlendTime="0" />
  327. </AnimationState>
  328. </ScriptedModelDraw>
  329. <!-- DRAW PARTICLES -->
  330. <ScriptedModelDraw
  331. id="ModuleTag_Draw_FX"
  332. OkToChangeModelColor="true">
  333. <ModelConditionState
  334. ParseCondStateType="PARSE_DEFAULT">
  335. <Model
  336. Name="SBPowerPlant_FX" />
  337. </ModelConditionState>
  338. <ModelConditionState
  339. ParseCondStateType="PARSE_NORMAL"
  340. ConditionsYes="DYING">
  341. <Model
  342. Name="SBPowerPlant_FX" />
  343. </ModelConditionState>
  344. <ModelConditionState
  345. ParseCondStateType="PARSE_NORMAL"
  346. ConditionsYes="DAMAGED">
  347. <Model
  348. Name="SBPowerPlant_FX" />
  349. <ParticleSysBone
  350. BoneName="FX_BONE01"
  351. FXParticleSystemTemplate="BuildingDamageFire"
  352. FollowBone="true"/>
  353. <ParticleSysBone
  354. BoneName="FX_BONE01"
  355. FXParticleSystemTemplate="BuildingDamageFire02"
  356. FollowBone="true"/>
  357. <ParticleSysBone
  358. BoneName="FX_BONE01"
  359. FXParticleSystemTemplate="BuildingDamageSmoke"
  360. FollowBone="true"/>
  361. </ModelConditionState>
  362. <ModelConditionState
  363. ParseCondStateType="PARSE_NORMAL"
  364. ConditionsYes="REALLYDAMAGED">
  365. <Model
  366. Name="SBPowerPlant_FX" />
  367. <ParticleSysBone
  368. BoneName="FX_BONE01"
  369. FXParticleSystemTemplate="BuildingDamageFire"
  370. FollowBone="true"/>
  371. <ParticleSysBone
  372. BoneName="FX_BONE01"
  373. FXParticleSystemTemplate="BuildingDamageFire02"
  374. FollowBone="true"/>
  375. <ParticleSysBone
  376. BoneName="FX_BONE01"
  377. FXParticleSystemTemplate="BuildingDamageSmoke"
  378. FollowBone="true"/>
  379. <ParticleSysBone
  380. BoneName="FX_BONE02"
  381. FXParticleSystemTemplate="BuildingDamageFire"
  382. FollowBone="true"/>
  383. <ParticleSysBone
  384. BoneName="FX_BONE02"
  385. FXParticleSystemTemplate="BuildingDamageFire02"
  386. FollowBone="true"/>
  387. <ParticleSysBone
  388. BoneName="FX_BONE02"
  389. FXParticleSystemTemplate="BuildingDamageSmoke"
  390. FollowBone="true"/>
  391. </ModelConditionState>
  392. </ScriptedModelDraw>
  393. </Draws>
  394. <Behaviors>
  395. <Physics
  396. id="ModuleTag_Physics"/>
  397. <BuildingDestructionBehavior
  398. id="ModuleTag_BuildingDestructionMain"
  399. AssociatedModule="ModuleTag_Draw"
  400. FillerMesh="NEWSKIN_FILL">
  401. <DieMuxData
  402. DeathTypes="ALL"
  403. DeathTypesForbidden="SUICIDED"/>
  404. <Item
  405. BonePrefix="BONE_CONTACT_POINT_"
  406. FX="SovietRefineryHit"
  407. CreationObject="SovietPowerPlant_Debris"
  408. FlingVelocity="100.0"/>
  409. </BuildingDestructionBehavior>
  410. <BuildingDestructionBehavior
  411. id="ModuleTag_BuildingDestructionScaffold"
  412. AssociatedModule="ModuleTag_Draw_Scaffold">
  413. <DieMuxData
  414. DeathTypes="ALL"
  415. DeathTypesForbidden="SUICIDED"/>
  416. <Item
  417. BonePrefix="BONE_CONTACT_POINT_"
  418. FX="SovietRefineryHit"/>
  419. </BuildingDestructionBehavior>
  420. <FXListBehavior
  421. xai:joinAction="Replace" xmlns:xai="uri:ea.com:eala:asset:instance" id="ModuleTag_FXList">
  422. <DieMuxData
  423. DeathTypes="ALL"/>
  424. <Event
  425. Index="onDeath"
  426. FX="FX_YU_Hotel02_Explode" />
  427. </FXListBehavior>
  428. <CreateObjectDie
  429. id="ModuleTag_CreateObjectDieOnLand"
  430. CreationList="SBPowerPlant_Die_OCL">
  431. <DieMuxData
  432. DeathTypes="ALL"
  433. DeathTypesForbidden="SUICIDED"
  434. ExemptStatus="OVER_WATER" />
  435. </CreateObjectDie>
  436. <CreateObjectDie
  437. id="ModuleTag_CreateObjectDieOnWater"
  438. CreationList="SBPowerPlantPlatform_Die_OCL">
  439. <DieMuxData
  440. DeathTypes="ALL"
  441. DeathTypesForbidden="SUICIDED"
  442. RequiredStatus="OVER_WATER" />
  443. </CreateObjectDie>
  444. <DestroyDie
  445. id="ModuleTag_Die">
  446. <DieMuxData
  447. DeathTypes="ALL"
  448. DeathTypesForbidden="SUICIDED"/>
  449. </DestroyDie>
  450. <BuildingBehavior
  451. id="ModuleTag_BuildingBehavior"
  452. NightWindowObject="LIGHT_01" />
  453. <BuildingBehavior
  454. id="ModuleTag_BuildingBehavior02"
  455. NightWindowObject="LIGHT_02" />
  456. <ProductionUpdate
  457. id="ModuleTag_ProductionUpdate"
  458. GiveNoXP="true" />
  459. <PowerUpgrade
  460. id="ModuleTag_Turbines">
  461. <TriggeredBy>Upgrade_PowerPlantTurbine</TriggeredBy>
  462. </PowerUpgrade>
  463. <StructureUnpackUpdate
  464. id="ModuleTag_StructureUnpackUpdate"
  465. UnpackTime="=$SOVIET_POWERPLANT_LOCAL_UNPACK_TIME" />
  466. <xi:include
  467. href="DATA:Includes/GenericBuildingRepair.xml" />
  468. <xi:include
  469. href="DATA:Includes/GenericEngineerContain.xml" />
  470. <xi:include
  471. href="DATA:Includes/GenericSovietBuildingDestruction.xml" />
  472. <xi:include
  473. href="DATA:Includes/GenericSovietBuildingSuicide.xml" />
  474. <xi:include
  475. href="DATA:Includes/InfiltratorContainEnergy.xml" />
  476. </Behaviors>
  477. <AI>
  478. <AIUpdate
  479. id="ModuleTag_AIForLua"
  480. StateMachine="StructureAIStateMachine" />
  481. </AI>
  482. <Body>
  483. <ActiveBody
  484. id="ModuleTag_Body"
  485. MaxHealth="1000.0" />
  486. </Body>
  487. <Geometry
  488. IsSmall="false">
  489. <Shape
  490. Type= "BOX"
  491. MajorRadius = "30.0"
  492. MinorRadius = "30.0"
  493. Height = "5.0" >
  494. <Offset
  495. x = "0.0"
  496. y = "0.0"
  497. z = "0.0" />
  498. </Shape>
  499. <Shape
  500. Type= "CYLINDER"
  501. MajorRadius = "20.0"
  502. Height = "50.0"
  503. ContactPointGeneration = "INFANTRY" />
  504. </Geometry>
  505. <AudioArrayVoice>
  506. <AudioEntry Sound="SOV_Reactor_Select" AudioType="voiceSelect" />
  507. </AudioArrayVoice>
  508. <AudioArraySound>
  509. <AudioEntry Sound="SOV_Reactor_AmbientLoop" AudioType="soundAmbient" />
  510. <!--
  511. <AudioEntry Sound="HumanFaction_MediumBuilding_LightDamageMS" AudioType="soundOnDamaged" />
  512. <AudioEntry Sound="HumanFaction_MediumBuilding_HeavyDamageMS" AudioType="soundOnReallyDamaged" />
  513. -->
  514. </AudioArraySound>
  515. <VisionInfo
  516. VisionRange="150"
  517. ShroudClearingRange="300" />
  518. <ProjectedBuildabilityInfo
  519. Radius="180"
  520. BuildPlacementTypes="MAIN_STRUCTURE OTHER_STRUCTURE" />
  521. </GameObject>
  522. </AssetDeclaration>