<?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:GBGolumCan_SKN.w3x" />
		<Include
			type="all"
			source="ART:GBGolumCan_ASN.w3x" />
		<Include
			type="all"
			source="ART:GBGolumCan_AAN.w3x" />
		<Include
			type="all"
			source="ART:GBGolumCan_D2SN.w3x" />
		<Include
			type="all"
			source="ART:GBGolumCan_D2AN.w3x" />
		<Include
			type="all"
			source="ART:GBGolumCan_D3SN.w3x" />
		<Include
			type="all"
			source="ART:GBGolumCan_D3AN.w3x" />
		<Include
			type="all"
			source="ART:FXspotlight.w3x" />
		<!-- Base Object -->
		<Include
			type="instance"
			source="DATA:BaseObjects/BaseStructure.xml" />
	</Includes>
	<GameObject
		id="GDIGolumCannon"
		inheritFrom="BaseStructure"
		SelectPortrait="Portrait_GDIGuardianCannon"
		ButtonImage="Portrait_GDIGuardianCannon"
		Side="GDI"
		EditorSorting="STRUCTURE"
		TransportSlotCount="1"
		BuildCost="1200"
		BuildTime="12"
		EnergyProduction="-8"
		CommandSet="GDIGolumCannonCommandSet"
		KindOf="STRUCTURE SELECTABLE CAN_ATTACK ATTACK_NEEDS_LINE_OF_SIGHT IMMOBILE CAN_CAST_REFLECTIONS FS_BASE_DEFENSE POWERED AUTO_ACQUIRABLE_BY_AI COVER CAN_SEE_THROUGH_STRUCTURE CAN_SHOOT_OVER_WALLS"
		RadarPriority="STRUCTURE"
		PlacementViewAngle="225d"
		CampnessValue="=$CAMPNESS_DEFENSIVE_STRUCTURE"
		ProductionQueueType="OTHER_STRUCTURE"
		BuildPlacementTypeFlag="OTHER_STRUCTURE"
		WeaponCategory="CANNON"
		EditorName="GDIGolumCannon"
		TypeDescription="Type:GDIGolumCannon"
		Description="Desc:GDIGolumCannon">
		<DisplayName
			xai:joinAction="Replace" xmlns:xai="uri:ea.com:eala:asset:instance">Name:GDIGolumCannon</DisplayName> 
		<GameDependency>
			<RequiredObject>GDIBarracks</RequiredObject>
		</GameDependency>
		<ArmorSet
			Armor="GDIGolumCannonArmor"
			DamageFX="FactionStructureDamageFX" />
		<SkirmishAIInformation
			BaseBuildingLocation="SPREAD" />
		<Draws>
			<ScriptedModelDraw
				id="ModuleTag_Draw"
				OkToChangeModelColor="true"
				InitialRecoilSpeed="10.0"
				MaxRecoilDistance="4"
				RecoilDamping="2.0"
				RecoilSettleSpeed="0.7">
				<ModelConditionState
					ParseCondStateType="PARSE_DEFAULT">
					<Model
						Name="GBGolumCan_SKN" />
					<WeaponFireFXBone
						WeaponSlotType="PRIMARY_WEAPON"
						BoneName="FX_Weapon" />
					<WeaponRecoilBone
						WeaponSlotType="PRIMARY_WEAPON"
						BoneName="BONE_GUN" />
					<WeaponLaunchBone
						WeaponSlotType="PRIMARY_WEAPON"
						BoneName="FX_Weapon" />
					<Turret
						TurretNameKey="Bone_Turret"
						TurretPitch="Turret_Pitch"
						TurretID="1" />
				</ModelConditionState>
				<!-- BUILDING -->
				<ModelConditionState
					ParseCondStateType="PARSE_NORMAL"
					ConditionsYes="STRUCTURE_UNPACKING">
					<Model
						Name="GBGolumCan_ASN" />
				</ModelConditionState>
				<ModelConditionState
					ParseCondStateType="PARSE_NORMAL"
					ConditionsYes="RUBBLE">
					<Model
						Name="GBGolumCan_D3SN" />
				</ModelConditionState>
				<ModelConditionState
					ParseCondStateType="PARSE_NORMAL"
					ConditionsYes="REALLYDAMAGED">
					<Model
						Name="GBGolumCan_D2SN" />
				</ModelConditionState>
				<ModelConditionState
					ParseCondStateType="PARSE_NORMAL"
					ConditionsYes="DAMAGED">
					<Model
						Name="GBGolumCan_SKN" />
					<Texture
						Original="GBGolumCannon"
						New="GBGolumCannon_D" />
				</ModelConditionState>
				<AnimationState
					ParseCondStateType="PARSE_DEFAULT">
					<Script>
						CurDrawableHideSubObject("UG_RailAcceleratorBARREL1")
						CurDrawableHideSubObject("UGRailAcceleratorMAIN")
					</Script>
				</AnimationState>
				
				<AnimationState
					ParseCondStateType="PARSE_NORMAL"
					ConditionsYes="BUILD_PLACEMENT_CURSOR">
					<Script>
						CurDrawableHideSubObject("UG_RAILBARREL1")
						CurDrawableHideSubObject("UG_RAILBARREL2")
						CurDrawableHideSubObject("UGRAILMAIN")
						CurDrawableHideSubObject("UG_RailAcceleratorBARREL1")
						CurDrawableHideSubObject("UGRailAcceleratorMAIN")						
					</Script>
				</AnimationState>				
				<AnimationState
					ParseCondStateType="PARSE_NORMAL"
					ConditionsYes="STRUCTURE_UNPACKING">
					<Animation
						AnimationName="GBGolumCan_AAN"
						AnimationMode="ONCE" />
					<ParticleSysBone
						BoneName="NONE"
						FXParticleSystemTemplate="Con_Small"
						FollowBone="true" />
					<Script>
						CurDrawableHideSubObject("UG_RailAcceleratorBARREL1")
						CurDrawableHideSubObject("UGRailAcceleratorMAIN")
					</Script>						
				</AnimationState>
				<AnimationState
					ParseCondStateType="PARSE_NORMAL"
					ConditionsYes="RUBBLE"
					StateName="STATE_Rubble"
					Flags="START_FRAME_LAST">
					<Script>
						CurDrawableHideSubObject("UG_RailAcceleratorBARREL1")
						CurDrawableHideSubObject("UGRailAcceleratorMAIN")
					</Script>
					<Animation
						AnimationName="GBGolumCan_D3AN"
						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">
					<Script>
						CurDrawableHideSubObject("UG_RailAcceleratorBARREL1")
						CurDrawableHideSubObject("UGRailAcceleratorMAIN")
					</Script>					
					<Animation
						AnimationName="GBGolumCan_D2AN"
						AnimationMode="MANUAL" />
					<Script>					
						Prev = CurDrawablePrevAnimationState();
						if Prev ~= "STATE_ReallyDamaged" and Prev ~= "TRANS_IntoReallyDamaged" then
						CurDrawableSetTransitionAnimState("TRANS_IntoReallyDamaged")
						end						
					</Script>
				</AnimationState>		
				<AnimationState
					ParseCondStateType="PARSE_NORMAL"
					ConditionsYes="DAMAGED"
					StateName="STATE_Damaged"
					Flags="START_FRAME_LAST">
					<Animation
						AnimationName="ABGatewayD1"
						AnimationMode="MANUAL" />
					<Script>
						Prev = CurDrawablePrevAnimationState();
						if Prev ~= "STATE_Damaged" and Prev ~= "TRANS_IntoDamaged" then
						CurDrawableSetTransitionAnimState("TRANS_IntoDamaged")
						end
						CurDrawableHideSubObject("UG_RailAcceleratorBARREL1")
						CurDrawableHideSubObject("UGRailAcceleratorMAIN")
					</Script>	
				</AnimationState>

				<AnimationState
					ParseCondStateType="PARSE_TRANSITION"
					StateName="TRANS_IntoDamaged">
					<Animation
						AnimationName="ABGatewayD1"
						AnimationMode="ONCE"
						AnimationBlendTime="0"/>
					<Script>
						CurDrawableHideSubObject("UG_RailAcceleratorBARREL1")
						CurDrawableHideSubObject("UGRailAcceleratorMAIN")
					</Script>				
				</AnimationState>
				<AnimationState
					ParseCondStateType="PARSE_TRANSITION"
					StateName="TRANS_IntoReallyDamaged">
					<Script>
						CurDrawableHideSubObject("UG_RailAcceleratorBARREL1")
						CurDrawableHideSubObject("UGRailAcceleratorMAIN")
					</Script>
					<Animation
						AnimationName="GBGolumCan_D2AN"
						AnimationMode="ONCE"
						AnimationBlendTime="0" />						
				</AnimationState>
				<AnimationState
					ParseCondStateType="PARSE_TRANSITION"
					StateName="TRANS_IntoRubble">
					<Script>
						CurDrawableHideSubObject("UG_RailAcceleratorBARREL1")
						CurDrawableHideSubObject("UGRailAcceleratorMAIN")
					</Script>					
					<Animation
						AnimationName="GBGolumCan_D3AN"
						AnimationMode="ONCE"
						AnimationBlendTime="0" />						
				</AnimationState>
				<AnimationState
					ParseCondStateType="PARSE_NORMAL"
					ConditionsYes="USING_WEAPON_C">
					<Script>
						CurDrawableShowSubObject("UG_RailAcceleratorBARREL1")
						CurDrawableShowSubObject("UGRailAcceleratorMAIN")
					</Script>
				</AnimationState>	
				
				
			<!-- Railguns -->
				
				<AnimationState
					ParseCondStateType="PARSE_NORMAL"
					ConditionsYes="STRUCTURE_UNPACKING USING_WEAPON_C">
					<Animation
						AnimationName="GBGolumCan_AAN"
						AnimationMode="ONCE" />
					<ParticleSysBone
						BoneName="NONE"
						FXParticleSystemTemplate="Con_Small"
						FollowBone="true" />
					<Script>
						CurDrawableShowSubObject("UG_RailAcceleratorBARREL1")
						CurDrawableShowSubObject("UGRailAcceleratorMAIN")
					</Script>						
				</AnimationState>
				<AnimationState
					ParseCondStateType="PARSE_NORMAL"
					ConditionsYes="RUBBLE USING_WEAPON_C"
					StateName="STATE_Rubble"
					Flags="START_FRAME_LAST">
					<Animation
						AnimationName="GBGolumCan_D3AN"
						AnimationMode="MANUAL" />
					<Script>
						Prev = CurDrawablePrevAnimationState();
						if Prev ~= "STATE_Rubble" and Prev ~= "TRANS_IntoRubble" then
						CurDrawableSetTransitionAnimState("TRANS_IntoRubble")
						end
						CurDrawableShowSubObject("UG_RailAcceleratorBARREL1")
						CurDrawableShowSubObject("UGRailAcceleratorMAIN")
					</Script>
				</AnimationState>
				<AnimationState
					ParseCondStateType="PARSE_NORMAL"
					ConditionsYes="REALLYDAMAGED USING_WEAPON_C"
					StateName="STATE_ReallyDamaged"
					Flags="START_FRAME_LAST">
					<Animation
						AnimationName="GBGolumCan_D2AN"
						AnimationMode="MANUAL" />
					<Script>				
						Prev = CurDrawablePrevAnimationState();
						if Prev ~= "STATE_ReallyDamaged" and Prev ~= "TRANS_IntoReallyDamaged" then
						CurDrawableSetTransitionAnimState("TRANS_IntoReallyDamaged")
						end
						CurDrawableShowSubObject("UG_RailAcceleratorBARREL1")
						CurDrawableShowSubObject("UGRailAcceleratorMAIN")
					</Script>
				</AnimationState>				
				<AnimationState
					ParseCondStateType="PARSE_TRANSITION"
					ConditionsYes="USING_WEAPON_C"					
					StateName="TRANS_IntoReallyDamaged">
					<Animation
						AnimationName="GBGolumCan_D2AN"
						AnimationMode="ONCE"
						AnimationBlendTime="0" />
					<Script>
						CurDrawableShowSubObject("UG_RailAcceleratorBARREL1")
						CurDrawableShowSubObject("UGRailAcceleratorMAIN")
					</Script>						
				</AnimationState>
				<AnimationState
					ParseCondStateType="PARSE_TRANSITION"
					ConditionsYes="USING_WEAPON_C"						
					StateName="TRANS_IntoRubble">
					<Animation
						AnimationName="GBGolumCan_D3AN"
						AnimationMode="ONCE"
						AnimationBlendTime="0" />
					<Script>
						CurDrawableShowSubObject("UG_RailAcceleratorBARREL1")
						CurDrawableShowSubObject("UGRailAcceleratorMAIN")
					</Script>						
				</AnimationState>
				
			</ScriptedModelDraw>
			<SpotlightDraw
				id="ModuleTag_Spotlight"
				AttachToBoneInAnotherModule="Bone_Spotlite"
				RefreshTime="2.0s"
				SweepTime="1.0s">
				<ModelConditionState
					ParseCondStateType="PARSE_DEFAULT">
					<Model
						Name="FXspotlight" />
				</ModelConditionState>
				<ModelConditionState
					ParseCondStateType="PARSE_NORMAL"
					ConditionsYes="BUILD_PLACEMENT_CURSOR">
					<Model
						Name="" />
				</ModelConditionState>
				<AnimationState
					ParseCondStateType="PARSE_NORMAL"
					ConditionsYes="BUILD_PLACEMENT_CURSOR">
					<Script>
						CurDrawableHideSubObject("Plane01")
					</Script>	
				</AnimationState>		
			</SpotlightDraw>
		</Draws>
		<Behaviors>
			<SlowDeath
				id="ModuleTag_Death"
				SinkDelay="3.0s"
				SinkRate="4.0"
				DestructionDelay="8.0s">
				<Sound Type="INITIAL" List="HumanFaction_SmallBuilding_DieMS" />
				<DieMuxData
					DeathTypes="ALL" />
			</SlowDeath>
			<FXListBehavior
				id="ModuleTag_FXList">
				<DieMuxData
					DeathTypes="ALL" />
				<Event
					Index="onTransitionToDamaged"
					FX="FX_BuildDamaged_Small" />
				<Event
					Index="onTransitionToReallyDamaged"
					FX="FX_BuildDamaged_Small" />
				<Event
					Index="onTransitionToRubble"
					FX="FX_BuildRubble_Small" />
			</FXListBehavior>
			<StructureUnpackUpdate
				UnpackTime="1.5s" />
			<StealthDetectorUpdate
				id="ModuleTag_StealthDetect"
				DetectionRange="=$GDI_TERRAFORMINGSTATION_STEALTH_DETECTION_RANGE" />
			<WeaponSetUpdate
				id="ModuleTag_WeaponSetUpdate">
				<WeaponSlotTurret
					ID="1"
					AllowInterleavedFiring="false"
					InterleavedStyle="INTERLEAVE_FIRST_AVAILABLE"
					WeaponChoiceCriteria="PREFER_MOST_DAMAGE">
					<Weapon
						Ordering="PRIMARY_WEAPON"
						Template="GDIGolemCannon" />
					<!-- dummy weapon left in to preserve saved games.  -->
					<Weapon
						Ordering="PRIMARY_WEAPON"
						Template="GDIGolemCannonRailgun"
						ObjectStatus="WEAPON_UPGRADED_01" />
					<TurretSettings
						TurretTurnRate="290"
						TurretPitchRate="100"
						AllowsPitch="true"
						MinimumPitch="-10d"
						PitchHeight="90%"
						MinIdleScanTime="1.0s"
						MaxIdleScanTime="5.0s"
						MinIdleScanAngle="0.0"
						MaxIdleScanAngle="90.0">
						<TurretAITargetChooserData />
					</TurretSettings>
				</WeaponSlotTurret>
			</WeaponSetUpdate>
			<xi:include
				href="../../Includes/GenericBuildingRepair.xml" />
			<xi:include
				href="../../Includes/GenericGDIBuildingSuicide.xml" />
			<xi:include
				href="../../Includes/RepairAlliesEngineerContain.xml" />
			<!-- dummy module left in to preserve saved games.  -->
			<StatusBitsUpgrade
				id="ModuleTag_UpgradeWeapon"
				StatusToSet="WEAPON_UPGRADED_01">
				<TriggeredBy>Upgrade_GDIArmoryRailgunTech</TriggeredBy>
			</StatusBitsUpgrade>
			<StatusBitsUpgrade
				id="ModuleTag_UpgradeWeaponStatusSetForRGA"
				StatusToSet="RIDER2">
				<TriggeredBy>Upgrade_GDIArmoryRailgunTech</TriggeredBy>
			</StatusBitsUpgrade>			
			<SubObjectsUpgrade
				id="ModuleTag_Upgrade_ShowRailguns"
				ShowSubObjects="UGRAILMAIN UG_RAILBARREL2 UG_RAILBARREL1">
				<TriggeredBy>Upgrade_GDIArmoryRailgunTech</TriggeredBy>
			</SubObjectsUpgrade>	
			
		</Behaviors>
		<AI>
			<AIUpdate
				id="ModuleTag_AI"
				AutoAcquireEnemiesWhenIdle="YES"
				AILuaEventsList="GDIGuardianCannonFunctions">
				<UnitAITargetChooserData
					CanPickDynamicTargets="false" />
			</AIUpdate>
		</AI>
		<Body>
			<ActiveBody
				id="ModuleTag_Body"
				MaxHealth="5000" />
		</Body>
		<ClientBehaviors>
			<ModelConditionAudioLoopClientBehavior id="ModuleTag_RailgunAccelerator">
				<ModelConditionSound Sound="GDI_RailgunAccelerator_EnergyStripeLoop" RequiredFlags="USING_WEAPON_C" />
			</ModelConditionAudioLoopClientBehavior>
		</ClientBehaviors>
		<Geometry
			IsSmall="false">
			<Shape
				Type="CYLINDER"
				MajorRadius="18.0"
				Height="20.0">
				<Offset
					x="-4.5"
					y="0.0"
					z="0" />
			</Shape>
			<ContactPoint>
				<Pos
					x="-13.0"
					y="13.0"
					z="20" />
			</ContactPoint>
			<ContactPoint>
				<Pos
					x="13.0"
					y="13.0"
					z="0" />
			</ContactPoint>
			<ContactPoint>
				<Pos
					x="13.0"
					y="-13.0"
					z="20" />
			</ContactPoint>
			<ContactPoint>
				<Pos
					x="13.0"
					y="13.0"
					z="0" />
			</ContactPoint>
			<ContactPoint>
				<Pos
					x="-13.0"
					y="-13.0"
					z="20" />
			</ContactPoint>
			<ContactPoint>
				<Pos
					x="13.0"
					y="13.0"
					z="0" />
			</ContactPoint>
			<ContactPoint>
				<Pos
					x="-13.0"
					y="-13.0"
					z="20" />
			</ContactPoint>
			<ContactPoint>
				<Pos
					x="-13.0"
					y="13.0"
					z="0" />
			</ContactPoint>
		</Geometry>
		<AudioArrayVoice>
			<AudioEntry
				Sound="GDI_GolumCannonSelect"
				AudioType="voiceSelect" />
		</AudioArrayVoice>
		<AudioArraySound>
			<AudioEntry Sound="HumanFaction_SmallBuilding_LightDamageMS" AudioType="soundOnDamaged" />
			<AudioEntry Sound="HumanFaction_SmallBuilding_HeavyDamageMS" AudioType="soundOnReallyDamaged" />
		</AudioArraySound>
		<ShadowInfo
			Type="VOLUME" />
		<VisionInfo
			VisionRange="350"
			ShroudClearingRange="500" />
	</GameObject>
</AssetDeclaration>