| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605 |
- <?xml version="1.0" encoding="utf-8"?>
- <AssetDeclaration xmlns="uri:ea.com:eala:asset" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xi="http://www.w3.org/2001/XInclude">
- <Tags></Tags>
- <Includes>
- <Include type="all" source="DATA:GlobalData/GlobalDefines.xml" />
- <Include
- type="all"
- source="ART:SBBaseDefenseGround_SKN.w3x" />
- <Include
- type="all"
- source="ART:SBBaseDefenseGround_ABTA.w3x" />
- <Include
- type="all"
- source="ART:SBBaseDefenseGround_AIDA.w3x" />
- <Include
- type="all"
- source="ART:SBBaseDefenseGround_BATA.w3x" />
- <Include
- type="all"
- source="ART:SBBaseDefenseGround_BIDA.w3x" />
- <Include
- type="all"
- source="ART:SBBaseDefenseGround_BLD.w3x" />
- <Include
- type="all"
- source="ART:SBBaseDefenseGround_ATKA.w3x" />
- <Include
- type="all"
- source="ART:SBBaseDefenseGround_FX.w3x" />
- <Include
- type="all"
- source="ART:SSBaseDefenseAdvanced_Scaffold.w3x" />
- <Include
- type="all"
- source="ART:FXTracer.xml" />
- <!-- Base Object -->
- <Include
- type="instance"
- source="DATA:BaseObjects/BaseSovietStructure.xml" />
- <Include
- type="all"
- source="ART:SBBaseDefenseAir_Platform_SKL.w3x" />
- <Include
- type="all"
- source="ART:SBBaseDefenseAir_Platform_BLD.w3x" />
- <Include
- type="all"
- source="ART:SBBaseDefenseAir_Platform_BLD_SKN.w3x" />
- </Includes>
- <Defines>
- <Define name="SOVIET_BASE_DEFENSE_GROUND_LOCAL_UNPACK_TIME" value="20s" />
- </Defines>
- <GameObject
- id="SovietBaseDefenseGround"
- inheritFrom="BaseSovietStructure"
- SelectPortrait="Portrait_SovietBaseDefenseGround_big"
- ButtonImage="Button_SovietBaseDefenseGround_small"
- Side="Soviet"
- EditorSorting="STRUCTURE"
- TransportSlotCount="1"
- BuildTime="0.0"
- EnergyProduction="-25"
- CommandSet="SovietBaseDefenseGroundCommandSet"
- KindOf="-NOT_AUTOACQUIRABLE +CAN_ATTACK +FS_BASE_DEFENSE +POWERED"
- RadarPriority="STRUCTURE"
- PlacementViewAngle="225d"
- CampnessValue="=$CAMPNESS_DEFENSIVE_STRUCTURE"
- ProductionQueueType="OTHER_STRUCTURE"
- BuildPlacementTypeFlag="OTHER_STRUCTURE"
- EditorName="SovietBaseDefenseGround"
- WeaponCategory="GUN"
- TypeDescription="Type:SovietBaseDefenseGround"
- Description="Desc:SovietBaseDefenseGround"
- HealthBoxHeightOffset="15">
- <DisplayName
- xai:joinAction="Replace" xmlns:xai="uri:ea.com:eala:asset:instance">Name:SovietBaseDefenseGround</DisplayName>
- <GameDependency>
- <RequiredObject>SovietPowerPlant</RequiredObject>
- </GameDependency>
- <ObjectResourceInfo>
- <BuildCost Account="=$ACCOUNT_ORE" Amount="800"/>
- </ObjectResourceInfo>
- <ArmorSet
- Armor="SovietBaseDefenseGroundArmor"
- DamageFX="FactionStructureDamageFX" />
- <SkirmishAIInformation
- BaseBuildingLocation="DEFENSE" >
- <ConstructionBaseSelectionCriteria
- ExcludedBaseTypes="NO_BUILD_RADIUS"
- PreferredBaseTypes="ENEMIES_IN_BASE UNDER_ATTACK"
- SortOrder="PREFER_MOST_RECENTLY_ATTACKED" />
- </SkirmishAIInformation>
- <Draws>
- <!-- DRAW GUN -->
- <ScriptedModelDraw
- id="ModuleTag_Draw_Gun"
- OkToChangeModelColor="true"
- ExtraPublicBone="gun turret FXMUZZLEFLASH_01 FXMUZZLEFLASH_02 FXMUZZLEFLASH_03 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 BONE_CONTACT_POINT_08 BONE_CONTACT_POINT_09">
- <ModelConditionState
- ParseCondStateType="PARSE_DEFAULT">
- <Model
- Name="SBBaseDefenseGround_SKN" />
- <WeaponFireFXBone
- WeaponSlotType="PRIMARY_WEAPON"
- BoneName="FXMUZZLEFLASH_" />
- <WeaponLaunchBone
- WeaponSlotType="PRIMARY_WEAPON"
- BoneName="FXMUZZLEFLASH_" />
- <Turret
- TurretNameKey="Turret"
- TurretID="1" />
- </ModelConditionState>
-
- <ModelConditionState
- ParseCondStateType="PARSE_NORMAL"
- ConditionsYes="BUILD_PLACEMENT_CURSOR">
- <Model
- Name="SBBaseDefenseGround_SKN" />
- <Texture
- Original="SBBuilding_Holes"
- New="SBBuilding_FP" />
- <Texture
- Original="SBBuilding_Filler"
- New="SBBuilding_FP" />
- </ModelConditionState>
- <ModelConditionState
- ParseCondStateType="PARSE_NORMAL"
- ConditionsYes="STRUCTURE_UNPACKING">
- <Model
- Name="SBBaseDefenseGround_SKN" />
- </ModelConditionState>
-
- <AnimationState
- ParseCondStateType="PARSE_DEFAULT"
- Flags="RESTART_ANIM_WHEN_COMPLETE"
- StateName="STATE_Bored">
- <Animation
- AnimationName="SBBaseDefenseGround_BIDA"
- AnimationMode="ONCE" />
- <Script>
- Prev = CurDrawablePrevAnimationState()
- if Prev == "STATE_Selected" then
- CurDrawableSetTransitionAnimState("TRANS_attentionToBored")
- elseif Prev == "STATE_Engaged" then
- CurDrawableSetTransitionAnimState("TRANS_attentionToBored")
- elseif Prev == "STATE_Firing_A" then
- CurDrawableSetTransitionAnimState("TRANS_attentionToBored")
- end
- </Script>
- </AnimationState>
- <AnimationState
- ParseCondStateType="PARSE_NORMAL"
- ConditionsYes="SOLD"
- Flags="START_FRAME_LAST">
- <Animation
- AnimationName="SBBaseDefenseGround_BLD"
- AnimationMode="ONCE_BACKWARDS"
- AnimationBlendTime="0"
- AnimationAbsoluteTime="2s"/>
- </AnimationState>
- <AnimationState
- ParseCondStateType="PARSE_NORMAL"
- ConditionsYes="STRUCTURE_UNPACKING">
- <Animation
- AnimationName="SBBaseDefenseGround_BLD"
- AnimationMode="MATCH_UNPACKING"
- AnimationBlendTime="0" />
- <ParticleSysBone
- BoneName="NONE"
- FXParticleSystemTemplate="Con_Tiny"
- FollowBone="true" />
- <ParticleSysBone
- BoneName="NONE"
- FXParticleSystemTemplate="Con_Lights"
- FollowBone="true" />
- <ParticleSysBone
- BoneName="NONE"
- FXParticleSystemTemplate="Con_Flash"
- FollowBone="true" />
- </AnimationState>
- <AnimationState
- ParseCondStateType="PARSE_NORMAL"
- ConditionsYes="FIRING_A">
- <Animation
- AnimationName="SBBaseDefenseGround_ATKA"
- AnimationMode="LOOP" />
- <Script>
- Prev = CurDrawablePrevAnimationState()
- if Prev == "STATE_Bored" then
- CurDrawableSetTransitionAnimState("TRANS_boredToAttention")
- end
- </Script>
- </AnimationState>
-
- <AnimationState
- ParseCondStateType="PARSE_NORMAL"
- ConditionsYes="ENGAGED">
- <Animation
- AnimationName="SBBaseDefenseGround_AIDA"
- AnimationMode="LOOP" />
- <Script>
- Prev = CurDrawablePrevAnimationState()
- if Prev == "STATE_Bored" then
- CurDrawableSetTransitionAnimState("TRANS_boredToAttention")
- end
- </Script>
- </AnimationState>
-
- <AnimationState
- ParseCondStateType="PARSE_NORMAL"
- ConditionsYes="SELECTED"
- Flags="RESTART_ANIM_WHEN_COMPLETE"
- StateName="STATE_Selected">
- <Animation
- AnimationName="SBBaseDefenseGround_AIDA"
- AnimationMode="ONCE" />
- <Script>
- Prev = CurDrawablePrevAnimationState()
- if Prev == "STATE_Bored" then
- CurDrawableSetTransitionAnimState("TRANS_boredToAttention")
- end
- </Script>
- </AnimationState>
-
- <AnimationState
- ParseCondStateType="PARSE_TRANSITION"
- StateName="TRANS_boredToAttention">
- <Animation
- AnimationName="SBBaseDefenseGround_BATA"
- AnimationMode="ONCE" />
- </AnimationState>
- <AnimationState
- ParseCondStateType="PARSE_TRANSITION"
- StateName="TRANS_attentionToBored">
- <Animation
- AnimationName="SBBaseDefenseGround_ABTA"
- AnimationMode="ONCE" />
- </AnimationState>
- </ScriptedModelDraw>
- <!-- DRAW PLATFORM -->
- <ScriptedModelDraw
- id="ModuleTag_Draw_Platform"
- OkToChangeModelColor="true">
- <ModelConditionState
- ParseCondStateType="PARSE_DEFAULT">
- <Model
- Name="SBBaseDefenseAir_Platform" />
- </ModelConditionState>
- <AnimationState
- ParseCondStateType="PARSE_DEFAULT">
- <Script>
- CurDrawableShowSubObjectPermanently("Bib")
- CurDrawableHideSubObjectPermanently("Platform")
- CurDrawableHideSubObjectPermanently("Platform_FX")
- </Script>
- </AnimationState>
- <AnimationState
- ParseCondStateType="PARSE_NORMAL">
- <Script>
- CurDrawableShowSubObjectPermanently("Bib")
- CurDrawableHideSubObjectPermanently("Platform")
- CurDrawableHideSubObjectPermanently("Platform_FX")
- </Script>
- </AnimationState>
- <AnimationState
- ParseCondStateType="PARSE_NORMAL"
- ConditionsYes="STRUCTURE_UNPACKING OVER_WATER">
- <Animation
- AnimationName="SBBaseDefenseAir_Platform_BLD"
- AnimationMode="ONCE"/>
- <ParticleSysBone
- BoneName="None"
- FXParticleSystemTemplate="AlliedPowerPlantWaterBuildupFroth"
- FollowBone="true" />
- <ParticleSysBone
- BoneName="None"
- FXParticleSystemTemplate="AlliedPowerPlantWaterBuildupMist"
- FollowBone="true" />
- <ParticleSysBone
- BoneName="None"
- FXParticleSystemTemplate="AlliedPowerPlantBuildupFlashes"
- FollowBone="true" />
- <ParticleSysBone
- BoneName="None"
- FXParticleSystemTemplate="AlliedPowerPlantBuildupSparksSeed"
- FollowBone="true" />
- </AnimationState>
- <AnimationState
- ParseCondStateType="PARSE_NORMAL"
- ConditionsYes="OVER_WATER"
- Flags="START_FRAME_LAST">
- <Animation
- AnimationName="SBBaseDefenseAir_Platform_BLD"
- AnimationBlendTime="0"
- AnimationMode="ONCE"
- AnimationAbsoluteTime="2s"/>
- <Script>
- CurDrawableShowSubObjectPermanently("Platform")
- CurDrawableShowSubObjectPermanently("Platform_FX")
- CurDrawableHideSubObjectPermanently("Bib")
- </Script>
- </AnimationState>
- <AnimationState
- ParseCondStateType="PARSE_NORMAL"
- ConditionsYes="OVER_WATER SOLD"
- Flags="START_FRAME_LAST">
- <Animation
- AnimationName="SBBaseDefenseAir_Platform_BLD"
- AnimationBlendTime="0"
- AnimationMode="ONCE_BACKWARDS"
- AnimationAbsoluteTime="2s"/>
- </AnimationState>
- </ScriptedModelDraw>
- <!-- DRAW SCAFFOLD -->
- <ScriptedModelDraw
- id="ModuleTag_Draw_Scaffold"
- OkToChangeModelColor="true"
- 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">
- <ModelConditionState
- ParseCondStateType="PARSE_DEFAULT">
- <Model
- Name="" />
- </ModelConditionState>
- <ModelConditionState
- ParseCondStateType="PARSE_NORMAL"
- ConditionsYes="SOLD">
- <Model
- Name="SSBaseDefenseAdvanced_Scaffold" />
- </ModelConditionState>
- <ModelConditionState
- ParseCondStateType="PARSE_NORMAL"
- ConditionsYes="STRUCTURE_UNPACKING JUST_BUILT">
- <Model
- Name="" />
- </ModelConditionState>
- <ModelConditionState
- ParseCondStateType="PARSE_NORMAL"
- ConditionsYes="STRUCTURE_UNPACKING">
- <Model
- Name="SSBaseDefenseAdvanced_Scaffold" />
- </ModelConditionState>
- <AnimationState
- ParseCondStateType="PARSE_DEFAULT">
- </AnimationState>
- <AnimationState
- ParseCondStateType="PARSE_NORMAL"
- ConditionsYes="SOLD"
- Flags="START_FRAME_LAST">
- <Animation
- AnimationName="SSBaseDefenseAdvanced_Scaffold"
- AnimationMode="ONCE_BACKWARDS"
- AnimationAbsoluteTime="2s"/>
- </AnimationState>
- <AnimationState
- ParseCondStateType="PARSE_NORMAL"
- ConditionsYes="STRUCTURE_UNPACKING">
- <Animation
- AnimationName="SSBaseDefenseAdvanced_Scaffold"
- AnimationMode="MATCH_UNPACKING"
- AnimationBlendTime="0" />
- </AnimationState>
- </ScriptedModelDraw>
-
- <!-- DRAW PARTICLES -->
- <ScriptedModelDraw
- id="ModuleTag_Draw_FX"
- OkToChangeModelColor="true">
- <ModelConditionState
- ParseCondStateType="PARSE_DEFAULT">
- <Model
- Name="SBBaseDefenseGround_FX" />
- </ModelConditionState>
- <ModelConditionState
- ParseCondStateType="PARSE_NORMAL"
- ConditionsYes="DAMAGED">
- <Model
- Name="SBBaseDefenseGround_FX" />
- <ParticleSysBone
- BoneName="FX_BONE01"
- FXParticleSystemTemplate="BuildingDamageFire"
- FollowBone="true"/>
- <ParticleSysBone
- BoneName="FX_BONE01"
- FXParticleSystemTemplate="BuildingDamageFire02"
- FollowBone="true"/>
- <ParticleSysBone
- BoneName="FX_BONE01"
- FXParticleSystemTemplate="BuildingDamageSmoke"
- FollowBone="true"/>
- </ModelConditionState>
- <ModelConditionState
- ParseCondStateType="PARSE_NORMAL"
- ConditionsYes="REALLYDAMAGED">
- <Model
- Name="SBBaseDefenseGround_FX" />
- <ParticleSysBone
- BoneName="FX_BONE01"
- FXParticleSystemTemplate="BuildingDamageFire"
- FollowBone="true"/>
- <ParticleSysBone
- BoneName="FX_BONE01"
- FXParticleSystemTemplate="BuildingDamageFire02"
- FollowBone="true"/>
- <ParticleSysBone
- BoneName="FX_BONE01"
- FXParticleSystemTemplate="BuildingDamageSmoke"
- FollowBone="true"/>
- <ParticleSysBone
- BoneName="FX_BONE02"
- FXParticleSystemTemplate="BuildingDamageFire"
- FollowBone="true"/>
- <ParticleSysBone
- BoneName="FX_BONE02"
- FXParticleSystemTemplate="BuildingDamageFire02"
- FollowBone="true"/>
- <ParticleSysBone
- BoneName="FX_BONE02"
- FXParticleSystemTemplate="BuildingDamageSmoke"
- FollowBone="true"/>
- </ModelConditionState>
- </ScriptedModelDraw>
- <TracerModelDraw
- id="ModuleTag_TracerModelDraw"
- MinLength="15.0"
- MaxLength="30.0"
- Width="8.0"
- MinSpeed="20"
- MaxSpeed="25"
- SweepSpeed="3.0"
- SpreadAngle="4.0"
- MinTracersPerFrame=".5"
- MaxTracersPerFrame=".8"
- FrameLifeTime="35"
- WeaponSlotType="PRIMARY_WEAPON"
- Texture="FXTracer"
- UseAdditiveBlending="true">
- <HeadColor
- r="1.0"
- g="1.0"
- b="1.0"
- a="1.0" />
- <TailColor
- r="1.0"
- g="1.0"
- b="1.0"
- a="1.0" />
- </TracerModelDraw>
- </Draws>
- <Behaviors>
- <WeaponSetUpdate
- id="ModuleTag_WeaponSetUpdate">
- <WeaponSlotTurret
- ID="1">
- <Weapon
- Ordering="PRIMARY_WEAPON"
- Template="SovietBaseDefenseGroundSentryGun" />
- <TurretSettings
- TurretTurnRate="200"
- TurretPitchRate="100"
- AllowsPitch="true"
- MinimumPitch="-60d"
- PitchHeight="90%"
- MinIdleScanTime="1.0s"
- MaxIdleScanTime="5.0s"
- MinIdleScanAngle="0.0"
- MaxIdleScanAngle="0.0">
- <TurretAITargetChooserData
- StartupDelay="1.0s"/>
- </TurretSettings>
- </WeaponSlotTurret>
- </WeaponSetUpdate>
- <!-- slow death must be defined before the structure topple.
- <SlowDeath
- id="ModuleTag_Death"
- SinkDelay="4.0s"
- SinkRate="4.0"
- DestructionDelay="10.0s">
- <Sound Type="INITIAL" List="HumanFaction_SmallBuilding_DieMS" /
- <DieMuxData
- DeathTypes="ALL"
- DeathTypesForbidden="SUICIDED" />
- </SlowDeath> -->
- <StancesBehavior
- id="ModuleTag_Stance"
- StanceTemplate="OffensiveStructures" />
-
- <Physics
- id="ModuleTag_Physics"/>
-
- <BuildingDestructionBehavior
- id="ModuleTag_BuildingDestruction"
- FillerMesh="NEWSKIN_FILL">
- <DieMuxData
- DeathTypes="ALL"
- DeathTypesForbidden="SUICIDED"/>
- <Item
- BonePrefix="BONE_CONTACT_POINT_"
- FX="SovietRefineryHit"
- FlingVelocity="100.0"/>
- </BuildingDestructionBehavior>
-
- <FXListBehavior
- xai:joinAction="Replace" xmlns:xai="uri:ea.com:eala:asset:instance" id="ModuleTag_FXList">
- <DieMuxData
- DeathTypes="ALL" />
- <Event
- Index="onDeath"
- FX="FX_YU_Hotel02_Explode" />
- </FXListBehavior>
- <FXListBehavior xai:joinAction="Replace" xmlns:xai="uri:ea.com:eala:asset:instance" id="ModuleTag_DieSound">
- <DieMuxData DeathTypes="ALL" />
- <Event Index="onDeath" FX="FX_SmallBuildingDieExplosion" />
- </FXListBehavior>
- <CreateObjectDie
- id="ModuleTag_CreateObjectDie"
- CreationList="SBDefenseGround_Die_OCL">
- <DieMuxData
- DeathTypes="ALL"
- DeathTypesForbidden="SUICIDED" />
- </CreateObjectDie>
- <DestroyDie
- id="ModuleTag_Die">
- <DieMuxData
- DeathTypes="ALL"
- DeathTypesForbidden="SUICIDED" />
- </DestroyDie>
- <StructureUnpackUpdate
- id="ModuleTag_StructureUnpackUpdate"
- UnpackTime="=$SOVIET_BASE_DEFENSE_GROUND_LOCAL_UNPACK_TIME" />
- <xi:include
- href="../../Includes/GenericBuildingRepair.xml" />
- <xi:include
- href="../../Includes/GenericSovietBuildingSuicide.xml" />
- <xi:include
- href="../../Includes/RepairAlliesEngineerContain.xml" />
- </Behaviors>
- <AI>
- <AIUpdate
- id="ModuleTag_AI"
- AutoAcquireEnemiesWhenIdle="YES"
- StateMachine="OffensiveStructureAIStateMachine">
- <UnitAITargetChooserData
- CanPickDynamicTargets="false"
- IdleScanDelay="0.2s" />
- </AIUpdate>
- </AI>
- <Body>
- <ActiveBody
- id="ModuleTag_Body"
- MaxHealth="625" />
- </Body>
- <Geometry
- IsSmall="false">
- <Shape
- Type= "BOX"
- MajorRadius = "7.5"
- MinorRadius = "7.5"
- Height = "15.0"
- ContactPointGeneration = "STRUCTURE" >
- <Offset
- x = "0.0"
- y = "0.0"
- z = "0.0" />
- </Shape>
- <Shape
- Type= "BOX"
- MajorRadius = "15.0"
- MinorRadius = "15.0"
- Height = "8.1" >
- <Offset
- x = "0.0"
- y = "0.0"
- z = "0.0" />
- </Shape>
- </Geometry>
- <AudioArrayVoice>
- <AudioEntry
- Sound="AudioEvent:SOV_SentryGun_Select"
- AudioType="voiceSelect" />
- </AudioArrayVoice>
- <!--
- <AudioArraySound>
- <AudioEntry Sound="HumanFaction_SmallBuilding_LightDamageMS" AudioType="soundOnDamaged" />
- <AudioEntry Sound="HumanFaction_SmallBuilding_HeavyDamageMS" AudioType="soundOnReallyDamaged" />
- </AudioArraySound>
- -->
- <VisionInfo
- VisionRange="310"
- ShroudClearingRange="500" />
- <ProjectedBuildabilityInfo
- Radius="0"
- BuildPlacementTypes="MAIN_STRUCTURE OTHER_STRUCTURE" />
- </GameObject>
- </AssetDeclaration>
|