Code:
;------------------------------------------------------------------------------
Weapon Lazr_ComancheRocketPodWeapon
PrimaryDamage = 30.0
PrimaryDamageRadius = 5.0
SecondaryDamage = 10.0
SecondaryDamageRadius = 40.0
ScatterRadius = 0;changed to zero, unless you want to soften the results of the table below
; @todo srj -- need better targets; these are copied from Scud Storm
; Instead of a purely random scatter distance, this will divide a clip evenly and randomly at these spots
; These specific points are an even distribution simulating a 150 ScatterRadius.
; With fewer entries than ClipSize, the extra will hit 0,0 as normal shots
; With extra entries, 9 of 12 could be used eg, and then you'd get a different nine next clip.
ScatterTargetScalar = 50; replaces the ScatterRadius, above, for scaling this table, below
ScatterTarget = X: 0.000 Y: 0.133
ScatterTarget = X: 0.133 Y:-0.200
ScatterTarget = X:-0.067 Y: 0.667
ScatterTarget = X: 0.300 Y: 0.300
ScatterTarget = X: 0.767 Y: 0.000
ScatterTarget = X: 0.500 Y:-0.567
ScatterTarget = X:-0.333 Y:-0.800
ScatterTarget = X:-0.600 Y:-0.1333
ScatterTarget = X:-0.567 Y: 0.433
ScatterTarget = X: 0.000 Y: 0.133
ScatterTarget = X: 0.133 Y:-0.200
ScatterTarget = X:-0.067 Y: 0.667
ScatterTarget = X: 0.300 Y: 0.300
ScatterTarget = X: 0.767 Y: 0.000
ScatterTarget = X: 0.500 Y:-0.567
ScatterTarget = X:-0.333 Y:-0.800
ScatterTarget = X:-0.600 Y:-0.1333
ScatterTarget = X:-0.567 Y: 0.433
ScatterTarget = X: 0.000 Y: 0.133
ScatterTarget = X: 0.133 Y:-0.200
ScatterRadiusVsInfantry = 0.0 ;When this weapon is used against infantry, it can randomly miss by as much as this distance.
AttackRange = 200.0
MinimumAttackRange = 0.0 ;100.0 ; this is to allow for a little "lead" for the helicopter targeting
DamageType = EXPLOSION
DeathType = EXPLODED
WeaponSpeed = 99999
ProjectileObject = PulseShell1
RadiusDamageAffects = ALLIES ENEMIES NEUTRALS
DelayBetweenShots = 200 ; time between shots, msec
ClipSize = 20 ; how many shots in a Clip (0 == infinite)
AutoReloadsClip = Yes
ClipReloadTime = 30000 ; how long to reload a Clip, msec
FireSound = ComancheRocketPodWeaponSound
ProjectileObject = PulseShell1
ProjectileDetonationFX = NormShell;GenericRedLaserFlare
FireFX = NormMuzzle;PaladinPointDefenseLaserFlare
ProjectileCollidesWith = STRUCTURES
AntiAirborneVehicle = No
AntiAirborneInfantry = No
End
;------------------------------------------------------------------------------
Weapon Lazr_ComancheRocketPodWeaponHyper
PrimaryDamage = 40.0
PrimaryDamageRadius = 5.0
SecondaryDamage = 10.0
SecondaryDamageRadius = 40.0
ScatterRadius = 0;changed to zero, unless you want to soften the results of the table below
; @todo srj -- need better targets; these are copied from Scud Storm
; Instead of a purely random scatter distance, this will divide a clip evenly and randomly at these spots
; These specific points are an even distribution simulating a 150 ScatterRadius.
; With fewer entries than ClipSize, the extra will hit 0,0 as normal shots
; With extra entries, 9 of 12 could be used eg, and then you'd get a different nine next clip.
ScatterTargetScalar = 50; replaces the ScatterRadius, above, for scaling this table, below
ScatterTarget = X: 0.000 Y: 0.133
ScatterTarget = X: 0.133 Y:-0.200
ScatterTarget = X:-0.067 Y: 0.667
ScatterTarget = X: 0.300 Y: 0.300
ScatterTarget = X: 0.767 Y: 0.000
ScatterTarget = X: 0.500 Y:-0.567
ScatterTarget = X:-0.333 Y:-0.800
ScatterTarget = X:-0.600 Y:-0.1333
ScatterTarget = X:-0.567 Y: 0.433
ScatterTarget = X: 0.000 Y: 0.133
ScatterTarget = X: 0.133 Y:-0.200
ScatterTarget = X:-0.067 Y: 0.667
ScatterTarget = X: 0.300 Y: 0.300
ScatterTarget = X: 0.767 Y: 0.000
ScatterTarget = X: 0.500 Y:-0.567
ScatterTarget = X:-0.333 Y:-0.800
ScatterTarget = X:-0.600 Y:-0.1333
ScatterTarget = X:-0.567 Y: 0.433
ScatterTarget = X: 0.000 Y: 0.133
ScatterTarget = X: 0.133 Y:-0.200
ScatterRadiusVsInfantry = 0.0 ;When this weapon is used against infantry, it can randomly miss by as much as this distance.
AttackRange = 200.0
MinimumAttackRange = 0.0 ;100.0 ; this is to allow for a little "lead" for the helicopter targeting
DamageType = EXPLOSION
DeathType = EXPLODED
WeaponSpeed = 99999
ProjectileObject = PulseShellH1
RadiusDamageAffects = ALLIES ENEMIES NEUTRALS
DelayBetweenShots = 200 ; time between shots, msec
ClipSize = 20 ; how many shots in a Clip (0 == infinite)
AutoReloadsClip = Yes
ClipReloadTime = 30000 ; how long to reload a Clip, msec
FireSound = ComancheRocketPodWeaponSound
ProjectileObject = PulseShellH1
ProjectileDetonationFX = HyperShell;GenericHyperLaserFlare
FireFX = HyperMuzzle;HyperLaserFlare
ProjectileCollidesWith = STRUCTURES
AntiAirborneVehicle = No
AntiAirborneInfantry = No
End
;------------------------------------------------------------------------------
Weapon LaserArtWeapon
PrimaryDamage = 150.0
PrimaryDamageRadius = 10.0
SecondaryDamage = 50.0
SecondaryDamageRadius = 25.0
ScatterRadiusVsInfantry = 20.0 ;When this weapon is used against infantry, it can randomly miss by as much as this distance.
AttackRange = 350.0
PreAttackDelay = 250
PreAttackType = PER_SHOT ; Do the delay every single shot
WeaponSpeed = 100.0 ; dist/sec (huge value == effectively instant)
MinimumAttackRange = 100.0
DamageType = EXPLOSION
DeathType = EXPLODED
ProjectileObject = PulseShell
ProjectileDetonationFX = NormShell;GenericRedLaserFlare
RadiusDamageAffects = SELF ALLIES ENEMIES NEUTRALS NOT_SIMILAR
FireSound = HumveeWeaponLaser
DelayBetweenShots = 1
ClipSize = 1 ; how many shots in a Clip (0 == infinite)
ClipReloadTime = 5000 ; how long to reload a Clip, msec
; Uses a clip of one to get the Reloading modelcondition
CapableOfFollowingWaypoints = Yes
; note, these only apply to units that aren't the explicit target
; (ie, units that just happen to "get in the way"... projectiles
; always collide with the Designated Target, regardless of these flags
ProjectileCollidesWith = STRUCTURES
End
;------------------------------------------------------------------------------
Weapon LaserArtWeaponHyper
PrimaryDamage = 160.0
PrimaryDamageRadius = 10.0
SecondaryDamage = 50.0
SecondaryDamageRadius = 25.0
ScatterRadiusVsInfantry = 20.0 ;When this weapon is used against infantry, it can randomly miss by as much as this distance.
AttackRange = 350.0
PreAttackDelay = 250
PreAttackType = PER_SHOT ; Do the delay every single shot
WeaponSpeed = 100.0 ; dist/sec (huge value == effectively instant)
MinimumAttackRange = 100.0
DamageType = EXPLOSION
DeathType = EXPLODED
ProjectileObject = PulseShellH
ProjectileDetonationFX = HyperShell;GenericHyperLaserFlare
RadiusDamageAffects = SELF ALLIES ENEMIES NEUTRALS NOT_SIMILAR
FireSound = HumveeWeaponLaser
DelayBetweenShots = 1
ClipSize = 1 ; how many shots in a Clip (0 == infinite)
ClipReloadTime = 5000 ; how long to reload a Clip, msec
; Uses a clip of one to get the Reloading modelcondition
CapableOfFollowingWaypoints = Yes
; note, these only apply to units that aren't the explicit target
; (ie, units that just happen to "get in the way"... projectiles
; always collide with the Designated Target, regardless of these flags
ProjectileCollidesWith = STRUCTURES
End
Code:
;------------------------------------------------------------------------------
Object Lazr_AmericaVehicleComanche
; *** ART Parameters ***
SelectPortrait = SACCommanche_L
ButtonImage = SACCommanche
UpgradeCameo1 = Upgrade_ComancheRocketPods
UpgradeCameo2 = Upgrade_AmericaAdvancedTraining
UpgradeCameo3 = Upgrade_AmericaCountermeasures
;UpgradeCameo4 = NONE
;UpgradeCameo5 = NONE
Draw = W3DModelDraw ModuleTag_01
DefaultConditionState
Model = AVLzrComanche
HideSubObject = Barrel01 Housecolor03 Housecolor04 Housecolor05 Housecolor06
Animation = AVLzrComanche.AVLzrComanche
AnimationMode = LOOP
WeaponMuzzleFlash = PRIMARY TurretFX
WeaponFireFXBone = PRIMARY Muzzle
WeaponFireFXBone = SECONDARY Muzzle
WeaponLaunchBone = SECONDARY Muzzle
End
ConditionState = REALLYDAMAGED
Model = AVLzrComanche_d
Animation = AVLzrComanche_d.AVLzrComanche_d
AnimationMode = LOOP
End
ConditionState = WEAPONSET_PLAYER_UPGRADE
HideSubObject = Barrel01 Housecolor03 Housecolor04 Housecolor05 Housecolor06
Animation = AVLzrComanche.AVLzrComanche
AnimationMode = LOOP
WeaponFireFXBone = TERTIARY TurretMS
WeaponLaunchBone = TERTIARY TurretMS
End
ConditionState = WEAPONSET_PLAYER_UPGRADE REALLYDAMAGED
Model = AVLzrComanche_d
HideSubObject = Barrel01 Housecolor03 Housecolor04 Housecolor05 Housecolor06
Animation = AVLzrComanche_d.AVLzrComanche_d
AnimationMode = LOOP
WeaponFireFXBone = TERTIARY TurretMS
WeaponLaunchBone = TERTIARY TurretMS
End
ConditionState = USER_1
Model = AVLzrComanche
ShowSubObject = Barrel01 Housecolor03 Housecolor04 Housecolor05 Housecolor06
Animation = AVLzrComanche.AVLzrComanche
AnimationMode = LOOP
WeaponMuzzleFlash = PRIMARY TurretFX
WeaponFireFXBone = PRIMARY Muzzle
WeaponFireFXBone = SECONDARY Muzzle
WeaponLaunchBone = SECONDARY Muzzle
WeaponFireFXBone = TERTIARY TurretMS
WeaponLaunchBone = TERTIARY TurretMS
End
ConditionState = USER_1 REALLYDAMAGED
Model = AVLzrComanche_d
Animation = AVLzrComanche_d.AVLzrComanche_d
AnimationMode = LOOP
ShowSubObject = Barrel01 Housecolor03 Housecolor04 Housecolor05 Housecolor06
WeaponFireFXBone = TERTIARY TurretMS
WeaponLaunchBone = TERTIARY TurretMS
End
ConditionState = USER_1 WEAPONSET_PLAYER_UPGRADE
ShowSubObject = Barrel01 Housecolor03 Housecolor04 Housecolor05 Housecolor06
Animation = AVLzrComanche.AVLzrComanche
AnimationMode = LOOP
WeaponFireFXBone = TERTIARY TurretMS
WeaponLaunchBone = TERTIARY TurretMS
End
ConditionState = USER_1 WEAPONSET_PLAYER_UPGRADE REALLYDAMAGED
Model = AVLzrComanche_d
ShowSubObject = Barrel01 Housecolor03 Housecolor04 Housecolor05 Housecolor06
Animation = AVLzrComanche_d.AVLzrComanche_d
AnimationMode = LOOP
WeaponFireFXBone = TERTIARY TurretMS
WeaponLaunchBone = TERTIARY TurretMS
End
ConditionState = RUBBLE
Model = AVLzrComanche_d
Animation = AVLzrComanche_d.AVLzrComanche_d
AnimationMode = LOOP
End
ConditionState = RUBBLE SPECIAL_DAMAGED
Model = AVLzrComanche_d
HideSubObject = AVComanche_Prop
End
OkToChangeModelColor = Yes
End
; ***DESIGN parameters ***
DisplayName = OBJECT:Comanche
EditorSorting = VEHICLE
Side = AmericaLaserGeneral
TransportSlotCount = 0 ;how many "slots" we take in a transport (0 == not transportable)
VisionRange = 200.0
ShroudClearingRange = 600
Prerequisites
Object = Lazr_AmericaAirfield
End
WeaponSet
Conditions = None
; -----
Weapon = PRIMARY Comanche20mmCannonWeapon
PreferredAgainst = PRIMARY INFANTRY
AutoChooseSources = PRIMARY FROM_PLAYER FROM_SCRIPT FROM_AI
; -----
Weapon = SECONDARY ComancheAntiTankMissileWeapon
PreferredAgainst = SECONDARY VEHICLE STRUCTURE
AutoChooseSources = SECONDARY FROM_PLAYER FROM_SCRIPT FROM_AI
; -----
Weapon = TERTIARY Lazr_ComancheRocketPodWeapon
AutoChooseSources = TERTIARY NONE
End
WeaponSet
Conditions = PLAYER_UPGRADE
; -----
Weapon = PRIMARY Comanche20mmCannonWeapon
PreferredAgainst = PRIMARY INFANTRY
AutoChooseSources = PRIMARY FROM_PLAYER FROM_SCRIPT FROM_AI
; -----
Weapon = SECONDARY ComancheAntiTankMissileWeapon
PreferredAgainst = SECONDARY VEHICLE STRUCTURE
AutoChooseSources = SECONDARY FROM_PLAYER FROM_SCRIPT FROM_AI
; -----
Weapon = TERTIARY Lazr_ComancheRocketPodWeaponHyper
AutoChooseSources = TERTIARY NONE
End
ArmorSet
Conditions = None
Armor = ComancheArmor
DamageFX = None
End
ArmorSet
Conditions = PLAYER_UPGRADE
Armor = CountermeasuresComancheArmor
DamageFX = None
End
BuildCost = 1500
BuildTime = 20 ; in seconds
ExperienceValue = 50 50 100 200 ; Experience point value at each level
ExperienceRequired = 0 100 200 400 ; Experience points needed to gain each level
IsTrainable = Yes ; Can gain experience
CommandSet = Lazr_AmericaVehicleComancheCommandSet
; *** AUDIO Parameters ***
VoiceSelect = ComancheVoiceSelect
VoiceMove = ComancheVoiceMove
VoiceGuard = ComancheVoiceMove
VoiceAttack = ComancheVoiceAttack
SoundAmbient = ComancheAmbientLoop
SoundAmbientRubble = NoSound
UnitSpecificSounds
; These have the syntax of SomeNameSomewhereInCode = SomeNameSomewhereInLookupINIs
VoiceCreate = ComancheVoiceCreate
SoundEject = PilotSoundEject
VoiceEject = PilotVoiceEject
Afterburner = RaptorAfterburner
VoiceGarrison = ComancheVoiceMove
TurretMoveStart = NoSound
TurretMoveLoop = NoSound
VoiceFireRocketPods = ComancheVoiceAttackRocket
End
; *** ENGINEERING Parameters ***
RadarPriority = UNIT
KindOf = PRELOAD CAN_CAST_REFLECTIONS CAN_ATTACK SELECTABLE VEHICLE SCORE AIRCRAFT PRODUCED_AT_HELIPAD
Behavior = WeaponSetUpgrade ModuleTag_02
TriggeredBy = Upgrade_AmericaHyperLaser;Upgrade_ComancheRocketPods
End
Behavior = ModelConditionUpgrade ModuleTag_18
ConditionFlag = USER_1
TriggeredBy = Upgrade_ComancheRocketPods
End
Behavior = ExperienceScalarUpgrade ModuleTag_03
TriggeredBy = Upgrade_AmericaAdvancedTraining
AddXPScalar = 1.0 ;Increases experience gained by an additional 100%
End
Body = ActiveBody ModuleTag_04
MaxHealth = 220.0
InitialHealth = 220.0
End
Behavior = FXListDie ModuleTag_05
DeathFX = FX_ComancheStartDeath
End
Behavior = JetAIUpdate ModuleTag_06
MinHeight = 5
NeedsRunway = No
KeepsParkingSpaceWhenAirborne = No
AutoAcquireEnemiesWhenIdle = Yes
; note that comanches do not return to base when idle
; this is a bit of a trick... normally, units cannot move-and-fire at
; the same time. we need the comanche to be able to. so we give it
; a "turret" (invisible) and put the two main weapons on it, but with
; no turn rate. voila!
Turret
TurretTurnRate = 0 ; this "turret" does not turn
TurretPitchRate = 0 ; nor does it pitch
ControlledWeaponSlots = PRIMARY SECONDARY
End
End
Locomotor = SET_NORMAL ComancheLocomotor
Locomotor = SET_TAXIING BasicHelicopterTaxiLocomotor
Behavior = PhysicsBehavior ModuleTag_07
Mass = 50.0
End
Behavior = HelicopterSlowDeathBehavior ModuleTag_08
DestructionDelay = 99999999 ; the destruction delay
SpiralOrbitTurnRate = 140.0 ; in degrees per second, bigger # = tighter spiral
SpiralOrbitForwardSpeed = 350.0 ; bigger # = larger spiral
SpiralOrbitForwardSpeedDamping = .9999 ; smaller #'s = slow down faster
MaxBraking = 190 ; max braking we can use during death spiral (lower num = wilder spiral)
SoundDeathLoop = ComancheDamagedLoop
MinSelfSpin = 100 ; in degrees per second
MaxSelfSpin = 300 ; in degrees per second
SelfSpinUpdateDelay = 100 ; in milliseconds
SelfSpinUpdateAmount = 10 ; in degrees
FallHowFast = 12.0% ; fraction of gravity, lower = take longer to fall
MinBladeFlyOffDelay = 1500 ; in milliseconds
MaxBladeFlyOffDelay = 1500 ; in milliseconds
AttachParticle = SootySmokeTrail
AttachParticleBone = Propeller02
BladeObjectName = ComancheBlades
BladeBoneName = Propeller01
; Most things that eject pilots do so immediately upon death,
; via use of EjectPilotDie, but Helicopters are a special case...
; they need to do so after their blades are ejected.
OCLEjectPilot = OCL_EjectPilotViaParachute
FXBlade = FX_HelicopterBladeExplosion
OCLBlade = OCL_HelicopterBladeExplosion
FXHitGround = FX_HelicopterHitGround
OCLHitGround = OCL_HelicopterHitGround
FXFinalBlowUp = FX_GroundedHelicopterBlowUp
OCLFinalBlowUp = OCL_GroundedHelicopterBlowUp
DelayFromGroundToFinalDeath = 1500
FinalRubbleObject = ComancheRubbleHull
End
Behavior = TransitionDamageFX ModuleTag_09
ReallyDamagedParticleSystem1 = Bone:Smoke RandomBone:Yes PSys:SmokeSmallContinuousDown
ReallyDamagedFXList1 = Loc: X:0 Y:0 Z:0 FXList:FX_ComancheDamageTransition
End
Behavior = ArmorUpgrade ModuleTag_Armor01
TriggeredBy = Upgrade_AmericaCountermeasures
End
Behavior = CountermeasuresBehavior ModuleTag_10
TriggeredBy = Upgrade_AmericaCountermeasures
FlareTemplateName = CountermeasureFlare
FlareBoneBaseName = Flare ; Name of the base flare bone (Flare01, Flare02, Flare03)
VolleySize = 2 ; Number of flares launched per volley (requires bones)
VolleyArcAngle = 60.0 ; Max angle of flare relative to forward direction (with VolleySize of 1, flare will always goes straight back).
VolleyVelocityFactor = 2.0 ; Shoots out flares at a stronger velocity with a higher value.
DelayBetweenVolleys = 1000 ; Time between flare volleys
NumberOfVolleys = 3 ; Number of times the volleys will fire before reloading
ReloadTime = 4000 ; After all volleys launched, then reloading must occur. If 0, then reloading occurs at airstrip only.
EvasionRate = 30% ; With active flares, the specified percentage will be diverted.
ReactionLaunchLatency = 0 ; Reaction between getting shot at and the firing of the first volley of countermeasures.
MissileDecoyDelay = 200 ; A reported missile that has been determined to hit a decoy will wait this long before acquiring countermeasures.
End
Behavior = FlammableUpdate ModuleTag_21
AflameDuration = 5000 ; If I catch fire, I'll burn for this long...
AflameDamageAmount = 3 ; taking this much damage...
AflameDamageDelay = 500 ; this often.
End
Geometry = BOX
GeometryMajorRadius = 20.0
GeometryMinorRadius = 3.0
GeometryHeight = 25.0
GeometryIsSmall = No
Shadow = SHADOW_VOLUME
ShadowSizeX = 89 ; minimum elevation angle above horizon. Used to limit shadow length
End
;----------------------------------------------------------
Object AmericaVehicleLaserArt
; *** ART Parameters ***
SelectPortrait = LzrArt
ButtonImage = LzrArt
UpgradeCameo1 = Upgrade_AmericaScoutDrone
UpgradeCameo2 = Upgrade_AmericaBattleDrone
UpgradeCameo3 = Upgrade_AmericaAdvancedTraining
UpgradeCameo4 = Upgrade_AmericaHellfireDrone
;UpgradeCameo5 = XXX
Draw = W3DTankDraw ModuleTag_01
OkToChangeModelColor = Yes
DefaultConditionState
Model = AVLzrArt
Turret = TURRET
TurretPitch = TURRETEL
WeaponFireFXBone = PRIMARY Muzzle
WeaponRecoilBone = PRIMARY Barrel
WeaponMuzzleFlash = PRIMARY Muzzle
WeaponLaunchBone = PRIMARY Muzzle
End
ConditionState = REALLYDAMAGED
Model = AVLzrArt_d
End
AliasConditionState = RUBBLE
TrackMarks = EXTnkTrack.tga
End
; ***DESIGN parameters ***
DisplayName = OBJECT:LaserArt
Side = AmericaLaserGeneral
EditorSorting = VEHICLE
TransportSlotCount = 3 ;how many "slots" we take in a transport (0 == not transportable)
BuildCost = 1200
BuildTime = 20.0 ;in seconds
VisionRange = 180
ShroudClearingRange = 200
Prerequisites
Object = Lazr_AmericaWarFactory
Object = Lazr_AmericaStrategyCenter
End
ExperienceValue = 50 50 100 150 ;Experience point value at each level
ExperienceRequired = 0 200 400 800 ;Experience points needed to gain each level
IsTrainable = Yes ;Can gain experience
WeaponSet
Conditions = None
Weapon = PRIMARY LaserArtWeapon
End
WeaponSet
Conditions = PLAYER_UPGRADE
Weapon = PRIMARY LaserArtWeaponHyper
End
ArmorSet
Conditions = None
Armor = TruckArmor
DamageFX = TankDamageFX
End
CrusherLevel = 2 ;What can I crush?: 1 = infantry, 2 = trees, 3 = vehicles
CrushableLevel = 2 ;What am I?: 0 = for infantry, 1 = for trees, 2 = general vehicles
CommandSet = AmericaVehicleLaserCommandSet
; *** AUDIO Parameters ***
VoiceSelect = TomahawkVoiceSelect
VoiceMove = TomahawkVoiceMove
VoiceGuard = TomahawkVoiceMove
VoiceAttack = TomahawkVoiceAttack
SoundMoveStart = TomahawkMoveStart
SoundMoveStartDamaged = TomahawkMoveStart
UnitSpecificSounds
; These have the syntax of SomeNameSomewhereInCode = SomeNameSomewhereInLookupINIs
VoiceCreate = TomahawkVoiceCreate
TurretMoveStart = NoSound
TurretMoveLoop = TurretMoveLoopLoud
SoundEject = PilotSoundEject
VoiceEject = PilotVoiceEject
VoiceCrush = TomahawkVoiceCrush
VoiceEnter = TomahawkVoiceMove
VoiceBombard = TomahawkVoiceAttack
End
; *** ENGINEERING Parameters ***
RadarPriority = UNIT
KindOf = PRELOAD SELECTABLE DONT_AUTO_CRUSH_INFANTRY CAN_ATTACK CAN_CAST_REFLECTIONS VEHICLE SCORE
Body = ActiveBody ModuleTag_02
MaxHealth = 180.0
InitialHealth = 180.0
; 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 = WeaponSetUpgrade ModuleTag_16
TriggeredBy = Upgrade_AmericaHyperLaser;Upgrade_ComancheRocketPods
End
Behavior = AIUpdateInterface ModuleTag_03
Turret
TurretTurnRate = 60 ; turn rate, in degrees per sec
TurretPitchRate = 60
FirePitch = 70 ; Instead of aiming pitchwise at the target, it will aim here
AllowsPitch = Yes
ControlledWeaponSlots = PRIMARY
End
AutoAcquireEnemiesWhenIdle = No NotWhileAttacking
End
Locomotor = SET_NORMAL TomahawkLocomotor
Behavior = PhysicsBehavior ModuleTag_04
Mass = 50.0
End
Behavior = SlowDeathBehavior ModuleTag_05
DeathTypes = ALL -CRUSHED -SPLATTED
DestructionDelay = 500
DestructionDelayVariance = 100
FX = INITIAL FX_GenericTankDeathEffect
OCL = MIDPOINT OCL_AmericaVehicleTomahawkDie
FX = FINAL FX_AmericaVehicleTomahawkDeathExplosion
End
Behavior = ObjectCreationUpgrade ModuleTag_06
UpgradeObject = Lazr_OCL_AmericanBattleDrone
TriggeredBy = Upgrade_AmericaBattleDrone
ConflictsWith = Upgrade_AmericaScoutDrone Upgrade_AmericaHellfireDrone
End
Behavior = ObjectCreationUpgrade ModuleTag_07
UpgradeObject = OCL_AmericanScoutDrone
TriggeredBy = Upgrade_AmericaScoutDrone
ConflictsWith = Upgrade_AmericaBattleDrone Upgrade_AmericaHellfireDrone
End
Behavior = ObjectCreationUpgrade ModuleTag_15
UpgradeObject = OCL_AmericanHellfireDrone
TriggeredBy = Upgrade_AmericaHellfireDrone
ConflictsWith = Upgrade_AmericaBattleDrone Upgrade_AmericaScoutDrone
End
Behavior = ProductionUpdate ModuleTag_08
MaxQueueEntries = 1; So you can't build multiple upgrades in the same frame
End
Behavior = ExperienceScalarUpgrade ModuleTag_09
TriggeredBy = Upgrade_AmericaAdvancedTraining
AddXPScalar = 1.0 ;Increases experience gained by an additional 100%
End
Behavior = DestroyDie ModuleTag_10
DeathTypes = NONE +CRUSHED +SPLATTED
End
Behavior = FXListDie ModuleTag_11
DeathTypes = NONE +CRUSHED +SPLATTED
DeathFX = FX_CarCrush
End
Behavior = CreateObjectDie ModuleTag_12
DeathTypes = NONE +CRUSHED +SPLATTED
CreationList = OCL_CrusaderTank_CrushEffect
End
; Behavior = FXListDie
; DeathTypes = ALL -CRUSHED -SPLATTED
; DeathFX = FX_GenericTankDeathEffect
; End
; Behavior = CreateObjectDie
; DeathTypes = ALL -CRUSHED -SPLATTED
; CreationList = OCL_GenericTankDeathEffect
; End
Behavior = EjectPilotDie ModuleTag_13
DeathTypes = ALL -CRUSHED -SPLATTED
ExemptStatus = HIJACKED
VeterancyLevels = ALL -REGULAR ;only vet+ gives pilot
GroundCreationList = OCL_EjectPilotOnGround
AirCreationList = OCL_EjectPilotViaParachute
End
Behavior = TransitionDamageFX ModuleTag_14
ReallyDamagedParticleSystem1 = Bone:Smoke RandomBone:Yes PSys:SmokeSmallContinuous01
ReallyDamagedFXList1 = Loc: X:0 Y:0 Z:0 FXList:FX_BattleMasterDamageTransition
End
Behavior = FlammableUpdate ModuleTag_21
AflameDuration = 5000 ; If I catch fire, I'll burn for this long...
AflameDamageAmount = 3 ; taking this much damage...
AflameDamageDelay = 500 ; this often.
End
Geometry = BOX
GeometryMajorRadius = 15.0
GeometryMinorRadius = 10.0
GeometryHeight = 10.0
GeometryIsSmall = Yes
Shadow = SHADOW_VOLUME
ShadowSizeX = 45 ; minimum elevation angle above horizon. Used to limit shadow length
End
Code:
FXList NormShell
ParticleSystem
Name = GenericRedLaserFlare
End
End
FXList NormMuzzle
ParticleSystem
Name = PaladinPointDefenseLaserFlare
End
End
FXList HyperShell
ParticleSystem
Name = GenericHyperLaserFlare
End
End
FXList HyperMuzzle
ParticleSystem
Name = HyperLaserFlare
End
End
Code:
;------------------------------------------------------------------------------
;------------------------------------------------------------------------------
;------------------------------------------------------------------------------
Object PulseShell
; *** ART Parameters ***
Draw = W3DModelDraw ModuleTag_01
OkToChangeModelColor = Yes
ConditionState = NONE
Model = SYSBlaster
End
End
; ***DESIGN parameters ***
DisplayName = OBJECT:Missile
EditorSorting = SYSTEM
VisionRange = 0.0
ArmorSet
Conditions = None
Armor = ProjectileArmor
DamageFX = None
End
; *** ENGINEERING Parameters ***
KindOf = PROJECTILE
Body = ActiveBody ModuleTag_02
MaxHealth = 100.0
InitialHealth = 100.0
End
Behavior = PhysicsBehavior ModuleTag_09
Mass = 1
End
Behavior = DumbProjectileBehavior ModuleTag_04
; To tweak a Bezier path, please see GS
FirstHeight = 50 ; Height of Bezier control points above highest intervening terrain
SecondHeight = 150
FirstPercentIndent = 30% ; Percentage of shot distance control points are placed
SecondPercentIndent = 70%
FlightPathAdjustDistPerSecond = 0 ; Can allow a max speed this can attempt to follow a target. Units are their velocity we can tag.
End
; Behavior = DumbProjectileBehavior ModuleTag_10
; End
; Locomotor = SET_NORMAL SpectreHowitzerShellLocomotor
Geometry = Cylinder ; Since collision extents can't tilt, this is a little fake
GeometryMajorRadius = 4.0
GeometryHeight = 4.0
GeometryIsSmall = Yes
; Scale = 3.0 ;Scaling
Shadow = SHADOW_DECAL
End
;------------------------------------------------------------------------------
;------------------------------------------------------------------------------
;------------------------------------------------------------------------------
Object PulseShellH
; *** ART Parameters ***
Draw = W3DModelDraw ModuleTag_01
OkToChangeModelColor = Yes
ConditionState = NONE
Model = SYSBlasterH
End
End
; ***DESIGN parameters ***
DisplayName = OBJECT:Missile
EditorSorting = SYSTEM
VisionRange = 0.0
ArmorSet
Conditions = None
Armor = ProjectileArmor
DamageFX = None
End
; *** ENGINEERING Parameters ***
KindOf = PROJECTILE
Body = ActiveBody ModuleTag_02
MaxHealth = 100.0
InitialHealth = 100.0
End
Behavior = DumbProjectileBehavior ModuleTag_04
; To tweak a Bezier path, please see GS
FirstHeight = 50 ; Height of Bezier control points above highest intervening terrain
SecondHeight = 150
FirstPercentIndent = 30% ; Percentage of shot distance control points are placed
SecondPercentIndent = 70%
FlightPathAdjustDistPerSecond = 0 ; Can allow a max speed this can attempt to follow a target. Units are their velocity we can tag.
End
; Locomotor = SET_NORMAL SpectreHowitzerShellLocomotor
Geometry = Cylinder ; Since collision extents can't tilt, this is a little fake
GeometryMajorRadius = 4.0
GeometryHeight = 4.0
GeometryIsSmall = Yes
; Scale = 3.0 ;Scaling
Shadow = SHADOW_DECAL
End
;------------------------------------------------------------------------------
;------------------------------------------------------------------------------
;------------------------------------------------------------------------------
Object PulseShell1
; *** ART Parameters ***
Draw = W3DModelDraw ModuleTag_01
OkToChangeModelColor = Yes
ConditionState = NONE
Model = SYSBlaster
End
End
; ***DESIGN parameters ***
DisplayName = OBJECT:Missile
EditorSorting = SYSTEM
VisionRange = 0.0
ArmorSet
Conditions = None
Armor = ProjectileArmor
DamageFX = None
End
; *** ENGINEERING Parameters ***
KindOf = PROJECTILE
Body = ActiveBody ModuleTag_02
MaxHealth = 100.0
InitialHealth = 100.0
End
; ---- begin Projectile death behaviors
Behavior = InstantDeathBehavior DeathModuleTag_01
DeathTypes = NONE +DETONATED
; we detonated normally.
; no FX, just quiet destroy ourselves
End
Behavior = InstantDeathBehavior DeathModuleTag_02
DeathTypes = NONE +LASERED
; shot down by laser.
FX = FX_GenericMissileDisintegrate
OCL = OCL_GenericMissileDisintegrate
End
Behavior = InstantDeathBehavior DeathModuleTag_03
DeathTypes = ALL -LASERED -DETONATED
; shot down by nonlaser.
FX = FX_GenericMissileDeath
End
; ---- end Projectile death behaviors
Behavior = PhysicsBehavior ModuleTag_06
Mass = 1
End
Behavior = MissileAIUpdate ModuleTag_07
TryToFollowTarget = No
FuelLifetime = 2000
InitialVelocity = 150 ; in dist/sec
IgnitionDelay = 0
IgnitionFX = FX_BuggyMissileIgnition
End
Locomotor = SET_NORMAL ComancheRocketPodLocomotor
; Behavior = DumbProjectileBehavior ModuleTag_10
; End
; Locomotor = SET_NORMAL SpectreHowitzerShellLocomotor
Geometry = Cylinder ; Since collision extents can't tilt, this is a little fake
GeometryMajorRadius = 4.0
GeometryHeight = 4.0
GeometryIsSmall = Yes
; Scale = 3.0 ;Scaling
Shadow = SHADOW_DECAL
End
;------------------------------------------------------------------------------
;------------------------------------------------------------------------------
;------------------------------------------------------------------------------
Object PulseShellH1
; *** ART Parameters ***
Draw = W3DModelDraw ModuleTag_01
OkToChangeModelColor = Yes
ConditionState = NONE
Model = SYSBlasterH
End
End
; ***DESIGN parameters ***
DisplayName = OBJECT:Missile
EditorSorting = SYSTEM
VisionRange = 0.0
ArmorSet
Conditions = None
Armor = ProjectileArmor
DamageFX = None
End
; *** ENGINEERING Parameters ***
KindOf = PROJECTILE
Body = ActiveBody ModuleTag_02
MaxHealth = 100.0
InitialHealth = 100.0
End
; ---- begin Projectile death behaviors
Behavior = InstantDeathBehavior DeathModuleTag_01
DeathTypes = NONE +DETONATED
; we detonated normally.
; no FX, just quiet destroy ourselves
End
Behavior = InstantDeathBehavior DeathModuleTag_02
DeathTypes = NONE +LASERED
; shot down by laser.
FX = FX_GenericMissileDisintegrate
OCL = OCL_GenericMissileDisintegrate
End
Behavior = InstantDeathBehavior DeathModuleTag_03
DeathTypes = ALL -LASERED -DETONATED
; shot down by nonlaser.
FX = FX_GenericMissileDeath
End
; ---- end Projectile death behaviors
Behavior = PhysicsBehavior ModuleTag_06
Mass = 1
End
Behavior = MissileAIUpdate ModuleTag_07
TryToFollowTarget = No
FuelLifetime = 2000
InitialVelocity = 150 ; in dist/sec
IgnitionDelay = 0
IgnitionFX = FX_BuggyMissileIgnition
End
Locomotor = SET_NORMAL ComancheRocketPodLocomotor
; Locomotor = SET_NORMAL SpectreHowitzerShellLocomotor
Geometry = Cylinder ; Since collision extents can't tilt, this is a little fake
GeometryMajorRadius = 4.0
GeometryHeight = 4.0
GeometryIsSmall = Yes
; Scale = 3.0 ;Scaling
Shadow = SHADOW_DECAL
End
Code:
CommandSet Lazr_AmericaAirfieldCommandSet
1 = Lazr_Command_ConstructAmericaJetRaptor
2 = Lazr_Command_ConstructAmericaVehicleComanche
3 = Lazr_Command_ConstructAmericaJetAurora
4 = Lazr_Command_ConstructAmericaJetStealthFighter
5 = Lazr_Command_ConstructAmericaVehicleBlackhawk
7 = Command_UpgradeComancheRocketPods
8 = Command_UpgradeAmericaLaserMissiles
9 = Command_UpgradeAmericaCountermeasures
10 = Command_UpgradeAmericaBunkerBusters
13 = Command_SetRallyPoint
14 = Command_Sell
End
CommandSet Lazr_AmericaStrategyCenterCommandSet
1 = Command_InitiateBattlePlanBombardment
2 = Command_CIAIntelligence
3 = Command_InitiateBattlePlanHoldTheLine
4 = Command_UpgradeAmericaAPCCannon
5 = Command_InitiateBattlePlanSearchAndDestroy
6 = Command_UpgradeAmericaChemicalSuits
7 = Command_UpgradeAmericaMOAB
8 = Command_UpgradeAmericaCompositeArmor
9 = Command_UpgradeAmericaAdvancedTraining
10 = Command_UpgradeAmericaDroneArmor
11 = Command_StrategyCenter_Stop
12 = Command_UpgradeAmericaHyperLaser
13 = Command_UpgradeAmericaSupplyLines
14 = Command_Sell
End
CommandSet Lazr_AmericaVehicleComancheCommandSet
1 = Command_AmericaVehicleComancheFireRocketPods
11 = Command_AttackMove
13 = Command_Guard
14 = Command_Stop
End
CommandSet AmericaVehicleLaserCommandSet
1 = Lazr_Command_ConstructAmericaVehicleBattleDrone
2 = Lazr_Command_ConstructAmericaVehicleScoutDrone
3 = Lazr_Command_ConstructAmericaVehicleHellfireDrone
11 = Command_AttackMove
13 = Command_Guard
14 = Command_Stop
End
Now when I start a match as or with a laser general then the game crashes, WB opens normally, the error log reads as follows:
Release Crash at Mon Jun 14 22:43:53 2004
; Reason Uncaught Exception in GameEngine::update
Last error:
Current stack: