; FILE: FactionUnit.ini /////////////////////////////////////////////////////// ; This file contains only objects that are units tied to specific factions. ; You will find tanks, infantry, transports ... all our "units" here. Also ; in this file are related objects such as debris from the units or ; tank shells to fire and deal damage to the enemy. ;////////////////////////////////////////////////////////////////////////////// ;------------------------------------------------------------------------------ Object AmericaParachute ; *** ART Parameters *** Draw = W3DModelDraw ModuleTag_01 OkToChangeModelColor = Yes DefaultConditionState Model = PMparacht_SKNc Animation = PMparacht_SKL.PMparacht_FAL AnimationMode = LOOP End ConditionState = PARACHUTING Model = PMparacht_SKNc Animation = PMparacht_SKL.PMparacht_OPN AnimationMode = ONCE End ConditionState = RUBBLE Model = PMparacht_SKNc Animation = PMparacht_SKL.PMparacht_DRP AnimationMode = ONCE End ; this is a weird state to resolve an ambiguity: sometimes ; we can have a "rubble" parachute momentarily, that doesn't ; know that it has finished parachuting yet... ConditionState = RUBBLE PARACHUTING Model = PMparacht_SKNc Animation = PMparacht_SKL.PMparacht_DRP AnimationMode = ONCE End End ; ***DESIGN parameters *** Side = America EditorSorting = SYSTEM TransportSlotCount = 0 VisionRange = 300.0 ShroudClearingRange = 300 IsTrainable = No ;Can gain experience ; in theory, it would be nice to allow chutes to be attackable; however, bugs in the code ; can cause the rider to be left in a bad state (eg, no-collision bit set) if the chute dies ; prematurely. so disable this for now, and give it a ton of health to prevent splash damage ; from killing it. (srj) KindOf = PRELOAD PARACHUTE UNATTACKABLE ; *** AUDIO Parameters *** ; *** ENGINEERING Parameters *** Behavior = AIUpdateInterface ModuleTag_02 ; nothing End Locomotor = SET_NORMAL ParachuteLocomotor Locomotor = SET_FREEFALL FreeFallLocomotor Body = ActiveBody ModuleTag_03 MaxHealth = 100000.0 InitialHealth = 100000.0 End Behavior = PhysicsBehavior ModuleTag_04 Mass = 5.0 End Behavior = ParachuteContain ModuleTag_05 PitchRateMax = 60 ; deg/sec RollRateMax = 60 ; deg/sec LowAltitudeDamping = 0.2 ; how much to damp swaying when we get "close" to the ground ParachuteOpenDist = 25.0 ; how far we have to fall 'till we open our 'chute AllowInsideKindOf = INFANTRY PARACHUTABLE ParachuteOpenSound = ParachuteOpen End Behavior = SlowDeathBehavior ModuleTag_06 SinkDelay = 1000 SinkRate = 1 ; in Dist/Sec DestructionDelay = 4000 End RadarPriority = NOT_ON_RADAR Geometry = CYLINDER GeometryMajorRadius = 15.0 GeometryHeight = 10.0 GeometryIsSmall = Yes Shadow = SHADOW_VOLUME End ;------------------------------------------------------------------------------ Object AmericaCrateParachute ; *** ART Parameters *** Draw = W3DModelDraw ModuleTag_01 OkToChangeModelColor = Yes DefaultConditionState Model = PMparacht_SKNc Animation = PMparacht_SKL.PMparacht_FAL AnimationMode = LOOP End ConditionState = PARACHUTING Model = PMparacht_SKNc Animation = PMparacht_SKL.PMparacht_OPN AnimationMode = ONCE End ConditionState = RUBBLE Model = PMparacht_SKNc Animation = PMparacht_SKL.PMparacht_DRP AnimationMode = ONCE End ; this is a weird state to resolve an ambiguity: sometimes ; we can have a "rubble" parachute momentarily, that doesn't ; know that it has finished parachuting yet... ConditionState = RUBBLE PARACHUTING Model = PMparacht_SKNc Animation = PMparacht_SKL.PMparacht_DRP AnimationMode = ONCE End End ; ***DESIGN parameters *** Side = America EditorSorting = SYSTEM TransportSlotCount = 0 VisionRange = 300.0 ShroudClearingRange = 300 IsTrainable = No ;Can gain experience ; in theory, it would be nice to allow chutes to be attackable; however, bugs in the code ; can cause the rider to be left in a bad state (eg, no-collision bit set) if the chute dies ; prematurely. so disable this for now, and give it a ton of health to prevent splash damage ; from killing it. (srj) KindOf = PRELOAD PARACHUTE UNATTACKABLE ; *** AUDIO Parameters *** ; *** ENGINEERING Parameters *** Behavior = AIUpdateInterface ModuleTag_02 ; nothing End Locomotor = SET_NORMAL CrateParachuteLocomotor Locomotor = SET_FREEFALL CrateFreeFallLocomotor Body = ActiveBody ModuleTag_03 MaxHealth = 100000.0 InitialHealth = 100000.0 End Behavior = PhysicsBehavior ModuleTag_04 Mass = 5.0 End Behavior = ParachuteContain ModuleTag_05 PitchRateMax = 60 ; deg/sec RollRateMax = 60 ; deg/sec LowAltitudeDamping = 0.2 ; how much to damp swaying when we get "close" to the ground ParachuteOpenDist = 12.5 ; how far we have to fall 'till we open our 'chute AllowInsideKindOf = PARACHUTABLE ParachuteOpenSound = ParachuteOpen End Behavior = SlowDeathBehavior ModuleTag_06 SinkDelay = 1000 SinkRate = 1 ; in Dist/Sec DestructionDelay = 4000 End RadarPriority = NOT_ON_RADAR Geometry = CYLINDER GeometryMajorRadius = 15.0 GeometryHeight = 10.0 GeometryIsSmall = Yes Shadow = SHADOW_VOLUME End ;------------------------------------------------------------------------------ Object AmericaInfantryColonelBurton ; *** ART Parameters *** SelectPortrait = SABurton_L ButtonImage = SABurton UpgradeCameo1 = Upgrade_AmericaAdvancedTraining Draw = W3DModelDraw ModuleTag_01 OkToChangeModelColor = Yes ; idle DefaultConditionState Model = AIHERO_SKN IdleAnimation = AIHERO_SKL.AIHERO_STA 0 25 IdleAnimation = AIHERO_SKL.AIHERO_IDA IdleAnimation = AIHERO_SKL.AIHERO_IDB AnimationMode = ONCE TransitionKey = TRANS_Stand WeaponFireFXBone = PRIMARY Muzzle WeaponMuzzleFlash = PRIMARY MuzzleFX WeaponMuzzleFlash = SECONDARY NONE HideSubObject = MUZZLEFX01 End ; injured idle ConditionState = REALLYDAMAGED IdleAnimation = AIHERO_SKL.AIHERO_ISTA 0 30 IdleAnimation = AIHERO_SKL.AIHERO_IIDA IdleAnimation = AIHERO_SKL.AIHERO_IIDB AnimationMode = ONCE TransitionKey = TRANS_StandInjured End TransitionState = TRANS_Stand TRANS_StandInjured Animation = AIHERO_SKL.AIHERO_ISTAHIT AnimationMode = ONCE End ; moving ConditionState = MOVING Animation = AIHERO_SKL.AIHERO_RNA 26 AnimationMode = LOOP Flags = RANDOMSTART TransitionKey = TRANS_Walking ParticleSysBone = None InfantryDustTrails HideSubObject = MUZZLEFX01 End AliasConditionState = MOVING FIRING_A AliasConditionState = MOVING BETWEEN_FIRING_SHOTS_A AliasConditionState = MOVING RELOADING_A AliasConditionState = MOVING FIRING_B AliasConditionState = MOVING BETWEEN_FIRING_SHOTS_B AliasConditionState = MOVING RELOADING_B ; injured moving ConditionState = MOVING REALLYDAMAGED Animation = AIHERO_SKL.AIHERO_IRNA 26 AnimationMode = LOOP Flags = RANDOMSTART TransitionKey = TRANS_WalkingInjured ParticleSysBone = None InfantryDustTrails HideSubObject = MUZZLEFX01 End AliasConditionState = MOVING FIRING_A REALLYDAMAGED AliasConditionState = MOVING BETWEEN_FIRING_SHOTS_A REALLYDAMAGED AliasConditionState = MOVING RELOADING_A REALLYDAMAGED AliasConditionState = MOVING FIRING_B REALLYDAMAGED AliasConditionState = MOVING BETWEEN_FIRING_SHOTS_B REALLYDAMAGED AliasConditionState = MOVING RELOADING_B REALLYDAMAGED ; Firing animation ConditionState = FIRING_A Animation = AIHERO_SKL.AIHERO_ATA AnimationMode = ONCE AnimationSpeedFactorRange = 1.5 1.5 TransitionKey = TRANS_FiringA End ConditionState = BETWEEN_FIRING_SHOTS_A Animation = AIHERO_SKL.AIHERO_ATA AnimationMode = MANUAL Flags = START_FRAME_LAST WaitForStateToFinishIfPossible = TRANS_FiringA End AliasConditionState = RELOADING_A ; Injured Firing animation ConditionState = FIRING_A REALLYDAMAGED Animation = AIHERO_SKL.AIHERO_IATA AnimationMode = ONCE AnimationSpeedFactorRange = 1.5 1.5 TransitionKey = TRANS_FiringAInjured End ConditionState = BETWEEN_FIRING_SHOTS_A REALLYDAMAGED Animation = AIHERO_SKL.AIHERO_IATA AnimationMode = MANUAL Flags = START_FRAME_LAST WaitForStateToFinishIfPossible = TRANS_FiringAInjured End AliasConditionState = RELOADING_A REALLYDAMAGED TransitionState = TRANS_FiringA TRANS_FiringAInjured Animation = AIHERO_SKL.AIHERO_IATAHIT AnimationMode = ONCE End ; Placing charge animation ConditionState = UNPACKING Animation = AIHERO_SKL.AIHERO_ATB1 AnimationMode = ONCE End AliasConditionState = MOVING UNPACKING ; Injured Placing charge animation ConditionState = UNPACKING REALLYDAMAGED Animation = AIHERO_SKL.AIHERO_IATB1 AnimationMode = ONCE End AliasConditionState = MOVING UNPACKING REALLYDAMAGED ; Stab animations ConditionState = PREATTACK_B Animation = AIHERO_SKL.AIHERO_ATC AnimationMode = ONCE TransitionKey = TRANS_Stabbing HideSubObject = MUZZLEFX01 End AliasConditionState = PREATTACK_B MOVING AliasConditionState = PREATTACK_B FIRING_B AliasConditionState = PREATTACK_B BETWEEN_FIRING_SHOTS_B ConditionState = FIRING_B Animation = AIHERO_SKL.AIHERO_ATC AnimationMode = MANUAL Flags = START_FRAME_LAST TransitionKey = TRANS_Stabbing HideSubObject = MUZZLEFX01 End AliasConditionState = BETWEEN_FIRING_SHOTS_B AliasConditionState = RELOADING_B TransitionState = TRANS_Stabbing TRANS_Stand Animation = AIHERO_SKL.AIHERO_ATC2 AnimationMode = ONCE End ; Injured Stab animations ConditionState = PREATTACK_B REALLYDAMAGED Animation = AIHERO_SKL.AIHERO_IATC1 AnimationMode = ONCE TransitionKey = TRANS_StabbingInjured HideSubObject = MUZZLEFX01 End AliasConditionState = PREATTACK_B MOVING REALLYDAMAGED AliasConditionState = PREATTACK_B FIRING_B REALLYDAMAGED AliasConditionState = PREATTACK_B BETWEEN_FIRING_SHOTS_B REALLYDAMAGED ConditionState = FIRING_B REALLYDAMAGED Animation = AIHERO_SKL.AIHERO_IATC2 AnimationMode = MANUAL Flags = START_FRAME_LAST TransitionKey = TRANS_StabbingInjured HideSubObject = MUZZLEFX01 End AliasConditionState = BETWEEN_FIRING_SHOTS_B REALLYDAMAGED AliasConditionState = RELOADING_B REALLYDAMAGED TransitionState = TRANS_StabbingInjured TRANS_StandInjured Animation = AIHERO_SKL.AIHERO_IATC2 AnimationMode = ONCE End ; cheering ConditionState = SPECIAL_CHEERING Animation = AIHERO_SKL.AIHERO_CHA AnimationMode = ONCE End ; injured cheering ConditionState = SPECIAL_CHEERING REALLYDAMAGED Animation = AIHERO_SKL.AIHERO_ICHA AnimationMode = ONCE End ; climbing ConditionState = CLIMBING Animation = AIHERO_SKL.AIHERO_CLMID AnimationMode = LOOP TransitionKey = TRANS_Climbing End AliasConditionState = RAPPELLING AliasConditionState = CLIMBING REALLYDAMAGED AliasConditionState = RAPPELLING REALLYDAMAGED ConditionState = CLIMBING MOVING Animation = AIHERO_SKL.AIHERO_CLMUP AnimationMode = LOOP TransitionKey = TRANS_Climbing End AliasConditionState = CLIMBING MOVING REALLYDAMAGED ConditionState = RAPPELLING MOVING Animation = AIHERO_SKL.AIHERO_CLMUP AnimationMode = LOOP_BACKWARDS TransitionKey = TRANS_Climbing End AliasConditionState = RAPPELLING MOVING REALLYDAMAGED ; these transitions don't really work well with our code. leave 'em out. ; TransitionState = TRANS_Climbing TRANS_Stand ; Animation = AIHERO_SKL.AIHERO_CLMST ; AnimationMode = ONCE ; End ; ; TransitionState = TRANS_Stand TRANS_Climbing ; Animation = AIHERO_SKL.AIHERO_CLMST ; AnimationMode = ONCE_BACKWARDS ; End ; dying anims ConditionState = DYING Animation = AIHERO_SKL.AIHERO_DTA Animation = AIHERO_SKL.AIHERO_DTB Animation = AIHero_SKL.AIHero_IDTA Animation = AIHero_SKL.AIHero_IDTB AnimationMode = ONCE TransitionKey = TRANS_Dying End AliasConditionState = RAPPELLING DYING AliasConditionState = CLIMBING DYING TransitionState = TRANS_Dying TRANS_Flailing Animation = AIHERO_SKL.AIHERO_ADTG21 AnimationMode = ONCE End ConditionState = DYING EXPLODED_FLAILING Animation = AIHERO_SKL.AIHERO_ADTG22 AnimationMode = LOOP TransitionKey = TRANS_Flailing End ConditionState = DYING EXPLODED_BOUNCING Animation = AIHERO_SKL.AIHERO_ADTG23 AnimationMode = ONCE TransitionKey = None End ; misc anims ConditionState = FREEFALL Animation = AIHERO_SKL.AIHERO_PFL AnimationMode = LOOP TransitionKey = TRANS_Falling End AliasConditionState = FREEFALL REALLYDAMAGED AliasConditionState = FREEFALL DYING ConditionState = PARACHUTING Animation = AIHERO_SKL.AIHERO_PHG AnimationMode = LOOP TransitionKey = TRANS_Chute End AliasConditionState = PARACHUTING REALLYDAMAGED AliasConditionState = PARACHUTING DYING TransitionState = TRANS_Falling TRANS_Chute Animation = AIHERO_SKL.AIHERO_POP AnimationMode = ONCE Flags = PRISTINE_BONE_POS_IN_FINAL_FRAME ; our bone positions should come from the last frame, rather than the first End TransitionState = TRANS_Chute TRANS_Stand Animation = AIHERO_SKL.AIHERO_PTD AnimationMode = ONCE End TransitionState = TRANS_Chute TRANS_StandInjured Animation = AIHERO_SKL.AIHERO_PTD AnimationMode = ONCE End ; note: there are no surrender states because Col. Burton does not surrender. ; Death before dishonor! End ; ***DESIGN parameters *** DisplayName = OBJECT:ColonelBurton Side = America EditorSorting = INFANTRY TransportSlotCount = 1 ;how many "slots" we take in a transport (0 == not transportable) WeaponSet Conditions = None Weapon = PRIMARY ColonelBurtonSniperRifleWeapon Weapon = SECONDARY ColonelBurtonKnifeWeapon AutoChooseSources = PRIMARY FROM_PLAYER FROM_SCRIPT FROM_AI AutoChooseSources = SECONDARY NONE End ArmorSet Conditions = None Armor = HumanArmor DamageFX = InfantryDamageFX End VisionRange = 150 ShroudClearingRange = 500 Prerequisites Object = AmericaBarracks Object = AmericaStrategyCenter End BuildCost = 1500 BuildTime = 20.0 ;in seconds ExperienceValue = 50 100 100 150 ; Experience point value at each level ExperienceRequired = 0 200 300 600 ; Experience points needed to gain each level IsTrainable = Yes ; Can gain experience CrushableLevel = 2 ;What am I?: 0 = for infantry, 1 = for trees, 2 = general vehicles CommandSet = AmericaInfantryColonelBurtonCommandSet MaxSimultaneousOfType = 1 ; *** AUDIO Parameters *** VoiceSelect = ColonelBurtonVoiceSelect VoiceMove = ColonelBurtonVoiceMove VoiceAttack = ColonelBurtonVoiceAttack VoiceFear = ColonelBurtonVoiceFear VoiceGuard = ColonelBurtonVoiceMove SoundDie = ColonelBurtonVoiceDie SoundDieFire = DieByFireUSA SoundDieToxin = DieByToxinUSA SoundStealthOn = StealthOn SoundStealthOff = StealthOff ;SoundAmbient = ColonelBurtonSoundAmbient UnitSpecificSounds VoiceMelee = ColonelBurtonVoiceAttackKnife VoiceCreate = ColonelBurtonVoiceCreate VoiceGarrison = ColonelBurtonVoiceGarrison VoiceEnter = ColonelBurtonVoiceMove VoiceEnterHostile = ColonelBurtonVoiceMove VoiceGetHealed = ColonelBurtonVoiceMove End ; *** ENGINEERING Parameters *** RadarPriority = UNIT KindOf = PRELOAD SELECTABLE CAN_ATTACK ATTACK_NEEDS_LINE_OF_SIGHT CAN_CAST_REFLECTIONS INFANTRY SCORE HERO Body = ActiveBody ModuleTag_02 MaxHealth = 200.0 InitialHealth = 200.0 End Behavior = AIUpdateInterface ModuleTag_03 AutoAcquireEnemiesWhenIdle = Yes End Behavior = CommandButtonHuntUpdate ModuleTag_04 ; allows use of command button hunt script with this unit. End Behavior = AutoFindHealingUpdate ModuleTag_05 ; This update will have the unit go to a healing station if injured. jba ScanRate = 1000 ; once a second. ScanRange = 300 ; NeverHeal = 0.85 ; don't heal if we are > 85% healthy. AlwaysHeal = 0.25 ; if we get below 25%, find healing right away. End Locomotor = SET_NORMAL ColonelBurtonGroundLocomotor ColonelBurtonCliffLocomotor Behavior = PhysicsBehavior ModuleTag_06 Mass = 5.0 End Behavior = StealthUpdate ModuleTag_07 StealthDelay = 2000 ; msec StealthForbiddenConditions = FIRING_PRIMARY HintDetectableConditions = IS_FIRING_WEAPON FriendlyOpacityMin = 50.0% FriendlyOpacityMax = 100.0% InnateStealth = Yes OrderIdleEnemiesToAttackMeUponReveal = Yes End Behavior = SpecialAbility ModuleTag_08 SpecialPowerTemplate = SpecialAbilityColonelBurtonRemoteCharges UpdateModuleStartsAttack = Yes InitiateSound = ColonelBurtonVoicePlantRemoteCharge End Behavior = SpecialAbilityUpdate ModuleTag_09 SpecialPowerTemplate = SpecialAbilityColonelBurtonRemoteCharges StartAbilityRange = 0.0 PreparationTime = 0 SpecialObject = RemoteC4Charge MaxSpecialObjects = 8 SpecialObjectsPersistWhenOwnerDies = No ;Charges are removed instantly when owner dies (nobody can detonate). AlwaysValidateSpecialObjects = Yes ;Coupled with the above setting, this one is necessary for code optimization. SpecialObjectsPersistent = Yes ;Charges are persistent till lifetime expires or owner detonates them. UniqueSpecialObjectTargets = Yes ;This prevents multiple charges placed on the same object. UnpackTime = 5500 ;NOTE: Modifying this value will require modifying the delay for ColonelBurtonPlantCharge PackTime = 0 SkipPackingWithNoTarget = Yes ;When yes, the packing/unpacking will be ignored when detonating charges. FlipOwnerAfterUnpacking = Yes FleeRangeAfterCompletion = 100.0 ;Runs away after finishing ability UnpackSound = ColonelBurtonPlantCharge LoseStealthOnTrigger = Yes PreTriggerUnstealthTime = 5000 ; in milliseconds End Behavior = SpecialAbility ModuleTag_10 SpecialPowerTemplate = SpecialAbilityColonelBurtonTimedCharges UpdateModuleStartsAttack = Yes InitiateSound = ColonelBurtonVoicePlantTimedCharge End Behavior = SpecialAbilityUpdate ModuleTag_11 SpecialPowerTemplate = SpecialAbilityColonelBurtonTimedCharges StartAbilityRange = 0.0 PreparationTime = 0 SpecialObject = TimedC4Charge MaxSpecialObjects = 10 SpecialObjectsPersistWhenOwnerDies = Yes SpecialObjectsPersistent = Yes ;Charges are persistent till lifetime expires or owner detonates them. UniqueSpecialObjectTargets = Yes ;This prevents multiple charges placed on the same object. UnpackTime = 5500 ;NOTE: Modifying this value will require modifying the delay for ColonelBurtonPlantCharge FlipOwnerAfterUnpacking = Yes FleeRangeAfterCompletion = 100.0 ;Runs away after finishing ability UnpackSound = ColonelBurtonPlantCharge LoseStealthOnTrigger = Yes PreTriggerUnstealthTime = 5000 ; in milliseconds End Behavior = ExperienceScalarUpgrade ModuleTag_12 TriggeredBy = Upgrade_AmericaAdvancedTraining AddXPScalar = 1.0 ;Increases experience gained by an additional 100% End ;Hero units can't be squished! ;Behavior = SquishCollide ModuleTag_13 ; ;nothing ;End ; --- begin Death modules --- Behavior = SlowDeathBehavior ModuleTag_Death01 DeathTypes = ALL -CRUSHED -SPLATTED -EXPLODED -BURNED -POISONED -POISONED_BETA SinkDelay = 3000 SinkRate = 0.5 ; in Dist/Sec DestructionDelay = 8000 FX = INITIAL FX_GIDie End Behavior = SlowDeathBehavior ModuleTag_Death02 DeathTypes = NONE +CRUSHED +SPLATTED SinkDelay = 3000 SinkRate = 0.5 ; in Dist/Sec DestructionDelay = 8000 FX = INITIAL FX_GIDieCrushed End Behavior = SlowDeathBehavior ModuleTag_Death03 DeathTypes = NONE +EXPLODED SinkDelay = 3000 SinkRate = 0.5 ; in Dist/Sec DestructionDelay = 8000 FX = INITIAL FX_GIDie FlingForce = 8 FlingForceVariance = 3 FlingPitch = 60 FlingPitchVariance = 10 End Behavior = SlowDeathBehavior ModuleTag_Death04 DeathTypes = NONE +BURNED DestructionDelay = 0 FX = INITIAL FX_GIDie OCL = INITIAL OCL_FlamingInfantry End Behavior = SlowDeathBehavior ModuleTag_Death05 DeathTypes = NONE +POISONED DestructionDelay = 0 FX = INITIAL FX_GIDie OCL = INITIAL OCL_ToxicInfantry End Behavior = SlowDeathBehavior ModuleTag_Death06 ; don't forget to give it a new, unique module tag DeathTypes = NONE +POISONED_BETA DestructionDelay = 0 FX = INITIAL FX_GIDie OCL = INITIAL OCL_ToxicInfantryBeta ;you'll have to create this OCL and make it use the blue guys instead of green ones End ; --- end Death modules --- Behavior = PoisonedBehavior ModuleTag_18 PoisonDamageInterval = 100 ; Every this many msec I will retake the poison damage dealt me... PoisonDuration = 3000 ; ... for this long after last hit by poison damage End Geometry = CYLINDER GeometryMajorRadius = 10.0 GeometryMinorRadius = 10.0 GeometryHeight = 12.0 GeometryIsSmall = Yes Shadow = SHADOW_DECAL ShadowSizeX = 14 ShadowSizeY = 14 ShadowTexture = ShadowI BuildCompletion = APPEARS_AT_RALLY_POINT End ;------------------------------------------------------------------------------ Object AmericaVehicleHumvee ; *** ART Parameters *** SelectPortrait = SAHummer_L ButtonImage = SAHummer UpgradeCameo1 = Upgrade_AmericaBattleDrone UpgradeCameo2 = Upgrade_AmericaScoutDrone UpgradeCameo3 = Upgrade_AmericaTOWMissile UpgradeCameo4 = Upgrade_AmericaAdvancedTraining ;UpgradeCameo5 = XXX Draw = W3DTruckDraw ModuleTag_01 OkToChangeModelColor = Yes ConditionState = NONE Model = AVHUMMER Turret = Turret ShowSubObject = Turret HideSubObject = TurretUp01 Housecolor03 MuzzleFXUP01 WeaponFireFXBone = PRIMARY Muzzle WeaponMuzzleFlash = PRIMARY MuzzleFX End ConditionState = REALLYDAMAGED Model = AVHUMMER_d Turret = Turret ShowSubObject = Turret HideSubObject = TurretUp01 Housecolor03 MuzzleFXUP01 WeaponFireFXBone = PRIMARY Muzzle WeaponMuzzleFlash = PRIMARY MuzzleFX End ConditionState = WEAPONSET_PLAYER_UPGRADE Model = AVHUMMER Turret = TurretUp01 HideSubObject = Turret MuzzleFX01 ShowSubObject = TurretUp01 Housecolor03 WeaponFireFXBone = PRIMARY MuzzleUp WeaponMuzzleFlash = PRIMARY MuzzleFXUp WeaponFireFXBone = SECONDARY WeaponB WeaponLaunchBone = SECONDARY WeaponB WeaponFireFXBone = TERTIARY WeaponB WeaponLaunchBone = TERTIARY WeaponB End ConditionState = REALLYDAMAGED WEAPONSET_PLAYER_UPGRADE Model = AVHUMMER_d Turret = TurretUp01 HideSubObject = Turret MuzzleFX01 ShowSubObject = TurretUp01 Housecolor03 WeaponFireFXBone = PRIMARY MuzzleUp WeaponMuzzleFlash = PRIMARY MuzzleFXUp WeaponFireFXBone = SECONDARY WeaponB WeaponLaunchBone = SECONDARY WeaponB WeaponFireFXBone = TERTIARY WeaponB WeaponLaunchBone = TERTIARY WeaponB End TrackMarks = EXTireTrack.tga Dust = RocketBuggyDust DirtSpray = RocketBuggyDirtSpray PowerslideSpray = RocketBuggyDirtPowerSlide ; These parameters are only used if the model has a separate suspension, ; and the locomotor has HasSuspension = Yes. LeftFrontTireBone = Tire01 RightFrontTireBone = Tire02 LeftRearTireBone = Tire03 RightRearTireBone = Tire04 TireRotationMultiplier = 0.2 ; this * speed = rotation. PowerslideRotationAddition = 1.25 ; This speed is added to the rotation speed when powersliding. End ; ***DESIGN parameters *** DisplayName = OBJECT:Humvee Side = America EditorSorting = VEHICLE TransportSlotCount = 3 ;how many "slots" we take in a transport (0 == not transportable) WeaponSet Conditions = None Weapon = PRIMARY HumveeGun End WeaponSet Conditions = PLAYER_UPGRADE Weapon = PRIMARY HumveeGun Weapon = SECONDARY HumveeMissileWeapon Weapon = TERTIARY HumveeMissileWeaponAir PreferredAgainst = TERTIARY AIRCRAFT End ArmorSet Conditions = None Armor = HumveeArmor DamageFX = TruckDamageFX End BuildCost = 700 BuildTime = 10.0 ;in seconds VisionRange = 150 ShroudClearingRange = 320 Prerequisites Object = AmericaWarFactory End ExperienceValue = 50 50 100 150 ;Experience point value at each level ExperienceRequired = 0 100 150 300 ;Experience points needed to gain each level IsTrainable = Yes ;Can gain experience CrusherLevel = 2 ;What can I crush?: 1 = infantry, 2 = trees, 3 = vehicles CrushableLevel = 2 ;What am I?: 0 = for infantry, 1 = for trees, 2 = general vehicles CommandSet = AmericaVehicleHumveeCommandSet ; *** AUDIO Parameters *** VoiceSelect = HumveeVoiceSelect VoiceMove = HumveeVoiceMove VoiceGuard = HumveeVoiceMove VoiceAttack = HumveeVoiceAttack VoiceAttackAir = HumveeVoiceAttackTOW SoundMoveStart = HumveeMoveStart SoundMoveStartDamaged = HumveeMoveStart SoundEnter = HumveeEnter SoundExit = HumveeExit UnitSpecificSounds ; These have the syntax of SomeNameSomewhereInCode = SomeNameSomewhereInLookupINIs ;TurretMoveStart = NoSound VoiceCreate = HumveeVoiceCreate TurretMoveLoop = TurretMoveLoop SoundEject = PilotSoundEject VoiceEject = PilotVoiceEject VoiceCrush = HumveeVoiceCrush ; Required for the W3DTruckDraw module TruckLandingSound = RocketBuggyLand TruckPowerslideSound = RocketBuggyPowerslide VoiceUnload = HumveeVoiceUnload VoiceEnter = HumveeVoiceMove End Behavior = AIUpdateInterface ModuleTag_20 AutoAcquireEnemiesWhenIdle = Yes MoodAttackCheckRate = 250 End ; *** ENGINEERING Parameters *** RadarPriority = UNIT KindOf = PRELOAD SELECTABLE CAN_ATTACK ATTACK_NEEDS_LINE_OF_SIGHT CAN_CAST_REFLECTIONS VEHICLE SCORE TRANSPORT Body = ActiveBody ModuleTag_02 MaxHealth = 240.0 InitialHealth = 240.0 End Behavior = TransportAIUpdate ModuleTag_03 Turret TurretTurnRate = 180 RecenterTime = 5000 ; how long to wait during idle before recentering ControlledWeaponSlots = PRIMARY SECONDARY TERTIARY End AutoAcquireEnemiesWhenIdle = Yes End Locomotor = SET_NORMAL HumveeLocomotor Behavior = PhysicsBehavior ModuleTag_04 Mass = 50.0 End Behavior = TransportContain ModuleTag_05 PassengersAllowedToFire = Yes Slots = 5 ;EnterSound = GarrisonEnter ;ExitSound = GarrisonExit DamagePercentToUnits = 100% ;10% AllowInsideKindOf = INFANTRY AllowAlliesInside = Yes AllowNeutralInside = No AllowEnemiesInside = No ExitDelay = 250 NumberOfExitPaths = 3 ; Defaults to 1. Set 0 to not use ExitStart/ExitEnd, set higher than 1 to use ExitStart01-nn/ExitEnd01-nn GoAggressiveOnExit = Yes ; AI Will tell people to set their mood to Aggressive on exiting End Behavior = ObjectCreationUpgrade ModuleTag_06 UpgradeObject = OCL_AmericanBattleDrone TriggeredBy = Upgrade_AmericaBattleDrone ConflictsWith = Upgrade_AmericaScoutDrone End Behavior = ObjectCreationUpgrade ModuleTag_07 UpgradeObject = OCL_AmericanScoutDrone TriggeredBy = Upgrade_AmericaScoutDrone ConflictsWith = Upgrade_AmericaBattleDrone End Behavior = ProductionUpdate ModuleTag_08 MaxQueueEntries = 1; So you can't build multiple upgrades in the same frame End Behavior = WeaponSetUpgrade ModuleTag_09 TriggeredBy = Upgrade_AmericaTOWMissile End Behavior = ExperienceScalarUpgrade ModuleTag_10 TriggeredBy = Upgrade_AmericaAdvancedTraining AddXPScalar = 1.0 ;Increases experience gained by an additional 100% End Behavior = SlowDeathBehavior ModuleTag_11 DeathTypes = ALL -CRUSHED -SPLATTED ProbabilityModifier = 25 DestructionDelay = 1 OCL = INITIAL OCL_InitialHumveeDebris FX = FINAL FX_BattleMasterExplosionOneFinal OCL = FINAL OCL_FinalHumveeDebris End Behavior = SlowDeathBehavior ModuleTag_14 DeathTypes = ALL -CRUSHED -SPLATTED ProbabilityModifier = 25 DestructionDelay = 500 FX = INITIAL FX_OverlordSmoke OCL = INITIAL OCL_InitialHumveeDebris FX = FINAL FX_HumveeExplosionOneFinal OCL = FINAL OCL_FinalHumveeDebris End Behavior = DestroyDie ModuleTag_12 DeathTypes = NONE +CRUSHED +SPLATTED End Behavior = FXListDie ModuleTag_13 DeathTypes = NONE +CRUSHED +SPLATTED DeathFX = FX_CarCrush End Behavior = CreateCrateDie ModuleTag_CratesChange CrateData = SalvageCrateData ;CrateData = EliteTankCrateData ;CrateData = HeroicTankCrateData End ; This is commented out per hotlist request 10/9 ML ; Behavior = CreateObjectDie ModuleTag_15 ; DeathTypes = ALL -CRUSHED -SPLATTED ; CreationList = OCL_AmericanRangerDebris01 ; ExemptStatus = HIJACKED ; End Behavior = EjectPilotDie ModuleTag_16 DeathTypes = ALL -CRUSHED -SPLATTED ExemptStatus = HIJACKED ; The following added out per hotlist request 10/9 as above ML VeterancyLevels = ALL -REGULAR ;only vet+ gives pilot GroundCreationList = OCL_EjectPilotOnGround AirCreationList = OCL_EjectPilotViaParachute End Behavior = StealthDetectorUpdate ModuleTag_HijackerDetect DetectionRate = 500 DetectionRange = 75 CanDetectWhileGarrisoned = No CanDetectWhileContained = No ExtraRequiredKindOf = BOAT End Behavior = TransitionDamageFX ModuleTag_17 ReallyDamagedParticleSystem1 = Bone:Smoke RandomBone:Yes PSys:SmokeSmallContinuous01 ReallyDamagedFXList1 = Loc: X:0 Y:0 Z:0 FXList:FX_HumveeDamageTransition ;FX_BattleMasterDamageTransition End Behavior = FlammableUpdate ModuleTag_21 AflameDuration = 5000 ; If I catch fire, I'll burn for this long... AflameDamageAmount = 3 ; taking this much damage... AflameDamageDelay = 500 ; this often. End Geometry = BOX GeometryMajorRadius = 14.0 GeometryMinorRadius = 7.0 GeometryHeight = 11.5 GeometryIsSmall = Yes Shadow = SHADOW_VOLUME ShadowSizeX = 45 ; minimum elevation angle above horizon. Used to limit shadow length End ;------------------------------------------------------------------------------ Object HumveeMissile ; *** ART Parameters *** Draw = W3DModelDraw ModuleTag_01 OkToChangeModelColor = Yes DefaultConditionState Model = UVRockBug_m End End ; ***DESIGN parameters *** EditorSorting = SYSTEM VisionRange = 0.0 ArmorSet Conditions = None Armor = ProjectileArmor DamageFX = None End ; *** ENGINEERING Parameters *** KindOf = PROJECTILE SMALL_MISSILE Body = ActiveBody ModuleTag_02 MaxHealth = 100.0 InitialHealth = 100.0 End ; ---- begin Projectile death behaviors Behavior = InstantDeathBehavior DeathModuleTag_01 DeathTypes = NONE +DETONATED ; we detonated normally. ; no FX, just quiet destroy ourselves End Behavior = InstantDeathBehavior DeathModuleTag_02 DeathTypes = NONE +LASERED ; shot down by laser. FX = FX_GenericMissileDisintegrate OCL = OCL_GenericMissileDisintegrate End Behavior = InstantDeathBehavior DeathModuleTag_03 DeathTypes = ALL -LASERED -DETONATED ; shot down by nonlaser. FX = FX_GenericMissileDeath End ; ---- end Projectile death behaviors Behavior = PhysicsBehavior ModuleTag_06 Mass = 1 End Behavior = MissileAIUpdate ModuleTag_07 TryToFollowTarget = No FuelLifetime = 1000 InitialVelocity = 150 ; in dist/sec IgnitionDelay = 0 DistanceToTravelBeforeTurning = 3 IgnitionFX = FX_HumveeMissileIgnition End Locomotor = SET_NORMAL RocketBuggyMissileLocomotor Geometry = Sphere GeometryIsSmall = Yes GeometryMajorRadius = 2.0 End ;------------------------------------------------------------------------------ Object AmericaVehicleHumveeDeadHull ; *** ART Parameters *** Draw = W3DModelDraw ModuleTag_01 OkToChangeModelColor = Yes DefaultConditionState Model = AVHUMMER_D1 End End ; ***DESIGN parameters *** Side = America EditorSorting = SYSTEM TransportSlotCount = 0 ;how many "slots" we take in a transport (0 == not transportable) ; *** AUDIO Parameters *** ; *** ENGINEERING Parameters *** RadarPriority = UNIT KindOf = CAN_CAST_REFLECTIONS IMMOBILE NO_COLLIDE HULK Body = ActiveBody ModuleTag_02 MaxHealth = 1.0 InitialHealth = 1.0 End Behavior = PhysicsBehavior ModuleTag_03 Mass = 50 AllowBouncing = Yes End Behavior = LifetimeUpdate ModuleTag_04 MinLifetime = 0 ; min lifetime in msec MaxLifetime = 0 ; max lifetime in msec End Behavior = SlowDeathBehavior ModuleTag_05 SinkDelay = 14000 SinkRate = 2 ; in Dist/Sec DestructionDelay = 20000 End Behavior = TransitionDamageFX ModuleTag_06 RubbleParticleSystem1 = Bone:Smoke RandomBone:Yes PSys:SmokeSmallContinuous01 End Geometry = BOX GeometryMajorRadius = 9.0 GeometryMinorRadius = 6.0 GeometryHeight = 7.5 GeometryIsSmall = Yes End ;---------------------------------------------------------- Object AmericaVehicleTomahawk ; *** ART Parameters *** SelectPortrait = SACTomahawk_L ButtonImage = SACTomahawk UpgradeCameo1 = Upgrade_AmericaScoutDrone UpgradeCameo2 = Upgrade_AmericaBattleDrone UpgradeCameo3 = Upgrade_AmericaAdvancedTraining UpgradeCameo4 = Upgrade_AmericaTomahawkRemoteControl ;UpgradeCameo5 = XXX Draw = W3DTankDraw ModuleTag_01 OkToChangeModelColor = Yes ProjectileBoneFeedbackEnabledSlots = PRIMARY ; WeaponLaunchBone will be shown/hidden, not just used for firing offset DefaultConditionState Model = AVTomahawk Turret = TURRET TurretPitch = TURRETEL WeaponLaunchBone = PRIMARY WeaponA WeaponHideShowBone = PRIMARY MISSILE End ConditionState = REALLYDAMAGED Model = AVTomahawk_D End AliasConditionState = RUBBLE TrackMarks = EXTnkTrack.tga End ; ***DESIGN parameters *** DisplayName = OBJECT:Tomahawk Side = America EditorSorting = VEHICLE TransportSlotCount = 3 ;how many "slots" we take in a transport (0 == not transportable) BuildCost = 1200 BuildTime = 20.0 ;in seconds VisionRange = 180 ShroudClearingRange = 200 Prerequisites Object = AmericaWarFactory Object = AmericaStrategyCenter End ExperienceValue = 50 50 100 150 ;Experience point value at each level ExperienceRequired = 0 200 400 800 ;Experience points needed to gain each level IsTrainable = Yes ;Can gain experience WeaponSet Conditions = None Weapon = PRIMARY TomahawkMissileWeapon End ArmorSet Conditions = None Armor = TruckArmor DamageFX = TankDamageFX End CrusherLevel = 2 ;What can I crush?: 1 = infantry, 2 = trees, 3 = vehicles CrushableLevel = 2 ;What am I?: 0 = for infantry, 1 = for trees, 2 = general vehicles CommandSet = AmericaVehicleTomahawkCommandSet ; *** AUDIO Parameters *** VoiceSelect = TomahawkVoiceSelect VoiceMove = TomahawkVoiceMove VoiceGuard = TomahawkVoiceMove VoiceAttack = TomahawkVoiceAttack SoundMoveStart = TomahawkMoveStart SoundMoveStartDamaged = TomahawkMoveStart VoiceFear = TomahawkVoiceCrush UnitSpecificSounds ; These have the syntax of SomeNameSomewhereInCode = SomeNameSomewhereInLookupINIs VoiceCreate = TomahawkVoiceCreate TurretMoveStart = NoSound TurretMoveLoop = TurretMoveLoopLoud SoundEject = PilotSoundEject VoiceEject = PilotVoiceEject VoiceCrush = TomahawkVoiceCrush VoiceEnter = TomahawkVoiceMove VoiceBombard = TomahawkVoiceAttack End ; *** ENGINEERING Parameters *** RadarPriority = UNIT KindOf = PRELOAD SELECTABLE DONT_AUTO_CRUSH_INFANTRY CAN_ATTACK CAN_CAST_REFLECTIONS VEHICLE SCORE Body = ActiveBody ModuleTag_02 MaxHealth = 180.0 InitialHealth = 180.0 End Behavior = AIUpdateInterface ModuleTag_03 Turret TurretTurnRate = 60 ; turn rate, in degrees per sec TurretPitchRate = 60 FirePitch = 70 ; Instead of aiming pitchwise at the target, it will aim here AllowsPitch = Yes ControlledWeaponSlots = PRIMARY End AutoAcquireEnemiesWhenIdle = No NotWhileAttacking End Locomotor = SET_NORMAL TomahawkLocomotor Behavior = PhysicsBehavior ModuleTag_04 Mass = 50.0 End Behavior = SlowDeathBehavior ModuleTag_05 DeathTypes = ALL -CRUSHED -SPLATTED DestructionDelay = 500 DestructionDelayVariance = 100 FX = INITIAL FX_GenericTankDeathEffect OCL = MIDPOINT OCL_AmericaVehicleTomahawkDie FX = FINAL FX_AmericaVehicleTomahawkDeathExplosion End Behavior = ObjectCreationUpgrade ModuleTag_06 UpgradeObject = OCL_AmericanBattleDrone TriggeredBy = Upgrade_AmericaBattleDrone ConflictsWith = Upgrade_AmericaScoutDrone End Behavior = ObjectCreationUpgrade ModuleTag_07 UpgradeObject = OCL_AmericanScoutDrone TriggeredBy = Upgrade_AmericaScoutDrone ConflictsWith = Upgrade_AmericaBattleDrone End Behavior = ProductionUpdate ModuleTag_08 MaxQueueEntries = 1; So you can't build multiple upgrades in the same frame End Behavior = ExperienceScalarUpgrade ModuleTag_09 TriggeredBy = Upgrade_AmericaAdvancedTraining AddXPScalar = 1.0 ;Increases experience gained by an additional 100% End Behavior = DestroyDie ModuleTag_10 DeathTypes = NONE +CRUSHED +SPLATTED End Behavior = FXListDie ModuleTag_11 DeathTypes = NONE +CRUSHED +SPLATTED DeathFX = FX_CarCrush End Behavior = CreateObjectDie ModuleTag_12 DeathTypes = NONE +CRUSHED +SPLATTED CreationList = OCL_CrusaderTank_CrushEffect End ; Behavior = FXListDie ; DeathTypes = ALL -CRUSHED -SPLATTED ; DeathFX = FX_GenericTankDeathEffect ; End ; Behavior = CreateObjectDie ; DeathTypes = ALL -CRUSHED -SPLATTED ; CreationList = OCL_GenericTankDeathEffect ; End Behavior = EjectPilotDie ModuleTag_13 DeathTypes = ALL -CRUSHED -SPLATTED ExemptStatus = HIJACKED VeterancyLevels = ALL -REGULAR ;only vet+ gives pilot GroundCreationList = OCL_EjectPilotOnGround AirCreationList = OCL_EjectPilotViaParachute End Behavior = StealthDetectorUpdate ModuleTag_HijackerDetect DetectionRate = 500 DetectionRange = 75 CanDetectWhileGarrisoned = No CanDetectWhileContained = No ExtraRequiredKindOf = BOAT End Behavior = TransitionDamageFX ModuleTag_14 ReallyDamagedParticleSystem1 = Bone:Smoke RandomBone:Yes PSys:SmokeSmallContinuous01 ReallyDamagedFXList1 = Loc: X:0 Y:0 Z:0 FXList:FX_BattleMasterDamageTransition End Behavior = FlammableUpdate ModuleTag_21 AflameDuration = 5000 ; If I catch fire, I'll burn for this long... AflameDamageAmount = 3 ; taking this much damage... AflameDamageDelay = 500 ; this often. End Geometry = BOX GeometryMajorRadius = 15.0 GeometryMinorRadius = 10.0 GeometryHeight = 10.0 GeometryIsSmall = Yes Shadow = SHADOW_VOLUME ShadowSizeX = 45 ; minimum elevation angle above horizon. Used to limit shadow length End ;---------------------------------------------------------- Object AmericaVehicleTomahawkHulk ; *** ART Parameters *** Draw = W3DModelDraw ModuleTag_01 ConditionState = NONE Model = AVTomahawk_D1 End End ; ***DESIGN parameters *** EditorSorting = DEBRIS ; *** ENGINEERING Parameters *** KindOf = NO_COLLIDE HULK Behavior = PhysicsBehavior ModuleTag_03 Mass = 10.0 AllowBouncing = Yes KillWhenRestingOnGround = Yes End Behavior = LifetimeUpdate ModuleTag_04 MinLifetime = 1500 ; min lifetime in msec MaxLifetime = 1600 ; max lifetime in msec End Behavior = SlowDeathBehavior ModuleTag_05 SinkDelay = 1500 SinkRate = 2 ; in Dist/Sec DestructionDelay = 8000 End End ;---------------------------------------------------------- Object ChinaVehicleNukeCannonHulk ; *** ART Parameters *** Draw = W3DModelDraw ModuleTag_01 ConditionState = NONE Model = NVNukeCn_D1 End End ; ***DESIGN parameters *** EditorSorting = DEBRIS ; *** ENGINEERING Parameters *** KindOf = NO_COLLIDE HULK Behavior = PhysicsBehavior ModuleTag_03 Mass = 10.0 AllowBouncing = Yes KillWhenRestingOnGround = Yes End Behavior = LifetimeUpdate ModuleTag_04 MinLifetime = 1500 ; min lifetime in msec MaxLifetime = 1600 ; max lifetime in msec End Behavior = SlowDeathBehavior ModuleTag_05 SinkDelay = 1500 SinkRate = 2 ; in Dist/Sec DestructionDelay = 8000 End End ;------------------------------------------------------------------------------ Object AmericaJetRaptor ; *** ART Parameters *** SelectPortrait = SACRaptor_L ButtonImage = SACRaptor UpgradeCameo1 = Upgrade_AmericaLaserMissiles UpgradeCameo2 = Upgrade_AmericaAdvancedTraining ;UpgradeCameo3 = NONE ;UpgradeCameo4 = NONE ;UpgradeCameo5 = NONE Draw = W3DModelDraw ModuleTag_01 DefaultConditionState Model = AVRaptor HideSubObject = BurnerFX01 BurnerFX02 WeaponLaunchBone = PRIMARY WeaponA End ConditionState = JETEXHAUST ; exhaust ParticleSysBone = Wingtip01 JetContrail ParticleSysBone = Wingtip02 JetContrail End ConditionState = JETEXHAUST JETAFTERBURNER ; exhaust ParticleSysBone = Wingtip01 JetContrail ParticleSysBone = Wingtip02 JetContrail ; afterburner ShowSubObject = BurnerFX01 BurnerFX02 ParticleSysBone = Engine01 JetLenzflare ParticleSysBone = Engine02 JetLenzflare End ConditionState = REALLYDAMAGED Model = AVRaptor_D ; damage ParticleSysBone = Smoke01 JetSmoke ParticleSysBone = Engine01 JetEngineDamagedSmoke End ConditionState = REALLYDAMAGED JETEXHAUST Model = AVRaptor_D ; damage ParticleSysBone = Smoke01 JetSmoke ParticleSysBone = Engine01 JetEngineDamagedSmoke ; exhaust ParticleSysBone = Wingtip01 JetContrail ParticleSysBone = Wingtip02 JetContrail End ConditionState = REALLYDAMAGED JETEXHAUST JETAFTERBURNER Model = AVRaptor_D ; damage ParticleSysBone = Smoke01 JetSmoke ParticleSysBone = Engine01 JetEngineDamagedSmoke ; afterburner ShowSubObject = BurnerFX01 BurnerFX02 ParticleSysBone = Engine01 JetLenzflare ParticleSysBone = Engine02 JetLenzflare ; exhaust ParticleSysBone = Wingtip01 JetContrail ParticleSysBone = Wingtip02 JetContrail End ConditionState = RUBBLE Model = AVRaptor_D1B HideSubObject = None ShowSubObject = None End ConditionState = RUBBLE JETEXHAUST JETAFTERBURNER Model = AVRaptor_D1B ;HideSubObject is needed cause there're inherited from default condition state HideSubObject = None ShowSubObject = None ParticleSysBone = Engine01 JetExhaust ParticleSysBone = Engine02 JetExhaust ; exhaust ParticleSysBone = Wingtip01 JetContrail ParticleSysBone = Wingtip02 JetContrail End OkToChangeModelColor = Yes End ; ***DESIGN parameters *** DisplayName = OBJECT:Raptor EditorSorting = VEHICLE Side = America TransportSlotCount = 0 ;how many "slots" we take in a transport (0 == not transportable) VisionRange = 180.0 ShroudClearingRange = 400 Prerequisites Object = AmericaAirfield End WeaponSet Conditions = None Weapon = PRIMARY RaptorJetMissileWeapon End WeaponSet Conditions = PLAYER_UPGRADE Weapon = PRIMARY RaptorJetLaserGuidedMissileWeapon End ArmorSet Conditions = None Armor = AirplaneArmor DamageFX = None End BuildCost = 1400 BuildTime = 20 ExperienceValue = 50 50 100 150 ;Experience point value at each level ExperienceRequired = 0 100 200 400 ;Experience points needed to gain each level IsTrainable = Yes ;Can gain experience CrusherLevel = 1 ;What can I crush?: 1 = infantry, 2 = trees, 3 = vehicles CrushableLevel = 2 ;What am I?: 0 = for infantry, 1 = for trees, 2 = general vehicles CommandSet = AmericaJetRaptorCommandSet ; *** AUDIO Parameters *** VoiceSelect = RaptorVoiceSelect VoiceMove = RaptorVoiceMove VoiceAttack = RaptorVoiceAttack VoiceAttackAir = RaptorVoiceAttackAir VoiceGuard = RaptorVoiceAirPatrol SoundDie = RaptorVoiceFalling SoundAmbient = RaptorAmbientLoop SoundAmbientRubble = NoSound ; For now, it is better to have some sound than no sound cause there is a bug in ; what triggers the sound move loop sound, and the multiplayer test is only days away ; SoundMoveLoop = RaptorAmbientLoop ; don't want sound while sitting at airfield ; SoundAmbient = NoSound UnitSpecificSounds VoiceCreate = RaptorVoiceCreate SoundEject = PilotSoundEject VoiceEject = PilotVoiceEject Afterburner = RaptorAfterburner VoiceLowFuel = RaptorVoiceLowFuel VoiceGarrison = RaptorVoiceMove End ; *** ENGINEERING Parameters *** RadarPriority = UNIT KindOf = PRELOAD CAN_CAST_REFLECTIONS CAN_ATTACK SELECTABLE VEHICLE SCORE AIRCRAFT Body = ActiveBody ModuleTag_02 MaxHealth = 160.0 InitialHealth = 160.0 End Behavior = WeaponSetUpgrade ModuleTag_03 TriggeredBy = Upgrade_AmericaLaserMissiles End Behavior = ExperienceScalarUpgrade ModuleTag_04 TriggeredBy = Upgrade_AmericaAdvancedTraining AddXPScalar = 1.0 ;Increases experience gained by an additional 100% End Behavior = JetSlowDeathBehavior ModuleTag_05 FXOnGroundDeath = FX_JetOnGroundDeath OCLOnGroundDeath = OCL_RaptorDeathFinalBlowUp DestructionDelay = 99999999; destruction will happen when we RollRate = 0.2 RollRateDelta = 100% ;each frame, rollrate = rollrate * rollrateDelta PitchRate = 0.0 FallHowFast = 110.0% ;Bigger is faster (can be over 100%,it's a fraction of gravity) FXInitialDeath = FX_JetDeathInitial OCLInitialDeath = OCL_RaptorDeathInitial DelaySecondaryFromInitialDeath = 500 ; in milliseconds FXSecondary = FX_JetDeathSecondary OCLSecondary = OCL_RaptorDeathSecondary FXHitGround = FX_JetDeathHitGround OCLHitGround = OCL_RaptorDeathHitGround DelayFinalBlowUpFromHitGround = 200 ; in milliseconds FXFinalBlowUp = FX_JetDeathFinalBlowUp OCLFinalBlowUp = OCL_RaptorDeathFinalBlowUp ; DeathLoopSound = MICAL NEEDS TO MAKE ME End Behavior = EjectPilotDie ModuleTag_06 ExemptStatus = HIJACKED GroundCreationList = OCL_EjectPilotOnGround AirCreationList = OCL_EjectPilotViaParachute VeterancyLevels = ALL -REGULAR ;only vet+ gives pilot End Behavior = PhysicsBehavior ModuleTag_07 Mass = 500.0 End Behavior = TransitionDamageFX ModuleTag_08 ReallyDamagedParticleSystem1 = Bone:Smoke RandomBone:Yes Psys:SmokeSmallContinuous01 ReallyDamagedFXList1 = Loc: X:0 Y:0 Z:0 FXList:FX_MIGDamageTransition End Behavior = JetAIUpdate ModuleTag_09 OutOfAmmoDamagePerSecond = 10% ; amount of damage to take per SEC (not per frame) when out of ammo ; note that it's expressed as a percent of max health, not an absolute TakeoffSpeedForMaxLift = 100% ; smaller numbers give more lift sooner when taking off TakeoffPause = 500 MinHeight = 5 ParkingOffset = 3 ; scooch it a little forward so the tail doesn't hit the doors ReturnToBaseIdleTime = 10000 ; if idle for this long, return to base, even if not out of ammo End Locomotor = SET_NORMAL RaptorJetLocomotor Locomotor = SET_TAXIING BasicJetTaxiLocomotor Behavior = FlammableUpdate ModuleTag_21 AflameDuration = 5000 ; If I catch fire, I'll burn for this long... AflameDamageAmount = 3 ; taking this much damage... AflameDamageDelay = 500 ; this often. End Geometry = Box GeometryIsSmall = Yes GeometryMajorRadius = 14.0 GeometryMinorRadius = 7.0 GeometryHeight = 5.0 Shadow = SHADOW_VOLUME ShadowSizeX = 89 ; minimum elevation angle above horizon. Used to limit shadow length. End ;------------------------------------------------------------------------------ ;This is the raptor as it's crashing ;------------------------------------------------------------------------------ Object AmericaJetRaptorHulk ; *** ART Parameters *** Draw = W3DModelDraw ModuleTag_01 DefaultConditionState Model = AVRaptor_D1 End End ; ***DESIGN parameters *** EditorSorting = DEBRIS ; *** ENGINEERING Parameters *** KindOf = NO_COLLIDE HULK Behavior = PhysicsBehavior ModuleTag_03 Mass = 2.0 AllowBouncing = No KillWhenRestingOnGround = Yes End Behavior = LifetimeUpdate ModuleTag_04 MinLifetime = 1500 ; min lifetime in msec MaxLifetime = 1600 ; max lifetime in msec End Behavior = SlowDeathBehavior ModuleTag_05 SinkDelay = 1500 SinkRate = 2 ; in Dist/Sec DestructionDelay = 8000 End End ;------------------------------------------------------------------------------ ;This is the A10 as it's crashing ;------------------------------------------------------------------------------ Object AmericaJetA10Hulk ; *** ART Parameters *** Draw = W3DModelDraw ModuleTag_01 DefaultConditionState Model = AVWarthog_D1 End End ; ***DESIGN parameters *** EditorSorting = DEBRIS ; *** ENGINEERING Parameters *** KindOf = NO_COLLIDE HULK Behavior = PhysicsBehavior ModuleTag_03 Mass = 2.0 AllowBouncing = No KillWhenRestingOnGround = Yes End Behavior = LifetimeUpdate ModuleTag_04 MinLifetime = 1500 ; min lifetime in msec MaxLifetime = 1600 ; max lifetime in msec End Behavior = SlowDeathBehavior ModuleTag_05 SinkDelay = 1500 SinkRate = 2 ; in Dist/Sec DestructionDelay = 8000 End End ;------------------------------------------------------------------------------ ;This is the stealth as it's crashing ;------------------------------------------------------------------------------ Object AmericaJetStealthHulk ; *** ART Parameters *** Draw = W3DModelDraw ModuleTag_01 DefaultConditionState Model = AVStealth_D1 End End ; ***DESIGN parameters *** EditorSorting = DEBRIS ; *** ENGINEERING Parameters *** KindOf = NO_COLLIDE HULK Behavior = PhysicsBehavior ModuleTag_03 Mass = 2.0 AllowBouncing = No KillWhenRestingOnGround = Yes End Behavior = LifetimeUpdate ModuleTag_04 MinLifetime = 1500 ; min lifetime in msec MaxLifetime = 1600 ; max lifetime in msec End Behavior = SlowDeathBehavior ModuleTag_05 SinkDelay = 1500 SinkRate = 2 ; in Dist/Sec DestructionDelay = 8000 End End ;------------------------------------------------------------------------------ ;This is the stealth as it's crashing ;------------------------------------------------------------------------------ Object AmericaJetAuroraHulk ; *** ART Parameters *** Draw = W3DModelDraw ModuleTag_01 DefaultConditionState Model = AVAurora_D1 End End ; ***DESIGN parameters *** EditorSorting = DEBRIS ; *** ENGINEERING Parameters *** KindOf = NO_COLLIDE HULK Behavior = PhysicsBehavior ModuleTag_03 Mass = 2.0 AllowBouncing = No KillWhenRestingOnGround = Yes End Behavior = LifetimeUpdate ModuleTag_04 MinLifetime = 1500 ; min lifetime in msec MaxLifetime = 1600 ; max lifetime in msec End Behavior = SlowDeathBehavior ModuleTag_05 SinkDelay = 1500 SinkRate = 2 ; in Dist/Sec DestructionDelay = 8000 End End ;------------------------------------------------------------------------------ Object A10ThunderboltMissile ; *** ART Parameters *** Draw = W3DModelDraw ModuleTag_01 OkToChangeModelColor = Yes DefaultConditionState Model = AVWarthog_M ParticleSysBone = NONE MissileExhaust End End ; ***DESIGN parameters *** DisplayName = OBJECT:Missile Side = America EditorSorting = SYSTEM TransportSlotCount = 1 ;how many "slots" we take in a transport (0 == not transportable) VisionRange = 0.0 ArmorSet Conditions = None Armor = ProjectileArmor DamageFX = None End ; *** AUDIO Parameters *** ; *** ENGINEERING Parameters *** KindOf = PRELOAD CAN_CAST_REFLECTIONS PROJECTILE SMALL_MISSILE Body = ActiveBody ModuleTag_02 MaxHealth = 100.0 InitialHealth = 100.0 End ; ---- begin Projectile death behaviors Behavior = InstantDeathBehavior DeathModuleTag_01 DeathTypes = NONE +DETONATED ; we detonated normally. ; no FX, just quiet destroy ourselves End Behavior = InstantDeathBehavior DeathModuleTag_02 DeathTypes = NONE +LASERED ; shot down by laser. FX = FX_GenericMissileDisintegrate OCL = OCL_GenericMissileDisintegrate End Behavior = InstantDeathBehavior DeathModuleTag_03 DeathTypes = ALL -LASERED -DETONATED ; shot down by nonlaser. FX = FX_GenericMissileDeath End ; ---- end Projectile death behaviors ; The weapon is in OCL.ini. This makes it do double damage secretly. ; Behavior = FireWeaponWhenDeadBehavior ModuleTag_05 ; DeathWeapon = A10ThunderboltMissileWeapon ; StartsActive = Yes ; End Behavior = PhysicsBehavior ModuleTag_08 Mass = 1 End Behavior = MissileAIUpdate ModuleTag_09 TryToFollowTarget = Yes FuelLifetime = 10000 InitialVelocity = 30 ; in dist/sec IgnitionDelay = 0 IgnitionFX = FX_A10ThunderboltMissileIgnition End ; It's a missile, it needs to hit so it can +DETONATED ; Behavior = HeightDieUpdate ModuleTag_10 ; TargetHeight = 1.0 ; TargetHeightIncludesStructures = No ; End Locomotor = SET_NORMAL A10ThunderboltMissileLocomotor Geometry = Sphere GeometryIsSmall = Yes GeometryMajorRadius = 1.0 Behavior = SpecialPowerCompletionDie ModuleTag_11 SpecialPowerTemplate = SuperweaponA10ThunderboltMissileStrike End ; Geometry = Sphere ; GeometryIsSmall = Yes ;GeometryMajorRadius = 12.0 End ;------------------------------------------------------------------------------ Object RaptorJetMissile ; *** ART Parameters *** Draw = W3DModelDraw ModuleTag_01 OkToChangeModelColor = Yes DefaultConditionState Model = AVRaptor_M End End ; ***DESIGN parameters *** DisplayName = OBJECT:Missile EditorSorting = SYSTEM VisionRange = 0.0 ; *** ENGINEERING Parameters *** KindOf = PRELOAD CAN_CAST_REFLECTIONS PROJECTILE SMALL_MISSILE Body = ActiveBody ModuleTag_02 MaxHealth = 100.0 InitialHealth = 100.0 End ; ---- begin Projectile death behaviors Behavior = InstantDeathBehavior DeathModuleTag_01 DeathTypes = NONE +DETONATED ; we detonated normally. ; no FX, just quiet destroy ourselves End Behavior = InstantDeathBehavior DeathModuleTag_02 DeathTypes = NONE +LASERED ; shot down by laser. FX = FX_GenericMissileDisintegrate OCL = OCL_GenericMissileDisintegrate End Behavior = InstantDeathBehavior DeathModuleTag_03 DeathTypes = ALL -LASERED -DETONATED ; shot down by nonlaser. FX = FX_GenericMissileDeath End ; ---- end Projectile death behaviors Behavior = PhysicsBehavior ModuleTag_07 Mass = 1 End Behavior = MissileAIUpdate ModuleTag_08 TryToFollowTarget = Yes FuelLifetime = 10000 InitialVelocity = 75 ; in dist/sec IgnitionDelay = 30 IgnitionFX = FX_JetMissileIgnition End Locomotor = SET_NORMAL RaptorJetMissileLocomotor Geometry = Sphere GeometryIsSmall = Yes GeometryMajorRadius = 1.0 End ;------------------------------------------------------------------------------ Object StealthJetMissile ; *** ART Parameters *** Draw = W3DModelDraw ModuleTag_01 OkToChangeModelColor = Yes DefaultConditionState Model = AVStealth_M End End ; ***DESIGN parameters *** DisplayName = OBJECT:Missile EditorSorting = SYSTEM VisionRange = 0.0 ; *** ENGINEERING Parameters *** KindOf = PRELOAD CAN_CAST_REFLECTIONS PROJECTILE SMALL_MISSILE Body = ActiveBody ModuleTag_02 MaxHealth = 100.0 InitialHealth = 100.0 End ; ---- begin Projectile death behaviors Behavior = InstantDeathBehavior DeathModuleTag_01 DeathTypes = NONE +DETONATED ; we detonated normally. ; no FX, just quiet destroy ourselves End Behavior = InstantDeathBehavior DeathModuleTag_02 DeathTypes = NONE +LASERED ; shot down by laser. FX = FX_GenericMissileDisintegrate OCL = OCL_GenericMissileDisintegrate End Behavior = InstantDeathBehavior DeathModuleTag_03 DeathTypes = ALL -LASERED -DETONATED ; shot down by nonlaser. FX = FX_GenericMissileDeath End ; ---- end Projectile death behaviors Behavior = PhysicsBehavior ModuleTag_07 Mass = 1 End Behavior = MissileAIUpdate ModuleTag_08 TryToFollowTarget = Yes FuelLifetime = 10000 InitialVelocity = 75 ; in dist/sec IgnitionDelay = 30 IgnitionFX = FX_JetMissileIgnition End Locomotor = SET_NORMAL StealthJetMissileLocomotor Geometry = Sphere GeometryIsSmall = Yes GeometryMajorRadius = 1.0 End ;------------------------------------------------------------------------------ Object AmericaJetB52 ; *** ART Parameters *** Draw = W3DModelDraw ModuleTag_01 DefaultConditionState Model = AVBomber ParticleSysBone = Engine01 JetBlackTrailThin ParticleSysBone = Engine02 JetBlackTrailThin ParticleSysBone = Engine03 JetBlackTrailThin ParticleSysBone = Engine04 JetBlackTrailThin ParticleSysBone = WingTip01 JetContrailThin ParticleSysBone = WingTip02 JetContrailThin End ConditionState = DAMAGED Model = AVBomber_D ParticleSysBone = Smoke01 JetFireLarge ParticleSysBone = Smoke02 JetFireLarge ParticleSysBone = Engine01 JetBlackTrailThin ParticleSysBone = Engine02 JetBlackTrailThin ParticleSysBone = Engine03 JetBlackTrailThin ParticleSysBone = Engine04 JetBlackTrailThin ParticleSysBone = Smoke01 JetSmokeLarge ParticleSysBone = Smoke02 JetSmokeLarge End ConditionState = REALLYDAMAGED Model = AVBomber_D ParticleSysBone = Smoke01 JetFireLarge ParticleSysBone = Smoke02 JetFireLarge ParticleSysBone = Engine01 JetBlackTrailThin ParticleSysBone = Engine02 JetBlackTrailThin ParticleSysBone = Engine03 JetBlackTrailThin ParticleSysBone = Engine04 JetBlackTrailThin ParticleSysBone = Smoke01 JetSmokeLarge ParticleSysBone = Smoke02 JetSmokeLarge End ConditionState = RUBBLE Model = AVBomber_D1 ParticleSysBone = Smoke01 JetFireLarge ParticleSysBone = Smoke02 JetFireLarge ParticleSysBone = Smoke01 JetSmokeLarge ParticleSysBone = Smoke02 JetSmokeLarge End OkToChangeModelColor = Yes End Draw = W3DModelDraw ModuleTag_02 DefaultConditionState Model = AVBomber_A2U Animation = AVBomber_A2K.AVBomber_A2 AnimationMode = MANUAL Flags = START_FRAME_FIRST MAINTAIN_FRAME_ACROSS_STATES End ConditionState = DOOR_1_OPENING Animation = AVBomber_A2K.AVBomber_A2 AnimationMode = ONCE Flags = START_FRAME_FIRST MAINTAIN_FRAME_ACROSS_STATES End ConditionState = DOOR_1_CLOSING Animation = AVBomber_A2K.AVBomber_A2 AnimationMode = ONCE_BACKWARDS Flags = START_FRAME_LAST MAINTAIN_FRAME_ACROSS_STATES End ConditionState = REALLYDAMAGED Model = AVBomber_A2DU Animation = AVBomber_A2K.AVBomber_A2 AnimationMode = MANUAL Flags = START_FRAME_FIRST MAINTAIN_FRAME_ACROSS_STATES End ConditionState = DOOR_1_OPENING REALLYDAMAGED Model = AVBomber_A2DU Animation = AVBomber_A2K.AVBomber_A2 AnimationMode = ONCE Flags = START_FRAME_FIRST MAINTAIN_FRAME_ACROSS_STATES End ConditionState = DOOR_1_CLOSING REALLYDAMAGED Model = AVBomber_A2DU Animation = AVBomber_A2K.AVBomber_A2 AnimationMode = ONCE_BACKWARDS Flags = START_FRAME_LAST MAINTAIN_FRAME_ACROSS_STATES End End ; ***DESIGN parameters *** DisplayName = OBJECT:B52 EditorSorting = VEHICLE Side = America TransportSlotCount = 0 ;how many "slots" we take in a transport (0 == not transportable) VisionRange = 150.0 ;0.0 WeaponSet Conditions = None Weapon = PRIMARY TomahawkMissileWeaponB52 End ArmorSet Conditions = None Armor = AirplaneArmor DamageFX = TankDamageFX End CommandSet = Command_ScriptedTransportDrops ; *** AUDIO Parameters *** SoundAmbient = B52AmbientLoop SoundAmbientRubble = NoSound ; *** ENGINEERING Parameters *** RadarPriority = UNIT KindOf = PRELOAD CAN_CAST_REFLECTIONS CAN_ATTACK VEHICLE SCORE TRANSPORT AIRCRAFT IGNORED_IN_GUI Body = ActiveBody ModuleTag_03 MaxHealth = 1000.0 InitialHealth = 1000.0 End ExperienceValue = 50 50 50 50 ; Experience point value at each level ;SCRIPTED SUPPORT: These special powers are triggered directly ;from the transport without creating a transport. This is done ;via new code support and CreateLocation USE_OWNER_OBJECT -- ;which also prevents creating the payload transport. Behavior = OCLSpecialPower ModuleTag_04 SpecialPowerTemplate = SuperweaponDaisyCutter ;@@KRIS@@ OCL = SUPERWEAPON_DaisyCutter CreateLocation = USE_OWNER_OBJECT End Behavior = OCLSpecialPower ModuleTag_05 SpecialPowerTemplate = SuperweaponParadropAmerica UpgradeOCL = SCIENCE_Paradrop3 SUPERWEAPON_Paradrop3 UpgradeOCL = SCIENCE_Paradrop2 SUPERWEAPON_Paradrop2 OCL = SUPERWEAPON_Paradrop1 CreateLocation = USE_OWNER_OBJECT End Behavior = OCLSpecialPower ModuleTag_06 SpecialPowerTemplate = SuperweaponCarpetBomb OCL = SUPERWEAPON_CarpetBomb UpgradeOCL = SCIENCE_B52TomahawkStrike SUPERWEAPON_B52TomahawkStrike CreateLocation = USE_OWNER_OBJECT End Behavior = PhysicsBehavior ModuleTag_07 Mass = 500.0 End Behavior = DeliverPayloadAIUpdate ModuleTag_08 DoorDelay = 500 MaxAttempts = 4 DropOffset = X:0 Y:0 Z:-10 DropDelay = 300 ; time in between each item dropped (if more than one) PutInContainer = AmericaParachute DeliveryDistance = 150 End Locomotor = SET_NORMAL B52Locomotor Behavior = TransportContain ModuleTag_09 Slots = 100 ; hey, it's a BIG transport ScatterNearbyOnExit = No OrientLikeContainerOnExit = Yes KeepContainerVelocityOnExit = Yes ExitPitchRate = 30 ExitBone = WeaponA01 AllowInsideKindOf = INFANTRY VEHICLE PROJECTILE DOZER PARACHUTABLE DoorOpenTime = 0 ; this prevents the Contain module from messing with the doors, since we want DeliverPayload to handle 'em NumberOfExitPaths = 0 DestroyRidersWhoAreNotFreeToExit = Yes ; 'destroy' as opposed to 'kill' End Behavior = JetSlowDeathBehavior ModuleTag_10 DestructionDelay = 2000 RollRate = 0.0 RollRateDelta = 100% ;each frame, rollrate = rollrate * rollrateDelta PitchRate = 0 FallHowFast = 25.0% ;Bigger is faster (can be over 100%,it's a fraction of gravity) FXInitialDeath = FX_JetBigDeathInitial OCLInitialDeath = OCL_AmericaJetCargoDeathStart DelaySecondaryFromInitialDeath = 2000 ; in milliseconds This guy won't hit the ground, so this time equals the above time OCLSecondary = OCL_AmericaJetCargoHulkDeath FXSecondary = FX_BigPlaneDeath ; FXFinalBlowUp = FX_JetDeathFinalBlowUp ; OCLFinalBlowUp = OCL_AuroraDeathFinalBlowUp ; DeathLoopSound = MICAL NEEDS TO MAKE ME End Behavior = TransitionDamageFX ModuleTag_11 DamagedFXList1 = Loc: X:0 Y:0 Z:0 FXList:FX_JetBigDamageTransition ReallyDamagedFXList1 = Loc: X:0 Y:0 Z:0 FXList:FX_JetBigDamageTransition End Geometry = Box GeometryIsSmall = No GeometryMajorRadius = 60.0 GeometryMinorRadius = 10.0 GeometryHeight = 10.0 Shadow = SHADOW_VOLUME ShadowSizeX = 89 ; minimum elevation angle above horizon. Used to limit shadow length End ;------------------------------------------------------------------------------ Object CarpetBomb ; *** ART Parameters *** Draw = W3DModelDraw ModuleTag_01 DefaultConditionState Model = EXCarptBmb End End ; ***DESIGN parameters *** DisplayName = OBJECT:CarpetBomb Side = America EditorSorting = SYSTEM TransportSlotCount = 1 ;how many "slots" we take in a transport (0 == not transportable) VisionRange = 300.0 ArmorSet Conditions = None Armor = ProjectileArmor DamageFX = None End ; *** AUDIO Parameters *** SoundFallingFromPlane = DaisyCutterWeapon ; *** ENGINEERING Parameters *** KindOf = PROJECTILE Body = ActiveBody ModuleTag_02 MaxHealth = 100.0 InitialHealth = 100.0 End Behavior = AIUpdateInterface ModuleTag_03 End Locomotor = SET_NORMAL None Behavior = PhysicsBehavior ModuleTag_04 Mass = 75.0 AerodynamicFriction = 1 ; this is now friction-per-sec ForwardFriction = 33 ; this is now friction-per-sec CenterOfMassOffset = 2 ; Default of 0 means nothing tips as it falls. Positive tips forward, negative tips back End Behavior = FireWeaponWhenDeadBehavior ModuleTag_05 DeathWeapon = CarpetBombWeapon StartsActive = Yes End Behavior = HeightDieUpdate ModuleTag_06 TargetHeight = 1.0 TargetHeightIncludesStructures = No End Behavior = SpecialPowerCompletionDie ModuleTag_07 SpecialPowerTemplate = SuperweaponCarpetBomb End Behavior = FXListDie ModuleTag_08 DeathFX = FX_CarpetBomb End Behavior = DestroyDie ModuleTag_09 ;nothing End End ;------------------------------------------------------------------------------ Object AuroraBomb ; *** ART Parameters *** Draw = W3DModelDraw ModuleTag_01 DefaultConditionState Model = EXCarptBmb End End ; ***DESIGN parameters *** Side = America EditorSorting = SYSTEM ArmorSet Conditions = None Armor = ProjectileArmor DamageFX = None End VisionRange = 0.0 ; *** AUDIO Parameters *** ; *** ENGINEERING Parameters *** KindOf = PROJECTILE Body = ActiveBody ModuleTag_02 MaxHealth = 100.0 InitialHealth = 100.0 End Behavior = PhysicsBehavior ModuleTag_03 Mass = 75.0 AerodynamicFriction = 2 ; this is now friction-per-sec ForwardFriction = 2 ; this is now friction-per-sec CenterOfMassOffset = 2 ; Default of 0 means nothing tips as it falls. Positive tips forward, negative tips back End ; it may seem odd to have a "bomb" with a Locomotor, especially a Thrust locomotor, ; but there's a good reason: the Aurora moves so freakin' fast that it's really ; hard to (1) find a reliable drop location, and (2) actually get it close enough to ; that location. So we cheat: just get fairly close, then let the "bomb" do a little (subtle) ; navigation on the way down. This works pretty well and actually looks much better ; than you might think. (srj) Behavior = MissileAIUpdate ModuleTag_04 TryToFollowTarget = No FuelLifetime = 0 IgnitionDelay = 0 InitialVelocity = 0 ; in dist/sec DistanceToTravelBeforeTurning = 0 DistanceToTargetBeforeDiving = 0 End Locomotor = SET_NORMAL AuroraBombLocomotor ; yes, that's right. Geometry = Sphere GeometryIsSmall = Yes GeometryMajorRadius = 2.0 End ;------------------------------------------------------------------------------ ; this is the "standard" mine used for building upgrades Object ChinaStandardMine ; *** ART Parameters *** Draw = W3DModelDraw ModuleTag_01 OkToChangeModelColor = Yes ; NOTE: ParticleSysBone doesn't work correctly with DefaultConditionState! ; fix someday! (srj) ConditionState = NONE Model = EXAMineGroup ParticleSysBone = Mine01 MineFX ParticleSysBone = Mine02 MineFX ParticleSysBone = Mine03 MineFX ParticleSysBone = Mine04 MineFX ParticleSysBone = Mine05 MineFX ParticleSysBone = Mine06 MineFX ParticleSysBone = Mine07 MineFX ParticleSysBone = Mine08 MineFX End ConditionState = RUBBLE Model = None End End ; ***DESIGN parameters *** DisplayName = OBJECT:StructureMine EditorSorting = MISC_MAN_MADE KindOf = STICK_TO_TERRAIN_SLOPE IMMOBILE MINE NO_HEAL_ICON ArmorSet Conditions = None Armor = MineArmor DamageFX = None End ; *** ENGINEERING Parameters *** Body = ActiveBody ModuleTag_02 MaxHealth = 100.0 InitialHealth = 100.0 End Behavior = StealthUpdate ModuleTag_03 StealthDelay = 0 ; msec StealthForbiddenConditions = NONE FriendlyOpacityMin = 0.0% FriendlyOpacityMax = 0.0% InnateStealth = Yes OrderIdleEnemiesToAttackMeUponReveal = No End ; this is a misleading name, since it's really single-Mine Behavior... Behavior = MinefieldBehavior ModuleTag_04 DetonationWeapon = StructureMineWeapon ; what happens when we detonate DetonatedBy = ENEMIES NEUTRAL ; we no longer want the "scoot" behavior. it looks funky with current art. (srj) ;ScootFromStartingPointTime = 500 RepeatDetonateMoveThresh = 5.0 NumVirtualMines = 8 Regenerates = Yes ; Standard mines DO regenerate. StopsRegenAfterCreatorDies = Yes DegenPercentPerSecondAfterCreatorDies = 3.33% ; take about 30 seconds to die. End ; Standard mines DO heal. Behavior = AutoHealBehavior ModuleTag_05 StartsActive = Yes HealingAmount = 2 HealingDelay = 5000 ; msec StartHealingDelay = 15000 ; wait this long after we are damaged to start healing End Geometry = CYLINDER GeometryMajorRadius = 30.0 GeometryHeight = 1.0 GeometryIsSmall = No End ;------------------------------------------------------------------------------ Object ChinaClusterMine ; *** ART Parameters *** Draw = W3DModelDraw ModuleTag_01 OkToChangeModelColor = Yes ; NOTE: ParticleSysBone doesn't work correctly with DefaultConditionState! ; fix someday! (srj) ConditionState = NONE Model = EXAMineGroup ParticleSysBone = Mine01 MineFX ParticleSysBone = Mine02 MineFX ParticleSysBone = Mine03 MineFX ParticleSysBone = Mine04 MineFX ParticleSysBone = Mine05 MineFX ParticleSysBone = Mine06 MineFX ParticleSysBone = Mine07 MineFX ParticleSysBone = Mine08 MineFX End ConditionState = RUBBLE Model = None End End ; ***DESIGN parameters *** DisplayName = OBJECT:ClusterMine EditorSorting = MISC_MAN_MADE KindOf = STICK_TO_TERRAIN_SLOPE IMMOBILE MINE NO_HEAL_ICON ArmorSet Conditions = None Armor = MineArmor DamageFX = None End ; *** ENGINEERING Parameters *** Body = ActiveBody ModuleTag_02 MaxHealth = 100.0 InitialHealth = 100.0 End Behavior = StealthUpdate ModuleTag_03 StealthDelay = 0 ; msec StealthForbiddenConditions = NONE FriendlyOpacityMin = 0.0% FriendlyOpacityMax = 0.0% InnateStealth = Yes OrderIdleEnemiesToAttackMeUponReveal = No End ; this is a misleading name, since it's really single-Mine Behavior... Behavior = MinefieldBehavior ModuleTag_04 DetonationWeapon = ClusterMineWeapon ; what happens when we detonate DetonatedBy = ENEMIES NEUTRAL ScootFromStartingPointTime = 1000 RepeatDetonateMoveThresh = 5.0 NumVirtualMines = 8 Regenerates = No ; Cluster mines do not regenerate. End ; Cluster mines do not heal. ; Behavior = AutoHealBehavior ModuleTag_05 ; StartsActive = Yes ; HealingAmount = 2 ; HealingDelay = 1000 ; msec ; StartHealingDelay = 15000 ; wait this long after we are damaged to start healing ; End Geometry = CYLINDER GeometryMajorRadius = 30.0 GeometryHeight = 1.0 GeometryIsSmall = No End ;------------------------------------------------------------------------------ Object ClusterMinesBomb ; *** ART Parameters *** Draw = W3DModelDraw ModuleTag_01 OkToChangeModelColor = Yes DefaultConditionState Model = EXAMine_A End End ; ***DESIGN parameters *** DisplayName = OBJECT:ClusterMinesBomb Side = China EditorSorting = SYSTEM TransportSlotCount = 1 ;how many "slots" we take in a transport (0 == not transportable) VisionRange = 0 ArmorSet Conditions = None Armor = ProjectileArmor DamageFX = None End ; *** AUDIO Parameters *** ; *** ENGINEERING Parameters *** KindOf = PROJECTILE Body = ActiveBody ModuleTag_02 MaxHealth = 100.0 InitialHealth = 100.0 End ; alas, this DOES need ai... Behavior = AIUpdateInterface ModuleTag_03 End Locomotor = SET_NORMAL None Behavior = PhysicsBehavior ModuleTag_04 Mass = 75.0 AerodynamicFriction = 1 ; this is now friction-per-sec ForwardFriction = 33 ; this is now friction-per-sec CenterOfMassOffset = 2 ; Default of 0 means nothing tips as it falls. Positive tips forward, negative tips back End Behavior = GenerateMinefieldBehavior ModuleTag_05 MineName = ChinaClusterMine DistanceAroundObject = 80 GenerateOnlyOnDeath = Yes SmartBorder = Yes SmartBorderSkipInterior = No AlwaysCircular = Yes GenerationFX = WeaponFX_ClusterMineImpact End Behavior = HeightDieUpdate ModuleTag_06 TargetHeight = 60.0 TargetHeightIncludesStructures = No End Behavior = DestroyDie ModuleTag_07 ;nothing End Geometry = SPHERE ;Collision geometry GeometryMajorRadius = 1.0 ;Collision major radius GeometryMinorRadius = 1.0 ;Collision minor radius GeometryHeight = 1.0 ;Height for geometry GeometryIsSmall = Yes ;Is small geometry End ;------------------------------------------------------------------------------ Object EMPPulseBomb ; *** ART Parameters *** Draw = W3DModelDraw ModuleTag_01 OkToChangeModelColor = Yes DefaultConditionState Model = EXAMine_A End End ; ***DESIGN parameters *** DisplayName = OBJECT:EMPPulseBomb Side = China EditorSorting = SYSTEM TransportSlotCount = 1 ;how many "slots" we take in a transport (0 == not transportable) VisionRange = 0 ArmorSet Conditions = None Armor = ProjectileArmor DamageFX = None End ; *** AUDIO Parameters *** ; *** ENGINEERING Parameters *** KindOf = PROJECTILE Body = ActiveBody ModuleTag_02 MaxHealth = 100.0 InitialHealth = 100.0 End ; alas, this DOES need ai... Behavior = AIUpdateInterface ModuleTag_03 End Locomotor = SET_NORMAL None Behavior = PhysicsBehavior ModuleTag_04 Mass = 75.0 AerodynamicFriction = 1 ; this is now friction-per-sec ForwardFriction = 33 ; this is now friction-per-sec CenterOfMassOffset = 2 ; Default of 0 means nothing tips as it falls. Positive tips forward, negative tips back End Behavior = HeightDieUpdate ModuleTag_05 TargetHeight = 15.0 TargetHeightIncludesStructures = No End Behavior = CreateObjectDie ModuleTag_06 CreationList = OCL_EMPPulseEffectSpheroids End Behavior = FXListDie ModuleTag_07 DeathFX = WeaponFX_EMPPulseImpact OrientToObject = No End Behavior = DestroyDie ModuleTag_08 ;nothing End Geometry = SPHERE ;Collision geometry GeometryMajorRadius = 1.0 ;Collision major radius GeometryMinorRadius = 1.0 ;Collision minor radius GeometryHeight = 1.0 ;Height for geometry GeometryIsSmall = Yes ;Is small geometry End ;------------------------------------------------------------------------------ Object BlackMarketNuke ; *** ART Parameters *** Draw = W3DModelDraw ModuleTag_01 OkToChangeModelColor = Yes DefaultConditionState Model = AVBomber_B End End ; ***DESIGN parameters *** DisplayName = OBJECT:BlackMarketNuke Side = GLA EditorSorting = SYSTEM TransportSlotCount = 1 ;how many "slots" we take in a transport (0 == not transportable) ArmorSet Conditions = None Armor = ProjectileArmor DamageFX = None End ; *** AUDIO Parameters *** ; *** ENGINEERING Parameters *** KindOf = PROJECTILE Body = ActiveBody ModuleTag_02 MaxHealth = 100.0 InitialHealth = 100.0 End Behavior = AIUpdateInterface ModuleTag_03 End Locomotor = SET_NORMAL None Behavior = PhysicsBehavior ModuleTag_04 Mass = 75.0 AerodynamicFriction = 1 ; this is now friction-per-sec ForwardFriction = 33 ; this is now friction-per-sec CenterOfMassOffset = 2 ; Default of 0 means nothing tips as it falls. Positive tips forward, negative tips back End Behavior = FireWeaponWhenDeadBehavior ModuleTag_05 DeathWeapon = BlackMarketNukeWeapon StartsActive = Yes End Behavior = HeightDieUpdate ModuleTag_06 TargetHeight = 1.0 TargetHeightIncludesStructures = No End Behavior = SpecialPowerCompletionDie ModuleTag_07 SpecialPowerTemplate = SuperweaponBlackMarketNuke End Behavior = DestroyDie ModuleTag_08 ;nothing End Behavior = FXListDie ModuleTag_09 DeathFX = FX_NukeGLA OrientToObject = No End Geometry = Sphere GeometryIsSmall = Yes GeometryMajorRadius = 12.0 End ;------------------------------------------------------------------------------ Object AnthraxBomb ; *** ART Parameters *** Draw = W3DModelDraw ModuleTag_01 OkToChangeModelColor = Yes DefaultConditionState Model = AVBomber_B End End ; ***DESIGN parameters *** DisplayName = OBJECT:AnthraxBomb Side = GLA EditorSorting = SYSTEM TransportSlotCount = 1 ;how many "slots" we take in a transport (0 == not transportable) VisionRange = 300.0 ShroudClearingRange = 0 ArmorSet Conditions = None Armor = ProjectileArmor DamageFX = None End ; *** AUDIO Parameters *** SoundFallingFromPlane = DaisyCutterWeapon ; *** ENGINEERING Parameters *** KindOf = PROJECTILE Body = ActiveBody ModuleTag_02 MaxHealth = 100.0 InitialHealth = 100.0 End Behavior = AIUpdateInterface ModuleTag_03 End Locomotor = SET_NORMAL None Behavior = PhysicsBehavior ModuleTag_04 Mass = 75.0 AerodynamicFriction = 1 ; this is now friction-per-sec ForwardFriction = 33 ; this is now friction-per-sec CenterOfMassOffset = 2 ; Default of 0 means nothing tips as it falls. Positive tips forward, negative tips back End Behavior = FireWeaponWhenDeadBehavior ModuleTag_05 DeathWeapon = AnthraxBombWeapon StartsActive = Yes End Behavior = HeightDieUpdate ModuleTag_06 TargetHeight = 40.0 TargetHeightIncludesStructures = No End Behavior = SpecialPowerCompletionDie ModuleTag_07 SpecialPowerTemplate = SuperweaponAnthraxBomb End Behavior = DestroyDie ModuleTag_08 ;nothing End Behavior = FXListDie ModuleTag_09 DeathFX = FX_AnthraxBomb End ; Geometry = Sphere ; GeometryIsSmall = Yes ;GeometryMajorRadius = 12.0 End ;------------------------------------------------------------------------------ Object DaisyCutterBomb ; *** ART Parameters *** Draw = W3DModelDraw ModuleTag_01 OkToChangeModelColor = Yes DefaultConditionState Model = AVBomber_B End End ; ***DESIGN parameters *** DisplayName = OBJECT:DaisyCutterBomb EditorSorting = SYSTEM TransportSlotCount = 10 ;how many "slots" we take in a transport (0 == not transportable) VisionRange = 300.0 ShroudClearingRange = 0 ArmorSet Conditions = None Armor = ProjectileArmor DamageFX = None End ; *** AUDIO Parameters *** SoundFallingFromPlane = DaisyCutterWeapon ; *** ENGINEERING Parameters *** KindOf = PROJECTILE Body = ActiveBody ModuleTag_02 MaxHealth = 100.0 InitialHealth = 100.0 End Behavior = CreateObjectDie ModuleTag_03 CreationList = OCL_DaisyCutterExplode End Behavior = FXListDie ModuleTag_04 DeathFX = FX_DaisyCutterExplode End Behavior = DestroyDie ModuleTag_05 ;nothing End Behavior = AIUpdateInterface ModuleTag_06 End Locomotor = SET_NORMAL None Behavior = PhysicsBehavior ModuleTag_07 Mass = 75.0 AerodynamicFriction = 1 ; this is now friction-per-sec ForwardFriction = 33 ; this is now friction-per-sec CenterOfMassOffset = 2 ; Default of 0 means nothing tips as it falls. Positive tips forward, negative tips back End Behavior = HeightDieUpdate ModuleTag_08 TargetHeight = 50.0 TargetHeightIncludesStructures = Yes End Behavior = SpecialPowerCompletionDie ModuleTag_09 SpecialPowerTemplate = SuperweaponDaisyCutter End Geometry = Sphere GeometryIsSmall = Yes GeometryMajorRadius = 12.0 End ;------------------------------------------------------------------------------ Object DaisyCutterGas ; *** ART Parameters *** ; Draw = W3DModelDraw ;; ConditionState = NONE ; Model = PMDumpst04 ; End ; End ; *** DESIGN Parameters *** ; *** ENGINEERING Parameters *** KindOf = IMMOBILE Body = ActiveBody ModuleTag_01 MaxHealth = 1.0 InitialHealth = 1.0 End Behavior = PhysicsBehavior ModuleTag_02 Mass = 150.0 AerodynamicFriction = 7 ; this is now friction-per-sec ForwardFriction = 200 ; this is now friction-per-sec End Behavior = HeightDieUpdate ModuleTag_03 TargetHeight = 40.0 TargetHeightIncludesStructures = Yes DestroyAttachedParticlesAtHeight = 41.0 ; Hack, todo remove this End Behavior = SlowDeathBehavior ModuleTag_04 DestructionDelay = 1000 DestructionDelayVariance = 100 FX = INITIAL FX_DaisyCutterIgnite FX = FINAL FX_DaisyCutterFinalExplosion Weapon = MIDPOINT DaisyCutterFlameWeapon ; Just a spot of flame to light trees on fire Weapon = FINAL DaisyCutterDetonationWeapon End End ;------------------------------------------------------------------------------ Object NeutronMissile ; *** ART Parameters *** Draw = W3DModelDraw ModuleTag_01 OkToChangeModelColor = Yes ConditionState = NONE Model = NBNRocket End ConditionState = DAMAGED REALLYDAMAGED RUBBLE Model = NONE End End ; ***DESIGN parameters *** DisplayName = OBJECT:NeutronMissile KindOf = UNATTACKABLE EditorSorting = SYSTEM VisionRange = 300.0 ShroudClearingRange = 0 TransportSlotCount = 10 ArmorSet Conditions = None Armor = ProjectileArmor DamageFX = None End ; *** AUDIO Parameters *** ; SoundFallingFromPlane = DaisyCutterWeapon ; *** ENGINEERING Parameters *** Body = ActiveBody ModuleTag_02 MaxHealth = 99999999.0 InitialHealth = 99999999.0 End Behavior = NeutronMissileUpdate ModuleTag_03 DistanceToTravelBeforeTurning = 300 ; goes straight up a long ways first MaxTurnRate = 7200 ; huge, since it turns off-camera ForwardDamping = 0.1 RelativeSpeed = 2.0 LaunchFX = FX_NeutronMissileLaunch IgnitionFX = FX_NeutronMissileIgnition TargetFromDirectlyAbove = 500 ; aim for an intermed spot directly above the target, so we come straight down onto it SpecialAccelFactor = 1 SpecialSpeedTime = 1500 SpecialSpeedHeight = 160 SpecialJitterDistance = 0.4 DeliveryDecalRadius = 210 DeliveryDecal Texture = SCCNuclearMissile_China Style = SHADOW_ALPHA_DECAL OpacityMin = 25% OpacityMax = 50% OpacityThrobTime = 500 Color = R:255 G:0 B:0 A:255 OnlyVisibleToOwningPlayer = Yes End End Behavior = HeightDieUpdate ModuleTag_04 TargetHeight = 100.0 TargetHeightIncludesStructures = No OnlyWhenMovingDown = Yes SnapToGroundOnDeath = Yes InitialDelay = 1000 ; Can't explode in the first second so we don't explode on the pad End Behavior = SpecialPowerCompletionDie ModuleTag_05 SpecialPowerTemplate = SuperweaponNeutronMissile End Behavior = NeutronMissileSlowDeathBehavior ModuleTag_07 DestructionDelay = 3501 ScorchMarkSize = 320 FXList = FX_Nuke Blast1Enabled = Yes Blast1Delay = 580 ;in milliseconds Blast1ScorchDelay = 100 ;in milliseconds Blast1InnerRadius = 60.0 ;objects inside this get the full damage Blast1OuterRadius = 60.0 ;objects inside this get some of the full damage Blast1MaxDamage = 0.0 ;damage within inner radius of blast Blast1MinDamage = 0.0 ;always do at least this much damage to objects Blast1ToppleSpeed = 0.5 ;higher #'s topple faster Blast1PushForce = 10.0 ;higher #'s push more Blast2Enabled = Yes Blast2Delay = 660 ;in milliseconds Blast2ScorchDelay = 180 ;in milliseconds Blast2InnerRadius = 90.0 ;objects inside this get the full damage Blast2OuterRadius = 90.0 ;objects inside this get some of the full damage Blast2MaxDamage = 0.0 ;damage within inner radius of blast Blast2MinDamage = 0.0 ;always do at least this much damage to objects Blast2ToppleSpeed = 0.45 ;higher #'s topple faster Blast2PushForce = 8.0 ;higher #'s push more Blast3Enabled = Yes Blast3Delay = 720 ;in milliseconds Blast3ScorchDelay = 260 ;in milliseconds Blast3InnerRadius = 120.0 ;objects inside this get the full damage Blast3OuterRadius = 120.0 ;objects inside this get some of the full damage Blast3MaxDamage = 0.0 ;damage within inner radius of blast Blast3MinDamage = 0.0 ;always do at least this much damage to objects Blast3ToppleSpeed = 0.42 ;higher #'s topple faster Blast3PushForce = 6.0 ;higher #'s push more Blast4Enabled = Yes Blast4Delay = 850 ;in milliseconds Blast4ScorchDelay = 340 ;in milliseconds Blast4InnerRadius = 150.0 ;objects inside this get the full damage Blast4OuterRadius = 150.0 ;objects inside this get some of the full damage Blast4MaxDamage = 0.0 ;damage within inner radius of blast Blast4MinDamage = 0.0 ;always do at least this much damage to objects Blast4ToppleSpeed = 0.40 ;higher #'s topple faster Blast4PushForce = 6.0 ;higher #'s push more Blast5Enabled = Yes Blast5Delay = 1000 ;in milliseconds Blast5ScorchDelay = 420 ;in milliseconds Blast5InnerRadius = 180.0 ;objects inside this get the full damage Blast5OuterRadius = 180.0 ;objects inside this get some of the full damage Blast5MaxDamage = 0.0 ;damage within inner radius of blast Blast5MinDamage = 0.0 ;always do at least this much damage to objects Blast5ToppleSpeed = 0.38 ;higher #'s topple faster Blast5PushForce = 6.0 ;higher #'s push more Blast6Enabled = Yes Blast6Delay = 1180 ;in milliseconds Blast6ScorchDelay = 500 ;in milliseconds Blast6InnerRadius = 60.0 ;objects inside this get the full damage Blast6OuterRadius = 210.0 ;objects inside this get some of the full damage Blast6MaxDamage = 3500.0 ;damage within inner radius of blast Blast6MinDamage = 300.0 ;always do at least this much damage to objects Blast6ToppleSpeed = 0.35 ;higher #'s topple faster Blast6PushForce = 4.0 ;higher #'s push more Blast7Enabled = Yes Blast7Delay = 999999 ;in milliseconds, don't do the damage wave Blast7ScorchDelay = 620 ;in milliseconds Blast7OuterRadius = 210.0 ;objects inside this get some of the full damage Blast8Enabled = Yes Blast8Delay = 999999 ;in milliseconds, don't do the damage wave Blast8ScorchDelay = 700 ;in milliseconds Blast8OuterRadius = 210.0 ;objects inside this get some of the full damage Blast9Enabled = Yes Blast9Delay = 999999 ;in milliseconds, don't do the damage wave Blast9ScorchDelay = 800 ;in milliseconds Blast9OuterRadius = 210.0 ;objects inside this get some of the full damage OCL = MIDPOINT OCL_NukeRadiationField End Geometry = CYLINDER GeometryIsSmall = Yes GeometryMajorRadius = 7.0 GeometryHeight = 60.0 End ;------------------------------------------------------------------------------ Object CargoTruckNuke ; ***DESIGN parameters *** DisplayName = OBJECT:NeutronMissile EditorSorting = SYSTEM VisionRange = 300.0 ShroudClearingRange = 0 ArmorSet Conditions = None Armor = ProjectileArmor DamageFX = None End ; *** AUDIO Parameters *** ; SoundFallingFromPlane = DaisyCutterWeapon ; *** ENGINEERING Parameters *** Body = ActiveBody ModuleTag_01 MaxHealth = 99999999.0 InitialHealth = 99999999.0 End ;The lifetime delays the explosion with enough time to play an audio cue. ;NOTE: The lifetime update is set in the ObjectCreationList that creates ; this object!!! Behavior = LifetimeUpdate ModuleTag_02 MinLifetime = 3000 ; min lifetime in msec MaxLifetime = 3000 ; max lifetime in msec End Behavior = NeutronMissileSlowDeathBehavior ModuleTag_03 DestructionDelay = 3501 ScorchMarkSize = 320 FXList = FX_Nuke Blast1Enabled = Yes Blast1Delay = 580 ;in milliseconds Blast1ScorchDelay = 100 ;in milliseconds Blast1InnerRadius = 60.0 ;objects inside this get the full damage Blast1OuterRadius = 60.0 ;objects inside this get some of the full damage Blast1MaxDamage = 0.0 ;damage within inner radius of blast Blast1MinDamage = 0.0 ;always do at least this much damage to objects Blast1ToppleSpeed = 0.5 ;higher #'s topple faster Blast1PushForce = 10.0 ;higher #'s push more Blast2Enabled = Yes Blast2Delay = 660 ;in milliseconds Blast2ScorchDelay = 180 ;in milliseconds Blast2InnerRadius = 90.0 ;objects inside this get the full damage Blast2OuterRadius = 90.0 ;objects inside this get some of the full damage Blast2MaxDamage = 0.0 ;damage within inner radius of blast Blast2MinDamage = 0.0 ;always do at least this much damage to objects Blast2ToppleSpeed = 0.45 ;higher #'s topple faster Blast2PushForce = 8.0 ;higher #'s push more Blast3Enabled = Yes Blast3Delay = 720 ;in milliseconds Blast3ScorchDelay = 260 ;in milliseconds Blast3InnerRadius = 120.0 ;objects inside this get the full damage Blast3OuterRadius = 120.0 ;objects inside this get some of the full damage Blast3MaxDamage = 0.0 ;damage within inner radius of blast Blast3MinDamage = 0.0 ;always do at least this much damage to objects Blast3ToppleSpeed = 0.42 ;higher #'s topple faster Blast3PushForce = 6.0 ;higher #'s push more Blast4Enabled = Yes Blast4Delay = 850 ;in milliseconds Blast4ScorchDelay = 340 ;in milliseconds Blast4InnerRadius = 150.0 ;objects inside this get the full damage Blast4OuterRadius = 150.0 ;objects inside this get some of the full damage Blast4MaxDamage = 0.0 ;damage within inner radius of blast Blast4MinDamage = 0.0 ;always do at least this much damage to objects Blast4ToppleSpeed = 0.40 ;higher #'s topple faster Blast4PushForce = 6.0 ;higher #'s push more Blast5Enabled = Yes Blast5Delay = 1000 ;in milliseconds Blast5ScorchDelay = 420 ;in milliseconds Blast5InnerRadius = 180.0 ;objects inside this get the full damage Blast5OuterRadius = 180.0 ;objects inside this get some of the full damage Blast5MaxDamage = 0.0 ;damage within inner radius of blast Blast5MinDamage = 0.0 ;always do at least this much damage to objects Blast5ToppleSpeed = 0.38 ;higher #'s topple faster Blast5PushForce = 6.0 ;higher #'s push more Blast6Enabled = Yes Blast6Delay = 1180 ;in milliseconds Blast6ScorchDelay = 500 ;in milliseconds Blast6InnerRadius = 60.0 ;objects inside this get the full damage Blast6OuterRadius = 210.0 ;objects inside this get some of the full damage Blast6MaxDamage = 3500.0 ;damage within inner radius of blast Blast6MinDamage = 200.0 ;always do at least this much damage to objects Blast6ToppleSpeed = 0.35 ;higher #'s topple faster Blast6PushForce = 4.0 ;higher #'s push more Blast7Enabled = Yes Blast7Delay = 999999 ;in milliseconds, don't do the damage wave Blast7ScorchDelay = 620 ;in milliseconds Blast7OuterRadius = 210.0 ;objects inside this get some of the full damage Blast8Enabled = Yes Blast8Delay = 999999 ;in milliseconds, don't do the damage wave Blast8ScorchDelay = 700 ;in milliseconds Blast8OuterRadius = 210.0 ;objects inside this get some of the full damage Blast9Enabled = Yes Blast9Delay = 999999 ;in milliseconds, don't do the damage wave Blast9ScorchDelay = 800 ;in milliseconds Blast9OuterRadius = 210.0 ;objects inside this get some of the full damage End Geometry = Cylinder GeometryIsSmall = Yes GeometryMajorRadius = 7.0 GeometryHeight = 60.0 End ;------------------------------------------------------------------------------ Object ScudStormMissile ; *** ART Parameters *** Draw = W3DModelDraw ModuleTag_01 OkToChangeModelColor = Yes DefaultConditionState Model = UBScudStrm_M End ConditionState = DAMAGED REALLYDAMAGED RUBBLE Model = NONE End End ; ***DESIGN parameters *** KindOf = PROJECTILE ;BALLISTIC_MISSILE EditorSorting = SYSTEM VisionRange = 300.0 ShroudClearingRange = 0 TransportSlotCount = 10 ArmorSet Conditions = None Armor = ProjectileArmor DamageFX = None End ; *** AUDIO Parameters *** ; SoundFallingFromPlane = DaisyCutterWeapon ; *** ENGINEERING Parameters *** Body = ActiveBody ModuleTag_02 MaxHealth = 10000.0 InitialHealth = 10000.0 End Behavior = PhysicsBehavior ModuleTag_03 Mass = 500.0 End Behavior = MissileAIUpdate ModuleTag_04 TryToFollowTarget = No FuelLifetime = 0 ; zero is infinite InitialVelocity = 0 ; in dist/sec IgnitionFX = FX_ScudStormIgnition DistanceToTravelBeforeTurning = 500 DistanceToTargetBeforeDiving = 200 ; When I hit this close to target, I ignore PreferredHeight. End Locomotor = SET_NORMAL SCUDStormMissileLocomotor Behavior = HeightDieUpdate ModuleTag_05 TargetHeight = 15.0 TargetHeightIncludesStructures = No OnlyWhenMovingDown = Yes SnapToGroundOnDeath = Yes InitialDelay = 1000 ; Can't explode in the first second so we don't explode on the pad End Behavior = DestroyDie ModuleTag_06 ;nothing End Behavior = SpecialPowerCompletionDie ModuleTag_07 SpecialPowerTemplate = SuperweaponScudStorm End Behavior = FireWeaponWhenDeadBehavior ModuleTag_08 DeathWeapon = ScudStormDamageWeapon StartsActive = Yes ConflictsWith = Upgrade_GLAAnthraxBeta End Behavior = FireWeaponWhenDeadBehavior ModuleTag_09 DeathWeapon = ScudStormDamageWeaponUpgraded StartsActive = No ; turned on by upgrade TriggeredBy = Upgrade_GLAAnthraxBeta End Geometry = Cylinder GeometryIsSmall = Yes GeometryMajorRadius = 7.0 GeometryHeight = 30.0 End ;------------------------------------------------------------------------------ Object AmericaJetAurora ; *** ART Parameters *** SelectPortrait = SAAurora_L ButtonImage = SAAurora UpgradeCameo1 = Upgrade_AmericaAdvancedTraining ;UpgradeCameo2 = NONE ;UpgradeCameo3 = NONE ;UpgradeCameo4 = NONE ;UpgradeCameo5 = NONE Draw = W3DModelDraw ModuleTag_01 DefaultConditionState Model = AVAurora HideSubObject = BurnerFX03 BurnerFX04 WeaponLaunchBone = PRIMARY WeaponA End ConditionState = JETEXHAUST ; exhaust ParticleSysBone = Wingtip01 JetContrail ParticleSysBone = Wingtip02 JetContrail End ConditionState = JETEXHAUST JETAFTERBURNER ; exhaust ParticleSysBone = Wingtip01 JetContrail ParticleSysBone = Wingtip02 JetContrail ; afterburner ShowSubObject = BurnerFX03 BurnerFX04 ParticleSysBone = Engine01 JetLenzflare ParticleSysBone = Engine02 JetLenzflare End ConditionState = REALLYDAMAGED Model = AVAurora_D ; damage ParticleSysBone = Smoke01 JetSmoke ParticleSysBone = Engine01 JetEngineDamagedSmoke End ConditionState = REALLYDAMAGED JETEXHAUST Model = AVAurora_D ; damage ParticleSysBone = Smoke01 JetSmoke ParticleSysBone = Engine01 JetEngineDamagedSmoke ; exhaust ParticleSysBone = Wingtip01 JetContrail ParticleSysBone = Wingtip02 JetContrail End ConditionState = REALLYDAMAGED JETEXHAUST JETAFTERBURNER Model = AVAurora_D ; damage ParticleSysBone = Smoke01 JetSmoke ParticleSysBone = Engine01 JetEngineDamagedSmoke ; afterburner ShowSubObject = BurnerFX03 BurnerFX04 ParticleSysBone = Engine01 JetLenzflare ParticleSysBone = Engine02 JetLenzflare ; exhaust ParticleSysBone = Wingtip01 JetContrail ParticleSysBone = Wingtip02 JetContrail End ConditionState = RUBBLE Model = AVAurora_D1 HideSubObject = None ShowSubObject = None End ConditionState = RUBBLE JETEXHAUST JETAFTERBURNER Model = AVAurora_D1 ;HideSubObject is needed cause there're inherited from default condition state HideSubObject = None ShowSubObject = None ParticleSysBone = Engine01 JetExhaust ParticleSysBone = Engine02 JetExhaust ; exhaust ParticleSysBone = Wingtip01 JetContrail ParticleSysBone = Wingtip02 JetContrail End OkToChangeModelColor = Yes End ; ***DESIGN parameters *** DisplayName = OBJECT:Aurora EditorSorting = VEHICLE Side = America TransportSlotCount = 0 ;how many "slots" we take in a transport (0 == not transportable) VisionRange = 180.0 ShroudClearingRange = 600 Prerequisites Object = AmericaAirfield Object = AmericaStrategyCenter End BuildCost = 2500 BuildTime = 30.0 ;in seconds WeaponSet Conditions = None Weapon = PRIMARY AuroraBombWeapon End ArmorSet Conditions = None Armor = AirplaneArmor DamageFX = None End ExperienceValue = 200 200 400 400 ;Experience point value at each level ExperienceRequired = 0 200 400 800 ;Experience points needed to gain each level IsTrainable = Yes ;Can gain experience CrusherLevel = 1 ;What can I crush?: 1 = infantry, 2 = trees, 3 = vehicles CrushableLevel = 2 ;What am I?: 0 = for infantry, 1 = for trees, 2 = general vehicles CommandSet = AmericaJetAuroraCommandSet ; *** AUDIO Parameters *** VoiceSelect = AuroraBomberVoiceSelect VoiceMove = AuroraBomberVoiceMove VoiceGuard = AuroraBomberVoiceMove VoiceAttack = AuroraBomberVoiceAttack SoundAmbient = AuroraBomberAmbientLoop SoundAmbientRubble = NoSound SoundDie = AuroraBomberVoiceFalling UnitSpecificSounds VoiceCreate = AuroraBomberVoiceCreate SoundEject = PilotSoundEject VoiceEject = PilotVoiceEject Afterburner = AuroraSonicBoom VoiceLowFuel = AuroraBomberVoiceLowFuel VoiceGarrison = AuroraBomberVoiceMove End ; *** ENGINEERING Parameters *** RadarPriority = UNIT KindOf = PRELOAD CAN_CAST_REFLECTIONS CAN_ATTACK SELECTABLE VEHICLE SCORE AIRCRAFT Body = ActiveBody ModuleTag_02 MaxHealth = 80.0 InitialHealth = 80.0 End Behavior = JetSlowDeathBehavior ModuleTag_03 FXOnGroundDeath = FX_JetOnGroundDeath OCLOnGroundDeath = OCL_AuroraDeathFinalBlowUp DestructionDelay = 99999999; destruction will happen when we RollRate = 0.2 RollRateDelta = 100% ;each frame, rollrate = rollrate * rollrateDelta PitchRate = 0.0 FallHowFast = 110.0% ;Bigger is faster (can be over 100%,it's a fraction of gravity) FXInitialDeath = FX_JetDeathInitial ;OCLInitialDeath = None DelaySecondaryFromInitialDeath = 500 ; in milliseconds FXSecondary = FX_JetDeathSecondary ;OCLSecondary = None FXHitGround = FX_JetDeathHitGround ;OCLHitGround = None DelayFinalBlowUpFromHitGround = 200 ; in milliseconds FXFinalBlowUp = FX_JetDeathFinalBlowUp OCLFinalBlowUp = OCL_AuroraDeathFinalBlowUp ; DeathLoopSound = MICAL NEEDS TO MAKE ME End Behavior = EjectPilotDie ModuleTag_04 GroundCreationList = OCL_EjectPilotOnGround AirCreationList = OCL_EjectPilotViaParachute ExemptStatus = HIJACKED VeterancyLevels = ALL -REGULAR ;only vet+ gives pilot End Behavior = PhysicsBehavior ModuleTag_05 Mass = 500.0 End Behavior = ExperienceScalarUpgrade ModuleTag_06 TriggeredBy = Upgrade_AmericaAdvancedTraining AddXPScalar = 1.0 ;Increases experience gained by an additional 100% End Behavior = JetAIUpdate ModuleTag_07 OutOfAmmoDamagePerSecond = 10% ; amount of damage to take per SEC (not per frame) when out of ammo ; note that it's expressed as a percent of max health, not an absolute TakeoffSpeedForMaxLift = 100% ; smaller numbers give more lift sooner when taking off TakeoffPause = 500 MinHeight = 5 SneakyOffsetWhenAttacking = -20.0 ; this is how far behind us people aim when we are in attack mode AttackLocomotorType = SET_SUPERSONIC AttackLocomotorPersistTime = 100 ; we start slowing down almost immediately AttackersMissPersistTime = 2000 ; but remain untargetable fer a bit longer ReturnForAmmoLocomotorType = SET_SLUGGISH ReturnToBaseIdleTime = 10000 ; if idle for this long, return to base, even if not out of ammo End Locomotor = SET_NORMAL AuroraJetLocomotor Locomotor = SET_SUPERSONIC AuroraJetSupersonicLocomotor Locomotor = SET_SLUGGISH AuroraJetSluggishLocomotor Locomotor = SET_TAXIING BasicJetTaxiLocomotor Behavior = FlammableUpdate ModuleTag_21 AflameDuration = 5000 ; If I catch fire, I'll burn for this long... AflameDamageAmount = 3 ; taking this much damage... AflameDamageDelay = 500 ; this often. End Behavior = TransitionDamageFX ModuleTag_22 ReallyDamagedParticleSystem1 = Bone:Smoke RandomBone:Yes Psys:SmokeSmallContinuous01 ReallyDamagedFXList1 = Loc: X:0 Y:0 Z:0 FXList:FX_MIGDamageTransition End Geometry = Box GeometryIsSmall = Yes GeometryMajorRadius = 14.0 GeometryMinorRadius = 7.0 GeometryHeight = 5.0 Shadow = SHADOW_VOLUME ShadowSizeX = 89 ; minimum elevation angle above horizon. Used to limit shadow length End ;------------------------------------------------------------------------------ Object AmericaJetStealthFighter ; *** ART Parameters *** SelectPortrait = SAStealth_L ButtonImage = SAStealth UpgradeCameo1 = Upgrade_AmericaLaserMissiles UpgradeCameo2 = Upgrade_AmericaAdvancedTraining ;UpgradeCameo3 = NONE ;UpgradeCameo4 = NONE ;UpgradeCameo5 = NONE Draw = W3DModelDraw ModuleTag_01 DefaultConditionState Model = AVStealth HideSubObject = BurnerFX03 BurnerFX04 WeaponLaunchBone = PRIMARY WeaponA End ConditionState = JETEXHAUST ParticleSysBone = Wingtip01 JetContrail ParticleSysBone = Wingtip02 JetContrail End ConditionState = JETEXHAUST JETAFTERBURNER ; exhaust ParticleSysBone = Wingtip01 JetContrail ParticleSysBone = Wingtip02 JetContrail ; afterburners ShowSubObject = BurnerFX03 BurnerFX04 ParticleSysBone = Engine01 JetLenzflare ParticleSysBone = Engine02 JetLenzflare End ConditionState = REALLYDAMAGED Model = AVStealth_D ; damage ParticleSysBone = Smoke01 JetSmoke ParticleSysBone = Engine01 JetEngineDamagedSmoke End ConditionState = REALLYDAMAGED JETEXHAUST Model = AVStealth_D ; damage ParticleSysBone = Smoke01 JetSmoke ParticleSysBone = Engine01 JetEngineDamagedSmoke ; exhaust ParticleSysBone = Wingtip01 JetContrail ParticleSysBone = Wingtip02 JetContrail End ConditionState = REALLYDAMAGED JETEXHAUST JETAFTERBURNER Model = AVStealth_D ; damage ParticleSysBone = Smoke01 JetSmoke ParticleSysBone = Engine01 JetEngineDamagedSmoke ; exhaust ParticleSysBone = Wingtip01 JetContrail ParticleSysBone = Wingtip02 JetContrail ; afterburners ShowSubObject = BurnerFX03 BurnerFX04 ParticleSysBone = Engine01 JetLenzflare ParticleSysBone = Engine02 JetLenzflare End ConditionState = RUBBLE Model = AVStealth_D1 HideSubObject = None ShowSubObject = None End ConditionState = RUBBLE JETEXHAUST JETAFTERBURNER Model = AVStealth_D1 ;HideSubObject is needed cause there're inherited from default condition state HideSubObject = None ShowSubObject = None ParticleSysBone = Engine01 JetExhaust ParticleSysBone = Engine02 JetExhaust ParticleSysBone = Wingtip01 JetContrail ParticleSysBone = Wingtip02 JetContrail End OkToChangeModelColor = Yes End ; ***DESIGN parameters *** DisplayName = OBJECT:StealthFighter EditorSorting = VEHICLE Side = America TransportSlotCount = 0 ;how many "slots" we take in a transport (0 == not transportable) VisionRange = 180.0 ShroudClearingRange = 300.0 Prerequisites Object = AmericaAirfield Science = SCIENCE_StealthFighter End WeaponSet Conditions = None Weapon = PRIMARY StealthJetMissileWeapon End WeaponSet Conditions = PLAYER_UPGRADE Weapon = PRIMARY StealthJetLaserGuidedMissileWeapon End ArmorSet Conditions = None Armor = AirplaneArmor DamageFX = None End BuildCost = 1600 BuildTime = 25.0 ;in seconds ExperienceValue = 100 100 200 300 ;Experience point value at each level ExperienceRequired = 0 200 300 600 ; Experience points needed to gain each level IsTrainable = Yes ;Can gain experience CrusherLevel = 1 ;What can I crush?: 1 = infantry, 2 = trees, 3 = vehicles CrushableLevel = 2 ;What am I?: 0 = for infantry, 1 = for trees, 2 = general vehicles CommandSet = AmericaJetStealthFighterCommandSet ; *** AUDIO Parameters *** VoiceSelect = StealthFighterVoiceSelect VoiceMove = StealthFighterVoiceMove VoiceAttack = StealthFighterVoiceAttack VoiceAttackAir = StealthFighterVoiceAttackAir VoiceGuard = StealthFighterVoiceAirPatrol SoundAmbient = StealthFighterAmbientLoop SoundAmbientRubble = NoSound SoundDie = StealthFighterVoiceFalling SoundStealthOn = StealthOn SoundStealthOff = StealthOff UnitSpecificSounds VoiceCreate = StealthFighterVoiceCreate SoundEject = PilotSoundEject VoiceEject = PilotVoiceEject Afterburner = RaptorAfterburner VoiceLowFuel = AuroraBomberVoiceLowFuel VoiceGarrison = StealthFighterVoiceMove End ; *** ENGINEERING Parameters *** RadarPriority = LOCAL_UNIT_ONLY KindOf = PRELOAD CAN_CAST_REFLECTIONS CAN_ATTACK SELECTABLE VEHICLE SCORE AIRCRAFT Body = ActiveBody ModuleTag_02 MaxHealth = 140.0 ;was 120.0 InitialHealth = 140.0 End Behavior = JetSlowDeathBehavior ModuleTag_03 FXOnGroundDeath = FX_JetOnGroundDeath OCLOnGroundDeath = OCL_StealthDeathFinalBlowUp DestructionDelay = 99999999; destruction will happen when we RollRate = 0.2 RollRateDelta = 100% ;each frame, rollrate = rollrate * rollrateDelta PitchRate = 0.0 FallHowFast = 110.0% ;Bigger is faster (can be over 100%,it's a fraction of gravity) FXInitialDeath = FX_JetDeathInitial ;OCLInitialDeath = None DelaySecondaryFromInitialDeath = 500 ; in milliseconds FXSecondary = FX_JetDeathSecondary ;OCLSecondary = None FXHitGround = FX_JetDeathHitGround ;OCLHitGround = None DelayFinalBlowUpFromHitGround = 200 ; in milliseconds FXFinalBlowUp = FX_JetDeathFinalBlowUp OCLFinalBlowUp = OCL_StealthDeathFinalBlowUp ; DeathLoopSound = MICAL NEEDS TO MAKE ME End Behavior = EjectPilotDie ModuleTag_04 GroundCreationList = OCL_EjectPilotOnGround AirCreationList = OCL_EjectPilotViaParachute ExemptStatus = HIJACKED VeterancyLevels = ALL -REGULAR ;only vet+ gives pilot End Behavior = PhysicsBehavior ModuleTag_05 Mass = 500.0 End Behavior = JetAIUpdate ModuleTag_06 OutOfAmmoDamagePerSecond = 10% ; amount of damage to take per SEC (not per frame) when out of ammo ; note that it's expressed as a percent of max health, not an absolute TakeoffSpeedForMaxLift = 100% ; smaller numbers give more lift sooner when taking off TakeoffPause = 500 MinHeight = 5 ReturnToBaseIdleTime = 10000 ; if idle for this long, return to base, even if not out of ammo End Behavior = WeaponSetUpgrade ModuleTag_07 TriggeredBy = Upgrade_AmericaLaserMissiles End Behavior = ExperienceScalarUpgrade ModuleTag_08 TriggeredBy = Upgrade_AmericaAdvancedTraining AddXPScalar = 1.0 ;Increases experience gained by an additional 100% End Behavior = StealthUpdate ModuleTag_09 StealthDelay = 1500 ; msec StealthForbiddenConditions = FIRING_PRIMARY ; not currently used... but maybe someday? (srj) ;RevealDistanceFromTarget = 0.0f FriendlyOpacityMin = 50.0% FriendlyOpacityMax = 100.0% InnateStealth = Yes OrderIdleEnemiesToAttackMeUponReveal = Yes End Locomotor = SET_NORMAL StealthJetLocomotor Locomotor = SET_TAXIING BasicJetTaxiLocomotor Behavior = FlammableUpdate ModuleTag_21 AflameDuration = 5000 ; If I catch fire, I'll burn for this long... AflameDamageAmount = 3 ; taking this much damage... AflameDamageDelay = 500 ; this often. End Behavior = TransitionDamageFX ModuleTag_22 ReallyDamagedParticleSystem1 = Bone:Smoke RandomBone:Yes Psys:SmokeSmallContinuous01 ReallyDamagedFXList1 = Loc: X:0 Y:0 Z:0 FXList:FX_MIGDamageTransition End Geometry = Cylinder GeometryIsSmall = Yes GeometryMajorRadius = 7.0 GeometryMinorRadius = 7.0 GeometryHeight = 7.0 Shadow = SHADOW_VOLUME ShadowSizeX = 89 ; minimum elevation angle above horizon. Used to limit shadow length End ;------------------------------------------------------------------------------ Object AmericaVehicleComanche ; *** ART Parameters *** SelectPortrait = SACCommanche_L ButtonImage = SACCommanche UpgradeCameo1 = Upgrade_ComancheRocketPods UpgradeCameo2 = Upgrade_AmericaAdvancedTraining ;UpgradeCameo3 = NONE ;UpgradeCameo4 = NONE ;UpgradeCameo5 = NONE Draw = W3DModelDraw ModuleTag_01 DefaultConditionState Model = AVComanche HideSubObject = MissileUpgrade Animation = AVComanche.AVComanche AnimationMode = LOOP WeaponMuzzleFlash = PRIMARY TurretFX WeaponFireFXBone = PRIMARY Muzzle WeaponFireFXBone = SECONDARY Muzzle WeaponLaunchBone = SECONDARY Muzzle End ConditionState = REALLYDAMAGED Model = AVComanche_d Animation = AVComanche_d.AVComanche_d AnimationMode = LOOP End ConditionState = WEAPONSET_PLAYER_UPGRADE ShowSubObject = MissileUpgrade Animation = AVComanche.AVComanche AnimationMode = LOOP WeaponFireFXBone = TERTIARY WeaponB WeaponLaunchBone = TERTIARY WeaponB End ConditionState = WEAPONSET_PLAYER_UPGRADE REALLYDAMAGED Model = AVComanche_d ShowSubObject = MissileUpgrade Animation = AVComanche_d.AVComanche_d AnimationMode = LOOP WeaponFireFXBone = TERTIARY WeaponB WeaponLaunchBone = TERTIARY WeaponB End ConditionState = RUBBLE Model = AVComanche_d Animation = AVComanche_d.AVComanche_d AnimationMode = LOOP End ConditionState = RUBBLE SPECIAL_DAMAGED Model = AVComanche_d HideSubObject = AVComanche_Prop End OkToChangeModelColor = Yes End ; ***DESIGN parameters *** DisplayName = OBJECT:Comanche EditorSorting = VEHICLE Side = America TransportSlotCount = 0 ;how many "slots" we take in a transport (0 == not transportable) VisionRange = 180.0 ShroudClearingRange = 600 Prerequisites Object = AmericaAirfield End WeaponSet Conditions = None ; ----- Weapon = PRIMARY Comanche20mmCannonWeapon PreferredAgainst = PRIMARY INFANTRY AutoChooseSources = PRIMARY FROM_PLAYER FROM_SCRIPT FROM_AI ; ----- Weapon = SECONDARY ComancheAntiTankMissileWeapon PreferredAgainst = SECONDARY VEHICLE STRUCTURE AutoChooseSources = SECONDARY FROM_PLAYER FROM_SCRIPT FROM_AI ; ----- Weapon = TERTIARY NONE End WeaponSet Conditions = PLAYER_UPGRADE ; ----- Weapon = PRIMARY Comanche20mmCannonWeapon PreferredAgainst = PRIMARY INFANTRY AutoChooseSources = PRIMARY FROM_PLAYER FROM_SCRIPT FROM_AI ; ----- Weapon = SECONDARY ComancheAntiTankMissileWeapon PreferredAgainst = SECONDARY VEHICLE STRUCTURE AutoChooseSources = SECONDARY FROM_PLAYER FROM_SCRIPT FROM_AI ; ----- Weapon = TERTIARY ComancheRocketPodWeapon AutoChooseSources = TERTIARY NONE End ArmorSet Conditions = None Armor = ComancheArmor DamageFX = None End BuildCost = 1500 BuildTime = 20 ; in seconds ExperienceValue = 50 50 100 200 ; Experience point value at each level ExperienceRequired = 0 100 200 400 ; Experience points needed to gain each level IsTrainable = Yes ; Can gain experience CommandSet = AmericaVehicleComancheCommandSet ; *** AUDIO Parameters *** VoiceSelect = ComancheVoiceSelect VoiceMove = ComancheVoiceMove VoiceGuard = ComancheVoiceMove VoiceAttack = ComancheVoiceAttack SoundAmbient = ComancheAmbientLoop SoundAmbientRubble = NoSound SoundDie = ComancheVoiceFalling UnitSpecificSounds ; These have the syntax of SomeNameSomewhereInCode = SomeNameSomewhereInLookupINIs VoiceCreate = ComancheVoiceCreate SoundEject = PilotSoundEject VoiceEject = PilotVoiceEject Afterburner = RaptorAfterburner VoiceGarrison = ComancheVoiceMove TurretMoveStart = NoSound TurretMoveLoop = NoSound VoiceFireRocketPods = ComancheVoiceAttackRocket End ; *** ENGINEERING Parameters *** RadarPriority = UNIT KindOf = PRELOAD CAN_CAST_REFLECTIONS CAN_ATTACK SELECTABLE VEHICLE SCORE AIRCRAFT PRODUCED_AT_HELIPAD Behavior = WeaponSetUpgrade ModuleTag_02 TriggeredBy = Upgrade_ComancheRocketPods End Behavior = ExperienceScalarUpgrade ModuleTag_03 TriggeredBy = Upgrade_AmericaAdvancedTraining AddXPScalar = 1.0 ;Increases experience gained by an additional 100% End Body = ActiveBody ModuleTag_04 MaxHealth = 220.0 InitialHealth = 220.0 End Behavior = FXListDie ModuleTag_05 DeathFX = FX_HelicopterStartDeath End Behavior = JetAIUpdate ModuleTag_06 MinHeight = 5 NeedsRunway = No KeepsParkingSpaceWhenAirborne = No AutoAcquireEnemiesWhenIdle = Yes ; note that comanches do not return to base when idle ; this is a bit of a trick... normally, units cannot move-and-fire at ; the same time. we need the comanche to be able to. so we give it ; a "turret" (invisible) and put the two main weapons on it, but with ; no turn rate. voila! Turret TurretTurnRate = 0 ; this "turret" does not turn TurretPitchRate = 0 ; nor does it pitch ControlledWeaponSlots = PRIMARY SECONDARY End End Locomotor = SET_NORMAL ComancheLocomotor Locomotor = SET_TAXIING BasicHelicopterTaxiLocomotor Behavior = PhysicsBehavior ModuleTag_07 Mass = 50.0 End Behavior = HelicopterSlowDeathBehavior ModuleTag_08 DestructionDelay = 99999999 ; the destruction delay SpiralOrbitTurnRate = 140.0 ; in degrees per second, bigger # = tighter spiral SpiralOrbitForwardSpeed = 350.0 ; bigger # = larger spiral SpiralOrbitForwardSpeedDamping = .9999 ; smaller #'s = slow down faster MaxBraking = 190 ; max braking we can use during death spiral (lower num = wilder spiral) SoundDeathLoop = ComancheDamagedLoop MinSelfSpin = 100 ; in degrees per second MaxSelfSpin = 300 ; in degrees per second SelfSpinUpdateDelay = 100 ; in milliseconds SelfSpinUpdateAmount = 10 ; in degrees FallHowFast = 12.0% ; fraction of gravity, lower = take longer to fall MinBladeFlyOffDelay = 1500 ; in milliseconds MaxBladeFlyOffDelay = 1500 ; in milliseconds AttachParticle = SootySmokeTrail AttachParticleBone = Propeller02 BladeObjectName = ComancheBlades BladeBoneName = Propeller01 ; Most things that eject pilots do so immediately upon death, ; via use of EjectPilotDie, but Helicopters are a special case... ; they need to do so after their blades are ejected. OCLEjectPilot = OCL_EjectPilotViaParachute FXBlade = FX_HelicopterBladeExplosion OCLBlade = OCL_HelicopterBladeExplosion FXHitGround = FX_HelicopterHitGround OCLHitGround = OCL_HelicopterHitGround FXFinalBlowUp = FX_GroundedHelicopterBlowUp OCLFinalBlowUp = OCL_GroundedHelicopterBlowUp DelayFromGroundToFinalDeath = 1500 FinalRubbleObject = ComancheRubbleHull End Behavior = TransitionDamageFX ModuleTag_09 ReallyDamagedParticleSystem1 = Bone:Smoke RandomBone:Yes PSys:SmokeSmallContinuousDown ReallyDamagedFXList1 = Loc: X:0 Y:0 Z:0 FXList:FX_ComancheDamageTransition End Behavior = FlammableUpdate ModuleTag_21 AflameDuration = 5000 ; If I catch fire, I'll burn for this long... AflameDamageAmount = 3 ; taking this much damage... AflameDamageDelay = 500 ; this often. End Geometry = BOX GeometryMajorRadius = 20.0 GeometryMinorRadius = 3.0 GeometryHeight = 25.0 GeometryIsSmall = No Shadow = SHADOW_VOLUME ShadowSizeX = 89 ; minimum elevation angle above horizon. Used to limit shadow length End ;------------------------------------------------------------------------------ Object ComancheBlades ; *** ART Parameters *** Draw = W3DModelDraw ModuleTag_01 DefaultConditionState Model = AVComanche_D2 Animation = AVComanche_D2.AVComanche_D2 AnimationMode = LOOP End End ; ***DESIGN parameters *** DisplayName = OBJECT:Comanche Side = America ; *** ENGINEERING Parameters *** KindOf = PRELOAD IMMOBILE Behavior = PhysicsBehavior ModuleTag_02 AllowBouncing = Yes End Behavior = LifetimeUpdate ModuleTag_03 MinLifetime = 1000 ; min lifetime in msec MaxLifetime = 1000 ; max lifetime in msec End End ;------------------------------------------------------------------------------ Object ComancheRubbleHull ; *** ART Parameters *** Draw = W3DModelDraw ModuleTag_01 DefaultConditionState Model = AVComanche_D1 End End ; ***DESIGN parameters *** DisplayName = OBJECT:ComancheHull Side = America ; *** ENGINEERING Parameters *** KindOf = IMMOBILE NO_COLLIDE HULK Behavior = PhysicsBehavior ModuleTag_02 Mass = 25.0 AllowBouncing = Yes End Behavior = LifetimeUpdate ModuleTag_03 MinLifetime = 3000 ; min lifetime in msec MaxLifetime = 3000 ; max lifetime in msec End Behavior = SlowDeathBehavior ModuleTag_05 SinkDelay = 3000 SinkRate = 4 ; in Dist/Sec DestructionDelay = 10000 End End ;------------------------------------------------------------------------------ Object CINE_ComancheRubbleHull ; *** ART Parameters *** Draw = W3DModelDraw ModuleTag_01 DefaultConditionState Model = AVComanche_D1 End End ; ***DESIGN parameters *** DisplayName = OBJECT:ComancheHull Side = America ; *** ENGINEERING Parameters *** KindOf = IMMOBILE Behavior = PhysicsBehavior ModuleTag_02 Mass = 25.0 AllowBouncing = Yes End End ;------------------------------------------------------------------------------ Object ChinookRubbleHull ; *** ART Parameters *** Draw = W3DModelDraw ModuleTag_01 DefaultConditionState Model = AVChinook_D1 End End ; ***DESIGN parameters *** DisplayName = OBJECT:ComancheHull Side = America ; *** ENGINEERING Parameters *** KindOf = IMMOBILE NO_COLLIDE HULK Behavior = PhysicsBehavior ModuleTag_02 Mass = 25.0 AllowBouncing = Yes End Behavior = LifetimeUpdate ModuleTag_03 MinLifetime = 100000 ; min lifetime in msec MaxLifetime = 100000 ; max lifetime in msec End End ;------------------------------------------------------------------------------ Object AmericaVehicleApache ; *** ART Parameters *** SelectPortrait = SACApache_L ButtonImage = SACApache UpgradeCameo1 = Upgrade_AmericaAdvancedTraining Draw = W3DModelDraw ModuleTag_01 DefaultConditionState Model = AVApache Animation = AVApache.AVApache AnimationMode = LOOP WeaponMuzzleFlash = PRIMARY TurretFX WeaponFireFXBone = PRIMARY Muzzle WeaponFireFXBone = SECONDARY WeaponB WeaponLaunchBone = SECONDARY WeaponB WeaponFireFXBone = TERTIARY WeaponB WeaponLaunchBone = TERTIARY WeaponB End ConditionState = REALLYDAMAGED Model = AVApache_d Animation = AVApache_d.AVApache_d AnimationMode = LOOP End ConditionState = RUBBLE Model = AVApache_d Animation = AVApache_d.AVApache_d AnimationMode = LOOP End ConditionState = RUBBLE SPECIAL_DAMAGED Model = AVApache_d HideSubObject = AVApache_Prop End OkToChangeModelColor = Yes End ; ***DESIGN parameters *** DisplayName = OBJECT:Apache EditorSorting = VEHICLE Side = America TransportSlotCount = 0 ;how many "slots" we take in a transport (0 == not transportable) VisionRange = 180.0 ShroudClearingRange = 600 Prerequisites Object = AmericaAirfield Object = AmericaStrategyCenter End WeaponSet Conditions = None ; ----- Weapon = PRIMARY Comanche20mmCannonWeapon PreferredAgainst = PRIMARY INFANTRY AutoChooseSources = PRIMARY FROM_PLAYER FROM_SCRIPT FROM_AI ; ----- Weapon = SECONDARY ComancheAntiTankMissileWeapon PreferredAgainst = SECONDARY VEHICLE STRUCTURE AutoChooseSources = SECONDARY FROM_PLAYER FROM_SCRIPT FROM_AI ; ----- Weapon = TERTIARY ComancheRocketPodWeapon AutoChooseSources = TERTIARY NONE End ArmorSet Conditions = None Armor = ComancheArmor DamageFX = None End BuildCost = 2500 BuildTime = 30 ; in seconds ExperienceValue = 65 65 150 300 ; Experience point value at each level ExperienceRequired = 0 125 250 500 ; Experience points needed to gain each level IsTrainable = Yes ; Can gain experience CommandSet = AmericaVehicleComancheCommandSet ; *** AUDIO Parameters *** VoiceSelect = ComancheVoiceSelect VoiceMove = ComancheVoiceMove VoiceGuard = ComancheVoiceMove VoiceAttack = ComancheVoiceAttack SoundAmbient = ComancheAmbientLoop SoundAmbientRubble = NoSound SoundDie = ComancheVoiceFalling UnitSpecificSounds ; These have the syntax of SomeNameSomewhereInCode = SomeNameSomewhereInLookupINIs VoiceCreate = ComancheVoiceCreate SoundEject = PilotSoundEject VoiceEject = PilotVoiceEject Afterburner = RaptorAfterburner VoiceGarrison = ComancheVoiceMove TurretMoveStart = NoSound TurretMoveLoop = NoSound VoiceFireRocketPods = ComancheVoiceAttackRocket End ; *** ENGINEERING Parameters *** RadarPriority = UNIT KindOf = PRELOAD CAN_CAST_REFLECTIONS CAN_ATTACK SELECTABLE VEHICLE SCORE AIRCRAFT PRODUCED_AT_HELIPAD Behavior = ExperienceScalarUpgrade ModuleTag_03 TriggeredBy = Upgrade_AmericaAdvancedTraining AddXPScalar = 1.0 ;Increases experience gained by an additional 100% End Body = ActiveBody ModuleTag_04 MaxHealth = 280.0 InitialHealth = 280.0 End Behavior = FXListDie ModuleTag_05 DeathFX = FX_HelicopterStartDeath End Behavior = JetAIUpdate ModuleTag_06 MinHeight = 5 NeedsRunway = No KeepsParkingSpaceWhenAirborne = No AutoAcquireEnemiesWhenIdle = Yes Turret TurretTurnRate = 0 ; this "turret" does not turn TurretPitchRate = 0 ; nor does it pitch ControlledWeaponSlots = PRIMARY SECONDARY End End Locomotor = SET_NORMAL ComancheLocomotor Locomotor = SET_TAXIING BasicHelicopterTaxiLocomotor Behavior = PhysicsBehavior ModuleTag_07 Mass = 50.0 End Behavior = HelicopterSlowDeathBehavior ModuleTag_08 DestructionDelay = 99999999 ; the destruction delay SpiralOrbitTurnRate = 140.0 ; in degrees per second, bigger # = tighter spiral SpiralOrbitForwardSpeed = 350.0 ; bigger # = larger spiral SpiralOrbitForwardSpeedDamping = .9999 ; smaller #'s = slow down faster MaxBraking = 190 ; max braking we can use during death spiral (lower num = wilder spiral) SoundDeathLoop = ComancheDamagedLoop MinSelfSpin = 100 ; in degrees per second MaxSelfSpin = 300 ; in degrees per second SelfSpinUpdateDelay = 100 ; in milliseconds SelfSpinUpdateAmount = 10 ; in degrees FallHowFast = 12.0% ; fraction of gravity, lower = take longer to fall MinBladeFlyOffDelay = 1500 ; in milliseconds MaxBladeFlyOffDelay = 1500 ; in milliseconds AttachParticle = SootySmokeTrail AttachParticleBone = Propeller02 BladeObjectName = ComancheBlades BladeBoneName = Propeller01 ; Most things that eject pilots do so immediately upon death, ; via use of EjectPilotDie, but Helicopters are a special case... ; they need to do so after their blades are ejected. OCLEjectPilot = OCL_EjectPilotViaParachute FXBlade = FX_HelicopterBladeExplosion OCLBlade = OCL_HelicopterBladeExplosion FXHitGround = FX_HelicopterHitGround OCLHitGround = OCL_HelicopterHitGround FXFinalBlowUp = FX_GroundedHelicopterBlowUp OCLFinalBlowUp = OCL_GroundedHelicopterBlowUp DelayFromGroundToFinalDeath = 1500 FinalRubbleObject = ComancheRubbleHull End Behavior = TransitionDamageFX ModuleTag_09 ReallyDamagedParticleSystem1 = Bone:Smoke RandomBone:Yes PSys:SmokeSmallContinuousDown ReallyDamagedFXList1 = Loc: X:0 Y:0 Z:0 FXList:FX_ComancheDamageTransition End Behavior = FlammableUpdate ModuleTag_21 AflameDuration = 5000 ; If I catch fire, I'll burn for this long... AflameDamageAmount = 3 ; taking this much damage... AflameDamageDelay = 500 ; this often. End Geometry = BOX GeometryMajorRadius = 20.0 GeometryMinorRadius = 3.0 GeometryHeight = 25.0 GeometryIsSmall = No Shadow = SHADOW_VOLUME ShadowSizeX = 89 ; minimum elevation angle above horizon. Used to limit shadow length End ;------------------------------------------------------------------------------ Object ChinaJetMIG ; *** ART Parameters *** SelectPortrait = SNMig_L ButtonImage = SNMig UpgradeCameo1 = Upgrade_ChinaAircraftArmor UpgradeCameo2 = Upgrade_ChinaBlackNapalm ;UpgradeCameo3 = NONE ;UpgradeCameo4 = NONE ;UpgradeCameo5 = NONE Draw = W3DModelDraw ModuleTag_01 OkToChangeModelColor = Yes DefaultConditionState Model = NVMIG HideSubObject = BurnerFX01 BurnerFX02 WeaponLaunchBone = PRIMARY WeaponA End ConditionState = JETEXHAUST ParticleSysBone = Wingtip01 JetContrail ParticleSysBone = Wingtip02 JetContrail End ConditionState = JETEXHAUST JETAFTERBURNER ShowSubObject = BurnerFX01 BurnerFX02 ParticleSysBone = Exhaust01 JetExhaust ParticleSysBone = Exhaust02 JetExhaust ParticleSysBone = Wingtip01 JetContrail ParticleSysBone = Wingtip02 JetContrail End ConditionState = REALLYDAMAGED Model = NVMIG_D ParticleSysBone = Wingtip01 JetContrail ParticleSysBone = Wingtip02 JetContrail End ConditionState = RUBBLE Model = NVMIG_D End ConditionState = REALLYDAMAGED JETEXHAUST Model = NVMIG_D ParticleSysBone = Wingtip01 JetContrail ParticleSysBone = Wingtip02 JetContrail End ConditionState = REALLYDAMAGED JETEXHAUST JETAFTERBURNER Model = NVMIG_D ShowSubObject = BurnerFX01 BurnerFX02 ParticleSysBone = Engine01 JetExhaust ParticleSysBone = Engine02 JetExhaust ParticleSysBone = Wingtip01 JetContrail ParticleSysBone = Wingtip02 JetContrail End ConditionState = RUBBLE JETEXHAUST JETAFTERBURNER ; @todo srj -- model missing ;Model = NVMIG_D1B Model = NVMIG_D ;HideSubObject is needed cause there're inherited from default condition state HideSubObject = None ShowSubObject = None ParticleSysBone = Engine01 JetExhaust ParticleSysBone = Engine02 JetExhaust ParticleSysBone = Wingtip01 JetContrail ParticleSysBone = Wingtip02 JetContrail End End ; ***DESIGN parameters *** DisplayName = OBJECT:MIG EditorSorting = VEHICLE Side = China TransportSlotCount = 0 ;how many "slots" we take in a transport (0 == not transportable) VisionRange = 200.0 ShroudClearingRange = 300.0 Prerequisites Object = ChinaAirfield End WeaponSet Conditions = None Weapon = PRIMARY NapalmMissileWeapon AutoChooseSources = PRIMARY NONE End WeaponSet Conditions = PLAYER_UPGRADE Weapon = PRIMARY BlackNapalmMissileWeapon AutoChooseSources = PRIMARY NONE End ArmorSet Conditions = None Armor = AirplaneArmor DamageFX = None End BuildCost = 1200 BuildTime = 13 ;10 ExperienceValue = 50 50 100 150 ;Experience point value at each level ExperienceRequired = 0 100 200 400 ;Experience points needed to gain each level IsTrainable = Yes ;Can gain experience CrusherLevel = 1 ;What can I crush?: 1 = infantry, 2 = trees, 3 = vehicles CrushableLevel = 2 ;What am I?: 0 = for infantry, 1 = for trees, 2 = general vehicles CommandSet = ChinaJetMIGCommandSet ; *** AUDIO Parameters *** VoiceSelect = MigVoiceSelect VoiceMove = MigVoiceMove VoiceAttack = MigVoiceAttack VoiceAttackAir = MigVoiceAttackAir VoiceGuard = MigVoiceAirPatrol SoundAmbient = MigAmbientLoop SoundDie = MigVoiceFalling UnitSpecificSounds VoiceCreate = MigVoiceCreate Afterburner = RaptorAfterburner VoiceGarrison = MigVoiceMove End ; *** ENGINEERING Parameters *** RadarPriority = UNIT KindOf = PRELOAD CAN_CAST_REFLECTIONS CAN_ATTACK SELECTABLE VEHICLE SCORE AIRCRAFT Body = ActiveBody ModuleTag_02 MaxHealth = 160.0 InitialHealth = 160.0 End Behavior = JetSlowDeathBehavior ModuleTag_03 FXOnGroundDeath = FX_JetOnGroundDeath OCLOnGroundDeath = OCL_MIGDeathFinalBlowUp DestructionDelay = 99999999 ; destruction will happen when we RollRate = 0.2 RollRateDelta = 100% ;each frame, rollrate = rollrate * rollrateDelta PitchRate = 0.0 FallHowFast = 110.0% ;Bigger is faster (can be over 100%,it's a fraction of gravity) FXInitialDeath = FX_JetDeathInitial OCLInitialDeath = OCL_MIGDeathInitial DelaySecondaryFromInitialDeath = 500 ; in milliseconds FXSecondary = FX_JetDeathSecondary OCLSecondary = OCL_MIGDeathSecondary FXHitGround = FX_JetDeathHitGround OCLHitGround = OCL_MIGDeathHitGround DelayFinalBlowUpFromHitGround = 200 ; in milliseconds FXFinalBlowUp = FX_JetDeathFinalBlowUp OCLFinalBlowUp = OCL_MIGDeathFinalBlowUp End Behavior = WeaponSetUpgrade ModuleTag_04 TriggeredBy = Upgrade_ChinaBlackNapalm End Behavior = PhysicsBehavior ModuleTag_05 Mass = 500.0 End Behavior = JetAIUpdate ModuleTag_06 OutOfAmmoDamagePerSecond = 10% ; amount of damage to take per SEC (not per frame) when out of ammo ; note that it's expressed as a percent of max health, not an absolute TakeoffSpeedForMaxLift = 100% ; smaller numbers give more lift sooner when taking off TakeoffPause = 500 MinHeight = 5 ReturnToBaseIdleTime = 10000 ; if idle for this long, return to base, even if not out of ammo End Locomotor = SET_NORMAL MIGLocomotor Locomotor = SET_TAXIING BasicJetTaxiLocomotor Behavior = FlammableUpdate ModuleTag_08 AflameDuration = 5000 ; If I catch fire, I'll burn for this long... AflameDamageAmount = 3 ; taking this much damage... AflameDamageDelay = 500 ; this often. End Behavior = TransitionDamageFX ModuleTag_09 ReallyDamagedParticleSystem1 = Bone:Smoke RandomBone:Yes Psys:SmokeSmallContinuous01 ReallyDamagedFXList1 = Loc: X:0 Y:0 Z:0 FXList:FX_MIGDamageTransition End Behavior = MaxHealthUpgrade ModuleTag_10 TriggeredBy = Upgrade_ChinaAircraftArmor AddMaxHealth = 40.0 ChangeType = ADD_CURRENT_HEALTH_TOO ;Choices are PRESERVE_RATIO, ADD_CURRENT_HEALTH_TOO, and SAME_CURRENTHEALTH End Geometry = Box GeometryIsSmall = Yes GeometryMajorRadius = 14.0 GeometryMinorRadius = 7.0 GeometryHeight = 5.0 Shadow = SHADOW_VOLUME Shadow = SHADOW_VOLUME ShadowSizeX = 89 ; minimum elevation angle above horizon. Used to limit shadow length End ;------------------------------------------------------------------------------ ;This is the MIG as it's crashing ;------------------------------------------------------------------------------ Object ChinaJetMIGHulk ; *** ART Parameters *** Draw = W3DModelDraw ModuleTag_01 DefaultConditionState Model = NVMIG_D1 End End ; ***DESIGN parameters *** EditorSorting = DEBRIS ; *** ENGINEERING Parameters *** KindOf = NO_COLLIDE HULK Behavior = PhysicsBehavior ModuleTag_03 Mass = 2.0 AllowBouncing = No KillWhenRestingOnGround = Yes End Behavior = LifetimeUpdate ModuleTag_04 MinLifetime = 1500 ; min lifetime in msec MaxLifetime = 1600 ; max lifetime in msec End Behavior = SlowDeathBehavior ModuleTag_05 SinkDelay = 1500 SinkRate = 2 ; in Dist/Sec DestructionDelay = 8000 End End ;------------------------------------------------------------------------------ Object NapalmMissile ; *** ART Parameters *** Draw = W3DModelDraw ModuleTag_01 OkToChangeModelColor = Yes DefaultConditionState Model = AVRaptor_M End End ; ***DESIGN parameters *** DisplayName = OBJECT:Missile EditorSorting = SYSTEM VisionRange = 0.0 ; Projectiles can't see, but superweapons *may need to* TransportSlotCount = 1 ; since Napalm Strike carries us as payload, not weapon ArmorSet Conditions = None Armor = ProjectileArmor DamageFX = None End ; *** ENGINEERING Parameters *** KindOf = PRELOAD CAN_CAST_REFLECTIONS PROJECTILE SMALL_MISSILE Body = ActiveBody ModuleTag_02 MaxHealth = 100.0 InitialHealth = 100.0 End ; ---- begin Projectile death behaviors Behavior = InstantDeathBehavior DeathModuleTag_01 DeathTypes = NONE +DETONATED ; we detonated normally. ; no FX, just quiet destroy ourselves End Behavior = InstantDeathBehavior DeathModuleTag_02 DeathTypes = NONE +LASERED ; shot down by laser. FX = FX_GenericMissileDisintegrate OCL = OCL_GenericMissileDisintegrate End Behavior = InstantDeathBehavior DeathModuleTag_03 DeathTypes = ALL -LASERED -DETONATED ; shot down by nonlaser. FX = FX_GenericMissileDeath End ; ---- end Projectile death behaviors Behavior = PhysicsBehavior ModuleTag_06 Mass = 1 End Behavior = MissileAIUpdate ModuleTag_07 TryToFollowTarget = Yes FuelLifetime = 10000 InitialVelocity = 75 ; in dist/sec IgnitionDelay = 30 IgnitionFX = FX_NapalmMissileIgnition End Locomotor = SET_NORMAL NapalmMissileLocomotor Geometry = Sphere GeometryIsSmall = Yes GeometryMajorRadius = 1.0 End ;------------------------------------------------------------------------------ Object ChinaJetMIGNapalmStriker ; *** ART Parameters *** Draw = W3DModelDraw ModuleTag_01 DefaultConditionState Model = NVMig WeaponLaunchBone = PRIMARY WeaponA ;ParticleSysBone = Engine01 JetExhaust ParticleSysBone = Wingtip01 JetContrail ParticleSysBone = Wingtip02 JetContrail HideSubObject = BurnerFX01 BurnerFX02 End ConditionState = REALLYDAMAGED Model = NVMig_d ;ParticleSysBone = Engine01 JetExhaust ParticleSysBone = Wingtip01 JetContrail ParticleSysBone = Wingtip02 JetContrail End AliasConditionState = RUBBLE OkToChangeModelColor = Yes End ; ***DESIGN parameters *** DisplayName = OBJECT:MIG EditorSorting = SYSTEM Side = China TransportSlotCount = 0 ;how many "slots" we take in a transport (0 == not transportable) VisionRange = 300.0 ShroudClearingRange = 300 Prerequisites Object = ChinaAirfield End WeaponSet Conditions = None Weapon = PRIMARY NapalmStrikeWeapon End ;WeaponSet ; Conditions = PLAYER_UPGRADE ; Weapon = PRIMARY BlackNapalmMissileWeapon ;End ArmorSet Conditions = None Armor = AirplaneArmor DamageFX = None End CommandSet = ChinaJetMIGCommandSet ; *** AUDIO Parameters *** SoundAmbient = F15MoveLoop SoundAmbientRubble = NoSound ; *** ENGINEERING Parameters *** RadarPriority = UNIT KindOf = PRELOAD CAN_CAST_REFLECTIONS CAN_ATTACK VEHICLE SCORE AIRCRAFT IGNORED_IN_GUI Body = ActiveBody ModuleTag_02 MaxHealth = 200.0 InitialHealth = 200.0 End Behavior = SpecialPowerCompletionDie ModuleTag_03 SpecialPowerTemplate = SuperweaponNapalmStrike End Behavior = JetSlowDeathBehavior ModuleTag_04 DestructionDelay = 99999999; destruction will happen when we RollRate = 0.2 RollRateDelta = 100% ;each frame, rollrate = rollrate * rollrateDelta PitchRate = 0.0 FallHowFast = 110.0% ;Bigger is faster (can be over 100%,it's a fraction of gravity) FXInitialDeath = FX_JetDeathInitial OCLInitialDeath = OCL_MIGDeathInitial DelaySecondaryFromInitialDeath = 500 ; in milliseconds FXSecondary = FX_JetDeathSecondary OCLSecondary = OCL_MIGDeathSecondary FXHitGround = FX_JetDeathHitGround OCLHitGround = OCL_MIGDeathHitGround DelayFinalBlowUpFromHitGround = 200 ; in milliseconds FXFinalBlowUp = FX_JetDeathFinalBlowUp OCLFinalBlowUp = OCL_MIGDeathFinalBlowUp End Behavior = DeliverPayloadAIUpdate ModuleTag_06 DoorDelay = 0 End Locomotor = SET_NORMAL MIGLocomotor ;Behavior = WeaponSetUpgrade ModuleTag_07 ; TriggeredBy = Upgrade_ChinaBlackNapalm ;End Behavior = TransportContain ModuleTag_08 Slots = 100 ; hey, it's a BIG transport ScatterNearbyOnExit = No OrientLikeContainerOnExit = Yes KeepContainerVelocityOnExit = Yes ExitPitchRate = 30 ExitBone = WeaponA AllowInsideKindOf = PROJECTILE DoorOpenTime = 0 ; this prevents the Contain module from messing with the doors, since we want DeliverPayload to handle 'em NumberOfExitPaths = 0 DestroyRidersWhoAreNotFreeToExit = Yes ; 'destroy' as opposed to 'kill' End Behavior = PhysicsBehavior ModuleTag_09 Mass = 50.0 End Behavior = FlammableUpdate ModuleTag_21 AflameDuration = 5000 ; If I catch fire, I'll burn for this long... AflameDamageAmount = 3 ; taking this much damage... AflameDamageDelay = 500 ; this often. End Geometry = Cylinder GeometryIsSmall = Yes GeometryMajorRadius = 7.0 GeometryMinorRadius = 7.0 GeometryHeight = 7.0 Shadow = SHADOW_VOLUME ShadowSizeX = 89 ; minimum elevation angle above horizon. Used to limit shadow length End ;------------------------------------------------------------------------------ Object ChinaJetMIG_CinematicVersion ; *** ART Parameters *** SelectPortrait = SNMig_L ButtonImage = SNMig UpgradeCameo1 = Upgrade_ChinaAircraftArmor UpgradeCameo2 = Upgrade_ChinaBlackNapalm ;UpgradeCameo3 = NONE ;UpgradeCameo4 = NONE ;UpgradeCameo5 = NONE Draw = W3DModelDraw ModuleTag_01 OkToChangeModelColor = Yes DefaultConditionState Model = NVMIG HideSubObject = BurnerFX01 BurnerFX02 WeaponLaunchBone = PRIMARY WeaponA End ConditionState = JETEXHAUST ParticleSysBone = Wingtip01 JetContrail ParticleSysBone = Wingtip02 JetContrail End ConditionState = JETEXHAUST JETAFTERBURNER ShowSubObject = BurnerFX01 BurnerFX02 ParticleSysBone = Exhaust01 JetExhaust ParticleSysBone = Exhaust02 JetExhaust ParticleSysBone = Wingtip01 JetContrail ParticleSysBone = Wingtip02 JetContrail End ConditionState = REALLYDAMAGED Model = NVMIG_D ParticleSysBone = Wingtip01 JetContrail ParticleSysBone = Wingtip02 JetContrail End ConditionState = RUBBLE Model = NVMIG_D End ConditionState = REALLYDAMAGED JETEXHAUST Model = NVMIG_D ParticleSysBone = Wingtip01 JetContrail ParticleSysBone = Wingtip02 JetContrail End ConditionState = REALLYDAMAGED JETEXHAUST JETAFTERBURNER Model = NVMIG_D ShowSubObject = BurnerFX01 BurnerFX02 ParticleSysBone = Engine01 JetExhaust ParticleSysBone = Engine02 JetExhaust ParticleSysBone = Wingtip01 JetContrail ParticleSysBone = Wingtip02 JetContrail End ConditionState = RUBBLE JETEXHAUST JETAFTERBURNER ; @todo srj -- model missing ;Model = NVMIG_D1B Model = NVMIG_D ;HideSubObject is needed cause there're inherited from default condition state HideSubObject = None ShowSubObject = None ParticleSysBone = Engine01 JetExhaust ParticleSysBone = Engine02 JetExhaust ParticleSysBone = Wingtip01 JetContrail ParticleSysBone = Wingtip02 JetContrail End End ; ***DESIGN parameters *** DisplayName = OBJECT:MIG EditorSorting = VEHICLE Side = China TransportSlotCount = 0 ;how many "slots" we take in a transport (0 == not transportable) VisionRange = 300.0 ShroudClearingRange = 300.0 Prerequisites Object = ChinaAirfield End WeaponSet Conditions = None Weapon = PRIMARY NapalmMissileWeapon AutoChooseSources = PRIMARY NONE End WeaponSet Conditions = PLAYER_UPGRADE Weapon = PRIMARY BlackNapalmMissileWeapon AutoChooseSources = PRIMARY NONE End ArmorSet Conditions = None Armor = AirplaneArmor DamageFX = None End BuildCost = 1200 BuildTime = 15 ExperienceValue = 50 50 100 150 ;Experience point value at each level ExperienceRequired = 0 100 200 400 ;Experience points needed to gain each level IsTrainable = Yes ;Can gain experience CrusherLevel = 1 ;What can I crush?: 1 = infantry, 2 = trees, 3 = vehicles CrushableLevel = 2 ;What am I?: 0 = for infantry, 1 = for trees, 2 = general vehicles CommandSet = ChinaJetMIGCommandSet ; *** AUDIO Parameters *** VoiceSelect = MigVoiceSelect VoiceMove = MigVoiceMove VoiceAttack = MigVoiceAttack VoiceAttackAir = MigVoiceAttackAir VoiceGuard = MigVoiceAirPatrol SoundMoveLoop = MigAmbientLoop ; don't want sound while sitting at airfield SoundAmbient = NoSound SoundAmbientRubble = NoSound SoundDie = MigVoiceFalling UnitSpecificSounds VoiceCreate = MigVoiceCreate Afterburner = RaptorAfterburner VoiceGarrison = MigVoiceMove End ; *** ENGINEERING Parameters *** RadarPriority = UNIT KindOf = PRELOAD CAN_CAST_REFLECTIONS CAN_ATTACK SELECTABLE VEHICLE SCORE AIRCRAFT Body = ActiveBody ModuleTag_02 MaxHealth = 160.0 InitialHealth = 160.0 End Behavior = JetSlowDeathBehavior ModuleTag_03 FXOnGroundDeath = FX_JetOnGroundDeath OCLOnGroundDeath = OCL_MIGDeathFinalBlowUp_CinematicVersion DestructionDelay = 99999999 ; destruction will happen when we RollRate = 0.2 RollRateDelta = 100% ;each frame, rollrate = rollrate * rollrateDelta PitchRate = 0.0 FallHowFast = 110.0% ;Bigger is faster (can be over 100%,it's a fraction of gravity) FXInitialDeath = FX_JetDeathInitial OCLInitialDeath = OCL_MIGDeathInitial DelaySecondaryFromInitialDeath = 500 ; in milliseconds FXSecondary = FX_JetDeathSecondary OCLSecondary = OCL_MIGDeathSecondary FXHitGround = FX_JetDeathHitGround OCLHitGround = OCL_MIGDeathHitGround DelayFinalBlowUpFromHitGround = 200 ; in milliseconds FXFinalBlowUp = FX_JetDeathFinalBlowUp_CinematicVersion OCLFinalBlowUp = OCL_MIGDeathFinalBlowUp_CinematicVersion End Behavior = WeaponSetUpgrade ModuleTag_04 TriggeredBy = Upgrade_ChinaBlackNapalm End Behavior = PhysicsBehavior ModuleTag_05 Mass = 500.0 End Behavior = JetAIUpdate ModuleTag_06 OutOfAmmoDamagePerSecond = 10% ; amount of damage to take per SEC (not per frame) when out of ammo ; note that it's expressed as a percent of max health, not an absolute TakeoffSpeedForMaxLift = 100% ; smaller numbers give more lift sooner when taking off TakeoffPause = 500 MinHeight = 5 ReturnToBaseIdleTime = 10000 ; if idle for this long, return to base, even if not out of ammo End Locomotor = SET_NORMAL MIGLocomotor Locomotor = SET_TAXIING BasicJetTaxiLocomotor Behavior = FlammableUpdate ModuleTag_08 AflameDuration = 5000 ; If I catch fire, I'll burn for this long... AflameDamageAmount = 3 ; taking this much damage... AflameDamageDelay = 500 ; this often. End Behavior = TransitionDamageFX ModuleTag_09 ReallyDamagedParticleSystem1 = Bone:Smoke RandomBone:Yes Psys:SmokeSmallContinuous01 ReallyDamagedFXList1 = Loc: X:0 Y:0 Z:0 FXList:FX_MIGDamageTransition End Behavior = MaxHealthUpgrade ModuleTag_10 TriggeredBy = Upgrade_ChinaAircraftArmor AddMaxHealth = 40.0 ChangeType = ADD_CURRENT_HEALTH_TOO ;Choices are PRESERVE_RATIO, ADD_CURRENT_HEALTH_TOO, and SAME_CURRENTHEALTH End Geometry = Box GeometryIsSmall = Yes GeometryMajorRadius = 14.0 GeometryMinorRadius = 7.0 GeometryHeight = 5.0 Shadow = SHADOW_VOLUME Shadow = SHADOW_VOLUME ShadowSizeX = 89 ; minimum elevation angle above horizon. Used to limit shadow length End ;------------------------------------------------------------------------------ Object AmericaInfantryRanger ; *** ART Parameters *** SelectPortrait = SARanger_L ButtonImage = SARanger UpgradeCameo1 = Upgrade_AmericaRangerFlashBangGrenade UpgradeCameo2 = Upgrade_AmericaAdvancedTraining UpgradeCameo3 = Upgrade_InfantryCaptureBuilding ;UpgradeCameo4 = NONE ;UpgradeCameo5 = NONE Draw = W3DModelDraw ModuleTag_01 OkToChangeModelColor = Yes ; this says "we don't use these condition states at all, so completely ; ignore them for purposes of matchmaking"... this is useful to help ; reduce the number of AliasConditionState clauses you must add in ; order to avoid ambiguity in some cases. IgnoreConditionStates = PREATTACK_A FIRING_A BETWEEN_FIRING_SHOTS_A RELOADING_A ; --- Idle DefaultConditionState Model = AIRngr_SKN IdleAnimation = AIRngr_SKL.AIRngr_STA 0 35 IdleAnimation = AIRngr_SKL.AIRngr_IDA IdleAnimation = AIRngr_SKL.AIRngr_IDB AnimationMode = ONCE WeaponFireFXBone = PRIMARY Muzzle WeaponMuzzleFlash = PRIMARY MuzzleFX WeaponFireFXBone = SECONDARY Muzzle WeaponLaunchBone = SECONDARY Muzzle TransitionKey = TRANS_Stand End ConditionState = REALLYDAMAGED IdleAnimation = AIRngr_SKL.AIRngr_STB 0 35 IdleAnimation = AIRngr_SKL.AIRngr_IDC IdleAnimation = AIRngr_SKL.AIRngr_IDD AnimationMode = ONCE TransitionKey = TRANS_StandInjured End TransitionState = TRANS_Stand TRANS_StandInjured Animation = AIRngr_SKL.AIRngr_SA2SB AnimationMode = ONCE End ; --- attacking (Machine Gun) ConditionState = USING_WEAPON_A Animation = AIRngr_SKL.AIRngr_ATA AnimationMode = LOOP TransitionKey = TRANS_FiringA End ConditionState = USING_WEAPON_A REALLYDAMAGED Animation = AIRngr_SKL.AIRngr_ATA2 AnimationMode = LOOP TransitionKey = TRANS_FiringAInjured End TransitionState = TRANS_FiringA TRANS_FiringAInjured Animation = AIRngr_SKL.AIRngr_A2WAA AnimationMode = ONCE End TransitionState = TRANS_Stand TRANS_FiringA Animation = AIRngr_SKL.AIRngr_ATAST AnimationMode = ONCE AnimationSpeedFactorRange = 4 4 End TransitionState = TRANS_FiringA TRANS_Stand Animation = AIRngr_SKL.AIRngr_ATAED AnimationMode = ONCE AnimationSpeedFactorRange = 4 4 End TransitionState = TRANS_StandInjured TRANS_FiringAInjured Animation = AIRngr_SKL.AIRngr_S2WAA AnimationMode = ONCE AnimationSpeedFactorRange = 4 4 End TransitionState = TRANS_FiringAInjured TRANS_StandInjured Animation = AIRngr_SKL.AIRngr_WAA2S AnimationMode = ONCE AnimationSpeedFactorRange = 4 4 End TransitionState = TRANS_Stand TRANS_Move Animation = AIRngr_SKL.AIRngr_STA2RNA AnimationMode = ONCE End ; --- attacking (Grenade Launcher) ConditionState = PREATTACK_B Animation = AIRngr_SKL.AIRngr_ATBA AnimationMode = ONCE TransitionKey = TRANS_FiringB End AliasConditionState = PREATTACK_B MOVING AliasConditionState = PREATTACK_B FIRING_B AliasConditionState = PREATTACK_B BETWEEN_FIRING_SHOTS_B ConditionState = FIRING_B Animation = AIRngr_SKL.AIRngr_ATBB AnimationMode = ONCE TransitionKey = TRANS_FiringB End ConditionState = BETWEEN_FIRING_SHOTS_B Animation = AIRngr_SKL.AIRngr_ATBB AnimationMode = MANUAL Flags = START_FRAME_LAST TransitionKey = TRANS_FiringB WaitForStateToFinishIfPossible = TRANS_FiringB End AliasConditionState = RELOADING_B TransitionState = TRANS_Stand TRANS_FiringB Animation = AIRngr_SKL.AIRngr_ATBST1 AnimationMode = ONCE End TransitionState = TRANS_FiringB TRANS_Stand Animation = AIRngr_SKL.AIRngr_ATBST2 AnimationMode = ONCE End ConditionState = PREATTACK_B REALLYDAMAGED Animation = AIRngr_SKL.AIRngr_ATB2A AnimationMode = ONCE TransitionKey = TRANS_FiringBInjured End AliasConditionState = PREATTACK_B MOVING REALLYDAMAGED AliasConditionState = PREATTACK_B FIRING_B REALLYDAMAGED AliasConditionState = PREATTACK_B BETWEEN_FIRING_SHOTS_B REALLYDAMAGED ConditionState = FIRING_B REALLYDAMAGED Animation = AIRngr_SKL.AIRngr_ATB2B AnimationMode = ONCE TransitionKey = TRANS_FiringBInjured End ConditionState = BETWEEN_FIRING_SHOTS_B REALLYDAMAGED Animation = AIRngr_SKL.AIRngr_ATB2B AnimationMode = MANUAL Flags = START_FRAME_LAST TransitionKey = TRANS_FiringBInjured WaitForStateToFinishIfPossible = TRANS_FiringBInjured End AliasConditionState = RELOADING_B REALLYDAMAGED TransitionState = TRANS_StandInjured TRANS_FiringBInjured Animation = AIRngr_SKL.AIRngr_ATB2ST1 AnimationMode = ONCE End TransitionState = TRANS_FiringBInjured TRANS_StandInjured Animation = AIRngr_SKL.AIRngr_ATB2ST2 AnimationMode = ONCE End ; -- cross-attack transitions TransitionState = TRANS_FiringA TRANS_FiringB Animation = AIRngr_SKL.AIRngr_ATA2AB AnimationMode = ONCE AnimationSpeedFactorRange = 4 4 End TransitionState = TRANS_FiringB TRANS_FiringA Animation = AIRngr_SKL.AIRngr_ATA2AB AnimationMode = ONCE_BACKWARDS AnimationSpeedFactorRange = 4 4 End ; --- moving ConditionState = MOVING Animation = AIRngr_SKL.AIRngr_RNA 30 AnimationMode = LOOP Flags = RANDOMSTART TransitionKey = TRANS_Move ParticleSysBone = None InfantryDustTrails End AliasConditionState = MOVING ATTACKING ConditionState = MOVING REALLYDAMAGED Animation = AIRngr_SKL.AIRngr_RNB 30 AnimationMode = LOOP Flags = RANDOMSTART TransitionKey = TRANS_Move End AliasConditionState = MOVING REALLYDAMAGED ATTACKING ; --- dying anims ConditionState = DYING Animation = AIRngr_SKL.AIRngr_DTA Animation = AIRngr_SKL.AIRngr_DTB AnimationMode = ONCE TransitionKey = None End TransitionState = TRANS_Dying TRANS_Flailing Animation = AIRngr_SKL.AIRngr_ADTF1 AnimationMode = ONCE End ConditionState = DYING EXPLODED_FLAILING Animation = AIRngr_SKL.AIRngr_ADTF2 AnimationMode = LOOP TransitionKey = TRANS_Flailing End ConditionState = DYING EXPLODED_BOUNCING Animation = AIRngr_SKL.AIRngr_ADTF3 AnimationMode = ONCE TransitionKey = None End AliasConditionState = DYING SPLATTED ; --- cheering ConditionState = SPECIAL_CHEERING Animation = AIRngr_SKL.AIRngr_CHA AnimationMode = LOOP End ConditionState = SPECIAL_CHEERING REALLYDAMAGED Animation = AIRngr_SKL.AIRngr_CHB AnimationMode = LOOP End ; ----- PARACHUTING ANIMATIONS ConditionState = FREEFALL Animation = AIRngr_SKL.AIRngr_PFL AnimationMode = LOOP TransitionKey = TRANS_Falling End AliasConditionState = FREEFALL REALLYDAMAGED AliasConditionState = FREEFALL DYING ConditionState = PARACHUTING Animation = AIRngr_SKL.AIRngr_PHG AnimationMode = LOOP Flags = PRISTINE_BONE_POS_IN_FINAL_FRAME ; our bone positions should come from the last frame, rather than the first TransitionKey = TRANS_Chute End AliasConditionState = PARACHUTING REALLYDAMAGED AliasConditionState = PARACHUTING DYING TransitionState = TRANS_Falling TRANS_Chute Animation = AIRngr_SKL.AIRngr_POP AnimationMode = ONCE Flags = PRISTINE_BONE_POS_IN_FINAL_FRAME ; our bone positions should come from the last frame, rather than the first End TransitionState = TRANS_Chute TRANS_Stand Animation = AIRngr_SKL.AIRngr_PTD AnimationMode = ONCE End TransitionState = TRANS_Chute TRANS_StandInjured Animation = AIRngr_SKL.AIRngr_PTD AnimationMode = ONCE End ; ----- SURRENDER ANIMATIONS ; surrender is cut. sorry. (srj) ; ConditionState = SURRENDER ; Animation = AIRngr_SKL.AIRngr_SST ; AnimationMode = ONCE ; TransitionKey = TRANS_SurrenderKneeling ; End ; AliasConditionState = SURRENDER REALLYDAMAGED ; ConditionState = SURRENDER MOVING ; Animation = AIRngr_SKL.AIRngr_SWKB ; AnimationMode = ONCE ; TransitionKey = TRANS_SurrenderMoving ; End ; AliasConditionState = SURRENDER MOVING REALLYDAMAGED ; TransitionState = TRANS_Stand TRANS_SurrenderKneeling ; Animation = AIRngr_SKL.AIRngr_SUR ; AnimationMode = ONCE ; End ; ------- Bldg-capture ConditionState = UNPACKING Model = AIRngr_F_SKN Animation = AIRngr_F_SKL.AIRngr_F_FDP1 AnimationMode = ONCE End AliasConditionState = UNPACKING REALLYDAMAGED ConditionState = RAISING_FLAG Model = AIRngr_F_SKN Animation = AIRngr_F_SKL.AIRngr_F_FDP2 AnimationMode = ONCE TransitionKey = TRANS_Raising End AliasConditionState = RAISING_FLAG REALLYDAMAGED ConditionState = PACKING Model = AIRngr_F_SKN Animation = AIRngr_F_SKL.AIRngr_F_FDP1 AnimationMode = ONCE_BACKWARDS Flags = START_FRAME_LAST TransitionKey = TRANS_Packing End AliasConditionState = PACKING REALLYDAMAGED TransitionState = TRANS_Raising TRANS_Packing Model = AIRngr_F_SKN Animation = AIRngr_F_SKL.AIRngr_F_FDP2 AnimationMode = ONCE_BACKWARDS Flags = START_FRAME_LAST End ; --- RAPPELLING ANIMATIONS ConditionState = RAPPELLING Animation = AIRngr_SKL.AIRngr_RPL1 ;30 AnimationMode = LOOP Flags = RANDOMSTART TransitionKey = TRANS_Rappelling End AliasConditionState = MOVING RAPPELLING TransitionState = TRANS_Rappelling TRANS_Stand Animation = AIRngr_SKL.AIRngr_RPL2 AnimationMode = ONCE End TransitionState = TRANS_Rappelling TRANS_StandInjured Animation = AIRngr_SKL.AIRngr_RPL2 AnimationMode = ONCE End End ; ***DESIGN parameters *** DisplayName = OBJECT:Ranger Side = America EditorSorting = INFANTRY TransportSlotCount = 1 ;how many "slots" we take in a transport (0 == not transportable) WeaponSet Conditions = None Weapon = PRIMARY RangerAdvancedCombatRifle End WeaponSet Conditions = PLAYER_UPGRADE Weapon = PRIMARY RangerAdvancedCombatRifle Weapon = SECONDARY RangerFlashBangGrenadeWeapon AutoChooseSources = PRIMARY FROM_SCRIPT FROM_AI AutoChooseSources = SECONDARY FROM_SCRIPT FROM_AI End ArmorSet Conditions = None Armor = HumanArmor DamageFX = InfantryDamageFX End VisionRange = 100 ShroudClearingRange = 400 Prerequisites Object = AmericaBarracks End BuildCost = 225 BuildTime = 5.0 ;in seconds ExperienceValue = 20 20 40 60 ;Experience point value at each level ExperienceRequired = 0 40 60 120 ;Experience points needed to gain each level IsTrainable = Yes ;Can gain experience CrushableLevel = 0 ;What am I?: 0 = for infantry, 1 = for trees, 2 = general vehicles CommandSet = AmericaInfantryRangerCommandSet ; *** AUDIO Parameters *** VoiceSelect = RangerVoiceSelect VoiceMove = RangerVoiceMove VoiceGuard = RangerVoiceMove VoiceAttack = RangerVoiceAttack SoundDie = RangerVoiceDie VoiceFear = RangerVoiceFear ; surrender is cut. sorry. (srj) ; VoiceSurrender = RangerVoiceSurrender VoiceTaskComplete = RangerVoiceCaptureComplete UnitSpecificSounds VoiceEnter = RangerVoiceMove VoiceEnterHostile = RangerVoiceMove VoiceGarrison = RangerVoiceGarrison VoiceCreate = RangerVoiceCreate VoiceSubdue = RangerVoiceSubdue VoiceClearBuilding = RangerVoiceClearBuilding VoiceGetHealed = RangerVoiceMove VoicePrimaryWeaponMode = RangerVoiceModeGun VoiceSecondaryWeaponMode = RangerVoiceModeFlashBang End UnitSpecificFX ; These have the syntax of SomeNameSomewhereInCode = SomeNameSomewhereInLookupINIs CombatDropKillFX = FX_RangerCombatDropKill End ; *** ENGINEERING Parameters *** RadarPriority = UNIT KindOf = PRELOAD SELECTABLE CAN_ATTACK ATTACK_NEEDS_LINE_OF_SIGHT CAN_CAST_REFLECTIONS INFANTRY CAN_RAPPEL SCORE Behavior = CommandButtonHuntUpdate ModuleTag_02 End Body = ActiveBody ModuleTag_03 MaxHealth = 180.0 InitialHealth = 180.0 End Behavior = ExperienceScalarUpgrade ModuleTag_04 TriggeredBy = Upgrade_AmericaAdvancedTraining AddXPScalar = 1.0 ;Increases experience gained by an additional 100% End Behavior = AutoFindHealingUpdate ModuleTag_05 ; This update will have the unit go to a healing station if injured. jba ScanRate = 1000 ; once a second. ScanRange = 300 ; NeverHeal = 0.85 ; don't heal if we are > 85% healthy. AlwaysHeal = 0.25 ; if we get below 25%, find healing right away. End Behavior = AIUpdateInterface ModuleTag_06 AutoAcquireEnemiesWhenIdle = Yes End Locomotor = SET_NORMAL BasicHumanLocomotor Behavior = PhysicsBehavior ModuleTag_07 Mass = 5.0 End Behavior = ProductionUpdate ModuleTag_08 ; nothing End Behavior = CommandButtonHuntUpdate ModuleTag_09 ; allows use of command button hunt script with this unit. End Behavior = WeaponSetUpgrade ModuleTag_10 TriggeredBy = Upgrade_AmericaRangerFlashBangGrenade End ; --- begin Death modules --- Behavior = SlowDeathBehavior ModuleTag_Death01 DeathTypes = ALL -CRUSHED -SPLATTED -EXPLODED -BURNED -POISONED -POISONED_BETA SinkDelay = 3000 SinkRate = 0.5 ; in Dist/Sec DestructionDelay = 8000 FX = INITIAL FX_GIDie End Behavior = SlowDeathBehavior ModuleTag_Death02 DeathTypes = NONE +CRUSHED +SPLATTED SinkDelay = 3000 SinkRate = 0.5 ; in Dist/Sec DestructionDelay = 8000 FX = INITIAL FX_GIDieCrushed End Behavior = SlowDeathBehavior ModuleTag_Death03 DeathTypes = NONE +EXPLODED SinkDelay = 3000 SinkRate = 0.5 ; in Dist/Sec DestructionDelay = 8000 FX = INITIAL FX_GIDie FlingForce = 8 FlingForceVariance = 3 FlingPitch = 60 FlingPitchVariance = 10 End Behavior = SlowDeathBehavior ModuleTag_Death04 DeathTypes = NONE +BURNED DestructionDelay = 0 FX = INITIAL FX_GIDie OCL = INITIAL OCL_FlamingInfantry End Behavior = SlowDeathBehavior ModuleTag_Death05 DeathTypes = NONE +POISONED DestructionDelay = 0 FX = INITIAL FX_GIDie OCL = INITIAL OCL_ToxicInfantry End Behavior = SlowDeathBehavior ModuleTag_Death06 ; don't forget to give it a new, unique module tag DeathTypes = NONE +POISONED_BETA DestructionDelay = 0 FX = INITIAL FX_GIDie OCL = INITIAL OCL_ToxicInfantryBeta ;you'll have to create this OCL and make it use the blue guys instead of green ones End ; --- end Death modules --- Behavior = SquishCollide ModuleTag_12 ;nothing End Behavior = PoisonedBehavior ModuleTag_17 PoisonDamageInterval = 100 ; Every this many msec I will retake the poison damage dealt me... PoisonDuration = 3000 ; ... for this long after last hit by poison damage End Behavior = SpecialAbility ModuleTag_18 SpecialPowerTemplate = SpecialAbilityRangerCaptureBuilding UpdateModuleStartsAttack = Yes StartsPaused = Yes ; Unpaused by upgrade module InitiateSound = RangerVoiceCapture End Behavior = SpecialAbilityUpdate ModuleTag_19 SpecialPowerTemplate = SpecialAbilityRangerCaptureBuilding StartAbilityRange = 5.0 UnpackTime = 3000 ; (changing this will scale anim speed) PreparationTime = 20000 ; time to complete hack once prepared (changing this will scale anim speed) PackTime = 2000 ; (changing this will scale anim speed) DoCaptureFX = Yes AwardXPForTriggering = 15 ;SkillPointsForTriggering = ??? -- Dustin, fill me out if you want different balance values. End Behavior = UnpauseSpecialPowerUpgrade ModuleTag_20 SpecialPowerTemplate = SpecialAbilityRangerCaptureBuilding TriggeredBy = Upgrade_InfantryCaptureBuilding End Geometry = CYLINDER GeometryMajorRadius = 7.0 GeometryMinorRadius = 7.0 GeometryHeight = 13.0 GeometryIsSmall = Yes Shadow = SHADOW_DECAL ShadowSizeX = 14; ShadowSizeY = 14; ShadowTexture = ShadowI; BuildCompletion = APPEARS_AT_RALLY_POINT End ;------------------------------------------------------------------------------ Object AmericaInfantryMissileDefender ; *** ART Parameters *** SelectPortrait = SAMissleDefender_L ButtonImage = SAMissleDefender UpgradeCameo1 = Upgrade_AmericaAdvancedTraining ;UpgradeCameo2 = NONE ;UpgradeCameo3 = NONE ;UpgradeCameo4 = NONE ;UpgradeCameo5 = NONE Draw = W3DModelDraw ModuleTag_01 OkToChangeModelColor = Yes ;***NOTE*** ;A little history -- the MissileDefender now uses the assets of the TankHunter. ;The TH uses assets of the GLA tunnel defender, and the TD uses assets of the NEW ;MD. It was a design/art/code decision because the new missile defender animations ;don't suit that of a mobile/offensive unit with packing and unpacking. DefaultConditionState Model = NITHNT_SKN IdleAnimation = NITHNT_SKL.NITHNT_STA 0 30 IdleAnimation = NITHNT_SKL.NITHNT_IDA IdleAnimation = NITHNT_SKL.NITHNT_IDB AnimationMode = ONCE AnimationSpeedFactorRange = 0.8 1.2 TransitionKey = TRANS_Stand WeaponMuzzleFlash = PRIMARY MuzzleFX WeaponFireFXBone = PRIMARY Muzzle WeaponLaunchBone = PRIMARY Muzzle WeaponLaunchBone = SECONDARY Muzzle End AliasConditionState = REALLYDAMAGED ConditionState = FIRING_A Animation = NITHNT_SKL.NITHNT_ATA AnimationMode = ONCE TransitionKey = TRANS_START_FIRING End AliasConditionState = FIRING_A REALLYDAMAGED ConditionState = BETWEEN_FIRING_SHOTS_A Animation = NITHNT_SKL.NITHNT_STA AnimationMode = ONCE ; this is basically a trick: this guy has a nontrivial animation for firing, ; and a long recycle time between shots. we want him to finish his fire animation ; (unless he's ordered to do something else), so this is just a handy trick that ; says, "if the previous state had this transition key, allow it to finish before ; switching to us, if possible". WaitForStateToFinishIfPossible = TRANS_START_FIRING End AliasConditionState = BETWEEN_FIRING_SHOTS_A REALLYDAMAGED ConditionState = MOVING Animation = NITHNT_SKL.NITHNT_RNA 20 AnimationMode = LOOP Flags = RANDOMSTART TransitionKey = None ParticleSysBone = None InfantryDustTrails End AliasConditionState = MOVING REALLYDAMAGED ConditionState = RELOADING_A Animation = NITHNT_SKL.NITHNT_ATA 10 AnimationMode = ONCE ;WeaponLaunchBone = PRIMARY WeaponA End AliasConditionState = MOVING RELOADING_A AliasConditionState = MOVING RELOADING_A REALLYDAMAGED ConditionState = DYING Animation = NITHNT_SKL.NITHNT_DTA Animation = NITHNT_SKL.NITHNT_DTB AnimationSpeedFactorRange = 0.9 1.25 AnimationMode = ONCE TransitionKey = TRANS_Dying End TransitionState = TRANS_Dying TRANS_Flailing Animation = NITHNT_SKL.NITHNT_ADTA1 AnimationMode = ONCE End ConditionState = DYING EXPLODED_FLAILING Animation = NITHNT_SKL.NITHNT_ADTA2 AnimationMode = LOOP TransitionKey = TRANS_Flailing End ConditionState = DYING EXPLODED_BOUNCING Animation = NITHNT_SKL.NITHNT_ADTA3 AnimationMode = ONCE TransitionKey = None End ;PARACHUTING ANIMATIONS ConditionState = FREEFALL Animation = NITHNT_SKL.NITHNT_PFL AnimationMode = LOOP TransitionKey = TRANS_Falling End AliasConditionState = FREEFALL REALLYDAMAGED AliasConditionState = FREEFALL DYING ConditionState = PARACHUTING Animation = NITHNT_SKL.NITHNT_PHG AnimationMode = LOOP Flags = PRISTINE_BONE_POS_IN_FINAL_FRAME ; our bone positions should come from the last frame, rather than the first TransitionKey = TRANS_Chute End AliasConditionState = PARACHUTING REALLYDAMAGED AliasConditionState = PARACHUTING DYING TransitionState = TRANS_Falling TRANS_Chute Animation = NITHNT_SKL.NITHNT_POP AnimationMode = ONCE Flags = PRISTINE_BONE_POS_IN_FINAL_FRAME ; our bone positions should come from the last frame, rather than the first End TransitionState = TRANS_Chute TRANS_Stand Animation = NITHNT_SKL.NITHNT_PTD AnimationMode = ONCE End ;SURRENDER ANIMATIONS ; surrender is cut. sorry. (srj) ; ConditionState = SURRENDER ; Animation = NITHNT_SKL.NITHNT_SST ; AnimationMode = ONCE ; TransitionKey = TRANS_SurrenderKneeling ; End ; AliasConditionState = SURRENDER REALLYDAMAGED ; ;ConditionState = SURRENDER MOVING ; ; Animation = NITHNT_SKL.NITHNT_SWKB ; ; AnimationMode = ONCE ; ; TransitionKey = TRANS_SurrenderMoving ; ;End ; TransitionState = TRANS_Stand TRANS_SurrenderKneeling ; Animation = NITHNT_SKL.NITHNT_SUR ; AnimationMode = ONCE ; End End ; ***DESIGN parameters *** DisplayName = OBJECT:MissileTeam Side = America EditorSorting = INFANTRY TransportSlotCount = 1 ;how many "slots" we take in a transport (0 == not transportable) WeaponSet Conditions = None Weapon = PRIMARY MissileDefenderMissileWeapon Weapon = SECONDARY MissileDefenderLaserGuidedMissileWeapon ;Controlled by special ability AutoChooseSources = PRIMARY FROM_PLAYER FROM_SCRIPT FROM_AI AutoChooseSources = SECONDARY NONE End ArmorSet Conditions = None Armor = HumanArmor DamageFX = InfantryDamageFX End VisionRange = 150 ShroudClearingRange = 300 Prerequisites Object = AmericaBarracks End BuildCost = 300 BuildTime = 5.0 ;in seconds ExperienceValue = 20 20 40 60 ;Experience point value at each level ExperienceRequired = 0 100 200 400 ;Experience points needed to gain each level IsTrainable = Yes ;Can gain experience CrushableLevel = 0 ;What am I?: 0 = for infantry, 1 = for trees, 2 = general vehicles CommandSet = AmericaInfantryMissileDefenderCommandSet ; *** AUDIO Parameters *** VoiceSelect = MissileDefenderVoiceSelect VoiceMove = MissileDefenderVoiceMove VoiceGuard = MissileDefenderVoiceMove VoiceAttack = MissileDefenderVoiceAttack VoiceAttackAir = MissileDefenderVoiceAttack SoundDie = MissileDefenderVoiceDie SoundDieFire = DieByFireUSA SoundDieToxin = DieByToxinUSA ; surrender is cut. sorry. (srj) ; VoiceSurrender = MissileDefenderVoiceSurrender VoiceFear = MissileDefenderVoiceFear UnitSpecificSounds VoiceGarrison = MissileDefenderVoiceGarrison VoiceCreate = MissileDefenderVoiceCreate VoiceEnter = MissileDefenderVoiceMove VoiceGetHealed = MissileDefenderVoiceMove End ; *** ENGINEERING Parameters *** RadarPriority = UNIT KindOf = PRELOAD SELECTABLE CAN_ATTACK ATTACK_NEEDS_LINE_OF_SIGHT CAN_CAST_REFLECTIONS INFANTRY SCORE Body = ActiveBody ModuleTag_02 MaxHealth = 100.0 InitialHealth = 100.0 End Behavior = ExperienceScalarUpgrade ModuleTag_03 TriggeredBy = Upgrade_AmericaAdvancedTraining AddXPScalar = 1.0 ;Increases experience gained by an additional 100% End Behavior = AIUpdateInterface ModuleTag_04 AutoAcquireEnemiesWhenIdle = Yes End Behavior = AutoFindHealingUpdate ModuleTag_05 ; This update will have the unit go to a healing station if injured. jba ScanRate = 1000 ; once a second. ScanRange = 300 ; NeverHeal = 0.85 ; don't heal if we are > 85% healthy. AlwaysHeal = 0.25 ; if we get below 25%, find healing right away. End Locomotor = SET_NORMAL MissileDefenderLocomotor Behavior = PhysicsBehavior ModuleTag_06 Mass = 5.0 End Behavior = SpecialAbility ModuleTag_08 SpecialPowerTemplate = SpecialAbilityMissileDefenderLaserGuidedMissiles UpdateModuleStartsAttack = Yes InitiateSound = MissileDefenderVoiceAttackLaser End Behavior = SpecialAbilityUpdate ModuleTag_09 SpecialPowerTemplate = SpecialAbilityMissileDefenderLaserGuidedMissiles StartAbilityRange = 200.0 AbilityAbortRange = 250.0 ;If the target moves outside this range, abort. PreparationTime = 1000 PersistentPrepTime = 500 SpecialObject = LaserBeam SpecialObjectAttachToBone = Muzzle01 End Behavior = SquishCollide ModuleTag_10 ;nothing End ; --- begin Death modules --- Behavior = SlowDeathBehavior ModuleTag_Death01 DeathTypes = ALL -CRUSHED -SPLATTED -EXPLODED -BURNED -POISONED -POISONED_BETA SinkDelay = 3000 SinkRate = 0.5 ; in Dist/Sec DestructionDelay = 8000 FX = INITIAL FX_GIDie End Behavior = SlowDeathBehavior ModuleTag_Death02 DeathTypes = NONE +CRUSHED +SPLATTED SinkDelay = 3000 SinkRate = 0.5 ; in Dist/Sec DestructionDelay = 8000 FX = INITIAL FX_GIDieCrushed End Behavior = SlowDeathBehavior ModuleTag_Death03 DeathTypes = NONE +EXPLODED SinkDelay = 3000 SinkRate = 0.5 ; in Dist/Sec DestructionDelay = 8000 FX = INITIAL FX_GIDie FlingForce = 8 FlingForceVariance = 3 FlingPitch = 60 FlingPitchVariance = 10 End Behavior = SlowDeathBehavior ModuleTag_Death04 DeathTypes = NONE +BURNED DestructionDelay = 0 FX = INITIAL FX_GIDie OCL = INITIAL OCL_FlamingInfantry End Behavior = SlowDeathBehavior ModuleTag_Death05 DeathTypes = NONE +POISONED DestructionDelay = 0 FX = INITIAL FX_GIDie OCL = INITIAL OCL_ToxicInfantry End Behavior = SlowDeathBehavior ModuleTag_Death06 ; don't forget to give it a new, unique module tag DeathTypes = NONE +POISONED_BETA DestructionDelay = 0 FX = INITIAL FX_GIDie OCL = INITIAL OCL_ToxicInfantryBeta ;you'll have to create this OCL and make it use the blue guys instead of green ones End ; --- end Death modules --- Behavior = PoisonedBehavior ModuleTag_13 PoisonDamageInterval = 100 ; Every this many msec I will retake the poison damage dealt me... PoisonDuration = 3000 ; ... for this long after last hit by poison damage End Geometry = CYLINDER GeometryMajorRadius = 7.0 GeometryMinorRadius = 7.0 GeometryHeight = 12.0 GeometryIsSmall = Yes Shadow = SHADOW_DECAL ShadowSizeX = 14; ShadowSizeY = 14; ShadowTexture = ShadowI; BuildCompletion = APPEARS_AT_RALLY_POINT End ;------------------------------------------------------------------------------ ; @todo -- this entire unit is "first pass only" and needs lots of specialization Object AmericaInfantryPilot ; *** ART Parameters *** SelectPortrait = SAPilot_L ButtonImage = SAPilot ;UpgradeCameo1 = NONE ;UpgradeCameo2 = NONE ;UpgradeCameo3 = NONE ;UpgradeCameo4 = NONE ;UpgradeCameo5 = NONE Draw = W3DModelDraw ModuleTag_01 OkToChangeModelColor = Yes DefaultConditionState Model = AIRPlt_SKN IdleAnimation = AIRPlt_SKL.AIRPlt_STA 0 20 IdleAnimation = AIRPlt_SKL.AIRPlt_IDA IdleAnimation = AIRPlt_SKL.AIRPlt_IDB AnimationMode = ONCE TransitionKey = TRANS_Stand End ConditionState = FREEFALL Animation = AIRPlt_SKL.AIRPLT_PFL AnimationMode = ONCE TransitionKey = TRANS_Falling End AliasConditionState = FREEFALL DYING ConditionState = PARACHUTING Animation = AIRPlt_SKL.AIRPlt_PHG AnimationMode = LOOP TransitionKey = TRANS_Chute WaitForStateToFinishIfPossible = TRANS_Falling End AliasConditionState = PARACHUTING DYING ConditionState = MOVING Animation = AIRPlt_SKL.AIRPlt_RNA AnimationMode = LOOP TransitionKey = TRANS_Stand ParticleSysBone = None InfantryDustTrails End ConditionState = DYING Animation = AIRPlt_SKL.AIRPlt_DTA Animation = AIRPlt_SKL.AIRPlt_DTB AnimationMode = ONCE TransitionKey = TRANS_Dying End TransitionState = TRANS_Dying TRANS_Flailing Animation = AIRPlt_SKL.AIRPlt_ADTE1 AnimationMode = ONCE End ConditionState = DYING EXPLODED_FLAILING Animation = AIRPlt_SKL.AIRPlt_ADTE2 AnimationMode = LOOP TransitionKey = TRANS_Flailing End ConditionState = DYING EXPLODED_BOUNCING Animation = AIRPlt_SKL.AIRPlt_ADTE3 AnimationMode = ONCE TransitionKey = None End ConditionState = SPECIAL_CHEERING Animation = AIRPLT_SKL.AIRPLT_CHA AnimationMode = LOOP End ; surrender is cut. sorry. (srj) ; ConditionState = SURRENDER ; Animation = AIRPLT_SKL.AIRPLT_SST ; AnimationMode = ONCE ; TransitionKey = TRANS_SurrenderKneeling ; End ; ;@TODO -- MISSING ANIMATION FILE ; ;ConditionState = SURRENDER MOVING ; ; Animation = AIRPLT_SKL.AIRPLT_SWKB ; ; AnimationMode = ONCE ; ; TransitionKey = TRANS_SurrenderMoving ; ;End ; TransitionState = TRANS_Stand TRANS_SurrenderKneeling ; Animation = AIRPLT_SKL.AIRPLT_SUR ; AnimationMode = ONCE ; End ; TransitionState = TRANS_SurrenderKneeling TRANS_Stand ; Animation = AIRPLT_SKL.AIRPLT_SURX ; AnimationMode = ONCE ; End ;@TODO -- MISSING ANIMATION FILE ;TransitionState = TRANS_Falling TRANS_Chute ; Animation = AIRPLT_SKL.AIRPLT_POP ; AnimationMode = ONCE ; Flags = PRISTINE_BONE_POS_IN_FINAL_FRAME ; our bone positions should come from the last frame, rather than the first ;End TransitionState = TRANS_Chute TRANS_Stand Animation = AIRPlt_SKL.AIRPlt_PTD AnimationMode = ONCE End End ; ***DESIGN parameters *** DisplayName = OBJECT:Pilot Side = America EditorSorting = INFANTRY TransportSlotCount = 1 ;how many "slots" we take in a transport (0 == not transportable) ExperienceValue = 10 10 10 10 ;Experience point value at each level ExperienceRequired = 0 1 2 3 ;Experience points needed to gain each level IsTrainable = Yes ;Can gain experience CommandSet = AmericaInfantryPilotCommandSet ArmorSet Conditions = None Armor = HumanArmor DamageFX = InfantryDamageFX End VisionRange = 150 ShroudClearingRange = 300 CrushableLevel = 0 ;What am I?: 0 = for infantry, 1 = for trees, 2 = general vehicles ; *** AUDIO Parameters *** VoiceSelect = PilotVoiceSelect VoiceMove = PilotVoiceMove VoiceAttack = PilotVoiceMove SoundDie = PilotVoiceDie SoundDieFire = DieByFireUSA SoundDieToxin = DieByToxinUSA VoiceGarrison = PilotVoiceGarrison ; surrender is cut. sorry. (srj) ; VoiceSurrender = PilotVoiceSurrender VoiceFear = PilotVoiceFear UnitSpecificSounds VoiceEnter = PilotVoiceEnter VoiceEnterHostile = PilotVoiceEnter VoiceGetHealed = PilotVoiceMove End ; *** ENGINEERING Parameters *** RadarPriority = UNIT KindOf = PRELOAD SELECTABLE CAN_CAST_REFLECTIONS INFANTRY NO_GARRISON SCORE IGNORES_SELECT_ALL Behavior = VeterancyGainCreate ModuleTag_02 ; omit the "ScienceRequired" so that this upgrade always occurs. ; Pilots should never (repeat, never) be less than VETERAN status. StartingLevel = VETERAN End Behavior = VeterancyCrateCollide ModuleTag_03 RequiredKindOf = VEHICLE ; we only give our bonus to VEHICLEs we collide with ForbiddenKindOf = DOZER ; but not to TRANSPORTs or DOZERs! EffectRange = 0 ; 0=="affect only the thing you collide with" AddsOwnerVeterancy = Yes ; we add our own veterancy to the target (rather than just +1 level) IsPilot = Yes ; set the pilot flag because it's different than the veterancy crate and has extra checking End Body = ActiveBody ModuleTag_04 MaxHealth = 100.0 InitialHealth = 100.0 End Behavior = AIUpdateInterface ModuleTag_05 AutoAcquireEnemiesWhenIdle = Yes End Behavior = AutoFindHealingUpdate ModuleTag_06 ; This update will have the unit go to a healing station if injured. jba ScanRate = 1000 ; once a second. ScanRange = 300 ; NeverHeal = 0.85 ; don't heal if we are > 85% healthy. AlwaysHeal = 0.25 ; if we get below 25%, find healing right away. End Behavior = PilotFindVehicleUpdate ModuleTag_07 ; This update will have the unit go to a vehicle. jba ScanRate = 1000 ; once a second. ScanRange = 300 ; MinHealth = 0.5 ; don't enter a vehicle less than 50% healthy. End Locomotor = SET_NORMAL ColonelBurtonGroundLocomotor Locomotor = SET_NORMAL_UPGRADED BasicHumanLocomotorPlus25 Behavior = PhysicsBehavior ModuleTag_08 Mass = 5.0 End Behavior = LocomotorSetUpgrade ModuleTag_10 TriggeredBy = Upgrade_Veterancy_HEROIC End Behavior = SquishCollide ModuleTag_11 ;nothing End ; --- begin Death modules --- Behavior = SlowDeathBehavior ModuleTag_Death01 DeathTypes = ALL -CRUSHED -SPLATTED -EXPLODED -BURNED -POISONED -POISONED_BETA SinkDelay = 3000 SinkRate = 0.5 ; in Dist/Sec DestructionDelay = 8000 FX = INITIAL FX_GIDie End Behavior = SlowDeathBehavior ModuleTag_Death02 DeathTypes = NONE +CRUSHED +SPLATTED SinkDelay = 3000 SinkRate = 0.5 ; in Dist/Sec DestructionDelay = 8000 FX = INITIAL FX_GIDieCrushed End Behavior = SlowDeathBehavior ModuleTag_Death03 DeathTypes = NONE +EXPLODED SinkDelay = 3000 SinkRate = 0.5 ; in Dist/Sec DestructionDelay = 8000 FX = INITIAL FX_GIDie FlingForce = 8 FlingForceVariance = 3 FlingPitch = 60 FlingPitchVariance = 10 End Behavior = SlowDeathBehavior ModuleTag_Death04 DeathTypes = NONE +BURNED DestructionDelay = 0 FX = INITIAL FX_GIDie OCL = INITIAL OCL_FlamingInfantry End Behavior = SlowDeathBehavior ModuleTag_Death05 DeathTypes = NONE +POISONED DestructionDelay = 0 FX = INITIAL FX_GIDie OCL = INITIAL OCL_ToxicInfantry End Behavior = SlowDeathBehavior ModuleTag_Death06 ; don't forget to give it a new, unique module tag DeathTypes = NONE +POISONED_BETA DestructionDelay = 0 FX = INITIAL FX_GIDie OCL = INITIAL OCL_ToxicInfantryBeta ;you'll have to create this OCL and make it use the blue guys instead of green ones End ; --- end Death modules --- Behavior = PoisonedBehavior ModuleTag_14 PoisonDamageInterval = 100 ; Every this many msec I will retake the poison damage dealt me... PoisonDuration = 3000 ; ... for this long after last hit by poison damage End Geometry = CYLINDER GeometryMajorRadius = 10.0 GeometryMinorRadius = 10.0 GeometryHeight = 12.0 GeometryIsSmall = Yes Shadow = SHADOW_DECAL ShadowSizeX = 14; ShadowSizeY = 14; ShadowTexture = ShadowI; BuildCompletion = APPEARS_AT_RALLY_POINT End ;------------------------------------------------------------------------------ Object AmericaInfantryPathfinder ; *** ART Parameters *** SelectPortrait = SAPathfinder1_L ButtonImage = SAPathfinder1 UpgradeCameo1 = Upgrade_AmericaAdvancedTraining ;UpgradeCameo2 = NONE ;UpgradeCameo3 = NONE ;UpgradeCameo4 = NONE ;UpgradeCameo5 = NONE Draw = W3DModelDraw ModuleTag_01 OkToChangeModelColor = Yes DefaultConditionState Model = AIPFDR_SKN IdleAnimation = AIPFDR_SKL.AIPFDR_STA IdleAnimation = AIPFDR_SKL.AIPFDR_IDA AnimationMode = ONCE WeaponFireFXBone = PRIMARY Muzzle WeaponMuzzleFlash = PRIMARY MuzzleFX TransitionKey = TRANS_Standing End AliasConditionState = REALLYDAMAGED ConditionState = MOVING Animation = AIPFDR_SKL.AIPFDR_RNA 25 AnimationMode = LOOP Flags = RANDOMSTART TransitionKey = TRANS_Standing ParticleSysBone = None InfantryDustTrails End AliasConditionState = MOVING REALLYDAMAGED ConditionState = FIRING_A Animation = AIPFDR_SKL.AIPFDR_ATB ; recoil in standing position AnimationMode = ONCE TransitionKey = TRANS_FiringA End AliasConditionState = FIRING_A MOVING AliasConditionState = FIRING_A MOVING REALLYDAMAGED AliasConditionState = FIRING_A REALLYDAMAGED ConditionState = BETWEEN_FIRING_SHOTS_A Animation = AIPFDR_SKL.AIPFDR_ATBST ; motionless in standing position AnimationMode = ONCE WaitForStateToFinishIfPossible = TRANS_FiringA End AliasConditionState = BETWEEN_FIRING_SHOTS_A REALLYDAMAGED AliasConditionState = RELOADING_A AliasConditionState = RELOADING_A REALLYDAMAGED ConditionState = DYING Animation = AIPFDR_SKL.AIPFDR_DTA AnimationMode = ONCE TransitionKey = TRANS_Dying End TransitionState = TRANS_Dying TRANS_Flailing Animation = AIPFDR_SKL.AIPFDR_ADTA1 AnimationMode = ONCE End ConditionState = DYING EXPLODED_FLAILING Animation = AIPFDR_SKL.AIPFDR_ADTA2 AnimationMode = LOOP TransitionKey = TRANS_Flailing End ConditionState = DYING EXPLODED_BOUNCING Animation = AIPFDR_SKL.AIPFDR_ADTA3 AnimationMode = ONCE TransitionKey = None End ConditionState = FREEFALL Animation = AIPFDR_SKL.AIPFDR_PFL AnimationMode = LOOP TransitionKey = TRANS_Falling End AliasConditionState = FREEFALL DYING ConditionState = PARACHUTING Animation = AIPFDR_SKL.AIPFDR_PHG AnimationMode = LOOP Flags = PRISTINE_BONE_POS_IN_FINAL_FRAME ;our bone positions should come from the last frame, rather than the first TransitionKey = TRANS_Chute End AliasConditionState = PARACHUTING DYING TransitionState = TRANS_Falling TRANS_Chute Animation = AIPFDR_SKL.AIPFDR_POP AnimationMode = ONCE Flags = PRISTINE_BONE_POS_IN_FINAL_FRAME ;our bone positions should come from the last frame, rather than the first End TransitionState = TRANS_Chute TRANS_Standing Animation = AIPFDR_SKL.AIPFDR_PTD AnimationMode = ONCE End End ; ***DESIGN parameters *** DisplayName = OBJECT:Pathfinder Side = America EditorSorting = INFANTRY TransportSlotCount = 1 ;how many "slots" we take in a transport (0 == not transportable) WeaponSet Conditions = None Weapon = PRIMARY USAPathfinderSniperRifle End ArmorSet Conditions = None Armor = HumanArmor DamageFX = InfantryDamageFX End VisionRange = 200 ShroudClearingRange = 400 Prerequisites Object = AmericaBarracks Science = SCIENCE_Pathfinder End BuildCost = 600 BuildTime = 10.0 ;in seconds ExperienceValue = 40 40 60 80 ;Experience point value at each level ExperienceRequired = 0 50 100 200 ;Experience points needed to gain each level IsTrainable = Yes ;Can gain experience CrushableLevel = 0 ;What am I?: 0 = for infantry, 1 = for trees, 2 = general vehicles CommandSet = AmericaInfantryPathfinderCommandSet ; *** AUDIO Parameters *** VoiceSelect = PathfinderVoiceSelect VoiceMove = PathfinderVoiceMove VoiceGuard = PathfinderVoiceMove VoiceAttack = PathfinderVoiceAttack SoundDie = PathfinderVoiceDie SoundDieFire = DieByFireUSA SoundDieToxin = DieByToxinUSA VoiceFear = PathfinderVoiceFear ; surrender is cut. sorry. (srj) ; VoiceSurrender = PathfinderVoiceSurrender SoundStealthOn = StealthOn SoundStealthOff = StealthOff VoiceFear = PathfinderVoiceFear UnitSpecificSounds VoiceCreate = PathfinderVoiceCreate VoiceGarrison = PathfinderVoiceGarrison VoiceEnter = PathfinderVoiceMove VoiceEnterHostile = PathfinderVoiceMove VoiceGetHealed = PathfinderVoiceMove End ; *** ENGINEERING Parameters *** RadarPriority = UNIT KindOf = PRELOAD SELECTABLE CAN_ATTACK ATTACK_NEEDS_LINE_OF_SIGHT CAN_CAST_REFLECTIONS INFANTRY STEALTH_GARRISON SCORE Body = ActiveBody ModuleTag_02 MaxHealth = 120.0 InitialHealth = 120.0 End Behavior = AIUpdateInterface ModuleTag_03 AutoAcquireEnemiesWhenIdle = Yes Stealthed MoodAttackCheckRate = 250 End Behavior = AutoFindHealingUpdate ModuleTag_04 ; This update will have the unit go to a healing station if injured. jba ScanRate = 1000 ; once a second. ScanRange = 300 ; NeverHeal = 0.85 ; don't heal if we are > 85% healthy. AlwaysHeal = 0.25 ; if we get below 25%, find healing right away. End Locomotor = SET_NORMAL ColonelBurtonGroundLocomotor Behavior = ExperienceScalarUpgrade ModuleTag_05 TriggeredBy = Upgrade_AmericaAdvancedTraining AddXPScalar = 1.0 ;Increases experience gained by an additional 100% End Behavior = PhysicsBehavior ModuleTag_06 Mass = 5.0 End Behavior = StealthDetectorUpdate ModuleTag_08 DetectionRate = 500 ; how often to rescan for stealthed things in my sight (msec) ;DetectionRange = ??? ;Dustin, enable this for independant balancing! CanDetectWhileGarrisoned = No ;Garrisoned means being in a structure that you units can shoot out of. CanDetectWhileContained = No ;Contained means being in a transport or tunnel network. End Behavior = StealthUpdate ModuleTag_09 StealthDelay = 0 ; msec StealthForbiddenConditions = MOVING ; stays stealthy while attacking FriendlyOpacityMin = 30.0% FriendlyOpacityMax = 80.0% PulseFrequency = 500 ; msec MoveThresholdSpeed = 3 InnateStealth = Yes OrderIdleEnemiesToAttackMeUponReveal = Yes End Behavior = SquishCollide ModuleTag_10 ;nothing End ; --- begin Death modules --- Behavior = SlowDeathBehavior ModuleTag_Death01 DeathTypes = ALL -CRUSHED -SPLATTED -EXPLODED -BURNED -POISONED -POISONED_BETA SinkDelay = 3000 SinkRate = 0.5 ; in Dist/Sec DestructionDelay = 8000 FX = INITIAL FX_GIDie End Behavior = SlowDeathBehavior ModuleTag_Death02 DeathTypes = NONE +CRUSHED +SPLATTED SinkDelay = 3000 SinkRate = 0.5 ; in Dist/Sec DestructionDelay = 8000 FX = INITIAL FX_GIDieCrushed End Behavior = SlowDeathBehavior ModuleTag_Death03 DeathTypes = NONE +EXPLODED SinkDelay = 3000 SinkRate = 0.5 ; in Dist/Sec DestructionDelay = 8000 FX = INITIAL FX_GIDie FlingForce = 8 FlingForceVariance = 3 FlingPitch = 60 FlingPitchVariance = 10 End Behavior = SlowDeathBehavior ModuleTag_Death04 DeathTypes = NONE +BURNED DestructionDelay = 0 FX = INITIAL FX_GIDie OCL = INITIAL OCL_FlamingInfantry End Behavior = SlowDeathBehavior ModuleTag_Death05 DeathTypes = NONE +POISONED DestructionDelay = 0 FX = INITIAL FX_GIDie OCL = INITIAL OCL_ToxicInfantry End Behavior = SlowDeathBehavior ModuleTag_Death06 ; don't forget to give it a new, unique module tag DeathTypes = NONE +POISONED_BETA DestructionDelay = 0 FX = INITIAL FX_GIDie OCL = INITIAL OCL_ToxicInfantryBeta ;you'll have to create this OCL and make it use the blue guys instead of green ones End ; --- end Death modules --- Behavior = PoisonedBehavior ModuleTag_13 PoisonDamageInterval = 100 ; Every this many msec I will retake the poison damage dealt me... PoisonDuration = 3000 ; ... for this long after last hit by poison damage End Geometry = CYLINDER GeometryMajorRadius = 10.0 GeometryMinorRadius = 10.0 GeometryHeight = 12.0 GeometryIsSmall = Yes Shadow = SHADOW_DECAL ShadowSizeX = 14; ShadowSizeY = 14; ShadowTexture = ShadowI; BuildCompletion = APPEARS_AT_RALLY_POINT End ;------------------------------------------------------------------------------ Object GLAInfantryRebel ; *** ART Parameters *** SelectPortrait = SURebel_L ButtonImage = SURebel UpgradeCameo1 = Upgrade_GLAAPBullets UpgradeCameo2 = Upgrade_GLACamouflage UpgradeCameo3 = Upgrade_InfantryCaptureBuilding ;UpgradeCameo4 = NONE ;UpgradeCameo5 = NONE Draw = W3DModelDraw ModuleTag_01 OkToChangeModelColor = Yes ; this says "we don't use these condition states at all, so completely ; ignore them for purposes of matchmaking"... this is useful to help ; reduce the number of AliasConditionState clauses you must add in ; order to avoid ambiguity in some cases. IgnoreConditionStates = PREATTACK_A FIRING_A BETWEEN_FIRING_SHOTS_A RELOADING_A ; ---- standing DefaultConditionState Model = UIRGrd_SKN IdleAnimation = UIRGrd_SKL.UIRGrd_STN 0 35 IdleAnimation = UIRGrd_SKL.UIRGrd_IDA IdleAnimation = UIRGrd_SKL.UIRGrd_IDB AnimationMode = ONCE WeaponFireFXBone = PRIMARY Muzzle WeaponMuzzleFlash = PRIMARY MuzzleFX TransitionKey = TRANS_Standing End ConditionState = REALLYDAMAGED IdleAnimation = UIRGrd_SKL.UIRGrd_STB 0 35 IdleAnimation = UIRGrd_SKL.UIRGrd_IDC IdleAnimation = UIRGrd_SKL.UIRGrd_IDD AnimationMode = ONCE TransitionKey = TRANS_StandingHurt End ; ---- moving ConditionState = MOVING Animation = UIRGrd_SKL.UIRGrd_RNA 15 AnimationMode = LOOP TransitionKey = TRANS_Walking ParticleSysBone = None InfantryDustTrails End AliasConditionState = MOVING ATTACKING ConditionState = MOVING REALLYDAMAGED Animation = UIRGrd_SKL.UIRGrd_RNB 25 AnimationMode = LOOP TransitionKey = TRANS_WalkingHurt ParticleSysBone = None InfantryDustTrails End AliasConditionState = MOVING ATTACKING REALLYDAMAGED ; ---- dying ConditionState = DYING Animation = UIRGrd_SKL.UIRGrd_DTA Animation = UIRGrd_SKL.UIRGrd_DTB AnimationMode = ONCE TransitionKey = TRANS_Dying End TransitionState = TRANS_Dying TRANS_Flailing Animation = UIRGrd_SKL.UIRGrd_ADTE1 AnimationMode = ONCE End ConditionState = DYING EXPLODED_FLAILING Animation = UIRGrd_SKL.UIRGrd_ADTE2 AnimationMode = LOOP TransitionKey = TRANS_Flailing End ConditionState = DYING EXPLODED_BOUNCING Animation = UIRGrd_SKL.UIRGrd_ADTE3 AnimationMode = ONCE TransitionKey = None End ConditionState = SPECIAL_CHEERING Animation = UIRGrd_SKL.UIRGrd_IDB End ; ---- firing ConditionState = USING_WEAPON_A Animation = UIRGrd_SKL.UIRGrd_ATA AnimationMode = LOOP TransitionKey = TRANS_Firing End ConditionState = USING_WEAPON_A REALLYDAMAGED Animation = UIRGrd_SKL.UIRGrd_ATA2 AnimationMode = LOOP TransitionKey = TRANS_FiringHurt End TransitionState = TRANS_Standing TRANS_Firing Animation = UIRGrd_SKL.UIRGrd_ATAST AnimationMode = ONCE End TransitionState = TRANS_Firing TRANS_Standing Animation = UIRGrd_SKL.UIRGrd_ATAED AnimationMode = ONCE End TransitionState = TRANS_StandingHurt TRANS_FiringHurt Animation = UIRGrd_SKL.UIRGrd_ATA2ED AnimationMode = ONCE_BACKWARDS End TransitionState = TRANS_FiringHurt TRANS_StandingHurt Animation = UIRGrd_SKL.UIRGrd_ATA2ED AnimationMode = ONCE End TransitionState = TRANS_Standing TRANS_StandingHurt Animation = UIRGrd_SKL.UIRGrd_ATA2ED AnimationMode = ONCE End ; ------- Bldg-capture ConditionState = UNPACKING Model = UIRGrd_F_SKN Animation = UIRGrd_F_SKL.UIRGrd_F_FDP1 AnimationMode = ONCE End AliasConditionState = UNPACKING REALLYDAMAGED ConditionState = RAISING_FLAG Model = UIRGrd_F_SKN Animation = UIRGrd_F_SKL.UIRGrd_F_FDP2 AnimationMode = ONCE TransitionKey = TRANS_Raising End AliasConditionState = RAISING_FLAG REALLYDAMAGED ConditionState = PACKING Model = UIRGrd_F_SKN Animation = UIRGrd_F_SKL.UIRGrd_F_FDP1 AnimationMode = ONCE_BACKWARDS Flags = START_FRAME_LAST TransitionKey = TRANS_Packing End AliasConditionState = PACKING REALLYDAMAGED TransitionState = TRANS_Raising TRANS_Packing Model = UIRGrd_F_SKN Animation = UIRGrd_F_SKL.UIRGrd_F_FDP2 AnimationMode = ONCE_BACKWARDS Flags = START_FRAME_LAST End ; ------- Surrender ;ConditionState = SURRENDER ; Animation = UIRGrd_SKL.UIRGrd_SST ; AnimationMode = ONCE ; TransitionKey = TRANS_Surrendered ;End ;ConditionState = SURRENDER MOVING ; Animation = UIRGrd_SKL.UIRGrd_RNA ; AnimationMode = ONCE ; TransitionKey = TRANS_Surrendered ;End ;TransitionState = TRANS_Standing TRANS_Surrendered ; Animation = UIRGrd_SKL.UIRGrd_SUR ; AnimationMode = ONCE ;End ;ConditionState = SURRENDER REALLYDAMAGED ; Animation = UIRGrd_SKL.UIRGrd_SSTB ; AnimationMode = ONCE ; TransitionKey = TRANS_SurrenderedHurt ;End ;ConditionState = SURRENDER MOVING REALLYDAMAGED ; Animation = UIRGrd_SKL.UIRGrd_RNB ; AnimationMode = ONCE ; TransitionKey = TRANS_SurrenderedHurt ;End ;TransitionState = TRANS_StandingHurt TRANS_SurrenderedHurt ; Animation = UIRGrd_SKL.UIRGrd_SURB ; AnimationMode = ONCE ;End End ; ***DESIGN parameters *** DisplayName = OBJECT:Rebel Side = GLA EditorSorting = INFANTRY TransportSlotCount = 1 ;how many "slots" we take in a transport (0 == not transportable) WeaponSet Conditions = None Weapon = PRIMARY GLARebelMachineGun End WeaponSet Conditions = PLAYER_UPGRADE Weapon = PRIMARY GLARebelMachineGun Weapon = SECONDARY GLARebelTranqDartsWeapon AutoChooseSources = PRIMARY FROM_PLAYER FROM_SCRIPT FROM_AI AutoChooseSources = SECONDARY NONE End ArmorSet Conditions = None Armor = HumanArmor DamageFX = InfantryDamageFX End VisionRange = 150 ShroudClearingRange = 300 Prerequisites Object = GLABarracks End BuildCost = 150 BuildTime = 5.0 ;in seconds ExperienceValue = 15 15 30 40 ;Experience point value at each level ExperienceRequired = 0 40 60 120 ;Experience points needed to gain each level IsTrainable = Yes ;Can gain experience CrushableLevel = 0 ;What am I?: 0 = for infantry, 1 = for trees, 2 = general vehicles CommandSet = GLAInfantryRebelCommandSet ; *** AUDIO Parameters *** VoiceSelect = RebelVoiceSelect VoiceMove = RebelVoiceMove VoiceGuard = RebelVoiceMove VoiceAttack = RebelVoiceAttack SoundDie = RebelVoiceDie SoundDieFire = DieByFireGLA SoundDieToxin = DieByToxinGLA SoundStealthOn = StealthOn SoundStealthOff = StealthOff ; surrender is cut. sorry. (srj) ; VoiceSurrender = RebelVoiceSurrender VoiceFear = RebelVoiceFear VoiceTaskComplete = RebelVoiceCaptureComplete UnitSpecificSounds VoiceCreate = RebelVoiceCreate VoiceSubdue = RebelVoiceSubdue VoiceGarrison = RebelVoiceGarrison VoiceEnter = RebelVoiceMove VoiceEnterHostile = RebelVoiceMove VoiceGetHealed = RebelVoiceMove End ; *** ENGINEERING Parameters *** RadarPriority = UNIT KindOf = PRELOAD SELECTABLE CAN_ATTACK ATTACK_NEEDS_LINE_OF_SIGHT CAN_CAST_REFLECTIONS INFANTRY SALVAGER SCORE Body = ActiveBody ModuleTag_02 MaxHealth = 120.0 InitialHealth = 120.0 End Behavior = AIUpdateInterface ModuleTag_03 AutoAcquireEnemiesWhenIdle = Yes End Behavior = CommandButtonHuntUpdate ModuleTag_04 ; allows use of command button hunt script with this unit. End Locomotor = SET_NORMAL BasicHumanLocomotor Behavior = PhysicsBehavior ModuleTag_05 Mass = 5.0 End Behavior = StealthUpdate ModuleTag_07 StealthDelay = 2500 ; msec StealthForbiddenConditions = ATTACKING USING_ABILITY MoveThresholdSpeed = 3 InnateStealth = No ;Requires upgrade first OrderIdleEnemiesToAttackMeUponReveal = Yes End Behavior = WeaponSetUpgrade ModuleTag_08 TriggeredBy = Upgrade_GLATranqDarts End Behavior = WeaponBonusUpgrade ModuleTag_09 TriggeredBy = Upgrade_GLAAPBullets End Behavior = StealthUpgrade ModuleTag_10 TriggeredBy = Upgrade_GLACamouflage End Behavior = SquishCollide ModuleTag_11 ;nothing End ; --- begin Death modules --- Behavior = SlowDeathBehavior ModuleTag_Death01 DeathTypes = ALL -CRUSHED -SPLATTED -EXPLODED -BURNED -POISONED -POISONED_BETA SinkDelay = 3000 SinkRate = 0.5 ; in Dist/Sec DestructionDelay = 8000 FX = INITIAL FX_GIDie End Behavior = SlowDeathBehavior ModuleTag_Death02 DeathTypes = NONE +CRUSHED +SPLATTED SinkDelay = 3000 SinkRate = 0.5 ; in Dist/Sec DestructionDelay = 8000 FX = INITIAL FX_GIDieCrushed End Behavior = SlowDeathBehavior ModuleTag_Death03 DeathTypes = NONE +EXPLODED SinkDelay = 3000 SinkRate = 0.5 ; in Dist/Sec DestructionDelay = 8000 FX = INITIAL FX_GIDie FlingForce = 8 FlingForceVariance = 3 FlingPitch = 60 FlingPitchVariance = 10 End Behavior = SlowDeathBehavior ModuleTag_Death04 DeathTypes = NONE +BURNED DestructionDelay = 0 FX = INITIAL FX_GIDie OCL = INITIAL OCL_FlamingInfantry End Behavior = SlowDeathBehavior ModuleTag_Death05 DeathTypes = NONE +POISONED DestructionDelay = 0 FX = INITIAL FX_GIDie OCL = INITIAL OCL_ToxicInfantry End Behavior = SlowDeathBehavior ModuleTag_Death06 ; don't forget to give it a new, unique module tag DeathTypes = NONE +POISONED_BETA DestructionDelay = 0 FX = INITIAL FX_GIDie OCL = INITIAL OCL_ToxicInfantryBeta ;you'll have to create this OCL and make it use the blue guys instead of green ones End ; --- end Death modules --- Behavior = PoisonedBehavior ModuleTag_16 PoisonDamageInterval = 100 ; Every this many msec I will retake the poison damage dealt me... PoisonDuration = 3000 ; ... for this long after last hit by poison damage End Behavior = SpecialAbility ModuleTag_17 SpecialPowerTemplate = SpecialAbilityRebelCaptureBuilding UpdateModuleStartsAttack = Yes StartsPaused = Yes InitiateSound = RebelVoiceCapture End Behavior = SpecialAbilityUpdate ModuleTag_18 SpecialPowerTemplate = SpecialAbilityRebelCaptureBuilding StartAbilityRange = 5.0 UnpackTime = 3000 ; (changing this will scale anim speed) PreparationTime = 20000 ; time to complete hack once prepared (changing this will scale anim speed) PackTime = 2000 ; (changing this will scale anim speed) DoCaptureFX = Yes AwardXPForTriggering = 12 ;SkillPointsForTriggering = ??? -- Dustin, fill me out if you want different balance values. End Behavior = UnpauseSpecialPowerUpgrade ModuleTag_19 SpecialPowerTemplate = SpecialAbilityRebelCaptureBuilding TriggeredBy = Upgrade_InfantryCaptureBuilding End Geometry = CYLINDER GeometryMajorRadius = 10.0 GeometryMinorRadius = 10.0 GeometryHeight = 12.0 GeometryIsSmall = Yes Shadow = SHADOW_DECAL ShadowSizeX = 14; ShadowSizeY = 14; ShadowTexture = ShadowI; BuildCompletion = APPEARS_AT_RALLY_POINT End ;---------------------------------------------------------------------------- Object GLAInfantryJarmenKell ; *** ART Parameters *** SelectPortrait = SUJermanKell1_L ;NOTE: Asset spelling mistake ButtonImage = SUJermanKell1 UpgradeCameo1 = Upgrade_GLAAPBullets ;UpgradeCameo2 = NONE ;UpgradeCameo3 = NONE ;UpgradeCameo4 = NONE ;UpgradeCameo5 = NONE Draw = W3DModelDraw ModuleTag_01 OkToChangeModelColor = Yes ; --- idle DefaultConditionState Model = UIHERO_SKN IdleAnimation = UIHERO_SKL.UIHERO_STA 0 21 IdleAnimation = UIHERO_SKL.UIHERO_IDA IdleAnimation = UIHERO_SKL.UIHERO_IDB AnimationMode = ONCE WeaponFireFXBone = PRIMARY Muzzle WeaponMuzzleFlash = PRIMARY MuzzleFX TransitionKey = TRANS_Stand End ConditionState = REALLYDAMAGED IdleAnimation = UIHERO_SKL.UIHERO_ISTA 0 30 IdleAnimation = UIHERO_SKL.UIHERO_IIDA IdleAnimation = UIHERO_SKL.UIHERO_IIDB AnimationMode = ONCE TransitionKey = TRANS_StandInjured End TransitionState = TRANS_Stand TRANS_StandInjured Animation = UIHERO_SKL.UIHERO_ISTAHIT AnimationMode = ONCE End ; --- attack ConditionState = FIRING_A Animation = UIHERO_SKL.UIHERO_ATA AnimationMode = ONCE TransitionKey = TRANS_FiringA AnimationSpeedFactorRange = 1.5 1.5 End ConditionState = BETWEEN_FIRING_SHOTS_A Animation = UIHERO_SKL.UIHERO_STA AnimationMode = ONCE WaitForStateToFinishIfPossible = TRANS_FiringA End AliasConditionState = RELOADING_A ConditionState = FIRING_A REALLYDAMAGED Animation = UIHERO_SKL.UIHERO_IATA2 AnimationMode = ONCE TransitionKey = TRANS_FiringAInjured AnimationSpeedFactorRange = 1.5 1.5 End ConditionState = BETWEEN_FIRING_SHOTS_A REALLYDAMAGED Animation = UIHERO_SKL.UIHERO_IATA2 AnimationMode = MANUAL Flags = START_FRAME_LAST WaitForStateToFinishIfPossible = TRANS_FiringAInjured End AliasConditionState = RELOADING_A REALLYDAMAGED TransitionState = TRANS_FiringA TRANS_FiringAInjured Animation = UIHERO_SKL.UIHERO_IATAHIT AnimationMode = ONCE End ; --- moving ConditionState = MOVING Animation = UIHERO_SKL.UIHERO_RNA2 30 AnimationMode = LOOP Flags = RANDOMSTART TransitionKey = None ParticleSysBone = None InfantryDustTrails End AliasConditionState = MOVING FIRING_A AliasConditionState = MOVING BETWEEN_FIRING_SHOTS_A AliasConditionState = MOVING RELOADING_A ConditionState = MOVING REALLYDAMAGED Animation = UIHERO_SKL.UIHERO_IRNA 30 AnimationMode = LOOP Flags = RANDOMSTART TransitionKey = None ParticleSysBone = None InfantryDustTrails End AliasConditionState = MOVING FIRING_A REALLYDAMAGED AliasConditionState = MOVING BETWEEN_FIRING_SHOTS_A REALLYDAMAGED AliasConditionState = MOVING RELOADING_A REALLYDAMAGED ; --- cheering ConditionState = SPECIAL_CHEERING Animation = UIHERO_SKL.UIHERO_CHA AnimationMode = LOOP End ConditionState = SPECIAL_CHEERING REALLYDAMAGED Animation = UIHERO_SKL.UIHERO_ICHA AnimationMode = LOOP End ; --- dying ConditionState = DYING Animation = UIHERO_SKL.UIHERO_DTA Animation = UIHERO_SKL.UIHERO_DTB Animation = UIHERO_SKL.UIHERO_IDTA Animation = UIHERO_SKL.UIHERO_IDTB AnimationMode = ONCE TransitionKey = TRANS_Dying End TransitionState = TRANS_Dying TRANS_Flailing Animation = UIHERO_SKL.UIHERO_ADTG21 AnimationMode = ONCE End ConditionState = DYING EXPLODED_FLAILING Animation = UIHERO_SKL.UIHERO_ADTG22 AnimationMode = LOOP TransitionKey = TRANS_Flailing End ConditionState = DYING EXPLODED_BOUNCING Animation = UIHERO_SKL.UIHERO_ADTG23 AnimationMode = ONCE TransitionKey = None End ; --- falling ConditionState = FREEFALL Animation = UIHERO_SKL.UIHERO_PFL AnimationMode = LOOP TransitionKey = TRANS_Falling End AliasConditionState = FREEFALL REALLYDAMAGED AliasConditionState = FREEFALL DYING ConditionState = PARACHUTING Animation = UIHERO_SKL.UIHERO_PHG AnimationMode = LOOP Flags = PRISTINE_BONE_POS_IN_FINAL_FRAME ; our bone positions should come from the last frame, rather than the first TransitionKey = TRANS_Chute End AliasConditionState = PARACHUTING REALLYDAMAGED AliasConditionState = PARACHUTING DYING TransitionState = TRANS_Falling TRANS_Chute Animation = UIHERO_SKL.UIHERO_POP AnimationMode = ONCE Flags = PRISTINE_BONE_POS_IN_FINAL_FRAME ; our bone positions should come from the last frame, rather than the first End TransitionState = TRANS_Chute TRANS_Stand Animation = UIHERO_SKL.UIHERO_PTD AnimationMode = ONCE End TransitionState = TRANS_Chute TRANS_StandInjured Animation = UIHERO_SKL.UIHERO_PTD AnimationMode = ONCE End ; --- surrender ; surrender is cut. sorry. (srj) ; ConditionState = SURRENDER ; Animation = UIHERO_SKL.UIHERO_SST ; AnimationMode = ONCE ; TransitionKey = TRANS_Surrender ; End ; TransitionState = TRANS_Stand TRANS_Surrender ; Animation = UIHERO_SKL.UIHERO_SUR ; AnimationMode = ONCE ; End ; ConditionState = SURRENDER REALLYDAMAGED ; Animation = UIHERO_SKL.UIHERO_ISST ; AnimationMode = ONCE ; TransitionKey = TRANS_SurrenderInjured ; End ; TransitionState = TRANS_StandInjured TRANS_SurrenderInjured ; Animation = UIHERO_SKL.UIHERO_ISUR ; AnimationMode = ONCE ; End End ; ***DESIGN parameters *** DisplayName = OBJECT:JarmenKell Side = GLA EditorSorting = INFANTRY TransportSlotCount = 1 ;how many "slots" we take in a transport (0 == not transportable) MaxSimultaneousOfType = 1 WeaponSet Conditions = None Weapon = PRIMARY GLAJarmenKellRifle Weapon = SECONDARY GLAJarmenKellVehiclePilotSniperRifle AutoChooseSources = PRIMARY FROM_PLAYER FROM_AI FROM_SCRIPT PreferredAgainst = SECONDARY VEHICLE ;AutoChooseSources = SECONDARY NONE ;ShareWeaponReloadTime = Yes End ; WeaponSet ; Conditions = SNIPEVEHICLE ; Weapon = PRIMARY GLAJarmenKellVehiclePilotSniperRifle ; End ArmorSet Conditions = None Armor = HumanArmor DamageFX = InfantryDamageFX End VisionRange = 200 ShroudClearingRange = 300 Prerequisites Object = GLABarracks Object = GLAPalace End BuildCost = 1500 BuildTime = 20.0 ;in seconds ExperienceValue = 50 50 100 150 ;Experience point value at each level ExperienceRequired = 0 100 200 400 ;Experience points needed to gain each level IsTrainable = Yes ;Can gain experience CrushableLevel = 2 ;What am I?: 0 = for infantry, 1 = for trees, 2 = general vehicles CommandSet = GLAInfantryJarmenKellCommandSet ; *** AUDIO Parameters *** VoiceSelect = JarmenKellVoiceSelect VoiceMove = JarmenKellVoiceMove VoiceGuard = JarmenKellVoiceMove VoiceAttack = JarmenKellVoiceAttack VoiceFear = JarmenKellVoiceFear SoundDie = JarmenKellVoiceDie SoundDieFire = DieByFireGLA SoundDieToxin = DieByToxinGLA SoundStealthOn = StealthOn SoundStealthOff = StealthOff ;SoundAmbient = JarmenKellSoundAmbient UnitSpecificSounds VoiceCreate = JarmenKellVoiceCreate VoiceSnipePilot = JarmenKellVoiceSnipe VoiceGarrison = JarmenKellVoiceGarrison VoiceEnter = JarmenKellVoiceMove VoiceEnterHostile = JarmenKellVoiceMove VoiceGetHealed = JarmenKellVoiceMove End ; *** ENGINEERING Parameters *** RadarPriority = UNIT ; note: per Dustin's comment, Hero units do not surrender KindOf = PRELOAD SELECTABLE CAN_ATTACK ATTACK_NEEDS_LINE_OF_SIGHT CAN_CAST_REFLECTIONS INFANTRY SALVAGER STEALTH_GARRISON SCORE HERO Body = ActiveBody ModuleTag_02 MaxHealth = 200.0 InitialHealth = 200.0 End Behavior = AIUpdateInterface ModuleTag_03 AutoAcquireEnemiesWhenIdle = Yes ;Stealthed ;MoodAttackCheckRate = 250 End Locomotor = SET_NORMAL JarmenKellLocomotor Behavior = PhysicsBehavior ModuleTag_04 Mass = 5.0 End Behavior = StealthUpdate ModuleTag_06 StealthDelay = 2000 ; msec StealthForbiddenConditions = ATTACKING InnateStealth = Yes OrderIdleEnemiesToAttackMeUponReveal = Yes End Behavior = CommandButtonHuntUpdate ModuleTag_07 ; allows use of command button hunt script with this unit. End Behavior = WeaponBonusUpgrade ModuleTag_08 TriggeredBy = Upgrade_GLAAPBullets End ;Hero units can't be squished! ;Behavior = SquishCollide ModuleTag_09 ; ;nothing ;End ; --- begin Death modules --- Behavior = SlowDeathBehavior ModuleTag_Death01 DeathTypes = ALL -CRUSHED -SPLATTED -EXPLODED -BURNED -POISONED -POISONED_BETA SinkDelay = 3000 SinkRate = 0.5 ; in Dist/Sec DestructionDelay = 8000 FX = INITIAL FX_GIDie End Behavior = SlowDeathBehavior ModuleTag_Death02 DeathTypes = NONE +CRUSHED +SPLATTED SinkDelay = 3000 SinkRate = 0.5 ; in Dist/Sec DestructionDelay = 8000 FX = INITIAL FX_GIDieCrushed End Behavior = SlowDeathBehavior ModuleTag_Death03 DeathTypes = NONE +EXPLODED SinkDelay = 3000 SinkRate = 0.5 ; in Dist/Sec DestructionDelay = 8000 FX = INITIAL FX_GIDie FlingForce = 8 FlingForceVariance = 3 FlingPitch = 60 FlingPitchVariance = 10 End Behavior = SlowDeathBehavior ModuleTag_Death04 DeathTypes = NONE +BURNED DestructionDelay = 0 FX = INITIAL FX_GIDie OCL = INITIAL OCL_FlamingInfantry End Behavior = SlowDeathBehavior ModuleTag_Death05 DeathTypes = NONE +POISONED DestructionDelay = 0 FX = INITIAL FX_GIDie OCL = INITIAL OCL_ToxicInfantry End Behavior = SlowDeathBehavior ModuleTag_Death06 ; don't forget to give it a new, unique module tag DeathTypes = NONE +POISONED_BETA DestructionDelay = 0 FX = INITIAL FX_GIDie OCL = INITIAL OCL_ToxicInfantryBeta ;you'll have to create this OCL and make it use the blue guys instead of green ones End ; --- end Death modules --- Behavior = PoisonedBehavior ModuleTag_14 PoisonDamageInterval = 100 ; Every this many msec I will retake the poison damage dealt me... PoisonDuration = 3000 ; ... for this long after last hit by poison damage End Geometry = CYLINDER GeometryMajorRadius = 10.0 GeometryMinorRadius = 10.0 GeometryHeight = 12.0 GeometryIsSmall = Yes Shadow = SHADOW_DECAL ShadowSizeX = 14; ShadowSizeY = 14; ShadowTexture = ShadowI; BuildCompletion = APPEARS_AT_RALLY_POINT End ;------------------------------------------------------------------------------ ;Tunnel Fanatic ;Now called the RPG Trooper Object GLAInfantryTunnelDefender ; *** ART Parameters *** SelectPortrait = SURPG_L ButtonImage = SURPG UpgradeCameo1 = Upgrade_GLAAPRockets ;UpgradeCameo2 = NONE ;UpgradeCameo3 = NONE ;UpgradeCameo4 = NONE ;UpgradeCameo5 = NONE Draw = W3DModelDraw ModuleTag_01 OkToChangeModelColor = Yes DefaultConditionState Model = UITunF_SKN IdleAnimation = UITunF_SKL.UITunF_STA 0 20 IdleAnimation = UITunF_SKL.UITunF_IDA IdleAnimation = UITunF_SKL.UITunF_IDB IdleAnimation = UITunF_SKL.UITunF_IDC AnimationMode = ONCE WeaponMuzzleFlash = PRIMARY MuzzleFX WeaponFireFXBone = PRIMARY Muzzle WeaponLaunchBone = PRIMARY Muzzle End ConditionState = MOVING Animation = UITunF_SKL.UITunF_WKA 16 Animation = UITunF_SKL.UITunF_WKB 30 Animation = UITunF_SKL.UITunF_WKC 30 Animation = UITunF_SKL.UITunF_RNA 15 Animation = UITunF_SKL.UITunF_RNB 25 AnimationMode = LOOP ParticleSysBone = None InfantryDustTrails End ConditionState = DYING Animation = UITunF_SKL.UITunF_DTA Animation = UITunF_SKL.UITunF_DTB AnimationMode = ONCE TransitionKey = TRANS_Dying End TransitionState = TRANS_Dying TRANS_Flailing Animation = UITunF_SKL.UITunF_ADTA1 Animation = UITunF_SKL.UITunF_ADTE1 Animation = UITunF_SKL.UITunF_ADTF1 AnimationMode = ONCE End ConditionState = DYING EXPLODED_FLAILING Animation = UITunF_SKL.UITunF_ADTA2 Animation = UITunF_SKL.UITunF_ADTE2 Animation = UITunF_SKL.UITunF_ADTF2 AnimationMode = LOOP TransitionKey = TRANS_Flailing End ConditionState = DYING EXPLODED_BOUNCING Animation = UITunF_SKL.UITunF_ADTA3 Animation = UITunF_SKL.UITunF_ADTE3 Animation = UITunF_SKL.UITunF_ADTF3 AnimationMode = ONCE TransitionKey = None End ConditionState = FIRING_A Animation = UITunF_SKL.UITunF_ATA AnimationMode = ONCE TransitionKey = TRANS_START_FIRING End ConditionState = BETWEEN_FIRING_SHOTS_A Animation = UITunF_SKL.UITunF_STA AnimationMode = ONCE ; this is basically a trick: this guy has a nontrivial animation for firing, ; and a long recycle time between shots. we want him to finish his fire animation ; (unless he's ordered to do something else), so this is just a handy trick that ; says, "if the previous state had this transition key, allow it to finish before ; switching to us, if possible". WaitForStateToFinishIfPossible = TRANS_START_FIRING End AliasConditionState = RELOADING_A ConditionState = SPECIAL_CHEERING Animation = UITUNF_SKL.UITUNF_CHA AnimationMode = LOOP End ; surrender is cut. sorry. (srj) ; ConditionState = SURRENDER ; Animation = UITUNF_SKL.UITUNF_SST ; AnimationMode = ONCE ; TransitionKey = TRANS_SurrenderKneeling ; End ; ;@TODO -- MISSING ANIMATION FILE ; ;ConditionState = SURRENDER MOVING ; ; Animation = UITUNF_SKL.UITUNF_SWKB ; ; AnimationMode = ONCE ; ; TransitionKey = TRANS_SurrenderMoving ; ;End ; TransitionState = TRANS_Stand TRANS_SurrenderKneeling ; Animation = UITUNF_SKL.UITUNF_SUR ; AnimationMode = ONCE ; End End ; ***DESIGN parameters *** DisplayName = OBJECT:TunnelDefender Side = GLA EditorSorting = INFANTRY TransportSlotCount = 1 ;how many "slots" we take in a transport (0 == not transportable) WeaponSet Conditions = None Weapon = PRIMARY TunnelDefenderRocketWeapon End ArmorSet Conditions = None Armor = HumanArmor DamageFX = InfantryDamageFX End VisionRange = 150 ShroudClearingRange = 400 ; Prerequisites ; Object = GLATunnelNetwork ; End BuildCost = 300 BuildTime = 5.0 ;in seconds ExperienceValue = 20 20 40 60 ;Experience point value at each level ExperienceRequired = 0 100 200 400 ;Experience points needed to gain each level IsTrainable = Yes ;Can gain experience CrushableLevel = 0 ;What am I?: 0 = for infantry, 1 = for trees, 2 = general vehicles CommandSet = GLAInfantryTunnelDefenderCommandSet ; *** AUDIO Parameters *** VoiceSelect = RPGTrooperVoiceSelect VoiceMove = RPGTrooperVoiceMove VoiceGuard = RPGTrooperVoiceMove VoiceAttack = RPGTrooperVoiceAttack SoundDie = RPGTrooperVoiceDie SoundDieFire = DieByFireGLA SoundDieToxin = DieByToxinGLA ; surrender is cut. sorry. (srj) ; VoiceSurrender = RPGTrooperVoiceSurrender VoiceFear = RPGTrooperVoiceFear UnitSpecificSounds VoiceCreate = RPGTrooperVoiceCreate VoiceGarrison = RPGTrooperVoiceGarrison VoiceEnter = RPGTrooperVoiceMove VoiceEnterHostile = RPGTrooperVoiceMove VoiceGetHealed = RPGTrooperVoiceMove End ; *** ENGINEERING Parameters *** RadarPriority = UNIT KindOf = PRELOAD SELECTABLE CAN_ATTACK ATTACK_NEEDS_LINE_OF_SIGHT CAN_CAST_REFLECTIONS INFANTRY SALVAGER SCORE Body = ActiveBody ModuleTag_02 MaxHealth = 100.0 InitialHealth = 100.0 End Behavior = AIUpdateInterface ModuleTag_03 AutoAcquireEnemiesWhenIdle = Yes End Locomotor = SET_NORMAL MissileDefenderLocomotor Behavior = PhysicsBehavior ModuleTag_04 Mass = 5.0 End Behavior = SquishCollide ModuleTag_06 ;nothing End ; --- begin Death modules --- Behavior = SlowDeathBehavior ModuleTag_Death01 DeathTypes = ALL -CRUSHED -SPLATTED -EXPLODED -BURNED -POISONED -POISONED_BETA SinkDelay = 3000 SinkRate = 0.5 ; in Dist/Sec DestructionDelay = 8000 FX = INITIAL FX_GIDie End Behavior = SlowDeathBehavior ModuleTag_Death02 DeathTypes = NONE +CRUSHED +SPLATTED SinkDelay = 3000 SinkRate = 0.5 ; in Dist/Sec DestructionDelay = 8000 FX = INITIAL FX_GIDieCrushed End Behavior = SlowDeathBehavior ModuleTag_Death03 DeathTypes = NONE +EXPLODED SinkDelay = 3000 SinkRate = 0.5 ; in Dist/Sec DestructionDelay = 8000 FX = INITIAL FX_GIDie FlingForce = 8 FlingForceVariance = 3 FlingPitch = 60 FlingPitchVariance = 10 End Behavior = SlowDeathBehavior ModuleTag_Death04 DeathTypes = NONE +BURNED DestructionDelay = 0 FX = INITIAL FX_GIDie OCL = INITIAL OCL_FlamingInfantry End Behavior = SlowDeathBehavior ModuleTag_Death05 DeathTypes = NONE +POISONED DestructionDelay = 0 FX = INITIAL FX_GIDie OCL = INITIAL OCL_ToxicInfantry End Behavior = SlowDeathBehavior ModuleTag_Death06 ; don't forget to give it a new, unique module tag DeathTypes = NONE +POISONED_BETA DestructionDelay = 0 FX = INITIAL FX_GIDie OCL = INITIAL OCL_ToxicInfantryBeta ;you'll have to create this OCL and make it use the blue guys instead of green ones End ; --- end Death modules --- Behavior = PoisonedBehavior ModuleTag_12 PoisonDamageInterval = 100 ; Every this many msec I will retake the poison damage dealt me... PoisonDuration = 3000 ; ... for this long after last hit by poison damage End Geometry = CYLINDER GeometryMajorRadius = 10.0 GeometryMinorRadius = 10.0 GeometryHeight = 12.0 GeometryIsSmall = Yes Shadow = SHADOW_DECAL ShadowSizeX = 14; ShadowSizeY = 14; ShadowTexture = ShadowI; BuildCompletion = APPEARS_AT_RALLY_POINT End ;------------------------------------------------------------------------------ ;***THESE UNITS ARE NOT SELECTABLE ANYMORE! To kill them, you must target ; the stinger site. If the weapon does particular types of damage, it'll ; kill guys inside first, then the site. Object GLAInfantryStingerSoldier ; *** ART Parameters *** SelectPortrait = SUStinger_L ButtonImage = SUStinger Draw = W3DModelDraw ModuleTag_01 OkToChangeModelColor = Yes DefaultConditionState Model = UISmsd_SKN IdleAnimation = UISmsd_SKL.UISmsd_STA 0 45 IdleAnimation = UISmsd_SKL.UISmsd_IDA IdleAnimation = UISmsd_SKL.UISmsd_IDB IdleAnimation = UISmsd_SKL.UISmsd_IDC IdleAnimation = UISmsd_SKL.UISmsd_IDD AnimationMode = ONCE WeaponMuzzleFlash = PRIMARY MuzzleFX WeaponFireFXBone = PRIMARY Exhaust WeaponLaunchBone = PRIMARY Muzzle WeaponFireFXBone = SECONDARY Exhaust WeaponLaunchBone = SECONDARY Muzzle WaitForStateToFinishIfPossible = TRANS_START_FIRING End AliasConditionState = BETWEEN_FIRING_SHOTS_A AliasConditionState = BETWEEN_FIRING_SHOTS_B AliasConditionState = RELOADING_A AliasConditionState = RELOADING_B ConditionState = MOVING Animation = UISmsd_SKL.UISmsd_WKB 25 AnimationMode = LOOP End ConditionState = DYING Animation = UISmsd_SKL.UISmsd_DTA Animation = UISmsd_SKL.UISmsd_DTB AnimationMode = ONCE TransitionKey = TRANS_Dying WaitForStateToFinishIfPossible = NONE ; We got a Key from Default state, but Death does not need to wait for firing to finish End TransitionState = TRANS_Dying TRANS_Flailing Animation = UISmsd_SKL.UISmsd_ADTF1 Animation = UISmsd_SKL.UISmsd_ADTG21 AnimationMode = ONCE End ConditionState = DYING EXPLODED_FLAILING Animation = UISmsd_SKL.UISmsd_ADTF2 Animation = UISmsd_SKL.UISmsd_ADTG22 AnimationMode = LOOP TransitionKey = TRANS_Flailing WaitForStateToFinishIfPossible = NONE ; We got a Key from Default state, but Death does not need to wait for firing to finish End ConditionState = DYING EXPLODED_BOUNCING Animation = UISmsd_SKL.UISmsd_ADTF3 Animation = UISmsd_SKL.UISmsd_ADTG23 AnimationMode = ONCE TransitionKey = None WaitForStateToFinishIfPossible = NONE ; We got a Key from Default state, but Death does not need to wait for firing to finish End ConditionState = FIRING_A Animation = UISmsd_SKL.UISmsd_ATA AnimationMode = ONCE TransitionKey = TRANS_START_FIRING End ; AliasConditionState is a new keyword that says, ; "give me another ConditionState exactly like the previous ; one, except with different conditions". Useful when you ; have several states that are the same with only different condition bits. ; these aliases handle the moving-between-shots case. (we can't actually move-and-fire at the same time.). AliasConditionState = MOVING FIRING_A AliasConditionState = MOVING RELOADING_A ConditionState = FIRING_B Animation = UISmsd_SKL.UISmsd_ATB AnimationMode = ONCE TransitionKey = TRANS_START_FIRINGB End ; AliasConditionState is a new keyword that says, ; "give me another ConditionState exactly like the previous ; one, except with different conditions". Useful when you ; have several states that are the same with only different condition bits. ; these aliases handle the moving-between-shots case. (we can't actually move-and-fire at the same time.). AliasConditionState = MOVING FIRING_B AliasConditionState = MOVING RELOADING_B ConditionState = SPECIAL_CHEERING Animation = UISMSD_SKL.UISMSD_CHA AnimationMode = LOOP End End ; ***DESIGN parameters *** DisplayName = OBJECT:StingerSoldier Side = GLA EditorSorting = INFANTRY TransportSlotCount = 1 ;how many "slots" we take in a transport (0 == not transportable) WeaponSet Conditions = None Weapon = PRIMARY StingerMissileWeapon AutoChooseSources = PRIMARY FROM_PLAYER FROM_AI FROM_SCRIPT Weapon = SECONDARY StingerMissileWeaponAir PreferredAgainst = SECONDARY BALLISTIC_MISSILE AIRCRAFT End ArmorSet Conditions = None Armor = StingerSoldierArmor ;Extra protection due to being enclosed by the stinger site. DamageFX = None End VisionRange = 400.0 ShroudClearingRange = 400 Prerequisites Object = GLABarracks End BuildCost = 100 BuildTime = 1.0 ;in seconds CrushableLevel = 0 ;What am I?: 0 = for infantry, 1 = for trees, 2 = general vehicles ;I don't know what is right, but this is SO wrong. ; CommandSet = GLAInfantryRebelCommandSet ; *** AUDIO Parameters *** VoiceSelect = StingerSoldierVoiceSelect VoiceMove = StingerSoldierVoiceMove VoiceAttack = StingerSoldierVoiceAttack SoundDie = StingerSoldierVoiceDie SoundDieFire = DieByFireGLA SoundDieToxin = DieByToxinGLA ; *** ENGINEERING Parameters *** RadarPriority = UNIT KindOf = PRELOAD CAN_ATTACK ATTACK_NEEDS_LINE_OF_SIGHT CAN_CAST_REFLECTIONS INFANTRY SALVAGER CLICK_THROUGH SPAWNS_ARE_THE_WEAPONS Body = ActiveBody ModuleTag_02 MaxHealth = 100.0 InitialHealth = 100.0 End Behavior = StealthDetectorUpdate ModuleTag_16 DetectionRate = 500 ; how often to rescan for stealthed things in my sight (msec) DetectionRange = 200 ;Dustin, enable this for independant balancing! CanDetectWhileGarrisoned = No ;Garrisoned means being in a structure that you units can shoot out of. CanDetectWhileContained = No ;Contained means being in a transport or tunnel network. End Behavior = AIUpdateInterface ModuleTag_03 AutoAcquireEnemiesWhenIdle = Yes ATTACK_BUILDINGS MoodAttackCheckRate = 250 End Locomotor = SET_NORMAL BasicHumanLocomotor Behavior = PhysicsBehavior ModuleTag_04 Mass = 5.0 End Behavior = SlavedUpdate ModuleTag_06 ;nothing End ; Behavior = ProneUpdate ModuleTag_07 ; DamageToFramesRatio = 5.0 ; I take 20 damage, I go prone for 100. For this guy, if any of my buds or my building take damage too (I have SlaveUpdate + ProneUpdate) Prone may get cut by itself though ; End Behavior = SquishCollide ModuleTag_08 ;nothing End ; --- begin Death modules --- Behavior = SlowDeathBehavior ModuleTag_Death01 DeathTypes = ALL -CRUSHED -SPLATTED -EXPLODED -BURNED -POISONED -POISONED_BETA SinkDelay = 3000 SinkRate = 0.5 ; in Dist/Sec DestructionDelay = 8000 FX = INITIAL FX_GIDie End Behavior = SlowDeathBehavior ModuleTag_Death02 DeathTypes = NONE +CRUSHED +SPLATTED SinkDelay = 3000 SinkRate = 0.5 ; in Dist/Sec DestructionDelay = 8000 FX = INITIAL FX_GIDieCrushed End Behavior = SlowDeathBehavior ModuleTag_Death03 DeathTypes = NONE +EXPLODED SinkDelay = 3000 SinkRate = 0.5 ; in Dist/Sec DestructionDelay = 8000 FX = INITIAL FX_GIDie FlingForce = 8 FlingForceVariance = 3 FlingPitch = 60 FlingPitchVariance = 10 End Behavior = SlowDeathBehavior ModuleTag_Death04 DeathTypes = NONE +BURNED DestructionDelay = 0 FX = INITIAL FX_GIDie OCL = INITIAL OCL_FlamingInfantry End Behavior = SlowDeathBehavior ModuleTag_Death05 DeathTypes = NONE +POISONED DestructionDelay = 0 FX = INITIAL FX_GIDie OCL = INITIAL OCL_ToxicInfantry End Behavior = SlowDeathBehavior ModuleTag_Death06 ; don't forget to give it a new, unique module tag DeathTypes = NONE +POISONED_BETA DestructionDelay = 0 FX = INITIAL FX_GIDie OCL = INITIAL OCL_ToxicInfantryBeta ;you'll have to create this OCL and make it use the blue guys instead of green ones End ; --- end Death modules --- Behavior = PoisonedBehavior ModuleTag_14 PoisonDamageInterval = 100 ; Every this many msec I will retake the poison damage dealt me... PoisonDuration = 3000 ; ... for this long after last hit by poison damage End Geometry = CYLINDER GeometryMajorRadius = 10.0 GeometryMinorRadius = 10.0 GeometryHeight = 12.0 GeometryIsSmall = Yes Shadow = SHADOW_DECAL ShadowSizeX = 14 ShadowSizeY = 14 ShadowTexture = ShadowI; BuildCompletion = APPEARS_AT_RALLY_POINT End ;------------------------------------------------------------------------------ Object GLAInfantryTerrorist ; *** ART Parameters *** SelectPortrait = SUTerrorist_L ButtonImage = SUTerrorist ;UpgradeCameo1 = NONE ;UpgradeCameo2 = NONE ;UpgradeCameo3 = NONE ;UpgradeCameo4 = NONE ;UpgradeCameo5 = NONE Draw = W3DModelDraw ModuleTag_01 OkToChangeModelColor = Yes DefaultConditionState Model = UITRST_SKN IdleAnimation = UITRST_SKL.UITRST_STA 0 25 ;Regular spice animations IdleAnimation = UITRST_SKL.UITRST_IDA IdleAnimation = UITRST_SKL.UITRST_IDB AnimationMode = ONCE TransitionKey = TRANS_Stand End ConditionState = REALLYDAMAGED Animation = UITRST_SKL.UITRST_STA AnimationMode = LOOP TransitionKey = TRANS_Stand End ConditionState = FREEFALL Animation = UITRST_SKL.UITRST_PFL AnimationMode = LOOP TransitionKey = TRANS_Falling End AliasConditionState = FREEFALL REALLYDAMAGED AliasConditionState = FREEFALL DYING ConditionState = PARACHUTING Animation = UITRST_SKL.UITRST_PHG AnimationMode = LOOP Flags = PRISTINE_BONE_POS_IN_FINAL_FRAME ; our bone positions should come from the last frame, rather than the first TransitionKey = TRANS_Chute End AliasConditionState = PARACHUTING REALLYDAMAGED AliasConditionState = PARACHUTING DYING ConditionState = MOVING Animation = UITRST_SKL.UITRST_RNA 15 AnimationMode = LOOP Flags = RANDOMSTART TransitionKey = None ParticleSysBone = None InfantryDustTrails End AliasConditionState = MOVING REALLYDAMAGED ConditionState = ATTACKING MOVING Animation = UITRST_SKL.UITRST_RNB 10 AnimationMode = LOOP Flags = RANDOMSTART TransitionKey = None End AliasConditionState = ATTACKING MOVING REALLYDAMAGED ConditionState = PREATTACK_A Animation = UITRST_SKL.UITRST_ATA AnimationMode = ONCE End AliasConditionState = PREATTACK_A MOVING ConditionState = DYING Animation = UITRST_SKL.UITRST_DTA Animation = UITRST_SKL.UITRST_DTC AnimationMode = ONCE TransitionKey = TRANS_Dying End TransitionState = TRANS_Dying TRANS_Flailing Animation = UITRST_SKL.UITRST_ADTE1 AnimationMode = ONCE End ConditionState = DYING EXPLODED_FLAILING Animation = UITRST_SKL.UITRST_ADTE2 AnimationMode = LOOP TransitionKey = TRANS_Flailing End ConditionState = DYING EXPLODED_BOUNCING Animation = UITRST_SKL.UITRST_ADTE3 AnimationMode = ONCE TransitionKey = None End ConditionState = SPECIAL_CHEERING Animation = UITRST_SKL.UITRST_CHA AnimationMode = LOOP End ; surrender is cut. sorry. (srj) ; ConditionState = SURRENDER ; Animation = UITRST_SKL.UITRST_SST ; AnimationMode = ONCE ; TransitionKey = TRANS_SurrenderKneeling ; End ; ;@TODO -- MISSING ANIMATION FILE ; ;ConditionState = SURRENDER MOVING ; ; Animation = UITRST_SKL.UITRST_SWKB ; ; AnimationMode = ONCE ; ; TransitionKey = TRANS_SurrenderMoving ; ;End ; TransitionState = TRANS_Stand TRANS_SurrenderKneeling ; Animation = UITRST_SKL.UITRST_SUR ; AnimationMode = ONCE ; End TransitionState = TRANS_Falling TRANS_Chute Animation = UITRST_SKL.UITRST_POP AnimationMode = ONCE Flags = PRISTINE_BONE_POS_IN_FINAL_FRAME ; our bone positions should come from the last frame, rather than the first End TransitionState = TRANS_Chute TRANS_Stand Animation = UITRST_SKL.UITRST_PTD AnimationMode = ONCE End End ; ***DESIGN parameters *** DisplayName = OBJECT:Terrorist Side = GLA EditorSorting = INFANTRY TransportSlotCount = 1 ;how many "slots" we take in a transport (0 == not transportable) WeaponSet Conditions = None ;Kill himself so we can use FireWeaponWhenDead to fire the real weapon -- and use UNRESISTABLE ;damage to do ini logic for type of death to play -- unresistable for success. Weapon = PRIMARY TerroristSuicideWeapon End ArmorSet Conditions = None Armor = HumanArmor DamageFX = InfantryDamageFX End VisionRange = 150 ShroudClearingRange = 200 Prerequisites Object = GLABarracks End BuildCost = 200 BuildTime = 5.0 ;in seconds CrushableLevel = 0 ;What am I?: 0 = for infantry, 1 = for trees, 2 = general vehicles CommandSet = GLAInfantryTerroristCommandSet ; *** AUDIO Parameters *** VoiceSelect = TerroristVoiceSelect VoiceMove = TerroristVoiceMove VoiceAttack = TerroristVoiceAttack SoundDie = TerroristVoiceDie SoundDieFire = DieByFireGLA SoundDieToxin = DieByToxinGLA VoiceFear = TerroristVoiceFear VoiceGuard = TerroristVoiceMove UnitSpecificSounds VoiceGarrison = TerroristVoiceMove VoiceCreate = TerroristVoiceCreate VoiceEnter = TerroristVoiceEnter VoiceEnterHostile = TerroristVoiceEnterHostile VoiceGetHealed = TerroristVoiceMove End ; *** ENGINEERING Parameters *** RadarPriority = UNIT ; Terrorists do not surrender! KindOf = PRELOAD SELECTABLE CAN_ATTACK ATTACK_NEEDS_LINE_OF_SIGHT CAN_CAST_REFLECTIONS INFANTRY SALVAGER SCORE Body = ActiveBody ModuleTag_02 MaxHealth = 120.0 InitialHealth = 120.0 End ExperienceValue = 20 20 20 20 ; Experience point value at each level Behavior = AIUpdateInterface ModuleTag_03 AutoAcquireEnemiesWhenIdle = Yes End Locomotor = SET_NORMAL FastHumanLocomotor Behavior = PhysicsBehavior ModuleTag_04 Mass = 5.0 End ;Kris Behavior = ConvertToCarBombCrateCollide ModuleTag_06 RequiredKindOf = VEHICLE ; we only give our bonus to VEHICLEs we collide with ;ForbiddenKindOf = TRANSPORT DOZER ; but not to TRANSPORTs or DOZERs! FXList = FX_MakeCarBombSuccess End Behavior = SquishCollide ModuleTag_07 ;nothing End ; --- begin Death modules --- Behavior = SlowDeathBehavior ModuleTag_Death01 DeathTypes = ALL -SUICIDED -POISONED -POISONED_BETA SinkDelay = 3000 SinkRate = 0.5 ; in Dist/Sec DestructionDelay = 8000 FX = INITIAL FX_GIDie End ;POISON_DEATHS POISON_DEATHS POISON_DEATHS POISON_DEATHS Behavior = SlowDeathBehavior ModuleTag_Death02 DeathTypes = NONE +POISONED DestructionDelay = 0 FX = INITIAL FX_GIDie OCL = INITIAL OCL_ToxicInfantry End Behavior = SlowDeathBehavior ModuleTag_Death06 ; don't forget to give it a new, unique module tag DeathTypes = NONE +POISONED_BETA DestructionDelay = 0 FX = INITIAL FX_GIDie OCL = INITIAL OCL_ToxicInfantryBeta ;you'll have to create this OCL and make it use the blue guys instead of green ones End ;POISON_DEATHS POISON_DEATHS POISON_DEATHS POISON_DEATHS ; I have just pulled my ripcord, and this ain't no parachute! Behavior = SlowDeathBehavior ModuleTag_Death03 DeathTypes = NONE +SUICIDED SinkDelay = 3000 SinkRate = 0.5 ; in Dist/Sec DestructionDelay = 8000 FX = INITIAL FX_TerroristExplode FlingForce = 8 FlingForceVariance = 3 FlingPitch = 60 FlingPitchVariance = 10 End Behavior = FireWeaponWhenDeadBehavior ModuleTag_Death04 DeathWeapon = SuicideDynamitePack StartsActive = Yes ; turned on by upgrade DeathTypes = NONE +SUICIDED +CRUSHED +SPLATTED +LASERED +BURNED +EXPLODED End ; --- end Death modules --- Behavior = PoisonedBehavior ModuleTag_14 PoisonDamageInterval = 100 ; Every this many msec I will retake the poison damage dealt me... PoisonDuration = 3000 ; ... for this long after last hit by poison damage End Geometry = CYLINDER GeometryMajorRadius = 10.0 GeometryMinorRadius = 10.0 GeometryHeight = 12.0 GeometryIsSmall = Yes Shadow = SHADOW_DECAL ShadowSizeX = 14; ShadowSizeY = 14; ShadowTexture = ShadowI; BuildCompletion = APPEARS_AT_RALLY_POINT End ;------------------------------------------------------------------------------ ;------------------------------------------------------------------------------ Object GLAInfantryAngryMobNexus ;**** ART Parameters ************************** SelectPortrait = SUAngryMob_L ButtonImage = SUAngryMob UpgradeCameo1 = Upgrade_GLAArmTheMob ;UpgradeCameo2 = NONE ;UpgradeCameo3 = NONE ;UpgradeCameo4 = NONE ;UpgradeCameo5 = NONE Draw = W3DModelDraw ModuleTag_01 OkToChangeModelColor = Yes DefaultConditionState Model = None ; Model = AVBomber_B End End ;****DESIGN parameters ************************** DisplayName = OBJECT:AngryMobNexus Side = GLA RadarPriority = NOT_ON_RADAR EditorSorting = INFANTRY TransportSlotCount = 1 ;how many "slots" we take in a transport (0 == not transportable) WeaponSet Conditions = None Weapon = PRIMARY GLAAngryMobNexusHarmlessWeapon Weapon = SECONDARY GLAAngryMobNexusHarmlessWeapon Weapon = TERTIARY GLAAngryMobNexusHarmlessWeapon End ArmorSet Conditions = None Armor = InvulnerableAllArmor DamageFX = None End BuildCost = 800 BuildTime = 15.0 ;in seconds VisionRange = 150 ; it can scout for the spawn ShroudClearingRange = 0 Prerequisites Object = GLABarracks Object = GLAPalace End ExperienceValue = 5 5 5 5 ;Experience point value at each level IsTrainable = No CommandSet = GLAInfantryAngryMobCommandSet; ;**** AUDIO Parameters ***************************** VoiceSelect = AngryMobVoiceSelect VoiceMove = AngryMobVoiceMove VoiceGuard = AngryMobVoiceMove VoiceAttack = AngryMobVoiceAttack SoundMoveStart = NoSound SoundAmbient = AngryMobAmbientLoop SoundAmbientRubble = NoSound SoundDie = CivilianArabMaleDie SoundDieFire = DieByFireGLA SoundDieToxin = DieByToxinGLA UnitSpecificSounds VoiceCreate = AngryMobVoiceCreate End ;**** ENGINEERING Parameters ****************************** RadarPriority = UNIT KindOf = PRELOAD CAN_ATTACK INFANTRY MOB_NEXUS ATTACK_NEEDS_LINE_OF_SIGHT NO_COLLIDE SELECTABLE SCORE Body = ImmortalBody ModuleTag_02 MaxHealth = 99999.0 InitialHealth = 99999.0 End Behavior = AIUpdateInterface ModuleTag_03 AutoAcquireEnemiesWhenIdle = Yes End Locomotor = SET_NORMAL AngryMobNexusLocomotor ;Important! don't make the Nexus any faster! Locomotor = SET_WANDER AngryMobNexusLocomotor ;Important! don't make the Nexus any faster! Locomotor = SET_PANIC AngryMobNexusLocomotor ;Important! don't make the Nexus any faster! ; Locomotor = SET_NORMAL WanderHumanLocomotor ;Important! don't make the Nexus any faster! ; Locomotor = SET_WANDER WanderHumanLocomotor ;Important! don't make the Nexus any faster! ; Locomotor = SET_PANIC WanderHumanLocomotor ;Important! don't make the Nexus any faster! Behavior = PhysicsBehavior ModuleTag_04 Mass = 50.0 End Behavior = SpawnBehavior ModuleTag_05 SpawnNumber = 10 SpawnReplaceDelay = 30000 ; 30 seconds SpawnTemplateName = GLAInfantryAngryMobPistol01 ; Aladdin SpawnTemplateName = GLAInfantryAngryMobRock02 ; Woman in the Gypsy Costume SpawnTemplateName = GLAInfantryAngryMobMolotov02 ; The Lady with the hot sauce SpawnTemplateName = GLAInfantryAngryMobPistol03 ; Skinny Guy with the Green Beret SpawnTemplateName = GLAInfantryAngryMobRock04 ; Fat guy with the tank top SpawnTemplateName = GLAInfantryAngryMobMolotov02 ; The Lady with the hot sauce SpawnTemplateName = GLAInfantryAngryMobPistol05 ; The robed dude with the Man-Veil ExitByBudding = Yes;! InitialBurst = 5 ; the first set of 5 will not delay OneShot = No AggregateHealth = Yes End Behavior = QueueProductionExitUpdate ModuleTag_06 UnitCreatePoint = X: 0.0 Y: 0.0 Z:0.0 NaturalRallyPoint = X: 0.0 Y: 0.0 Z:0.0 ExitDelay = 5000 ; 5 sec InitialBurst = 5 ; the first set of 5 will not delay End Behavior = DestroyDie ModuleTag_07 DeathTypes = ALL End Geometry = CYLINDER GeometryMajorRadius = 1.0 GeometryMinorRadius = 1.0 GeometryHeight = 1.0 GeometryIsSmall = Yes Shadow = SHADOW_VOLUME End ;------------------------------------------------------------------------------ ;------------------------------------------------------------------------------ Object GLAInfantryAngryMobPistol01 ;**** ART Parameters *** Draw = W3DModelDraw DrawTag_01 OkToChangeModelColor = Yes ; WHILE CARRYING PISTOL ;--------------------------------------------------------- DefaultConditionState ;Idle with Pistol Holstered Model = UIMOB01_SKN IdleAnimation = UIMOB01_SKL.UIMOB01_IDA1 0 12 IdleAnimation = UIMOB01_SKL.UIMOB01_IDA2 0 5 IdleAnimation = UIMOB01_SKL.UIMOB01_CHA 0 5 IdleAnimation = UIMOB01_SKL.UIMOB01_STA 0 5 AnimationMode = ONCE AnimationSpeedFactorRange 0.9 1.1 TransitionKey = TRANS_STAND_A WeaponFireFXBone = PRIMARY Muzzle WeaponMuzzleFlash = PRIMARY MuzzleFX WeaponFireFXBone = SECONDARY MuzzleAK WeaponMuzzleFlash = SECONDARY MuzzleAKFX End ; Drawing pistol ConditionState = PREATTACK_A Animation = UIMOB01_SKL.UIMOB01_ATA1_ST ; start firing AnimationMode = ONCE End AliasConditionState = PREATTACK_A FIRING_A AliasConditionState = PREATTACK_A BETWEEN_FIRING_SHOTS_A ; Firing pistol ConditionState = FIRING_A Animation = UIMOB01_SKL.UIMOB01_ATA1_LP ; looping firing AnimationMode = LOOP TransitionKey = TRANS_FIRING_A End AliasConditionState = BETWEEN_FIRING_SHOTS_A ConditionState = RELOADING_A Animation = UIMOB01_SKL.UIMOB01_ATA1_ED ; end firing AnimationMode = ONCE End ; This transition allows him to put his gun away when he's finished attacking. TransitionState = TRANS_FIRING_A TRANS_STAND_A Animation = UIMOB01_SKL.UIMOB01_ATA1_ED ; end firing AnimationMode = ONCE End ConditionState = MOVING Animation = UIMOB01_SKL.UIMOB01_RNA AnimationMode = LOOP Flags = RANDOMSTART TransitionKey = MOVING ParticleSysBone = None InfantryDustTrails End AliasConditionState = MOVING RELOADING_A AliasConditionState = MOVING PREATTACK_A AliasConditionState = MOVING FIRING_A AliasConditionState = MOVING BETWEEN_FIRING_SHOTS_A AliasConditionState = MOVING RELOADING_C RELOADING_A AliasConditionState = MOVING PREATTACK_C BETWEEN_FIRING_SHOTS_A ConditionState = DYING Animation = UIMOB01_SKL.UIMOB01_DA1 Animation = UIMOB01_SKL.UIMOB01_DA2 AnimationMode = ONCE TransitionKey = TRANS_Dying End ConditionState = SPECIAL_CHEERING Animation = UIMOB01_SKL.UIMOB01_CHA AnimationMode = ONCE End ;-------------------------------------------------------- ; TRANSITION FROM PISTOL TO AK47 TransitionState = TRANS_STAND_A TRANS_STAND_AK Animation = UIMOB01_SKL.UIMOB01_TA-D AnimationMode = ONCE End ; WHILE CARRYING AK47 ;--------------------------------------------------------- ConditionState WEAPONSET_PLAYER_UPGRADE ;Idle with AK Slung Model = UIMOB01_SKN IdleAnimation = UIMOB01_SKL.UIMOB01_IDD1 0 6 IdleAnimation = UIMOB01_SKL.UIMOB01_IDD2 0 6 IdleAnimation = UIMOB01_SKL.UIMOB01_CHD 0 6 IdleAnimation = UIMOB01_SKL.UIMOB01_STD AnimationMode = ONCE AnimationSpeedFactorRange 0.9 1.1 TransitionKey = TRANS_STAND_AK End ConditionState = MOVING WEAPONSET_PLAYER_UPGRADE Animation = UIMOB01_SKL.UIMOB01_RND AnimationMode = LOOP Flags = RANDOMSTART TransitionKey = MOVING_AK End ConditionState = DYING WEAPONSET_PLAYER_UPGRADE Animation = UIMOB01_SKL.UIMOB01_DD1 Animation = UIMOB01_SKL.UIMOB01_DD2 AnimationMode = ONCE TransitionKey = TRANS_Dying End ConditionState = SPECIAL_CHEERING WEAPONSET_PLAYER_UPGRADE Animation = UIMOB01_SKL.UIMOB01_CHD AnimationMode = ONCE End ; Drawing AK47 ConditionState = PREATTACK_B WEAPONSET_PLAYER_UPGRADE Animation = UIMOB01_SKL.UIMOB01_ATD1_ST ; start firing AnimationMode = ONCE End AliasConditionState = PREATTACK_B FIRING_B WEAPONSET_PLAYER_UPGRADE AliasConditionState = PREATTACK_B BETWEEN_FIRING_SHOTS_B WEAPONSET_PLAYER_UPGRADE ; Firing Gun ConditionState = FIRING_B WEAPONSET_PLAYER_UPGRADE Animation = UIMOB01_SKL.UIMOB01_ATD1_LP ; looping firing AnimationMode = LOOP WeaponFireFXBone = SECONDARY MuzzleAK WeaponMuzzleFlash = SECONDARY MuzzleAKFX TransitionKey = TRANS_FIRING_AK End AliasConditionState = BETWEEN_FIRING_SHOTS_B WEAPONSET_PLAYER_UPGRADE ConditionState = RELOADING_B WEAPONSET_PLAYER_UPGRADE Animation = UIMOB01_SKL.UIMOB01_ATD1_ED ; end firing AnimationMode = ONCE End ; This transition allows him to put his gun away when he's finished attacking. TransitionState = TRANS_FIRING_AK TRANS_STAND_AK Animation = UIMOB01_SKL.UIMOB01_ATD1_ED ; end firing AnimationMode = ONCE End ; ;Throwing bottle---------------------------------------------------------------- ; ConditionState = PREATTACK_C ; Animation = UIMOB01_SKL.UIMOB01_ATCA_BF ; the wind up ; End ; AliasConditionState = PREATTACK_C FIRING_A ; AliasConditionState = PREATTACK_C RELOADING_A ; AliasConditionState = PREATTACK_C BETWEEN_FIRING_SHOTS_A ; ; ConditionState = FIRING_C ; Animation = UIMOB01_SKL.UIMOB01_ATCA_AF ; the release and follow-thru ; TransitionKey = TRANS_THROW ; End ; AliasConditionState = FIRING_C BETWEEN_FIRING_SHOTS_A ; ; ConditionState RELOADING_C ; Animation =UIMOB01_SKL.UIMOB01_IDA1 ; WaitForStateToFinishIfPossible = TRANS_THROW ; universal hub for follow-thru ; End ; AliasConditionState = RELOADING_C RELOADING_A ; AliasConditionState = RELOADING_C FIRING_A ; AliasConditionState = RELOADING_C BETWEEN_FIRING_SHOTS_A ; TransitionState = TRANSXXX TRANS_THROW ; Animation = UIMOB01_SKL.UIMOB01_XXXXXXXXputaway gun and take out bottle ; End ; TransitionState = TRANS_THROW TRANS_FIRING_A ; Animation = UIMOB01_SKL.UIMOB01_XXXXXXXXputaway bottle and get PISTOL ; End ; TransitionState = TRANSXXXAK TRANS_THROW ; Animation = UIMOB01_SKL.UIMOB01_XXXXXXXXputaway AK and take out bottle ; End ; TransitionState = TRANS_THROW TRANS_FIRING_AK ; Animation = UIMOB01_SKL.UIMOB01_XXXXXXXXputaway bottle and get AK ; End ;-------------------------------------------------------- TransitionState = TRANS_Dying TRANS_Flailing Animation = UIMOB01_SKL.UIMOB01_A_ADTE1 Animation = UIMOB01_SKL.UIMOB01_D_ADTE1 AnimationMode = ONCE End ConditionState = DYING EXPLODED_FLAILING Animation = UIMOB01_SKL.UIMOB01_A_ADTE2 Animation = UIMOB01_SKL.UIMOB01_D_ADTE2 AnimationMode = LOOP TransitionKey = TRANS_Flailing End ConditionState = DYING EXPLODED_BOUNCING Animation = UIMOB01_SKL.UIMOB01_A_ADTE3 Animation = UIMOB01_SKL.UIMOB01_D_ADTE3 AnimationMode = ONCE TransitionKey = None End End ;**** DESIGN parameters *** DisplayName = OBJECT:AngryMob Side = GLA EditorSorting = INFANTRY TransportSlotCount = 1 ;how many "slots" we take in a transport (0 == not transportable) WeaponSet Conditions = None Weapon = PRIMARY GLAAngryMobPistolWeapon End WeaponSet Conditions = PLAYER_UPGRADE Weapon = PRIMARY GLAAngryMobAK47NoDamageWeapon ; for atttacking in AK-proof conditions Weapon = SECONDARY GLAAngryMobAK47Weapon End ArmorSet Conditions = None Armor = HumanArmor DamageFX = InfantryDamageFX End VisionRange = 150 ShroudClearingRange = 150 Prerequisites Object = GLABarracks End BuildCost = 100 BuildTime = 0.0 ExperienceValue = 5 5 5 5 ;Experience point value at each level ExperienceRequired = 0 150 450 900 ;Experience points needed to gain each level IsTrainable = Yes ;Can gain experience CrushableLevel = 0 ;What am I?: 0 = for infantry, 1 = for trees, 2 = general vehicles ; *** AUDIO Parameters *** VoiceSelect = NoSound VoiceMove = NoSound VoiceAttack = NoSound SoundDie = CivilianArabMaleDie ;**** ENGINEERING Parameters *** ;MOB01 RadarPriority = UNIT KindOf = PRELOAD SELECTABLE CAN_ATTACK ATTACK_NEEDS_LINE_OF_SIGHT CAN_CAST_REFLECTIONS INFANTRY SALVAGER IGNORED_IN_GUI ;NO_COLLIDE ;Lorenzen disables Body = ActiveBody BodyTag_01 MaxHealth = 50.0 InitialHealth = 50.0 End Behavior = AIUpdateInterface ModuleTag_03 AutoAcquireEnemiesWhenIdle = Yes End Behavior = MobMemberSlavedUpdate ModuleTag_04 MustCatchUpRadius = 40 NoNeedToCatchUpRadius = 15 Squirrelliness = 0.05 CatchUpCrisisBailTime = 30; this is in calls to this update, not in frames End Locomotor = SET_NORMAL AngryMobNormalLocomotor Locomotor = SET_WANDER AngryMobWanderLocomotor Locomotor = SET_PANIC AngryMobPanicLocomotor Behavior = PhysicsBehavior BehaviorTag_01 Mass = 5.0 End Behavior = SquishCollide ModuleTag_08 ;nothing End Behavior = WeaponSetUpgrade UpgradeTag_01 TriggeredBy = Upgrade_GLAArmTheMob End ; --- begin Death modules --- Behavior = SlowDeathBehavior DeathTag_01 DeathTypes = ALL -CRUSHED -SPLATTED -EXPLODED -BURNED -POISONED SinkDelay = 3000 SinkRate = 0.5 ; in Dist/Sec DestructionDelay = 8000 FX = INITIAL FX_GIDie End Behavior = SlowDeathBehavior DeathTag_02 DeathTypes = NONE +CRUSHED +SPLATTED SinkDelay = 3000 SinkRate = 0.5 ; in Dist/Sec DestructionDelay = 8000 FX = INITIAL FX_GIDieCrushed End Behavior = SlowDeathBehavior DeathTag_03 DeathTypes = NONE +EXPLODED SinkDelay = 3000 SinkRate = 0.5 ; in Dist/Sec DestructionDelay = 8000 FX = INITIAL FX_GIDie FlingForce = 8 FlingForceVariance = 3 FlingPitch = 60 FlingPitchVariance = 10 End Behavior = SlowDeathBehavior DeathTag_04 DeathTypes = NONE +BURNED DestructionDelay = 0 FX = INITIAL FX_GIDie OCL = INITIAL OCL_FlamingInfantry End Behavior = SlowDeathBehavior DeathTag_05 DeathTypes = NONE +POISONED DestructionDelay = 0 FX = INITIAL FX_GIDie OCL = INITIAL OCL_ToxicInfantry End ; --- end Death modules --- Behavior = PoisonedBehavior BehaviorTag_02 PoisonDamageInterval = 100 ; Every this many msec I will retake the poison damage dealt me... PoisonDuration = 3000 ; ... for this long after last hit by poison damage End Geometry = CYLINDER GeometryMajorRadius = 4.0 ; very thin GeometryHeight = 12.0 GeometryIsSmall = Yes Shadow = SHADOW_DECAL ShadowSizeX = 14; ShadowSizeY = 14; ShadowTexture = ShadowI; BuildCompletion = APPEARS_AT_RALLY_POINT End ;------------------------------------------------------------------------------ ;------------------------------------------------------------------------------ Object GLAInfantryAngryMobRock02 ;**** ART Parameters *** Draw = W3DModelDraw ModuleTag_01 OkToChangeModelColor = Yes ; WHILE CARRYING ROCK ;--------------------------------------------------------- DefaultConditionState Model = UIMOB02_SKN IdleAnimation = UIMOB02_SKL.UIMOB02_IDB1 0 12 IdleAnimation = UIMOB02_SKL.UIMOB02_IDB2 0 5 IdleAnimation = UIMOB02_SKL.UIMOB02_CHB 0 5 IdleAnimation = UIMOB02_SKL.UIMOB02_STB 0 12 AnimationMode = ONCE AnimationSpeedFactorRange 0.9 1.1 TransitionKey = TRANS_STAND_A ;WeaponFireFXBone = PRIMARY "UIMOB02 R HAND" ;WeaponMuzzleFlash = PRIMARY "UIMOB02 R HAND" WeaponFireFXBone = SECONDARY MuzzleAK WeaponMuzzleFlash = SECONDARY MuzzleAKFX End ; Drawing rock ConditionState = PREATTACK_A Animation = UIMOB02_SKL.UIMOB02_ATB2_BF ; wind up AnimationMode = ONCE End AliasConditionState = PREATTACK_A FIRING_A AliasConditionState = PREATTACK_A BETWEEN_FIRING_SHOTS_A ; throwing rock ConditionState = FIRING_A Animation = UIMOB02_SKL.UIMOB02_ATB1_AF ; throw Animation = UIMOB02_SKL.UIMOB02_ATB2_AF ; throw AnimationMode = ONCE TransitionKey = TRANS_FIRING_A End ConditionState = BETWEEN_FIRING_SHOTS_A Animation = UIMOB02_SKL.UIMOB02_STB AnimationMode = ONCE ; this is basically a trick: this guy has a nontrivial animation for firing, ; and a long recycle time between shots. we want him to finish his fire animation ; (unless he's ordered to do something else), so this is just a handy trick that ; says, "if the previous state had this transition key, allow it to finish before ; switching to us, if possible". WaitForStateToFinishIfPossible = TRANS_FIRING_A End AliasConditionState = RELOADING_A ConditionState = MOVING Animation = UIMOB02_SKL.UIMOB02_RNB AnimationMode = LOOP Flags = RANDOMSTART TransitionKey = MOVING ParticleSysBone = None InfantryDustTrails End ConditionState = DYING Animation = UIMOB02_SKL.UIMOB02_DB1 Animation = UIMOB02_SKL.UIMOB02_DB2 AnimationMode = ONCE TransitionKey = TRANS_Dying End ConditionState = SPECIAL_CHEERING Animation = UIMOB02_SKL.UIMOB02_CHB Flags = RANDOMSTART AnimationMode = LOOP End ;-------------------------------------------------------- ; TRANSITION FROM PISTOL TO AK47 TransitionState = TRANS_STAND_A TRANS_STAND_AK Animation = UIMOB02_SKL.UIMOB02_TB-D AnimationMode = ONCE End ; WHILE CARRYING AK47 ;--------------------------------------------------------- ConditionState WEAPONSET_PLAYER_UPGRADE ;Idle with AK Slung Model = UIMOB02_SKN IdleAnimation = UIMOB02_SKL.UIMOB02_IDD1 0 6 IdleAnimation = UIMOB02_SKL.UIMOB02_IDD2 0 6 IdleAnimation = UIMOB02_SKL.UIMOB02_CHD 0 6 IdleAnimation = UIMOB02_SKL.UIMOB02_STD AnimationMode = ONCE AnimationSpeedFactorRange 0.9 1.1 TransitionKey = TRANS_STAND_AK End ConditionState = MOVING WEAPONSET_PLAYER_UPGRADE Animation = UIMOB02_SKL.UIMOB02_RND AnimationMode = LOOP Flags = RANDOMSTART TransitionKey = MOVING_AK End ConditionState = DYING WEAPONSET_PLAYER_UPGRADE Animation = UIMOB02_SKL.UIMOB02_DD1 Animation = UIMOB02_SKL.UIMOB02_DD2 AnimationMode = ONCE TransitionKey = TRANS_Dying End ConditionState = SPECIAL_CHEERING WEAPONSET_PLAYER_UPGRADE Animation = UIMOB02_SKL.UIMOB02_CHD AnimationMode = ONCE End ; Drawing AK47 ConditionState = PREATTACK_B WEAPONSET_PLAYER_UPGRADE Animation = UIMOB02_SKL.UIMOB02_ATD1_ST ; start firing AnimationMode = ONCE End AliasConditionState = PREATTACK_B FIRING_B WEAPONSET_PLAYER_UPGRADE AliasConditionState = PREATTACK_B BETWEEN_FIRING_SHOTS_B WEAPONSET_PLAYER_UPGRADE ; Firing Gun ConditionState = FIRING_B WEAPONSET_PLAYER_UPGRADE Animation = UIMOB02_SKL.UIMOB02_ATD1_LP ; looping firing AnimationMode = LOOP WeaponFireFXBone = SECONDARY MuzzleAK WeaponMuzzleFlash = SECONDARY MuzzleAKFX TransitionKey = TRANS_FIRING_AK End AliasConditionState = BETWEEN_FIRING_SHOTS_B WEAPONSET_PLAYER_UPGRADE ConditionState = RELOADING_B WEAPONSET_PLAYER_UPGRADE Animation = UIMOB02_SKL.UIMOB02_ATD1_ED ; end firing AnimationMode = ONCE End ; This transition allows him to put his gun away when he's finished attacking. TransitionState = TRANS_FIRING_AK TRANS_STAND_AK Animation = UIMOB02_SKL.UIMOB02_ATD1_ED ; end firing AnimationMode = ONCE End TransitionState = TRANS_Dying TRANS_Flailing Animation = UIMOB02_SKL.UIMOB02_B_ADTA1 Animation = UIMOB02_SKL.UIMOB02_D_ADTA1 AnimationMode = ONCE End ConditionState = DYING EXPLODED_FLAILING Animation = UIMOB02_SKL.UIMOB02_B_ADTA2 Animation = UIMOB02_SKL.UIMOB02_D_ADTA2 AnimationMode = LOOP TransitionKey = TRANS_Flailing End ConditionState = DYING EXPLODED_BOUNCING Animation = UIMOB02_SKL.UIMOB02_B_ADTA3 Animation = UIMOB02_SKL.UIMOB02_D_ADTA3 AnimationMode = ONCE TransitionKey = None End End ;**** DESIGN parameters *** DisplayName = OBJECT:AngryMob Side = GLA EditorSorting = INFANTRY TransportSlotCount = 1 ;how many "slots" we take in a transport (0 == not transportable) WeaponSet Conditions = None Weapon = PRIMARY GLAAngryMobRockProjectileWeapon End WeaponSet Conditions = PLAYER_UPGRADE Weapon = PRIMARY GLAAngryMobAK47NoDamageWeapon ; for atttacking in AK-proof conditions Weapon = SECONDARY GLAAngryMobAK47Weapon End ArmorSet Conditions = None Armor = HumanArmor DamageFX = InfantryDamageFX End VisionRange = 150 ShroudClearingRange = 150 Prerequisites Object = GLABarracks End BuildCost = 100 BuildTime = 0.0 ExperienceValue = 5 5 5 5 ;Experience point value at each level ExperienceRequired = 0 150 450 900 ;Experience points needed to gain each level IsTrainable = Yes ;Can gain experience CrushableLevel = 0 ;What am I?: 0 = for infantry, 1 = for trees, 2 = general vehicles ; *** AUDIO Parameters *** VoiceSelect = NoSound VoiceMove = NoSound VoiceAttack = NoSound SoundDie = CivilianArabFemaleDie ;**** ENGINEERING Parameters *** ;MOB02 RadarPriority = UNIT KindOf = PRELOAD SELECTABLE CAN_ATTACK ATTACK_NEEDS_LINE_OF_SIGHT CAN_CAST_REFLECTIONS INFANTRY SALVAGER IGNORED_IN_GUI ;NO_COLLIDE ;Lorenzen disables Body = ActiveBody BodyTag_01 MaxHealth = 50.0 InitialHealth = 50.0 End Behavior = AIUpdateInterface ModuleTag_03 AutoAcquireEnemiesWhenIdle = Yes End Behavior = MobMemberSlavedUpdate ModuleTag_04 MustCatchUpRadius = 40 NoNeedToCatchUpRadius = 15 Squirrelliness = 0.05 CatchUpCrisisBailTime = 30; this is in calls to this update, not in frames End Locomotor = SET_NORMAL AngryMobNormalLocomotor Locomotor = SET_WANDER AngryMobWanderLocomotor Locomotor = SET_PANIC AngryMobPanicLocomotor Behavior = PhysicsBehavior ModuleTag_05 Mass = 5.0 End Behavior = SquishCollide ModuleTag_08 ;nothing End Behavior = WeaponSetUpgrade UpgradeTag_01 TriggeredBy = Upgrade_GLAArmTheMob End ; --- begin Death modules --- Behavior = SlowDeathBehavior ModuleTag_Death01 DeathTypes = ALL -CRUSHED -SPLATTED -EXPLODED -BURNED -POISONED SinkDelay = 3000 SinkRate = 0.5 ; in Dist/Sec DestructionDelay = 8000 FX = INITIAL FX_GIDie End Behavior = SlowDeathBehavior ModuleTag_Death02 DeathTypes = NONE +CRUSHED +SPLATTED SinkDelay = 3000 SinkRate = 0.5 ; in Dist/Sec DestructionDelay = 8000 FX = INITIAL FX_GIDieCrushed End Behavior = SlowDeathBehavior ModuleTag_Death03 DeathTypes = NONE +EXPLODED SinkDelay = 3000 SinkRate = 0.5 ; in Dist/Sec DestructionDelay = 8000 FX = INITIAL FX_GIDie FlingForce = 8 FlingForceVariance = 3 FlingPitch = 60 FlingPitchVariance = 10 End Behavior = SlowDeathBehavior ModuleTag_Death04 DeathTypes = NONE +BURNED DestructionDelay = 0 FX = INITIAL FX_GIDie OCL = INITIAL OCL_FlamingInfantry End Behavior = SlowDeathBehavior ModuleTag_Death05 DeathTypes = NONE +POISONED DestructionDelay = 0 FX = INITIAL FX_GIDie OCL = INITIAL OCL_ToxicInfantry End ; --- end Death modules --- Behavior = PoisonedBehavior ModuleTag_13 PoisonDamageInterval = 100 ; Every this many msec I will retake the poison damage dealt me... PoisonDuration = 3000 ; ... for this long after last hit by poison damage End Geometry = CYLINDER GeometryMajorRadius = 4.0 ; very thin GeometryHeight = 12.0 GeometryIsSmall = Yes Shadow = SHADOW_DECAL ShadowSizeX = 14; ShadowSizeY = 14; ShadowTexture = ShadowI; BuildCompletion = APPEARS_AT_RALLY_POINT End ;------------------------------------------------------------------------------ ;------------------------------------------------------------------------------ ObjectReskin GLAInfantryAngryMobPistol03 GLAInfantryAngryMobPistol01 ;**** ART Parameters *** Draw = W3DModelDraw DrawTag_01 OkToChangeModelColor = Yes ; WHILE CARRYING PISTOL ;--------------------------------------------------------- DefaultConditionState ;Idle with Pistol Holstered Model = UIMOB03_SKN IdleAnimation = UIMOB03_SKL.UIMOB03_IDA1 0 12 IdleAnimation = UIMOB03_SKL.UIMOB03_IDA2 0 5 IdleAnimation = UIMOB03_SKL.UIMOB03_CHA 0 5 IdleAnimation = UIMOB03_SKL.UIMOB03_STA 0 5 AnimationMode = ONCE AnimationSpeedFactorRange 0.9 1.1 TransitionKey = TRANS_STAND_A WeaponFireFXBone = PRIMARY Muzzle WeaponMuzzleFlash = PRIMARY MuzzleFX WeaponFireFXBone = SECONDARY MuzzleAK WeaponMuzzleFlash = SECONDARY MuzzleAKFX WeaponFireFXBone = TERTIARY "UIMOB03 R HAND" End ; Drawing pistol ConditionState = PREATTACK_A Animation = UIMOB03_SKL.UIMOB03_ATA1_ST ; start firing AnimationMode = ONCE End AliasConditionState = PREATTACK_A FIRING_A AliasConditionState = PREATTACK_A BETWEEN_FIRING_SHOTS_A ; Firing pistol ConditionState = FIRING_A Animation = UIMOB03_SKL.UIMOB03_ATA1_LP ; looping firing AnimationMode = LOOP TransitionKey = TRANS_FIRING_A End AliasConditionState = BETWEEN_FIRING_SHOTS_A ConditionState = RELOADING_A Animation = UIMOB03_SKL.UIMOB03_ATA1_ED ; end firing AnimationMode = ONCE End ; This transition allows him to put his gun away when he's finished attacking. TransitionState = TRANS_FIRING_A TRANS_STAND_A Animation = UIMOB03_SKL.UIMOB03_ATA1_ED ; end firing AnimationMode = ONCE End ConditionState = MOVING Animation = UIMOB03_SKL.UIMOB03_RNA AnimationMode = LOOP Flags = RANDOMSTART TransitionKey = MOVING ParticleSysBone = None InfantryDustTrails End AliasConditionState = MOVING RELOADING_A AliasConditionState = MOVING PREATTACK_A AliasConditionState = MOVING FIRING_A AliasConditionState = MOVING BETWEEN_FIRING_SHOTS_A AliasConditionState = MOVING RELOADING_C RELOADING_A AliasConditionState = MOVING PREATTACK_C BETWEEN_FIRING_SHOTS_A ConditionState = DYING Animation = UIMOB03_SKL.UIMOB03_DA1 Animation = UIMOB03_SKL.UIMOB03_DA2 AnimationMode = ONCE TransitionKey = TRANS_Dying End ConditionState = SPECIAL_CHEERING Animation = UIMOB03_SKL.UIMOB03_CHA AnimationMode = ONCE End ;-------------------------------------------------------- ; TRANSITION FROM PISTOL TO AK47 TransitionState = TRANS_STAND_A TRANS_STAND_AK Animation = UIMOB03_SKL.UIMOB03_TA-D AnimationMode = ONCE End ; WHILE CARRYING AK47 ;--------------------------------------------------------- ConditionState WEAPONSET_PLAYER_UPGRADE ;Idle with AK Slung Model = UIMOB03_SKN IdleAnimation = UIMOB03_SKL.UIMOB03_IDD1 0 6 IdleAnimation = UIMOB03_SKL.UIMOB03_IDD2 0 6 IdleAnimation = UIMOB03_SKL.UIMOB03_CHD 0 6 IdleAnimation = UIMOB03_SKL.UIMOB03_STD AnimationMode = ONCE AnimationSpeedFactorRange 0.9 1.1 TransitionKey = TRANS_STAND_AK End ConditionState = MOVING WEAPONSET_PLAYER_UPGRADE Animation = UIMOB03_SKL.UIMOB03_RND AnimationMode = LOOP Flags = RANDOMSTART TransitionKey = MOVING_AK End ConditionState = DYING WEAPONSET_PLAYER_UPGRADE Animation = UIMOB03_SKL.UIMOB03_DD1 Animation = UIMOB03_SKL.UIMOB03_DD2 AnimationMode = ONCE TransitionKey = TRANS_Dying End ConditionState = SPECIAL_CHEERING WEAPONSET_PLAYER_UPGRADE Animation = UIMOB03_SKL.UIMOB03_CHD AnimationMode = ONCE End ; Drawing AK47 ConditionState = PREATTACK_B WEAPONSET_PLAYER_UPGRADE Animation = UIMOB03_SKL.UIMOB03_ATD_ST ; start firing AnimationMode = ONCE End AliasConditionState = PREATTACK_B FIRING_B WEAPONSET_PLAYER_UPGRADE AliasConditionState = PREATTACK_B BETWEEN_FIRING_SHOTS_B WEAPONSET_PLAYER_UPGRADE ; Firing Gun ConditionState = FIRING_B WEAPONSET_PLAYER_UPGRADE Animation = UIMOB03_SKL.UIMOB03_ATD_LP ; looping firing AnimationMode = LOOP WeaponFireFXBone = SECONDARY MuzzleAK WeaponMuzzleFlash = SECONDARY MuzzleAKFX TransitionKey = TRANS_FIRING_AK End AliasConditionState = BETWEEN_FIRING_SHOTS_B WEAPONSET_PLAYER_UPGRADE ConditionState = RELOADING_B WEAPONSET_PLAYER_UPGRADE Animation = UIMOB03_SKL.UIMOB03_ATD_ED ; end firing AnimationMode = ONCE End ; This transition allows him to put his gun away when he's finished attacking. TransitionState = TRANS_FIRING_AK TRANS_STAND_AK Animation = UIMOB03_SKL.UIMOB03_ATD_ED ; end firing AnimationMode = ONCE End ; ;Throwing bottle---------------------------------------------------------------- ; ConditionState = PREATTACK_C ; Animation = UIMOB03_SKL.UIMOB03_ATCA_BF ; the wind up ; End ; AliasConditionState = PREATTACK_C FIRING_A ; AliasConditionState = PREATTACK_C RELOADING_A ; AliasConditionState = PREATTACK_C BETWEEN_FIRING_SHOTS_A ; ; ConditionState = FIRING_C ; Animation = UIMOB03_SKL.UIMOB03_ATCA_AF ; the release and follow-thru ; TransitionKey = TRANS_THROW ; End ; AliasConditionState = FIRING_C BETWEEN_FIRING_SHOTS_A ; ; ConditionState RELOADING_C ; Animation =UIMOB03_SKL.UIMOB03_IDA1 ; WaitForStateToFinishIfPossible = TRANS_THROW ; universal hub for follow-thru ; ; End ; AliasConditionState = RELOADING_C RELOADING_A ; AliasConditionState = RELOADING_C FIRING_A ; AliasConditionState = RELOADING_C BETWEEN_FIRING_SHOTS_A ; TransitionState = TRANSXXX TRANS_THROW ; Animation = UIMOB03_SKL.UIMOB03_XXXXXXXXputaway gun and take out bottle ; End ; TransitionState = TRANS_THROW TRANS_FIRING_A ; Animation = UIMOB03_SKL.UIMOB03_XXXXXXXXputaway bottle and get PISTOL ; End ; TransitionState = TRANSXXXAK TRANS_THROW ; Animation = UIMOB03_SKL.UIMOB03_XXXXXXXXputaway AK and take out bottle ; End ; TransitionState = TRANS_THROW TRANS_FIRING_AK ; Animation = UIMOB03_SKL.UIMOB03_XXXXXXXXputaway bottle and get AK ; End ;-------------------------------------------------------- TransitionState = TRANS_Dying TRANS_Flailing Animation = UIMOB03_SKL.UIMOB03_A_ADTD1 Animation = UIMOB03_SKL.UIMOB03_D_ADTD1 AnimationMode = ONCE End ConditionState = DYING EXPLODED_FLAILING Animation = UIMOB03_SKL.UIMOB03_A_ADTD2 Animation = UIMOB03_SKL.UIMOB03_D_ADTD2 AnimationMode = LOOP TransitionKey = TRANS_Flailing End ConditionState = DYING EXPLODED_BOUNCING Animation = UIMOB03_SKL.UIMOB03_A_ADTD3 Animation = UIMOB03_SKL.UIMOB03_D_ADTD3 AnimationMode = ONCE TransitionKey = None End End Geometry = CYLINDER GeometryMajorRadius = 3.0 ; very thin GeometryMinorRadius = 3.0 ; very thinD GeometryHeight = 12.0 GeometryIsSmall = Yes End ;------------------------------------------------------------------------------ ;------------------------------------------------------------------------------ ObjectReskin GLAInfantryAngryMobRock04 GLAInfantryAngryMobRock02 ;**** ART Parameters *** Draw = W3DModelDraw ModuleTag_01 OkToChangeModelColor = Yes ; WHILE CARRYING ROCK ;--------------------------------------------------------- DefaultConditionState Model = UIMOB04_SKN IdleAnimation = UIMOB04_SKL.UIMOB04_IDB1 0 12 IdleAnimation = UIMOB04_SKL.UIMOB04_IDB2 0 5 IdleAnimation = UIMOB04_SKL.UIMOB04_CHB 0 5 IdleAnimation = UIMOB04_SKL.UIMOB04_STB 0 12 AnimationMode = ONCE AnimationSpeedFactorRange 0.9 1.1 TransitionKey = TRANS_STAND_A WaitForStateToFinishIfPossible TRANS_FIRING_A ;WeaponFireFXBone = PRIMARY "UIMOB04 R HAND" ;WeaponMuzzleFlash = PRIMARY "UIMOB04 R HAND" WeaponFireFXBone = SECONDARY MuzzleAK WeaponMuzzleFlash = SECONDARY MuzzleAKFX End ; Drawing rock ConditionState = PREATTACK_A Animation = UIMOB04_SKL.UIMOB04_ATB2_BF ; wind up AnimationMode = ONCE AnimationSpeedFactorRange 1.0 1.0 End AliasConditionState = PREATTACK_A FIRING_A AliasConditionState = PREATTACK_A BETWEEN_FIRING_SHOTS_A ; throwing rock ConditionState = FIRING_A Animation = UIMOB04_SKL.UIMOB04_ATB1_AF ; throw Animation = UIMOB04_SKL.UIMOB04_ATB2_AF ; throw AnimationMode = ONCE TransitionKey = TRANS_FIRING_A End ConditionState = BETWEEN_FIRING_SHOTS_A Animation = UIMOB04_SKL.UIMOB04_STB AnimationMode = ONCE ; this is basically a trick: this guy has a nontrivial animation for firing, ; and a long recycle time between shots. we want him to finish his fire animation ; (unless he's ordered to do something else), so this is just a handy trick that ; says, "if the previous state had this transition key, allow it to finish before ; switching to us, if possible". WaitForStateToFinishIfPossible = TRANS_FIRING_A End AliasConditionState = RELOADING_A ConditionState = MOVING Animation = UIMOB04_SKL.UIMOB04_RUN AnimationMode = LOOP Flags = RANDOMSTART TransitionKey = MOVING ParticleSysBone = None InfantryDustTrails End ConditionState = DYING Animation = UIMOB04_SKL.UIMOB04_DB1 Animation = UIMOB04_SKL.UIMOB04_DB2 AnimationMode = ONCE TransitionKey = TRANS_Dying End ConditionState = SPECIAL_CHEERING Animation = UIMOB04_SKL.UIMOB04_CHB Flags = RANDOMSTART AnimationMode = LOOP End ;-------------------------------------------------------- ; TRANSITION FROM PISTOL TO AK47 TransitionState = TRANS_STAND_A TRANS_STAND_AK Animation = UIMOB04_SKL.UIMOB04_TB-D AnimationMode = ONCE End ; WHILE CARRYING AK47 ;--------------------------------------------------------- ConditionState WEAPONSET_PLAYER_UPGRADE ;Idle with AK Slung Model = UIMOB04_SKN IdleAnimation = UIMOB04_SKL.UIMOB04_IDD1 0 6 IdleAnimation = UIMOB04_SKL.UIMOB04_IDD2 0 6 IdleAnimation = UIMOB04_SKL.UIMOB04_CHD 0 6 IdleAnimation = UIMOB04_SKL.UIMOB04_STD AnimationMode = ONCE AnimationSpeedFactorRange 0.9 1.1 TransitionKey = TRANS_STAND_AK WeaponFireFXBone = SECONDARY MuzzleAK WeaponMuzzleFlash = SECONDARY MuzzleAKFX End ConditionState = MOVING WEAPONSET_PLAYER_UPGRADE Animation = UIMOB04_SKL.UIMOB04_RND AnimationMode = LOOP Flags = RANDOMSTART TransitionKey = MOVING_AK End ConditionState = DYING WEAPONSET_PLAYER_UPGRADE Animation = UIMOB04_SKL.UIMOB04_DD1 Animation = UIMOB04_SKL.UIMOB04_DD2 AnimationMode = ONCE TransitionKey = TRANS_Dying End ConditionState = SPECIAL_CHEERING WEAPONSET_PLAYER_UPGRADE Animation = UIMOB04_SKL.UIMOB04_CHD AnimationMode = ONCE End ; Drawing AK47 ConditionState = PREATTACK_B WEAPONSET_PLAYER_UPGRADE Animation = UIMOB04_SKL.UIMOB04_ATD1_ST ; start firing AnimationMode = ONCE End AliasConditionState = PREATTACK_B FIRING_B WEAPONSET_PLAYER_UPGRADE AliasConditionState = PREATTACK_B BETWEEN_FIRING_SHOTS_B WEAPONSET_PLAYER_UPGRADE ; Firing Gun ConditionState = FIRING_B WEAPONSET_PLAYER_UPGRADE Animation = UIMOB04_SKL.UIMOB04_ATD1_LP ; looping firing AnimationMode = LOOP WeaponFireFXBone = PRIMARY MuzzleAK WeaponMuzzleFlash = PRIMARY MuzzleAKFX TransitionKey = TRANS_FIRING_AK End AliasConditionState = BETWEEN_FIRING_SHOTS_B WEAPONSET_PLAYER_UPGRADE ConditionState = RELOADING_B WEAPONSET_PLAYER_UPGRADE Animation = UIMOB04_SKL.UIMOB04_ATD1_ED ; end firing AnimationMode = ONCE End ; This transition allows him to put his gun away when he's finished attacking. TransitionState = TRANS_FIRING_AK TRANS_STAND_AK Animation = UIMOB04_SKL.UIMOB04_ATD1_ED ; end firing AnimationMode = ONCE End TransitionState = TRANS_Dying TRANS_Flailing Animation = UIMOB04_SKL.UIMOB04_B_ADTF1 Animation = UIMOB04_SKL.UIMOB04_D_ADTF1 AnimationMode = ONCE End ConditionState = DYING EXPLODED_FLAILING Animation = UIMOB04_SKL.UIMOB04_B_ADTF2 Animation = UIMOB04_SKL.UIMOB04_D_ADTF2 AnimationMode = LOOP TransitionKey = TRANS_Flailing End ConditionState = DYING EXPLODED_BOUNCING Animation = UIMOB04_SKL.UIMOB04_B_ADTF3 Animation = UIMOB04_SKL.UIMOB04_D_ADTF3 AnimationMode = ONCE TransitionKey = None End End Geometry = CYLINDER GeometryMajorRadius = 5.0 ; kinda thin GeometryMinorRadius = 5.0 ; kinda thinD GeometryHeight = 12.0 GeometryIsSmall = Yes End ;------------------------------------------------------------------------------ ;------------------------------------------------------------------------------ ObjectReskin GLAInfantryAngryMobPistol05 GLAInfantryAngryMobPistol01 ;**** ART Parameters *** Draw = W3DModelDraw DrawTag_01 OkToChangeModelColor = Yes ; WHILE CARRYING PISTOL ;--------------------------------------------------------- DefaultConditionState ;Idle with Pistol Holstered Model = UIMOB05_SKN IdleAnimation = UIMOB05_SKL.UIMOB05_IDA1 0 12 IdleAnimation = UIMOB05_SKL.UIMOB05_IDA2 0 5 IdleAnimation = UIMOB05_SKL.UIMOB05_CHA 0 5 IdleAnimation = UIMOB05_SKL.UIMOB05_STA 0 5 AnimationMode = ONCE AnimationSpeedFactorRange 0.9 1.1 TransitionKey = TRANS_STAND_A WeaponFireFXBone = PRIMARY Muzzle01 WeaponMuzzleFlash = PRIMARY Muzzle01 End ; Drawing pistol ConditionState = PREATTACK_A Animation = UIMOB05_SKL.UIMOB05_ATA1_ST ; start firing AnimationMode = ONCE End AliasConditionState = PREATTACK_A FIRING_A AliasConditionState = PREATTACK_A BETWEEN_FIRING_SHOTS_A ; Firing pistol ConditionState = FIRING_A Animation = UIMOB05_SKL.UIMOB05_ATA1_LP ; looping firing AnimationMode = LOOP TransitionKey = TRANS_FIRING_A End AliasConditionState = BETWEEN_FIRING_SHOTS_A ConditionState = RELOADING_A Animation = UIMOB05_SKL.UIMOB05_ATA1_ED ; end firing AnimationMode = ONCE End ; This transition allows him to put his gun away when he's finished attacking. TransitionState = TRANS_FIRING_A TRANS_STAND_A Animation = UIMOB05_SKL.UIMOB05_ATA1_ED ; end firing AnimationMode = ONCE End ConditionState = MOVING Animation = UIMOB05_SKL.UIMOB05_RNA AnimationMode = LOOP Flags = RANDOMSTART TransitionKey = MOVING ParticleSysBone = None InfantryDustTrails End AliasConditionState = MOVING RELOADING_A AliasConditionState = MOVING PREATTACK_A AliasConditionState = MOVING FIRING_A AliasConditionState = MOVING BETWEEN_FIRING_SHOTS_A AliasConditionState = MOVING RELOADING_C RELOADING_A AliasConditionState = MOVING PREATTACK_C BETWEEN_FIRING_SHOTS_A ConditionState = DYING Animation = UIMOB05_SKL.UIMOB05_DA1 Animation = UIMOB05_SKL.UIMOB05_DA2 AnimationMode = ONCE TransitionKey = TRANS_Dying End ConditionState = SPECIAL_CHEERING Animation = UIMOB05_SKL.UIMOB05_CHA AnimationMode = ONCE End ;-------------------------------------------------------- ; TRANSITION FROM PISTOL TO AK47 TransitionState = TRANS_STAND_A TRANS_STAND_AK Animation = UIMOB05_SKL.UIMOB05_TA-D AnimationMode = ONCE End ; WHILE CARRYING AK47 ;--------------------------------------------------------- ConditionState WEAPONSET_PLAYER_UPGRADE ;Idle with AK Slung Model = UIMOB05_SKN IdleAnimation = UIMOB05_SKL.UIMOB05_IDD1 0 6 IdleAnimation = UIMOB05_SKL.UIMOB05_IDD2 0 6 IdleAnimation = UIMOB05_SKL.UIMOB05_CHD 0 6 IdleAnimation = UIMOB05_SKL.UIMOB05_STD AnimationMode = ONCE AnimationSpeedFactorRange 0.9 1.1 TransitionKey = TRANS_STAND_AK WeaponFireFXBone = SECONDARY MuzzleAK WeaponMuzzleFlash = SECONDARY MuzzleAKFX End ConditionState = MOVING WEAPONSET_PLAYER_UPGRADE Animation = UIMOB05_SKL.UIMOB05_RND AnimationMode = LOOP Flags = RANDOMSTART TransitionKey = MOVING_AK End ConditionState = DYING WEAPONSET_PLAYER_UPGRADE Animation = UIMOB05_SKL.UIMOB05_DD1 Animation = UIMOB05_SKL.UIMOB05_DD2 AnimationMode = ONCE TransitionKey = TRANS_Dying End ConditionState = SPECIAL_CHEERING WEAPONSET_PLAYER_UPGRADE Animation = UIMOB05_SKL.UIMOB05_CHD AnimationMode = ONCE End ; Drawing AK47 ConditionState = PREATTACK_B WEAPONSET_PLAYER_UPGRADE Animation = UIMOB05_SKL.UIMOB05_ATD1_ST ; start firing AnimationMode = ONCE End AliasConditionState = PREATTACK_B FIRING_B WEAPONSET_PLAYER_UPGRADE AliasConditionState = PREATTACK_B BETWEEN_FIRING_SHOTS_B WEAPONSET_PLAYER_UPGRADE ; Firing Gun ConditionState = FIRING_B WEAPONSET_PLAYER_UPGRADE Animation = UIMOB05_SKL.UIMOB05_ATD1_LP ; looping firing AnimationMode = LOOP WeaponFireFXBone = PRIMARY MuzzleAK WeaponMuzzleFlash = PRIMARY MuzzleAKFX TransitionKey = TRANS_FIRING_AK End AliasConditionState = BETWEEN_FIRING_SHOTS_B WEAPONSET_PLAYER_UPGRADE ConditionState = RELOADING_B WEAPONSET_PLAYER_UPGRADE Animation = UIMOB05_SKL.UIMOB05_ATD1_ED ; end firing AnimationMode = ONCE End ; This transition allows him to put his gun away when he's finished attacking. TransitionState = TRANS_FIRING_AK TRANS_STAND_AK Animation = UIMOB05_SKL.UIMOB05_ATD1_ED ; end firing AnimationMode = ONCE End ; ;Throwing bottle---------------------------------------------------------------- ; ConditionState = PREATTACK_C ; Animation = UIMOB05_SKL.UIMOB05_ATCA_BF ; the wind up ; End ; AliasConditionState = PREATTACK_C FIRING_A ; AliasConditionState = PREATTACK_C RELOADING_A ; AliasConditionState = PREATTACK_C BETWEEN_FIRING_SHOTS_A ; ; ConditionState = FIRING_C ; Animation = UIMOB05_SKL.UIMOB05_ATCA_AF ; the release and follow-thru ; TransitionKey = TRANS_THROW ; End ; AliasConditionState = FIRING_C BETWEEN_FIRING_SHOTS_A ; ; ConditionState RELOADING_C ; Animation =UIMOB05_SKL.UIMOB05_IDA1 ; WaitForStateToFinishIfPossible = TRANS_THROW ; universal hub for follow-thru ; End ; AliasConditionState = RELOADING_C RELOADING_A ; AliasConditionState = RELOADING_C FIRING_A ; AliasConditionState = RELOADING_C BETWEEN_FIRING_SHOTS_A ; TransitionState = TRANSXXX TRANS_THROW ; Animation = UIMOB05_SKL.UIMOB05_XXXXXXXXputaway gun and take out bottle ; End ; TransitionState = TRANS_THROW TRANS_FIRING_A ; Animation = UIMOB05_SKL.UIMOB05_XXXXXXXXputaway bottle and get PISTOL ; End ; TransitionState = TRANSXXXAK TRANS_THROW ; Animation = UIMOB05_SKL.UIMOB05_XXXXXXXXputaway AK and take out bottle ; End ; TransitionState = TRANS_THROW TRANS_FIRING_AK ; Animation = UIMOB05_SKL.UIMOB05_XXXXXXXXputaway bottle and get AK ; End ;-------------------------------------------------------- TransitionState = TRANS_Dying TRANS_Flailing Animation = UIMOB05_SKL.UIMOB05_A_ADTA1 Animation = UIMOB05_SKL.UIMOB05_D_ADTA1 AnimationMode = ONCE End ConditionState = DYING EXPLODED_FLAILING Animation = UIMOB05_SKL.UIMOB05_A_ADTA2 Animation = UIMOB05_SKL.UIMOB05_D_ADTA2 AnimationMode = LOOP TransitionKey = TRANS_Flailing End ConditionState = DYING EXPLODED_BOUNCING Animation = UIMOB05_SKL.UIMOB05_A_ADTA3 Animation = UIMOB05_SKL.UIMOB05_D_ADTA3 AnimationMode = ONCE TransitionKey = None End End Geometry = CYLINDER GeometryMajorRadius = 3.0 ; very thin GeometryMinorRadius = 3.0 ; very thinD GeometryHeight = 12.0 GeometryIsSmall = Yes End ;------------------------------------------------------------------------------ ;------------------------------------------------------------------------------ Object GLAInfantryAngryMobMolotov02 ;**** ART Parameters *** Draw = W3DModelDraw ModuleTag_01 OkToChangeModelColor = Yes ; WHILE CARRYING ROCK ;--------------------------------------------------------- DefaultConditionState Model = UIMOB02_SKN IdleAnimation = UIMOB02_SKL.UIMOB02_IDB1 0 12 IdleAnimation = UIMOB02_SKL.UIMOB02_IDB2 0 5 IdleAnimation = UIMOB02_SKL.UIMOB02_CHB 0 5 IdleAnimation = UIMOB02_SKL.UIMOB02_STB 0 12 AnimationMode = ONCE AnimationSpeedFactorRange 0.9 1.1 TransitionKey = TRANS_STAND_B WeaponFireFXBone = SECONDARY "UIMOB02 R HAND" End ; Drawing rock ConditionState = PREATTACK_B Animation = UIMOB02_SKL.UIMOB02_ATCB_BF ; wind up AnimationMode = ONCE End AliasConditionState = PREATTACK_B FIRING_B AliasConditionState = PREATTACK_B BETWEEN_FIRING_SHOTS_B ; throwing rock ConditionState = FIRING_B Animation = UIMOB02_SKL.UIMOB02_ATCB_AF ; throw AnimationMode = ONCE TransitionKey = TRANS_FIRING_B End ConditionState = BETWEEN_FIRING_SHOTS_B Animation = UIMOB02_SKL.UIMOB02_STB AnimationMode = ONCE ; this is basically a trick: this guy has a nontrivial animation for firing, ; and a long recycle time between shots. we want him to finish his fire animation ; (unless he's ordered to do something else), so this is just a handy trick that ; says, "if the previous state had this transition key, allow it to finish before ; switching to us, if possible". WaitForStateToFinishIfPossible = TRANS_FIRING_B End AliasConditionState = RELOADING_B ConditionState = MOVING Animation = UIMOB02_SKL.UIMOB02_RNB AnimationMode = LOOP Flags = RANDOMSTART TransitionKey = MOVING ParticleSysBone = None InfantryDustTrails End ConditionState = DYING Animation = UIMOB02_SKL.UIMOB02_DB1 Animation = UIMOB02_SKL.UIMOB02_DB2 AnimationMode = ONCE TransitionKey = TRANS_Dying End ConditionState = SPECIAL_CHEERING Animation = UIMOB02_SKL.UIMOB02_CHB Flags = RANDOMSTART AnimationMode = LOOP End TransitionState = TRANS_Dying TRANS_Flailing Animation = UIMOB02_SKL.UIMOB02_B_ADTA1 Animation = UIMOB02_SKL.UIMOB02_D_ADTA1 AnimationMode = ONCE End ConditionState = DYING EXPLODED_FLAILING Animation = UIMOB02_SKL.UIMOB02_B_ADTA2 Animation = UIMOB02_SKL.UIMOB02_D_ADTA2 AnimationMode = LOOP TransitionKey = TRANS_Flailing End ConditionState = DYING EXPLODED_BOUNCING Animation = UIMOB02_SKL.UIMOB02_B_ADTA3 Animation = UIMOB02_SKL.UIMOB02_D_ADTA3 AnimationMode = ONCE TransitionKey = None End End ;**** DESIGN parameters *** DisplayName = OBJECT:AngryMob Side = GLA EditorSorting = INFANTRY TransportSlotCount = 1 ;how many "slots" we take in a transport (0 == not transportable) WeaponSet Conditions = None Weapon = PRIMARY GLAAngryMobMolotovCocktailProjectileWeapon ; all she does is throw molotovs End ArmorSet Conditions = None Armor = HumanArmor DamageFX = InfantryDamageFX End VisionRange = 150 ShroudClearingRange = 150 Prerequisites Object = GLABarracks End BuildCost = 100 BuildTime = 0.0 ExperienceValue = 5 5 5 5 ;Experience point value at each level ExperienceRequired = 0 150 450 900 ;Experience points needed to gain each level IsTrainable = Yes ;Can gain experience CrushableLevel = 0 ;What am I?: 0 = for infantry, 1 = for trees, 2 = general vehicles ; *** AUDIO Parameters *** VoiceSelect = NoSound VoiceMove = NoSound VoiceAttack = NoSound SoundDie = CivilianArabFemaleDie ;**** ENGINEERING Parameters *** ;MOB02 RadarPriority = UNIT KindOf = PRELOAD SELECTABLE CAN_ATTACK ATTACK_NEEDS_LINE_OF_SIGHT CAN_CAST_REFLECTIONS INFANTRY SALVAGER IGNORED_IN_GUI ;NO_COLLIDE ;Lorenzen disables Body = ActiveBody BodyTag_01 MaxHealth = 50.0 InitialHealth = 50.0 End Behavior = AIUpdateInterface ModuleTag_03 AutoAcquireEnemiesWhenIdle = Yes End Behavior = MobMemberSlavedUpdate ModuleTag_04 MustCatchUpRadius = 40 NoNeedToCatchUpRadius = 15 Squirrelliness = 0.05 CatchUpCrisisBailTime = 30; this is in calls to this update, not in frames End Locomotor = SET_NORMAL AngryMobNormalLocomotor Locomotor = SET_WANDER AngryMobWanderLocomotor Locomotor = SET_PANIC AngryMobPanicLocomotor Behavior = PhysicsBehavior ModuleTag_05 Mass = 5.0 End Behavior = SquishCollide ModuleTag_08 ;nothing End Behavior = WeaponSetUpgrade UpgradeTag_01 TriggeredBy = Upgrade_GLAArmTheMob End ; --- begin Death modules --- Behavior = SlowDeathBehavior ModuleTag_Death01 DeathTypes = ALL -CRUSHED -SPLATTED -EXPLODED -BURNED -POISONED SinkDelay = 3000 SinkRate = 0.5 ; in Dist/Sec DestructionDelay = 8000 FX = INITIAL FX_GIDie End Behavior = SlowDeathBehavior ModuleTag_Death02 DeathTypes = NONE +CRUSHED +SPLATTED SinkDelay = 3000 SinkRate = 0.5 ; in Dist/Sec DestructionDelay = 8000 FX = INITIAL FX_GIDieCrushed End Behavior = SlowDeathBehavior ModuleTag_Death03 DeathTypes = NONE +EXPLODED SinkDelay = 3000 SinkRate = 0.5 ; in Dist/Sec DestructionDelay = 8000 FX = INITIAL FX_GIDie FlingForce = 8 FlingForceVariance = 3 FlingPitch = 60 FlingPitchVariance = 10 End Behavior = SlowDeathBehavior ModuleTag_Death04 DeathTypes = NONE +BURNED DestructionDelay = 0 FX = INITIAL FX_GIDie OCL = INITIAL OCL_FlamingInfantry End Behavior = SlowDeathBehavior ModuleTag_Death05 DeathTypes = NONE +POISONED DestructionDelay = 0 FX = INITIAL FX_GIDie OCL = INITIAL OCL_ToxicInfantry End ; --- end Death modules --- Behavior = PoisonedBehavior ModuleTag_13 PoisonDamageInterval = 100 ; Every this many msec I will retake the poison damage dealt me... PoisonDuration = 3000 ; ... for this long after last hit by poison damage End Geometry = CYLINDER GeometryMajorRadius = 4.0 ; very thin GeometryHeight = 12.0 GeometryIsSmall = Yes Shadow = SHADOW_DECAL ShadowSizeX = 14; ShadowSizeY = 14; ShadowTexture = ShadowI; BuildCompletion = APPEARS_AT_RALLY_POINT End ;------------------------------------------------------------------------------ ;------------------------------------------------------------------------------ ;------------------------------------------------------------------------------ ;------------------------------------------------------------------------------ ;------------------------------------------------------------------------------ Object GLAInfantryHijacker ; *** ART Parameters *** SelectPortrait = SUHijacker_L ButtonImage = SUHijacker ;UpgradeCameo1 = NONE ;UpgradeCameo2 = NONE ;UpgradeCameo3 = NONE ;UpgradeCameo4 = NONE ;UpgradeCameo5 = NONE Draw = W3DModelDraw ModuleTag_01 OkToChangeModelColor = Yes DefaultConditionState Model = UIHJCK_SKN IdleAnimation = UIHJCK_SKL.UIHJCK_STA 0 25 IdleAnimation = UIHJCK_SKL.UIHJCK_IDA IdleAnimation = UIHJCK_SKL.UIHJCK_IDB AnimationMode = ONCE TransitionKey = TRANS_Stand End AliasConditionState = REALLYDAMAGED ConditionState = MOVING Animation = UIHJCK_SKL.UIHJCK_RUN AnimationMode = LOOP Flags = RANDOMSTART TransitionKey = None ParticleSysBone = None InfantryDustTrails End AliasConditionState = REALLYDAMAGED MOVING ConditionState = DYING Animation = UIHJCK_SKL.UIHJCK_DTA Animation = UIHJCK_SKL.UIHJCK_DTB AnimationMode = ONCE TransitionKey = TRANS_Dying End TransitionState = TRANS_Dying TRANS_Flailing Animation = UIHJCK_SKL.UIHJCK_ADTE1 AnimationMode = ONCE End ConditionState = DYING EXPLODED_FLAILING Animation = UIHJCK_SKL.UIHJCK_ADTE2 AnimationMode = LOOP TransitionKey = TRANS_Flailing End ConditionState = DYING EXPLODED_BOUNCING Animation = UIHJCK_SKL.UIHJCK_ADTE3 AnimationMode = ONCE TransitionKey = None End ConditionState = SPECIAL_CHEERING Animation = UIHJCK_SKL.UIHJCK_CHA AnimationMode = LOOP End ConditionState = PARACHUTING Animation = UIHJCK_SKL.UIHJCK_PHG AnimationMode = LOOP Flags = PRISTINE_BONE_POS_IN_FINAL_FRAME ; our bone positions should come from the last frame, rather than the first TransitionKey = TRANS_Chute End AliasConditionState = PARACHUTING REALLYDAMAGED AliasConditionState = PARACHUTING DYING TransitionState = TRANS_Falling TRANS_Chute Animation = UIHJCK_SKL.UIHJCK_POP AnimationMode = ONCE Flags = PRISTINE_BONE_POS_IN_FINAL_FRAME ; our bone positions should come from the last frame, rather than the first End TransitionState = TRANS_Chute TRANS_Stand Animation = UIHJCK_SKL.UIHJCK_PTD AnimationMode = ONCE End ;SURRENDER ANIMATIONS ; surrender is cut. sorry. (srj) ; ConditionState = SURRENDER ; Animation = UIHJCK_SKL.UIHJCK_SST ; AnimationMode = ONCE ; TransitionKey = TRANS_SurrenderKneeling ; End ; TransitionState = TRANS_Stand TRANS_SurrenderKneeling ; Animation = UIHJCK_SKL.UIHJCK_SUR ; AnimationMode = ONCE ; End End ; ***DESIGN parameters *** DisplayName = OBJECT:Hijacker Side = GLA EditorSorting = INFANTRY TransportSlotCount = 1 ;how many "slots" we take in a transport (0 == not transportable) ArmorSet Conditions = None Armor = HumanArmor DamageFX = InfantryDamageFX End VisionRange = 100 ShroudClearingRange = 200 Prerequisites Object = GLABarracks ;Object = GLAPalace Science = SCIENCE_Hijacker End BuildCost = 400 BuildTime = 10.0 ;in seconds ExperienceValue = 50 100 150 400 ;Experience point value at each level ExperienceRequired = 0 150 450 900 ;Experience points needed to gain each level IsTrainable = No ;Can gain experience CrushableLevel = 0 ;What am I?: 0 = for infantry, 1 = for trees, 2 = general vehicles CommandSet = GLAInfantryHijackerCommandSet ; *** AUDIO Parameters *** VoiceSelect = HijackerVoiceSelect VoiceMove = HijackerVoiceMove VoiceGuard = HijackerVoiceMove VoiceAttack = HijackerVoiceAttack SoundDie = HijackerVoiceDie SoundDieFire = DieByFireGLA SoundDieToxin = DieByToxinGLA ;VoiceSurrender = HijackerVoiceSurrender VoiceFear = HijackerVoiceFear UnitSpecificSounds VoiceGarrison = HijackerVoiceGarrison VoiceCreate = HijackerVoiceCreate VoiceEnter = HijackerVoiceEnter VoiceEnterHostile = HijackerVoiceEnterHostile VoiceGetHealed = HijackerVoiceMove End ; *** ENGINEERING Parameters *** RadarPriority = UNIT KindOf = PRELOAD SELECTABLE CAN_CAST_REFLECTIONS INFANTRY SALVAGER SCORE STEALTH_GARRISON BOAT ;<- for linking to the hijacker stealth detection ;STEALTH_GARRISON Added per Dustin, 12/14--ML Behavior = StealthUpdate ModuleTag_02 StealthDelay = 1200 ;500 ; 4/10 of a second delay before stealthy ;StealthForbiddenConditions = MOVING ; only stealthy while stationary MoveThresholdSpeed = 3 InnateStealth = Yes OrderIdleEnemiesToAttackMeUponReveal = Yes End Body = ActiveBody ModuleTag_03 MaxHealth = 100.0 InitialHealth = 100.0 End Behavior = HijackerUpdate ModuleTag_04 ParachuteName = AmericaParachute End Behavior = AIUpdateInterface ModuleTag_05 AutoAcquireEnemiesWhenIdle = Yes Stealthed MoodAttackCheckRate = 250 End Locomotor = SET_NORMAL JarmenKellLocomotor Behavior = PhysicsBehavior ModuleTag_06 Mass = 5.0 End Behavior = ConvertToHijackedVehicleCrateCollide ModuleTag_08 RequiredKindOf = VEHICLE ; This is my car now, infidel! End Behavior = SquishCollide ModuleTag_09 ;nothing End ; --- begin Death modules --- Behavior = SlowDeathBehavior ModuleTag_Death01 DeathTypes = ALL -CRUSHED -SPLATTED -EXPLODED -BURNED -POISONED -POISONED_BETA SinkDelay = 3000 SinkRate = 0.5 ; in Dist/Sec DestructionDelay = 8000 FX = INITIAL FX_GIDie End Behavior = SlowDeathBehavior ModuleTag_Death02 DeathTypes = NONE +CRUSHED +SPLATTED SinkDelay = 3000 SinkRate = 0.5 ; in Dist/Sec DestructionDelay = 8000 FX = INITIAL FX_GIDieCrushed End Behavior = SlowDeathBehavior ModuleTag_Death03 DeathTypes = NONE +EXPLODED SinkDelay = 3000 SinkRate = 0.5 ; in Dist/Sec DestructionDelay = 8000 FX = INITIAL FX_GIDie FlingForce = 8 FlingForceVariance = 3 FlingPitch = 60 FlingPitchVariance = 10 End Behavior = SlowDeathBehavior ModuleTag_Death04 DeathTypes = NONE +BURNED DestructionDelay = 0 FX = INITIAL FX_GIDie OCL = INITIAL OCL_FlamingInfantry End Behavior = SlowDeathBehavior ModuleTag_Death05 DeathTypes = NONE +POISONED DestructionDelay = 0 FX = INITIAL FX_GIDie OCL = INITIAL OCL_ToxicInfantry End Behavior = SlowDeathBehavior ModuleTag_Death06 ; don't forget to give it a new, unique module tag DeathTypes = NONE +POISONED_BETA DestructionDelay = 0 FX = INITIAL FX_GIDie OCL = INITIAL OCL_ToxicInfantryBeta ;you'll have to create this OCL and make it use the blue guys instead of green ones End ; --- end Death modules --- Behavior = PoisonedBehavior ModuleTag_14 PoisonDamageInterval = 100 ; Every this many msec I will retake the poison damage dealt me... PoisonDuration = 3000 ; ... for this long after last hit by poison damage End Geometry = CYLINDER GeometryMajorRadius = 10.0 GeometryMinorRadius = 10.0 GeometryHeight = 12.0 GeometryIsSmall = Yes Shadow = SHADOW_DECAL ShadowSizeX = 14; ShadowSizeY = 14; ShadowTexture = ShadowI; BuildCompletion = APPEARS_AT_RALLY_POINT End ;------------------------------------------------------------------------------ Object ChinaInfantryRedguard ; *** ART Parameters *** SelectPortrait = SNRedGuard_L ButtonImage = SNRedGuard_L UpgradeCameo1 = Upgrade_Nationalism UpgradeCameo2 = Upgrade_InfantryCaptureBuilding UpgradeCameo3 = Upgrade_ChinaBayonet ;UpgradeCameo4 = NONE ;UpgradeCameo5 = NONE Draw = W3DModelDraw ModuleTag_01 OkToChangeModelColor = Yes ; this says "we don't use these condition states at all, so completely ; ignore them for purposes of matchmaking"... this is useful to help ; reduce the number of AliasConditionState clauses you must add in ; order to avoid ambiguity in some cases. ;IgnoreConditionStates = PREATTACK_A FIRING_A BETWEEN_FIRING_SHOTS_A RELOADING_A ; ------- Standing-Around Animations DefaultConditionState Model = NICNSC_SKN IdleAnimation = NICNSC_SKL.NICNSC_STA 0 35 IdleAnimation = NICNSC_SKL.NICNSC_IDA IdleAnimation = NICNSC_SKL.NICNSC_IDB AnimationMode = ONCE WeaponFireFXBone = PRIMARY Muzzle WeaponMuzzleFlash = PRIMARY MuzzleFX TransitionKey = TRANS_Stand End ConditionState = REALLYDAMAGED IdleAnimation = NICNSC_SKL.NICNSC_STB AnimationMode = ONCE TransitionKey = TRANS_StandDamaged End ; ------- Machine Gun Animations ;ConditionState = USING_WEAPON_A ; Animation = NICNSC_SKL.NICNSC_ATA ; AnimationMode = LOOP ; TransitionKey = TRANS_Firing ;End ;ConditionState = USING_WEAPON_A REALLYDAMAGED ; Animation = NICNSC_SKL.NICNSC_ATC ; AnimationMode = LOOP ; TransitionKey = TRANS_FiringDamaged ;End ConditionState = FIRING_A Animation = NICNSC_SKL.NICNSC_ATA AnimationMode = LOOP TransitionKey = TRANS_Firing End AliasConditionState = BETWEEN_FIRING_SHOTS_A AliasConditionState = RELOADING_A ConditionState = FIRING_A REALLYDAMAGED Animation = NICNSC_SKL.NICNSC_ATC AnimationMode = LOOP TransitionKey = TRANS_FiringDamaged End AliasConditionState = BETWEEN_FIRING_SHOTS_A REALLYDAMAGED AliasConditionState = RELOADING_A REALLYDAMAGED ; ------- Firing-related Transitions TransitionState = TRANS_Firing TRANS_FiringDamaged Animation = NICNSC_SKL.NICNSC_AA2AC AnimationMode = ONCE End TransitionState = TRANS_Stand TRANS_Firing Animation = NICNSC_SKL.NICNSC_SA2AA AnimationMode = ONCE End TransitionState = TRANS_Firing TRANS_Stand Animation = NICNSC_SKL.NICNSC_AA2SA AnimationMode = ONCE End TransitionState = TRANS_StandDamaged TRANS_FiringDamaged Animation = NICNSC_SKL.NICNSC_ATCST AnimationMode = ONCE End TransitionState = TRANS_FiringDamaged TRANS_StandDamaged Animation = NICNSC_SKL.NICNSC_ATCED AnimationMode = ONCE End ; ------------- Damage Transitions -------------------- TransitionState = TRANS_StandDamaged TRANS_RunDamaged Animation = NICNSC_SKL.NICNSC_AA2AC AnimationMode = ONCE AnimationSpeedFactorRange = 2 2 End TransitionState = TRANS_RunDamaged TRANS_StandDamaged Animation = NICNSC_SKL.NICNSC_AA2AC AnimationMode = ONCE_BACKWARDS AnimationSpeedFactorRange = 2 2 Flags = START_FRAME_LAST End TransitionState = TRANS_Stand TRANS_StandDamaged Animation = NICNSC_SKL.NICNSC_AA2SA AnimationMode = ONCE_BACKWARDS AnimationSpeedFactorRange = 4 5 Flags = START_FRAME_LAST End ; ------- Bayonet Animations ConditionState = PREATTACK_B Animation = NICNSC_SKL.NICNSC_ATB1 AnimationMode = ONCE TransitionKey = TRANS_Stab End AliasConditionState = PREATTACK_B MOVING AliasConditionState = PREATTACK_B FIRING_B AliasConditionState = PREATTACK_B BETWEEN_FIRING_SHOTS_B ConditionState = FIRING_B Animation = NICNSC_SKL.NICNSC_ATB2 AnimationMode = ONCE WaitForStateToFinishIfPossible = TRANS_Stab End AliasConditionState = BETWEEN_FIRING_SHOTS_B AliasConditionState = RELOADING_B TransitionState = TRANS_Stab TRANS_Stand Animation = NICNSC_SKL.NICNSC_ATB2 AnimationMode = ONCE End ConditionState = REALLYDAMAGED PREATTACK_B Animation = NICNSC_SKL.NICNSC_IATB1 AnimationMode = ONCE TransitionKey = TRANS_StabDamaged End AliasConditionState = PREATTACK_B MOVING REALLYDAMAGED AliasConditionState = PREATTACK_B FIRING_B REALLYDAMAGED AliasConditionState = PREATTACK_B BETWEEN_FIRING_SHOTS_B REALLYDAMAGED ConditionState = FIRING_B REALLYDAMAGED Animation = NICNSC_SKL.NICNSC_IATB1 AnimationMode = ONCE WaitForStateToFinishIfPossible = TRANS_Stab End AliasConditionState = BETWEEN_FIRING_SHOTS_B REALLYDAMAGED AliasConditionState = RELOADING_B REALLYDAMAGED TransitionState = TRANS_StabDamaged TRANS_StandDamaged Animation = NICNSC_SKL.NICNSC_IATB2 AnimationMode = ONCE End ; ------- Parachuting Animations ConditionState = FREEFALL Animation = NICNSC_SKL.NICNSC_POP AnimationMode = MANUAL Flags = START_FRAME_FIRST TransitionKey = TRANS_Falling End AliasConditionState = FREEFALL REALLYDAMAGED AliasConditionState = FREEFALL DYING ConditionState = PARACHUTING Animation = NICNSC_SKL.NICNSC_PHG AnimationMode = LOOP Flags = PRISTINE_BONE_POS_IN_FINAL_FRAME ; our bone positions should come from the last frame, rather than the first TransitionKey = TRANS_Chute End AliasConditionState = PARACHUTING REALLYDAMAGED AliasConditionState = PARACHUTING DYING TransitionState = TRANS_Falling TRANS_Chute Animation = NICNSC_SKL.NICNSC_POP AnimationMode = ONCE Flags = PRISTINE_BONE_POS_IN_FINAL_FRAME ; our bone positions should come from the last frame, rather than the first End TransitionState = TRANS_Chute TRANS_Stand Animation = NICNSC_SKL.NICNSC_PTD AnimationMode = ONCE End ; ------- Movement Animations ConditionState = MOVING Animation = NICNSC_SKL.NICNSC_RNA 26 AnimationMode = LOOP Flags = RANDOMSTART TransitionKey = None ParticleSysBone = None InfantryDustTrails End AliasConditionState = MOVING ATTACKING ConditionState = MOVING REALLYDAMAGED Animation = NICNSC_SKL.NICNSC_RNB 28 AnimationMode = LOOP Flags = RANDOMSTART TransitionKey = TRANS_RunDamaged TransitionKey = None End AliasConditionState = MOVING ATTACKING REALLYDAMAGED ; ------- Bldg-capture ConditionState = UNPACKING Model = NICNSC_F_SKN Animation = NICNSC_F_SKL.NICNSC_F_FDP1 AnimationMode = ONCE End AliasConditionState = UNPACKING REALLYDAMAGED ConditionState = RAISING_FLAG Model = NICNSC_F_SKN Animation = NICNSC_F_SKL.NICNSC_F_FDP2 AnimationMode = ONCE TransitionKey = TRANS_Raising End AliasConditionState = RAISING_FLAG REALLYDAMAGED ConditionState = PACKING Model = NICNSC_F_SKN Animation = NICNSC_F_SKL.NICNSC_F_FDP1 AnimationMode = ONCE_BACKWARDS Flags = START_FRAME_LAST TransitionKey = TRANS_Packing End AliasConditionState = PACKING REALLYDAMAGED TransitionState = TRANS_Raising TRANS_Packing Model = NICNSC_F_SKN Animation = NICNSC_F_SKL.NICNSC_F_FDP2 AnimationMode = ONCE_BACKWARDS Flags = START_FRAME_LAST End ; ------- Dying Animations ConditionState = DYING Animation = NICNSC_SKL.NICNSC_DTA Animation = NICNSC_SKL.NICNSC_DTB AnimationMode = ONCE TransitionKey = TRANS_Dying End TransitionState = TRANS_Dying TRANS_Flailing Animation = NICNSC_SKL.NICNSC_ATDE1 AnimationMode = ONCE End ConditionState = DYING EXPLODED_FLAILING Animation = NICNSC_SKL.NICNSC_ATDE2 AnimationMode = LOOP TransitionKey = TRANS_Flailing End ConditionState = DYING EXPLODED_BOUNCING Animation = NICNSC_SKL.NICNSC_ATDE3 AnimationMode = ONCE TransitionKey = None End ; ------- Misc Animations ConditionState = SPECIAL_CHEERING Animation = NICNSC_SKL.NICNSC_CHA AnimationMode = LOOP End End ; ***DESIGN parameters *** DisplayName = OBJECT:Redguard Side = China EditorSorting = INFANTRY TransportSlotCount = 1 ;how many "slots" we take in a transport (0 == not transportable) WeaponSet Conditions = None Weapon = PRIMARY RedguardMachineGun Weapon = SECONDARY RedguardBayonet AutoChooseSources = PRIMARY FROM_PLAYER FROM_SCRIPT FROM_AI AutoChooseSources = SECONDARY NONE End ArmorSet Conditions = None Armor = HumanArmor DamageFX = InfantryDamageFX End VisionRange = 100 ShroudClearingRange = 200 Prerequisites Object = ChinaBarracks End BuildCost = 300 BuildTime = 10.0 ;in seconds ExperienceValue = 5 5 10 20 ;Experience point value at each level ExperienceRequired = 0 20 40 80 ;Experience points needed to gain each level IsTrainable = Yes ;Can gain experience CrushableLevel = 0 ;What am I?: 0 = for infantry, 1 = for trees, 2 = general vehicles CommandSet = ChinaInfantryRedguardCommandSet ; *** AUDIO Parameters *** VoiceSelect = RedGuardVoiceSelect VoiceMove = RedGuardVoiceMove VoiceGuard = RedGuardVoiceMove VoiceAttack = RedGuardVoiceAttack VoiceGroupSelect = BattleCrySound SoundDie = RedGuardVoiceDie SoundDieFire = DieByFireChina SoundDieToxin = DieByToxinChina ; surrender is cut. sorry. (srj) ; VoiceSurrender = RedGuardVoiceSurrender VoiceFear = RedGuardVoiceFear VoiceTaskComplete = RedGuardVoiceCaptureComplete UnitSpecificSounds VoiceMelee = RedGuardVoiceAttackBayonet VoiceGarrison = RedGuardVoiceGarrison VoiceCreate = RedGuardVoiceCreate VoiceSubdue = RedGuardVoiceSubdue VoiceEnter = RedGuardVoiceMove VoiceEnterHostile = RedGuardVoiceMove VoiceGetHealed = RedGuardVoiceMove End ; *** ENGINEERING Parameters *** RadarPriority = UNIT KindOf = PRELOAD SELECTABLE CAN_ATTACK ATTACK_NEEDS_LINE_OF_SIGHT CAN_CAST_REFLECTIONS INFANTRY SCORE PARACHUTABLE Body = ActiveBody ModuleTag_02 MaxHealth = 120.0 InitialHealth = 120.0 End Behavior = VeterancyGainCreate ModuleTag_03 StartingLevel = VETERAN ScienceRequired = SCIENCE_RedGuardTraining End Behavior = AIUpdateInterface ModuleTag_04 AutoAcquireEnemiesWhenIdle = Yes End Behavior = CommandButtonHuntUpdate ModuleTag_05 ; allows use of command button hunt script with this unit. End Locomotor = SET_NORMAL RedguardLocomotor Behavior = HordeUpdate ModuleTag_06 RubOffRadius = 60 ; if I am this close to a real hordesman, I will get to be an honorary hordesman UpdateRate = 1000 ; how often to recheck horde status (msec) Radius = 30 ; how close other units must be to us to count towards our horde-ness (~30 feet or so) KindOf = INFANTRY ; what KindOf's must match to count towards horde-ness AlliesOnly = Yes ; do we only count allies towards horde status? ExactMatch = No ; do we only count units of our exact same type towards horde status? (overrides kindof) Count = 5 ; how many units must be within Radius to grant us horde-ness Action = HORDE ; when horde-ing, grant us the HORDE bonus End Behavior = PhysicsBehavior ModuleTag_07 Mass = 5.0 End ;Behavior = WeaponSetUpgrade ModuleTag_09 ; TriggeredBy = Upgrade_ChinaBayonet ;End Behavior = CommandSetUpgrade ModuleTag_09 CommandSet = ChinaInfantryRedguardCommandSetUpgrade TriggeredBy = Upgrade_ChinaBayonet End Behavior = SquishCollide ModuleTag_10 ;nothing End ; --- begin Death modules --- Behavior = SlowDeathBehavior ModuleTag_Death01 DeathTypes = ALL -CRUSHED -SPLATTED -EXPLODED -BURNED -POISONED -POISONED_BETA SinkDelay = 3000 SinkRate = 0.5 ; in Dist/Sec DestructionDelay = 8000 FX = INITIAL FX_GIDie End Behavior = SlowDeathBehavior ModuleTag_Death02 DeathTypes = NONE +CRUSHED +SPLATTED SinkDelay = 3000 SinkRate = 0.5 ; in Dist/Sec DestructionDelay = 8000 FX = INITIAL FX_GIDieCrushed End Behavior = SlowDeathBehavior ModuleTag_Death03 DeathTypes = NONE +EXPLODED SinkDelay = 3000 SinkRate = 0.5 ; in Dist/Sec DestructionDelay = 8000 FX = INITIAL FX_GIDie FlingForce = 8 FlingForceVariance = 3 FlingPitch = 60 FlingPitchVariance = 10 End Behavior = SlowDeathBehavior ModuleTag_Death04 DeathTypes = NONE +BURNED DestructionDelay = 0 FX = INITIAL FX_GIDie OCL = INITIAL OCL_FlamingInfantry End Behavior = SlowDeathBehavior ModuleTag_Death05 DeathTypes = NONE +POISONED DestructionDelay = 0 FX = INITIAL FX_GIDie OCL = INITIAL OCL_ToxicInfantry End Behavior = SlowDeathBehavior ModuleTag_Death06 ; don't forget to give it a new, unique module tag DeathTypes = NONE +POISONED_BETA DestructionDelay = 0 FX = INITIAL FX_GIDie OCL = INITIAL OCL_ToxicInfantryBeta ;you'll have to create this OCL and make it use the blue guys instead of green ones End ; --- end Death modules --- Behavior = PoisonedBehavior ModuleTag_15 PoisonDamageInterval = 100 ; Every this many msec I will retake the poison damage dealt me... PoisonDuration = 3000 ; ... for this long after last hit by poison damage End Behavior = SpecialAbility ModuleTag_16 SpecialPowerTemplate = SpecialAbilityRedGuardCaptureBuilding UpdateModuleStartsAttack = Yes StartsPaused = Yes InitiateSound = RedGuardVoiceCapture End Behavior = SpecialAbilityUpdate ModuleTag_17 SpecialPowerTemplate = SpecialAbilityRedGuardCaptureBuilding StartAbilityRange = 5.0 UnpackTime = 3000 ; (changing this will scale anim speed) PreparationTime = 20000 ; time to complete hack once prepared (changing this will scale anim speed) PackTime = 2000 ; (changing this will scale anim speed) DoCaptureFX = Yes AwardXPForTriggering = 4 ;SkillPointsForTriggering = ??? -- Dustin, fill me out if you want different balance values. End Behavior = UnpauseSpecialPowerUpgrade ModuleTag_18 SpecialPowerTemplate = SpecialAbilityRedGuardCaptureBuilding TriggeredBy = Upgrade_InfantryCaptureBuilding End Geometry = CYLINDER GeometryMajorRadius = 7.0 GeometryMinorRadius = 7.0 GeometryHeight = 12.0 GeometryIsSmall = Yes Shadow = SHADOW_DECAL ShadowSizeX = 14; ShadowSizeY = 14; ShadowTexture = ShadowI; BuildCompletion = APPEARS_AT_RALLY_POINT End ;------------------------------------------------------------------------------ Object ChinaInfantryParadeRedGuard ; Unit added per John Lee's request. - GB ; *** ART Parameters *** Draw = W3DModelDraw ModuleTag_01 OkToChangeModelColor = Yes ; ------- Standing-Around Animations DefaultConditionState Model = NICNSC_SKN IdleAnimation = NICNSC_SKL.NICNSC_STA 0 35 IdleAnimation = NICNSC_SKL.NICNSC_IDA IdleAnimation = NICNSC_SKL.NICNSC_IDB AnimationMode = ONCE WeaponFireFXBone = PRIMARY Muzzle WeaponMuzzleFlash = PRIMARY MuzzleFX TransitionKey = TRANS_Stand End ConditionState = REALLYDAMAGED IdleAnimation = NICNSC_SKL.NICNSC_STB AnimationMode = ONCE TransitionKey = TRANS_StandDamaged End ; ------- Machine Gun Animations ConditionState = FIRING_A Animation = NICNSC_SKL.NICNSC_ATA AnimationMode = LOOP TransitionKey = TRANS_Firing End AliasConditionState = BETWEEN_FIRING_SHOTS_A AliasConditionState = RELOADING_A ConditionState = USING_WEAPON_A REALLYDAMAGED Animation = NICNSC_SKL.NICNSC_ATC AnimationMode = LOOP TransitionKey = TRANS_FiringDamaged End ; ------- Firing-related Transitions TransitionState = TRANS_Firing TRANS_FiringDamaged Animation = NICNSC_SKL.NICNSC_AA2AC AnimationMode = ONCE End TransitionState = TRANS_Stand TRANS_Firing Animation = NICNSC_SKL.NICNSC_SA2AA AnimationMode = ONCE End TransitionState = TRANS_Firing TRANS_Stand Animation = NICNSC_SKL.NICNSC_AA2SA AnimationMode = ONCE End TransitionState = TRANS_StandDamaged TRANS_FiringDamaged Animation = NICNSC_SKL.NICNSC_ATCST AnimationMode = ONCE End TransitionState = TRANS_FiringDamaged TRANS_StandDamaged Animation = NICNSC_SKL.NICNSC_ATCED AnimationMode = ONCE End ; ------------- Damage Transitions -------------------- TransitionState = TRANS_StandDamaged TRANS_RunDamaged Animation = NICNSC_SKL.NICNSC_AA2AC AnimationMode = ONCE AnimationSpeedFactorRange = 2 2 End TransitionState = TRANS_RunDamaged TRANS_StandDamaged Animation = NICNSC_SKL.NICNSC_AA2AC AnimationMode = ONCE_BACKWARDS AnimationSpeedFactorRange = 2 2 Flags = START_FRAME_LAST End TransitionState = TRANS_Stand TRANS_StandDamaged Animation = NICNSC_SKL.NICNSC_AA2SA AnimationMode = ONCE_BACKWARDS AnimationSpeedFactorRange = 4 5 Flags = START_FRAME_LAST End ; ------- Bayonet Animations ConditionState = PREATTACK_C Animation = NICNSC_SKL.NICNSC_ATB1 AnimationMode = ONCE TransitionKey = TRANS_Stab End AliasConditionState = PREATTACK_C MOVING AliasConditionState = PREATTACK_C FIRING_C AliasConditionState = PREATTACK_C BETWEEN_FIRING_SHOTS_C ConditionState = FIRING_C Animation = NICNSC_SKL.NICNSC_ATB2 AnimationMode = ONCE ; this is basically a trick: this guy has a nontrivial animation for firing, ; and a long recycle time between shots. we want him to finish his fire animation ; (unless he's ordered to do something else), so this is just a handy trick that ; says, "if the previous state had this transition key, allow it to finish before ; switching to us, if possible". WaitForStateToFinishIfPossible = TRANS_Stab End AliasConditionState = BETWEEN_FIRING_SHOTS_C AliasConditionState = RELOADING_C ; ------- Parachuting Animations ConditionState = FREEFALL Animation = NICNSC_SKL.NICNSC_POP AnimationMode = MANUAL Flags = START_FRAME_FIRST TransitionKey = TRANS_Falling End AliasConditionState = FREEFALL REALLYDAMAGED AliasConditionState = FREEFALL DYING ConditionState = PARACHUTING Animation = NICNSC_SKL.NICNSC_PHG AnimationMode = LOOP Flags = PRISTINE_BONE_POS_IN_FINAL_FRAME ; our bone positions should come from the last frame, rather than the first TransitionKey = TRANS_Chute End AliasConditionState = PARACHUTING REALLYDAMAGED AliasConditionState = PARACHUTING DYING TransitionState = TRANS_Falling TRANS_Chute Animation = NICNSC_SKL.NICNSC_POP AnimationMode = ONCE Flags = PRISTINE_BONE_POS_IN_FINAL_FRAME ; our bone positions should come from the last frame, rather than the first End TransitionState = TRANS_Chute TRANS_Stand Animation = NICNSC_SKL.NICNSC_PTD AnimationMode = ONCE End ; ------- Movement Animations ConditionState = MOVING Animation = NICNSC_SKL.NICNSC_MAR 12 AnimationMode = LOOP Flags = RANDOMSTART TransitionKey = None ParticleSysBone = None InfantryDustTrails End AliasConditionState = MOVING ATTACKING ConditionState = MOVING REALLYDAMAGED Animation = NICNSC_SKL.NICNSC_RNB AnimationMode = LOOP Flags = RANDOMSTART TransitionKey = TRANS_RunDamaged ParticleSysBone = None InfantryDustTrails End AliasConditionState = MOVING ATTACKING REALLYDAMAGED ; ------- Surrender Animations ; surrender is cut. sorry. (srj) ; ConditionState = SURRENDER ; Animation = NICNSC_SKL.NICNSC_SST ; AnimationMode = ONCE ; TransitionKey = TRANS_Surrendered ; End ; AliasConditionState = SURRENDER REALLYDAMAGED ; ConditionState = SURRENDER MOVING ; Animation = NICNSC_SKL.NICNSC_RNB ; AnimationMode = ONCE ; TransitionKey = TRANS_Surrendered ; End ; AliasConditionState = SURRENDER MOVING REALLYDAMAGED ; TransitionState = TRANS_Stand TRANS_Surrendered ; Animation = NICNSC_SKL.NICNSC_SUR ; AnimationMode = ONCE ; End ; ------- Bldg-capture ConditionState = UNPACKING Animation = NICNSC_SKL.NICNSC_FDP1 AnimationMode = ONCE End AliasConditionState = UNPACKING REALLYDAMAGED ConditionState = RAISING_FLAG Animation = NICNSC_SKL.NICNSC_FDP2 AnimationMode = ONCE TransitionKey = TRANS_Raising End AliasConditionState = RAISING_FLAG REALLYDAMAGED ConditionState = PACKING Animation = NICNSC_SKL.NICNSC_FDP1 AnimationMode = ONCE_BACKWARDS Flags = START_FRAME_LAST TransitionKey = TRANS_Packing End AliasConditionState = PACKING REALLYDAMAGED TransitionState = TRANS_Raising TRANS_Packing Animation = NICNSC_SKL.NICNSC_FDP2 AnimationMode = ONCE_BACKWARDS Flags = START_FRAME_LAST End ; ------- Misc Animations ; ------- Dying Animations ConditionState = DYING Animation = NICNSC_SKL.NICNSC_DTA Animation = NICNSC_SKL.NICNSC_DTB AnimationMode = ONCE TransitionKey = TRANS_Dying End TransitionState = TRANS_Dying TRANS_Flailing Animation = NICNSC_SKL.NICNSC_ATDE1 AnimationMode = ONCE End ConditionState = DYING EXPLODED_FLAILING Animation = NICNSC_SKL.NICNSC_ATDE2 AnimationMode = LOOP TransitionKey = TRANS_Flailing End ConditionState = DYING EXPLODED_BOUNCING Animation = NICNSC_SKL.NICNSC_ATDE3 AnimationMode = ONCE TransitionKey = None End ConditionState = SPECIAL_CHEERING Animation = NICNSC_SKL.NICNSC_CHA AnimationMode = LOOP End End ; ***DESIGN parameters *** DisplayName = OBJECT:Redguard Side = China EditorSorting = INFANTRY TransportSlotCount = 1 ;how many "slots" we take in a transport (0 == not transportable) WeaponSet Conditions = None Weapon = PRIMARY RedguardMachineGun Weapon = SECONDARY None Weapon = TERTIARY RedguardBayonet AutoChooseSources = TERTIARY None End ; sorry, no stun bullets, cut for this version (srj) ; WeaponSet ; Conditions = PLAYER_UPGRADE ; Weapon = PRIMARY RedguardMachineGun ; Weapon = SECONDARY RedguardStunBulletsMachineGun ; Weapon = TERTIARY RedguardBayonet ; AutoChooseSources = SECONDARY None ; AutoChooseSources = TERTIARY None ; End ArmorSet Conditions = None Armor = HumanArmor DamageFX = InfantryDamageFX End VisionRange = 100 ShroudClearingRange = 200 Prerequisites Object = ChinaBarracks End BuildCost = 225 BuildTime = 10.0 ;in seconds ExperienceValue = 5 5 10 20 ;Experience point value at each level ExperienceRequired = 0 20 40 80 ;Experience points needed to gain each level IsTrainable = Yes ;Can gain experience CrushableLevel = 0 ;What am I?: 0 = for infantry, 1 = for trees, 2 = general vehicles CommandSet = ChinaInfantryRedguardCommandSet ; *** AUDIO Parameters *** VoiceSelect = RedGuardVoiceSelect VoiceMove = RedGuardVoiceMove VoiceAttack = RedGuardVoiceAttack VoiceGroupSelect = BattleCrySound SoundDie = RedGuardVoiceDie SoundDieFire = DieByFireChina SoundDieToxin = DieByToxinChina ; *** ENGINEERING Parameters *** RadarPriority = UNIT KindOf = PRELOAD SELECTABLE CAN_ATTACK ATTACK_NEEDS_LINE_OF_SIGHT CAN_CAST_REFLECTIONS INFANTRY SCORE PARACHUTABLE Body = ActiveBody ModuleTag_02 MaxHealth = 90.0 InitialHealth = 90.0 End Behavior = VeterancyGainCreate ModuleTag_03 StartingLevel = VETERAN ScienceRequired = SCIENCE_RedGuardTraining End Behavior = AIUpdateInterface ModuleTag_04 AutoAcquireEnemiesWhenIdle = Yes End Locomotor = SET_NORMAL ParadeRedguardLocomotor Behavior = PhysicsBehavior ModuleTag_06 Mass = 5.0 End ; sorry, no tranq or stun bullets, cut for this version (srj) ; Behavior = WeaponSetUpgrade ModuleTag_08 ; TriggeredBy = Upgrade_ChinaStunBullets ; End Behavior = SquishCollide ModuleTag_09 ;nothing End ; --- begin Death modules --- Behavior = SlowDeathBehavior ModuleTag_Death01 DeathTypes = ALL -CRUSHED -SPLATTED -EXPLODED -BURNED -POISONED SinkDelay = 3000 SinkRate = 0.5 ; in Dist/Sec DestructionDelay = 8000 FX = INITIAL FX_GIDie End Behavior = SlowDeathBehavior ModuleTag_Death02 DeathTypes = NONE +CRUSHED +SPLATTED SinkDelay = 3000 SinkRate = 0.5 ; in Dist/Sec DestructionDelay = 8000 FX = INITIAL FX_GIDieCrushed End Behavior = SlowDeathBehavior ModuleTag_Death03 DeathTypes = NONE +EXPLODED SinkDelay = 3000 SinkRate = 0.5 ; in Dist/Sec DestructionDelay = 8000 FX = INITIAL FX_GIDie FlingForce = 8 FlingForceVariance = 3 FlingPitch = 60 FlingPitchVariance = 10 End Behavior = SlowDeathBehavior ModuleTag_Death04 DeathTypes = NONE +BURNED DestructionDelay = 0 FX = INITIAL FX_GIDie OCL = INITIAL OCL_FlamingInfantry End Behavior = SlowDeathBehavior ModuleTag_Death05 DeathTypes = NONE +POISONED DestructionDelay = 0 FX = INITIAL FX_GIDie OCL = INITIAL OCL_ToxicInfantry End ; --- end Death modules --- Behavior = PoisonedBehavior ModuleTag_14 PoisonDamageInterval = 100 ; Every this many msec I will retake the poison damage dealt me... PoisonDuration = 3000 ; ... for this long after last hit by poison damage End Behavior = SpecialAbility ModuleTag_15 SpecialPowerTemplate = SpecialAbilityRedGuardCaptureBuilding UpdateModuleStartsAttack = Yes InitiateSound = RedGuardVoiceCapture End Behavior = SpecialAbilityUpdate ModuleTag_16 SpecialPowerTemplate = SpecialAbilityRedGuardCaptureBuilding StartAbilityRange = 5.0 UnpackTime = 3000 ; (changing this will scale anim speed) PreparationTime = 10000 ; time to complete hack once prepared (changing this will scale anim speed) PackTime = 2000 ; (changing this will scale anim speed) DoCaptureFX = Yes End Geometry = CYLINDER GeometryMajorRadius = 10.0 GeometryMinorRadius = 10.0 GeometryHeight = 12.0 GeometryIsSmall = Yes Shadow = SHADOW_DECAL ShadowSizeX = 14; ShadowSizeY = 14; ShadowTexture = ShadowI; BuildCompletion = APPEARS_AT_RALLY_POINT End ;------------------------------------------------------------------------------ Object ChinaInfantryBlackLotus ; *** ART Parameters *** SelectPortrait = SNBlkLotus_L2 ButtonImage = SNBlkLotus2 ;UpgradeCameo1 = NONE ;UpgradeCameo2 = NONE ;UpgradeCameo3 = NONE ;UpgradeCameo4 = NONE ;UpgradeCameo5 = NONE Draw = W3DModelDraw ModuleTag_01 OkToChangeModelColor = Yes ; --- idle DefaultConditionState Model = NIHERO_SKN IdleAnimation = NIHERO_SKL.NIHERO_STA 0 17 IdleAnimation = NIHERO_SKL.NIHero_IDA IdleAnimation = NIHERO_SKL.NIHero_IDB AnimationMode = ONCE TransitionKey = TRANS_Stand End ConditionState = REALLYDAMAGED IdleAnimation = NIHERO_SKL.NIHERO_ISTA 0 30 IdleAnimation = NIHERO_SKL.NIHero_IIDA AnimationMode = ONCE TransitionKey = TRANS_StandInjured End TransitionState = TRANS_Stand TRANS_StandInjured Animation = NIHero_SKL.NIHero_ISTAHIT AnimationMode = ONCE End ; --- moving ConditionState = MOVING Animation = NIHero_SKL.NIHero_RNA AnimationMode = LOOP Flags = RANDOMSTART TransitionKey = None ParticleSysBone = None InfantryDustTrails End AliasConditionState = MOVING UNPACKING ConditionState = MOVING REALLYDAMAGED Animation = NIHero_SKL.NIHero_IRNA AnimationMode = LOOP Flags = RANDOMSTART TransitionKey = None ParticleSysBone = None InfantryDustTrails End AliasConditionState = MOVING UNPACKING REALLYDAMAGED ; --- packing states ConditionState = UNPACKING ;Preparing to attack (unpacking gear) Animation = NIHero_SKL.NIHero_ATA1 AnimationMode = ONCE End AliasConditionState = UNPACKING FIRING_A ConditionState = FIRING_A ;Processing attack (hacking) Animation = NIHero_SKL.NIHero_ATA2 AnimationMode = LOOP TransitionKey = TRANS_FiringA End ConditionState = PACKING ;Completing attack (packing gear) Animation = NIHero_SKL.NIHero_ATA3 AnimationMode = ONCE End AliasConditionState = FIRING_A PACKING TransitionState = TRANS_FiringA TRANS_FiringAInjured Animation = NIHero_SKL.NIHero_IATAHIT AnimationMode = ONCE End ; --- injured-packing states ConditionState = UNPACKING REALLYDAMAGED ;Preparing to attack (unpacking gear) Animation = NIHero_SKL.NIHero_IATA1 AnimationMode = ONCE End AliasConditionState = UNPACKING FIRING_A REALLYDAMAGED ConditionState = FIRING_A REALLYDAMAGED ;Processing attack (hacking) Animation = NIHero_SKL.NIHero_IATA2 AnimationMode = LOOP TransitionKey = TRANS_FiringAInjured End ConditionState = PACKING REALLYDAMAGED ;Completing attack (packing gear) Animation = NIHero_SKL.NIHero_IATA3 AnimationMode = ONCE End AliasConditionState = FIRING_A PACKING REALLYDAMAGED ; --- packing-dying states ; code doesn't really support this. Oh well. ; ConditionState = DYING RAISING_FLAG ; Animation = NIHero_SKL.NIHero_IDTA ; Animation = NIHero_SKL.NIHero_IDTB ; AnimationMode = ONCE ; End ; AliasConditionState = DYING RAISING_FLAG EXPLODED_FLAILING EXPLODED_BOUNCING ; --- normal-dying states ConditionState = DYING Animation = NIHero_SKL.NIHero_DTA Animation = NIHero_SKL.NIHero_DTB AnimationMode = ONCE TransitionKey = TRANS_Dying End TransitionState = TRANS_Dying TRANS_Flailing Animation = NIHero_SKL.NIHero_ADTF1 AnimationMode = ONCE End ConditionState = DYING EXPLODED_FLAILING Animation = NIHero_SKL.NIHero_ADTF2 AnimationMode = LOOP TransitionKey = TRANS_Flailing End ConditionState = DYING EXPLODED_BOUNCING Animation = NIHero_SKL.NIHero_ADTF3 AnimationMode = ONCE TransitionKey = None End ; --- cheering states ConditionState = SPECIAL_CHEERING Animation = NIHERO_SKL.NIHERO_CHA AnimationMode = ONCE End ConditionState = SPECIAL_CHEERING REALLYDAMAGED Animation = NIHERO_SKL.NIHERO_ICHA AnimationMode = ONCE End ; --- falling states ConditionState = FREEFALL Animation = NIHero_SKL.NIHero_PFL AnimationMode = LOOP TransitionKey = TRANS_Falling End AliasConditionState = FREEFALL REALLYDAMAGED AliasConditionState = FREEFALL DYING ConditionState = PARACHUTING Animation = NIHero_SKL.NIHero_PHG AnimationMode = LOOP TransitionKey = TRANS_Chute End AliasConditionState = PARACHUTING REALLYDAMAGED AliasConditionState = PARACHUTING DYING TransitionState = TRANS_Falling TRANS_Chute Animation = NIHero_SKL.NIHero_POP AnimationMode = ONCE Flags = PRISTINE_BONE_POS_IN_FINAL_FRAME ; our bone positions should come from the last frame, rather than the first End TransitionState = TRANS_Chute TRANS_Stand Animation = NIHero_SKL.NIHero_PTD AnimationMode = ONCE End TransitionState = TRANS_Chute TRANS_StandInjured Animation = NIHero_SKL.NIHero_PTD AnimationMode = ONCE End ; --- surrender states ; surrender is cut. sorry. (srj) ; ConditionState = SURRENDER ; Animation = NIHERO_SKL.NIHERO_SUR ; AnimationMode = ONCE ; TransitionKey = TRANS_HandsUp ; End ; TransitionState = TRANS_HandsUp TRANS_Stand ; Animation = NIHERO_SKL.NIHERO_SST ; AnimationMode = ONCE ; End ; TransitionState = TRANS_HandsUp TRANS_StandInjured ; Animation = NIHERO_SKL.NIHERO_SST ; AnimationMode = ONCE ; End ; ConditionState = SURRENDER REALLYDAMAGED ; Animation = NIHERO_SKL.NIHERO_ISUR ; AnimationMode = ONCE ; TransitionKey = TRANS_InjuredHandsUp ; End ; TransitionState = TRANS_InjuredHandsUp TRANS_StandInjured ; Animation = NIHERO_SKL.NIHERO_ISST ; AnimationMode = ONCE ; End End ; ***DESIGN parameters *** DisplayName = OBJECT:BlackLotus Side = China EditorSorting = INFANTRY TransportSlotCount = 1 ;how many "slots" we take in a transport (0 == not transportable) WeaponSet Conditions = None Weapon = PRIMARY None End ArmorSet Conditions = None Armor = HumanArmor DamageFX = InfantryDamageFX End VisionRange = 300 ShroudClearingRange = 400 Prerequisites Object = ChinaBarracks Object = ChinaPropagandaCenter End BuildCost = 1500 BuildTime = 20.0 ;in seconds MaxSimultaneousOfType = 1 CommandSet = ChinaInfantryBlackLotusCommandSet ExperienceValue = 50 100 150 400 ;Experience point value at each level ExperienceRequired = 0 150 450 900 ;Experience points needed to gain each level IsTrainable = Yes ;Can gain experience CrushableLevel = 2 ;What am I?: 0 = for infantry, 1 = for trees, 2 = general vehicles CommandSet = ChinaInfantryBlackLotusCommandSet ; *** AUDIO Parameters *** VoiceSelect = BlackLotusVoiceSelect VoiceMove = BlackLotusVoiceMove VoiceAttack = BlackLotusVoiceAttack VoiceGuard = BlackLotusVoiceMove VoiceFear = BlackLotusVoiceFear VoiceTaskComplete = BlackLotusVoiceCaptureComplete SoundDie = BlackLotusVoiceDie SoundDieFire = DieByFireFemale SoundDieToxin = DieByToxinFemale SoundStealthOn = StealthOn SoundStealthOff = StealthOff ;SoundAmbient = BlackLotusSoundAmbient UnitSpecificSounds VoiceCreate = BlackLotusVoiceCreate VoiceGarrison = BlackLotusVoiceMove VoiceEnter = BlackLotusVoiceMove VoiceEnterHostile = BlackLotusVoiceMove VoiceStealCashComplete = BlackLotusVoiceCashComplete VoiceDisableVehicleComplete = BlackLotusVoiceDisableComplete VoiceCaptureBuildingComplete = BlackLotusVoiceCaptureComplete VoiceGetHealed = BlackLotusVoiceMove End ; *** ENGINEERING Parameters *** RadarPriority = UNIT ; note: per Dustin's comment, Hero units do not surrender KindOf = PRELOAD SELECTABLE CAN_ATTACK CAN_CAST_REFLECTIONS INFANTRY SCORE HERO Body = ActiveBody ModuleTag_02 MaxHealth = 150.0 InitialHealth = 150.0 End Behavior = CommandButtonHuntUpdate ModuleTag_03 ; allows use of command button hunt script with this unit. End Behavior = AIUpdateInterface ModuleTag_04 AutoAcquireEnemiesWhenIdle = No End Locomotor = SET_NORMAL BlackLotusLocomotor Locomotor = SET_FREEFALL FreeFallLocomotor Behavior = PhysicsBehavior ModuleTag_05 Mass = 5.0 End Behavior = StealthUpdate ModuleTag_07 StealthDelay = 2500 ; msec StealthForbiddenConditions = USING_ABILITY HintDetectableConditions = USING_ABILITY InnateStealth = Yes OrderIdleEnemiesToAttackMeUponReveal = Yes End Behavior = StealthDetectorUpdate ModuleTag_44 DetectionRate = 500 ; how often to rescan for stealthed things in my sight (msec) ;DetectionRange = ??? ;Dustin, enable this for independant balancing! CanDetectWhileGarrisoned = No ;Garrisoned means being in a structure that you units can shoot out of. CanDetectWhileContained = No ;Contained means being in a transport or tunnel network. End Behavior = SpecialAbility ModuleTag_08 SpecialPowerTemplate = SpecialAbilityBlackLotusCaptureBuilding UpdateModuleStartsAttack = Yes InitiateSound = BlackLotusVoiceHackBuilding End Behavior = SpecialAbilityUpdate ModuleTag_09 SpecialPowerTemplate = SpecialAbilityBlackLotusCaptureBuilding StartAbilityRange = 150.0 UnpackTime = 6730 ;animation time is 6730 (changing this will scale anim speed) PackTime = 2800 ;animation time is 5800 (changing this will scale anim speed) PreparationTime = 6000 ;time to complete hack once prepared (unpacked) SpecialObject = BinaryDataStream DoCaptureFX = Yes PackSound = BlackLotusPack UnpackSound = BlackLotusUnpack TriggerSound = BlackLotusTrigger PrepSoundLoop = BlackLotusPrepLoop AwardXPForTriggering = 20 ;SkillPointsForTriggering = ??? -- Dustin, fill me out if you want different balance values. End Behavior = SpecialAbility ModuleTag_10 SpecialPowerTemplate = SpecialAbilityBlackLotusDisableVehicleHack UpdateModuleStartsAttack = Yes InitiateSound = BlackLotusVoiceHackVehicle End Behavior = SpecialAbilityUpdate ModuleTag_11 SpecialPowerTemplate = SpecialAbilityBlackLotusDisableVehicleHack StartAbilityRange = 150.0 UnpackTime = 2000 ;6730 ;animation time is 6730 (changing this will scale anim speed) PackTime = 1000 ;2800 ;animation time is 5800 (changing this will scale anim speed) PreparationTime = 2000 ;time to complete hack once prepared (unpacked) EffectDuration = 15000 ;duration vehicle is disabled (30 seconds) DisableFXParticleSystem = DisabledEffectBinaryShower0 SpecialObject = BinaryDataStream PackSound = BlackLotusPack UnpackSound = BlackLotusUnpack TriggerSound = BlackLotusTrigger PrepSoundLoop = BlackLotusPrepLoop AwardXPForTriggering = 0 ;SkillPointsForTriggering = ??? -- Dustin, fill me out if you want different balance values. End Behavior = SpecialAbility ModuleTag_12 SpecialPowerTemplate = SpecialAbilityBlackLotusStealCashHack UpdateModuleStartsAttack = Yes InitiateSound = BlackLotusVoiceHackCash End Behavior = SpecialAbilityUpdate ModuleTag_13 SpecialPowerTemplate = SpecialAbilityBlackLotusStealCashHack StartAbilityRange = 150.0 UnpackTime = 6730 ;animation time is 6730 (changing this will scale anim speed) PackTime = 5800 ;animation time is 5800 (changing this will scale anim speed) PreparationTime = 6000 ;time to complete hack once prepared (unpacked) EffectValue = 1000 ;amount of cash stolen SpecialObject = BinaryDataStream PackSound = BlackLotusPack UnpackSound = BlackLotusUnpack TriggerSound = BlackLotusTrigger PrepSoundLoop = BlackLotusPrepLoop AwardXPForTriggering = 20 ;SkillPointsForTriggering = ??? -- Dustin, fill me out if you want different balance values. End ;Hero units can't be squished! ;Behavior = SquishCollide ModuleTag_14 ; ;nothing ;End ; --- begin Death modules --- Behavior = SlowDeathBehavior ModuleTag_Death01 DeathTypes = ALL -CRUSHED -SPLATTED -EXPLODED -BURNED -POISONED -POISONED_BETA SinkDelay = 3000 SinkRate = 0.5 ; in Dist/Sec DestructionDelay = 8000 FX = INITIAL FX_GIDie End Behavior = SlowDeathBehavior ModuleTag_Death02 DeathTypes = NONE +CRUSHED +SPLATTED SinkDelay = 3000 SinkRate = 0.5 ; in Dist/Sec DestructionDelay = 8000 FX = INITIAL FX_GIDieCrushed End Behavior = SlowDeathBehavior ModuleTag_Death03 DeathTypes = NONE +EXPLODED SinkDelay = 3000 SinkRate = 0.5 ; in Dist/Sec DestructionDelay = 8000 FX = INITIAL FX_GIDie FlingForce = 8 FlingForceVariance = 3 FlingPitch = 60 FlingPitchVariance = 10 End Behavior = SlowDeathBehavior ModuleTag_Death04 DeathTypes = NONE +BURNED DestructionDelay = 0 FX = INITIAL FX_GIDie OCL = INITIAL OCL_FlamingInfantry End Behavior = SlowDeathBehavior ModuleTag_Death05 DeathTypes = NONE +POISONED DestructionDelay = 0 FX = INITIAL FX_GIDie OCL = INITIAL OCL_ToxicInfantry End Behavior = SlowDeathBehavior ModuleTag_Death06 ; don't forget to give it a new, unique module tag DeathTypes = NONE +POISONED_BETA DestructionDelay = 0 FX = INITIAL FX_GIDie OCL = INITIAL OCL_ToxicInfantryBeta ;you'll have to create this OCL and make it use the blue guys instead of green ones End ; --- end Death modules --- Behavior = PoisonedBehavior ModuleTag_17 PoisonDamageInterval = 100 ; Every this many msec I will retake the poison damage dealt me... PoisonDuration = 3000 ; ... for this long after last hit by poison damage End Geometry = CYLINDER GeometryMajorRadius = 10.0 GeometryMinorRadius = 10.0 GeometryHeight = 12.0 GeometryIsSmall = Yes Shadow = SHADOW_DECAL ShadowSizeX = 14; ShadowSizeY = 14; ShadowTexture = ShadowI; BuildCompletion = APPEARS_AT_RALLY_POINT End ;------------------------------------------------------------------------------ Object ChinaInfantryTankHunter ; *** ART Parameters *** SelectPortrait = SNTankHunter_L ButtonImage = SNTankHunter UpgradeCameo1 = Upgrade_Nationalism ;UpgradeCameo2 = NONE ;UpgradeCameo3 = NONE ;UpgradeCameo4 = NONE ;UpgradeCameo5 = NONE Draw = W3DModelDraw ModuleTag_01 OkToChangeModelColor = Yes DefaultConditionState Model = NIMSST_SKN IdleAnimation = NIMSST_SKL.NIMSST_STA 0 30 IdleAnimation = NIMSST_SKL.NIMSST_IDA IdleAnimation = NIMSST_SKL.NIMSST_IDB AnimationMode = ONCE AnimationSpeedFactorRange = 0.8 1.2 TransitionKey = TRANS_Stand WeaponMuzzleFlash = PRIMARY MuzzleFX WeaponFireFXBone = PRIMARY Muzzle WeaponLaunchBone = PRIMARY Muzzle WeaponLaunchBone = SECONDARY Muzzle End AliasConditionState = REALLYDAMAGED ConditionState = FIRING_A Animation = NIMSST_SKL.NIMSST_ATA AnimationMode = ONCE TransitionKey = TRANS_START_FIRING End AliasConditionState = REALLYDAMAGED FIRING_A ConditionState = BETWEEN_FIRING_SHOTS_A Animation = NIMSST_SKL.NIMSST_STA AnimationMode = ONCE ; this is basically a trick: this guy has a nontrivial animation for firing, ; and a long recycle time between shots. we want him to finish his fire animation ; (unless he's ordered to do something else), so this is just a handy trick that ; says, "if the previous state had this transition key, allow it to finish before ; switching to us, if possible". WaitForStateToFinishIfPossible = TRANS_START_FIRING End AliasConditionState = REALLYDAMAGED BETWEEN_FIRING_SHOTS_A ConditionState = MOVING Animation = NIMSST_SKL.NIMSST_RNA 20 AnimationMode = LOOP Flags = RANDOMSTART TransitionKey = None ParticleSysBone = None InfantryDustTrails End AliasConditionState = REALLYDAMAGED MOVING ConditionState = RELOADING_A Animation = NIMSST_SKL.NIMSST_ATA 10 AnimationMode = ONCE ;WeaponLaunchBone = PRIMARY WeaponA End AliasConditionState = MOVING RELOADING_A AliasConditionState = REALLYDAMAGED MOVING RELOADING_A ConditionState = DYING Animation = NIMSST_SKL.NIMSST_DTA Animation = NIMSST_SKL.NIMSST_DTB AnimationSpeedFactorRange = 0.9 1.25 AnimationMode = ONCE TransitionKey = TRANS_Dying End TransitionState = TRANS_Dying TRANS_Flailing Animation = NIMSST_SKL.NIMSST_ADTD1 AnimationMode = ONCE End ConditionState = DYING EXPLODED_FLAILING Animation = NIMSST_SKL.NIMSST_ADTD2 AnimationMode = LOOP TransitionKey = TRANS_Flailing End ConditionState = DYING EXPLODED_BOUNCING Animation = NIMSST_SKL.NIMSST_ADTD3 AnimationMode = ONCE TransitionKey = None End ;PARACHUTING ANIMATIONS ConditionState = FREEFALL Animation = NIMSST_SKL.NIMSST_POP AnimationMode = ONCE TransitionKey = TRANS_Falling End AliasConditionState = FREEFALL REALLYDAMAGED AliasConditionState = FREEFALL DYING ConditionState = PARACHUTING Animation = NIMSST_SKL.NIMSST_PHG AnimationMode = LOOP Flags = PRISTINE_BONE_POS_IN_FINAL_FRAME ; our bone positions should come from the last frame, rather than the first TransitionKey = TRANS_Chute End AliasConditionState = PARACHUTING REALLYDAMAGED AliasConditionState = PARACHUTING DYING ; TransitionState = TRANS_Falling TRANS_Chute ; Animation = NIMSST_SKL.NIMSST_POP ; AnimationMode = ONCE ; Flags = PRISTINE_BONE_POS_IN_FINAL_FRAME ; our bone positions should come from the last frame, rather than the first ; End TransitionState = TRANS_Chute TRANS_Stand Animation = NIMSST_SKL.NIMSST_PDN AnimationMode = ONCE End ;SURRENDER ANIMATIONS ; surrender is cut. sorry. (srj) ; ConditionState = SURRENDER ; Animation = NIMSST_SKL.NIMSST_SST ; AnimationMode = ONCE ; TransitionKey = TRANS_SurrenderKneeling ; End ; ;ConditionState = SURRENDER MOVING ; ; Animation = NIMSST_SKL.NIMSST_SWKB ; ; AnimationMode = ONCE ; ; TransitionKey = TRANS_SurrenderMoving ; ;End ; TransitionState = TRANS_Stand TRANS_SurrenderKneeling ; Animation = NIMSST_SKL.NIMSST_SUR ; AnimationMode = ONCE ; End End ; ***DESIGN parameters *** DisplayName = OBJECT:TankHunter Side = China EditorSorting = INFANTRY TransportSlotCount = 1 ;how many "slots" we take in a transport (0 == not transportable) WeaponSet Conditions = None Weapon = PRIMARY ChinaInfantryTankHunterMissileLauncher End ArmorSet Conditions = None Armor = HumanArmor DamageFX = InfantryDamageFX End VisionRange = 150 ShroudClearingRange = 400 Prerequisites Object = ChinaBarracks End BuildCost = 300 BuildTime = 5.0 ;in seconds ExperienceValue = 20 20 40 60 ;Experience point value at each level ExperienceRequired = 0 100 200 400 ;Experience points needed to gain each level IsTrainable = Yes ;Can gain experience CrushableLevel = 0 ;What am I?: 0 = for infantry, 1 = for trees, 2 = general vehicles CommandSet = ChinaInfantryTankHunterCommandSet ; *** AUDIO Parameters *** VoiceSelect = TankHunterVoiceSelect VoiceMove = TankHunterVoiceMove VoiceAttack = TankHunterVoiceAttack VoiceAttackAir = TankHunterVoiceAttack SoundDie = TankHunterVoiceDie SoundDieFire = DieByFireChina SoundDieToxin = DieByToxinChina VoiceGuard = TankHunterVoiceMove ; surrender is cut. sorry. (srj) ; VoiceSurrender = TankHunterVoiceSurrender VoiceFear = TankHunterVoiceFear UnitSpecificSounds VoiceCreate = TankHunterVoiceCreate VoiceGarrison = TankHunterVoiceGarrison VoiceEnter = TankHunterVoiceMove VoiceEnterHostile = TankHunterVoiceMove VoiceGetHealed = TankHunterVoiceMove End ; *** ENGINEERING Parameters *** RadarPriority = UNIT KindOf = PRELOAD SELECTABLE CAN_ATTACK ATTACK_NEEDS_LINE_OF_SIGHT CAN_CAST_REFLECTIONS INFANTRY SCORE Body = ActiveBody ModuleTag_02 MaxHealth = 100.0 InitialHealth = 100.0 End Behavior = AIUpdateInterface ModuleTag_03 AutoAcquireEnemiesWhenIdle = Yes End Locomotor = SET_NORMAL MissileDefenderLocomotor Behavior = HordeUpdate ModuleTag_04 UpdateRate = 1000 ; how often to recheck horde status (msec) RubOffRadius = 60 ; if I am this close to a real hordesman, I will get to be an honorary hordesman Radius = 30 ; how close other units must be to us to count towards our horde-ness (~30 feet or so) KindOf = INFANTRY ; what KindOf's must match to count towards horde-ness AlliesOnly = Yes ; do we only count allies towards horde status? ExactMatch = No ; do we only count units of our exact same type towards horde status? (overrides kindof) Count = 5 ; how many units must be within Radius to grant us horde-ness Action = HORDE ; when horde-ing, grant us the HORDE bonus End Behavior = PhysicsBehavior ModuleTag_05 Mass = 5.0 End Behavior = SpecialAbility ModuleTag_07 SpecialPowerTemplate = SpecialAbilityTankHunterTNTAttack UpdateModuleStartsAttack = Yes InitiateSound = TankHunterVoiceTNT End Behavior = SpecialAbilityUpdate ModuleTag_08 SpecialPowerTemplate = SpecialAbilityTankHunterTNTAttack StartAbilityRange = 5.0 PreparationTime = 0 SpecialObject = TNTStickyBomb MaxSpecialObjects = 8 SpecialObjectsPersistWhenOwnerDies = No ;Charges are removed instantly when owner dies (nobody can detonate). SpecialObjectsPersistent = Yes ;Charges are persistent till lifetime expires or owner detonates them. UniqueSpecialObjectTargets = Yes ;This prevents multiple charges placed on the same object. FleeRangeAfterCompletion = 100.0 ;Runs away after finishing ability End Behavior = SquishCollide ModuleTag_09 ;nothing End ; --- begin Death modules --- Behavior = SlowDeathBehavior ModuleTag_Death01 DeathTypes = ALL -CRUSHED -SPLATTED -EXPLODED -BURNED -POISONED -POISONED_BETA SinkDelay = 3000 SinkRate = 0.5 ; in Dist/Sec DestructionDelay = 8000 FX = INITIAL FX_GIDie End Behavior = SlowDeathBehavior ModuleTag_Death02 DeathTypes = NONE +CRUSHED +SPLATTED SinkDelay = 3000 SinkRate = 0.5 ; in Dist/Sec DestructionDelay = 8000 FX = INITIAL FX_GIDieCrushed End Behavior = SlowDeathBehavior ModuleTag_Death03 DeathTypes = NONE +EXPLODED SinkDelay = 3000 SinkRate = 0.5 ; in Dist/Sec DestructionDelay = 8000 FX = INITIAL FX_GIDie FlingForce = 8 FlingForceVariance = 3 FlingPitch = 60 FlingPitchVariance = 10 End Behavior = SlowDeathBehavior ModuleTag_Death04 DeathTypes = NONE +BURNED DestructionDelay = 0 FX = INITIAL FX_GIDie OCL = INITIAL OCL_FlamingInfantry End Behavior = SlowDeathBehavior ModuleTag_Death05 DeathTypes = NONE +POISONED DestructionDelay = 0 FX = INITIAL FX_GIDie OCL = INITIAL OCL_ToxicInfantry End Behavior = SlowDeathBehavior ModuleTag_Death06 ; don't forget to give it a new, unique module tag DeathTypes = NONE +POISONED_BETA DestructionDelay = 0 FX = INITIAL FX_GIDie OCL = INITIAL OCL_ToxicInfantryBeta ;you'll have to create this OCL and make it use the blue guys instead of green ones End ; --- end Death modules --- Behavior = PoisonedBehavior ModuleTag_12 PoisonDamageInterval = 100 ; Every this many msec I will retake the poison damage dealt me... PoisonDuration = 3000 ; ... for this long after last hit by poison damage End Geometry = CYLINDER GeometryMajorRadius = 10.0 GeometryMinorRadius = 10.0 GeometryHeight = 12.0 GeometryIsSmall = Yes Shadow = SHADOW_DECAL ShadowSizeX = 14; ShadowSizeY = 14; ShadowTexture = ShadowI; BuildCompletion = APPEARS_AT_RALLY_POINT End ;------------------------------------------------------------------------------ Object TNTStickyBomb ;Created by Chinese Tank Hunters ;No drawable because it's invisible ; *** ART Parameters *** ; ***DESIGN parameters *** Side = China EditorSorting = SYSTEM TransportSlotCount = 0 ;how many "slots" we take in a transport (0 == not transportable) VisionRange = 75.0 ;Allow the stickybomb to show itself to user? ShroudClearingRange = 75 ArmorSet Conditions = None Armor = InvulnerableAllArmor End ; *** AUDIO Parameters *** SoundDie = BombTruckDefaultBombDetonation UnitSpecificSounds UnitBombPing = BombTickTimed End ; *** ENGINEERING Parameters *** RadarPriority = NOT_ON_RADAR KindOf = PROJECTILE MINE NO_COLLIDE Behavior = PhysicsBehavior ModuleTag_01 Mass = 5 End ;This determines how long the bomb lives before it explodes (via SlowDeathBehavior) Behavior = LifetimeUpdate ModuleTag_02 MinLifetime = 10000 ; min lifetime in msec MaxLifetime = 10000 ; max lifetime in msec End Behavior = StickyBombUpdate ModuleTag_03 ; nothing End Behavior = SlowDeathBehavior ModuleTag_04 DestructionDelay = 1 FX = INITIAL WeaponFX_TNTStickyBombDetonation Weapon = FINAL TNTDetonationWeapon ;PreferredAgainst = PRIMARY VEHICLE End Body = HighlanderBody ModuleTag_NewBody MaxHealth = 1.0 InitialHealth = 1.0 End End ;------------------------------------------------------------------------------ Object RemoteC4Charge ;Created by ColonelBurton ;No drawable because it's invisible ; *** ART Parameters *** ; ***DESIGN parameters *** Side = America EditorSorting = SYSTEM TransportSlotCount = 0 ;how many "slots" we take in a transport (0 == not transportable) VisionRange = 75.0 ;Allow the stickybomb to show itself to user? ShroudClearingRange = 75 ArmorSet Conditions = None Armor = InvulnerableAllArmor End ; *** AUDIO Parameters *** SoundDie = RemoteDemoChargeExplosion UnitSpecificSounds UnitBombPing = BombTickRemote End ; *** ENGINEERING Parameters *** RadarPriority = NOT_ON_RADAR KindOf = PROJECTILE MINE NO_COLLIDE ;Body = ActiveBody ModuleTag_02 ; MaxHealth = 1.0 ; InitialHealth = 1.0 ;End Body = HighlanderBody ModuleTag_NewBody MaxHealth = 1.0 InitialHealth = 1.0 End Behavior = StealthUpdate ModuleTag_03 StealthDelay = 0 ; msec StealthForbiddenConditions = NONE FriendlyOpacityMin = 50.0% InnateStealth = Yes End Behavior = StickyBombUpdate ModuleTag_04 ;Keeps it attached properly to the intended target should it move. End Behavior = SlowDeathBehavior ModuleTag_05 DestructionDelay = 1 FX = INITIAL WeaponFX_TNTStickyBombDetonation Weapon = FINAL BurtonC4ChargeWeapon End Geometry = CYLINDER GeometryMajorRadius = 0.0 GeometryHeight = 0.0 GeometryIsSmall = No End ;------------------------------------------------------------------------------ Object TimedC4Charge ;Created by Colonel Burton ;No drawable because it's invisible ; *** ART Parameters *** ; ***DESIGN parameters *** Side = America EditorSorting = SYSTEM TransportSlotCount = 0 ;how many "slots" we take in a transport (0 == not transportable) VisionRange = 75.0 ;Allow the stickybomb to show itself to user? ShroudClearingRange = 75 ArmorSet Conditions = None Armor = InvulnerableAllArmor End ; *** AUDIO Parameters *** SoundDie = RemoteDemoChargeExplosion UnitSpecificSounds UnitBombPing = BombTickTimed End ; *** ENGINEERING Parameters *** RadarPriority = NOT_ON_RADAR KindOf = PROJECTILE MINE NO_COLLIDE ;Body = ActiveBody ModuleTag_02 ; MaxHealth = 1.0 ; InitialHealth = 1.0 ;End Body = HighlanderBody ModuleTag_NewBody MaxHealth = 1.0 InitialHealth = 1.0 End Behavior = StealthUpdate ModuleTag_03 StealthDelay = 0 ; msec StealthForbiddenConditions = NONE FriendlyOpacityMin = 50.0% InnateStealth = Yes End ;This determines how long the bomb lives before it explodes (via SlowDeathBehavior) Behavior = LifetimeUpdate ModuleTag_04 MinLifetime = 20000 ; min lifetime in msec MaxLifetime = 20000 ; max lifetime in msec End Behavior = StickyBombUpdate ModuleTag_05 ;Keeps it attached properly to the intended target should it move. End Behavior = SlowDeathBehavior ModuleTag_06 DestructionDelay = 1 FX = INITIAL WeaponFX_TNTStickyBombDetonation Weapon = FINAL BurtonC4ChargeWeapon End Geometry = CYLINDER GeometryMajorRadius = 0.0 GeometryHeight = 0.0 GeometryIsSmall = No End ;------------------------------------------------------------------------------ Object DemoTrapDetonationObject ;The explodes-next-frame object when demo trap is triggered. ; ***DESIGN parameters *** Side = GLA EditorSorting = SYSTEM TransportSlotCount = 0 ;how many "slots" we take in a transport (0 == not transportable) VisionRange = 0.0 ;Allow the stickybomb to show itself to user? ; *** AUDIO Parameters *** ; *** ENGINEERING Parameters *** RadarPriority = NOT_ON_RADAR KindOf = PROJECTILE Behavior = PhysicsBehavior ModuleTag_01 Mass = 5 End ;This determines how long the bomb lives before it explodes (via SlowDeathBehavior) Behavior = LifetimeUpdate ModuleTag_02 MinLifetime = 1 ; min lifetime in msec MaxLifetime = 1 ; max lifetime in msec End Behavior = SlowDeathBehavior ModuleTag_03 DestructionDelay = 1 FX = INITIAL WeaponFX_DemoTrapDetonation Weapon = FINAL DemoTrapDetonationWeapon End End ;------------------------------------------------------------------------------ ; @todo -- this entire unit is "first pass only" and needs lots of specialization Object ChinaInfantrySecretPolice ; *** ART Parameters *** Draw = W3DModelDraw ModuleTag_01 OkToChangeModelColor = Yes ; @todo srj -- all these states are using placeholder art; need to add anims, etc. DefaultConditionState Model = NIHacker End End ; ***DESIGN parameters *** DisplayName = OBJECT:SecretPolice Side = China EditorSorting = INFANTRY TransportSlotCount = 1 ;how many "slots" we take in a transport (0 == not transportable) WeaponSet Conditions = None Weapon = PRIMARY None End ArmorSet Conditions = None Armor = HumanArmor DamageFX = InfantryDamageFX End VisionRange = 150 ShroudClearingRange = 150 Prerequisites Object = ChinaBarracks End BuildCost = 100 BuildTime = 3.0 ;in seconds ExperienceValue = 50 100 150 400 ;Experience point value at each level ExperienceRequired = 0 150 450 900 ;Experience points needed to gain each level IsTrainable = Yes ;Can gain experience ; *** AUDIO Parameters *** VoiceSelect = RedGuardVoiceSelect VoiceMove = RedGuardVoiceMove VoiceAttack = RedGuardVoiceAttack SoundDie = RedGuardVoiceDie SoundDieFire = DieByFireChina SoundDieToxin = DieByToxinChina ; *** ENGINEERING Parameters *** RadarPriority = UNIT KindOf = PRELOAD SELECTABLE CAN_ATTACK CAN_CAST_REFLECTIONS INFANTRY SCORE Body = ActiveBody ModuleTag_02 MaxHealth = 50.0 InitialHealth = 50.0 End Behavior = AIUpdateInterface ModuleTag_03 AutoAcquireEnemiesWhenIdle = Yes End Locomotor = SET_NORMAL BasicHumanLocomotor Behavior = PhysicsBehavior ModuleTag_04 Mass = 5.0 End Behavior = SlowDeathBehavior ModuleTag_05 SinkDelay = 3000 SinkRate = 0.5 ; in Dist/Sec DestructionDelay = 8000 End Behavior = SquishCollide ModuleTag_06 ;nothing End Behavior = FXListDie ModuleTag_07 DeathTypes = ALL -CRUSHED -SPLATTED DeathFX = FX_GIDie End Behavior = FXListDie ModuleTag_08 DeathTypes = NONE +CRUSHED +SPLATTED DeathFX = FX_GIDieCrushed End Behavior = PoisonedBehavior ModuleTag_09 PoisonDamageInterval = 100 ; Every this many msec I will retake the poison damage dealt me... PoisonDuration = 3000 ; ... for this long after last hit by poison damage End Geometry = CYLINDER GeometryMajorRadius = 10.0 GeometryMinorRadius = 10.0 GeometryHeight = 12.0 GeometryIsSmall = Yes Shadow = SHADOW_DECAL ShadowSizeX = 14; ShadowSizeY = 14; ShadowTexture = ShadowI; BuildCompletion = APPEARS_AT_RALLY_POINT End ;------------------------------------------------------------------------------ Object GLAInfantryWorker ; *** ART Parameters *** SelectPortrait = SUWorker_L ButtonImage = SUWorker ;UpgradeCameo1 = NONE ;UpgradeCameo2 = NONE ;UpgradeCameo3 = NONE ;UpgradeCameo4 = NONE ;UpgradeCameo5 = NONE Draw = W3DModelDraw ModuleTag_01 OkToChangeModelColor = Yes DefaultConditionState Model = UIWRKR_SKN IdleAnimation = UIWRKR_SKL.UIWRKR_STA 0 9 IdleAnimation = UIWRKR_SKL.UIWRKR_IDA AnimationMode = ONCE TransitionKey = TRANS_Stand End ConditionState = MOVING Animation = UIWRKR_SKL.UIWRKR_RNA 16 AnimationMode = LOOP Flags = RANDOMSTART TransitionKey = TRANS_Moving ParticleSysBone = None InfantryDustTrails End ; it is legal to be ACTIVELY_CONSTRUCTING and MOVING at the same time, ; since we flip the bit once we get pretty close to the target. but it looks ; funky to do the construction animation while moving. ; so just use the normal move animation in that case. AliasConditionState = ACTIVELY_CONSTRUCTING MOVING ConditionState = ATTACKING ShowSubObject = MINED_SKIN Animation = UIWRKR_SKL.UIWRKR_MS AnimationMode = LOOP Flags = RANDOMSTART TransitionKey = TRANS_MetalDetector_Standing End ConditionState = MOVING ATTACKING ShowSubObject = MINED_SKIN Animation = UIWRKR_SKL.UIWRKR_MSW 50 AnimationMode = LOOP Flags = RANDOMSTART TransitionKey = TRANS_MetalDetector_Moving ParticleSysBone = None InfantryDustTrails End AliasConditionState = MOVING ATTACKING CARRYING TransitionState = TRANS_Stand TRANS_MetalDetector_Standing ;STANDING -> ATTACKING ShowSubObject = MINED_SKIN Animation = UIWRKR_SKL.UIWRKR_TRB1;take out standing AnimationMode = ONCE End TransitionState = TRANS_MetalDetector_Standing TRANS_Stand ;ATTACKING -> STANDING ShowSubObject = MINED_SKIN Animation = UIWRKR_SKL.UIWRKR_TRB2;put away standing AnimationMode = ONCE End TransitionState = TRANS_Carry TRANS_MetalDetector_Standing ;CARRYING -> ATTACKING ShowSubObject = MINED_SKIN Animation = UIWRKR_SKL.UIWRKR_TRB1;take out standing AnimationMode = ONCE End TransitionState = TRANS_MetalDetector_Standing TRANS_Carry ;ATTACKING -> CARRYING ShowSubObject = MINED_SKIN Animation = UIWRKR_SKL.UIWRKR_TRB2;put away standing AnimationMode = ONCE End TransitionState = TRANS_Carry TRANS_MetalDetector_Moving ;CARRYING -> MOVING ATTACKING ShowSubObject = MINED_SKIN Animation = UIWRKR_SKL.UIWRKR_TRC1;take out moving [NEW NON-SKATING ANIMATION] AnimationMode = ONCE AnimationSpeedFactorRange = 2.0 2.0 End TransitionState = TRANS_MetalDetector_Moving TRANS_Stand ;MOVING ATTACKING -> STANDING ShowSubObject = MINED_SKIN Animation = UIWRKR_SKL.UIWRKR_TRB2;put away moving AnimationMode = ONCE End TransitionState = TRANS_Stand TRANS_MetalDetector_Moving ;STANDING -> MOVING ATTACKING ShowSubObject = MINED_SKIN Animation = UIWRKR_SKL.UIWRKR_TRC1;take out moving [NEW NON-SKATING ANIMATION] AnimationMode = ONCE AnimationSpeedFactorRange = 2.0 2.0 End TransitionState = TRANS_Moving TRANS_MetalDetector_Standing ;MOVING -> ATTACKING [STANDING] ShowSubObject = MINED_SKIN Animation = UIWRKR_SKL.UIWRKR_TRB1;take out standing AnimationMode = ONCE End TransitionState = TRANS_MetalDetector_Standing TRANS_Moving ;ATTACKING [STANDING] -> MOVING ShowSubObject = MINED_SKIN Animation = UIWRKR_SKL.UIWRKR_TRC2;put away moving [NEW NON-SKATING ANIMATION] AnimationMode = ONCE AnimationSpeedFactorRange = 2.0 2.0 End TransitionState = TRANS_Moving TRANS_MetalDetector_Moving ;MOVING -> MOVING ATTACKING ShowSubObject = MINED_SKIN Animation = UIWRKR_SKL.UIWRKR_TRC1;take out moving [NEW NON-SKATING ANIMATION] AnimationMode = ONCE AnimationSpeedFactorRange = 2.0 2.0 End TransitionState = TRANS_MetalDetector_Moving TRANS_Moving ;MOVING ATTACKING -> MOVING ShowSubObject = MINED_SKIN Animation = UIWRKR_SKL.UIWRKR_TRC2;put away moving [NEW NON-SKATING ANIMATION] AnimationMode = ONCE AnimationSpeedFactorRange = 2.0 2.0 End ConditionState = MOVING CARRYING ShowSubObject = BOX Animation = UIWRKR_SKL.UIWRKR_CARY 12 AnimationMode = LOOP Flags = RANDOMSTART TransitionKey = TRANS_Carry ParticleSysBone = None InfantryDustTrails End ; it is legal to be ACTIVELY_CONSTRUCTING and MOVING at the same time, ; since we flip the bit once we get pretty close to the target. but it looks ; funky to do the construction animation while moving. ; so just use the normal move animation in that case. AliasConditionState = ACTIVELY_CONSTRUCTING MOVING CARRYING ConditionState = CARRYING ShowSubObject = BOX Animation = UIWRKR_SKL.UIWRKR_CARST 30 AnimationMode = LOOP Flags = RANDOMSTART TransitionKey = TRANS_Carry End ConditionState = DYING Animation = UIWRKR_SKL.UIWRKR_DTA AnimationMode = ONCE TransitionKey = TRANS_Dying End AliasConditionState = DYING CARRYING TransitionState = TRANS_Dying TRANS_Flailing Animation = UIWRKR_SKL.UIWRKR_ADTE1 AnimationMode = ONCE End ConditionState = DYING EXPLODED_FLAILING Animation = UIWRKR_SKL.UIWRKR_ADTE2 AnimationMode = LOOP TransitionKey = TRANS_Flailing End ConditionState = DYING EXPLODED_BOUNCING Animation = UIWRKR_SKL.UIWRKR_ADTE3 AnimationMode = ONCE TransitionKey = None End ConditionState = SPECIAL_CHEERING Animation = UIWRKR_SKL.UIWRKR_CHA AnimationMode = ONCE End ConditionState = ACTIVELY_CONSTRUCTING Animation = UIWRKR_SKL.UIWRKR_BDA AnimationMode = LOOP TransitionKey = TRANS_Constructing End AliasConditionState = ACTIVELY_CONSTRUCTING CARRYING ; -------------------- TransitionState = TRANS_Stand TRANS_Carry ShowSubObject = BOX Animation = UIWRKR_SKL.UIWRKR_PIK AnimationMode = ONCE End TransitionState = TRANS_Carry TRANS_Stand ShowSubObject = BOX Animation = UIWRKR_SKL.UIWRKR_PIK AnimationMode = ONCE_BACKWARDS Flags = START_FRAME_LAST End TransitionState = TRANS_Stand TRANS_Constructing Animation = UIWRKR_SKL.UIWRKR_TRA1 AnimationMode = ONCE End TransitionState = TRANS_Constructing TRANS_Stand Animation = UIWRKR_SKL.UIWRKR_TRA2 AnimationMode = ONCE End End ; ***DESIGN parameters *** DisplayName = OBJECT:Worker Side = GLA EditorSorting = INFANTRY TransportSlotCount = 1 ;how many "slots" we take in a transport (0 == not transportable) WeaponSet Conditions = None Weapon = PRIMARY None End WeaponSet Conditions = MINE_CLEARING_DETAIL Weapon = PRIMARY WorkerMineDisarmingWeapon End ArmorSet Conditions = None Armor = HumanArmor DamageFX = InfantryDamageFX End VisionRange = 100 ShroudClearingRange = 200 ;Prerequisites ; Object = GLABarracks GLASupplyStash ;commented out, or else you can't build from Con Yard as Dozer. ;End BuildCost = 200 BuildTime = 5.0 ;in seconds CrushableLevel = 0 ;What am I?: 0 = for infantry, 1 = for trees, 2 = general vehicles CommandSet = GLAWorkerCommandSet ; *** AUDIO Parameters *** VoiceSelect = WorkerVoiceSelect VoiceMove = WorkerVoiceMove VoiceAttack = WorkerVoiceMove SoundDie = WorkerVoiceDie SoundDieFire = DieByFireGLA SoundDieToxin = DieByToxinChina VoiceGuard = WorkerVoiceMove ; surrender is cut. sorry. (srj) ; VoiceSurrender = WorkerVoiceSurrender VoiceFear = WorkerVoiceFear VoiceTaskComplete = WorkerVoiceBuildComplete UnitSpecificSounds VoiceEnter = WorkerVoiceMove VoiceEnterHostile = WorkerVoiceMove VoiceGarrison = WorkerVoiceGarrison VoiceCreate = WorkerVoiceCreate VoiceSupply = WorkerVoiceSupply VoiceNoBuild = WorkerVoiceBuildNot VoiceRepair = WorkerVoiceRepair VoiceDisarm = WorkerVoiceClearMine VoiceBuildResponse = WorkerVoiceBuild VoiceGetHealed = WorkerVoiceMove End ; *** ENGINEERING Parameters *** RadarPriority = UNIT KindOf = PRELOAD SELECTABLE CAN_CAST_REFLECTIONS INFANTRY SALVAGER DOZER HARVESTER SCORE Body = ActiveBody ModuleTag_02 MaxHealth = 140.0 InitialHealth = 140.0 End Behavior = WorkerAIUpdate ModuleTag_03 RepairHealthPercentPerSecond = 2% ; % of max health to repair each second BoredTime = 5000 ; in milliseconds BoredRange = 150 ; when bored, we look this far away to do something MaxBoxes = 1 SupplyCenterActionDelay = 150 ;400 ; ms for whole thing (one transaction) SupplyWarehouseActionDelay = 150 ;400 ;ms per box (many small transactions) SupplyWarehouseScanDistance = 700 ;350 ; Max distance to look for a warehouse, or we go home. (Direct dock command on warehouse overrides, and no max on Center Scan) SuppliesDepletedVoice = WorkerVoiceSuppliesDepleted ; the only "enemies" that workers can acquire are mines, to be disarmed... AutoAcquireEnemiesWhenIdle = Yes End Locomotor = SET_NORMAL FastHumanLocomotor Behavior = PhysicsBehavior ModuleTag_04 Mass = 5.0 End Behavior = SquishCollide ModuleTag_06 ;nothing End ; --- begin Death modules --- Behavior = SlowDeathBehavior ModuleTag_Death01 DeathTypes = ALL -CRUSHED -SPLATTED -EXPLODED -BURNED -POISONED -POISONED_BETA SinkDelay = 3000 SinkRate = 0.5 ; in Dist/Sec DestructionDelay = 8000 FX = INITIAL FX_GIDie End Behavior = SlowDeathBehavior ModuleTag_Death02 DeathTypes = NONE +CRUSHED +SPLATTED SinkDelay = 3000 SinkRate = 0.5 ; in Dist/Sec DestructionDelay = 8000 FX = INITIAL FX_GIDieCrushed End Behavior = SlowDeathBehavior ModuleTag_Death03 DeathTypes = NONE +EXPLODED SinkDelay = 3000 SinkRate = 0.5 ; in Dist/Sec DestructionDelay = 8000 FX = INITIAL FX_GIDie FlingForce = 8 FlingForceVariance = 3 FlingPitch = 60 FlingPitchVariance = 10 End Behavior = SlowDeathBehavior ModuleTag_Death04 DeathTypes = NONE +BURNED DestructionDelay = 0 FX = INITIAL FX_GIDie OCL = INITIAL OCL_FlamingInfantry End Behavior = SlowDeathBehavior ModuleTag_Death05 DeathTypes = NONE +POISONED DestructionDelay = 0 FX = INITIAL FX_GIDie OCL = INITIAL OCL_ToxicInfantry End Behavior = SlowDeathBehavior ModuleTag_Death06 ; don't forget to give it a new, unique module tag DeathTypes = NONE +POISONED_BETA DestructionDelay = 0 FX = INITIAL FX_GIDie OCL = INITIAL OCL_ToxicInfantryBeta ;you'll have to create this OCL and make it use the blue guys instead of green ones End ; --- end Death modules --- Behavior = StealthDetectorUpdate ModuleTag_12 DetectionRate = 500 ; how often to rescan for stealthed things in my sight (msec) ;DetectionRange = ??? ;Dustin, enable this for independant balancing! CanDetectWhileGarrisoned = No ;Garrisoned means being in a structure that you units can shoot out of. CanDetectWhileContained = No ;Contained means being in a transport or tunnel network. ExtraRequiredKindOf = MINE ; we can only detect MINES, not other stealthed things End Behavior = PoisonedBehavior ModuleTag_13 PoisonDamageInterval = 100 ; Every this many msec I will retake the poison damage dealt me... PoisonDuration = 3000 ; ... for this long after last hit by poison damage End ;----------------------- Command Set Changes ----------------------- Behavior = CommandSetUpgrade ModuleTag_commandup CommandSet = GLAWorkerCommandSetTech TriggeredBy = Upgrade_GLAWorkerUpgrade End Behavior = CommandSetUpgrade ModuleTag_commandup2 CommandSet = GLAWorkerCommandSet TriggeredBy = Upgrade_GLAWorkerUpgradeDefault End ; releases the upgrade otherwise you cannot switch between them since they've already been purchased Behavior = ObjectCreationUpgrade ModuleTag_commandup3 UpgradeObject = OCL_GLACommandsetupgraderelease TriggeredBy = Upgrade_GLAWorkerUpgrade Upgrade_GLAWorkerUpgradeDefault End ;------------------------------------------------------------------ Behavior = ProductionUpdate ModuleTag_17 ;MaxQueueEntries = 1 End Geometry = CYLINDER GeometryMajorRadius = 10.0 GeometryMinorRadius = 10.0 GeometryHeight = 12.0 GeometryIsSmall = Yes Shadow = SHADOW_DECAL ShadowSizeX = 14; ShadowSizeY = 14; ShadowTexture = ShadowI; BuildCompletion = APPEARS_AT_RALLY_POINT End ;------------------------------------------------------------------------------ ; Also known as the Ambulance Object AmericaVehicleMedic ; *** ART Parameters *** SelectPortrait = SAAmbulance_L ButtonImage = SAAmbulance UpgradeCameo1 = Upgrade_AmericaBattleDrone UpgradeCameo2 = Upgrade_AmericaScoutDrone ;UpgradeCameo3 = NONE ;UpgradeCameo4 = NONE ;UpgradeCameo5 = NONE Draw = W3DTruckDraw ModuleTag_01 ConditionState = NONE Model = AVAmbulance Turret = Turret TurretPitch = TurretEL WeaponFireFXBone = PRIMARY WeaponA WeaponLaunchBone = PRIMARY WeaponA End ConditionState = REALLYDAMAGED Model = AVAmbulance_D Turret = Turret TurretPitch = TurretEL WeaponFireFXBone = PRIMARY WeaponA WeaponLaunchBone = PRIMARY WeaponA End ConditionState = RUBBLE Model = AVAmbulance_D End TrackMarks = EXTireTrack.tga OkToChangeModelColor = Yes Dust = RocketBuggyDust DirtSpray = RocketBuggyDirtSpray PowerslideSpray = RocketBuggyDirtPowerSlide ; These parameters are only used if the model has a separate suspension, ; and the locomotor has HasSuspension = Yes. LeftFrontTireBone = Tire01 RightFrontTireBone = Tire02 LeftRearTireBone = Tire03 RightRearTireBone = Tire04 TireRotationMultiplier = 0.2 ; this * speed = rotation. PowerslideRotationAddition = 2.5 ; This speed is added to the rotation speed when powersliding. End ; ***DESIGN parameters *** DisplayName = OBJECT:Medic Side = America EditorSorting = VEHICLE TransportSlotCount = 3 ;how many "slots" we take in a transport (0 == not transportable) WeaponSet ;*** Fully automated and driven by the CleanupHazardUpdate *** Conditions = None Weapon = PRIMARY AmbulanceCleanHazardWeapon AutoChooseSources = PRIMARY NONE End ArmorSet Conditions = None Armor = ToxinTruckArmor DamageFX = TruckDamageFX End BuildCost = 600 BuildTime = 10.0 ;in seconds VisionRange = 100 ShroudClearingRange = 400 Prerequisites Object = AmericaWarFactory End ExperienceValue = 50 50 50 50 ;Experience point value at each level IsTrainable = No CrusherLevel = 2 ;What can I crush?: 1 = infantry, 2 = trees, 3 = vehicles CrushableLevel = 2 ;What am I?: 0 = for infantry, 1 = for trees, 2 = general vehicles CommandSet = AmericaVehicleAmbulanceCommandSet ; *** AUDIO Parameters *** VoiceSelect = AmbulanceVoiceSelect VoiceMove = AmbulanceVoiceMove VoiceGuard = AmbulanceVoiceMove VoiceAttack = AmbulanceVoiceDetox SoundMoveStart = HumveeMoveStart SoundMoveStartDamaged = HumveeMoveStart SoundEnter = HumveeEnter SoundExit = HumveeExit UnitSpecificSounds ; These have the syntax of SomeNameSomewhereInCode = SomeNameSomewhereInLookupINIs VoiceCreate = AmbulanceVoiceCreate TurretMoveStart = NoSound TurretMoveLoop = TurretMoveLoop ; Required for the W3DTruckDraw module TruckLandingSound = RocketBuggyLand TruckPowerslideSound = RocketBuggyPowerslide VoiceCrush = AmbulanceVoiceCrush VoiceEnter = AmbulanceVoiceMove End ; *** ENGINEERING Parameters *** RadarPriority = UNIT KindOf = PRELOAD SELECTABLE CAN_CAST_REFLECTIONS VEHICLE SCORE TRANSPORT Body = ActiveBody ModuleTag_02 MaxHealth = 240.0 InitialHealth = 240.0 End Behavior = CleanupHazardUpdate ModuleTag_03 WeaponSlot = PRIMARY ScanRate = 1000 ScanRange = 100.0 ;If this range exceeds the AmbulanceCleanHazardWeapon AttackRange, it'll move! End ;Can be ordered to clean up a larger area with the ability to move around at an extended range. Behavior = CleanupAreaPower ModuleTag_04 SpecialPowerTemplate = SpecialAbilityAmbulanceCleanupArea MaxMoveDistanceFromLocation = 300.0 ;allows the unit to move around while cleaning up InitiateSound = AmbulanceVoiceDetox End Behavior = TransportAIUpdate ModuleTag_05 AutoAcquireEnemiesWhenIdle = No ;CleanupHazardUpdate handles this... Turret TurretTurnRate = 180 TurretPitchRate = 180 AllowsPitch = Yes MinPhysicalPitch = -20 ; If allows pitch, the lowest I can dip down to shoot. defaults to 0 (horizontal) TurretFireAngleSweep = PRIMARY 25 ControlledWeaponSlots = PRIMARY End End Locomotor = SET_NORMAL HumveeLocomotor Behavior = TransportContain ModuleTag_06 Slots = 3 HealthRegen%PerSec = 25 DamagePercentToUnits = 10% AllowInsideKindOf = INFANTRY AllowAlliesInside = Yes AllowNeutralInside = No AllowEnemiesInside = No ExitDelay = 250 NumberOfExitPaths = 3 ; Defaults to 1. Set 0 to not use ExitStart/ExitEnd, set higher than 1 to use ExitStart01-nn/ExitEnd01-nn GoAggressiveOnExit = Yes ; AI Will tell people to set their mood to Aggressive on exiting End Behavior = PhysicsBehavior ModuleTag_07 Mass = 50.0 End Behavior = SlowDeathBehavior ModuleTag_08 DeathTypes = ALL -CRUSHED -SPLATTED DestructionDelay = 0 FX = FINAL FX_GenericTankDeathExplosion OCL = FINAL OCL_FinalAmbulanceDebris End Behavior = ObjectCreationUpgrade ModuleTag_09 UpgradeObject = OCL_AmericanBattleDrone TriggeredBy = Upgrade_AmericaBattleDrone ConflictsWith = Upgrade_AmericaScoutDrone End Behavior = ObjectCreationUpgrade ModuleTag_10 UpgradeObject = OCL_AmericanScoutDrone TriggeredBy = Upgrade_AmericaScoutDrone ConflictsWith = Upgrade_AmericaBattleDrone End Behavior = ProductionUpdate ModuleTag_11 MaxQueueEntries = 1; So you can't build multiple upgrades in the same frame End Behavior = DestroyDie ModuleTag_12 DeathTypes = NONE +CRUSHED +SPLATTED End Behavior = FXListDie ModuleTag_13 DeathTypes = NONE +CRUSHED +SPLATTED DeathFX = FX_CarCrush End Behavior = CreateObjectDie ModuleTag_14 DeathTypes = NONE +CRUSHED +SPLATTED CreationList = OCL_CrusaderTank_CrushEffect End Behavior = FXListDie ModuleTag_15 DeathTypes = ALL -CRUSHED -SPLATTED DeathFX = FX_GenericTankDeathEffect End Behavior = CreateCrateDie ModuleTag_16 CrateData = SalvageCrateData ;CrateData = EliteTankCrateData ;CrateData = HeroicTankCrateData End Behavior = ExperienceScalarUpgrade ModuleTag_17 TriggeredBy = Upgrade_AmericaAdvancedTraining AddXPScalar = 1.0 ;Increases experience gained by an additional 100% End Behavior = TransitionDamageFX ModuleTag_18 ReallyDamagedParticleSystem1 = Bone:Smoke RandomBone:Yes PSys:SmokeSmallContinuous01 ReallyDamagedFXList1 = Loc: X:0 Y:0 Z:0 FXList:FX_BattleMasterDamageTransition End Behavior = FlammableUpdate ModuleTag_21 AflameDuration = 5000 ; If I catch fire, I'll burn for this long... AflameDamageAmount = 3 ; taking this much damage... AflameDamageDelay = 500 ; this often. End Behavior = StealthDetectorUpdate ModuleTag_HijackerDetect DetectionRate = 500 DetectionRange = 75 CanDetectWhileGarrisoned = No CanDetectWhileContained = No ExtraRequiredKindOf = BOAT End Behavior = AutoHealBehavior ModuleTag_22 HealingAmount = 4 HealingDelay = 1000 ; msec Radius = 100.0f StartsActive = Yes KindOf = INFANTRY End Geometry = BOX GeometryMajorRadius = 14.0 GeometryMinorRadius = 7.0 GeometryHeight = 12.0 ; height set to allow clear clipping of projectile streams GeometryIsSmall = Yes Shadow = SHADOW_VOLUME End ;------------------------------------------------------------------------------ Object AmericaVehicleBattleDrone ; *** ART Parameters *** SelectPortrait = SABattleDrone_L ButtonImage = SABattleDrone UpgradeCameo1 = Upgrade_AmericaDroneArmor ;UpgradeCameo2 = NONE ;UpgradeCameo3 = NONE ;UpgradeCameo4 = NONE ;UpgradeCameo5 = NONE ;MAIN CHASSIS Draw = W3DModelDraw ModuleTag_01 OkToChangeModelColor = Yes DefaultConditionState Model = AVBATTLEDR Animation = AVBATTLEDR.AVBATTLEDR AnimationMode = LOOP Turret = Turret01 TurretPitch = TurretEL01 WeaponMuzzleFlash = PRIMARY TurretFX01 WeaponFireFXBone = PRIMARY Muzzle01 End ConditionState = REALLYDAMAGED Model = AVBATTLEDR_D Animation = AVBATTLEDR_D.AVBATTLEDR_D AnimationMode = LOOP End End ;EXTENDING ARM (FOR REPAIRING) Draw = W3DModelDraw ModuleTag_02 OkToChangeModelColor = Yes DefaultConditionState Model = AVBATTLEDR_A End ;Unloading the arm (before starting to repair) ConditionState = UNPACKING Animation = AVBATTLEDR_A1.AVBATTLEDR_A1 AnimationMode = ONCE End ;Loading the arm (after reparing complete) ConditionState = PACKING Animation = AVBATTLEDR_A1.AVBATTLEDR_A1 AnimationMode = ONCE_BACKWARDS Flags = START_FRAME_LAST End ;Repair extending animation 1 (using bogus condition states -- doesn't justify making a whole new set) ConditionState = FIRING_B Animation = AVBATTLEDR_A2.AVBATTLEDR_A2 AnimationMode = ONCE End ;Repair retracting animation 1 (using bogus condition states -- doesn't justify making a whole new set) ConditionState = FIRING_C Animation = AVBATTLEDR_A2.AVBATTLEDR_A2 AnimationMode = ONCE_BACKWARDS Flags = START_FRAME_LAST End End ; ***DESIGN parameters *** DisplayName = OBJECT:BattleDrone Side = America EditorSorting = VEHICLE TransportSlotCount = 0 ;how many "slots" we take in a transport (0 == not transportable) WeaponSet Conditions = None Weapon = PRIMARY BattleDroneMachineGun End ArmorSet Conditions = None Armor = TankArmor DamageFX = SmallTankDamageFX End BuildCost = 200 BuildTime = 5.0 ;in seconds VisionRange = 150 ShroudClearingRange = 150 Prerequisites Object = AmericaWarFactory End ExperienceValue = 10 10 10 10 ;Experience point value at each level IsTrainable = No ; *** AUDIO Parameters *** VoiceSelect = NoSound VoiceMove = NoSound VoiceAttack = NoSound SoundMoveStart = NoSound UnitSpecificSounds ; These have the syntax of SomeNameSomewhereInCode = SomeNameSomewhereInLookupINIs TurretMoveStart = NoSound TurretMoveLoop = TurretMoveLoop End ; *** ENGINEERING Parameters *** RadarPriority = UNIT KindOf = PRELOAD CAN_CAST_REFLECTIONS VEHICLE SELECTABLE CAN_ATTACK DRONE Body = ActiveBody ModuleTag_03 MaxHealth = 100.0 InitialHealth = 100.0 End Behavior = AIUpdateInterface ModuleTag_04 Turret TurretTurnRate = 360 // turn rate, in degrees per sec TurretPitchRate = 360 MinPhysicalPitch = -75 ; If allows pitch, the lowest I can dip down to shoot. defaults to 0 (horizontal) AllowsPitch = Yes ControlledWeaponSlots = PRIMARY End AutoAcquireEnemiesWhenIdle = Yes End Locomotor = SET_NORMAL BattleDroneLocomotor Locomotor = SET_PANIC BattleDronePanicLocomotor ;used for repairing master (zippy) Behavior = PhysicsBehavior ModuleTag_05 Mass = 50.0 KillWhenRestingOnGround = Yes AllowBouncing = No End Behavior = MaxHealthUpgrade ModuleTag_06 TriggeredBy = Upgrade_AmericaDroneArmor AddMaxHealth = 50.0 ChangeType = ADD_CURRENT_HEALTH_TOO ;Choices are PRESERVE_RATIO, ADD_CURRENT_HEALTH_TOO, and SAME_CURRENTHEALTH End Behavior = SlavedUpdate ModuleTag_07 GuardMaxRange = 35 ;How far away from master I'm allowed when master is idle (doesn't wander) GuardWanderRange = 35 ;How far away I'm allowed to wander from master while guarding. AttackRange = 75 ;How far away from master I'm allowed when master is attacking a target. AttackWanderRange = 10 ;How far I'm allowed to wander from target. ScoutRange = 75 ;How far away from master I'm allowed when master is moving. ScoutWanderRange = 10 ;How far I'm allowed to wander from scout point. RepairRange = 8 ;How far I can zip around while repair (only moves when he stops welding) RepairMinAltitude = 18.0 ;My minimum repair hover altitude. RepairMaxAltitude = 24.0 ;My maximum repair hover altitude. RepairRatePerSecond = 5.0 ;How many health points can I repair per second. RepairWhenBelowHealth% = 60 ;How low should my master's health be (in %) before I should prioritize repairing. RepairMinReadyTime = 300 RepairMaxReadyTime = 750 RepairMinWeldTime = 250 RepairMaxWeldTime = 500 RepairWeldingSys = BlueSparks RepairWeldingFXBone = Muzzle02 StayOnSameLayerAsMaster = Yes End Behavior = DestroyDie ModuleTag_08 DeathTypes = ALL End Behavior = CreateObjectDie ModuleTag_09 DeathTypes = ALL CreationList = OCL_AmericaBattleDroneExplode End Behavior = TransitionDamageFX ModuleTag_10 ReallyDamagedParticleSystem1 = Bone:Smoke RandomBone:Yes PSys:SmokeSmallContinuous01 ReallyDamagedFXList1 = Loc: X:0 Y:0 Z:0 FXList:FX_BattleDroneDamageTransitionSmall End Behavior = FXListDie ModuleTag_11 DeathTypes = ALL DeathFX = FX_AmericaBattleDroneExplode End Behavior = UpgradeDie ModuleTag_12 ;This frees the object based upgrade for the producer object. DeathTypes = ALL UpgradeToRemove = Upgrade_AmericaBattleDrone ModuleTag_13 End Behavior = FlammableUpdate ModuleTag_21 AflameDuration = 5000 ; If I catch fire, I'll burn for this long... AflameDamageAmount = 3 ; taking this much damage... AflameDamageDelay = 500 ; this often. End Geometry = CYLINDER GeometryMajorRadius = 5 GeometryMinorRadius = 5 GeometryHeight = 10.0 GeometryIsSmall = Yes Shadow = SHADOW_VOLUME ShadowSizeX = 89 ; minimum elevation angle above horizon. Used to limit shadow length End ;------------------------------------------------------------------------------ ; **data here is a copy and paste of AmericaVehicleMedic** Object AmericaVehicleGuardianDrone ; *** ART Parameters *** Draw = W3DTankDraw ModuleTag_01 DefaultConditionState Model = AVGuardDr Turret = Turret WeaponFireFXBone = PRIMARY TurretMS WeaponMuzzleFlash = PRIMARY TurretFX End TrackMarks = EXTnkTrack.tga OkToChangeModelColor = Yes End ; ***DESIGN parameters *** DisplayName = OBJECT:GuardianDrone Side = America EditorSorting = VEHICLE TransportSlotCount = 3 ;how many "slots" we take in a transport (0 == not transportable) WeaponSet Conditions = None Weapon = PRIMARY CrusaderTankGun End ArmorSet Conditions = None Armor = TankArmor DamageFX = TankDamageFX End BuildCost = 700 BuildTime = 8.0 ;in seconds VisionRange = 150 ShroudClearingRange = 150 Prerequisites Object = AmericaWarFactory End ExperienceValue = 50 100 150 400 ;Experience point value at each level IsTrainable = No ; *** AUDIO Parameters *** VoiceSelect = NoSound VoiceMove = NoSound VoiceAttack = NoSound SoundMoveStart = NoSound UnitSpecificSounds ; These have the syntax of SomeNameSomewhereInCode = SomeNameSomewhereInLookupINIs TurretMoveStart = NoSound TurretMoveLoop = TurretMoveLoop End ; *** ENGINEERING Parameters *** RadarPriority = UNIT KindOf = PRELOAD SELECTABLE CAN_ATTACK CAN_CAST_REFLECTIONS VEHICLE SCORE Body = ActiveBody ModuleTag_02 MaxHealth = 300.0 InitialHealth = 300.0 End Behavior = AIUpdateInterface ModuleTag_03 Turret TurretTurnRate = 60 // turn rate, in degrees per sec ControlledWeaponSlots = PRIMARY End AutoAcquireEnemiesWhenIdle = Yes End Locomotor = SET_NORMAL BasicTankLocomotor Behavior = PhysicsBehavior ModuleTag_04 Mass = 50.0 End Behavior = SlowDeathBehavior ModuleTag_05 DestructionDelay = 500 FX = FINAL FX_GenericTankDeathExplosion End Behavior = MaxHealthUpgrade ModuleTag_06 TriggeredBy = Upgrade_AmericaDroneArmor AddMaxHealth = 50.0 ChangeType = ADD_CURRENT_HEALTH_TOO ;Choices are PRESERVE_RATIO, ADD_CURRENT_HEALTH_TOO, and SAME_CURRENTHEALTH End Behavior = FXListDie ModuleTag_07 DeathFX = FX_GenericTankDeathEffect End Behavior = CreateObjectDie ModuleTag_08 CreationList = OCL_GenericTankDeathEffect End Behavior = CreateCrateDie ModuleTag_09 CrateData = SalvageCrateData ;CrateData = EliteTankCrateData ;CrateData = HeroicTankCrateData End Behavior = TransitionDamageFX ModuleTag_10 ReallyDamagedParticleSystem1 = Bone:Smoke RandomBone:Yes PSys:SmallLightSmokeColumn End Behavior = FlammableUpdate ModuleTag_21 AflameDuration = 5000 ; If I catch fire, I'll burn for this long... AflameDamageAmount = 3 ; taking this much damage... AflameDamageDelay = 500 ; this often. End Geometry = BOX GeometryMajorRadius = 15.0 GeometryMinorRadius = 10.0 GeometryHeight = 10.0 GeometryIsSmall = Yes Shadow = SHADOW_VOLUME ShadowSizeX = 89 ; minimum elevation angle above horizon. Used to limit shadow length End ;------------------------------------------------------------------------------ Object AmericaVehicleScoutDrone ; *** ART Parameters *** SelectPortrait = SAScout_L ButtonImage = SAScout UpgradeCameo1 = Upgrade_AmericaDroneArmor ;UpgradeCameo2 = NONE ;UpgradeCameo3 = NONE ;UpgradeCameo4 = NONE ;UpgradeCameo5 = NONE Draw = W3DModelDraw ModuleTag_01 OkToChangeModelColor = Yes ConditionState = NONE Model = AVScoutDr Animation = AVScoutDr.AVScoutDr AnimationMode = LOOP End ConditionState = REALLYDAMAGED Model = AVScoutDr_d Animation = AVScoutDr_d.AVScoutDr_d AnimationMode = LOOP End End ; ***DESIGN parameters *** DisplayName = OBJECT:ScoutDrone Side = America EditorSorting = VEHICLE TransportSlotCount = 0 ;how many "slots" we take in a transport (0 == not transportable) ArmorSet Conditions = None Armor = TankArmor DamageFX = SmallTankDamageFX End BuildCost = 100 BuildTime = 5.0 ;in seconds VisionRange = 150 ShroudClearingRange = 500 IsTrainable = No ;Can gain experience ; *** AUDIO Parameters *** VoiceSelect = NoSound VoiceMove = NoSound VoiceAttack = NoSound SoundMoveStart = NoSound UnitSpecificSounds ; These have the syntax of SomeNameSomewhereInCode = SomeNameSomewhereInLookupINIs TurretMoveStart = NoSound TurretMoveLoop = TurretMoveLoop End ; *** ENGINEERING Parameters *** RadarPriority = UNIT KindOf = PRELOAD CAN_CAST_REFLECTIONS VEHICLE SELECTABLE DRONE Body = ActiveBody ModuleTag_02 MaxHealth = 20.0 InitialHealth = 20.0 End Behavior = AIUpdateInterface ModuleTag_03 Turret TurretTurnRate = 60 // turn rate, in degrees per sec ControlledWeaponSlots = PRIMARY End AutoAcquireEnemiesWhenIdle = Yes End Locomotor = SET_NORMAL DroneLocomotor Behavior = StealthDetectorUpdate ModuleTag_04 DetectionRate = 500 ; how often to rescan for stealthed things in my sight (msec) ;DetectionRange = ??? ;Dustin, enable this for independant balancing! CanDetectWhileGarrisoned = No ;Garrisoned means being in a structure that you units can shoot out of. CanDetectWhileContained = No ;Contained means being in a transport or tunnel network. End Behavior = PhysicsBehavior ModuleTag_05 Mass = 50.0 KillWhenRestingOnGround = Yes AllowBouncing = No End Behavior = SlavedUpdate ModuleTag_06 GuardMaxRange = 35 ;How far away from master I'm allowed when master is idle (doesn't wander) GuardWanderRange = 35 ;How far away I'm allowed to wander from master while guarding. AttackRange = 75 ;How far away from master I'm allowed when master is attacking a target. AttackWanderRange = 10 ;How far I'm allowed to wander from target. ScoutRange = 75 ;How far away from master I'm allowed when master is moving. ScoutWanderRange = 10 ;How far I'm allowed to wander from scout point. DistToTargetToGrantRangeBonus = 20 ;How close I have to be to the master's target in order to grant master a range bonus. StayOnSameLayerAsMaster = Yes End Behavior = MaxHealthUpgrade ModuleTag_07 TriggeredBy = Upgrade_AmericaDroneArmor AddMaxHealth = 50.0 ChangeType = ADD_CURRENT_HEALTH_TOO ;Choices are PRESERVE_RATIO, ADD_CURRENT_HEALTH_TOO, and SAME_CURRENTHEALTH End Behavior = DestroyDie ModuleTag_08 DeathTypes = ALL End Behavior = CreateObjectDie ModuleTag_09 DeathTypes = ALL CreationList = OCL_AmericaScoutDroneExplode End Behavior = FXListDie ModuleTag_10 DeathTypes = ALL DeathFX = FX_AmericaScoutDroneExplode End Behavior = TransitionDamageFX ModuleTag_11 ReallyDamagedParticleSystem1 = Bone:Smoke RandomBone:Yes PSys:SmokeSmallContinuous01 ReallyDamagedFXList1 = Loc: X:0 Y:0 Z:0 FXList:FX_BattleDroneDamageTransitionSmall End Behavior = UpgradeDie ModuleTag_12 ;This frees the object based upgrade for the producer object. DeathTypes = ALL UpgradeToRemove = Upgrade_AmericaScoutDrone ModuleTag_13 End Behavior = FlammableUpdate ModuleTag_21 AflameDuration = 5000 ; If I catch fire, I'll burn for this long... AflameDamageAmount = 3 ; taking this much damage... AflameDamageDelay = 500 ; this often. End Geometry = CYLINDER GeometryMajorRadius = 5.0 GeometryMinorRadius = 6.0 GeometryHeight = 3.0 GeometryIsSmall = Yes Shadow = SHADOW_VOLUME ShadowSizeX = 89 ; minimum elevation angle above horizon. Used to limit shadow length End ;------------------------------------------------------------------------------ Object AmericaVehicleSpyDrone ; *** ART Parameters *** SelectPortrait = SAScout_L ButtonImage = SAScout Draw = W3DModelDraw ModuleTag_01 OkToChangeModelColor = Yes ConditionState = NONE Model = AVSpyDrone Animation = AVSpyDrone.AVSpyDrone AnimationMode = LOOP End ; Damage state waiting for pristine's approval (or may just not need one) ; ConditionState = REALLYDAMAGED ; Model = AVSpyDrone_d ; Animation = AVSpyDrone_d.AVSpyDrone_d ; AnimationMode = LOOP ; End End ; ***DESIGN parameters *** DisplayName = OBJECT:SpyDrone Side = America EditorSorting = VEHICLE TransportSlotCount = 0 ;how many "slots" we take in a transport (0 == not transportable) ArmorSet Conditions = None Armor = AirplaneArmor DamageFX = SmallTankDamageFX End VisionRange = 250 ShroudClearingRange = 0; Dynamic range below IsTrainable = No ; *** AUDIO Parameters *** VoiceSelect = NoSound VoiceMove = NoSound VoiceAttack = NoSound SoundMoveStart = SpyDroneSnapshot UnitSpecificSounds ; These have the syntax of SomeNameSomewhereInCode = SomeNameSomewhereInLookupINIs TurretMoveStart = NoSound TurretMoveLoop = TurretMoveLoop End ; *** ENGINEERING Parameters *** RadarPriority = UNIT KindOf = PRELOAD CAN_CAST_REFLECTIONS VEHICLE SCORE DRONE SELECTABLE INERT Body = ActiveBody ModuleTag_02 MaxHealth = 200.0 InitialHealth = 200.0 End Behavior = AIUpdateInterface ModuleTag_03 AutoAcquireEnemiesWhenIdle = No End Locomotor = SET_NORMAL SpyDroneLocomtor Behavior = DynamicShroudClearingRangeUpdate ModuleTag_04 FinalVision = 250.0 ChangeInterval = 50 ShrinkDelay = 2000 ShrinkTime = 1000 GrowDelay = 0 GrowTime = 1000 GrowInterval = 10 ; Faster than most GridDecalTemplate Texture = EXGrid Style = SHADOW_ADDITIVE_DECAL OpacityMin = 50% OpacityMax = 100% OpacityThrobTime = 500 Color = R:32 G:64 B:128 A:0 //dim blue, additive End End Behavior = StealthDetectorUpdate ModuleTag_05 DetectionRate = 500 ; how often to rescan for stealthed things in my sight (msec) ;DetectionRange = ??? ;Dustin, enable this for independant balancing! CanDetectWhileGarrisoned = No ;Garrisoned means being in a structure that you units can shoot out of. CanDetectWhileContained = No ;Contained means being in a transport or tunnel network. End Behavior = PhysicsBehavior ModuleTag_06 Mass = 50.0 End Behavior = DestroyDie ModuleTag_07 DeathTypes = ALL End Behavior = CreateObjectDie ModuleTag_08 DeathTypes = ALL CreationList = OCL_AmericaScoutDroneExplode End Behavior = StealthUpdate ModuleTag_09 StealthDelay = 0 ; msec StealthForbiddenConditions = NONE InnateStealth = Yes OrderIdleEnemiesToAttackMeUponReveal = Yes End Behavior = MaxHealthUpgrade ModuleTag_10 TriggeredBy = Upgrade_AmericaDroneArmor AddMaxHealth = 50.0 ChangeType = ADD_CURRENT_HEALTH_TOO ;Choices are PRESERVE_RATIO, ADD_CURRENT_HEALTH_TOO, and SAME_CURRENTHEALTH End Behavior = FlammableUpdate ModuleTag_21 AflameDuration = 5000 ; If I catch fire, I'll burn for this long... AflameDamageAmount = 3 ; taking this much damage... AflameDamageDelay = 500 ; this often. End Geometry = CYLINDER GeometryMajorRadius = 5.0 GeometryMinorRadius = 6.0 GeometryHeight = 3.0 GeometryIsSmall = Yes Shadow = SHADOW_VOLUME ShadowSizeX = 89 ; minimum elevation angle above horizon. Used to limit shadow length End ;------------------------------------------------------------------------------ Object AmericaTankCrusader ; *** ART Parameters *** SelectPortrait = SACLeopard_L ButtonImage = SACLeopard UpgradeCameo1 = Upgrade_AmericaBattleDrone UpgradeCameo2 = Upgrade_AmericaScoutDrone UpgradeCameo3 = Upgrade_AmericaAdvancedTraining UpgradeCameo4 = Upgrade_AmericaCompositeArmor ;UpgradeCameo5 = NONE Draw = W3DTankDraw ModuleTag_01 DefaultConditionState Model = AVLeopard Turret = Turret WeaponFireFXBone = PRIMARY TurretMS WeaponRecoilBone = PRIMARY Barrel WeaponMuzzleFlash = PRIMARY TurretFX WeaponLaunchBone = PRIMARY TurretMS End ConditionState = REALLYDAMAGED Model = AVLeopard_D End ConditionState = RUBBLE Model = AVLeopard_D End TrackMarks = EXTnkTrack.tga TreadAnimationRate = 2.0 ; amount of tread texture to move per second TreadDriveSpeedFraction = 0.3 ; fraction of locomotor speed below which treads stop moving. TreadPivotSpeedFraction = 0.6 ; fraction of locomotor speed below which we allow pivoting. OkToChangeModelColor = Yes End ; ***DESIGN parameters *** DisplayName = OBJECT:Crusader Side = America EditorSorting = VEHICLE TransportSlotCount = 3 WeaponSet Conditions = None Weapon = PRIMARY CrusaderTankGun ; Uncomment this when we want the crusader to have a machine too again ;Weapon = SECONDARY CrusaderMachineGun End ArmorSet Conditions = None Armor = TankArmor DamageFX = TankDamageFX End ;ArmorSet ; Conditions = PLAYER_UPGRADE ; Armor = UpgradedTankArmor ; DamageFX = TankDamageFX ;End BuildCost = 900 BuildTime = 10.0 ;in seconds VisionRange = 150 ShroudClearingRange = 300 Prerequisites Object = AmericaWarFactory End ExperienceValue = 100 100 200 400 ;Experience point value at each level ExperienceRequired = 0 200 300 600 ;Experience points needed to gain each level IsTrainable = Yes ;Can gain experience CrusherLevel = 2 ;What can I crush?: 1 = infantry, 2 = trees, 3 = vehicles CrushableLevel = 2 ;What am I?: 0 = for infantry, 1 = for trees, 2 = general vehicles CommandSet = AmericaTankCrusaderCommandSet ; *** AUDIO Parameters *** VoiceSelect = CrusaderTankVoiceSelect VoiceMove = CrusaderTankVoiceMove VoiceGuard = CrusaderTankVoiceMove VoiceAttack = CrusaderTankVoiceAttack SoundMoveStart = CrusaderTankMoveStart SoundMoveStartDamaged = CrusaderTankMoveStart UnitSpecificSounds ; These have the syntax of SomeNameSomewhereInCode = SomeNameSomewhereInLookupINIs VoiceCreate = CrusaderTankVoiceCreate VoiceEnter = CrusaderTankVoiceMove TurretMoveStart = NoSound TurretMoveLoop = TurretMoveLoop SoundEject = PilotSoundEject VoiceEject = PilotVoiceEject VoiceCrush = CrusaderTankVoiceCrush End ; *** ENGINEERING Parameters *** RadarPriority = UNIT KindOf = PRELOAD SELECTABLE CAN_ATTACK ATTACK_NEEDS_LINE_OF_SIGHT CAN_CAST_REFLECTIONS VEHICLE SCORE Body = ActiveBody ModuleTag_02 MaxHealth = 480 InitialHealth = 480 End Behavior = AIUpdateInterface ModuleTag_03 Turret TurretTurnRate = 180 ;60 // turn rate, in degrees per sec ControlledWeaponSlots= PRIMARY End AutoAcquireEnemiesWhenIdle = Yes End Locomotor = SET_NORMAL CrusaderLocomotor Behavior = PhysicsBehavior ModuleTag_04 Mass = 50.0 End Behavior = ObjectCreationUpgrade ModuleTag_05 UpgradeObject = OCL_AmericanBattleDrone TriggeredBy = Upgrade_AmericaBattleDrone ConflictsWith = Upgrade_AmericaScoutDrone End Behavior = ObjectCreationUpgrade ModuleTag_06 UpgradeObject = OCL_AmericanScoutDrone TriggeredBy = Upgrade_AmericaScoutDrone ConflictsWith = Upgrade_AmericaBattleDrone End Behavior = ProductionUpdate ModuleTag_07 MaxQueueEntries = 1; So you can't build multiple upgrades in the same frame End Behavior = ExperienceScalarUpgrade ModuleTag_08 TriggeredBy = Upgrade_AmericaAdvancedTraining AddXPScalar = 1.0 ;Increases experience gained by an additional 100% End Behavior = MaxHealthUpgrade ModuleTag_09 TriggeredBy = Upgrade_AmericaCompositeArmor AddMaxHealth = 100.0 ChangeType = ADD_CURRENT_HEALTH_TOO ;Choices are PRESERVE_RATIO, ADD_CURRENT_HEALTH_TOO, and SAME_CURRENTHEALTH End ; Turret fly off death Behavior = SlowDeathBehavior ModuleTag_10 DeathTypes = ALL -CRUSHED -SPLATTED ProbabilityModifier = 50 DestructionDelay = 500 DestructionDelayVariance = 100 FX = INITIAL FX_GenericTankDeathEffect OCL = MIDPOINT OCL_GenericTankDeathEffect FX = FINAL FX_GenericTankDeathExplosion OCL = FINAL OCL_CrusaderTurret End ; Catch fire, and explode death Behavior = SlowDeathBehavior ModuleTag_11 DeathTypes = ALL -CRUSHED -SPLATTED ProbabilityModifier = 50 DestructionDelay = 2000 DestructionDelayVariance = 300 FX = INITIAL FX_CrusaderCatchFire OCL = FINAL OCL_GenericTankDeathEffect FX = FINAL FX_GenericTankDeathExplosion End Behavior = TransitionDamageFX ModuleTag_12 ReallyDamagedParticleSystem1 = Bone:Smoke RandomBone:Yes PSys:SmallLightSmokeColumn ReallyDamagedFXList1 = Loc: X:0 Y:0 Z:0 FXList:FX_BattleMasterDamageTransition End Behavior = DestroyDie ModuleTag_13 DeathTypes = NONE +CRUSHED +SPLATTED End ; A crushing defeat Behavior = FXListDie ModuleTag_14 DeathTypes = NONE +CRUSHED +SPLATTED DeathFX = FX_CarCrush End Behavior = CreateObjectDie ModuleTag_15 DeathTypes = NONE +CRUSHED +SPLATTED CreationList = OCL_CrusaderTank_CrushEffect End Behavior = CreateCrateDie ModuleTag_CratesChange CrateData = SalvageCrateData ;CrateData = EliteTankCrateData ;CrateData = HeroicTankCrateData End Behavior = EjectPilotDie ModuleTag_17 GroundCreationList = OCL_EjectPilotOnGround AirCreationList = OCL_EjectPilotViaParachute ExemptStatus = HIJACKED VeterancyLevels = ALL -REGULAR ;only vet+ gives pilot End Behavior = MaxHealthUpgrade ModuleTag_18 TriggeredBy = Upgrade_AmericaCompositeArmor AddMaxHealth = 100.0 ChangeType = ADD_CURRENT_HEALTH_TOO ;Choices are PRESERVE_RATIO, ADD_CURRENT_HEALTH_TOO, and SAME_CURRENTHEALTH End Behavior = StealthDetectorUpdate ModuleTag_HijackerDetect DetectionRate = 500 DetectionRange = 75 CanDetectWhileGarrisoned = No CanDetectWhileContained = No ExtraRequiredKindOf = BOAT End Behavior = FlammableUpdate ModuleTag_21 AflameDuration = 5000 ; If I catch fire, I'll burn for this long... AflameDamageAmount = 3 ; taking this much damage... AflameDamageDelay = 500 ; this often. End Geometry = BOX GeometryMajorRadius = 15.0 GeometryMinorRadius = 10.0 GeometryHeight = 10.0 GeometryIsSmall = Yes Shadow = SHADOW_VOLUME ShadowSizeX = 45 ; minimum elevation angle above horizon. Used to limit shadow length End ;------------------------------------------------------------------------------ Object AmericaTankCrusaderMK2 ; *** ART Parameters *** SelectPortrait = SALeopard_L ButtonImage = SACCrusader ;SALeopard UpgradeCameo1 = Upgrade_AmericaBattleDrone UpgradeCameo2 = Upgrade_AmericaScoutDrone UpgradeCameo3 = Upgrade_AmericaAdvancedTraining UpgradeCameo4 = Upgrade_AmericaCompositeArmor Draw = W3DModelDraw ModuleTag_01 ConditionState = none Model = AVCrusader Turret = Turret WeaponFireFXBone = PRIMARY TurretMS WeaponRecoilBone = PRIMARY Barrel WeaponMuzzleFlash = PRIMARY TurretFX WeaponLaunchBone = PRIMARY TurretMS TransitionKey = TRANS_Drive End ConditionState = REALLYDAMAGED Model = AVCrusader_D Turret = Turret WeaponFireFXBone = PRIMARY TurretMS WeaponRecoilBone = PRIMARY Barrel WeaponMuzzleFlash = PRIMARY TurretFX WeaponLaunchBone = PRIMARY TurretMS TransitionKey = TRANS_DriveDamaged End ConditionState = RUBBLE Model = AVCrusader_D Turret = Turret WeaponFireFXBone = PRIMARY TurretMS WeaponRecoilBone = PRIMARY Barrel WeaponMuzzleFlash = PRIMARY TurretFX WeaponLaunchBone = PRIMARY TurretMS End ConditionState = MOVING Model = AVCrusader Turret = Turret WeaponFireFXBone = PRIMARY TurretMS WeaponRecoilBone = PRIMARY Barrel WeaponMuzzleFlash = PRIMARY TurretFX WeaponLaunchBone = PRIMARY TurretMS TransitionKey = TRANS_Drive ParticleSysBone = TreadFX01 QuadCannonDust ParticleSysBone = TreadFX02 QuadCannonDust End AliasConditionState = DAMAGED AliasConditionState = MOVING DAMAGED AliasConditionState = MOVING REALLYDAMAGED ConditionState = WEAPONSET_PLAYER_UPGRADE Model = AVCrusader_H Turret = Turret WeaponFireFXBone = PRIMARY TurretMS WeaponRecoilBone = PRIMARY Barrel WeaponMuzzleFlash = PRIMARY TurretFX WeaponLaunchBone = PRIMARY TurretMS TransitionKey = TRANS_Hover End ConditionState = WEAPONSET_PLAYER_UPGRADE MOVING Model = AVCrusader_H Turret = Turret WeaponFireFXBone = PRIMARY TurretMS WeaponRecoilBone = PRIMARY Barrel WeaponMuzzleFlash = PRIMARY TurretFX WeaponLaunchBone = PRIMARY TurretMS TransitionKey = TRANS_Hover ParticleSysBone = TreadFX01 QuadCannonDust ParticleSysBone = TreadFX02 QuadCannonDust End TransitionState = TRANS_Drive TRANS_Hover Model = AVCrusader_A HideSubObject = TurretFX01 Animation = AVCrusader_A.AVCrusader_A AnimationMode = ONCE End ConditionState = WEAPONSET_PLAYER_UPGRADE REALLYDAMAGED Model = AVCrusader_H Turret = Turret WeaponFireFXBone = PRIMARY TurretMS WeaponRecoilBone = PRIMARY Barrel WeaponMuzzleFlash = PRIMARY TurretFX WeaponLaunchBone = PRIMARY TurretMS TransitionKey = TRANS_HoverDamaged End ConditionState = WEAPONSET_PLAYER_UPGRADE RUBBLE Model = AVCrusader_H Turret = Turret WeaponFireFXBone = PRIMARY TurretMS WeaponRecoilBone = PRIMARY Barrel WeaponMuzzleFlash = PRIMARY TurretFX WeaponLaunchBone = PRIMARY TurretMS End AliasConditionState = WEAPONSET_PLAYER_UPGRADE DAMAGED AliasConditionState = WEAPONSET_PLAYER_UPGRADE MOVING DAMAGED AliasConditionState = WEAPONSET_PLAYER_UPGRADE MOVING REALLYDAMAGED TransitionState = TRANS_DriveDamaged TRANS_HoverDamaged Model = AVCrusader_A HideSubObject = TurretFX01 Animation = AVCrusader_A.AVCrusader_A AnimationMode = ONCE End ConditionState = WEAPONSET_PLAYER_UPGRADE OVER_WATER Model = AVCrusader_H Turret = Turret WeaponFireFXBone = PRIMARY TurretMS WeaponRecoilBone = PRIMARY Barrel WeaponMuzzleFlash = PRIMARY TurretFX WeaponLaunchBone = PRIMARY TurretMS End ConditionState = WEAPONSET_PLAYER_UPGRADE MOVING OVER_WATER Model = AVCrusader_H Turret = Turret WeaponFireFXBone = PRIMARY TurretMS WeaponRecoilBone = PRIMARY Barrel WeaponMuzzleFlash = PRIMARY TurretFX WeaponLaunchBone = PRIMARY TurretMS ParticleSysBone = TreadFX01 AmphibWave End AliasConditionState = WEAPONSET_PLAYER_UPGRADE MOVING OVER_WATER REALLYDAMAGED TrackMarks = EXTnkTrack.tga OkToChangeModelColor = Yes End ; ***DESIGN parameters *** DisplayName = OBJECT:CrusaderMK2 Side = America EditorSorting = VEHICLE TransportSlotCount = 3 WeaponSet Conditions = None Weapon = PRIMARY CrusaderTankGun End WeaponSet Conditions = PLAYER_UPGRADE Weapon = PRIMARY CrusaderTankGun End ArmorSet Conditions = None Armor = TankArmor DamageFX = TankDamageFX End BuildCost = 850 BuildTime = 10.0 ;in seconds VisionRange = 150 ShroudClearingRange = 300 Prerequisites Object = AmericaWarFactory Object = AmericaStrategyCenter End ExperienceValue = 100 100 200 400 ;Experience point value at each level ExperienceRequired = 0 200 300 600 ;Experience points needed to gain each level IsTrainable = Yes ;Can gain experience CrusherLevel = 2 ;What can I crush?: 1 = infantry, 2 = trees, 3 = vehicles CrushableLevel = 2 ;What am I?: 0 = for infantry, 1 = for trees, 2 = general vehicles CommandSet = AmericaTankCrusaderMK2CommandSet ; *** AUDIO Parameters *** VoiceSelect = CrusaderTankVoiceSelect VoiceMove = CrusaderTankVoiceMove VoiceGuard = CrusaderTankVoiceMove VoiceAttack = CrusaderTankVoiceAttack SoundMoveStart = CrusaderTankMoveStart SoundMoveStartDamaged = CrusaderTankMoveStart UnitSpecificSounds ; These have the syntax of SomeNameSomewhereInCode = SomeNameSomewhereInLookupINIs VoiceCreate = CrusaderTankVoiceCreate VoiceEnter = CrusaderTankVoiceMove TurretMoveStart = NoSound TurretMoveLoop = TurretMoveLoop SoundEject = PilotSoundEject VoiceEject = PilotVoiceEject VoiceCrush = CrusaderTankVoiceCrush End ; *** ENGINEERING Parameters *** RadarPriority = UNIT KindOf = PRELOAD SELECTABLE CAN_ATTACK ATTACK_NEEDS_LINE_OF_SIGHT CAN_CAST_REFLECTIONS VEHICLE SCORE Body = ActiveBody ModuleTag_02 MaxHealth = 450 InitialHealth = 450 End Behavior = AIUpdateInterface ModuleTag_03 Turret TurretTurnRate = 180 ;60 // turn rate, in degrees per sec ControlledWeaponSlots= PRIMARY End AutoAcquireEnemiesWhenIdle = Yes End Locomotor = SET_NORMAL CrusaderMK2Locomotor Locomotor = SET_NORMAL_UPGRADED CrusaderAmphibiousLocomotor Behavior = PhysicsBehavior ModuleTag_04 Mass = 45.0 End Behavior = WeaponSetUpgrade ModuleTag_w3dphasechange TriggeredBy = Upgrade_CrusaderMK2Hover End Behavior = LocomotorSetUpgrade ModuleTag_LocoUp TriggeredBy = Upgrade_CrusaderMK2Hover End Behavior = ObjectCreationUpgrade ModuleTag_05 UpgradeObject = OCL_AmericanBattleDrone TriggeredBy = Upgrade_AmericaBattleDrone ConflictsWith = Upgrade_AmericaScoutDrone End Behavior = ObjectCreationUpgrade ModuleTag_06 UpgradeObject = OCL_AmericanScoutDrone TriggeredBy = Upgrade_AmericaScoutDrone ConflictsWith = Upgrade_AmericaBattleDrone End Behavior = ProductionUpdate ModuleTag_07 MaxQueueEntries = 1; So you can't build multiple upgrades in the same frame End Behavior = ExperienceScalarUpgrade ModuleTag_08 TriggeredBy = Upgrade_AmericaAdvancedTraining AddXPScalar = 1.0 ;Increases experience gained by an additional 100% End Behavior = MaxHealthUpgrade ModuleTag_09 TriggeredBy = Upgrade_AmericaCompositeArmor AddMaxHealth = 100.0 ChangeType = ADD_CURRENT_HEALTH_TOO ;Choices are PRESERVE_RATIO, ADD_CURRENT_HEALTH_TOO, and SAME_CURRENTHEALTH End ; Turret fly off death Behavior = SlowDeathBehavior ModuleTag_10 DeathTypes = ALL -CRUSHED -SPLATTED ProbabilityModifier = 50 DestructionDelay = 500 DestructionDelayVariance = 100 FX = INITIAL FX_GenericTankDeathEffect OCL = MIDPOINT OCL_GenericTankDeathEffect FX = FINAL FX_GenericTankDeathExplosion OCL = FINAL OCL_CrusaderTurret End ; Catch fire, and explode death Behavior = SlowDeathBehavior ModuleTag_11 DeathTypes = ALL -CRUSHED -SPLATTED ProbabilityModifier = 50 DestructionDelay = 2000 DestructionDelayVariance = 300 FX = INITIAL FX_CrusaderCatchFire OCL = FINAL OCL_GenericTankDeathEffect FX = FINAL FX_GenericTankDeathExplosion End Behavior = TransitionDamageFX ModuleTag_12 ReallyDamagedParticleSystem1 = Bone:Smoke RandomBone:Yes PSys:SmallLightSmokeColumn ReallyDamagedFXList1 = Loc: X:0 Y:0 Z:0 FXList:FX_BattleMasterDamageTransition End Behavior = DestroyDie ModuleTag_13 DeathTypes = NONE +CRUSHED +SPLATTED End ; A crushing defeat Behavior = FXListDie ModuleTag_14 DeathTypes = NONE +CRUSHED +SPLATTED DeathFX = FX_CarCrush End Behavior = CreateObjectDie ModuleTag_15 DeathTypes = NONE +CRUSHED +SPLATTED CreationList = OCL_CrusaderTank_CrushEffect End Behavior = CreateCrateDie ModuleTag_CratesChange CrateData = SalvageCrateData ;CrateData = EliteTankCrateData ;CrateData = HeroicTankCrateData End Behavior = EjectPilotDie ModuleTag_17 GroundCreationList = OCL_EjectPilotOnGround AirCreationList = OCL_EjectPilotViaParachute ExemptStatus = HIJACKED VeterancyLevels = ALL -REGULAR ;only vet+ gives pilot End Behavior = StealthDetectorUpdate ModuleTag_HijackerDetect DetectionRate = 500 DetectionRange = 75 CanDetectWhileGarrisoned = No CanDetectWhileContained = No ExtraRequiredKindOf = BOAT End Behavior = FlammableUpdate ModuleTag_21 AflameDuration = 5000 ; If I catch fire, I'll burn for this long... AflameDamageAmount = 3 ; taking this much damage... AflameDamageDelay = 500 ; this often. End Geometry = BOX GeometryMajorRadius = 15.0 GeometryMinorRadius = 10.0 GeometryHeight = 10.0 GeometryIsSmall = Yes Shadow = SHADOW_VOLUME ShadowSizeX = 45 ; minimum elevation angle above horizon. Used to limit shadow length End ;--------------------------------------------------Scorpion Tank------------------------------------------------------ ; this unit is never really "built"; building one triggers the random building of ; one of the other chassis. If you want a *specific* chassis, choose it explicitly; ; if you want a chassis at random, specify this. Object GLATankScorpion ; *** ART Parameters *** SelectPortrait = SUScorpion_L ButtonImage = SUScorpion Draw = W3DModelDraw ModuleTag_01 DefaultConditionState ; give it a model so it'll show up in WB Model = UVLiteTank End End ; set cost and time fields here or else they won't work BuildCost = 600 BuildTime = 6.0 ;in seconds Side = GLA EditorSorting = VEHICLE BuildVariations = GLATankScorpionOne GLATankScorpionTwo KindOf = PRELOAD SELECTABLE CAN_ATTACK ATTACK_NEEDS_LINE_OF_SIGHT CAN_CAST_REFLECTIONS VEHICLE SALVAGER SCORE End ;------------------------------------------------------------------------------ Object GLATankScorpionOne ; *** ART Parameters *** SelectPortrait = SUScorpion_L ButtonImage = SUScorpion UpgradeCameo1 = Upgrade_GLAScorpionRocket UpgradeCameo2 = Upgrade_GLAAPRockets UpgradeCameo3 = Upgrade_GLAToxinShells UpgradeCameo4 = Upgrade_GLAJunkRepair ;UpgradeCameo5 = NONE Draw = W3DTankDraw ModuleTag_01 OkToChangeModelColor = Yes ProjectileBoneFeedbackEnabledSlots = SECONDARY ; WeaponLaunchBone will be shown/hidden, not just used for firing offset DefaultConditionState Model = UVLiteTank Turret = Turret01 ; note, order-dependent: we must hide/show Missile AFTER we hide/show MissileRack! HideSubObject = MissleRack01 Missile ; MissileRack misspelled in the Art WeaponFireFXBone = PRIMARY Muzzle WeaponRecoilBone = PRIMARY Barrel WeaponMuzzleFlash = PRIMARY MuzzleFX WeaponLaunchBone = PRIMARY Muzzle End ConditionState = REALLYDAMAGED Model = UVLiteTank_d End ConditionState = RUBBLE Model = UVLiteTank_d End ConditionState = WEAPONSET_PLAYER_UPGRADE ShowSubObject = MissleRack01 WeaponFireFXBone = SECONDARY WeaponA WeaponLaunchBone = SECONDARY WeaponA WeaponHideShowBone = SECONDARY Missile End ConditionState = WEAPONSET_PLAYER_UPGRADE REALLYDAMAGED Model = UVLiteTank_d ShowSubObject = MissleRack01 WeaponFireFXBone = SECONDARY WeaponA WeaponLaunchBone = SECONDARY WeaponA WeaponHideShowBone = SECONDARY Missile End TrackMarks = EXTnkTrack.tga TreadAnimationRate = 2.0 ; amount of tread texture to move per second End ; ***DESIGN parameters *** DisplayName = OBJECT:Scorpion Side = GLA EditorSorting = VEHICLE TransportSlotCount = 3 ;how many "slots" we take in a transport (0 == not transportable) WeaponSet Conditions = None Weapon = PRIMARY ScorpionTankGun Weapon = SECONDARY None End WeaponSet Conditions = PLAYER_UPGRADE Weapon = PRIMARY ScorpionTankGun Weapon = SECONDARY ScorpionMissileWeapon AutoChooseSources = PRIMARY FROM_PLAYER FROM_SCRIPT FROM_AI AutoChooseSources = SECONDARY FROM_PLAYER FROM_SCRIPT FROM_AI End ArmorSet Conditions = None Armor = TankArmor DamageFX = TankDamageFX End ;BuildCost = 600 ;no longer buildable as self ;BuildTime = 7.0 ;in seconds VisionRange = 125 ShroudClearingRange = 300 Prerequisites Object = GLAArmsDealer End ExperienceValue = 60 60 120 200 ;Experience point value at each level ExperienceRequired = 0 100 200 400 ;Experience points needed to gain each level IsTrainable = Yes ;Can gain experience CrusherLevel = 2 ;What can I crush?: 1 = infantry, 2 = trees, 3 = vehicles CrushableLevel = 2 ;What am I?: 0 = for infantry, 1 = for trees, 2 = general vehicles CommandSet = GLATankScorpionCommandSet ; *** AUDIO Parameters *** VoiceSelect = ScorpionTankVoiceSelect VoiceMove = ScorpionTankVoiceMove VoiceAttack = ScorpionTankVoiceAttack SoundMoveStart = ScorpionTankMoveStart SoundMoveStartDamaged = ScorpionTankMoveStart VoiceGuard = ScorpionTankVoiceMove UnitSpecificSounds ; These have the syntax of SomeNameSomewhereInCode = SomeNameSomewhereInLookupINIs VoiceCreate = ScorpionTankVoiceCreate ;TurretMoveStart = NoSound TurretMoveLoop = TurretMoveLoop VoiceEnter = ScorpionTankVoiceMove End ; *** ENGINEERING Parameters *** RadarPriority = UNIT KindOf = PRELOAD SELECTABLE CAN_ATTACK ATTACK_NEEDS_LINE_OF_SIGHT CAN_CAST_REFLECTIONS VEHICLE SALVAGER SCORE Body = ActiveBody ModuleTag_02 MaxHealth = 370.0 InitialHealth = 370.0 End Behavior = AIUpdateInterface ModuleTag_03 Turret TurretTurnRate = 100 RecenterTime = 5000 ; how long to wait during idle before recentering ControlledWeaponSlots = PRIMARY SECONDARY End AutoAcquireEnemiesWhenIdle = Yes End Locomotor = SET_NORMAL ScorpionLocomotor Behavior = PhysicsBehavior ModuleTag_04 Mass = 50.0 End Behavior = AutoHealBehavior ModuleTag_05 HealingAmount = 2 HealingDelay = 1000 ; msec TriggeredBy = Upgrade_GLAJunkRepair End ; Catch fire, and explode death Behavior = SlowDeathBehavior ModuleTag_06 DeathTypes = ALL -CRUSHED -SPLATTED ProbabilityModifier = 50 DestructionDelay = 2000 DestructionDelayVariance = 300 FX = INITIAL FX_CrusaderCatchFire OCL = FINAL OCL_GenericTankDeathEffect FX = FINAL FX_BattleMasterExplosionOneFinal End Behavior = WeaponSetUpgrade ModuleTag_07 TriggeredBy = Upgrade_GLAScorpionRocket End Behavior = DestroyDie ModuleTag_09 DeathTypes = NONE +CRUSHED +SPLATTED End ; A crushing defeat Behavior = FXListDie ModuleTag_10 DeathTypes = NONE +CRUSHED +SPLATTED DeathFX = FX_CarCrush End Behavior = CreateObjectDie ModuleTag_11 DeathTypes = NONE +CRUSHED +SPLATTED CreationList = OCL_CrusaderTank_CrushEffect End Behavior = CreateCrateDie ModuleTag_12 CrateData = SalvageCrateData ;CrateData = EliteTankCrateData ;CrateData = HeroicTankCrateData End Behavior = StealthDetectorUpdate ModuleTag_HijackerDetect DetectionRate = 500 DetectionRange = 75 CanDetectWhileGarrisoned = No CanDetectWhileContained = No ExtraRequiredKindOf = BOAT End Behavior = TransitionDamageFX ModuleTag_13 ReallyDamagedParticleSystem1 = Bone:Smoke RandomBone:Yes PSys:SmallLightSmokeColumn ReallyDamagedFXList1 = Loc: X:0 Y:0 Z:0 FXList:FX_BattleMasterDamageTransition End Behavior = FlammableUpdate ModuleTag_21 AflameDuration = 5000 ; If I catch fire, I'll burn for this long... AflameDamageAmount = 3 ; taking this much damage... AflameDamageDelay = 500 ; this often. End Geometry = BOX GeometryMajorRadius = 14.0 GeometryMinorRadius = 9.0 GeometryHeight = 10.5 GeometryIsSmall = Yes Shadow = SHADOW_VOLUME ShadowSizeX = 45 ; minimum elevation angle above horizon. Used to limit shadow length End ;------------------------------------------------------------------------------ Object GLATankScorpionTwo ;GLATankCobra ; *** ART Parameters *** SelectPortrait = SUScorpion_L ButtonImage = SUScorpion UpgradeCameo1 = Upgrade_GLAScorpionRocket UpgradeCameo2 = Upgrade_GLAAPRockets UpgradeCameo3 = Upgrade_GLAToxinShells UpgradeCameo4 = Upgrade_GLAJunkRepair ;UpgradeCameo5 = NONE Draw = W3DTankDraw ModuleTag_01 OkToChangeModelColor = Yes ProjectileBoneFeedbackEnabledSlots = SECONDARY DefaultConditionState Model = UVScorpion Turret = Turret01 HideSubObject = MissleRack01 Missile WeaponFireFXBone = PRIMARY Muzzle WeaponRecoilBone = PRIMARY Barrel WeaponMuzzleFlash = PRIMARY MuzzleFX WeaponLaunchBone = PRIMARY Muzzle End ConditionState = REALLYDAMAGED Model = UVScorpion_d End ConditionState = RUBBLE Model = UVScorpion_d End ConditionState = WEAPONSET_PLAYER_UPGRADE ShowSubObject = MissleRack01 WeaponFireFXBone = SECONDARY WeaponA WeaponLaunchBone = SECONDARY WeaponA WeaponHideShowBone = SECONDARY Missile End ConditionState = WEAPONSET_PLAYER_UPGRADE REALLYDAMAGED Model = UVScorpion_d ShowSubObject = MissleRack01 WeaponFireFXBone = SECONDARY WeaponA WeaponLaunchBone = SECONDARY WeaponA WeaponHideShowBone = SECONDARY Missile End TrackMarks = EXTnkTrack.tga TreadAnimationRate = 2.0 ; amount of tread texture to move per second End ; ***DESIGN parameters *** DisplayName = OBJECT:Scorpion ;OBJECT:Cobra Side = GLA EditorSorting = VEHICLE TransportSlotCount = 3 ;how many "slots" we take in a transport (0 == not transportable) WeaponSet Conditions = None Weapon = PRIMARY CobraTankGun Weapon = SECONDARY None End WeaponSet Conditions = PLAYER_UPGRADE Weapon = PRIMARY CobraTankGun Weapon = SECONDARY ScorpionMissileWeapon AutoChooseSources = PRIMARY FROM_PLAYER FROM_SCRIPT FROM_AI AutoChooseSources = SECONDARY FROM_PLAYER FROM_SCRIPT FROM_AI End ArmorSet Conditions = None Armor = TankArmor DamageFX = TankDamageFX End ;BuildCost = 700 ;no longer buildable as self ;BuildTime = 8.0 ;in seconds VisionRange = 125 ShroudClearingRange = 300 Prerequisites Object = GLAArmsDealer End ExperienceValue = 60 60 120 200 ;Experience point value at each level ExperienceRequired = 0 100 200 400 ;Experience points needed to gain each level IsTrainable = Yes ;Can gain experience CrusherLevel = 2 ;What can I crush?: 1 = infantry, 2 = trees, 3 = vehicles CrushableLevel = 2 ;What am I?: 0 = for infantry, 1 = for trees, 2 = general vehicles CommandSet = GLATankScorpionCommandSet ;GLATankCobraCommandSet ; *** AUDIO Parameters *** VoiceSelect = ScorpionTankVoiceSelect VoiceMove = ScorpionTankVoiceMove VoiceAttack = ScorpionTankVoiceAttack SoundMoveStart = ScorpionTankMoveStart SoundMoveStartDamaged = ScorpionTankMoveStart VoiceGuard = ScorpionTankVoiceMove UnitSpecificSounds ; These have the syntax of SomeNameSomewhereInCode = SomeNameSomewhereInLookupINIs VoiceCreate = ScorpionTankVoiceCreate VoiceEnter = ScorpionTankVoiceMove End ; *** ENGINEERING Parameters *** RadarPriority = UNIT KindOf = PRELOAD SELECTABLE CAN_ATTACK ATTACK_NEEDS_LINE_OF_SIGHT CAN_CAST_REFLECTIONS VEHICLE SALVAGER SCORE Body = ActiveBody ModuleTag_02 MaxHealth = 370.0 ;300.0 InitialHealth = 370.0 ;300.0 End Behavior = AIUpdateInterface ModuleTag_03 AutoAcquireEnemiesWhenIdle = Yes End Locomotor = SET_NORMAL ScorpionLocomotor ;CobraLocomotor Behavior = PhysicsBehavior ModuleTag_04 Mass = 50.0 End Behavior = AutoHealBehavior ModuleTag_05 HealingAmount = 2 HealingDelay = 1000 ; msec TriggeredBy = Upgrade_GLAJunkRepair End ; Catch fire, and explode death Behavior = SlowDeathBehavior ModuleTag_06 DeathTypes = ALL -CRUSHED -SPLATTED ProbabilityModifier = 60 DestructionDelay = 500 DestructionDelayVariance = 200 FX = INITIAL FX_CrusaderCatchFire OCL = FINAL OCL_GenericTankDeathEffect FX = FINAL FX_BattleMasterExplosionOneFinal End Behavior = WeaponSetUpgrade ModuleTag_07 TriggeredBy = Upgrade_GLAScorpionRocket End Behavior = DestroyDie ModuleTag_09 DeathTypes = NONE +CRUSHED +SPLATTED End ; A crushing defeat Behavior = FXListDie ModuleTag_10 DeathTypes = NONE +CRUSHED +SPLATTED DeathFX = FX_CarCrush End Behavior = CreateObjectDie ModuleTag_11 DeathTypes = NONE +CRUSHED +SPLATTED CreationList = OCL_CrusaderTank_CrushEffect End Behavior = CreateCrateDie ModuleTag_12 CrateData = SalvageCrateData ;CrateData = EliteTankCrateData ;CrateData = HeroicTankCrateData End Behavior = StealthDetectorUpdate ModuleTag_HijackerDetect DetectionRate = 500 DetectionRange = 75 CanDetectWhileGarrisoned = No CanDetectWhileContained = No ExtraRequiredKindOf = BOAT End Behavior = TransitionDamageFX ModuleTag_13 ReallyDamagedParticleSystem1 = Bone:Smoke RandomBone:Yes PSys:SmallLightSmokeColumn ReallyDamagedFXList1 = Loc: X:0 Y:0 Z:0 FXList:FX_BattleMasterDamageTransition End Behavior = FlammableUpdate ModuleTag_21 AflameDuration = 3500 ; If I catch fire, I'll burn for this long... AflameDamageAmount = 5 ; taking this much damage... AflameDamageDelay = 500 ; this often. End Geometry = BOX GeometryMajorRadius = 12.0 GeometryMinorRadius = 8.0 GeometryHeight = 10.5 GeometryIsSmall = Yes Shadow = SHADOW_VOLUME ShadowSizeX = 45 ; minimum elevation angle above horizon. Used to limit shadow length End ;--------------------------------------------------End Scorpion Tank--------------------------------------------- ;------------------------------------------------------------------------------ ;GLA Rocket Buggy Object GLAVehicleRocketBuggy ; *** ART Parameters *** SelectPortrait = SURocketBuggy_L ButtonImage = SURocketBuggy UpgradeCameo1 = Upgrade_GLABuggyAmmo UpgradeCameo2 = Upgrade_GLAAPRockets UpgradeCameo3 = Upgrade_GLAJunkRepair ;UpgradeCameo4 = NONE ;UpgradeCameo5 = NONE Draw = W3DTruckDraw ModuleTag_01 OkToChangeModelColor = Yes DefaultConditionState Model = UVRockBug Turret = Turret ShowSubObject = Turret HideSubObject = TurretUp01 WeaponFireFXBone = PRIMARY WeaponA WeaponLaunchBone = PRIMARY WeaponA End ConditionState = REALLYDAMAGED Model = UVRockBug_D Turret = Turret ShowSubObject = Turret HideSubObject = TurretUp01 WeaponFireFXBone = PRIMARY WeaponA WeaponLaunchBone = PRIMARY WeaponA End ConditionState = RUBBLE Model = UVRockBug_D Turret = Turret ShowSubObject = Turret HideSubObject = TurretUp01 WeaponFireFXBone = PRIMARY WeaponA WeaponLaunchBone = PRIMARY WeaponA End ConditionState = WEAPONSET_PLAYER_UPGRADE Model = UVRockBug Turret = TurretUp01 ShowSubObject = TurretUp01 HideSubObject = Turret WeaponFireFXBone = PRIMARY WeaponB WeaponLaunchBone = PRIMARY WeaponB End ConditionState = WEAPONSET_PLAYER_UPGRADE REALLYDAMAGED Model = UVRockBug_D Turret = TurretUp01 ShowSubObject = TurretUp01 HideSubObject = Turret WeaponFireFXBone = PRIMARY WeaponB WeaponLaunchBone = PRIMARY WeaponB End ConditionState = WEAPONSET_PLAYER_UPGRADE RUBBLE Model = UVRockBug_D Turret = TurretUp01 ShowSubObject = TurretUp01 HideSubObject = Turret WeaponFireFXBone = PRIMARY WeaponB WeaponLaunchBone = PRIMARY WeaponB End TrackMarks = EXTireTrack.tga Dust = RocketBuggyDust DirtSpray = RocketBuggyDirtSpray PowerslideSpray = RocketBuggyDirtPowerSlide ; These parameters are only used if the model has a separate suspension, ; and the locomotor has HasSuspension = Yes. LeftFrontTireBone = Tire01 RightFrontTireBone = Tire02 LeftRearTireBone = Tire03 RightRearTireBone = Tire04 TireRotationMultiplier = 0.2 ; this * speed = rotation. PowerslideRotationAddition = 2.5 ; This speed is added to the rotation speed when powersliding. End ; ***DESIGN parameters *** DisplayName = OBJECT:RocketBuggy Side = GLA EditorSorting = VEHICLE TransportSlotCount = 3 ;how many "slots" we take in a transport (0 == not transportable) WeaponSet Conditions = None Weapon = PRIMARY BuggyRocketWeapon End WeaponSet Conditions = PLAYER_UPGRADE Weapon = PRIMARY BuggyRocketWeaponUpgraded End ArmorSet Conditions = None Armor = TruckArmor DamageFX = TankDamageFX End BuildCost = 900 BuildTime = 10.0 ;in seconds VisionRange = 180 ShroudClearingRange = 300 Prerequisites Object = GLAArmsDealer Object = GLAPalace End ExperienceValue = 50 50 100 150 ;Experience point value at each level ExperienceRequired = 0 200 400 800 ;Experience points needed to gain each level IsTrainable = Yes ;Can gain experience CrusherLevel = 2 ;What can I crush?: 1 = infantry, 2 = trees, 3 = vehicles CrushableLevel = 2 ;What am I?: 0 = for infantry, 1 = for trees, 2 = general vehicles CommandSet = GLAVehicleRocketBuggyCommandSet ; *** AUDIO Parameters *** VoiceSelect = RocketBuggyVoiceSelect VoiceMove = RocketBuggyVoiceMove VoiceAttack = RocketBuggyVoiceAttack SoundMoveStart = RocketBuggyMoveStart SoundMoveStartDamaged = RocketBuggyMoveStart VoiceGuard = RocketBuggyVoiceMove UnitSpecificSounds ; These have the syntax of SomeNameSomewhereInCode = SomeNameSomewhereInLookupINIs VoiceCreate = RocketBuggyVoiceCreate TurretMoveStart = NoSound TurretMoveLoop = TurretMoveLoop ; Required for the W3DTruckDraw module TruckLandingSound = RocketBuggyLand TruckPowerslideSound = RocketBuggyPowerslide VoiceCrush = RocketBuggyVoiceCrush VoiceEnter = RocketBuggyVoiceMove End ; *** ENGINEERING Parameters *** RadarPriority = UNIT KindOf = PRELOAD SELECTABLE CAN_ATTACK DONT_AUTO_CRUSH_INFANTRY ATTACK_NEEDS_LINE_OF_SIGHT CAN_CAST_REFLECTIONS VEHICLE SALVAGER SCORE Body = ActiveBody ModuleTag_02 MaxHealth = 120 InitialHealth = 120 End Behavior = AIUpdateInterface ModuleTag_03 Turret TurretTurnRate = 90 ControlledWeaponSlots = PRIMARY End AutoAcquireEnemiesWhenIdle = Yes End Locomotor = SET_NORMAL RocketBuggyLocomotor Behavior = PhysicsBehavior ModuleTag_04 Mass = 50.0 End ; The pop up AirDeath Behavior = SlowDeathBehavior ModuleTag_05 DeathTypes = ALL -CRUSHED -SPLATTED ProbabilityModifier = 5 ModifierBonusPerOverkillPercent = 20% ; negative means less likely to pick this in the face of much damage, positive means more likely DestructionDelay = 0 FX = INITIAL FX_BuggyNewDeathExplosion OCL = FINAL OCL_RocketBuggyAirDeathStart End ;Behavior = SlowDeathBehavior ModuleTag_06 ; DeathTypes = ALL -CRUSHED -SPLATTED ; ProbabilityModifier = 5 ; DestructionDelay = 1000 ; DestructionDelayVariance = 200 ; FX = INITIAL FX_RocketBuggyCatchFire ; OCL = FINAL OCL_BuggyRocketScatter ;End Behavior = AutoHealBehavior ModuleTag_08 HealingAmount = 2 HealingDelay = 1000 ; msec TriggeredBy = Upgrade_GLAJunkRepair End Behavior = WeaponSetUpgrade ModuleTag_09 TriggeredBy = Upgrade_GLABuggyAmmo End Behavior = DestroyDie ModuleTag_11 DeathTypes = NONE +CRUSHED +SPLATTED End ; A crushing defeat Behavior = FXListDie ModuleTag_12 DeathTypes = NONE +CRUSHED +SPLATTED DeathFX = FX_CarCrush End Behavior = CreateObjectDie ModuleTag_13 DeathTypes = NONE +CRUSHED +SPLATTED CreationList = OCL_RocketBuggy_CrushEffect End Behavior = CreateCrateDie ModuleTag_14 CrateData = SalvageCrateData ;CrateData = EliteTankCrateData ;CrateData = HeroicTankCrateData End Behavior = StealthDetectorUpdate ModuleTag_HijackerDetect DetectionRate = 500 DetectionRange = 75 CanDetectWhileGarrisoned = No CanDetectWhileContained = No ExtraRequiredKindOf = BOAT End Behavior = TransitionDamageFX ModuleTag_15 ReallyDamagedParticleSystem1 = Bone:Smoke RandomBone:Yes PSys:SmallLightSmokeColumn ReallyDamagedFXList1 = Loc: X:0 Y:0 Z:0 FXList:FX_BattleMasterDamageTransition End Behavior = FlammableUpdate ModuleTag_21 AflameDuration = 5000 ; If I catch fire, I'll burn for this long... AflameDamageAmount = 3 ; taking this much damage... AflameDamageDelay = 500 ; this often. End Geometry = BOX GeometryMajorRadius = 13.0 GeometryMinorRadius = 9.0 GeometryHeight = 7.5 GeometryIsSmall = Yes Shadow = SHADOW_VOLUME ShadowSizeX = 45 ; minimum elevation angle above horizon. Used to limit shadow length End ;------------------------------------------------------------------------------ Object StingerMissile ; *** ART Parameters *** Draw = W3DModelDraw ModuleTag_01 OkToChangeModelColor = Yes ConditionState = NONE Model = UVRockBug_m End End ; ***DESIGN parameters *** DisplayName = OBJECT:StingerMissile EditorSorting = SYSTEM VisionRange = 0.0 ArmorSet Conditions = None Armor = ProjectileArmor DamageFX = None End TransportSlotCount = 1 ;how many "slots" we take in a transport (0 == not transportable) ; *** ENGINEERING Parameters *** KindOf = PROJECTILE SMALL_MISSILE Body = ActiveBody ModuleTag_02 MaxHealth = 100.0 InitialHealth = 100.0 End ; ---- begin Projectile death behaviors Behavior = InstantDeathBehavior DeathModuleTag_01 DeathTypes = NONE +DETONATED ; we detonated normally. ; no FX, just quiet destroy ourselves End Behavior = InstantDeathBehavior DeathModuleTag_02 DeathTypes = NONE +LASERED ; shot down by laser. FX = FX_GenericMissileDisintegrate OCL = OCL_GenericMissileDisintegrate End Behavior = InstantDeathBehavior DeathModuleTag_03 DeathTypes = ALL -LASERED -DETONATED ; shot down by nonlaser. FX = FX_GenericMissileDeath End ; ---- end Projectile death behaviors Behavior = PhysicsBehavior ModuleTag_06 Mass = 1 End Behavior = MissileAIUpdate ModuleTag_07 TryToFollowTarget = Yes FuelLifetime = 5000 InitialVelocity = 200 ; in dist/sec IgnitionDelay = 0 DistanceToTravelBeforeTurning = 5 IgnitionFX = None DistanceToTargetForLock = 100 ; If it gets within 100 of the target, it kills the target. End Behavior = WeaponBonusUpgrade Upgrade_01 TriggeredBy = Upgrade_GLAAPRockets End Locomotor = SET_NORMAL StingerMissileLocomotor Geometry = Sphere GeometryIsSmall = Yes GeometryMajorRadius = 2.0 End ;------------------------------------------------------------------------------ Object ComancheAntiTankMissile ; *** ART Parameters *** Draw = W3DModelDraw ModuleTag_01 OkToChangeModelColor = Yes ConditionState = NONE ; @todo -- need real art here Model = UVRockBug_m End End ; ***DESIGN parameters *** DisplayName = OBJECT:Prop EditorSorting = SYSTEM VisionRange = 0.0 ArmorSet Conditions = None Armor = ProjectileArmor DamageFX = None End TransportSlotCount = 1 ;how many "slots" we take in a transport (0 == not transportable) ; *** ENGINEERING Parameters *** KindOf = PROJECTILE SMALL_MISSILE Body = ActiveBody ModuleTag_02 MaxHealth = 100.0 InitialHealth = 100.0 End ; ---- begin Projectile death behaviors Behavior = InstantDeathBehavior DeathModuleTag_01 DeathTypes = NONE +DETONATED ; we detonated normally. ; no FX, just quiet destroy ourselves End Behavior = InstantDeathBehavior DeathModuleTag_02 DeathTypes = NONE +LASERED ; shot down by laser. FX = FX_GenericMissileDisintegrate OCL = OCL_GenericMissileDisintegrate End Behavior = InstantDeathBehavior DeathModuleTag_03 DeathTypes = ALL -LASERED -DETONATED ; shot down by nonlaser. FX = FX_GenericMissileDeath End ; ---- end Projectile death behaviors Behavior = PhysicsBehavior ModuleTag_06 Mass = 1 End Behavior = MissileAIUpdate ModuleTag_07 TryToFollowTarget = Yes FuelLifetime = 1000 InitialVelocity = 150 ; in dist/sec IgnitionDelay = 0 DistanceToTravelBeforeTurning = 10 IgnitionFX = FX_BuggyMissileIgnition End Locomotor = SET_NORMAL ComancheAntiTankMissileLocomotor Geometry = Sphere GeometryIsSmall = Yes GeometryMajorRadius = 2.0 End ;------------------------------------------------------------------------------ Object ComancheRocketPodRocket ; *** ART Parameters *** Draw = W3DModelDraw ModuleTag_01 OkToChangeModelColor = Yes ConditionState = NONE ; @todo -- need real art here Model = UVRockBug_m End End ; ***DESIGN parameters *** DisplayName = OBJECT:Prop EditorSorting = SYSTEM VisionRange = 0.0 ArmorSet Conditions = None Armor = ProjectileArmor DamageFX = None End ; *** ENGINEERING Parameters *** KindOf = PROJECTILE SMALL_MISSILE Body = ActiveBody ModuleTag_02 MaxHealth = 100.0 InitialHealth = 100.0 End ; ---- begin Projectile death behaviors Behavior = InstantDeathBehavior DeathModuleTag_01 DeathTypes = NONE +DETONATED ; we detonated normally. ; no FX, just quiet destroy ourselves End Behavior = InstantDeathBehavior DeathModuleTag_02 DeathTypes = NONE +LASERED ; shot down by laser. FX = FX_GenericMissileDisintegrate OCL = OCL_GenericMissileDisintegrate End Behavior = InstantDeathBehavior DeathModuleTag_03 DeathTypes = ALL -LASERED -DETONATED ; shot down by nonlaser. FX = FX_GenericMissileDeath End ; ---- end Projectile death behaviors Behavior = PhysicsBehavior ModuleTag_06 Mass = 1 End Behavior = MissileAIUpdate ModuleTag_07 TryToFollowTarget = No FuelLifetime = 1000 InitialVelocity = 150 ; in dist/sec IgnitionDelay = 0 DistanceToTravelBeforeTurning = 10 IgnitionFX = FX_BuggyMissileIgnition End Locomotor = SET_NORMAL ComancheRocketPodLocomotor Geometry = Sphere GeometryIsSmall = Yes GeometryMajorRadius = 2.0 End ;------------------------------------------------------------------------------ Object RocketBuggyMissile ; *** ART Parameters *** Draw = W3DModelDraw ModuleTag_01 OkToChangeModelColor = Yes ConditionState = NONE Model = UVRockBug_m End End ; ***DESIGN parameters *** EditorSorting = SYSTEM VisionRange = 0.0 ArmorSet Conditions = None Armor = ProjectileArmor DamageFX = None End ; *** ENGINEERING Parameters *** KindOf = PROJECTILE SMALL_MISSILE Body = ActiveBody ModuleTag_02 MaxHealth = 100.0 InitialHealth = 100.0 End ; ---- begin Projectile death behaviors Behavior = InstantDeathBehavior DeathModuleTag_01 DeathTypes = NONE +DETONATED ; we detonated normally. ; no FX, just quiet destroy ourselves End Behavior = InstantDeathBehavior DeathModuleTag_02 DeathTypes = NONE +LASERED ; shot down by laser. FX = FX_GenericMissileDisintegrate OCL = OCL_GenericMissileDisintegrate End Behavior = InstantDeathBehavior DeathModuleTag_03 DeathTypes = ALL -LASERED -DETONATED ; shot down by nonlaser. FX = FX_GenericMissileDeath End ; ---- end Projectile death behaviors Behavior = PhysicsBehavior ModuleTag_06 Mass = 1 End Behavior = MissileAIUpdate ModuleTag_07 TryToFollowTarget = Yes FuelLifetime = 1500 InitialVelocity = 150 ; in dist/sec IgnitionDelay = 0 DistanceToTravelBeforeTurning = 3 IgnitionFX = FX_BuggyMissileIgnition End Locomotor = SET_NORMAL RocketBuggyMissileLocomotor Behavior = WeaponBonusUpgrade ModuleTag_08 TriggeredBy = Upgrade_GLAAPRockets End Geometry = Sphere GeometryIsSmall = Yes GeometryMajorRadius = 2.0 End ;------------------------------------------------------------------------------ Object SCUDMissile ; *** ART Parameters *** Draw = W3DModelDraw ModuleTag_01 OkToChangeModelColor = Yes ConditionState = NONE Model = UVScudLchr_M End ConditionState = REALLYDAMAGED Model = UVScudLchr_DM End End ; ***DESIGN parameters *** DisplayName = OBJECT:SCUDMissile EditorSorting = SYSTEM VisionRange = 0.0 ArmorSet Conditions = None ;*Be careful with this type, use in conjunction with KindOf = BALLISTIC_MISSILE to restrict targeting ;*to select weapons, because ballistic missile armor is weak! Weapons capable of targeting must have ;*AntiBallisticMissile = Yes set in the Weapon.ini. Armor = BallisticMissileArmor DamageFX = None End ; *** ENGINEERING Parameters *** KindOf = PROJECTILE BALLISTIC_MISSILE Body = ActiveBody ModuleTag_02 MaxHealth = 100.0 InitialHealth = 100.0 End ; ---- begin Projectile death behaviors Behavior = InstantDeathBehavior DeathModuleTag_01 DeathTypes = NONE +DETONATED ; we detonated normally. ; no FX, just quiet destroy ourselves End Behavior = InstantDeathBehavior DeathModuleTag_02 DeathTypes = NONE +LASERED ; shot down by laser. FX = FX_GenericMissileDisintegrate OCL = OCL_GenericMissileDisintegrate End Behavior = InstantDeathBehavior DeathModuleTag_03 DeathTypes = ALL -LASERED -DETONATED ; shot down by nonlaser. FX = FX_GenericMissileDeath End ; ---- end Projectile death behaviors Behavior = PhysicsBehavior ModuleTag_06 Mass = 1 End Behavior = MissileAIUpdate ModuleTag_07 TryToFollowTarget = No FuelLifetime = 5000 IgnitionDelay = 0 ; IgnitionFX = FX_ScudStormIgnition ;NOT WORKING InitialVelocity = 50 ; in dist/sec DistanceToTravelBeforeTurning = 200 DistanceToTargetBeforeDiving = 200 ; When I hit this close to target, I ignore PreferredHeight. End Locomotor = SET_NORMAL SCUDMissileLocomotor Behavior = WeaponBonusUpgrade ModuleTag_08 TriggeredBy = Upgrade_GLAAPRockets End Geometry = Cylinder ; Since collision extents can't tilt, this is a little fake GeometryMajorRadius = 4.0 GeometryHeight = 4.0 GeometryIsSmall = Yes Shadow = SHADOW_DECAL End ;------------------------------------------------------------------------------ Object TomahawkMissile ; *** ART Parameters *** Draw = W3DModelDraw ModuleTag_01 OkToChangeModelColor = Yes ConditionState = NONE Model = AVTomahawk_M End End ; ***DESIGN parameters *** DisplayName = OBJECT:TomahawkMissile EditorSorting = SYSTEM VisionRange = 0.0 ArmorSet Conditions = None ;*Be careful with this type, use in conjunction with KindOf = BALLISTIC_MISSILE to restrict targeting ;*to select weapons, because ballistic missile armor is weak! Weapons capable of targeting must have ;*AntiBallisticMissile = Yes set in the Weapon.ini. Armor = BallisticMissileArmor DamageFX = None End ; *** ENGINEERING Parameters *** KindOf = PROJECTILE BALLISTIC_MISSILE Body = ActiveBody ModuleTag_02 MaxHealth = 200.0 InitialHealth = 100.0 End ; ---- begin Projectile death behaviors Behavior = InstantDeathBehavior DeathModuleTag_01 DeathTypes = NONE +DETONATED ; we detonated normally. FX = WeaponFX_TomahawkMissileDetonation End Behavior = InstantDeathBehavior DeathModuleTag_02 DeathTypes = NONE +LASERED ; shot down by laser. FX = FX_GenericMissileDisintegrate OCL = OCL_GenericMissileDisintegrate End Behavior = InstantDeathBehavior DeathModuleTag_03 DeathTypes = ALL -LASERED -DETONATED ; shot down by nonlaser. FX = FX_GenericMissileDeath End ; ---- end Projectile death behaviors Behavior = PhysicsBehavior ModuleTag_06 Mass = 1 End Behavior = MissileAIUpdate ModuleTag_07 TryToFollowTarget = Yes FuelLifetime = 4000 IgnitionDelay = 0 IgnitionFX = FX_TomahawkIgnition InitialVelocity = 50 ; in dist/sec DistanceToTravelBeforeTurning = 80 DistanceToTargetBeforeDiving = 100 ; When I hit this close to target, I ignore PreferredHeight. ; Note, if this is too small, the missile will turn too late to hit. And, since we have a 2D ; heart, being over the target counts as "there", so we'll give up and just go straight. DistanceToTargetForLock = 10 ; Short lock on, as it looks better flying. jba. End Locomotor = SET_NORMAL TomahawkMissileLocomotor Geometry = Cylinder ; Since collision extents can't tilt, this is a little fake GeometryMajorRadius = 8.0 GeometryHeight = 4.0 GeometryIsSmall = Yes Shadow = SHADOW_DECAL End ;------------------------------------------------------------------------------ Object NuclearCannonShell ; *** ART Parameters *** Draw = W3DModelDraw ModuleTag_01 OkToChangeModelColor = Yes ConditionState = NONE Model = NVNUKECN_B End End ; ***DESIGN parameters *** DisplayName = OBJECT:Missile EditorSorting = SYSTEM VisionRange = 0.0 ArmorSet Conditions = None Armor = ProjectileArmor DamageFX = None End ; *** ENGINEERING Parameters *** KindOf = PROJECTILE Body = ActiveBody ModuleTag_02 MaxHealth = 100.0 InitialHealth = 100.0 End Behavior = FireWeaponWhenDeadBehavior ModuleTag_03 DeathWeapon = ChinaPowerPlantDeathWeapon StartsActive = Yes End Behavior = HeightDieUpdate ModuleTag_04 TargetHeight = 1.0 TargetHeightIncludesStructures = No OnlyWhenMovingDown = Yes InitialDelay = 1000 ; Can't explode in the first second so we don't explode on the pad End ; ---- begin Projectile death behaviors Behavior = InstantDeathBehavior DeathModuleTag_01 DeathTypes = NONE +DETONATED ; we detonated normally. FX = FX_NukeGLA End Behavior = InstantDeathBehavior DeathModuleTag_02 DeathTypes = NONE +LASERED ; shot down by laser. FX = FX_GenericMissileDisintegrate OCL = OCL_GenericMissileDisintegrate End Behavior = InstantDeathBehavior DeathModuleTag_03 DeathTypes = ALL -LASERED -DETONATED ; shot down by nonlaser. FX = FX_GenericMissileDeath End ; ---- end Projectile death behaviors Behavior = PhysicsBehavior ModuleTag_09 Mass = 1 End Behavior = MissileAIUpdate ModuleTag_10 TryToFollowTarget = No FuelLifetime = 4000 IgnitionDelay = 0 IgnitionFX = FX_BuggyMissileIgnition InitialVelocity = 20 ; in dist/sec DistanceToTravelBeforeTurning = 40 DistanceToTargetBeforeDiving = 50 ; When I hit this close to target, I ignore PreferredHeight. ; Note, if this is too small, the missile will turn too late to hit. And, since we have a 2D ; heart, being over the target counts as "there", so we'll give up and just go straight. End Locomotor = SET_NORMAL NuclearCannonShellLocomotor Geometry = Cylinder ; Since collision extents can't tilt, this is a little fake GeometryMajorRadius = 4.0 GeometryHeight = 4.0 GeometryIsSmall = Yes Shadow = SHADOW_DECAL End ;------------------------------------------------------------------------------ Object StrategyCenterArtilleryShell ; *** ART Parameters *** Draw = W3DModelDraw ModuleTag_01 OkToChangeModelColor = Yes ConditionState = NONE Model = NVNUKECN_B End End ; ***DESIGN parameters *** DisplayName = OBJECT:Missile EditorSorting = SYSTEM VisionRange = 0.0 ArmorSet Conditions = None Armor = ProjectileArmor DamageFX = None End ; *** ENGINEERING Parameters *** KindOf = PROJECTILE Body = ActiveBody ModuleTag_02 MaxHealth = 100.0 InitialHealth = 100.0 End ; ---- begin Projectile death behaviors Behavior = InstantDeathBehavior DeathModuleTag_01 DeathTypes = NONE +DETONATED ; we detonated normally. ; no FX, just quiet destroy ourselves End Behavior = InstantDeathBehavior DeathModuleTag_02 DeathTypes = NONE +LASERED ; shot down by laser. FX = FX_GenericMissileDisintegrate OCL = OCL_GenericMissileDisintegrate End Behavior = InstantDeathBehavior DeathModuleTag_03 DeathTypes = ALL -LASERED -DETONATED ; shot down by nonlaser. FX = FX_GenericMissileDeath End ; ---- end Projectile death behaviors Behavior = PhysicsBehavior ModuleTag_04 Mass = 1 End Behavior = MissileAIUpdate ModuleTag_05 TryToFollowTarget = No FuelLifetime = 4000 IgnitionDelay = 0 IgnitionFX = FX_BuggyMissileIgnition InitialVelocity = 20 ; in dist/sec DistanceToTravelBeforeTurning = 40 DistanceToTargetBeforeDiving = 50 ; When I hit this close to target, I ignore PreferredHeight. ; Note, if this is too small, the missile will turn too late to hit. And, since we have a 2D ; heart, being over the target counts as "there", so we'll give up and just go straight. End Locomotor = SET_NORMAL NuclearCannonShellLocomotor Geometry = Cylinder ; Since collision extents can't tilt, this is a little fake GeometryMajorRadius = 4.0 GeometryHeight = 4.0 GeometryIsSmall = Yes Shadow = SHADOW_DECAL End ;------------------------------------------------------------------------------ Object MissileDefenderMissile ; *** ART Parameters *** Draw = W3DModelDraw ModuleTag_01 OkToChangeModelColor = Yes ConditionState = NONE Model = ExMsslTm End End ; ***DESIGN parameters *** DisplayName = OBJECT:RangerTeamMissile EditorSorting = SYSTEM VisionRange = 0.0 ArmorSet Conditions = None Armor = ProjectileArmor DamageFX = None End ; *** ENGINEERING Parameters *** KindOf = PROJECTILE SMALL_MISSILE Body = ActiveBody ModuleTag_02 MaxHealth = 100.0 InitialHealth = 100.0 End ; ---- begin Projectile death behaviors Behavior = InstantDeathBehavior DeathModuleTag_01 DeathTypes = NONE +DETONATED ; we detonated normally. ; no FX, just quiet destroy ourselves End Behavior = InstantDeathBehavior DeathModuleTag_02 DeathTypes = NONE +LASERED ; shot down by laser. FX = FX_GenericMissileDisintegrate OCL = OCL_GenericMissileDisintegrate End Behavior = InstantDeathBehavior DeathModuleTag_03 DeathTypes = ALL -LASERED -DETONATED ; shot down by nonlaser. FX = FX_GenericMissileDeath End ; ---- end Projectile death behaviors Behavior = PhysicsBehavior ModuleTag_06 Mass = 1 End Behavior = MissileAIUpdate ModuleTag_07 TryToFollowTarget = Yes;;;;;;;;;No FuelLifetime = 3000 InitialVelocity = 150 ; in dist/sec IgnitionDelay = 0 DistanceToTravelBeforeTurning = 3 IgnitionFX = FX_BuggyMissileIgnition End Locomotor = SET_NORMAL MissileDefenderMissileLocomotor Geometry = Sphere GeometryIsSmall = Yes GeometryMajorRadius = 2.0 End ;------------------------------------------------------------------------------ Object TunnelDefenderMissile ; *** ART Parameters *** Draw = W3DModelDraw ModuleTag_01 OkToChangeModelColor = Yes ConditionState = NONE Model = EXStinger01 End End ; ***DESIGN parameters *** EditorSorting = SYSTEM VisionRange = 0.0 ArmorSet Conditions = None Armor = ProjectileArmor DamageFX = None End ; *** ENGINEERING Parameters *** KindOf = PROJECTILE SMALL_MISSILE Body = ActiveBody ModuleTag_02 MaxHealth = 100.0 InitialHealth = 100.0 End ; ---- begin Projectile death behaviors Behavior = InstantDeathBehavior DeathModuleTag_01 DeathTypes = NONE +DETONATED ; we detonated normally. ; no FX, just quiet destroy ourselves End Behavior = InstantDeathBehavior DeathModuleTag_02 DeathTypes = NONE +LASERED ; shot down by laser. FX = FX_GenericMissileDisintegrate OCL = OCL_GenericMissileDisintegrate End Behavior = InstantDeathBehavior DeathModuleTag_03 DeathTypes = ALL -LASERED -DETONATED ; shot down by nonlaser. FX = FX_GenericMissileDeath End ; ---- end Projectile death behaviors Behavior = WeaponBonusUpgrade ModuleTag_08 TriggeredBy = Upgrade_GLAAPRockets End Behavior = PhysicsBehavior ModuleTag_06 Mass = 1 End Behavior = MissileAIUpdate ModuleTag_07 TryToFollowTarget = Yes;;;;;;;;;;No FuelLifetime = 1250 InitialVelocity = 150 ; in dist/sec IgnitionDelay = 0 DistanceToTravelBeforeTurning = 20 IgnitionFX = FX_BuggyMissileIgnition End Locomotor = SET_NORMAL TunnelDefenderMissileLocomotor Geometry = Sphere GeometryIsSmall = Yes GeometryMajorRadius = 2.0 End ;------------------------------------------------------------------------------ Object TechnicalRPGMissile ; *** ART Parameters *** Draw = W3DModelDraw ModuleTag_01 OkToChangeModelColor = Yes DefaultConditionState Model = EXStinger01 End End ; ***DESIGN parameters *** EditorSorting = SYSTEM VisionRange = 0.0 ArmorSet Conditions = None Armor = ProjectileArmor DamageFX = None End ; *** ENGINEERING Parameters *** KindOf = PROJECTILE SMALL_MISSILE Body = ActiveBody ModuleTag_02 MaxHealth = 100.0 InitialHealth = 100.0 End ; ---- begin Projectile death behaviors Behavior = InstantDeathBehavior DeathModuleTag_01 DeathTypes = NONE +DETONATED ; we detonated normally. ; no FX, just quiet destroy ourselves End Behavior = InstantDeathBehavior DeathModuleTag_02 DeathTypes = NONE +LASERED ; shot down by laser. FX = FX_GenericMissileDisintegrate OCL = OCL_GenericMissileDisintegrate End Behavior = InstantDeathBehavior DeathModuleTag_03 DeathTypes = ALL -LASERED -DETONATED ; shot down by nonlaser. FX = FX_GenericMissileDeath End ; ---- end Projectile death behaviors Behavior = PhysicsBehavior ModuleTag_06 Mass = 1 End Behavior = MissileAIUpdate ModuleTag_07 TryToFollowTarget = Yes FuelLifetime = 1000 InitialVelocity = 150 ; in dist/sec IgnitionDelay = 0 DistanceToTravelBeforeTurning = 20 IgnitionFX = FX_BuggyMissileIgnition End Locomotor = SET_NORMAL TechnicalRPGMissileLocomotor Geometry = Sphere GeometryIsSmall = Yes GeometryMajorRadius = 2.0 End ;------------------------------------------------------------------------------ Object TankHunterMissile ; *** ART Parameters *** Draw = W3DModelDraw ModuleTag_01 OkToChangeModelColor = Yes ConditionState = NONE Model = EXStinger01 End End ; ***DESIGN parameters *** EditorSorting = SYSTEM VisionRange = 0.0 ArmorSet Conditions = None Armor = ProjectileArmor DamageFX = None End ; *** ENGINEERING Parameters *** KindOf = PROJECTILE SMALL_MISSILE Body = ActiveBody ModuleTag_02 MaxHealth = 100.0 InitialHealth = 100.0 End ; ---- begin Projectile death behaviors Behavior = InstantDeathBehavior DeathModuleTag_01 DeathTypes = NONE +DETONATED ; we detonated normally. ; no FX, just quiet destroy ourselves End Behavior = InstantDeathBehavior DeathModuleTag_02 DeathTypes = NONE +LASERED ; shot down by laser. FX = FX_GenericMissileDisintegrate OCL = OCL_GenericMissileDisintegrate End Behavior = InstantDeathBehavior DeathModuleTag_03 DeathTypes = ALL -LASERED -DETONATED ; shot down by nonlaser. FX = FX_GenericMissileDeath End ; ---- end Projectile death behaviors Behavior = PhysicsBehavior ModuleTag_06 Mass = 1 End Behavior = MissileAIUpdate ModuleTag_07 TryToFollowTarget = Yes;;;;;;;;;;;;No FuelLifetime = 1250 InitialVelocity = 150 ; in dist/sec IgnitionDelay = 0 DistanceToTravelBeforeTurning = 20 IgnitionFX = FX_BuggyMissileIgnition End Locomotor = SET_NORMAL TankHunterMissileLocomotor Geometry = Sphere GeometryIsSmall = Yes GeometryMajorRadius = 2.0 End ;------------------------------------------------------------------------------ Object GLARocketBuggyFullDebris ; *** ART Parameters *** Draw = W3DModelDraw ModuleTag_01 OkToChangeModelColor = Yes DefaultConditionState Model = UVRockBug_D1 ShowSubObject = Turret HideSubObject = TurretUp01 End ConditionState = WEAPONSET_PLAYER_UPGRADE ShowSubObject = TurretUp01 HideSubObject = Turret End End ; ***DESIGN parameters *** DisplayName = OBJECT:RocketBuggyDebris Side = GLA EditorSorting = SYSTEM TransportSlotCount = 0 ; *** AUDIO Parameters *** ; *** ENGINEERING Parameters *** RadarPriority = UNIT KindOf = CAN_CAST_REFLECTIONS Body = ActiveBody ModuleTag_02 MaxHealth = 1.0 InitialHealth = 1.0 End Behavior = PhysicsBehavior ModuleTag_03 Mass = 50 AllowBouncing = Yes End Behavior = LifetimeUpdate ModuleTag_04 MinLifetime = 0 ; min lifetime in msec MaxLifetime = 0 ; max lifetime in msec End Behavior = WeaponSetUpgrade ModuleTag_05 TriggeredBy = Upgrade_GLABuggyAmmo End Behavior = SlowDeathBehavior ModuleTag_06 DestructionDelay = 500 DestructionDelayVariance = 1500 OCL = FINAL OCL_RocketBuggyAirDeath FX = INITIAL FX_RocketBuggyAirDeathGroundPart FX = FINAL FX_RocketBuggyAirDeathAirPart ; This happens in the air End Geometry = BOX GeometryMajorRadius = 9.0 GeometryMinorRadius = 6.0 GeometryHeight = 7.5 GeometryIsSmall = Yes End ;------------------------------------------------------------------------------ Object RocketBuggyMissileDebris ; *** ART Parameters *** Draw = W3DModelDraw ModuleTag_01 OkToChangeModelColor = Yes ConditionState = NONE Model = NVMBuggy_m End End ; ***DESIGN parameters *** DisplayName = OBJECT:RocketBuggyDebris EditorSorting = SYSTEM ArmorSet Conditions = None Armor = ProjectileArmor DamageFX = None End ; *** ENGINEERING Parameters *** Body = ActiveBody ModuleTag_02 MaxHealth = 100.0 InitialHealth = 100.0 End Behavior = PhysicsBehavior ModuleTag_03 Mass = 3 AllowBouncing = Yes End Behavior = LifetimeUpdate ModuleTag_04 MinLifetime = 0 ; min lifetime in msec MaxLifetime = 0 ; max lifetime in msec End Behavior = SlowDeathBehavior ModuleTag_05 DestructionDelay = 500 DestructionDelayVariance = 500 FX = INITIAL FX_BuggyMissileDebris FX = FINAL WeaponFX_RocketBuggyMissileDetonation End Geometry = Sphere GeometryIsSmall = Yes GeometryMajorRadius = 2.0 End ;------------------------------------------------------------------------------ Object GLAVehicleQuadCannon ; *** ART Parameters *** SelectPortrait = SUQuadCannon_L ButtonImage = SUQuadCannon UpgradeCameo1 = Upgrade_GLAAPBullets UpgradeCameo2 = Upgrade_GLAJunkRepair ;UpgradeCameo3 = XXX ;UpgradeCameo4 = XXX ;UpgradeCameo5 = XXX Draw = W3DTankTruckDraw ModuleTag_01 OkToChangeModelColor = Yes ConditionState = NONE Model = UVQuadCann Turret = TURRET TurretPitch = TURRETEL WeaponFireFXBone = PRIMARY BarrelMS WeaponMuzzleFlash = PRIMARY BarrelFX WeaponRecoilBone = PRIMARY Barrel WeaponFireFXBone = SECONDARY BarrelMS WeaponMuzzleFlash = SECONDARY BarrelFX WeaponRecoilBone = SECONDARY Barrel ShowSubObject = TURRET HideSubObject = TURRETUP01 TURRETUP02 BarrelFX01 BarrelFX02 BarrelFX03 BarrelFX04 ; Since we are showing one of three turrets, we need to then hide the subobject muzzleflash End ConditionState = REALLYDAMAGED Model = UVQuadCann_D Turret = TURRET TurretPitch = TURRETEL WeaponFireFXBone = PRIMARY BarrelMS WeaponMuzzleFlash = PRIMARY BarrelFX WeaponRecoilBone = PRIMARY Barrel WeaponFireFXBone = SECONDARY BarrelMS WeaponMuzzleFlash = SECONDARY BarrelFX WeaponRecoilBone = SECONDARY Barrel ShowSubObject = TURRET HideSubObject = TURRETUP01 TURRETUP02 BarrelFX01 BarrelFX02 BarrelFX03 BarrelFX04 End ConditionState = RUBBLE Model = UVQuadCann_D Turret = TURRET TurretPitch = TURRETEL WeaponFireFXBone = PRIMARY BarrelMS WeaponMuzzleFlash = PRIMARY BarrelFX WeaponRecoilBone = PRIMARY Barrel WeaponFireFXBone = SECONDARY BarrelMS WeaponMuzzleFlash = SECONDARY BarrelFX WeaponRecoilBone = SECONDARY Barrel ShowSubObject = TURRET HideSubObject = TURRETUP01 TURRETUP02 BarrelFX01 BarrelFX02 BarrelFX03 BarrelFX04 End ConditionState = WEAPONSET_CRATEUPGRADE_ONE Model = UVQuadCann Turret = TURRETUP01 TurretPitch = TURRETEL01 WeaponFireFXBone = PRIMARY BarrelUp01MS WeaponMuzzleFlash = PRIMARY BarrelUp01FX WeaponRecoilBone = PRIMARY BarrelUp01 WeaponFireFXBone = SECONDARY BarrelUp01MS WeaponMuzzleFlash = SECONDARY BarrelUp01FX WeaponRecoilBone = SECONDARY BarrelUp01 ShowSubObject = TURRETUP01 HideSubObject = TURRET TURRETUP02 BarrelUp01FX01 BarrelUp01FX02 BarrelUp01FX03 BarrelUp01FX04 End ConditionState = WEAPONSET_CRATEUPGRADE_ONE REALLYDAMAGED Model = UVQuadCann Turret = TURRETUP01 TurretPitch = TURRETEL01 WeaponFireFXBone = PRIMARY BarrelUp01MS WeaponMuzzleFlash = PRIMARY BarrelUp01FX WeaponRecoilBone = PRIMARY BarrelUp01 WeaponFireFXBone = SECONDARY BarrelUp01MS WeaponMuzzleFlash = SECONDARY BarrelUp01FX WeaponRecoilBone = SECONDARY BarrelUp01 ShowSubObject = TURRETUP01 HideSubObject = TURRET TURRETUP02 BarrelUp01FX01 BarrelUp01FX02 BarrelUp01FX03 BarrelUp01FX04 End ConditionState = WEAPONSET_CRATEUPGRADE_ONE RUBBLE Model = UVQuadCann Turret = TURRETUP01 TurretPitch = TURRETEL01 WeaponFireFXBone = PRIMARY BarrelUp01MS WeaponMuzzleFlash = PRIMARY BarrelUp01FX WeaponRecoilBone = PRIMARY BarrelUp01 WeaponFireFXBone = SECONDARY BarrelUp01MS WeaponMuzzleFlash = SECONDARY BarrelUp01FX WeaponRecoilBone = SECONDARY BarrelUp01 ShowSubObject = TURRETUP01 HideSubObject = TURRET TURRETUP02 BarrelUp01FX01 BarrelUp01FX02 BarrelUp01FX03 BarrelUp01FX04 End ConditionState = WEAPONSET_CRATEUPGRADE_TWO Model = UVQuadCann Turret = TURRETUP02 TurretPitch = TURRETEL02 WeaponFireFXBone = PRIMARY BarrelUp02MS WeaponMuzzleFlash = PRIMARY BarrelUp02FX WeaponRecoilBone = PRIMARY BarrelUp02 WeaponFireFXBone = SECONDARY BarrelUp02MS WeaponMuzzleFlash = SECONDARY BarrelUp02FX WeaponRecoilBone = SECONDARY BarrelUp02 ShowSubObject = TURRETUP02 HideSubObject = TURRETUP01 TURRET BarrelUp02FX01 BarrelUp02FX02 BarrelUp02FX03 BarrelUp02FX04 End ConditionState = WEAPONSET_CRATEUPGRADE_TWO REALLYDAMAGED Model = UVQuadCann_D Turret = TURRETUP02 TurretPitch = TURRETEL02 WeaponFireFXBone = PRIMARY BarrelUp02MS WeaponMuzzleFlash = PRIMARY BarrelUp02FX WeaponRecoilBone = PRIMARY BarrelUp02 WeaponFireFXBone = SECONDARY BarrelUp02MS WeaponMuzzleFlash = SECONDARY BarrelUp02FX WeaponRecoilBone = SECONDARY BarrelUp02 ShowSubObject = TURRETUP02 HideSubObject = TURRETUP01 TURRET BarrelUp02FX01 BarrelUp02FX02 BarrelUp02FX03 BarrelUp02FX04 End ConditionState = WEAPONSET_CRATEUPGRADE_TWO RUBBLE Model = UVQuadCann_D Turret = TURRETUP02 TurretPitch = TURRETEL02 WeaponFireFXBone = PRIMARY BarrelUp02MS WeaponMuzzleFlash = PRIMARY BarrelUp02FX WeaponRecoilBone = PRIMARY BarrelUp02 WeaponFireFXBone = SECONDARY BarrelUp02MS WeaponMuzzleFlash = SECONDARY BarrelUp02FX WeaponRecoilBone = SECONDARY BarrelUp02 ShowSubObject = TURRETUP02 HideSubObject = TURRETUP01 TURRET BarrelUp02FX01 BarrelUp02FX02 BarrelUp02FX03 BarrelUp02FX04 End TrackMarks = EXTnkTrack.tga TreadAnimationRate = 2.0; amount of tread texture to move per second TreadDriveSpeedFraction = 0.3 ; fraction of locomotor speed below which treads stop moving. TreadPivotSpeedFraction = 0.6 ; fraction of locomotor speed below which we allow pivoting. Dust = RocketBuggyDust DirtSpray = RocketBuggyDirtSpray ; These parameters are only used if the model has a separate suspension, ; and the locomotor has HasSuspension = Yes. LeftFrontTireBone = Tire01 RightFrontTireBone = Tire02 TireRotationMultiplier = 0.2 ; this * speed = rotation. PowerslideRotationAddition = 0 ; This unit doesn't powerslide. End ; ***DESIGN parameters *** DisplayName = OBJECT:QuadCannon Side = GLA EditorSorting = VEHICLE TransportSlotCount = 3 ;how many "slots" we take in a transport (0 == not transportable) WeaponSet Conditions = None Weapon = PRIMARY QuadCannonGun Weapon = SECONDARY QuadCannonGunAir End WeaponSet Conditions = CRATEUPGRADE_ONE Weapon = PRIMARY QuadCannonGunUpgradeOne Weapon = SECONDARY QuadCannonGunUpgradeOneAir End WeaponSet Conditions = CRATEUPGRADE_TWO Weapon = PRIMARY QuadCannonGunUpgradeTwo Weapon = SECONDARY QuadCannonGunUpgradeTwoAir End ArmorSet Conditions = None Armor = AntiAirVehicle DamageFX = TankDamageFX End BuildCost = 700 BuildTime = 10.0 ;in seconds VisionRange = 150 ShroudClearingRange = 300 Prerequisites Object = GLAArmsDealer End CommandSet = GLAVehicleQuadCannon ExperienceValue = 50 50 100 150 ;Experience point value at each level ExperienceRequired = 0 100 150 300 ;Experience points needed to gain each level IsTrainable = Yes ;Can gain experience CrusherLevel = 2 ;What can I crush?: 1 = infantry, 2 = trees, 3 = vehicles CrushableLevel = 2 ;What am I?: 0 = for infantry, 1 = for trees, 2 = general vehicles ; *** AUDIO Parameters *** VoiceSelect = QuadCannonVoiceSelect VoiceMove = QuadCannonVoiceMove VoiceAttack = QuadCannonVoiceAttack VoiceAttackAir = QuadCannonVoiceAttackAir SoundMoveStart = QuadCannonMoveStart SoundMoveStartDamaged = QuadCannonMoveStart VoiceGuard = QuadCannonVoiceMove UnitSpecificSounds ; These have the syntax of SomeNameSomewhereInCode = SomeNameSomewhereInLookupINIs VoiceCreate = QuadCannonVoiceCreate TurretMoveStart = NoSound TurretMoveLoop = TurretMoveLoop ; Required for the W3DTruckDraw module TruckLandingSound = NoSound TruckPowerslideSound = NoSound VoiceSalvage = QuadCannonVoiceSalvage VoiceCrush = QuadCannonVoiceCrush VoiceEnter = QuadCannonVoiceMove End Behavior = AIUpdateInterface ModuleTag_20 AutoAcquireEnemiesWhenIdle = Yes MoodAttackCheckRate = 250 End ; *** ENGINEERING Parameters *** RadarPriority = UNIT KindOf = PRELOAD SELECTABLE CAN_ATTACK ATTACK_NEEDS_LINE_OF_SIGHT CAN_CAST_REFLECTIONS SALVAGER WEAPON_SALVAGER VEHICLE SCORE Body = ActiveBody ModuleTag_02 MaxHealth = 220.0 InitialHealth = 220.0 End Behavior = AIUpdateInterface ModuleTag_03 Turret TurretTurnRate = 360 TurretPitchRate = 360 AllowsPitch = Yes ControlledWeaponSlots = PRIMARY SECONDARY End AutoAcquireEnemiesWhenIdle = Yes End Locomotor = SET_NORMAL QuadCannonLocomotor Behavior = PhysicsBehavior ModuleTag_04 Mass = 40.0 End ; Catch fire, and explode death Behavior = SlowDeathBehavior ModuleTag_05 DeathTypes = ALL -CRUSHED -SPLATTED ProbabilityModifier = 411 DestructionDelay = 150 DestructionDelayVariance = 250 OCL = FINAL OCL_QuadCannonDeathEffect FX = FINAL FX_BattleMasterExplosionOneFinal End Behavior = AutoHealBehavior ModuleTag_06 HealingAmount = 2 HealingDelay = 1000 ; msec TriggeredBy = Upgrade_GLAJunkRepair End Behavior = FlammableUpdate ModuleTag_08 AflameDuration = 5000 ; If I catch fire, I'll burn for this long... AflameDamageAmount = 3 ; taking this much damage... AflameDamageDelay = 500 ; this often. End Behavior = TransitionDamageFX ModuleTag_09 ReallyDamagedParticleSystem1 = Bone:Smoke RandomBone:Yes PSys:SmallLightSmokeColumn ReallyDamagedFXList1 = Loc: X:0 Y:0 Z:0 FXList:FX_BattleMasterDamageTransition End ; A crushing defeat Behavior = FXListDie ModuleTag_10 DeathTypes = NONE +CRUSHED +SPLATTED DeathFX = FX_CarCrush End Behavior = CreateCrateDie ModuleTag_11 CrateData = SalvageCrateData ;CrateData = EliteTankCrateData ;CrateData = HeroicTankCrateData End Behavior = StealthDetectorUpdate ModuleTag_HijackerDetect DetectionRate = 500 DetectionRange = 75 CanDetectWhileGarrisoned = No CanDetectWhileContained = No ExtraRequiredKindOf = BOAT End Behavior = WeaponBonusUpgrade ModuleTag_12 TriggeredBy = Upgrade_GLAAPBullets End Behavior = DestroyDie ModuleTag_13 DeathTypes = NONE +CRUSHED +SPLATTED End Geometry = BOX GeometryMajorRadius = 18.0 GeometryMinorRadius = 7.0 GeometryHeight = 11.5 GeometryIsSmall = No Shadow = SHADOW_VOLUME ShadowSizeX = 45 ; minimum elevation angle above horizon. Used to limit shadow length End ;------------------------------------------------------------------------------ ;Also called Toxin Tractor && ToxinTractor Object GLAVehicleToxinTruck ; *** ART Parameters *** SelectPortrait = SUToxinTractor_L ButtonImage = SUToxinTractor UpgradeCameo1 = Upgrade_GLAAnthraxBeta UpgradeCameo2 = Upgrade_GLAJunkRepair ;UpgradeCameo3 = NONE ;UpgradeCameo4 = NONE ;UpgradeCameo5 = NONE Draw = W3DTruckDraw ModuleTag_01 OkToChangeModelColor = Yes DefaultConditionState Model = UVToxinTrk Turret = Turret TurretPitch = TurretEL WeaponFireFXBone = PRIMARY WeaponA WeaponLaunchBone = PRIMARY WeaponA WeaponFireFXBone = SECONDARY Spigot WeaponLaunchBone = SECONDARY Spigot End AliasConditionState WEAPONSET_PLAYER_UPGRADE ConditionState = USING_WEAPON_B Model = UVToxinTrk ParticleSysBone = none ToxinPuddleContinuous END ConditionState = USING_WEAPON_B WEAPONSET_PLAYER_UPGRADE Model = UVToxinTrk ParticleSysBone = none AnthraxPuddleContinuous END ConditionState = REALLYDAMAGED Model = UVToxinTrk_D End AliasConditionState REALLYDAMAGED WEAPONSET_PLAYER_UPGRADE ConditionState = USING_WEAPON_B REALLYDAMAGED Model = UVToxinTrk_D ParticleSysBone = none ToxinPuddleContinuous END ConditionState = USING_WEAPON_B REALLYDAMAGED WEAPONSET_PLAYER_UPGRADE Model = UVToxinTrk_D ParticleSysBone = none AnthraxPuddleContinuous END ConditionState = RUBBLE Model = UVToxinTrk_D End AliasConditionState WEAPONSET_PLAYER_UPGRADE RUBBLE TrackMarks = EXTireTrack.tga LeftFrontTireBone = Tire01 RightFrontTireBone = Tire02 LeftRearTireBone = Tire03 RightRearTireBone = Tire04 TireRotationMultiplier = 0.2 ; this * speed = rotation. PowerslideRotationAddition = 0 ; This vehicle doesn't powerslide. Dust = RocketBuggyDust DirtSpray = RocketBuggyDirtSpray End ; ***DESIGN parameters *** DisplayName = OBJECT:ToxinTruck Side = GLA EditorSorting = VEHICLE TransportSlotCount = 3 ;how many "slots" we take in a transport (0 == not transportable) WeaponSet Conditions = None Weapon = PRIMARY ToxinTruckGun Weapon = SECONDARY ToxinTruckSprayer AutoChooseSources = PRIMARY FROM_PLAYER FROM_SCRIPT FROM_AI AutoChooseSources = SECONDARY NONE ;Special attack only End WeaponSet Conditions = PLAYER_UPGRADE Weapon = PRIMARY ToxinTruckGunUpgraded Weapon = SECONDARY ToxinTruckSprayerUpgraded AutoChooseSources = PRIMARY FROM_PLAYER FROM_SCRIPT FROM_AI AutoChooseSources = SECONDARY NONE ;Special attack only End ArmorSet Conditions = None Armor = ToxinTruckArmor DamageFX = TruckDamageFX End BuildCost = 600 BuildTime = 5.0 ;in seconds VisionRange = 100 ShroudClearingRange = 200 Prerequisites Object = GLAArmsDealer End ExperienceValue = 50 50 100 150 ;Experience point value at each level ExperienceRequired = 0 100 150 300 ;Experience points needed to gain each level IsTrainable = Yes ;Can gain experience CrusherLevel = 2 ;What can I crush?: 1 = infantry, 2 = trees, 3 = vehicles CrushableLevel = 2 ;What am I?: 0 = for infantry, 1 = for trees, 2 = general vehicles CommandSet = GLAVehicleToxinTruckCommandSet ; *** AUDIO Parameters *** VoiceSelect = ToxinTractorVoiceSelect VoiceMove = ToxinTractorVoiceMove VoiceGuard = ToxinTractorVoiceMove VoiceAttack = ToxinTractorVoiceAttack SoundMoveStart = ToxinTractorMoveStart SoundMoveStartDamaged = ToxinTractorMoveStart SoundDie = ToxinTractorDie UnitSpecificSounds ; These have the syntax of SomeNameSomewhereInCode = SomeNameSomewhereInLookupINIs VoiceCreate = ToxinTractorVoiceCreate TurretMoveStart = NoSound TurretMoveLoop = TurretMoveLoop TruckLandingSound = NoSound TruckPowerslideSound = NoSound VoiceCrush = ToxinTractorVoiceCrush VoiceEnter = ToxinTractorVoiceMove VoicePoisonLocation = ToxinTractorVoiceAttackContam End ; *** ENGINEERING Parameters *** RadarPriority = UNIT KindOf = PRELOAD SELECTABLE CAN_ATTACK ATTACK_NEEDS_LINE_OF_SIGHT CAN_CAST_REFLECTIONS VEHICLE SALVAGER SCORE Body = ActiveBody ModuleTag_02 MaxHealth = 240.0 InitialHealth = 240.0 End Behavior = AIUpdateInterface ModuleTag_03 AutoAcquireEnemiesWhenIdle = Yes Turret TurretTurnRate = 180 TurretPitchRate = 180 AllowsPitch = Yes MinPhysicalPitch = -20 ; If allows pitch, the lowest I can dip down to shoot. defaults to 0 (horizontal) TurretFireAngleSweep = PRIMARY 8 TurretSweepSpeedModifier = PRIMARY 0.5 ; Sweep slower than you turn ControlledWeaponSlots = PRIMARY End End Locomotor = SET_NORMAL ToxinTruckLocomotor Behavior = PhysicsBehavior ModuleTag_04 Mass = 10.0 End Behavior = SlowDeathBehavior ModuleTag_05 DeathTypes = ALL -CRUSHED -SPLATTED ProbabilityModifier = 5 ModifierBonusPerOverkillPercent = 20% ; negative means less likely to pick this in the face of much damage, positive means more likely DestructionDelay = 0 DestructionDelayVariance = 200 OCL = INITIAL OCL_ToxinTractorDeathEffect ;FX = FINAL FX_ToxinTruckExplosionOneFinal End Behavior = InstantDeathBehavior ModuleTag_06 DeathTypes = NONE +CRUSHED +SPLATTED FX = FX_CarCrush OCL = OCL_CrusaderTank_CrushEffect End Behavior = CreateCrateDie ModuleTag_07 CrateData = SalvageCrateData ;CrateData = EliteTankCrateData ;CrateData = HeroicTankCrateData End Behavior = WeaponSetUpgrade ModuleTag_08 ; the Toxin Tractor gets this upgrade if we either buy the upgrade, ; or if it gets HEROIC status TriggeredBy = Upgrade_GLAAnthraxBeta Upgrade_Veterancy_HEROIC End Behavior = TransitionDamageFX ModuleTag_11 ReallyDamagedParticleSystem1 = Bone:Smoke RandomBone:Yes PSys:SmallLightSmokeColumn ReallyDamagedFXList1 = Loc: X:0 Y:0 Z:0 FXList:FX_BattleMasterDamageTransition End Behavior = AutoHealBehavior ModuleTag_12 HealingAmount = 2 HealingDelay = 1000 ; msec TriggeredBy = Upgrade_GLAJunkRepair End Behavior = FlammableUpdate ModuleTag_21 AflameDuration = 5000 ; If I catch fire, I'll burn for this long... AflameDamageAmount = 3 ; taking this much damage... AflameDamageDelay = 500 ; this often. End Behavior = FireOCLAfterWeaponCooldownUpdate ModuleTag_13 WeaponSlot = SECONDARY ConflictsWith = Upgrade_GLAAnthraxBeta Upgrade_Veterancy_HEROIC OCL = OCL_PoisonFieldMedium MinShotsToCreateOCL = 4 OCLLifetimePerSecond = 10000 OCLLifetimeMaxCap = 180000 End Behavior = FireOCLAfterWeaponCooldownUpdate ModuleTag_14 WeaponSlot = SECONDARY TriggeredBy = Upgrade_GLAAnthraxBeta Upgrade_Veterancy_HEROIC OCL = OCL_PoisonFieldUpgradedMedium MinShotsToCreateOCL = 4 OCLLifetimePerSecond = 10000 OCLLifetimeMaxCap = 180000 End Behavior = FireWeaponWhenDeadBehavior ModuleTag_15 ;These two make the right damage field at death DeathWeapon = ToxinTractorExplosionEffect StartsActive = Yes ConflictsWith = Upgrade_GLAAnthraxBeta End Behavior = FireWeaponWhenDeadBehavior ModuleTag_16 DeathWeapon = ToxinTractorExplosionEffectUpgraded StartsActive = No TriggeredBy = Upgrade_GLAAnthraxBeta End Behavior = StealthDetectorUpdate ModuleTag_HijackerDetect DetectionRate = 500 DetectionRange = 75 CanDetectWhileGarrisoned = No CanDetectWhileContained = No ExtraRequiredKindOf = BOAT End Geometry = BOX GeometryMajorRadius = 13.0 GeometryMinorRadius = 9.0 GeometryHeight = 10.0 ; set to make the projectile stream look right GeometryIsSmall = Yes Shadow = SHADOW_VOLUME ShadowSizeX = 45 ; minimum elevation angle above horizon. Used to limit shadow length End ;------------------------------------------------------------------------------ Object ToxinTruckStreamProjectile ; Explanation - Particles can't do damage, so this is a fast shooting low ; damage invisible missile launcher with a toxin trail for exhaust ; *** ART Parameters *** Draw = W3DModelDraw ModuleTag_01 DefaultConditionState Model = NONE End End ; Must have a draw module to be allowed to draw detonation FX ; ***DESIGN parameters *** EditorSorting = SYSTEM VisionRange = 0.0 ArmorSet Conditions = None Armor = ProjectileArmor DamageFX = None End ; *** ENGINEERING Parameters *** KindOf = PROJECTILE Body = ActiveBody ModuleTag_02 MaxHealth = 100.0 InitialHealth = 100.0 End Behavior = DestroyDie ModuleTag_03 ;nothing End Behavior = PhysicsBehavior ModuleTag_04 Mass = 1 AllowCollideForce = No ; toxins collide, but never apply forces when they do so End Behavior = MissileAIUpdate ModuleTag_05 TryToFollowTarget = No FuelLifetime = 500 InitialVelocity = 120 ; in dist/sec IgnitionDelay = 0 DistanceToTravelBeforeTurning = 2 GarrisonHitKillRequiredKindOf = INFANTRY GarrisonHitKillForbiddenKindOf = NONE GarrisonHitKillCount = 2 GarrisonHitKillFX = FX_ToxinStreamGarrisonBuildingHit End Locomotor = SET_NORMAL ToxinTruckStreamLocomotor Behavior = BoneFXUpdate ModuleTag_06 PristineParticleSystem1 = bone:NULL OnlyOnce:Yes 0 0 PSys:ToxinTrail01 ; Covers gap at beginning of line End Behavior = BoneFXDamage ModuleTag_07 ;nothing End Geometry = Sphere GeometryIsSmall = Yes GeometryMajorRadius = 2.0 End ;------------------------------------------------------------------------------ Object ToxinTruckStreamProjectileUpgraded ; Explanation - Particles can't do damage, so this is a fast shooting low ; damage invisible missile launcher with a toxin trail for exhaust ; *** ART Parameters *** Draw = W3DModelDraw ModuleTag_01 DefaultConditionState Model = NONE End End ; Must have a draw module to be allowed to draw detonation FX ; ***DESIGN parameters *** EditorSorting = SYSTEM VisionRange = 0.0 ArmorSet Conditions = None Armor = ProjectileArmor DamageFX = None End ; *** ENGINEERING Parameters *** KindOf = PROJECTILE Body = ActiveBody ModuleTag_02 MaxHealth = 100.0 InitialHealth = 100.0 End Behavior = DestroyDie ModuleTag_03 ;nothing End Behavior = PhysicsBehavior ModuleTag_04 Mass = 1 AllowCollideForce = No ; flames collide, but never apply forces when they do so End Behavior = MissileAIUpdate ModuleTag_05 TryToFollowTarget = No FuelLifetime = 500 InitialVelocity = 120 ; in dist/sec IgnitionDelay = 0 DistanceToTravelBeforeTurning = 2 GarrisonHitKillRequiredKindOf = INFANTRY GarrisonHitKillForbiddenKindOf = NONE GarrisonHitKillCount = 2 GarrisonHitKillFX = FX_ToxinStreamUpgradedGarrisonBuildingHit End Locomotor = SET_NORMAL ToxinTruckStreamLocomotor Behavior = BoneFXUpdate ModuleTag_06 PristineParticleSystem1 = bone:NULL OnlyOnce:Yes 0 0 PSys:AnthraxTrail01 ; Covers gap at beginning of line End Behavior = BoneFXDamage ModuleTag_07 ;nothing End Geometry = Sphere GeometryIsSmall = Yes GeometryMajorRadius = 2.0 End ;------------------------------------------------------------------------------ Object ToxinTruckProjectileStream ; *** ART Parameters *** Draw = W3DProjectileStreamDraw ModuleTag_01 Texture = EXToxinStream.tga Width = 1.5 TileFactor = 2.0 ; put the texture on the line segment this many times ScrollRate = 6.0; scroll the texture offset this fast MaxSegments = 14 ; only play the first X if there are a ton of them. 0 means play all End ; *** ENGINEERING Parameters *** KindOf = INERT Behavior = ProjectileStreamUpdate ModuleTag_02 ;nothing End End ;------------------------------------------------------------------------------ Object ToxinTruckProjectileStreamUpgraded ; *** ART Parameters *** Draw = W3DProjectileStreamDraw ModuleTag_01 Texture = EXAnthraxStream.tga Width = 1.5 TileFactor = 2.0 ; put the texture on the line segment this many times ScrollRate = 6.0; scroll the texture offset this fast MaxSegments = 14 ; only play the first X if there are a ton of them. 0 means play all End ; *** ENGINEERING Parameters *** KindOf = INERT Behavior = ProjectileStreamUpdate ModuleTag_02 ;nothing End End ;------------------------------------------------------------------------------ Object ToxinTruckSprayProjectile ; Explanation - Particles can't do damage, so this is a fast shooting low ; damage invisible missile launcher with a flame trail for exhaust ; *** ART Parameters *** Draw = W3DModelDraw ModuleTag_01 DefaultConditionState Model = NONE End End ; Must have a draw module to be allowed to draw detonation FX ; ***DESIGN parameters *** EditorSorting = SYSTEM VisionRange = 0.0 ArmorSet Conditions = None Armor = ProjectileArmor DamageFX = None End ; *** ENGINEERING Parameters *** KindOf = PROJECTILE Body = ActiveBody ModuleTag_02 MaxHealth = 100.0 InitialHealth = 100.0 End Behavior = DestroyDie ModuleTag_03 ;nothing End Behavior = PhysicsBehavior ModuleTag_04 Mass = 50 AllowCollideForce = No ; flames collide, but never apply forces when they do so End Behavior = MissileAIUpdate ModuleTag_05 TryToFollowTarget = No FuelLifetime = 1 InitialVelocity = 1 ; in dist/sec IgnitionDelay = 0 DistanceToTravelBeforeTurning = 0 DistanceToTargetForLock = 0 ; If it gets within 100 of the target, it kills the target. End Locomotor = SET_NORMAL ToxinTruckDribbleLocomotor Geometry = Sphere GeometryIsSmall = Yes GeometryMajorRadius = 2.0 End ;------------------------------------------------------------------------------ Object CleanupHazardProjectileStream ; *** ART Parameters *** Draw = W3DProjectileStreamDraw ModuleTag_01 Texture = EXCleanupStream.tga Width = 1.5 TileFactor = 2.0 ; put the texture on the line segment this many times ScrollRate = 6.0; scroll the texture offset this fast MaxSegments = 14 ; only play the first X if there are a ton of them. 0 means play all End ; *** ENGINEERING Parameters *** KindOf = INERT Behavior = ProjectileStreamUpdate ModuleTag_02 ;nothing End End ;------------------------------------------------------------------------------ Object CleanupStreamProjectile ; Explanation - Particles can't do damage, so this is a fast shooting low ; damage invisible missile launcher with a flame trail for exhaust ; *** ART Parameters *** Draw = W3DModelDraw ModuleTag_01 DefaultConditionState Model = NONE End End ; Must have a draw module to be allowed to draw detonation FX ; ***DESIGN parameters *** EditorSorting = SYSTEM VisionRange = 0.0 ArmorSet Conditions = None Armor = ProjectileArmor DamageFX = None End ; *** ENGINEERING Parameters *** KindOf = PROJECTILE Body = ActiveBody ModuleTag_02 MaxHealth = 100.0 InitialHealth = 100.0 End Behavior = DestroyDie ModuleTag_03 ;nothing End Behavior = PhysicsBehavior ModuleTag_04 Mass = 1 AllowCollideForce = No ; flames collide, but never apply forces when they do so End Behavior = MissileAIUpdate ModuleTag_05 TryToFollowTarget = No FuelLifetime = 600 InitialVelocity = 120 ; in dist/sec IgnitionDelay = 0 DistanceToTravelBeforeTurning = 2 End Locomotor = SET_NORMAL ToxinTruckStreamLocomotor Behavior = BoneFXUpdate ModuleTag_06 PristineParticleSystem1 = bone:NULL OnlyOnce:Yes 0 0 PSys:CleanupTrail01 ; Covers gap at beginning of line End Behavior = BoneFXDamage ModuleTag_07 ;nothing End Geometry = Sphere GeometryIsSmall = Yes GeometryMajorRadius = 2.0 End ;------------------------------------------------------------------------------ Object BioHazardCleanupStreamProjectile ; Explanation - Particles can't do damage, so this is a fast shooting low ; damage invisible missile launcher with a flame trail for exhaust ; *** ART Parameters *** Draw = W3DModelDraw ModuleTag_01 DefaultConditionState Model = NONE End End ; Must have a draw module to be allowed to draw detonation FX ; ***DESIGN parameters *** EditorSorting = SYSTEM VisionRange = 0.0 ArmorSet Conditions = None Armor = ProjectileArmor DamageFX = None End ; *** ENGINEERING Parameters *** KindOf = PROJECTILE Body = ActiveBody ModuleTag_02 MaxHealth = 100.0 InitialHealth = 100.0 End Behavior = DestroyDie ModuleTag_03 ;nothing End Behavior = PhysicsBehavior ModuleTag_04 Mass = 1 AllowCollideForce = No ; flames collide, but never apply forces when they do so End Behavior = MissileAIUpdate ModuleTag_05 TryToFollowTarget = No FuelLifetime = 500 InitialVelocity = 120 ; in dist/sec IgnitionDelay = 0 DistanceToTravelBeforeTurning = 2 ;GarrisonHitKillRequiredKindOf = INFANTRY ;GarrisonHitKillForbiddenKindOf = NONE ;GarrisonHitKillCount = 2 ;GarrisonHitKillFX = FX_ToxinStreamGarrisonBuildingHit End Locomotor = SET_NORMAL FasterToxinTruckStreamLocomotor Behavior = BoneFXUpdate ModuleTag_06 PristineParticleSystem1 = bone:NULL OnlyOnce:Yes 0 0 PSys:CleanupTrail01 ; Covers gap at beginning of line End Behavior = BoneFXDamage ModuleTag_07 ;nothing End Geometry = Sphere GeometryIsSmall = Yes GeometryMajorRadius = 2.0 End ;------------------------------------------------------------------------------ Object GLAVehicleBombTruck ; *** ART Parameters *** SelectPortrait = SUBombTruck_L ButtonImage = SUBombTruck UpgradeCameo1 = Upgrade_GLABombTruckHighExplosiveBomb UpgradeCameo2 = Upgrade_GLABombTruckBioBomb UpgradeCameo3 = Upgrade_GLABombTruckNukeWarhead UpgradeCameo4 = Upgrade_GLAJunkRepair ;UpgradeCameo5 = NONE Draw = W3DTruckDraw ModuleTag_01 OkToChangeModelColor = Yes TrackMarks = EXTireTrack.tga DefaultConditionState Model = UVBMBTRUK Animation = UVBMBTRUK.UVBMBTRUK AnimationMode = LOOP ;Display the default bombload -- and the upgrades will handle the rest! HideSubObject = Bombload02 Bombload03 Bombload04 End ConditionState = REALLYDAMAGED Model = UVBMBTRUK_D Animation = UVBMBTRUK_D.UVBMBTRUK_D AnimationMode = LOOP End ConditionState = RUBBLE Model = UVBMBTRUK_D End LeftFrontTireBone = Tire01 RightFrontTireBone = Tire02 MidLeftFrontTireBone = Tire03 MidRightFrontTireBone = Tire04 LeftRearTireBone = Tire05 RightRearTireBone = Tire06 TireRotationMultiplier = 0.2 ; this * speed = rotation. Dust = RocketBuggyDust DirtSpray = RocketBuggyDirtSpray PowerslideSpray = RocketBuggyDirtPowerSlide End ; ***DESIGN parameters *** DisplayName = OBJECT:BombTruck Side = GLA EditorSorting = VEHICLE TransportSlotCount = 3 ;how many "slots" we take in a transport (0 == not transportable) WeaponSet Conditions = None Weapon = PRIMARY SuicideWeapon End ArmorSet Conditions = None Armor = TruckArmor DamageFX = TruckDamageFX End BuildCost = 1200 BuildTime = 15.0 ;in seconds VisionRange = 150 ; Used in attack move targeting ShroudClearingRange = 200 Prerequisites Object = GLAArmsDealer Object = GLAPalace End CrusherLevel = 2 ;What can I crush?: 1 = infantry, 2 = trees, 3 = vehicles CrushableLevel = 2 ;What am I?: 0 = for infantry, 1 = for trees, 2 = general vehicles CommandSet = GLAVehicleBombTruckCommandSet ; *** AUDIO Parameters *** VoiceSelect = BombTruckVoiceSelect VoiceMove = BombTruckVoiceMove VoiceGuard = BombTruckVoiceMove VoiceAttack = BombTruckVoiceAttack SoundMoveStart = BombTruckMoveStart SoundMoveStartDamaged = BombTruckMoveStart UnitSpecificSounds ; These have the syntax of SomeNameSomewhereInCode = SomeNameSomewhereInLookupINIs VoiceCreate = BombTruckVoiceCreate TurretMoveStart = NoSound TurretMoveLoop = NoSound TruckLandingSound = RocketBuggyLand TruckPowerslideSound = RocketBuggyPowerslide DisguiseStarted = BombTruckDisguiseStarted DisguiseRevealedSuccess = BombTruckDisguiseRevealedSuccess DisguiseRevealedFailure = BombTruckDisguiseRevealedFailure VoiceEnter = BombTruckVoiceMove End ; *** ENGINEERING Parameters *** RadarPriority = UNIT KindOf = PRELOAD SELECTABLE CAN_ATTACK CAN_CAST_REFLECTIONS VEHICLE SALVAGER SCORE DISGUISER Body = ActiveBody ModuleTag_02 MaxHealth = 220.0 InitialHealth = 220.0 End ExperienceValue = 50 50 50 50 ; Experience point value at each level Behavior = VeterancyGainCreate ModuleTag_03 StartingLevel = VETERAN End Behavior = AIUpdateInterface ModuleTag_04 AutoAcquireEnemiesWhenIdle = No ATTACK_BUILDINGS End Locomotor = SET_NORMAL BombTruckLocomotor Behavior = PhysicsBehavior ModuleTag_05 Mass = 40.0 End Behavior = AutoHealBehavior ModuleTag_06 HealingAmount = 2 HealingDelay = 1000 ; msec TriggeredBy = Upgrade_GLAJunkRepair End Behavior = ProductionUpdate ModuleTag_07 MaxQueueEntries = 1 End Behavior = CommandSetUpgrade ModuleTag_upgradedisable CommandSet = GLAVehicleBombTruckNukeCommandSet TriggeredBy = Upgrade_GLABombTruckNukeWarhead ConflictsWith = Upgrade_GLABombTruckHighExplosiveBomb Upgrade_GLABombTruckBioBomb End Behavior = CommandSetUpgrade ModuleTag_upgradedisable2 CommandSet = GLAVehicleBombTruckHECommandSet TriggeredBy = Upgrade_GLABombTruckHighExplosiveBomb ConflictsWith = Upgrade_GLABombTruckNukeWarhead Upgrade_GLABombTruckBioBomb End Behavior = CommandSetUpgrade ModuleTag_upgradedisable3 CommandSet = GLAVehicleBombTruckBioCommandSet TriggeredBy = Upgrade_GLABombTruckBioBomb ConflictsWith = Upgrade_GLABombTruckHighExplosiveBomb Upgrade_GLABombTruckNukeWarhead End Behavior = SlowDeathBehavior ModuleTag_08 DeathTypes = ALL -CRUSHED -SPLATTED ProbabilityModifier = 5 ModifierBonusPerOverkillPercent = 20% ; negative means less likely to pick this in the face of much damage, positive means more likely DestructionDelay = 0 DestructionDelayVariance = 200 FX = FINAL FX_BuggyNewDeathExplosion OCL = FINAL OCL_BombTruckDeathEffect End ;Behavior = DestroyDie ;nothing ;End ;************************************************************************************************ ;* WHICH BOMB DO WE USE??? ;* We have 2 damage possibilities -- (normal OR high explosive) ;* So part 1 is inflicting the damage itself without creating effects ;* The complicated part is the part where we have 6 possible effect explosions based on ;* all the possible upgrade combinations. Note that bio weapons don't inflict damage through ;* the explosion. ;* ;* DAMAGE COMBINATIONS (NO EFFECTS): ;* 1) Normal (doesn't have high explosive upgrade, doesn't have nuke upgrade) ;* 2) High explosive (has high-explosive upgrade, doesn't have nuke upgrade) ;* ;* EFFECT COMBINATIONS (NO DAMAGE): ;* 1) Normal (no upgrades) ;* 2) Bio (bio-bomb upgrade) ;* 3) Anthrax (bio-bomb and anthrax upgrade) ;* 4) High explosive (high explosive upgrade) ;* 5) High explosive bio (high explosive and bio-bomb upgrade) ;* 6) High explosive anthrax (high explosive, bio-bomb, and anthrax upgrades) ;* 7) Nuke Warhead ;************************************************************************************************ ;************************************************************************************************ ;* EXCLUSIVE DAMAGE POSSIBILITY 1 -- Normal explosion (can't have high-explosive upgrade/nuke upgrade) ;************************************************************************************************ Behavior = FireWeaponWhenDeadBehavior ModuleTag_09 DeathWeapon = BombTruckDefaultBombDamage StartsActive = Yes ; turned on by upgrade ConflictsWith = Upgrade_GLABombTruckHighExplosiveBomb Upgrade_GLABombTruckNukeWarhead End ;************************************************************************************************ ;* EXCLUSIVE DAMAGE POSSIBILITY 2 -- High explosion (always plays if it has high-explosive upgrade) ;* Can't have: Nuke upgrade ;************************************************************************************************ Behavior = FireWeaponWhenDeadBehavior ModuleTag_10 DeathWeapon = BombTruckHighExplosionBombDamage StartsActive = No ; turned on by upgrade TriggeredBy = Upgrade_GLABombTruckHighExplosiveBomb ConflictsWith = Upgrade_GLABombTruckNukeWarhead End ;************************************************************************************************ ;* EXCLUSIVE EFFECT COMBINATION 1 - Regular explosion (no upgrades) ;************************************************************************************************ Behavior = FireWeaponWhenDeadBehavior ModuleTag_11 DeathWeapon = BombTruckDefaultBombEffect StartsActive = Yes ; turned on by upgrade ConflictsWith = Upgrade_GLABombTruckHighExplosiveBomb Upgrade_GLABombTruckBioBomb Upgrade_GLABombTruckNukeWarhead End ;************************************************************************************************ ;* EXCLUSIVE EFFECT COMBINATION 2 - Bio explosion ;* Requires: Bio upgrade ;* Can't have: Anthrax upgrade, high explosive upgrade ;************************************************************************************************ Behavior = FireWeaponWhenDeadBehavior ModuleTag_12 DeathWeapon = BombTruckBioBombEffect StartsActive = No ; turned on by upgrade TriggeredBy = Upgrade_GLABombTruckBioBomb ConflictsWith = Upgrade_GLABombTruckHighExplosiveBomb Upgrade_GLAAnthraxBeta Upgrade_GLABombTruckNukeWarhead End ;************************************************************************************************ ;* EXCLUSIVE EFFECT COMBINATION 3 - Anthrax explosion ;* Requires: Bio upgrade and anthrax upgrade ;* Can't have: High explosive upgrade ;************************************************************************************************ Behavior = FireWeaponWhenDeadBehavior ModuleTag_13 DeathWeapon = BombTruckAnthraxBombEffect StartsActive = No ; turned on by upgrade TriggeredBy = Upgrade_GLABombTruckBioBomb Upgrade_GLAAnthraxBeta ConflictsWith = Upgrade_GLABombTruckHighExplosiveBomb Upgrade_GLABombTruckNukeWarhead RequiresAllTriggers = Yes End ;************************************************************************************************ ;* EXCLUSIVE EFFECT COMBINATION 4 - High explosion ;* Requires: High explosive upgrade ;* Can't have: Bio upgrade and anthrax upgrade ;************************************************************************************************ Behavior = FireWeaponWhenDeadBehavior ModuleTag_14 DeathWeapon = BombTruckHighExplosiveBombEffect StartsActive = No ; turned on by upgrade TriggeredBy = Upgrade_GLABombTruckHighExplosiveBomb ConflictsWith = Upgrade_GLABombTruckBioBomb Upgrade_GLABombTruckNukeWarhead End ;************************************************************************************************ ;* EXCLUSIVE EFFECT COMBINATION 5 - High explosive bio explosion ;* Requires: High explosive upgrade and bio upgrade ;* Can't have: Anthrax upgrade ;************************************************************************************************ Behavior = FireWeaponWhenDeadBehavior ModuleTag_15 DeathWeapon = BombTruckHighExplosiveBioBombEffect StartsActive = No ; turned on by upgrade TriggeredBy = Upgrade_GLABombTruckHighExplosiveBomb Upgrade_GLABombTruckBioBomb ConflictsWith = Upgrade_GLAAnthraxBeta Upgrade_GLABombTruckNukeWarhead RequiresAllTriggers = Yes End ;************************************************************************************************ ;* EXCLUSIVE EFFECT COMBINATION 6 - High explosive Anthrax explosion ;* Requires: High explosive, Bio, and anthrax upgrade ;************************************************************************************************ Behavior = FireWeaponWhenDeadBehavior ModuleTag_16 DeathWeapon = BombTruckHighExplosiveAnthraxBombEffect StartsActive = No ; turned on by upgrade TriggeredBy = Upgrade_GLABombTruckBioBomb Upgrade_GLABombTruckHighExplosiveBomb Upgrade_GLAAnthraxBeta ConflictsWith = Upgrade_GLABombTruckNukeWarhead RequiresAllTriggers = Yes End ;************************************************************************************************ ;* EXCLUSIVE DAMAGE/EFFECT COMBINATION 7 - Nuke warhead ;* Requires: Nuke warhead upgrade ;* Can't have: bio upgrade and high explosives upgrade ;************************************************************************************************ Behavior = FireWeaponWhenDeadBehavior ModuleTag_nukeup DeathWeapon = BombTruckNukeWarhead StartsActive = No ; turned on by upgrade TriggeredBy = Upgrade_GLABombTruckNukeWarhead ;ConflictsWith = Upgrade_GLABombTruckHighExplosiveBomb Upgrade_GLABombTruckBioBomb End ;------------------------------------------------------------------- ; Wheeeee! Now we get to display the payload based on upgrades!!! ;------------------------------------------------------------------- Behavior = SubObjectsUpgrade ModuleTag_17 ;*** Bio bomb load *** TriggeredBy = Upgrade_GLABombTruckBioBomb ConflictsWith = Upgrade_GLABombTruckHighExplosiveBomb ShowSubObjects = Bombload02 HideSubObjects = Bombload01 Bombload03 Bombload04 End Behavior = SubObjectsUpgrade ModuleTag_18 ;*** High-explosive bomb load *** TriggeredBy = Upgrade_GLABombTruckHighExplosiveBomb ConflictsWith = Upgrade_GLABombTruckBioBomb ShowSubObjects = Bombload03 HideSubObjects = Bombload01 Bombload02 Bombload04 End Behavior = SubObjectsUpgrade ModuleTag_19 ;*** High-explosive bio bomb load *** TriggeredBy = Upgrade_GLABombTruckBioBomb Upgrade_GLABombTruckHighExplosiveBomb ShowSubObjects = Bombload04 HideSubObjects = Bombload01 Bombload02 Bombload03 RequiresAllTriggers = Yes End Behavior = SubObjectsUpgrade ModuleTag_nukeupimage ;*** nuke warhead load *** TriggeredBy = Upgrade_GLABombTruckNukeWarhead ConflictsWith = Upgrade_GLABombTruckBioBomb Upgrade_GLABombTruckHighExplosiveBomb ShowSubObjects = Bombload04 HideSubObjects = Bombload01 Bombload02 Bombload03 ;RequiresAllTriggers = Yes End ;------------------------------------------------------------------- Behavior = SpecialAbility ModuleTag_20 SpecialPowerTemplate = SpecialAbilityDisguiseAsVehicle UpdateModuleStartsAttack = Yes InitiateSound = BombTruckVoiceDisguise End Behavior = SpecialAbilityUpdate ModuleTag_21 SpecialPowerTemplate = SpecialAbilityDisguiseAsVehicle StartAbilityRange = 1000000.0 ApproachRequiresLOS = No End Behavior = StealthUpdate ModuleTag_22 StealthDelay = 1 DisguisesAsTeam = Yes RevealDistanceFromTarget = 100.0f OrderIdleEnemiesToAttackMeUponReveal = Yes DisguiseFX = FX_BombTruckDisguise DisguiseRevealFX = FX_BombTruckDisguiseReveal InnateStealth = Yes DisguiseTransitionTime = 2000 DisguiseRevealTransitionTime = 1000 End ; A crushing defeat Behavior = FXListDie ModuleTag_23 DeathTypes = NONE +CRUSHED +SPLATTED DeathFX = FX_CarCrush End Behavior = CreateObjectDie ModuleTag_24 DeathTypes = NONE +CRUSHED +SPLATTED CreationList = OCL_CrusaderTank_CrushEffect End Behavior = CreateCrateDie ModuleTag_25 CrateData = SalvageCrateData ;CrateData = EliteTankCrateData ;CrateData = HeroicTankCrateData End Behavior = StealthDetectorUpdate ModuleTag_HijackerDetect DetectionRate = 500 DetectionRange = 75 CanDetectWhileGarrisoned = No CanDetectWhileContained = No ExtraRequiredKindOf = BOAT End Behavior = TransitionDamageFX ModuleTag_26 ReallyDamagedParticleSystem1 = Bone:Smoke RandomBone:Yes PSys:SmallLightSmokeColumn ReallyDamagedFXList1 = Loc: X:0 Y:0 Z:0 FXList:FX_BattleMasterDamageTransition End Behavior = FlammableUpdate ModuleTag_28 AflameDuration = 5000 ; If I catch fire, I'll burn for this long... AflameDamageAmount = 3 ; taking this much damage... AflameDamageDelay = 500 ; this often. End Behavior = DestroyDie ModuleTag_29 DeathTypes = NONE +CRUSHED +SPLATTED End Geometry = BOX GeometryMajorRadius = 19.0 GeometryMinorRadius = 8.0 GeometryHeight = 11.5 GeometryIsSmall = No Shadow = SHADOW_VOLUME ShadowSizeX = 45 ; minimum elevation angle above horizon. Used to limit shadow length End ;------------------------------------------------------------------------------ Object GLAVehicleScudLauncher ; *** ART Parameters *** SelectPortrait = SUScudLauncher_L ButtonImage = SUScudLauncher UpgradeCameo1 = Upgrade_GLAJunkRepair UpgradeCameo2 = Upgrade_GLAAnthraxBeta ;UpgradeCameo3 = NONE ;UpgradeCameo4 = NONE ;UpgradeCameo5 = NONE Draw = W3DTruckDraw ModuleTag_01 OkToChangeModelColor = Yes ProjectileBoneFeedbackEnabledSlots = PRIMARY SECONDARY ; WeaponLaunchBone will be shown/hidden, not just used for firing offset DefaultConditionState Model = UVScudLchr Turret = TURRET TurretPitch = TURRETEL WeaponLaunchBone = PRIMARY WeaponA WeaponLaunchBone = SECONDARY WeaponA WeaponHideShowBone = PRIMARY MISSILE WeaponHideShowBone = SECONDARY MISSILE End ConditionState = REALLYDAMAGED Model = UVScudLchr_d End AliasConditionState = RUBBLE TrackMarks = EXTireTrack.tga Dust = ScudLauncherDust DirtSpray = RocketBuggyDirtSpray PowerslideSpray = RocketBuggyDirtPowerSlide ; These parameters are only used if the model has a separate suspension, ; and the locomotor has HasSuspension = Yes. LeftFrontTireBone = Tire01 RightFrontTireBone = Tire05 LeftRearTireBone = Tire04 RightRearTireBone = Tire08 MidLeftFrontTireBone = Tire02 MidRightFrontTireBone = Tire06 MidLeftRearTireBone = Tire03 MidRightRearTireBone = Tire07 TireRotationMultiplier = 0.2 ; this * speed = rotation. ;PowerslideRotationAddition = 0.0 ; This speed is added to the rotation speed when powersliding. End ; ***DESIGN parameters *** DisplayName = OBJECT:ScudLauncher Side = GLA EditorSorting = VEHICLE TransportSlotCount = 3 ;how many "slots" we take in a transport (0 == not transportable) WeaponSet Conditions = None Weapon = PRIMARY SCUDLauncherGunExplosive Weapon = SECONDARY SCUDLauncherGunToxin AutoChooseSources = PRIMARY FROM_SCRIPT FROM_AI AutoChooseSources = SECONDARY FROM_SCRIPT FROM_AI PreferredAgainst = SECONDARY INFANTRY ShareWeaponReloadTime = Yes End WeaponSet Conditions = PLAYER_UPGRADE Weapon = PRIMARY SCUDLauncherGunExplosive Weapon = SECONDARY SCUDLauncherGunAnthrax AutoChooseSources = PRIMARY FROM_SCRIPT FROM_AI AutoChooseSources = SECONDARY FROM_SCRIPT FROM_AI PreferredAgainst = SECONDARY INFANTRY ShareWeaponReloadTime = Yes End ArmorSet Conditions = None Armor = TruckArmor DamageFX = TankDamageFX End BuildCost = 1200 BuildTime = 15.0 ;20.0 ;in seconds VisionRange = 180 ShroudClearingRange = 300 Prerequisites Object = GLAArmsDealer Object = GLAPalace Science = SCIENCE_ScudLauncher End ExperienceValue = 50 50 100 150 ;Experience point value at each level ExperienceRequired = 0 100 200 400 ;Experience points needed to gain each level IsTrainable = Yes ;Can gain experience CrusherLevel = 2 ;What can I crush?: 1 = infantry, 2 = trees, 3 = vehicles CrushableLevel = 2 ;What am I?: 0 = for infantry, 1 = for trees, 2 = general vehicles CommandSet = GLAVehicleScudLauncherCommandSet ; *** AUDIO Parameters *** VoiceSelect = ScudLauncherVoiceSelect VoiceMove = ScudLauncherVoiceMove VoiceGuard = ScudLauncherVoiceMove VoiceAttack = ScudLauncherVoiceAttack SoundMoveStart = ScudLauncherMoveStart SoundMoveStartDamaged = ScudLauncherMoveStart VoiceFear = ScudLauncherVoiceFear UnitSpecificSounds ; These have the syntax of SomeNameSomewhereInCode = SomeNameSomewhereInLookupINIs VoiceCreate = ScudLauncherVoiceCreate TurretMoveStart = NoSound TurretMoveLoop = TurretMoveLoop TruckLandingSound = NoSound TruckPowerslideSound = NoSound VoiceCrush = ScudLauncherVoiceCrush VoiceEnter = ScudLauncherVoiceMove VoicePrimaryWeaponMode = ScudLauncherVoiceModeHiEx VoiceSecondaryWeaponMode = ScudLauncherVoiceModeAnthrax End ; *** ENGINEERING Parameters *** RadarPriority = UNIT KindOf = PRELOAD SELECTABLE CAN_ATTACK DONT_AUTO_CRUSH_INFANTRY CAN_CAST_REFLECTIONS VEHICLE SALVAGER SCORE Body = ActiveBody ModuleTag_02 MaxHealth = 180.0 InitialHealth = 180.0 End Behavior = AIUpdateInterface ModuleTag_03 Turret TurretTurnRate = 60 ; turn rate, in degrees per sec TurretPitchRate = 60 FirePitch = 90 ; Instead of aiming pitchwise at the target, it will aim here AllowsPitch = Yes ControlledWeaponSlots = PRIMARY SECONDARY End AutoAcquireEnemiesWhenIdle = No NotWhileAttacking End Behavior = CommandButtonHuntUpdate ModuleTag_04 ; allows use of command button hunt script with this unit. End Locomotor = SET_NORMAL ScudLauncherLocomotor Behavior = PhysicsBehavior ModuleTag_05 Mass = 40.0 End Behavior = AutoHealBehavior ModuleTag_06 HealingAmount = 2 HealingDelay = 1000 ; msec TriggeredBy = Upgrade_GLAJunkRepair End Behavior = TransitionDamageFX ModuleTag_08 ReallyDamagedParticleSystem1 = Bone:Smoke RandomBone:Yes PSys:SmokeSmallContinuous01 ReallyDamagedFXList1 = Loc: X:0 Y:0 Z:0 FXList:FX_ScudLauncherDamageTransition End ; Catch fire, and explode death Behavior = SlowDeathBehavior ModuleTag_09 DeathTypes = ALL -CRUSHED -SPLATTED ProbabilityModifier = 50 DestructionDelay = 2000 DestructionDelayVariance = 300 FX = INITIAL FX_CrusaderCatchFire OCL = FINAL OCL_SCUDLauncherDeathEffect FX = FINAL FX_ScudLauncherExplosionOneFinal End ; A crushing defeat Behavior = FXListDie ModuleTag_10 DeathTypes = NONE +CRUSHED +SPLATTED DeathFX = FX_CarCrush End Behavior = CreateObjectDie ModuleTag_11 DeathTypes = NONE +CRUSHED +SPLATTED CreationList = OCL_CrusaderTank_CrushEffect End Behavior = FlammableUpdate ModuleTag_21 AflameDuration = 5000 ; If I catch fire, I'll burn for this long... AflameDamageAmount = 3 ; taking this much damage... AflameDamageDelay = 500 ; this often. End Behavior = DestroyDie ModuleTag_22 DeathTypes = NONE +CRUSHED +SPLATTED End Behavior = WeaponSetUpgrade ModuleTag_23 TriggeredBy = Upgrade_GLAAnthraxBeta End Behavior = StealthDetectorUpdate ModuleTag_HijackerDetect DetectionRate = 500 DetectionRange = 75 CanDetectWhileGarrisoned = No CanDetectWhileContained = No ExtraRequiredKindOf = BOAT End Geometry = BOX GeometryMajorRadius = 14.0 GeometryMinorRadius = 7.0 GeometryHeight = 11.5 GeometryIsSmall = No Shadow = SHADOW_VOLUME ShadowSizeX = 45 ; minimum elevation angle above horizon. Used to limit shadow length End ;------------------------------------------------------------------------------ Object ChinaTankBattleMaster ; *** ART Parameters *** SelectPortrait = SNBattlemaster_L ButtonImage = SNBattlemaster UpgradeCameo1 = Upgrade_Nationalism UpgradeCameo2 = Upgrade_ChinaUraniumShells UpgradeCameo3 = Upgrade_ChinaNuclearTanks ;UpgradeCameo4 = NONE ;UpgradeCameo5 = NONE Draw = W3DTankDraw ModuleTag_01 OkToChangeModelColor = Yes DefaultConditionState Model = NVBtMstr Turret = Turret01 WeaponFireFXBone = PRIMARY Muzzle WeaponRecoilBone = PRIMARY Barrel WeaponMuzzleFlash = PRIMARY MuzzleFX WeaponLaunchBone = PRIMARY Muzzle End ConditionState = REALLYDAMAGED Model = NVBtMstr_D Turret = Turret01 WeaponFireFXBone = PRIMARY Muzzle WeaponRecoilBone = PRIMARY Barrel WeaponMuzzleFlash = PRIMARY MuzzleFX WeaponLaunchBone = PRIMARY Muzzle End ConditionState = RUBBLE Model = NVBtMstr_D Turret = Turret01 End TrackMarks = EXTnkTrack.tga End ; ***DESIGN parameters *** DisplayName = OBJECT:BattleMaster Side = China EditorSorting = VEHICLE TransportSlotCount = 3 ;how many "slots" we take in a transport (0 == not transportable) WeaponSet Conditions = None Weapon = PRIMARY BattleMasterTankGun End ArmorSet Conditions = None Armor = TankArmor DamageFX = TankDamageFX End BuildCost = 800 BuildTime = 10.0 ;in seconds VisionRange = 150 ShroudClearingRange = 300 Prerequisites Object = ChinaWarFactory End ExperienceValue = 100 100 200 400 ;Experience point value at each level ExperienceRequired = 0 200 300 600 ;Experience points needed to gain each level IsTrainable = Yes ;Can gain experience CrusherLevel = 2 ;What can I crush?: 1 = infantry, 2 = trees, 3 = vehicles CrushableLevel = 2 ;What am I?: 0 = for infantry, 1 = for trees, 2 = general vehicles CommandSet = ChinaVehicleBattleMasterCommandSet ; *** AUDIO Parameters *** VoiceSelect = BattleMasterTankVoiceSelect VoiceMove = BattleMasterTankVoiceMove VoiceGuard = BattleMasterTankVoiceMove VoiceAttack = BattleMasterTankVoiceAttack SoundMoveStart = BattleMasterTankMoveStart SoundMoveStartDamaged = BattleMasterTankMoveStart UnitSpecificSounds ; These have the syntax of SomeNameSomewhereInCode = SomeNameSomewhereInLookupINIs VoiceCreate = BattleMasterTankVoiceCreate TurretMoveStart = NoSound TurretMoveLoop = TurretMoveLoop VoiceCrush = BattleMasterTankVoiceCrush VoiceEnter = BattleMasterTankVoiceMove End ; *** ENGINEERING Parameters *** RadarPriority = UNIT KindOf = PRELOAD SELECTABLE CAN_ATTACK ATTACK_NEEDS_LINE_OF_SIGHT CAN_CAST_REFLECTIONS VEHICLE SCORE Body = ActiveBody ModuleTag_02 MaxHealth = 400.0 InitialHealth = 400.0 End Behavior = AIUpdateInterface ModuleTag_03 Turret TurretTurnRate = 120 ; turn rate, in degrees per sec ControlledWeaponSlots = PRIMARY End AutoAcquireEnemiesWhenIdle = Yes End Locomotor = SET_NORMAL BattleMasterLocomotor Locomotor = SET_NORMAL_UPGRADED NuclearBattleMasterLocomotor Behavior = HordeUpdate ModuleTag_04 RubOffRadius = 150 ; if I am this close to a real hordesman, I will get to be an honorary hordesman UpdateRate = 1000 ; how often to recheck horde status (msec) Radius = 75 ; how close other units must be to us to count towards our horde-ness (~30 feet or so) KindOf = VEHICLE ; what KindOf's must match to count towards horde-ness AlliesOnly = Yes ; do we only count allies towards horde status? ExactMatch = Yes ; do we only count units of our exact same type towards horde status? (overrides kindof) Count = 5 ; how many units must be within Radius to grant us horde-ness Action = HORDE ; when horde-ing, grant us the HORDE bonus End Behavior = PhysicsBehavior ModuleTag_05 Mass = 40.0 End Behavior = FireWeaponWhenDeadBehavior ModuleTag_06 DeathWeapon = NuclearTankDeathWeapon StartsActive = No ; turned on by upgrade TriggeredBy = Upgrade_ChinaNuclearTanks End Behavior = LocomotorSetUpgrade ModuleTag_07 TriggeredBy = Upgrade_ChinaNuclearTanks End ; A crushing defeat Behavior = DestroyDie ModuleTag_08 DeathTypes = NONE +CRUSHED +SPLATTED End Behavior = FXListDie ModuleTag_09 DeathTypes = NONE +CRUSHED +SPLATTED DeathFX = FX_CarCrush End Behavior = CreateObjectDie ModuleTag_10 DeathTypes = NONE +CRUSHED +SPLATTED CreationList = OCL_CrusaderTank_CrushEffect End Behavior = CreateCrateDie ModuleTag_11 CrateData = SalvageCrateData ;CrateData = EliteTankCrateData ;CrateData = HeroicTankCrateData End Behavior = StealthDetectorUpdate ModuleTag_HijackerDetect DetectionRate = 500 DetectionRange = 75 CanDetectWhileGarrisoned = No CanDetectWhileContained = No ExtraRequiredKindOf = BOAT End Behavior = SlowDeathBehavior ModuleTag_12 DeathTypes = ALL -CRUSHED -SPLATTED ProbabilityModifier = 25 DestructionDelay = 200 DestructionDelayVariance = 100 OCL = FINAL OCL_ChinaTankBattleMasterDebris FX = FINAL FX_BattleMasterExplosionOneFinal End Behavior = SlowDeathBehavior ModuleTag_14 DeathTypes = ALL -CRUSHED -SPLATTED ProbabilityModifier = 25 DestructionDelay = 1000 DestructionDelayVariance = 100 FX = INITIAL FX_BattleMasterExplosionOneInitial OCL = FINAL OCL_ChinaTankBattleMasterDebris FX = FINAL FX_BattleMasterExplosionOneFinal End Behavior = TransitionDamageFX ModuleTag_13 DamagedFXList1 = Loc: X:0 Y:0 Z:0 FXList:FX_BattleMasterDamageTransitionSmall ReallyDamagedParticleSystem1 = Bone:Smoke RandomBone:Yes PSys:SmokeSmallContinuous01 ReallyDamagedFXList1 = Loc: X:0 Y:0 Z:0 FXList:FX_BattleMasterDamageTransition End Behavior = FlammableUpdate ModuleTag_21 AflameDuration = 5000 ; If I catch fire, I'll burn for this long... AflameDamageAmount = 3 ; taking this much damage... AflameDamageDelay = 500 ; this often. End Geometry = BOX GeometryMajorRadius = 13.0 GeometryMinorRadius = 9.0 GeometryHeight = 10 GeometryIsSmall = Yes Shadow = SHADOW_VOLUME ShadowSizeX = 45 ; minimum elevation angle above horizon. Used to limit shadow length End ;------------------------------------------------------------------------------ Object ChinaVehicleBattleMasterDeadHull ; *** ART Parameters *** Draw = W3DModelDraw ModuleTag_01 OkToChangeModelColor = Yes ConditionState = NONE Model = NVBtMstr_D1 End End ; ***DESIGN parameters *** Side = China EditorSorting = SYSTEM TransportSlotCount = 3 ;how many "slots" we take in a transport (0 == not transportable) ; *** AUDIO Parameters *** ; *** ENGINEERING Parameters *** RadarPriority = UNIT KindOf = CAN_CAST_REFLECTIONS NO_COLLIDE HULK Body = ActiveBody ModuleTag_02 MaxHealth = 1.0 InitialHealth = 1.0 End Behavior = PhysicsBehavior ModuleTag_03 Mass = 50 AllowBouncing = Yes End Behavior = LifetimeUpdate ModuleTag_04 MinLifetime = 0 ; min lifetime in msec MaxLifetime = 0 ; max lifetime in msec End Behavior = SlowDeathBehavior ModuleTag_05 SinkDelay = 14000 SinkRate = 2 ; in Dist/Sec DestructionDelay = 20000 End Behavior = TransitionDamageFX ModuleTag_06 RubbleParticleSystem1 = Bone:Smoke RandomBone:Yes PSys:SmokeSmallContinuous01 End Geometry = BOX GeometryMajorRadius = 9.0 GeometryMinorRadius = 6.0 GeometryHeight = 7.5 GeometryIsSmall = Yes End ;------------------------------------------------------------------------------ ; this unit is never really "built"; building one triggers the random building of ; one of the other chassis. If you want a *specific* chassis, choose it explicitly; ; if you want a chassis at random, specify this. Object GLAVehicleTechnical ; *** ART Parameters *** SelectPortrait = SUTechnical_L ButtonImage = SUTechnical Draw = W3DModelDraw ModuleTag_01 DefaultConditionState ; give it a model so it'll show up in WB Model = UVTechTrck End End ; set cost and time fields here or else they won't work BuildCost = 700 ;500 BuildTime = 8.0 ;5.0 ;in seconds ; Needed to get the Veterancy Overlays on top of the Technical with his build variations. ;------------------------------------------------------------ Behavior = VeterancyGainCreate ModuleTag_03 StartingLevel = VETERAN ScienceRequired = SCIENCE_TechnicalTraining End Side = GLA EditorSorting = VEHICLE BuildVariations = GLAVehicleTechnicalChassisOne GLAVehicleTechnicalChassisTwo GLAVehicleTechnicalChassisThree KindOf = PRELOAD SELECTABLE CAN_ATTACK ATTACK_NEEDS_LINE_OF_SIGHT CAN_CAST_REFLECTIONS SALVAGER WEAPON_SALVAGER VEHICLE TRANSPORT End ;------------------------------------------------------------------------------ Object GLAVehicleTechnicalChassisOne ; *** ART Parameters *** SelectPortrait = SUTechnical_L ButtonImage = SUTechnical UpgradeCameo1 = Upgrade_GLAAPBullets UpgradeCameo2 = Upgrade_GLAJunkRepair ;UpgradeCameo3 = NONE ;UpgradeCameo4 = NONE ;UpgradeCameo5 = NONE Draw = W3DTruckDraw ModuleTag_01 ExtraPublicBone = Dum_Turret DefaultConditionState Model = UVTechTrck End ConditionState = REALLYDAMAGED Model = UVTechTrck_d End ConditionState = RUBBLE Model = UVTechTrck_d End OkToChangeModelColor = Yes TrackMarks = EXTireTrack.tga Dust = TechnicalDust DirtSpray = RocketBuggyDirtSpray PowerslideSpray = RocketBuggyDirtPowerSlide ; These parameters are only used if the model has a separate suspension, ; and the locomotor has HasSuspension = Yes. LeftFrontTireBone = Tire01 RightFrontTireBone = Tire02 LeftRearTireBone = Tire03 RightRearTireBone = Tire04 TireRotationMultiplier = 0.2 ; this * speed = rotation. PowerslideRotationAddition = 2.5 ; This speed is added to the rotation speed when powersliding. End Draw = W3DModelDraw ModuleTag_02 OkToChangeModelColor = Yes AttachToBoneInAnotherModule = Dum_Turret ; ------------------ basic technical ------------------------ DefaultConditionState Model = UITech_SKN Turret = Dum-TurManMVR TurretArtAngle = 180 ; this turret has art pointed 180 degrees backward HideSubObject = 20Cal 50Cal RPG MuzzleFX01 MuzzleFX02 MuzzleFX03 IdleAnimation = UITech_SKL.UITech_STA 0 6 IdleAnimation = UITech_SKL.UITech_IDA IdleAnimation = UITech_SKL.UITech_IDB AnimationMode = ONCE ShowSubObject = 20Cal WeaponMuzzleFlash = PRIMARY MuzzleFX01 WeaponFireFXBone = PRIMARY Muzzle01 End ConditionState = RUBBLE MOVING TURRET_ROTATE Animation = None HideSubObject = UITech-SKN ShowSubObject = 20Cal WeaponMuzzleFlash = PRIMARY MuzzleFX01 WeaponFireFXBone = PRIMARY Muzzle01 End ConditionState = MOVING Animation = UITech_SKL.UITech_MVB AnimationMode = LOOP ShowSubObject = 20Cal WeaponMuzzleFlash = PRIMARY MuzzleFX01 WeaponFireFXBone = PRIMARY Muzzle01 End ConditionState = TURRET_ROTATE Animation = UITech_SKL.UITech_TNA AnimationMode = LOOP ShowSubObject = 20Cal WeaponMuzzleFlash = PRIMARY MuzzleFX01 WeaponFireFXBone = PRIMARY Muzzle01 End AliasConditionState = TURRET_ROTATE MOVING AliasConditionState = TURRET_ROTATE FIRING_A AliasConditionState = TURRET_ROTATE BETWEEN_FIRING_SHOTS_A AliasConditionState = TURRET_ROTATE RELOADING_A AliasConditionState = TURRET_ROTATE MOVING FIRING_A AliasConditionState = TURRET_ROTATE MOVING BETWEEN_FIRING_SHOTS_A AliasConditionState = TURRET_ROTATE MOVING RELOADING_A ConditionState = FIRING_A Animation = UITech_SKL.UITech_ATA AnimationMode = LOOP ShowSubObject = 20Cal WeaponMuzzleFlash = PRIMARY MuzzleFX01 WeaponFireFXBone = PRIMARY Muzzle01 End ; AliasConditionState is a new keyword that says, ; "give me another ConditionState exactly like the previous ; one, except with different conditions". Useful when you ; have several states that are the same with only different condition bits. AliasConditionState = BETWEEN_FIRING_SHOTS_A AliasConditionState = RELOADING_A ; these aliases handle the moving-between-shots case. (we can't actually move-and-fire at the same time.). AliasConditionState = MOVING FIRING_A AliasConditionState = MOVING BETWEEN_FIRING_SHOTS_A AliasConditionState = MOVING RELOADING_A ; ------------------ technical with WEAPONSET_CRATEUPGRADE_ONE ------------------------ ConditionState = WEAPONSET_CRATEUPGRADE_ONE IdleAnimation = UITech_SKL.UITech_STA 0 6 IdleAnimation = UITech_SKL.UITech_IDA IdleAnimation = UITech_SKL.UITech_IDB AnimationMode = ONCE ShowSubObject = 50Cal WeaponMuzzleFlash = PRIMARY MuzzleFX02 WeaponFireFXBone = PRIMARY Muzzle02 WeaponLaunchBone = PRIMARY Muzzle02 End ConditionState = WEAPONSET_CRATEUPGRADE_ONE RUBBLE MOVING TURRET_ROTATE Animation = None HideSubObject = UITech-SKN ShowSubObject = 50Cal WeaponMuzzleFlash = PRIMARY MuzzleFX02 WeaponFireFXBone = PRIMARY Muzzle02 WeaponLaunchBone = PRIMARY Muzzle02 End ConditionState = MOVING WEAPONSET_CRATEUPGRADE_ONE Animation = UITech_SKL.UITech_MVB AnimationMode = LOOP ShowSubObject = 50Cal WeaponMuzzleFlash = PRIMARY MuzzleFX02 WeaponFireFXBone = PRIMARY Muzzle02 WeaponLaunchBone = PRIMARY Muzzle02 End ConditionState = WEAPONSET_CRATEUPGRADE_ONE TURRET_ROTATE Animation = UITech_SKL.UITech_TNA AnimationMode = LOOP ShowSubObject = 50Cal WeaponMuzzleFlash = PRIMARY MuzzleFX02 WeaponFireFXBone = PRIMARY Muzzle02 WeaponLaunchBone = PRIMARY Muzzle02 End AliasConditionState = WEAPONSET_CRATEUPGRADE_ONE TURRET_ROTATE MOVING AliasConditionState = WEAPONSET_CRATEUPGRADE_ONE TURRET_ROTATE FIRING_A AliasConditionState = WEAPONSET_CRATEUPGRADE_ONE TURRET_ROTATE BETWEEN_FIRING_SHOTS_A AliasConditionState = WEAPONSET_CRATEUPGRADE_ONE TURRET_ROTATE RELOADING_A AliasConditionState = WEAPONSET_CRATEUPGRADE_ONE TURRET_ROTATE MOVING FIRING_A AliasConditionState = WEAPONSET_CRATEUPGRADE_ONE TURRET_ROTATE MOVING BETWEEN_FIRING_SHOTS_A AliasConditionState = WEAPONSET_CRATEUPGRADE_ONE TURRET_ROTATE MOVING RELOADING_A ConditionState = WEAPONSET_CRATEUPGRADE_ONE FIRING_A Animation = UITech_SKL.UITech_ATA AnimationMode = LOOP ShowSubObject = 50Cal WeaponMuzzleFlash = PRIMARY MuzzleFX02 WeaponFireFXBone = PRIMARY Muzzle02 WeaponLaunchBone = PRIMARY Muzzle02 End ; AliasConditionState is a new keyword that says, ; "give me another ConditionState exactly like the previous ; one, except with different conditions". Useful when you ; have several states that are the same with only different condition bits. AliasConditionState = WEAPONSET_CRATEUPGRADE_ONE BETWEEN_FIRING_SHOTS_A AliasConditionState = WEAPONSET_CRATEUPGRADE_ONE RELOADING_A ; these aliases handle the moving-between-shots case. (we can't actually move-and-fire at the same time.). AliasConditionState = WEAPONSET_CRATEUPGRADE_ONE MOVING FIRING_A AliasConditionState = WEAPONSET_CRATEUPGRADE_ONE MOVING BETWEEN_FIRING_SHOTS_A AliasConditionState = WEAPONSET_CRATEUPGRADE_ONE MOVING RELOADING_A ; ------------------ technical with WEAPONSET_CRATEUPGRADE_TWO ------------------------ ConditionState = WEAPONSET_CRATEUPGRADE_TWO IdleAnimation = UITech_SKL.UITech_STA 0 6 IdleAnimation = UITech_SKL.UITech_IDA IdleAnimation = UITech_SKL.UITech_IDB AnimationMode = ONCE ShowSubObject = RPG WeaponFireFXBone = PRIMARY Muzzle03 WeaponLaunchBone = PRIMARY Muzzle03 End ConditionState = WEAPONSET_CRATEUPGRADE_TWO RUBBLE MOVING TURRET_ROTATE Animation = None HideSubObject = UITech-SKN ShowSubObject = RPG WeaponFireFXBone = PRIMARY Muzzle03 WeaponLaunchBone = PRIMARY Muzzle03 End ConditionState = MOVING WEAPONSET_CRATEUPGRADE_TWO Animation = UITech_SKL.UITech_MVB AnimationMode = LOOP ShowSubObject = RPG WeaponFireFXBone = PRIMARY Muzzle03 WeaponLaunchBone = PRIMARY Muzzle03 End ConditionState = WEAPONSET_CRATEUPGRADE_TWO TURRET_ROTATE Animation = UITech_SKL.UITech_TNA AnimationMode = LOOP ShowSubObject = RPG WeaponFireFXBone = PRIMARY Muzzle03 WeaponLaunchBone = PRIMARY Muzzle03 End AliasConditionState = WEAPONSET_CRATEUPGRADE_TWO TURRET_ROTATE MOVING AliasConditionState = WEAPONSET_CRATEUPGRADE_TWO TURRET_ROTATE FIRING_A AliasConditionState = WEAPONSET_CRATEUPGRADE_TWO TURRET_ROTATE BETWEEN_FIRING_SHOTS_A AliasConditionState = WEAPONSET_CRATEUPGRADE_TWO TURRET_ROTATE RELOADING_A AliasConditionState = WEAPONSET_CRATEUPGRADE_TWO TURRET_ROTATE MOVING FIRING_A AliasConditionState = WEAPONSET_CRATEUPGRADE_TWO TURRET_ROTATE MOVING BETWEEN_FIRING_SHOTS_A AliasConditionState = WEAPONSET_CRATEUPGRADE_TWO TURRET_ROTATE MOVING RELOADING_A ConditionState = WEAPONSET_CRATEUPGRADE_TWO FIRING_A Animation = UITech_SKL.UITech_ATA AnimationMode = LOOP ShowSubObject = RPG WeaponFireFXBone = PRIMARY Muzzle03 WeaponLaunchBone = PRIMARY Muzzle03 End ; AliasConditionState is a new keyword that says, ; "give me another ConditionState exactly like the previous ; one, except with different conditions". Useful when you ; have several states that are the same with only different condition bits. AliasConditionState = WEAPONSET_CRATEUPGRADE_TWO BETWEEN_FIRING_SHOTS_A AliasConditionState = WEAPONSET_CRATEUPGRADE_TWO RELOADING_A ; these aliases handle the moving-between-shots case. (we can't actually move-and-fire at the same time.). AliasConditionState = WEAPONSET_CRATEUPGRADE_TWO MOVING FIRING_A AliasConditionState = WEAPONSET_CRATEUPGRADE_TWO MOVING BETWEEN_FIRING_SHOTS_A AliasConditionState = WEAPONSET_CRATEUPGRADE_TWO MOVING RELOADING_A End ; ***DESIGN parameters *** DisplayName = OBJECT:Technical Side = GLA EditorSorting = VEHICLE TransportSlotCount = 3 ;how many "slots" we take in a transport (0 == not transportable) WeaponSet Conditions = None Weapon = PRIMARY TechnicalMachineGunWeapon End WeaponSet Conditions = CRATEUPGRADE_ONE Weapon = PRIMARY TechnicalCannonWeapon End WeaponSet Conditions = CRATEUPGRADE_TWO Weapon = PRIMARY TechnicalRPGWeapon End ArmorSet Conditions = None Armor = TruckArmor DamageFX = TruckDamageFX End ;update cost and time fields in Object GLAVehicleTechnical, or else they won't work ;BuildCost = 300 ;BuildTime = 5.0 ;in seconds VisionRange = 150 ShroudClearingRange = 300 Prerequisites Object = GLAArmsDealer End ExperienceValue = 25 25 50 100 ;Experience point value at each level ExperienceRequired = 0 50 75 150 ;Experience points needed to gain each level IsTrainable = Yes ;Can gain experience CrusherLevel = 2 ;What can I crush?: 1 = infantry, 2 = trees, 3 = vehicles CrushableLevel = 2 ;What am I?: 0 = for infantry, 1 = for trees, 2 = general vehicles CommandSet = GLAVehicleTechnicalCommandSet ; *** AUDIO Parameters *** VoiceSelect = TechnicalVoiceSelect VoiceMove = TechnicalVoiceMove VoiceGuard = TechnicalVoiceMove VoiceAttack = TechnicalVoiceAttack SoundMoveStart = TechnicalMoveStart SoundMoveStartDamaged = TechnicalMoveStart SoundDie = TechnicalVoiceDie SoundEnter = HumveeEnter SoundExit = HumveeExit UnitSpecificSounds ; These have the syntax of SomeNameSomewhereInCode = SomeNameSomewhereInLookupINIs VoiceCreate = TechnicalVoiceCreate TurretMoveStart = NoSound TurretMoveLoop = TurretMoveLoop TruckLandingSound = RocketBuggyLand TruckPowerslideSound = RocketBuggyPowerslide VoiceSalvage = TechnicalVoiceSalvage VoiceCrush = TechnicalVoiceCrush VoiceUnload = TechnicalVoiceUnload VoiceEnter = TechnicalVoiceMove End ; *** ENGINEERING Parameters *** RadarPriority = UNIT KindOf = PRELOAD SELECTABLE CAN_ATTACK ATTACK_NEEDS_LINE_OF_SIGHT CAN_CAST_REFLECTIONS SALVAGER WEAPON_SALVAGER VEHICLE SCORE TRANSPORT Behavior = VeterancyGainCreate ModuleTag_03 StartingLevel = VETERAN ScienceRequired = SCIENCE_TechnicalTraining End Body = ActiveBody ModuleTag_04 MaxHealth = 180 InitialHealth = 180 End Behavior = AIUpdateInterface ModuleTag_05 Turret TurretTurnRate = 240 ; turn rate, in degrees per sec NaturalTurretAngle = 0 MinIdleScanAngle = 30 ; in degrees off the natural turret angle MaxIdleScanAngle = 60 ; in degrees off the natural turret angle MinIdleScanInterval = 5000 ; in milliseconds MaxIdleScanInterval = 10000 ; in milliseconds ControlledWeaponSlots = PRIMARY SECONDARY TERTIARY End AutoAcquireEnemiesWhenIdle = Yes End Locomotor = SET_NORMAL TechnicalLocomotor Behavior = PhysicsBehavior ModuleTag_06 Mass = 40.0 End Behavior = AutoHealBehavior ModuleTag_07 HealingAmount = 2 HealingDelay = 1000 ; msec TriggeredBy = Upgrade_GLAJunkRepair End Behavior = FlammableUpdate ModuleTag_09 AflameDuration = 5000 ; If I catch fire, I'll burn for this long... AflameDamageAmount = 3 ; taking this much damage... AflameDamageDelay = 500 ; this often. End Behavior = TransitionDamageFX ModuleTag_10 ReallyDamagedParticleSystem1 = Bone:Smoke RandomBone:Yes PSys:SmallLightSmokeColumn ReallyDamagedFXList1 = Loc: X:0 Y:0 Z:0 FXList:FX_BattleMasterDamageTransition End Behavior = DestroyDie ModuleTag_11 DeathTypes = NONE +CRUSHED +SPLATTED End ; A crushing defeat Behavior = FXListDie ModuleTag_12 DeathTypes = NONE +CRUSHED +SPLATTED DeathFX = FX_CarCrush End Behavior = CreateObjectDie ModuleTag_13 DeathTypes = NONE +CRUSHED +SPLATTED CreationList = OCL_TechnicalJeep_CrushEffect End Behavior = CreateCrateDie ModuleTag_14 CrateData = SalvageCrateData ;CrateData = EliteTankCrateData ;CrateData = HeroicTankCrateData End Behavior = SlowDeathBehavior ModuleTag_15 DeathTypes = ALL -CRUSHED -SPLATTED DestructionDelay = 500 DestructionDelayVariance = 1500 OCL = INITIAL OCL_TechnicalAirDeathStart FX = INITIAL FX_RocketBuggyAirDeathGroundPart OCL = FINAL OCL_RocketBuggyAirDeath FX = FINAL FX_RocketBuggyAirDeathAirPart ; This happens in the air End Behavior = TransportContain ModuleTag_16 PassengersAllowedToFire = Yes ;InitialPayload = GLAInfantryTechnicalRider 2 Slots = 5 AllowInsideKindOf = INFANTRY AllowAlliesInside = Yes AllowNeutralInside = No AllowEnemiesInside = No DamagePercentToUnits = 80% GoAggressiveOnExit = Yes End Behavior = WeaponBonusUpgrade ModuleTag_17 ; Not a full weapon set switch, just a number tweak reflected in a weapon. TriggeredBy = Upgrade_GLAAPBullets End Behavior = StealthDetectorUpdate ModuleTag_HijackerDetect DetectionRate = 500 DetectionRange = 75 CanDetectWhileGarrisoned = No CanDetectWhileContained = No ExtraRequiredKindOf = BOAT End Geometry = BOX GeometryMajorRadius = 18.0 GeometryMinorRadius = 9.0 GeometryHeight = 7.5 GeometryIsSmall = No Shadow = SHADOW_VOLUME ShadowSizeX = 45 ; minimum elevation angle above horizon. Used to limit shadow length End ;------------------------------------------------------------------------------ ObjectReskin GLAVehicleTechnicalChassisTwo GLAVehicleTechnicalChassisOne ; *** ART Parameters *** ;SelectPortrait = SUTechnicalVan_L Draw = W3DTruckDraw ModuleTag_01 ExtraPublicBone = Dum_Turret DefaultConditionState Model = UVTechVan End ConditionState = REALLYDAMAGED Model = UVTechVan_d End ConditionState = RUBBLE Model = UVTechVan_d End OkToChangeModelColor = Yes TrackMarks = EXTireTrack.tga Dust = TechnicalDust ;DirtSpray = RocketBuggyDirtSpray PowerslideSpray = RocketBuggyDirtPowerSlide ; These parameters are only used if the model has a separate suspension, ; and the locomotor has HasSuspension = Yes. LeftFrontTireBone = Tire01 RightFrontTireBone = Tire02 LeftRearTireBone = Tire03 RightRearTireBone = Tire04 TireRotationMultiplier = 0.2 ; this * speed = rotation. PowerslideRotationAddition = 2.5 ; This speed is added to the rotation speed when powersliding. End Draw = W3DModelDraw ModuleTag_02 OkToChangeModelColor = Yes AttachToBoneInAnotherModule = Dum_Turret ; ------------------ basic technical ------------------------ DefaultConditionState Model = UITech_SKN Turret = Dum-TurManMVR TurretArtAngle = 180 ; this turret has art pointed 180 degrees backward HideSubObject = 20Cal 50Cal RPG MuzzleFX01 MuzzleFX02 MuzzleFX03 IdleAnimation = UITech_SKL.UITech_STA 0 6 IdleAnimation = UITech_SKL.UITech_IDA IdleAnimation = UITech_SKL.UITech_IDB AnimationMode = ONCE ShowSubObject = 20Cal WeaponMuzzleFlash = PRIMARY MuzzleFX01 WeaponFireFXBone = PRIMARY Muzzle01 End ConditionState = RUBBLE MOVING TURRET_ROTATE Animation = None HideSubObject = UITech-SKN ShowSubObject = 20Cal WeaponMuzzleFlash = PRIMARY MuzzleFX01 WeaponFireFXBone = PRIMARY Muzzle01 End ConditionState = MOVING Animation = UITech_SKL.UITech_MVB AnimationMode = LOOP ShowSubObject = 20Cal WeaponMuzzleFlash = PRIMARY MuzzleFX01 WeaponFireFXBone = PRIMARY Muzzle01 End ConditionState = TURRET_ROTATE Animation = UITech_SKL.UITech_TNA AnimationMode = LOOP ShowSubObject = 20Cal WeaponMuzzleFlash = PRIMARY MuzzleFX01 WeaponFireFXBone = PRIMARY Muzzle01 End AliasConditionState = TURRET_ROTATE MOVING AliasConditionState = TURRET_ROTATE FIRING_A AliasConditionState = TURRET_ROTATE BETWEEN_FIRING_SHOTS_A AliasConditionState = TURRET_ROTATE RELOADING_A AliasConditionState = TURRET_ROTATE MOVING FIRING_A AliasConditionState = TURRET_ROTATE MOVING BETWEEN_FIRING_SHOTS_A AliasConditionState = TURRET_ROTATE MOVING RELOADING_A ConditionState = FIRING_A Animation = UITech_SKL.UITech_ATA AnimationMode = LOOP ShowSubObject = 20Cal WeaponMuzzleFlash = PRIMARY MuzzleFX01 WeaponFireFXBone = PRIMARY Muzzle01 End ; AliasConditionState is a new keyword that says, ; "give me another ConditionState exactly like the previous ; one, except with different conditions". Useful when you ; have several states that are the same with only different condition bits. AliasConditionState = BETWEEN_FIRING_SHOTS_A AliasConditionState = RELOADING_A ; these aliases handle the moving-between-shots case. (we can't actually move-and-fire at the same time.). AliasConditionState = MOVING FIRING_A AliasConditionState = MOVING BETWEEN_FIRING_SHOTS_A AliasConditionState = MOVING RELOADING_A ; ------------------ technical with WEAPONSET_CRATEUPGRADE_ONE ------------------------ ConditionState = WEAPONSET_CRATEUPGRADE_ONE IdleAnimation = UITech_SKL.UITech_STA 0 6 IdleAnimation = UITech_SKL.UITech_IDA IdleAnimation = UITech_SKL.UITech_IDB AnimationMode = ONCE ShowSubObject = 50Cal WeaponMuzzleFlash = PRIMARY MuzzleFX02 WeaponFireFXBone = PRIMARY Muzzle02 WeaponLaunchBone = PRIMARY Muzzle02 End ConditionState = WEAPONSET_CRATEUPGRADE_ONE RUBBLE MOVING TURRET_ROTATE Animation = None HideSubObject = UITech-SKN ShowSubObject = 50Cal WeaponMuzzleFlash = PRIMARY MuzzleFX02 WeaponFireFXBone = PRIMARY Muzzle02 WeaponLaunchBone = PRIMARY Muzzle02 End ConditionState = MOVING WEAPONSET_CRATEUPGRADE_ONE Animation = UITech_SKL.UITech_MVB AnimationMode = LOOP ShowSubObject = 50Cal WeaponMuzzleFlash = PRIMARY MuzzleFX02 WeaponFireFXBone = PRIMARY Muzzle02 WeaponLaunchBone = PRIMARY Muzzle02 End ConditionState = WEAPONSET_CRATEUPGRADE_ONE TURRET_ROTATE Animation = UITech_SKL.UITech_TNA AnimationMode = LOOP ShowSubObject = 50Cal WeaponMuzzleFlash = PRIMARY MuzzleFX02 WeaponFireFXBone = PRIMARY Muzzle02 WeaponLaunchBone = PRIMARY Muzzle02 End AliasConditionState = WEAPONSET_CRATEUPGRADE_ONE TURRET_ROTATE MOVING AliasConditionState = WEAPONSET_CRATEUPGRADE_ONE TURRET_ROTATE FIRING_A AliasConditionState = WEAPONSET_CRATEUPGRADE_ONE TURRET_ROTATE BETWEEN_FIRING_SHOTS_A AliasConditionState = WEAPONSET_CRATEUPGRADE_ONE TURRET_ROTATE RELOADING_A AliasConditionState = WEAPONSET_CRATEUPGRADE_ONE TURRET_ROTATE MOVING FIRING_A AliasConditionState = WEAPONSET_CRATEUPGRADE_ONE TURRET_ROTATE MOVING BETWEEN_FIRING_SHOTS_A AliasConditionState = WEAPONSET_CRATEUPGRADE_ONE TURRET_ROTATE MOVING RELOADING_A ConditionState = WEAPONSET_CRATEUPGRADE_ONE FIRING_A Animation = UITech_SKL.UITech_ATA AnimationMode = LOOP ShowSubObject = 50Cal WeaponMuzzleFlash = PRIMARY MuzzleFX02 WeaponFireFXBone = PRIMARY Muzzle02 WeaponLaunchBone = PRIMARY Muzzle02 End ; AliasConditionState is a new keyword that says, ; "give me another ConditionState exactly like the previous ; one, except with different conditions". Useful when you ; have several states that are the same with only different condition bits. AliasConditionState = WEAPONSET_CRATEUPGRADE_ONE BETWEEN_FIRING_SHOTS_A AliasConditionState = WEAPONSET_CRATEUPGRADE_ONE RELOADING_A ; these aliases handle the moving-between-shots case. (we can't actually move-and-fire at the same time.). AliasConditionState = WEAPONSET_CRATEUPGRADE_ONE MOVING FIRING_A AliasConditionState = WEAPONSET_CRATEUPGRADE_ONE MOVING BETWEEN_FIRING_SHOTS_A AliasConditionState = WEAPONSET_CRATEUPGRADE_ONE MOVING RELOADING_A ; ------------------ technical with WEAPONSET_CRATEUPGRADE_TWO ------------------------ ConditionState = WEAPONSET_CRATEUPGRADE_TWO IdleAnimation = UITech_SKL.UITech_STA 0 6 IdleAnimation = UITech_SKL.UITech_IDA IdleAnimation = UITech_SKL.UITech_IDB AnimationMode = ONCE ShowSubObject = RPG WeaponFireFXBone = PRIMARY Muzzle03 WeaponLaunchBone = PRIMARY Muzzle03 End ConditionState = WEAPONSET_CRATEUPGRADE_TWO RUBBLE MOVING TURRET_ROTATE Animation = None HideSubObject = UITech-SKN ShowSubObject = RPG WeaponFireFXBone = PRIMARY Muzzle03 WeaponLaunchBone = PRIMARY Muzzle03 End ConditionState = MOVING WEAPONSET_CRATEUPGRADE_TWO Animation = UITech_SKL.UITech_MVB AnimationMode = LOOP ShowSubObject = RPG WeaponFireFXBone = PRIMARY Muzzle03 WeaponLaunchBone = PRIMARY Muzzle03 End ConditionState = WEAPONSET_CRATEUPGRADE_TWO TURRET_ROTATE Animation = UITech_SKL.UITech_TNA AnimationMode = LOOP ShowSubObject = RPG WeaponFireFXBone = PRIMARY Muzzle03 WeaponLaunchBone = PRIMARY Muzzle03 End AliasConditionState = WEAPONSET_CRATEUPGRADE_TWO TURRET_ROTATE MOVING AliasConditionState = WEAPONSET_CRATEUPGRADE_TWO TURRET_ROTATE FIRING_A AliasConditionState = WEAPONSET_CRATEUPGRADE_TWO TURRET_ROTATE BETWEEN_FIRING_SHOTS_A AliasConditionState = WEAPONSET_CRATEUPGRADE_TWO TURRET_ROTATE RELOADING_A AliasConditionState = WEAPONSET_CRATEUPGRADE_TWO TURRET_ROTATE MOVING FIRING_A AliasConditionState = WEAPONSET_CRATEUPGRADE_TWO TURRET_ROTATE MOVING BETWEEN_FIRING_SHOTS_A AliasConditionState = WEAPONSET_CRATEUPGRADE_TWO TURRET_ROTATE MOVING RELOADING_A ConditionState = WEAPONSET_CRATEUPGRADE_TWO FIRING_A Animation = UITech_SKL.UITech_ATA AnimationMode = LOOP ShowSubObject = RPG WeaponFireFXBone = PRIMARY Muzzle03 WeaponLaunchBone = PRIMARY Muzzle03 End ; AliasConditionState is a new keyword that says, ; "give me another ConditionState exactly like the previous ; one, except with different conditions". Useful when you ; have several states that are the same with only different condition bits. AliasConditionState = WEAPONSET_CRATEUPGRADE_TWO BETWEEN_FIRING_SHOTS_A AliasConditionState = WEAPONSET_CRATEUPGRADE_TWO RELOADING_A ; these aliases handle the moving-between-shots case. (we can't actually move-and-fire at the same time.). AliasConditionState = WEAPONSET_CRATEUPGRADE_TWO MOVING FIRING_A AliasConditionState = WEAPONSET_CRATEUPGRADE_TWO MOVING BETWEEN_FIRING_SHOTS_A AliasConditionState = WEAPONSET_CRATEUPGRADE_TWO MOVING RELOADING_A End ; Behavior = CreateObjectDie ModuleTag_13 ; DeathTypes = NONE +CRUSHED +SPLATTED ; CreationList = OCL_TechnicalVan_CrushEffect ; End Geometry = BOX GeometryMajorRadius = 16.0 GeometryMinorRadius = 8.0 GeometryHeight = 7.5 GeometryIsSmall = Yes End ;------------------------------------------------------------------------------ ObjectReskin GLAVehicleTechnicalChassisThree GLAVehicleTechnicalChassisOne ; *** ART Parameters *** Draw = W3DTruckDraw ModuleTag_01 ExtraPublicBone = Dum_Turret DefaultConditionState Model = UVTechJeep End ConditionState = REALLYDAMAGED Model = UVTechJeep_d End ConditionState = RUBBLE Model = UVTechJeep_d End OkToChangeModelColor = Yes TrackMarks = EXTireTrack.tga Dust = TechnicalDust ;DirtSpray = RocketBuggyDirtSpray PowerslideSpray = RocketBuggyDirtPowerSlide ; These parameters are only used if the model has a separate suspension, ; and the locomotor has HasSuspension = Yes. LeftFrontTireBone = Tire01 RightFrontTireBone = Tire02 LeftRearTireBone = Tire03 RightRearTireBone = Tire04 TireRotationMultiplier = 0.2 ; this * speed = rotation. PowerslideRotationAddition = 2.5 ; This speed is added to the rotation speed when powersliding. End Draw = W3DModelDraw ModuleTag_02 OkToChangeModelColor = Yes AttachToBoneInAnotherModule = Dum_Turret ; ------------------ basic technical ------------------------ DefaultConditionState Model = UITech_SKN Turret = Dum-TurManMVR TurretArtAngle = 180 ; this turret has art pointed 180 degrees backward HideSubObject = 20Cal 50Cal RPG MuzzleFX01 MuzzleFX02 MuzzleFX03 IdleAnimation = UITech_SKL.UITech_STA 0 6 IdleAnimation = UITech_SKL.UITech_IDA IdleAnimation = UITech_SKL.UITech_IDB AnimationMode = ONCE ShowSubObject = 20Cal WeaponMuzzleFlash = PRIMARY MuzzleFX01 WeaponFireFXBone = PRIMARY Muzzle01 End ConditionState = RUBBLE MOVING TURRET_ROTATE Animation = None HideSubObject = UITech-SKN ShowSubObject = 20Cal WeaponMuzzleFlash = PRIMARY MuzzleFX01 WeaponFireFXBone = PRIMARY Muzzle01 End ConditionState = MOVING Animation = UITech_SKL.UITech_MVB AnimationMode = LOOP ShowSubObject = 20Cal WeaponMuzzleFlash = PRIMARY MuzzleFX01 WeaponFireFXBone = PRIMARY Muzzle01 End ConditionState = TURRET_ROTATE Animation = UITech_SKL.UITech_TNA AnimationMode = LOOP ShowSubObject = 20Cal WeaponMuzzleFlash = PRIMARY MuzzleFX01 WeaponFireFXBone = PRIMARY Muzzle01 End AliasConditionState = TURRET_ROTATE MOVING AliasConditionState = TURRET_ROTATE FIRING_A AliasConditionState = TURRET_ROTATE BETWEEN_FIRING_SHOTS_A AliasConditionState = TURRET_ROTATE RELOADING_A AliasConditionState = TURRET_ROTATE MOVING FIRING_A AliasConditionState = TURRET_ROTATE MOVING BETWEEN_FIRING_SHOTS_A AliasConditionState = TURRET_ROTATE MOVING RELOADING_A ConditionState = FIRING_A Animation = UITech_SKL.UITech_ATA AnimationMode = LOOP ShowSubObject = 20Cal WeaponMuzzleFlash = PRIMARY MuzzleFX01 WeaponFireFXBone = PRIMARY Muzzle01 End ; AliasConditionState is a new keyword that says, ; "give me another ConditionState exactly like the previous ; one, except with different conditions". Useful when you ; have several states that are the same with only different condition bits. AliasConditionState = BETWEEN_FIRING_SHOTS_A AliasConditionState = RELOADING_A ; these aliases handle the moving-between-shots case. (we can't actually move-and-fire at the same time.). AliasConditionState = MOVING FIRING_A AliasConditionState = MOVING BETWEEN_FIRING_SHOTS_A AliasConditionState = MOVING RELOADING_A ; ------------------ technical with WEAPONSET_CRATEUPGRADE_ONE ------------------------ ConditionState = WEAPONSET_CRATEUPGRADE_ONE IdleAnimation = UITech_SKL.UITech_STA 0 6 IdleAnimation = UITech_SKL.UITech_IDA IdleAnimation = UITech_SKL.UITech_IDB AnimationMode = ONCE ShowSubObject = 50Cal WeaponMuzzleFlash = PRIMARY MuzzleFX02 WeaponFireFXBone = PRIMARY Muzzle02 WeaponLaunchBone = PRIMARY Muzzle02 End ConditionState = WEAPONSET_CRATEUPGRADE_ONE RUBBLE MOVING TURRET_ROTATE Animation = None HideSubObject = UITech-SKN ShowSubObject = 50Cal WeaponMuzzleFlash = PRIMARY MuzzleFX02 WeaponFireFXBone = PRIMARY Muzzle02 WeaponLaunchBone = PRIMARY Muzzle02 End ConditionState = MOVING WEAPONSET_CRATEUPGRADE_ONE Animation = UITech_SKL.UITech_MVB AnimationMode = LOOP ShowSubObject = 50Cal WeaponMuzzleFlash = PRIMARY MuzzleFX02 WeaponFireFXBone = PRIMARY Muzzle02 WeaponLaunchBone = PRIMARY Muzzle02 End ConditionState = WEAPONSET_CRATEUPGRADE_ONE TURRET_ROTATE Animation = UITech_SKL.UITech_TNA AnimationMode = LOOP ShowSubObject = 50Cal WeaponMuzzleFlash = PRIMARY MuzzleFX02 WeaponFireFXBone = PRIMARY Muzzle02 WeaponLaunchBone = PRIMARY Muzzle02 End AliasConditionState = WEAPONSET_CRATEUPGRADE_ONE TURRET_ROTATE MOVING AliasConditionState = WEAPONSET_CRATEUPGRADE_ONE TURRET_ROTATE FIRING_A AliasConditionState = WEAPONSET_CRATEUPGRADE_ONE TURRET_ROTATE BETWEEN_FIRING_SHOTS_A AliasConditionState = WEAPONSET_CRATEUPGRADE_ONE TURRET_ROTATE RELOADING_A AliasConditionState = WEAPONSET_CRATEUPGRADE_ONE TURRET_ROTATE MOVING FIRING_A AliasConditionState = WEAPONSET_CRATEUPGRADE_ONE TURRET_ROTATE MOVING BETWEEN_FIRING_SHOTS_A AliasConditionState = WEAPONSET_CRATEUPGRADE_ONE TURRET_ROTATE MOVING RELOADING_A ConditionState = WEAPONSET_CRATEUPGRADE_ONE FIRING_A Animation = UITech_SKL.UITech_ATA AnimationMode = LOOP ShowSubObject = 50Cal WeaponMuzzleFlash = PRIMARY MuzzleFX02 WeaponFireFXBone = PRIMARY Muzzle02 WeaponLaunchBone = PRIMARY Muzzle02 End ; AliasConditionState is a new keyword that says, ; "give me another ConditionState exactly like the previous ; one, except with different conditions". Useful when you ; have several states that are the same with only different condition bits. AliasConditionState = WEAPONSET_CRATEUPGRADE_ONE BETWEEN_FIRING_SHOTS_A AliasConditionState = WEAPONSET_CRATEUPGRADE_ONE RELOADING_A ; these aliases handle the moving-between-shots case. (we can't actually move-and-fire at the same time.). AliasConditionState = WEAPONSET_CRATEUPGRADE_ONE MOVING FIRING_A AliasConditionState = WEAPONSET_CRATEUPGRADE_ONE MOVING BETWEEN_FIRING_SHOTS_A AliasConditionState = WEAPONSET_CRATEUPGRADE_ONE MOVING RELOADING_A ; ------------------ technical with WEAPONSET_CRATEUPGRADE_TWO ------------------------ ConditionState = WEAPONSET_CRATEUPGRADE_TWO IdleAnimation = UITech_SKL.UITech_STA 0 6 IdleAnimation = UITech_SKL.UITech_IDA IdleAnimation = UITech_SKL.UITech_IDB AnimationMode = ONCE ShowSubObject = RPG WeaponFireFXBone = PRIMARY Muzzle03 WeaponLaunchBone = PRIMARY Muzzle03 End ConditionState = WEAPONSET_CRATEUPGRADE_TWO RUBBLE MOVING TURRET_ROTATE Animation = None HideSubObject = UITech-SKN ShowSubObject = RPG WeaponFireFXBone = PRIMARY Muzzle03 WeaponLaunchBone = PRIMARY Muzzle03 End ConditionState = MOVING WEAPONSET_CRATEUPGRADE_TWO Animation = UITech_SKL.UITech_MVB AnimationMode = LOOP ShowSubObject = RPG WeaponFireFXBone = PRIMARY Muzzle03 WeaponLaunchBone = PRIMARY Muzzle03 End ConditionState = WEAPONSET_CRATEUPGRADE_TWO TURRET_ROTATE Animation = UITech_SKL.UITech_TNA AnimationMode = LOOP ShowSubObject = RPG WeaponFireFXBone = PRIMARY Muzzle03 WeaponLaunchBone = PRIMARY Muzzle03 End AliasConditionState = WEAPONSET_CRATEUPGRADE_TWO TURRET_ROTATE MOVING AliasConditionState = WEAPONSET_CRATEUPGRADE_TWO TURRET_ROTATE FIRING_A AliasConditionState = WEAPONSET_CRATEUPGRADE_TWO TURRET_ROTATE BETWEEN_FIRING_SHOTS_A AliasConditionState = WEAPONSET_CRATEUPGRADE_TWO TURRET_ROTATE RELOADING_A AliasConditionState = WEAPONSET_CRATEUPGRADE_TWO TURRET_ROTATE MOVING FIRING_A AliasConditionState = WEAPONSET_CRATEUPGRADE_TWO TURRET_ROTATE MOVING BETWEEN_FIRING_SHOTS_A AliasConditionState = WEAPONSET_CRATEUPGRADE_TWO TURRET_ROTATE MOVING RELOADING_A ConditionState = WEAPONSET_CRATEUPGRADE_TWO FIRING_A Animation = UITech_SKL.UITech_ATA AnimationMode = LOOP ShowSubObject = RPG WeaponFireFXBone = PRIMARY Muzzle03 WeaponLaunchBone = PRIMARY Muzzle03 End ; AliasConditionState is a new keyword that says, ; "give me another ConditionState exactly like the previous ; one, except with different conditions". Useful when you ; have several states that are the same with only different condition bits. AliasConditionState = WEAPONSET_CRATEUPGRADE_TWO BETWEEN_FIRING_SHOTS_A AliasConditionState = WEAPONSET_CRATEUPGRADE_TWO RELOADING_A ; these aliases handle the moving-between-shots case. (we can't actually move-and-fire at the same time.). AliasConditionState = WEAPONSET_CRATEUPGRADE_TWO MOVING FIRING_A AliasConditionState = WEAPONSET_CRATEUPGRADE_TWO MOVING BETWEEN_FIRING_SHOTS_A AliasConditionState = WEAPONSET_CRATEUPGRADE_TWO MOVING RELOADING_A End ; Behavior = CreateObjectDie ModuleTag_13 ; DeathTypes = NONE +CRUSHED +SPLATTED ; CreationList = OCL_TechnicalJeep_CrushEffect ; End Geometry = BOX GeometryMajorRadius = 14.0 GeometryMinorRadius = 9.0 GeometryHeight = 9.5 GeometryIsSmall = Yes End ;------------------------------------------------------------------------------ Object GLAInfantryTechnicalRider ; *** ART Parameters *** SelectPortrait = SURebel_L ButtonImage = SURebel UpgradeCameo1 = Upgrade_GLAAPBullets Draw = W3DModelDraw ModuleTag_01 OkToChangeModelColor = Yes DefaultConditionState Model = UIMOB01_SKN IdleAnimation = UIMOB01_SKL.UIMOB01_IDD1 0 6 IdleAnimation = UIMOB01_SKL.UIMOB01_IDD2 0 6 IdleAnimation = UIMOB01_SKL.UIMOB01_CHD 0 6 IdleAnimation = UIMOB01_SKL.UIMOB01_STD AnimationMode = ONCE AnimationSpeedFactorRange 0.9 1.1 TransitionKey = TRANS_STAND_AK End ConditionState = MOVING Animation = UIMOB01_SKL.UIMOB01_RND AnimationMode = LOOP Flags = RANDOMSTART TransitionKey = MOVING_AK End ConditionState = DYING Animation = UIMOB01_SKL.UIMOB01_DD1 Animation = UIMOB01_SKL.UIMOB01_DD2 AnimationMode = ONCE TransitionKey = TRANS_Dying End ConditionState = SPECIAL_CHEERING Animation = UIMOB01_SKL.UIMOB01_CHD AnimationMode = ONCE End ; Drawing AK47 ConditionState = PREATTACK_A Animation = UIMOB01_SKL.UIMOB01_ATD1_ST ; start firing AnimationMode = ONCE End AliasConditionState = PREATTACK_A FIRING_A AliasConditionState = PREATTACK_A BETWEEN_FIRING_SHOTS_A ; Firing Gun ConditionState = FIRING_A Animation = UIMOB01_SKL.UIMOB01_ATD1_LP ; looping firing AnimationMode = LOOP WeaponFireFXBone = PRIMARY MuzzleAK WeaponMuzzleFlash = PRIMARY MuzzleAKFX TransitionKey = TRANS_FIRING_AK End AliasConditionState = BETWEEN_FIRING_SHOTS_A ConditionState = RELOADING_A Animation = UIMOB01_SKL.UIMOB01_ATD1_ED ; end firing AnimationMode = ONCE End ; This transition allows him to put his gun away when he's finished attacking. TransitionState = TRANS_FIRING_AK TRANS_STAND_AK Animation = UIMOB01_SKL.UIMOB01_ATD1_ED ; end firing AnimationMode = ONCE End TransitionState = TRANS_Dying TRANS_Flailing Animation = UIMOB01_SKL.UIMOB01_A_ADTE1 Animation = UIMOB01_SKL.UIMOB01_D_ADTE1 AnimationMode = ONCE End ConditionState = DYING EXPLODED_FLAILING Animation = UIMOB01_SKL.UIMOB01_A_ADTE2 Animation = UIMOB01_SKL.UIMOB01_D_ADTE2 AnimationMode = LOOP TransitionKey = TRANS_Flailing End ConditionState = DYING EXPLODED_BOUNCING Animation = UIMOB01_SKL.UIMOB01_A_ADTE3 Animation = UIMOB01_SKL.UIMOB01_D_ADTE3 AnimationMode = ONCE TransitionKey = None End End ; ***DESIGN parameters *** DisplayName = OBJECT:TechnicalRider Side = GLA EditorSorting = INFANTRY TransportSlotCount = 1 ;how many "slots" we take in a transport (0 == not transportable) WeaponSet Conditions = None Weapon = PRIMARY TechnicalRiderAK47 End ArmorSet Conditions = None Armor = HumanArmor DamageFX = InfantryDamageFX End VisionRange = 150 ShroudClearingRange = 300 Prerequisites ;Object = GLABarracks End BuildCost = 200 BuildTime = 6.0 ;in seconds ExperienceValue = 20 20 35 50 ;Experience point value at each level ExperienceRequired = 0 50 70 140 ;Experience points needed to gain each level IsTrainable = No ;Can gain experience CrushableLevel = 0 ;What am I?: 0 = for infantry, 1 = for trees, 2 = general vehicles CommandSet = GenericCommandSet ;GLAInfantryTechnicalRiderCommandSet ; *** AUDIO Parameters *** VoiceSelect = RebelVoiceSelect VoiceMove = RebelVoiceMove VoiceGuard = RebelVoiceMove VoiceAttack = RebelVoiceAttack SoundDie = RebelVoiceDie SoundDieFire = DieByFireGLA SoundDieToxin = DieByToxinGLA VoiceFear = RebelVoiceFear UnitSpecificSounds VoiceCreate = RebelVoiceCreate VoiceSubdue = RebelVoiceSubdue VoiceGarrison = RebelVoiceGarrison VoiceEnter = RebelVoiceMove VoiceEnterHostile = RebelVoiceMove VoiceGetHealed = RebelVoiceMove End ; *** ENGINEERING Parameters *** RadarPriority = UNIT KindOf = PRELOAD SELECTABLE CAN_ATTACK ATTACK_NEEDS_LINE_OF_SIGHT CAN_CAST_REFLECTIONS INFANTRY SALVAGER SCORE Body = ActiveBody ModuleTag_02 MaxHealth = 120.0 InitialHealth = 120.0 End Behavior = AIUpdateInterface ModuleTag_03 AutoAcquireEnemiesWhenIdle = Yes End Behavior = CommandButtonHuntUpdate ModuleTag_04 ; allows use of command button hunt script with this unit. End Locomotor = SET_NORMAL TechnicalRiderLocomotor Behavior = PhysicsBehavior ModuleTag_05 Mass = 5.0 End Behavior = WeaponBonusUpgrade ModuleTag_09 TriggeredBy = Upgrade_GLAAPBullets End Behavior = SquishCollide ModuleTag_11 ;nothing End ; --- begin Death modules --- Behavior = SlowDeathBehavior ModuleTag_Death01 DeathTypes = ALL -CRUSHED -SPLATTED -EXPLODED -BURNED -POISONED -POISONED_BETA SinkDelay = 3000 SinkRate = 0.5 ; in Dist/Sec DestructionDelay = 8000 FX = INITIAL FX_GIDie End Behavior = SlowDeathBehavior ModuleTag_Death02 DeathTypes = NONE +CRUSHED +SPLATTED SinkDelay = 3000 SinkRate = 0.5 ; in Dist/Sec DestructionDelay = 8000 FX = INITIAL FX_GIDieCrushed End Behavior = SlowDeathBehavior ModuleTag_Death03 DeathTypes = NONE +EXPLODED SinkDelay = 3000 SinkRate = 0.5 ; in Dist/Sec DestructionDelay = 8000 FX = INITIAL FX_GIDie FlingForce = 8 FlingForceVariance = 3 FlingPitch = 60 FlingPitchVariance = 10 End Behavior = SlowDeathBehavior ModuleTag_Death04 DeathTypes = NONE +BURNED DestructionDelay = 0 FX = INITIAL FX_GIDie OCL = INITIAL OCL_FlamingInfantry End Behavior = SlowDeathBehavior ModuleTag_Death05 DeathTypes = NONE +POISONED DestructionDelay = 0 FX = INITIAL FX_GIDie OCL = INITIAL OCL_ToxicInfantry End Behavior = SlowDeathBehavior ModuleTag_Death06 DeathTypes = NONE +POISONED_BETA DestructionDelay = 0 FX = INITIAL FX_GIDie OCL = INITIAL OCL_ToxicInfantryBeta End ; --- end Death modules --- Behavior = PoisonedBehavior ModuleTag_16 PoisonDamageInterval = 100 ; Every this many msec I will retake the poison damage dealt me... PoisonDuration = 3000 ; ... for this long after last hit by poison damage End Geometry = CYLINDER GeometryMajorRadius = 10.0 GeometryMinorRadius = 10.0 GeometryHeight = 12.0 GeometryIsSmall = Yes Shadow = SHADOW_DECAL ShadowSizeX = 14; ShadowSizeY = 14; ShadowTexture = ShadowI; BuildCompletion = APPEARS_AT_RALLY_POINT End ;------------------------------------------------------------------------------ Object ChinaTankOverlord ; *** ART Parameters *** SelectPortrait = SNOverlord_L ButtonImage = SNOverlord UpgradeCameo1 = Upgrade_ChinaUraniumShells UpgradeCameo2 = Upgrade_ChinaNuclearTanks UpgradeCameo3 = Upgrade_ChinaOverlordBattleBunker UpgradeCameo4 = Upgrade_ChinaOverlordGattlingCannon UpgradeCameo5 = Upgrade_ChinaOverlordPropagandaTower Draw = W3DOverlordTankDraw ModuleTag_01 ConditionState = NONE Model = NVOvrlrd Animation = NVOvrlrd.NVOvrlrd AnimationMode = LOOP Turret = Turret01 WeaponFireFXBone = PRIMARY Muzzle WeaponRecoilBone = PRIMARY Barrel WeaponMuzzleFlash = PRIMARY MuzzleFX WeaponLaunchBone = PRIMARY Muzzle End ConditionState = REALLYDAMAGED Model = NVOvrlrd_d Animation = NVOvrlrd_d.NVOvrlrd_d AnimationMode = LOOP Turret = Turret01 WeaponFireFXBone = PRIMARY Muzzle WeaponRecoilBone = PRIMARY Barrel WeaponMuzzleFlash = PRIMARY MuzzleFX WeaponLaunchBone = PRIMARY Muzzle End ConditionState = RUBBLE Model = NVOvrlrd_d Turret = Turret01 WeaponFireFXBone = PRIMARY Muzzle WeaponRecoilBone = PRIMARY Barrel WeaponMuzzleFlash = PRIMARY MuzzleFX WeaponLaunchBone = PRIMARY Muzzle End TrackMarks = EXTnkTrack.tga OkToChangeModelColor = Yes TreadAnimationRate = 2.0; amount of tread texture to move per second TreadDriveSpeedFraction = 0.3 ; fraction of locomotor speed below which treads stop moving. TreadPivotSpeedFraction = 0.6 ; fraction of locomotor speed below which we allow pivoting. End ; ***DESIGN parameters *** DisplayName = OBJECT:Overlord Side = China EditorSorting = VEHICLE TransportSlotCount = 3 ;how many "slots" we take in a transport (0 == not transportable) WeaponSet Conditions = None Weapon = PRIMARY OverlordTankGun End ArmorSet Conditions = None Armor = TankArmor DamageFX = TankDamageFX End BuildCost = 2000 BuildTime = 25.0 ;in seconds VisionRange = 150 ShroudClearingRange = 200 Prerequisites Object = ChinaWarFactory Object = ChinaPropagandaCenter End ExperienceValue = 200 200 400 600 ;Experience point value at each level ExperienceRequired = 0 400 600 1200 ;Experience points needed to gain each level IsTrainable = Yes ;Can gain experience CrusherLevel = 3 ;What can I crush?: 1 = infantry, 2 = trees, 3 = vehicles CrushableLevel = 3 ;What am I?: 0 = for infantry, 1 = for trees, 2 = general vehicles CommandSet = ChinaTankOverlordDefaultCommandSet ; *** AUDIO Parameters *** VoiceSelect = OverlordTankVoiceSelect SoundMoveStart = OverlordTankMoveStart SoundMoveStartDamaged = OverlordTankMoveStart VoiceMove = OverlordTankVoiceMove VoiceGuard = OverlordTankVoiceMove VoiceAttack = OverlordTankVoiceAttack UnitSpecificSounds ; These have the syntax of SomeNameSomewhereInCode = SomeNameSomewhereInLookupINIs VoiceCreate = OverlordTankVoiceCreate TurretMoveStart = NoSound TurretMoveLoop = OverlordTankTurretMoveLoop VoiceCrush = OverlordTankVoiceCrush VoiceEnter = OverlordTankVoiceMove VoiceUnload = OverlordTankVoiceUnload End ; *** ENGINEERING Parameters *** RadarPriority = UNIT KindOf = PRELOAD SELECTABLE CAN_ATTACK ATTACK_NEEDS_LINE_OF_SIGHT CAN_CAST_REFLECTIONS VEHICLE SCORE HUGE_VEHICLE Body = ActiveBody ModuleTag_02 MaxHealth = 1100.0 InitialHealth = 1100.0 End Behavior = TransportAIUpdate ModuleTag_03 Turret TurretTurnRate = 60 ;30 ;15 // turn rate, in degrees per sec ControlledWeaponSlots = PRIMARY End AutoAcquireEnemiesWhenIdle = Yes End Locomotor = SET_NORMAL OverlordLocomotor Locomotor = SET_NORMAL_UPGRADED NuclearOverlordLocomotor Behavior = FireWeaponWhenDeadBehavior ModuleTag_04 DeathWeapon = NuclearTankDeathWeapon StartsActive = No ; turned on by upgrade TriggeredBy = Upgrade_ChinaNuclearTanks End Behavior = LocomotorSetUpgrade ModuleTag_05 TriggeredBy = Upgrade_ChinaNuclearTanks End Behavior = OverlordContain ModuleTag_06 ; Like Transport, but when full, passes transport queries along to first passenger (redirects like tunnel) Slots = 1 DamagePercentToUnits = 100% AllowInsideKindOf = PORTABLE_STRUCTURE PassengersAllowedToFire = Yes PassengersInTurret = Yes ; My passengers ride in my turret, that's where the Firepoint bones are End Behavior = ObjectCreationUpgrade ModuleTag_07 UpgradeObject = OCL_OverlordGattlingCannon TriggeredBy = Upgrade_ChinaOverlordGattlingCannon ConflictsWith = Upgrade_ChinaOverlordPropagandaTower Upgrade_ChinaOverlordBattleBunker End Behavior = ObjectCreationUpgrade ModuleTag_08 UpgradeObject = OCL_OverlordPropagandaTower TriggeredBy = Upgrade_ChinaOverlordPropagandaTower ConflictsWith = Upgrade_ChinaOverlordGattlingCannon Upgrade_ChinaOverlordBattleBunker End Behavior = ObjectCreationUpgrade ModuleTag_09 UpgradeObject = OCL_OverlordBattleBunker TriggeredBy = Upgrade_ChinaOverlordBattleBunker ConflictsWith = Upgrade_ChinaOverlordGattlingCannon Upgrade_ChinaOverlordPropagandaTower End Behavior = ProductionUpdate ModuleTag_10 MaxQueueEntries = 1; So you can't build multiple upgrades in the same frame End Behavior = CommandSetUpgrade ModuleTag_11 CommandSet = ChinaTankOverlordGattlingCannonCommandSet TriggeredBy = Upgrade_ChinaOverlordGattlingCannon ConflictsWith = Upgrade_ChinaOverlordPropagandaTower Upgrade_ChinaOverlordBattleBunker End Behavior = CommandSetUpgrade ModuleTag_12 CommandSet = ChinaTankOverlordPropagandaTowerCommandSet TriggeredBy = Upgrade_ChinaOverlordPropagandaTower ConflictsWith = Upgrade_ChinaOverlordGattlingCannon Upgrade_ChinaOverlordBattleBunker End Behavior = CommandSetUpgrade ModuleTag_13 CommandSet = ChinaTankOverlordBattleBunkerCommandSet TriggeredBy = Upgrade_ChinaOverlordBattleBunker ConflictsWith = Upgrade_ChinaOverlordGattlingCannon Upgrade_ChinaOverlordPropagandaTower End Behavior = PhysicsBehavior ModuleTag_14 Mass = 50.0 End ; Smoke for a bit then explode Behavior = SlowDeathBehavior ModuleTag_15 ProbabilityModifier = 25 DestructionDelay = 1500 DestructionDelayVariance = 500 FX = INITIAL FX_OverlordSmoke OCL = FINAL OCL_ChinaTankOverlordDebris FX = FINAL FX_OverlordExplosionOneFinal End ; Catch fire, and explode death Behavior = SlowDeathBehavior ModuleTag_19 ProbabilityModifier = 25 DestructionDelay = 2000 DestructionDelayVariance = 300 FX = INITIAL FX_CrusaderCatchFire OCL = FINAL OCL_ChinaTankOverlordDebris FX = FINAL FX_OverlordExplosionOneFinal End ; Just explode death Behavior = SlowDeathBehavior ModuleTag_16 ProbabilityModifier = 25 DestructionDelay = 200 DestructionDelayVariance = 100 FX = INITIAL FX_OverlordExplosionOneInitial OCL = FINAL OCL_ChinaTankOverlordDebris FX = FINAL FX_OverlordExplosionOneFinal End Behavior = CreateCrateDie ModuleTag_17 CrateData = SalvageCrateData ;CrateData = EliteTankCrateData ;CrateData = HeroicTankCrateData End Behavior = StealthDetectorUpdate ModuleTag_HijackerDetect DetectionRate = 500 DetectionRange = 75 CanDetectWhileGarrisoned = No CanDetectWhileContained = No ExtraRequiredKindOf = BOAT End Behavior = TransitionDamageFX ModuleTag_18 ReallyDamagedParticleSystem1 = Bone:Smoke RandomBone:Yes PSys:SmokeSmallContinuous01 ReallyDamagedFXList1 = Loc: X:0 Y:0 Z:0 FXList:FX_OverlordDamageTransition End Behavior = FlammableUpdate ModuleTag_21 AflameDuration = 5000 ; If I catch fire, I'll burn for this long... AflameDamageAmount = 3 ; taking this much damage... AflameDamageDelay = 500 ; this often. End Geometry = BOX GeometryMajorRadius = 26.0 GeometryMinorRadius = 13.0 GeometryHeight = 15.0 GeometryIsSmall = No Shadow = SHADOW_VOLUME ShadowSizeX = 45 ; minimum elevation angle above horizon. Used to limit shadow length End ;------------------------------------------------------------------------------ Object ChinaTankOverlordGattlingCannon ; *** ART Parameters *** SelectPortrait = SNGatTower_L ButtonImage = SNGatTower ;UpgradeCameo1 = Upgrade_Nationalism UpgradeCameo1 = Upgrade_ChinaUraniumShells UpgradeCameo2 = Upgrade_ChinaNuclearTanks ;UpgradeCameo4 = NONE UpgradeCameo5 = Upgrade_ChinaOverlordGattlingCannon Draw = W3DDependencyModelDraw ModuleTag_01 OkToChangeModelColor = Yes AttachToBoneInContainer = FIREPOINT01 DefaultConditionState Model = NVOvrlrd_G Turret = TURRET01 TurretPitch = TURRETEL WeaponFireFXBone = PRIMARY Muzzle WeaponMuzzleFlash = PRIMARY MuzzleFX WeaponFireFXBone = SECONDARY Muzzle WeaponMuzzleFlash = SECONDARY MuzzleFX End ConditionState = CONTINUOUS_FIRE_SLOW Model = NVOvrlrd_G Animation = NVOvrlrd_G.NVOvrlrd_G AnimationMode = LOOP AnimationSpeedFactorRange = 0.1 0.1 ;set this state to animate s l o w l y End ConditionState = CONTINUOUS_FIRE_MEAN Model = NVOvrlrd_G Animation = NVOvrlrd_G.NVOvrlrd_G AnimationMode = LOOP AnimationSpeedFactorRange = 0.2 0.2 ;set this state to animate medium-fast End ConditionState = CONTINUOUS_FIRE_FAST Model = NVOvrlrd_G Animation = NVOvrlrd_G.NVOvrlrd_G AnimationMode = LOOP AnimationSpeedFactorRange = 0.3 0.3 ;set this state to animate vryfst ParticleSysBone = Muzzle01 GattlingMuzzleSmoke ParticleSysBone = Muzzle02 GattlingMuzzleSmoke End ConditionState = REALLYDAMAGED Model = NVOvrlrd_GD Turret = TURRET01 TurretPitch = TURRETEL WeaponFireFXBone = PRIMARY Muzzle WeaponMuzzleFlash = PRIMARY MuzzleFX WeaponFireFXBone = SECONDARY Muzzle WeaponMuzzleFlash = SECONDARY MuzzleFX ParticleSysBone = Smoke01 SmokeFactionMedium ParticleSysBone = Smoke02 SmokeFactionMedium ParticleSysBone = Smoke03 SmokeFactionMedium ParticleSysBone = SparkM01 SparksMedium ParticleSysBone = SparkM02 SparksMedium End ConditionState = CONTINUOUS_FIRE_SLOW REALLYDAMAGED Model = NVOvrlrd_GD Animation = NVOvrlrd_G.NVOvrlrd_G AnimationMode = LOOP AnimationSpeedFactorRange = 0.1 0.1 ;set this state to animate s l o w l y End ConditionState = CONTINUOUS_FIRE_MEAN REALLYDAMAGED Model = NVOvrlrd_GD Animation = NVOvrlrd_G.NVOvrlrd_G AnimationMode = LOOP AnimationSpeedFactorRange = 0.2 0.2 ;set this state to animate medium-fast End ConditionState = CONTINUOUS_FIRE_FAST REALLYDAMAGED Model = NVOvrlrd_GD Animation = NVOvrlrd_G.NVOvrlrd_G AnimationMode = LOOP AnimationSpeedFactorRange = 0.3 0.3 ;set this state to animate vryfst ParticleSysBone = Muzzle01 GattlingMuzzleSmoke ParticleSysBone = Muzzle02 GattlingMuzzleSmoke End End ; ***DESIGN parameters *** Side = China EditorSorting = SYSTEM TransportSlotCount = 1 WeaponSet Conditions = None Weapon = PRIMARY GattlingBuildingGun Weapon = SECONDARY GattlingBuildingGunAir PreferredAgainst = SECONDARY BALLISTIC_MISSILE AIRCRAFT End ArmorSet Conditions = None Armor = InvulnerableAllArmor ; We can't be hurt on the field. We share damage from the Overlord with his damage module End VisionRange = 200 ; *** AUDIO Parameters *** UnitSpecificSounds TurretMoveStart = NoSound TurretMoveLoop = NoSound ;TurretMoveLoop VoiceRapidFire = NoSound End ; *** ENGINEERING Parameters *** KindOf = PRELOAD PORTABLE_STRUCTURE CAN_ATTACK CLICK_THROUGH IGNORED_IN_GUI Body = StructureBody ModuleTag_02 MaxHealth = 100.0 InitialHealth = 100.0 End Behavior = AIUpdateInterface ModuleTag_03 Turret ControlledWeaponSlots = PRIMARY SECONDARY TurretTurnRate = 60 // turn rate, in degrees per sec TurretPitchRate = 60 AllowsPitch = Yes End AutoAcquireEnemiesWhenIdle = Yes End Behavior = DestroyDie ModuleTag_04 ;nothing End Behavior = WeaponBonusUpgrade ModuleTag_05 TriggeredBy = Upgrade_ChinaChainGuns End Behavior = StealthDetectorUpdate ModuleTag_06 DetectionRate = 500 ; how often to rescan for stealthed things in my sight (msec) ;DetectionRange = ??? ; Defaults to VisionRange CanDetectWhileContained = Yes End Geometry = BOX GeometryMajorRadius = 8.0 GeometryMinorRadius = 8.0 GeometryHeight = 9.0 GeometryIsSmall = No Shadow = SHADOW_VOLUME ShadowSizeX = 45 ; minimum elevation angle above horizon. Used to limit shadow length End ;------------------------------------------------------------------------------ Object ChinaTankOverlordPropagandaTower ; *** ART Parameters *** SelectPortrait = SNPropSpeaker_L ButtonImage = SNPropSpeaker UpgradeCameo1 = Upgrade_Nationalism UpgradeCameo2 = Upgrade_ChinaUraniumShells UpgradeCameo3 = Upgrade_ChinaNuclearTanks ;UpgradeCameo4 = NONE UpgradeCameo5 = Upgrade_ChinaOverlordPropagandaTower Draw = W3DDependencyModelDraw ModuleTag_01 OkToChangeModelColor = Yes AttachToBoneInContainer = FIREPOINT01 ConditionState = NONE Model = NVOvrlrd_S Animation = NVOvrlrd_S.NVOvrlrd_S AnimationMode = LOOP End ConditionState = REALLYDAMAGED Model = NVOvrlrd_SD ParticleSysBone = Smoke01 SmolderingSmoke ParticleSysBone = Smoke02 SmolderingSmoke ParticleSysBone = Flame01 SmolderingFire ParticleSysBone = Flame01 SmolderingFlameCore ParticleSysBone = Spark01 LiveWireSparks End ; night ConditionState = NIGHT Model = NVOvrlrd_S Animation = NVOvrlrd_S.NVOvrlrd_S AnimationMode = LOOP End End PlacementViewAngle = -45 ; ***DESIGN parameters *** Side = China EditorSorting = SYSTEM TransportSlotCount = 1 ArmorSet Conditions = None Armor = InvulnerableAllArmor ; We can't be hurt on the field. We share damage from the Overlord with his damage module End VisionRange = 200 ; *** AUDIO Parameters *** UnitSpecificSounds TurretMoveStart = NoSound TurretMoveLoop = NoSound ;TurretMoveLoop End ; *** ENGINEERING Parameters *** KindOf = PRELOAD PORTABLE_STRUCTURE CAN_ATTACK CLICK_THROUGH IGNORED_IN_GUI Body = StructureBody ModuleTag_02 MaxHealth = 100.0 InitialHealth = 100.0 End Behavior = AIUpdateInterface ModuleTag_03 ; End Behavior = PropagandaTowerBehavior ModuleTag_04 Radius = 150.0 DelayBetweenUpdates = 2000 ; in milliseconds HealPercentEachSecond = 1% ; get this % of max health every second PulseFX = FX_OverlordPropagandaTowerPropagandaPulse ;plays as often as DelayBetweenUpdates UpgradeRequired = Upgrade_ChinaSubliminalMessaging UpgradedHealPercentEachSecond = 2% ; get this % of max health every second UpgradedPulseFX = FX_OverlordPropagandaTowerSubliminalPulse ;plays as often as DelayBetweenUpdates End ;Behavior = HordeUpdate ModuleTag_OriginalPropaganda ;NOTICE: made them nearly unstoppable in groups = not good ; UpdateRate = 1000 ; how often to recheck horde status (msec) ; RubOffRadius = 180 ; if I am this close to a real hordesman, I will get to be an honorary hordesman ; Radius = 150 ; how close other units must be to us to count towards our horde-ness (~30 feet or so) ; KindOf = INFANTRY VEHICLE ; what KindOf's must match to count towards horde-ness ; AlliesOnly = Yes ; do we only count allies towards horde status? ; ExactMatch = No ; do we only count units of our exact same type towards horde status? (overrides kindof) ; Count = 1 ; how many units must be within Radius to grant us horde-ness ; Action = HORDE ;ENTHUSIASTIC ; when horde-ing, grant us the HORDE bonus ;End Behavior = DestroyDie ModuleTag_05 ; End Geometry = BOX GeometryMajorRadius = 6.0 GeometryMinorRadius = 6.0 GeometryHeight = 10.0 GeometryIsSmall = No Shadow = SHADOW_VOLUME ShadowSizeX = 45 ; minimum elevation angle above horizon. Used to limit shadow length End ;------------------------------------------------------------------------------ Object ChinaTankOverlordBattleBunker ; *** ART Parameters *** SelectPortrait = SNBunker_L ButtonImage = SNBunker ;UpgradeCameo1 = Upgrade_Nationalism UpgradeCameo1 = Upgrade_ChinaUraniumShells UpgradeCameo2 = Upgrade_ChinaNuclearTanks ;UpgradeCameo4 = NONE UpgradeCameo5 = Upgrade_ChinaOverlordBattleBunker Draw = W3DDependencyModelDraw ModuleTag_01 OkToChangeModelColor = Yes AttachToBoneInContainer = FIREPOINT01 ConditionState = NONE Model = NVOvrlrd_B End ConditionState = REALLYDAMAGED Model = NVOvrlrd_BD ParticleSysBone = Smoke01 SmolderingSmoke ParticleSysBone = Smoke02 SmolderingSmoke ParticleSysBone = Flame01 SmolderingFire ParticleSysBone = Flame01 SmolderingFlameCore ParticleSysBone = Spark01 LiveWireSparks End ; night ConditionState = NIGHT Model = NVOvrlrd_B End ConditionState = NIGHT REALLYDAMAGED Model = NVOvrlrd_BD ParticleSysBone = Smoke01 SmolderingSmoke ParticleSysBone = Smoke02 SmolderingSmoke ParticleSysBone = Flame01 SmolderingFire ParticleSysBone = Flame01 SmolderingFlameCore ParticleSysBone = Spark01 LiveWireSparks End End PlacementViewAngle = -45 ; ***DESIGN parameters *** Side = China EditorSorting = SYSTEM TransportSlotCount = 1 ArmorSet Conditions = None Armor = InvulnerableAllArmor ; We can't be hurt on the field. We share damage from the Overlord with his damage module End VisionRange = 200 ; *** AUDIO Parameters *** UnitSpecificSounds TurretMoveStart = NoSound TurretMoveLoop = NoSound ;TurretMoveLoop VoiceUnload = OverlordTankVoiceUnload End ; *** ENGINEERING Parameters *** KindOf = PRELOAD PORTABLE_STRUCTURE CLICK_THROUGH IGNORED_IN_GUI Body = StructureBody ModuleTag_02 MaxHealth = 100.0 InitialHealth = 100.0 End Behavior = TransportContain ModuleTag_03 Slots = 5 PassengersAllowedToFire = Yes AllowInsideKindOf = INFANTRY AllowAlliesInside = Yes AllowNeutralInside = No AllowEnemiesInside = No EnterSound = GarrisonEnter ExitSound = GarrisonExit DamagePercentToUnits = 50% End Behavior = DestroyDie ModuleTag_04 ;nothing End Geometry = BOX GeometryMajorRadius = 6.0 GeometryMinorRadius = 6.0 GeometryHeight = 10.0 GeometryIsSmall = No Shadow = SHADOW_VOLUME ShadowSizeX = 45 ; minimum elevation angle above horizon. Used to limit shadow length End ; ----------------------------------------------------------------------------- Object ChinaTankOverlordBarrelDebris ; *** ART Parameters *** Draw = W3DModelDraw ModuleTag_01 OkToChangeModelColor = Yes ConditionState = NONE Model = NVOvrlrd_D3 End End ; ***DESIGN parameters *** ; DisplayName = OBJECT:RocketBuggyDebris EditorSorting = DEBRIS Side = China ; *** AUDIO Parameters *** ; *** ENGINEERING Parameters *** ; RadarPriority = UNIT ; KindOf = PRELOAD CAN_CAST_REFLECTIONS Body = ActiveBody ModuleTag_02 MaxHealth = 1.0 InitialHealth = 1.0 End Behavior = PhysicsBehavior ModuleTag_03 Mass = 50 AllowBouncing = Yes End Behavior = LifetimeUpdate ModuleTag_04 MinLifetime = 10000 ; min lifetime in msec MaxLifetime = 15000 ; max lifetime in msec End Behavior = SlowDeathBehavior ModuleTag_05 SinkDelay = 1000 SinkRate = 1 ; in Dist/Sec DestructionDelay = 2000 End Geometry = BOX GeometryMajorRadius = 9.0 GeometryMinorRadius = 6.0 GeometryHeight = 7.5 GeometryIsSmall = Yes End ;------------------------------------------------------------------------------ Object ChinaTankOverlordDeadHull ; *** ART Parameters *** Draw = W3DModelDraw ModuleTag_01 OkToChangeModelColor = Yes ConditionState = NONE Model = NVOvrlrd_D1 End End ; ***DESIGN parameters *** DisplayName = OBJECT:Overlord Side = China EditorSorting = SYSTEM TransportSlotCount = 3 ;how many "slots" we take in a transport (0 == not transportable) ; *** AUDIO Parameters *** ; *** ENGINEERING Parameters *** RadarPriority = UNIT KindOf = CAN_CAST_REFLECTIONS NO_COLLIDE HULK Body = ActiveBody ModuleTag_02 MaxHealth = 1.0 InitialHealth = 1.0 End Behavior = PhysicsBehavior ModuleTag_03 Mass = 50 AllowBouncing = Yes End Behavior = LifetimeUpdate ModuleTag_04 MinLifetime = 0 ; min lifetime in msec MaxLifetime = 0 ; max lifetime in msec End Behavior = SlowDeathBehavior ModuleTag_05 SinkDelay = 14000 SinkRate = 2 ; in Dist/Sec DestructionDelay = 20000 End Behavior = TransitionDamageFX ModuleTag_06 RubbleParticleSystem1 = Bone:Smoke RandomBone:Yes PSys:SmokeSmallContinuous01 End Geometry = BOX GeometryMajorRadius = 9.0 GeometryMinorRadius = 6.0 GeometryHeight = 7.5 GeometryIsSmall = Yes End ;------------------------------------------------------------------------------ ;China Dragon Tank Object ChinaTankDragon ; *** ART Parameters *** SelectPortrait = SNDragonTank_L ButtonImage = SNDragonTank UpgradeCameo1 = Upgrade_ChinaBlackNapalm ;UpgradeCameo2 = NONE ;UpgradeCameo3 = NONE ;UpgradeCameo4 = NONE ;UpgradeCameo5 = NONE Draw = W3DTankDraw ModuleTag_01 OkToChangeModelColor = Yes DefaultConditionState Model = NVDragon Turret = Turret TurretPitch = TURRETEL WeaponFireFXBone = PRIMARY WeaponA WeaponLaunchBone = PRIMARY WeaponA WeaponFireFXBone = SECONDARY WeaponA WeaponLaunchBone = SECONDARY WeaponA End ConditionState = REALLYDAMAGED Model = NVDragon_D Turret = Turret TurretPitch = TURRETEL WeaponFireFXBone = PRIMARY WeaponA WeaponLaunchBone = PRIMARY WeaponA WeaponFireFXBone = SECONDARY WeaponA WeaponLaunchBone = SECONDARY WeaponA End ConditionState = RUBBLE Model = NVDragon_D Turret = Turret TurretPitch = TURRETEL WeaponFireFXBone = PRIMARY WeaponA WeaponLaunchBone = PRIMARY WeaponA WeaponFireFXBone = SECONDARY WeaponA WeaponLaunchBone = SECONDARY WeaponA End TrackMarks = EXTnkTrack.tga TreadAnimationRate = 2.0 ; amount of tread texture to move per second TreadDriveSpeedFraction = 0.3 ; fraction of locomotor speed below which treads stop moving. TreadPivotSpeedFraction = 0.6 ; fraction of locomotor speed below which we allow pivoting. End ; ***DESIGN parameters *** DisplayName = OBJECT:Dragon Side = China EditorSorting = VEHICLE TransportSlotCount = 3 ;how many "slots" we take in a transport (0 == not transportable) WeaponSet Conditions = None Weapon = PRIMARY DragonTankFlameWeapon Weapon = SECONDARY DragonTankFireWallWeapon AutoChooseSources = SECONDARY NONE End WeaponSet Conditions = PLAYER_UPGRADE Weapon = PRIMARY DragonTankFlameWeaponUpgraded Weapon = SECONDARY DragonTankFireWallWeaponUpgraded AutoChooseSources = SECONDARY NONE WeaponLockSharedAcrossSets = Yes ; This set is so similar to the default set that it can hold the weapon lock End ArmorSet Conditions = None Armor = DragonTankArmor DamageFX = TankDamageFX End BuildCost = 800 BuildTime = 10.0 ;in seconds VisionRange = 100 ShroudClearingRange = 200 Prerequisites Object = ChinaWarFactory End ExperienceValue = 50 50 100 150 ;Experience point value at each level ExperienceRequired = 0 100 150 300 ;Experience points needed to gain each level IsTrainable = Yes ;Can gain experience CrusherLevel = 2 ;What can I crush?: 1 = infantry, 2 = trees, 3 = vehicles CrushableLevel = 2 ;What am I?: 0 = for infantry, 1 = for trees, 2 = general vehicles CommandSet = ChinaTankDragonCommandSet ; *** AUDIO Parameters *** VoiceSelect = DragonTankVoiceSelect VoiceMove = DragonTankVoiceMove VoiceGuard = DragonTankVoiceMove VoiceAttack = DragonTankVoiceAttack SoundMoveStart = DragonTankMoveStart SoundMoveStartDamaged = DragonTankMoveStart UnitSpecificSounds ; These have the syntax of SomeNameSomewhereInCode = SomeNameSomewhereInLookupINIs VoiceCreate = DragonTankVoiceCreate TurretMoveStart = NoSound TurretMoveLoop = TurretMoveLoop VoiceEnter = DragonTankVoiceMove VoiceFlameLocation = DragonTankVoiceFireStorm End ; *** ENGINEERING Parameters *** RadarPriority = UNIT KindOf = PRELOAD SELECTABLE CAN_ATTACK ATTACK_NEEDS_LINE_OF_SIGHT CAN_CAST_REFLECTIONS VEHICLE SCORE Body = ActiveBody ModuleTag_02 MaxHealth = 280.0 InitialHealth = 280.0 End Behavior = AIUpdateInterface ModuleTag_03 Turret TurretTurnRate = 120 TurretPitchRate = 120 AllowsPitch = Yes MinPhysicalPitch = -15 TurretFireAngleSweep = PRIMARY 10 TurretFireAngleSweep = SECONDARY 60 TurretSweepSpeedModifier = PRIMARY 0.5 ; Sweep slower than you turn (aim for 30 for art) TurretSweepSpeedModifier = SECONDARY 2.0 ; Sweep faster than you turn ControlledWeaponSlots = PRIMARY SECONDARY End AutoAcquireEnemiesWhenIdle = Yes End Locomotor = SET_NORMAL DragonLocomotor Behavior = PhysicsBehavior ModuleTag_04 Mass = 50.0 End Behavior = WeaponSetUpgrade ModuleTag_05 TriggeredBy = Upgrade_ChinaBlackNapalm End ; A crushing defeat Behavior = DestroyDie ModuleTag_06 DeathTypes = NONE +CRUSHED +SPLATTED End Behavior = FXListDie ModuleTag_07 DeathTypes = NONE +CRUSHED +SPLATTED DeathFX = FX_CarCrush End Behavior = CreateObjectDie ModuleTag_08 DeathTypes = NONE +CRUSHED +SPLATTED CreationList = OCL_CrusaderTank_CrushEffect End Behavior = CreateCrateDie ModuleTag_09 CrateData = SalvageCrateData ;CrateData = EliteTankCrateData ;CrateData = HeroicTankCrateData End ; just explode death Behavior = SlowDeathBehavior ModuleTag_10 DeathTypes = ALL -CRUSHED -SPLATTED ;ProbabilityModifier = 33 DestructionDelay = 500 DestructionDelayVariance = 500 FX = INITIAL FX_BattleMasterExplosionOneFinal OCL = FINAL OCL_DragonDebris FX = FINAL FX_DragonTankDeathExplosionFinal End ; Napalm spills out, and explode death Behavior = SlowDeathBehavior ModuleTag_11 DeathTypes = ALL +CRUSHED +SPLATTED ;ProbabilityModifier = 34 DestructionDelay = 2000 DestructionDelayVariance = 300 FX = INITIAL FX_DragonNapalmSpill OCL = FINAL OCL_DragonDebris FX = FINAL FX_DragonTankDeathExplosionFinal End Behavior = StealthDetectorUpdate ModuleTag_HijackerDetect DetectionRate = 500 DetectionRange = 75 CanDetectWhileGarrisoned = No CanDetectWhileContained = No ExtraRequiredKindOf = BOAT End Behavior = FlammableUpdate ModuleTag_12 AflameDuration = 5000 ; If I catch fire, I'll burn for this long... AflameDamageAmount = 3 ; taking this much damage... AflameDamageDelay = 500 ; this often. End Behavior = TransitionDamageFX ModuleTag_13 ; ReallyDamagedParticleSystem1 = Bone:Smoke RandomBone:Yes Psys:SmokeSmallContinuous01 ReallyDamagedParticleSystem2 = Bone:Smoke RandomBone:Yes Psys:DragonTransitionFire ReallyDamagedFXList1 = Loc: X:0 Y:0 Z:0 FXList:FX_DragonDamageTransition End Geometry = BOX GeometryMajorRadius = 15.0 GeometryMinorRadius = 10.0 GeometryHeight = 11.0 ; Height set to allow clear clipping of projectile stream GeometryIsSmall = Yes Shadow = SHADOW_VOLUME ShadowSizeX = 45 ; minimum elevation angle above horizon. Used to limit shadow length End ;------------------------------------------------------------------------------ Object ChinaTankDragonDeadHull ; *** ART Parameters *** Draw = W3DModelDraw ModuleTag_01 OkToChangeModelColor = Yes ConditionState = NONE Model = NVDragon_D1 End End ; ***DESIGN parameters *** DisplayName = OBJECT:Overlord Side = China EditorSorting = SYSTEM TransportSlotCount = 3 ;how many "slots" we take in a transport (0 == not transportable) ; *** AUDIO Parameters *** ; *** ENGINEERING Parameters *** RadarPriority = UNIT KindOf = CAN_CAST_REFLECTIONS NO_COLLIDE HULK Body = ActiveBody ModuleTag_02 MaxHealth = 1.0 InitialHealth = 1.0 End Behavior = PhysicsBehavior ModuleTag_03 Mass = 50 AllowBouncing = Yes End Behavior = LifetimeUpdate ModuleTag_04 MinLifetime = 0 ; min lifetime in msec MaxLifetime = 0 ; max lifetime in msec End Behavior = SlowDeathBehavior ModuleTag_05 SinkDelay = 14000 SinkRate = 2 ; in Dist/Sec DestructionDelay = 20000 End Behavior = TransitionDamageFX ModuleTag_06 RubbleParticleSystem1 = Bone:Smoke RandomBone:Yes PSys:SmokeSmallContinuous01 End Geometry = BOX GeometryMajorRadius = 9.0 GeometryMinorRadius = 6.0 GeometryHeight = 7.5 GeometryIsSmall = Yes End ;------------------------------------------------------------------------------ Object DragonTankFlameProjectile ; Explanation - Particles can't do damage, so this is a fast shooting low ; damage invisible missile launcher with a flame trail for exhaust ; *** ART Parameters *** Draw = W3DModelDraw ModuleTag_01 OkToChangeModelColor = Yes ConditionState = NONE Model = NULL End End ; Must have a draw module to be allowed to draw detonation FX ; ***DESIGN parameters *** EditorSorting = SYSTEM VisionRange = 0.0 ArmorSet Conditions = None Armor = ProjectileArmor DamageFX = None End ; *** ENGINEERING Parameters *** KindOf = PROJECTILE Body = ActiveBody ModuleTag_02 MaxHealth = 100.0 InitialHealth = 100.0 End Behavior = DestroyDie ModuleTag_03 ;nothing End Behavior = PhysicsBehavior ModuleTag_04 Mass = 1 AllowCollideForce = No ; flames collide, but never apply forces when they do so End Behavior = MissileAIUpdate ModuleTag_05 TryToFollowTarget = No FuelLifetime = 350 DetonateOnNoFuel = Yes InitialVelocity = 120 ; in dist/sec IgnitionDelay = 0 DistanceToTravelBeforeTurning = 2 GarrisonHitKillRequiredKindOf = INFANTRY GarrisonHitKillForbiddenKindOf = NONE GarrisonHitKillCount = 2 GarrisonHitKillFX = FX_DragonFlameGarrisonBuildingHit DistanceToTargetForLock = 0 ; If it gets within 100 of the target, it kills the target. End Locomotor = SET_NORMAL DragonTankFlameLocomotor Behavior = BoneFXUpdate ModuleTag_06 PristineParticleSystem1 = bone:NULL OnlyOnce:Yes 0 0 PSys:FlameThrowerTrail01 ; Covers gap at beginning of line PristineParticleSystem2 = bone:NULL OnlyOnce:Yes 0 0 PSys:FlameThrowerTrail02 PristineParticleSystem3 = bone:NULL OnlyOnce:Yes 0 0 PSys:FlameThrowerTrail03 PristineParticleSystem4 = bone:NULL OnlyOnce:Yes 0 0 PSys:FlameThrowerTrail04 PristineParticleSystem5 = bone:NULL OnlyOnce:Yes 0 0 PSys:FlameThrowerTrail06 PristineParticleSystem6 = bone:NULL OnlyOnce:Yes 0 0 PSys:FlameThrowerSmoke01 End Behavior = BoneFXDamage ModuleTag_07 ;nothing End Geometry = Sphere GeometryIsSmall = Yes GeometryMajorRadius = 2.0 End ;------------------------------------------------------------------------------ Object FlamethrowerProjectileStream ; *** ART Parameters *** Draw = W3DProjectileStreamDraw ModuleTag_01 Texture = EXfthrowerStream.tga Width = 1.5 TileFactor = 3.0 ; put the texture on the line segment this many times ScrollRate = 2.0; scroll the texture offset this fast MaxSegments = 4 ; only play the first X if there are a ton of them. 0 means play all End ; *** ENGINEERING Parameters *** KindOf = INERT Behavior = ProjectileStreamUpdate ModuleTag_02 ;nothing End End ;------------------------------------------------------------------------------ Object DragonTankFlameProjectileUpgraded ; Explanation - Particles can't do damage, so this is a fast shooting low ; damage invisible missile launcher with a flame trail for exhaust ; *** ART Parameters *** Draw = W3DModelDraw ModuleTag_01 OkToChangeModelColor = Yes ConditionState = NONE Model = NULL End End ; Must have a draw module to be allowed to draw detonation FX ; ***DESIGN parameters *** EditorSorting = SYSTEM VisionRange = 0.0 ArmorSet Conditions = None Armor = ProjectileArmor DamageFX = None End ; *** ENGINEERING Parameters *** KindOf = PROJECTILE Body = ActiveBody ModuleTag_02 MaxHealth = 100.0 InitialHealth = 100.0 End Behavior = DestroyDie ModuleTag_03 ;nothing End Behavior = PhysicsBehavior ModuleTag_04 Mass = 1 AllowCollideForce = No ; flames collide, but never apply forces when they do so End Behavior = MissileAIUpdate ModuleTag_05 TryToFollowTarget = No FuelLifetime = 350 DetonateOnNoFuel = Yes InitialVelocity = 120 ; in dist/sec IgnitionDelay = 0 DistanceToTravelBeforeTurning = 2 GarrisonHitKillRequiredKindOf = INFANTRY GarrisonHitKillForbiddenKindOf = NONE GarrisonHitKillCount = 2 GarrisonHitKillFX = FX_DragonFlameGarrisonBuildingHit DistanceToTargetForLock = 0 ; If it gets within 100 of the target, it kills the target. End Locomotor = SET_NORMAL DragonTankFlameLocomotor Behavior = BoneFXUpdate ModuleTag_06 PristineParticleSystem1 = bone:NULL OnlyOnce:Yes 0 0 PSys:FlameThrowerTrail01Upgraded ; Covers gap at beginning of line PristineParticleSystem2 = bone:NULL OnlyOnce:Yes 0 0 PSys:FlameThrowerTrail02Upgraded PristineParticleSystem3 = bone:NULL OnlyOnce:Yes 0 0 PSys:FlameThrowerTrail03Upgraded PristineParticleSystem4 = bone:NULL OnlyOnce:Yes 0 0 PSys:FlameThrowerTrail04Upgraded PristineParticleSystem5 = bone:NULL OnlyOnce:Yes 0 0 PSys:FlameThrowerTrail06Upgraded PristineParticleSystem6 = bone:NULL OnlyOnce:Yes 0 0 PSys:FlameThrowerSmoke01 End Behavior = BoneFXDamage ModuleTag_07 ;nothing End Geometry = Sphere GeometryIsSmall = Yes GeometryMajorRadius = 2.0 End ;------------------------------------------------------------------------------ Object FlamethrowerProjectileStreamUpgraded ; *** ART Parameters *** Draw = W3DProjectileStreamDraw ModuleTag_01 Texture = EXfthrowerStreamUpgraded.tga Width = 1.5 TileFactor = 3.0 ; put the texture on the line segment this many times ScrollRate = 2.0; scroll the texture offset this fast MaxSegments = 4 ; only play the first X if there are a ton of them. 0 means play all End ; *** ENGINEERING Parameters *** KindOf = INERT Behavior = ProjectileStreamUpdate ModuleTag_02 ;nothing End End ;------------------------------------------------------------------------------ Object PointDefenseLaserBeam ; *** ART Parameters *** Draw = W3DLaserDraw ModuleTag_01 Texture = EXLaser.tga NumBeams = 3 ;Number of overlapping cylinders that make the beam. 1 beam will just use inner data. InnerBeamWidth = 0.4 ;The total width of beam InnerColor = R:255 G:255 B:255 A:250 ;The inside color of the laser (hot) OuterBeamWidth = 1.2 ;The total width of beam OuterColor = R:255 G:0 B:0 A:150 ;The outside color of the laser (cool) ;MaxIntensityLifetime = 2000 ;Laser stays at max intensity for specified time in ms. ;FadeLifetime = 0 ;Laser will fade and delete. ;@todo -- add shot ability functionality (instead of instant point A to B) End KindOf = IMMOBILE ClientUpdate = LaserUpdate ModuleTag_02 MuzzleParticleSystem = PaladinPointDefenseLaserFlare ParentFireBoneName = Laser ParentFireBoneOnTurret = Yes End ;Used as a weapon, this is essentially a fast pulse laser. Adjusting ;the lifetime values will determine how long it renders. The damage ;is applied immediately, so lifetime doesn't matter. Behavior = LifetimeUpdate ModuleTag_03 MinLifetime = 95 ; min lifetime in msec MaxLifetime = 95 ; max lifetime in msec End End ;------------------------------------------------------------------------------ Object LaserBeam ; *** ART Parameters *** Draw = W3DLaserDraw ModuleTag_01 Texture = EXLaser.tga NumBeams = 3 ;Number of overlapping cylinders that make the beam. 1 beam will just use inner data. InnerBeamWidth = 0.4 ;The total width of beam InnerColor = R:255 G:255 B:255 A:250 ;The inside color of the laser (hot) OuterBeamWidth = 1.2 ;The total width of beam OuterColor = R:255 G:0 B:0 A:150 ;The outside color of the laser (cool) ;MaxIntensityLifetime = 2000 ;Laser stays at max intensity for specified time in ms. ;FadeLifetime = 0 ;Laser will fade and delete. ;@todo -- add shot ability functionality (instead of instant point A to B) End KindOf = IMMOBILE ClientUpdate = LaserUpdate ModuleTag_02 MuzzleParticleSystem = GenericLaserFlare ParentFireBoneName = Muzzle01 TargetParticleSystem = GenericLaserFlare End End ;------------------------------------------------------------------------------ Object ParticleUplinkCannon_MediumConnectorLaser ; *** ART Parameters *** Draw = W3DLaserDraw ModuleTag_01 Texture = EXLaser.tga NumBeams = 4 ;Number of overlapping cylinders that make the beam. 1 beam will just use inner data. InnerBeamWidth = 0.4 ;The total width of beam InnerColor = R:255 G:255 B:255 A:250 ;The inside color of the laser (hot) OuterBeamWidth = 1.2 ;The total width of beam OuterColor = R:0 G:0 B:255 A:150 ;The outside color of the laser (cool) ;MaxIntensityLifetime = 2000 ;Laser stays at max intensity for specified time in ms. ;FadeLifetime = 0 ;Laser will fade and delete. ;@todo -- add shot ability functionality (instead of instant point A to B) End KindOf = IMMOBILE ClientUpdate = LaserUpdate ModuleTag_02 ;MuzzleParticleSystem = None ;TargetParticleSystem = None End End ;------------------------------------------------------------------------------ Object ParticleUplinkCannon_IntenseConnectorLaser ; *** ART Parameters *** Draw = W3DLaserDraw ModuleTag_01 Texture = EXLaser.tga NumBeams = 5 ;Number of overlapping cylinders that make the beam. 1 beam will just use inner data. InnerBeamWidth = 0.6 ;The total width of beam InnerColor = R:255 G:255 B:255 A:250 ;The inside color of the laser (hot) OuterBeamWidth = 2.0 ;The total width of beam OuterColor = R:0 G:0 B:255 A:150 ;The outside color of the laser (cool) ;MaxIntensityLifetime = 2000 ;Laser stays at max intensity for specified time in ms. ;FadeLifetime = 0 ;Laser will fade and delete. ;@todo -- add shot ability functionality (instead of instant point A to B) End KindOf = IMMOBILE ClientUpdate = LaserUpdate ModuleTag_02 ;MuzzleParticleSystem = None ;TargetParticleSystem = None End End ;------------------------------------------------------------------------------ Object ParticleUplinkCannon_OrbitalLaser ; *** ART Parameters *** Draw = W3DLaserDraw ModuleTag_01 Texture = EXNoise02.tga NumBeams = 12 ;Number of overlapping cylinders that make the beam. 1 beam will just use inner data. Tile = Yes ;The height of the texture will determine how many times to tile the texture to fit without scaling. ScrollRate = -1.75 ;Scrolls the texture offset this fast -- towards(-) away(+) TilingScalar = 0.15 ;Stretches tiling if value > 1.0, otherwise shrinks it (1.0 is natural) InnerBeamWidth = 0.6 ;The total width of beam InnerColor = R:255 G:255 B:255 A:250 ;The inside color of the laser (hot) OuterBeamWidth = 26.0 ;The total width of beam OuterColor = R:0 G:0 B:255 A:150 ;The outside color of the laser (cool) ;MaxIntensityLifetime = 2000 ;Laser stays at max intensity for specified time in ms. ;FadeLifetime = 0 ;Laser will fade and delete. ;@todo -- add shot ability functionality (instead of instant point A to B) End ; *** DESIGN Parameters *** VisionRange = 100 ShroudClearingRange = 120 ; *** ENGINEERING Parameters *** KindOf = IMMOBILE ClientUpdate = LaserUpdate ModuleTag_02 ;MuzzleParticleSystem = None ;TargetParticleSystem = None End End ;------------------------------------------------------------------------------ Object BinaryDataStream ; *** ART Parameters *** Draw = W3DLaserDraw ModuleTag_01 Texture = EXBinaryStream.tga NumBeams = 1 ;Number of overlapping cylinders that make the beam. 1 beam will just use inner data. Current max: 10 InnerBeamWidth = 4 ;The total width of beam InnerColor = R:0 G:255 B:0 A:180 ;The inside color of the laser (hot) Tile = Yes ;The height of the texture will determine how many times to tile the texture to fit without scaling. ScrollRate = -0.25 ;Scrolls the texture offset this fast -- towards(-) away(+) Segments = 20 ;Number of segments -- more segments give smoother curve (but more joints) Current max: 20 ArcHeight = 30.0 ;The height of the arc SegmentOverlapRatio = 0.0000 ;This value overlaps(+) or separates(-) the segments by ratio TilingScalar = 0.25 ;Stretches tiling if value > 1.0, otherwise shrinks it (1.0 is natural) End KindOf = IMMOBILE ClientUpdate = LaserUpdate ModuleTag_02 ;nothing End End ;------------------------------------------------------------------------------ Object ChinaVehicleTroopCrawler ; *** ART Parameters *** SelectPortrait = SNTransport_L ButtonImage = SNTransport ;UpgradeCameo1 = NONE ;UpgradeCameo2 = NONE ;UpgradeCameo3 = NONE ;UpgradeCameo4 = NONE ;UpgradeCameo5 = NONE Draw = W3DTruckDraw ModuleTag_01 OkToChangeModelColor = Yes ConditionState = NONE Model = NVTCrawler ;note, the IRSonar particle system is added in StealthDetectorUpdate.cpp, not here End ConditionState = REALLYDAMAGED RUBBLE ; THIS IS VERY IMPORTANT... DO NOT REMOVE 'RUBBLE' UNDER PENALTY OF DEATH MLorenzen ; @todo find out why a non-animating model like this has such trouble matching ; reallydamaged against moving against rubble, etc. Model = NVTCrawler_D End TrackMarks = EXTireTrack.tga Dust = RocketBuggyDust DirtSpray = RocketBuggyDirtSpray ; PowerslideSpray = RocketBuggyDirtPowerSlide doesn't powerslide ; These parameters are only used if the model has a separate suspension, ; and the locomotor has HasSuspension = Yes. LeftFrontTireBone = Wheel01 RightFrontTireBone = Wheel08 LeftRearTireBone = Wheel03 RightRearTireBone = Wheel05 MidLeftFrontTireBone = Wheel02 MidRightFrontTireBone = Wheel07 MidLeftRearTireBone = Wheel04 MidRightRearTireBone = Wheel06 TireRotationMultiplier = 0.2 ; this * speed = rotation. PowerslideRotationAddition = 0 ; This vehicle doesn't powerslide. End ; ***DESIGN parameters *** DisplayName = OBJECT:TroopCrawler Side = China EditorSorting = VEHICLE TransportSlotCount = 8 ;Just enough to fit into a Chinook. WeaponSet Conditions = None Weapon = PRIMARY TroopCrawlerAssault End ArmorSet Conditions = None Armor = TankArmor DamageFX = TankDamageFX End BuildCost = 1400 BuildTime = 15.0 ;in seconds VisionRange = 175 ;Needs to see farther and match it's weapon range -- else troop crawlers will get slaughtered against tanks! ShroudClearingRange = 400 Prerequisites Object = ChinaWarFactory End CrusherLevel = 2 ;What can I crush?: 1 = infantry, 2 = trees, 3 = vehicles CrushableLevel = 2 ;What am I?: 0 = for infantry, 1 = for trees, 2 = general vehicles CommandSet = ChinaTroopCrawlerCommandSet ; *** AUDIO Parameters *** VoiceSelect = TroopCrawlerVoiceSelect VoiceMove = TroopCrawlerVoiceMove VoiceGuard = TroopCrawlerVoiceMove VoiceAttack = TroopCrawlerVoiceAttack SoundMoveStart = TroopCrawlerMoveStart SoundMoveStartDamaged = TroopCrawlerMoveStart SoundEnter = HumveeEnter SoundExit = HumveeExit UnitSpecificSounds ; These have the syntax of SomeNameSomewhereInCode = SomeNameSomewhereInLookupINIs VoiceCreate = TroopCrawlerVoiceCreate TurretMoveStart = NoSound TurretMoveLoop = TurretMoveLoop TruckLandingSound = NoSound ;RocketBuggyLand TruckPowerslideSound = NoSound ;RocketBuggyPowerslide VoiceCrush = TroopCrawlerVoiceCrush VoiceUnload = TroopCrawlerVoiceUnload VoiceEnter = TroopCrawlerVoiceMove End ; *** ENGINEERING Parameters *** RadarPriority = UNIT KindOf = PRELOAD SELECTABLE CAN_ATTACK CAN_CAST_REFLECTIONS TRANSPORT VEHICLE SCORE Body = ActiveBody ModuleTag_02 MaxHealth = 240.0 InitialHealth = 240.0 End Behavior = StealthDetectorUpdate ModuleTag_03 DetectionRate = 900 ; how often to rescan for stealthed things in my sight (msec) ;DetectionRange = ??? ;Dustin, enable this for independant balancing! CanDetectWhileGarrisoned = No ;Garrisoned means being in a structure that you units can shoot out of. CanDetectWhileContained = No ;Contained means being in a transport or tunnel network. PingSound = IRPing LoudPingSound = IRPingLoud IRParticleSysName = IRDetectSonar IRBrightParticleSysName = IRDetectSonarBright IRGridParticleSysName = IRDetectGrid IRBeaconParticleSysName = IRLenzflare IRParticleSysBone = IRFX End ;OBSOLETE ; Behavior = AIUpdateInterface ModuleTag_04 ; Turret ; ControlledWeaponSlots = PRIMARY ; End ; End Behavior = AssaultTransportAIUpdate ModuleTag_NewAI MembersGetHealedAtLifeRatio = 0.5 End Locomotor = SET_NORMAL TroopCrawlerLocomotor Behavior = PhysicsBehavior ModuleTag_05 Mass = 50.0 End Behavior = TransportContain ModuleTag_06 Slots = 8 InitialPayload = ChinaInfantryRedguard 8 ScatterNearbyOnExit = No HealthRegen%PerSec = 10 DamagePercentToUnits = 10% AllowInsideKindOf = INFANTRY AllowAlliesInside = Yes AllowNeutralInside = No AllowEnemiesInside = No ExitDelay = 250 NumberOfExitPaths = 3 ; Defaults to 1. Set 0 to not use ExitStart/ExitEnd, set higher than 1 to use ExitStart01-nn/ExitEnd01-nn GoAggressiveOnExit = Yes ; AI Will tell people to set their mood to Aggressive on exiting End Behavior = SlowDeathBehavior ModuleTag_07 DeathTypes = ALL -CRUSHED -SPLATTED DestructionDelay = 1 FX = FINAL FX_SupplyTruckExplosionOneFinal OCL = FINAL OCL_FinalTroopCrawlerDebris End Behavior = TransitionDamageFX ModuleTag_08 ReallyDamagedParticleSystem1 = Bone:Smoke RandomBone:Yes PSys:SmallLightSmokeColumn ReallyDamagedFXList1 = Loc: X:0 Y:0 Z:0 FXList:FX_NukeCannonDamageTransition End Behavior = DestroyDie ModuleTag_09 DeathTypes = NONE +CRUSHED +SPLATTED End Behavior = FXListDie ModuleTag_10 DeathTypes = NONE +CRUSHED +SPLATTED DeathFX = FX_CarCrush End ; A crushing defeat Behavior = FXListDie ModuleTag_11 DeathTypes = NONE +CRUSHED +SPLATTED DeathFX = FX_CarCrush End Behavior = CreateCrateDie ModuleTag_12 CrateData = SalvageCrateData ;CrateData = EliteTankCrateData ;CrateData = HeroicTankCrateData End Behavior = FlammableUpdate ModuleTag_21 AflameDuration = 5000 ; If I catch fire, I'll burn for this long... AflameDamageAmount = 3 ; taking this much damage... AflameDamageDelay = 500 ; this often. End Geometry = BOX GeometryMajorRadius = 22.0 GeometryMinorRadius = 9.0 GeometryHeight = 13.0 GeometryIsSmall = No Shadow = SHADOW_VOLUME ShadowSizeX = 45 ; minimum elevation angle above horizon. Used to limit shadow length End ;------------------------------------------------------------------------------ Object ChinaVehicleTroopCrawlerDeadHull ; *** ART Parameters *** Draw = W3DModelDraw ModuleTag_01 OkToChangeModelColor = Yes ConditionState = NONE Model = NVTCrawler_D1 End End ; ***DESIGN parameters *** Side = China EditorSorting = SYSTEM TransportSlotCount = 0 ;how many "slots" we take in a transport (0 == not transportable) ; *** AUDIO Parameters *** ; *** ENGINEERING Parameters *** RadarPriority = UNIT KindOf = CAN_CAST_REFLECTIONS IMMOBILE NO_COLLIDE HULK Body = ActiveBody ModuleTag_02 MaxHealth = 1.0 InitialHealth = 1.0 End Behavior = PhysicsBehavior ModuleTag_Hulk03 Mass = 100.0 AllowBouncing = Yes KillWhenRestingOnGround = Yes End Behavior = LifetimeUpdate ModuleTag_Hulk04 MinLifetime = 1500 ; min lifetime in msec MaxLifetime = 1600 ; max lifetime in msec End Behavior = SlowDeathBehavior ModuleTag_Hulk05 SinkDelay = 1500 SinkRate = 2 ; in Dist/Sec DestructionDelay = 8000 End Geometry = BOX GeometryMajorRadius = 9.0 GeometryMinorRadius = 6.0 GeometryHeight = 7.5 GeometryIsSmall = Yes End ;------------------------------------------------------------------------------ Object ChinaVehicleTroopCrawlerEmpty ; *** ART Parameters *** SelectPortrait = SNTransport_L ButtonImage = SNTransport Draw = W3DTankDraw ModuleTag_01 OkToChangeModelColor = Yes TrackMarks = EXTireTrack.tga ConditionState = NONE Model = NVTCrawler End ConditionState = REALLYDAMAGED Model = NVTCrawler_D End ConditionState = RUBBLE Model = NVTCrawler_D End End ; ***DESIGN parameters *** DisplayName = OBJECT:TroopCrawler Side = China EditorSorting = VEHICLE TransportSlotCount = 8 ;how many "slots" we take in a transport (0 == not transportable) WeaponSet Conditions = None Weapon = PRIMARY TroopCrawlerAssault End ArmorSet Conditions = None Armor = TankArmor DamageFX = TankDamageFX End BuildCost = 700 BuildTime = 1.0 ;in seconds VisionRange = 150 ShroudClearingRange = 150 Prerequisites Object = ChinaWarFactory End CrusherLevel = 2 ;What can I crush?: 1 = infantry, 2 = trees, 3 = vehicles CrushableLevel = 2 ;What am I?: 0 = for infantry, 1 = for trees, 2 = general vehicles CommandSet = ChinaTroopCrawlerCommandSet ; *** AUDIO Parameters *** VoiceSelect = TroopCrawlerVoiceSelect VoiceMove = TroopCrawlerVoiceMove VoiceGuard = TroopCrawlerVoiceMove VoiceAttack = TroopCrawlerVoiceAttack SoundMoveStart = TroopCrawlerMoveStart SoundMoveStartDamaged = TroopCrawlerMoveStart UnitSpecificSounds ; These have the syntax of SomeNameSomewhereInCode = SomeNameSomewhereInLookupINIs VoiceCreate = TroopCrawlerVoiceCreate TurretMoveStart = NoSound TurretMoveLoop = TurretMoveLoop VoiceUnload = TroopCrawlerVoiceUnload VoiceEnter = TroopCrawlerVoiceMove End ; *** ENGINEERING Parameters *** RadarPriority = UNIT KindOf = PRELOAD SELECTABLE CAN_ATTACK CAN_CAST_REFLECTIONS TRANSPORT VEHICLE SCORE Body = ActiveBody ModuleTag_02 MaxHealth = 200.0 InitialHealth = 200.0 End Behavior = AIUpdateInterface ModuleTag_03 Turret ControlledWeaponSlots = PRIMARY End End Locomotor = SET_NORMAL TroopCrawlerLocomotor Behavior = PhysicsBehavior ModuleTag_04 Mass = 50.0 End Behavior = SlowDeathBehavior ModuleTag_05 DeathTypes = ALL -CRUSHED -SPLATTED ProbabilityModifier = 5 ModifierBonusPerOverkillPercent = 20% ; negative means less likely to pick this in the face of much damage, positive means more likely DestructionDelay = 0 DestructionDelayVariance = 200 FX = FINAL FX_BuggyNewDeathExplosion OCL = FINAL OCL_FinalTroopCrawlerDebris End Behavior = TransportContain ModuleTag_06 Slots = 8 HealthRegen%PerSec = 10 DamagePercentToUnits = 10% AllowInsideKindOf = INFANTRY AllowAlliesInside = Yes AllowNeutralInside = No AllowEnemiesInside = No End ; A crushing defeat Behavior = FXListDie ModuleTag_07 DeathTypes = NONE +CRUSHED +SPLATTED DeathFX = FX_CarCrush End Behavior = CreateObjectDie ModuleTag_08 DeathTypes = NONE +CRUSHED +SPLATTED CreationList = OCL_CrusaderTank_CrushEffect End Behavior = CreateCrateDie ModuleTag_09 CrateData = SalvageCrateData ;CrateData = EliteTankCrateData ;CrateData = HeroicTankCrateData End Behavior = FlammableUpdate ModuleTag_21 AflameDuration = 5000 ; If I catch fire, I'll burn for this long... AflameDamageAmount = 3 ; taking this much damage... AflameDamageDelay = 500 ; this often. End Geometry = BOX GeometryMajorRadius = 22.0 GeometryMinorRadius = 9.0 GeometryHeight = 13.0 GeometryIsSmall = No Shadow = SHADOW_VOLUME ShadowSizeX = 45 ; minimum elevation angle above horizon. Used to limit shadow length End ;------------------------------------------------------------------------------ Object ChinaVehicleInfernoCannon ; *** ART Parameters *** SelectPortrait = SNInferno_L ButtonImage = SNInferno UpgradeCameo1 = Upgrade_ChinaBlackNapalm ;UpgradeCameo2 = NONE ;UpgradeCameo3 = NONE ;UpgradeCameo4 = NONE ;UpgradeCameo5 = NONE Draw = W3DTankDraw ModuleTag_01 OkToChangeModelColor = Yes ConditionState = NONE Model = NVInferno Turret = Turret TurretPitch = TurretEL WeaponFireFXBone = PRIMARY Muzzle WeaponRecoilBone = PRIMARY Barrel WeaponMuzzleFlash = PRIMARY MuzzleFX WeaponLaunchBone = PRIMARY Muzzle End ConditionState = RUBBLE REALLYDAMAGED Model = NVInferno_D Turret = Turret TurretPitch = TurretEL WeaponFireFXBone = PRIMARY Muzzle WeaponRecoilBone = PRIMARY Barrel WeaponMuzzleFlash = PRIMARY MuzzleFX WeaponLaunchBone = PRIMARY Muzzle End TrackMarks = EXTnkTrack.tga TreadAnimationRate = 2.0 ; amount of tread texture to move per second End ; ***DESIGN parameters *** DisplayName = OBJECT:InfernoCannon Side = China EditorSorting = VEHICLE TransportSlotCount = 3 ;how many "slots" we take in a transport (0 == not transportable) WeaponSet Conditions = None Weapon = PRIMARY InfernoCannonGun End WeaponSet Conditions = PLAYER_UPGRADE Weapon = PRIMARY InfernoCannonGunUpgraded End ArmorSet Conditions = None Armor = TankArmor DamageFX = TankDamageFX End BuildCost = 900 BuildTime = 15.0 ;in seconds VisionRange = 180 ShroudClearingRange = 300 Prerequisites Object = ChinaWarFactory Object = ChinaPropagandaCenter End ExperienceValue = 50 50 100 150 ;Experience point value at each level ExperienceRequired = 0 100 200 400 ;Experience points needed to gain each level IsTrainable = Yes ;Can gain experience CrusherLevel = 2 ;What can I crush?: 1 = infantry, 2 = trees, 3 = vehicles CrushableLevel = 2 ;What am I?: 0 = for infantry, 1 = for trees, 2 = general vehicles CommandSet = ChinaVehicleInfernoCannonCommandSet ; *** AUDIO Parameters *** VoiceSelect = InfernoCannonVoiceSelect VoiceMove = InfernoCannonVoiceMove VoiceGuard = InfernoCannonVoiceMove VoiceAttack = InfernoCannonVoiceAttack SoundMoveStart = InfernoCannonMoveStart SoundMoveStartDamaged = InfernoCannonMoveStart UnitSpecificSounds ; These have the syntax of SomeNameSomewhereInCode = SomeNameSomewhereInLookupINIs VoiceCreate = InfernoCannonVoiceCreate TurretMoveStart = NoSound TurretMoveLoop = NoSound VoiceCrush = InfernoCannonVoiceCrush VoiceEnter = InfernoCannonVoiceMove End ; *** ENGINEERING Parameters *** RadarPriority = UNIT KindOf = PRELOAD SELECTABLE CAN_ATTACK CAN_CAST_REFLECTIONS VEHICLE SCORE Body = ActiveBody ModuleTag_02 MaxHealth = 120.0 InitialHealth = 120.0 End Behavior = VeterancyGainCreate ModuleTag_03 StartingLevel = VETERAN ScienceRequired = SCIENCE_ArtilleryTraining End Behavior = AIUpdateInterface ModuleTag_04 Turret TurretTurnRate = 100 TurretPitchRate = 100 AllowsPitch = Yes FirePitch = 45 ControlledWeaponSlots = PRIMARY End AutoAcquireEnemiesWhenIdle = No NotWhileAttacking End Locomotor = SET_NORMAL InfernoLocomotor Behavior = PhysicsBehavior ModuleTag_05 Mass = 50.0 End ; A crushing defeat Behavior = FXListDie ModuleTag_06 DeathTypes = NONE +CRUSHED +SPLATTED DeathFX = FX_CarCrush End Behavior = CreateObjectDie ModuleTag_07 DeathTypes = NONE +CRUSHED +SPLATTED CreationList = OCL_CrusaderTank_CrushEffect End Behavior = SlowDeathBehavior ModuleTag_08 DeathTypes = ALL -CRUSHED -SPLATTED ProbabilityModifier = 50 DestructionDelay = 2000 DestructionDelayVariance = 300 FX = INITIAL FX_CrusaderCatchFire FX = FINAL FX_GenericTankDeathExplosion OCL = FINAL OCL_InfernoCannonDeathEffect End Behavior = TransitionDamageFX ModuleTag_09 ReallyDamagedParticleSystem1 = Bone:Smoke RandomBone:Yes PSys:SmallLightSmokeColumn ReallyDamagedFXList1 = Loc: X:-7 Y:0 Z:0 FXList:FX_BattleMasterDamageTransition End Behavior = CreateCrateDie ModuleTag_10 CrateData = SalvageCrateData ;CrateData = EliteTankCrateData ;CrateData = HeroicTankCrateData End Behavior = WeaponSetUpgrade ModuleTag_11 TriggeredBy = Upgrade_ChinaBlackNapalm End Behavior = StealthDetectorUpdate ModuleTag_HijackerDetect DetectionRate = 500 DetectionRange = 75 CanDetectWhileGarrisoned = No CanDetectWhileContained = No ExtraRequiredKindOf = BOAT End Behavior = FlammableUpdate ModuleTag_21 AflameDuration = 5000 ; If I catch fire, I'll burn for this long... AflameDamageAmount = 3 ; taking this much damage... AflameDamageDelay = 500 ; this often. End Behavior = DestroyDie ModuleTag_22 DeathTypes = NONE +CRUSHED +SPLATTED End Geometry = BOX GeometryMajorRadius = 15.0 GeometryMinorRadius = 10.0 GeometryHeight = 15.0 GeometryIsSmall = Yes Shadow = SHADOW_VOLUME ShadowSizeX = 45 ; minimum elevation angle above horizon. Used to limit shadow length End ;------------------------------------------------------------------------------ ;Also called NukeCannon Object ChinaVehicleNukeLauncher ; *** ART Parameters *** SelectPortrait = SNNukeCannon_L ButtonImage = SNNukeCannon2 ;UpgradeCameo1 = NONE ;UpgradeCameo2 = NONE ;UpgradeCameo3 = NONE ;UpgradeCameo4 = NONE ;UpgradeCameo5 = NONE Draw = W3DTankDraw ModuleTag_01 InitialRecoilSpeed = 120 MaxRecoilDistance = 8 RecoilSettleSpeed = 6 OkToChangeModelColor = Yes ExtraPublicBone = Turret01 DefaultConditionState Model = NVNukeCn WeaponLaunchBone = PRIMARY Muzzle WeaponMuzzleFlash = PRIMARY MuzzleFX WeaponFireFXBone = PRIMARY Muzzle WeaponRecoilBone = PRIMARY Barrel HideSubObject = TURRET01 ;Hide controlled turret ShowSubObject = TURRETFRONT TURRETBACK ;Show pack/unpack animated turret Turret = Turret01 TurretPitch = TurretEL End ConditionState = RUBBLE Model = NVNukeCn_D WeaponLaunchBone = PRIMARY Muzzle WeaponMuzzleFlash = PRIMARY MuzzleFX WeaponRecoilBone = PRIMARY Barrel HideSubObject = TURRET01 ;Hide controlled turret ShowSubObject = TURRETFRONT TURRETBACK ;Show pack/unpack animated turret Turret = Turret01 TurretPitch = TurretEL End ;*** PACKED STATE -- ready to move *** ConditionState = MOVING Animation = NVNukeCn.NVNukeCn AnimationMode = ONCE_BACKWARDS Flags = START_FRAME_FIRST End AliasConditionState = MOVING BETWEEN_FIRING_SHOTS_A ;Very long shot delay -- possibly moving AliasConditionState = BETWEEN_FIRING_SHOTS_A ;*** ConditionState = REALLYDAMAGED MOVING Model = NVNukeCn_D Animation = NVNukeCn_D.NVNukeCn_D AnimationMode = ONCE_BACKWARDS Flags = START_FRAME_FIRST End AliasConditionState = REALLYDAMAGED MOVING BETWEEN_FIRING_SHOTS_A ;Very long shot delay -- possibly moving ;*** UNPACKING STATE -- preparing to fire *** ConditionState = UNPACKING Animation = NVNukeCn.NVNukeCn AnimationMode = ONCE End AliasConditionState = UNPACKING BETWEEN_FIRING_SHOTS_A ;Very long shot delay ;*** ConditionState = REALLYDAMAGED UNPACKING Model = NVNukeCn_D Animation = NVNukeCn_D.NVNukeCn_D AnimationMode = ONCE End AliasConditionState = REALLYDAMAGED UNPACKING BETWEEN_FIRING_SHOTS_A ;Very long shot delay ;*** PACKING STATE -- preparing to move *** ConditionState = PACKING Animation = NVNukeCn.NVNukeCn AnimationMode = ONCE_BACKWARDS Flags = START_FRAME_LAST End AliasConditionState = PACKING BETWEEN_FIRING_SHOTS_A ;Very long shot delay ;*** ConditionState = REALLYDAMAGED PACKING Model = NVNukeCn_D Animation = NVNukeCn_D.NVNukeCn_D AnimationMode = ONCE_BACKWARDS Flags = START_FRAME_LAST End AliasConditionState = REALLYDAMAGED PACKING BETWEEN_FIRING_SHOTS_A ;Very long shot delay ;*** DEPLOYED STATE -- ready to fire *** ConditionState = DEPLOYED Animation = NVNukeCn.NVNukeCn AnimationMode = ONCE Flags = START_FRAME_LAST TransitionKey = TRANS_FIRING_A HideSubObject = TURRETFRONT TURRETBACK ;Hide pack/unpack animated turret ShowSubObject = TURRET01 ;Show controlled turret End AliasConditionState = DEPLOYED FIRING_A AliasConditionState = DEPLOYED BETWEEN_FIRING_SHOTS_A AliasConditionState = DEPLOYED RELOADING_A AliasConditionState = DEPLOYED MOVING ConditionState = DEPLOYED REALLYDAMAGED Model = NVNukeCn_D Animation = NVNukeCn_D.NVNukeCn_D AnimationMode = ONCE Flags = START_FRAME_LAST TransitionKey = TRANS_FIRING_A HideSubObject = TURRETFRONT TURRETBACK ;Hide pack/unpack animated turret ShowSubObject = TURRET01 ;Show controlled turret End AliasConditionState = DEPLOYED REALLYDAMAGED FIRING_A AliasConditionState = DEPLOYED REALLYDAMAGED BETWEEN_FIRING_SHOTS_A AliasConditionState = DEPLOYED REALLYDAMAGED RELOADING_A AliasConditionState = DEPLOYED REALLYDAMAGED MOVING TrackMarks = EXTnkTrack.tga TreadAnimationRate = 4.0 ; amount of tread texture to move per second End ; ***DESIGN parameters *** DisplayName = OBJECT:NukeLauncher Side = China EditorSorting = VEHICLE TransportSlotCount = 10 ;how many "slots" we take in a transport (0 == not transportable) WeaponSet Conditions = None Weapon = PRIMARY NukeCannonGun AutoChooseSources = PRIMARY FROM_PLAYER FROM_SCRIPT FROM_AI End ArmorSet Conditions = None Armor = TankArmor DamageFX = TankDamageFX End BuildCost = 1600 BuildTime = 20.0 ;in seconds VisionRange = 180 ShroudClearingRange = 350 Prerequisites Object = ChinaWarFactory Object = ChinaPropagandaCenter Science = SCIENCE_NukeLauncher End ExperienceValue = 50 100 200 400 ;Experience point value at each level ExperienceRequired = 0 400 600 1000 ;Experience points needed to gain each level IsTrainable = Yes ;Can gain experience CrusherLevel = 2 ;What can I crush?: 1 = infantry, 2 = trees, 3 = vehicles CrushableLevel = 2 ;What am I?: 0 = for infantry, 1 = for trees, 2 = general vehicles CommandSet = ChinaVehicleNukeCannonCommandSet ; *** AUDIO Parameters *** VoiceSelect = NukeCannonVoiceSelect VoiceMove = NukeCannonVoiceMove VoiceGuard = NukeCannonVoiceMove VoiceAttack = NukeCannonVoiceAttack SoundMoveStart = NukeCannonMoveStart SoundMoveStartDamaged = NukeCannonMoveStart UnitSpecificSounds ; These have the syntax of SomeNameSomewhereInCode = SomeNameSomewhereInLookupINIs VoiceCreate = NukeCannonVoiceCreate TurretMoveStart = NoSound TurretMoveLoop = NukeCannonTurretMoveLoop VoiceEnter = NukeCannonVoiceMove Deploy = NukeCannonDeploy Undeploy = NukeCannonUnDeploy End ; *** ENGINEERING Parameters *** RadarPriority = UNIT KindOf = PRELOAD SELECTABLE CAN_ATTACK CAN_CAST_REFLECTIONS VEHICLE SCORE Body = ActiveBody ModuleTag_02 MaxHealth = 240.0 InitialHealth = 240.0 End Behavior = VeterancyGainCreate ModuleTag_03 StartingLevel = VETERAN ScienceRequired = SCIENCE_ArtilleryTraining End Behavior = DeployStyleAIUpdate ModuleTag_04 Turret TurretTurnRate = 80 TurretPitchRate = 80 FirePitch = 0 ; Instead of aiming pitchwise at the target, it will aim here AllowsPitch = Yes RecenterTime = 5000 ; how long to wait during idle before recentering ControlledWeaponSlots = PRIMARY NaturalTurretAngle = 0 InitiallyDisabled = Yes End AutoAcquireEnemiesWhenIdle = No PackTime = 3333 UnpackTime = 3333 TurretsFunctionOnlyWhenDeployed = Yes TurretsMustCenterBeforePacking = Yes End Locomotor = SET_NORMAL ChinaNukeCannonLocomotor Behavior = PhysicsBehavior ModuleTag_05 Mass = 50.0 End Behavior = SlowDeathBehavior ModuleTag_06 DeathTypes = ALL -CRUSHED -SPLATTED DestructionDelay = 500 DestructionDelayVariance = 100 FX = INITIAL FX_BattleMasterExplosionOneFinal OCL = INITIAL OCL_RadiationFieldSmall OCL = MIDPOINT OCL_ChinaVehicleNukeCannonDie OCL = FINAL OCL_RadiationFieldSmall FX = FINAL FX_ChinaVehicleNukeCannonDeathExplosion End ; A crushing defeat Behavior = FXListDie ModuleTag_07 DeathTypes = NONE +CRUSHED +SPLATTED DeathFX = FX_CarCrush End Behavior = CreateObjectDie ModuleTag_08 DeathTypes = NONE +CRUSHED +SPLATTED CreationList = OCL_CrusaderTank_CrushEffect End Behavior = CreateCrateDie ModuleTag_09 CrateData = SalvageCrateData ;CrateData = EliteTankCrateData ;CrateData = HeroicTankCrateData End Behavior = StealthDetectorUpdate ModuleTag_HijackerDetect DetectionRate = 500 DetectionRange = 75 CanDetectWhileGarrisoned = No CanDetectWhileContained = No ExtraRequiredKindOf = BOAT End Behavior = TransitionDamageFX ModuleTag_10 ReallyDamagedParticleSystem1 = Bone:Smoke RandomBone:Yes PSys:SmallLightSmokeColumn ReallyDamagedFXList1 = Loc: X:0 Y:0 Z:0 FXList:FX_NukeCannonDamageTransition End Behavior = DestroyDie ModuleTag_11 DeathTypes = NONE +CRUSHED +SPLATTED End Behavior = FlammableUpdate ModuleTag_21 AflameDuration = 5000 ; If I catch fire, I'll burn for this long... AflameDamageAmount = 3 ; taking this much damage... AflameDamageDelay = 500 ; this often. End Geometry = BOX GeometryMajorRadius = 32.0 GeometryMinorRadius = 10.0 GeometryHeight = 17.0 GeometryIsSmall = No Shadow = SHADOW_VOLUME ShadowSizeX = 45 ; minimum elevation angle above horizon. Used to limit shadow length End ;------------------------------------------------------------------------------ Object ChinaTankGattling ; *** ART Parameters *** SelectPortrait = SNGatlingTank_L ButtonImage = SNGatlingTank ;UpgradeCameo1 = Upgrade_Nationalism UpgradeCameo1 = Upgrade_ChinaChainGuns ;UpgradeCameo3 = NONE ;UpgradeCameo4 = NONE ;UpgradeCameo5 = NONE Draw = W3DTankDraw ModuleTag_01 OkToChangeModelColor = Yes DefaultConditionState Model = NVGattTank Animation = NVGattTank.NVGattTank AnimationMode = MANUAL Turret = TURRET01 TurretPitch = TURRETEL01 WeaponMuzzleFlash = PRIMARY MuzzleFX WeaponFireFXBone = PRIMARY Muzzle WeaponMuzzleFlash = SECONDARY MuzzleFX WeaponFireFXBone = SECONDARY Muzzle End ConditionState = REALLYDAMAGED RUBBLE Model = NVGattTank_D End ;-----pristine attacking---------------------- ConditionState = ATTACKING Model = NVGattTank Animation = NVGattTank.NVGattTank AnimationMode = LOOP AnimationSpeedFactorRange = 0.5 0.5 ;set this state to animate s l o w l y End ConditionState = CONTINUOUS_FIRE_SLOW ATTACKING Model = NVGattTank Animation = NVGattTank.NVGattTank AnimationMode = LOOP AnimationSpeedFactorRange = 0.8 0.8 ;set this state to animate s l o w l y End ConditionState = CONTINUOUS_FIRE_MEAN ATTACKING Model = NVGattTank Animation = NVGattTank.NVGattTank AnimationMode = LOOP AnimationSpeedFactorRange = 1.5 1.5 ;set this state to animate medium-fast End ConditionState = CONTINUOUS_FIRE_FAST ATTACKING Model = NVGattTank Animation = NVGattTank.NVGattTank AnimationMode = LOOP ParticleSysBone = Muzzle01 GattlingMuzzleSmoke AnimationSpeedFactorRange = 3.0 3.0 ;set this state to animate vryfst End ;-----damaged attacking---------------------- ConditionState REALLYDAMAGED ATTACKING Model = NVGattTank_D Animation = NVGattTank_D.NVGattTank_D AnimationMode = LOOP AnimationSpeedFactorRange = 0.5 0.5 ;set this state to animate extemely sloowly End ConditionState = CONTINUOUS_FIRE_SLOW REALLYDAMAGED ATTACKING Model = NVGattTank_D Animation = NVGattTank_D.NVGattTank_D AnimationMode = LOOP AnimationSpeedFactorRange = 0.8 0.8 ;set this state to animate s l o w l y End ConditionState = CONTINUOUS_FIRE_MEAN REALLYDAMAGED ATTACKING Model = NVGattTank_D Animation = NVGattTank_D.NVGattTank_D AnimationMode = LOOP AnimationSpeedFactorRange = 1.5 1.5 ;set this state to animate medium-fast End ConditionState = CONTINUOUS_FIRE_FAST REALLYDAMAGED ATTACKING Model = NVGattTank_D Animation = NVGattTank_D.NVGattTank_D AnimationMode = LOOP ParticleSysBone = Muzzle01 GattlingMuzzleSmoke AnimationSpeedFactorRange = 3.0 3.0 ;set this state to animate vryfst End TrackMarks = EXTnkTrack.tga TreadAnimationRate = 2.0 ; amount of tread texture to move per second TreadDriveSpeedFraction = 0.3 ; fraction of locomotor speed below which treads stop moving. TreadPivotSpeedFraction = 0.6 ; fraction of locomotor speed below which we allow pivoting. End ; ***DESIGN parameters *** DisplayName = OBJECT:GattlingTank Side = China EditorSorting = VEHICLE TransportSlotCount = 3 ;how many "slots" we take in a transport (0 == not transportable) WeaponSet Conditions = None Weapon = PRIMARY GattlingTankGun PreferredAgainst = PRIMARY AIRCRAFT Weapon = SECONDARY GattlingTankGunAir End ArmorSet Conditions = None Armor = AntiAirVehicle DamageFX = TankDamageFX End BuildCost = 800 BuildTime = 10.0 ;in seconds VisionRange = 150 ShroudClearingRange = 360 Prerequisites Object = ChinaWarFactory End ExperienceValue = 50 50 100 150 ;Experience point value at each level ExperienceRequired = 0 100 150 300 ;Experience points needed to gain each level IsTrainable = Yes ;Can gain experience CrusherLevel = 2 ;What can I crush?: 1 = infantry, 2 = trees, 3 = vehicles CrushableLevel = 2 ;What am I?: 0 = for infantry, 1 = for trees, 2 = general vehicles CommandSet = ChinaVehicleGattlingTankCommandSet Behavior = AIUpdateInterface ModuleTag_20 AutoAcquireEnemiesWhenIdle = Yes MoodAttackCheckRate = 250 End ; *** AUDIO Parameters *** VoiceSelect = GattlingTankVoiceSelect VoiceMove = GattlingTankVoiceMove VoiceGuard = GattlingTankVoiceMove VoiceAttack = GattlingTankVoiceAttack SoundMoveStart = GattlingTankMoveStart SoundMoveStartDamaged = GattlingTankMoveStart UnitSpecificSounds ; These have the syntax of SomeNameSomewhereInCode = SomeNameSomewhereInLookupINIs VoiceCreate = GattlingTankVoiceCreate TurretMoveStart = NoSound TurretMoveLoop = TurretMoveLoopLoud VoiceCrush = GattlingTankVoiceCrush VoiceEnter = GattlingTankVoiceMove VoiceRapidFire = GattlingTankVoiceRapid End ; *** ENGINEERING Parameters *** RadarPriority = UNIT KindOf = PRELOAD SELECTABLE CAN_ATTACK ATTACK_NEEDS_LINE_OF_SIGHT CAN_CAST_REFLECTIONS VEHICLE SCORE Body = ActiveBody ModuleTag_02 MaxHealth = 300.0 InitialHealth = 300.0 End Behavior = AIUpdateInterface ModuleTag_03 Turret ControlledWeaponSlots = PRIMARY SECONDARY TurretTurnRate = 180 // turn rate, in degrees per sec TurretPitchRate = 180 AllowsPitch = Yes FiresWhileTurning = Yes NaturalTurretPitch = 45 ; this keeps it aimed half way between land and sky ; since you never know from whence cometh danger End AutoAcquireEnemiesWhenIdle = Yes End Locomotor = SET_NORMAL GattlingTankLocomotor Behavior = PhysicsBehavior ModuleTag_04 Mass = 40.0 End ; Behavior = DestroyDie ; ;nothing ; End ; Just explode death Behavior = SlowDeathBehavior ModuleTag_05 ProbabilityModifier = 19 DestructionDelay = 200 DestructionDelayVariance = 100 SinkRate = 0.5 ; in Dist/Sec OCL = FINAL OCL_ChinaTankGattlingDebris FX = FINAL FX_GattlingExplosionOneFinal End Behavior = CreateCrateDie ModuleTag_06 CrateData = SalvageCrateData ;CrateData = EliteTankCrateData ;CrateData = HeroicTankCrateData End Behavior = TransitionDamageFX ModuleTag_07 ReallyDamagedParticleSystem1 = Bone:Smoke RandomBone:Yes PSys:SmokeSmallContinuous01 ReallyDamagedFXList1 = Loc: X:0 Y:0 Z:0 FXList:FX_BattleMasterDamageTransition End Behavior = FlammableUpdate ModuleTag_21 AflameDuration = 5000 ; If I catch fire, I'll burn for this long... AflameDamageAmount = 3 ; taking this much damage... AflameDamageDelay = 500 ; this often. End Behavior = WeaponBonusUpgrade ModuleTag_22 TriggeredBy = Upgrade_ChinaChainGuns End Behavior = StealthDetectorUpdate ModuleTag_HijackerDetect DetectionRate = 500 DetectionRange = 75 CanDetectWhileGarrisoned = No CanDetectWhileContained = No ExtraRequiredKindOf = BOAT End Geometry = BOX GeometryMajorRadius = 15.0 GeometryMinorRadius = 10.0 GeometryHeight = 15.0 GeometryIsSmall = Yes Shadow = SHADOW_VOLUME ShadowSizeX = 45 ; minimum elevation angle above horizon. Used to limit shadow length End ;------------------------------------------------------------------------------ Object GLALightTank ; *** ART Parameters *** Draw = W3DTankDraw ModuleTag_01 OkToChangeModelColor = Yes DefaultConditionState Model = UVLiteTank WeaponMuzzleFlash = PRIMARY MuzzleFX End TrackMarks = EXTnkTrack.tga TreadAnimationRate = 2.0 ; amount of tread texture to move per second TreadDriveSpeedFraction = 0.3 ; fraction of locomotor speed below which treads stop moving. TreadPivotSpeedFraction = 0.6 ; fraction of locomotor speed below which we allow pivoting. End ; ***DESIGN parameters *** DisplayName = OBJECT:Scorpion Side = GLA EditorSorting = VEHICLE TransportSlotCount = 3 ;how many "slots" we take in a transport (0 == not transportable) WeaponSet Conditions = None Weapon = PRIMARY CrusaderTankGun End ArmorSet Conditions = None Armor = TruckArmor DamageFX = TankDamageFX End BuildCost = 900 BuildTime = 10.0 ;in seconds VisionRange = 200 ShroudClearingRange = 200 Prerequisites Object = GLAArmsDealer End ExperienceValue = 50 100 150 400 ;Experience point value at each level ExperienceRequired = 0 150 450 900 ;Experience points needed to gain each level IsTrainable = Yes ;Can gain experience CrusherLevel = 2 ;What can I crush?: 1 = infantry, 2 = trees, 3 = vehicles CrushableLevel = 2 ;What am I?: 0 = for infantry, 1 = for trees, 2 = general vehicles ; *** AUDIO Parameters *** VoiceSelect = ScorpionTankVoiceSelect VoiceMove = ScorpionTankVoiceMove VoiceGuard = ScorpionTankVoiceMove VoiceAttack = ScorpionTankVoiceAttack SoundMoveStart = ScorpionTankMoveStart SoundMoveStartDamaged = ScorpionTankMoveStart UnitSpecificSounds ; These have the syntax of SomeNameSomewhereInCode = SomeNameSomewhereInLookupINIs VoiceCreate = ScorpionTankVoiceCreate TurretMoveStart = NoSound TurretMoveLoop = TurretMoveLoop VoiceCrush = ScorpionTankVoiceCrush VoiceEnter = ScorpionTankVoiceMove End ; *** ENGINEERING Parameters *** RadarPriority = UNIT KindOf = PRELOAD SELECTABLE CAN_ATTACK ATTACK_NEEDS_LINE_OF_SIGHT CAN_CAST_REFLECTIONS VEHICLE SALVAGER SCORE Body = ActiveBody ModuleTag_02 MaxHealth = 200.0 InitialHealth = 200.0 End Behavior = AIUpdateInterface ModuleTag_03 Turret ControlledWeaponSlots = PRIMARY End AutoAcquireEnemiesWhenIdle = Yes End Locomotor = SET_NORMAL BasicTankLocomotor Behavior = PhysicsBehavior ModuleTag_04 Mass = 40.0 End Behavior = DestroyDie ModuleTag_05 ;nothing End ; A crushing defeat Behavior = FXListDie ModuleTag_06 DeathTypes = NONE +CRUSHED +SPLATTED DeathFX = FX_CarCrush End Behavior = CreateObjectDie ModuleTag_07 DeathTypes = NONE +CRUSHED +SPLATTED CreationList = OCL_CrusaderTank_CrushEffect End Behavior = CreateCrateDie ModuleTag_08 CrateData = SalvageCrateData ;CrateData = EliteTankCrateData ;CrateData = HeroicTankCrateData End Behavior = FlammableUpdate ModuleTag_21 AflameDuration = 5000 ; If I catch fire, I'll burn for this long... AflameDamageAmount = 3 ; taking this much damage... AflameDamageDelay = 500 ; this often. End Behavior = StealthDetectorUpdate ModuleTag_HijackerDetect DetectionRate = 500 DetectionRange = 75 CanDetectWhileGarrisoned = No CanDetectWhileContained = No ExtraRequiredKindOf = BOAT End Geometry = BOX GeometryMajorRadius = 15.0 GeometryMinorRadius = 10.0 GeometryHeight = 15.0 GeometryIsSmall = Yes Shadow = SHADOW_VOLUME ShadowSizeX = 45 ; minimum elevation angle above horizon. Used to limit shadow length End ;------------------------------------------------------------------------------ ;China Supply Truck Object ChinaVehicleSupplyTruck ; *** ART Parameters *** SelectPortrait = SNSupplyTruck_L ButtonImage = SNSupplyTruck ;UpgradeCameo1 = NONE ;UpgradeCameo2 = NONE ;UpgradeCameo3 = NONE ;UpgradeCameo4 = NONE ;UpgradeCameo5 = NONE Draw = W3DTruckDraw ModuleTag_01 OkToChangeModelColor = Yes DefaultConditionState Model = NVSSUPPLYTK HideSubObject = Cargo01 End ConditionState = REALLYDAMAGED Model = NVSSUPPLYTK_D End ConditionState = RUBBLE Model = NVSSUPPLYTK_D End ConditionState = CARRYING ShowSubObject = Cargo01 End ConditionState = REALLYDAMAGED CARRYING Model = NVSSUPPLYTK_D ShowSubObject = Cargo01 End ConditionState = RUBBLE CARRYING Model = NVSSUPPLYTK_D ShowSubObject = Cargo01 End TrackMarks = EXTireTrack.tga LeftFrontTireBone = Tire01 RightFrontTireBone = Tire02 MidLeftRearTireBone = Tire03 MidRightRearTireBone = Tire04 LeftRearTireBone = Tire05 RightRearTireBone = Tire06 TireRotationMultiplier = 0.2 ; this * speed = rotation. PowerslideRotationAddition = 2.5 ; This speed is added to the rotation speed when powersliding. Dust = RocketBuggyDust DirtSpray = RocketBuggyDirtSpray PowerslideSpray = RocketBuggyDirtPowerSlide End ; ***DESIGN parameters *** DisplayName = OBJECT:SupplyTruck Side = China EditorSorting = VEHICLE TransportSlotCount = 2 ;how many "slots" we take in a transport (0 == not transportable) BuildCost = 600 BuildTime = 10.0 ;in seconds VisionRange = 150 ShroudClearingRange = 300 Prerequisites Object = ChinaSupplyCenter End ArmorSet Conditions = None Armor = TruckArmor DamageFX = TankDamageFX End CrusherLevel = 2 ;What can I crush?: 1 = infantry, 2 = trees, 3 = vehicles CrushableLevel = 2 ;What am I?: 0 = for infantry, 1 = for trees, 2 = general vehicles CommandSet = ChinaSupplyTruckCommandSet ; *** AUDIO Parameters *** VoiceSelect = SupplyTruckVoiceSelect VoiceMove = SupplyTruckVoiceMove VoiceAttack = SupplyTruckVoiceAttack SoundMoveStart = SupplyTruckMoveStart SoundMoveStartDamaged = SupplyTruckMoveStart UnitSpecificSounds VoiceCreate = SupplyTruckVoiceCreate TruckLandingSound = NoSound TruckPowerslideSound = NoSound VoiceSupply = SupplyTruckVoiceSupply VoiceCrush = SupplyTruckVoiceCrush VoiceEnter = SupplyTruckVoiceMove End ; *** ENGINEERING Parameters *** RadarPriority = UNIT ;@todo lorenzen removed the CAN_ATTACK from the chinasupplytruck... ok? KindOf = PRELOAD SELECTABLE CAN_CAST_REFLECTIONS VEHICLE HARVESTER SCORE Body = ActiveBody ModuleTag_02 MaxHealth = 300.0 InitialHealth = 300.0 End Behavior = SupplyTruckAIUpdate ModuleTag_03 MaxBoxes = 4 SupplyCenterActionDelay = 400 ; ms for whole thing (one transaction) SupplyWarehouseActionDelay = 1000 ; ms per box (many small transactions) SupplyWarehouseScanDistance = 700 ;350 ; Max distance to look for a warehouse, or we go home. (Direct dock command on warehouse overrides, and no max on Center Scan) SuppliesDepletedVoice = SupplyTruckVoiceSuppliesDepleted End Locomotor = SET_NORMAL SupplyTruckLocomotor Behavior = PhysicsBehavior ModuleTag_04 Mass = 5.0 End ExperienceValue = 50 50 50 50 ;Experience point value at each level Behavior = SlowDeathBehavior ModuleTag_05 DeathTypes = ALL -CRUSHED -SPLATTED DestructionDelay = 200 DestructionDelayVariance = 100 FX = FINAL FX_SupplyTruckExplosionOneFinal OCL = FINAL OCL_ChinaSupplyTruckDeathEffect End Behavior = FXListDie ModuleTag_06 DeathTypes = NONE +CRUSHED +SPLATTED DeathFX = FX_CarCrush End Behavior = CreateObjectDie ModuleTag_07 DeathTypes = NONE +CRUSHED +SPLATTED CreationList = OCL_ChinaSupplyTruck_CrushEffect End Behavior = TransitionDamageFX ModuleTag_08 ReallyDamagedParticleSystem1 = Bone:Smoke RandomBone:Yes PSys:SmallLightSmokeColumn ReallyDamagedFXList1 = Loc: X:0 Y:0 Z:0 FXList:FX_NukeCannonDamageTransition End Behavior = FlammableUpdate ModuleTag_10 AflameDuration = 5000 ; If I catch fire, I'll burn for this long... AflameDamageAmount = 3 ; taking this much damage... AflameDamageDelay = 500 ; this often. End ; A crushing defeat Behavior = DestroyDie ModuleTag_11 DeathTypes = NONE +CRUSHED +SPLATTED End Behavior = CreateCrateDie ModuleTag_12 CrateData = SalvageCrateData End Behavior = StealthDetectorUpdate ModuleTag_HijackerDetect DetectionRate = 500 DetectionRange = 75 CanDetectWhileGarrisoned = No CanDetectWhileContained = No ExtraRequiredKindOf = BOAT End Geometry = BOX GeometryMajorRadius = 17.0 GeometryMinorRadius = 7.0 GeometryHeight = 14.0 GeometryIsSmall = No Shadow = SHADOW_VOLUME ShadowSizeX = 45 ; minimum elevation angle above horizon. Used to limit shadow length End ;------------------------------------------------------------------------------ ;USA Construction Dozer or USDozer Object AmericaVehicleDozer ; *** ART Parameters *** SelectPortrait = SACDozer_L ButtonImage = SACDozer Draw = W3DTruckDraw ModuleTag_01 OkToChangeModelColor = Yes ConditionState = NONE Model = AVCONSTDOZ_A ParticleSysBone = EXHAUSTFX01 DozerSmokeLight WaitForStateToFinishIfPossible = TRANS_DIGGING End ConditionState = REALLYDAMAGED RUBBLE Model = AVCONSTDOZ_AD ParticleSysBone = EXHAUSTFX01 DozerSmokeHeavy WaitForStateToFinishIfPossible = TRANS_DIGGING_DAMAGED End ConditionState = MOVING Model = AVCONSTDOZ_A ParticleSysBone = EXHAUSTFX01 DozerSmokeHeavy WaitForStateToFinishIfPossible = TRANS_DIGGING End ConditionState = MOVING REALLYDAMAGED RUBBLE Model = AVCONSTDOZ_AD ParticleSysBone = EXHAUSTFX01 DozerSmokeHeavy WaitForStateToFinishIfPossible = TRANS_DIGGING_DAMAGED End ConditionState = PREATTACK_A Model = AVCONSTDOZ_A Animation = AVCONSTDOZ_A.AVCONSTDOZ_A AnimationMode = ONCE ParticleSysBone = EXHAUSTFX01 DozerSmokeHeavy ParticleSysBone = DIRTFX01 DozerDirtFall ;gush of dirt TransitionKey = TRANS_DIGGING End ConditionState = PREATTACK_A REALLYDAMAGED RUBBLE Model = AVCONSTDOZ_AD Animation = AVCONSTDOZ_AD.AVCONSTDOZ_AD AnimationMode = ONCE ParticleSysBone = EXHAUSTFX01 DozerSmokeHeavy TransitionKey = TRANS_DIGGING_DAMAGED End ConditionState = ACTIVELY_CONSTRUCTING Model = AVCONSTDOZ_A Animation = AVCONSTDOZ_A.AVCONSTDOZ_A AnimationMode = ONCE ParticleSysBone = EXHAUSTFX01 DozerSmokeHeavy ParticleSysBone = DIRTFX01 DozerDirtFall WaitForStateToFinishIfPossible = TRANS_DIGGING End ConditionState = ACTIVELY_CONSTRUCTING REALLYDAMAGED RUBBLE Model = AVCONSTDOZ_AD Animation = AVCONSTDOZ_AD.AVCONSTDOZ_AD AnimationMode = ONCE ParticleSysBone = EXHAUSTFX01 DozerSmokeHeavy ParticleSysBone = DIRTFX01 DozerDirtFall WaitForStateToFinishIfPossible = TRANS_DIGGING_DAMAGED End TrackMarks = EXTireTrack2.tga Dust = RocketBuggyDust DirtSpray = RocketBuggyDirtSpray ; These parameters are only used if the model has a separate suspension, ; and the locomotor has HasSuspension = Yes. LeftFrontTireBone = TIRE01 RightFrontTireBone = TIRE02 LeftRearTireBone = TIRE03 RightRearTireBone = TIRE04 TireRotationMultiplier = 0.2 ; this * speed = rotation. PowerslideRotationAddition = 0 ; This vehicle doesn't powerslide. End ; ***DESIGN parameters *** DisplayName = OBJECT:Dozer Side = America EditorSorting = VEHICLE TransportSlotCount = 5 ;how many "slots" we take in a transport (0 == not transportable) BuildCost = 1000 BuildTime = 5.0 ; in seconds VisionRange = 200 ShroudClearingRange = 200 WeaponSet Conditions = None Weapon = PRIMARY None End WeaponSet Conditions = MINE_CLEARING_DETAIL Weapon = PRIMARY DozerMineDisarmingWeapon End ArmorSet Conditions = None Armor = DozerArmor ;Special Explosion-Proof Armor DamageFX = TankDamageFX End CrusherLevel = 2 ;What can I crush?: 1 = infantry, 2 = trees, 3 = vehicles CrushableLevel = 2 ;What am I?: 0 = for infantry, 1 = for trees, 2 = general vehicles CommandSet = AmericaDozerCommandSet ; *** AUDIO Parameters *** VoiceSelect = DozerUSAVoiceSelect VoiceMove = DozerUSAVoiceMove VoiceGuard = DozerUSAVoiceMove VoiceTaskComplete = DozerUSAVoiceBuildComplete SoundMoveStart = DozerUSAMoveStart SoundMoveStartDamaged = DozerUSAMoveStart UnitSpecificSounds VoiceCreate = DozerUSAVoiceCreate VoiceNoBuild = DozerUSAVoiceBuildNot VoiceCrush = DozerUSAVoiceCrush VoiceRepair = DozerUSAVoiceRepair VoiceDisarm = DozerUSAVoiceClearMine TruckLandingSound = NoSound TruckPowerslideSound = NoSound VoiceEnter = DozerUSAVoiceMove VoiceBuildResponse = DozerUSAVoiceBuild End ; *** ENGINEERING Parameters *** RadarPriority = UNIT KindOf = PRELOAD VEHICLE SCORE SELECTABLE CAN_CAST_REFLECTIONS DOZER Body = ActiveBody ModuleTag_02 MaxHealth = 250.0 InitialHealth = 250.0 End Behavior = DozerAIUpdate ModuleTag_03 RepairHealthPercentPerSecond = 2% ; % of max health to repair each second BoredTime = 5000 ; in milliseconds BoredRange = 150 ; when bored, we look this far away to do something AutoAcquireEnemiesWhenIdle = Yes End Locomotor = SET_NORMAL AmericaVehicleDozerLocomotor Behavior = PhysicsBehavior ModuleTag_04 Mass = 75.0 End Behavior = StealthDetectorUpdate ModuleTag_05 DetectionRate = 500 ; how often to rescan for stealthed things in my sight (msec) ;DetectionRange = ??? ;Dustin, enable this for independant balancing! CanDetectWhileGarrisoned = No ;Garrisoned means being in a structure that you units can shoot out of. CanDetectWhileContained = No ;Contained means being in a transport or tunnel network. ExtraRequiredKindOf = MINE ; we can only detect MINES, not other stealthed things End Behavior = StealthDetectorUpdate ModuleTag_HijackerDetect DetectionRate = 500 DetectionRange = 75 CanDetectWhileGarrisoned = No CanDetectWhileContained = No ExtraRequiredKindOf = BOAT End Behavior = TransitionDamageFX ModuleTag_06 ReallyDamagedParticleSystem1 = Bone:Smoke RandomBone:Yes PSys:SmokeSmallContinuous01 ReallyDamagedFXList1 = Loc: X:0 Y:0 Z:0 FXList:FX_BattleMasterDamageTransition End ; Catch fire, and explode death Behavior = SlowDeathBehavior ModuleTag_07 DeathTypes = ALL -CRUSHED -SPLATTED ProbabilityModifier = 100 DestructionDelay = 1500 DestructionDelayVariance = 600 FX = INITIAL FX_CrusaderCatchFire OCL = FINAL OCL_AmericaDozerExplode FX = FINAL FX_BattleMasterExplosionOneFinal End Behavior = CreateCrateDie ModuleTag_CratesChange CrateData = SalvageCrateData End Behavior = FlammableUpdate ModuleTag_21 AflameDuration = 5000 ; If I catch fire, I'll burn for this long... AflameDamageAmount = 3 ; taking this much damage... AflameDamageDelay = 500 ; this often. End ClientUpdate = AnimatedParticleSysBoneClientUpdate ModuleTag_22 End Behavior = FXListDie ModuleTag_23 DeathTypes = NONE +CRUSHED +SPLATTED DeathFX = FX_CarCrush End Behavior = DestroyDie ModuleTag_24 DeathTypes = NONE +CRUSHED +SPLATTED End ;----------------------- Command Set Changes ----------------------- Behavior = CommandSetUpgrade ModuleTag_commandup CommandSet = AmericaDozerCommandSetTech TriggeredBy = Upgrade_AmericaDozerUpgrade End Behavior = CommandSetUpgrade ModuleTag_commandup2 CommandSet = AmericaDozerCommandSet TriggeredBy = Upgrade_AmericaDozerUpgradeDefault End ; releases the upgrade otherwise you cannot switch between them since they've already been purchased Behavior = ObjectCreationUpgrade ModuleTag_commandup3 UpgradeObject = OCL_AmericaCommandsetupgraderelease TriggeredBy = Upgrade_AmericaDozerUpgrade Upgrade_AmericaDozerUpgradeDefault End ;------------------------------------------------------------------ Behavior = ProductionUpdate ModuleTag_25 ;MaxQueueEntries = 1 End Geometry = BOX GeometryMajorRadius = 15.0 GeometryMinorRadius = 10.0 GeometryHeight = 15.0 GeometryIsSmall = Yes Shadow = SHADOW_VOLUME ShadowSizeX = 45 ; minimum elevation angle above horizon. Used to limit shadow length End ;------------------------------------------------------------------------------ ; Note, this is really a Civ dozer that's used only for eye-candy purposes. ; It doesn't have mine-disarming ability. It probably shouldn't even have Dozer ; ability, but I have left that in for now. But don't use this for true Dozer purposes. ; Object GLAVehicleDozer ; *** ART Parameters *** SelectPortrait = SNDozer_L ButtonImage = SNDozer Draw = W3DModelDraw ModuleTag_01 OkToChangeModelColor = Yes DefaultConditionState Model = AVCONSTDOZ End End ; ***DESIGN parameters *** DisplayName = OBJECT:Dozer Side = GLA EditorSorting = VEHICLE TransportSlotCount = 5 ;how many "slots" we take in a transport (0 == not transportable) BuildCost = 100 BuildTime = 5.0 ;in seconds VisionRange = 150 ShroudClearingRange = 300 ArmorSet Conditions = None Armor = TankArmor DamageFX = TankDamageFX End CrusherLevel = 2 ;What can I crush?: 1 = infantry, 2 = trees, 3 = vehicles CrushableLevel = 2 ;What am I?: 0 = for infantry, 1 = for trees, 2 = general vehicles CommandSet = GLADozerCommandSet ; *** AUDIO Parameters *** SoundMoveStart = NoSound ; *** ENGINEERING Parameters *** RadarPriority = UNIT KindOf = PRELOAD VEHICLE SCORE SELECTABLE CAN_CAST_REFLECTIONS DOZER Body = ActiveBody ModuleTag_02 MaxHealth = 1000.0 InitialHealth = 1000.0 End Behavior = DozerAIUpdate ModuleTag_03 RepairHealthPercentPerSecond = 2% ; % of max health to repair each second BoredTime = 5000 ; in milliseconds BoredRange = 150 ; when bored, we look this far away to do something End Locomotor = SET_NORMAL BasicTankLocomotor Behavior = PhysicsBehavior ModuleTag_04 Mass = 75.0 End Behavior = DestroyDie ModuleTag_05 ;nothing End Behavior = FlammableUpdate ModuleTag_21 AflameDuration = 5000 ; If I catch fire, I'll burn for this long... AflameDamageAmount = 3 ; taking this much damage... AflameDamageDelay = 500 ; this often. End Geometry = BOX GeometryMajorRadius = 15.0 GeometryMinorRadius = 10.0 GeometryHeight = 15.0 GeometryIsSmall = Yes Shadow = SHADOW_VOLUME ShadowSizeX = 45 ; minimum elevation angle above horizon. Used to limit shadow length End ;------------------------------------------------------------------------------ ;China Construction Dozer Object ChinaVehicleDozer ; *** ART Parameters *** SelectPortrait = SNDozer_L ButtonImage = SNDozer Draw = W3DTankDraw ModuleTag_01 OkToChangeModelColor = Yes ConditionState = NONE Model = NVCONSTDOZ_A ParticleSysBone = EXHAUST01 DozerSmokeLight WaitForStateToFinishIfPossible = TRANS_DIGGING End ConditionState = REALLYDAMAGED RUBBLE Model = NVCONSTDOZ_AD ParticleSysBone = EXHAUST01 DozerSmokeHeavy WaitForStateToFinishIfPossible = TRANS_DIGGING_DAMAGED End ConditionState = MOVING Model = NVCONSTDOZ_A ParticleSysBone = EXHAUST01 DozerSmokeHeavy WaitForStateToFinishIfPossible = TRANS_DIGGING End ConditionState = MOVING REALLYDAMAGED RUBBLE Model = NVCONSTDOZ_AD ParticleSysBone = EXHAUST01 DozerSmokeHeavy WaitForStateToFinishIfPossible = TRANS_DIGGING_DAMAGED End ConditionState = PREATTACK_A Model = NVCONSTDOZ_A Animation = NVCONSTDOZ_A.NVCONSTDOZ_A AnimationMode = ONCE ParticleSysBone = EXHAUST01 DozerSmokeHeavy ParticleSysBone = DIRTFX01 DozerDirtFall ;gush of dirt TransitionKey = TRANS_DIGGING End ConditionState = PREATTACK_A REALLYDAMAGED RUBBLE Model = NVCONSTDOZ_AD Animation = NVCONSTDOZ_AD.NVCONSTDOZ_AD AnimationMode = ONCE ParticleSysBone = EXHAUST01 DozerSmokeHeavy TransitionKey = TRANS_DIGGING_DAMAGED End ConditionState = ACTIVELY_CONSTRUCTING Model = NVCONSTDOZ_A Animation = NVCONSTDOZ_A.NVCONSTDOZ_A AnimationMode = ONCE ParticleSysBone = EXHAUST01 DozerSmokeHeavy ParticleSysBone = DIRTFX01 DozerDirtFall WaitForStateToFinishIfPossible = TRANS_DIGGING End ConditionState = ACTIVELY_CONSTRUCTING REALLYDAMAGED RUBBLE Model = NVCONSTDOZ_AD Animation = NVCONSTDOZ_AD.NVCONSTDOZ_AD AnimationMode = ONCE ParticleSysBone = EXHAUST01 DozerSmokeHeavy ParticleSysBone = DIRTFX01 DozerDirtFall WaitForStateToFinishIfPossible = TRANS_DIGGING_DAMAGED End TrackMarks = EXTnkTrack.tga TreadAnimationRate = 2.0 ; amount of tread texture to move per second End ; ***DESIGN parameters *** DisplayName = OBJECT:Dozer Side = China EditorSorting = VEHICLE TransportSlotCount = 5 ;how many "slots" we take in a transport (0 == not transportable) BuildCost = 1000 BuildTime = 5.0 ;in seconds VisionRange = 150 ShroudClearingRange = 300 WeaponSet Conditions = None Weapon = PRIMARY None End WeaponSet Conditions = MINE_CLEARING_DETAIL Weapon = PRIMARY DozerMineDisarmingWeapon End ArmorSet Conditions = None Armor = DozerArmor ;Special Explosion-Proof Armor DamageFX = TankDamageFX End CrusherLevel = 2 ;What can I crush?: 1 = infantry, 2 = trees, 3 = vehicles CrushableLevel = 2 ;What am I?: 0 = for infantry, 1 = for trees, 2 = general vehicles CommandSet = ChinaDozerCommandSet ; *** AUDIO Parameters *** VoiceSelect = DozerChinaVoiceSelect VoiceMove = DozerChinaVoiceMove VoiceEnter = DozerChinaVoiceMove VoiceTaskComplete = DozerChinaVoiceBuildComplete SoundMoveStart = DozerChinaMoveStart SoundMoveStartDamaged = DozerChinaMoveStart UnitSpecificSounds VoiceCreate = DozerChinaVoiceCreate VoiceCrush = DozerChinaVoiceCrush VoiceNoBuild = DozerChinaVoiceBuildNot VoiceRepair = DozerChinaVoiceRepair VoiceDisarm = DozerChinaVoiceClearMine VoiceEnter = DozerChinaVoiceMove VoiceBuildResponse = DozerChinaVoiceBuild End ; *** ENGINEERING Parameters *** RadarPriority = UNIT KindOf = PRELOAD VEHICLE SCORE SELECTABLE CAN_CAST_REFLECTIONS DOZER Body = ActiveBody ModuleTag_02 MaxHealth = 250.0 InitialHealth = 250.0 End Behavior = DozerAIUpdate ModuleTag_03 RepairHealthPercentPerSecond = 2% ; % of max health to repair each second BoredTime = 5000 ; in milliseconds BoredRange = 150 ; when bored, we look this far away to do something AutoAcquireEnemiesWhenIdle = Yes End Locomotor = SET_NORMAL ChinaVehicleDozerLocomotor Behavior = PhysicsBehavior ModuleTag_04 Mass = 75.0 End Behavior = StealthDetectorUpdate ModuleTag_05 DetectionRate = 500 ; how often to rescan for stealthed things in my sight (msec) ;DetectionRange = ??? ;Dustin, enable this for independant balancing! CanDetectWhileGarrisoned = No ;Garrisoned means being in a structure that you units can shoot out of. CanDetectWhileContained = No ;Contained means being in a transport or tunnel network. ExtraRequiredKindOf = MINE ; we can only detect MINES, not other stealthed things End Behavior = StealthDetectorUpdate ModuleTag_HijackerDetect DetectionRate = 500 DetectionRange = 75 CanDetectWhileGarrisoned = No CanDetectWhileContained = No ExtraRequiredKindOf = BOAT End Behavior = TransitionDamageFX ModuleTag_06 ReallyDamagedParticleSystem1 = Bone:Smoke RandomBone:Yes PSys:SmallLightSmokeColumn ReallyDamagedFXList1 = Loc: X:0 Y:0 Z:0 FXList:FX_BattleMasterDamageTransition End ; Catch fire, and explode death Behavior = SlowDeathBehavior ModuleTag_07 DeathTypes = ALL -CRUSHED -SPLATTED ProbabilityModifier = 100 DestructionDelay = 1500 DestructionDelayVariance = 600 FX = INITIAL FX_CrusaderCatchFire OCL = FINAL OCL_ChinaDozerExplode FX = FINAL FX_BattleMasterExplosionOneFinal End Behavior = CreateCrateDie ModuleTag_09 CrateData = SalvageCrateData End Behavior = FlammableUpdate ModuleTag_21 AflameDuration = 5000 ; If I catch fire, I'll burn for this long... AflameDamageAmount = 3 ; taking this much damage... AflameDamageDelay = 500 ; this often. End Behavior = FXListDie ModuleTag_22 DeathTypes = NONE +CRUSHED +SPLATTED DeathFX = FX_CarCrush End Behavior = DestroyDie ModuleTag_23 DeathTypes = NONE +CRUSHED +SPLATTED End ;----------------------- Command Set Changes ----------------------- Behavior = CommandSetUpgrade ModuleTag_commandup CommandSet = ChinaDozerCommandSetTech TriggeredBy = Upgrade_ChinaDozerUpgrade End Behavior = CommandSetUpgrade ModuleTag_commandup2 CommandSet = ChinaDozerCommandSet TriggeredBy = Upgrade_ChinaDozerUpgradeDefault End ; releases the upgrade otherwise you cannot switch between them since they've already been purchased Behavior = ObjectCreationUpgrade ModuleTag_commandup3 UpgradeObject = OCL_ChinaCommandsetupgraderelease TriggeredBy = Upgrade_ChinaDozerUpgrade Upgrade_ChinaDozerUpgradeDefault End ;------------------------------------------------------------------ Behavior = ProductionUpdate ModuleTag_24 ;MaxQueueEntries = 1 End Geometry = BOX GeometryMajorRadius = 17.0;new radius to align mine sweeping position ;GeometryMajorRadius = 21.0;old radius GeometryMinorRadius = 10.0 GeometryHeight = 15.0 GeometryIsSmall = NO Shadow = SHADOW_VOLUME ShadowSizeX = 45 ; minimum elevation angle above horizon. Used to limit shadow length End ;------------------------------------------------------------------------------ Object ScorpionMissile ; *** ART Parameters *** Draw = W3DModelDraw ModuleTag_01 OkToChangeModelColor = Yes ConditionState = NONE Model = UVScorpion_m End End ; ***DESIGN parameters *** DisplayName = OBJECT:Missile EditorSorting = SYSTEM VisionRange = 0.0 ArmorSet Conditions = None Armor = ProjectileArmor DamageFX = None End ; *** ENGINEERING Parameters *** KindOf = PROJECTILE SMALL_MISSILE Body = ActiveBody ModuleTag_02 MaxHealth = 100.0 InitialHealth = 100.0 End ; ---- begin Projectile death behaviors Behavior = InstantDeathBehavior DeathModuleTag_01 DeathTypes = NONE +DETONATED ; we detonated normally. ; no FX, just quiet destroy ourselves End Behavior = InstantDeathBehavior DeathModuleTag_02 DeathTypes = NONE +LASERED ; shot down by laser. FX = FX_GenericMissileDisintegrate OCL = OCL_GenericMissileDisintegrate End Behavior = InstantDeathBehavior DeathModuleTag_03 DeathTypes = ALL -LASERED -DETONATED ; shot down by nonlaser. FX = FX_GenericMissileDeath End ; ---- end Projectile death behaviors Behavior = PhysicsBehavior ModuleTag_06 Mass = 1 End Behavior = MissileAIUpdate ModuleTag_07 TryToFollowTarget = Yes FuelLifetime = 4000 InitialVelocity = 150 ; in dist/sec IgnitionDelay = 0 DistanceToTravelBeforeTurning = 30 IgnitionFX = FX_JetMissileIgnition End Locomotor = SET_NORMAL ScorpionMissileLocomotor Behavior = WeaponBonusUpgrade ModuleTag_08 TriggeredBy = Upgrade_GLAAPRockets End Geometry = Sphere GeometryIsSmall = Yes GeometryMajorRadius = 1.0 End ;------------------------------------------------------------------------------ Object RangerFlashBangGrenade ; *** ART Parameters *** Draw = W3DModelDraw ModuleTag_01 OkToChangeModelColor = Yes ConditionState = NONE Model = NVMBuggy_m End End ; ***DESIGN parameters *** DisplayName = OBJECT:FlashBangGrenade EditorSorting = SYSTEM ArmorSet Armor = ProjectileArmor End VisionRange = 0.0 ; *** ENGINEERING Parameters *** KindOf = PROJECTILE Body = ActiveBody ModuleTag_02 MaxHealth = 100.0 InitialHealth = 100.0 End Behavior = DestroyDie ModuleTag_03 ;nothing End Behavior = PhysicsBehavior ModuleTag_04 Mass = 1 End Behavior = DumbProjectileBehavior ModuleTag_05 ; To tweak a Bezier path, please see GS FirstHeight = 50 ; Height of Bezier control points above highest intervening terrain SecondHeight = 150 FirstPercentIndent = 30% ; Percentage of shot distance control points are placed SecondPercentIndent = 70% GarrisonHitKillRequiredKindOf = INFANTRY GarrisonHitKillForbiddenKindOf = NONE GarrisonHitKillCount = 10 ; ensure that a single grenade clears out all garrisoned buildings. GarrisonHitKillFX = FX_FlashBangGarrisonBuildingHit FlightPathAdjustDistPerSecond = 0 ; Can allow a max speed this can attempt to follow a target. Units are their velocity we can tag. End Geometry = Sphere GeometryIsSmall = Yes GeometryMajorRadius = 1.0 End ;------------------------------------------------------------------------------ Object ScorpionTankShell ; *** ART Parameters *** Draw = W3DModelDraw ModuleTag_01 ConditionState = NONE Model = AVTankShel End End ; ***DESIGN parameters *** DisplayName = OBJECT:TankShell EditorSorting = SYSTEM ArmorSet Armor = ProjectileArmor End VisionRange = 0.0 ; *** ENGINEERING Parameters *** KindOf = PROJECTILE Body = ActiveBody ModuleTag_02 MaxHealth = 100.0 InitialHealth = 100.0 End Behavior = DestroyDie ModuleTag_03 ;nothing End Behavior = FireWeaponWhenDeadBehavior ModuleTag_04 DeathWeapon = ToxinShellWeapon StartsActive = No ; turned on by upgrade TriggeredBy = Upgrade_GLAToxinShells ConflictsWith = Upgrade_GLAAnthraxBeta End Behavior = FireWeaponWhenDeadBehavior ModuleTag_05 DeathWeapon = ToxinShellWeaponUpgraded StartsActive = No ; turned on by upgrade TriggeredBy = Upgrade_GLAToxinShells Upgrade_GLAAnthraxBeta RequiresAllTriggers = Yes ;TriggeredBy is an AND, not an OR like it normally is End Behavior = DumbProjectileBehavior ModuleTag_06 DetonateCallsKill = Yes ; To tweak a Bezier path, please see GS FirstHeight = 10 ; Height of Bezier control points above highest intervening terrain SecondHeight = 10 FirstPercentIndent = 50% ; Percentage of shot distance control points are placed SecondPercentIndent = 90% FlightPathAdjustDistPerSecond = 100 ; Can allow a max speed this can attempt to follow a target. Units are their velocity we can tag. End Behavior = PhysicsBehavior ModuleTag_07 Mass = 0.01 ; can't be zero, but we want it tiny so that it travels nearly straight End ; The Toxin explosions don't want to double up on particles, so only play this effect if we don't have Toxin Behavior = FireWeaponWhenDeadBehavior ModuleTag_08 DeathWeapon = ScoprionTankGunFXWeapon StartsActive = Yes ConflictsWith = Upgrade_GLAToxinShells End Geometry = Sphere GeometryIsSmall = Yes GeometryMajorRadius = 1.0 End ;------------------------------------------------------------------------------ Object MarauderTankShell ; *** ART Parameters *** Draw = W3DModelDraw ModuleTag_01 ConditionState = NONE Model = AVTankShel End End ; ***DESIGN parameters *** DisplayName = OBJECT:TankShell EditorSorting = SYSTEM ArmorSet Armor = ProjectileArmor End VisionRange = 0.0 ; *** ENGINEERING Parameters *** KindOf = PROJECTILE Body = ActiveBody ModuleTag_02 MaxHealth = 100.0 InitialHealth = 100.0 End Behavior = DestroyDie ModuleTag_03 ;nothing End Behavior = FireWeaponWhenDeadBehavior ModuleTag_04 DeathWeapon = ToxinShellWeapon StartsActive = No ; turned on by upgrade TriggeredBy = Upgrade_GLAToxinShells ConflictsWith = Upgrade_GLAAnthraxBeta End Behavior = FireWeaponWhenDeadBehavior ModuleTag_05 DeathWeapon = ToxinShellWeaponUpgraded StartsActive = No ; turned on by upgrade TriggeredBy = Upgrade_GLAToxinShells Upgrade_GLAAnthraxBeta RequiresAllTriggers = Yes ;TriggeredBy is an AND, not an OR like it normally is End Behavior = DumbProjectileBehavior ModuleTag_06 DetonateCallsKill = Yes ; To tweak a Bezier path, please see GS FirstHeight = 10 ; Height of Bezier control points above highest intervening terrain SecondHeight = 10 FirstPercentIndent = 50% ; Percentage of shot distance control points are placed SecondPercentIndent = 90% FlightPathAdjustDistPerSecond = 100 ; Can allow a max speed this can attempt to follow a target. Units are their velocity we can tag. End Behavior = PhysicsBehavior ModuleTag_07 Mass = 0.01 ; can't be zero, but we want it tiny so that it travels nearly straight End Geometry = Sphere GeometryIsSmall = Yes GeometryMajorRadius = 1.0 End ;------------------------------------------------------------------------------ Object GenericTankShell ; *** ART Parameters *** Draw = W3DModelDraw ModuleTag_01 ConditionState = NONE Model = AVTankShel End End ; ***DESIGN parameters *** DisplayName = OBJECT:TankShell EditorSorting = SYSTEM ArmorSet Armor = ProjectileArmor End VisionRange = 0.0 ; *** ENGINEERING Parameters *** KindOf = PROJECTILE Body = ActiveBody ModuleTag_02 MaxHealth = 100.0 InitialHealth = 100.0 End Behavior = DestroyDie ModuleTag_03 ;nothing End Behavior = DumbProjectileBehavior ModuleTag_04 ; To tweak a Bezier path, please see GS FirstHeight = 10 ; Height of Bezier control points above highest intervening terrain SecondHeight = 10 FirstPercentIndent = 50% ; Percentage of shot distance control points are placed SecondPercentIndent = 90% FlightPathAdjustDistPerSecond = 100 ; Can allow a max speed this can attempt to follow a target. Units are their velocity we can tag. End Behavior = PhysicsBehavior ModuleTag_05 Mass = 0.01 ; we can't have a zero mass, but we want it pretty tiny... End Geometry = Sphere GeometryIsSmall = Yes GeometryMajorRadius = 1.0 End ;------------------------------------------------------------------------------ Object BattleMasterTankShell ; *** ART Parameters *** Draw = W3DModelDraw ModuleTag_01 ConditionState = NONE Model = AVTankShel End End ; ***DESIGN parameters *** DisplayName = OBJECT:TankShell EditorSorting = SYSTEM ArmorSet Armor = ProjectileArmor End VisionRange = 0.0 ; *** ENGINEERING Parameters *** KindOf = PROJECTILE Body = ActiveBody ModuleTag_02 MaxHealth = 100.0 InitialHealth = 100.0 End Behavior = DestroyDie ModuleTag_03 ;nothing End Behavior = DumbProjectileBehavior ModuleTag_04 ; To tweak a Bezier path, please see GS FirstHeight = 10 ; Height of Bezier control points above highest intervening terrain SecondHeight = 10 FirstPercentIndent = 50% ; Percentage of shot distance control points are placed SecondPercentIndent = 90% FlightPathAdjustDistPerSecond = 100 ; Can allow a max speed this can attempt to follow a target. Units are their velocity we can tag. End Behavior = PhysicsBehavior ModuleTag_05 Mass = 0.01 ; we can't have a zero mass, but we want it pretty tiny... End Behavior = WeaponBonusUpgrade ModuleTag_06 TriggeredBy = Upgrade_ChinaUraniumShells End Geometry = Sphere GeometryIsSmall = Yes GeometryMajorRadius = 1.0 End ;------------------------------------------------------------------------------ Object OverlordTankShell ; *** ART Parameters *** Draw = W3DModelDraw ModuleTag_01 ConditionState = NONE Model = AVTankShel End End ; ***DESIGN parameters *** DisplayName = OBJECT:TankShell EditorSorting = SYSTEM ArmorSet Armor = ProjectileArmor End VisionRange = 0.0 ; *** ENGINEERING Parameters *** KindOf = PROJECTILE Body = ActiveBody ModuleTag_02 MaxHealth = 100.0 InitialHealth = 100.0 End Behavior = DestroyDie ModuleTag_03 ;nothing End Behavior = DumbProjectileBehavior ModuleTag_04 ; To tweak a Bezier path, please see GS FirstHeight = 10 ; Height of Bezier control points above highest intervening terrain SecondHeight = 10 FirstPercentIndent = 50% ; Percentage of shot distance control points are placed SecondPercentIndent = 90% FlightPathAdjustDistPerSecond = 100 ; Can allow a max speed this can attempt to follow a target. Units are their velocity we can tag. End Behavior = PhysicsBehavior ModuleTag_05 Mass = 0.01 ; we can't have a zero mass, but we want it pretty tiny... End Behavior = WeaponBonusUpgrade ModuleTag_06 TriggeredBy = Upgrade_ChinaUraniumShells End Geometry = Sphere GeometryIsSmall = Yes GeometryMajorRadius = 1.0 End ;------------------------------------------------------------------------------ Object NukeCannonShell ; *** ART Parameters *** Draw = W3DModelDraw ModuleTag_01 ConditionState = NONE Model = AVTankShel End End ; ***DESIGN parameters *** DisplayName = OBJECT:TankShell EditorSorting = SYSTEM ArmorSet Armor = ProjectileArmor End VisionRange = 0.0 ; *** AUDIO Parameters *** SoundAmbient = NukeCannonIncomingWhistle ; *** ENGINEERING Parameters *** KindOf = PROJECTILE Body = ActiveBody ModuleTag_02 MaxHealth = 100.0 InitialHealth = 100.0 End Behavior = DestroyDie ModuleTag_03 ;nothing End Behavior = DumbProjectileBehavior ModuleTag_04 ; To tweak a Bezier path, please see GS FirstHeight = 50 ; Height of Bezier control points above highest intervening terrain SecondHeight = 150 FirstPercentIndent = 30% ; Percentage of shot distance control points are placed SecondPercentIndent = 70% FlightPathAdjustDistPerSecond = 0 ; Can allow a max speed this can attempt to follow a target. Units are their velocity we can tag. End Behavior = PhysicsBehavior ModuleTag_05 Mass = 0.01 ; we can't have a zero mass, but we want it pretty tiny... End Geometry = Sphere GeometryIsSmall = Yes GeometryMajorRadius = 1.0 End ;------------------------------------------------------------------------------ Object InfernoTankShell ; *** ART Parameters *** Draw = W3DModelDraw ModuleTag_01 ConditionState = NONE Model = AVTankShel ParticleSysBone = None InfernoTrail End End ; *** AUDIO Parameters *** SoundAmbient = InfernoCannonIncomingWhistle ; ***DESIGN parameters *** DisplayName = OBJECT:TankShell EditorSorting = SYSTEM ArmorSet Armor = ProjectileArmor End VisionRange = 0.0 ; *** ENGINEERING Parameters *** KindOf = PROJECTILE Body = ActiveBody ModuleTag_02 MaxHealth = 100.0 InitialHealth = 100.0 End Behavior = DestroyDie ModuleTag_03 ;nothing End Behavior = DumbProjectileBehavior ModuleTag_09 DetonateCallsKill = Yes ; To tweak a Bezier path, please see GS FirstHeight = 50 ; Height of Bezier control points above highest intervening terrain SecondHeight = 150 FirstPercentIndent = 20% ; Percentage of shot distance control points are placed SecondPercentIndent = 90% FlightPathAdjustDistPerSecond = 0 ; Can allow a max speed this can attempt to follow a target. Units are their velocity we can tag. End Behavior = PhysicsBehavior ModuleTag_05 Mass = 10 End Behavior = HeightDieUpdate ModuleTag_06 TargetHeight = 1.0 TargetHeightIncludesStructures = Yes OnlyWhenMovingDown = Yes InitialDelay = 1000 ; Can't explode in the first second so we don't explode on the pad End Behavior = FireWeaponWhenDeadBehavior ModuleTag_07 DeathWeapon = SmallFireFieldCreationWeapon StartsActive = Yes End Geometry = Sphere GeometryIsSmall = Yes GeometryMajorRadius = 1.0 End ;------------------------------------------------------------------------------ Object InfernoTankShellUpgraded ; *** ART Parameters *** Draw = W3DModelDraw ModuleTag_01 ConditionState = NONE Model = AVTankShel ParticleSysBone = None InfernoTrailUpgraded End End ; *** AUDIO Parameters *** SoundAmbient = InfernoCannonIncomingWhistle ; ***DESIGN parameters *** DisplayName = OBJECT:TankShell EditorSorting = SYSTEM ArmorSet Armor = ProjectileArmor End VisionRange = 0.0 ; *** ENGINEERING Parameters *** KindOf = PROJECTILE Body = ActiveBody ModuleTag_02 MaxHealth = 100.0 InitialHealth = 100.0 End Behavior = DestroyDie ModuleTag_03 ;nothing End Behavior = DumbProjectileBehavior ModuleTag_09 DetonateCallsKill = Yes ; To tweak a Bezier path, please see GS FirstHeight = 50 ; Height of Bezier control points above highest intervening terrain SecondHeight = 150 FirstPercentIndent = 20% ; Percentage of shot distance control points are placed SecondPercentIndent = 90% FlightPathAdjustDistPerSecond = 0 ; Can allow a max speed this can attempt to follow a target. Units are their velocity we can tag. End Behavior = PhysicsBehavior ModuleTag_05 Mass = 10 End Behavior = HeightDieUpdate ModuleTag_06 TargetHeight = 1.0 TargetHeightIncludesStructures = Yes OnlyWhenMovingDown = Yes InitialDelay = 1000 ; Can't explode in the first second so we don't explode on the pad End Behavior = FireWeaponWhenDeadBehavior ModuleTag_08 DeathWeapon = SmallFireFieldUpgradedCreationWeapon StartsActive = Yes End Geometry = Sphere GeometryIsSmall = Yes GeometryMajorRadius = 1.0 End ;------------------------------------------------------------------------------ Object DeadTankHulk ; *** ART Parameters *** Draw = W3DModelDraw ModuleTag_01 DefaultConditionState Model = GXMammoth_CH End End ; ***DESIGN parameters *** EditorSorting = DEBRIS ; *** ENGINEERING Parameters *** KindOf = NO_COLLIDE HULK Behavior = PhysicsBehavior ModuleTag_03 Mass = 100.0 AllowBouncing = Yes KillWhenRestingOnGround = Yes End Behavior = LifetimeUpdate ModuleTag_04 MinLifetime = 1500 ; min lifetime in msec MaxLifetime = 1600 ; max lifetime in msec End Behavior = SlowDeathBehavior ModuleTag_05 SinkDelay = 1500 SinkRate = 2 ; in Dist/Sec DestructionDelay = 8000 End End ;------------------------------------------------------------------------------ Object InfernoCannonHulk ; *** ART Parameters *** Draw = W3DModelDraw ModuleTag_01 DefaultConditionState Model = NVInferno_D1 End End ; ***DESIGN parameters *** EditorSorting = DEBRIS ; *** ENGINEERING Parameters *** KindOf = NO_COLLIDE HULK Behavior = PhysicsBehavior ModuleTag_03 Mass = 100.0 AllowBouncing = Yes KillWhenRestingOnGround = Yes End Behavior = LifetimeUpdate ModuleTag_04 MinLifetime = 1500 ; min lifetime in msec MaxLifetime = 1600 ; max lifetime in msec End Behavior = SlowDeathBehavior ModuleTag_05 SinkDelay = 1500 SinkRate = 2 ; in Dist/Sec DestructionDelay = 8000 End End ;------------------------------------------------------------------------------ Object DeadChinaSupplyTruckHulk ; *** ART Parameters *** Draw = W3DModelDraw ModuleTag_01 DefaultConditionState Model = NVSSupplyTK_D1 End End ; ***DESIGN parameters *** EditorSorting = DEBRIS ; *** ENGINEERING Parameters *** KindOf = NO_COLLIDE HULK Behavior = PhysicsBehavior ModuleTag_03 Mass = 100.0 AllowBouncing = Yes KillWhenRestingOnGround = Yes End Behavior = LifetimeUpdate ModuleTag_04 MinLifetime = 1500 ; min lifetime in msec MaxLifetime = 1600 ; max lifetime in msec End Behavior = SlowDeathBehavior ModuleTag_05 SinkDelay = 1500 SinkRate = 2 ; in Dist/Sec DestructionDelay = 8000 End End ;------------------------------------------------------------------------------ Object DeadChinaGattlingTankHulk ; *** ART Parameters *** Draw = W3DModelDraw ModuleTag_01 DefaultConditionState Model = NVGattTank_D1 End End ; ***DESIGN parameters *** EditorSorting = DEBRIS ; *** ENGINEERING Parameters *** KindOf = NO_COLLIDE HULK Behavior = PhysicsBehavior ModuleTag_03 Mass = 100.0 AllowBouncing = Yes KillWhenRestingOnGround = Yes End Behavior = LifetimeUpdate ModuleTag_04 MinLifetime = 1500 ; min lifetime in msec MaxLifetime = 1600 ; max lifetime in msec End Behavior = SlowDeathBehavior ModuleTag_05 SinkDelay = 1500 SinkDelayVariance = 1500 SinkRate = 2 ; in Dist/Sec DestructionDelay = 12000 DestructionDelayVariance = 4000 End End ;------------------------------------------------------------------------------ Object AmericaVehicleAmbulanceDeadHull ; *** ART Parameters *** Draw = W3DModelDraw ModuleTag_01 ConditionState = NONE Model = AVAmbulance_D1 End End ; ***DESIGN parameters *** EditorSorting = DEBRIS ; *** ENGINEERING Parameters *** KindOf = NO_COLLIDE HULK Behavior = PhysicsBehavior ModuleTag_03 Mass = 100.0 AllowBouncing = Yes KillWhenRestingOnGround = Yes End Behavior = LifetimeUpdate ModuleTag_04 MinLifetime = 1500 ; min lifetime in msec MaxLifetime = 1600 ; max lifetime in msec End Behavior = SlowDeathBehavior ModuleTag_05 SinkDelay = 1500 SinkDelayVariance = 1500 SinkRate = 2 ; in Dist/Sec DestructionDelay = 12000 DestructionDelayVariance = 4000 End End ;------------------------------------------------------------------------------ Object DeadSCUDLauncherHulk ; *** ART Parameters *** Draw = W3DModelDraw ModuleTag_01 DefaultConditionState Model = UVScudLchr_d1 End End ; ***DESIGN parameters *** EditorSorting = DEBRIS ; *** ENGINEERING Parameters *** KindOf = NO_COLLIDE HULK Behavior = PhysicsBehavior ModuleTag_03 Mass = 100.0 AllowBouncing = Yes KillWhenRestingOnGround = Yes End Behavior = LifetimeUpdate ModuleTag_04 MinLifetime = 1500 ; min lifetime in msec MaxLifetime = 1600 ; max lifetime in msec End Behavior = SlowDeathBehavior ModuleTag_05 SinkDelay = 1500 SinkRate = 2 ; in Dist/Sec DestructionDelay = 8000 End End ;------------------------------------------------------------------------------ Object DeadToxinTractorHulk ; *** ART Parameters *** Draw = W3DModelDraw ModuleTag_01 DefaultConditionState Model = UVToxinTrk_d1 End End ; ***DESIGN parameters *** EditorSorting = DEBRIS ; *** ENGINEERING Parameters *** KindOf = NO_COLLIDE HULK Behavior = PhysicsBehavior ModuleTag_03 Mass = 100.0 AllowBouncing = Yes KillWhenRestingOnGround = Yes End Behavior = LifetimeUpdate ModuleTag_04 MinLifetime = 1500 ; min lifetime in msec MaxLifetime = 1600 ; max lifetime in msec End Behavior = SlowDeathBehavior ModuleTag_05 SinkDelay = 1500 SinkRate = 2 ; in Dist/Sec DestructionDelay = 16000 End End ;------------------------------------------------------------------------------ Object DeadQuadCannonHulk ; *** ART Parameters *** Draw = W3DModelDraw ModuleTag_01 DefaultConditionState Model = UVQuadCann_d1 End End ; ***DESIGN parameters *** EditorSorting = DEBRIS ; *** ENGINEERING Parameters *** KindOf = NO_COLLIDE HULK Behavior = PhysicsBehavior ModuleTag_03 Mass = 100.0 AllowBouncing = Yes KillWhenRestingOnGround = Yes End Behavior = LifetimeUpdate ModuleTag_04 MinLifetime = 1500 ; min lifetime in msec MaxLifetime = 1600 ; max lifetime in msec End Behavior = SlowDeathBehavior ModuleTag_05 SinkDelay = 1500 SinkRate = 2 ; in Dist/Sec DestructionDelay = 16000 End End ;------------------------------------------------------------------------------ Object DeadBombTruckHulk ; *** ART Parameters *** Draw = W3DModelDraw ModuleTag_01 DefaultConditionState Model = UVBmbTruk_d1 End End ; ***DESIGN parameters *** EditorSorting = DEBRIS ; *** ENGINEERING Parameters *** KindOf = NO_COLLIDE HULK Behavior = PhysicsBehavior ModuleTag_03 Mass = 100.0 AllowBouncing = Yes KillWhenRestingOnGround = Yes End Behavior = LifetimeUpdate ModuleTag_04 MinLifetime = 1500 ; min lifetime in msec MaxLifetime = 1600 ; max lifetime in msec End Behavior = SlowDeathBehavior ModuleTag_05 SinkDelay = 1500 SinkRate = 2 ; in Dist/Sec DestructionDelay = 16000 End End ;------------------------------------------------------------------------------ Object DeadTechnicalVanHulk ; *** ART Parameters *** Draw = W3DModelDraw ModuleTag_01 DefaultConditionState Model = UVTECHVAN_d1 End End ; ***DESIGN parameters *** EditorSorting = DEBRIS ; *** ENGINEERING Parameters *** KindOf = NO_COLLIDE HULK Behavior = PhysicsBehavior ModuleTag_03 Mass = 100.0 AllowBouncing = Yes KillWhenRestingOnGround = Yes End Behavior = LifetimeUpdate ModuleTag_04 MinLifetime = 1500 ; min lifetime in msec MaxLifetime = 1600 ; max lifetime in msec End Behavior = SlowDeathBehavior ModuleTag_05 SinkDelay = 1500 SinkRate = 2 ; in Dist/Sec DestructionDelay = 16000 End End ;------------------------------------------------------------------------------ Object DeadTechnicalJeepHulk ; *** ART Parameters *** Draw = W3DModelDraw ModuleTag_01 DefaultConditionState Model = UVTECHJEEP_d1 End End ; ***DESIGN parameters *** EditorSorting = DEBRIS ; *** ENGINEERING Parameters *** KindOf = NO_COLLIDE HULK Behavior = PhysicsBehavior ModuleTag_03 Mass = 100.0 AllowBouncing = Yes KillWhenRestingOnGround = Yes End Behavior = LifetimeUpdate ModuleTag_04 MinLifetime = 1500 ; min lifetime in msec MaxLifetime = 1600 ; max lifetime in msec End Behavior = SlowDeathBehavior ModuleTag_05 SinkDelay = 1500 SinkRate = 2 ; in Dist/Sec DestructionDelay = 16000 End End ;------------------------------------------------------------------------------ Object DeadTechnicalTruckHulk ; *** ART Parameters *** Draw = W3DModelDraw ModuleTag_01 DefaultConditionState Model = UVTECHTRCK_d1 End End ; ***DESIGN parameters *** EditorSorting = DEBRIS ; *** ENGINEERING Parameters *** KindOf = NO_COLLIDE HULK Behavior = PhysicsBehavior ModuleTag_03 Mass = 100.0 AllowBouncing = Yes KillWhenRestingOnGround = Yes End Behavior = LifetimeUpdate ModuleTag_04 MinLifetime = 1500 ; min lifetime in msec MaxLifetime = 1600 ; max lifetime in msec End Behavior = SlowDeathBehavior ModuleTag_05 SinkDelay = 1500 SinkRate = 2 ; in Dist/Sec DestructionDelay = 16000 End End ;------------------------------------------------------------------------------ Object DeadRocketBuggyHulk ; *** ART Parameters *** Draw = W3DModelDraw ModuleTag_01 DefaultConditionState Model = UVRockBug_D1 End End ; ***DESIGN parameters *** EditorSorting = DEBRIS ; *** ENGINEERING Parameters *** KindOf = NO_COLLIDE HULK Behavior = PhysicsBehavior ModuleTag_03 Mass = 100.0 AllowBouncing = Yes KillWhenRestingOnGround = Yes End Behavior = LifetimeUpdate ModuleTag_04 MinLifetime = 1500 ; min lifetime in msec MaxLifetime = 1600 ; max lifetime in msec End Behavior = SlowDeathBehavior ModuleTag_05 SinkDelay = 1500 SinkRate = 2 ; in Dist/Sec DestructionDelay = 16000 End End ;------------------------------------------------------------------------------ Object DeadGLAPOWTruckHulk ; *** ART Parameters *** Draw = W3DModelDraw ModuleTag_01 DefaultConditionState Model = UVPOWTruck_d1 End End ; ***DESIGN parameters *** EditorSorting = DEBRIS ; *** ENGINEERING Parameters *** KindOf = NO_COLLIDE HULK Behavior = PhysicsBehavior ModuleTag_03 Mass = 100.0 AllowBouncing = Yes KillWhenRestingOnGround = Yes End Behavior = LifetimeUpdate ModuleTag_04 MinLifetime = 1500 ; min lifetime in msec MaxLifetime = 1600 ; max lifetime in msec End Behavior = SlowDeathBehavior ModuleTag_05 SinkDelay = 1500 SinkRate = 2 ; in Dist/Sec DestructionDelay = 16000 End End ;--------------------------------------------------------------------------- Object DeadChinaPOWTruckHulk ; *** ART Parameters *** Draw = W3DModelDraw ModuleTag_01 ConditionState = NONE Model = NVPOWTrck_d1 End End ; ***DESIGN parameters *** EditorSorting = DEBRIS ; *** ENGINEERING Parameters *** KindOf = NO_COLLIDE HULK Behavior = PhysicsBehavior ModuleTag_03 Mass = 100.0 AllowBouncing = Yes KillWhenRestingOnGround = Yes End Behavior = LifetimeUpdate ModuleTag_04 MinLifetime = 1500 ; min lifetime in msec MaxLifetime = 1600 ; max lifetime in msec End Behavior = SlowDeathBehavior ModuleTag_05 SinkDelay = 1500 SinkRate = 2 ; in Dist/Sec DestructionDelay = 16000 End End ;--------------------------------------------------------------------------- Object DeadCrusaderHulk ; *** ART Parameters *** Draw = W3DModelDraw ModuleTag_01 ConditionState = NONE Model = AVLeopard_D1 End End ; ***DESIGN parameters *** EditorSorting = DEBRIS ; *** ENGINEERING Parameters *** KindOf = NO_COLLIDE HULK Behavior = PhysicsBehavior ModuleTag_03 Mass = 100.0 AllowBouncing = Yes KillWhenRestingOnGround = Yes End Behavior = LifetimeUpdate ModuleTag_04 MinLifetime = 1500 ; min lifetime in msec MaxLifetime = 1600 ; max lifetime in msec End Behavior = SlowDeathBehavior ModuleTag_05 SinkDelay = 1500 SinkRate = 2 ; in Dist/Sec DestructionDelay = 8000 End End ;------------------------------------------------------------------------------ Object DeadPaladinHulk ; *** ART Parameters *** Draw = W3DModelDraw ModuleTag_01 ConditionState = NONE Model = AVPaladin_D1 End End ; ***DESIGN parameters *** EditorSorting = DEBRIS ; *** ENGINEERING Parameters *** KindOf = NO_COLLIDE HULK Behavior = PhysicsBehavior ModuleTag_03 Mass = 100.0 AllowBouncing = Yes KillWhenRestingOnGround = Yes End Behavior = LifetimeUpdate ModuleTag_04 MinLifetime = 1500 ; min lifetime in msec MaxLifetime = 1600 ; max lifetime in msec End Behavior = SlowDeathBehavior ModuleTag_05 SinkDelay = 1500 SinkRate = 2 ; in Dist/Sec DestructionDelay = 8000 End End ;------------------------------------------------------------------------------ Object DeadMarauderHulk ; *** ART Parameters *** Draw = W3DModelDraw ModuleTag_01 ConditionState = NONE Model = UVMarauder_D1 End End ; ***DESIGN parameters *** EditorSorting = DEBRIS ; *** ENGINEERING Parameters *** KindOf = NO_COLLIDE HULK Behavior = PhysicsBehavior ModuleTag_03 Mass = 100.0 AllowBouncing = Yes KillWhenRestingOnGround = Yes End Behavior = LifetimeUpdate ModuleTag_04 MinLifetime = 1500 ; min lifetime in msec MaxLifetime = 1600 ; max lifetime in msec End Behavior = SlowDeathBehavior ModuleTag_05 SinkDelay = 1500 SinkRate = 2 ; in Dist/Sec DestructionDelay = 12000 End End ;------------------------------------------------------------------------------ Object DeadScorpionHulk ; *** ART Parameters *** Draw = W3DModelDraw ModuleTag_01 ConditionState = NONE Model = UVLiteTank_D1 End End ; ***DESIGN parameters *** EditorSorting = DEBRIS ; *** ENGINEERING Parameters *** KindOf = NO_COLLIDE HULK Behavior = PhysicsBehavior ModuleTag_03 Mass = 100.0 AllowBouncing = Yes KillWhenRestingOnGround = Yes End Behavior = LifetimeUpdate ModuleTag_04 MinLifetime = 1500 ; min lifetime in msec MaxLifetime = 1600 ; max lifetime in msec End Behavior = SlowDeathBehavior ModuleTag_05 SinkDelay = 1500 SinkRate = 2 ; in Dist/Sec DestructionDelay = 12000 End End ;------------------------------------------------------------------------------ Object DeadAmericanPOWTruckHulk ; *** ART Parameters *** Draw = W3DModelDraw ModuleTag_01 ConditionState = NONE Model = AVPOWTruck_D1 End End ; ***DESIGN parameters *** EditorSorting = DEBRIS ; *** ENGINEERING Parameters *** KindOf = NO_COLLIDE HULK Behavior = PhysicsBehavior ModuleTag_03 Mass = 100.0 AllowBouncing = Yes KillWhenRestingOnGround = Yes End Behavior = LifetimeUpdate ModuleTag_04 MinLifetime = 1500 ; min lifetime in msec MaxLifetime = 1600 ; max lifetime in msec End Behavior = SlowDeathBehavior ModuleTag_05 SinkDelay = 1500 SinkRate = 2 ; in Dist/Sec DestructionDelay = 12000 End End ;------------------------------------------------------------------------------ Object DestroyedMilitiaTank ; *** ART Parameters *** Draw = W3DModelDraw ModuleTag_01 ConditionState = NONE Model = CVTank_D1 End End ; ***DESIGN parameters *** EditorSorting = DEBRIS ; *** ENGINEERING Parameters *** KindOf = NONE HULK Behavior = PhysicsBehavior ModuleTag_03 Mass = 100.0 AllowBouncing = Yes KillWhenRestingOnGround = Yes End Behavior = LifetimeUpdate ModuleTag_04 MinLifetime = 10000 ; min lifetime in msec MaxLifetime = 15000 ; max lifetime in msec End Behavior = SlowDeathBehavior ModuleTag_05 SinkDelay = 4000 SinkRate = 2 ; in Dist/Sec DestructionDelay = 8000 End End ;------------------------------------------------------------------------------ Object DeadRadarVanHulk ; *** ART Parameters *** Draw = W3DModelDraw ModuleTag_01 ConditionState = NONE Model = UVRadarVan_D1 End End ; ***DESIGN parameters *** EditorSorting = DEBRIS ; *** ENGINEERING Parameters *** KindOf = NO_COLLIDE HULK Behavior = PhysicsBehavior ModuleTag_03 Mass = 100.0 AllowBouncing = Yes KillWhenRestingOnGround = Yes End Behavior = LifetimeUpdate ModuleTag_04 MinLifetime = 1500 ; min lifetime in msec MaxLifetime = 1600 ; max lifetime in msec End Behavior = SlowDeathBehavior ModuleTag_05 SinkDelay = 1500 SinkRate = 2 ; in Dist/Sec DestructionDelay = 16000 End End ;------------------------------------------------------------------------------ Object ChinaDeadDozerHulk ; *** ART Parameters *** Draw = W3DModelDraw ModuleTag_01 ConditionState = NONE Model = nvconstdoz_D1 End End ; ***DESIGN parameters *** EditorSorting = DEBRIS ; *** ENGINEERING Parameters *** KindOf = NO_COLLIDE HULK Behavior = PhysicsBehavior ModuleTag_03 Mass = 100.0 AllowBouncing = Yes KillWhenRestingOnGround = Yes End Behavior = LifetimeUpdate ModuleTag_04 MinLifetime = 1500 ; min lifetime in msec MaxLifetime = 1600 ; max lifetime in msec End Behavior = SlowDeathBehavior ModuleTag_05 SinkDelay = 1500 SinkRate = 2 ; in Dist/Sec DestructionDelay = 8000 End End ;------------------------------------------------------------------------------ Object AmericaDeadDozerHulk ; *** ART Parameters *** Draw = W3DModelDraw ModuleTag_01 ConditionState = NONE Model = avconstdoz_D1 End End ; ***DESIGN parameters *** EditorSorting = DEBRIS ; *** ENGINEERING Parameters *** KindOf = NO_COLLIDE HULK Behavior = PhysicsBehavior ModuleTag_03 Mass = 100.0 AllowBouncing = Yes KillWhenRestingOnGround = Yes End Behavior = LifetimeUpdate ModuleTag_04 MinLifetime = 1500 ; min lifetime in msec MaxLifetime = 1600 ; max lifetime in msec End Behavior = SlowDeathBehavior ModuleTag_05 SinkDelay = 1500 SinkRate = 2 ; in Dist/Sec DestructionDelay = 8000 End End ;------------------------------------------------------------------------------ Object AmericaScoutDroneHulk ; *** ART Parameters *** Draw = W3DModelDraw ModuleTag_01 ConditionState = NONE Model = AVScoutDr_D1 End End ; ***DESIGN parameters *** EditorSorting = DEBRIS ; *** ENGINEERING Parameters *** KindOf = NO_COLLIDE HULK Behavior = PhysicsBehavior ModuleTag_03 Mass = 10.0 AllowBouncing = Yes KillWhenRestingOnGround = Yes End Behavior = LifetimeUpdate ModuleTag_04 MinLifetime = 1500 ; min lifetime in msec MaxLifetime = 1600 ; max lifetime in msec End Behavior = SlowDeathBehavior ModuleTag_05 SinkDelay = 1500 SinkRate = 2 ; in Dist/Sec DestructionDelay = 8000 End End ;------------------------------------------------------------------------------ Object AmericaBattleDroneHulk ; *** ART Parameters *** Draw = W3DModelDraw ModuleTag_01 ConditionState = NONE Model = AVBattleDr_D1 End End ; ***DESIGN parameters *** EditorSorting = DEBRIS ; *** ENGINEERING Parameters *** KindOf = NO_COLLIDE HULK Behavior = PhysicsBehavior ModuleTag_03 Mass = 10.0 AllowBouncing = Yes KillWhenRestingOnGround = Yes End Behavior = LifetimeUpdate ModuleTag_04 MinLifetime = 1500 ; min lifetime in msec MaxLifetime = 1600 ; max lifetime in msec End Behavior = SlowDeathBehavior ModuleTag_05 SinkDelay = 1500 SinkRate = 2 ; in Dist/Sec DestructionDelay = 8000 End End ;------------------------------------------------------------------------------ Object AmericaJetA10Thunderbolt ; *** ART Parameters *** SelectPortrait = SAWarthog_L ButtonImage = SAWarthog Draw = W3DModelDraw ModuleTag_01 OkToChangeModelColor = Yes ExtraPublicBone = WeaponA01 ExtraPublicBone = WeaponA02 ExtraPublicBone = WeaponA03 ExtraPublicBone = WeaponA04 ExtraPublicBone = WeaponA05 ExtraPublicBone = WeaponA06 DefaultConditionState Model = AVWarthog WeaponMuzzleFlash = PRIMARY MuzzleFX01 WeaponFireFXBone = PRIMARY Muzzle01 ParticleSysBone = Engine01 JetBlackTrailThin ParticleSysBone = Engine02 JetBlackTrailThin ParticleSysBone = Wingtip01 JetContrailThin ParticleSysBone = Wingtip02 JetContrailThin End ConditionState = REALLYDAMAGED Model = AVWarthog_D WeaponMuzzleFlash = PRIMARY MuzzleFX01 WeaponFireFXBone = PRIMARY Muzzle01 End AliasConditionState = RUBBLE End ; ***DESIGN parameters *** DisplayName = OBJECT:A10Thunderbolt EditorSorting = VEHICLE Side = America TransportSlotCount = 0 ;how many "slots" we take in a transport (0 == not transportable) VisionRange = 300.0 ShroudClearingRange = 300 Prerequisites Object = AmericaAirfield End WeaponSet Conditions = None Weapon = PRIMARY A10ThunderboltVulcan End ArmorSet Conditions = None Armor = AirplaneArmor DamageFX = None End ExperienceValue = 50 100 150 400 ;Experience point value at each level ExperienceRequired = 0 150 450 900 ;Experience points needed to gain each level IsTrainable = Yes ;Can gain experience ; *** AUDIO Parameters *** SoundAmbient = A10ThunderboltAmbientLoop SoundAmbientRubble = NoSound UnitSpecificSounds SoundEject = PilotSoundEject VoiceEject = PilotVoiceEject StartDive = A10ThunderboltDive End ; *** ENGINEERING Parameters *** RadarPriority = UNIT KindOf = PRELOAD CAN_CAST_REFLECTIONS CAN_ATTACK VEHICLE AIRCRAFT SCORE IGNORED_IN_GUI Body = ActiveBody ModuleTag_02 MaxHealth = 600.0 InitialHealth = 600.0 End ExperienceValue = 40 40 40 40 ; Experience point value at each level Behavior = JetSlowDeathBehavior ModuleTag_03 DestructionDelay = 99999999 ; destruction will happen when we RollRate = 0.0 RollRateDelta = 100% ;each frame, rollrate = rollrate * rollrateDelta PitchRate = 0.0 FallHowFast = 110.0% ;Bigger is faster (can be over 100%,it's a fraction of gravity) FXInitialDeath = FX_JetDeathInitial OCLInitialDeath = None DelaySecondaryFromInitialDeath = 500 ; in milliseconds FXSecondary = FX_JetDeathSecondary OCLSecondary = None FXHitGround = FX_JetDeathHitGround OCLHitGround = OCL_A10DeathHitGround DelayFinalBlowUpFromHitGround = 200 ; in milliseconds FXFinalBlowUp = FX_JetDeathFinalBlowUp OCLFinalBlowUp = OCL_A10DeathFinalBlowUp End Behavior = PhysicsBehavior ModuleTag_05 Mass = 500.0 End ;SCRIPTED SUPPORT: These special power is triggered directly ;from the transport without creating a transport. This is done ;via new code support and CreateLocation USE_OWNER_OBJECT -- ;which also prevents creating the payload transport. Behavior = OCLSpecialPower ModuleTag_06 SpecialPowerTemplate = SuperweaponA10ThunderboltMissileStrike ;@@KRIS@@ UpgradeOCL = SCIENCE_A10ThunderboltMissileStrike3 SUPERWEAPON_A10ThunderboltMissileStrike3 UpgradeOCL = SCIENCE_A10ThunderboltMissileStrike2 SUPERWEAPON_A10ThunderboltMissileStrike2 OCL = SUPERWEAPON_A10ThunderboltMissileStrike1 CreateLocation = USE_OWNER_OBJECT End Behavior = DeliverPayloadAIUpdate ModuleTag_07 End Locomotor = SET_NORMAL A10ThunderboltLocomotor Behavior = FlammableUpdate ModuleTag_21 AflameDuration = 5000 ; If I catch fire, I'll burn for this long... AflameDamageAmount = 3 ; taking this much damage... AflameDamageDelay = 500 ; this often. End ClientUpdate = AnimatedParticleSysBoneClientUpdate ModuleTag_22 End Geometry = Cylinder GeometryIsSmall = Yes GeometryMajorRadius = 10.0 GeometryMinorRadius = 10.0 GeometryHeight = 10.0 Shadow = SHADOW_VOLUME ShadowSizeX = 89 ; minimum elevation angle above horizon. Used to limit shadow length End ;------------------------------------------------------------------------------ Object AmericaVehicleChinook ; *** ART Parameters *** SelectPortrait = SAChinook_L ButtonImage = SAChinook ;UpgradeCameo1 = Upgrade_AmericaAdvancedTraining ;UpgradeCameo2 = NONE ;UpgradeCameo3 = NONE ;UpgradeCameo4 = NONE ;UpgradeCameo5 = NONE Draw = W3DModelDraw ModuleTag_01 ; Helicopter ExtraPublicBone = RopeStart ExtraPublicBone = RopeEnd DefaultConditionState Model = AVChinook Animation = AVChinook.AVChinook AnimationMode = LOOP End ConditionState = REALLYDAMAGED Model = AVChinook_d Animation = AVChinook_d.AVChinook_d AnimationMode = LOOP End ConditionState = RUBBLE Model = AVChinook_d Animation = AVChinook_d.AVChinook_d AnimationMode = LOOP End ConditionState = RUBBLE SPECIAL_DAMAGED Model = AVChinook_d HideSubObject = Props01 HideSubObject = Props02 End OkToChangeModelColor = Yes End Draw = W3DModelDraw ModuleTag_02 ; Cargo net ConditionState = NONE Model = None ; Nothing here TransitionKey = TRANS_Empty WaitForStateToFinishIfPossible = TRANS_Unloading End ConditionState = DYING Model = None ; Nothing here End AliasConditionState = RUBBLE AliasConditionState = CARRYING RUBBLE AliasConditionState = DOCKING RUBBLE AliasConditionState = DOCKING CARRYING RUBBLE ConditionState = CARRYING Model = AVChinook_A ;Carrying a full wobbly net of stuff Animation = AVChinook_A.AVChinook_A AnimationMode = LOOP TransitionKey = TRANS_Full WaitForStateToFinishIfPossible = TRANS_PickingUp End ConditionState = DOCKING Model = AVChinook_A1MSH ;Lowering an empty net, pulling up with stuff Animation = AVChinook_A1SK.AVChinook_A1 AnimationMode = ONCE_BACKWARDS Flags = START_FRAME_LAST AnimationSpeedFactorRange = .75 .75 TransitionKey = TRANS_PickingUp WaitForStateToFinishIfPossible = TRANS_Unloading ;Trick. Without hardcoding the difference between what we are docking with, need to use DOCKING for both. End ConditionState = DOCKING CARRYING Model = AVChinook_A1MSH ; Lowering a full net, letting stuff fall out, and pulling up an empty net Animation = AVChinook_A1SK.AVChinook_A1 AnimationMode = ONCE AnimationSpeedFactorRange = 2.75 2.75 TransitionKey = TRANS_Unloading WaitForStateToFinishIfPossible = TRANS_PickingUp ;Trick. Without hardcoding the difference between what we are docking with, need to use DOCKING for both. End End ; ***DESIGN parameters *** DisplayName = OBJECT:Chinook EditorSorting = VEHICLE Side = America TransportSlotCount = 0 ;how many "slots" we take in a transport (0 == not transportable) VisionRange = 300.0 ShroudClearingRange = 600 BuildCost = 1200 BuildTime = 10.0 ;in seconds Prerequisites Object = AmericaSupplyCenter End ExperienceValue = 50 50 50 50 ;Experience point value at each level IsTrainable = No CommandSet = AmericaVehicleChinookCommandSet ArmorSet Conditions = None Armor = ChinookArmor DamageFX = None End ; *** AUDIO Parameters *** VoiceSelect = ChinookVoiceSelect VoiceMove = ChinookVoiceMove VoiceAttack = ChinookVoiceAttack SoundAmbient = ChinookAmbientLoop SoundAmbientRubble = NoSound SoundDie = ChinookVoiceFalling SoundEnter = HumveeEnter SoundExit = HumveeExit UnitSpecificSounds VoiceCreate = ChinookVoiceCreate VoiceSupply = ChinookVoiceSupply VoiceUnload = ChinookVoiceUnload VoiceCombatDrop = ChinookVoiceCombatDrop VoiceClearBuilding = RangerVoiceClearBuilding ;Special combat drop that clears buildings! VoiceGarrison = ChinookVoiceMove End ; *** ENGINEERING Parameters *** RadarPriority = UNIT ; note that, although Chinooks aren't produced at helipads, we want to set this KINDOF so that they can land at ; (well, "near" actually) an Airfield to get healed... ; also note that we should NOT set CAN_ATTACK for chinooks. they can't attack. so there. KindOf = PRELOAD CAN_CAST_REFLECTIONS SELECTABLE VEHICLE TRANSPORT AIRCRAFT HARVESTER SCORE PRODUCED_AT_HELIPAD Body = ActiveBody ModuleTag_03 MaxHealth = 300.0 InitialHealth = 300.0 End Behavior = FXListDie ModuleTag_05 DeathFX = FX_HelicopterStartDeath End Behavior = TransitionDamageFX ModuleTag_06 ReallyDamagedParticleSystem1 = Bone:Smoke RandomBone:Yes PSys:SmokeSmallContinuousDown ReallyDamagedFXList1 = Loc: X:0 Y:0 Z:0 FXList:FX_ComancheDamageTransition End Behavior = ChinookAIUpdate ModuleTag_07 MaxBoxes = 8 SupplyCenterActionDelay = 3000 ; ms for whole thing (one transaction) SupplyWarehouseActionDelay = 1250 ; 875 ; ms per box (many small transactions) SupplyWarehouseScanDistance = 700 ;350 ; Max distance to look for a warehouse, or we go home. (Direct dock command on warehouse overrides, and no max on Center Scan) SuppliesDepletedVoice = ChinookVoiceSuppliesDepleted NumRopes = 4 ; these define how long we can wait, once a guy is on-rope, before throwing another ; guy onto that same rope. (Hint: you don't want to use zero.) Omit entirely ; and we'll wait for each guy to clear before spawning another. PerRopeDelayMin = 900 PerRopeDelayMax = 1500 RopeWidth = 0.5 RopeColor = R:0 G:0 B:0 RopeWobbleLen = 10 RopeWobbleAmplitude = 0.25 RopeWobbleRate = 180 RopeFinalHeight = 10 ; stop this far above ground RappelSpeed = 30 MinDropHeight = 40 ; if dropping into a tall bldg, go at least this far above it End Locomotor = SET_NORMAL ChinookLocomotor Locomotor = SET_TAXIING BasicHelicopterTaxiLocomotor Behavior = TransportContain ModuleTag_08 Slots = 8 DamagePercentToUnits = 100% AllowInsideKindOf = INFANTRY VEHICLE ForbidInsideKindOf = AIRCRAFT HUGE_VEHICLE AllowAlliesInside = Yes AllowNeutralInside = No AllowEnemiesInside = No ExitDelay = 100 NumberOfExitPaths = 1 End Behavior = PhysicsBehavior ModuleTag_09 Mass = 50.0 End Behavior = HelicopterSlowDeathBehavior ModuleTag_10 DestructionDelay = 99999999 ; the destruction delay SpiralOrbitTurnRate = 140.0 ; in degrees per second, bigger # = tighter spiral SpiralOrbitForwardSpeed = 350.0 ; bigger # = larger spiral SpiralOrbitForwardSpeedDamping = .9999 ; smaller #'s = slow down faster MaxBraking = 190 ; max braking we can use during death spiral (lower num = wilder spiral) SoundDeathLoop = ComancheDamagedLoop MinSelfSpin = 100 ; in degrees per second MaxSelfSpin = 300 ; in degrees per second SelfSpinUpdateDelay = 100 ; in milliseconds SelfSpinUpdateAmount = 10 ; in degrees FallHowFast = 12.0% ; fraction of gravity, lower = take longer to fall MinBladeFlyOffDelay = 1500 ; in milliseconds MaxBladeFlyOffDelay = 1500 ; in milliseconds AttachParticle = SootySmokeTrail AttachParticleBone = Propeller02 BladeObjectName = ComancheBlades BladeBoneName = Propeller01 FXBlade = FX_HelicopterBladeExplosion OCLBlade = OCL_HelicopterBladeExplosion FXHitGround = FX_HelicopterHitGround OCLHitGround = OCL_HelicopterHitGround FXFinalBlowUp = FX_GroundedHelicopterBlowUp OCLFinalBlowUp = OCL_GroundedHelicopterBlowUp DelayFromGroundToFinalDeath = 30 FinalRubbleObject = ChinookRubbleHull End Behavior = FlammableUpdate ModuleTag_21 AflameDuration = 5000 ; If I catch fire, I'll burn for this long... AflameDamageAmount = 3 ; taking this much damage... AflameDamageDelay = 500 ; this often. End Geometry = BOX GeometryMajorRadius = 20.0 GeometryMinorRadius = 6.0 GeometryHeight = 12.0 GeometryIsSmall = No Shadow = SHADOW_VOLUME ShadowSizeX = 89 ; minimum elevation angle above horizon. Used to limit shadow length End ;------------------------------------------------------------------------------ Object AmericaTankPaladin ; *** ART Parameters *** SelectPortrait = SAPaladin_L ButtonImage = SAPaladin UpgradeCameo1 = Upgrade_AmericaBattleDrone UpgradeCameo2 = Upgrade_AmericaScoutDrone UpgradeCameo3 = Upgrade_AmericaAdvancedTraining UpgradeCameo4 = Upgrade_AmericaCompositeArmor ;UpgradeCameo5 = NONE Draw = W3DTankDraw ModuleTag_01 ExtraPublicBone = Laser ConditionState = NONE Model = AVPaladiu ;AVPaladin Turret = Turret01 ;AltTurret = Turret02 ;AltTurretPitch = TurretEL02 WeaponFireFXBone = PRIMARY TurretMS WeaponRecoilBone = PRIMARY Barrel WeaponMuzzleFlash = PRIMARY TurretFX WeaponLaunchBone = PRIMARY TurretMS End ConditionState = REALLYDAMAGED Model = AVPaladiu_d ;AVPaladin_D Turret = Turret01 ;AltTurret = Turret02 ;AltTurretPitch = TurretEL02 WeaponFireFXBone = PRIMARY TurretMS WeaponRecoilBone = PRIMARY Barrel WeaponMuzzleFlash = PRIMARY TurretFX WeaponLaunchBone = PRIMARY TurretMS End ConditionState = RUBBLE Model = AVPaladiu_d ;AVPaladin_D Turret = Turret01 ;AltTurret = Turret02 ;AltTurretPitch = TurretEL02 WeaponFireFXBone = PRIMARY TurretMS WeaponRecoilBone = PRIMARY Barrel WeaponMuzzleFlash = PRIMARY TurretFX WeaponLaunchBone = PRIMARY TurretMS End TrackMarks = EXTnkTrack.tga TreadAnimationRate = 2.0 ; amount of tread texture to move per second TreadDriveSpeedFraction = 0.3 ; fraction of locomotor speed below which treads stop moving. TreadPivotSpeedFraction = 0.6 ; fraction of locomotor speed below which we allow pivoting. OkToChangeModelColor = Yes End ; ***DESIGN parameters *** DisplayName = OBJECT:Paladin Side = America EditorSorting = VEHICLE TransportSlotCount = 3 ;how many "slots" we take in a transport (0 == not transportable) WeaponSet Conditions = None Weapon = PRIMARY PaladinTankGun End ArmorSet Conditions = None Armor = TankArmor DamageFX = TankDamageFX End ;ArmorSet ; Conditions = PLAYER_UPGRADE ; Armor = UpgradedTankArmor ; DamageFX = TankDamageFX ;End BuildCost = 1250 ;1100 BuildTime = 14.0 ;12.0 ;in seconds VisionRange = 150 ShroudClearingRange = 300 Prerequisites Object = AmericaWarFactory Science = SCIENCE_PaladinTank End ExperienceValue = 100 100 200 400 ;Experience point value at each level ExperienceRequired = 0 200 300 600 ;Experience points needed to gain each level IsTrainable = Yes ;Can gain experience CrusherLevel = 2 ;What can I crush?: 1 = infantry, 2 = trees, 3 = vehicles CrushableLevel = 2 ;What am I?: 0 = for infantry, 1 = for trees, 2 = general vehicles CommandSet = AmericaTankPaladinCommandSet ; *** AUDIO Parameters *** VoiceSelect = PaladinTankVoiceSelect VoiceMove = PaladinTankVoiceMove VoiceGuard = PaladinTankVoiceMove VoiceAttack = PaladinTankVoiceAttack SoundMoveStart = PaladinTankMoveStart SoundMoveStartDamaged = PaladinTankMoveStart UnitSpecificSounds ; These have the syntax of SomeNameSomewhereInCode = SomeNameSomewhereInLookupINIs VoiceCreate = PaladinTankVoiceCreate TurretMoveLoop = TurretMoveLoop SoundEject = PilotSoundEject VoiceEject = PilotVoiceEject VoiceCrush = PaladinTankVoiceCrush VoiceEnter = PaladinTankVoiceMove End ; *** ENGINEERING Parameters *** RadarPriority = UNIT KindOf = PRELOAD SELECTABLE CAN_ATTACK ATTACK_NEEDS_LINE_OF_SIGHT CAN_CAST_REFLECTIONS VEHICLE SCORE Body = ActiveBody ModuleTag_02 MaxHealth = 600.0 InitialHealth = 600.0 End Behavior = AIUpdateInterface ModuleTag_03 Turret TurretTurnRate = 180 ;60 // turn rate, in degrees per sec ControlledWeaponSlots = PRIMARY End ;AltTurret ; TurretTurnRate = 900 ; ControlledWeaponSlots = SECONDARY ;End AutoAcquireEnemiesWhenIdle = Yes End Locomotor = SET_NORMAL CrusaderLocomotor Behavior = PhysicsBehavior ModuleTag_04 Mass = 50.0 End ; Turret fly off death Behavior = SlowDeathBehavior ModuleTag_05 DeathTypes = ALL -CRUSHED -SPLATTED ProbabilityModifier = 50 ; ModifierBonusPerOverkillPercent = 30% ; negative means less likely to pick this in the face of much damage, positive means more likely DestructionDelay = 500 DestructionDelayVariance = 100 FX = INITIAL FX_GenericTankDeathEffect FX = FINAL FX_GenericTankDeathExplosion OCL = FINAL OCL_PaladinTankDeathEffect End ; Catch fire, and explode death Behavior = SlowDeathBehavior ModuleTag_06 DeathTypes = ALL -CRUSHED -SPLATTED ProbabilityModifier = 50 DestructionDelay = 2000 DestructionDelayVariance = 300 FX = INITIAL FX_CrusaderCatchFire OCL = FINAL OCL_PaladinTankDeathEffect FX = FINAL FX_GenericTankDeathExplosion End Behavior = PointDefenseLaserUpdate ModuleTag_07 WeaponTemplate = PaladinPointDefenseLaser PrimaryTargetTypes = BALLISTIC_MISSILE SMALL_MISSILE ;AIRCRAFT SecondaryTargetTypes = INFANTRY ScanRate = 500 ScanRange = 120.0 PredictTargetVelocityFactor = 3.0 End Behavior = ObjectCreationUpgrade ModuleTag_08 UpgradeObject = OCL_AmericanBattleDrone TriggeredBy = Upgrade_AmericaBattleDrone ConflictsWith = Upgrade_AmericaScoutDrone End Behavior = ObjectCreationUpgrade ModuleTag_09 UpgradeObject = OCL_AmericanScoutDrone TriggeredBy = Upgrade_AmericaScoutDrone ConflictsWith = Upgrade_AmericaBattleDrone End Behavior = ProductionUpdate ModuleTag_10 MaxQueueEntries = 1; So you can't build multiple upgrades in the same frame End Behavior = ExperienceScalarUpgrade ModuleTag_11 TriggeredBy = Upgrade_AmericaAdvancedTraining AddXPScalar = 1.0 ;Increases experience gained by an additional 100% End Behavior = TransitionDamageFX ModuleTag_12 ReallyDamagedParticleSystem1 = Bone:Smoke RandomBone:Yes PSys:SmokeSmallContinuous01 ReallyDamagedFXList1 = Loc: X:0 Y:0 Z:0 FXList:FX_BattleMasterDamageTransition End Behavior = FXListDie ModuleTag_13 DeathTypes = NONE +CRUSHED +SPLATTED DeathFX = FX_CarCrush End Behavior = CreateObjectDie ModuleTag_14 DeathTypes = NONE +CRUSHED +SPLATTED CreationList = OCL_CrusaderTank_CrushEffect End Behavior = DestroyDie ModuleTag_15 DeathTypes = NONE +CRUSHED +SPLATTED End Behavior = CreateCrateDie ModuleTag_16 CrateData = SalvageCrateData ;CrateData = EliteTankCrateData ;CrateData = HeroicTankCrateData End Behavior = EjectPilotDie ModuleTag_17 DeathTypes = ALL -CRUSHED -SPLATTED ExemptStatus = HIJACKED GroundCreationList = OCL_EjectPilotOnGround AirCreationList = OCL_EjectPilotViaParachute VeterancyLevels = ALL -REGULAR ;only vet+ gives pilot End Behavior = StealthDetectorUpdate ModuleTag_HijackerDetect DetectionRate = 500 DetectionRange = 75 CanDetectWhileGarrisoned = No CanDetectWhileContained = No ExtraRequiredKindOf = BOAT End Behavior = MaxHealthUpgrade ModuleTag_18 TriggeredBy = Upgrade_AmericaCompositeArmor AddMaxHealth = 100.0 ChangeType = ADD_CURRENT_HEALTH_TOO ;Choices are PRESERVE_RATIO, ADD_CURRENT_HEALTH_TOO, and SAME_CURRENTHEALTH End Behavior = FlammableUpdate ModuleTag_21 AflameDuration = 5000 ; If I catch fire, I'll burn for this long... AflameDamageAmount = 3 ; taking this much damage... AflameDamageDelay = 500 ; this often. End Geometry = BOX GeometryMajorRadius = 15.0 GeometryMinorRadius = 10.0 GeometryHeight = 10.0 GeometryIsSmall = Yes Shadow = SHADOW_VOLUME ShadowSizeX = 45 ; minimum elevation angle above horizon. Used to limit shadow length End ;------------------------------------------------------------------------------ Object AmericaTankLeopard ;careful not to confuse with Crusader which was at one time the Leopard ; *** ART Parameters *** SelectPortrait = NONE ButtonImage = SCTempDefaultCommand UpgradeCameo1 = Upgrade_AmericaBattleDrone UpgradeCameo2 = Upgrade_AmericaScoutDrone UpgradeCameo3 = Upgrade_AmericaAdvancedTraining UpgradeCameo4 = Upgrade_AmericaCompositeArmor Draw = W3DTankDraw ModuleTag_01 ConditionState = NONE Model = gxmammoth_a Animation = gxmammoth_a.gxmammoth_a AnimationMode = LOOP Turret = Turret01 WeaponFireFXBone = PRIMARY Muzzle WeaponRecoilBone = PRIMARY Barrel WeaponMuzzleFlash = PRIMARY MuzzleFX WeaponLaunchBone = PRIMARY Muzzle End ConditionState = REALLYDAMAGED Model = gxmammoth_Hi Animation = gxmammoth_Hi.gxmammoth_Hi AnimationMode = LOOP Turret = Turret01 WeaponFireFXBone = PRIMARY Muzzle WeaponRecoilBone = PRIMARY Barrel WeaponMuzzleFlash = PRIMARY MuzzleFX WeaponLaunchBone = PRIMARY Muzzle End ConditionState = RUBBLE Model = gxmammoth_Hi Turret = Turret01 WeaponFireFXBone = PRIMARY Muzzle WeaponRecoilBone = PRIMARY Barrel WeaponMuzzleFlash = PRIMARY MuzzleFX WeaponLaunchBone = PRIMARY Muzzle End TrackMarks = EXTnkTrack.tga OkToChangeModelColor = Yes TreadAnimationRate = 2.0 ; amount of tread texture to move per second TreadDriveSpeedFraction = 0.3 ; fraction of locomotor speed below which treads stop moving. TreadPivotSpeedFraction = 0.6 ; fraction of locomotor speed below which we allow pivoting. End ; ***DESIGN parameters *** DisplayName = OBJECT:Leopard Side = America EditorSorting = VEHICLE TransportSlotCount = 3 ;how many "slots" we take in a transport (0 == not transportable) WeaponSet Conditions = None Weapon = PRIMARY MammothTankGun End ArmorSet Conditions = None Armor = TankArmor DamageFX = TankDamageFX End BuildCost = 1700 BuildTime = 20.0 ;in seconds VisionRange = 150 ShroudClearingRange = 200 Prerequisites Object = AmericaWarFactory Object = AmericaDetentionCamp ;Science = SCIENCE_LeopardTank End ExperienceValue = 175 175 250 400 ;Experience point value at each level ExperienceRequired = 0 200 300 450 ;Experience points needed to gain each level IsTrainable = Yes ;Can gain experience CrusherLevel = 3 ;What can I crush?: 1 = infantry, 2 = trees, 3 = vehicles CrushableLevel = 3 ;What am I?: 0 = for infantry, 1 = for trees, 2 = general vehicles CommandSet = AmericaTankMammothCommandSet ; *** AUDIO Parameters *** VoiceSelect = PaladinTankVoiceSelect VoiceMove = PaladinTankVoiceMove VoiceGuard = PaladinTankVoiceMove VoiceAttack = PaladinTankVoiceAttack SoundMoveStart = OverlordTankMoveStart SoundMoveStartDamaged = OverlordTankMoveStart UnitSpecificSounds VoiceCreate = PaladinTankVoiceCreate TurretMoveLoop = OverlordTankTurretMoveLoop SoundEject = PilotSoundEject VoiceEject = PilotVoiceEject VoiceCrush = PaladinTankVoiceCrush VoiceEnter = PaladinTankVoiceMove End ; *** ENGINEERING Parameters *** RadarPriority = UNIT KindOf = PRELOAD SELECTABLE CAN_ATTACK ATTACK_NEEDS_LINE_OF_SIGHT CAN_CAST_REFLECTIONS VEHICLE SCORE ;HUGE_VEHICLE Body = ActiveBody ModuleTag_02 MaxHealth = 850.0 InitialHealth = 850.0 End Behavior = TransportAIUpdate ModuleTag_03 Turret TurretTurnRate = 90 ControlledWeaponSlots = PRIMARY End AutoAcquireEnemiesWhenIdle = Yes End Locomotor = SET_NORMAL MammothLocomotor Behavior = ProductionUpdate ModuleTag_10 MaxQueueEntries = 1 ; So you can't build multiple upgrades in the same frame End Behavior = PhysicsBehavior ModuleTag_14 Mass = 50.0 End ; Catch fire, smoke and explode death Behavior = SlowDeathBehavior ModuleTag_16 ProbabilityModifier = 30 DestructionDelay = 2500 DestructionDelayVariance = 500 FX = INITIAL FX_CrusaderCatchFire FX = INITIAL FX_OverlordSmoke OCL = FINAL OCL_PaladinTankDeathEffect FX = FINAL FX_OverlordExplosionOneFinal End Behavior = CreateCrateDie ModuleTag_17 CrateData = SalvageCrateData End Behavior = ObjectCreationUpgrade ModuleTag_19 UpgradeObject = OCL_AmericanBattleDrone TriggeredBy = Upgrade_AmericaBattleDrone ConflictsWith = Upgrade_AmericaScoutDrone End Behavior = ObjectCreationUpgrade ModuleTag_20 UpgradeObject = OCL_AmericanScoutDrone TriggeredBy = Upgrade_AmericaScoutDrone ConflictsWith = Upgrade_AmericaBattleDrone End Behavior = EjectPilotDie ModuleTag_22 DeathTypes = ALL ExemptStatus = HIJACKED GroundCreationList = OCL_EjectPilotOnGround AirCreationList = OCL_EjectPilotViaParachute VeterancyLevels = ALL -REGULAR ;only vet+ gives pilot End Behavior = StealthDetectorUpdate ModuleTag_HijackerDetect DetectionRate = 500 DetectionRange = 75 CanDetectWhileGarrisoned = No CanDetectWhileContained = No ExtraRequiredKindOf = BOAT End Behavior = MaxHealthUpgrade ModuleTag_23 TriggeredBy = Upgrade_AmericaCompositeArmor AddMaxHealth = 100.0 ChangeType = ADD_CURRENT_HEALTH_TOO ;Choices are PRESERVE_RATIO, ADD_CURRENT_HEALTH_TOO, and SAME_CURRENTHEALTH End Behavior = ExperienceScalarUpgrade ModuleTag_24 TriggeredBy = Upgrade_AmericaAdvancedTraining AddXPScalar = 1.0 ;Increases experience gained by an additional 100% End Behavior = TransitionDamageFX ModuleTag_18 ReallyDamagedParticleSystem1 = Bone:Smoke RandomBone:Yes PSys:SmokeSmallContinuous01 ReallyDamagedFXList1 = Loc: X:0 Y:0 Z:0 FXList:FX_OverlordDamageTransition End Behavior = FlammableUpdate ModuleTag_21 AflameDuration = 5000 ; If I catch fire, I'll burn for this long... AflameDamageAmount = 3 ; taking this much damage... AflameDamageDelay = 500 ; this often. End Geometry = BOX GeometryMajorRadius = 26.0 GeometryMinorRadius = 13.0 GeometryHeight = 12.0 GeometryIsSmall = No Shadow = SHADOW_VOLUME ShadowSizeX = 45 ; minimum elevation angle above horizon. Used to limit shadow length End ;------------------------------------------------------------------------------ ; ; Jason Bender sez: ; This unit is used in GLA04. It is part of a secondary objective. The player gets a medal for capturing him. ; This unit is never human-controllable! ; Object ChinaAmbassador ; *** ART Parameters *** Draw = W3DModelDraw ModuleTag_01 OkToChangeModelColor = Yes DefaultConditionState Model = NIAMBSDR_SKN IdleAnimation = NIAMBSDR_SKL.NIAMBSDR_STA IdleAnimation = NIAMBSDR_SKL.NIAMBSDR_STA IdleAnimation = NIAMBSDR_SKL.NIAMBSDR_STA IdleAnimation = NIAMBSDR_SKL.NIAMBSDR_STA IdleAnimation = NIAMBSDR_SKL.NIAMBSDR_STA IdleAnimation = NIAMBSDR_SKL.NIAMBSDR_STA IdleAnimation = NIAMBSDR_SKL.NIAMBSDR_STA IdleAnimation = NIAMBSDR_SKL.NIAMBSDR_IDA IdleAnimation = NIAMBSDR_SKL.NIAMBSDR_IDB AnimationMode = ONCE TransitionKey = TRANS_Stand End ConditionState = MOVING Animation = NIAMBSDR_SKL.NIAMBSDR_RNA ;***was using WKA but it doesn't exist so I changed it to kill the assert -- Kris AnimationMode = LOOP Flags = RANDOMSTART End ConditionState = MOVING PANICKING Animation = NIAMBSDR_SKL.NIAMBSDR_RNA AnimationMode = LOOP Flags = RANDOMSTART End ConditionState = DYING Animation = NIAMBSDR_SKL.NIAMBSDR_DTA Animation = NIAMBSDR_SKL.NIAMBSDR_DTB AnimationMode = ONCE TransitionKey = TRANS_Dying End ;TransitionState = TRANS_Dying TRANS_Flailing ; Animation = NIAMBSDR_SKL.NIAMBSDR_ADTD1 ; AnimationMode = ONCE ;End ;ConditionState = DYING EXPLODED_FLAILING ; Animation = NIAMBSDR_SKL.NIAMBSDR_ADTD2 ; AnimationMode = LOOP ; TransitionKey = TRANS_Flailing ;End ;ConditionState = DYING EXPLODED_BOUNCING ; Animation = NIAMBSDR_SKL.NIAMBSDR_ADTD3 ; AnimationMode = ONCE ; TransitionKey = None ;End End ; ***DESIGN parameters *** Buildable = No DisplayName = OBJECT:Ambassador Side = China EditorSorting = INFANTRY TransportSlotCount = 1 ;how many "slots" we take in a transport (0 == not transportable) WeaponSet ; no weapons End ArmorSet Conditions = None Armor = HumanArmor DamageFX = InfantryDamageFX End VisionRange = 150 ShroudClearingRange = 150 ExperienceValue = 50 100 150 400 ;Experience point value at each level ExperienceRequired = 0 150 450 900 ;Experience points needed to gain each level IsTrainable = Yes ;Can gain experience ; *** AUDIO Parameters *** SoundDie = RedGuardVoiceDie ; *** ENGINEERING Parameters *** RadarPriority = UNIT KindOf = PRELOAD SELECTABLE CAN_ATTACK CAN_CAST_REFLECTIONS INFANTRY SCORE Body = ActiveBody ModuleTag_02 MaxHealth = 50.0 InitialHealth = 50.0 End Behavior = AIUpdateInterface ModuleTag_03 AutoAcquireEnemiesWhenIdle = Yes End Locomotor = SET_NORMAL BasicHumanLocomotor Behavior = PhysicsBehavior ModuleTag_04 Mass = 5.0 End Behavior = SlowDeathBehavior ModuleTag_05 SinkDelay = 3000 SinkRate = 0.5 ; in Dist/Sec DestructionDelay = 8000 End Behavior = SquishCollide ModuleTag_06 ;nothing End Behavior = FXListDie ModuleTag_07 DeathTypes = ALL -CRUSHED -SPLATTED DeathFX = FX_GIDie End Behavior = FXListDie ModuleTag_08 DeathTypes = NONE +CRUSHED +SPLATTED DeathFX = FX_GIDieCrushed End Behavior = PoisonedBehavior ModuleTag_09 PoisonDamageInterval = 100 ; Every this many msec I will retake the poison damage dealt me... PoisonDuration = 3000 ; ... for this long after last hit by poison damage End Geometry = CYLINDER GeometryMajorRadius = 10.0 GeometryMinorRadius = 10.0 GeometryHeight = 12.0 GeometryIsSmall = Yes Shadow = SHADOW_DECAL ShadowSizeX = 14 ShadowSizeY = 14 ShadowTexture = ShadowI BuildCompletion = APPEARS_AT_RALLY_POINT End ;------------------------------------------------------------------------------ Object AmericaInfantryBiohazardTech ; This unit is by default NOT buildable. In GLA06 this is buildable from the ; barracks of the enemy AI. (The map.ini file is overridden there make it ; buildable = Yes (jkmcd) Buildable = No ; *** ART Parameters *** Draw = W3DModelDraw ModuleTag_01 OkToChangeModelColor = Yes ;NORMAL STANDING DefaultConditionState Model = AITECH_SKN IdleAnimation = AITECH_SKL.AITECH_STA 0 21 ;Regular spice animations IdleAnimation = AITECH_SKL.AITECH_IDA IdleAnimation = AITECH_SKL.AITECH_IDB AnimationMode = ONCE WeaponLaunchBone = PRIMARY BIOGUNFX TransitionKey = TRANS_Stand End ; NORMAL ATTACK ConditionState = FIRING_A Animation = AITECH_SKL.AITECH_STA AnimationMode = LOOP TransitionKey = TRANS_FiringA End AliasConditionState = BETWEEN_FIRING_SHOTS_A AliasConditionState = RELOADING_A AliasConditionState = FIRING_A REALLYDAMAGED AliasConditionState = BETWEEN_FIRING_SHOTS_A REALLYDAMAGED AliasConditionState = RELOADING_A REALLYDAMAGED ConditionState = MOVING FIRING_A Animation = AITECH_SKL.AITECH_WKB 15 AnimationMode = LOOP Flags = RANDOMSTART TransitionKey = None ParticleSysBone = None InfantryDustTrails End AliasConditionState = MOVING BETWEEN_FIRING_SHOTS_A AliasConditionState = MOVING RELOADING_A ConditionState = MOVING Animation = AITECH_SKL.AITECH_WKA 15 AnimationMode = LOOP Flags = RANDOMSTART TransitionKey = None ParticleSysBone = None InfantryDustTrails End ConditionState = DYING Animation = AITECH_SKL.AITECH_DTA Animation = AITECH_SKL.AITECH_DTB AnimationMode = ONCE TransitionKey = TRANS_Dying End TransitionState = TRANS_Dying TRANS_Flailing Animation = AITECH_SKL.AITECH_ADTD1 AnimationMode = ONCE End ConditionState = DYING EXPLODED_FLAILING Animation = AITECH_SKL.AITECH_ADTD2 AnimationMode = LOOP TransitionKey = TRANS_Flailing End ConditionState = DYING EXPLODED_BOUNCING Animation = AITECH_SKL.AITECH_ADTD3 AnimationMode = ONCE TransitionKey = None End ConditionState = SPECIAL_CHEERING Animation = AITECH_SKL.AITECH_CHA AnimationMode = LOOP End ;PARACHUTING ANIMATIONS ConditionState = FREEFALL Animation = AITECH_SKL.AITECH_PFL AnimationMode = LOOP TransitionKey = TRANS_Falling End AliasConditionState = FREEFALL REALLYDAMAGED AliasConditionState = FREEFALL DYING ConditionState = PARACHUTING Animation = AITECH_SKL.AITECH_PHG AnimationMode = LOOP Flags = PRISTINE_BONE_POS_IN_FINAL_FRAME ; our bone positions should come from the last frame, rather than the first TransitionKey = TRANS_Chute End AliasConditionState = PARACHUTING REALLYDAMAGED AliasConditionState = PARACHUTING DYING TransitionState = TRANS_Falling TRANS_Chute Animation = AITECH_SKL.AITECH_POP AnimationMode = ONCE Flags = PRISTINE_BONE_POS_IN_FINAL_FRAME ; our bone positions should come from the last frame, rather than the first End TransitionState = TRANS_Chute TRANS_Stand Animation = AITECH_SKL.AITECH_PDN AnimationMode = ONCE End ;SURRENDER ANIMATIONS ; surrender is cut. sorry. (srj) ; ConditionState = SURRENDER ; Animation = AITECH_SKL.AITECH_SST ; AnimationMode = ONCE ; TransitionKey = TRANS_SurrenderKneeling ; End ; ConditionState = SURRENDER MOVING ; Animation = AITECH_SKL.AITECH_SWK ; AnimationMode = ONCE ; TransitionKey = TRANS_SurrenderMoving ; End ; TransitionState = TRANS_Stand TRANS_SurrenderKneeling ; Animation = AITECH_SKL.AITECH_SUR ; AnimationMode = ONCE ; End End ; ***DESIGN parameters *** DisplayName = OBJECT:BioHazardTech Side = America EditorSorting = INFANTRY TransportSlotCount = 1 ;how many "slots" we take in a transport (0 == not transportable) WeaponSet ;*** Fully automated and driven by the CleanupHazardUpdate *** Conditions = None Weapon = PRIMARY BioHazardTechCleanHazardWeapon AutoChooseSources = PRIMARY NONE End ArmorSet Conditions = None Armor = HazMatHumanArmor DamageFX = InfantryDamageFX End VisionRange = 100 ShroudClearingRange = 400 Prerequisites Object = AmericaBarracks End BuildCost = 200 BuildTime = 5.0 ;in seconds ExperienceValue = 50 100 150 400 ;Experience point value at each level ExperienceRequired = 0 150 450 900 ;Experience points needed to gain each level IsTrainable = Yes ;Can gain experience CrushableLevel = 0 ;What am I?: 0 = for infantry, 1 = for trees, 2 = general vehicles CommandSet = AmericaInfantryHazMatCommandSet ; *** AUDIO Parameters *** VoiceSelect = NoSound VoiceMove = NoSound VoiceAttack = NoSound SoundDie = RebelVoiceDie UnitSpecificFX ; These have the syntax of SomeNameSomewhereInCode = SomeNameSomewhereInLookupINIs End ; *** ENGINEERING Parameters *** RadarPriority = UNIT KindOf = PRELOAD SELECTABLE CAN_ATTACK CAN_CAST_REFLECTIONS INFANTRY SCORE Body = ActiveBody ModuleTag_02 MaxHealth = 100.0 InitialHealth = 100.0 End Behavior = CleanupHazardUpdate ModuleTag_03 WeaponSlot = PRIMARY ScanRate = 1000 ScanRange = 100.0 End ;Can be ordered to clean up a larger area with the ability to move around at an extended range. Behavior = CleanupAreaPower ModuleTag_04 SpecialPowerTemplate = SpecialAbilityAmbulanceCleanupArea MaxMoveDistanceFromLocation = 300.0 ;allows the unit to move around while cleaning up End Behavior = AIUpdateInterface ModuleTag_05 AutoAcquireEnemiesWhenIdle = No End Behavior = AutoFindHealingUpdate ModuleTag_06 ; This update will have the unit go to a healing station if injured. jba ScanRate = 1000 ; once a second. ScanRange = 300 ; NeverHeal = 0.85 ; don't heal if we are > 85% healthy. AlwaysHeal = 0.25 ; if we get below 25%, find healing right away. End Locomotor = SET_NORMAL HazMatHumanLocomotor Behavior = ExperienceScalarUpgrade ModuleTag_07 TriggeredBy = Upgrade_AmericaAdvancedTraining AddXPScalar = 1.0 ;Increases experience gained by an additional 100% End Behavior = PhysicsBehavior ModuleTag_08 Mass = 5.0 End Behavior = ProductionUpdate ModuleTag_09 ; nothing End Behavior = SquishCollide ModuleTag_10 ;nothing End ; --- begin Death modules --- Behavior = SlowDeathBehavior ModuleTag_Death01 DeathTypes = ALL -CRUSHED -SPLATTED -EXPLODED -BURNED -POISONED SinkDelay = 3000 SinkRate = 0.5 ; in Dist/Sec DestructionDelay = 8000 FX = INITIAL FX_GIDie End Behavior = SlowDeathBehavior ModuleTag_Death02 DeathTypes = NONE +CRUSHED +SPLATTED SinkDelay = 3000 SinkRate = 0.5 ; in Dist/Sec DestructionDelay = 8000 FX = INITIAL FX_GIDieCrushed End Behavior = SlowDeathBehavior ModuleTag_Death03 DeathTypes = NONE +EXPLODED SinkDelay = 3000 SinkRate = 0.5 ; in Dist/Sec DestructionDelay = 8000 FX = INITIAL FX_GIDie FlingForce = 8 FlingForceVariance = 3 FlingPitch = 60 FlingPitchVariance = 10 End Behavior = SlowDeathBehavior ModuleTag_Death04 DeathTypes = NONE +BURNED DestructionDelay = 0 FX = INITIAL FX_GIDie OCL = INITIAL OCL_FlamingInfantry End Behavior = SlowDeathBehavior ModuleTag_Death05 DeathTypes = NONE +POISONED DestructionDelay = 0 FX = INITIAL FX_GIDie OCL = INITIAL OCL_ToxicInfantry End ; --- end Death modules --- Geometry = CYLINDER GeometryMajorRadius = 10.0 GeometryMinorRadius = 10.0 GeometryHeight = 13.0 GeometryIsSmall = Yes Shadow = SHADOW_DECAL ShadowSizeX = 14; ShadowSizeY = 14; ShadowTexture = ShadowI; BuildCompletion = APPEARS_AT_RALLY_POINT End ;------------------------------------------------------------------------------ Object CINE_AmericaInfantryBiohazardTech ; This unit is by default NOT buildable. In GLA06 this is buildable from the ; barracks of the enemy AI. (The map.ini file is overridden there make it ; buildable = Yes (jkmcd) Buildable = No ; *** ART Parameters *** Draw = W3DModelDraw ModuleTag_01 OkToChangeModelColor = Yes ;NORMAL STANDING DefaultConditionState Model = AITECH_SKN IdleAnimation = AITECH_SKL.AITECH_STA 0 21 ;Regular spice animations IdleAnimation = AITECH_SKL.AITECH_IDA IdleAnimation = AITECH_SKL.AITECH_IDB AnimationMode = ONCE WeaponLaunchBone = PRIMARY BIOGUNFX TransitionKey = TRANS_Stand End ; NORMAL ATTACK ConditionState = FIRING_A Animation = AITECH_SKL.AITECH_ATA AnimationMode = LOOP TransitionKey = TRANS_FiringA End AliasConditionState = BETWEEN_FIRING_SHOTS_A AliasConditionState = RELOADING_A AliasConditionState = FIRING_A REALLYDAMAGED AliasConditionState = BETWEEN_FIRING_SHOTS_A REALLYDAMAGED AliasConditionState = RELOADING_A REALLYDAMAGED ConditionState = MOVING FIRING_A Animation = AITECH_SKL.AITECH_WKB 15 AnimationMode = LOOP Flags = RANDOMSTART TransitionKey = None ParticleSysBone = None InfantryDustTrails End AliasConditionState = MOVING BETWEEN_FIRING_SHOTS_A AliasConditionState = MOVING RELOADING_A ConditionState = MOVING Animation = AITECH_SKL.AITECH_WKA 15 AnimationMode = LOOP Flags = RANDOMSTART TransitionKey = None ParticleSysBone = None InfantryDustTrails End ConditionState = DYING Animation = AITECH_SKL.AITECH_DTA Animation = AITECH_SKL.AITECH_DTB AnimationMode = ONCE TransitionKey = TRANS_Dying End TransitionState = TRANS_Dying TRANS_Flailing Animation = AITECH_SKL.AITECH_ADTD1 AnimationMode = ONCE End ConditionState = DYING EXPLODED_FLAILING Animation = AITECH_SKL.AITECH_ADTD2 AnimationMode = LOOP TransitionKey = TRANS_Flailing End ConditionState = DYING EXPLODED_BOUNCING Animation = AITECH_SKL.AITECH_ADTD3 AnimationMode = ONCE TransitionKey = None End ConditionState = SPECIAL_CHEERING Animation = AITECH_SKL.AITECH_CHA AnimationMode = LOOP End ;PARACHUTING ANIMATIONS ConditionState = FREEFALL Animation = AITECH_SKL.AITECH_PFL AnimationMode = LOOP TransitionKey = TRANS_Falling End AliasConditionState = FREEFALL REALLYDAMAGED AliasConditionState = FREEFALL DYING ConditionState = PARACHUTING Animation = AITECH_SKL.AITECH_PHG AnimationMode = LOOP Flags = PRISTINE_BONE_POS_IN_FINAL_FRAME ; our bone positions should come from the last frame, rather than the first TransitionKey = TRANS_Chute End AliasConditionState = PARACHUTING REALLYDAMAGED AliasConditionState = PARACHUTING DYING TransitionState = TRANS_Falling TRANS_Chute Animation = AITECH_SKL.AITECH_POP AnimationMode = ONCE Flags = PRISTINE_BONE_POS_IN_FINAL_FRAME ; our bone positions should come from the last frame, rather than the first End TransitionState = TRANS_Chute TRANS_Stand Animation = AITECH_SKL.AITECH_PDN AnimationMode = ONCE End ;SURRENDER ANIMATIONS ; surrender is cut. sorry. (srj) ; ConditionState = SURRENDER ; Animation = AITECH_SKL.AITECH_SST ; AnimationMode = ONCE ; TransitionKey = TRANS_SurrenderKneeling ; End ; ConditionState = SURRENDER MOVING ; Animation = AITECH_SKL.AITECH_SWK ; AnimationMode = ONCE ; TransitionKey = TRANS_SurrenderMoving ; End ; TransitionState = TRANS_Stand TRANS_SurrenderKneeling ; Animation = AITECH_SKL.AITECH_SUR ; AnimationMode = ONCE ; End End ; ***DESIGN parameters *** DisplayName = OBJECT:BioHazardTech Side = America EditorSorting = INFANTRY TransportSlotCount = 1 ;how many "slots" we take in a transport (0 == not transportable) WeaponSet ;*** Fully automated and driven by the CleanupHazardUpdate *** Conditions = None Weapon = PRIMARY BioHazardTechCleanHazardWeapon AutoChooseSources = PRIMARY NONE End ArmorSet Conditions = None Armor = HazMatHumanArmor DamageFX = InfantryDamageFX End VisionRange = 100 ShroudClearingRange = 400 Prerequisites Object = AmericaBarracks End BuildCost = 200 BuildTime = 5.0 ;in seconds ExperienceValue = 50 100 150 400 ;Experience point value at each level ExperienceRequired = 0 150 450 900 ;Experience points needed to gain each level IsTrainable = Yes ;Can gain experience CrushableLevel = 0 ;What am I?: 0 = for infantry, 1 = for trees, 2 = general vehicles CommandSet = AmericaInfantryHazMatCommandSet ; *** AUDIO Parameters *** VoiceSelect = NoSound VoiceMove = NoSound VoiceAttack = NoSound SoundDie = RebelVoiceDie UnitSpecificFX ; These have the syntax of SomeNameSomewhereInCode = SomeNameSomewhereInLookupINIs End ; *** ENGINEERING Parameters *** RadarPriority = UNIT KindOf = PRELOAD SELECTABLE CAN_ATTACK CAN_CAST_REFLECTIONS INFANTRY SCORE Body = ActiveBody ModuleTag_02 MaxHealth = 100.0 InitialHealth = 100.0 End Behavior = CleanupHazardUpdate ModuleTag_03 WeaponSlot = PRIMARY ScanRate = 1000 ScanRange = 100.0 End ;Can be ordered to clean up a larger area with the ability to move around at an extended range. Behavior = CleanupAreaPower ModuleTag_04 SpecialPowerTemplate = SpecialAbilityAmbulanceCleanupArea MaxMoveDistanceFromLocation = 300.0 ;allows the unit to move around while cleaning up End Behavior = AIUpdateInterface ModuleTag_05 AutoAcquireEnemiesWhenIdle = No End Behavior = AutoFindHealingUpdate ModuleTag_06 ; This update will have the unit go to a healing station if injured. jba ScanRate = 1000 ; once a second. ScanRange = 300 ; NeverHeal = 0.85 ; don't heal if we are > 85% healthy. AlwaysHeal = 0.25 ; if we get below 25%, find healing right away. End Locomotor = SET_NORMAL CINE_HazMatHumanLocomotor Behavior = ExperienceScalarUpgrade ModuleTag_07 TriggeredBy = Upgrade_AmericaAdvancedTraining AddXPScalar = 1.0 ;Increases experience gained by an additional 100% End Behavior = PhysicsBehavior ModuleTag_08 Mass = 5.0 End Behavior = ProductionUpdate ModuleTag_09 ; nothing End Behavior = SquishCollide ModuleTag_10 ;nothing End ; --- begin Death modules --- Behavior = SlowDeathBehavior ModuleTag_Death01 DeathTypes = ALL -CRUSHED -SPLATTED -EXPLODED -BURNED -POISONED SinkDelay = 3000 SinkRate = 0.5 ; in Dist/Sec DestructionDelay = 8000 FX = INITIAL FX_GIDie End Behavior = SlowDeathBehavior ModuleTag_Death02 DeathTypes = NONE +CRUSHED +SPLATTED SinkDelay = 3000 SinkRate = 0.5 ; in Dist/Sec DestructionDelay = 8000 FX = INITIAL FX_GIDieCrushed End Behavior = SlowDeathBehavior ModuleTag_Death03 DeathTypes = NONE +EXPLODED SinkDelay = 3000 SinkRate = 0.5 ; in Dist/Sec DestructionDelay = 8000 FX = INITIAL FX_GIDie FlingForce = 8 FlingForceVariance = 3 FlingPitch = 60 FlingPitchVariance = 10 End Behavior = SlowDeathBehavior ModuleTag_Death04 DeathTypes = NONE +BURNED DestructionDelay = 0 FX = INITIAL FX_GIDie OCL = INITIAL OCL_FlamingInfantry End Behavior = SlowDeathBehavior ModuleTag_Death05 DeathTypes = NONE +POISONED DestructionDelay = 0 FX = INITIAL FX_GIDie OCL = INITIAL OCL_ToxicInfantry End ; --- end Death modules --- Geometry = CYLINDER GeometryMajorRadius = 10.0 GeometryMinorRadius = 10.0 GeometryHeight = 13.0 GeometryIsSmall = Yes Shadow = SHADOW_DECAL ShadowSizeX = 14; ShadowSizeY = 14; ShadowTexture = ShadowI; BuildCompletion = APPEARS_AT_RALLY_POINT End ;------------------------------------------------------------------------------ ; ; ; Jason Bender sez: ; This unit is used in a mission for "color". ; This unit is never human-controllable! ; Object ChinaInfantryOfficer ; *** ART Parameters *** Draw = W3DModelDraw ModuleTag_01 OkToChangeModelColor = Yes ;NORMAL STANDING DefaultConditionState Model = NIOFCR_SKN IdleAnimation = NIOFCR_SKL.NIOFCR_STA 0 21 ;Regular spice animations IdleAnimation = NIOFCR_SKL.NIOFCR_IDA IdleAnimation = NIOFCR_SKL.NIOFCR_IDB AnimationMode = ONCE WeaponFireFXBone = PRIMARY Muzzle WeaponMuzzleFlash = PRIMARY MuzzleFX TransitionKey = TRANS_STAND End ConditionState = MOVING Animation = NIOFCR_SKL.NIOFCR_RNA AnimationMode = LOOP ParticleSysBone = None InfantryDustTrails End ; NORMAL ATTACK ;-------------------------------------------------------- ; Drawing gun ConditionState = PREATTACK_A Animation = NIOFCR_SKL.NIOFCR_ATAST AnimationMode = ONCE End AliasConditionState = PREATTACK_A MOVING AliasConditionState = PREATTACK_A FIRING_A AliasConditionState = PREATTACK_A BETWEEN_FIRING_SHOTS_A ; Firing gun ConditionState = FIRING_A Animation = NIOFCR_SKL.NIOFCR_ATALP AnimationMode = LOOP TransitionKey = TRANS_FIRING_A End ConditionState = BETWEEN_FIRING_SHOTS_A Animation = NIOFCR_SKL.NIOFCR_ATALP AnimationMode = LOOP TransitionKey = TRANS_FIRING_A End AliasConditionState = RELOADING_A AliasConditionState = MOVING FIRING_A AliasConditionState = MOVING BETWEEN_FIRING_SHOTS_A AliasConditionState = MOVING RELOADING_A ; This transition allows him to put his gun away when he's finished attacking. TransitionState = TRANS_FIRING_A TRANS_STAND Animation = NIOFCR_SKL.NIOFCR_ATAED AnimationMode = ONCE End ;-------------------------------------------------------- ConditionState = DYING Animation = NIOFCR_SKL.NIOFCR_DTA Animation = NIOFCR_SKL.NIOFCR_DTB AnimationMode = ONCE TransitionKey = TRANS_Dying End TransitionState = TRANS_Dying TRANS_Flailing Animation = NIOFCR_SKL.NIOFCR_ADTE1 AnimationMode = ONCE End ConditionState = DYING EXPLODED_FLAILING Animation = NIOFCR_SKL.NIOFCR_ADTE2 AnimationMode = LOOP TransitionKey = TRANS_Flailing End ConditionState = DYING EXPLODED_BOUNCING Animation = NIOFCR_SKL.NIOFCR_ADTE3 AnimationMode = ONCE TransitionKey = None End ConditionState = SPECIAL_CHEERING Animation = NIOFCR_SKL.NIOFCR_CHA AnimationMode = LOOP End ;PARACHUTING ANIMATIONS ;@TODO - MISSING ANIMATION FILE ;ConditionState = FREEFALL ; Animation = NIOFCR_SKL.NIOFCR_PFL ; AnimationMode = LOOP ; TransitionKey = TRANS_Falling ;End ;AliasConditionState = FREEFALL REALLYDAMAGED ;AliasConditionState = FREEFALL DYING ConditionState = PARACHUTING Animation = NIOFCR_SKL.NIOFCR_PHG AnimationMode = LOOP Flags = PRISTINE_BONE_POS_IN_FINAL_FRAME ; our bone positions should come from the last frame, rather than the first TransitionKey = TRANS_Chute End AliasConditionState = PARACHUTING REALLYDAMAGED AliasConditionState = PARACHUTING DYING TransitionState = TRANS_Falling TRANS_Chute Animation = NIOFCR_SKL.NIOFCR_POP AnimationMode = ONCE Flags = PRISTINE_BONE_POS_IN_FINAL_FRAME ; our bone positions should come from the last frame, rather than the first End TransitionState = TRANS_Chute TRANS_STAND Animation = NIOFCR_SKL.NIOFCR_PTD AnimationMode = ONCE End ;SURRENDER ANIMATIONS ; surrender is cut. sorry. (srj) ; ConditionState = SURRENDER ; Animation = NIOFCR_SKL.NIOFCR_SLP ; AnimationMode = LOOP ; TransitionKey = TRANS_SurrenderStand ; End ; ConditionState = SURRENDER MOVING ; Animation = NIOFCR_SKL.NIOFCR_SWKLP ; AnimationMode = LOOP ; TransitionKey = TRANS_SurrenderMoving ; End ; TransitionState = TRANS_SurrenderStand TRANS_SurrenderMoving ; Animation = NIOFCR_SKL.NIOFCR_SWKST ; AnimationMode = ONCE ; End ; TransitionState = TRANS_STAND TRANS_SurrenderStand ; Animation = NIOFCR_SKL.NIOFCR_SST ; AnimationMode = ONCE ; End End ; ***DESIGN parameters *** DisplayName = OBJECT:Officer Side = China EditorSorting = INFANTRY TransportSlotCount = 1 ;how many "slots" we take in a transport (0 == not transportable) WeaponSet Conditions = None Weapon = PRIMARY ChinaOfficerMachineGun End ArmorSet Conditions = None Armor = HumanArmor DamageFX = InfantryDamageFX End VisionRange = 150 ShroudClearingRange = 150 Prerequisites Object = ChinaBarracks End BuildCost = 400 BuildTime = 10.0 ;in seconds ; *** AUDIO Parameters *** VoiceSelect = RedGuardVoiceSelect VoiceGroupSelect = BattleCrySound VoiceMove = RedGuardVoiceMove VoiceAttack = RedGuardVoiceAttack SoundDie = RedGuardVoiceDie SoundDieFire = DieByFireChina SoundDieToxin = DieByToxinChina ; *** ENGINEERING Parameters *** RadarPriority = UNIT KindOf = PRELOAD SELECTABLE CAN_ATTACK CAN_CAST_REFLECTIONS INFANTRY Body = ActiveBody ModuleTag_02 MaxHealth = 100.0 InitialHealth = 100.0 End Behavior = AIUpdateInterface ModuleTag_03 AutoAcquireEnemiesWhenIdle = Yes End Locomotor = SET_NORMAL BasicHumanLocomotor Behavior = PhysicsBehavior ModuleTag_04 Mass = 5.0 End Behavior = SquishCollide ModuleTag_06 ;nothing End ; --- begin Death modules --- Behavior = SlowDeathBehavior ModuleTag_Death01 DeathTypes = ALL -CRUSHED -SPLATTED -EXPLODED -BURNED -POISONED SinkDelay = 3000 SinkRate = 0.5 ; in Dist/Sec DestructionDelay = 8000 FX = INITIAL FX_GIDie End Behavior = SlowDeathBehavior ModuleTag_Death02 DeathTypes = NONE +CRUSHED +SPLATTED SinkDelay = 3000 SinkRate = 0.5 ; in Dist/Sec DestructionDelay = 8000 FX = INITIAL FX_GIDieCrushed End Behavior = SlowDeathBehavior ModuleTag_Death03 DeathTypes = NONE +EXPLODED SinkDelay = 3000 SinkRate = 0.5 ; in Dist/Sec DestructionDelay = 8000 FX = INITIAL FX_GIDie FlingForce = 8 FlingForceVariance = 3 FlingPitch = 60 FlingPitchVariance = 10 End Behavior = SlowDeathBehavior ModuleTag_Death04 DeathTypes = NONE +BURNED DestructionDelay = 0 FX = INITIAL FX_GIDie OCL = INITIAL OCL_FlamingInfantry End Behavior = SlowDeathBehavior ModuleTag_Death05 DeathTypes = NONE +POISONED DestructionDelay = 0 FX = INITIAL FX_GIDie OCL = INITIAL OCL_ End ; --- end Death modules --- Behavior = PoisonedBehavior ModuleTag_09 PoisonDamageInterval = 100 ; Every this many msec I will retake the poison damage dealt me... PoisonDuration = 3000 ; ... for this long after last hit by poison damage End Geometry = CYLINDER GeometryMajorRadius = 10.0 GeometryMinorRadius = 10.0 GeometryHeight = 12.0 GeometryIsSmall = Yes Shadow = SHADOW_DECAL ShadowSizeX = 14; ShadowSizeY = 14; ShadowTexture = ShadowI; BuildCompletion = APPEARS_AT_RALLY_POINT End ;------------------------------------------------------------------------------ ; ; ??? This unit is used in a mission for "color". ; This unit is never human-controllable! ; Object AmericaInfantryOfficer ; *** ART Parameters *** Draw = W3DModelDraw ModuleTag_01 OkToChangeModelColor = Yes ;NORMAL STANDING DefaultConditionState Model = AIOFCR_SKN IdleAnimation = AIOFCR_SKL.AIOFCR_STA 0 21 ;Regular spice animations IdleAnimation = AIOFCR_SKL.AIOFCR_IDA IdleAnimation = AIOFCR_SKL.AIOFCR_IDB AnimationMode = ONCE WeaponFireFXBone = PRIMARY Muzzle WeaponMuzzleFlash = PRIMARY MuzzleFX TransitionKey = TRANS_STAND End ConditionState = MOVING Animation = AIOFCR_SKL.AIOFCR_RNA AnimationMode = LOOP ParticleSysBone = None InfantryDustTrails End ; NORMAL ATTACK ;-------------------------------------------------------- ; Drawing gun ConditionState = PREATTACK_A Animation = AIOFCR_SKL.AIOFCR_ATAST AnimationMode = ONCE End AliasConditionState = PREATTACK_A MOVING AliasConditionState = PREATTACK_A FIRING_A AliasConditionState = PREATTACK_A BETWEEN_FIRING_SHOTS_A ; Firing gun ConditionState = FIRING_A Animation = AIOFCR_SKL.AIOFCR_ATALP AnimationMode = LOOP TransitionKey = TRANS_FIRING_A End ConditionState = BETWEEN_FIRING_SHOTS_A Animation = AIOFCR_SKL.AIOFCR_ATALP AnimationMode = LOOP TransitionKey = TRANS_FIRING_A End AliasConditionState = RELOADING_A AliasConditionState = MOVING FIRING_A AliasConditionState = MOVING BETWEEN_FIRING_SHOTS_A AliasConditionState = MOVING RELOADING_A ; This transition allows him to put his gun away when he's finished attacking. TransitionState = TRANS_FIRING_A TRANS_STAND Animation = AIOFCR_SKL.AIOFCR_ATAED AnimationMode = ONCE End ;-------------------------------------------------------- ConditionState = DYING Animation = AIOFCR_SKL.AIOFCR_DTA Animation = AIOFCR_SKL.AIOFCR_DTB AnimationMode = ONCE TransitionKey = TRANS_Dying End TransitionState = TRANS_Dying TRANS_Flailing Animation = AIOFCR_SKL.AIOFCR_ADTE1 AnimationMode = ONCE End ConditionState = DYING EXPLODED_FLAILING Animation = AIOFCR_SKL.AIOFCR_ADTE2 AnimationMode = LOOP TransitionKey = TRANS_Flailing End ConditionState = DYING EXPLODED_BOUNCING Animation = AIOFCR_SKL.AIOFCR_ADTE3 AnimationMode = ONCE TransitionKey = None End ConditionState = SPECIAL_CHEERING Animation = AIOFCR_SKL.AIOFCR_CHA AnimationMode = LOOP End ;PARACHUTING ANIMATIONS ;@TODO - MISSING ANIMATION FILE ;ConditionState = FREEFALL ; Animation = AIOFCR_SKL.AIOFCR_PFL ; AnimationMode = LOOP ; TransitionKey = TRANS_Falling ;End ;AliasConditionState = FREEFALL REALLYDAMAGED ;AliasConditionState = FREEFALL DYING ConditionState = PARACHUTING Animation = AIOFCR_SKL.AIOFCR_PHG AnimationMode = LOOP Flags = PRISTINE_BONE_POS_IN_FINAL_FRAME ; our bone positions should come from the last frame, rather than the first TransitionKey = TRANS_Chute End AliasConditionState = PARACHUTING REALLYDAMAGED AliasConditionState = PARACHUTING DYING TransitionState = TRANS_Falling TRANS_Chute Animation = AIOFCR_SKL.AIOFCR_POP AnimationMode = ONCE Flags = PRISTINE_BONE_POS_IN_FINAL_FRAME ; our bone positions should come from the last frame, rather than the first End TransitionState = TRANS_Chute TRANS_Stand Animation = AIOFCR_SKL.AIOFCR_PTD AnimationMode = ONCE End ;SURRENDER ANIMATIONS ; surrender is cut. sorry. (srj) ; ConditionState = SURRENDER ; Animation = AIOFCR_SKL.AIOFCR_SLP ; AnimationMode = LOOP ; TransitionKey = TRANS_SurrenderStand ; End ; ConditionState = SURRENDER MOVING ; Animation = AIOFCR_SKL.AIOFCR_SWKLP ; AnimationMode = LOOP ; TransitionKey = TRANS_SurrenderMoving ; End ; TransitionState = TRANS_SurrenderStand TRANS_SurrenderMoving ; Animation = AIOFCR_SKL.AIOFCR_SWKST ; AnimationMode = ONCE ; End ; TransitionState = TRANS_Stand TRANS_SurrenderStand ; Animation = AIOFCR_SKL.AIOFCR_SST ; AnimationMode = ONCE ; End End ; ***DESIGN parameters *** DisplayName = OBJECT:Officer Side = America EditorSorting = INFANTRY TransportSlotCount = 1 ;how many "slots" we take in a transport (0 == not transportable) WeaponSet Conditions = None Weapon = PRIMARY AmericaOfficerMachineGun End ArmorSet Conditions = None Armor = HumanArmor DamageFX = InfantryDamageFX End VisionRange = 150 ShroudClearingRange = 150 BuildCost = 400 BuildTime = 10.0 ;in seconds ; *** AUDIO Parameters *** VoiceSelect = RangerVoiceSelect VoiceGroupSelect = BattleCrySound VoiceMove = RangerVoiceMove VoiceAttack = RangerVoiceAttack SoundDie = RangerVoiceDie SoundDieFire = DieByFireUSA SoundDieToxin = DieByToxinChina ; *** ENGINEERING Parameters *** RadarPriority = UNIT KindOf = PRELOAD SELECTABLE CAN_ATTACK CAN_CAST_REFLECTIONS INFANTRY SCORE Body = ActiveBody ModuleTag_02 MaxHealth = 100.0 InitialHealth = 100.0 End Behavior = AIUpdateInterface ModuleTag_03 AutoAcquireEnemiesWhenIdle = Yes End Behavior = AutoFindHealingUpdate ModuleTag_04 ; This update will have the unit go to a healing station if injured. jba ScanRate = 1000 ; once a second. ScanRange = 300 ; NeverHeal = 0.85 ; don't heal if we are > 85% healthy. AlwaysHeal = 0.25 ; if we get below 25%, find healing right away. End Locomotor = SET_NORMAL BasicHumanLocomotor Behavior = PhysicsBehavior ModuleTag_05 Mass = 5.0 End Behavior = SquishCollide ModuleTag_07 ;nothing End ; --- begin Death modules --- Behavior = SlowDeathBehavior ModuleTag_Death01 DeathTypes = ALL -CRUSHED -SPLATTED -EXPLODED -BURNED -POISONED SinkDelay = 3000 SinkRate = 0.5 ; in Dist/Sec DestructionDelay = 8000 FX = INITIAL FX_GIDie End Behavior = SlowDeathBehavior ModuleTag_Death02 DeathTypes = NONE +CRUSHED +SPLATTED SinkDelay = 3000 SinkRate = 0.5 ; in Dist/Sec DestructionDelay = 8000 FX = INITIAL FX_GIDieCrushed End Behavior = SlowDeathBehavior ModuleTag_Death03 DeathTypes = NONE +EXPLODED SinkDelay = 3000 SinkRate = 0.5 ; in Dist/Sec DestructionDelay = 8000 FX = INITIAL FX_GIDie FlingForce = 8 FlingForceVariance = 3 FlingPitch = 60 FlingPitchVariance = 10 End Behavior = SlowDeathBehavior ModuleTag_Death04 DeathTypes = NONE +BURNED DestructionDelay = 0 FX = INITIAL FX_GIDie OCL = INITIAL OCL_FlamingInfantry End Behavior = SlowDeathBehavior ModuleTag_Death05 DeathTypes = NONE +POISONED DestructionDelay = 0 FX = INITIAL FX_GIDie OCL = INITIAL OCL_ToxicInfantry End ; --- end Death modules --- Behavior = PoisonedBehavior ModuleTag_10 PoisonDamageInterval = 100 ; Every this many msec I will retake the poison damage dealt me... PoisonDuration = 3000 ; ... for this long after last hit by poison damage End Geometry = CYLINDER GeometryMajorRadius = 10.0 GeometryMinorRadius = 10.0 GeometryHeight = 12.0 GeometryIsSmall = Yes Shadow = SHADOW_DECAL ShadowSizeX = 14; ShadowSizeY = 14; ShadowTexture = ShadowI; BuildCompletion = APPEARS_AT_RALLY_POINT End ;------------------------------------------------------------------------------ Object AmericaInfantrySecretService ; *** ART Parameters *** Draw = W3DModelDraw ModuleTag_01 OkToChangeModelColor = Yes DefaultConditionState Model = AISSRV_SKN IdleAnimation = AISSRV_SKL.AISSRV_STA AnimationMode = ONCE TransitionKey = TRANS_Stand End End ; ***DESIGN parameters *** DisplayName = OBJECT:BioHazardTech Side = America EditorSorting = INFANTRY TransportSlotCount = 1 ;how many "slots" we take in a transport (0 == not transportable) WeaponSet Conditions = None Weapon = PRIMARY None End ArmorSet Conditions = None Armor = HumanArmor DamageFX = InfantryDamageFX End VisionRange = 150 ShroudClearingRange = 150 Prerequisites Object = AmericaBarracks End BuildCost = 100 BuildTime = 1.0 ;in seconds ; *** AUDIO Parameters *** VoiceSelect = RangerVoiceSelect VoiceMove = RangerVoiceMove VoiceAttack = RangerVoiceAttack SoundDie = RangerVoiceDie SoundDieFire = DieByFireUSA SoundDieToxin = DieByToxinUSA ; *** ENGINEERING Parameters *** RadarPriority = UNIT KindOf = PRELOAD SELECTABLE CAN_ATTACK CAN_CAST_REFLECTIONS INFANTRY SCORE Body = ActiveBody ModuleTag_02 MaxHealth = 50.0 InitialHealth = 50.0 End Behavior = AIUpdateInterface ModuleTag_03 AutoAcquireEnemiesWhenIdle = Yes End Behavior = AutoFindHealingUpdate ModuleTag_04 ; This update will have the unit go to a healing station if injured. jba ScanRate = 1000 ; once a second. ScanRange = 300 ; NeverHeal = 0.85 ; don't heal if we are > 85% healthy. AlwaysHeal = 0.25 ; if we get below 25%, find healing right away. End Locomotor = SET_NORMAL BasicHumanLocomotor Behavior = PhysicsBehavior ModuleTag_05 Mass = 5.0 End Behavior = SlowDeathBehavior ModuleTag_06 SinkDelay = 3000 SinkRate = 0.5 ; in Dist/Sec DestructionDelay = 8000 End Behavior = ExperienceScalarUpgrade ModuleTag_07 TriggeredBy = Upgrade_AmericaAdvancedTraining AddXPScalar = 1.0 ;Increases experience gained by an additional 100% End Behavior = SquishCollide ModuleTag_08 ;nothing End Behavior = FXListDie ModuleTag_09 DeathTypes = ALL -CRUSHED -SPLATTED DeathFX = FX_GIDie End Behavior = FXListDie ModuleTag_10 DeathTypes = NONE +CRUSHED +SPLATTED DeathFX = FX_GIDieCrushed End Behavior = PoisonedBehavior ModuleTag_11 PoisonDamageInterval = 100 ; Every this many msec I will retake the poison damage dealt me... PoisonDuration = 3000 ; ... for this long after last hit by poison damage End Geometry = CYLINDER GeometryMajorRadius = 10.0 GeometryMinorRadius = 10.0 GeometryHeight = 12.0 GeometryIsSmall = Yes Shadow = SHADOW_DECAL ShadowSizeX = 14; ShadowSizeY = 14; ShadowTexture = ShadowI; BuildCompletion = APPEARS_AT_RALLY_POINT End ;------------------------------------------------------------------------------ ; ; ??? This unit is used in a mission for "color". ; This unit is never human-controllable! ; @todo srj -- is this used for ANYTHING? ; Object ChinaInfantryAgent ; *** ART Parameters *** Draw = W3DModelDraw ModuleTag_01 OkToChangeModelColor = Yes ;NORMAL STANDING DefaultConditionState Model = AIRngr_SKN IdleAnimation = AIRngr_SKL.AIRngr_STA 0 21 ;Regular spice animations IdleAnimation = AIRngr_SKL.AIRngr_IDA IdleAnimation = AIRngr_SKL.AIRngr_IDB AnimationMode = ONCE WeaponFireFXBone = PRIMARY Muzzle WeaponMuzzleFlash = PRIMARY MuzzleFX TransitionKey = TRANS_Stand End ; NORMAL ATTACK (Cutting fence via wirecutters) ConditionState = PREATTACK_A Animation = AIRngr_SKL.AIRngr_ATA AnimationMode = ONCE TransitionKey = TRANS_FiringA End AliasConditionState = FIRING_A AliasConditionState = BETWEEN_FIRING_SHOTS_A AliasConditionState = RELOADING_A AliasConditionState = MOVING FIRING_A AliasConditionState = MOVING BETWEEN_FIRING_SHOTS_A AliasConditionState = MOVING RELOADING_A AliasConditionState = FIRING_A REALLYDAMAGED AliasConditionState = BETWEEN_FIRING_SHOTS_A REALLYDAMAGED AliasConditionState = RELOADING_A REALLYDAMAGED ; SECONDARY ATTACK (Flash-bang grenades) ConditionState = FIRING_B Animation = AIRngr_SKL.AIRngr_ATB AnimationMode = ONCE WeaponFireFXBone = SECONDARY Muzzle WeaponLaunchBone = SECONDARY Muzzle TransitionKey = TRANS_FiringB End AliasConditionState = BETWEEN_FIRING_SHOTS_B AliasConditionState = RELOADING_B ; these aliases handle the moving-between-shots case. (we can't actually move-and-fire at the same time.). AliasConditionState = MOVING FIRING_B AliasConditionState = MOVING BETWEEN_FIRING_SHOTS_B AliasConditionState = MOVING RELOADING_B ConditionState = MOVING Animation = AIRngr_SKL.AIRngr_RNA 15 AnimationMode = LOOP Flags = RANDOMSTART TransitionKey = None ParticleSysBone = None InfantryDustTrails End ConditionState = MOVING REALLYDAMAGED ; ; there is a new, optional number following the animation... ; it represents the distance that a single loop the animation would ; cover. (ie, maybe it has the solder taking three strides, for a ; distance of 30 or so) ; ; how to tweak the number: ; -- "skidding"? reduce the number ; -- "running in place"? increase the number ; ; note that playing animations at abormal speeds may look odd in some cases. ; (e.g., a "limping" animation played too fast looks really odd.) ; Animation = AIRngr_SKL.AIRngr_RNB 30 AnimationMode = LOOP Flags = RANDOMSTART TransitionKey = None ParticleSysBone = None InfantryDustTrails End ConditionState = DYING Animation = AIRngr_SKL.AIRngr_DTA Animation = AIRngr_SKL.AIRngr_DTB AnimationMode = ONCE TransitionKey = None End ConditionState = SPECIAL_CHEERING Animation = AIRngr_SKL.AIRngr_CHA AnimationMode = LOOP End ;PARACHUTING ANIMATIONS ConditionState = FREEFALL Animation = AIRngr_SKL.AIRngr_PFL AnimationMode = LOOP TransitionKey = TRANS_Falling End AliasConditionState = FREEFALL REALLYDAMAGED AliasConditionState = FREEFALL DYING ConditionState = PARACHUTING Animation = AIRngr_SKL.AIRngr_PHG AnimationMode = LOOP Flags = PRISTINE_BONE_POS_IN_FINAL_FRAME ; our bone positions should come from the last frame, rather than the first TransitionKey = TRANS_Chute End AliasConditionState = PARACHUTING REALLYDAMAGED AliasConditionState = PARACHUTING DYING TransitionState = TRANS_Falling TRANS_Chute Animation = AIRngr_SKL.AIRngr_POP AnimationMode = ONCE Flags = PRISTINE_BONE_POS_IN_FINAL_FRAME ; our bone positions should come from the last frame, rather than the first End TransitionState = TRANS_Chute TRANS_Stand Animation = AIRngr_SKL.AIRngr_PTD AnimationMode = ONCE End ;SURRENDER ANIMATIONS ; surrender is cut. sorry. (srj) ; ConditionState = SURRENDER ; Animation = AIRngr_SKL.AIRngr_SST ; AnimationMode = ONCE ; TransitionKey = TRANS_SurrenderKneeling ; End ; ConditionState = SURRENDER MOVING ; Animation = AIRngr_SKL.AIRngr_SWKB ; AnimationMode = ONCE ; TransitionKey = TRANS_SurrenderMoving ; ParticleSysBone = None InfantryDustTrails ; End ; TransitionState = TRANS_Stand TRANS_SurrenderKneeling ; Animation = AIRngr_SKL.AIRngr_SUR ; AnimationMode = ONCE ; End ; RAPPELLING ANIMATIONS ConditionState = RAPPELLING Animation = AIRngr_SKL.AIRngr_RPL1 ;30 AnimationMode = LOOP Flags = RANDOMSTART TransitionKey = TRANS_Rappelling End AliasConditionState = MOVING RAPPELLING TransitionState = TRANS_Rappelling TRANS_Stand Animation = AIRngr_SKL.AIRngr_RPL2 AnimationMode = ONCE End End ; ***DESIGN parameters *** DisplayName = OBJECT:Agent Side = China EditorSorting = INFANTRY TransportSlotCount = 1 ;how many "slots" we take in a transport (0 == not transportable) WeaponSet Conditions = None Weapon = PRIMARY RedguardMachineGun End ; sorry, no stun bullets, cut for this version (srj) ; WeaponSet ; Conditions = PLAYER_UPGRADE ; Weapon = PRIMARY RedguardStunBulletsMachineGun ; End ArmorSet Conditions = None Armor = HumanArmor DamageFX = InfantryDamageFX End VisionRange = 150 ShroudClearingRange = 150 Prerequisites Object = ChinaBarracks Object = ChinaPropagandaCenter End BuildCost = 600 BuildTime = 20.0 ;in seconds ExperienceValue = 50 100 150 400 ;Experience point value at each level ExperienceRequired = 0 150 450 900 ;Experience points needed to gain each level IsTrainable = Yes ;Can gain experience ; *** AUDIO Parameters *** VoiceSelect = RedGuardVoiceSelect VoiceGroupSelect = BattleCrySound VoiceMove = RedGuardVoiceMove VoiceAttack = RedGuardVoiceAttack SoundDie = RedGuardVoiceDie SoundDieFire = DieByFireChina SoundDieToxin = DieByToxinChina ; *** ENGINEERING Parameters *** RadarPriority = UNIT KindOf = PRELOAD SELECTABLE CAN_ATTACK ATTACK_NEEDS_LINE_OF_SIGHT CAN_CAST_REFLECTIONS INFANTRY SCORE Body = ActiveBody ModuleTag_02 MaxHealth = 100.0 InitialHealth = 100.0 End Behavior = VeterancyGainCreate ModuleTag_03 StartingLevel = VETERAN End Behavior = StealthUpdate ModuleTag_04 StealthDelay = 2000 ; msec StealthForbiddenConditions = ATTACKING FriendlyOpacityMin = 50.0% InnateStealth = Yes OrderIdleEnemiesToAttackMeUponReveal = Yes End Behavior = AIUpdateInterface ModuleTag_05 AutoAcquireEnemiesWhenIdle = Yes End Locomotor = SET_NORMAL BasicHumanLocomotor Behavior = PhysicsBehavior ModuleTag_06 Mass = 5.0 End Behavior = SlowDeathBehavior ModuleTag_07 SinkDelay = 3000 SinkRate = 0.5 ; in Dist/Sec DestructionDelay = 8000 End Behavior = SquishCollide ModuleTag_08 ;nothing End Behavior = FXListDie ModuleTag_09 DeathTypes = ALL -CRUSHED -SPLATTED DeathFX = FX_GIDie End Behavior = FXListDie ModuleTag_10 DeathTypes = NONE +CRUSHED +SPLATTED DeathFX = FX_GIDieCrushed End Behavior = PoisonedBehavior ModuleTag_11 PoisonDamageInterval = 100 ; Every this many msec I will retake the poison damage dealt me... PoisonDuration = 3000 ; ... for this long after last hit by poison damage End Geometry = CYLINDER GeometryMajorRadius = 10.0 GeometryMinorRadius = 10.0 GeometryHeight = 12.0 GeometryIsSmall = Yes Shadow = SHADOW_DECAL ShadowSizeX = 14; ShadowSizeY = 14; ShadowTexture = ShadowI; BuildCompletion = APPEARS_AT_RALLY_POINT End ;------------------------------------------------------------------------------ ;The Marauder Tank, for the Warlord General. Object GLATankMarauder ; *** ART Parameters *** SelectPortrait = SUMarauder_L ButtonImage = SUMarauder UpgradeCameo1 = Upgrade_GLAToxinShells UpgradeCameo2 = Upgrade_GLAJunkRepair ;UpgradeCameo3 = NONE ;UpgradeCameo4 = NONE ;UpgradeCameo5 = NONE Draw = W3DTankDraw ModuleTag_01 OkToChangeModelColor = Yes ; no crate upgrade ConditionState = NONE Model = UVMarauder Turret = Turret ShowSubObject = Turret HideSubObject = TurretUp01 TurretUp02 BarrelFX01 ; Since we are showing one of three turrets, we need to then hide the subobject muzzleflash WeaponFireFXBone = PRIMARY BarrelMS WeaponRecoilBone = PRIMARY Barrel WeaponMuzzleFlash = PRIMARY BarrelFX WeaponLaunchBone = PRIMARY BarrelMS End ConditionState = REALLYDAMAGED Model = UVMarauder_d Turret = Turret ShowSubObject = Turret HideSubObject = TurretUp01 TurretUp02 BarrelFX01 WeaponFireFXBone = PRIMARY BarrelMS WeaponRecoilBone = PRIMARY Barrel WeaponMuzzleFlash = PRIMARY BarrelFX WeaponLaunchBone = PRIMARY BarrelMS End ConditionState = RUBBLE Model = UVMarauder_d Turret = Turret ShowSubObject = Turret HideSubObject = TurretUp01 TurretUp02 BarrelFX01 WeaponFireFXBone = PRIMARY BarrelMS WeaponRecoilBone = PRIMARY Barrel WeaponMuzzleFlash = PRIMARY BarrelFX WeaponLaunchBone = PRIMARY BarrelMS End ; crate upgrade 1 ConditionState = WEAPONSET_CRATEUPGRADE_ONE Model = UVMarauder Turret = TurretUp01 ShowSubObject = TurretUp01 HideSubObject = Turret TurretUp02 BarrelUp01FX01 WeaponFireFXBone = PRIMARY BarrelUp01MS WeaponRecoilBone = PRIMARY BarrelUp01 WeaponMuzzleFlash = PRIMARY BarrelUp01FX WeaponLaunchBone = PRIMARY BarrelUp01MS End ConditionState = REALLYDAMAGED WEAPONSET_CRATEUPGRADE_ONE Model = UVMarauder_d Turret = TurretUp01 ShowSubObject = TurretUp01 HideSubObject = Turret TurretUp02 BarrelUp01FX01 WeaponFireFXBone = PRIMARY BarrelUp01MS WeaponRecoilBone = PRIMARY BarrelUp01 WeaponMuzzleFlash = PRIMARY BarrelUp01FX WeaponLaunchBone = PRIMARY BarrelUp01MS End ConditionState = RUBBLE WEAPONSET_CRATEUPGRADE_ONE Model = UVMarauder_d Turret = TurretUp01 ShowSubObject = TurretUp01 HideSubObject = Turret TurretUp02 BarrelUp01FX01 WeaponFireFXBone = PRIMARY BarrelUp01MS WeaponRecoilBone = PRIMARY BarrelUp01 WeaponMuzzleFlash = PRIMARY BarrelUp01FX WeaponLaunchBone = PRIMARY BarrelUp01MS End ; crate upgrade 2 ConditionState = WEAPONSET_CRATEUPGRADE_TWO Model = UVMarauder Turret = TurretUp02 ShowSubObject = TurretUp02 HideSubObject = Turret TurretUp01 BarrelUp02FX01 BarrelUp02FX02 WeaponFireFXBone = PRIMARY BarrelUp02MS WeaponRecoilBone = PRIMARY BarrelUp02 WeaponMuzzleFlash = PRIMARY BarrelUp02FX WeaponLaunchBone = PRIMARY BarrelUp02MS End ConditionState = REALLYDAMAGED WEAPONSET_CRATEUPGRADE_TWO Model = UVMarauder_d Turret = TurretUp02 ShowSubObject = TurretUp02 HideSubObject = Turret TurretUp01 BarrelUp02FX01 BarrelUp02FX02 WeaponFireFXBone = PRIMARY BarrelUp02MS WeaponRecoilBone = PRIMARY BarrelUp02 WeaponMuzzleFlash = PRIMARY BarrelUp02FX WeaponLaunchBone = PRIMARY BarrelUp02MS End ConditionState = RUBBLE WEAPONSET_CRATEUPGRADE_TWO Model = UVMarauder_d Turret = TurretUp02 ShowSubObject = TurretUp02 HideSubObject = Turret TurretUp01 BarrelUp02FX01 BarrelUp02FX02 WeaponFireFXBone = PRIMARY BarrelUp02MS WeaponRecoilBone = PRIMARY BarrelUp02 WeaponMuzzleFlash = PRIMARY BarrelUp02FX WeaponLaunchBone = PRIMARY BarrelUp02MS End TrackMarks = EXTnkTrack.tga TreadAnimationRate = 2.0; amount of tread texture to move per second TreadDriveSpeedFraction = 0.3 ; fraction of locomotor speed below which treads stop moving. TreadPivotSpeedFraction = 0.6 ; fraction of locomotor speed below which we allow pivoting. End ; ***DESIGN parameters *** DisplayName = OBJECT:Marauder Side = GLA EditorSorting = VEHICLE TransportSlotCount = 3 ;how many "slots" we take in a transport (0 == not transportable) WeaponSet Conditions = None Weapon = PRIMARY MarauderTankGun End WeaponSet Conditions = CRATEUPGRADE_ONE Weapon = PRIMARY MarauderTankGunUpgradeOne End WeaponSet Conditions = CRATEUPGRADE_TWO Weapon = PRIMARY MarauderTankGunUpgradeTwo End ArmorSet Conditions = None Armor = TankArmor DamageFX = TankDamageFX End BuildCost = 800 BuildTime = 10.0 ;in seconds VisionRange = 125 ShroudClearingRange = 300 Prerequisites Object = GLAArmsDealer Science = SCIENCE_MarauderTank End ExperienceValue = 100 100 200 300 ;Experience point value at each level ExperienceRequired = 0 200 300 600 ;Experience points needed to gain each level IsTrainable = Yes ;Can gain experience CrusherLevel = 2 ;What can I crush?: 1 = infantry, 2 = trees, 3 = vehicles CrushableLevel = 2 ;What am I?: 0 = for infantry, 1 = for trees, 2 = general vehicles CommandSet = GLATankMarauderCommandSet ; *** AUDIO Parameters *** VoiceSelect = MarauderTankVoiceSelect VoiceMove = MarauderTankVoiceMove VoiceGuard = MarauderTankVoiceMove VoiceAttack = MarauderTankVoiceAttack SoundMoveStart = MarauderTankMoveStart SoundMoveStartDamaged = MarauderTankMoveStart UnitSpecificSounds ; These have the syntax of SomeNameSomewhereInCode = SomeNameSomewhereInLookupINIs VoiceCreate = MarauderTankVoiceCreate ;TurretMoveStart = NoSound TurretMoveLoop = TurretMoveLoop VoiceSalvage = MarauderTankVoiceSalvage VoiceCrush = MarauderTankVoiceCrush VoiceEnter = MarauderTankVoiceMove End ; *** ENGINEERING Parameters *** RadarPriority = UNIT KindOf = PRELOAD SELECTABLE CAN_ATTACK ATTACK_NEEDS_LINE_OF_SIGHT CAN_CAST_REFLECTIONS SALVAGER WEAPON_SALVAGER VEHICLE SCORE Body = ActiveBody ModuleTag_02 MaxHealth = 490.0 ;was 430.0 InitialHealth = 490.0 End Behavior = AIUpdateInterface ModuleTag_03 AutoAcquireEnemiesWhenIdle = Yes End Locomotor = SET_NORMAL MarauderLocomotor Behavior = PhysicsBehavior ModuleTag_04 Mass = 50.0 End Behavior = AutoHealBehavior ModuleTag_05 HealingAmount = 2 HealingDelay = 1000 ; msec TriggeredBy = Upgrade_GLAJunkRepair End ; Catch fire, and explode death Behavior = SlowDeathBehavior ModuleTag_06 DeathTypes = ALL -CRUSHED -SPLATTED ProbabilityModifier = 50 DestructionDelay = 1000 DestructionDelayVariance = 300 FX = INITIAL FX_CrusaderCatchFire OCL = FINAL OCL_MaruaderTankDeathEffect FX = FINAL FX_BattleMasterExplosionOneFinal End Behavior = CreateCrateDie ModuleTag_07 CrateData = SalvageCrateData ;CrateData = EliteTankCrateData ;CrateData = HeroicTankCrateData End Behavior = StealthDetectorUpdate ModuleTag_HijackerDetect DetectionRate = 500 DetectionRange = 75 CanDetectWhileGarrisoned = No CanDetectWhileContained = No ExtraRequiredKindOf = BOAT End Behavior = TransitionDamageFX ModuleTag_08 ReallyDamagedParticleSystem1 = Bone:Smoke RandomBone:Yes PSys:SmallLightSmokeColumn ReallyDamagedFXList1 = Loc: X:0 Y:0 Z:0 FXList:FX_BattleMasterDamageTransition End ; A crushing defeat Behavior = FXListDie ModuleTag_09 DeathTypes = NONE +CRUSHED +SPLATTED DeathFX = FX_CarCrush End Behavior = FlammableUpdate ModuleTag_21 AflameDuration = 5000 ; If I catch fire, I'll burn for this long... AflameDamageAmount = 3 ; taking this much damage... AflameDamageDelay = 500 ; this often. End Geometry = BOX GeometryMajorRadius = 17.0 GeometryMinorRadius = 10.0 GeometryHeight = 9.5 GeometryIsSmall = Yes Shadow = SHADOW_VOLUME ShadowSizeX = 45 ; minimum elevation angle above horizon. Used to limit shadow length End ;------------------------------------------------------------------------------ Object ChinaInfantryHacker ; *** ART Parameters *** SelectPortrait = SNHacker2_L ButtonImage = SNHacker2 ;UpgradeCameo1 = NONE ;UpgradeCameo2 = NONE ;UpgradeCameo3 = NONE ;UpgradeCameo4 = NONE ;UpgradeCameo5 = NONE Draw = W3DModelDraw ModuleTag_01 OkToChangeModelColor = Yes ;NORMAL STANDING DefaultConditionState Model = NIHCKR_SKN IdleAnimation = NIHCKR_SKL.NIHCKR_STA 0 25 ;Regular spice animations IdleAnimation = NIHCKR_SKL.NIHCKR_IDA IdleAnimation = NIHCKR_SKL.NIHCKR_IDB AnimationMode = ONCE WeaponFireFXBone = PRIMARY Bone_SatCom TransitionKey = TRANS_Stand End AliasConditionState = REALLYDAMAGED ConditionState = MOVING Animation = NIHCKR_SKL.NIHCKR_RNA 14 AnimationMode = LOOP Flags = RANDOMSTART TransitionKey = None ParticleSysBone = None InfantryDustTrails End AliasConditionState = MOVING UNPACKING AliasConditionState = MOVING UNPACKING REALLYDAMAGED ConditionState = UNPACKING Animation = NIHCKR_SKL.NIHCKR_ATB1 AnimationMode = ONCE End AliasConditionState = UNPACKING FIRING_A AliasConditionState = UNPACKING REALLYDAMAGED AliasConditionState = UNPACKING FIRING_A REALLYDAMAGED ;HACKING ATTACK ConditionState = FIRING_A Animation = NIHCKR_SKL.NIHCKR_ATB2 AnimationMode = LOOP TransitionKey = TRANS_FiringA End AliasConditionState = FIRING_A REALLYDAMAGED ConditionState = PACKING Animation = NIHCKR_SKL.NIHCKR_ATB3 AnimationMode = ONCE End AliasConditionState = PACKING FIRING_A AliasConditionState = PACKING REALLYDAMAGED AliasConditionState = PACKING FIRING_A REALLYDAMAGED TransitionState = TRANS_FiringA TRANS_Stand ; I was stopped by a stop command, so I get no proper PACKING state Animation = NIHCKR_SKL.NIHCKR_ATB3 AnimationMode = ONCE End ConditionState = FREEFALL Animation = NIHCKR_SKL.NIHCKR_PFL AnimationMode = LOOP TransitionKey = TRANS_Falling End AliasConditionState = FREEFALL REALLYDAMAGED AliasConditionState = FREEFALL DYING ConditionState = PARACHUTING Animation = NIHCKR_SKL.NIHCKR_PHG AnimationMode = LOOP Flags = PRISTINE_BONE_POS_IN_FINAL_FRAME ; our bone positions should come from the last frame, rather than the first TransitionKey = TRANS_Chute End AliasConditionState = PARACHUTING REALLYDAMAGED AliasConditionState = PARACHUTING DYING ConditionState = DYING Animation = NIHCKR_SKL.NIHCKR_DTA Animation = NIHCKR_SKL.NIHCKR_DTB AnimationMode = ONCE TransitionKey = TRANS_Dying End TransitionState = TRANS_Dying TRANS_Flailing Animation = NIHCKR_SKL.NIHCKR_ADTG1 AnimationMode = ONCE End ConditionState = DYING EXPLODED_FLAILING Animation = NIHCKR_SKL.NIHCKR_ADTG2 AnimationMode = LOOP TransitionKey = TRANS_Flailing End ConditionState = DYING EXPLODED_BOUNCING Animation = NIHCKR_SKL.NIHCKR_ADTG3 AnimationMode = ONCE TransitionKey = None End ConditionState = SPECIAL_CHEERING Animation = NIHCKR_SKL.NIHCKR_CHA AnimationMode = LOOP End ; surrender is cut. sorry. (srj) ; ConditionState = SURRENDER ; Animation = NIHCKR_SKL.NIHCKR_SST ; AnimationMode = ONCE ; TransitionKey = TRANS_SurrenderKneeling ; End ; ;@TODO -- ANIMATION FILE MISSING ; ;ConditionState = SURRENDER MOVING ; ; Animation = NIHCKR_SKL.NIHCKR_SWKB ; ; AnimationMode = ONCE ; ; TransitionKey = TRANS_SurrenderMoving ; ;End ; TransitionState = TRANS_Stand TRANS_SurrenderKneeling ; Animation = NIHCKR_SKL.NIHCKR_SUR ; AnimationMode = ONCE ; End TransitionState = TRANS_Falling TRANS_Chute Animation = NIHCKR_SKL.NIHCKR_POP AnimationMode = ONCE Flags = PRISTINE_BONE_POS_IN_FINAL_FRAME ; our bone positions should come from the last frame, rather than the first End TransitionState = TRANS_Chute TRANS_Stand Animation = NIHCKR_SKL.NIHCKR_PTD AnimationMode = ONCE End End ; ***DESIGN parameters *** DisplayName = OBJECT:Hacker Side = China EditorSorting = INFANTRY TransportSlotCount = 1 ;how many "slots" we take in a transport (0 == not transportable) ArmorSet Conditions = None Armor = HumanArmor DamageFX = InfantryDamageFX End VisionRange = 150 ShroudClearingRange = 300 Prerequisites Object = ChinaBarracks Object = ChinaPropagandaCenter End BuildCost = 625 BuildTime = 20.0 ;in seconds ExperienceValue = 50 100 150 400 ;Experience point value at each level ExperienceRequired = 0 100 300 500 ;Experience points needed to gain each level IsTrainable = Yes ;Can gain experience CrushableLevel = 0 ;What am I?: 0 = for infantry, 1 = for trees, 2 = general vehicles CommandSet = ChinaInfantryHackerCommandSet ; *** AUDIO Parameters *** VoiceSelect = HackerVoiceSelect VoiceMove = HackerVoiceMove VoiceAttack = HackerVoiceAttack SoundDie = HackerVoiceDie SoundDieFire = DieByFireChina SoundDieToxin = DieByToxinChina VoiceGuard = HackerVoiceMove ; surrender is cut. sorry. (srj) ; VoiceSurrender = HackerVoiceMove VoiceFear = HackerVoiceFear VoiceTaskComplete = HackerVoiceHackComplete UnitSpecificSounds VoiceGarrison = HackerVoiceGarrison VoiceCreate = HackerVoiceCreate UnitPack = HackerPack UnitUnpack = HackerUnpack UnitCashPing = HackerCashPing VoiceEnter = HackerVoiceMove VoiceEnterHostile = HackerVoiceMove VoiceGetHealed = HackerVoiceMove VoiceHackInternet = HackerVoiceModeInternet End ; *** ENGINEERING Parameters *** RadarPriority = UNIT KindOf = PRELOAD SELECTABLE CAN_ATTACK CAN_CAST_REFLECTIONS INFANTRY SCORE IGNORES_SELECT_ALL Body = ActiveBody ModuleTag_02 MaxHealth = 100.0 InitialHealth = 100.0 End Behavior = HackInternetAIUpdate ModuleTag_03 UnpackTime = 7300 ;animation time is 7300 (changing this will scale anim speed) PackTime = 5133 ;animation time is 5133 (changing this will scale anim speed) CashUpdateDelay = 2000 RegularCashAmount = 5 VeteranCashAmount = 6 EliteCashAmount = 8 HeroicCashAmount = 10 XpPerCashUpdate = 1 PackUnpackVariationFactor = 0.5 ;Adds + or - 20% to pack and unpack time randomly. End Locomotor = SET_NORMAL BasicHumanLocomotor Behavior = SpecialAbility ModuleTag_04 SpecialPowerTemplate = SpecialAbilityHackerDisableBuilding UpdateModuleStartsAttack = Yes InitiateSound = HackerVoiceHack End Behavior = SpecialAbilityUpdate ModuleTag_05 SpecialPowerTemplate = SpecialAbilityHackerDisableBuilding StartAbilityRange = 150.0 UnpackTime = 7300 ;animation time is 7300 (changing this will scale anim speed) PackTime = 5133 ;animation time is 5133 (changing this will scale anim speed) PreparationTime = 3000 ;PersistentPrepTime = 500 ; old setting PersistentPrepTime = 333 ; NOTE! This drives how often the disable effect gets triggered ; This is also how often a new particle system effect is spawned EffectDuration = 2000 SpecialObject = BinaryDataStream DisableFXParticleSystem = DisabledEffectBinaryShower0 PackSound = HackerPack UnpackSound = HackerUnpack PrepSoundLoop = HackerPrepLoop AwardXPForTriggering = 0 ;Careful, this is persistant so it's a DoT xp gain! ;SkillPointsForTriggering = ??? -- Dustin, fill me out if you want different balance values. End Behavior = PhysicsBehavior ModuleTag_06 Mass = 5.0 End Behavior = SquishCollide ModuleTag_08 ;nothing End ; --- begin Death modules --- Behavior = SlowDeathBehavior ModuleTag_Death01 DeathTypes = ALL -CRUSHED -SPLATTED -EXPLODED -BURNED -POISONED -POISONED_BETA SinkDelay = 3000 SinkRate = 0.5 ; in Dist/Sec DestructionDelay = 8000 FX = INITIAL FX_GIDie End Behavior = SlowDeathBehavior ModuleTag_Death02 DeathTypes = NONE +CRUSHED +SPLATTED SinkDelay = 3000 SinkRate = 0.5 ; in Dist/Sec DestructionDelay = 8000 FX = INITIAL FX_GIDieCrushed End Behavior = SlowDeathBehavior ModuleTag_Death03 DeathTypes = NONE +EXPLODED SinkDelay = 3000 SinkRate = 0.5 ; in Dist/Sec DestructionDelay = 8000 FX = INITIAL FX_GIDie FlingForce = 8 FlingForceVariance = 3 FlingPitch = 60 FlingPitchVariance = 10 End Behavior = SlowDeathBehavior ModuleTag_Death04 DeathTypes = NONE +BURNED DestructionDelay = 0 FX = INITIAL FX_GIDie OCL = INITIAL OCL_FlamingInfantry End Behavior = SlowDeathBehavior ModuleTag_Death05 DeathTypes = NONE +POISONED DestructionDelay = 0 FX = INITIAL FX_GIDie OCL = INITIAL OCL_ToxicInfantry End Behavior = SlowDeathBehavior ModuleTag_Death06 ; don't forget to give it a new, unique module tag DeathTypes = NONE +POISONED_BETA DestructionDelay = 0 FX = INITIAL FX_GIDie OCL = INITIAL OCL_ToxicInfantryBeta ;you'll have to create this OCL and make it use the blue guys instead of green ones End ; --- end Death modules --- Behavior = PoisonedBehavior ModuleTag_11 PoisonDamageInterval = 100 ; Every this many msec I will retake the poison damage dealt me... PoisonDuration = 3000 ; ... for this long after last hit by poison damage End Geometry = CYLINDER GeometryMajorRadius = 10.0 GeometryMinorRadius = 10.0 GeometryHeight = 12.0 GeometryIsSmall = Yes Shadow = SHADOW_DECAL ShadowSizeX = 14; ShadowSizeY = 14; ShadowTexture = ShadowI; BuildCompletion = APPEARS_AT_RALLY_POINT End ;------------------------------------------------------------------------------ ;GLA Radar Van Object GLAVehicleRadarVan ; *** ART Parameters *** SelectPortrait = SURadarVan_L ButtonImage = SURadarVan UpgradeCameo1 = Upgrade_GLARadarVanScan UpgradeCameo2 = Upgrade_GLAJunkRepair ;UpgradeCameo3 = NONE ;UpgradeCameo4 = NONE ;UpgradeCameo5 = NONE Draw = W3DTruckDraw ModuleTag_01 OkToChangeModelColor = Yes DefaultConditionState Model = UVRadarVan Animation = UVRadarVan.UVRadarVan AnimationMode = LOOP End ConditionState = REALLYDAMAGED Model = UVRadarVan_D Animation = UVRadarVan_D.UVRadarVan_D AnimationMode = LOOP End ConditionState = RUBBLE Model = UVRadarVan_D Animation = UVRadarVan_D.UVRadarVan_D AnimationMode = LOOP End TrackMarks = EXTireTrack.tga Dust = TechnicalDust DirtSpray = RocketBuggyDirtSpray PowerslideSpray = RocketBuggyDirtPowerSlide ; These parameters are only used if the model has a separate suspension, ; and the locomotor has HasSuspension = Yes. LeftFrontTireBone = Tire01 RightFrontTireBone = Tire02 LeftRearTireBone = Tire03 RightRearTireBone = Tire04 TireRotationMultiplier = 0.2 ; this * speed = rotation. PowerslideRotationAddition = 2.5 ; This speed is added to the rotation speed when powersliding. End ; ***DESIGN parameters *** DisplayName = OBJECT:RadarVan Side = GLA EditorSorting = VEHICLE TransportSlotCount = 3 ;how many "slots" we take in a transport (0 == not transportable) ArmorSet Conditions = None Armor = TruckArmor DamageFX = TankDamageFX End BuildCost = 500 BuildTime = 10.0 ;in seconds VisionRange = 200 ShroudClearingRange = 500 Prerequisites Object = GLAArmsDealer End IsTrainable = No CrusherLevel = 2 ;What can I crush?: 1 = infantry, 2 = trees, 3 = vehicles CrushableLevel = 2 ;What am I?: 0 = for infantry, 1 = for trees, 2 = general vehicles CommandSet = GLAVehicleRadarVanCommandSet ; *** AUDIO Parameters *** VoiceSelect = RadarVanVoiceSelect VoiceMove = RadarVanVoiceMove VoiceAttack = RadarVanVoiceMove SoundMoveStart = RadarVanMoveStart SoundMoveStartDamaged = RadarVanMoveStart UnitSpecificSounds ; These have the syntax of SomeNameSomewhereInCode = SomeNameSomewhereInLookupINIs VoiceCreate = RadarVanVoiceCreate TurretMoveStart = NoSound TurretMoveLoop = TurretMoveLoop ; Required for the W3DTruckDraw module TruckLandingSound = NoSound ;RocketBuggyLand TruckPowerslideSound = NoSound ;RocketBuggyPowerslide VoiceCrush = RadarVanVoiceCrush VoiceEnter = RadarVanVoiceMove End ; *** ENGINEERING Parameters *** RadarPriority = UNIT KindOf = PRELOAD SELECTABLE CAN_CAST_REFLECTIONS VEHICLE SALVAGER SCORE IGNORES_SELECT_ALL Body = ActiveBody ModuleTag_02 MaxHealth = 200 InitialHealth = 200 End ExperienceValue = 20 20 20 20 ; Experience point value at each level Behavior = GrantUpgradeCreate ModuleTag_03 UpgradeToGrant = Upgrade_GLARadar End Behavior = RadarUpgrade ModuleTag_05 TriggeredBy = Upgrade_GLARadar DisableProof = Yes ; Won't be disabled by power low End Behavior = OCLSpecialPower ModuleTag_06 SpecialPowerTemplate = SpecialPowerRadarVanScan OCL = SUPERWEAPON_RadarVanScan CreateLocation = CREATE_AT_LOCATION StartsPaused = Yes ; Unpaused by upgrade module End Behavior = UnpauseSpecialPowerUpgrade ModuleTag_07 SpecialPowerTemplate = SpecialPowerRadarVanScan TriggeredBy = Upgrade_GLARadarVanScan End ;Of course, the developers HAD to remove the code :| ;Behavior = TechRadioStationRadioJam ModuleTag_12 ; SpecialPowerTemplate = SpecialWeaponRadioJam ; StunDistance = 200.0 ; distance to stun from center of click ; HeldTime = 15000 ;End Behavior = AutoHealBehavior ModuleTag_08 HealingAmount = 2 HealingDelay = 1000 ; msec TriggeredBy = Upgrade_GLAJunkRepair End Behavior = AIUpdateInterface ModuleTag_09 Turret TurretTurnRate = 100 ControlledWeaponSlots = PRIMARY End End Locomotor = SET_NORMAL RadarVanLocomotor Behavior = PhysicsBehavior ModuleTag_10 Mass = 50.0 End ; The default explosion Behavior = SlowDeathBehavior ModuleTag_11 DeathTypes = ALL -CRUSHED -SPLATTED ProbabilityModifier = 5 ModifierBonusPerOverkillPercent = 20% ; negative means less likely to pick this in the face of much damage, positive means more likely DestructionDelay = 0 DestructionDelayVariance = 200 FX = FINAL FX_BuggyNewDeathExplosion OCL = FINAL OCL_RadarVanDeathEffect End Behavior = FlammableUpdate ModuleTag_13 AflameDuration = 5000 ; If I catch fire, I'll burn for this long... AflameDamageAmount = 3 ; taking this much damage... AflameDamageDelay = 500 ; this often. End Behavior = DestroyDie ModuleTag_14 DeathTypes = NONE +CRUSHED +SPLATTED End Behavior = CreateCrateDie ModuleTag_15 CrateData = SalvageCrateData ;CrateData = EliteTankCrateData ;CrateData = HeroicTankCrateData End Behavior = StealthDetectorUpdate ModuleTag_16 DetectionRate = 500 ; how often to rescan for stealthed things in my sight (msec) ;DetectionRange = ??? ;Dustin, enable this for independant balancing! CanDetectWhileGarrisoned = No ;Garrisoned means being in a structure that you units can shoot out of. CanDetectWhileContained = No ;Contained means being in a transport or tunnel network. End Behavior = StealthDetectorUpdate ModuleTag_HijackerDetect DetectionRate = 500 DetectionRange = 75 CanDetectWhileGarrisoned = No CanDetectWhileContained = No ExtraRequiredKindOf = BOAT End ; A crushing defeat Behavior = FXListDie ModuleTag_17 DeathTypes = NONE +CRUSHED +SPLATTED DeathFX = FX_CarCrush End Behavior = CreateObjectDie ModuleTag_18 DeathTypes = NONE +CRUSHED +SPLATTED CreationList = OCL_CrusaderTank_CrushEffect End Behavior = TransitionDamageFX ModuleTag_19 ReallyDamagedParticleSystem1 = Bone:Smoke RandomBone:Yes PSys:SmallLightSmokeColumn ReallyDamagedFXList1 = Loc: X:0 Y:0 Z:0 FXList:FX_CrusaderDamageTransition End Geometry = BOX GeometryMajorRadius = 16.0 GeometryMinorRadius = 6.0 GeometryHeight = 12.5 GeometryIsSmall = Yes Shadow = SHADOW_VOLUME ShadowSizeX = 45 ;minimum elevation angle above horizon. Used to limit shadow length End ;------------------------------------------------------------------------------ Object AmericaVehicleBattleShip ; *** ART Parameters *** Draw = W3DTankDraw ModuleTag_01 OkToChangeModelColor = Yes InitialRecoilSpeed = 120 MaxRecoilDistance = 8 RecoilSettleSpeed = 6 ConditionState = NONE Model = AVBattleSh Animation = AVBattleSh.AVBattleSh AnimationMode = LOOP Turret = Turret01 TurretPitch = TurretEL01 TurretArtAngle = 180 ; this turret has art pointed 180 degrees backward AltTurret = Turret02 AltTurretPitch = TurretEL02 WeaponFireFXBone = PRIMARY Tur1Muzzle WeaponRecoilBone = PRIMARY Tur1Barrel WeaponFireFXBone = SECONDARY Tur2Muzzle WeaponRecoilBone = SECONDARY Tur2Barrel ; ParticleSysBone = TreadFX01 WaveSpray01 ; ParticleSysBone = TreadFX02 WaveSpray01 ; ParticleSysBone = TreadFX03 WaveSpray01 ; ParticleSysBone = TreadFX04 WaveSpray01 ; ParticleSysBone = TreadFX05 WaveSpray01 ; ParticleSysBone = TreadFX06 WaveSpray01 ; ParticleSysBone = TreadFX07 WaveSpray01 ; ParticleSysBone = TreadFX08 WaveSpray01 ; ParticleSysBone = TreadFX09 WaveSpray01 ; ParticleSysBone = TreadFX10 WaveSpray01 ; ParticleSysBone = TreadFX11 WaveSpray01 ; ParticleSysBone = TreadFX12 WaveSpray01 End End ; ***DESIGN parameters *** DisplayName = OBJECT:Battleship Side = America EditorSorting = VEHICLE TransportSlotCount = 0 ;how many "slots" we take in a transport (0 == not transportable) WeaponSet Conditions = None Weapon = PRIMARY BattleshipBogusGun Weapon = SECONDARY BattleshipBogusGun End ArmorSet Conditions = None Armor = InvulnerableArmor End VisionRange = 300 ShroudClearingRange = 300 ; *** AUDIO Parameters *** SoundAmbient = BattleshipAmbientLoop UnitSpecificSounds ; These have the syntax of SomeNameSomewhereInCode = SomeNameSomewhereInLookupINIs TurretMoveLoop = TurretMoveLoop End ; *** ENGINEERING Parameters *** RadarPriority = UNIT KindOf = PRELOAD CAN_CAST_REFLECTIONS VEHICLE SCORE SELECTABLE Body = ActiveBody ModuleTag_02 MaxHealth = 99999.0 InitialHealth = 99999.0 End Behavior = AIUpdateInterface ModuleTag_03 Turret TurretTurnRate = 80 TurretPitchRate = 80 FirePitch = 12 ; Instead of aiming pitchwise at the target, it will aim here AllowsPitch = Yes RecenterTime = 5000 ; how long to wait during idle before recentering ControlledWeaponSlots = PRIMARY NaturalTurretAngle = 180 ; this turret points backwards normally End AltTurret TurretTurnRate = 80 TurretPitchRate = 80 FirePitch = 15 ; Instead of aiming pitchwise at the target, it will aim here AllowsPitch = Yes RecenterTime = 5000 ; how long to wait during idle before recentering ControlledWeaponSlots = SECONDARY End End Locomotor = SET_NORMAL None Behavior = PhysicsBehavior ModuleTag_04 Mass = 5000.0 End Geometry = BOX GeometryMajorRadius = 200.0 GeometryMinorRadius = 20.0 GeometryHeight = 40 GeometryIsSmall = No Shadow = SHADOW_VOLUME End ;------------------------------------------------------------------------------ ; an invisible object that exists solely for the Battleship to target. Object AmericaBattleshipBogusTarget ; *** ART Parameters *** Draw = W3DModelDraw ModuleTag_01 DefaultConditionState Model = None End End ; ***DESIGN parameters *** EditorSorting = STRUCTURE Side = America ArmorSet Conditions = None Armor = InvulnerableArmor DamageFX = None End ; *** ENGINEERING Parameters *** RadarPriority = NOT_ON_RADAR KindOf = IMMOBILE Body = ImmortalBody ModuleTag_02 MaxHealth = 99999.0 InitialHealth = 99999.0 End Behavior = FireWeaponWhenDamagedBehavior ModuleTag_03 StartsActive = Yes ReactionWeaponPristine = BattleshipTargetDamagedWeapon ReactionWeaponDamaged = BattleshipTargetDamagedWeapon ReactionWeaponReallyDamaged = BattleshipTargetDamagedWeapon DamageTypes = ALL ; ; want this object to "explode" (ie, fire BattleshipTargetDamagedWeapon) ; when targeted by the gun? change DamageAmount to zero. (normally the gun ; does a nonzero but tiny damage, due to the InvulnerableArmor we wear, so ; this weapon isn't fired... to trigger it, you must do damage under Script ; control, which ignores our armor.) ; DamageAmount = 1 ; if damage is >= this value, fire the weapon End Geometry = SPHERE GeometryMajorRadius = 10.0 GeometryIsSmall = Yes End ;------------------------------------------------------------------------------ ; **data here is a copy and paste of AmericaVehicleBattleDrone** Object AmericaVehicleRepairDrone ; *** ART Parameters *** Draw = W3DTankDraw ModuleTag_01 ConditionState = NONE Model = AVRepairDr End TrackMarks = EXTireTrack.tga OkToChangeModelColor = Yes End ; ***DESIGN parameters *** DisplayName = OBJECT:RepairDrone Side = America EditorSorting = VEHICLE TransportSlotCount = 3 ;how many "slots" we take in a transport (0 == not transportable) WeaponSet Conditions = None Weapon = PRIMARY CrusaderTankGun End ArmorSet Conditions = None Armor = TankArmor DamageFX = TankDamageFX End BuildCost = 700 BuildTime = 5.0 ;in seconds VisionRange = 150 ShroudClearingRange = 150 Prerequisites Object = AmericaWarFactory End ExperienceValue = 50 100 150 400 ;Experience point value at each level ExperienceRequired = 0 150 450 900 ;Experience points needed to gain each level IsTrainable = Yes ;Can gain experience ; *** AUDIO Parameters *** VoiceSelect = NoSound VoiceMove = NoSound VoiceAttack = NoSound SoundMoveStart = NoSound UnitSpecificSounds ; These have the syntax of SomeNameSomewhereInCode = SomeNameSomewhereInLookupINIs TurretMoveStart = NoSound TurretMoveLoop = NoSound End ; *** ENGINEERING Parameters *** RadarPriority = UNIT KindOf = PRELOAD SELECTABLE CAN_ATTACK CAN_CAST_REFLECTIONS VEHICLE SCORE DRONE Body = ActiveBody ModuleTag_02 MaxHealth = 100.0 InitialHealth = 100.0 End Behavior = AIUpdateInterface ModuleTag_03 Turret TurretTurnRate = 60 // turn rate, in degrees per sec ControlledWeaponSlots = PRIMARY End AutoAcquireEnemiesWhenIdle = Yes End Locomotor = SET_NORMAL BasicTankLocomotor Behavior = PhysicsBehavior ModuleTag_04 Mass = 50.0 End Behavior = SlowDeathBehavior ModuleTag_05 DestructionDelay = 500 FX = FINAL FX_GenericTankDeathExplosion End Behavior = MaxHealthUpgrade ModuleTag_06 TriggeredBy = Upgrade_AmericaDroneArmor AddMaxHealth = 50.0 ChangeType = ADD_CURRENT_HEALTH_TOO ;Choices are PRESERVE_RATIO, ADD_CURRENT_HEALTH_TOO, and SAME_CURRENTHEALTH End Behavior = FXListDie ModuleTag_07 DeathFX = FX_GenericTankDeathEffect End Behavior = CreateObjectDie ModuleTag_08 CreationList = OCL_GenericTankDeathEffect End Behavior = CreateCrateDie ModuleTag_09 CrateData = SalvageCrateData ;CrateData = EliteTankCrateData ;CrateData = HeroicTankCrateData End Behavior = FlammableUpdate ModuleTag_21 AflameDuration = 5000 ; If I catch fire, I'll burn for this long... AflameDamageAmount = 3 ; taking this much damage... AflameDamageDelay = 500 ; this often. End Geometry = BOX GeometryMajorRadius = 11.0 GeometryMinorRadius = 7.0 GeometryHeight = 10.0 GeometryIsSmall = Yes Shadow = SHADOW_VOLUME End ;------------------------------------------------------------------------------ Object AmericaJetCargoPlane ; *** ART Parameters *** Draw = W3DModelDraw ModuleTag_01 DefaultConditionState Model = AVCargoPln Animation = AVCargoPln.AVCargoPln AnimationMode = LOOP ParticleSysBone = Propeller01 JetBlackTrailThin ParticleSysBone = Propeller02 JetBlackTrailThin ParticleSysBone = Propeller03 JetBlackTrailThin ParticleSysBone = Propeller04 JetBlackTrailThin ParticleSysBone = WingTip01 JetContrailThin ParticleSysBone = WingTip02 JetContrailThin End ConditionState = DAMAGED Model = AVCargoPln_D Animation = AVCargoPln_D.AVCargoPln_D AnimationMode = LOOP ;Flags = START_FRAME_FIRST ParticleSysBone = Smoke01 JetFireLarge ParticleSysBone = Smoke02 JetFireLarge ParticleSysBone = Propeller03 JetBlackTrailThin ParticleSysBone = Propeller04 JetBlackTrailThin ParticleSysBone = Smoke01 JetSmokeLarge ParticleSysBone = Smoke02 JetSmokeLarge End ConditionState = REALLYDAMAGED Model = AVCargoPln_D Animation = AVCargoPln_D.AVCargoPln_D AnimationMode = LOOP ;Flags = START_FRAME_FIRST ParticleSysBone = Smoke01 JetFireLarge ParticleSysBone = Smoke02 JetFireLarge ParticleSysBone = Smoke03 JetFireLarge ParticleSysBone = Smoke05 JetFireLarge ParticleSysBone = Propeller03 JetBlackTrailThin ParticleSysBone = Propeller04 JetBlackTrailThin ParticleSysBone = Smoke01 JetSmokeLarge ParticleSysBone = Smoke02 JetSmokeLarge ParticleSysBone = Smoke03 JetSmokeLarge ParticleSysBone = Smoke05 JetSmokeLarge End ConditionState = RUBBLE Model = AVCargoPln_D1 Animation = AVCargoPln_D.AVCargoPln_D AnimationMode = LOOP ;Flags = START_FRAME_FIRST ParticleSysBone = Smoke01 JetFireLarge ParticleSysBone = Smoke06 JetFireLarge ParticleSysBone = Smoke03 JetFireLarge ParticleSysBone = Smoke05 JetFireLarge ParticleSysBone = Smoke01 JetSmokeLarge ParticleSysBone = Smoke06 JetSmokeLarge ParticleSysBone = Smoke03 JetSmokeLarge ParticleSysBone = Smoke05 JetSmokeLarge End OkToChangeModelColor = Yes End Draw = W3DModelDraw ModuleTag_02 DefaultConditionState Model = AVCargoPln_A2 Animation = AVCargoPln_A2.AVCargoPln_A2 AnimationMode = MANUAL Flags = START_FRAME_FIRST End ConditionState = DOOR_1_OPENING Model = AVCargoPln_A2 Animation = AVCargoPln_A2.AVCargoPln_A2 AnimationMode = ONCE Flags = START_FRAME_FIRST End ConditionState = DOOR_1_CLOSING Model = AVCargoPln_A2 Animation = AVCargoPln_A2.AVCargoPln_A2 AnimationMode = ONCE_BACKWARDS Flags = START_FRAME_LAST End End ; ***DESIGN parameters *** DisplayName = OBJECT:CargoPlane EditorSorting = VEHICLE Side = America TransportSlotCount = 0 ;how many "slots" we take in a transport (0 == not transportable) VisionRange = 150.0 ;0.0 ArmorSet Conditions = None Armor = AirplaneArmor DamageFX = TankDamageFX End CommandSet = Command_ScriptedTransportDrops ; *** AUDIO Parameters *** SoundAmbient = C130AmbientLoop SoundAmbientRubble = NoSound ; *** ENGINEERING Parameters *** RadarPriority = UNIT KindOf = PRELOAD CAN_CAST_REFLECTIONS CAN_ATTACK VEHICLE SCORE TRANSPORT AIRCRAFT FORCEATTACKABLE IGNORED_IN_GUI Body = ActiveBody ModuleTag_03 MaxHealth = 1000.0 InitialHealth = 1000.0 End ExperienceValue = 40 40 40 40 ; Experience point value at each level Behavior = PhysicsBehavior ModuleTag_04 Mass = 500.0 End ;SCRIPTED SUPPORT: These special powers are triggered directly ;from the transport without creating a transport. This is done ;via new code support and CreateLocation USE_OWNER_OBJECT -- ;which also prevents creating the payload transport. Behavior = OCLSpecialPower ModuleTag_05 SpecialPowerTemplate = SuperweaponDaisyCutter ;@@KRIS@@ OCL = SUPERWEAPON_DaisyCutter CreateLocation = USE_OWNER_OBJECT End Behavior = OCLSpecialPower ModuleTag_06 SpecialPowerTemplate = SuperweaponParadropAmerica UpgradeOCL = SCIENCE_Paradrop3 SUPERWEAPON_Paradrop3 UpgradeOCL = SCIENCE_Paradrop2 SUPERWEAPON_Paradrop2 OCL = SUPERWEAPON_Paradrop1 CreateLocation = USE_OWNER_OBJECT End Behavior = OCLSpecialPower ModuleTag_07 SpecialPowerTemplate = SuperweaponCarpetBomb OCL = SUPERWEAPON_CarpetBomb CreateLocation = USE_OWNER_OBJECT End Behavior = OCLSpecialPower ModuleTag_08 SpecialPowerTemplate = SuperweaponCrateDrop OCL = SUPERWEAPON_CrateDrop CreateLocation = USE_OWNER_OBJECT End Behavior = DeliverPayloadAIUpdate ModuleTag_09 DoorDelay = 500 MaxAttempts = 4 DropOffset = X:0 Y:0 Z:-10 DropDelay = 300 ; time in between each item dropped (if more than one) PutInContainer = AmericaParachute DeliveryDistance = 150 End Locomotor = SET_NORMAL B52Locomotor Behavior = TransportContain ModuleTag_10 Slots = 100 ; hey, it's a BIG transport ScatterNearbyOnExit = No OrientLikeContainerOnExit = Yes KeepContainerVelocityOnExit = Yes ExitPitchRate = 30 ExitBone = WeaponA01 AllowInsideKindOf = INFANTRY VEHICLE PROJECTILE DOZER PARACHUTABLE ;gs I added parachutable as a catch all to prevent making new kindofs (like CRATE) DoorOpenTime = 0 ; this prevents the Contain module from messing with the doors, since we want DeliverPayload to handle 'em NumberOfExitPaths = 0 DestroyRidersWhoAreNotFreeToExit = Yes ; 'destroy' as opposed to 'kill' End Behavior = JetSlowDeathBehavior ModuleTag_11 DestructionDelay = 2000 RollRate = 0.0 RollRateDelta = 100% ;each frame, rollrate = rollrate * rollrateDelta PitchRate = 0 FallHowFast = 25.0% ;Bigger is faster (can be over 100%,it's a fraction of gravity) FXInitialDeath = FX_JetBigDeathInitial OCLInitialDeath = OCL_AmericaJetCargoDeathStart DelaySecondaryFromInitialDeath = 2000 ; in milliseconds This guy won't hit the ground, so this time equals the above time OCLSecondary = OCL_AmericaJetCargoHulkDeath FXSecondary = FX_BigPlaneDeath ; FXFinalBlowUp = FX_JetDeathFinalBlowUp ; OCLFinalBlowUp = OCL_AuroraDeathFinalBlowUp ; DeathLoopSound = MICAL NEEDS TO MAKE ME End ClientUpdate = AnimatedParticleSysBoneClientUpdate ModuleTag_12 End Behavior = TransitionDamageFX ModuleTag_17 DamagedFXList1 = Loc: X:0 Y:0 Z:0 FXList:FX_JetBigDamageTransition ReallyDamagedFXList1 = Loc: X:0 Y:0 Z:0 FXList:FX_JetBigDamageTransition End Geometry = Box GeometryIsSmall = No GeometryMajorRadius = 40.0 GeometryMinorRadius = 10.0 GeometryHeight = 10.0 Shadow = SHADOW_VOLUME ShadowSizeX = 89 ; minimum elevation angle above horizon. Used to limit shadow length End ;---------------------------------------------------------- Object AmericaJetCargoHulk ; *** ART Parameters *** Draw = W3DModelDraw ModuleTag_01 ConditionState = NONE Model = AVCargoPln_D1 End End ; ***DESIGN parameters *** EditorSorting = DEBRIS ; *** ENGINEERING Parameters *** KindOf = NO_COLLIDE HULK Behavior = PhysicsBehavior ModuleTag_03 Mass = 1.0 AllowBouncing = Yes KillWhenRestingOnGround = No End Behavior = LifetimeUpdate ModuleTag_04 MinLifetime = 500 ; min lifetime in msec MaxLifetime = 1500 ; max lifetime in msec End Behavior = InstantDeathBehavior ModuleTag_05 DeathTypes = ALL ; FX = FX_BigPlaneDeath ; OCL = OCL_AmericaJetCargoHulkDeath End End ;------------------------------------------------------------------------------ Object GLAJetCargoPlane ; *** ART Parameters *** Draw = W3DModelDraw ModuleTag_01 DefaultConditionState Model = UVCargoPln Animation = UVCargoPln.UVCargoPln AnimationMode = LOOP ParticleSysBone = Engine01 JetBlackTrail ParticleSysBone = Engine02 JetBlackTrail ParticleSysBone = Engine03 JetBlackTrail ParticleSysBone = Engine04 JetBlackTrail End ConditionState = DAMAGED Model = UVCargoPln_D Animation = UVCargoPln_D.UVCargoPln_D AnimationMode = LOOP ;Flags = START_FRAME_FIRST ParticleSysBone = Smoke01 JetFireLarge ParticleSysBone = Smoke02 JetFireLarge ParticleSysBone = Propeller03 JetBlackTrailThin ParticleSysBone = Propeller04 JetBlackTrailThin ParticleSysBone = Smoke01 JetSmokeLarge ParticleSysBone = Smoke02 JetSmokeLarge ParticleSysBone = Smoke03 JetSmokeLarge End ConditionState = REALLYDAMAGED Model = UVCargoPln_D Animation = UVCargoPln_D.UVCargoPln_D AnimationMode = LOOP ;Flags = START_FRAME_FIRST ParticleSysBone = Smoke01 JetFireLarge ParticleSysBone = Smoke02 JetFireLarge ParticleSysBone = Propeller03 JetBlackTrailThin ParticleSysBone = Propeller04 JetBlackTrailThin ParticleSysBone = Smoke01 JetSmokeLarge ParticleSysBone = Smoke02 JetSmokeLarge ParticleSysBone = Smoke03 JetSmokeLarge End ConditionState = RUBBLE Model = UVCargoPln_D1 ParticleSysBone = Smoke01 JetFireLarge ParticleSysBone = Smoke02 JetFireLarge ParticleSysBone = Smoke03 JetFireLarge ParticleSysBone = Smoke04 JetFireLarge ParticleSysBone = Smoke01 JetSmokeLarge ParticleSysBone = Smoke02 JetSmokeLarge ParticleSysBone = Smoke03 JetSmokeLarge ParticleSysBone = Smoke04 JetSmokeLarge End OkToChangeModelColor = Yes End Draw = W3DModelDraw ModuleTag_02 DefaultConditionState Model = UVCargoPln_A2 Animation = UVCargoPln_A2.UVCargoPln_A2 AnimationMode = MANUAL Flags = START_FRAME_FIRST End ConditionState = DOOR_1_OPENING Model = UVCargoPln_A2 Animation = UVCargoPln_A2.UVCargoPln_A2 AnimationMode = ONCE Flags = START_FRAME_FIRST End ConditionState = DOOR_1_CLOSING Model = UVCargoPln_A2 Animation = UVCargoPln_A2.UVCargoPln_A2 AnimationMode = ONCE_BACKWARDS Flags = START_FRAME_LAST End End ; ***DESIGN parameters *** DisplayName = OBJECT:CargoPlane EditorSorting = VEHICLE Side = GLA TransportSlotCount = 0 ;how many "slots" we take in a transport (0 == not transportable) VisionRange = 150.0 ;0.0 ArmorSet Conditions = None Armor = AirplaneArmor DamageFX = None End CommandSet = Command_ScriptedTransportDrops ; *** AUDIO Parameters *** SoundAmbient = C130AmbientLoop SoundAmbientRubble = NoSound ; *** ENGINEERING Parameters *** RadarPriority = UNIT KindOf = PRELOAD CAN_CAST_REFLECTIONS CAN_ATTACK VEHICLE SCORE TRANSPORT AIRCRAFT FORCEATTACKABLE IGNORED_IN_GUI Body = ActiveBody ModuleTag_03 MaxHealth = 1000.0 InitialHealth = 1000.0 End ExperienceValue = 40 40 40 40 ; Experience point value at each level Behavior = PhysicsBehavior ModuleTag_04 Mass = 500.0 End Behavior = DeliverPayloadAIUpdate ModuleTag_05 DoorDelay = 500 MaxAttempts = 4 DropOffset = X:0 Y:0 Z:-10 DropDelay = 300 ;500 ; time in between each item dropped (if more than one) PutInContainer = AmericaParachute DeliveryDistance = 150 End Locomotor = SET_NORMAL B52Locomotor Behavior = TransportContain ModuleTag_06 Slots = 100 ; hey, it's a BIG transport ScatterNearbyOnExit = No OrientLikeContainerOnExit = Yes KeepContainerVelocityOnExit = Yes ExitPitchRate = 30 ExitBone = WeaponA01 AllowInsideKindOf = INFANTRY VEHICLE PROJECTILE DOZER PARACHUTABLE FORCEATTACKABLE DoorOpenTime = 0 ; this prevents the Contain module from messing with the doors, since we want DeliverPayload to handle 'em NumberOfExitPaths = 0 DestroyRidersWhoAreNotFreeToExit = Yes ; 'destroy' as opposed to 'kill' End ;SCRIPTED SUPPORT: These special powers are triggered directly ;from the transport without creating a transport. This is done ;via new code support and CreateLocation USE_OWNER_OBJECT -- ;which also prevents creating the payload transport. Behavior = OCLSpecialPower ModuleTag_07 SpecialPowerTemplate = SuperweaponDaisyCutter ;@@KRIS@@ OCL = SUPERWEAPON_DaisyCutter CreateLocation = USE_OWNER_OBJECT End Behavior = OCLSpecialPower ModuleTag_08 SpecialPowerTemplate = SuperweaponParadropAmerica UpgradeOCL = SCIENCE_Paradrop3 SUPERWEAPON_Paradrop3 UpgradeOCL = SCIENCE_Paradrop2 SUPERWEAPON_Paradrop2 OCL = SUPERWEAPON_Paradrop1 CreateLocation = USE_OWNER_OBJECT End Behavior = OCLSpecialPower ModuleTag_09 SpecialPowerTemplate = SuperweaponCarpetBomb OCL = SUPERWEAPON_CarpetBomb CreateLocation = USE_OWNER_OBJECT End Behavior = JetSlowDeathBehavior ModuleTag_10 DestructionDelay = 2000 RollRate = 0.0 RollRateDelta = 100% ;each frame, rollrate = rollrate * rollrateDelta PitchRate = 0 FallHowFast = 25.0% ;Bigger is faster (can be over 100%,it's a fraction of gravity) FXInitialDeath = FX_JetBigDeathInitial OCLInitialDeath = OCL_AmericaJetCargoDeathStart DelaySecondaryFromInitialDeath = 2000 ; in milliseconds This guy won't hit the ground, so this time equals the above time OCLSecondary = OCL_AmericaJetCargoHulkDeath FXSecondary = FX_BigPlaneDeath End ClientUpdate = AnimatedParticleSysBoneClientUpdate ModuleTag_11 End Behavior = TransitionDamageFX ModuleTag_12 DamagedFXList1 = Loc: X:0 Y:0 Z:0 FXList:FX_JetBigDamageTransition ReallyDamagedFXList1 = Loc: X:0 Y:0 Z:0 FXList:FX_JetBigDamageTransition End Geometry = Box GeometryIsSmall = No GeometryMajorRadius = 40.0 GeometryMinorRadius = 10.0 GeometryHeight = 10.0 Shadow = SHADOW_VOLUME ShadowSizeX = 89 ; minimum elevation angle above horizon. Used to limit shadow length End ;------------------------------------------------------------------------------ Object ChinaJetCargoPlane ; *** ART Parameters *** Draw = W3DModelDraw ModuleTag_01 DefaultConditionState Model = NVCargoPln Animation = NVCargoPln.NVCargoPln AnimationMode = LOOP ParticleSysBone = Propeller01 JetBlackTrailThin ParticleSysBone = Propeller02 JetBlackTrailThin ParticleSysBone = Propeller03 JetBlackTrailThin ParticleSysBone = Propeller04 JetBlackTrailThin ParticleSysBone = WingTip01 JetContrailThin ParticleSysBone = WingTip02 JetContrailThin End ConditionState = DAMAGED Model = NVCargoPln_D Animation = NVCargoPln_D.NVCargoPln_D AnimationMode = LOOP ;Flags = START_FRAME_FIRST ParticleSysBone = Smoke01 JetFireLarge ParticleSysBone = Smoke03 JetFireLarge ParticleSysBone = Propeller01 JetBlackTrailThin ParticleSysBone = Propeller02 JetBlackTrailThin ParticleSysBone = Propeller03 JetBlackTrailThin ParticleSysBone = Propeller04 JetBlackTrailThin ParticleSysBone = Smoke01 JetSmokeLarge ParticleSysBone = Smoke03 JetSmokeLarge ParticleSysBone = WingTip01 JetContrailThin ParticleSysBone = WingTip02 JetContrailThin End ConditionState = REALLYDAMAGED Model = NVCargoPln_D Animation = NVCargoPln_D.NVCargoPln_D AnimationMode = LOOP ;Flags = START_FRAME_FIRST ParticleSysBone = Smoke01 JetFireLarge ParticleSysBone = Smoke03 JetFireLarge ParticleSysBone = Smoke04 JetFireLarge ParticleSysBone = Propeller03 JetBlackTrailThin ParticleSysBone = Propeller04 JetBlackTrailThin ParticleSysBone = Smoke01 JetSmokeLarge ParticleSysBone = Smoke03 JetSmokeLarge ParticleSysBone = Smoke04 JetSmokeLarge ParticleSysBone = WingTip01 JetContrailThin ParticleSysBone = WingTip02 JetContrailThin End ConditionState = RUBBLE Model = NVCargoPln_D1 ParticleSysBone = Smoke01 JetFireLarge ParticleSysBone = Smoke06 JetFireLarge ParticleSysBone = Smoke03 JetFireLarge ParticleSysBone = Smoke04 JetFireLarge ParticleSysBone = Smoke01 JetSmokeLarge ParticleSysBone = Smoke06 JetSmokeLarge ParticleSysBone = Smoke03 JetSmokeLarge ParticleSysBone = Smoke04 JetSmokeLarge End OkToChangeModelColor = Yes End Draw = W3DModelDraw ModuleTag_02 DefaultConditionState Model = NVCargoPln_A2 Animation = NVCargoPln_A2.NVCargoPln_A2 AnimationMode = MANUAL Flags = START_FRAME_FIRST End ConditionState = DOOR_1_OPENING Model = NVCargoPln_A2 Animation = NVCargoPln_A2.NVCargoPln_A2 AnimationMode = ONCE Flags = START_FRAME_FIRST End ConditionState = DOOR_1_CLOSING Model = NVCargoPln_A2 Animation = NVCargoPln_A2.NVCargoPln_A2 AnimationMode = ONCE_BACKWARDS Flags = START_FRAME_LAST End End ; ***DESIGN parameters *** DisplayName = OBJECT:CargoPlane EditorSorting = VEHICLE Side = China TransportSlotCount = 0 ;how many "slots" we take in a transport (0 == not transportable) VisionRange = 150.0 ;0.0 ArmorSet Conditions = None Armor = AirplaneArmor DamageFX = None End CommandSet = Command_ScriptedTransportDrops ; *** AUDIO Parameters *** SoundAmbient = C130AmbientLoop SoundAmbientRubble = NoSound ; *** ENGINEERING Parameters *** RadarPriority = UNIT KindOf = PRELOAD CAN_CAST_REFLECTIONS CAN_ATTACK VEHICLE SCORE TRANSPORT AIRCRAFT FORCEATTACKABLE IGNORED_IN_GUI Body = ActiveBody ModuleTag_03 MaxHealth = 1000.0 InitialHealth = 1000.0 End ExperienceValue = 40 40 40 40 ; Experience point value at each level Behavior = PhysicsBehavior ModuleTag_04 Mass = 500.0 End Behavior = DeliverPayloadAIUpdate ModuleTag_05 DoorDelay = 500 MaxAttempts = 4 DropOffset = X:0 Y:0 Z:-10 DropDelay = 300 ;500 ; time in between each item dropped (if more than one) PutInContainer = AmericaParachute DeliveryDistance = 150 End Locomotor = SET_NORMAL B52Locomotor Behavior = TransportContain ModuleTag_06 Slots = 100 ; hey, it's a BIG transport ScatterNearbyOnExit = No OrientLikeContainerOnExit = Yes KeepContainerVelocityOnExit = Yes ExitPitchRate = 30 ExitBone = WeaponA01 AllowInsideKindOf = INFANTRY VEHICLE PROJECTILE DOZER PARACHUTABLE DoorOpenTime = 0 ; this prevents the Contain module from messing with the doors, since we want DeliverPayload to handle 'em NumberOfExitPaths = 0 DestroyRidersWhoAreNotFreeToExit = Yes ; 'destroy' as opposed to 'kill' End ;SCRIPTED SUPPORT: These special powers are triggered directly ;from the transport without creating a transport. This is done ;via new code support and CreateLocation USE_OWNER_OBJECT -- ;which also prevents creating the payload transport. Behavior = OCLSpecialPower ModuleTag_07 SpecialPowerTemplate = SuperweaponDaisyCutter ;@@KRIS@@ OCL = SUPERWEAPON_DaisyCutter CreateLocation = USE_OWNER_OBJECT End Behavior = OCLSpecialPower ModuleTag_08 SpecialPowerTemplate = SuperweaponParadropAmerica UpgradeOCL = SCIENCE_Paradrop3 SUPERWEAPON_Paradrop3 UpgradeOCL = SCIENCE_Paradrop2 SUPERWEAPON_Paradrop2 OCL = SUPERWEAPON_Paradrop1 CreateLocation = USE_OWNER_OBJECT End Behavior = OCLSpecialPower ModuleTag_09 SpecialPowerTemplate = SuperweaponCarpetBomb OCL = SUPERWEAPON_CarpetBomb CreateLocation = USE_OWNER_OBJECT End Behavior = OCLSpecialPower ModuleTag_10 SpecialPowerTemplate = SuperweaponClusterMines OCL = SUPERWEAPON_ClusterMines CreateLocation = USE_OWNER_OBJECT End Behavior = OCLSpecialPower ModuleTag_11 SpecialPowerTemplate = SuperweaponEMPPulse OCL = SUPERWEAPON_EMPPulse CreateLocation = USE_OWNER_OBJECT End Behavior = JetSlowDeathBehavior ModuleTag_12 DestructionDelay = 2000 RollRate = 0.0 RollRateDelta = 100% ;each frame, rollrate = rollrate * rollrateDelta PitchRate = 0 FallHowFast = 25.0% ;Bigger is faster (can be over 100%,it's a fraction of gravity) FXInitialDeath = FX_JetBigDeathInitial OCLInitialDeath = OCL_AmericaJetCargoDeathStart DelaySecondaryFromInitialDeath = 2000 ; in milliseconds This guy won't hit the ground, so this time equals the above time OCLSecondary = OCL_AmericaJetCargoHulkDeath FXSecondary = FX_BigPlaneDeath End ClientUpdate = AnimatedParticleSysBoneClientUpdate ModuleTag_13 End Behavior = TransitionDamageFX ModuleTag_14 DamagedFXList1 = Loc: X:0 Y:0 Z:0 FXList:FX_JetBigDamageTransition ReallyDamagedFXList1 = Loc: X:0 Y:0 Z:0 FXList:FX_JetBigDamageTransition End Geometry = Box GeometryIsSmall = No GeometryMajorRadius = 40.0 GeometryMinorRadius = 10.0 GeometryHeight = 10.0 Shadow = SHADOW_VOLUME ShadowSizeX = 89 ; minimum elevation angle above horizon. Used to limit shadow length End ;------------------------------------------------------------------------------ Object AmericaVehiclePOWTruck ; *** ART Parameters *** SelectPortrait = SAPowTruck ButtonImage = SAPowTruck ;UpgradeCameo1 = NONE ;UpgradeCameo2 = NONE ;UpgradeCameo3 = NONE ;UpgradeCameo4 = NONE ;UpgradeCameo5 = NONE Draw = W3DTruckDraw ModuleTag_01 OkToChangeModelColor = Yes ConditionState = NONE Model = AVPOWTRUCK End ConditionState = REALLYDAMAGED Model = AVPOWTRUCK_D End ConditionState = RUBBLE Model = AVPOWTruck_D End TrackMarks = EXTireTrack.tga Dust = RocketBuggyDust DirtSpray = RocketBuggyDirtSpray PowerslideSpray = RocketBuggyDirtPowerSlide ; These parameters are only used if the model has a separate suspension, ; and the locomotor has HasSuspension = Yes. LeftFrontTireBone = Tire01 RightFrontTireBone = Tire02 MidLeftRearTireBone = Tire03 MidRightRearTireBone = Tire05 LeftRearTireBone = Tire04 RightRearTireBone = Tire06 TireRotationMultiplier = 0.2 ; this * speed = rotation. PowerslideRotationAddition = 2.5 ; This speed is added to the rotation speed when powersliding. End ; ***DESIGN parameters *** DisplayName = OBJECT:POWTruck Side = America EditorSorting = VEHICLE TransportSlotCount = 3 ;how many "slots" we take in a transport (0 == not transportable) ArmorSet Conditions = None Armor = TruckArmor DamageFX = TankDamageFX End BuildCost = 500 BuildTime = 10.0 ;in seconds VisionRange = 200 ShroudClearingRange = 300 ExperienceValue = 50 50 50 50 ;Experience point value at each level ExperienceRequired = 0 150 450 900 ;Experience points needed to gain each level IsTrainable = Yes ;Can gain experience CrusherLevel = 2 ;What can I crush?: 1 = infantry, 2 = trees, 3 = vehicles CrushableLevel = 2 ;What am I?: 0 = for infantry, 1 = for trees, 2 = general vehicles CommandSet = VehiclePOWTruckCommandSet ; *** AUDIO Parameters *** VoiceSelect = POWTruckUSAVoiceSelect VoiceMove = POWTruckUSAVoiceMove VoiceGuard = POWTruckUSAVoiceMove SoundEnter = POWTruckEnter SoundExit = POWTruckExit UnitSpecificSounds ; These have the syntax of SomeNameSomewhereInCode = SomeNameSomewhereInLookupINIs VoiceCreate = POWTruckUSAVoiceCreate TurretMoveLoop = TurretMoveLoop SoundMoveStart = POWTruckUSAMoveStart SoundMoveStartDamaged = POWTruckUSAMoveStart SoundEject = PilotSoundEject VoiceEject = PilotVoiceEject VoiceCrush = POWTruckUSAVoiceCrush ; Required for the W3DTruckDraw module TruckLandingSound = RocketBuggyLand TruckPowerslideSound = POWTruckUSAMoveStart VoiceEnter = POWTruckUSAVoiceMove End ; *** ENGINEERING Parameters *** RadarPriority = UNIT KindOf = PRELOAD SELECTABLE CAN_ATTACK CAN_CAST_REFLECTIONS VEHICLE TRANSPORT SCORE ;POW_TRUCK Body = ActiveBody ModuleTag_02 MaxHealth = 500.0 InitialHealth = 500.0 End ;Behavior = POWTruckBehavior ModuleTag_03 ; ContainMax = 10 ; EnterSound = EnterPOWTruck ; ExitSound = ExitPOWTruck ;End ;Behavior = POWTruckAIUpdate ModuleTag_04 ; BoredTime = 10000 ; in milliseconds ; AtPrisonDistance = 160.0 ; This close to a prison is close enough to be doing nothing at ;End Behavior = AIUpdateInterface ModuleTag_04 ; no data End Locomotor = SET_NORMAL POWTruckLocomotor Behavior = PhysicsBehavior ModuleTag_05 Mass = 50.0 End Behavior = SlowDeathBehavior ModuleTag_06 DeathTypes = ALL -CRUSHED -SPLATTED ProbabilityModifier = 25 DestructionDelay = 1 FX = FINAL FX_BattleMasterExplosionOneFinal OCL = FINAL OCL_AmericanPOWTruckDeathEffect End Behavior = FXListDie ModuleTag_07 DeathTypes = NONE +CRUSHED +SPLATTED DeathFX = FX_CarCrush End Behavior = TransitionDamageFX ModuleTag_09 ReallyDamagedParticleSystem1 = Bone:Smoke RandomBone:Yes PSys:SmokeSmallContinuous01 ReallyDamagedFXList1 = Loc: X:0 Y:0 Z:0 FXList:FX_BattleMasterDamageTransition End Behavior = ExperienceScalarUpgrade ModuleTag_10 TriggeredBy = Upgrade_AmericaAdvancedTraining AddXPScalar = 1.0 ;Increases experience gained by an additional 100% End Behavior = FlammableUpdate ModuleTag_21 AflameDuration = 5000 ; If I catch fire, I'll burn for this long... AflameDamageAmount = 3 ; taking this much damage... AflameDamageDelay = 500 ; this often. End Geometry = BOX GeometryMajorRadius = 15.0 GeometryMinorRadius = 7.0 GeometryHeight = 13.5 GeometryIsSmall = Yes Shadow = SHADOW_VOLUME End ;------------------------------------------------------------------------------ Object ChinaVehiclePOWTruck ; *** ART Parameters *** SelectPortrait = SNPowTruck ButtonImage = SNPowTruck ;UpgradeCameo1 = NONE ;UpgradeCameo2 = NONE ;UpgradeCameo3 = NONE ;UpgradeCameo4 = NONE ;UpgradeCameo5 = NONE Draw = W3DTruckDraw ModuleTag_01 OkToChangeModelColor = Yes ConditionState = NONE Model = NVPOWTRCK End ConditionState = REALLYDAMAGED Model = NVPOWTRCK_D End ConditionState = RUBBLE Model = NVPOWTRCK_D End TrackMarks = EXTireTrack.tga Dust = RocketBuggyDust DirtSpray = RocketBuggyDirtSpray PowerslideSpray = RocketBuggyDirtPowerSlide ; These parameters are only used if the model has a separate suspension, ; and the locomotor has HasSuspension = Yes. LeftFrontTireBone = Tire01 RightFrontTireBone = Tire04 MidLeftRearTireBone = Tire02 MidRightRearTireBone = Tire05 LeftRearTireBone = Tire03 RightRearTireBone = Tire06 TireRotationMultiplier = 0.2 ; this * speed = rotation. PowerslideRotationAddition = 2.5 ; This speed is added to the rotation speed when powersliding. End ; ***DESIGN parameters *** DisplayName = OBJECT:POWTruck Side = China EditorSorting = VEHICLE TransportSlotCount = 3 ;how many "slots" we take in a transport (0 == not transportable) ArmorSet Conditions = None Armor = TruckArmor DamageFX = TankDamageFX End BuildCost = 500 BuildTime = 10.0 ;in seconds VisionRange = 200 ShroudClearingRange = 300 ExperienceValue = 50 50 50 50 ;Experience point value at each level ExperienceRequired = 0 150 450 900 ;Experience points needed to gain each level IsTrainable = Yes ;Can gain experience CrusherLevel = 2 ;What can I crush?: 1 = infantry, 2 = trees, 3 = vehicles CrushableLevel = 2 ;What am I?: 0 = for infantry, 1 = for trees, 2 = general vehicles CommandSet = VehiclePOWTruckCommandSet ; *** AUDIO Parameters *** VoiceSelect = POWTruckChinaVoiceSelect VoiceMove = POWTruckChinaVoiceMove VoiceGuard = POWTruckChinaVoiceMove UnitSpecificSounds ; These have the syntax of SomeNameSomewhereInCode = SomeNameSomewhereInLookupINIs ;TurretMoveStart = NoSound VoiceCreate = POWTruckChinaVoiceCreate TurretMoveLoop = TurretMoveLoop SoundMoveStart = POWTruckUSAMoveStart SoundMoveStartDamaged = POWTruckUSAMoveStart SoundEject = PilotSoundEject VoiceEject = PilotVoiceEject ; Required for the W3DTruckDraw module TruckLandingSound = RocketBuggyLand TruckPowerslideSound = POWTruckUSAMoveStart VoiceCrush = POWTruckChinaVoiceCrush ;VoicePickup = POWTruckChinaVoicePickup VoiceEnter = POWTruckChinaVoiceMove End ; *** ENGINEERING Parameters *** RadarPriority = UNIT KindOf = PRELOAD SELECTABLE CAN_ATTACK CAN_CAST_REFLECTIONS VEHICLE TRANSPORT SCORE ;POW_TRUCK Body = ActiveBody ModuleTag_02 MaxHealth = 500.0 InitialHealth = 500.0 End ;Behavior = POWTruckBehavior ModuleTag_03 ; ContainMax = 10 ; EnterSound = EnterPOWTruck ; ExitSound = ExitPOWTruck ;End ;Behavior = POWTruckAIUpdate ModuleTag_04 ; BoredTime = 10000 ; in milliseconds ; AtPrisonDistance = 160.0 ; This close to a prison is close enough to be doing nothing at ;End Behavior = AIUpdateInterface ModuleTag_04 ; no data End Locomotor = SET_NORMAL POWTruckLocomotor Behavior = PhysicsBehavior ModuleTag_05 Mass = 50.0 End Behavior = SlowDeathBehavior ModuleTag_06 DeathTypes = ALL -CRUSHED -SPLATTED ProbabilityModifier = 25 DestructionDelay = 1 FX = FINAL FX_BattleMasterExplosionOneFinal OCL = FINAL OCL_ChinaPOWTruckDeathEffect End Behavior = FXListDie ModuleTag_07 DeathTypes = NONE +CRUSHED +SPLATTED DeathFX = FX_CarCrush End Behavior = TransitionDamageFX ModuleTag_09 ReallyDamagedParticleSystem1 = Bone:Smoke RandomBone:Yes PSys:SmallLightSmokeColumn ReallyDamagedFXList1 = Loc: X:0 Y:0 Z:0 FXList:FX_BattleMasterDamageTransition End Behavior = FlammableUpdate ModuleTag_21 AflameDuration = 5000 ; If I catch fire, I'll burn for this long... AflameDamageAmount = 3 ; taking this much damage... AflameDamageDelay = 500 ; this often. End Geometry = BOX GeometryMajorRadius = 15.0 GeometryMinorRadius = 7.0 GeometryHeight = 13.5 GeometryIsSmall = Yes Shadow = SHADOW_VOLUME End ;------------------------------------------------------------------------------ Object GLAVehiclePOWTruck ; *** ART Parameters *** SelectPortrait = SUPowTruck ButtonImage = SUPowTruck ;UpgradeCameo1 = NONE ;UpgradeCameo2 = NONE ;UpgradeCameo3 = NONE ;UpgradeCameo4 = NONE ;UpgradeCameo5 = NONE Draw = W3DTruckDraw ModuleTag_01 OkToChangeModelColor = Yes ConditionState = NONE Model = UVPOWTRUCK End ConditionState = REALLYDAMAGED Model = UVPOWTRUCK_D End TrackMarks = EXTireTrack.tga Dust = RocketBuggyDust DirtSpray = RocketBuggyDirtSpray PowerslideSpray = RocketBuggyDirtPowerSlide ; These parameters are only used if the model has a separate suspension, ; and the locomotor has HasSuspension = Yes. LeftFrontTireBone = Tire01 RightFrontTireBone = Tire02 MidLeftRearTireBone = Tire03 MidRightRearTireBone = Tire04 LeftRearTireBone = Tire05 RightRearTireBone = Tire06 TireRotationMultiplier = 0.2 ; this * speed = rotation. PowerslideRotationAddition = 2.5 ; This speed is added to the rotation speed when powersliding. End ; ***DESIGN parameters *** DisplayName = OBJECT:POWTruck Side = GLA EditorSorting = VEHICLE TransportSlotCount = 3 ;how many "slots" we take in a transport (0 == not transportable) ArmorSet Conditions = None Armor = TruckArmor DamageFX = TankDamageFX End BuildCost = 500 BuildTime = 10.0 ;in seconds VisionRange = 200 ShroudClearingRange = 300 ExperienceValue = 50 50 50 50 ;Experience point value at each level ExperienceRequired = 0 150 450 900 ;Experience points needed to gain each level IsTrainable = Yes ;Can gain experience CrusherLevel = 2 ;What can I crush?: 1 = infantry, 2 = trees, 3 = vehicles CrushableLevel = 2 ;What am I?: 0 = for infantry, 1 = for trees, 2 = general vehicles CommandSet = VehiclePOWTruckCommandSet ; *** AUDIO Parameters *** VoiceSelect = POWTruckGLAVoiceSelect VoiceMove = POWTruckGLAVoiceMove VoiceGuard = POWTruckGLAVoiceMove UnitSpecificSounds ; These have the syntax of SomeNameSomewhereInCode = SomeNameSomewhereInLookupINIs ;TurretMoveStart = RocketBuggyLand VoiceCreate = POWTruckGLAVoiceCreate SoundMoveStart = POWTruckUSAMoveStart SoundMoveStartDamaged = POWTruckUSAMoveStart TurretMoveLoop = TurretMoveLoop SoundEject = PilotSoundEject VoiceEject = PilotVoiceEject ; Required for the W3DTruckDraw module TruckLandingSound = NoSound TruckPowerslideSound = POWTruckUSAMoveStart VoiceCrush = POWTruckGLAVoiceCrush ;VoicePickup = POWTruckGLAVoicePickup VoiceEnter = POWTruckGLAVoiceMove End ; *** ENGINEERING Parameters *** RadarPriority = UNIT KindOf = PRELOAD SELECTABLE CAN_ATTACK CAN_CAST_REFLECTIONS VEHICLE SALVAGER TRANSPORT SCORE ;POW_TRUCK Body = ActiveBody ModuleTag_02 MaxHealth = 500.0 InitialHealth = 500.0 End ; Behavior = POWTruckBehavior ModuleTag_03 ; ContainMax = 10 ; EnterSound = EnterPOWTruck ; ExitSound = ExitPOWTruck ; End ; Behavior = POWTruckAIUpdate ModuleTag_04 ; BoredTime = 10000 ; in milliseconds ; AtPrisonDistance = 160.0 ; This close to a prison is close enough to be doing nothing at ; End Behavior = AIUpdateInterface ModuleTag_04 ; no data End Locomotor = SET_NORMAL POWTruckLocomotor Behavior = PhysicsBehavior ModuleTag_05 Mass = 50.0 End Behavior = SlowDeathBehavior ModuleTag_06 DeathTypes = ALL -CRUSHED -SPLATTED ProbabilityModifier = 25 DestructionDelay = 1 FX = FINAL FX_BattleMasterExplosionOneFinal OCL = FINAL OCL_GLAPOWTruckDeathEffect End Behavior = FXListDie ModuleTag_07 DeathTypes = NONE +CRUSHED +SPLATTED DeathFX = FX_CarCrush End Behavior = TransitionDamageFX ModuleTag_08 ReallyDamagedParticleSystem1 = Bone:Smoke RandomBone:Yes PSys:SmallLightSmokeColumn ReallyDamagedFXList1 = Loc: X:0 Y:0 Z:0 FXList:FX_BattleMasterDamageTransition End Behavior = FlammableUpdate ModuleTag_21 AflameDuration = 5000 ; If I catch fire, I'll burn for this long... AflameDamageAmount = 3 ; taking this much damage... AflameDamageDelay = 500 ; this often. End Behavior = StealthDetectorUpdate ModuleTag_HijackerDetect DetectionRate = 500 DetectionRange = 75 CanDetectWhileGarrisoned = No CanDetectWhileContained = No ExtraRequiredKindOf = BOAT End Geometry = BOX GeometryMajorRadius = 15.0 GeometryMinorRadius = 7.0 GeometryHeight = 13.5 GeometryIsSmall = Yes Shadow = SHADOW_VOLUME End ;------------------------------------------------------------------------------ Object GLAAngryMobRockProjectileObject ; *** ART Parameters *** Draw = W3DModelDraw ModuleTag_01 ConditionState = NONE Model = Mob_Rock End End ; ***DESIGN parameters *** DisplayName = OBJECT:GLARock EditorSorting = SYSTEM ArmorSet Armor = ProjectileArmor End VisionRange = 0.0 ; *** ENGINEERING Parameters *** KindOf = PROJECTILE Body = ActiveBody ModuleTag_02 MaxHealth = 100.0 InitialHealth = 100.0 End Behavior = DestroyDie ModuleTag_03 ;nothing End Behavior = DumbProjectileBehavior ModuleTag_04 TumbleRandomly = Yes ; not implemented, alas DetonateCallsKill = Yes ; To tweak a Bezier path, please see GS FirstHeight = 10 ; Height of Bezier control points above highest intervening terrain SecondHeight = 10 FirstPercentIndent = 50% ; Percentage of shot distance control points are placed SecondPercentIndent = 90% FlightPathAdjustDistPerSecond = 100 ; Can allow a max speed this can attempt to follow a target. Units are their velocity we can tag. End Behavior = PhysicsBehavior ModuleTag_05;lorenzen sez, please keep this, it allows tumbling Mass = 0.1 ; about the weight of a rock End Geometry = Sphere GeometryIsSmall = Yes GeometryMajorRadius = 1.0 End ;------------------------------------------------------------------------------ Object GLAAngryMobMolotovCocktailProjectileObject ; *** ART Parameters *** Draw = W3DModelDraw ModuleTag_01 ConditionState = NONE Model = Mob_Botl ParticleSysBone = BONE_FX MolotovBurningRag End End ; ***DESIGN parameters *** DisplayName = OBJECT:GLARock EditorSorting = SYSTEM ArmorSet Armor = ProjectileArmor End VisionRange = 0.0 ; *** ENGINEERING Parameters *** KindOf = PROJECTILE Body = ActiveBody ModuleTag_02 MaxHealth = 100.0 InitialHealth = 100.0 End Behavior = DumbProjectileBehavior ModuleTag_03 TumbleRandomly = Yes ; not implemented, alas DetonateCallsKill = Yes ; To tweak a Bezier path, please see GS FirstHeight = 30 //TALL ARC LOOK GOOD SecondHeight = 30 //TALL ARC LOOK GOOD FirstPercentIndent = 50% ; Percentage of shot distance control points are placed SecondPercentIndent = 90% FlightPathAdjustDistPerSecond = 100 ; Can allow a max speed this can attempt to follow a target. Units are their velocity we can tag. End Behavior = PhysicsBehavior ModuleTag_04;lorenzen sez, please keep this, it allows tumbling Mass = 0.1 ; about the weight of a rock End ; Behavior = FireWeaponWhenDeadBehavior ; DeathWeapon = GLAAngryMobMolotovCocktailPersistentFlameWeapon ; StartsActive = Yes ; End Behavior = DestroyDie ModuleTag_05 ;nothing End Geometry = Sphere GeometryIsSmall = Yes GeometryMajorRadius = 1.0 End ;------------------------------------------------------------------------------ Object ChinaArtilleryCannon ; *** ART Parameters *** ; Draw = W3DModelDraw ; DefaultConditionState ; Model = AVBomber_B ; End ; End ; ***DESIGN parameters *** ;DisplayName = OBJECT:A10Thunderbolt EditorSorting = VEHICLE Side = China TransportSlotCount = 0 ;how many "slots" we take in a transport (0 == not transportable) VisionRange = 99999.0 ShroudClearingRange = 0 ArmorSet Conditions = None Armor = AirplaneArmor DamageFX = None End ; *** AUDIO Parameters *** ; In the Activation of the superweapon, where it plays only once instead of once per missile. ; SoundMoveStart = FireArtilleryCannonSound ; *** ENGINEERING Parameters *** RadarPriority = UNIT KindOf = PRELOAD CAN_ATTACK VEHICLE AIRCRAFT UNATTACKABLE IGNORED_IN_GUI Body = ActiveBody ModuleTag_01 MaxHealth = 200.0 InitialHealth = 200.0 End Behavior = DestroyDie ModuleTag_02 ;nothing End Behavior = PhysicsBehavior ModuleTag_03 Mass = 0.001 ; about the weight of grain of salt End Behavior = DeliverPayloadAIUpdate ModuleTag_05 End Locomotor = SET_NORMAL ChinaArtilleryBarrageCannonLocomotor Geometry = Cylinder GeometryIsSmall = Yes GeometryMajorRadius = 1.0 GeometryMinorRadius = 1.0 GeometryHeight = 1.0 Shadow = SHADOW_DECAL ShadowSizeX = 1; ShadowSizeY = 1; ShadowTexture = ShadowI; End ;------------------------------------------------------------------------------ ;------------------------------------------------------------------------------ Object ChinaArtilleryBarrageShell ; *** ART Parameters *** Draw = W3DModelDraw ModuleTag_01 OkToChangeModelColor = Yes ConditionState = NONE Model = AVTankShel ParticleSysBone = NONE ArtilleryBarrageTrail ParticleSysBone = NONE ArtilleryBarrageTrailRing End End ; ***DESIGN parameters *** DisplayName = OBJECT:Missile Side = China EditorSorting = SYSTEM TransportSlotCount = 1 ;how many "slots" we take in a transport (0 == not transportable) VisionRange = 0.0 ArmorSet Conditions = None Armor = ProjectileArmor DamageFX = None End ; *** AUDIO Parameters *** SoundAmbient = ArtilleryBarrageIncomingWhistle ; *** ENGINEERING Parameters *** KindOf = PRELOAD CAN_CAST_REFLECTIONS PROJECTILE ;SMALL_MISSILE Body = ActiveBody ModuleTag_02 MaxHealth = 100.0 InitialHealth = 100.0 End ; ---- begin Projectile death behaviors Behavior = InstantDeathBehavior DeathModuleTag_01 DeathTypes = NONE +DETONATED ; we detonated normally. No effect, since it is in weapon. Don't want to double. ; FX = FX_ArtilleryBarrage End Behavior = InstantDeathBehavior DeathModuleTag_02 DeathTypes = NONE +LASERED ; shot down by laser. FX = FX_GenericMissileDisintegrate OCL = OCL_GenericMissileDisintegrate End Behavior = InstantDeathBehavior DeathModuleTag_03 DeathTypes = ALL -LASERED -DETONATED ; shot down by nonlaser. FX = FX_GenericMissileDeath End ; ---- end Projectile death behaviors ; Besides being the wrong weapon, the weapon is fired from the DeliverPayload listing in OCL.ini ; Behavior = FireWeaponWhenDeadBehavior ModuleTag_05 ; DeathWeapon = A10ThunderboltMissileWeapon ; StartsActive = Yes ; End Behavior = PhysicsBehavior ModuleTag_08 Mass = 1 End Behavior = MissileAIUpdate ModuleTag_09 TryToFollowTarget = Yes FuelLifetime = 10000 InitialVelocity = 30 ; in dist/sec IgnitionDelay = 0 End ; It's a missile, it needs to hit so it can +DETONATED ; Behavior = HeightDieUpdate ModuleTag_10 ; TargetHeight = 1.0 ; TargetHeightIncludesStructures = No ; End Locomotor = SET_NORMAL A10ThunderboltMissileLocomotor Geometry = Sphere GeometryIsSmall = Yes GeometryMajorRadius = 1.0 Behavior = SpecialPowerCompletionDie ModuleTag_11 SpecialPowerTemplate = SuperweaponA10ThunderboltMissileStrike End End ;------------------------------------------------------------------------------ ;*************************** Cinematic-only unit ****************************** Object CINE_AmericaInfantryOfficer ; *** ART Parameters *** Draw = W3DModelDraw ModuleTag_01 OkToChangeModelColor = Yes ;NORMAL STANDING DefaultConditionState Model = AIOFCR_SKN IdleAnimation = AIOFCR_SKL.AIOFCR_STA 0 21 ;Regular spice animations IdleAnimation = AIOFCR_SKL.AIOFCR_IDA IdleAnimation = AIOFCR_SKL.AIOFCR_IDB AnimationMode = ONCE WeaponFireFXBone = PRIMARY Muzzle WeaponMuzzleFlash = PRIMARY MuzzleFX TransitionKey = TRANS_STAND End ConditionState = MOVING Animation = AIOFCR_SKL.AIOFCR_RNA AnimationMode = LOOP ParticleSysBone = None InfantryDustTrails End ; NORMAL ATTACK ;-------------------------------------------------------- ; Drawing gun ConditionState = PREATTACK_A Animation = AIOFCR_SKL.AIOFCR_ATAST AnimationMode = ONCE End AliasConditionState = PREATTACK_A MOVING AliasConditionState = PREATTACK_A FIRING_A AliasConditionState = PREATTACK_A BETWEEN_FIRING_SHOTS_A ; Firing gun ConditionState = FIRING_A Animation = AIOFCR_SKL.AIOFCR_ATALP AnimationMode = LOOP TransitionKey = TRANS_FIRING_A End ConditionState = BETWEEN_FIRING_SHOTS_A Animation = AIOFCR_SKL.AIOFCR_ATALP AnimationMode = LOOP TransitionKey = TRANS_FIRING_A End AliasConditionState = RELOADING_A AliasConditionState = MOVING FIRING_A AliasConditionState = MOVING BETWEEN_FIRING_SHOTS_A AliasConditionState = MOVING RELOADING_A ; This transition allows him to put his gun away when he's finished attacking. TransitionState = TRANS_FIRING_A TRANS_STAND Animation = AIOFCR_SKL.AIOFCR_ATAED AnimationMode = ONCE End ;-------------------------------------------------------- ConditionState = DYING Animation = AIOFCR_SKL.AIOFCR_DTA Animation = AIOFCR_SKL.AIOFCR_DTB AnimationMode = ONCE TransitionKey = TRANS_Dying End TransitionState = TRANS_Dying TRANS_Flailing Animation = AIOFCR_SKL.AIOFCR_ADTE1 AnimationMode = ONCE End ConditionState = DYING EXPLODED_FLAILING Animation = AIOFCR_SKL.AIOFCR_ADTE2 AnimationMode = LOOP TransitionKey = TRANS_Flailing End ConditionState = DYING EXPLODED_BOUNCING Animation = AIOFCR_SKL.AIOFCR_ADTE3 AnimationMode = ONCE TransitionKey = None End ConditionState = SPECIAL_CHEERING Animation = AIOFCR_SKL.AIOFCR_CHA AnimationMode = LOOP End ;PARACHUTING ANIMATIONS ;@TODO - MISSING ANIMATION FILE ;ConditionState = FREEFALL ; Animation = AIOFCR_SKL.AIOFCR_PFL ; AnimationMode = LOOP ; TransitionKey = TRANS_Falling ;End ;AliasConditionState = FREEFALL REALLYDAMAGED ;AliasConditionState = FREEFALL DYING ConditionState = PARACHUTING Animation = AIOFCR_SKL.AIOFCR_PHG AnimationMode = LOOP Flags = PRISTINE_BONE_POS_IN_FINAL_FRAME ; our bone positions should come from the last frame, rather than the first TransitionKey = TRANS_Chute End AliasConditionState = PARACHUTING REALLYDAMAGED AliasConditionState = PARACHUTING DYING TransitionState = TRANS_Falling TRANS_Chute Animation = AIOFCR_SKL.AIOFCR_POP AnimationMode = ONCE Flags = PRISTINE_BONE_POS_IN_FINAL_FRAME ; our bone positions should come from the last frame, rather than the first End TransitionState = TRANS_Chute TRANS_Stand Animation = AIOFCR_SKL.AIOFCR_PTD AnimationMode = ONCE End ;SURRENDER ANIMATIONS ; surrender is cut. sorry. (srj) ; ConditionState = SURRENDER ; Animation = AIOFCR_SKL.AIOFCR_SLP ; AnimationMode = LOOP ; TransitionKey = TRANS_SurrenderStand ; End ; ConditionState = SURRENDER MOVING ; Animation = AIOFCR_SKL.AIOFCR_SWKLP ; AnimationMode = LOOP ; TransitionKey = TRANS_SurrenderMoving ; End ; TransitionState = TRANS_SurrenderStand TRANS_SurrenderMoving ; Animation = AIOFCR_SKL.AIOFCR_SWKST ; AnimationMode = ONCE ; End ; TransitionState = TRANS_Stand TRANS_SurrenderStand ; Animation = AIOFCR_SKL.AIOFCR_SST ; AnimationMode = ONCE ; End End ; ***DESIGN parameters *** DisplayName = OBJECT:Officer Side = America EditorSorting = INFANTRY TransportSlotCount = 1 ;how many "slots" we take in a transport (0 == not transportable) WeaponSet Conditions = None Weapon = PRIMARY AmericaOfficerMachineGun End ArmorSet Conditions = None Armor = HumanArmor DamageFX = InfantryDamageFX End VisionRange = 150 ShroudClearingRange = 150 BuildCost = 400 BuildTime = 10.0 ;in seconds ; *** AUDIO Parameters *** VoiceSelect = RangerVoiceSelect VoiceGroupSelect = BattleCrySound VoiceMove = RangerVoiceMove VoiceAttack = RangerVoiceAttack SoundDie = RangerVoiceDie SoundDieFire = DieByFireUSA SoundDieToxin = DieByToxinChina ; *** ENGINEERING Parameters *** RadarPriority = UNIT KindOf = PRELOAD SELECTABLE CAN_ATTACK CAN_CAST_REFLECTIONS INFANTRY SCORE Body = ActiveBody ModuleTag_02 MaxHealth = 100.0 InitialHealth = 100.0 End Behavior = AIUpdateInterface ModuleTag_03 AutoAcquireEnemiesWhenIdle = Yes End Behavior = AutoFindHealingUpdate ModuleTag_04 ; This update will have the unit go to a healing station if injured. jba ScanRate = 1000 ; once a second. ScanRange = 300 ; NeverHeal = 0.85 ; don't heal if we are > 85% healthy. AlwaysHeal = 0.25 ; if we get below 25%, find healing right away. End Locomotor = SET_NORMAL CINE_BasicHumanLocomotor Behavior = PhysicsBehavior ModuleTag_05 Mass = 5.0 End Behavior = SquishCollide ModuleTag_07 ;nothing End ; --- begin Death modules --- Behavior = SlowDeathBehavior ModuleTag_Death01 DeathTypes = ALL -CRUSHED -SPLATTED -EXPLODED -BURNED -POISONED SinkDelay = 3000 SinkRate = 0.5 ; in Dist/Sec DestructionDelay = 8000 FX = INITIAL FX_GIDie End Behavior = SlowDeathBehavior ModuleTag_Death02 DeathTypes = NONE +CRUSHED +SPLATTED SinkDelay = 3000 SinkRate = 0.5 ; in Dist/Sec DestructionDelay = 8000 FX = INITIAL FX_GIDieCrushed End Behavior = SlowDeathBehavior ModuleTag_Death03 DeathTypes = NONE +EXPLODED SinkDelay = 3000 SinkRate = 0.5 ; in Dist/Sec DestructionDelay = 8000 FX = INITIAL FX_GIDie FlingForce = 8 FlingForceVariance = 3 FlingPitch = 60 FlingPitchVariance = 10 End Behavior = SlowDeathBehavior ModuleTag_Death04 DeathTypes = NONE +BURNED DestructionDelay = 0 FX = INITIAL FX_GIDie OCL = INITIAL OCL_FlamingInfantry End Behavior = SlowDeathBehavior ModuleTag_Death05 DeathTypes = NONE +POISONED DestructionDelay = 0 FX = INITIAL FX_GIDie OCL = INITIAL OCL_ToxicInfantry End ; --- end Death modules --- Behavior = PoisonedBehavior ModuleTag_10 PoisonDamageInterval = 100 ; Every this many msec I will retake the poison damage dealt me... PoisonDuration = 3000 ; ... for this long after last hit by poison damage End Geometry = CYLINDER GeometryMajorRadius = 10.0 GeometryMinorRadius = 10.0 GeometryHeight = 12.0 GeometryIsSmall = Yes Shadow = SHADOW_DECAL ShadowSizeX = 14; ShadowSizeY = 14; ShadowTexture = ShadowI; BuildCompletion = APPEARS_AT_RALLY_POINT End ;------------------------------------------------------------------------------ ;************************ Cinematic-only unit ********************************* Object CINE_ChinaAmbassador ; *** ART Parameters *** Draw = W3DModelDraw ModuleTag_01 OkToChangeModelColor = Yes DefaultConditionState Model = NIAMBSDR_SKN IdleAnimation = NIAMBSDR_SKL.NIAMBSDR_STA IdleAnimation = NIAMBSDR_SKL.NIAMBSDR_STA IdleAnimation = NIAMBSDR_SKL.NIAMBSDR_STA IdleAnimation = NIAMBSDR_SKL.NIAMBSDR_STA IdleAnimation = NIAMBSDR_SKL.NIAMBSDR_STA IdleAnimation = NIAMBSDR_SKL.NIAMBSDR_STA IdleAnimation = NIAMBSDR_SKL.NIAMBSDR_STA IdleAnimation = NIAMBSDR_SKL.NIAMBSDR_IDA IdleAnimation = NIAMBSDR_SKL.NIAMBSDR_IDB AnimationMode = ONCE TransitionKey = TRANS_Stand End ConditionState = MOVING Animation = NIAMBSDR_SKL.NIAMBSDR_RNA ;***was using WKA but it doesn't exist so I changed it to kill the assert -- Kris AnimationMode = LOOP Flags = RANDOMSTART End ConditionState = MOVING PANICKING Animation = NIAMBSDR_SKL.NIAMBSDR_RNA AnimationMode = LOOP Flags = RANDOMSTART End ConditionState = DYING Animation = NIAMBSDR_SKL.NIAMBSDR_DTA Animation = NIAMBSDR_SKL.NIAMBSDR_DTB AnimationMode = ONCE TransitionKey = TRANS_Dying End ;TransitionState = TRANS_Dying TRANS_Flailing ; Animation = NIAMBSDR_SKL.NIAMBSDR_ADTD1 ; AnimationMode = ONCE ;End ;ConditionState = DYING EXPLODED_FLAILING ; Animation = NIAMBSDR_SKL.NIAMBSDR_ADTD2 ; AnimationMode = LOOP ; TransitionKey = TRANS_Flailing ;End ;ConditionState = DYING EXPLODED_BOUNCING ; Animation = NIAMBSDR_SKL.NIAMBSDR_ADTD3 ; AnimationMode = ONCE ; TransitionKey = None ;End End ; ***DESIGN parameters *** Buildable = No DisplayName = OBJECT:Ambassador Side = China EditorSorting = INFANTRY TransportSlotCount = 1 ;how many "slots" we take in a transport (0 == not transportable) WeaponSet ; no weapons End ArmorSet Conditions = None Armor = HumanArmor DamageFX = InfantryDamageFX End VisionRange = 150 ShroudClearingRange = 150 ExperienceValue = 50 100 150 400 ;Experience point value at each level ExperienceRequired = 0 150 450 900 ;Experience points needed to gain each level IsTrainable = Yes ;Can gain experience ; *** AUDIO Parameters *** SoundDie = RedGuardVoiceDie ; *** ENGINEERING Parameters *** RadarPriority = UNIT KindOf = PRELOAD SELECTABLE CAN_ATTACK CAN_CAST_REFLECTIONS INFANTRY SCORE Body = ActiveBody ModuleTag_02 MaxHealth = 50.0 InitialHealth = 50.0 End Behavior = AIUpdateInterface ModuleTag_03 AutoAcquireEnemiesWhenIdle = Yes End Locomotor = SET_NORMAL CINE_BasicHumanLocomotor Behavior = PhysicsBehavior ModuleTag_04 Mass = 5.0 End Behavior = SlowDeathBehavior ModuleTag_05 SinkDelay = 3000 SinkRate = 0.5 ; in Dist/Sec DestructionDelay = 8000 End Behavior = SquishCollide ModuleTag_06 ;nothing End Behavior = FXListDie ModuleTag_07 DeathTypes = ALL -CRUSHED -SPLATTED DeathFX = FX_GIDie End Behavior = FXListDie ModuleTag_08 DeathTypes = NONE +CRUSHED +SPLATTED DeathFX = FX_GIDieCrushed End Behavior = PoisonedBehavior ModuleTag_09 PoisonDamageInterval = 100 ; Every this many msec I will retake the poison damage dealt me... PoisonDuration = 3000 ; ... for this long after last hit by poison damage End Geometry = CYLINDER GeometryMajorRadius = 10.0 GeometryMinorRadius = 10.0 GeometryHeight = 12.0 GeometryIsSmall = Yes Shadow = SHADOW_DECAL ShadowSizeX = 14 ShadowSizeY = 14 ShadowTexture = ShadowI BuildCompletion = APPEARS_AT_RALLY_POINT End ;------------------------------------------------------------------------------ ; ************** Nova Unit Objects ******************* ;------------------------------------------------------------------------------ Object NeutronMissileOP ; *note* is now hydrogen missile ; *** ART Parameters *** Draw = W3DModelDraw ModuleTag_01 OkToChangeModelColor = Yes ConditionState = NONE Model = NBNRocket End ConditionState = DAMAGED REALLYDAMAGED RUBBLE Model = NONE End End ; ***DESIGN parameters *** DisplayName = OBJECT:NeutronMissileOP KindOf = UNATTACKABLE EditorSorting = SYSTEM VisionRange = 300.0 ShroudClearingRange = 0 TransportSlotCount = 10 ArmorSet Conditions = None Armor = ProjectileArmor DamageFX = None End ; *** ENGINEERING Parameters *** Body = ActiveBody ModuleTag_02 MaxHealth = 99999999.0 InitialHealth = 99999999.0 End Behavior = NeutronMissileUpdate ModuleTag_03 DistanceToTravelBeforeTurning = 300 ; goes straight up a long ways first MaxTurnRate = 7200 ; huge, since it turns off-camera ForwardDamping = 0.1 RelativeSpeed = 2.0 LaunchFX = FX_NeutronMissileLaunch IgnitionFX = FX_NeutronMissileIgnition TargetFromDirectlyAbove = 500 ; aim for an intermed spot directly above the target, so we come straight down onto it SpecialAccelFactor = 1 SpecialSpeedTime = 1500 SpecialSpeedHeight = 160 SpecialJitterDistance = 0.4 DeliveryDecalRadius = 210 DeliveryDecal Texture = SCCNuclearMissile_China Style = SHADOW_ALPHA_DECAL OpacityMin = 25% OpacityMax = 50% OpacityThrobTime = 500 Color = R:200 G:200 B:50 A:255 OnlyVisibleToOwningPlayer = Yes End End Behavior = HeightDieUpdate ModuleTag_04 TargetHeight = 100.0 TargetHeightIncludesStructures = No OnlyWhenMovingDown = Yes SnapToGroundOnDeath = Yes InitialDelay = 1000 ; Can't explode in the first second so we don't explode on the pad End Behavior = SpecialPowerCompletionDie ModuleTag_05 SpecialPowerTemplate = SuperweaponNeutronMissile End Behavior = NeutronMissileSlowDeathBehavior ModuleTag_06 DestructionDelay = 3501 ScorchMarkSize = 400 ;380 FXList = FX_NukeOP Blast1Enabled = Yes Blast1Delay = 580 ;in milliseconds Blast1ScorchDelay = 100 ;in milliseconds Blast1InnerRadius = 60.0 ;objects inside this get the full damage Blast1OuterRadius = 60.0 ;objects inside this get some of the full damage Blast1MaxDamage = 100.0 ;damage within inner radius of blast Blast1MinDamage = 20.0 ;always do at least this much damage to objects Blast1ToppleSpeed = 0.5 ;higher #'s topple faster Blast1PushForce = 30.0 ;higher #'s push more Blast2Enabled = Yes Blast2Delay = 660 ;in milliseconds Blast2ScorchDelay = 180 ;in milliseconds Blast2InnerRadius = 90.0 ;objects inside this get the full damage Blast2OuterRadius = 90.0 ;objects inside this get some of the full damage Blast2MaxDamage = 100.0 ;damage within inner radius of blast Blast2MinDamage = 20.0 ;always do at least this much damage to objects Blast2ToppleSpeed = 0.45 ;higher #'s topple faster Blast2PushForce = 8.0 ;higher #'s push more Blast3Enabled = Yes Blast3Delay = 720 ;in milliseconds Blast3ScorchDelay = 260 ;in milliseconds Blast3InnerRadius = 120.0 ;objects inside this get the full damage Blast3OuterRadius = 120.0 ;objects inside this get some of the full damage Blast3MaxDamage = 100.0 ;damage within inner radius of blast Blast3MinDamage = 20.0 ;always do at least this much damage to objects Blast3ToppleSpeed = 0.42 ;higher #'s topple faster Blast3PushForce = 6.0 ;higher #'s push more Blast4Enabled = Yes Blast4Delay = 850 ;in milliseconds Blast4ScorchDelay = 340 ;in milliseconds Blast4InnerRadius = 150.0 ;objects inside this get the full damage Blast4OuterRadius = 150.0 ;objects inside this get some of the full damage Blast4MaxDamage = 100.0 ;damage within inner radius of blast Blast4MinDamage = 20.0 ;always do at least this much damage to objects Blast4ToppleSpeed = 0.40 ;higher #'s topple faster Blast4PushForce = 6.0 ;higher #'s push more Blast5Enabled = Yes Blast5Delay = 1000 ;in milliseconds Blast5ScorchDelay = 420 ;in milliseconds Blast5InnerRadius = 180.0 ;objects inside this get the full damage Blast5OuterRadius = 180.0 ;objects inside this get some of the full damage Blast5MaxDamage = 100.0 ;damage within inner radius of blast Blast5MinDamage = 20.0 ;always do at least this much damage to objects Blast5ToppleSpeed = 0.38 ;higher #'s topple faster Blast5PushForce = 6.0 ;higher #'s push more Blast6Enabled = Yes Blast6Delay = 1180 ;in milliseconds Blast6ScorchDelay = 500 ;in milliseconds Blast6InnerRadius = 80.0 ;objects inside this get the full damage Blast6OuterRadius = 260.0 ;objects inside this get some of the full damage Blast6MaxDamage = 3500.0 ;damage within inner radius of blast Blast6MinDamage = 300.0 ;always do at least this much damage to objects Blast6ToppleSpeed = 0.35 ;higher #'s topple faster Blast6PushForce = 4.0 ;higher #'s push more Blast7Enabled = Yes Blast7Delay = 1600 ;in milliseconds, don't do the damage wave Blast7ScorchDelay = 620 ;in milliseconds Blast7InnerRadius = 80.0 ;objects inside this get the full damage Blast7OuterRadius = 260.0 ;objects inside this get some of the full damage Blast7MaxDamage = 300.0 ;damage within inner radius of blast Blast7MinDamage = 100.0 ;always do at least this much damage to objects Blast7ToppleSpeed = 0.38 ;higher #'s topple faster Blast7PushForce = 6.0 ;higher #'s push more Blast8Enabled = Yes Blast8Delay = 2000 ;in milliseconds, don't do the damage wave Blast8ScorchDelay = 700 ;in milliseconds Blast8InnerRadius = 80.0 ;objects inside this get the full damage Blast8OuterRadius = 260.0 ;objects inside this get some of the full damage Blast8MaxDamage = 300.0 ;damage within inner radius of blast Blast8MinDamage = 100.0 ;always do at least this much damage to objects Blast8ToppleSpeed = 0.38 ;higher #'s topple faster Blast8PushForce = 6.0 ;higher #'s push more Blast9Enabled = Yes Blast9Delay = 999999 ;in milliseconds, don't do the damage wave Blast9ScorchDelay = 800 ;in milliseconds Blast9OuterRadius = 250.0 ;objects inside this get some of the full damage OCL = MIDPOINT OCL_RadiationFieldMedium End Geometry = CYLINDER GeometryIsSmall = Yes GeometryMajorRadius = 7.0 GeometryHeight = 60.0 End ;------------------------------------------------------------------------------ Object NeutronBomb ; *** ART Parameters *** Draw = W3DModelDraw ModuleTag_01 OkToChangeModelColor = Yes DefaultConditionState Model = AVBomber_B End End ; ***DESIGN parameters *** DisplayName = OBJECT:NeutronBomb Side = GLA EditorSorting = SYSTEM TransportSlotCount = 1 ;how many "slots" we take in a transport (0 == not transportable) VisionRange = 300.0 ShroudClearingRange = 0 ArmorSet Conditions = None Armor = ProjectileArmor DamageFX = None End ; *** AUDIO Parameters *** SoundFallingFromPlane = DaisyCutterWeapon ; *** ENGINEERING Parameters *** KindOf = PROJECTILE Body = ActiveBody ModuleTag_02 MaxHealth = 100.0 InitialHealth = 100.0 End Behavior = AIUpdateInterface ModuleTag_03 End Locomotor = SET_NORMAL None Behavior = PhysicsBehavior ModuleTag_04 Mass = 75.0 AerodynamicFriction = 1 ; this is now friction-per-sec ForwardFriction = 33 ; this is now friction-per-sec CenterOfMassOffset = 1 ; Default of 0 means nothing tips as it falls. Positive tips forward, negative tips back End Behavior = FireWeaponWhenDeadBehavior ModuleTag_05 DeathWeapon = NeutronBombWeapon StartsActive = Yes End Behavior = HeightDieUpdate ModuleTag_06 TargetHeight = 40.0 TargetHeightIncludesStructures = No End Behavior = SpecialPowerCompletionDie ModuleTag_07 SpecialPowerTemplate = SuperweaponNeutronBomb End Behavior = DestroyDie ModuleTag_08 ;nothing End Behavior = FXListDie ModuleTag_09 DeathFX = FX_NeutronBomb End ; Geometry = Sphere ; GeometryIsSmall = Yes ;GeometryMajorRadius = 12.0 End ;------------------------------------------------------------------------------ Object NeutronEmissionField ; *** ART Parameters *** Draw = W3DModelDraw ModuleTag_01 DefaultConditionState Model = NONE End End ; ***DESIGN parameters *** EditorSorting = SYSTEM KindOf = IMMOBILE CLEANUP_HAZARD STICK_TO_TERRAIN_SLOPE INERT NO_COLLIDE ArmorSet Conditions = None Armor = HazardousMaterialArmor End ; ***AUDIO parameters *** SoundAmbient = AnthraxPoolAmbientLoop SoundDie = AnthraxPoolDie ; *** ENGINEERING Parameters *** Body = ActiveBody ModuleTag_02 MaxHealth = 120.0 InitialHealth = 120.0 End Behavior = FireWeaponUpdate ModuleTag_03 Weapon = NeutronBombEmissionFieldWeapon End Behavior = FireWeaponUpdate ModuleTag_04 Weapon = NeutronBombEmissionFieldWeaponPoison End Behavior = LifetimeUpdate ModuleTag_05 MinLifetime = 20000 MaxLifetime = 20000 End Behavior = FireWeaponUpdate ModuleTag_06 Weapon = HazardFieldCoreWeapon ; Prevents stacking of fields with a small blast of cleaning at the core at startup End Behavior = DestroyDie ModuleTag_07 End Geometry = CYLINDER GeometryMajorRadius = 150.0 GeometryHeight = 1.0 GeometryIsSmall = No End ;------------------------------------------------------------------------------ Object TomahawkMissileFromB52 ; *** ART Parameters *** Draw = W3DModelDraw ModuleTag_01 OkToChangeModelColor = Yes ConditionState = NONE Model = AVTomahawk_M End End ; ***DESIGN parameters *** DisplayName = OBJECT:TomahawkMissile EditorSorting = SYSTEM VisionRange = 0.0 TransportSlotCount = 1 ArmorSet Conditions = None Armor = BallisticMissileArmor DamageFX = None End ; *** AUDIO Parameters *** ;SoundFallingFromPlane = TomahawkWeapon ; *** ENGINEERING Parameters *** KindOf = PROJECTILE SMALL_MISSILE Body = ActiveBody ModuleTag_02 MaxHealth = 200.0 InitialHealth = 200.0 End ; ---- begin Projectile death behaviors Behavior = InstantDeathBehavior DeathModuleTag_01 DeathTypes = NONE +DETONATED ; we detonated normally. FX = WeaponFX_TomahawkMissileDetonation End Behavior = InstantDeathBehavior DeathModuleTag_02 DeathTypes = NONE +LASERED ; shot down by laser. FX = FX_GenericMissileDisintegrate OCL = OCL_GenericMissileDisintegrate End Behavior = InstantDeathBehavior DeathModuleTag_03 DeathTypes = ALL -LASERED -DETONATED ; shot down by nonlaser. FX = FX_GenericMissileDeath End ; ---- end Projectile death behaviors Behavior = PhysicsBehavior ModuleTag_06 Mass = 1 End Behavior = MissileAIUpdate ModuleTag_07 TryToFollowTarget = Yes FuelLifetime = 10000 IgnitionDelay = 300 IgnitionFX = FX_TomahawkIgnition InitialVelocity = 70 ; in dist/sec ;DistanceToTravelBeforeTurning = 80 DistanceToTargetBeforeDiving = 100 DistanceToTargetForLock = 20 End Locomotor = SET_NORMAL B52TomahawkMissileLocomotor Geometry = Cylinder ; Since collision extents can't tilt, this is a little fake GeometryMajorRadius = 8.0 GeometryHeight = 4.0 GeometryIsSmall = Yes Shadow = SHADOW_DECAL End ;------------------------------------------------------------------------------ Object GLAPlaneSuicide ; *** ART Parameters *** SelectPortrait = ButtonImage = SCTempDefaultCommand UpgradeCameo1 = Upgrade_GLAAnthraxBeta ;UpgradeCameo2 = ;UpgradeCameo3 = NONE ;UpgradeCameo4 = NONE ;UpgradeCameo5 = NONE Draw = W3DModelDraw ModuleTag_01 DefaultConditionState Model = CVCDTPLN ;HideSubObject = BurnerFX01 BurnerFX02 WeaponLaunchBone = PRIMARY WeaponA End ConditionState = JETEXHAUST ParticleSysBone = Wingtip01 JetContrail ParticleSysBone = Wingtip02 JetContrail End ;ConditionState = JETEXHAUST JETAFTERBURNER ; ParticleSysBone = Wingtip01 JetContrail ; ParticleSysBone = Wingtip02 JetContrail ; ShowSubObject = BurnerFX01 BurnerFX02 ; ParticleSysBone = Engine01 JetLenzflare ; ParticleSysBone = Engine02 JetLenzflare ;End ConditionState = REALLYDAMAGED Model = CVCDTPLN_D ParticleSysBone = Smoke01 JetSmoke ParticleSysBone = Engine01 JetEngineDamagedSmoke End ConditionState = REALLYDAMAGED JETEXHAUST Model = CVCDTPLN_D ParticleSysBone = Smoke01 JetSmoke ParticleSysBone = Engine01 JetEngineDamagedSmoke ParticleSysBone = Wingtip01 JetContrail ParticleSysBone = Wingtip02 JetContrail End ;ConditionState = REALLYDAMAGED JETEXHAUST JETAFTERBURNER ; Model = AVRaptor_D ; ; damage ; ParticleSysBone = Smoke01 JetSmoke ; ParticleSysBone = Engine01 JetEngineDamagedSmoke ; ; afterburner ; ShowSubObject = BurnerFX01 BurnerFX02 ; ParticleSysBone = Engine01 JetLenzflare ; ParticleSysBone = Engine02 JetLenzflare ; ; exhaust ; ParticleSysBone = Wingtip01 JetContrail ; ParticleSysBone = Wingtip02 JetContrail ;End ConditionState = RUBBLE Model = CVCDTPLN_D HideSubObject = None ShowSubObject = None End ;ConditionState = RUBBLE JETEXHAUST JETAFTERBURNER ; Model = AVRaptor_D1B ; ;HideSubObject is needed cause there're inherited from default condition state ; HideSubObject = None ; ShowSubObject = None ; ParticleSysBone = Engine01 JetExhaust ; ParticleSysBone = Engine02 JetExhaust ; ; exhaust ; ParticleSysBone = Wingtip01 JetContrail ; ParticleSysBone = Wingtip02 JetContrail ;End OkToChangeModelColor = Yes End ; ***DESIGN parameters *** DisplayName = OBJECT:GLASuicidePlane EditorSorting = VEHICLE Side = GLA TransportSlotCount = 0 ;how many "slots" we take in a transport (0 == not transportable) VisionRange = 180.0 ShroudClearingRange = 400 Prerequisites Object = GLAAirfield End WeaponSet Conditions = None Weapon = PRIMARY SuicideWeapon End ArmorSet Conditions = None Armor = AirplaneArmor DamageFX = None End BuildCost = 200 ;1000 BuildTime = 2 ;12 ExperienceValue = 50 50 50 50 ;Experience point value at each level ExperienceRequired = 0 100 200 400 ;Experience points needed to gain each level IsTrainable = No ;Can gain experience CrusherLevel = 1 ;What can I crush?: 1 = infantry, 2 = trees, 3 = vehicles CrushableLevel = 2 ;What am I?: 0 = for infantry, 1 = for trees, 2 = general vehicles CommandSet = GLAPlaneSuicideCommandSet ; *** AUDIO Parameters *** VoiceSelect = BombTruckVoiceSelect VoiceMove = BombTruckVoiceMove VoiceGuard = BombTruckVoiceMove VoiceAttack = BombTruckVoiceAttack VoiceAttackAir = BombTruckVoiceAttack ;SoundDie = SoundAmbient = CivPropPlaneAmbientLoop SoundAmbientRubble = NoSound UnitSpecificSounds VoiceCreate = BombTruckVoiceCreate SoundEject = PilotSoundEject VoiceEject = PilotVoiceEject ;Afterburner = ;VoiceLowFuel = ;VoiceGarrison = End ; *** ENGINEERING Parameters *** RadarPriority = UNIT KindOf = PRELOAD CAN_CAST_REFLECTIONS CAN_ATTACK SELECTABLE VEHICLE SCORE AIRCRAFT Body = ActiveBody ModuleTag_02 MaxHealth = 120.0 InitialHealth = 120.0 End Behavior = JetSlowDeathBehavior ModuleTag_05 DeathTypes = ALL -SUICIDED FXOnGroundDeath = FX_JetOnGroundDeath OCLOnGroundDeath = OCL_RaptorDeathFinalBlowUp DestructionDelay = 99999999; destruction will happen when we RollRate = 0.2 RollRateDelta = 100% ;each frame, rollrate = rollrate * rollrateDelta PitchRate = 0.0 FallHowFast = 90.0% ;Bigger is faster (can be over 100%,it's a fraction of gravity) FXInitialDeath = FX_JetDeathInitial OCLInitialDeath = OCL_RaptorDeathInitial DelaySecondaryFromInitialDeath = 500 ; in milliseconds FXSecondary = FX_JetDeathSecondary OCLSecondary = OCL_RaptorDeathSecondary FXHitGround = FX_JetDeathHitGround OCLHitGround = OCL_RaptorDeathHitGround DelayFinalBlowUpFromHitGround = 200 ; in milliseconds FXFinalBlowUp = FX_JetDeathFinalBlowUp OCLFinalBlowUp = OCL_RaptorDeathFinalBlowUp End Behavior = InstantDeathBehavior DeathModuleTag_12 DeathTypes = NONE +SUICIDED End ;Behavior = EjectPilotDie ModuleTag_06 ; pilot sacrifices himself ; ExemptStatus = HIJACKED ; GroundCreationList = OCL_EjectPilotOnGround ; AirCreationList = OCL_EjectPilotViaParachute ; VeterancyLevels = ALL -REGULAR ;only vet+ gives pilot ;End Behavior = PhysicsBehavior ModuleTag_07 Mass = 400.0 End Behavior = TransitionDamageFX ModuleTag_08 ReallyDamagedParticleSystem1 = Bone:Smoke RandomBone:Yes Psys:SmokeSmallContinuous01 ReallyDamagedFXList1 = Loc: X:0 Y:0 Z:0 FXList:FX_MIGDamageTransition End Behavior = FireWeaponWhenDeadBehavior ModuleTag_10 DeathWeapon = SuicidePlaneBomb StartsActive = Yes ConflictsWith = Upgrade_GLAAnthraxBeta DeathTypes = NONE +SUICIDED End Behavior = FireWeaponWhenDeadBehavior ModuleTag_11 DeathWeapon = SuicidePlaneBombUpgraded StartsActive = No TriggeredBy = Upgrade_GLAAnthraxBeta DeathTypes = NONE +SUICIDED End Behavior = JetAIUpdate ModuleTag_09 OutOfAmmoDamagePerSecond = 0% TakeoffSpeedForMaxLift = 80% ; smaller numbers give more lift sooner when taking off TakeoffPause = 500 MinHeight = 1 ParkingOffset = 3 ; scooch it a little forward so the tail doesn't hit the doors ReturnToBaseIdleTime = 20000 ; if idle for this long, return to base, even if not out of ammo End Locomotor = SET_NORMAL SuicidePlaneLocomotor Locomotor = SET_TAXIING SuicidePlaneTaxiLocomotor Behavior = FlammableUpdate ModuleTag_21 AflameDuration = 5000 ; If I catch fire, I'll burn for this long... AflameDamageAmount = 3 ; taking this much damage... AflameDamageDelay = 500 ; this often. End Geometry = Box GeometryIsSmall = Yes GeometryMajorRadius = 14.0 GeometryMinorRadius = 7.0 GeometryHeight = 5.0 Shadow = SHADOW_VOLUME ShadowSizeX = 89 ; minimum elevation angle above horizon. Used to limit shadow length. End ;------------------------------------------------------------------------------------------------------ Object GLAPlaneSuicideHulk ; *** ART Parameters *** Draw = W3DModelDraw ModuleTag_01 DefaultConditionState Model = CVCDTPLN_D End End ; ***DESIGN parameters *** EditorSorting = DEBRIS ; *** ENGINEERING Parameters *** KindOf = NO_COLLIDE HULK Behavior = PhysicsBehavior ModuleTag_03 Mass = 2.0 AllowBouncing = Yes KillWhenRestingOnGround = Yes End Behavior = LifetimeUpdate ModuleTag_04 MinLifetime = 1500 ; min lifetime in msec MaxLifetime = 1600 ; max lifetime in msec End Behavior = SlowDeathBehavior ModuleTag_05 SinkDelay = 1500 SinkRate = 2 ; in Dist/Sec DestructionDelay = 8000 End End ;------------------------------------------------------------------------------ Object JarmenKellSniperShell ; *** ART Parameters *** Draw = W3DModelDraw ModuleTag_01 ConditionState = NONE Model = none End End ; ***DESIGN parameters *** DisplayName = OBJECT:TankShell EditorSorting = SYSTEM ArmorSet Armor = ProjectileArmor End VisionRange = 0.0 ; *** ENGINEERING Parameters *** KindOf = PROJECTILE Body = ActiveBody ModuleTag_02 MaxHealth = 100.0 InitialHealth = 100.0 End Behavior = DestroyDie ModuleTag_03 ;nothing End Behavior = MissileAIUpdate ModuleTag_04 TryToFollowTarget = No FuelLifetime = 2000 InitialVelocity = 9999 ; in dist/sec IgnitionDelay = 0 DistanceToTravelBeforeTurning = 0 GarrisonHitKillRequiredKindOf = INFANTRY GarrisonHitKillForbiddenKindOf = NONE GarrisonHitKillCount = 8 ;GarrisonHitKillFX = none End Behavior = PhysicsBehavior ModuleTag_05 Mass = 0.01 ; we can't have a zero mass, but we want it pretty tiny... AllowCollideForce = no End Geometry = Sphere GeometryIsSmall = Yes GeometryMajorRadius = 1.0 End