BaseCivilianStructure.xml 7.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218
  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" xmlns:xai="uri:ea.com:eala:asset:instance">
  3. <Tags></Tags>
  4. <Includes>
  5. <Include type="all" source="ART:AU_Garrison_Flag_Small.w3x" />
  6. <Include type="all" source="ART:SU_Garrison_Flag_Small.w3x" />
  7. <Include type="all" source="ART:JU_Garrison_Flag_Small.w3x" />
  8. <Include type="all" source="ART:AU_Garrison_Flag.w3x" />
  9. <Include type="all" source="ART:SU_Garrison_Flag.w3x" />
  10. <Include type="all" source="ART:JU_Garrison_Flag.w3x" />
  11. <Include type="all" source="ART:AU_Garrison_Flag_Large.w3x" />
  12. <Include type="all" source="ART:SU_Garrison_Flag_Large.w3x" />
  13. <Include type="all" source="ART:JU_Garrison_Flag_Large.w3x" />
  14. <Include type="all" source="ART:Garrison_Wall_Tiny.w3x" />
  15. <Include type="all" source="ART:Garrison_Wall_Small.w3x" />
  16. <Include type="all" source="ART:Garrison_Wall.w3x" />
  17. <Include type="all" source="ART:Garrison_Wall_Large.w3x" />
  18. <Include type="all" source="ART:Garrison_Wall_XLarge.w3x" />
  19. <Include
  20. type="all"
  21. source="DATA:GlobalData/GlobalDefines.xml" />
  22. <Include
  23. type="instance"
  24. source="BaseObject.xml" />
  25. </Includes>
  26. <GameObject
  27. id="BaseCivilianStructure"
  28. inheritFrom="BaseObject"
  29. SelectPortrait="Portrait_NeutralGarrisonableStructure"
  30. ButtonImage="Button_NeutralGarrisonableStructure"
  31. CommandSet="GarrisonableNeutralBuildingCommandSet"
  32. Side="Civilian"
  33. EditorSorting="STRUCTURE"
  34. KindOf="SELECTABLE STRUCTURE IMMOBILE CAN_CAST_REFLECTIONS GARRISON COVER KEEP_CLASSIFIED_WHEN_DEAD IGNORE_FOR_VICTORY CIVILIAN_BUILDING NOT_SELLABLE CRUSHABLE_BUILDING ALWAYS_VISIBLE_IN_RADAR"
  35. RadarPriority="STRUCTURE" Description="Desc:CivilianBuildingGarrisonable" TypeDescription="Type:CivilianBuildingGarrisonable">
  36. <DisplayName>Name:CivilianBuildingGarrisonable</DisplayName>
  37. <ArmorSet
  38. id="DefaultArmor"
  39. Armor="StructureArmor"
  40. DamageFX="GenericStructureDamageFX" />
  41. <ArmorSet
  42. Armor="CryoBeamFrozenArmor"
  43. DamageFX="VehicleDamageFX"
  44. Conditions="SECONDARY_DAMAGE"/>
  45. <Behaviors>
  46. <ProductionUpdate
  47. id="ModuleTag_Production" />
  48. <ModelConditionUpgrade
  49. id="ModuleTag_AlliesFaction"
  50. AddConditionFlags="USER_1">
  51. <TriggeredBy>Upgrade_AlliesFaction</TriggeredBy>
  52. </ModelConditionUpgrade>
  53. <ModelConditionUpgrade
  54. id="ModuleTag_SovietFaction"
  55. AddConditionFlags="USER_2">
  56. <TriggeredBy>Upgrade_SovietFaction</TriggeredBy>
  57. </ModelConditionUpgrade>
  58. <ModelConditionUpgrade
  59. id="ModuleTag_JapanFaction"
  60. AddConditionFlags="USER_3">
  61. <TriggeredBy>Upgrade_JapanFaction</TriggeredBy>
  62. </ModelConditionUpgrade>
  63. <AttributeModifierPoolUpdate
  64. id="DefaultAttributeModifierPoolUpdate"/>
  65. <AttributeModifierAuraUpdate
  66. id="ModuleTag_AttributeModifierAura"
  67. InitiallyActive="true"
  68. AttributeModifierName="AttributeModifier_Garrisoned"
  69. RefreshDelay="0.5s"
  70. AllowSelf="false"
  71. AffectContainedOnly="true">
  72. <ObjectFilter
  73. Rule="ALL"
  74. Exclude="SURPRISE_ATTACKER"/>
  75. </AttributeModifierAuraUpdate>
  76. <ContestableGarrisonContain
  77. id="ModuleTag_Garrison"
  78. ObjectStatusOfContained="UNSELECTABLE ENCLOSED CAN_ATTACK"
  79. ContainMax="5"
  80. EnterSound="GenericBuilding_Garrison"
  81. ExitSound="GenericBuilding_Ungarrison"
  82. AllowEnemiesInside="false"
  83. AllowAlliesInside="false"
  84. AllowNeutralInside="true"
  85. AllowOwnPlayerInsideOverride="true"
  86. PassDisabilityToRiders="true"
  87. ShowPips="true"
  88. KillPassengersOnDeath="false"
  89. RequiredClearingObjectStatus="CAN_CONTEST_GARRISON"
  90. EjectSpeed="3">
  91. <PassengerFilter
  92. Rule="ANY"
  93. Include="INFANTRY"
  94. StatusBitFlagsExclude="SHRUNK">
  95. <ExcludeThing>AlliedScoutInfantry</ExcludeThing>
  96. <ExcludeThing>SovietScoutInfantry</ExcludeThing>
  97. <ExcludeThing>SovietScoutVehicle</ExcludeThing>
  98. </PassengerFilter>
  99. <PassengerData
  100. BonePrefix="BONEGARRISON">
  101. <Filter
  102. Rule="ANY"
  103. Include="INFANTRY"/>
  104. </PassengerData>
  105. <DieMuxData
  106. DeathTypes="ALL" />
  107. </ContestableGarrisonContain>
  108. <FXListBehavior
  109. id="ModuleTag_FXList">
  110. <DieMuxData
  111. DeathTypes="ALL" />
  112. <Event
  113. Index="onTransitionToDamaged"
  114. FX="FX_BuildDamaged_Large" />
  115. <Event
  116. Index="onTransitionToReallyDamaged"
  117. FX="FX_BuildDamaged_Large" />
  118. <Event
  119. Index="onTransitionToRubble"
  120. FX="FX_BuildRubble_Large" />
  121. <Event
  122. Index="onDeath"
  123. ForceUseDoFXObj="true"
  124. FX="FX_ScorchMedium" />
  125. </FXListBehavior>
  126. <BuildingBehavior
  127. id="ModuleTag_BuildingBehavior"
  128. NightWindowObject="LIGHT_01"
  129. GlowWindowObject="NIGHT_GLOW"/>
  130. <!-- Garrisoned units with the STEALTH_GARRISON kindof are invisible when they are inside a building, this InvisibilityUpdate is the module that contols it. -->
  131. <InvisibilityBehavior
  132. id="ModuleTag_Invisibility"
  133. InvisibilityTemplate="StealthGarrisonInvisibilityTemplate"
  134. />
  135. <!-- civ buildings should have a CreateObjectDie to make a collapse version. -->
  136. <DestroyDie
  137. id="ModuleTag_DestroyDie">
  138. <DieMuxData
  139. DeathTypes="ALL" />
  140. </DestroyDie>
  141. <SquishCollide
  142. id ="DefaultSquishCollide"/>
  143. <Physics
  144. id="ModuleTag_Physics" />
  145. <SecondaryDamageTracker
  146. id="ModuleTag_SecondaryDamageTracker"
  147. UpdateDuration="1s"
  148. DissipateAmount="25"
  149. MaxDamageClampScaler="=$MAX_SECONDARY_DAMAGE_SCALER">
  150. <Color R="1.0" G="1.0" B="1.75"/>
  151. <EffectInfo
  152. Fraction="0.2"
  153. AttributeModifier="AttributeModifer_CryoBeam_02"
  154. />
  155. <EffectInfo
  156. Fraction="0.4"
  157. AttributeModifier="AttributeModifer_CryoBeam_04"
  158. />
  159. <EffectInfo
  160. Fraction="0.6"
  161. AttributeModifier="AttributeModifer_CryoBeam_06"
  162. />
  163. <EffectInfo
  164. Fraction="0.8"
  165. AttributeModifier="AttributeModifer_CryoBeam_08"
  166. />
  167. <EffectInfo
  168. Fraction="1.0"
  169. SetUpgradedArmor="true"
  170. OnEnterDisable="true"
  171. OnEnterCancelSpecialAbilities="true"
  172. AttributeModifier="AttributeModifer_CryoBeam_10"
  173. />
  174. <ObjectStatusValidation
  175. ForbiddenStatus="UNDER_IRON_CURTAIN" />
  176. </SecondaryDamageTracker>
  177. </Behaviors>
  178. <ClientBehaviors>
  179. <ModelConditionAudioLoopClientBehavior id="ModuleTag_IronCurtain">
  180. <ModelConditionSound Sound="SOV_IronCurtain_LoopMS" RequiredFlags="IRONCURTAIN" ExcludedFlags="DYING" />
  181. </ModelConditionAudioLoopClientBehavior>
  182. </ClientBehaviors>
  183. <AudioArrayVoice>
  184. <AudioEntry Sound="GenericBuilding_Select" AudioType="voiceSelect" />
  185. </AudioArrayVoice>
  186. <AudioArraySound>
  187. <AudioEntry Sound="HumanFaction_MediumBuilding_LightDamageMS" AudioType="soundOnDamaged" />
  188. <AudioEntry Sound="HumanFaction_MediumBuilding_HeavyDamageMS" AudioType="soundOnReallyDamaged" />
  189. </AudioArraySound>
  190. <VisionInfo
  191. VisionRange="600"
  192. ShroudClearingRange="600" />
  193. <CrusherInfo
  194. id="id_CrusherInfo"
  195. CrusherLevel="0"
  196. CrushableLevel="40">
  197. <ExtraCrushLevels CrusherLevel="0" CrushableLevel="1" ModelConditionMatch="SHRINK_EFFECT" />
  198. </CrusherInfo>
  199. </GameObject>
  200. </AssetDeclaration>