;------------------------------------------------------------------------------ Object GLATankScorpion ; *** 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 ; ------------ Normal DefaultConditionState Model = UVLiteTank Turret = Turret ; Logic twist bone is always this, both turrets are subobjects of it, as are both missile racks ; note, order-dependent: we must hide/show Missile AFTER we hide/show MissileRack! ShowSubObject = Turret01 HideSubObject = MissleRack01 MissleRack02 TurretUP01; MissileRack misspelled in the Art WeaponFireFXBone = PRIMARY Muzzle WeaponRecoilBone = PRIMARY Barrel WeaponMuzzleFlash = PRIMARY MuzzleFX WeaponLaunchBone = PRIMARY Muzzle End ConditionState = REALLYDAMAGED Model = UVLiteTank_d End AliasConditionState = RUBBLE ; ------------ With big turret ConditionState = WEAPONSET_CRATEUPGRADE_ONE ; one or two crates is a turret switch ShowSubObject = TurretUP01 HideSubObject = MissleRack01 MissleRack02 Turret01 ; MissileRack misspelled in the Art End AliasConditionState = WEAPONSET_CRATEUPGRADE_TWO ConditionState = WEAPONSET_CRATEUPGRADE_ONE REALLYDAMAGED Model = UVLiteTank_d ShowSubObject = TurretUP01 HideSubObject = MissleRack01 MissleRack02 Turret01 ; MissileRack misspelled in the Art End AliasConditionState = WEAPONSET_CRATEUPGRADE_TWO REALLYDAMAGED ; ---------- With missile ConditionState = WEAPONSET_PLAYER_UPGRADE ShowSubObject = MissleRack01 Turret01 HideSubObject = MissleRack02 TurretUP01; MissileRack misspelled in the Art WeaponFireFXBone = SECONDARY WeaponA WeaponLaunchBone = SECONDARY WeaponA End ConditionState = WEAPONSET_PLAYER_UPGRADE REALLYDAMAGED Model = UVLiteTank_d ShowSubObject = MissleRack01 Turret01 HideSubObject = MissleRack02 TurretUP01; MissileRack misspelled in the Art WeaponFireFXBone = SECONDARY WeaponA WeaponLaunchBone = SECONDARY WeaponA End ; ---------- With missile and big turret ConditionState = WEAPONSET_PLAYER_UPGRADE WEAPONSET_CRATEUPGRADE_ONE ShowSubObject = MissleRack01 TurretUP01 HideSubObject = MissleRack02 Turret01; MissileRack misspelled in the Art WeaponFireFXBone = SECONDARY WeaponA WeaponLaunchBone = SECONDARY WeaponA End ConditionState = WEAPONSET_PLAYER_UPGRADE WEAPONSET_CRATEUPGRADE_ONE REALLYDAMAGED Model = UVLiteTank_d ShowSubObject = MissleRack01 TurretUP01 HideSubObject = MissleRack02 Turret01; MissileRack misspelled in the Art WeaponFireFXBone = SECONDARY WeaponA WeaponLaunchBone = SECONDARY WeaponA End ; ---------- With two missiles and big turret ConditionState = WEAPONSET_PLAYER_UPGRADE WEAPONSET_CRATEUPGRADE_TWO ShowSubObject = MissleRack01 MissleRack02 TurretUP01 HideSubObject = Turret01; MissileRack misspelled in the Art WeaponFireFXBone = SECONDARY WeaponA WeaponLaunchBone = SECONDARY WeaponA End ConditionState = WEAPONSET_PLAYER_UPGRADE WEAPONSET_CRATEUPGRADE_TWO REALLYDAMAGED Model = UVLiteTank_d ShowSubObject = MissleRack01 MissleRack02 TurretUP01 HideSubObject = Turret01; MissileRack misspelled in the Art WeaponFireFXBone = SECONDARY WeaponA WeaponLaunchBone = SECONDARY WeaponA 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 End WeaponSet Conditions = CRATEUPGRADE_ONE Weapon = PRIMARY ScorpionTankGunPlusOne Weapon = SECONDARY None End WeaponSet Conditions = CRATEUPGRADE_ONE PLAYER_UPGRADE Weapon = PRIMARY ScorpionTankGunPlusOne Weapon = SECONDARY ScorpionMissileWeapon ; No bonus at Plus One End WeaponSet Conditions = CRATEUPGRADE_TWO Weapon = PRIMARY ScorpionTankGunPlusOne ; No further bonus at plus two Weapon = SECONDARY None End WeaponSet Conditions = CRATEUPGRADE_TWO PLAYER_UPGRADE Weapon = PRIMARY ScorpionTankGunPlusOne ; No further bonus at plus two Weapon = SECONDARY ScorpionMissileWeaponPlusTwo End ArmorSet Conditions = None Armor = TankArmor DamageFX = TankDamageFX End BuildCost = 600 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 WEAPON_SALVAGER SCORE Body = ActiveBody ModuleTag_02 MaxHealth = 370.0 InitialHealth = 370.0 ; Subdual damage "Subdues" you (reaction defined by BodyModule) when it passes your max health. ; The cap limits how extra-subdued you can be, and the other numbers detemine how fast it drains away on its own. SubdualDamageCap = 740 SubdualDamageHealRate = 500 SubdualDamageHealAmount = 50 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_ScorpionTankDeathEffect 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 = 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 ;------------------------------------------------------------------------------ ;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 ; Subdual damage "Subdues" you (reaction defined by BodyModule) when it passes your max health. ; The cap limits how extra-subdued you can be, and the other numbers detemine how fast it drains away on its own. SubdualDamageCap = 240 SubdualDamageHealRate = 500 SubdualDamageHealAmount = 50 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 = 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 = 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 ;------------------------------------------------------------------------------ ;GLA Combat Bike Object GLAVehicleCombatBike ; *** ART Parameters *** SelectPortrait = SUComBike_L ButtonImage = SUComBike UpgradeCameo1 = Upgrade_GLAJunkRepair ;UpgradeCameo2 = NONE ;UpgradeCameo3 = NONE ;UpgradeCameo4 = NONE ;UpgradeCameo5 = NONE Draw = W3DTruckDraw ModuleTag_01 OkToChangeModelColor = Yes ;Normal Bike ;------------------------------ DefaultConditionState Model = UVComBike WeaponFireFXBone = PRIMARY Muzzle_B WeaponLaunchBone = PRIMARY RocketFX03 WeaponMuzzleFlash = PRIMARY MuzzleFX_B ParticleSysBone = SMOKE CombatBikeSmokeLight HideSubObject = BOMBBIKE ; Hide from all states except terrorist (rider 5) End AliasConditionState RIDER1 AliasConditionState RIDER1 MOVING AliasConditionState RIDER6 AliasConditionState RIDER6 MOVING AliasConditionState RIDER7 AliasConditionState RIDER7 MOVING ConditionState = REALLYDAMAGED Model = UVComBike_d End AliasConditionState RIDER1 REALLYDAMAGED AliasConditionState RIDER1 MOVING REALLYDAMAGED AliasConditionState RIDER6 REALLYDAMAGED AliasConditionState RIDER6 MOVING REALLYDAMAGED AliasConditionState RIDER7 REALLYDAMAGED AliasConditionState RIDER7 MOVING REALLYDAMAGED ConditionState = TOPPLED Model = UVComBike_F Animation = UVComBike_F.UVComBike_F AnimationMode = ONCE End ConditionState = TOPPLED REALLYDAMAGED Model = UVComBike_dF Animation = UVComBike_DF.UVComBike_DF AnimationMode = ONCE End ConditionState = RIDER1 MOVING CENTER_TO_LEFT Model = UVComBike_A1 Animation = UVComBike_A1.UVComBike_A1 AnimationMode = ONCE ParticleSysBone = SMOKE CombatBikeSmokeHeavy End AliasConditionState RIDER6 MOVING CENTER_TO_LEFT AliasConditionState RIDER7 MOVING CENTER_TO_LEFT ConditionState = RIDER1 MOVING CENTER_TO_LEFT REALLYDAMAGED Model = UVComBike_A1d Animation = UVComBike_A1D.UVComBike_A1D AnimationMode = ONCE ParticleSysBone = SMOKE CombatBikeSmokeHeavy End AliasConditionState RIDER6 MOVING CENTER_TO_LEFT REALLYDAMAGED AliasConditionState RIDER7 MOVING CENTER_TO_LEFT REALLYDAMAGED ConditionState = RIDER1 MOVING LEFT_TO_CENTER Model = UVComBike_A1 Animation = UVComBike_A1.UVComBike_A1 AnimationMode = ONCE_BACKWARDS ParticleSysBone = SMOKE CombatBikeSmokeHeavy End AliasConditionState RIDER6 MOVING LEFT_TO_CENTER AliasConditionState RIDER7 MOVING LEFT_TO_CENTER ConditionState = RIDER1 MOVING LEFT_TO_CENTER REALLYDAMAGED Model = UVComBike_A1d Animation = UVComBike_A1D.UVComBike_A1D AnimationMode = ONCE_BACKWARDS ParticleSysBone = SMOKE CombatBikeSmokeHeavy End AliasConditionState RIDER6 MOVING LEFT_TO_CENTER REALLYDAMAGED AliasConditionState RIDER7 MOVING LEFT_TO_CENTER REALLYDAMAGED ConditionState = RIDER1 MOVING CENTER_TO_RIGHT Model = UVComBike_A2 Animation = UVComBike_A2.UVComBike_A2 AnimationMode = ONCE ParticleSysBone = SMOKE CombatBikeSmokeHeavy End AliasConditionState RIDER6 MOVING CENTER_TO_RIGHT AliasConditionState RIDER7 MOVING CENTER_TO_RIGHT ConditionState = RIDER1 MOVING CENTER_TO_RIGHT REALLYDAMAGED Model = UVComBike_A2d Animation = UVComBike_A2D.UVComBike_A2D AnimationMode = ONCE ParticleSysBone = SMOKE CombatBikeSmokeHeavy End AliasConditionState RIDER6 MOVING CENTER_TO_RIGHT REALLYDAMAGED AliasConditionState RIDER7 MOVING CENTER_TO_RIGHT REALLYDAMAGED ConditionState = RIDER1 MOVING RIGHT_TO_CENTER Model = UVComBike_A2 Animation = UVComBike_A2.UVComBike_A2 AnimationMode = ONCE_BACKWARDS ParticleSysBone = SMOKE CombatBikeSmokeHeavy End AliasConditionState RIDER6 MOVING RIGHT_TO_CENTER AliasConditionState RIDER7 MOVING RIGHT_TO_CENTER ConditionState = RIDER1 MOVING RIGHT_TO_CENTER REALLYDAMAGED Model = UVComBike_A2d Animation = UVComBike_A2D.UVComBike_A2D AnimationMode = ONCE_BACKWARDS ParticleSysBone = SMOKE CombatBikeSmokeHeavy End AliasConditionState RIDER6 MOVING RIGHT_TO_CENTER REALLYDAMAGED AliasConditionState RIDER7 MOVING RIGHT_TO_CENTER REALLYDAMAGED ;Terror Bike ;------------------------------ ConditionState RIDER5 Model = UVComBike WeaponFireFXBone = PRIMARY Muzzle_B WeaponLaunchBone = PRIMARY RocketFX03 WeaponMuzzleFlash = PRIMARY MuzzleFX_B ParticleSysBone = SMOKE CombatBikeSmokeLight ShowSubObject = BOMBBIKE End AliasConditionState RIDER5 MOVING ConditionState = REALLYDAMAGED RIDER5 Model = UVComBike_d ShowSubObject = BOMBBIKE End AliasConditionState RIDER5 MOVING REALLYDAMAGED ConditionState = TOPPLED RIDER5 Model = UVComBike_F Animation = UVComBike_F.UVComBike_F AnimationMode = ONCE ShowSubObject = BOMBBIKE End ConditionState = TOPPLED REALLYDAMAGED RIDER5 Model = UVComBike_dF Animation = UVComBike_DF.UVComBike_DF AnimationMode = ONCE ShowSubObject = BOMBBIKE End ConditionState = RIDER5 MOVING CENTER_TO_LEFT Model = UVComBike_A1 Animation = UVComBike_A1.UVComBike_A1 AnimationMode = ONCE ParticleSysBone = SMOKE CombatBikeSmokeHeavy ShowSubObject = BOMBBIKE End ConditionState = RIDER5 MOVING CENTER_TO_LEFT REALLYDAMAGED Model = UVComBike_A1d Animation = UVComBike_A1D.UVComBike_A1D AnimationMode = ONCE ParticleSysBone = SMOKE CombatBikeSmokeHeavy ShowSubObject = BOMBBIKE End ConditionState = RIDER5 MOVING LEFT_TO_CENTER Model = UVComBike_A1 Animation = UVComBike_A1.UVComBike_A1 AnimationMode = ONCE_BACKWARDS ParticleSysBone = SMOKE CombatBikeSmokeHeavy ShowSubObject = BOMBBIKE End ConditionState = RIDER5 MOVING LEFT_TO_CENTER REALLYDAMAGED Model = UVComBike_A1d Animation = UVComBike_A1D.UVComBike_A1D AnimationMode = ONCE_BACKWARDS ParticleSysBone = SMOKE CombatBikeSmokeHeavy ShowSubObject = BOMBBIKE End ConditionState = RIDER5 MOVING CENTER_TO_RIGHT Model = UVComBike_A2 Animation = UVComBike_A2.UVComBike_A2 AnimationMode = ONCE ParticleSysBone = SMOKE CombatBikeSmokeHeavy ShowSubObject = BOMBBIKE End ConditionState = RIDER5 MOVING CENTER_TO_RIGHT REALLYDAMAGED Model = UVComBike_A2d Animation = UVComBike_A2D.UVComBike_A2D AnimationMode = ONCE ParticleSysBone = SMOKE CombatBikeSmokeHeavy ShowSubObject = BOMBBIKE End ConditionState = RIDER5 MOVING RIGHT_TO_CENTER Model = UVComBike_A2 Animation = UVComBike_A2.UVComBike_A2 AnimationMode = ONCE_BACKWARDS ParticleSysBone = SMOKE CombatBikeSmokeHeavy ShowSubObject = BOMBBIKE End ConditionState = RIDER5 MOVING RIGHT_TO_CENTER REALLYDAMAGED Model = UVComBike_A2d Animation = UVComBike_A2D.UVComBike_A2D AnimationMode = ONCE_BACKWARDS ParticleSysBone = SMOKE CombatBikeSmokeHeavy ShowSubObject = BOMBBIKE End ;Gun Bike ;------------------------------ ConditionState = RIDER2 Model = UVComBikeG End AliasConditionState RIDER2 MOVING AliasConditionState RIDER4 AliasConditionState RIDER4 MOVING ConditionState = RIDER2 REALLYDAMAGED Model = UVComBikeG_d End AliasConditionState RIDER2 MOVING REALLYDAMAGED AliasConditionState RIDER4 REALLYDAMAGED AliasConditionState RIDER4 MOVING REALLYDAMAGED ConditionState = RIDER2 MOVING CENTER_TO_LEFT Model = UVComBikeG Animation = UVComBikeG_A1.UVComBikeG_A1 AnimationMode = ONCE ParticleSysBone = SMOKE CombatBikeSmokeHeavy End AliasConditionState RIDER4 MOVING CENTER_TO_LEFT ConditionState = RIDER2 MOVING CENTER_TO_LEFT REALLYDAMAGED Model = UVComBikeG_d Animation = UVComBikeG_A1.UVComBikeG_A1 AnimationMode = ONCE ParticleSysBone = SMOKE CombatBikeSmokeHeavy End AliasConditionState RIDER4 MOVING CENTER_TO_LEFT REALLYDAMAGED ConditionState = RIDER2 MOVING LEFT_TO_CENTER Model = UVComBikeG Animation = UVComBikeG_A1.UVComBikeG_A1 AnimationMode = ONCE_BACKWARDS ParticleSysBone = SMOKE CombatBikeSmokeHeavy End AliasConditionState RIDER4 MOVING LEFT_TO_CENTER ConditionState = RIDER2 MOVING LEFT_TO_CENTER REALLYDAMAGED Model = UVComBikeG_d Animation = UVComBikeG_A1.UVComBikeG_A1 AnimationMode = ONCE_BACKWARDS ParticleSysBone = SMOKE CombatBikeSmokeHeavy End AliasConditionState RIDER4 MOVING LEFT_TO_CENTER REALLYDAMAGED ConditionState = RIDER2 MOVING CENTER_TO_RIGHT Model = UVComBikeG Animation = UVComBikeG_A2.UVComBikeG_A2 AnimationMode = ONCE ParticleSysBone = SMOKE CombatBikeSmokeHeavy End AliasConditionState RIDER4 MOVING CENTER_TO_RIGHT ConditionState = RIDER2 MOVING CENTER_TO_RIGHT REALLYDAMAGED Model = UVComBikeG_d Animation = UVComBikeG_A2.UVComBikeG_A2 AnimationMode = ONCE ParticleSysBone = SMOKE CombatBikeSmokeHeavy End AliasConditionState RIDER4 MOVING CENTER_TO_RIGHT REALLYDAMAGED ConditionState = RIDER2 MOVING RIGHT_TO_CENTER Model = UVComBikeG Animation = UVComBikeG_A2.UVComBikeG_A2 AnimationMode = ONCE_BACKWARDS ParticleSysBone = SMOKE CombatBikeSmokeHeavy End AliasConditionState RIDER4 MOVING RIGHT_TO_CENTER ConditionState = RIDER2 MOVING RIGHT_TO_CENTER REALLYDAMAGED Model = UVComBikeG_d Animation = UVComBikeG_A2.UVComBikeG_A2 AnimationMode = ONCE_BACKWARDS ParticleSysBone = SMOKE CombatBikeSmokeHeavy End AliasConditionState RIDER4 MOVING RIGHT_TO_CENTER REALLYDAMAGED ;Missile Bike ;------------------------------ ConditionState = RIDER3 Model = UVComBikeTN End AliasConditionState RIDER3 MOVING ConditionState = RIDER3 REALLYDAMAGED Model = UVComBikeTN_d End AliasConditionState RIDER3 MOVING REALLYDAMAGED ConditionState = RIDER3 MOVING CENTER_TO_LEFT Model = UVComBikeTN_A1 Animation = UVComBikeTN_A1.UVComBikeTN_A1 AnimationMode = ONCE ParticleSysBone = SMOKE CombatBikeSmokeHeavy End ConditionState = RIDER3 MOVING CENTER_TO_LEFT REALLYDAMAGED Model = UVComBikeTN_A1d Animation = UVComBikeTN_A1D.UVComBikeTN_A1D AnimationMode = ONCE ParticleSysBone = SMOKE CombatBikeSmokeHeavy End ConditionState = RIDER3 MOVING LEFT_TO_CENTER Model = UVComBikeTN_A1 Animation = UVComBikeTN_A1.UVComBikeTN_A1 AnimationMode = ONCE_BACKWARDS ParticleSysBone = SMOKE CombatBikeSmokeHeavy End ConditionState = RIDER3 MOVING LEFT_TO_CENTER REALLYDAMAGED Model = UVComBikeTN_A1d Animation = UVComBikeTN_A1D.UVComBikeTN_A1D AnimationMode = ONCE_BACKWARDS ParticleSysBone = SMOKE CombatBikeSmokeHeavy End ConditionState = RIDER3 MOVING CENTER_TO_RIGHT Model = UVComBikeTN_A2 Animation = UVComBikeTN_A2D.UVComBikeTN_A2D AnimationMode = ONCE ParticleSysBone = SMOKE CombatBikeSmokeHeavy End ConditionState = RIDER3 MOVING CENTER_TO_RIGHT REALLYDAMAGED Model = UVComBikeTN_A2d Animation = UVComBikeTN_A2D.UVComBikeTN_A2D AnimationMode = ONCE ParticleSysBone = SMOKE CombatBikeSmokeHeavy End ConditionState = RIDER3 MOVING RIGHT_TO_CENTER Model = UVComBikeTN_A2 Animation = UVComBikeTN_A2.UVComBikeTN_A2 AnimationMode = ONCE_BACKWARDS ParticleSysBone = SMOKE CombatBikeSmokeHeavy End ConditionState = RIDER3 MOVING RIGHT_TO_CENTER REALLYDAMAGED Model = UVComBikeTN_A2d Animation = UVComBikeTN_A2D.UVComBikeTN_A2D AnimationMode = ONCE_BACKWARDS ParticleSysBone = SMOKE CombatBikeSmokeHeavy End TrackMarks = EXTireTrack03.tga Dust = CombatBikeDust DirtSpray = CombatBikeDirtSpray PowerslideSpray = CombatBikeDirtPowerSlide ; These parameters are only used if the model has a separate suspension, ; and the locomotor has HasSuspension = Yes. LeftFrontTireBone = Tire01 LeftRearTireBone = Tire00 TireRotationMultiplier = 0.2 ; this * speed = rotation. PowerslideRotationAddition = 2.5 ; This speed is added to the rotation speed when powersliding. End Draw = W3DModelDraw ModuleTag_Rider01 OkToChangeModelColor = Yes DefaultConditionState ;************************************************** ;*** Must have a default model in order to see ;*** house color!!! ;************************************************** Model = UIWrkr_SKN ;WeaponFireFXBone = PRIMARY Muzzle ;WeaponLaunchBone = PRIMARY Muzzle WeaponMuzzleFlash = PRIMARY MuzzleFX End AliasConditionState MOVING ;Worker animations ;----------------------- ConditionState = RIDER1 Model = UIWrkr_SKN Animation = UIWrkr_SKL.UIWrkr_CmBk_A5 AnimationMode = LOOP End ConditionState = RIDER1 MOVING Model = UIWrkr_SKN Animation = UIWrkr_SKL.UIWrkr_CmBk_A4 AnimationMode = LOOP End ConditionState = RIDER1 MOVING CENTER_TO_LEFT Model = UIWrkr_SKN Animation = UIWrkr_SKL.UIWrkr_CmBk_A1 AnimationMode = ONCE End ConditionState = RIDER1 MOVING LEFT_TO_CENTER Model = UIWrkr_SKN Animation = UIWrkr_SKL.UIWrkr_CmBk_A1 AnimationMode = ONCE_BACKWARDS End ConditionState = RIDER1 MOVING CENTER_TO_RIGHT Model = UIWrkr_SKN Animation = UIWrkr_SKL.UIWrkr_CmBk_A2 AnimationMode = ONCE End ConditionState = RIDER1 MOVING RIGHT_TO_CENTER Model = UIWrkr_SKN Animation = UIWrkr_SKL.UIWrkr_CmBk_A2 AnimationMode = ONCE_BACKWARDS End ;Rebel animations ;----------------------- ConditionState = RIDER2 Model = UIRGrd_SKN Animation = UIRGrd_SKL.UIRGrd_CmBk_A5 AnimationMode = LOOP End ConditionState = RIDER2 MOVING Model = UIRGrd_SKN Animation = UIRGrd_SKL.UIRGrd_CmBk_A4 AnimationMode = LOOP End ConditionState = RIDER2 MOVING CENTER_TO_LEFT Model = UIRGrd_SKN Animation = UIRGrd_SKL.UIRGrd_CmBk_A1 AnimationMode = ONCE End ConditionState = RIDER2 MOVING LEFT_TO_CENTER Model = UIRGrd_SKN Animation = UIRGrd_SKL.UIRGrd_CmBk_A1 AnimationMode = ONCE_BACKWARDS End ConditionState = RIDER2 MOVING CENTER_TO_RIGHT Model = UIRGrd_SKN Animation = UIRGrd_SKL.UIRGrd_CmBk_A2 AnimationMode = ONCE End ConditionState = RIDER2 MOVING RIGHT_TO_CENTER Model = UIRGrd_SKN Animation = UIRGrd_SKL.UIRGrd_CmBk_A2 AnimationMode = ONCE_BACKWARDS End ;RPG Trooper animations ;----------------------- ConditionState = RIDER3 Model = UITunF_SKN2 Animation = UITunF_SKL.UITunF_CmBk_A5 AnimationMode = LOOP End ConditionState = RIDER3 MOVING Model = UITunF_SKN2 Animation = UITunF_SKL.UITunF_CmBk_A4 AnimationMode = LOOP End ConditionState = RIDER3 MOVING CENTER_TO_LEFT Model = UITunF_SKN2 Animation = UITunF_SKL.UITunF_CmBk_A1 AnimationMode = ONCE End ConditionState = RIDER3 MOVING LEFT_TO_CENTER Model = UITunF_SKN2 Animation = UITunF_SKL.UITunF_CmBk_A1 AnimationMode = ONCE_BACKWARDS End ConditionState = RIDER3 MOVING CENTER_TO_RIGHT Model = UITunF_SKN2 Animation = UITunF_SKL.UITunF_CmBk_A2 AnimationMode = ONCE End ConditionState = RIDER3 MOVING RIGHT_TO_CENTER Model = UITunF_SKN2 Animation = UITunF_SKL.UITunF_CmBk_A2 AnimationMode = ONCE_BACKWARDS End ;Jarmen Kell animations ;----------------------- ConditionState = RIDER4 Model = UIHERO_SKN Animation = UIHERO_SKL.UIHERO_CmBk_A5 AnimationMode = LOOP End ConditionState = RIDER4 MOVING Model = UIHERO_SKN Animation = UIHERO_SKL.UIHERO_CmBk_A4 AnimationMode = LOOP End ConditionState = RIDER4 MOVING CENTER_TO_LEFT Model = UIHERO_SKN Animation = UIHERO_SKL.UIHERO_CmBk_A1 AnimationMode = ONCE End ConditionState = RIDER4 MOVING LEFT_TO_CENTER Model = UIHERO_SKN Animation = UIHERO_SKL.UIHERO_CmBk_A1 AnimationMode = ONCE_BACKWARDS End ConditionState = RIDER4 MOVING CENTER_TO_RIGHT Model = UIHERO_SKN Animation = UIHERO_SKL.UIHERO_CmBk_A2 AnimationMode = ONCE End ConditionState = RIDER4 MOVING RIGHT_TO_CENTER Model = UIHERO_SKN Animation = UIHERO_SKL.UIHERO_CmBk_A2 AnimationMode = ONCE_BACKWARDS End ;Terrorist animations ;----------------------- ConditionState = RIDER5 Model = UITer_Local_SKN Animation = UITer_Local_SKL.UITER_Local_A5 AnimationMode = LOOP End ConditionState = RIDER5 MOVING Model = UITer_Local_SKN Animation = UITer_Local_SKL.UITER_Local_A4 AnimationMode = LOOP End ConditionState = RIDER5 MOVING CENTER_TO_LEFT Model = UITer_Local_SKN Animation = UITer_Local_SKL.UITER_Local_A1 AnimationMode = ONCE End ConditionState = RIDER5 MOVING LEFT_TO_CENTER Model = UITer_Local_SKN Animation = UITer_Local_SKL.UITER_Local_A1 AnimationMode = ONCE_BACKWARDS End ConditionState = RIDER5 MOVING CENTER_TO_RIGHT Model = UITer_Local_SKN Animation = UITer_Local_SKL.UITER_Local_A2 AnimationMode = ONCE End ConditionState = RIDER5 MOVING RIGHT_TO_CENTER Model = UITer_Local_SKN Animation = UITer_Local_SKL.UITER_Local_A2 AnimationMode = ONCE_BACKWARDS End ;Hijacker animations ;----------------------- ConditionState = RIDER6 Model = UIHJCK_SKN Animation = UIHJCK_SKL.UIHJACK_CmBk_A5 AnimationMode = LOOP End ConditionState = RIDER6 MOVING Model = UIHJCK_SKN Animation = UIHJCK_SKL.UIHJACK_CmBk_A4 AnimationMode = LOOP End ConditionState = RIDER6 MOVING CENTER_TO_LEFT Model = UIHJCK_SKN Animation = UIHJCK_SKL.UIHJACK_CmBk_A1 AnimationMode = ONCE End ConditionState = RIDER6 MOVING LEFT_TO_CENTER Model = UIHJCK_SKN Animation = UIHJCK_SKL.UIHJACK_CmBk_A1 AnimationMode = ONCE_BACKWARDS End ConditionState = RIDER6 MOVING CENTER_TO_RIGHT Model = UIHJCK_SKN Animation = UIHJCK_SKL.UIHJACK_CmBk_A2 AnimationMode = ONCE End ConditionState = RIDER6 MOVING RIGHT_TO_CENTER Model = UIHJCK_SKN Animation = UIHJCK_SKL.UIHJACK_CmBk_A2 AnimationMode = ONCE_BACKWARDS End ;Saboteur animations ;----------------------- ConditionState = RIDER7 Model = UISabotr_SKN Animation = UIWrkr_SKL.UIWrkr_CmBk_A5 AnimationMode = LOOP End ConditionState = RIDER7 MOVING Model = UISabotr_SKN Animation = UIWrkr_SKL.UIWrkr_CmBk_A4 AnimationMode = LOOP End ConditionState = RIDER7 MOVING CENTER_TO_LEFT Model = UISabotr_SKN Animation = UIWrkr_SKL.UIWrkr_CmBk_A1 AnimationMode = ONCE End ConditionState = RIDER7 MOVING LEFT_TO_CENTER Model = UISabotr_SKN Animation = UIWrkr_SKL.UIWrkr_CmBk_A1 AnimationMode = ONCE_BACKWARDS End ConditionState = RIDER7 MOVING CENTER_TO_RIGHT Model = UISabotr_SKN Animation = UIWrkr_SKL.UIWrkr_CmBk_A2 AnimationMode = ONCE End ConditionState = RIDER7 MOVING RIGHT_TO_CENTER Model = UISabotr_SKN Animation = UIWrkr_SKL.UIWrkr_CmBk_A2 AnimationMode = ONCE_BACKWARDS End ConditionState = TOPPLED Model = None End AliasConditionState TOPPLED MOVING End ; ***DESIGN parameters *** DisplayName = OBJECT:CombatBike Side = GLA EditorSorting = VEHICLE TransportSlotCount = 1 ;how many "slots" we take in a transport (0 == not transportable) WeaponSet Conditions = None Weapon = PRIMARY NONE End WeaponSet Conditions = WEAPON_RIDER2 Weapon = PRIMARY GLARebelBikerMachineGun End WeaponSet Conditions = WEAPON_RIDER3 Weapon = PRIMARY TunnelDefenderBikerRocketWeapon End WeaponSet Conditions = WEAPON_RIDER4 Weapon = PRIMARY GLABikerKellSniperRifle Weapon = SECONDARY GLAJarmenKellVehiclePilotSniperRifle AutoChooseSources = SECONDARY NONE End WeaponSet ;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. Conditions = WEAPON_RIDER5 Weapon = PRIMARY TerroristSuicideWeapon End ArmorSet Conditions = None Armor = TruckArmor DamageFX = TankDamageFX End BuildCost = 500 BuildTime = 4.0 ;in seconds VisionRange = 180 ShroudClearingRange = 300 Prerequisites Object = GLAArmsDealer 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 = GLAVehicleCombatBikeCommandSet ****COMMANDSET is overwritten in RiderChangeContain! ; *** AUDIO Parameters *** VoiceSelect = CombatCycleVoiceSelect VoiceMove = CombatCycleVoiceMove VoiceAttack = CombatCycleVoiceAttack SoundMoveStart = CombatBikeMoveStart SoundMoveStartDamaged = CombatBikeMoveStart VoiceGuard = CombatCycleVoiceMove SoundEnter = CombatCycleSwitchRider UnitSpecificSounds ; These have the syntax of SomeNameSomewhereInCode = SomeNameSomewhereInLookupINIs VoiceCreate = CombatCycleVoiceCreate TurretMoveStart = NoSound TurretMoveLoop = TurretMoveLoop ; Required for the W3DTruckDraw module TruckLandingSound = RocketBuggyLand TruckPowerslideSound = CombatBikeMoveStart VoiceCrush = CombatCycleVoiceMove VoiceEnter = CombatCycleVoiceMove 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 CLIFF_JUMPER Body = ActiveBody ModuleTag_02 MaxHealth = 100 InitialHealth = 100 ; Subdual damage "Subdues" you (reaction defined by BodyModule) when it passes your max health. ; The cap limits how extra-subdued you can be, and the other numbers detemine how fast it drains away on its own. SubdualDamageCap = 200 SubdualDamageHealRate = 500 SubdualDamageHealAmount = 50 End Behavior = AIUpdateInterface ModuleTag_03 Turret TurretTurnRate = 0 ; turn rate, in degrees per sec NaturalTurretAngle = 0 ControlledWeaponSlots = PRIMARY SECONDARY End AutoAcquireEnemiesWhenIdle = No End Locomotor = SET_NORMAL CombatBikeGroundLocomotor CombatBikeCliffLocomotor Locomotor = SET_SLUGGISH CombatBikeTerroristGroundLocomotor CombatBikeTerroristCliffLocomotor Behavior = PhysicsBehavior ModuleTag_04 Mass = 15.0 End Behavior = SlowDeathBehavior DeathTag_04 ExemptStatus = STATUS_RIDER1 STATUS_RIDER2 STATUS_RIDER3 STATUS_RIDER4 STATUS_RIDER5 STATUS_RIDER6 STATUS_RIDER7 DeathTypes = ALL -CRUSHED -SPLATTED -TOPPLED DestructionDelay = 0 FX = INITIAL FX_BuggyNewDeathExplosion OCL = FINAL OCL_CombatBikeAirDeathStart End Behavior = SlowDeathBehavior DeathTag_05 RequiredStatus = STATUS_RIDER1 DeathTypes = ALL -CRUSHED -SPLATTED -TOPPLED DestructionDelay = 0 FX = INITIAL FX_BuggyNewDeathExplosion OCL = INITIAL OCL_WorkerFlyingOffBikeDeathStart OCL = FINAL OCL_CombatBikeAirDeathStart End Behavior = SlowDeathBehavior DeathTag_06 RequiredStatus = STATUS_RIDER2 DeathTypes = ALL -CRUSHED -SPLATTED -TOPPLED DestructionDelay = 0 FX = INITIAL FX_BuggyNewDeathExplosion OCL = INITIAL OCL_RebelFlyingOffBikeDeathStart OCL = FINAL OCL_CombatBikeAirDeathStart End Behavior = SlowDeathBehavior DeathTag_07 RequiredStatus = STATUS_RIDER3 DeathTypes = ALL -CRUSHED -SPLATTED -TOPPLED DestructionDelay = 0 FX = INITIAL FX_BuggyNewDeathExplosion OCL = INITIAL OCL_TunnelDefenderFlyingOffBikeDeathStart OCL = FINAL OCL_CombatBikeAirDeathStart End Behavior = SlowDeathBehavior DeathTag_08 RequiredStatus = STATUS_RIDER4 DeathTypes = ALL -CRUSHED -SPLATTED -TOPPLED DestructionDelay = 0 FX = INITIAL FX_BuggyNewDeathExplosion OCL = INITIAL OCL_JarmenKellFlyingOffBikeDeathStart OCL = FINAL OCL_CombatBikeAirDeathStart End Behavior = SlowDeathBehavior DeathTag_09 RequiredStatus = STATUS_RIDER5 DeathTypes = ALL -CRUSHED -SPLATTED -TOPPLED DestructionDelay = 0 FX = INITIAL FX_BuggyNewDeathExplosion OCL = INITIAL OCL_TerroristFlyingOffBikeDeathStart OCL = FINAL OCL_CombatBikeAirDeathStart End Behavior = SlowDeathBehavior DeathTag_10 RequiredStatus = STATUS_RIDER6 DeathTypes = ALL -CRUSHED -SPLATTED -TOPPLED DestructionDelay = 0 FX = INITIAL FX_BuggyNewDeathExplosion OCL = INITIAL OCL_HijackerFlyingOffBikeDeathStart OCL = FINAL OCL_CombatBikeAirDeathStart End Behavior = SlowDeathBehavior DeathTag_11 RequiredStatus = STATUS_RIDER7 DeathTypes = ALL -CRUSHED -SPLATTED -TOPPLED DestructionDelay = 0 FX = INITIAL FX_BuggyNewDeathExplosion OCL = INITIAL OCL_SaboteurFlyingOffBikeDeathStart OCL = FINAL OCL_CombatBikeAirDeathStart End Behavior = AutoHealBehavior ModuleTag_08 HealingAmount = 2 HealingDelay = 1000 ; msec TriggeredBy = Upgrade_GLAJunkRepair End Behavior = WeaponSetUpgrade ModuleTag_09 TriggeredBy = Upgrade_GLABuggyAmmo End ;Create the hulk after the toppling is complete (not killed until topple anim finished). Behavior = CreateObjectDie ModuleTag_10 DeathTypes = NONE +TOPPLED CreationList = OCL_CombatBike_ToppledHulk End Behavior = DestroyDie ModuleTag_11 DeathTypes = NONE +CRUSHED +SPLATTED +TOPPLED 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 = TransitionDamageFX ModuleTag_15 ReallyDamagedParticleSystem1 = Bone:Smoke RandomBone:Yes PSys:SmallLightSmokeColumn ReallyDamagedFXList1 = Loc: X:0 Y:0 Z:0 FXList:FX_BattleMasterDamageTransition End Behavior = RiderChangeContain ModuleTag_16 ;A list of each valid rider that is allowed to ride this object. Each rider is ;assigned a modelcondition state, a weaponset flag, an object status bit, and ;a commandset override. The actual object is hidden inside the container so the ;visible rider is fluff. Also riders are deleted (not killed) when the bike is ;destroyed, so all deaths must be OCLs on the bike. Rider1 = GLAInfantryWorker RIDER1 WEAPON_RIDER1 STATUS_RIDER1 GLAVehicleCombatBikeDefaultCommandSet SET_NORMAL Rider2 = GLAInfantryRebel RIDER2 WEAPON_RIDER2 STATUS_RIDER2 GLAVehicleCombatBikeDefaultCommandSet SET_NORMAL Rider3 = GLAInfantryTunnelDefender RIDER3 WEAPON_RIDER3 STATUS_RIDER3 GLAVehicleCombatBikeDefaultCommandSet SET_NORMAL Rider4 = GLAInfantryJarmenKell RIDER4 WEAPON_RIDER4 STATUS_RIDER4 GLAVehicleCombatBikeJarmenKellCommandSet SET_NORMAL Rider5 = GLAInfantryTerrorist RIDER5 WEAPON_RIDER5 STATUS_RIDER5 GLAVehicleCombatBikeDefaultCommandSet SET_SLUGGISH Rider6 = GLAInfantryHijacker RIDER6 WEAPON_RIDER6 STATUS_RIDER6 GLAVehicleCombatBikeDefaultCommandSet SET_NORMAL Rider7 = GLAInfantrySaboteur RIDER7 WEAPON_RIDER7 STATUS_RIDER7 GLAVehicleCombatBikeDefaultCommandSet SET_NORMAL ScuttleDelay = 1500 ScuttleStatus = TOPPLED ;Standard TransportContain stuff Slots = 1 InitialPayload = GLAInfantryRebel 1 ScatterNearbyOnExit = No HealthRegen%PerSec = 0 DamagePercentToUnits = 100% ; This module will Delete the rider on death, but we need to kill him as well so he doesn't pick up the bike's salvage crate. BurnedDeathToUnits = No ; And no Burned death. AllowInsideKindOf = INFANTRY ExitDelay = 250 NumberOfExitPaths = 1 ; 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 DoorOpenTime = 0 End Behavior = AnimationSteeringUpdate ModuleTag_17 MinTransitionTime = 300 End Behavior = FireWeaponWhenDeadBehavior ModuleTag_Death18 RequiredStatus = STATUS_RIDER5 DeathWeapon = SuicideBikeBomb StartsActive = Yes DeathTypes = NONE +SUICIDED +CRUSHED +SPLATTED +LASERED +BURNED +EXPLODED End Behavior = StealthUpdate ModuleTag_19 UseRiderStealth = Yes ;StealthDelay = 2000 ; msec ;StealthForbiddenConditions = ATTACKING ;InnateStealth = Yes ;OrderIdleEnemiesToAttackMeUponReveal = Yes 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 ModuleDieSoundTag_22 DeathTypes = ALL -TOPPLED ; Not if we are "dying" by being abandoned by our human. Nobody left to scream DeathFX = FX_CombatCycleDie End Behavior = FXListDie ModuleDieSoundTag_23 DeathTypes = NONE +TOPPLED DeathFX = FX_CombatCycleDieNoScream End Geometry = BOX GeometryMajorRadius = 11.0 GeometryMinorRadius = 2.5 GeometryHeight = 7.5 GeometryIsSmall = Yes Shadow = SHADOW_VOLUME ShadowSizeX = 45 ; minimum elevation angle above horizon. Used to limit shadow length End ;------------------------------------------------------------------------------ ;GLA Combat Bike with Tunnel Defender Object GLAVehicleCombatBikeRocket ; *** ART Parameters *** SelectPortrait = SUComBike_L ButtonImage = SUComBike UpgradeCameo1 = Upgrade_GLAJunkRepair ;UpgradeCameo2 = NONE ;UpgradeCameo3 = NONE ;UpgradeCameo4 = NONE ;UpgradeCameo5 = NONE Draw = W3DTruckDraw ModuleTag_01 OkToChangeModelColor = Yes ;Normal Bike ;------------------------------ DefaultConditionState Model = UVComBike WeaponFireFXBone = PRIMARY Muzzle_B WeaponLaunchBone = PRIMARY RocketFX03 WeaponMuzzleFlash = PRIMARY MuzzleFX_B ParticleSysBone = SMOKE CombatBikeSmokeLight End AliasConditionState RIDER1 AliasConditionState RIDER1 MOVING AliasConditionState RIDER5 AliasConditionState RIDER5 MOVING AliasConditionState RIDER6 AliasConditionState RIDER6 MOVING AliasConditionState RIDER7 AliasConditionState RIDER7 MOVING ConditionState = REALLYDAMAGED Model = UVComBike_d End AliasConditionState RIDER1 REALLYDAMAGED AliasConditionState RIDER1 MOVING REALLYDAMAGED AliasConditionState RIDER5 REALLYDAMAGED AliasConditionState RIDER5 MOVING REALLYDAMAGED AliasConditionState RIDER6 REALLYDAMAGED AliasConditionState RIDER6 MOVING REALLYDAMAGED AliasConditionState RIDER7 REALLYDAMAGED AliasConditionState RIDER7 MOVING REALLYDAMAGED ConditionState = TOPPLED Model = UVComBike Animation = UVComBike_F.UVComBike_F AnimationMode = ONCE End ConditionState = TOPPLED REALLYDAMAGED Model = UVComBike_d Animation = UVComBike_F.UVComBike_F AnimationMode = ONCE End ConditionState = RIDER1 MOVING CENTER_TO_LEFT Model = UVComBike Animation = UVComBike_A1.UVComBike_A1 AnimationMode = ONCE ParticleSysBone = SMOKE CombatBikeSmokeHeavy End AliasConditionState RIDER5 MOVING CENTER_TO_LEFT AliasConditionState RIDER6 MOVING CENTER_TO_LEFT AliasConditionState RIDER7 MOVING CENTER_TO_LEFT ConditionState = RIDER1 MOVING CENTER_TO_LEFT REALLYDAMAGED Model = UVComBike_d Animation = UVComBike_A1.UVComBike_A1 AnimationMode = ONCE ParticleSysBone = SMOKE CombatBikeSmokeHeavy End AliasConditionState RIDER5 MOVING CENTER_TO_LEFT REALLYDAMAGED AliasConditionState RIDER6 MOVING CENTER_TO_LEFT REALLYDAMAGED AliasConditionState RIDER7 MOVING CENTER_TO_LEFT REALLYDAMAGED ConditionState = RIDER1 MOVING LEFT_TO_CENTER Model = UVComBike Animation = UVComBike_A1.UVComBike_A1 AnimationMode = ONCE_BACKWARDS ParticleSysBone = SMOKE CombatBikeSmokeHeavy End AliasConditionState RIDER5 MOVING LEFT_TO_CENTER AliasConditionState RIDER6 MOVING LEFT_TO_CENTER AliasConditionState RIDER7 MOVING LEFT_TO_CENTER ConditionState = RIDER1 MOVING LEFT_TO_CENTER REALLYDAMAGED Model = UVComBike_d Animation = UVComBike_A1.UVComBike_A1 AnimationMode = ONCE_BACKWARDS ParticleSysBone = SMOKE CombatBikeSmokeHeavy End AliasConditionState RIDER5 MOVING LEFT_TO_CENTER REALLYDAMAGED AliasConditionState RIDER6 MOVING LEFT_TO_CENTER REALLYDAMAGED AliasConditionState RIDER7 MOVING LEFT_TO_CENTER REALLYDAMAGED ConditionState = RIDER1 MOVING CENTER_TO_RIGHT Model = UVComBike Animation = UVComBike_A2.UVComBike_A2 AnimationMode = ONCE ParticleSysBone = SMOKE CombatBikeSmokeHeavy End AliasConditionState RIDER5 MOVING CENTER_TO_RIGHT AliasConditionState RIDER6 MOVING CENTER_TO_RIGHT AliasConditionState RIDER7 MOVING CENTER_TO_RIGHT ConditionState = RIDER1 MOVING CENTER_TO_RIGHT REALLYDAMAGED Model = UVComBike_d Animation = UVComBike_A2.UVComBike_A2 AnimationMode = ONCE ParticleSysBone = SMOKE CombatBikeSmokeHeavy End AliasConditionState RIDER5 MOVING CENTER_TO_RIGHT REALLYDAMAGED AliasConditionState RIDER6 MOVING CENTER_TO_RIGHT REALLYDAMAGED AliasConditionState RIDER7 MOVING CENTER_TO_RIGHT REALLYDAMAGED ConditionState = RIDER1 MOVING RIGHT_TO_CENTER Model = UVComBike Animation = UVComBike_A2.UVComBike_A2 AnimationMode = ONCE_BACKWARDS ParticleSysBone = SMOKE CombatBikeSmokeHeavy End AliasConditionState RIDER5 MOVING RIGHT_TO_CENTER AliasConditionState RIDER6 MOVING RIGHT_TO_CENTER AliasConditionState RIDER7 MOVING RIGHT_TO_CENTER ConditionState = RIDER1 MOVING RIGHT_TO_CENTER REALLYDAMAGED Model = UVComBike_d Animation = UVComBike_A2.UVComBike_A2 AnimationMode = ONCE_BACKWARDS ParticleSysBone = SMOKE CombatBikeSmokeHeavy End AliasConditionState RIDER5 MOVING RIGHT_TO_CENTER REALLYDAMAGED AliasConditionState RIDER6 MOVING RIGHT_TO_CENTER REALLYDAMAGED AliasConditionState RIDER7 MOVING RIGHT_TO_CENTER REALLYDAMAGED ;Gun Bike ;------------------------------ ConditionState = RIDER2 Model = UVComBikeG End AliasConditionState RIDER2 MOVING AliasConditionState RIDER4 AliasConditionState RIDER4 MOVING ConditionState = RIDER2 REALLYDAMAGED Model = UVComBikeG_d End AliasConditionState RIDER2 MOVING REALLYDAMAGED AliasConditionState RIDER4 REALLYDAMAGED AliasConditionState RIDER4 MOVING REALLYDAMAGED ConditionState = RIDER2 MOVING CENTER_TO_LEFT Model = UVComBikeG Animation = UVComBikeG_A1.UVComBikeG_A1 AnimationMode = ONCE ParticleSysBone = SMOKE CombatBikeSmokeHeavy End AliasConditionState RIDER4 MOVING CENTER_TO_LEFT ConditionState = RIDER2 MOVING CENTER_TO_LEFT REALLYDAMAGED Model = UVComBikeG_d Animation = UVComBikeG_A1.UVComBikeG_A1 AnimationMode = ONCE ParticleSysBone = SMOKE CombatBikeSmokeHeavy End AliasConditionState RIDER4 MOVING CENTER_TO_LEFT REALLYDAMAGED ConditionState = RIDER2 MOVING LEFT_TO_CENTER Model = UVComBikeG Animation = UVComBikeG_A1.UVComBikeG_A1 AnimationMode = ONCE_BACKWARDS ParticleSysBone = SMOKE CombatBikeSmokeHeavy End AliasConditionState RIDER4 MOVING LEFT_TO_CENTER ConditionState = RIDER2 MOVING LEFT_TO_CENTER REALLYDAMAGED Model = UVComBikeG_d Animation = UVComBikeG_A1.UVComBikeG_A1 AnimationMode = ONCE_BACKWARDS ParticleSysBone = SMOKE CombatBikeSmokeHeavy End AliasConditionState RIDER4 MOVING LEFT_TO_CENTER REALLYDAMAGED ConditionState = RIDER2 MOVING CENTER_TO_RIGHT Model = UVComBikeG Animation = UVComBikeG_A2.UVComBikeG_A2 AnimationMode = ONCE ParticleSysBone = SMOKE CombatBikeSmokeHeavy End AliasConditionState RIDER4 MOVING CENTER_TO_RIGHT ConditionState = RIDER2 MOVING CENTER_TO_RIGHT REALLYDAMAGED Model = UVComBikeG_d Animation = UVComBikeG_A2.UVComBikeG_A2 AnimationMode = ONCE ParticleSysBone = SMOKE CombatBikeSmokeHeavy End AliasConditionState RIDER4 MOVING CENTER_TO_RIGHT REALLYDAMAGED ConditionState = RIDER2 MOVING RIGHT_TO_CENTER Model = UVComBikeG Animation = UVComBikeG_A2.UVComBikeG_A2 AnimationMode = ONCE_BACKWARDS ParticleSysBone = SMOKE CombatBikeSmokeHeavy End AliasConditionState RIDER4 MOVING RIGHT_TO_CENTER ConditionState = RIDER2 MOVING RIGHT_TO_CENTER REALLYDAMAGED Model = UVComBikeG_d Animation = UVComBikeG_A2.UVComBikeG_A2 AnimationMode = ONCE_BACKWARDS ParticleSysBone = SMOKE CombatBikeSmokeHeavy End AliasConditionState RIDER4 MOVING RIGHT_TO_CENTER REALLYDAMAGED ;Missile Bike ;------------------------------ ConditionState = RIDER3 Model = UVComBikeTN End AliasConditionState RIDER3 MOVING ConditionState = RIDER3 REALLYDAMAGED Model = UVComBikeTN_d End AliasConditionState RIDER3 MOVING REALLYDAMAGED ConditionState = RIDER3 MOVING CENTER_TO_LEFT Model = UVComBikeTN Animation = UVComBikeTN_A1.UVComBikeTN_A1 AnimationMode = ONCE ParticleSysBone = SMOKE CombatBikeSmokeHeavy End ConditionState = RIDER3 MOVING CENTER_TO_LEFT REALLYDAMAGED Model = UVComBikeTN_d Animation = UVComBikeTN_A1.UVComBikeTN_A1 AnimationMode = ONCE ParticleSysBone = SMOKE CombatBikeSmokeHeavy End ConditionState = RIDER3 MOVING LEFT_TO_CENTER Model = UVComBikeTN Animation = UVComBikeTN_A1.UVComBikeTN_A1 AnimationMode = ONCE_BACKWARDS ParticleSysBone = SMOKE CombatBikeSmokeHeavy End ConditionState = RIDER3 MOVING LEFT_TO_CENTER REALLYDAMAGED Model = UVComBikeTN_d Animation = UVComBikeTN_A1.UVComBikeTN_A1 AnimationMode = ONCE_BACKWARDS ParticleSysBone = SMOKE CombatBikeSmokeHeavy End ConditionState = RIDER3 MOVING CENTER_TO_RIGHT Model = UVComBikeTN Animation = UVComBikeTN_A2.UVComBikeTN_A2 AnimationMode = ONCE ParticleSysBone = SMOKE CombatBikeSmokeHeavy End ConditionState = RIDER3 MOVING CENTER_TO_RIGHT REALLYDAMAGED Model = UVComBikeTN_d Animation = UVComBikeTN_A2.UVComBikeTN_A2 AnimationMode = ONCE ParticleSysBone = SMOKE CombatBikeSmokeHeavy End ConditionState = RIDER3 MOVING RIGHT_TO_CENTER Model = UVComBikeTN Animation = UVComBikeTN_A2.UVComBikeTN_A2 AnimationMode = ONCE_BACKWARDS ParticleSysBone = SMOKE CombatBikeSmokeHeavy End ConditionState = RIDER3 MOVING RIGHT_TO_CENTER REALLYDAMAGED Model = UVComBikeTN_d Animation = UVComBikeTN_A2.UVComBikeTN_A2 AnimationMode = ONCE_BACKWARDS ParticleSysBone = SMOKE CombatBikeSmokeHeavy End TrackMarks = EXTireTrack03.tga Dust = CombatBikeDust DirtSpray = CombatBikeDirtSpray PowerslideSpray = CombatBikeDirtPowerSlide ; These parameters are only used if the model has a separate suspension, ; and the locomotor has HasSuspension = Yes. LeftFrontTireBone = Tire01 LeftRearTireBone = Tire00 TireRotationMultiplier = 0.2 ; this * speed = rotation. PowerslideRotationAddition = 2.5 ; This speed is added to the rotation speed when powersliding. End Draw = W3DModelDraw ModuleTag_Rider01 OkToChangeModelColor = Yes DefaultConditionState ;************************************************** ;*** Must have a default model in order to see ;*** house color!!! ;************************************************** Model = UIWrkr_SKN ;WeaponFireFXBone = PRIMARY Muzzle ;WeaponLaunchBone = PRIMARY Muzzle WeaponMuzzleFlash = PRIMARY MuzzleFX End AliasConditionState MOVING ;Worker animations ;----------------------- ConditionState = RIDER1 Model = UIWrkr_SKN Animation = UIWrkr_SKL.UIWrkr_CmBk_A5 AnimationMode = LOOP End ConditionState = RIDER1 MOVING Model = UIWrkr_SKN Animation = UIWrkr_SKL.UIWrkr_CmBk_A4 AnimationMode = LOOP End ConditionState = RIDER1 MOVING CENTER_TO_LEFT Model = UIWrkr_SKN Animation = UIWrkr_SKL.UIWrkr_CmBk_A1 AnimationMode = ONCE End ConditionState = RIDER1 MOVING LEFT_TO_CENTER Model = UIWrkr_SKN Animation = UIWrkr_SKL.UIWrkr_CmBk_A1 AnimationMode = ONCE_BACKWARDS End ConditionState = RIDER1 MOVING CENTER_TO_RIGHT Model = UIWrkr_SKN Animation = UIWrkr_SKL.UIWrkr_CmBk_A2 AnimationMode = ONCE End ConditionState = RIDER1 MOVING RIGHT_TO_CENTER Model = UIWrkr_SKN Animation = UIWrkr_SKL.UIWrkr_CmBk_A2 AnimationMode = ONCE_BACKWARDS End ;Rebel animations ;----------------------- ConditionState = RIDER2 Model = UIRGrd_SKN Animation = UIRGrd_SKL.UIRGrd_CmBk_A5 AnimationMode = LOOP End ConditionState = RIDER2 MOVING Model = UIRGrd_SKN Animation = UIRGrd_SKL.UIRGrd_CmBk_A4 AnimationMode = LOOP End ConditionState = RIDER2 MOVING CENTER_TO_LEFT Model = UIRGrd_SKN Animation = UIRGrd_SKL.UIRGrd_CmBk_A1 AnimationMode = ONCE End ConditionState = RIDER2 MOVING LEFT_TO_CENTER Model = UIRGrd_SKN Animation = UIRGrd_SKL.UIRGrd_CmBk_A1 AnimationMode = ONCE_BACKWARDS End ConditionState = RIDER2 MOVING CENTER_TO_RIGHT Model = UIRGrd_SKN Animation = UIRGrd_SKL.UIRGrd_CmBk_A2 AnimationMode = ONCE End ConditionState = RIDER2 MOVING RIGHT_TO_CENTER Model = UIRGrd_SKN Animation = UIRGrd_SKL.UIRGrd_CmBk_A2 AnimationMode = ONCE_BACKWARDS End ;RPG Trooper animations ;----------------------- ConditionState = RIDER3 Model = UITunF_SKN2 Animation = UITunF_SKL.UITunF_CmBk_A5 AnimationMode = LOOP End ConditionState = RIDER3 MOVING Model = UITunF_SKN2 Animation = UITunF_SKL.UITunF_CmBk_A4 AnimationMode = LOOP End ConditionState = RIDER3 MOVING CENTER_TO_LEFT Model = UITunF_SKN2 Animation = UITunF_SKL.UITunF_CmBk_A1 AnimationMode = ONCE End ConditionState = RIDER3 MOVING LEFT_TO_CENTER Model = UITunF_SKN2 Animation = UITunF_SKL.UITunF_CmBk_A1 AnimationMode = ONCE_BACKWARDS End ConditionState = RIDER3 MOVING CENTER_TO_RIGHT Model = UITunF_SKN2 Animation = UITunF_SKL.UITunF_CmBk_A2 AnimationMode = ONCE End ConditionState = RIDER3 MOVING RIGHT_TO_CENTER Model = UITunF_SKN2 Animation = UITunF_SKL.UITunF_CmBk_A2 AnimationMode = ONCE_BACKWARDS End ;Jarmen Kell animations ;----------------------- ConditionState = RIDER4 Model = UIHERO_SKN Animation = UIHERO_SKL.UIHERO_CmBk_A5 AnimationMode = LOOP End ConditionState = RIDER4 MOVING Model = UIHERO_SKN Animation = UIHERO_SKL.UIHERO_CmBk_A4 AnimationMode = LOOP End ConditionState = RIDER4 MOVING CENTER_TO_LEFT Model = UIHERO_SKN Animation = UIHERO_SKL.UIHERO_CmBk_A1 AnimationMode = ONCE End ConditionState = RIDER4 MOVING LEFT_TO_CENTER Model = UIHERO_SKN Animation = UIHERO_SKL.UIHERO_CmBk_A1 AnimationMode = ONCE_BACKWARDS End ConditionState = RIDER4 MOVING CENTER_TO_RIGHT Model = UIHERO_SKN Animation = UIHERO_SKL.UIHERO_CmBk_A2 AnimationMode = ONCE End ConditionState = RIDER4 MOVING RIGHT_TO_CENTER Model = UIHERO_SKN Animation = UIHERO_SKL.UIHERO_CmBk_A2 AnimationMode = ONCE_BACKWARDS End ;Terrorist animations ;----------------------- ConditionState = RIDER5 Model = UITRST_SKN Animation = UITRST_SKL.UITER_CmBk_A5 AnimationMode = LOOP End ConditionState = RIDER5 MOVING Model = UITRST_SKN Animation = UITRST_SKL.UITER_CmBk_A4 AnimationMode = LOOP End ConditionState = RIDER5 MOVING CENTER_TO_LEFT Model = UITRST_SKN Animation = UITRST_SKL.UITER_CmBk_A1 AnimationMode = ONCE End ConditionState = RIDER5 MOVING LEFT_TO_CENTER Model = UITRST_SKN Animation = UITRST_SKL.UITER_CmBk_A1 AnimationMode = ONCE_BACKWARDS End ConditionState = RIDER5 MOVING CENTER_TO_RIGHT Model = UITRST_SKN Animation = UITRST_SKL.UITER_CmBk_A2 AnimationMode = ONCE End ConditionState = RIDER5 MOVING RIGHT_TO_CENTER Model = UITRST_SKN Animation = UITRST_SKL.UITER_CmBk_A2 AnimationMode = ONCE_BACKWARDS End ;Hijacker animations ;----------------------- ConditionState = RIDER6 Model = UIHJCK_SKN Animation = UIHJCK_SKL.UIHJACK_CmBk_A5 AnimationMode = LOOP End ConditionState = RIDER6 MOVING Model = UIHJCK_SKN Animation = UIHJCK_SKL.UIHJACK_CmBk_A4 AnimationMode = LOOP End ConditionState = RIDER6 MOVING CENTER_TO_LEFT Model = UIHJCK_SKN Animation = UIHJCK_SKL.UIHJACK_CmBk_A1 AnimationMode = ONCE End ConditionState = RIDER6 MOVING LEFT_TO_CENTER Model = UIHJCK_SKN Animation = UIHJCK_SKL.UIHJACK_CmBk_A1 AnimationMode = ONCE_BACKWARDS End ConditionState = RIDER6 MOVING CENTER_TO_RIGHT Model = UIHJCK_SKN Animation = UIHJCK_SKL.UIHJACK_CmBk_A2 AnimationMode = ONCE End ConditionState = RIDER6 MOVING RIGHT_TO_CENTER Model = UIHJCK_SKN Animation = UIHJCK_SKL.UIHJACK_CmBk_A2 AnimationMode = ONCE_BACKWARDS End ;Saboteur animations ;----------------------- ConditionState = RIDER7 Model = UISabotr_SKN Animation = UIWrkr_SKL.UIWrkr_CmBk_A5 AnimationMode = LOOP End ConditionState = RIDER7 MOVING Model = UISabotr_SKN Animation = UIWrkr_SKL.UIWrkr_CmBk_A4 AnimationMode = LOOP End ConditionState = RIDER7 MOVING CENTER_TO_LEFT Model = UISabotr_SKN Animation = UIWrkr_SKL.UIWrkr_CmBk_A1 AnimationMode = ONCE End ConditionState = RIDER7 MOVING LEFT_TO_CENTER Model = UISabotr_SKN Animation = UIWrkr_SKL.UIWrkr_CmBk_A1 AnimationMode = ONCE_BACKWARDS End ConditionState = RIDER7 MOVING CENTER_TO_RIGHT Model = UISabotr_SKN Animation = UIWrkr_SKL.UIWrkr_CmBk_A2 AnimationMode = ONCE End ConditionState = RIDER7 MOVING RIGHT_TO_CENTER Model = UISabotr_SKN Animation = UIWrkr_SKL.UIWrkr_CmBk_A2 AnimationMode = ONCE_BACKWARDS End ConditionState = TOPPLED Model = None End AliasConditionState TOPPLED MOVING End ; ***DESIGN parameters *** DisplayName = OBJECT:CombatBike Side = GLA EditorSorting = VEHICLE TransportSlotCount = 1 ;how many "slots" we take in a transport (0 == not transportable) WeaponSet Conditions = None Weapon = PRIMARY NONE End WeaponSet Conditions = WEAPON_RIDER2 Weapon = PRIMARY GLARebelBikerMachineGun End WeaponSet Conditions = WEAPON_RIDER3 Weapon = PRIMARY TunnelDefenderBikerRocketWeapon End WeaponSet Conditions = WEAPON_RIDER4 Weapon = PRIMARY GLABikerKellSniperRifle Weapon = SECONDARY GLAJarmenKellVehiclePilotSniperRifle AutoChooseSources = SECONDARY NONE End WeaponSet ;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. Conditions = WEAPON_RIDER5 Weapon = PRIMARY TerroristSuicideWeapon End ArmorSet Conditions = None Armor = TruckArmor DamageFX = TankDamageFX End BuildCost = 500 BuildTime = 8.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 = GLAVehicleCombatBikeCommandSet ; *** AUDIO Parameters *** VoiceSelect = CombatCycleVoiceSelect VoiceMove = CombatCycleVoiceMove VoiceAttack = CombatCycleVoiceAttack SoundMoveStart = CombatBikeMoveStart SoundMoveStartDamaged = CombatBikeMoveStart VoiceGuard = CombatCycleVoiceMove UnitSpecificSounds ; These have the syntax of SomeNameSomewhereInCode = SomeNameSomewhereInLookupINIs VoiceCreate = RocketBuggyVoiceCreate TurretMoveStart = NoSound TurretMoveLoop = TurretMoveLoop ; Required for the W3DTruckDraw module TruckLandingSound = RocketBuggyLand TruckPowerslideSound = CombatBikeMoveStart VoiceCrush = CombatCycleVoiceMove VoiceEnter = CombatCycleVoiceMove 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 CLIFF_JUMPER Body = ActiveBody ModuleTag_02 MaxHealth = 100 InitialHealth = 100 ; Subdual damage "Subdues" you (reaction defined by BodyModule) when it passes your max health. ; The cap limits how extra-subdued you can be, and the other numbers detemine how fast it drains away on its own. SubdualDamageCap = 200 SubdualDamageHealRate = 500 SubdualDamageHealAmount = 50 End Behavior = AIUpdateInterface ModuleTag_03 Turret TurretTurnRate = 0 ; turn rate, in degrees per sec NaturalTurretAngle = 0 ControlledWeaponSlots = PRIMARY SECONDARY End AutoAcquireEnemiesWhenIdle = No End Locomotor = SET_NORMAL CombatBikeGroundLocomotor CombatBikeCliffLocomotor Locomotor = SET_SLUGGISH CombatBikeTerroristGroundLocomotor CombatBikeTerroristCliffLocomotor Behavior = PhysicsBehavior ModuleTag_04 Mass = 15.0 End Behavior = SlowDeathBehavior DeathTag_04 ExemptStatus = STATUS_RIDER1 STATUS_RIDER2 STATUS_RIDER3 STATUS_RIDER4 STATUS_RIDER5 STATUS_RIDER6 STATUS_RIDER7 DeathTypes = ALL -CRUSHED -SPLATTED -TOPPLED DestructionDelay = 0 FX = INITIAL FX_BuggyNewDeathExplosion OCL = FINAL OCL_CombatBikeAirDeathStart End Behavior = SlowDeathBehavior DeathTag_05 RequiredStatus = STATUS_RIDER1 DeathTypes = ALL -CRUSHED -SPLATTED -TOPPLED DestructionDelay = 0 FX = INITIAL FX_BuggyNewDeathExplosion OCL = INITIAL OCL_WorkerFlyingOffBikeDeathStart OCL = FINAL OCL_CombatBikeAirDeathStart End Behavior = SlowDeathBehavior DeathTag_06 RequiredStatus = STATUS_RIDER2 DeathTypes = ALL -CRUSHED -SPLATTED -TOPPLED DestructionDelay = 0 FX = INITIAL FX_BuggyNewDeathExplosion OCL = INITIAL OCL_RebelFlyingOffBikeDeathStart OCL = FINAL OCL_CombatBikeAirDeathStart End Behavior = SlowDeathBehavior DeathTag_07 RequiredStatus = STATUS_RIDER3 DeathTypes = ALL -CRUSHED -SPLATTED -TOPPLED DestructionDelay = 0 FX = INITIAL FX_BuggyNewDeathExplosion OCL = INITIAL OCL_TunnelDefenderFlyingOffBikeDeathStart OCL = FINAL OCL_CombatBikeAirDeathStart End Behavior = SlowDeathBehavior DeathTag_08 RequiredStatus = STATUS_RIDER4 DeathTypes = ALL -CRUSHED -SPLATTED -TOPPLED DestructionDelay = 0 FX = INITIAL FX_BuggyNewDeathExplosion OCL = INITIAL OCL_JarmenKellFlyingOffBikeDeathStart OCL = FINAL OCL_CombatBikeAirDeathStart End Behavior = SlowDeathBehavior DeathTag_09 RequiredStatus = STATUS_RIDER5 DeathTypes = ALL -CRUSHED -SPLATTED -TOPPLED DestructionDelay = 0 FX = INITIAL FX_BuggyNewDeathExplosion OCL = INITIAL OCL_TerroristFlyingOffBikeDeathStart OCL = FINAL OCL_CombatBikeAirDeathStart End Behavior = SlowDeathBehavior DeathTag_10 RequiredStatus = STATUS_RIDER6 DeathTypes = ALL -CRUSHED -SPLATTED -TOPPLED DestructionDelay = 0 FX = INITIAL FX_BuggyNewDeathExplosion OCL = INITIAL OCL_HijackerFlyingOffBikeDeathStart OCL = FINAL OCL_CombatBikeAirDeathStart End Behavior = AutoHealBehavior ModuleTag_08 HealingAmount = 2 HealingDelay = 1000 ; msec TriggeredBy = Upgrade_GLAJunkRepair End Behavior = WeaponSetUpgrade ModuleTag_09 TriggeredBy = Upgrade_GLABuggyAmmo End ;Create the hulk after the toppling is complete (not killed until topple anim finished). Behavior = CreateObjectDie ModuleTag_10 DeathTypes = NONE +TOPPLED CreationList = OCL_CombatBike_ToppledHulk End Behavior = DestroyDie ModuleTag_11 DeathTypes = NONE +CRUSHED +SPLATTED +TOPPLED 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 = TransitionDamageFX ModuleTag_15 ReallyDamagedParticleSystem1 = Bone:Smoke RandomBone:Yes PSys:SmallLightSmokeColumn ReallyDamagedFXList1 = Loc: X:0 Y:0 Z:0 FXList:FX_BattleMasterDamageTransition End Behavior = RiderChangeContain ModuleTag_16 ;A list of each valid rider that is allowed to ride this object. Each rider is ;assigned a modelcondition state, a weaponset flag, an object status bit, and ;a commandset override. The actual object is hidden inside the container so the ;visible rider is fluff. Also riders are deleted (not killed) when the bike is ;destroyed, so all deaths must be OCLs on the bike. Rider1 = GLAInfantryWorker RIDER1 WEAPON_RIDER1 STATUS_RIDER1 GLAVehicleCombatBikeDefaultCommandSet SET_NORMAL Rider2 = GLAInfantryRebel RIDER2 WEAPON_RIDER2 STATUS_RIDER2 GLAVehicleCombatBikeDefaultCommandSet SET_NORMAL Rider3 = GLAInfantryTunnelDefender RIDER3 WEAPON_RIDER3 STATUS_RIDER3 GLAVehicleCombatBikeDefaultCommandSet SET_NORMAL Rider4 = GLAInfantryJarmenKell RIDER4 WEAPON_RIDER4 STATUS_RIDER4 GLAVehicleCombatBikeJarmenKellCommandSet SET_NORMAL Rider5 = GLAInfantryTerrorist RIDER5 WEAPON_RIDER5 STATUS_RIDER5 GLAVehicleCombatBikeDefaultCommandSet SET_SLUGGISH Rider6 = GLAInfantryHijacker RIDER6 WEAPON_RIDER6 STATUS_RIDER6 GLAVehicleCombatBikeDefaultCommandSet SET_NORMAL Rider7 = GLAInfantrySaboteur RIDER7 WEAPON_RIDER7 STATUS_RIDER7 GLAVehicleCombatBikeDefaultCommandSet SET_NORMAL ScuttleDelay = 1500 ScuttleStatus = TOPPLED ;Standard TransportContain stuff Slots = 1 InitialPayload = GLAInfantryTunnelDefender 1 ScatterNearbyOnExit = No HealthRegen%PerSec = 0 DamagePercentToUnits = 100% ; This module will Delete the rider on death, but we need to kill him as well so he doesn't pick up the bike's salvage crate. BurnedDeathToUnits = No ; And no Burned death. AllowInsideKindOf = INFANTRY ExitDelay = 250 NumberOfExitPaths = 1 ; 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 DoorOpenTime = 0 End Behavior = AnimationSteeringUpdate ModuleTag_17 MinTransitionTime = 300 End Behavior = FireWeaponWhenDeadBehavior ModuleTag_Death18 RequiredStatus = STATUS_RIDER5 DeathWeapon = SuicideBikeBomb StartsActive = Yes DeathTypes = NONE +SUICIDED +CRUSHED +SPLATTED +LASERED +BURNED +EXPLODED End Behavior = StealthUpdate ModuleTag_19 UseRiderStealth = Yes ;StealthDelay = 2000 ; msec ;StealthForbiddenConditions = ATTACKING ;InnateStealth = Yes ;OrderIdleEnemiesToAttackMeUponReveal = Yes 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 = 2.5 GeometryHeight = 7.5 GeometryIsSmall = Yes Shadow = SHADOW_VOLUME ShadowSizeX = 45 ; minimum elevation angle above horizon. Used to limit shadow length End ;------------------------------------------------------------------------------ ;GLA Combat Bike with Terrorist Object GLAVehicleCombatBikeTerrorist ; *** ART Parameters *** SelectPortrait = SUComBike_L ButtonImage = SUComBike UpgradeCameo1 = Upgrade_GLAJunkRepair ;UpgradeCameo2 = NONE ;UpgradeCameo3 = NONE ;UpgradeCameo4 = NONE ;UpgradeCameo5 = NONE Draw = W3DTruckDraw ModuleTag_01 OkToChangeModelColor = Yes ;Normal Bike ;------------------------------ DefaultConditionState Model = UVComBike WeaponFireFXBone = PRIMARY Muzzle_B WeaponLaunchBone = PRIMARY RocketFX03 WeaponMuzzleFlash = PRIMARY MuzzleFX_B ParticleSysBone = SMOKE CombatBikeSmokeLight End AliasConditionState RIDER1 AliasConditionState RIDER1 MOVING AliasConditionState RIDER5 AliasConditionState RIDER5 MOVING AliasConditionState RIDER6 AliasConditionState RIDER6 MOVING AliasConditionState RIDER7 AliasConditionState RIDER7 MOVING ConditionState = REALLYDAMAGED Model = UVComBike_d End AliasConditionState RIDER1 REALLYDAMAGED AliasConditionState RIDER1 MOVING REALLYDAMAGED AliasConditionState RIDER5 REALLYDAMAGED AliasConditionState RIDER5 MOVING REALLYDAMAGED AliasConditionState RIDER6 REALLYDAMAGED AliasConditionState RIDER6 MOVING REALLYDAMAGED AliasConditionState RIDER7 REALLYDAMAGED AliasConditionState RIDER7 MOVING REALLYDAMAGED ConditionState = TOPPLED Model = UVComBike Animation = UVComBike_F.UVComBike_F AnimationMode = ONCE End ConditionState = TOPPLED REALLYDAMAGED Model = UVComBike_d Animation = UVComBike_F.UVComBike_F AnimationMode = ONCE End ConditionState = RIDER1 MOVING CENTER_TO_LEFT Model = UVComBike Animation = UVComBike_A1.UVComBike_A1 AnimationMode = ONCE ParticleSysBone = SMOKE CombatBikeSmokeHeavy End AliasConditionState RIDER5 MOVING CENTER_TO_LEFT AliasConditionState RIDER6 MOVING CENTER_TO_LEFT AliasConditionState RIDER7 MOVING CENTER_TO_LEFT ConditionState = RIDER1 MOVING CENTER_TO_LEFT REALLYDAMAGED Model = UVComBike_d Animation = UVComBike_A1.UVComBike_A1 AnimationMode = ONCE ParticleSysBone = SMOKE CombatBikeSmokeHeavy End AliasConditionState RIDER5 MOVING CENTER_TO_LEFT REALLYDAMAGED AliasConditionState RIDER6 MOVING CENTER_TO_LEFT REALLYDAMAGED AliasConditionState RIDER7 MOVING CENTER_TO_LEFT REALLYDAMAGED ConditionState = RIDER1 MOVING LEFT_TO_CENTER Model = UVComBike Animation = UVComBike_A1.UVComBike_A1 AnimationMode = ONCE_BACKWARDS ParticleSysBone = SMOKE CombatBikeSmokeHeavy End AliasConditionState RIDER5 MOVING LEFT_TO_CENTER AliasConditionState RIDER6 MOVING LEFT_TO_CENTER AliasConditionState RIDER7 MOVING LEFT_TO_CENTER ConditionState = RIDER1 MOVING LEFT_TO_CENTER REALLYDAMAGED Model = UVComBike_d Animation = UVComBike_A1.UVComBike_A1 AnimationMode = ONCE_BACKWARDS ParticleSysBone = SMOKE CombatBikeSmokeHeavy End AliasConditionState RIDER5 MOVING LEFT_TO_CENTER REALLYDAMAGED AliasConditionState RIDER6 MOVING LEFT_TO_CENTER REALLYDAMAGED AliasConditionState RIDER7 MOVING LEFT_TO_CENTER REALLYDAMAGED ConditionState = RIDER1 MOVING CENTER_TO_RIGHT Model = UVComBike Animation = UVComBike_A2.UVComBike_A2 AnimationMode = ONCE ParticleSysBone = SMOKE CombatBikeSmokeHeavy End AliasConditionState RIDER5 MOVING CENTER_TO_RIGHT AliasConditionState RIDER6 MOVING CENTER_TO_RIGHT AliasConditionState RIDER7 MOVING CENTER_TO_RIGHT ConditionState = RIDER1 MOVING CENTER_TO_RIGHT REALLYDAMAGED Model = UVComBike_d Animation = UVComBike_A2.UVComBike_A2 AnimationMode = ONCE ParticleSysBone = SMOKE CombatBikeSmokeHeavy End AliasConditionState RIDER5 MOVING CENTER_TO_RIGHT REALLYDAMAGED AliasConditionState RIDER6 MOVING CENTER_TO_RIGHT REALLYDAMAGED AliasConditionState RIDER7 MOVING CENTER_TO_RIGHT REALLYDAMAGED ConditionState = RIDER1 MOVING RIGHT_TO_CENTER Model = UVComBike Animation = UVComBike_A2.UVComBike_A2 AnimationMode = ONCE_BACKWARDS ParticleSysBone = SMOKE CombatBikeSmokeHeavy End AliasConditionState RIDER5 MOVING RIGHT_TO_CENTER AliasConditionState RIDER6 MOVING RIGHT_TO_CENTER AliasConditionState RIDER7 MOVING RIGHT_TO_CENTER ConditionState = RIDER1 MOVING RIGHT_TO_CENTER REALLYDAMAGED Model = UVComBike_d Animation = UVComBike_A2.UVComBike_A2 AnimationMode = ONCE_BACKWARDS ParticleSysBone = SMOKE CombatBikeSmokeHeavy End AliasConditionState RIDER5 MOVING RIGHT_TO_CENTER REALLYDAMAGED AliasConditionState RIDER6 MOVING RIGHT_TO_CENTER REALLYDAMAGED AliasConditionState RIDER7 MOVING RIGHT_TO_CENTER REALLYDAMAGED ;Gun Bike ;------------------------------ ConditionState = RIDER2 Model = UVComBikeG End AliasConditionState RIDER2 MOVING AliasConditionState RIDER4 AliasConditionState RIDER4 MOVING ConditionState = RIDER2 REALLYDAMAGED Model = UVComBikeG_d End AliasConditionState RIDER2 MOVING REALLYDAMAGED AliasConditionState RIDER4 REALLYDAMAGED AliasConditionState RIDER4 MOVING REALLYDAMAGED ConditionState = RIDER2 MOVING CENTER_TO_LEFT Model = UVComBikeG Animation = UVComBikeG_A1.UVComBikeG_A1 AnimationMode = ONCE ParticleSysBone = SMOKE CombatBikeSmokeHeavy End AliasConditionState RIDER4 MOVING CENTER_TO_LEFT ConditionState = RIDER2 MOVING CENTER_TO_LEFT REALLYDAMAGED Model = UVComBikeG_d Animation = UVComBikeG_A1.UVComBikeG_A1 AnimationMode = ONCE ParticleSysBone = SMOKE CombatBikeSmokeHeavy End AliasConditionState RIDER4 MOVING CENTER_TO_LEFT REALLYDAMAGED ConditionState = RIDER2 MOVING LEFT_TO_CENTER Model = UVComBikeG Animation = UVComBikeG_A1.UVComBikeG_A1 AnimationMode = ONCE_BACKWARDS ParticleSysBone = SMOKE CombatBikeSmokeHeavy End AliasConditionState RIDER4 MOVING LEFT_TO_CENTER ConditionState = RIDER2 MOVING LEFT_TO_CENTER REALLYDAMAGED Model = UVComBikeG_d Animation = UVComBikeG_A1.UVComBikeG_A1 AnimationMode = ONCE_BACKWARDS ParticleSysBone = SMOKE CombatBikeSmokeHeavy End AliasConditionState RIDER4 MOVING LEFT_TO_CENTER REALLYDAMAGED ConditionState = RIDER2 MOVING CENTER_TO_RIGHT Model = UVComBikeG Animation = UVComBikeG_A2.UVComBikeG_A2 AnimationMode = ONCE ParticleSysBone = SMOKE CombatBikeSmokeHeavy End AliasConditionState RIDER4 MOVING CENTER_TO_RIGHT ConditionState = RIDER2 MOVING CENTER_TO_RIGHT REALLYDAMAGED Model = UVComBikeG_d Animation = UVComBikeG_A2.UVComBikeG_A2 AnimationMode = ONCE ParticleSysBone = SMOKE CombatBikeSmokeHeavy End AliasConditionState RIDER4 MOVING CENTER_TO_RIGHT REALLYDAMAGED ConditionState = RIDER2 MOVING RIGHT_TO_CENTER Model = UVComBikeG Animation = UVComBikeG_A2.UVComBikeG_A2 AnimationMode = ONCE_BACKWARDS ParticleSysBone = SMOKE CombatBikeSmokeHeavy End AliasConditionState RIDER4 MOVING RIGHT_TO_CENTER ConditionState = RIDER2 MOVING RIGHT_TO_CENTER REALLYDAMAGED Model = UVComBikeG_d Animation = UVComBikeG_A2.UVComBikeG_A2 AnimationMode = ONCE_BACKWARDS ParticleSysBone = SMOKE CombatBikeSmokeHeavy End AliasConditionState RIDER4 MOVING RIGHT_TO_CENTER REALLYDAMAGED ;Missile Bike ;------------------------------ ConditionState = RIDER3 Model = UVComBikeTN End AliasConditionState RIDER3 MOVING ConditionState = RIDER3 REALLYDAMAGED Model = UVComBikeTN_d End AliasConditionState RIDER3 MOVING REALLYDAMAGED ConditionState = RIDER3 MOVING CENTER_TO_LEFT Model = UVComBikeTN Animation = UVComBikeTN_A1.UVComBikeTN_A1 AnimationMode = ONCE ParticleSysBone = SMOKE CombatBikeSmokeHeavy End ConditionState = RIDER3 MOVING CENTER_TO_LEFT REALLYDAMAGED Model = UVComBikeTN_d Animation = UVComBikeTN_A1.UVComBikeTN_A1 AnimationMode = ONCE ParticleSysBone = SMOKE CombatBikeSmokeHeavy End ConditionState = RIDER3 MOVING LEFT_TO_CENTER Model = UVComBikeTN Animation = UVComBikeTN_A1.UVComBikeTN_A1 AnimationMode = ONCE_BACKWARDS ParticleSysBone = SMOKE CombatBikeSmokeHeavy End ConditionState = RIDER3 MOVING LEFT_TO_CENTER REALLYDAMAGED Model = UVComBikeTN_d Animation = UVComBikeTN_A1.UVComBikeTN_A1 AnimationMode = ONCE_BACKWARDS ParticleSysBone = SMOKE CombatBikeSmokeHeavy End ConditionState = RIDER3 MOVING CENTER_TO_RIGHT Model = UVComBikeTN Animation = UVComBikeTN_A2.UVComBikeTN_A2 AnimationMode = ONCE ParticleSysBone = SMOKE CombatBikeSmokeHeavy End ConditionState = RIDER3 MOVING CENTER_TO_RIGHT REALLYDAMAGED Model = UVComBikeTN_d Animation = UVComBikeTN_A2.UVComBikeTN_A2 AnimationMode = ONCE ParticleSysBone = SMOKE CombatBikeSmokeHeavy End ConditionState = RIDER3 MOVING RIGHT_TO_CENTER Model = UVComBikeTN Animation = UVComBikeTN_A2.UVComBikeTN_A2 AnimationMode = ONCE_BACKWARDS ParticleSysBone = SMOKE CombatBikeSmokeHeavy End ConditionState = RIDER3 MOVING RIGHT_TO_CENTER REALLYDAMAGED Model = UVComBikeTN_d Animation = UVComBikeTN_A2.UVComBikeTN_A2 AnimationMode = ONCE_BACKWARDS ParticleSysBone = SMOKE CombatBikeSmokeHeavy End TrackMarks = EXTireTrack03.tga Dust = CombatBikeDust DirtSpray = CombatBikeDirtSpray PowerslideSpray = CombatBikeDirtPowerSlide ; These parameters are only used if the model has a separate suspension, ; and the locomotor has HasSuspension = Yes. LeftFrontTireBone = Tire01 LeftRearTireBone = Tire00 TireRotationMultiplier = 0.2 ; this * speed = rotation. PowerslideRotationAddition = 2.5 ; This speed is added to the rotation speed when powersliding. End Draw = W3DModelDraw ModuleTag_Rider01 OkToChangeModelColor = Yes DefaultConditionState ;************************************************** ;*** Must have a default model in order to see ;*** house color!!! ;************************************************** Model = UIWrkr_SKN ;WeaponFireFXBone = PRIMARY Muzzle ;WeaponLaunchBone = PRIMARY Muzzle WeaponMuzzleFlash = PRIMARY MuzzleFX End AliasConditionState MOVING ;Worker animations ;----------------------- ConditionState = RIDER1 Model = UIWrkr_SKN Animation = UIWrkr_SKL.UIWrkr_CmBk_A5 AnimationMode = LOOP End ConditionState = RIDER1 MOVING Model = UIWrkr_SKN Animation = UIWrkr_SKL.UIWrkr_CmBk_A4 AnimationMode = LOOP End ConditionState = RIDER1 MOVING CENTER_TO_LEFT Model = UIWrkr_SKN Animation = UIWrkr_SKL.UIWrkr_CmBk_A1 AnimationMode = ONCE End ConditionState = RIDER1 MOVING LEFT_TO_CENTER Model = UIWrkr_SKN Animation = UIWrkr_SKL.UIWrkr_CmBk_A1 AnimationMode = ONCE_BACKWARDS End ConditionState = RIDER1 MOVING CENTER_TO_RIGHT Model = UIWrkr_SKN Animation = UIWrkr_SKL.UIWrkr_CmBk_A2 AnimationMode = ONCE End ConditionState = RIDER1 MOVING RIGHT_TO_CENTER Model = UIWrkr_SKN Animation = UIWrkr_SKL.UIWrkr_CmBk_A2 AnimationMode = ONCE_BACKWARDS End ;Rebel animations ;----------------------- ConditionState = RIDER2 Model = UIRGrd_SKN Animation = UIRGrd_SKL.UIRGrd_CmBk_A5 AnimationMode = LOOP End ConditionState = RIDER2 MOVING Model = UIRGrd_SKN Animation = UIRGrd_SKL.UIRGrd_CmBk_A4 AnimationMode = LOOP End ConditionState = RIDER2 MOVING CENTER_TO_LEFT Model = UIRGrd_SKN Animation = UIRGrd_SKL.UIRGrd_CmBk_A1 AnimationMode = ONCE End ConditionState = RIDER2 MOVING LEFT_TO_CENTER Model = UIRGrd_SKN Animation = UIRGrd_SKL.UIRGrd_CmBk_A1 AnimationMode = ONCE_BACKWARDS End ConditionState = RIDER2 MOVING CENTER_TO_RIGHT Model = UIRGrd_SKN Animation = UIRGrd_SKL.UIRGrd_CmBk_A2 AnimationMode = ONCE End ConditionState = RIDER2 MOVING RIGHT_TO_CENTER Model = UIRGrd_SKN Animation = UIRGrd_SKL.UIRGrd_CmBk_A2 AnimationMode = ONCE_BACKWARDS End ;RPG Trooper animations ;----------------------- ConditionState = RIDER3 Model = UITunF_SKN2 Animation = UITunF_SKL.UITunF_CmBk_A5 AnimationMode = LOOP End ConditionState = RIDER3 MOVING Model = UITunF_SKN2 Animation = UITunF_SKL.UITunF_CmBk_A4 AnimationMode = LOOP End ConditionState = RIDER3 MOVING CENTER_TO_LEFT Model = UITunF_SKN2 Animation = UITunF_SKL.UITunF_CmBk_A1 AnimationMode = ONCE End ConditionState = RIDER3 MOVING LEFT_TO_CENTER Model = UITunF_SKN2 Animation = UITunF_SKL.UITunF_CmBk_A1 AnimationMode = ONCE_BACKWARDS End ConditionState = RIDER3 MOVING CENTER_TO_RIGHT Model = UITunF_SKN2 Animation = UITunF_SKL.UITunF_CmBk_A2 AnimationMode = ONCE End ConditionState = RIDER3 MOVING RIGHT_TO_CENTER Model = UITunF_SKN2 Animation = UITunF_SKL.UITunF_CmBk_A2 AnimationMode = ONCE_BACKWARDS End ;Jarmen Kell animations ;----------------------- ConditionState = RIDER4 Model = UIHERO_SKN Animation = UIHERO_SKL.UIHERO_CmBk_A5 AnimationMode = LOOP End ConditionState = RIDER4 MOVING Model = UIHERO_SKN Animation = UIHERO_SKL.UIHERO_CmBk_A4 AnimationMode = LOOP End ConditionState = RIDER4 MOVING CENTER_TO_LEFT Model = UIHERO_SKN Animation = UIHERO_SKL.UIHERO_CmBk_A1 AnimationMode = ONCE End ConditionState = RIDER4 MOVING LEFT_TO_CENTER Model = UIHERO_SKN Animation = UIHERO_SKL.UIHERO_CmBk_A1 AnimationMode = ONCE_BACKWARDS End ConditionState = RIDER4 MOVING CENTER_TO_RIGHT Model = UIHERO_SKN Animation = UIHERO_SKL.UIHERO_CmBk_A2 AnimationMode = ONCE End ConditionState = RIDER4 MOVING RIGHT_TO_CENTER Model = UIHERO_SKN Animation = UIHERO_SKL.UIHERO_CmBk_A2 AnimationMode = ONCE_BACKWARDS End ;Terrorist animations ;----------------------- ConditionState = RIDER5 Model = UITRST_SKN Animation = UITRST_SKL.UITER_CmBk_A5 AnimationMode = LOOP End ConditionState = RIDER5 MOVING Model = UITRST_SKN Animation = UITRST_SKL.UITER_CmBk_A4 AnimationMode = LOOP End ConditionState = RIDER5 MOVING CENTER_TO_LEFT Model = UITRST_SKN Animation = UITRST_SKL.UITER_CmBk_A1 AnimationMode = ONCE End ConditionState = RIDER5 MOVING LEFT_TO_CENTER Model = UITRST_SKN Animation = UITRST_SKL.UITER_CmBk_A1 AnimationMode = ONCE_BACKWARDS End ConditionState = RIDER5 MOVING CENTER_TO_RIGHT Model = UITRST_SKN Animation = UITRST_SKL.UITER_CmBk_A2 AnimationMode = ONCE End ConditionState = RIDER5 MOVING RIGHT_TO_CENTER Model = UITRST_SKN Animation = UITRST_SKL.UITER_CmBk_A2 AnimationMode = ONCE_BACKWARDS End ;Hijacker animations ;----------------------- ConditionState = RIDER6 Model = UIHJCK_SKN Animation = UIHJCK_SKL.UIHJACK_CmBk_A5 AnimationMode = LOOP End ConditionState = RIDER6 MOVING Model = UIHJCK_SKN Animation = UIHJCK_SKL.UIHJACK_CmBk_A4 AnimationMode = LOOP End ConditionState = RIDER6 MOVING CENTER_TO_LEFT Model = UIHJCK_SKN Animation = UIHJCK_SKL.UIHJACK_CmBk_A1 AnimationMode = ONCE End ConditionState = RIDER6 MOVING LEFT_TO_CENTER Model = UIHJCK_SKN Animation = UIHJCK_SKL.UIHJACK_CmBk_A1 AnimationMode = ONCE_BACKWARDS End ConditionState = RIDER6 MOVING CENTER_TO_RIGHT Model = UIHJCK_SKN Animation = UIHJCK_SKL.UIHJACK_CmBk_A2 AnimationMode = ONCE End ConditionState = RIDER6 MOVING RIGHT_TO_CENTER Model = UIHJCK_SKN Animation = UIHJCK_SKL.UIHJACK_CmBk_A2 AnimationMode = ONCE_BACKWARDS End ;Saboteur animations ;----------------------- ConditionState = RIDER7 Model = UISabotr_SKN Animation = UIWrkr_SKL.UIWrkr_CmBk_A5 AnimationMode = LOOP End ConditionState = RIDER7 MOVING Model = UISabotr_SKN Animation = UIWrkr_SKL.UIWrkr_CmBk_A4 AnimationMode = LOOP End ConditionState = RIDER7 MOVING CENTER_TO_LEFT Model = UISabotr_SKN Animation = UIWrkr_SKL.UIWrkr_CmBk_A1 AnimationMode = ONCE End ConditionState = RIDER7 MOVING LEFT_TO_CENTER Model = UISabotr_SKN Animation = UIWrkr_SKL.UIWrkr_CmBk_A1 AnimationMode = ONCE_BACKWARDS End ConditionState = RIDER7 MOVING CENTER_TO_RIGHT Model = UISabotr_SKN Animation = UIWrkr_SKL.UIWrkr_CmBk_A2 AnimationMode = ONCE End ConditionState = RIDER7 MOVING RIGHT_TO_CENTER Model = UISabotr_SKN Animation = UIWrkr_SKL.UIWrkr_CmBk_A2 AnimationMode = ONCE_BACKWARDS End ConditionState = TOPPLED Model = None End AliasConditionState TOPPLED MOVING End ; ***DESIGN parameters *** DisplayName = OBJECT:CombatBike Side = GLA EditorSorting = VEHICLE TransportSlotCount = 1 ;how many "slots" we take in a transport (0 == not transportable) WeaponSet Conditions = None Weapon = PRIMARY NONE End WeaponSet Conditions = WEAPON_RIDER2 Weapon = PRIMARY GLARebelBikerMachineGun End WeaponSet Conditions = WEAPON_RIDER3 Weapon = PRIMARY TunnelDefenderBikerRocketWeapon End WeaponSet Conditions = WEAPON_RIDER4 Weapon = PRIMARY GLABikerKellSniperRifle Weapon = SECONDARY GLAJarmenKellVehiclePilotSniperRifle AutoChooseSources = SECONDARY NONE End WeaponSet ;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. Conditions = WEAPON_RIDER5 Weapon = PRIMARY TerroristSuicideWeapon End ArmorSet Conditions = None Armor = TruckArmor DamageFX = TankDamageFX End BuildCost = 500 BuildTime = 8.0 ;in seconds VisionRange = 180 ShroudClearingRange = 300 ; Remove - JMC 8/6/03 - This is not usable by the player but I can use it for any AI if the prereqs are gone. ; 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 = GLAVehicleCombatBikeCommandSet ; *** AUDIO Parameters *** VoiceSelect = CombatCycleVoiceSelect VoiceMove = CombatCycleVoiceMove VoiceAttack = CombatCycleVoiceAttack SoundMoveStart = CombatBikeMoveStart SoundMoveStartDamaged = CombatBikeMoveStart VoiceGuard = CombatCycleVoiceMove UnitSpecificSounds ; These have the syntax of SomeNameSomewhereInCode = SomeNameSomewhereInLookupINIs VoiceCreate = RocketBuggyVoiceCreate TurretMoveStart = NoSound TurretMoveLoop = TurretMoveLoop ; Required for the W3DTruckDraw module TruckLandingSound = RocketBuggyLand TruckPowerslideSound = CombatBikeMoveStart VoiceCrush = CombatCycleVoiceMove VoiceEnter = CombatCycleVoiceMove 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 CLIFF_JUMPER Body = ActiveBody ModuleTag_02 MaxHealth = 100 InitialHealth = 100 ; Subdual damage "Subdues" you (reaction defined by BodyModule) when it passes your max health. ; The cap limits how extra-subdued you can be, and the other numbers detemine how fast it drains away on its own. SubdualDamageCap = 200 SubdualDamageHealRate = 500 SubdualDamageHealAmount = 50 End Behavior = AIUpdateInterface ModuleTag_03 Turret TurretTurnRate = 0 ; turn rate, in degrees per sec NaturalTurretAngle = 0 ControlledWeaponSlots = PRIMARY SECONDARY End AutoAcquireEnemiesWhenIdle = No End Locomotor = SET_NORMAL CombatBikeGroundLocomotor CombatBikeCliffLocomotor Locomotor = SET_SLUGGISH CombatBikeTerroristGroundLocomotor CombatBikeTerroristCliffLocomotor Behavior = PhysicsBehavior ModuleTag_04 Mass = 15.0 End Behavior = SlowDeathBehavior DeathTag_04 ExemptStatus = STATUS_RIDER1 STATUS_RIDER2 STATUS_RIDER3 STATUS_RIDER4 STATUS_RIDER5 STATUS_RIDER6 STATUS_RIDER7 DeathTypes = ALL -CRUSHED -SPLATTED -TOPPLED DestructionDelay = 0 FX = INITIAL FX_BuggyNewDeathExplosion OCL = FINAL OCL_CombatBikeAirDeathStart End Behavior = SlowDeathBehavior DeathTag_05 RequiredStatus = STATUS_RIDER1 DeathTypes = ALL -CRUSHED -SPLATTED -TOPPLED DestructionDelay = 0 FX = INITIAL FX_BuggyNewDeathExplosion OCL = INITIAL OCL_WorkerFlyingOffBikeDeathStart OCL = FINAL OCL_CombatBikeAirDeathStart End Behavior = SlowDeathBehavior DeathTag_06 RequiredStatus = STATUS_RIDER2 DeathTypes = ALL -CRUSHED -SPLATTED -TOPPLED DestructionDelay = 0 FX = INITIAL FX_BuggyNewDeathExplosion OCL = INITIAL OCL_RebelFlyingOffBikeDeathStart OCL = FINAL OCL_CombatBikeAirDeathStart End Behavior = SlowDeathBehavior DeathTag_07 RequiredStatus = STATUS_RIDER3 DeathTypes = ALL -CRUSHED -SPLATTED -TOPPLED DestructionDelay = 0 FX = INITIAL FX_BuggyNewDeathExplosion OCL = INITIAL OCL_TunnelDefenderFlyingOffBikeDeathStart OCL = FINAL OCL_CombatBikeAirDeathStart End Behavior = SlowDeathBehavior DeathTag_08 RequiredStatus = STATUS_RIDER4 DeathTypes = ALL -CRUSHED -SPLATTED -TOPPLED DestructionDelay = 0 FX = INITIAL FX_BuggyNewDeathExplosion OCL = INITIAL OCL_JarmenKellFlyingOffBikeDeathStart OCL = FINAL OCL_CombatBikeAirDeathStart End Behavior = SlowDeathBehavior DeathTag_09 RequiredStatus = STATUS_RIDER5 DeathTypes = ALL -CRUSHED -SPLATTED -TOPPLED DestructionDelay = 0 FX = INITIAL FX_BuggyNewDeathExplosion OCL = INITIAL OCL_TerroristFlyingOffBikeDeathStart OCL = FINAL OCL_CombatBikeAirDeathStart End Behavior = SlowDeathBehavior DeathTag_10 RequiredStatus = STATUS_RIDER6 DeathTypes = ALL -CRUSHED -SPLATTED -TOPPLED DestructionDelay = 0 FX = INITIAL FX_BuggyNewDeathExplosion OCL = INITIAL OCL_HijackerFlyingOffBikeDeathStart OCL = FINAL OCL_CombatBikeAirDeathStart End Behavior = AutoHealBehavior ModuleTag_08 HealingAmount = 2 HealingDelay = 1000 ; msec TriggeredBy = Upgrade_GLAJunkRepair End Behavior = WeaponSetUpgrade ModuleTag_09 TriggeredBy = Upgrade_GLABuggyAmmo End ;Create the hulk after the toppling is complete (not killed until topple anim finished). Behavior = CreateObjectDie ModuleTag_10 DeathTypes = NONE +TOPPLED CreationList = OCL_CombatBike_ToppledHulk End Behavior = DestroyDie ModuleTag_11 DeathTypes = NONE +CRUSHED +SPLATTED +TOPPLED 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 = TransitionDamageFX ModuleTag_15 ReallyDamagedParticleSystem1 = Bone:Smoke RandomBone:Yes PSys:SmallLightSmokeColumn ReallyDamagedFXList1 = Loc: X:0 Y:0 Z:0 FXList:FX_BattleMasterDamageTransition End Behavior = RiderChangeContain ModuleTag_16 ;A list of each valid rider that is allowed to ride this object. Each rider is ;assigned a modelcondition state, a weaponset flag, an object status bit, and ;a commandset override. The actual object is hidden inside the container so the ;visible rider is fluff. Also riders are deleted (not killed) when the bike is ;destroyed, so all deaths must be OCLs on the bike. Rider1 = GLAInfantryWorker RIDER1 WEAPON_RIDER1 STATUS_RIDER1 GLAVehicleCombatBikeDefaultCommandSet SET_NORMAL Rider2 = GLAInfantryRebel RIDER2 WEAPON_RIDER2 STATUS_RIDER2 GLAVehicleCombatBikeDefaultCommandSet SET_NORMAL Rider3 = GLAInfantryTunnelDefender RIDER3 WEAPON_RIDER3 STATUS_RIDER3 GLAVehicleCombatBikeDefaultCommandSet SET_NORMAL Rider4 = GLAInfantryJarmenKell RIDER4 WEAPON_RIDER4 STATUS_RIDER4 GLAVehicleCombatBikeJarmenKellCommandSet SET_NORMAL Rider5 = GLAInfantryTerrorist RIDER5 WEAPON_RIDER5 STATUS_RIDER5 GLAVehicleCombatBikeDefaultCommandSet SET_SLUGGISH Rider6 = GLAInfantryHijacker RIDER6 WEAPON_RIDER6 STATUS_RIDER6 GLAVehicleCombatBikeDefaultCommandSet SET_NORMAL Rider7 = GLAInfantrySaboteur RIDER7 WEAPON_RIDER7 STATUS_RIDER7 GLAVehicleCombatBikeDefaultCommandSet SET_NORMAL ScuttleDelay = 1500 ScuttleStatus = TOPPLED ;Standard TransportContain stuff Slots = 1 InitialPayload = GLAInfantryTerrorist 1 ScatterNearbyOnExit = No HealthRegen%PerSec = 0 DamagePercentToUnits = 100% ; This module will Delete the rider on death, but we need to kill him as well so he doesn't pick up the bike's salvage crate. BurnedDeathToUnits = No ; And no Burned death. AllowInsideKindOf = INFANTRY ExitDelay = 250 NumberOfExitPaths = 1 ; 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 DoorOpenTime = 0 End Behavior = AnimationSteeringUpdate ModuleTag_17 MinTransitionTime = 300 End Behavior = FireWeaponWhenDeadBehavior ModuleTag_Death18 RequiredStatus = STATUS_RIDER5 DeathWeapon = SuicideBikeBomb StartsActive = Yes DeathTypes = NONE +SUICIDED +CRUSHED +SPLATTED +LASERED +BURNED +EXPLODED End Behavior = StealthUpdate ModuleTag_19 UseRiderStealth = Yes ;StealthDelay = 2000 ; msec ;StealthForbiddenConditions = ATTACKING ;InnateStealth = Yes ;OrderIdleEnemiesToAttackMeUponReveal = Yes 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 = 2.5 GeometryHeight = 7.5 GeometryIsSmall = Yes Shadow = SHADOW_VOLUME ShadowSizeX = 45 ; minimum elevation angle above horizon. Used to limit shadow length 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 = HumveeArmor DamageFX = TankDamageFX End BuildCost = 700 BuildTime = 6.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 ; *** 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 = 300.0 InitialHealth = 300.0 ; Subdual damage "Subdues" you (reaction defined by BodyModule) when it passes your max health. ; The cap limits how extra-subdued you can be, and the other numbers detemine how fast it drains away on its own. SubdualDamageCap = 440 SubdualDamageHealRate = 500 SubdualDamageHealAmount = 50 End Behavior = AIUpdateInterface ModuleTag_03 Turret TurretTurnRate = 360 TurretPitchRate = 360 AllowsPitch = Yes ControlledWeaponSlots = PRIMARY SECONDARY End AutoAcquireEnemiesWhenIdle = Yes Stealthed MoodAttackCheckRate = 250 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 = 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 ShowSubObject = Turret HideSubObject = TurretUP01 TurretUP02 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 AliasConditionState RUBBLE AliasConditionState WEAPONSET_PLAYER_UPGRADE RUBBLE 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 ; -------------- Turret change #1 ConditionState = WEAPONSET_CRATEUPGRADE_ONE Turret = TurretUP01 TurretPitch = TurretEL01 ShowSubObject = TurretUP01 HideSubObject = Turret TurretUP02 WeaponFireFXBone = PRIMARY WeaponB WeaponLaunchBone = PRIMARY WeaponB End AliasConditionState WEAPONSET_PLAYER_UPGRADE WEAPONSET_CRATEUPGRADE_ONE ConditionState = USING_WEAPON_B WEAPONSET_CRATEUPGRADE_ONE Turret = TurretUP01 TurretPitch = TurretEL01 ShowSubObject = TurretUP01 HideSubObject = Turret TurretUP02 WeaponFireFXBone = PRIMARY WeaponB WeaponLaunchBone = PRIMARY WeaponB ParticleSysBone = none ToxinPuddleContinuous END ConditionState = USING_WEAPON_B WEAPONSET_PLAYER_UPGRADE WEAPONSET_CRATEUPGRADE_ONE Turret = TurretUP01 TurretPitch = TurretEL01 ShowSubObject = TurretUP01 HideSubObject = Turret TurretUP02 WeaponFireFXBone = PRIMARY WeaponB WeaponLaunchBone = PRIMARY WeaponB ParticleSysBone = none AnthraxPuddleContinuous END ConditionState = REALLYDAMAGED WEAPONSET_CRATEUPGRADE_ONE Model = UVToxinTrk_D Turret = TurretUP01 TurretPitch = TurretEL01 ShowSubObject = TurretUP01 HideSubObject = Turret TurretUP02 WeaponFireFXBone = PRIMARY WeaponB WeaponLaunchBone = PRIMARY WeaponB End AliasConditionState REALLYDAMAGED WEAPONSET_PLAYER_UPGRADE WEAPONSET_CRATEUPGRADE_ONE AliasConditionState RUBBLE WEAPONSET_CRATEUPGRADE_ONE AliasConditionState WEAPONSET_PLAYER_UPGRADE RUBBLE WEAPONSET_CRATEUPGRADE_ONE ConditionState = USING_WEAPON_B REALLYDAMAGED WEAPONSET_CRATEUPGRADE_ONE Model = UVToxinTrk_D Turret = TurretUP01 TurretPitch = TurretEL01 ShowSubObject = TurretUP01 HideSubObject = Turret TurretUP02 WeaponFireFXBone = PRIMARY WeaponB WeaponLaunchBone = PRIMARY WeaponB ParticleSysBone = none ToxinPuddleContinuous END ConditionState = USING_WEAPON_B REALLYDAMAGED WEAPONSET_PLAYER_UPGRADE WEAPONSET_CRATEUPGRADE_ONE Model = UVToxinTrk_D Turret = TurretUP01 TurretPitch = TurretEL01 ShowSubObject = TurretUP01 HideSubObject = Turret TurretUP02 WeaponFireFXBone = PRIMARY WeaponB WeaponLaunchBone = PRIMARY WeaponB ParticleSysBone = none AnthraxPuddleContinuous END ; -------------- Turret change #2 ConditionState = WEAPONSET_CRATEUPGRADE_TWO Turret = TurretUP02 TurretPitch = TurretEL02 ShowSubObject = TurretUP02 HideSubObject = TurretUP01 Turret WeaponFireFXBone = PRIMARY WeaponC WeaponLaunchBone = PRIMARY WeaponC End AliasConditionState WEAPONSET_PLAYER_UPGRADE WEAPONSET_CRATEUPGRADE_TWO ConditionState = USING_WEAPON_B WEAPONSET_CRATEUPGRADE_TWO Turret = TurretUP02 TurretPitch = TurretEL02 ShowSubObject = TurretUP02 HideSubObject = TurretUP01 Turret WeaponFireFXBone = PRIMARY WeaponC WeaponLaunchBone = PRIMARY WeaponC ParticleSysBone = none ToxinPuddleContinuous END ConditionState = USING_WEAPON_B WEAPONSET_PLAYER_UPGRADE WEAPONSET_CRATEUPGRADE_TWO Turret = TurretUP02 TurretPitch = TurretEL02 ShowSubObject = TurretUP02 HideSubObject = TurretUP01 Turret WeaponFireFXBone = PRIMARY WeaponC WeaponLaunchBone = PRIMARY WeaponC ParticleSysBone = none AnthraxPuddleContinuous END ConditionState = REALLYDAMAGED WEAPONSET_CRATEUPGRADE_TWO Model = UVToxinTrk_D Turret = TurretUP02 TurretPitch = TurretEL02 ShowSubObject = TurretUP02 HideSubObject = TurretUP01 Turret WeaponFireFXBone = PRIMARY WeaponC WeaponLaunchBone = PRIMARY WeaponC End AliasConditionState REALLYDAMAGED WEAPONSET_PLAYER_UPGRADE WEAPONSET_CRATEUPGRADE_TWO AliasConditionState RUBBLE WEAPONSET_CRATEUPGRADE_TWO AliasConditionState WEAPONSET_PLAYER_UPGRADE RUBBLE WEAPONSET_CRATEUPGRADE_TWO ConditionState = USING_WEAPON_B REALLYDAMAGED WEAPONSET_CRATEUPGRADE_TWO Model = UVToxinTrk_D Turret = TurretUP02 TurretPitch = TurretEL02 ShowSubObject = TurretUP02 HideSubObject = TurretUP01 Turret WeaponFireFXBone = PRIMARY WeaponC WeaponLaunchBone = PRIMARY WeaponC ParticleSysBone = none ToxinPuddleContinuous END ConditionState = USING_WEAPON_B REALLYDAMAGED WEAPONSET_PLAYER_UPGRADE WEAPONSET_CRATEUPGRADE_TWO Model = UVToxinTrk_D Turret = TurretUP02 TurretPitch = TurretEL02 ShowSubObject = TurretUP02 HideSubObject = TurretUP01 Turret WeaponFireFXBone = PRIMARY WeaponC WeaponLaunchBone = PRIMARY WeaponC ParticleSysBone = none AnthraxPuddleContinuous END 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 = SECONDARY NONE ;Special attack only End WeaponSet Conditions = PLAYER_UPGRADE Weapon = PRIMARY ToxinTruckGunUpgraded Weapon = SECONDARY ToxinTruckSprayerUpgraded AutoChooseSources = SECONDARY NONE ;Special attack only End WeaponSet Conditions = CRATEUPGRADE_ONE Weapon = PRIMARY ToxinTruckGunPlusOne Weapon = SECONDARY ToxinTruckSprayerPlusOne AutoChooseSources = SECONDARY NONE ;Special attack only End WeaponSet Conditions = CRATEUPGRADE_ONE PLAYER_UPGRADE Weapon = PRIMARY ToxinTruckGunUpgradedPlusOne Weapon = SECONDARY ToxinTruckSprayerUpgradedPlusOne AutoChooseSources = SECONDARY NONE ;Special attack only End WeaponSet Conditions = CRATEUPGRADE_TWO Weapon = PRIMARY ToxinTruckGunPlusTwo Weapon = SECONDARY ToxinTruckSprayerPlusTwo AutoChooseSources = SECONDARY NONE ;Special attack only End WeaponSet Conditions = CRATEUPGRADE_TWO PLAYER_UPGRADE Weapon = PRIMARY ToxinTruckGunUpgradedPlusTwo Weapon = SECONDARY ToxinTruckSprayerUpgradedPlusTwo 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 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 WEAPON_SALVAGER SCORE Body = ActiveBody ModuleTag_02 MaxHealth = 240.0 InitialHealth = 240.0 ; Subdual damage "Subdues" you (reaction defined by BodyModule) when it passes your max health. ; The cap limits how extra-subdued you can be, and the other numbers detemine how fast it drains away on its own. SubdualDamageCap = 480 SubdualDamageHealRate = 500 SubdualDamageHealAmount = 50 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 = 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 = INITIAL FX_ToxinTractorDie 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 = ToxinShellWeapon StartsActive = Yes ConflictsWith = Upgrade_GLAAnthraxBeta End Behavior = FireWeaponWhenDeadBehavior ModuleTag_16 DeathWeapon = ToxinShellWeaponUpgraded StartsActive = No TriggeredBy = Upgrade_GLAAnthraxBeta 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 GLAVehicleBombTruck ; *** ART Parameters *** SelectPortrait = SUBombTruck_L ButtonImage = SUBombTruck UpgradeCameo1 = Upgrade_GLABombTruckHighExplosiveBomb UpgradeCameo2 = Upgrade_GLABombTruckBioBomb UpgradeCameo3 = Upgrade_GLAJunkRepair ;UpgradeCameo4 = NONE ;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 = NoSound 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 CANNOT_RETALIATE Body = ActiveBody ModuleTag_02 MaxHealth = 220.0 InitialHealth = 220.0 ; Subdual damage "Subdues" you (reaction defined by BodyModule) when it passes your max health. ; The cap limits how extra-subdued you can be, and the other numbers detemine how fast it drains away on its own. SubdualDamageCap = 440 SubdualDamageHealRate = 500 SubdualDamageHealAmount = 50 End ExperienceValue = 50 50 50 50 ; Experience point value at each level IsTrainable = No ;Kris: Um, bomb trucks don't gain experience. ;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 ; nothing 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) ;* 2) High explosive (has high-explosive 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) ;************************************************************************************************ ;************************************************************************************************ ;* EXCLUSIVE DAMAGE POSSIBILITY 1 -- Normal explosion (can't have high-explosive upgrade) ;************************************************************************************************ Behavior = FireWeaponWhenDeadBehavior ModuleTag_09 DeathWeapon = BombTruckDefaultBombDamage StartsActive = Yes ; turned on by upgrade ConflictsWith = Upgrade_GLABombTruckHighExplosiveBomb End ;************************************************************************************************ ;* EXCLUSIVE DAMAGE POSSIBILITY 2 -- High explosion (always plays if it has high-explosive upgrade) ;************************************************************************************************ Behavior = FireWeaponWhenDeadBehavior ModuleTag_10 DeathWeapon = BombTruckHighExplosionBombDamage StartsActive = No ; turned on by upgrade TriggeredBy = Upgrade_GLABombTruckHighExplosiveBomb 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 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 RequiresAllTriggers = Yes 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 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 RequiresAllTriggers = Yes 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 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 RequiresAllTriggers = Yes End ;------------------------------------------------------------------- ; 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 = 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 = 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 ShowSubObject = TURRET HideSubObject = TURRETUP01 TURRETUP02 WeaponLaunchBone = PRIMARY WeaponA WeaponLaunchBone = SECONDARY WeaponA End ConditionState = REALLYDAMAGED Model = UVScudLchr_d End AliasConditionState = RUBBLE ConditionState = WEAPONSET_CRATEUPGRADE_ONE Model = UVScudLchr Turret = TURRETUP01 TurretPitch = TURRETEL01 ShowSubObject = TURRETUP01 HideSubObject = TURRET TURRETUP02 WeaponLaunchBone = PRIMARY WeaponB WeaponLaunchBone = SECONDARY WeaponB End ConditionState = WEAPONSET_CRATEUPGRADE_ONE REALLYDAMAGED Model = UVScudLchr_d Turret = TURRETUP01 TurretPitch = TURRETEL01 ShowSubObject = TURRETUP01 HideSubObject = TURRET TURRETUP02 WeaponLaunchBone = PRIMARY WeaponB WeaponLaunchBone = SECONDARY WeaponB End AliasConditionState = WEAPONSET_CRATEUPGRADE_ONE RUBBLE ConditionState = WEAPONSET_CRATEUPGRADE_TWO Model = UVScudLchr Turret = TURRETUP02 TurretPitch = TURRETEL02 ShowSubObject = TURRETUP02 HideSubObject = TURRET TURRETUP01 WeaponLaunchBone = PRIMARY WeaponC WeaponLaunchBone = SECONDARY WeaponC End ConditionState = WEAPONSET_CRATEUPGRADE_TWO REALLYDAMAGED Model = UVScudLchr_d Turret = TURRETUP02 TurretPitch = TURRETEL02 ShowSubObject = TURRETUP02 HideSubObject = TURRET TURRETUP01 WeaponLaunchBone = PRIMARY WeaponC WeaponLaunchBone = SECONDARY WeaponC End AliasConditionState = WEAPONSET_CRATEUPGRADE_TWO 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 DEFAULT_SWITCH_WEAPON 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 DEFAULT_SWITCH_WEAPON AutoChooseSources = SECONDARY FROM_SCRIPT FROM_AI PreferredAgainst = SECONDARY INFANTRY ShareWeaponReloadTime = Yes WeaponLockSharedAcrossSets = Yes ; This set is so similar to the default set that it can hold the weapon lock End WeaponSet Conditions = CRATEUPGRADE_ONE Weapon = PRIMARY SCUDLauncherGunExplosivePlusOne Weapon = SECONDARY SCUDLauncherGunToxinPlusOne AutoChooseSources = PRIMARY FROM_SCRIPT FROM_AI DEFAULT_SWITCH_WEAPON AutoChooseSources = SECONDARY FROM_SCRIPT FROM_AI PreferredAgainst = SECONDARY INFANTRY ShareWeaponReloadTime = Yes WeaponLockSharedAcrossSets = Yes ; This set is so similar to the default set that it can hold the weapon lock End WeaponSet Conditions = PLAYER_UPGRADE CRATEUPGRADE_ONE Weapon = PRIMARY SCUDLauncherGunExplosivePlusOne Weapon = SECONDARY SCUDLauncherGunAnthraxPlusOne AutoChooseSources = PRIMARY FROM_SCRIPT FROM_AI DEFAULT_SWITCH_WEAPON AutoChooseSources = SECONDARY FROM_SCRIPT FROM_AI PreferredAgainst = SECONDARY INFANTRY ShareWeaponReloadTime = Yes WeaponLockSharedAcrossSets = Yes ; This set is so similar to the default set that it can hold the weapon lock End WeaponSet Conditions = CRATEUPGRADE_TWO Weapon = PRIMARY SCUDLauncherGunExplosivePlusTwo Weapon = SECONDARY SCUDLauncherGunToxinPlusTwo AutoChooseSources = PRIMARY FROM_SCRIPT FROM_AI DEFAULT_SWITCH_WEAPON AutoChooseSources = SECONDARY FROM_SCRIPT FROM_AI PreferredAgainst = SECONDARY INFANTRY ShareWeaponReloadTime = Yes WeaponLockSharedAcrossSets = Yes ; This set is so similar to the default set that it can hold the weapon lock End WeaponSet Conditions = PLAYER_UPGRADE CRATEUPGRADE_TWO Weapon = PRIMARY SCUDLauncherGunExplosivePlusTwo Weapon = SECONDARY SCUDLauncherGunAnthraxPlusTwo AutoChooseSources = PRIMARY FROM_SCRIPT FROM_AI DEFAULT_SWITCH_WEAPON AutoChooseSources = SECONDARY FROM_SCRIPT FROM_AI PreferredAgainst = SECONDARY INFANTRY ShareWeaponReloadTime = Yes WeaponLockSharedAcrossSets = Yes ; This set is so similar to the default set that it can hold the weapon lock End ArmorSet Conditions = None Armor = TruckArmor DamageFX = TankDamageFX End BuildCost = 1200 BuildTime = 15.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 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 WEAPON_SALVAGER SCORE Body = ActiveBody ModuleTag_02 MaxHealth = 180.0 InitialHealth = 180.0 ; Subdual damage "Subdues" you (reaction defined by BodyModule) when it passes your max health. ; The cap limits how extra-subdued you can be, and the other numbers detemine how fast it drains away on its own. SubdualDamageCap = 360 SubdualDamageHealRate = 500 SubdualDamageHealAmount = 50 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 = LockWeaponCreate ModuleTag_24 SlotToLock = PRIMARY ; Prevents indeterminate state plus two unpickable weapons equaling no attack. 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 ;------------------------------------------------------------------------------ ; 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 = 500 BuildTime = 3.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 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 ; Subdual damage "Subdues" you (reaction defined by BodyModule) when it passes your max health. ; The cap limits how extra-subdued you can be, and the other numbers detemine how fast it drains away on its own. SubdualDamageCap = 360 SubdualDamageHealRate = 500 SubdualDamageHealAmount = 50 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_TechnicalAirDeathGroundPart OCL = FINAL OCL_RocketBuggyAirDeath FX = FINAL FX_RocketBuggyAirDeathAirPart ; This happens in the air End Behavior = TransportContain ModuleTag_16 Slots = 5 AllowInsideKindOf = INFANTRY DamagePercentToUnits = 10% GoAggressiveOnExit = Yes ; AI Will tell people to set their mood to Aggressive on exiting End Behavior = WeaponBonusUpgrade ModuleTag_17 ; Not a full weapon set switch, just a number tweak reflected in a weapon. TriggeredBy = Upgrade_GLAAPBullets 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 *** 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 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 ; Subdual damage "Subdues" you (reaction defined by BodyModule) when it passes your max health. ; The cap limits how extra-subdued you can be, and the other numbers detemine how fast it drains away on its own. SubdualDamageCap = 400 SubdualDamageHealRate = 500 SubdualDamageHealAmount = 50 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 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 ;------------------------------------------------------------------------------ ;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 = 430.0 InitialHealth = 430.0 ; Subdual damage "Subdues" you (reaction defined by BodyModule) when it passes your max health. ; The cap limits how extra-subdued you can be, and the other numbers detemine how fast it drains away on its own. SubdualDamageCap = 860 SubdualDamageHealRate = 500 SubdualDamageHealAmount = 50 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_MarauderTankDeathEffect FX = FINAL FX_BattleMasterExplosionOneFinal End Behavior = CreateCrateDie ModuleTag_07 CrateData = SalvageCrateData ;CrateData = EliteTankCrateData ;CrateData = HeroicTankCrateData 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 ;------------------------------------------------------------------------------ ;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 ; 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 ; Subdual damage "Subdues" you (reaction defined by BodyModule) when it passes your max health. ; The cap limits how extra-subdued you can be, and the other numbers detemine how fast it drains away on its own. SubdualDamageCap = 400 SubdualDamageHealRate = 500 SubdualDamageHealAmount = 50 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 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 ; 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 GLAVehicleBattleBus ; *** ART Parameters *** SelectPortrait = SUbattlebus_L ButtonImage = SUbattlebus UpgradeCameo1 = Upgrade_GLAJunkRepair Draw = W3DTruckDraw ModuleTag_01 OkToChangeModelColor = Yes TrackMarks = EXTireTrack.tga ExtraPublicBone = BUSUP01 ExtraPublicBone = BUSUP02 DefaultConditionState Model = UVBATTBUS HideSubObject = BUSUP01 BUSUP02 Animation = UVBATTBUS.UVBATTBUS AnimationMode = MANUAL End ConditionState = MOVING Model = UVBATTBUS Animation = UVBATTBUS.UVBATTBUS AnimationMode = LOOP End ConditionState = REALLYDAMAGED Model = UVBATTBUS_D Animation = UVBATTBUS_D.UVBATTBUS_D AnimationMode = MANUAL End ConditionState = REALLYDAMAGED MOVING Model = UVBATTBUS_D Animation = UVBATTBUS_D.UVBATTBUS_D AnimationMode = LOOP End ConditionState = SECOND_LIFE ; Set after our first death, natch Model = UVBATTBUS_D1 Animation = UVBATTBUS_D1.UVBATTBUS_D1 AnimationMode = MANUAL End AliasConditionState = REALLYDAMAGED SECOND_LIFE AliasConditionState = RUBBLE SECOND_LIFE ConditionState = RUBBLE Model = UVBATTBUS_D End ;--------- One crates ConditionState = ARMORSET_CRATEUPGRADE_ONE Model = UVBATTBUS ShowSubObject = BUSUP01 HideSubObject = BUSUP02 Animation = UVBATTBUS.UVBATTBUS AnimationMode = MANUAL End ConditionState = MOVING ARMORSET_CRATEUPGRADE_ONE Model = UVBATTBUS ShowSubObject = BUSUP01 HideSubObject = BUSUP02 Animation = UVBATTBUS.UVBATTBUS AnimationMode = LOOP End ConditionState = REALLYDAMAGED ARMORSET_CRATEUPGRADE_ONE Model = UVBATTBUS_D ShowSubObject = BUSUP01 HideSubObject = BUSUP02 Animation = UVBATTBUS_D.UVBATTBUS_D AnimationMode = MANUAL End ConditionState = REALLYDAMAGED MOVING ARMORSET_CRATEUPGRADE_ONE Model = UVBATTBUS_D ShowSubObject = BUSUP01 HideSubObject = BUSUP02 Animation = UVBATTBUS_D.UVBATTBUS_D AnimationMode = LOOP End ConditionState = SECOND_LIFE ARMORSET_CRATEUPGRADE_ONE Model = UVBATTBUS_D1 ShowSubObject = BUSUP01 HideSubObject = BUSUP02 Animation = UVBATTBUS_D1.UVBATTBUS_D1 AnimationMode = MANUAL End AliasConditionState = REALLYDAMAGED SECOND_LIFE ARMORSET_CRATEUPGRADE_ONE AliasConditionState = RUBBLE SECOND_LIFE ARMORSET_CRATEUPGRADE_ONE ConditionState = RUBBLE ARMORSET_CRATEUPGRADE_ONE Model = UVBATTBUS_D ShowSubObject = BUSUP01 HideSubObject = BUSUP02 End ;--------- Two crates ConditionState = ARMORSET_CRATEUPGRADE_TWO Model = UVBATTBUS ShowSubObject = BUSUP01 BUSUP02 Animation = UVBATTBUS.UVBATTBUS AnimationMode = MANUAL End ConditionState = MOVING ARMORSET_CRATEUPGRADE_TWO Model = UVBATTBUS ShowSubObject = BUSUP01 BUSUP02 Animation = UVBATTBUS.UVBATTBUS AnimationMode = LOOP End ConditionState = REALLYDAMAGED ARMORSET_CRATEUPGRADE_TWO Model = UVBATTBUS_D ShowSubObject = BUSUP01 BUSUP02 Animation = UVBATTBUS_D.UVBATTBUS_D AnimationMode = MANUAL End ConditionState = REALLYDAMAGED MOVING ARMORSET_CRATEUPGRADE_TWO Model = UVBATTBUS_D ShowSubObject = BUSUP01 BUSUP02 Animation = UVBATTBUS_D.UVBATTBUS_D AnimationMode = LOOP End ConditionState = SECOND_LIFE ARMORSET_CRATEUPGRADE_TWO Model = UVBATTBUS_D1 ShowSubObject = BUSUP01 BUSUP02 Animation = UVBATTBUS_D1.UVBATTBUS_D1 AnimationMode = MANUAL End AliasConditionState = REALLYDAMAGED SECOND_LIFE ARMORSET_CRATEUPGRADE_TWO AliasConditionState = RUBBLE SECOND_LIFE ARMORSET_CRATEUPGRADE_TWO ConditionState = RUBBLE ARMORSET_CRATEUPGRADE_TWO Model = UVBATTBUS_D ShowSubObject = BUSUP01 BUSUP02 End LeftFrontTireBone = Tire01 RightFrontTireBone = Tire04 LeftRearTireBone = Tire02 RightRearTireBone = Tire03 TireRotationMultiplier = 0.2 ; this * speed = rotation. Dust = RocketBuggyDust DirtSpray = RocketBuggyDirtSpray PowerslideSpray = RocketBuggyDirtPowerSlide End PlacementViewAngle = 180 ; ***DESIGN parameters *** DisplayName = OBJECT:BattleBus Side = GLA EditorSorting = VEHICLE TransportSlotCount = 8 ;how many "slots" we take in a transport (0 == not transportable) WeaponSet Conditions = None Weapon = PRIMARY None End WeaponSet Conditions = PLAYER_UPGRADE Weapon = PRIMARY BattleBusPassengerDummyWeapon End ArmorSet Conditions = None Armor = BattleBusTruckArmor DamageFX = TruckDamageFX End ArmorSet Conditions = SECOND_LIFE ; Set after our first death, natch Armor = BattleBusStructureArmorTough DamageFX = StructureDamageFX End ArmorSet Conditions = CRATE_UPGRADE_ONE Armor = BattleBusTruckArmorPlusOne DamageFX = TruckDamageFX End ArmorSet Conditions = CRATE_UPGRADE_ONE SECOND_LIFE ; Set after our first death, natch Armor = BattleBusStructureArmorToughPlusOne DamageFX = StructureDamageFX End ArmorSet Conditions = CRATE_UPGRADE_TWO Armor = BattleBusTruckArmorPlusTwo DamageFX = TruckDamageFX End ArmorSet Conditions = CRATE_UPGRADE_TWO SECOND_LIFE ; Set after our first death, natch Armor = BattleBusStructureArmorToughPlusTwo DamageFX = StructureDamageFX End BuildCost = 1000 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 = GLAVehicleBattleBusCommandSet ; *** AUDIO Parameters *** VoiceSelect = BattleBusVoiceSelect VoiceMove = BattleBusVoiceMove VoiceGuard = BattleBusVoiceMove VoiceAttack = BattleBusVoiceAttack SoundMoveStart = BattleBusMoveStart SoundMoveStartDamaged = BattleBusMoveStart SoundEnter = HumveeEnter SoundExit = HumveeExit UnitSpecificSounds ; These have the syntax of SomeNameSomewhereInCode = SomeNameSomewhereInLookupINIs VoiceCreate= BattleBusVoiceCreate TurretMoveStart = NoSound TurretMoveLoop = NoSound TruckLandingSound = RocketBuggyLand TruckPowerslideSound = NoSound VoiceUnload = BattleBusVoiceUnload End ; *** ENGINEERING Parameters *** RadarPriority = UNIT KindOf = PRELOAD SELECTABLE CAN_ATTACK CAN_CAST_REFLECTIONS VEHICLE SALVAGER ARMOR_SALVAGER SCORE Body = UndeadBody ModuleTag_02 ; Body module that treats the first death as a state change MaxHealth = 400.0 InitialHealth = 400.0 SecondLifeMaxHealth = 650.0 ; Subdual damage "Subdues" you (reaction defined by BodyModule) when it passes your max health. ; The cap limits how extra-subdued you can be, and the other numbers detemine how fast it drains away on its own. SubdualDamageCap = 750 SubdualDamageHealRate = 500 SubdualDamageHealAmount = 50 End IsTrainable = No ExperienceValue = 50 50 50 50 ; Experience point value at each level Behavior = AIUpdateInterface ModuleTag_04 AutoAcquireEnemiesWhenIdle = No ATTACK_BUILDINGS End Behavior = PhysicsBehavior ModuleTag_05 Mass = 40.0 End Behavior = AutoHealBehavior ModuleTag_06 HealingAmount = 2 HealingDelay = 1000 ; msec TriggeredBy = Upgrade_GLAJunkRepair End Locomotor = SET_NORMAL BattleBusLocomotor Behavior = BattleBusSlowDeathBehavior ModuleTag_08 DeathTypes = ALL -CRUSHED -SPLATTED -EXTRA_4 ProbabilityModifier = 5 ModifierBonusPerOverkillPercent = 20% ; negative means less likely to pick this in the face of much damage, positive means more likely ; Part the first, uses when killed the first time from non-system (unresistable) damage FXStartUndeath = FX_BattleBusStartUndeath OCLStartUndeath = OCL_BattleBusStartUndeath FXHitGround = FX_BattleBusHitGround OCLHitGround = OCL_BattleBusHitGround ThrowForce = 100.0 PercentDamageToPassengers = 50% EmptyHulkDestructionDelay = 1000 ; If non-zero, msec of emptiness before we kill ourselves with Penalty damage ; Part the second, normal fields of a SlowDeathBehavior DestructionDelay = 0 DestructionDelayVariance = 200 FX = FINAL FX_BuggyNewDeathExplosion OCL = FINAL OCL_BattleBusDeath End Behavior = TransportContain ModuleTag_10 PassengersAllowedToFire = Yes Slots = 8 DamagePercentToUnits = 100% AllowInsideKindOf = INFANTRY ExitDelay = 250 NumberOfExitPaths = 5 ; 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 WeaponBonusPassedToPassengers = Yes DelayExitInAir = Yes ArmedRidersUpgradeMyWeaponSet = Yes End ; Module 11 cut. ; Behavior = HordeUpdate ModuleTag_11 ; 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) ; 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 ; 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 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 Behavior = SlowDeathBehavior ModuleTag_30 // Empty Hulk sinking away DeathTypes = NONE +EXTRA_4 SinkDelay = 1 SinkRate = 2.5 DestructionDelay = 5000 End Behavior = TransitionDamageFX ModuleTag_31 ReallyDamagedParticleSystem1 = Bone:Smoke RandomBone:Yes PSys:SmallLightSmokeColumn ReallyDamagedFXList1 = Loc: X:0 Y:0 Z:0 FXList:FX_BattleMasterDamageTransition 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 GLAVehicleScudLauncherHiDef ; *** 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 = UVScudLchrHD 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:ScudLauncherHiDef Side = GLAToxinGeneral EditorSorting = VEHICLE TransportSlotCount = 3 ;how many "slots" we take in a transport (0 == not transportable) WeaponSet Conditions = None ;Weapon = PRIMARY SCUDLauncherGunExplosive Weapon = PRIMARY SCUDLauncherGunAnthrax Weapon = SECONDARY SCUDLauncherGunAnthrax 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 = PRIMARY Chem_SCUDLauncherGunAnthraxGamma Weapon = SECONDARY Chem_SCUDLauncherGunAnthraxGamma AutoChooseSources = PRIMARY FROM_SCRIPT FROM_AI DEFAULT_SWITCH_WEAPON AutoChooseSources = SECONDARY FROM_SCRIPT FROM_AI PreferredAgainst = SECONDARY INFANTRY ShareWeaponReloadTime = Yes WeaponLockSharedAcrossSets = Yes ; This set is so similar to the default set that it can hold the weapon lock End ArmorSet Conditions = None Armor = TruckArmor DamageFX = TankDamageFX End BuildCost = 1200 BuildTime = 20.0 ;in seconds VisionRange = 180 ShroudClearingRange = 300 Prerequisites Object = Chem_GLAArmsDealer Object = Chem_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 = Chem_GLAVehicleScudLauncherCommandSet ; *** AUDIO Parameters *** VoiceSelect = ScudLauncherVoiceSelect VoiceMove = ScudLauncherVoiceMove VoiceGuard = ScudLauncherVoiceMove VoiceAttack = ScudLauncherVoiceAttack SoundMoveStart = ScudLauncherMoveStart SoundMoveStartDamaged = ScudLauncherMoveStart 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 = Chem_Upgrade_GLAAnthraxGamma End Behavior = LockWeaponCreate ModuleTag_24 SlotToLock = PRIMARY ; Prevents indeterminate state plus two unpickable weapons equaling no attack. 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 ;------------------------------------------------------------------------------