<?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="ART:NUBeam_SKN.w3x" />
		<Include
			type="all"
			source="ART:NUBeam_FP.w3x" />			
		<Include
			type="all"
			source="ART:NUBeamR_SKN.w3x" />
		<Include
			type="all"
			source="ART:FXBeam.xml" />
		<Include
			type="all"
			source="ART:FXSmokeTrail.xml" />
		<Include
			type="all"
			source="ART:FXSmokeTrail_NRM.xml" />
		<Include
			type="all"
			source="ART:FXRailGunCoreDistortion.xml" />
		<Include
			type="all"
			source="ART:FXRailGunCoreMask.xml" />
		<!-- Base Object -->
		<Include
			type="instance"
			source="DATA:BaseObjects/BaseVehicle.xml" />
	</Includes>
	<GameObject
		id="NODBeamCannon"
		inheritFrom="BaseVehicle"
		SelectPortrait="Portrait_NODBeamCannon"
		ButtonImage="Portrait_NODBeamCannon"
		Side="NOD"
		EditorSorting="UNIT"
		TransportSlotCount="1"
		BuildCost="1000"
		BuildTime="10"
		CommandSet="NODBeamCannonCommandSet"
		CommandPoints="100" 
		KindOf="PRELOAD SELECTABLE CAN_ATTACK ATTACK_NEEDS_LINE_OF_SIGHT CAN_CAST_REFLECTIONS SCORE TRANSPORT VEHICLE CAN_REVERSE_MOVE SIEGE_WEAPON CAN_BE_FAVORITE_UNIT"
		RadarPriority="UNIT"
		ProductionQueueType="VEHICLE"
		UnitCategory="VEHICLE"
		WeaponCategory="CANNON"
		VoicePriority="208"
		EditorName="NODBeamCannon"
		Description="Desc:NODBeamCannon"
		TypeDescription="Type:NODBeamCannon">
		<DisplayName
			xai:joinAction="Replace" xmlns:xai="uri:ea.com:eala:asset:instance">Name:NODBeamCannon</DisplayName>
		<GameDependency>
			<RequiredObject>NODOperationsCenter</RequiredObject>
		</GameDependency>
		<ArmorSet
			Armor="NODBeamCannonArmor"
			DamageFX="VehicleDamageFX" />
		<LocomotorSet
			Locomotor="NODBeamCannonLocomotor"
			Condition="NORMAL"
			Speed="75.0" />
		<SkirmishAIInformation
			UnitBuilderStandardCombatUnit="true"
			ConquerMetricsOverrideDPS="150"
			ConquerMetricsOverrideDamageType="GRENADE" />
		<Draws>
			<TruckDraw
				id="ModuleTag_Draw"
				OkToChangeModelColor="true"
				TrackMarks="EXTireTrack2"
				TrackMarksOnlyWhenCorneringQuickly="true"
				TrackMarksLeftBone="Bone_TireLR"
				TrackMarksRightBone="Bone_TireRR"				
				LeftFrontTireBone="Bone_Tire_LF"
				RightFrontTireBone="Bone_Tire_RF"
				MidLeftRearTireBone="Bone_Tire_LM"
				MidRightRearTireBone="Bone_Tire_RM"
				LeftRearTireBone="Bone_Tire_LR"
				RightRearTireBone="Bone_Tire_RR"
				TireRotationMultiplier="0.2"
				PowerslideRotationAddition="1.25">
				<ModelConditionState
					ParseCondStateType="PARSE_DEFAULT">
					<Model
						Name="NUBeam_SKN" />
					<WeaponFireFXBone
						WeaponSlotType="PRIMARY_WEAPON"
						BoneName="FX_Weapon" />
					<WeaponLaunchBone
						WeaponSlotType="PRIMARY_WEAPON"
						BoneName="FX_Weapon" />
					<Turret
						TurretNameKey="Turret"
						TurretPitch="Turret_Pitch"
						TurretID="1" />
				</ModelConditionState>
				<ModelConditionState
					ParseCondStateType="PARSE_NORMAL"
					ConditionsYes="FORMATION_PREVIEW">
					<Model
						Name="NUBeam_FP" />
				</ModelConditionState>					
				<ModelConditionState
					ParseCondStateType="PARSE_NORMAL"
					ConditionsYes="DYING">
					<Model
						Name="NUBeamR_SKN" />
					<ParticleSysBone
						BoneName="ROOTTRANSFORM"
						FXParticleSystemTemplate="GDIDebrisSmallFire"
						FollowBone="true" />
					<ParticleSysBone
						BoneName="ROOTTRANSFORM"
						FXParticleSystemTemplate="GDIDebrisSmallFireDistortion"
						FollowBone="true" />
					<ParticleSysBone
						BoneName="ROOTTRANSFORM"
						FXParticleSystemTemplate="GDIDebrisSmallSmoke"
						FollowBone="true" />
				</ModelConditionState>
				<ModelConditionState
					ParseCondStateType="PARSE_NORMAL"
					ConditionsYes="REALLYDAMAGED">
					<Model
						Name="NUBeam_SKN" />
					<Texture
						Original="NUBeam"
						New="NUBeamD" />
					<ParticleSysBone
						BoneName="ROOTTRANSFORM"
						FXParticleSystemTemplate="GDIDebrisSmallSmoke"
						FollowBone="true" />
				</ModelConditionState>
				<ModelConditionState
					ParseCondStateType="PARSE_NORMAL"
					ConditionsYes="AFFECTED_BY_EMP">
					<Model
						Name="NUBeam_SKN" />
				</ModelConditionState>
				<ModelConditionState
					ParseCondStateType="PARSE_NORMAL"
					ConditionsYes="PARALYZED">
					<Model
						Name="NUBeam_SKN" />
				</ModelConditionState>
				<ModelConditionState
					ParseCondStateType="PARSE_NORMAL"
					ConditionsYes="UNPACKING">
					<Model
						Name="NUBeam_SKN" />
					<ParticleSysBone
						BoneName="FX_Weapon"
						FXParticleSystemTemplate="BeamPreFireFlash"
						FollowBone="true" />
					<ParticleSysBone
						BoneName="FX_Weapon"
						FXParticleSystemTemplate="BeamPreFireDist"
						FollowBone="true" />
				</ModelConditionState>
				<ModelConditionState
					ParseCondStateType="PARSE_NORMAL"
					ConditionsYes="PREPARING">
					<Model
						Name="NUBeam_SKN" />
					<ParticleSysBone
						BoneName="FX_Weapon"
						FXParticleSystemTemplate="BeamConstantFire"
						FollowBone="true" />
					<ParticleSysBone
						BoneName="FX_Weapon"
						FXParticleSystemTemplate="BeamConstantFire02"
						FollowBone="true" />
				</ModelConditionState>
			</TruckDraw>
			<LaserDraw
				id="ModuleTag_LaserDraw"
				Texture1_UTile="1"
				Texture1_VTile=".5"
				Texture1_UScrollRate="0"
				Texture1_VScrollRate=".2"
				Texture1_NumFrames="1"
				Texture1_FrameRate="30"
				Texture2_UTile="1"
				Texture2_VTile=".03"
				Texture2_UScrollRate="0"
				Texture2_VScrollRate="1"
				Texture2_NumFrames="1"
				Texture2_FrameRate="30"
				LaserWidth="20"
				LaserStateID="1">
				<FXShader
					ShaderName="Laser.fx"
					TechniqueIndex="0">
					<Constants>
						<Texture
							Name="Texture1">
							<Value>FXObeliskLaser</Value>
						</Texture>
						<Texture
							Name="Texture2">
							<Value>FXLaserOverlay</Value>
						</Texture>
					</Constants>
				</FXShader>
				<ObjectStatusValidation
					ForbiddenStatus="WEAPON_UPGRADED_03" />		
			</LaserDraw>
			<LaserDraw
				id="ModuleTag_LaserDistort"
				UseDistortionShader="true"
				Texture1_UTile="1"
				Texture1_VTile=".5"
				Texture1_UScrollRate="0"
				Texture1_VScrollRate=".2"
				Texture1_NumFrames="1"
				Texture1_FrameRate="30"
				Texture2_UTile="1"
				Texture2_VTile=".01"
				Texture2_UScrollRate="0"
				Texture2_VScrollRate="1"
				Texture2_NumFrames="1"
				Texture2_FrameRate="1"
				LaserWidth="50">
				<FXShader
					ShaderName="Laser.fx"
					TechniqueIndex="0">
					<Constants>
						<Texture
							Name="Texture1">
							<Value>FXRailGunCoreDistortion</Value>
						</Texture>
						<Texture
							Name="Texture2">
							<Value>FXRailGunCoreMask</Value>
						</Texture>
					</Constants>
				</FXShader>
				<ObjectStatusValidation
					ForbiddenStatus="WEAPON_UPGRADED_03" />		
			</LaserDraw>
			
			<!-- Veterancy -->
			
			<LaserDraw
				id="ModuleTag_LaserDraw1_Veterancy"
				Texture1_UTile="1"
				Texture1_VTile=".5"
				Texture1_UScrollRate="0"
				Texture1_VScrollRate=".2"
				Texture1_NumFrames="1"
				Texture1_FrameRate="30"
				Texture2_UTile="1"
				Texture2_VTile=".03"
				Texture2_UScrollRate="0"
				Texture2_VScrollRate="1"
				Texture2_NumFrames="1"
				Texture2_FrameRate="30"
				LaserWidth="20"
				WeaponSlotID="1"
				LaserStateID="1">
				<FXShader
					ShaderName="Laser.fx"
					TechniqueIndex="0">
					<Constants>
						<Texture
							Name="Texture1">
							<Value>FXObeliskLaserHeroic</Value>
						</Texture>
						<Texture
							Name="Texture2">
							<Value>FXLaserOverlay</Value>
						</Texture>
					</Constants>
				</FXShader>
				<ObjectStatusValidation
					RequiredStatus="WEAPON_UPGRADED_03" />					
			</LaserDraw>			
			<LaserDraw
				id="ModuleTag_LaserDraw2_Veterancy"
				Texture1_UTile="1"
				Texture1_VTile=".5"
				Texture1_UScrollRate="0"
				Texture1_VScrollRate=".2"
				Texture1_NumFrames="1"
				Texture1_FrameRate="30"
				Texture2_UTile="1"
				Texture2_VTile=".03"
				Texture2_UScrollRate="0"
				Texture2_VScrollRate="1"
				Texture2_NumFrames="1"
				Texture2_FrameRate="30"
				LaserWidth="20"
				WeaponSlotID="1"
				LaserStateID="2">
				<FXShader
					ShaderName="Laser.fx"
					TechniqueIndex="0">
					<Constants>
						<Texture
							Name="Texture1">
							<Value>FXObeliskLaserHeroic</Value>
						</Texture>
						<Texture
							Name="Texture2">
							<Value>FXLaserOverlay</Value>
						</Texture>
					</Constants>
				</FXShader>
				<ObjectStatusValidation
					RequiredStatus="WEAPON_UPGRADED_03" />					
			</LaserDraw>			
		</Draws>
		<Behaviors>
			<!-- no turret version -->
			<!--
			<WeaponSetUpdate
				id="ModuleTag_WeaponSetUpdate">
				<WeaponSlotHardpoint
					ID="1">
					<Weapon
						Ordering="PRIMARY_WEAPON"
						Template="NODBeamCannonLaser" />
				</WeaponSlotHardpoint>
			</WeaponSetUpdate>
-->
			<!-- turret version -->
			<WeaponSetUpdate
				id="ModuleTag_WeaponSetUpdate">
				<WeaponSlotTurret
					ID="1">
					<Weapon
						Ordering="PRIMARY_WEAPON"
						Template="NODBeamCannonLaser" />
					<TurretSettings
						TurretTurnRate="200"
						TurretPitchRate="40"
						AllowsPitch="true"
						MinIdleScanTime="1.0s"
						MaxIdleScanTime="5.0s"
						MinIdleScanAngle="0.0"
						MaxIdleScanAngle="90.0">
						<TurretAITargetChooserData
							CanAcquireDynamicIfAssignedOutOfRange="true" />
					</TurretSettings>
				</WeaponSlotTurret>
			</WeaponSetUpdate>
			<Physics
				id="ModuleTag_Physics" />
			<ProductionUpdate
				id="ModuleTag_PU" />
			<SlowDeath
				id="ModuleTag_Death"
				SinkDelay="3s"
				SinkRate="1.0"
				DestructionDelay="7s">
				<OCL
					Type="INITIAL">
					<OCL>OCL_NODBeamDebris</OCL>
				</OCL>
				<DieMuxData
					DeathTypes="ALL"
					DeathTypesForbidden="TOPPLED" />
				<Sound Type="INITIAL" List="NOD_Generic_VoiceDieMS" />
			</SlowDeath>
			<FXListBehavior
				id="ModuleTag_FXList">
				<DieMuxData
					DeathTypes="ALL" />
				<Event
					Index="onDeath"
					FX="FX_GDIVehicleExplodeNoScorch" />
			</FXListBehavior>
			<!-- Regular beam attack -->
			<SpecialPower
				id="ModuleTag_BeamLaserSpecialPower"
				SpecialPowerTemplate="NODBeamCannonLaserSpecialPower"
				UpdateModuleStartsAttack="true" />
			<BeamSpecialAbilityUpdate
				id="ModuleTag_BeamLaserSpecialPowerUpdate"
				SpecialPowerTemplate="NODBeamCannonLaserSpecialPower"
				JoinWithOtherBeams="true"
				UnpackTime="1s"
				UnpackSound="NOD_BeamCannon_BeamWeaponPowerUpSwell"
				PreparationTime="10000s"
				PackTime="0.1s"
				StartAbilityRange="610.0"
				AbilityAbortRange="610.0"
				DamagePerSecond="150.0"
				SetObjectStatusOnTrigger="IS_ENGAGED"
				ClearObjectStatusOnExit="IS_ENGAGED"
				Options="UPDATE_REQUIRES_LINE_OF_SIGHT"
				PrepSoundLoop="NOD_BeamCannon_BeamWeaponLoopMS" />
			<!-- Charge defenses special power -->
			<SpecialPower
				id="ModuleTag_ChargeDefensesSP"
				SpecialPowerTemplate="SpecialPower_ChargeDefensesTrigger"
				UpdateModuleStartsAttack="true" />
			<BeamSpecialAbilityUpdate
				id="ModuleTag_ChargeDefensesSPUpdate"
				SpecialPowerTemplate="SpecialPower_ChargeDefensesTrigger"
				JoinWithOtherBeams="false"
				UnpackTime="2s"
				UnpackSound="NOD_BeamCannon_BeamWeaponPowerUpSwell"
				PackTime="1s"
				PreparationTime="10000s"
				PrepSoundLoop="NOD_BeamCannon_ChargeObeliskLoopMS"
				StartAbilityRange="200.0"
				TargetAttributeModifierAdd="AttributeModifier_ChargeDefenses"
				TargetSamePlayerOnly="true"
				Options="CHECK_SPECIALPOWER_REQUIREMENTS_DURING_UPDATE" 
				PreferredTargetBone="FXBONE01"
				DamagePerSecond="0.0" />
			<!-- Reflector attack special power -->
			<SpecialPower
				id="ModuleTag_ReflectorSpecialPower"
				SpecialPowerTemplate="SpecialPower_ReflectorAttack"
				UpdateModuleStartsAttack="true" />
			<BeamSpecialAbilityUpdate
				id="ModuleTag_ReflectorSpecialPowerUpdate"
				SpecialPowerTemplate="SpecialPower_ReflectorAttack"
				JoinWithOtherBeams="true"
				UnpackTime="2s"
				UnpackSound="NOD_BeamCannon_BeamWeaponPowerUpSwell"
				PreparationTime="10000s"
				PrepSoundLoop="NOD_BeamCannon_BeamWeaponLoopMS"
				PackTime="0.1s"
				StartAbilityRange="10000"
				ReflectorExtendDistance="500.0"
				DamagePerSecond="150.0"
				GoIdleInStartPreparation="false" />
			<AISpecialPowerUpdate
				id="ModuleTag_BeamCannonBombard"
				CommandButtonName="Command_ReflectorAttack"
        SpecialPowerRadius="200"
				SpecificUnit="NODVenom"
				SpecialPowerAIType="SPECIAL_POWER_SPECIFIC_UNIT" />
			<xi:include
				href="../../Includes/NodCallForTransportForVehicle.xml" />
			<StatusBitsUpgrade
				id="ModuleTag_VeterancyUpgrade"
				StatusToSet="WEAPON_UPGRADED_03">
				<TriggeredBy>Upgrade_Veterancy_HEROIC</TriggeredBy>
			</StatusBitsUpgrade>	
		</Behaviors>
		<AI>
			<AIUpdate
				id="ModuleTag_03"
				AutoAcquireEnemiesWhenIdle="YES">
				<UnitAITargetChooserData
					CanPickDynamicTargets="false"
					SympathyRange="100.0"
					RotateToTargetWhenAiming="false" />
			</AIUpdate>
		</AI>
		<Body>
			<ActiveBody
				id="ModuleTag_Body"
				MaxHealth="3000" />
		</Body>
		<Geometry
			IsSmall="true">
			<Shape
				Type="BOX"
				MajorRadius="14.0"
				MinorRadius="7.0"
				Height="11.5"
				ContactPointGeneration="VEHICLE" />
		</Geometry>
		<AudioArrayVoice>
			<AudioEntry
				Sound="NOD_BeamCannon_VoiceAttack"
				AudioType="voiceAttack" />
			<!-- Beam Cannons cannot force-attack ground, so don't give a unit response for this case. Since voiceBombard
			     defaults to voiceAttack if not specified, we need to have a real (but empty) sound in the voiceBombard entry
					 to avoid using that default. -->
			<AudioEntry
				Sound="EmptyVoiceResponse"
				AudioType="voiceBombard" />
			<AudioEntry
				Sound="NOD_BeamCannon_VoiceCreate"
				AudioType="voiceCreated" />
			<AudioEntry
				Sound="NOD_BeamCannon_VoiceMove"
				AudioType="voiceGuard" />
			<AudioEntry
				Sound="NOD_BeamCannon_VoiceMove"
				AudioType="voiceMove" />
			<AudioEntry
				Sound="NOD_BeamCannon_VoiceMoveAttack"
				AudioType="voiceAttackAfterMoving" />
			<AudioEntry
				Sound="NOD_BeamCannon_VoiceRetreat"
				AudioType="voiceRetreatToCastle" />
			<AudioEntry
				Sound="NOD_BeamCannon_VoiceSelectMS"
				AudioType="voiceSelect" />
			<AudioEntry
				Sound="NOD_BeamCannon_VoiceSelectBattleMS"
				AudioType="voiceSelectBattle" />
			<NamedEntry
				Sound="NOD_BeamCannon_VoiceAttackSpottedTarget"
				Name="InitiateReflectorAttackHighlight" />
			<NamedEntry
				Sound="NOD_BeamCannon_VoiceChargeDefenses"
				Name="InitiateChargeDefensesTrigger" />
		</AudioArrayVoice>
		<AudioArraySound>
			<AudioEntry
				Sound="NOD_BeamCannon_MoveStart"
				AudioType="soundMoveStart" />
			<AudioEntry
				Sound="NOD_BeamCannon_IdleLoop"
				AudioType="soundAmbient" />
		</AudioArraySound>
		<ShadowInfo
			Type="VOLUME" />
		<VisionInfo
			VisionRange="600"
			ShroudClearingRange="300" />
		<CrusherInfo
			CrusherLevel="0"
			CrushEqualLevelProps="true"
			CrushableLevel="2" />
	</GameObject>
</AssetDeclaration>
