Jump to content
Egozi44

Is it possible to make two units to merge?

Recommended Posts

Alright I will try them both

I need to make new animationstate rather than use the old one correct?

 

 

Where I add the QuadrupedDraw though? I don't have BFME files on my pc anymore and I never really opened or mod them, I think they used ini files rather than xmls back in the day but I never checked

Share this post


Link to post

Mumakil. (Or Oliphaunts)

Those almost sound adorable, if you disregard the stomping and crushing of your units.

 

 

I need to make new animationstate rather than use the old one correct?

Yes

 

 

Where I add the QuadrupedDraw though? I don't have BFME files on my pc anymore and I never really opened or mod them, I think they used ini files rather than xmls back in the day but I never checked

Instead of calling your draw (the whole code bracket that holds model, animation, weapon bone stuff etc) <ScriptedModelDraw></ScriptedModelDraw>

you use

<QuadrupedDraw></QuadrupedDraw>

That draw has extra helper bones if need be that it can use to manipulate 4 legged units

 

 

 

<xs:attribute name="LeftFrontFootBone" type="xs:string" />
<xs:attribute name="RightFrontFootBone" type="xs:string" />
<xs:attribute name="LeftRearFootBone" type="xs:string" />
<xs:attribute name="RightRearFootBone" type="xs:string" />
 

for the rest it inherits exactly the same stuff from scriptedmodeldraw iirc....it just adds some extra options for walking units. iirc it was used in bfme to facilitate with walking up on slopes, crushing stuff and targeting stuff on the mamukil.

 

there are parts in the locomotor that can be used together with this draw:

 

<xs:enumeration value="FOUR_LEGS_HUGE" />
       
 <xs:enumeration value="HUGE_TWO_LEGS" />
 

think there are a few others like Walkdistance that can be used to tune it abit.

 

like wise you can use something like

Distance="45"

 

in your animationstate to scale a full walking cycle to a sertain distance, this could help tune out some twitching effects in animations.

Share this post


Link to post

Ok, the QuadrupedDraw didn't worked and made the entire unit invisible so I assume that EA removed it

 

The new animationstate + locomotor and distance made the turning look a bit better but it still don't uses the legs

 

Can you take a look on the new xml and see what I can change? also if you can please tell me if there's a way to force the mastadon to stop use the idle animations when he walking and get interrupted, it really annoy to the eyes : /

 

 

<?xml version="1.0" encoding="utf-8"?>
<AssetDeclaration xmlns="uri:ea.com:eala:asset">
	<GameObject
		id="GDIMastadon"
		inheritFrom="BaseVehicle"
		SelectPortrait="Portrait_Mastodon"
		ButtonImage="Portrait_Mastodon"
		Side="SteelTalons"
		EditorSorting="UNIT"
		TransportSlotCount="1"
		BuildCost="5000"
		BuildTime="5"
                                  ThreatLevel="10" 
		BuildFadeInOnCreateTimeSeconds="0.25s"
		HealthBoxScale="1.5"
		HealthBoxHeightOffset="10"
		CommandSet="GDIMastadonCommandSet"
		CommandPoints="100" 
                                   ShockwaveResistance="100"
                                   ReinvisibilityDelay="7s"
		KindOf="SELECTABLE CAN_ATTACK CAN_CAST_REFLECTIONS PRELOAD SCORE ATTACK_NEEDS_LINE_OF_SIGHT LARGE_RECTANGLE_PATHFIND VEHICLE UNIQUE_UNIT CAN_BE_FAVORITE_UNIT METAUNIT CAN_SHOOT_OVER_WALLS USE_STRICT_PATHING"
		RadarPriority="UNIT"
		ProductionQueueType="VEHICLE"
		UnitCategory="VEHICLE"
		WeaponCategory="CANNON"
		VoicePriority="250"
		EditorName="SteelTalonsMastadon"
		Description="Desc:GDIMastadon"
		TypeDescription="Type:GDIMastadon"
		MaxSimultaneousOfType="1">
		<DisplayName
			xai:joinAction="Replace" xmlns:xai="uri:ea.com:eala:asset:instance">Name:GDIMastadon</DisplayName>
                                   <GameDependency>
                                   <RequiredObject>SteelTalonsTechCenter</RequiredObject>
                                  </GameDependency>
		<ArmorSet
			Armor="GDIMARVArmor"
			DamageFX="VehicleDamageFX" />
		<LocomotorSet
			Locomotor="GDIMastadonLocomotor"
			Condition="NORMAL"
			Speed="55.0" />
		<SkirmishAIInformation
			UnitBuilderStandardCombatUnit="true" />
		<Draws>
<ScriptedModelDraw id="ModuleTag_Draw" 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 BONE_CONTACT_POINT_08 BONE_CONTACT_POINT_09 BONE_CONTACT_POINT_10 BONE_CONTACT_POINT_11 BONE_CONTACT_POINT_12" OkToChangeModelColor="true">
				<ModelConditionState
					ParseCondStateType="PARSE_DEFAULT">
					<Model
						Name="W3DContainer:GUVehicleL_SKN" />
					<WeaponFireFXBone
						WeaponSlotID="1"
						WeaponSlotType="PRIMARY_WEAPON"
						BoneName="t1_cannon" />
					<WeaponLaunchBone
						WeaponSlotID="1"
						WeaponSlotType="PRIMARY_WEAPON"
						BoneName="t1_cannon" />
					<!-- <WeaponFireFXBone
						WeaponSlotID="2"
						WeaponSlotType="PRIMARY_WEAPON"
						BoneName="f8af8c94" />
					<WeaponLaunchBone
						WeaponSlotID="2"
						WeaponSlotType="PRIMARY_WEAPON"
						BoneName="f8af8c94" /> -->
					<WeaponFireFXBone
						WeaponSlotID="3"
						WeaponSlotType="SECONDARY_WEAPON"
						BoneName="aa_l_" />
					<WeaponLaunchBone
						WeaponSlotID="3"
						WeaponSlotType="SECONDARY_WEAPON"
						BoneName="aa_l_" />
					<WeaponFireFXBone
						WeaponSlotID="4"
						WeaponSlotType="SECONDARY_WEAPON"
						BoneName="aa_r_" />
					<WeaponLaunchBone
						WeaponSlotID="4"
						WeaponSlotType="SECONDARY_WEAPON"
						BoneName="aa_r_" />
					     <Turret
      TurretNameKey="b_turret01"
      TurretPitch="b_pitch01"
      TurretID="1" />
     <Turret
      TurretNameKey="b_turret06"
      TurretPitch="B_PITCHL"
      TurretID="3" />
     <Turret
      TurretNameKey="b_turret07"
      TurretPitch="B_PITCHR"
      TurretID="4" />
				</ModelConditionState>
				<ModelConditionState
					ParseCondStateType="PARSE_NORMAL"
					ConditionsYes="FORMATION_PREVIEW">
					<Model
						Name="W3DContainer:GUMARV_FP" />
				</ModelConditionState>

				<ModelConditionState
					ParseCondStateType="PARSE_NORMAL"
					ConditionsYes="DAMAGED USER_6">
					<Model
						Name="W3DContainer:GUVehicleL_SKN" />
					<Texture
						Original="GUVehicleL"
						New="GUVehicleL" />						
				</ModelConditionState>
				<ModelConditionState
					ParseCondStateType="PARSE_NORMAL"
					ConditionsYes="REALLYDAMAGED USER_6">
					<Model
						Name="W3DContainer:GUVehicleL_SKN" />
					<Texture
						Original="GUVehicleL"
						New="GUVehicleL_D" />
				</ModelConditionState>
				<ModelConditionState
					ParseCondStateType="PARSE_NORMAL"
					ConditionsYes="DYING USER_6">
					<Model
						Name="W3DContainer:GUVehicleL_DIEA" />
					<Texture
						Original="GUVehicleL"
						New="GUVehicleL_D" />						
					<ParticleSysBone
						BoneName="chassis"
						FXParticleSystemTemplate="GDIDebrisSmallFire"
						FollowBone="true" />
					<ParticleSysBone
						BoneName="Chassis"
						FXParticleSystemTemplate="GDIDebrisSmallFireDistortion"
						FollowBone="true" />
					<ParticleSysBone
						BoneName="chassis"
						FXParticleSystemTemplate="GDIDebrisSmallSmoke"
						FollowBone="true" />
					<ParticleSysBone
						BoneName="b_turret01"
						FXParticleSystemTemplate="GDIDebrisSmallFire"
						FollowBone="true" />
					<ParticleSysBone
						BoneName="b_turret01"
						FXParticleSystemTemplate="GDIDebrisSmallFireDistortion"
						FollowBone="true" />
					<ParticleSysBone
						BoneName="b_turret01"
						FXParticleSystemTemplate="GDIDebrisSmallSmoke"
						FollowBone="true" />
				</ModelConditionState>
				
				<ModelConditionState
					ParseCondStateType="PARSE_NORMAL"
					ConditionsYes="DAMAGED">
					<Model
						Name="W3DContainer:GUVehicleL_SKN" />
				</ModelConditionState>
				<ModelConditionState
					ParseCondStateType="PARSE_NORMAL"
					ConditionsYes="REALLYDAMAGED">
					<Model
						Name="W3DContainer:GUVehicleL_SKN" />
					<Texture
						Original="GUVehicleL"
						New="GUVehicleL_D" />
				</ModelConditionState>
				<ModelConditionState
					ParseCondStateType="PARSE_NORMAL"
					ConditionsYes="DYING">
					<Model
						Name="W3DContainer:GUVehicleL_DIEA" />
					<ParticleSysBone
						BoneName="chassis"
						FXParticleSystemTemplate="GDIDebrisSmallFire"
						FollowBone="true" />
					<ParticleSysBone
						BoneName="chassis"
						FXParticleSystemTemplate="GDIDebrisSmallFireDistortion"
						FollowBone="true" />
					<ParticleSysBone
						BoneName="chassis"
						FXParticleSystemTemplate="GDIDebrisSmallSmoke"
						FollowBone="true" />
					<ParticleSysBone
						BoneName="b_turret01"
						FXParticleSystemTemplate="GDIDebrisSmallFire"
						FollowBone="true" />
					<ParticleSysBone
						BoneName="b_turret01"
						FXParticleSystemTemplate="GDIDebrisSmallFireDistortion"
						FollowBone="true" />
					<ParticleSysBone
						BoneName="b_turret01"
						FXParticleSystemTemplate="GDIDebrisSmallSmoke"
						FollowBone="true" />
				</ModelConditionState>
				<ModelConditionState
					ParseCondStateType="PARSE_NORMAL"
					ConditionsYes="USER_6">
					<Model
						Name="W3DContainer:GUVehicleL_SKN" />
					<Texture
						Original="GUVehicleL"
						New="GUVehicleL" />							
				</ModelConditionState>				
				<AnimationState
					ParseCondStateType="PARSE_DEFAULT"
					Flags="MAINTAIN_FRAME_ACROSS_STATES"
					StateName="STATE_bored">
					<Animation
						AnimationName="GUVehicleL_BIDA"
						AnimationMode="LOOP"
						AnimationBlendTime="15" />
					<Script>
						Prev = CurDrawablePrevAnimationState()
						if Prev == "STATE_SelectedPose" then
						CurDrawableSetTransitionAnimState("TRANS_SelectedToIdle")
						end
						CurDrawableShowSubObject("GUN_UPGRADE")
					</Script>
				</AnimationState>
				<AnimationState
					ParseCondStateType="PARSE_NORMAL"
					ConditionsYes="COMING_OUT_OF_FACTORY"
					StateName="STATE_built">
					<Animation
						AnimationName="GUVehicleL_BLDA"
						AnimationBlendTime="0"
						AnimationMode="ONCE" />
					<Script>
						CurDrawableShowSubObject("GUN_UPGRADE")
					</Script>
				</AnimationState>
				<AnimationState
					ParseCondStateType="PARSE_NORMAL"
					ConditionsYes="DYING">
					<Animation
						AnimationName="GUVehicleL_DIEA"
						AnimationMode="ONCE" />
					<Script>
						CurDrawableShowSubObject("GUN_UPGRADE")
					</Script>
				</AnimationState>
				<AnimationState
					ParseCondStateType="PARSE_NORMAL"
					ConditionsYes="AFFECTED_BY_EMP">
					<Animation
						AnimationName="GUVehicleL_BIDA"
						AnimationMode="MANUAL"
						AnimationBlendTime="15" />
					<Script>
						CurDrawableShowSubObject("GUN_UPGRADE")
					</Script>
				</AnimationState>
				<!-- being fixed by engineer from being a husk -->
				<AnimationState
					ParseCondStateType="PARSE_NORMAL"
					ConditionsYes="USER_5"
					StateName="STATE_Getup">
					<Animation
						AnimationName="GUVehicleL_GTPA"
						AnimationBlendTime="0"
						AnimationMode="ONCE" />
					<Script>
						CurDrawableShowSubObject("GUN_UPGRADE")
					</Script>
				</AnimationState>
<AnimationState ParseCondStateType="PARSE_NORMAL" ConditionsYes="ATTACKING TURN_LEFT_HIGH_SPEED" Flags="MAINTAIN_FRAME_ACROSS_STATES">
<Animation AnimationMode="LOOP" AnimationName="GUVehicleL_TRNLW" Distance="45"/>
<FXEvent Bone="B_FOOTL" Effect="FX_GDIJuggernaughtFootprint" FireWhenSkipped="true" Frame="1"/>
<FXEvent Bone="B_FOOTR" Effect="FX_GDIJuggernaughtFootprint" FireWhenSkipped="true" Frame="25"/>
<Script> CurDrawableShowSubObject("GUN_UPGRADE") </Script>
</AnimationState>

<AnimationState ParseCondStateType="PARSE_NORMAL" ConditionsYes="ATTACKING TURN_RIGHT_HIGH_SPEED" Flags="MAINTAIN_FRAME_ACROSS_STATES">
<Animation AnimationMode="LOOP" AnimationName="GUVehicleL_TRNRW" Distance="45"/>
<FXEvent Bone="B_FOOTL" Effect="FX_GDIJuggernaughtFootprint" FireWhenSkipped="true" Frame="1"/>
<FXEvent Bone="B_FOOTR" Effect="FX_GDIJuggernaughtFootprint" FireWhenSkipped="true" Frame="25"/>
<Script> CurDrawableShowSubObject("GUN_UPGRADE") </Script>
</AnimationState>

<AnimationState ParseCondStateType="PARSE_NORMAL" ConditionsYes="ATTACKING TURN_LEFT">
<Animation AnimationMode="LOOP" AnimationName="GUVehicleL_TRNL" Distance="45"/>
<FXEvent Bone="B_FOOTL" Effect="FX_GDIJuggernaughtFootprint" FireWhenSkipped="true" Frame="0"/>
<FXEvent Bone="B_FOOTR" Effect="FX_GDIJuggernaughtFootprint" FireWhenSkipped="true" Frame="20"/>
<Script> CurDrawableShowSubObject("GUN_UPGRADE") </Script>
</AnimationState>

<AnimationState ParseCondStateType="PARSE_NORMAL" ConditionsYes="ATTACKING TURN_RIGHT">
<Animation AnimationMode="LOOP" AnimationName="GUVehicleL_TRNR" Distance="45"/>
<FXEvent Bone="B_FOOTR" Effect="FX_GDIJuggernaughtFootprint" FireWhenSkipped="true" Frame="0"/>
<FXEvent Bone="B_FOOTL" Effect="FX_GDIJuggernaughtFootprint" FireWhenSkipped="true" Frame="20"/>
<Script> CurDrawableShowSubObject("GUN_UPGRADE") </Script>
</AnimationState>
				<AnimationState
					ParseCondStateType="PARSE_NORMAL"
					ConditionsYes="TURN_LEFT_HIGH_SPEED"
					Flags="MAINTAIN_FRAME_ACROSS_STATES">
					<Animation
						AnimationName="GUVehicleL_TRNLW"
						AnimationMode="LOOP"
						Distance="45" />
					<FXEvent
						Frame="1"
						FireWhenSkipped="true"
						Effect="FX_GDIJuggernaughtFootprint"
						Bone="B_FOOTL" />
					<FXEvent
						Frame="25"
						FireWhenSkipped="true"
						Effect="FX_GDIJuggernaughtFootprint"
						Bone="B_FOOTR" />
					<Script>
						CurDrawableShowSubObject("GUN_UPGRADE")
					</Script>
				</AnimationState>
				<AnimationState
					ParseCondStateType="PARSE_NORMAL"
					ConditionsYes="TURN_RIGHT_HIGH_SPEED"
					Flags="MAINTAIN_FRAME_ACROSS_STATES">
					<Animation
						AnimationName="GUVehicleL_TRNRW"
						AnimationMode="LOOP"
						Distance="45" />
					<FXEvent
						Frame="1"
						FireWhenSkipped="true"
						Effect="FX_GDIJuggernaughtFootprint"
						Bone="B_FOOTL" />
					<FXEvent
						Frame="25"
						FireWhenSkipped="true"
						Effect="FX_GDIJuggernaughtFootprint"
						Bone="B_FOOTR" />
					<Script>
						CurDrawableShowSubObject("GUN_UPGRADE")
					</Script>
				</AnimationState>
				<AnimationState
					ParseCondStateType="PARSE_NORMAL"
					ConditionsYes="TURN_LEFT">
					<Animation
						AnimationName="GUVehicleL_TRNL"
						AnimationMode="LOOP" />
					<FXEvent
						Frame="0"
						FireWhenSkipped="true"
						Effect="FX_GDIJuggernaughtFootprint"
						Bone="B_FOOTL" />
					<FXEvent
						Frame="20"
						FireWhenSkipped="true"
						Effect="FX_GDIJuggernaughtFootprint"
						Bone="B_FOOTR" />
					<Script>
						CurDrawableShowSubObject("GUN_UPGRADE")
					</Script>
				</AnimationState>
				<AnimationState
					ParseCondStateType="PARSE_NORMAL"
					ConditionsYes="TURN_RIGHT">
					<Animation
						AnimationName="GUVehicleL_TRNR"
						AnimationMode="LOOP" />
					<FXEvent
						Frame="0"
						FireWhenSkipped="true"
						Effect="FX_GDIJuggernaughtFootprint"
						Bone="B_FOOTR" />
					<FXEvent
						Frame="20"
						FireWhenSkipped="true"
						Effect="FX_GDIJuggernaughtFootprint"
						Bone="B_FOOTL" />
					<Script>
						CurDrawableShowSubObject("GUN_UPGRADE")
					</Script>
				</AnimationState>
				<AnimationState
					ParseCondStateType="PARSE_NORMAL"
					ConditionsYes="MOVING"
					Flags="MAINTAIN_FRAME_ACROSS_STATES">
          <Animation
						AnimationName="GUVehicleL_MOVA"
						AnimationMode="LOOP"
						Distance="146" 
            AnimationSpeedFactorMin="0.8"
            AnimationSpeedFactorMax="1.0"
            AnimationBlendTime="15" />
					<FXEvent
						Frame="1"
						FireWhenSkipped="true"
						Effect="FX_GDIJuggernaughtFootprint"
						Bone="B_FOOTL" />
					<FXEvent
						Frame="25"
						FireWhenSkipped="true"
						Effect="FX_GDIJuggernaughtFootprint"
						Bone="B_FOOTR" />
					<Script>
						Prev = CurDrawablePrevAnimationState()
						if Prev == "STATE_built" then
						CurDrawableSetTransitionAnimState("TRANS_built")
						end
						CurDrawableShowSubObject("GUN_UPGRADE")
					</Script>						
				</AnimationState>
				<AnimationState
					ParseCondStateType="PARSE_NORMAL"
					ConditionsYes="MOVING HEALTH_PERCENT_25"
					Flags="MAINTAIN_FRAME_ACROSS_STATES">
          <Animation
						AnimationName="GUVehicleL_MOVD"
						AnimationMode="LOOP"
						Distance="146" 
            AnimationSpeedFactorMin="0.8"
            AnimationSpeedFactorMax="1.0"
            AnimationBlendTime="15" />
					<FXEvent
						Frame="1"
						FireWhenSkipped="true"
						Effect="FX_GDIJuggernaughtFootprint"
						Bone="B_FOOTL" />
					<FXEvent
						Frame="25"
						FireWhenSkipped="true"
						Effect="FX_GDIJuggernaughtFootprint"
						Bone="B_FOOTR" />
					<Script>
						Prev = CurDrawablePrevAnimationState()
						if Prev == "STATE_built" then
						CurDrawableSetTransitionAnimState("TRANS_built")
						end
						CurDrawableShowSubObject("GUN_UPGRADE")
					</Script>						
				</AnimationState>
				<AnimationState
					ParseCondStateType="PARSE_NORMAL"
					ConditionsYes="ATTACKING">
					<Animation
						AnimationName="GUVEhicleL_ATKA"
						AnimationMode="LOOP"
						AnimationBlendTime="15" />
					<Script>
						CurDrawableShowSubObject("GUN_UPGRADE")
					</Script>
				</AnimationState>
				<!-- SELECTED -->
				<AnimationState
					ParseCondStateType="PARSE_NORMAL"
					ConditionsYes="SELECTED"
					StateName="STATE_SelectedPose">
					<Animation
						AnimationName="GUVehicleL_AIDA"
						AnimationMode="LOOP"
						AnimationBlendTime="15" />
					<Script>
						Prev = CurDrawablePrevAnimationState()
						if Prev == "STATE_bored" then
						CurDrawableSetTransitionAnimState("TRANS_IdleToSelected")
						end
						CurDrawableShowSubObject("GUN_UPGRADE")
					</Script>
				</AnimationState>
				<!-- TRANSITIONS -->
				<AnimationState
					ParseCondStateType="PARSE_TRANSITION"
					StateName="TRANS_IdleToSelected" Flags="MAINTAIN_FRAME_ACROSS_STATES">
					<Animation
						AnimationName="GUVehicleL_BATA"
                                                                                                        AnimationBlendTime="10"
						AnimationMode="ONCE" />
					<Script>
						CurDrawableShowSubObject("GUN_UPGRADE")
					</Script>
				</AnimationState>
				<AnimationState
					ParseCondStateType="PARSE_TRANSITION"
					StateName="TRANS_SelectedToIdle" Flags="MAINTAIN_FRAME_ACROSS_STATES">
					<Animation
						AnimationName="GUVehicleL_ABTA"
                                                                                                        AnimationBlendTime="10"
						AnimationMode="ONCE" />
					<Script>
						CurDrawableShowSubObject("GUN_UPGRADE")
					</Script>
				</AnimationState>
				<!--   Transitions -->
				<AnimationState
					ParseCondStateType="PARSE_TRANSITION"
					StateName="TRANS_built">
					<Animation
						AnimationName="GUVehicleL_BLDA"
						AnimationBlendTime="0"
						AnimationMode="ONCE" />
					<Script>
						CurDrawableShowSubObject("GUN_UPGRADE")
					</Script>
				</AnimationState>
			</ScriptedModelDraw>
			<SpotlightDraw
				id="ModuleTag_Spotlight"
				AttachToBoneInAnotherModule="Zt_Spine2"
				RefreshTime="2.0s"
				SweepTime="1.0s">
				<ModelConditionState
					ParseCondStateType="PARSE_DEFAULT">
					<Model
						Name="W3DContainer:FXspotlight" />
				</ModelConditionState>
				<ModelConditionState
					ParseCondStateType="PARSE_NORMAL"
					ConditionsYes="FORMATION_PREVIEW">
					<Model
						Name="" />
				</ModelConditionState>
			</SpotlightDraw>
			<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>
			</LaserDraw>

		</Draws>
		<Behaviors>
<FireWeaponUpdate id="ModuleTag_Fireweapon">
<FireWeaponNugget OneShot="true" Firedelay="0.1s" WeaponName="NodNuclearTransportNuke4"/>
</FireWeaponUpdate>
			<ProductionUpdate
				id="ProductionUpdateModuleTag"
				GiveNoXP="true"/>
<HordeTransportContain id="0x9DC593B0" Slots="4" KillPassengersOnDeath="True" 
AllowNeutralInside="False" AllowEnemiesInside="False" 
AllowOwnPlayerInsideOverride="True" 
ObjectStatusOfContained="CAN_ATTACK UNSELECTABLE ENCLOSED" 
ExitSound="AudioEvent:VehicleExit" EnterSound="AudioEvent:VehicleEnter" 
ContainMax="4"><PassengerFilter Include="INFANTRY" Rule="ANY"/>
<DieMuxData DeathTypes="ALL"/>
<PassengerData BonePrefix="BONE_CONTACT_POINT_">
<Filter Include="INFANTRY"/></PassengerData>
<MemberTemplateStatusInfo 
ObjectStatus="CAN_SPOT_FOR_BOMBARD" ThingTemplate="GDISniperSquad"/>
</HordeTransportContain>
			<AttributeModifierPoolUpdate 
				id="DefaultAttributeModifierPoolUpdate"/>
			<SquishCollide
				id ="DefaultSquishCollide"/>
			<FireWeaponWhenDead
				id="ModuleTag_CatalystDeathWeapon"
				InitiallyActive="true"
				DeathWeapon="CatalystInfantryDeathWeapon"
				ContinueToBezierDestination="false">
				<DieMuxData DeathTypes="CATALYST" />
			</FireWeaponWhenDead>
			<!--Heroic level units auto healing-->
			<AutoHealBehavior
				id="Upgrade_HeroicHeal"
				InitiallyActive="false"
				HealOnlyIfNotInCombat="false"
				HealOnlyIfNotUnderAttack="false"
				StartHealingDelay="1s"
				HealingAmount="100"
				HealingDelay=".5s">
				<TriggeredBy>Upgrade_Veterancy_HEROIC</TriggeredBy>
			</AutoHealBehavior>
			<AttributeModifierUpgrade
				id="ModuleTag_AttributeModifierUpgradeMUCSpeed"
				AttributeModifier="Modifier_MultifunctionUpgradeCenterSpeed">
				<TriggeredBy>Upgrade_MultifunctionUpgradeCenterSpeed</TriggeredBy>
			</AttributeModifierUpgrade>
			<AttributeModifierUpgrade
				id="ModuleTag_AttributeModifierUpgradeMUCDamage"
				AttributeModifier="Modifier_MultifunctionUpgradeCenterDamage">
				<TriggeredBy>Upgrade_MultifunctionUpgradeCenterDamage</TriggeredBy>
			</AttributeModifierUpgrade>
			<AttributeModifierUpgrade
				id="ModuleTag_AttributeModifierUpgradeMUCArmor"
				AttributeModifier="Modifier_MultifunctionUpgradeCenterArmor">
				<TriggeredBy>Upgrade_MultifunctionUpgradeCenterArmor</TriggeredBy>
			</AttributeModifierUpgrade>
			<StancesBehavior
				id="ModuleTag_Stance"
				StanceTemplate="Generic" />
<StatusBitsUpgrade id="0x21DB4E8C" StatusToSet="RIDER2">
<TriggeredBy>Everyone_Faction</TriggeredBy>
</StatusBitsUpgrade>
			<LevelUpUpgrade
				id="ModuleTag_LevelUpUpgrade_Veteran"
				LevelCap="4"
				LevelsToGain="1">
				<TriggeredBy>Upgrade_ProductionVeterancy_VETERAN</TriggeredBy>
			</LevelUpUpgrade>
			<LevelUpUpgrade
				id="ModuleTag_LevelUpUpgrade_Elite"
				LevelCap="4"
				LevelsToGain="2">
				<TriggeredBy>Upgrade_ProductionVeterancy_ELITE</TriggeredBy>
			</LevelUpUpgrade>
			<LevelUpUpgrade
				id="ModuleTag_LevelUpUpgrade_Heroic"
				LevelCap="4"
				LevelsToGain="3">
				<TriggeredBy>Upgrade_ProductionVeterancy_HEROIC</TriggeredBy>
			</LevelUpUpgrade>
			<InvisibilityUpdate
				id="3BD7F2F5"
				Options=""
				UpdatePeriod="0.5s"
				BroadcastRange="0"
				OpacityMin="100%">
				<InvisibilityNugget
					ForbiddenConditions="PREATTACK_A FIRING_A FIRING_OR_PREATTACK_A RELOADING_A PREATTACK_B FIRING_B FIRING_OR_PREATTACK_B RELOADING_B PREATTACK_C FIRING_C FIRING_OR_PREATTACK_C RELOADING_C USING_WEAPON_A USING_WEAPON_B USING_WEAPON_C"
					ForbiddenConditionExceptions=""
					ForbiddenWeaponSets=""
					ForbiddenStatus="IS_FIRING_WEAPON USING_ABILITY IS_AIMING_WEAPON SPECIAL_ABILITY_PACKING_UNPACKING_OR_USING"
					CamouflageLevel="0"
					InvisibilityType="INVALID"
					Options=""
					EnteringStealthFX=""
					LeavingStealthFX=""
					HintDetectableStates="IS_ATTACKING"
					NoStealthForAttackWindow="0s" />
				<RequiresUpgrade>Upgrade_CloakingFieldInvisibility</RequiresUpgrade>
			</InvisibilityUpdate>
			<!-- Cloaking Field -->
			<InvisibilityUpdate
				id="ModuleTag_Invisibility"
				UpdatePeriod="0.5s">
				<InvisibilityNugget
					ForbiddenStatus=""
					HintDetectableStates="" />
				<RequiresUpgrade>Upgrade_CloakingFieldInvisibility</RequiresUpgrade>
			</InvisibilityUpdate>
			<StealthUpgrade
				id="ModuleTag_InvisibilityTrigger">
				<TriggeredBy>Upgrade_CloakingFieldInvisibility</TriggeredBy>
			</StealthUpgrade>
			<TemporarilyDefectUpdate
				id="ModuleTag_TemporarilyDefect"
				DefectionFrameCount="300" />
			<WeaponSetUpdate
				id="ModuleTag_WeaponSetUpdate">
				<WeaponSlotTurret
					ID="1"
					InterleavedStyle="INTERLEAVE_FIRST_AVAILABLE"
					WeaponChoiceCriteria="PREFER_MOST_DAMAGE"
					AllowInterleavedFiring="False">
					<Weapon
						Ordering="PRIMARY_WEAPON"
						Template="GDIMastadonCannon"
						Upgrade=""
						ObjectStatus=""
						IsPlayerUpgradePermanent="False" />
					<TurretSettings
						TurretTurnRate="60"
						TurretPitchRate="20"
						MinimumPitch="-15d"
						PitchHeight="50%"
						ControlledWeaponSlots=""
						MinIdleScanTime="1s"
						MaxIdleScanTime="5s"
						MinIdleScanAngle="0"
						MaxIdleScanAngle="90"
						MaxDeflectionClockwise="120d"
						MaxDeflectionAntiClockwise="120d"
						NaturalTurretAngle="0d"
						AllowsPitch="True"
						RecenterWhenOutOfTurnRange="True">
						<TurretAITargetChooserData
							IdleScanDelay="0.8s"
							ReacquireDelay="5s"
							StartupDelay="0s"
							SympathyRange="25"
							CheckVisionRange="False"
							CanPickDynamicTargets="True"
							RotateToTargetWhenAiming="True"
							CanAutoAcquireNonAutoAcquirable="False"
							TargetingCompareList="DefaultTurretTargetingCompareList"
							ActiveWhenPerformingSpecialAbility="False"
							CanAcquireDynamicIfAssignedOutOfRange="True"
							CanPickTargetsOutOfTurretAngle="False" />
					</TurretSettings>
				</WeaponSlotTurret>
				<!-- <WeaponSlotHardpoint
					ID="1"
					AllowInterleavedFiring="true"
					InterleavedStyle="INTERLEAVE_RANDOM">
					<Weapon
						Ordering="PRIMARY_WEAPON"
						Template="GDIMastadonCannon" />
				</WeaponSlotHardpoint>
				 <WeaponSlotHardpoint
					ID="2"
					AllowInterleavedFiring="true"
					InterleavedStyle="INTERLEAVE_RANDOM">
					<Weapon
						Ordering="PRIMARY_WEAPON"
						Template="GDIMastadonCannon" />
				</WeaponSlotHardpoint> -->
				<WeaponSlotHierarchicalTurret ParentID="1" AllowInterleavedFiring="true" InterleavedStyle="INTERLEAVE_RANDOM" ID="3">
<Weapon IsPlayerUpgradePermanent="False" ObjectStatus="" Upgrade="" Template="GDIMastadonRocketPods" Ordering="SECONDARY_WEAPON"/>
<TurretSettings RecenterWhenOutOfTurnRange="True" AllowsPitch="False" NaturalTurretAngle="0d" MaxDeflectionAntiClockwise="99.99999d" MaxDeflectionClockwise="20d" MaxIdleScanAngle="90" MinIdleScanAngle="0" MaxIdleScanTime="5s" MinIdleScanTime="1s" ControlledWeaponSlots="" PitchHeight="50%" MinimumPitch="0d" TurretPitchRate="0" TurretTurnRate="60">
<TurretAITargetChooserData CanPickTargetsOutOfTurretAngle="False" CanAcquireDynamicIfAssignedOutOfRange="True" ActiveWhenPerformingSpecialAbility="False" TargetingCompareList="DefaultTurretTargetingCompareList" CanAutoAcquireNonAutoAcquirable="False" RotateToTargetWhenAiming="True" CanPickDynamicTargets="True" CheckVisionRange="False" SympathyRange="25" StartupDelay="0s" ReacquireDelay="5s" IdleScanDelay="0.8s"/>
</TurretSettings>
</WeaponSlotHierarchicalTurret>

<WeaponSlotHierarchicalTurret ParentID="1" AllowInterleavedFiring="true" InterleavedStyle="INTERLEAVE_RANDOM" ID="4">
<Weapon IsPlayerUpgradePermanent="False" ObjectStatus="" Upgrade="" Template="GDIMastadonRocketPods" Ordering="SECONDARY_WEAPON"/>
<TurretSettings RecenterWhenOutOfTurnRange="True" AllowsPitch="False" NaturalTurretAngle="0d" MaxDeflectionAntiClockwise="20d" MaxDeflectionClockwise="99.99999d" MaxIdleScanAngle="90" MinIdleScanAngle="0" MaxIdleScanTime="5s" MinIdleScanTime="1s" ControlledWeaponSlots="" PitchHeight="50%" MinimumPitch="0d" TurretPitchRate="0" TurretTurnRate="60">
<TurretAITargetChooserData CanPickTargetsOutOfTurretAngle="False" CanAcquireDynamicIfAssignedOutOfRange="True" ActiveWhenPerformingSpecialAbility="False" TargetingCompareList="DefaultTurretTargetingCompareList" CanAutoAcquireNonAutoAcquirable="False" RotateToTargetWhenAiming="True" CanPickDynamicTargets="True" CheckVisionRange="False" SympathyRange="25" StartupDelay="0s" ReacquireDelay="5s" IdleScanDelay="0.8s"/>
</TurretSettings>
</WeaponSlotHierarchicalTurret>

			</WeaponSetUpdate>
			<LaserState
				id="ModuleTag_LaserState"
				LaserId="1" />
			<Physics
				id="ModuleTag_Physics" />	
			<CreateObjectDie
				id="ModuleTag_CreateObjectDie"
				CreationList="">
				<DieMuxData
					DeathTypes="ALL" />
			</CreateObjectDie>
			<DestroyDie
				id="ModuleTag_Die">
				<DieMuxData
					DeathTypes="ALL" />
			</DestroyDie>
			<FXListBehavior
				id="ModuleTag_FXList">
				<DieMuxData
					DeathTypes="ALL" />
				<Event
					Index="onDeath"
					FX="FX_AwesomeXplosion" />
			</FXListBehavior>
<SlowDeath id="ModuleTag_Death" DestructionDelay="15s" 
SinkRate="1.5" SinkDelay="5s">
<OCL Type="INITIAL">
<OCL>OCL_GDIMARVDebris</OCL>
</OCL>
<DieMuxData DeathTypes="ALL" DeathTypesForbidden="TOPPLED"/>
<Sound Type="INITIAL" List="Mastodon_VoiceDie"/>
</SlowDeath>
			<StatusBitsUpgrade
				id="ModuleTag_VeterancyUpgrade"
				StatusToSet="WEAPON_UPGRADED_01">
				<TriggeredBy>Upgrade_Veterancy_HEROIC</TriggeredBy>
			</StatusBitsUpgrade>
		</Behaviors>
		<AI>
			<AIUpdate
				id="ModuleTag_AI"
				AILuaEventsList="GDIMastodonFunctions" AutoAcquireEnemiesWhenIdle="YES">
<UnitAITargetChooserData TargetingCompareList="DefaultTargetingCompareList" RotateToTargetWhenAiming="True" 
CanPickDynamicTargets="False" SympathyRange="100"/>
			</AIUpdate>
		</AI>
		<Body>
			<ActiveBody
				id="ModuleTag_Body"
				MaxHealth="22500" />
		</Body>
<ClientBehaviors>
<AnimationSoundClientBehavior id="ModuleTag_ASCB">
				<Sound Sound="AudioEvent:Mastodon_Footstep" Animation="GUVehicleL_TRNL" Frame="25 50 75 100 125 150" />
				<Sound Sound="AudioEvent:Mastodon_Footstep" Animation="GUVehicleL_TRNR" Frame="25 50 75 100 125 150" />
				<Sound Sound="AudioEvent:Mastodon_Footstep" Animation="GUVehicleL_TRNLW" Frame="25 50 75 100 125 150" />
				<Sound Sound="AudioEvent:Mastodon_Footstep" Animation="GUVehicleL_TRNRW" Frame="25 50 75 100 125 150" />
				<Sound Sound="AudioEvent:Mastodon_Footstep" Animation="GUVehicleL_MOVA" Frame="25 50 75 100 125 150" />
				<Sound Sound="AudioEvent:Mastodon_Footstep" Animation="GUVehicleL_MOVD" Frame="25 50 75 100 125 150" />
                                                                     <Sound Frame="22 44" Animation="GUVehicleL_ABTA" Sound="AudioEvent:Mastodon_SelectedToIdle_ABTA"/>
                                                                     <Sound Frame="16 31" Animation="GUVehicleL_BATA" Sound="AudioEvent:Mastodon_SelectedToIdle_BATA"/>
                                                                     <Sound Frame="16 31" Animation="GUVehicleL_BLDA" Sound="AudioEvent:Mastodon_COMING_OUT_OF_FACTORY"/>
</AnimationSoundClientBehavior>
</ClientBehaviors>
<ModelConditionAudioLoopClientBehavior id="0x7B291969">
<ModelConditionSound Sound="AudioEvent:GDI_RailgunAccelerator_EnergyStripeLoop" 
RequiredFlags="USING_WEAPON_C"/>
</ModelConditionAudioLoopClientBehavior>
		<Geometry
			IsSmall="false">
			<Shape 
			     Type= "BOX"
			     MajorRadius = "29.6026"
			     MinorRadius = "17.0185"
			     Height = "17.9773"
			     ContactPointGeneration="VEHICLE">
			    <Offset
			        x = "-18.3624"
			        y = "0.0492744"
			        z = "32.9796" />
			</Shape>
			<Shape 
			     Type= "BOX"
			     MajorRadius = "21.2712"
			     MinorRadius = "8.8983"
			     Height = "17.2881"
			     ContactPointGeneration="VEHICLE">
			    <Offset
			        x = "26.1552"
			        y = "-29.3933"
			        z = "0.0" />
			</Shape>
			<Shape 
			     Type= "BOX"
			     MajorRadius = "21.7525"
			     MinorRadius = "8.56917"
			     Height = "17.378"
			     ContactPointGeneration="VEHICLE">
			    <Offset
			        x = "25.4914"
			        y = "29.1596"
			        z = "9.53674e-007" />
			</Shape>
			<Shape 
			     Type= "BOX"
			     MajorRadius = "21.0169"
			     MinorRadius = "20.2542"
			     Height = "20.678"
			     ContactPointGeneration="VEHICLE">
			    <Offset
			        x = "23.934"
			        y = "0.00376129"
			        z = "-9.53674e-007" />
			</Shape>
			<Shape 
			     Type= "BOX"
			     MajorRadius = "30.3217"
			     MinorRadius = "19.8949"
			     Height = "32.9622"
			     ContactPointGeneration="VEHICLE">
			    <Offset
			        x = "-28.5169"
			        y = "-0.0588036"
			        z = "9.53674e-007" />
			</Shape>
			<Shape 
			     Type= "BOX"
			     MajorRadius = "26.8461"
			     MinorRadius = "11.865"
			     Height = "24.6888"
			     ContactPointGeneration="VEHICLE">
			    <Offset
			        x = "-26.0001"
			        y = "-32.2981"
			        z = "0.0" />
			</Shape>
			<Shape 
			     Type= "BOX"
			     MajorRadius = "26.2468"
			     MinorRadius = "11.3856"
			     Height = "24.9285"
			     ContactPointGeneration="VEHICLE">
			    <Offset
			        x = "-25.8802"
			        y = "31.7012"
			        z = "0.0" />
			</Shape>
		</Geometry>
		<AudioArrayVoice>
			<AudioEntry Sound="AudioEvent:ALL_Mastodon_VoiceAttack" AudioType="voiceAttack" />
                                                    <AudioEntry AudioType="voiceCreated" Sound="Multisound:ALL_Mastodon_VoiceCreateMS"/>
			<AudioEntry Sound="AudioEvent:ALL_Mastodon_VoiceMove" AudioType="voiceMove" />
                                                    <AudioEntry AudioType="voiceGuard" Sound="AudioEvent:ALL_Mastodon_VoiceMove"/>
			<AudioEntry Sound="AudioEvent:ALL_Mastodon_VoiceMoveAttack" AudioType="voiceAttackAfterMoving" />
			<AudioEntry Sound="AudioEvent:ALL_Mastodon_VoiceRetreat" AudioType="voiceRetreatToCastle" />
			<AudioEntry Sound="Multisound:Mastodon_VoiceSelectMS" AudioType="voiceSelect" />
			<AudioEntry Sound="Multisound:Mastodon_VoiceSelectBattleMS" AudioType="voiceSelectBattle" />
		</AudioArrayVoice>
		<AudioArraySound>
			<AudioEntry
				Sound="AudioEvent:VehicleCrush"
				AudioType="soundCrushing" />
                                                     <AudioEntry AudioType="soundMoveStart" Sound="Multisound:Mastodon_MoveStartMS"/>
                                                     <AudioEntry AudioType="soundAmbient" Sound="AudioEvent:Mastodon_IdleLoop"/>
                                                    <AudioEntry AudioType="soundMoveLoop" Sound="AudioEvent:Mastodon_Land_MoveLoop"/>
		</AudioArraySound>
		<EvaEvents
			EvaEventDieOwner="UnitLost"
			EvaEventProductionStarted="UnitConstructionStarted" 
			EvaEventDamagedOwner="UnitUnderAttack" 	
			EvaEventDamagedFromShroudedSourceOwner="UnitUnderAttackFromShroudedUnit"
			EvaEventDamagedByFireOwner="GenericUnitBeingBurned"  
			EvaEventAmbushed="UnitAmbushed" 
			EvaEventSecondDamageFarFromFirstScanRange="600"    
			EvaEventSecondDamageFarFromFirstTimeoutMS="31000" 
			EvaEnemyObjectSightedEvent="GenericEnemyUnitSighted" 
			EvaEventDetectedEnemy="EnemyStealthUnitDiscovered"
			EvaEventAvailableForProduction="NewConstructionOptions"
			EvaEventBuildOnHold="BuildOnHold"
			EvaEventBuildCancelled="BuildCancelled" 
			EvaEventPromotedOwner="UnitPromoted" />
<VisionInfo ShroudClearingRange="400" VisionRange="350"/>
		<CrusherInfo
			CrushKnockback="0"
			CrushZFactor="1"
			MinCrushVelocityPercent="1%"
			CrushDecelerationPercent="0%"
			CrushWeapon=""
			CrushRevengeWeapon=""
			CrusherLevel="4"
			CrushableLevel="4"
			MountedCrusherLevel="255"
			MountedCrushableLevel="255"
			CrushEqualLevelProps="False"
			UseCrushAttack="True"
			CrushOnlyWhileCharging="False"
			CrushAllies="False" />
	</GameObject>
</AssetDeclaration>

 

 

Here the locomotor

 

<?xml version="1.0" encoding="utf-8"?>
<AssetDeclaration xmlns="uri:ea.com:eala:asset">
<LocomotorTemplate id="GDIMastadonLocomotor" 
Surfaces="GROUND RUBBLE CRUSHABLE_OBSTACLE" 
MaxSpeedDamaged="75%" 
TurnTimeSeconds="4s"
 TurnTimeDamagedSeconds="8s"
SlowTurnRadius="3" 
FastTurnRadius="30" 
AccelerationSeconds="0.21s" 
BrakingSeconds="0.21s" 
MinTurnSpeed="50%" 
Appearance="TREADS" 
value="FOUR_LEGS_HUGE"
FormationPriority="NO_FORMATION" 
BackingUpSpeed="33%" 
BackingUpAngle="0.5" 
StickToGround="True" />
</AssetDeclaration>

Share this post


Link to post

i am basicly out of suggestions, can't think of anything atm.

Share this post


Link to post

I see,

 

 

Adding the new animationstate made him act a bit different when he turn around

but he still don't move his legs, is it matter of change stuff in the distance and with the locomotor? I think that Scrin epic unit move it legs when he turn... or it was the redeemer,

 

 

Oh and also I try something with the mastodon

 

 

I try to add a pod that come from the sky and then spawn him, for now I don't use the c&c4 pod since I don't sure how to make it work and if I even used the right model since it seem that EA mixed it with the Crawlers models and it confused me : /

 

 

But the real issue for now is that the pod can be train multiple times because I don't use it as Special power

I thought that SP will be too much unique for a epic unit so I tried to make the Marv facility to build the pod (gave it dec and pic of the mastodon) and then make the pod to spawn the mastodon

 

But thanks to the pod and the mastodon being two different units the Unique_unit won't work and will let you build the pod many times (but won't spawn the mastodon again lol since he already in the field and also use Unique_unit)

 

So do you have any idea how I can make the pod trainable Only when there's not any mastodon in the field?

 

Support power with Scrin mothership style can be cool but can be too much unique and have it own balance issues for epic unit.... So it the last resort

Share this post


Link to post

Not sure about the problem with the legs without some pictures or a video, but some thing I noticed at your code:

 

CurDrawableShowSubObject("GUN_UPGRADE")

 

Thats not a good way to hide/show stuff. Its better to add "RetainSubObjects="true" to most Modelconditionstates like the other units have.

 

 

Flags="MAINTAIN_FRAME_ACROSS_STATES"

Should also be removed, as there is no reason to have it in all these states.

 

 

"MOVING HEALTH_PERCENT_25"

This state wont work. It needs to be defined BEFORE the normal MOVING state and I think HEALTH_PERCENT_25 is not working by default, you need another module to trigger it. Its better to just use DAMAGE/REALLYDAMAGED.

 

 

Appearance="TREADS" 
value="FOUR_LEGS_HUGE"

I dont know much about WED, but I am pretty sure thats WRONG. Appearance is either TREADS or FOUR_LEGS_HUGE, not both.

Most of these options are bugged anyway in TW, hence its best to use TWO_LEGS, THREADS, HOVER and WINGS.

 

TWA Locomotor:

	<LocomotorTemplate
		id="GDIMastodonLocomotor"
		Surfaces="GROUND RUBBLE CRUSHABLE_OBSTACLE"
		TurnTimeSeconds="3.5s"
		TurnTimeDamagedSeconds="3.5s"
		MaxSpeedDamaged="75%"
		AccelerationSeconds="0.3s"
		BrakingSeconds="0.3s"
		SlowTurnRadius="5.0"
		FastTurnRadius="50.0"
		BehaviorZ="NO_MOTIVE_FORCE"
		Appearance="TREADS"
		PitchStiffness="0.5"
		RollStiffness="0.25"
		PitchDamping="0.8"
		RollDamping="0.3"
		ForwardAccelerationPitchFactor="0.3"
		LateralAccelerationRollFactor="0.0"
		ClampOrientationToPathTangent="true"
		ReorientIfTurnTooSharp="true"
		/>

 

Share this post


Link to post

I see,

 

 

Adding the new animationstate made him act a bit different when he turn around

but he still don't move his legs, is it matter of change stuff in the distance and with the locomotor? I think that Scrin epic unit move it legs when he turn... or it was the redeemer,

 

 

Oh and also I try something with the mastodon

 

 

I try to add a pod that come from the sky and then spawn him, for now I don't use the c&c4 pod since I don't sure how to make it work and if I even used the right model since it seem that EA mixed it with the Crawlers models and it confused me : /

 

 

But the real issue for now is that the pod can be train multiple times because I don't use it as Special power

I thought that SP will be too much unique for a epic unit so I tried to make the Marv facility to build the pod (gave it dec and pic of the mastodon) and then make the pod to spawn the mastodon

 

But thanks to the pod and the mastodon being two different units the Unique_unit won't work and will let you build the pod many times (but won't spawn the mastodon again lol since he already in the field and also use Unique_unit)

 

So do you have any idea how I can make the pod trainable Only when there's not any mastodon in the field?

 

Support power with Scrin mothership style can be cool but can be too much unique and have it own balance issues for epic unit.... So it the last resort

the mother ship uses this to limit how many it can spawn, you would add something more or less the same to your mastodont

 

<GrantUpgradeCreate
                id="ModuleTag_AddMotherShipUpgrade"
                UpgradeToGrant="Upgrade_MotherShipBuilt" />
            <UpgradeDie
                id="ModuleTag_RemoveMotherShipUpgrade"               /** if the unit dies it removes the following upgrade **/
                UpgradeId="Upgrade_MotherShipBuilt">
                <DieMuxData
                    DeathTypes="ALL" />
            </UpgradeDie>
 

and it uses that upgrade in it gamedependancy for its specialpower, but you can sue that same dependancy in your droppod aswel:

 

 

<GameDependency>
         
            <ForbiddenUpgrade>Upgrade_MotherShipBuilt</ForbiddenUpgrade>
</GameDependency>
 

Share this post


Link to post

Not sure about the problem with the legs without some pictures or a video, but some thing I noticed at your code:

 

CurDrawableShowSubObject("GUN_UPGRADE")

 

Thats not a good way to hide/show stuff. Its better to add "RetainSubObjects="true" to most Modelconditionstates like the other units have.

 

 

I see, where I need to add it though? I think I saw it on some units I moded before, don't remember which though

I will upload a video or GIF later if you want, but it look really similar to how the mammoth moves when he shoot on moving target that within his range and just make him rotate while he keep shooting on it

 

 

 

 

Flags="MAINTAIN_FRAME_ACROSS_STATES"

Should also be removed, as there is no reason to have it in all these states.

 

 

I think I saw a bit of imporovment thanks to that, from where should I remove it? from all states aside the "Moving" state?

 

 

 

 

 

 

"MOVING HEALTH_PERCENT_25"

This state wont work. It needs to be defined BEFORE the normal MOVING state and I think HEALTH_PERCENT_25 is not working by default, you need another module to trigger it. Its better to just use DAMAGE/REALLYDAMAGED.

Yea it a left over from zocom7 or Gdi_commado xml, it supposed to change the mastadon animation to damage moving animation when it really damage, the HEALTH_PERCENT_25 indeed don't work but when I use REALLYDAMAGED before it end up look really werid, I didn't knew it should be placed before the normal moving state though

 

Do I need to place it above the normal moving state and change it to Moving_REALLYDAMAGED ? is there anything else you know aside the "REALLYDAMAGED" that should use that state only under low health?

 

 

 

 

 

Appearance="TREADS"

value="FOUR_LEGS_HUGE"

I dont know much about WED, but I am pretty sure thats WRONG. Appearance is either TREADS or FOUR_LEGS_HUGE, not both.

Most of these options are bugged anyway in TW, hence its best to use TWO_LEGS, THREADS, HOVER and WINGS.

 

Yea I sort of was surprise that it didn't crushed, so I was like "well as long as it work....."

 

But I think the TWA's Locomotor will be better, can I use it?

 

 

 

 

 

Edit, here the updated xml

 

<?xml version="1.0" encoding="utf-8"?>
<AssetDeclaration xmlns="uri:ea.com:eala:asset">
	<GameObject
		id="GDIMastadon"
		inheritFrom="BaseVehicle"
		SelectPortrait="Portrait_Mastodon"
		ButtonImage="Portrait_Mastodon"
		Side="SteelTalons"
		EditorSorting="UNIT"
		TransportSlotCount="1"
		BuildCost="5000"
		BuildTime="50"
                                  ThreatLevel="10" 
		BuildFadeInOnCreateTimeSeconds="0.25s"
		HealthBoxScale="1.5"
		HealthBoxHeightOffset="10"
		CommandSet="GDIMastadonCommandSet"
		CommandPoints="100" 
                                   ShockwaveResistance="100"
                                   ReinvisibilityDelay="7s"
		KindOf="SELECTABLE CAN_ATTACK CAN_CAST_REFLECTIONS PRELOAD SCORE ATTACK_NEEDS_LINE_OF_SIGHT LARGE_RECTANGLE_PATHFIND VEHICLE UNIQUE_UNIT CAN_BE_FAVORITE_UNIT METAUNIT CAN_SHOOT_OVER_WALLS USE_STRICT_PATHING"
		RadarPriority="UNIT"
		ProductionQueueType="VEHICLE"
		UnitCategory="VEHICLE"
		WeaponCategory="CANNON"
		VoicePriority="250"
		EditorName="SteelTalonsMastadon"
		Description="Desc:GDIMastadon"
		TypeDescription="Type:GDIMastadon"
		MaxSimultaneousOfType="1">
		<DisplayName
			xai:joinAction="Replace" xmlns:xai="uri:ea.com:eala:asset:instance">Name:GDIMastadon</DisplayName>
                                   <GameDependency>
                                   <RequiredObject>SteelTalonsTechCenter</RequiredObject>
                                  </GameDependency>
		<ArmorSet
			Armor="GDIMARVArmor"
			DamageFX="VehicleDamageFX" />
		<LocomotorSet
			Locomotor="GDIMastadonLocomotor"
			Condition="NORMAL"
			Speed="55.0" />
		<SkirmishAIInformation
			UnitBuilderStandardCombatUnit="true" />
		<Draws>
<ScriptedModelDraw id="ModuleTag_Draw" 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 BONE_CONTACT_POINT_08 BONE_CONTACT_POINT_09 BONE_CONTACT_POINT_10 BONE_CONTACT_POINT_11 BONE_CONTACT_POINT_12" OkToChangeModelColor="true">
				<ModelConditionState
					ParseCondStateType="PARSE_DEFAULT" RetainSubObjects="True">
					<Model
						Name="W3DContainer:GUVehicleL_SKN" />
					<WeaponFireFXBone
						WeaponSlotID="1"
						WeaponSlotType="PRIMARY_WEAPON"
						BoneName="t1_cannon" />
					<WeaponLaunchBone
						WeaponSlotID="1"
						WeaponSlotType="PRIMARY_WEAPON"
						BoneName="t1_cannon" />
					<!-- <WeaponFireFXBone
						WeaponSlotID="2"
						WeaponSlotType="PRIMARY_WEAPON"
						BoneName="f8af8c94" />
					<WeaponLaunchBone
						WeaponSlotID="2"
						WeaponSlotType="PRIMARY_WEAPON"
						BoneName="f8af8c94" /> -->
					<WeaponFireFXBone
						WeaponSlotID="3"
						WeaponSlotType="SECONDARY_WEAPON"
						BoneName="aa_l_" />
					<WeaponLaunchBone
						WeaponSlotID="3"
						WeaponSlotType="SECONDARY_WEAPON"
						BoneName="aa_l_" />
					<WeaponFireFXBone
						WeaponSlotID="4"
						WeaponSlotType="SECONDARY_WEAPON"
						BoneName="aa_r_" />
					<WeaponLaunchBone
						WeaponSlotID="4"
						WeaponSlotType="SECONDARY_WEAPON"
						BoneName="aa_r_" />
					     <Turret
      TurretNameKey="b_turret01"
      TurretPitch="b_pitch01"
      TurretID="1" />
     <Turret
      TurretNameKey="b_turret06"
      TurretPitch="B_PITCHL"
      TurretID="3" />
     <Turret
      TurretNameKey="b_turret07"
      TurretPitch="B_PITCHR"
      TurretID="4" />
				</ModelConditionState>
				<ModelConditionState
					ParseCondStateType="PARSE_NORMAL"
					ConditionsYes="FORMATION_PREVIEW">
					<Model
						Name="W3DContainer:GUMARV_FP" />
				</ModelConditionState>

				<ModelConditionState
					ParseCondStateType="PARSE_NORMAL" RetainSubObjects="True"
					ConditionsYes="DAMAGED USER_6">
					<Model
						Name="W3DContainer:GUVehicleL_SKN" />
					<Texture
						Original="GUVehicleL"
						New="GUVehicleL" />						
				</ModelConditionState>
				<ModelConditionState
					ParseCondStateType="PARSE_NORMAL" RetainSubObjects="True"
					ConditionsYes="REALLYDAMAGED USER_6">
					<Model
						Name="W3DContainer:GUVehicleL_SKN" />
					<Texture
						Original="GUVehicleL"
						New="GUVehicleL_D" />
				</ModelConditionState>
				<ModelConditionState
					ParseCondStateType="PARSE_NORMAL" RetainSubObjects="True"
					ConditionsYes="DYING USER_6">
					<Model
						Name="W3DContainer:GUVehicleL_DIEA" />
					<Texture
						Original="GUVehicleL"
						New="GUVehicleL_D" />						
					<ParticleSysBone
						BoneName="chassis"
						FXParticleSystemTemplate="GDIDebrisSmallFire"
						FollowBone="true" />
					<ParticleSysBone
						BoneName="Chassis"
						FXParticleSystemTemplate="GDIDebrisSmallFireDistortion"
						FollowBone="true" />
					<ParticleSysBone
						BoneName="chassis"
						FXParticleSystemTemplate="GDIDebrisSmallSmoke"
						FollowBone="true" />
					<ParticleSysBone
						BoneName="b_turret01"
						FXParticleSystemTemplate="GDIDebrisSmallFire"
						FollowBone="true" />
					<ParticleSysBone
						BoneName="b_turret01"
						FXParticleSystemTemplate="GDIDebrisSmallFireDistortion"
						FollowBone="true" />
					<ParticleSysBone
						BoneName="b_turret01"
						FXParticleSystemTemplate="GDIDebrisSmallSmoke"
						FollowBone="true" />
				</ModelConditionState>
				
				<ModelConditionState
					ParseCondStateType="PARSE_NORMAL" RetainSubObjects="True"
					ConditionsYes="DAMAGED">
					<Model
						Name="W3DContainer:GUVehicleL_SKN" />
				</ModelConditionState>
				<ModelConditionState
					ParseCondStateType="PARSE_NORMAL" RetainSubObjects="True"
					ConditionsYes="REALLYDAMAGED">
					<Model
						Name="W3DContainer:GUVehicleL_SKN" />
					<Texture
						Original="GUVehicleL"
						New="GUVehicleL_D" />
				</ModelConditionState>
				<ModelConditionState
					ParseCondStateType="PARSE_NORMAL" RetainSubObjects="True"
					ConditionsYes="DYING">
					<Model
						Name="W3DContainer:GUVehicleL_DIEA" />
					<ParticleSysBone
						BoneName="chassis"
						FXParticleSystemTemplate="GDIDebrisSmallFire"
						FollowBone="true" />
					<ParticleSysBone
						BoneName="chassis"
						FXParticleSystemTemplate="GDIDebrisSmallFireDistortion"
						FollowBone="true" />
					<ParticleSysBone
						BoneName="chassis"
						FXParticleSystemTemplate="GDIDebrisSmallSmoke"
						FollowBone="true" />
					<ParticleSysBone
						BoneName="b_turret01"
						FXParticleSystemTemplate="GDIDebrisSmallFire"
						FollowBone="true" />
					<ParticleSysBone
						BoneName="b_turret01"
						FXParticleSystemTemplate="GDIDebrisSmallFireDistortion"
						FollowBone="true" />
					<ParticleSysBone
						BoneName="b_turret01"
						FXParticleSystemTemplate="GDIDebrisSmallSmoke"
						FollowBone="true" />
				</ModelConditionState>
				<ModelConditionState
					ParseCondStateType="PARSE_NORMAL" RetainSubObjects="True"
					ConditionsYes="USER_6">
					<Model
						Name="W3DContainer:GUVehicleL_SKN" />
					<Texture
						Original="GUVehicleL"
						New="GUVehicleL" />							
				</ModelConditionState>				
				<AnimationState
					ParseCondStateType="PARSE_DEFAULT"
					Flags="RANDOMSTART"
					StateName="STATE_bored">
					<Animation
						AnimationName="GUVehicleL_BIDA"
						AnimationMode="LOOP"
						AnimationBlendTime="15" />
					<Script>
						Prev = CurDrawablePrevAnimationState()
						if Prev == "STATE_SelectedPose" then
						CurDrawableSetTransitionAnimState("TRANS_SelectedToIdle")
						end
						CurDrawableShowSubObject("GUN_UPGRADE")
					</Script>
				</AnimationState>
				<AnimationState
					ParseCondStateType="PARSE_NORMAL"
					ConditionsYes="COMING_OUT_OF_FACTORY"
					StateName="STATE_built">
					<Animation
						AnimationName="GUVehicleL_BLDA"
						AnimationBlendTime="0"
						AnimationMode="ONCE" />
					<Script>
						CurDrawableShowSubObject("GUN_UPGRADE")
					</Script>
				</AnimationState>
				<AnimationState
					ParseCondStateType="PARSE_NORMAL"
					ConditionsYes="DYING">
					<Animation
						AnimationName="GUVehicleL_DIEA"
						AnimationMode="ONCE" />
					<Script>
						CurDrawableShowSubObject("GUN_UPGRADE")
					</Script>
				</AnimationState>
				<AnimationState
					ParseCondStateType="PARSE_NORMAL"
					ConditionsYes="AFFECTED_BY_EMP">
					<Animation
						AnimationName="GUVehicleL_BIDA"
						AnimationMode="MANUAL"
						AnimationBlendTime="15" />
					<Script>
						CurDrawableShowSubObject("GUN_UPGRADE")
					</Script>
				</AnimationState>
				<!-- being fixed by engineer from being a husk -->
				<AnimationState
					ParseCondStateType="PARSE_NORMAL"
					ConditionsYes="USER_5"
					StateName="STATE_Getup">
					<Animation
						AnimationName="GUVehicleL_GTPA"
						AnimationBlendTime="0"
						AnimationMode="ONCE" />
					<Script>
						CurDrawableShowSubObject("GUN_UPGRADE")
					</Script>
				</AnimationState>
<AnimationState ParseCondStateType="PARSE_NORMAL" ConditionsYes="ATTACKING TURN_LEFT_HIGH_SPEED" Flags="MAINTAIN_FRAME_ACROSS_STATES">
<Animation AnimationMode="LOOP" AnimationName="GUVehicleL_TRNLW" Distance="45"/>
<FXEvent Bone="B_FOOTL" Effect="FX_GDIJuggernaughtFootprint" FireWhenSkipped="true" Frame="1"/>
<FXEvent Bone="B_FOOTR" Effect="FX_GDIJuggernaughtFootprint" FireWhenSkipped="true" Frame="25"/>
<Script> CurDrawableShowSubObject("GUN_UPGRADE") </Script>
</AnimationState>

<AnimationState ParseCondStateType="PARSE_NORMAL" ConditionsYes="ATTACKING TURN_RIGHT_HIGH_SPEED" Flags="MAINTAIN_FRAME_ACROSS_STATES">
<Animation AnimationMode="LOOP" AnimationName="GUVehicleL_TRNRW" Distance="45"/>
<FXEvent Bone="B_FOOTL" Effect="FX_GDIJuggernaughtFootprint" FireWhenSkipped="true" Frame="1"/>
<FXEvent Bone="B_FOOTR" Effect="FX_GDIJuggernaughtFootprint" FireWhenSkipped="true" Frame="25"/>
<Script> CurDrawableShowSubObject("GUN_UPGRADE") </Script>
</AnimationState>

<AnimationState ParseCondStateType="PARSE_NORMAL" ConditionsYes="ATTACKING TURN_LEFT">
<Animation AnimationMode="LOOP" AnimationName="GUVehicleL_TRNL" Distance="45"/>
<FXEvent Bone="B_FOOTL" Effect="FX_GDIJuggernaughtFootprint" FireWhenSkipped="true" Frame="0"/>
<FXEvent Bone="B_FOOTR" Effect="FX_GDIJuggernaughtFootprint" FireWhenSkipped="true" Frame="20"/>
<Script> CurDrawableShowSubObject("GUN_UPGRADE") </Script>
</AnimationState>

<AnimationState ParseCondStateType="PARSE_NORMAL" ConditionsYes="ATTACKING TURN_RIGHT">
<Animation AnimationMode="LOOP" AnimationName="GUVehicleL_TRNR" Distance="45"/>
<FXEvent Bone="B_FOOTR" Effect="FX_GDIJuggernaughtFootprint" FireWhenSkipped="true" Frame="0"/>
<FXEvent Bone="B_FOOTL" Effect="FX_GDIJuggernaughtFootprint" FireWhenSkipped="true" Frame="20"/>
<Script> CurDrawableShowSubObject("GUN_UPGRADE") </Script>
</AnimationState>
				<AnimationState
					ParseCondStateType="PARSE_NORMAL"
					ConditionsYes="TURN_LEFT_HIGH_SPEED"
					Flags="MAINTAIN_FRAME_ACROSS_STATES">
					<Animation
						AnimationName="GUVehicleL_TRNLW"
						AnimationMode="LOOP"
						Distance="45" />
					<FXEvent
						Frame="1"
						FireWhenSkipped="true"
						Effect="FX_GDIJuggernaughtFootprint"
						Bone="B_FOOTL" />
					<FXEvent
						Frame="25"
						FireWhenSkipped="true"
						Effect="FX_GDIJuggernaughtFootprint"
						Bone="B_FOOTR" />
					<Script>
						CurDrawableShowSubObject("GUN_UPGRADE")
					</Script>
				</AnimationState>
				<AnimationState
					ParseCondStateType="PARSE_NORMAL"
					ConditionsYes="TURN_RIGHT_HIGH_SPEED"
					Flags="MAINTAIN_FRAME_ACROSS_STATES">
					<Animation
						AnimationName="GUVehicleL_TRNRW"
						AnimationMode="LOOP"
						Distance="45" />
					<FXEvent
						Frame="1"
						FireWhenSkipped="true"
						Effect="FX_GDIJuggernaughtFootprint"
						Bone="B_FOOTL" />
					<FXEvent
						Frame="25"
						FireWhenSkipped="true"
						Effect="FX_GDIJuggernaughtFootprint"
						Bone="B_FOOTR" />
					<Script>
						CurDrawableShowSubObject("GUN_UPGRADE")
					</Script>
				</AnimationState>
				<AnimationState
					ParseCondStateType="PARSE_NORMAL"
					ConditionsYes="TURN_LEFT">
					<Animation
						AnimationName="GUVehicleL_TRNL"
						AnimationMode="LOOP" />
					<FXEvent
						Frame="0"
						FireWhenSkipped="true"
						Effect="FX_GDIJuggernaughtFootprint"
						Bone="B_FOOTL" />
					<FXEvent
						Frame="20"
						FireWhenSkipped="true"
						Effect="FX_GDIJuggernaughtFootprint"
						Bone="B_FOOTR" />
					<Script>
						CurDrawableShowSubObject("GUN_UPGRADE")
					</Script>
				</AnimationState>
				<AnimationState
					ParseCondStateType="PARSE_NORMAL"
					ConditionsYes="TURN_RIGHT">
					<Animation
						AnimationName="GUVehicleL_TRNR"
						AnimationMode="LOOP" />
					<FXEvent
						Frame="0"
						FireWhenSkipped="true"
						Effect="FX_GDIJuggernaughtFootprint"
						Bone="B_FOOTR" />
					<FXEvent
						Frame="20"
						FireWhenSkipped="true"
						Effect="FX_GDIJuggernaughtFootprint"
						Bone="B_FOOTL" />
					<Script>
						CurDrawableShowSubObject("GUN_UPGRADE")
					</Script>
				</AnimationState>
				<AnimationState
					ParseCondStateType="PARSE_NORMAL"
					ConditionsYes="MOVING"
					Flags="MAINTAIN_FRAME_ACROSS_STATES">
          <Animation
						AnimationName="GUVehicleL_MOVA"
						AnimationMode="LOOP"
						Distance="146" 
            AnimationSpeedFactorMin="0.8"
            AnimationSpeedFactorMax="1.0"
            AnimationBlendTime="15" />
					<FXEvent
						Frame="1"
						FireWhenSkipped="true"
						Effect="FX_GDIJuggernaughtFootprint"
						Bone="B_FOOTL" />
					<FXEvent
						Frame="25"
						FireWhenSkipped="true"
						Effect="FX_GDIJuggernaughtFootprint"
						Bone="B_FOOTR" />
					<Script>
						Prev = CurDrawablePrevAnimationState()
						if Prev == "STATE_built" then
						CurDrawableSetTransitionAnimState("TRANS_built")
						end
						CurDrawableShowSubObject("GUN_UPGRADE")
					</Script>						
				</AnimationState>
				<AnimationState
					ParseCondStateType="PARSE_NORMAL"
					ConditionsYes="MOVING HEALTH_PERCENT_25"
					Flags="MAINTAIN_FRAME_ACROSS_STATES">
          <Animation
						AnimationName="GUVehicleL_MOVD"
						AnimationMode="LOOP"
						Distance="146" 
            AnimationSpeedFactorMin="0.8"
            AnimationSpeedFactorMax="1.0"
            AnimationBlendTime="15" />
					<FXEvent
						Frame="1"
						FireWhenSkipped="true"
						Effect="FX_GDIJuggernaughtFootprint"
						Bone="B_FOOTL" />
					<FXEvent
						Frame="25"
						FireWhenSkipped="true"
						Effect="FX_GDIJuggernaughtFootprint"
						Bone="B_FOOTR" />
					<Script>
						Prev = CurDrawablePrevAnimationState()
						if Prev == "STATE_built" then
						CurDrawableSetTransitionAnimState("TRANS_built")
						end
						CurDrawableShowSubObject("GUN_UPGRADE")
					</Script>						
				</AnimationState>
				<AnimationState
					ParseCondStateType="PARSE_NORMAL"
					ConditionsYes="ATTACKING">
					<Animation
						AnimationName="GUVEhicleL_ATKA"
						AnimationMode="LOOP"
						AnimationBlendTime="15" />
					<Script>
						CurDrawableShowSubObject("GUN_UPGRADE")
					</Script>
				</AnimationState>
				<!-- SELECTED -->
				<AnimationState
					ParseCondStateType="PARSE_NORMAL"
					ConditionsYes="SELECTED"
					StateName="STATE_SelectedPose">
					<Animation
						AnimationName="GUVehicleL_AIDA"
						AnimationMode="LOOP"
						AnimationBlendTime="15" />
					<Script>
						Prev = CurDrawablePrevAnimationState()
						if Prev == "STATE_bored" then
						CurDrawableSetTransitionAnimState("TRANS_IdleToSelected")
						end
						CurDrawableShowSubObject("GUN_UPGRADE")
					</Script>
				</AnimationState>
				<!-- TRANSITIONS -->
				<AnimationState
					ParseCondStateType="PARSE_TRANSITION"
					StateName="TRANS_IdleToSelected" >
					<Animation
						AnimationName="GUVehicleL_BATA"
                                                                                                        AnimationBlendTime="10"
						AnimationMode="ONCE" />
					<Script>
						CurDrawableShowSubObject("GUN_UPGRADE")
					</Script>
				</AnimationState>
				<AnimationState
					ParseCondStateType="PARSE_TRANSITION"
					StateName="TRANS_SelectedToIdle" >
					<Animation
						AnimationName="GUVehicleL_ABTA"
                                                                                                        AnimationBlendTime="10"
						AnimationMode="ONCE" />
					<Script>
						CurDrawableShowSubObject("GUN_UPGRADE")
					</Script>
				</AnimationState>
				<!--   Transitions -->
				<AnimationState
					ParseCondStateType="PARSE_TRANSITION"
					StateName="TRANS_built">
					<Animation
						AnimationName="GUVehicleL_BLDA"
						AnimationBlendTime="0"
						AnimationMode="ONCE" />
					<Script>
						CurDrawableShowSubObject("GUN_UPGRADE")
					</Script>
				</AnimationState>
			</ScriptedModelDraw>
			<SpotlightDraw
				id="ModuleTag_Spotlight"
				AttachToBoneInAnotherModule="Zt_Spine2"
				RefreshTime="2.0s"
				SweepTime="1.0s">
				<ModelConditionState
					ParseCondStateType="PARSE_DEFAULT">
					<Model
						Name="W3DContainer:FXspotlight" />
				</ModelConditionState>
				<ModelConditionState
					ParseCondStateType="PARSE_NORMAL"
					ConditionsYes="FORMATION_PREVIEW">
					<Model
						Name="" />
				</ModelConditionState>
			</SpotlightDraw>
			<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>
			</LaserDraw>

		</Draws>
		<Behaviors>
<FireWeaponUpdate id="ModuleTag_Fireweapon">
<FireWeaponNugget OneShot="true" Firedelay="0.1s" WeaponName="NodNuclearTransportNuke4"/>
</FireWeaponUpdate>
			<ProductionUpdate
				id="ProductionUpdateModuleTag"
				GiveNoXP="true"/>
<HordeTransportContain id="0x9DC593B0" Slots="4" KillPassengersOnDeath="True" 
AllowNeutralInside="False" AllowEnemiesInside="False" 
AllowOwnPlayerInsideOverride="True" 
ObjectStatusOfContained="CAN_ATTACK UNSELECTABLE ENCLOSED" 
ExitSound="AudioEvent:VehicleExit" EnterSound="AudioEvent:VehicleEnter" 
ContainMax="4"><PassengerFilter Include="INFANTRY" Rule="ANY"/>
<DieMuxData DeathTypes="ALL"/>
<PassengerData BonePrefix="BONE_CONTACT_POINT_">
<Filter Include="INFANTRY"/></PassengerData>
<MemberTemplateStatusInfo 
ObjectStatus="CAN_SPOT_FOR_BOMBARD" ThingTemplate="GDISniperSquad"/>
</HordeTransportContain>
			<AttributeModifierPoolUpdate 
				id="DefaultAttributeModifierPoolUpdate"/>
			<SquishCollide
				id ="DefaultSquishCollide"/>
			<FireWeaponWhenDead
				id="ModuleTag_CatalystDeathWeapon"
				InitiallyActive="true"
				DeathWeapon="CatalystInfantryDeathWeapon"
				ContinueToBezierDestination="false">
				<DieMuxData DeathTypes="CATALYST" />
			</FireWeaponWhenDead>
			<!--Heroic level units auto healing-->
			<AutoHealBehavior
				id="Upgrade_HeroicHeal"
				InitiallyActive="false"
				HealOnlyIfNotInCombat="false"
				HealOnlyIfNotUnderAttack="false"
				StartHealingDelay="1s"
				HealingAmount="100"
				HealingDelay=".5s">
				<TriggeredBy>Upgrade_Veterancy_HEROIC</TriggeredBy>
			</AutoHealBehavior>
			<AttributeModifierUpgrade
				id="ModuleTag_AttributeModifierUpgradeMUCSpeed"
				AttributeModifier="Modifier_MultifunctionUpgradeCenterSpeed">
				<TriggeredBy>Upgrade_MultifunctionUpgradeCenterSpeed</TriggeredBy>
			</AttributeModifierUpgrade>
			<AttributeModifierUpgrade
				id="ModuleTag_AttributeModifierUpgradeMUCDamage"
				AttributeModifier="Modifier_MultifunctionUpgradeCenterDamage">
				<TriggeredBy>Upgrade_MultifunctionUpgradeCenterDamage</TriggeredBy>
			</AttributeModifierUpgrade>
			<AttributeModifierUpgrade
				id="ModuleTag_AttributeModifierUpgradeMUCArmor"
				AttributeModifier="Modifier_MultifunctionUpgradeCenterArmor">
				<TriggeredBy>Upgrade_MultifunctionUpgradeCenterArmor</TriggeredBy>
			</AttributeModifierUpgrade>
			<StancesBehavior
				id="ModuleTag_Stance"
				StanceTemplate="Generic" />
<StatusBitsUpgrade id="0x21DB4E8C" StatusToSet="RIDER2">
<TriggeredBy>Everyone_Faction</TriggeredBy>
</StatusBitsUpgrade>
			<LevelUpUpgrade
				id="ModuleTag_LevelUpUpgrade_Veteran"
				LevelCap="4"
				LevelsToGain="1">
				<TriggeredBy>Upgrade_ProductionVeterancy_VETERAN</TriggeredBy>
			</LevelUpUpgrade>
			<LevelUpUpgrade
				id="ModuleTag_LevelUpUpgrade_Elite"
				LevelCap="4"
				LevelsToGain="2">
				<TriggeredBy>Upgrade_ProductionVeterancy_ELITE</TriggeredBy>
			</LevelUpUpgrade>
			<LevelUpUpgrade
				id="ModuleTag_LevelUpUpgrade_Heroic"
				LevelCap="4"
				LevelsToGain="3">
				<TriggeredBy>Upgrade_ProductionVeterancy_HEROIC</TriggeredBy>
			</LevelUpUpgrade>
			<InvisibilityUpdate
				id="3BD7F2F5"
				Options=""
				UpdatePeriod="0.5s"
				BroadcastRange="0"
				OpacityMin="100%">
				<InvisibilityNugget
					ForbiddenConditions="PREATTACK_A FIRING_A FIRING_OR_PREATTACK_A RELOADING_A PREATTACK_B FIRING_B FIRING_OR_PREATTACK_B RELOADING_B PREATTACK_C FIRING_C FIRING_OR_PREATTACK_C RELOADING_C USING_WEAPON_A USING_WEAPON_B USING_WEAPON_C"
					ForbiddenConditionExceptions=""
					ForbiddenWeaponSets=""
					ForbiddenStatus="IS_FIRING_WEAPON USING_ABILITY IS_AIMING_WEAPON SPECIAL_ABILITY_PACKING_UNPACKING_OR_USING"
					CamouflageLevel="0"
					InvisibilityType="INVALID"
					Options=""
					EnteringStealthFX=""
					LeavingStealthFX=""
					HintDetectableStates="IS_ATTACKING"
					NoStealthForAttackWindow="0s" />
				<RequiresUpgrade>Upgrade_CloakingFieldInvisibility</RequiresUpgrade>
			</InvisibilityUpdate>
			<!-- Cloaking Field -->
			<InvisibilityUpdate
				id="ModuleTag_Invisibility"
				UpdatePeriod="0.5s">
				<InvisibilityNugget
					ForbiddenStatus=""
					HintDetectableStates="" />
				<RequiresUpgrade>Upgrade_CloakingFieldInvisibility</RequiresUpgrade>
			</InvisibilityUpdate>
			<StealthUpgrade
				id="ModuleTag_InvisibilityTrigger">
				<TriggeredBy>Upgrade_CloakingFieldInvisibility</TriggeredBy>
			</StealthUpgrade>
			<TemporarilyDefectUpdate
				id="ModuleTag_TemporarilyDefect"
				DefectionFrameCount="300" />
			<WeaponSetUpdate
				id="ModuleTag_WeaponSetUpdate">
				<WeaponSlotTurret
					ID="1"
					InterleavedStyle="INTERLEAVE_FIRST_AVAILABLE"
					WeaponChoiceCriteria="PREFER_MOST_DAMAGE"
					AllowInterleavedFiring="False">
					<Weapon
						Ordering="PRIMARY_WEAPON"
						Template="GDIMastadonCannon"
						Upgrade=""
						ObjectStatus=""
						IsPlayerUpgradePermanent="False" />
					<TurretSettings
						TurretTurnRate="60"
						TurretPitchRate="20"
						MinimumPitch="-15d"
						PitchHeight="50%"
						ControlledWeaponSlots=""
						MinIdleScanTime="1s"
						MaxIdleScanTime="5s"
						MinIdleScanAngle="0"
						MaxIdleScanAngle="90"
						MaxDeflectionClockwise="120d"
						MaxDeflectionAntiClockwise="120d"
						NaturalTurretAngle="0d"
						AllowsPitch="True"
						RecenterWhenOutOfTurnRange="True">
						<TurretAITargetChooserData
							IdleScanDelay="0.8s"
							ReacquireDelay="5s"
							StartupDelay="0s"
							SympathyRange="25"
							CheckVisionRange="False"
							CanPickDynamicTargets="True"
							RotateToTargetWhenAiming="True"
							CanAutoAcquireNonAutoAcquirable="False"
							TargetingCompareList="DefaultTurretTargetingCompareList"
							ActiveWhenPerformingSpecialAbility="False"
							CanAcquireDynamicIfAssignedOutOfRange="True"
							CanPickTargetsOutOfTurretAngle="False" />
					</TurretSettings>
				</WeaponSlotTurret>
				<!-- <WeaponSlotHardpoint
					ID="1"
					AllowInterleavedFiring="true"
					InterleavedStyle="INTERLEAVE_RANDOM">
					<Weapon
						Ordering="PRIMARY_WEAPON"
						Template="GDIMastadonCannon" />
				</WeaponSlotHardpoint>
				 <WeaponSlotHardpoint
					ID="2"
					AllowInterleavedFiring="true"
					InterleavedStyle="INTERLEAVE_RANDOM">
					<Weapon
						Ordering="PRIMARY_WEAPON"
						Template="GDIMastadonCannon" />
				</WeaponSlotHardpoint> -->
				<WeaponSlotHierarchicalTurret ParentID="1" AllowInterleavedFiring="true" InterleavedStyle="INTERLEAVE_RANDOM" ID="3">
<Weapon IsPlayerUpgradePermanent="False" ObjectStatus="" Upgrade="" Template="GDIMastadonRocketPods" Ordering="SECONDARY_WEAPON"/>
<TurretSettings RecenterWhenOutOfTurnRange="True" AllowsPitch="False" NaturalTurretAngle="0d" MaxDeflectionAntiClockwise="99.99999d" MaxDeflectionClockwise="20d" MaxIdleScanAngle="90" MinIdleScanAngle="0" MaxIdleScanTime="5s" MinIdleScanTime="1s" ControlledWeaponSlots="" PitchHeight="50%" MinimumPitch="0d" TurretPitchRate="0" TurretTurnRate="60">
<TurretAITargetChooserData CanPickTargetsOutOfTurretAngle="False" CanAcquireDynamicIfAssignedOutOfRange="True" ActiveWhenPerformingSpecialAbility="False" TargetingCompareList="DefaultTurretTargetingCompareList" CanAutoAcquireNonAutoAcquirable="False" RotateToTargetWhenAiming="True" CanPickDynamicTargets="True" CheckVisionRange="False" SympathyRange="25" StartupDelay="0s" ReacquireDelay="5s" IdleScanDelay="0.8s"/>
</TurretSettings>
</WeaponSlotHierarchicalTurret>

<WeaponSlotHierarchicalTurret ParentID="1" AllowInterleavedFiring="true" InterleavedStyle="INTERLEAVE_RANDOM" ID="4">
<Weapon IsPlayerUpgradePermanent="False" ObjectStatus="" Upgrade="" Template="GDIMastadonRocketPods" Ordering="SECONDARY_WEAPON"/>
<TurretSettings RecenterWhenOutOfTurnRange="True" AllowsPitch="False" NaturalTurretAngle="0d" MaxDeflectionAntiClockwise="20d" MaxDeflectionClockwise="99.99999d" MaxIdleScanAngle="90" MinIdleScanAngle="0" MaxIdleScanTime="5s" MinIdleScanTime="1s" ControlledWeaponSlots="" PitchHeight="50%" MinimumPitch="0d" TurretPitchRate="0" TurretTurnRate="60">
<TurretAITargetChooserData CanPickTargetsOutOfTurretAngle="False" CanAcquireDynamicIfAssignedOutOfRange="True" ActiveWhenPerformingSpecialAbility="False" TargetingCompareList="DefaultTurretTargetingCompareList" CanAutoAcquireNonAutoAcquirable="False" RotateToTargetWhenAiming="True" CanPickDynamicTargets="True" CheckVisionRange="False" SympathyRange="25" StartupDelay="0s" ReacquireDelay="5s" IdleScanDelay="0.8s"/>
</TurretSettings>
</WeaponSlotHierarchicalTurret>

			</WeaponSetUpdate>
			<LaserState
				id="ModuleTag_LaserState"
				LaserId="1" />
			<Physics
				id="ModuleTag_Physics" />	
			<CreateObjectDie
				id="ModuleTag_CreateObjectDie"
				CreationList="">
				<DieMuxData
					DeathTypes="ALL" />
			</CreateObjectDie>
			<DestroyDie
				id="ModuleTag_Die">
				<DieMuxData
					DeathTypes="ALL" />
			</DestroyDie>
			<FXListBehavior
				id="ModuleTag_FXList">
				<DieMuxData
					DeathTypes="ALL" />
				<Event
					Index="onDeath"
					FX="FX_AwesomeXplosion" />
			</FXListBehavior>
<SlowDeath id="ModuleTag_Death" DestructionDelay="15s" 
SinkRate="1.5" SinkDelay="5s">
<OCL Type="INITIAL">
<OCL>OCL_GDIMARVDebris</OCL>
</OCL>
<DieMuxData DeathTypes="ALL" DeathTypesForbidden="TOPPLED"/>
<Sound Type="INITIAL" List="Mastodon_VoiceDie"/>
</SlowDeath>
			<StatusBitsUpgrade
				id="ModuleTag_VeterancyUpgrade"
				StatusToSet="WEAPON_UPGRADED_01">
				<TriggeredBy>Upgrade_Veterancy_HEROIC</TriggeredBy>
			</StatusBitsUpgrade>
		</Behaviors>
		<AI>
			<AIUpdate
				id="ModuleTag_AI"
				AILuaEventsList="GDIMastodonFunctions" AutoAcquireEnemiesWhenIdle="YES">
<UnitAITargetChooserData TargetingCompareList="DefaultTargetingCompareList" RotateToTargetWhenAiming="True" 
CanPickDynamicTargets="False" SympathyRange="100"/>
			</AIUpdate>
		</AI>
		<Body>
			<ActiveBody
				id="ModuleTag_Body"
				MaxHealth="22500" />
		</Body>
<ClientBehaviors>
<AnimationSoundClientBehavior id="ModuleTag_ASCB">
				<Sound Sound="AudioEvent:Mastodon_Footstep" Animation="GUVehicleL_TRNL" Frame="25 50 75 100 125 150" />
				<Sound Sound="AudioEvent:Mastodon_Footstep" Animation="GUVehicleL_TRNR" Frame="25 50 75 100 125 150" />
				<Sound Sound="AudioEvent:Mastodon_Footstep" Animation="GUVehicleL_TRNLW" Frame="25 50 75 100 125 150" />
				<Sound Sound="AudioEvent:Mastodon_Footstep" Animation="GUVehicleL_TRNRW" Frame="25 50 75 100 125 150" />
				<Sound Sound="AudioEvent:Mastodon_Footstep" Animation="GUVehicleL_MOVA" Frame="25 50 75 100 125 150" />
				<Sound Sound="AudioEvent:Mastodon_Footstep" Animation="GUVehicleL_MOVD" Frame="25 50 75 100 125 150" />
                                                                     <Sound Frame="22 44" Animation="GUVehicleL_ABTA" Sound="AudioEvent:Mastodon_SelectedToIdle_ABTA"/>
                                                                     <Sound Frame="16 31" Animation="GUVehicleL_BATA" Sound="AudioEvent:Mastodon_SelectedToIdle_BATA"/>
                                                                     <Sound Frame="16 31" Animation="GUVehicleL_BLDA" Sound="AudioEvent:Mastodon_COMING_OUT_OF_FACTORY"/>
</AnimationSoundClientBehavior>
</ClientBehaviors>
<ModelConditionAudioLoopClientBehavior id="0x7B291969">
<ModelConditionSound Sound="AudioEvent:GDI_RailgunAccelerator_EnergyStripeLoop" 
RequiredFlags="USING_WEAPON_C"/>
</ModelConditionAudioLoopClientBehavior>
		<Geometry
			IsSmall="false">
			<Shape 
			     Type= "BOX"
			     MajorRadius = "29.6026"
			     MinorRadius = "17.0185"
			     Height = "17.9773"
			     ContactPointGeneration="VEHICLE">
			    <Offset
			        x = "-18.3624"
			        y = "0.0492744"
			        z = "32.9796" />
			</Shape>
			<Shape 
			     Type= "BOX"
			     MajorRadius = "21.2712"
			     MinorRadius = "8.8983"
			     Height = "17.2881"
			     ContactPointGeneration="VEHICLE">
			    <Offset
			        x = "26.1552"
			        y = "-29.3933"
			        z = "0.0" />
			</Shape>
			<Shape 
			     Type= "BOX"
			     MajorRadius = "21.7525"
			     MinorRadius = "8.56917"
			     Height = "17.378"
			     ContactPointGeneration="VEHICLE">
			    <Offset
			        x = "25.4914"
			        y = "29.1596"
			        z = "9.53674e-007" />
			</Shape>
			<Shape 
			     Type= "BOX"
			     MajorRadius = "21.0169"
			     MinorRadius = "20.2542"
			     Height = "20.678"
			     ContactPointGeneration="VEHICLE">
			    <Offset
			        x = "23.934"
			        y = "0.00376129"
			        z = "-9.53674e-007" />
			</Shape>
			<Shape 
			     Type= "BOX"
			     MajorRadius = "30.3217"
			     MinorRadius = "19.8949"
			     Height = "32.9622"
			     ContactPointGeneration="VEHICLE">
			    <Offset
			        x = "-28.5169"
			        y = "-0.0588036"
			        z = "9.53674e-007" />
			</Shape>
			<Shape 
			     Type= "BOX"
			     MajorRadius = "26.8461"
			     MinorRadius = "11.865"
			     Height = "24.6888"
			     ContactPointGeneration="VEHICLE">
			    <Offset
			        x = "-26.0001"
			        y = "-32.2981"
			        z = "0.0" />
			</Shape>
			<Shape 
			     Type= "BOX"
			     MajorRadius = "26.2468"
			     MinorRadius = "11.3856"
			     Height = "24.9285"
			     ContactPointGeneration="VEHICLE">
			    <Offset
			        x = "-25.8802"
			        y = "31.7012"
			        z = "0.0" />
			</Shape>
		</Geometry>
		<AudioArrayVoice>
			<AudioEntry Sound="AudioEvent:ALL_Mastodon_VoiceAttack" AudioType="voiceAttack" />
                                                    <AudioEntry AudioType="voiceCreated" Sound="Multisound:ALL_Mastodon_VoiceCreateMS"/>
			<AudioEntry Sound="AudioEvent:ALL_Mastodon_VoiceMove" AudioType="voiceMove" />
                                                    <AudioEntry AudioType="voiceGuard" Sound="AudioEvent:ALL_Mastodon_VoiceMove"/>
			<AudioEntry Sound="AudioEvent:ALL_Mastodon_VoiceMoveAttack" AudioType="voiceAttackAfterMoving" />
			<AudioEntry Sound="AudioEvent:ALL_Mastodon_VoiceRetreat" AudioType="voiceRetreatToCastle" />
			<AudioEntry Sound="Multisound:Mastodon_VoiceSelectMS" AudioType="voiceSelect" />
			<AudioEntry Sound="Multisound:Mastodon_VoiceSelectBattleMS" AudioType="voiceSelectBattle" />
		</AudioArrayVoice>
		<AudioArraySound>
			<AudioEntry
				Sound="AudioEvent:VehicleCrush"
				AudioType="soundCrushing" />
                                                     <AudioEntry AudioType="soundMoveStart" Sound="Multisound:Mastodon_MoveStartMS"/>
                                                     <AudioEntry AudioType="soundAmbient" Sound="AudioEvent:Mastodon_IdleLoop"/>
                                                    <AudioEntry AudioType="soundMoveLoop" Sound="AudioEvent:Mastodon_Land_MoveLoop"/>
		</AudioArraySound>
		<EvaEvents
			EvaEventDieOwner="UnitLost"
			EvaEventProductionStarted="UnitConstructionStarted" 
			EvaEventDamagedOwner="UnitUnderAttack" 	
			EvaEventDamagedFromShroudedSourceOwner="UnitUnderAttackFromShroudedUnit"
			EvaEventDamagedByFireOwner="GenericUnitBeingBurned"  
			EvaEventAmbushed="UnitAmbushed" 
			EvaEventSecondDamageFarFromFirstScanRange="600"    
			EvaEventSecondDamageFarFromFirstTimeoutMS="31000" 
			EvaEnemyObjectSightedEvent="GenericEnemyUnitSighted" 
			EvaEventDetectedEnemy="EnemyStealthUnitDiscovered"
			EvaEventAvailableForProduction="NewConstructionOptions"
			EvaEventBuildOnHold="BuildOnHold"
			EvaEventBuildCancelled="BuildCancelled" 
			EvaEventPromotedOwner="UnitPromoted" />
<VisionInfo ShroudClearingRange="400" VisionRange="350"/>
		<CrusherInfo
			CrushKnockback="0"
			CrushZFactor="1"
			MinCrushVelocityPercent="1%"
			CrushDecelerationPercent="0%"
			CrushWeapon=""
			CrushRevengeWeapon=""
			CrusherLevel="4"
			CrushableLevel="4"
			MountedCrusherLevel="255"
			MountedCrushableLevel="255"
			CrushEqualLevelProps="False"
			UseCrushAttack="True"
			CrushOnlyWhileCharging="False"
			CrushAllies="False" />
	</GameObject>
</AssetDeclaration>

Still didn't changed the health_25 thing

 

but what you think about it now? shuold I delete all the Flags="MAINTAIN_FRAME_ACROSS_STATES" from it?

 

I still need to test and see if the improvment that were added from the old xml didn't go away~

Edited by Egozi44

Share this post


Link to post

the mother ship uses this to limit how many it can spawn, you would add something more or less the same to your mastodont

 

<GrantUpgradeCreate

id="ModuleTag_AddMotherShipUpgrade"

UpgradeToGrant="Upgrade_MotherShipBuilt" />

<UpgradeDie

id="ModuleTag_RemoveMotherShipUpgrade" /** if the unit dies it removes the following upgrade **/

UpgradeId="Upgrade_MotherShipBuilt">

<DieMuxData

DeathTypes="ALL" />

</UpgradeDie>

and it uses that upgrade in it gamedependancy for its specialpower, but you can sue that same dependancy in your droppod aswel:

 

 

<GameDependency>

<ForbiddenUpgrade>Upgrade_MotherShipBuilt</ForbiddenUpgrade>

</GameDependency>

 

 

So in other words I need to add that upgrade to both? also how does it work and how can I make it look as if you build the mastadon normally? I mean won't it show "request upgrade" next to the mastadon unit button after you build it?

 

I never used stuff from the mothership before so I don't really sure how that upgrade works

 

 

 

 

 

 

 

 

Oh and another new issue that pop up for me yesterday but probably shouldn't pose must of a problem for you:

I gave to all Pitbulls Mortar Bombard ability that let it act like the Juggernaut ability but have low dmg and range, it don't required sniper team, just the mortar upgrade

(see here http://www.moddb.com/mods/kanes-wrath-unofficial-patch-104/images/pitbulls-mortar-bombard#imagebox )

 

Now the issue is that it don't use the right bones for the attack and it shoot the mortar from the middle of the Pitbull rather than the rear cannon, the wreapon use the same stuff as the normal pitbull's mortar but with bigger range

 

How I can make it use the bone or whatever that is missing?

 

 

Here the pitbull xml (It a leftover I still used from bugged WED 1.08, so save it in a note and view it vie IE)

 

<?xml version="1.0" encoding="utf-8"?><AssetDeclaration xmlns="uri:ea.com:eala:asset"><GameObject id="GDIPitbull" KindOf="SELECTABLE CAN_ATTACK CAN_CAST_REFLECTIONS PRELOAD SCORE ATTACK_NEEDS_LINE_OF_SIGHT CAN_REVERSE_MOVE VEHICLE CAN_SHOOT_OVER_WALLS CAN_BE_FAVORITE_UNIT" Description="Desc:GDIPitbull" TypeDescription="Type:GDIPitbull" RadarPriority="UNIT" Side="GDI" EditorName="GDIPitbull" EditorSorting="UNIT" BuildTime="7" CommandSet="GDIPitbullCommandSet" SelectPortrait="Portrait_GDIPitbull" ButtonImage="Portrait_GDIPitbull" VoicePriority="164" ShockwaveResistance="100" CommandPoints="100" ThreatLevel="10" ProductionQueueType="VEHICLE" UnitCategory="VEHICLE" WeaponCategory="MISSILE" ReinvisibilityDelay="7s" WorldMapArmoryUpgradesAllowed="Upgrade_GDIArmoryPitbullMortar" BuildCost="700" TransportSlotCount="1"><DisplayName>Name:GDIPitbull</DisplayName><ArmorSet Armor="GDIPitbullArmor" DamageFX="VehicleDamageFX" /><LocomotorSet Speed="115" Locomotor="GDIPitbullLocomotor" /><SkirmishAIInformation UnitBuilderStandardCombatUnit="True" /><Draws><TruckDraw id="0x50DF2C46" MaxRecoilDistance="3" RecoilDamping="0.4" TrackMarks="EXTireTrack2" ExtraPublicBone="Tire01 Tire02 Tire03 Tire04 FXWEAPON01 FXWEAPON02" TrackMarksLeftBone="Tire03" TrackMarksRightBone="Tire04" OkToChangeModelColor="True" TrackMarksOnlyWhenCorneringQuickly="True" LeftFrontTireBone="Tire01" RightFrontTireBone="Tire02" LeftRearTireBone="Tire03" RightRearTireBone="Tire04" TireRotationMultiplier="0.2" PowerslideRotationAddition="1.25"><ModelConditionState ParseCondStateType="PARSE_DEFAULT"><Model Name="W3DContainer:GUPITBULL_SKN" /><WeaponFireFXBone BoneName="FXWEAPON01" /><WeaponFireFXBone WeaponSlotID="2" BoneName="mortortube" /><WeaponLaunchBone BoneName="FXWEAPON01" /><WeaponLaunchBone WeaponSlotID="2" BoneName="mortortube" /><Turret TurretNameKey="Turret" TurretPitch="B_ Gun" TurretID="1" /></ModelConditionState><ModelConditionState ParseCondStateType="PARSE_NORMAL" ConditionsYes="DAMAGED"><Model Name="W3DContainer:GUPITBULL_SKN" /></ModelConditionState><ModelConditionState ParseCondStateType="PARSE_NORMAL" ConditionsYes="REALLYDAMAGED"><Model Name="W3DContainer:GUPITBULL_SKN" /><Texture Original="GUPitbull" New="GUPitbullD" /><ParticleSysBone BoneName="TIRE03" FXParticleSystemTemplate="GDIPitbullDamagedSmoke" FollowBone="True" /></ModelConditionState><ModelConditionState ParseCondStateType="PARSE_NORMAL" ConditionsYes="DYING"><Model Name="W3DContainer:GUPITBULLR_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="FORMATION_PREVIEW"><Model Name="W3DContainer:GUPITBULL_FP" /></ModelConditionState><AnimationState ParseCondStateType="PARSE_DEFAULT" /><AnimationState ParseCondStateType="PARSE_NORMAL" ConditionsYes="DYING" /></TruckDraw><SpotlightDraw id="0xF591F97E" MaxRecoilDistance="3" RecoilDamping="0.4" AttachToBoneInAnotherModule="B_SPOTLIGHT" RefreshTime="2s"><ModelConditionState ParseCondStateType="PARSE_DEFAULT"><Model Name="W3DMesh:FXSPOTLIGHT" /><WeaponFireFXBone BoneName="FXWEAPON01" /><WeaponLaunchBone BoneName="FXWEAPON01" /></ModelConditionState><ModelConditionState ParseCondStateType="PARSE_NORMAL" ConditionsYes="FORMATION_PREVIEW"><Model /></ModelConditionState></SpotlightDraw></Draws><Behaviors><AttributeModifierPoolUpdate id="0x513BC476" /><SquishCollide id="0x8CCB269A" /><FireWeaponWhenDead id="0xDDED328F" DeathWeapon="CatalystInfantryDeathWeapon" InitiallyActive="True"><DieMuxData DeathTypes="CATALYST" /></FireWeaponWhenDead><AutoHealBehavior id="0xC07BF5C0" HealingAmount="100" HealingDelay="0.5s" StartHealingDelay="1s"><TriggeredBy>Upgrade_Veterancy_HEROIC</TriggeredBy></AutoHealBehavior><AttributeModifierUpgrade id="0xAA36A1AA" AttributeModifier="Modifier_MultifunctionUpgradeCenterSpeed"><TriggeredBy>Upgrade_MultifunctionUpgradeCenterSpeed</TriggeredBy></AttributeModifierUpgrade><AttributeModifierUpgrade id="0x81C6F752" AttributeModifier="Modifier_MultifunctionUpgradeCenterDamage"><TriggeredBy>Upgrade_MultifunctionUpgradeCenterDamage</TriggeredBy></AttributeModifierUpgrade><AttributeModifierUpgrade id="0xE35F7EC4" AttributeModifier="Modifier_MultifunctionUpgradeCenterArmor"><TriggeredBy>Upgrade_MultifunctionUpgradeCenterArmor</TriggeredBy></AttributeModifierUpgrade><StancesBehavior id="0x54CA416E" StanceTemplate="Generic" /><LevelUpUpgrade id="0xA92BDFEA" LevelsToGain="1" LevelCap="4"><TriggeredBy>Upgrade_ProductionVeterancy_VETERAN</TriggeredBy></LevelUpUpgrade><LevelUpUpgrade id="0x5C3F216A" LevelsToGain="2" LevelCap="4"><TriggeredBy>Upgrade_ProductionVeterancy_ELITE</TriggeredBy></LevelUpUpgrade><LevelUpUpgrade id="0x379F3CE2" LevelsToGain="3" LevelCap="4"><TriggeredBy>Upgrade_ProductionVeterancy_HEROIC</TriggeredBy></LevelUpUpgrade><InvisibilityUpdate id="0x3BD7F2F5" UpdatePeriod="0.5s"><InvisibilityNugget ForbiddenConditions="PREATTACK_A FIRING_A FIRING_OR_PREATTACK_A RELOADING_A PREATTACK_B FIRING_B FIRING_OR_PREATTACK_B RELOADING_B PREATTACK_C FIRING_C FIRING_OR_PREATTACK_C RELOADING_C USING_WEAPON_A USING_WEAPON_B USING_WEAPON_C" ForbiddenStatus="IS_FIRING_WEAPON USING_ABILITY IS_AIMING_WEAPON SPECIAL_ABILITY_PACKING_UNPACKING_OR_USING" /><RequiresUpgrade>Upgrade_CloakingFieldInvisibility</RequiresUpgrade></InvisibilityUpdate><StealthUpgrade id="0xF2B9DFBE"><TriggeredBy>Upgrade_CloakingFieldInvisibility</TriggeredBy></StealthUpgrade><TemporarilyDefectUpdate id="0x3473AFD2" DefectionFrameCount="300" /><ProductionUpdate id="0x34FE0D85" GiveNoXP="True" /><WeaponSetUpdate id="0x720F4A50"><WeaponSlotHardpoint ID="2"><Weapon Template="GDIPitbullMortar" ObjectStatus="WEAPON_UPGRADED_01" /></WeaponSlotHardpoint><WeaponSlotTurret ID="1" InterleavedStyle="INTERLEAVE_FIRST_AVAILABLE"><Weapon Template="GDIPitbullRocketWeapon" /><TurretSettings TurretTurnRate="2000" TurretPitchRate="200" MinIdleScanTime="1s" MaxIdleScanTime="5s" MaxIdleScanAngle="90" AllowsPitch="True"><TurretAITargetChooserData TargetingCompareList="DefaultTurretTargetingCompareList" CanAcquireDynamicIfAssignedOutOfRange="True" /></TurretSettings></WeaponSlotTurret></WeaponSetUpdate><SpecialPower id="0xD91ED54564AFA" 
UpdateModuleStartsAttack="True" 
SpecialPowerTemplate="SpecialPower_SpotBeaconBombard2">
<AttributeModifierAffects Rule="UNPARSED"/>
<RequirementsFilterMP Rule="UNPARSED"/>
<RequirementsFilterStrategic Rule="UNPARSED"/>
</SpecialPower>
<WeaponFireSpecialAbilityUpdate id="0xE57FD838" SpecialPowerTemplate="SpecialPower_SpotBeaconBombard2" DestealthClosestObjectMatchingFilter="True" 
WhichSpecialWeapon="1" 
SpecialWeapon="GDIPitbullMortarArtilleryBombard" FaceTarget="True" 
Options="CHECK_SPECIALPOWER_REQUIREMENTS_DURING_UPDATE" UnpackTime="3.5s" 
PackTime="3.5s" PersistentPrepTime="5s" StartAbilityRange="600"/>
<AISpecialPowerUpdate id="0x29001BCD" 
RandomizeTargetLocation="False" SpecialPowerRadius="600" 
SpecialPowerAIType="SPECIAL_POWER" 
CommandButtonName="Command_SpotBeaconBombard2"/><ProductionUpdate id="0x749674DE" /><Physics id="0x6D41764B" /><SlowDeath id="0x73542D4A" SinkRate="1" SinkDelay="3s" DestructionDelay="7s"><OCL><OCL>OCL_GDIPitBullDebris</OCL></OCL><Sound List="GDI_Generic_VoiceDieMS" /><DieMuxData DeathTypes="ALL" DeathTypesForbidden="TOPPLED" /></SlowDeath><FXListBehavior id="0xC74C39D8"><DieMuxData DeathTypes="ALL" /><Event FX="FX_GDIVehicleExplodeNoScorch" /></FXListBehavior><StealthDetectorUpdate id="0x70ED959C" DetectionRange="400" /><CreateAndEnterObjectSpecialPower id="0x6D44A823" SpecialPowerTemplate="SpecialPowerCallForTransportGDI" TriggerFX="FX_GDICallForTransportFlare" IdleWhenStartingPower="True" ChildModuleHandlesFX="True" OCL="OCL_GDICallForTransportForVehicle" CreateLocation="CREATE_ABOVE_LOCATION"><AttributeModifierAffects Rule="UNPARSED" /><RequirementsFilterMP Rule="UNPARSED" /><RequirementsFilterStrategic Rule="UNPARSED" /><FXOffset x="25" /></CreateAndEnterObjectSpecialPower><StatusBitsUpgrade id="0x85B2DF85" StatusToSet="WEAPON_UPGRADED_01"><TriggeredBy>Upgrade_GDIArmoryPitbullMortar</TriggeredBy></StatusBitsUpgrade><SubObjectsUpgrade id="0x15821060" ShowSubObjects="MortorTube"><TriggeredBy>Upgrade_GDIArmoryPitbullMortar</TriggeredBy></SubObjectsUpgrade><StatusBitsUpgrade id="0xD305500E" StatusToSet="WEAPON_UPGRADED_03"><TriggeredBy>Upgrade_Veterancy_HEROIC</TriggeredBy></StatusBitsUpgrade><AudioLoopUpgrade id="0xA5FBD0CB" SoundToPlay="AudioEvent:GDI_Mortar_Upgrade"><TriggeredBy>Upgrade_GDIArmoryPitbullMortar</TriggeredBy></AudioLoopUpgrade></Behaviors><AI><AIUpdate id="0x12FA48BA" AutoAcquireEnemiesWhenIdle="YES" AILuaEventsList="GDIPitbullFunctions"><UnitAITargetChooserData SympathyRange="100" RotateToTargetWhenAiming="False" TargetingCompareList="DefaultTargetingCompareList" /></AIUpdate></AI><Body><ActiveBody id="0xB313F576" MaxHealth="1600" /></Body><ClientBehaviors><UpgradeSoundSelectorClientBehavior id="0x2803A758"><Override><AudioArrayVoice><AudioEntry Sound="AudioEvent:GDI_Pitbull_VoiceAttackMortar" AudioType="voiceAttack" /></AudioArrayVoice><RequiredUpgrade>Upgrade_GDIArmoryPitbullMortar</RequiredUpgrade></Override></UpgradeSoundSelectorClientBehavior></ClientBehaviors><Geometry IsSmall="True"><Shape Type="BOX" ContactPointGeneration="VEHICLE" MajorRadius="14" MinorRadius="7" Height="11.5" /></Geometry><AudioArrayVoice><AudioEntry Sound="AudioEvent:GDI_Pitbull_VoiceAttack" AudioType="voiceAttack" /><AudioEntry Sound="AudioEvent:GDI_Pitbull_VoiceCreate" AudioType="voiceCreated" /><AudioEntry Sound="AudioEvent:GDI_Pitbull_VoiceMove" AudioType="voiceMove" /><AudioEntry Sound="AudioEvent:GDI_Pitbull_VoiceMove" AudioType="voiceGuard" /><AudioEntry Sound="AudioEvent:GDI_Pitbull_VoiceMoveAttack" AudioType="voiceAttackAfterMoving" /><AudioEntry Sound="AudioEvent:GDI_Pitbull_VoiceRetreat" AudioType="voiceRetreatToCastle" /><AudioEntry Sound="Multisound:GDI_Pitbull_VoiceSelectMS" AudioType="voiceSelect" /><AudioEntry Sound="Multisound:GDI_Pitbull_VoiceSelectBattleMS" AudioType="voiceSelectBattle" /><NamedEntry Sound="AudioEvent:GDI_Pitbull_VoiceAttackMortar" Name="0x21282BAA" /></AudioArrayVoice><AudioArraySound><AudioEntry Sound="AudioEvent:PitbullMoveStart" AudioType="soundMoveStart" /><AudioEntry Sound="AudioEvent:PitbullIdleLoop" AudioType="soundAmbient" /></AudioArraySound><EvaEvents EvaEventDieOwner="UnitLost" EvaEventDamagedOwner="UnitUnderAttack" EvaEventDamagedFromShroudedSourceOwner="UnitUnderAttackFromShroudedUnit" EvaEventDamagedByFireOwner="GenericUnitBeingBurned" EvaEventSecondDamageFarFromFirstScanRange="600" EvaEventSecondDamageFarFromFirstTimeoutMS="155" EvaEventAmbushed="UnitAmbushed" EvaEnemyObjectSightedEvent="GenericEnemyUnitSighted" EvaEventDetectedEnemy="EnemyStealthUnitDiscovered" EvaEventAvailableForProduction="NewConstructionOptions" EvaEventProductionStarted="UnitConstructionStarted" EvaEventBuildOnHold="BuildOnHold" EvaEventBuildCancelled="BuildCancelled" EvaEventPromotedOwner="UnitPromoted" /><ShadowInfo Type="VOLUME" /><VisionInfo VisionRange="350" ShroudClearingRange="500" /><CrusherInfo CrushableLevel="2" CrushEqualLevelProps="True" /><DisplayUpgrade>Upgrade_GDIArmoryPitbullMortar</DisplayUpgrade></GameObject></AssetDeclaration>
Edited by Egozi44

Share this post


Link to post

Actually if you want it easier

here:

 

<SpecialPower id="0xD91ED54564AFA" 
UpdateModuleStartsAttack="True" 
SpecialPowerTemplate="SpecialPower_SpotBeaconBombard2">
<AttributeModifierAffects Rule="UNPARSED"/>
<RequirementsFilterMP Rule="UNPARSED"/>
<RequirementsFilterStrategic Rule="UNPARSED"/>
</SpecialPower>
<WeaponFireSpecialAbilityUpdate id="0xE57FD838" SpecialPowerTemplate="SpecialPower_SpotBeaconBombard2" DestealthClosestObjectMatchingFilter="True" 
WhichSpecialWeapon="1" 
SpecialWeapon="GDIPitbullMortarArtilleryBombard" FaceTarget="True" 
Options="CHECK_SPECIALPOWER_REQUIREMENTS_DURING_UPDATE" UnpackTime="3.5s" 
PackTime="3.5s" PersistentPrepTime="5s" StartAbilityRange="100000"/>
<AISpecialPowerUpdate id="0x29001BCD" 
RandomizeTargetLocation="False" SpecialPowerRadius="400" 
SpecialPowerAIType="SPECIAL_POWER_SPECIFIC_UNIT" 
CommandButtonName="Command_SpotBeaconBombard2"/>

 

That all what I added to the pitbull aside all the other xmls for the weapon and ability

Share this post


Link to post

So in other words I need to add that upgrade to both? also how does it work and how can I make it look as if you build the mastadon normally? I mean won't it show "request upgrade" next to the mastadon unit button after you build it?

 

I never used stuff from the mothership before so I don't really sure how that upgrade works

No you only add it to your droppod, from what you explained you build your droppod, then it dies/replaces itself into the mastodont. I misread your previous post and thought ou build the mastodont, but if i understand it correctly you dont build the mastodont anymore but the droppodinstead? Basicly you add that piece of code to the thing you build. No need to add it to both then.

 

for the pitbull try to add:

 

WeaponSlotID="2"
WeaponSlotType="PRIMARY_WEAPON"
 

to your WeaponFireSpecialAbilityUpdate

 

 

also this from your xml:

 

<WeaponFireFXBone
                 BoneName="FXWEAPON01" />
<WeaponFireFXBone
                 WeaponSlotID="2"
                 BoneName="mortortube" />
<WeaponLaunchBone 
                 BoneName="FXWEAPON01" />
<WeaponLaunchBone
                 WeaponSlotID="2"
                 BoneName="mortortube" />
 

and this is how it should look like(taken from the KW xml and not the TW xml):

 

<WeaponFireFXBone
                        WeaponSlotID="1"
                        WeaponSlotType="PRIMARY_WEAPON"
                        BoneName="FXWEAPON01" />
                    <WeaponFireFXBone
                        WeaponSlotID="2"
                        WeaponSlotType="PRIMARY_WEAPON"
                        BoneName="mortortube" />
                    <WeaponLaunchBone
                        WeaponSlotID="1"
                        WeaponSlotType="PRIMARY_WEAPON"
                        BoneName="FXWEAPON01" />
                    <WeaponLaunchBone
                        WeaponSlotID="2"
                        WeaponSlotType="PRIMARY_WEAPON"
                        BoneName="mortortube" />
 

Any reason why you left weaponslottype out of it all?

 

Also did you finaly manage the create a new unitability/specialpower button for this bombard attack then? or how are you using it?

Edited by Ravendark

Share this post


Link to post

He can leave it out as it defaults to PRIMARY_WEAPON anyway. And WeaponSlotID defaults to 1. His xml does the exact same thing yours does, yours is just more explicit.

Edited by Lauren

Share this post


Link to post

He can leave it out as it defaults to PRIMARY_WEAPON anyway. And WeaponSlotID defaults to 1. His xml does the exact same thing yours does, yours is just more explicit.

True, still my question was more on why he altered it, as in why he "re invented hot water"? The only thing he changed/added was the SP he claims, im just wondering how get ends up with setain deviations in his xml, is it the version of WED he uses or so?

Share this post


Link to post

Sorry for the dealy


No you only add it to your droppod, from what you explained you build your droppod, then it dies/replaces itself into the mastodont. I misread your previous post and thought ou build the mastodont, but if i understand it correctly you dont build the mastodont anymore but the droppodinstead? Basicly you add that piece of code to the thing you build. No need to add it to both then.

 

 

Well yea, at the beginning I didn't was sure how to make the Mastadon to be build with a pod without a SP so I just made him trainable the normal way, after I tried a few stuff the pod look so nice I couldn't resist about adding it

 

 

So basicly I need to add new upgrade xml and add this:

 

<GrantUpgradeCreate
                id="ModuleTag_AddMotherShipUpgrade"
                UpgradeToGrant="NewUpgrade_PodBuilt" />
            <UpgradeDie
                id="ModuleTag_RemovePodUpgrade"               /** if the unit dies it removes the following upgrade **/
                UpgradeId="NewUpgrade_PodBuilt">
                <DieMuxData
                    DeathTypes="ALL" />
            </UpgradeDie>

and that

<GameDependency>
         
            <ForbiddenUpgrade>NewUpgrade_PodBuilt</ForbiddenUpgrade>
</GameDependency>

to the pod correct?

 

 


for the pitbull try to add:

 

WeaponSlotID="2"
WeaponSlotType="PRIMARY_WEAPON"

to your WeaponFireSpecialAbilityUpdate

 

Will try it out and report

 

 

 


also this from your xml:

 

<WeaponFireFXBone
BoneName="FXWEAPON01" />
<WeaponFireFXBone
WeaponSlotID="2"
BoneName="mortortube" />
<WeaponLaunchBone
BoneName="FXWEAPON01" />
<WeaponLaunchBone
WeaponSlotID="2"
BoneName="mortortube" />

and this is how it should look like(taken from the KW xml and not the TW xml):

 

<WeaponFireFXBone
WeaponSlotID="1"
WeaponSlotType="PRIMARY_WEAPON"
BoneName="FXWEAPON01" />
<WeaponFireFXBone
WeaponSlotID="2"
WeaponSlotType="PRIMARY_WEAPON"
BoneName="mortortube" />
<WeaponLaunchBone
WeaponSlotID="1"
WeaponSlotType="PRIMARY_WEAPON"
BoneName="FXWEAPON01" />
<WeaponLaunchBone
WeaponSlotID="2"
WeaponSlotType="PRIMARY_WEAPON"
BoneName="mortortube" />

Any reason why you left weaponslottype out of it all?

 

I didn't, it came out like that in bugged WED 1.08

 

The thing with bugged WED 1.08 is that it don't display all codes, But at the same time in 99% of my time using it It also don't make them stop working if something was missing Unless I add it myself and overwrite it to something elses

 

So for short, WED 1.08 don't include all code lines but they still there and working, unless I overdrive the xml it don't show any issue (at least from what I understood from testing)

 

Speaking on issues can someone tell me what is supposedly the legendary Reckoner bug that appeared in WED 1.07? I heard that it appear as long as you just mess with the Reckoner's xml, but I done it and don't saw any visiable bug till someone told me there was one in ver 1.07

 

 

 

 

Also did you finaly manage the create a new unitability/specialpower button for this bombard attack then? or how are you using it?

 

 

I simply looked at the Specter ability and mimic it (Juggernaut's seem to be coded so I had no other choice), I added new units abilities before and in rare cases added SP that was already in the game just to other faction for a test, I didn't was aware of the spellbook at that time (thought you meant to the one in the ini files) and that stopped me from adding new stuff (you can look on my mod images and see new unit abilities from half year ago or so~)

 

I still don't sure what missing in the Nod's nuclear support power to make it work though

 

 

It seem that EA/EALA planned to add it to the pitbull all along but probably remove it due to balance or uniqueness issues (they already made a name and dec for it)

I make it weaker and have less range than the Juggernaut so there's no worries, in fact it solved the ZOCOM lack of artillery without the need to add to them another Juggernaut (I still thinking on adding to them the Koidak as SP or the C&C4 Juggernaut, But at this point I may just make them World Builder's easter egg or something, the C&C4 Juggernaut credit all goes to Prodigy btw)

 

 

Oh and BTW

Not sure about the problem with the legs without some pictures or a video

 

 

Here GIF

 

giphy.gif

 

Full screen:

http://giphy.com/gifs/3o85xv7qjmzNXqno9G/fullscreen

 

And his main cannon does move to the target, it just happened that in the GIF he don't really need to moves his cannon (just in case anyone ganaa ask)

 

 

If you want the alpha version of my mod to see or test stuff just tell me, I trust you all enough to give you the files, it probably won't be anything fancy as the stuff you all do in your mods though~

Edited by Egozi44

Share this post


Link to post

Alright

 

many thanks, the Pitbull ability now shot from the right cannon :)

 

Another thing to delete from the list

 

 

sshot0015.4.jpg

Edited by Egozi44

Share this post


Link to post

Another good news

 

I was able to add Tier 2 and Tier 3 upgrade buttons to the mutants hovel :D

They working like charm

Edited by Egozi44

Share this post


Link to post

Now that you posted the video... I have to admit that the TWA Mastodons have the same bug while Redeemer and Hexapod work fine.

And since both of these mechs use WeaponSlotHardpoint while the Mastodons use turret for their primary weapons, I guess that is some kind of engine problem.

 

Edit: So far, the Redeemer seems to work only as long as he doent use the turret mechanic - as soon as he gains a turret, his turning animations bug out too.

Edited by Stygs

Share this post


Link to post

Yea, I also noticed that TWA mastadon turning too fast which unfit to a heavy 4 legs walker Imo so I stayed with my own locomator (just removed the 4 legs part)

What I need to add to it to act like the redeemer? Though I double it ganna help since he uses turret as his main weapon


Oh btw Ravendark, thanks a lot, I was able to make the mastadon to land with TT pod thanks to your and prodigy help

 

 

Edited by Egozi44

Share this post


Link to post

Well I time the pod and add sounds but I have another issue

One of my ideas were that the mastadon will destroy the marv hub facility each time it came out

But now that I added the pod people can sell the building right before the pod landing

Is there any way to make building unsellable only after the pod came out?

I thought about ditching the idea of the destruction of the facility, but my fear is that the game can randomly crash if the mastadon will walk on the building it landing at

Edited by Egozi44

Share this post


Link to post

One of the ideas i am using in my own mode is the following:

 

my warfactory and barracks would eventually get a upgrade that gives them a radar/com relay disc. Whenever you build a unit, it will then spawn a invisible dummy unit that moves insanely fast but has a lifespan of only 5-10 seconds. then it dies and spawns the actuall units (the idea for me is to spawn something flying ofscreen to mimic a combat airdrop). This would happen where ever the rally point of the producer is set (the dummy would just move really fast to that spot).

 

In your case you could do the same: Spawn a really fast dummy, that moves to the rally point, after a set lifetime it spawns the droppod there, the droppod spaens the mastodont. because the dummy is an actuall unit with body and collision detection (but unselectable and invisible(no art) it will move to where it can stand freely so the drop pod wont land on anything in general. You could keep the marv facility....its kind of silly to destroy it in that way. If you really want to get rid of the facility, then just use a mcv like special power to turn the facility inthe the droppod/mastodont.

Share this post


Link to post

I actually used different yet similar idea to my mutant hovel teach-up upgrade buttons

 

the button spawn unselectable and invisible inf unit (because vehicle make the game crash each time other vehicle come out and it don't seem to be because of the crush attack)

and that inf unit spawn the invisible building

 

I already made the pod as the "unselectable" unit that spawn the mastodon, I may do what you said if the mastodon will caused the game to crush (Still testing it atm)

 

 

At first I made the mastodon to destroy the facility due to it's size btw (like that RA3 mod that made the mammoth to destroy the Soviet war factory)

I thought it be proper pay for the strongest epic unit in the mod,

the tier 4 buildings (epic units factory and support powers labs) in the mod gives small amount of funds so it really let down for the players who will need to rebuild it

Edited by Egozi44

Share this post


Link to post

Ok back to the main thread topic

 

I tried to take all the SP the avatar commdder have for just one unit (like the flame tank) and edit them all,

 

now all that left (I think?) is to add the:

 

<ReplaceSelfUpgrade
id="ModuleTag_ReplaceSelf"
NewObjectUnpackTime="5.0s"
DisabledDuringUnpack="false"
CheckBuildAssistant="true">
<TriggeredBy>Upgrade_UnPack</TriggeredBy>
<ReplacementTemplate>NODConstructionYard</ReplacementTemplate>
</ReplaceSelfUpgrade>

 

But where I supposed to add it?

 

 

 

Edit

 

I done all I know and the ability was added but I can't select any unit with it....

 

can you take a look on my files and tell me what wrong? (I expect a lot of things went wrong xD)

 

 

http://www.mediafire.com/download/7i7o3fx5np5pc08/VicMerge.rar

 

 

Also how can I make it so the viscriods won't be able to select themselves (when the ability will work of course)

Edited by Egozi44

Share this post


Link to post

Well if no one have time to help/ don't know how to help me (which is fine btw)

Then I guess it time to move to the next thread? xD

Share this post


Link to post

Not MIA, just busy IRL

 

1. the avatar uses a chained specialpower wich basicly means that first he fires a weapon to paralyze and destroy the unit he targets, secondly he uses a upgrade specialpower to trigger an upgrade

 

 

<SpecialPowerDispatchSpecialPower
                id="ModuleTag_AvatarCommandeerDispatch"
                SpecialPowerTemplate="SpecialPower_AvatarCommandeerDispatch"
                RequireAllPowersToFunction="false"
                AttributeModifierAffectsSelf="true">
                <SpecialPower
                    SpecialPowerTemplate="SpecialPower_AvatarInvisibility" />
               
                <SpecialPower
                    SpecialPowerTemplate="SpecialPower_AvatarCommandeerDestroyStealthTank" />
            </SpecialPowerDispatchSpecialPower>

<SpecialPower
                id="SpecialPower_AvatarCommandeerDestroyStealthTank"
                SpecialPowerTemplate="SpecialPower_AvatarCommandeerDestroyStealthTank"
                AttributeModifierAffectsSelf="true"
                UpdateModuleStartsAttack="true" />

 <WeaponFireSpecialAbilityUpdate
                id="SpecialPower_AvatarCommandeerDestroyStealthTankUpdate"
                SpecialPowerTemplate="SpecialPower_AvatarCommandeerDestroyStealthTank"
                SpecialWeapon="NODAvatarCommandeerWeapon"
                UnpackTime="0s"
                PackTime="0s"
                StartAbilityRange="15.0"
                BusyForDuration="2.7s"
                WhichSpecialWeapon="1" />


<GiveOrRestoreUpgradeSpecialPower
                id="SpecialPower_AvatarInvisibilityUpdate"
                SpecialPowerTemplate="SpecialPower_AvatarInvisibility"
                UpgradeToGive="Upgrade_AvatarInvisibility" />

 <SpecialPower
                id="SpecialPower_AvatarInvisibility"
                SpecialPowerTemplate="SpecialPower_AvatarInvisibility" />
 

the idea is to basicly fire multiple specialpowers with one click, the first targets your merge unit and the second kills the merge unit and triggers a upgrade

 

if you couple this together with the mcv deploy logic you could replace into a new unit :

 

 

<ReplaceSelfUpgrade
                id="ModuleTag_ReplaceSelf"
                NewObjectUnpackTime="5.0s"
                DisabledDuringUnpack="false"
                CheckBuildAssistant="true">
                <TriggeredBy>Upgrade_UnPack</TriggeredBy>
                <ReplacementTemplate>NODConstructionYard</ReplacementTemplate>
            </ReplaceSelfUpgrade>
 

 

another way to go about all this might be to just use the GARRISON modelcondition + hordegarrison module...you let your first unit be garrisonable by your second unit, and use the GARRISONED modelstat to display a merged unit

 

Another way would be the MOUNTED code if that still worked(BFME merged rider and horse that way iirc).

 

2. as far as i know specialpower cursors are hardcoded (not including targetdecal cursors)...iirc you cant create new cursors, you change existing ones but not add new ones....iirc.

 

3. like megumi/prodigy said

 

4. CloakingFieldKillInfantryWeapon this is the weapon that actually kills the infantry its fired from a specialability in the ops-center, the warhead in the weapon acts as filter CloakingFieldKillInfantryWeaponWarhead

 

 

<WeaponTemplate
        id="CloakingFieldKillInfantryWeaponWarhead"
        Name="CloakingFieldKillInfantryWeaponWarhead"
        RadiusDamageAffects="ALLIES ENEMIES NEUTRALS"
        AttackRange="50000.0"
        WeaponSpeed="9999.0"
        AntiMask="ANTI_GROUND ANTI_AIRBORNE_INFANTRY"
        >
        <Nuggets>
            <DamageNugget
                Damage="500"
                Radius="=$CLOAKING_FIELD_RADIUS"
                DamageType="UNRESISTABLE"
                DeathType="NORMAL">
                <SpecialObjectFilter
                    Rule="NONE"
                    Include="INFANTRY"
                    Exclude="VEHICLE HUGE_VEHICLE AIRCRAFT"/>            
                <DamageScalarDetails Scalar= "25%">
                    <Filter Rule="NONE">
                        <IncludeThing>GDIZoneTrooper</IncludeThing>
                        <IncludeThing>GDICommando</IncludeThing>
                        <IncludeThing>AlienMastermind</IncludeThing>
                        <IncludeThing>AlienShockTrooper</IncludeThing>
                        <IncludeThing>NODCommando</IncludeThing>
                        <IncludeThing>NODBlackhand</IncludeThing>
                    </Filter>
                </DamageScalarDetails>
            </DamageNugget>
        </Nuggets>
    </WeaponTemplate>
 

 

 

 

add something like the following to it:

 

 

<DamageNugget
                Damage="500"
                Radius="=$CLOAKING_FIELD_RADIUS"
                DamageType="UNRESISTABLE"
                DeathType="NORMAL">
                <SpecialObjectFilter
                    Rule="NONE"
                   
                    Exclude="INFANTRY AIRCRAFT">
                  <IncludeThing>mynewunit</IncludeThing>
                  </SpecialObjectFilter>       
                <DamageScalarDetails Scalar= "1000%">
                    <Filter Rule="NONE">
                        <IncludeThing>mynewunit</IncludeThing>
                    </Filter>
                </DamageScalarDetails>
            </DamageNugget>
 

Well, is it still work in CC3 like in the ZH mod Contra or Shockwave? When an infantry enters a vehicle, the vehicle will have an upgrade. Such as troopcrawler in Shockwave, it will upgrade a new weapon and hardened the armor by garrisoned the soldier, and not the RIDER/motorbike module.

Share this post


Link to post

I tried something like that and had issus, i added link to my files but no one reply so far so I moved on ; )

 

If anyone have a clue I'm all ears

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

×