BaseCivilianStructure.xml 7.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217
  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. <ExcludeThing>AlliedScoutInfantry</ExcludeThing>
  95. <ExcludeThing>SovietScoutInfantry</ExcludeThing>
  96. <ExcludeThing>SovietScoutVehicle</ExcludeThing>
  97. </PassengerFilter>
  98. <PassengerData
  99. BonePrefix="BONEGARRISON">
  100. <Filter
  101. Rule="ANY"
  102. Include="INFANTRY"/>
  103. </PassengerData>
  104. <DieMuxData
  105. DeathTypes="ALL" />
  106. </ContestableGarrisonContain>
  107. <FXListBehavior
  108. id="ModuleTag_FXList">
  109. <DieMuxData
  110. DeathTypes="ALL" />
  111. <Event
  112. Index="onTransitionToDamaged"
  113. FX="FX_BuildDamaged_Large" />
  114. <Event
  115. Index="onTransitionToReallyDamaged"
  116. FX="FX_BuildDamaged_Large" />
  117. <Event
  118. Index="onTransitionToRubble"
  119. FX="FX_BuildRubble_Large" />
  120. <Event
  121. Index="onDeath"
  122. ForceUseDoFXObj="true"
  123. FX="FX_ScorchMedium" />
  124. </FXListBehavior>
  125. <BuildingBehavior
  126. id="ModuleTag_BuildingBehavior"
  127. NightWindowObject="LIGHT_01"
  128. GlowWindowObject="NIGHT_GLOW"/>
  129. <!-- Garrisoned units with the STEALTH_GARRISON kindof are invisible when they are inside a building, this InvisibilityUpdate is the module that contols it. -->
  130. <InvisibilityBehavior
  131. id="ModuleTag_Invisibility"
  132. InvisibilityTemplate="StealthGarrisonInvisibilityTemplate"
  133. />
  134. <!-- civ buildings should have a CreateObjectDie to make a collapse version. -->
  135. <DestroyDie
  136. id="ModuleTag_DestroyDie">
  137. <DieMuxData
  138. DeathTypes="ALL" />
  139. </DestroyDie>
  140. <SquishCollide
  141. id ="DefaultSquishCollide"/>
  142. <Physics
  143. id="ModuleTag_Physics" />
  144. <SecondaryDamageTracker
  145. id="ModuleTag_SecondaryDamageTracker"
  146. UpdateDuration="1s"
  147. DissipateAmount="25"
  148. MaxDamageClampScaler="=$MAX_SECONDARY_DAMAGE_SCALER">
  149. <Color R="1.0" G="1.0" B="1.75"/>
  150. <EffectInfo
  151. Fraction="0.2"
  152. AttributeModifier="AttributeModifer_CryoBeam_02"
  153. />
  154. <EffectInfo
  155. Fraction="0.4"
  156. AttributeModifier="AttributeModifer_CryoBeam_04"
  157. />
  158. <EffectInfo
  159. Fraction="0.6"
  160. AttributeModifier="AttributeModifer_CryoBeam_06"
  161. />
  162. <EffectInfo
  163. Fraction="0.8"
  164. AttributeModifier="AttributeModifer_CryoBeam_08"
  165. />
  166. <EffectInfo
  167. Fraction="1.0"
  168. SetUpgradedArmor="true"
  169. OnEnterDisable="true"
  170. OnEnterCancelSpecialAbilities="true"
  171. AttributeModifier="AttributeModifer_CryoBeam_10"
  172. />
  173. <ObjectStatusValidation
  174. ForbiddenStatus="UNDER_IRON_CURTAIN" />
  175. </SecondaryDamageTracker>
  176. </Behaviors>
  177. <ClientBehaviors>
  178. <ModelConditionAudioLoopClientBehavior id="ModuleTag_IronCurtain">
  179. <ModelConditionSound Sound="SOV_IronCurtain_LoopMS" RequiredFlags="IRONCURTAIN" ExcludedFlags="DYING" />
  180. </ModelConditionAudioLoopClientBehavior>
  181. </ClientBehaviors>
  182. <AudioArrayVoice>
  183. <AudioEntry Sound="GenericBuilding_Select" AudioType="voiceSelect" />
  184. </AudioArrayVoice>
  185. <AudioArraySound>
  186. <AudioEntry Sound="HumanFaction_MediumBuilding_LightDamageMS" AudioType="soundOnDamaged" />
  187. <AudioEntry Sound="HumanFaction_MediumBuilding_HeavyDamageMS" AudioType="soundOnReallyDamaged" />
  188. </AudioArraySound>
  189. <VisionInfo
  190. VisionRange="600"
  191. ShroudClearingRange="600" />
  192. <CrusherInfo
  193. id="id_CrusherInfo"
  194. CrusherLevel="0"
  195. CrushableLevel="40">
  196. <ExtraCrushLevels CrusherLevel="0" CrushableLevel="1" ModelConditionMatch="SHRINK_EFFECT" />
  197. </CrusherInfo>
  198. </GameObject>
  199. </AssetDeclaration>