Here is the code to my Airpad:
As always, thank you for any help
<?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:AST_Airpad.w3x" /> <Include type="all" source="ART:ASAirpad_D2S.w3x" /> <Include type="all" source="ART:ASAirpad_D2S.w3x" /> <Include type="all" source="ART:ASAirpad_D2A.w3x" /> <Include type="all" source="ART:ASAirpad_D3A.w3x" /> <Include type="all" source="ART:ASAirpad_D3S.w3x" /> <Include type="all" source="ART:ASAirpad_BLDS.w3x" /> <Include type="all" source="ART:ASAirpad_BLDA.w3x" /> <Include type="all" source="ART:ASAirpad_Do.w3x" /> <Include type="all" source="ART:ASAirpad_DoCl.w3x" /> <Include type="all" source="ART:ASAirpad_DoOp.w3x" /> <!-- Base Object --> <Include type="instance" source="DATA:BaseObjects/BaseStructure.xml" /> </Includes> <GameObject id="AlienWarpBeacon" inheritFrom="BaseStructure" SelectPortrait="Portrait_ALIENGravityStabilizer" ButtonImage="Portrait_ALIENGravityStabilizer" Side="ALIEN" EditorSorting="STRUCTURE" BuildCost="2000" BuildTime="20" EnergyProduction="-7" CommandSet="AlienWarpBeaconCommandSet" KindOf="PRELOAD STRUCTURE SELECTABLE IMMOBILE SCORE NEED_BASE_FOUNDATION FS_FACTORY AUTO_RALLYPOINT FS_WAR_FACTORY CAN_CAST_REFLECTIONS COVER NOT_AUTOACQUIRABLE AUTO_ACQUIRABLE_BY_AI" RadarPriority="STRUCTURE" PlacementViewAngle="-45d" ThreatLevel="1.0" BuildCompletion="PLACED_BY_PLAYER" ProductionQueueType="MAIN_STRUCTURE" BuildPlacementTypeFlag="MAIN_STRUCTURE" EditorName="GDIWarFactory" Description="Desc:GDIWarFactory" TypeDescription="Type:GDIWarFactory"> <DisplayName xai:joinAction="Replace" xmlns:xai="uri:ea.com:eala:asset:instance">Name:GDIWarFactory</DisplayName> <GameDependency> <RequiredObject>AlienControlCenter</RequiredObject> </GameDependency> <ArmorSet Armor="AlienWarpBeaconArmor" DamageFX="FactionStructureDamageFX" /> <SkirmishAIInformation BaseBuildingLocation="FRONT" /> <Draws> <scriptedModelDraw id="ModuleTag_Draw" OkToChangeModelColor="true" ExtraPublicBone="Runway0Park0Han Runway0Park1Han Runway1Park0Han Runway1Park1Han Runway0Parking0 Runway0Parking1 Runway1Parking0 Runway1Parking1"> <ModelConditionState ParseCondStateType="PARSE_DEFAULT"> <Model Name="AST_Airpad" /> </ModelConditionState> <ModelConditionState ParseCondStateType="PARSE_NORMAL" ConditionsYes="STRUCTURE_UNPACKING"> <Model Name="ASAirpad_BLDS" /> </ModelConditionState> <ModelConditionState ParseCondStateType="PARSE_NORMAL" ConditionsYes="RUBBLE"> <Model Name="ASAirpad_D3S" /> </ModelConditionState> <ModelConditionState ParseCondStateType="PARSE_NORMAL" ConditionsYes="REALLYDAMAGED"> <Model Name="ASAirpad_D2S" /> </ModelConditionState> <ModelConditionState ParseCondStateType="PARSE_NORMAL" ConditionsYes="DAMAGED"> <Model Name="AST_Airpad" /> <Texture Original="AST_Airpad_D" New="AST_Airpad_D2" /> </ModelConditionState> <AnimationState ParseCondStateType="PARSE_DEFAULT"> <!-- no anim --> </AnimationState> <!-- BUILDUP ANIMATION --> <AnimationState ParseCondStateType="PARSE_NORMAL" ConditionsYes="STRUCTURE_UNPACKING"> <Animation AnimationName="ASAirpad_BLDA" AnimationMode="ONCE" /> </AnimationState> <AnimationState ParseCondStateType="PARSE_NORMAL" ConditionsYes="RUBBLE" StateName="STATE_Rubble" Flags="START_FRAME_LAST"> <Animation AnimationName="ASAirpad_D3A" AnimationMode="MANUAL" /> <script> Prev = CurDrawablePrevAnimationState(); if Prev ~= "STATE_Rubble" and Prev ~= "TRANS_IntoRubble" then CurDrawableSetTransitionAnimState("TRANS_IntoRubble") end </Script> </AnimationState> <AnimationState ParseCondStateType="PARSE_NORMAL" ConditionsYes="REALLYDAMAGED" StateName="STATE_ReallyDamaged" Flags="START_FRAME_LAST"> <Animation AnimationName="ASAirpad_D2A" AnimationMode="MANUAL" /> <script> Prev = CurDrawablePrevAnimationState(); if Prev ~= "STATE_ReallyDamaged" and Prev ~= "TRANS_IntoReallyDamaged" then CurDrawableSetTransitionAnimState("TRANS_IntoReallyDamaged") end </Script> </AnimationState> <AnimationState ParseCondStateType="PARSE_TRANSITION" StateName="TRANS_IntoReallyDamaged"> <Animation AnimationName="ASAirpad_D2A" AnimationMode="ONCE" AnimationBlendTime="0" /> </AnimationState> <AnimationState ParseCondStateType="PARSE_TRANSITION" StateName="TRANS_IntoRubble"> <Animation AnimationName="ASAirpad_D3A" AnimationMode="ONCE" AnimationBlendTime="0" /> </AnimationState> </ScriptedModelDraw> <!-- DRAW DOOR01 --> <scriptedModelDraw id="ModuleTag_Draw_Door01" OkToChangeModelColor="true"> <ModelConditionState ParseCondStateType="PARSE_DEFAULT"> <Model Name="ASAirpad_Do" /> </ModelConditionState> <ModelConditionState ParseCondStateType="PARSE_NORMAL" ConditionsYes="STRUCTURE_UNPACKING"> <Model Name="" /> </ModelConditionState> <!-- BUILDUP ANIMATION --> <AnimationState ParseCondStateType="PARSE_DEFAULT" Flags="START_FRAME_FIRST"> <Animation AnimationName="ASAirpad_DoOp" AnimationMode="MANUAL" /> </AnimationState> <AnimationState ParseCondStateType="PARSE_NORMAL" ConditionsYes="STRUCTURE_UNPACKING"> <Animation AnimationName="" AnimationMode="ONCE" /> </AnimationState> <AnimationState ParseCondStateType="PARSE_NORMAL" ConditionsYes="DOOR_1_WAITING_OPEN" Flags="START_FRAME_FIRST"> <Animation AnimationName="ASAirpad_DoCl" AnimationMode="MANUAL" /> </AnimationState> <AnimationState ParseCondStateType="PARSE_NORMAL" ConditionsYes="DOOR_1_OPENING" StateName="STATE_Open"> <Animation AnimationName="ASAirpad_DoOp" AnimationMode="ONCE" /> </AnimationState> <AnimationState ParseCondStateType="PARSE_NORMAL" ConditionsYes="DOOR_1_CLOSING" StateName="STATE_Closed"> <Animation AnimationName="ASAirpad_DoCl" AnimationMode="ONCE" /> </AnimationState> <AnimationState ParseCondStateType="PARSE_NORMAL" ConditionsYes="DYING"> <Animation AnimationName="ASAirpad_DoCl" AnimationMode="ONCE" /> </AnimationState> </ScriptedModelDraw> <scriptedModelDraw id="ModuleTag_Draw_Door02" OkToChangeModelColor="true"> <ModelConditionState ParseCondStateType="PARSE_DEFAULT"> <Model Name="ASAirpad_Do" /> </ModelConditionState> <ModelConditionState ParseCondStateType="PARSE_NORMAL" ConditionsYes="STRUCTURE_UNPACKING"> <Model Name="" /> </ModelConditionState> <!-- BUILDUP ANIMATION --> <AnimationState ParseCondStateType="PARSE_DEFAULT" Flags="START_FRAME_FIRST"> <Animation AnimationName="ASAirpad_DoOp" AnimationMode="MANUAL" /> </AnimationState> <AnimationState ParseCondStateType="PARSE_NORMAL" ConditionsYes="STRUCTURE_UNPACKING"> <Animation AnimationName="" AnimationMode="ONCE" /> </AnimationState> <AnimationState ParseCondStateType="PARSE_NORMAL" ConditionsYes="DOOR_1_WAITING_OPEN" Flags="START_FRAME_FIRST"> <Animation AnimationName="ASAirpad_DoCl" AnimationMode="MANUAL" /> </AnimationState> <AnimationState ParseCondStateType="PARSE_NORMAL" ConditionsYes="DOOR_1_OPENING" StateName="STATE_Open"> <Animation AnimationName="ASAirpad_DoOp" AnimationMode="ONCE" /> </AnimationState> <AnimationState ParseCondStateType="PARSE_NORMAL" ConditionsYes="DOOR_1_CLOSING" StateName="STATE_Closed"> <Animation AnimationName="ASAirpad_DoCl" AnimationMode="ONCE" /> </AnimationState> <AnimationState ParseCondStateType="PARSE_NORMAL" ConditionsYes="DYING"> <Animation AnimationName="ASAirpad_DoCl" AnimationMode="ONCE" /> </AnimationState> </ScriptedModelDraw> <!-- draw a decal when this thing is selected --> <!-- This is duplicated in several files. Please do a search and update those too --> <scriptedModelDraw id="ModuleTag_Draw_Door03" OkToChangeModelColor="true"> <ModelConditionState ParseCondStateType="PARSE_DEFAULT"> <Model Name="ASAirpad_Do" /> </ModelConditionState> <ModelConditionState ParseCondStateType="PARSE_NORMAL" ConditionsYes="STRUCTURE_UNPACKING"> <Model Name="" /> </ModelConditionState> <!-- BUILDUP ANIMATION --> <AnimationState ParseCondStateType="PARSE_DEFAULT" Flags="START_FRAME_FIRST"> <Animation AnimationName="ASAirpad_DoOp" AnimationMode="MANUAL" /> </AnimationState> <AnimationState ParseCondStateType="PARSE_NORMAL" ConditionsYes="STRUCTURE_UNPACKING"> <Animation AnimationName="" AnimationMode="ONCE" /> </AnimationState> <AnimationState ParseCondStateType="PARSE_NORMAL" ConditionsYes="DOOR_1_WAITING_OPEN" Flags="START_FRAME_FIRST"> <Animation AnimationName="ASAirpad_DoCl" AnimationMode="MANUAL" /> </AnimationState> <AnimationState ParseCondStateType="PARSE_NORMAL" ConditionsYes="DOOR_1_OPENING" StateName="STATE_Open"> <Animation AnimationName="ASAirpad_DoOp" AnimationMode="ONCE" /> </AnimationState> <AnimationState ParseCondStateType="PARSE_NORMAL" ConditionsYes="DOOR_1_CLOSING" StateName="STATE_Closed"> <Animation AnimationName="ASAirpad_DoCl" AnimationMode="ONCE" /> </AnimationState> <AnimationState ParseCondStateType="PARSE_NORMAL" ConditionsYes="DYING"> <Animation AnimationName="ASAirpad_DoCl" AnimationMode="ONCE" /> </AnimationState> </ScriptedModelDraw> <scriptedModelDraw id="ModuleTag_Draw_Door04" OkToChangeModelColor="true"> <ModelConditionState ParseCondStateType="PARSE_DEFAULT"> <Model Name="ASAirpad_Do" /> </ModelConditionState> <ModelConditionState ParseCondStateType="PARSE_NORMAL" ConditionsYes="STRUCTURE_UNPACKING"> <Model Name="" /> </ModelConditionState> <!-- BUILDUP ANIMATION --> <AnimationState ParseCondStateType="PARSE_DEFAULT" Flags="START_FRAME_FIRST"> <Animation AnimationName="ASAirpad_DoOp" AnimationMode="MANUAL" /> </AnimationState> <AnimationState ParseCondStateType="PARSE_NORMAL" ConditionsYes="STRUCTURE_UNPACKING"> <Animation AnimationName="" AnimationMode="ONCE" /> </AnimationState> <AnimationState ParseCondStateType="PARSE_NORMAL" ConditionsYes="DOOR_1_WAITING_OPEN" Flags="START_FRAME_FIRST"> <Animation AnimationName="ASAirpad_DoCl" AnimationMode="MANUAL" /> </AnimationState> <AnimationState ParseCondStateType="PARSE_NORMAL" ConditionsYes="DOOR_1_OPENING" StateName="STATE_Open"> <Animation AnimationName="ASAirpad_DoOp" AnimationMode="ONCE" /> </AnimationState> <AnimationState ParseCondStateType="PARSE_NORMAL" ConditionsYes="DOOR_1_CLOSING" StateName="STATE_Closed"> <Animation AnimationName="ASAirpad_DoCl" AnimationMode="ONCE" /> </AnimationState> <AnimationState ParseCondStateType="PARSE_NORMAL" ConditionsYes="DYING"> <Animation AnimationName="ASAirpad_DoCl" AnimationMode="ONCE" /> </AnimationState> </ScriptedModelDraw> <scriptedModelDraw id="ModuleTag_Draw_Selected_Repair_Decal" OkToChangeModelColor="true"> <ModelConditionState ParseCondStateType="PARSE_DEFAULT"> <Model Name="" /> </ModelConditionState> <ModelConditionState ParseCondStateType="PARSE_NORMAL" ConditionsYes="SELECTED"> <Model Name="FXInvisBone" /> <ShadowInfo Type="ADDITIVE_DECAL" SizeX="=$REPAIR_DRONE_HOME_DECAL_SIZE" SizeY="=$REPAIR_DRONE_HOME_DECAL_SIZE" OverrideLODVisibility="true" MaxHeight="200" UseHouseColor="true" LocalPlayerOnly="true" Texture="Decal_Rig_CO" /> </ModelConditionState> </ScriptedModelDraw> </Draws> <Behaviors> <FXListBehavior id="ModuleTag_FXList"> <DieMuxData DeathTypes="ALL" /> <Event Index="onTransitionToDamaged" FX="FX_AlienBuildingDamagedL" /> <Event Index="onTransitionToReallyDamaged" FX="FX_AlienBuildingDamagedL" /> <Event Index="onTransitionToRubble" FX="FX_AlienBuildingRubbleL" /> </FXListBehavior> <ProductionUpdate id="ProductionUpdateModuleTag" GiveNoXP="true" Type="AIRCRAFT" NumDoorAnimations="1" DoorOpeningTime="0.66s" DoorWaitOpenTime="3.00s" DoorCloseTime="0.66s" /> <RecallUnitsSpecialPower id="ModuleTag_RecallSpecialPower" PlayReturnVoiceFromRecalledUnit="false" SpecialPowerTemplate="SpecialPower_RecallAllAircraft" /> <SpawnBehavior id="ModuleTag_SpawnRepairDrones" SpawnNumberData="3" InitialBurst="3" SpawnReplaceDelayData="10s" SpawnedRequireSpawner="true" KillSpawnsOnCaptured="true" SpawnInsideBuilding="true" KillSpawnsOnDisabled="true"> <Die DeathTypes="ALL" /> <SpawnTemplate>AlienRepairAircraftDrone</SpawnTemplate> </SpawnBehavior> <!-- <QueueProductionExitUpdate id="ModuleTag_07" ExitDelay="1"> <UnitCreatePoint x="0.0" y="0.0" /> <NaturalRallyPoint x="0.0" y="0.0" z="100.0" /> </QueueProductionExitUpdate> --> <ParkingPlaceBehavior id="ModuleTag_ParkingPlaceBehavior" HealAmount="0" NumRows="2" NumCols="2" ApproachHeight="0" ParkInHangars="false" DoorOpenTime="2s" DoorCloseTime="2s" LowersOntoParkingPlaceOnProduction="true"> <DefaultRallyPointOffset x="73.0" y="0.0" z="0" /> <CanParkHereFilter Rule="ALL" Relationship="SAME_PLAYER" Exclude="SUMMONED TRANSPORT" /> </ParkingPlaceBehavior> <StructureUnpackUpdate UnpackTime="2.0s" /> <SlowDeath id="ModuleTag_Death" SinkDelay="4.0s" SinkRate="4.0" DestructionDelay="8.0s"> <Sound Type="INITIAL" List="ALI_Building_Die" /> <DieMuxData DeathTypes="ALL" /> </SlowDeath> <xi:include href="DATA:Includes/GenericBuildingRepair.xml" /> <xi:include href="DATA:Includes/GenericEngineerContain.xml" /> <xi:include href="DATA:Includes/GenericAlienBuildingDestruction.xml" /> <xi:include href="DATA:Includes/GenericAlienBuildingSuicide.xml" /> </Behaviors> <AI> <!-- needed for special powers --> <AIUpdate id="ModuleTag_AIUpdate" AutoAcquireEnemiesWhenIdle="NO" /> </AI> <Body> <ActiveBody id="ModuleTag_Body" MaxHealth="6000" /> </Body> <Geometry IsSmall="false"> <Shape Type="BOX" MajorRadius="50.0" MinorRadius="50.0" Height="30.0"> <Offset x="0" y="0" z="0" /> </Shape> <Shape Type="BOX" MajorRadius="10.0" MinorRadius="50.0" Height="75.0"> <Offset x="-24" y="0" z="0" /> </Shape> <ContactPoint> <Pos x="-42.0" y="48.0" z="30" /> </ContactPoint> <ContactPoint> <Pos x="44.0" y="48.0" z="0" /> </ContactPoint> <ContactPoint> <Pos x="44.0" y="-30.0" z="30" /> </ContactPoint> <ContactPoint> <Pos x="44.0" y="48.0" z="0" /> </ContactPoint> <ContactPoint> <Pos x="-40.0" y="-45.0" z="30" /> </ContactPoint> <ContactPoint> <Pos x="44.0" y="48.0" z="0" /> </ContactPoint> <ContactPoint> <Pos x="-40.0" y="-45.0" z="30" /> </ContactPoint> <ContactPoint> <Pos x="-42.0" y="48.0" z="0" /> </ContactPoint> </Geometry> <AudioArrayVoice> <AudioEntry Sound="AudioEvent:GDI_WarFactorySelect" AudioType="voiceSelect" /> </AudioArrayVoice> <AudioArraySound> <AudioEntry Sound="HumanFaction_MediumBuilding_LightDamageMS" AudioType="soundOnDamaged" /> <AudioEntry Sound="HumanFaction_MediumBuilding_HeavyDamageMS" AudioType="soundOnReallyDamaged" /> </AudioArraySound> <ShadowInfo Type="VOLUME" /> <VisionInfo VisionRange="160" ShroudClearingRange="400" /> <ProjectedBuildabilityInfo Radius="250" BuildPlacementTypes="MAIN_STRUCTURE OTHER_STRUCTURE" /> </GameObject> </AssetDeclaration>