IPB

Welcome Guest ( Log In | Register )

 
Reply to this topicStart new topic
Adding Veterancy Gain Create causes game to crash
Spec
post 25 Feb 2015, 5:54
Post #1



Group Icon

Group: Members
Posts: 122
Joined: 30 June 2013
Member No.: 10007



Hi everyone, when I try to add veterancy gain create to SW Gen Infantry, the game crashes when after 5 mins or building more than 5 of them. I didn't mix codes of those infantry just the Veterancy Behavior
Go to the top of the page
 
+Quote Post
Oliver
post 25 Feb 2015, 14:10
Post #2



Group Icon

Group: Dev. Team
Posts: 964
Joined: 15 August 2013
From: Portugal, Lisbon
Member No.: 10072



Could you post the code here please?
Go to the top of the page
 
+Quote Post
Spec
post 26 Feb 2015, 13:05
Post #3



Group Icon

Group: Members
Posts: 122
Joined: 30 June 2013
Member No.: 10007



I don't have the codes right now, so can you post the example of SW Ranger or Missile Defender that has a veterancy gain create. Sorry if i say this because I don't have the codes at this time

This post has been edited by Fapper: 26 Feb 2015, 13:07
Go to the top of the page
 
+Quote Post
Spec
post 23 May 2015, 16:08
Post #4



Group Icon

Group: Members
Posts: 122
Joined: 30 June 2013
Member No.: 10007



;------------------------------------------------------------------------------
Object SupW_AmericaInfantryRanger

; *** ART Parameters ***
SelectPortrait = SARanger_L
ButtonImage = SARanger

UpgradeCameo1 = Upgrade_AmericaRangerFlashBangGrenade
UpgradeCameo2 = Upgrade_AmericaAdvancedTraining
UpgradeCameo3 = Upgrade_InfantryCaptureBuilding
UpgradeCameo4 = Upgrade_AmericaChemicalSuits
UpgradeCameo5 = Upgrade_AmericaHEGrenades

Draw = W3DModelDraw ModuleTag_01

OkToChangeModelColor = Yes

; this says "we don't use these condition states at all, so completely
; ignore them for purposes of matchmaking"... this is useful to help
; reduce the number of AliasConditionState clauses you must add in
; order to avoid ambiguity in some cases.
IgnoreConditionStates = PREATTACK_A FIRING_A BETWEEN_FIRING_SHOTS_A RELOADING_A

; --- Idle
DefaultConditionState
Model = AIRngr_SKN
IdleAnimation = AIRngr_SKL.AIRngr_STA 0 35
IdleAnimation = AIRngr_SKL.AIRngr_IDA
IdleAnimation = AIRngr_SKL.AIRngr_IDB
AnimationMode = ONCE
WeaponFireFXBone = PRIMARY Muzzle
WeaponMuzzleFlash = PRIMARY MuzzleFX
WeaponFireFXBone = SECONDARY Muzzle
WeaponLaunchBone = SECONDARY Muzzle
WeaponFireFXBone = TERTIARY Muzzle
WeaponLaunchBone = TERTIARY Muzzle
TransitionKey = TRANS_Stand
End

ConditionState = REALLYDAMAGED
IdleAnimation = AIRngr_SKL.AIRngr_STB 0 35
IdleAnimation = AIRngr_SKL.AIRngr_IDC
IdleAnimation = AIRngr_SKL.AIRngr_IDD
AnimationMode = ONCE
TransitionKey = TRANS_StandInjured
End

TransitionState = TRANS_Stand TRANS_StandInjured
Animation = AIRngr_SKL.AIRngr_SA2SB
AnimationMode = ONCE
End

; --- attacking (Machine Gun)
ConditionState = USING_WEAPON_A
Animation = AIRngr_SKL.AIRngr_ATA
AnimationMode = LOOP
TransitionKey = TRANS_FiringA
End

ConditionState = USING_WEAPON_A REALLYDAMAGED
Animation = AIRngr_SKL.AIRngr_ATA2
AnimationMode = LOOP
TransitionKey = TRANS_FiringAInjured
End

TransitionState = TRANS_FiringA TRANS_FiringAInjured
Animation = AIRngr_SKL.AIRngr_A2WAA
AnimationMode = ONCE
End

TransitionState = TRANS_Stand TRANS_FiringA
Animation = AIRngr_SKL.AIRngr_ATAST
AnimationMode = ONCE
AnimationSpeedFactorRange = 4 4
End

TransitionState = TRANS_FiringA TRANS_Stand
Animation = AIRngr_SKL.AIRngr_ATAED
AnimationMode = ONCE
AnimationSpeedFactorRange = 4 4
End

TransitionState = TRANS_StandInjured TRANS_FiringAInjured
Animation = AIRngr_SKL.AIRngr_S2WAA
AnimationMode = ONCE
AnimationSpeedFactorRange = 4 4
End

TransitionState = TRANS_FiringAInjured TRANS_StandInjured
Animation = AIRngr_SKL.AIRngr_WAA2S
AnimationMode = ONCE
AnimationSpeedFactorRange = 4 4
End

TransitionState = TRANS_Stand TRANS_Move
Animation = AIRngr_SKL.AIRngr_STA2RNA
AnimationMode = ONCE
End

; --- attacking (Flash Bang Grenade Launcher)
ConditionState = PREATTACK_B
Animation = AIRngr_SKL.AIRngr_ATBA
AnimationMode = ONCE
TransitionKey = TRANS_FiringB
End
AliasConditionState = PREATTACK_B MOVING
AliasConditionState = PREATTACK_B FIRING_B
AliasConditionState = PREATTACK_B BETWEEN_FIRING_SHOTS_B

ConditionState = FIRING_B
Animation = AIRngr_SKL.AIRngr_ATBB
AnimationMode = ONCE
TransitionKey = TRANS_FiringB
End

ConditionState = BETWEEN_FIRING_SHOTS_B
Animation = AIRngr_SKL.AIRngr_ATBB
AnimationMode = MANUAL
Flags = START_FRAME_LAST
TransitionKey = TRANS_FiringB
WaitForStateToFinishIfPossible = TRANS_FiringB
End
AliasConditionState = RELOADING_B

TransitionState = TRANS_Stand TRANS_FiringB
Animation = AIRngr_SKL.AIRngr_ATBST1
AnimationMode = ONCE
End

TransitionState = TRANS_FiringB TRANS_Stand
Animation = AIRngr_SKL.AIRngr_ATBST2
AnimationMode = ONCE
End

ConditionState = PREATTACK_B REALLYDAMAGED
Animation = AIRngr_SKL.AIRngr_ATB2A
AnimationMode = ONCE
TransitionKey = TRANS_FiringBInjured
End
AliasConditionState = PREATTACK_B MOVING REALLYDAMAGED
AliasConditionState = PREATTACK_B FIRING_B REALLYDAMAGED
AliasConditionState = PREATTACK_B BETWEEN_FIRING_SHOTS_B REALLYDAMAGED

ConditionState = FIRING_B REALLYDAMAGED
Animation = AIRngr_SKL.AIRngr_ATB2B
AnimationMode = ONCE
TransitionKey = TRANS_FiringBInjured
End

ConditionState = BETWEEN_FIRING_SHOTS_B REALLYDAMAGED
Animation = AIRngr_SKL.AIRngr_ATB2B
AnimationMode = MANUAL
Flags = START_FRAME_LAST
TransitionKey = TRANS_FiringBInjured
WaitForStateToFinishIfPossible = TRANS_FiringBInjured
End
AliasConditionState = RELOADING_B REALLYDAMAGED

TransitionState = TRANS_StandInjured TRANS_FiringBInjured
Animation = AIRngr_SKL.AIRngr_ATB2ST1
AnimationMode = ONCE
End

TransitionState = TRANS_FiringBInjured TRANS_StandInjured
Animation = AIRngr_SKL.AIRngr_ATB2ST2
AnimationMode = ONCE
End

; --- attacking (Grenade Launcher)
ConditionState = PREATTACK_C
Animation = AIRngr_SKL.AIRngr_ATBA
AnimationMode = ONCE
TransitionKey = TRANS_FiringC
End
AliasConditionState = PREATTACK_C MOVING
AliasConditionState = PREATTACK_C FIRING_C
AliasConditionState = PREATTACK_C BETWEEN_FIRING_SHOTS_C

ConditionState = FIRING_C
Animation = AIRngr_SKL.AIRngr_ATBB
AnimationMode = ONCE
TransitionKey = TRANS_FiringC
End

ConditionState = BETWEEN_FIRING_SHOTS_C
Animation = AIRngr_SKL.AIRngr_ATBB
AnimationMode = MANUAL
Flags = START_FRAME_LAST
TransitionKey = TRANS_FiringC
WaitForStateToFinishIfPossible = TRANS_FiringC
End
AliasConditionState = RELOADING_C

TransitionState = TRANS_Stand TRANS_FiringC
Animation = AIRngr_SKL.AIRngr_ATBST1
AnimationMode = ONCE
End

TransitionState = TRANS_FiringB TRANS_Stand
Animation = AIRngr_SKL.AIRngr_ATBST2
AnimationMode = ONCE
End

ConditionState = PREATTACK_C REALLYDAMAGED
Animation = AIRngr_SKL.AIRngr_ATB2A
AnimationMode = ONCE
TransitionKey = TRANS_FiringBInjured
End
AliasConditionState = PREATTACK_C MOVING REALLYDAMAGED
AliasConditionState = PREATTACK_C FIRING_C REALLYDAMAGED
AliasConditionState = PREATTACK_C BETWEEN_FIRING_SHOTS_C REALLYDAMAGED

ConditionState = FIRING_C REALLYDAMAGED
Animation = AIRngr_SKL.AIRngr_ATB2B
AnimationMode = ONCE
TransitionKey = TRANS_FiringBInjured
End

ConditionState = BETWEEN_FIRING_SHOTS_C REALLYDAMAGED
Animation = AIRngr_SKL.AIRngr_ATB2B
AnimationMode = MANUAL
Flags = START_FRAME_LAST
TransitionKey = TRANS_FiringBInjured
WaitForStateToFinishIfPossible = TRANS_FiringBInjured
End
AliasConditionState = RELOADING_C REALLYDAMAGED

TransitionState = TRANS_StandInjured TRANS_FiringBInjured
Animation = AIRngr_SKL.AIRngr_ATB2ST1
AnimationMode = ONCE
End

TransitionState = TRANS_FiringBInjured TRANS_StandInjured
Animation = AIRngr_SKL.AIRngr_ATB2ST2
AnimationMode = ONCE
End

; -- cross-attack transitions

TransitionState = TRANS_FiringA TRANS_FiringB
Animation = AIRngr_SKL.AIRngr_ATA2AB
AnimationMode = ONCE
AnimationSpeedFactorRange = 4 4
End

TransitionState = TRANS_FiringB TRANS_FiringA
Animation = AIRngr_SKL.AIRngr_ATA2AB
AnimationMode = ONCE_BACKWARDS
AnimationSpeedFactorRange = 4 4
End


; --- moving
ConditionState = MOVING
Animation = AIRngr_SKL.AIRngr_RNA 30
AnimationMode = LOOP
Flags = RANDOMSTART
TransitionKey = TRANS_Move
ParticleSysBone = None InfantryDustTrails
End
AliasConditionState = MOVING ATTACKING

ConditionState = MOVING REALLYDAMAGED
Animation = AIRngr_SKL.AIRngr_RNB 30
AnimationMode = LOOP
Flags = RANDOMSTART
TransitionKey = TRANS_Move
End
AliasConditionState = MOVING REALLYDAMAGED ATTACKING

; --- dying anims
ConditionState = DYING
Animation = AIRngr_SKL.AIRngr_DTA
Animation = AIRngr_SKL.AIRngr_DTB
AnimationMode = ONCE
TransitionKey = None
End

TransitionState = TRANS_Dying TRANS_Flailing
Animation = AIRngr_SKL.AIRngr_ADTF1
AnimationMode = ONCE
End

ConditionState = DYING EXPLODED_FLAILING
Animation = AIRngr_SKL.AIRngr_ADTF2
AnimationMode = LOOP
TransitionKey = TRANS_Flailing
End

ConditionState = DYING EXPLODED_BOUNCING
Animation = AIRngr_SKL.AIRngr_ADTF3
AnimationMode = ONCE
TransitionKey = None
End
AliasConditionState = DYING SPLATTED

; --- cheering
ConditionState = SPECIAL_CHEERING
Animation = AIRngr_SKL.AIRngr_CHA
AnimationMode = LOOP
End

ConditionState = SPECIAL_CHEERING REALLYDAMAGED
Animation = AIRngr_SKL.AIRngr_CHB
AnimationMode = LOOP
End

; ----- PARACHUTING ANIMATIONS
ConditionState = FREEFALL
Animation = AIRngr_SKL.AIRngr_PFL
AnimationMode = LOOP
TransitionKey = TRANS_Falling
End
AliasConditionState = FREEFALL REALLYDAMAGED
AliasConditionState = FREEFALL DYING
ConditionState = PARACHUTING
Animation = AIRngr_SKL.AIRngr_PHG
AnimationMode = LOOP
Flags = PRISTINE_BONE_POS_IN_FINAL_FRAME ; our bone positions should come from the last frame, rather than the first
TransitionKey = TRANS_Chute
End
AliasConditionState = PARACHUTING REALLYDAMAGED
AliasConditionState = PARACHUTING DYING
TransitionState = TRANS_Falling TRANS_Chute
Animation = AIRngr_SKL.AIRngr_POP
AnimationMode = ONCE
Flags = PRISTINE_BONE_POS_IN_FINAL_FRAME ; our bone positions should come from the last frame, rather than the first
End
TransitionState = TRANS_Chute TRANS_Stand
Animation = AIRngr_SKL.AIRngr_PTD
AnimationMode = ONCE
End
TransitionState = TRANS_Chute TRANS_StandInjured
Animation = AIRngr_SKL.AIRngr_PTD
AnimationMode = ONCE
End

; ------- Bldg-capture

ConditionState = UNPACKING
Model = AIRngr_F_SKN
Animation = AIRngr_F_SKL.AIRngr_F_FDP1
AnimationMode = ONCE
End
AliasConditionState = UNPACKING REALLYDAMAGED


ConditionState = RAISING_FLAG
Model = AIRngr_F_SKN
Animation = AIRngr_F_SKL.AIRngr_F_FDP2
AnimationMode = ONCE
TransitionKey = TRANS_Raising
End
AliasConditionState = RAISING_FLAG REALLYDAMAGED

ConditionState = PACKING
Model = AIRngr_F_SKN
Animation = AIRngr_F_SKL.AIRngr_F_FDP1
AnimationMode = ONCE_BACKWARDS
Flags = START_FRAME_LAST
TransitionKey = TRANS_Packing
End
AliasConditionState = PACKING REALLYDAMAGED

TransitionState = TRANS_Raising TRANS_Packing
Model = AIRngr_F_SKN
Animation = AIRngr_F_SKL.AIRngr_F_FDP2
AnimationMode = ONCE_BACKWARDS
Flags = START_FRAME_LAST
End

; --- RAPPELLING ANIMATIONS
ConditionState = RAPPELLING
Animation = AIRngr_SKL.AIRngr_RPL1 ;30
AnimationMode = LOOP
Flags = RANDOMSTART
TransitionKey = TRANS_Rappelling
End
AliasConditionState = MOVING RAPPELLING

TransitionState = TRANS_Rappelling TRANS_Stand
Animation = AIRngr_SKL.AIRngr_RPL2
AnimationMode = ONCE
End

TransitionState = TRANS_Rappelling TRANS_StandInjured
Animation = AIRngr_SKL.AIRngr_RPL2
AnimationMode = ONCE
End

End

; ***DESIGN parameters ***
DisplayName = OBJECT:Ranger
Side = AmericaSuperWeaponGeneral
EditorSorting = INFANTRY
TransportSlotCount = 1 ;how many "slots" we take in a transport (0 == not transportable)

WeaponSet
Conditions = None
Weapon = PRIMARY RangerAdvancedCombatRifle
End
WeaponSet
Conditions = PLAYER_UPGRADE
Weapon = PRIMARY RangerAdvancedCombatRifle
Weapon = SECONDARY RangerFlashBangGrenadeWeapon
AutoChooseSources = PRIMARY FROM_SCRIPT FROM_AI DEFAULT_SWITCH_WEAPON
AutoChooseSources = SECONDARY FROM_SCRIPT FROM_AI
WeaponLockSharedAcrossSets = Yes ; This set is so similar to the default set that it can hold the weapon lock
End
ArmorSet
Conditions = None
Armor = HumanArmor
DamageFX = InfantryDamageFX
End
ArmorSet
Conditions = PLAYER_UPGRADE
Armor = ChemSuitHumanArmor
DamageFX = None
End
VisionRange = 100
ShroudClearingRange = 400
Prerequisites
Object = SupW_AmericaBarracks
End
BuildCost = 200
BuildTime = 5.0 ;in seconds

ExperienceValue = 20 20 40 60 ;Experience point value at each level
ExperienceRequired = 0 5 10 120 ;Experience points needed to gain each level
IsTrainable = Yes ;Can gain experience
CrushableLevel = 0 ;What am I?: 0 = for infantry, 1 = for trees, 2 = general vehicles
CommandSet = SupW_AmericaInfantryRangerCommandSet

; *** AUDIO Parameters ***
VoiceSelect = RangerVoiceSelect
VoiceMove = RangerVoiceMove
VoiceGuard = RangerVoiceMove
VoiceAttack = RangerVoiceAttack
VoiceFear = RangerVoiceFear
VoiceTaskComplete = RangerVoiceCaptureComplete

UnitSpecificSounds
VoiceEnter = RangerVoiceMove
VoiceEnterHostile = RangerVoiceMove
VoiceGarrison = RangerVoiceGarrison
VoiceCreate = RangerVoiceCreate
VoiceSubdue = RangerVoiceSubdue
VoiceClearBuilding = RangerVoiceClearBuilding
VoiceGetHealed = RangerVoiceMove
VoicePrimaryWeaponMode = RangerVoiceModeGun
VoiceSecondaryWeaponMode = RangerVoiceModeFlashBang
End

UnitSpecificFX
; These have the syntax of SomeNameSomewhereInCode = SomeNameSomewhereInLookupINIs
CombatDropKillFX = FX_RangerCombatDropKill
End

; *** ENGINEERING Parameters ***
RadarPriority = UNIT
KindOf = PRELOAD SELECTABLE CAN_ATTACK ATTACK_NEEDS_LINE_OF_SIGHT CAN_CAST_REFLECTIONS INFANTRY CAN_RAPPEL SCORE

Behavior = CommandButtonHuntUpdate ModuleTag_02
End

Body = ActiveBody ModuleTag_03
MaxHealth = 180.0
InitialHealth = 180.0
End

Behavior = ExperienceScalarUpgrade ModuleTag_04
TriggeredBy = Upgrade_AmericaAdvancedTraining
AddXPScalar = 1.0 ;Increases experience gained by an additional 100%
End

Behavior = AutoFindHealingUpdate ModuleTag_05 ; This update will have the unit go to a healing station if injured. jba
ScanRate = 1000 ; once a second.
ScanRange = 300 ;
NeverHeal = 0.85 ; don't heal if we are > 85% healthy.
AlwaysHeal = 0.25 ; if we get below 25%, find healing right away.
End

Behavior = AIUpdateInterface ModuleTag_06
AutoAcquireEnemiesWhenIdle = Yes
End
Locomotor = SET_NORMAL BasicHumanLocomotor

Behavior = PhysicsBehavior ModuleTag_07
Mass = 5.0
End

Behavior = ProductionUpdate ModuleTag_08
; nothing
End

Behavior = CommandButtonHuntUpdate ModuleTag_09 ; allows use of command button hunt script with this unit.
End

Behavior = WeaponSetUpgrade ModuleTag_10
TriggeredBy = Upgrade_AmericaRangerFlashBangGrenade
End


; --- begin Death modules ---
Behavior = SlowDeathBehavior ModuleTag_Death01
DeathTypes = ALL -CRUSHED -SPLATTED -EXPLODED -BURNED -POISONED -POISONED_BETA -POISONED_GAMMA
SinkDelay = 3000
SinkRate = 0.5 ; in Dist/Sec
DestructionDelay = 8000
FX = INITIAL FX_RangerDie
End
Behavior = SlowDeathBehavior ModuleTag_Death02
DeathTypes = NONE +CRUSHED +SPLATTED
SinkDelay = 3000
SinkRate = 0.5 ; in Dist/Sec
DestructionDelay = 8000
FX = INITIAL FX_GIDieCrushed
End
Behavior = SlowDeathBehavior ModuleTag_Death03
DeathTypes = NONE +EXPLODED
SinkDelay = 3000
SinkRate = 0.5 ; in Dist/Sec
DestructionDelay = 8000
FX = INITIAL FX_RangerDie
FlingForce = 8
FlingForceVariance = 3
FlingPitch = 60
FlingPitchVariance = 10
End
Behavior = SlowDeathBehavior ModuleTag_Death04
DeathTypes = NONE +BURNED
DestructionDelay = 0
FX = INITIAL FX_DieByFireUSA
OCL = INITIAL OCL_FlamingInfantry
End
Behavior = SlowDeathBehavior ModuleTag_Death05
DeathTypes = NONE +POISONED
DestructionDelay = 0
FX = INITIAL FX_DieByToxinUSA
OCL = INITIAL OCL_ToxicInfantry
End

Behavior = SlowDeathBehavior ModuleTag_Death06 ; don't forget to give it a new, unique module tag
DeathTypes = NONE +POISONED_BETA
DestructionDelay = 0
FX = INITIAL FX_DieByToxinUSA
OCL = INITIAL OCL_ToxicInfantryBeta ;you'll have to create this OCL and make it use the blue guys instead of green ones
End
Behavior = SlowDeathBehavior ModuleTag_Death07
DeathTypes = NONE +POISONED_GAMMA
DestructionDelay = 0
FX = INITIAL FX_DieByToxinGLA
OCL = INITIAL OCL_ToxicInfantryGamma
End
; --- end Death modules ---

Behavior = SquishCollide ModuleTag_12
;nothing
End
Behavior = ArmorUpgrade ModuleTag_Armor01
TriggeredBy = Upgrade_AmericaChemicalSuits
End

;Behavior = PoisonedBehavior ModuleTag_17
;PoisonDamageInterval = 100 ; Every this many msec I will retake the poison damage dealt me...
;PoisonDuration = 3000 ; ... for this long after last hit by poison damage
;End

Behavior = SpecialAbility ModuleTag_18
SpecialPowerTemplate = SpecialAbilityRangerCaptureBuilding
UpdateModuleStartsAttack = Yes
StartsPaused = Yes ; Unpaused by upgrade module
InitiateSound = RangerVoiceCapture
End
Behavior = SpecialAbilityUpdate ModuleTag_19
SpecialPowerTemplate = SpecialAbilityRangerCaptureBuilding
StartAbilityRange = 5.0
UnpackTime = 3000 ; (changing this will scale anim speed)
PreparationTime = 20000 ; time to complete hack once prepared (changing this will scale anim speed)
PackTime = 2000 ; (changing this will scale anim speed)
DoCaptureFX = Yes
AwardXPForTriggering = 15
;SkillPointsForTriggering = ??? -- Dustin, fill me out if you want different balance values.
End

Behavior = UnpauseSpecialPowerUpgrade ModuleTag_20
SpecialPowerTemplate = SpecialAbilityRangerCaptureBuilding
TriggeredBy = Upgrade_InfantryCaptureBuilding
End

Behavior = LockWeaponCreate ModuleTag_21
SlotToLock = PRIMARY ; Prevents indeterminate state plus two unpickable weapons equaling no attack.
End

;Behavior = VeterancyGainCreate ModuleTag_22
;StartingLevel = ELITE
;End
Geometry = CYLINDER
GeometryMajorRadius = 7.0
GeometryMinorRadius = 7.0
GeometryHeight = 13.0

GeometryIsSmall = Yes
Shadow = SHADOW_DECAL
ShadowSizeX = 14;
ShadowSizeY = 14;
ShadowTexture = ShadowI;
BuildCompletion = APPEARS_AT_RALLY_POINT

End

;------------------------------------------------------------------------------
Object SupW_AmericaInfantryMissileDefender

; *** ART Parameters ***
SelectPortrait = SAMissleDefender_L
ButtonImage = SAMissleDefender

UpgradeCameo1 = Upgrade_AmericaAdvancedTraining
UpgradeCameo2 = Upgrade_AmericaChemicalSuits
;UpgradeCameo3 = NONE
;UpgradeCameo4 = NONE
;UpgradeCameo5 = NONE

Draw = W3DModelDraw ModuleTag_01
OkToChangeModelColor = Yes

;***NOTE***
;A little history -- the MissileDefender now uses the assets of the TankHunter.
;The TH uses assets of the GLA tunnel defender, and the TD uses assets of the NEW
;MD. It was a design/art/code decision because the new missile defender animations
;don't suit that of a mobile/offensive unit with packing and unpacking.

DefaultConditionState
Model = NITHNT_SKN
IdleAnimation = NITHNT_SKL.NITHNT_STA 0 30
IdleAnimation = NITHNT_SKL.NITHNT_IDA
IdleAnimation = NITHNT_SKL.NITHNT_IDB
AnimationMode = ONCE
AnimationSpeedFactorRange = 0.8 1.2
TransitionKey = TRANS_Stand
WeaponMuzzleFlash = PRIMARY MuzzleFX
WeaponFireFXBone = PRIMARY Muzzle
WeaponLaunchBone = PRIMARY Muzzle
WeaponLaunchBone = SECONDARY Muzzle

End
AliasConditionState = REALLYDAMAGED

ConditionState = FIRING_A
Animation = NITHNT_SKL.NITHNT_ATA
AnimationMode = ONCE
TransitionKey = TRANS_START_FIRING
End
AliasConditionState = FIRING_A REALLYDAMAGED

ConditionState = BETWEEN_FIRING_SHOTS_A
Animation = NITHNT_SKL.NITHNT_STA
AnimationMode = ONCE
; this is basically a trick: this guy has a nontrivial animation for firing,
; and a long recycle time between shots. we want him to finish his fire animation
; (unless he's ordered to do something else), so this is just a handy trick that
; says, "if the previous state had this transition key, allow it to finish before
; switching to us, if possible".
WaitForStateToFinishIfPossible = TRANS_START_FIRING
End
AliasConditionState = BETWEEN_FIRING_SHOTS_A REALLYDAMAGED

ConditionState = MOVING
Animation = NITHNT_SKL.NITHNT_RNA 20
AnimationMode = LOOP
Flags = RANDOMSTART
TransitionKey = None
ParticleSysBone = None InfantryDustTrails
End
AliasConditionState = MOVING REALLYDAMAGED

ConditionState = RELOADING_A
Animation = NITHNT_SKL.NITHNT_ATA 10
AnimationMode = ONCE
;WeaponLaunchBone = PRIMARY WeaponA
End
AliasConditionState = MOVING RELOADING_A
AliasConditionState = MOVING RELOADING_A REALLYDAMAGED

ConditionState = DYING
Animation = NITHNT_SKL.NITHNT_DTA
Animation = NITHNT_SKL.NITHNT_DTB
AnimationSpeedFactorRange = 0.9 1.25
AnimationMode = ONCE
TransitionKey = TRANS_Dying
End

TransitionState = TRANS_Dying TRANS_Flailing
Animation = NITHNT_SKL.NITHNT_ADTA1
AnimationMode = ONCE
End

ConditionState = DYING EXPLODED_FLAILING
Animation = NITHNT_SKL.NITHNT_ADTA2
AnimationMode = LOOP
TransitionKey = TRANS_Flailing
End

ConditionState = DYING EXPLODED_BOUNCING
Animation = NITHNT_SKL.NITHNT_ADTA3
AnimationMode = ONCE
TransitionKey = None
End

;PARACHUTING ANIMATIONS
ConditionState = FREEFALL
Animation = NITHNT_SKL.NITHNT_PFL
AnimationMode = LOOP
TransitionKey = TRANS_Falling
End
AliasConditionState = FREEFALL REALLYDAMAGED
AliasConditionState = FREEFALL DYING

ConditionState = PARACHUTING
Animation = NITHNT_SKL.NITHNT_PHG
AnimationMode = LOOP
Flags = PRISTINE_BONE_POS_IN_FINAL_FRAME ; our bone positions should come from the last frame, rather than the first
TransitionKey = TRANS_Chute
End
AliasConditionState = PARACHUTING REALLYDAMAGED
AliasConditionState = PARACHUTING DYING

TransitionState = TRANS_Falling TRANS_Chute
Animation = NITHNT_SKL.NITHNT_POP
AnimationMode = ONCE
Flags = PRISTINE_BONE_POS_IN_FINAL_FRAME ; our bone positions should come from the last frame, rather than the first
End

TransitionState = TRANS_Chute TRANS_Stand
Animation = NITHNT_SKL.NITHNT_PTD
AnimationMode = ONCE
End

End

; ***DESIGN parameters ***
DisplayName = OBJECT:MissileTeam
Side = AmericaSuperWeaponGeneral
EditorSorting = INFANTRY
TransportSlotCount = 1 ;how many "slots" we take in a transport (0 == not transportable)

WeaponSet
Conditions = None
Weapon = PRIMARY MissileDefenderMissileWeapon
Weapon = SECONDARY MissileDefenderLaserGuidedMissileWeapon ;Controlled by special ability
AutoChooseSources = PRIMARY FROM_PLAYER FROM_SCRIPT FROM_AI
AutoChooseSources = SECONDARY NONE
End
ArmorSet
Conditions = None
Armor = HumanArmor
DamageFX = InfantryDamageFX
End
ArmorSet
Conditions = PLAYER_UPGRADE
Armor = ChemSuitHumanArmor
DamageFX = InfantryDamageFX
End

VisionRange = 150
ShroudClearingRange = 400
Prerequisites
Object = SupW_AmericaBarracks

End
BuildCost = 300
BuildTime = 5.0 ;in seconds

ExperienceValue = 20 20 40 60 ;Experience point value at each level
ExperienceRequired = 0 5 10 400 ;Experience points needed to gain each level
IsTrainable = Yes ;Can gain experience
CrushableLevel = 0 ;What am I?: 0 = for infantry, 1 = for trees, 2 = general vehicles
CommandSet = SupW_AmericaInfantryMissileDefenderCommandSet

; *** AUDIO Parameters ***
VoiceSelect = MissileDefenderVoiceSelect
VoiceMove = MissileDefenderVoiceMove
VoiceGuard = MissileDefenderVoiceMove
VoiceAttack = MissileDefenderVoiceAttack
VoiceAttackAir = MissileDefenderVoiceAttack
VoiceFear = MissileDefenderVoiceFear

UnitSpecificSounds
VoiceGarrison = MissileDefenderVoiceGarrison
VoiceCreate = MissileDefenderVoiceCreate
VoiceEnter = MissileDefenderVoiceMove
VoiceGetHealed = MissileDefenderVoiceMove
End

; *** ENGINEERING Parameters ***
RadarPriority = UNIT
KindOf = PRELOAD SELECTABLE CAN_ATTACK ATTACK_NEEDS_LINE_OF_SIGHT CAN_CAST_REFLECTIONS INFANTRY SCORE

Body = ActiveBody ModuleTag_02
MaxHealth = 120.0
InitialHealth = 120.0
End

Behavior = ArmorUpgrade ModuleTag_Armor01
TriggeredBy = Upgrade_AmericaChemicalSuits
End

Behavior = ExperienceScalarUpgrade ModuleTag_03
TriggeredBy = Upgrade_AmericaAdvancedTraining
AddXPScalar = 1.0 ;Increases experience gained by an additional 100%
End

Behavior = AIUpdateInterface ModuleTag_04
AutoAcquireEnemiesWhenIdle = Yes
End

Behavior = AutoFindHealingUpdate ModuleTag_05 ; This update will have the unit go to a healing station if injured. jba
ScanRate = 1000 ; once a second.
ScanRange = 300 ;
NeverHeal = 0.85 ; don't heal if we are > 85% healthy.
AlwaysHeal = 0.25 ; if we get below 25%, find healing right away.
End

Locomotor = SET_NORMAL MissileDefenderLocomotor

Behavior = PhysicsBehavior ModuleTag_06
Mass = 5.0
End

Behavior = SpecialAbility ModuleTag_08
SpecialPowerTemplate = SpecialAbilityMissileDefenderLaserGuidedMissiles
UpdateModuleStartsAttack = Yes
InitiateSound = MissileDefenderVoiceAttackLaser
End
Behavior = SpecialAbilityUpdate ModuleTag_09
SpecialPowerTemplate = SpecialAbilityMissileDefenderLaserGuidedMissiles
StartAbilityRange = 200.0
AbilityAbortRange = 250.0 ;If the target moves outside this range, abort.
PreparationTime = 1000
PersistentPrepTime = 500
SpecialObject = LaserBeam
SpecialObjectAttachToBone = Muzzle01
End

;Added by JMC on 7/12/03 so that the skirmish AI can tell the missile defenders to hunt using
;the laser guided missiles.
Behavior = CommandButtonHuntUpdate ModuleTag_CBHunt ; allows use of command button hunt script with this unit.
End


Behavior = SquishCollide ModuleTag_10
;nothing
End


; --- begin Death modules ---
Behavior = SlowDeathBehavior ModuleTag_Death01
DeathTypes = ALL -CRUSHED -SPLATTED -EXPLODED -BURNED -POISONED -POISONED_BETA -POISONED_GAMMA
SinkDelay = 3000
SinkRate = 0.5 ; in Dist/Sec
DestructionDelay = 8000
FX = INITIAL FX_MissileDefenderDie
End
Behavior = SlowDeathBehavior ModuleTag_Death02
DeathTypes = NONE +CRUSHED +SPLATTED
SinkDelay = 3000
SinkRate = 0.5 ; in Dist/Sec
DestructionDelay = 8000
FX = INITIAL FX_GIDieCrushed
End
Behavior = SlowDeathBehavior ModuleTag_Death03
DeathTypes = NONE +EXPLODED
SinkDelay = 3000
SinkRate = 0.5 ; in Dist/Sec
DestructionDelay = 8000
FX = INITIAL FX_MissileDefenderDie
FlingForce = 8
FlingForceVariance = 3
FlingPitch = 60
FlingPitchVariance = 10
End
Behavior = SlowDeathBehavior ModuleTag_Death04
DeathTypes = NONE +BURNED
DestructionDelay = 0
FX = INITIAL FX_DieByFireUSA
OCL = INITIAL OCL_FlamingInfantry
End
Behavior = SlowDeathBehavior ModuleTag_Death05
DeathTypes = NONE +POISONED
DestructionDelay = 0
FX = INITIAL FX_DieByToxinUSA
OCL = INITIAL OCL_ToxicInfantry
End
Behavior = SlowDeathBehavior ModuleTag_Death06 ; don't forget to give it a new, unique module tag
DeathTypes = NONE +POISONED_BETA
DestructionDelay = 0
FX = INITIAL FX_DieByToxinUSA
OCL = INITIAL OCL_ToxicInfantryBeta ;you'll have to create this OCL and make it use the blue guys instead of green ones
End
Behavior = SlowDeathBehavior ModuleTag_Death07
DeathTypes = NONE +POISONED_GAMMA
DestructionDelay = 0
FX = INITIAL FX_DieByToxinGLA
OCL = INITIAL OCL_ToxicInfantryGamma
End
; --- end Death modules ---

;Behavior = PoisonedBehavior ModuleTag_13
;PoisonDamageInterval = 100 ; Every this many msec I will retake the poison damage dealt me...
;PoisonDuration = 3000 ; ... for this long after last hit by poison damage
;End

;Behavior = VeterancyGainCreate ModuleTag_22
;StartingLevel = ELITE
;End

Geometry = CYLINDER
GeometryMajorRadius = 7.0
GeometryMinorRadius = 7.0
GeometryHeight = 12.0
GeometryIsSmall = Yes
Shadow = SHADOW_DECAL
ShadowSizeX = 14;
ShadowSizeY = 14;
ShadowTexture = ShadowI;
BuildCompletion = APPEARS_AT_RALLY_POINT

End

;------------------------------------------------------------------------------
Object SupW_AmericaInfantryPathfinder

; *** ART Parameters ***
SelectPortrait = SAPathfinder1_L
ButtonImage = SAPathfinder1

UpgradeCameo1 = Upgrade_AmericaAdvancedTraining
UpgradeCameo2 = Upgrade_AmericaChemicalSuits
;UpgradeCameo3 = Upgrade_AmericaRifleUpgrade
;UpgradeCameo4 = NONE
;UpgradeCameo5 = NONE

Draw = W3DModelDraw ModuleTag_01

OkToChangeModelColor = Yes

DefaultConditionState
Model = AIPFDR_SKN
IdleAnimation = AIPFDR_SKL.AIPFDR_STA
IdleAnimation = AIPFDR_SKL.AIPFDR_IDA
AnimationMode = ONCE
WeaponFireFXBone = PRIMARY Muzzle
WeaponMuzzleFlash = PRIMARY MuzzleFX
TransitionKey = TRANS_Standing
End
AliasConditionState = REALLYDAMAGED

ConditionState = MOVING
Animation = AIPFDR_SKL.AIPFDR_RNA 25
AnimationMode = LOOP
Flags = RANDOMSTART
TransitionKey = TRANS_Standing
ParticleSysBone = None InfantryDustTrails
End
AliasConditionState = MOVING REALLYDAMAGED

ConditionState = FIRING_A
Animation = AIPFDR_SKL.AIPFDR_ATB ; recoil in standing position
AnimationMode = ONCE
TransitionKey = TRANS_FiringA
End
AliasConditionState = FIRING_A MOVING
AliasConditionState = FIRING_A MOVING REALLYDAMAGED
AliasConditionState = FIRING_A REALLYDAMAGED

ConditionState = BETWEEN_FIRING_SHOTS_A
Animation = AIPFDR_SKL.AIPFDR_ATBST ; motionless in standing position
AnimationMode = ONCE
WaitForStateToFinishIfPossible = TRANS_FiringA
End
AliasConditionState = BETWEEN_FIRING_SHOTS_A REALLYDAMAGED
AliasConditionState = RELOADING_A
AliasConditionState = RELOADING_A REALLYDAMAGED

ConditionState = FIRING_B
Animation = AIPFDR_SKL.AIPFDR_ATBST ; using laser
AnimationMode = ONCE
TransitionKey = TRANS_FiringB
End
AliasConditionState = FIRING_B MOVING
AliasConditionState = FIRING_B MOVING REALLYDAMAGED
AliasConditionState = FIRING_B REALLYDAMAGED

ConditionState = DYING
Animation = AIPFDR_SKL.AIPFDR_DTA
AnimationMode = ONCE
TransitionKey = TRANS_Dying
End

TransitionState = TRANS_Dying TRANS_Flailing
Animation = AIPFDR_SKL.AIPFDR_ADTA1
AnimationMode = ONCE
End

ConditionState = DYING EXPLODED_FLAILING
Animation = AIPFDR_SKL.AIPFDR_ADTA2
AnimationMode = LOOP
TransitionKey = TRANS_Flailing
End

ConditionState = DYING EXPLODED_BOUNCING
Animation = AIPFDR_SKL.AIPFDR_ADTA3
AnimationMode = ONCE
TransitionKey = None
End

ConditionState = FREEFALL
Animation = AIPFDR_SKL.AIPFDR_PFL
AnimationMode = LOOP
TransitionKey = TRANS_Falling
End
AliasConditionState = FREEFALL DYING

ConditionState = PARACHUTING
Animation = AIPFDR_SKL.AIPFDR_PHG
AnimationMode = LOOP
Flags = PRISTINE_BONE_POS_IN_FINAL_FRAME
;our bone positions should come from the last frame, rather than the first
TransitionKey = TRANS_Chute
End
AliasConditionState = PARACHUTING DYING


TransitionState = TRANS_Falling TRANS_Chute
Animation = AIPFDR_SKL.AIPFDR_POP
AnimationMode = ONCE
Flags = PRISTINE_BONE_POS_IN_FINAL_FRAME
;our bone positions should come from the last frame, rather than the first
End

TransitionState = TRANS_Chute TRANS_Standing
Animation = AIPFDR_SKL.AIPFDR_PTD
AnimationMode = ONCE
End
End


; ***DESIGN parameters ***
DisplayName = OBJECT:Pathfinder
Side = AmericaSuperWeaponGeneral
EditorSorting = INFANTRY
TransportSlotCount = 1 ;how many "slots" we take in a transport (0 == not transportable)

WeaponSet
Conditions = None
Weapon = PRIMARY USAPathfinderSniperRifle
Weapon = SECONDARY LaserTargeter
AutoChooseSources = PRIMARY FROM_PLAYER FROM_SCRIPT FROM_AI
AutoChooseSources = SECONDARY NONE
End
ArmorSet
Conditions = None
Armor = HumanArmor
DamageFX = InfantryDamageFX
End
ArmorSet
Conditions = PLAYER_UPGRADE
Armor = ChemSuitHumanArmor
DamageFX = InfantryDamageFX
End
VisionRange = 300
ShroudClearingRange = 400
Prerequisites
Object = SupW_AmericaBarracks
Science = SCIENCE_Pathfinder
End
BuildCost = 600
BuildTime = 10.0 ;in seconds

ExperienceValue = 40 40 60 80 ;Experience point value at each level
ExperienceRequired = 0 5 10 200 ;Experience points needed to gain each level
IsTrainable = Yes ;Can gain experience
CrushableLevel = 0 ;What am I?: 0 = for infantry, 1 = for trees, 2 = general vehicles
CommandSet = AmericaInfantryPathfinderCommandSet

; *** AUDIO Parameters ***
VoiceSelect = PathfinderVoiceSelect
VoiceMove = PathfinderVoiceMove
VoiceGuard = PathfinderVoiceMove
VoiceAttack = PathfinderVoiceAttack
VoiceFear = PathfinderVoiceFear
SoundStealthOn = StealthOn
SoundStealthOff = StealthOff
VoiceFear = PathfinderVoiceFear

UnitSpecificSounds
VoiceCreate = PathfinderVoiceCreate
VoiceGarrison = PathfinderVoiceGarrison
VoiceEnter = PathfinderVoiceMove
VoiceEnterHostile = PathfinderVoiceMove
VoiceGetHealed = PathfinderVoiceMove
End

; *** ENGINEERING Parameters ***
RadarPriority = UNIT
KindOf = PRELOAD SELECTABLE CAN_ATTACK ATTACK_NEEDS_LINE_OF_SIGHT CAN_CAST_REFLECTIONS INFANTRY STEALTH_GARRISON SCORE CANNOT_RETALIATE

Body = ActiveBody ModuleTag_02
MaxHealth = 120.0
InitialHealth = 120.0
End

Behavior = ArmorUpgrade ModuleTag_Armor01
TriggeredBy = Upgrade_AmericaChemicalSuits
End

Behavior = AIUpdateInterface ModuleTag_03
AutoAcquireEnemiesWhenIdle = Yes Stealthed
MoodAttackCheckRate = 250
End

Behavior = AutoFindHealingUpdate ModuleTag_04 ; This update will have the unit go to a healing station if injured. jba
ScanRate = 1000 ; once a second.
ScanRange = 300 ;
NeverHeal = 0.85 ; don't heal if we are > 85% healthy.
AlwaysHeal = 0.25 ; if we get below 25%, find healing right away.
End

Locomotor = SET_NORMAL ColonelBurtonGroundLocomotor

Behavior = ExperienceScalarUpgrade ModuleTag_05
TriggeredBy = Upgrade_AmericaAdvancedTraining
AddXPScalar = 1.0 ;Increases experience gained by an additional 100%
End

Behavior = PhysicsBehavior ModuleTag_06
Mass = 5.0
End
Behavior = StealthDetectorUpdate ModuleTag_08
DetectionRate = 500 ; how often to rescan for stealthed things in my sight (msec)
;DetectionRange = ??? ;Dustin, enable this for independant balancing!
CanDetectWhileGarrisoned = No ;Garrisoned means being in a structure that you units can shoot out of.
CanDetectWhileContained = No ;Contained means being in a transport or tunnel network.
End
Behavior = StealthUpdate ModuleTag_09
StealthDelay = 0 ; msec
StealthForbiddenConditions = MOVING ; stays stealthy while attacking
FriendlyOpacityMin = 30.0%
FriendlyOpacityMax = 80.0%
PulseFrequency = 500 ; msec
MoveThresholdSpeed = 3
InnateStealth = Yes
OrderIdleEnemiesToAttackMeUponReveal = Yes
End

Behavior = SquishCollide ModuleTag_10
;nothing
End


; --- begin Death modules ---
Behavior = SlowDeathBehavior ModuleTag_Death01
DeathTypes = ALL -CRUSHED -SPLATTED -EXPLODED -BURNED -POISONED -POISONED_BETA -POISONED_GAMMA
SinkDelay = 3000
SinkRate = 0.5 ; in Dist/Sec
DestructionDelay = 8000
FX = INITIAL FX_PathfinderDie
End
Behavior = SlowDeathBehavior ModuleTag_Death02
DeathTypes = NONE +CRUSHED +SPLATTED
SinkDelay = 3000
SinkRate = 0.5 ; in Dist/Sec
DestructionDelay = 8000
FX = INITIAL FX_GIDieCrushed
End
Behavior = SlowDeathBehavior ModuleTag_Death03
DeathTypes = NONE +EXPLODED
SinkDelay = 3000
SinkRate = 0.5 ; in Dist/Sec
DestructionDelay = 8000
FX = INITIAL FX_PathfinderDie
FlingForce = 8
FlingForceVariance = 3
FlingPitch = 60
FlingPitchVariance = 10
End
Behavior = SlowDeathBehavior ModuleTag_Death04
DeathTypes = NONE +BURNED
DestructionDelay = 0
FX = INITIAL FX_DieByFireUSA
OCL = INITIAL OCL_FlamingInfantry
End
Behavior = SlowDeathBehavior ModuleTag_Death05
DeathTypes = NONE +POISONED
DestructionDelay = 0
FX = INITIAL FX_DieByToxinUSA
OCL = INITIAL OCL_ToxicInfantry
End
Behavior = SlowDeathBehavior ModuleTag_Death06 ; don't forget to give it a new, unique module tag
DeathTypes = NONE +POISONED_BETA
DestructionDelay = 0
FX = INITIAL FX_DieByToxinUSA
OCL = INITIAL OCL_ToxicInfantryBeta ;you'll have to create this OCL and make it use the blue guys instead of green ones
End
Behavior = SlowDeathBehavior ModuleTag_Death07
DeathTypes = NONE +POISONED_GAMMA
DestructionDelay = 0
FX = INITIAL FX_DieByToxinGLA
OCL = INITIAL OCL_ToxicInfantryGamma
End
; --- end Death modules ---

;Behavior = PoisonedBehavior ModuleTag_13
;PoisonDamageInterval = 100 ; Every this many msec I will retake the poison damage dealt me...
;PoisonDuration = 3000 ; ... for this long after last hit by poison damage
;End

Behavior = SpecialAbility ModuleTag_14
SpecialPowerTemplate = SpecialAbilityLaserTargeter
UpdateModuleStartsAttack = Yes
End
Behavior = SpecialAbilityUpdate ModuleTag_15
SpecialPowerTemplate = SpecialAbilityLaserTargeter
StartAbilityRange = 400.0
AbilityAbortRange = 425.0 ;If the target moves outside this range, abort.
PreparationTime = 100
PersistentPrepTime = 50
SpecialObject = LaserBeam
SpecialObjectAttachToBone = Muzzle01
End

Behavior = CommandButtonHuntUpdate ModuleTag_CBHunt ; allows use of command button hunt script with this unit.
End

;Behavior = VeterancyGainCreate ModuleTag_22 ; Don't add this to ALL SUPER WEAPON GENERAL INFANTRY TO AVOID CRASHES
;StartingLevel = ELITE
;End

Geometry = CYLINDER
GeometryMajorRadius = 10.0
GeometryMinorRadius = 10.0
GeometryHeight = 12.0
GeometryIsSmall = Yes
Shadow = SHADOW_DECAL
ShadowSizeX = 14;
ShadowSizeY = 14;
ShadowTexture = ShadowI;
BuildCompletion = APPEARS_AT_RALLY_POINT

End

;------------------------------------------------------------------------------
Object SupW_AmericaInfantryColonelBurton

; *** ART Parameters ***
SelectPortrait = SABurton_L
ButtonImage = SABurton
UpgradeCameo1 = Upgrade_AmericaAdvancedTraining
UpgradeCameo2 = Upgrade_AmericaChemicalSuits

Draw = W3DModelDraw ModuleTag_01
OkToChangeModelColor = Yes

; idle
DefaultConditionState
Model = AIHERO_SKN
IdleAnimation = AIHERO_SKL.AIHERO_STA 0 25
IdleAnimation = AIHERO_SKL.AIHERO_IDA
IdleAnimation = AIHERO_SKL.AIHERO_IDB
AnimationMode = ONCE
TransitionKey = TRANS_Stand
WeaponFireFXBone = PRIMARY Muzzle
WeaponMuzzleFlash = PRIMARY MuzzleFX
WeaponMuzzleFlash = SECONDARY NONE
HideSubObject = MUZZLEFX01
End


; injured idle
ConditionState = REALLYDAMAGED
IdleAnimation = AIHERO_SKL.AIHERO_ISTA 0 30
IdleAnimation = AIHERO_SKL.AIHERO_IIDA
IdleAnimation = AIHERO_SKL.AIHERO_IIDB
AnimationMode = ONCE
TransitionKey = TRANS_StandInjured
End


TransitionState = TRANS_Stand TRANS_StandInjured
Animation = AIHERO_SKL.AIHERO_ISTAHIT
AnimationMode = ONCE
End

; moving
ConditionState = MOVING
Animation = AIHERO_SKL.AIHERO_RNA 26
AnimationMode = LOOP
Flags = RANDOMSTART
TransitionKey = TRANS_Walking
ParticleSysBone = None InfantryDustTrails
HideSubObject = MUZZLEFX01
End
AliasConditionState = MOVING FIRING_A
AliasConditionState = MOVING BETWEEN_FIRING_SHOTS_A
AliasConditionState = MOVING RELOADING_A
AliasConditionState = MOVING FIRING_B
AliasConditionState = MOVING BETWEEN_FIRING_SHOTS_B
AliasConditionState = MOVING RELOADING_B

; injured moving
ConditionState = MOVING REALLYDAMAGED
Animation = AIHERO_SKL.AIHERO_IRNA 26
AnimationMode = LOOP
Flags = RANDOMSTART
TransitionKey = TRANS_WalkingInjured
ParticleSysBone = None InfantryDustTrails
HideSubObject = MUZZLEFX01
End
AliasConditionState = MOVING FIRING_A REALLYDAMAGED
AliasConditionState = MOVING BETWEEN_FIRING_SHOTS_A REALLYDAMAGED
AliasConditionState = MOVING RELOADING_A REALLYDAMAGED
AliasConditionState = MOVING FIRING_B REALLYDAMAGED
AliasConditionState = MOVING BETWEEN_FIRING_SHOTS_B REALLYDAMAGED
AliasConditionState = MOVING RELOADING_B REALLYDAMAGED

; Firing animation
ConditionState = FIRING_A
Animation = AIHERO_SKL.AIHERO_ATA
AnimationMode = ONCE
AnimationSpeedFactorRange = 1.5 1.5
TransitionKey = TRANS_FiringA
End

ConditionState = BETWEEN_FIRING_SHOTS_A
Animation = AIHERO_SKL.AIHERO_ATA
AnimationMode = MANUAL
Flags = START_FRAME_LAST
WaitForStateToFinishIfPossible = TRANS_FiringA
End
AliasConditionState = RELOADING_A

; Injured Firing animation
ConditionState = FIRING_A REALLYDAMAGED
Animation = AIHERO_SKL.AIHERO_IATA
AnimationMode = ONCE
AnimationSpeedFactorRange = 1.5 1.5
TransitionKey = TRANS_FiringAInjured
End

ConditionState = BETWEEN_FIRING_SHOTS_A REALLYDAMAGED
Animation = AIHERO_SKL.AIHERO_IATA
AnimationMode = MANUAL
Flags = START_FRAME_LAST
WaitForStateToFinishIfPossible = TRANS_FiringAInjured
End
AliasConditionState = RELOADING_A REALLYDAMAGED

TransitionState = TRANS_FiringA TRANS_FiringAInjured
Animation = AIHERO_SKL.AIHERO_IATAHIT
AnimationMode = ONCE
End

; Placing charge animation
ConditionState = UNPACKING
Animation = AIHERO_SKL.AIHERO_ATB1
AnimationMode = ONCE
End
AliasConditionState = MOVING UNPACKING

; Injured Placing charge animation
ConditionState = UNPACKING REALLYDAMAGED
Animation = AIHERO_SKL.AIHERO_IATB1
AnimationMode = ONCE
End
AliasConditionState = MOVING UNPACKING REALLYDAMAGED

; Stab animations
ConditionState = PREATTACK_B
Animation = AIHERO_SKL.AIHERO_ATC
AnimationMode = ONCE
TransitionKey = TRANS_Stabbing
HideSubObject = MUZZLEFX01
End
AliasConditionState = PREATTACK_B MOVING
AliasConditionState = PREATTACK_B FIRING_B
AliasConditionState = PREATTACK_B BETWEEN_FIRING_SHOTS_B

ConditionState = FIRING_B
Animation = AIHERO_SKL.AIHERO_ATC
AnimationMode = MANUAL
Flags = START_FRAME_LAST
TransitionKey = TRANS_Stabbing
HideSubObject = MUZZLEFX01
End
AliasConditionState = BETWEEN_FIRING_SHOTS_B
AliasConditionState = RELOADING_B

TransitionState = TRANS_Stabbing TRANS_Stand
Animation = AIHERO_SKL.AIHERO_ATC2
AnimationMode = ONCE
End

; Injured Stab animations
ConditionState = PREATTACK_B REALLYDAMAGED
Animation = AIHERO_SKL.AIHERO_IATC1
AnimationMode = ONCE
TransitionKey = TRANS_StabbingInjured
HideSubObject = MUZZLEFX01
End
AliasConditionState = PREATTACK_B MOVING REALLYDAMAGED
AliasConditionState = PREATTACK_B FIRING_B REALLYDAMAGED
AliasConditionState = PREATTACK_B BETWEEN_FIRING_SHOTS_B REALLYDAMAGED

ConditionState = FIRING_B REALLYDAMAGED
Animation = AIHERO_SKL.AIHERO_IATC2
AnimationMode = MANUAL
Flags = START_FRAME_LAST
TransitionKey = TRANS_StabbingInjured
HideSubObject = MUZZLEFX01
End
AliasConditionState = BETWEEN_FIRING_SHOTS_B REALLYDAMAGED
AliasConditionState = RELOADING_B REALLYDAMAGED

TransitionState = TRANS_StabbingInjured TRANS_StandInjured
Animation = AIHERO_SKL.AIHERO_IATC2
AnimationMode = ONCE
End

; cheering
ConditionState = SPECIAL_CHEERING
Animation = AIHERO_SKL.AIHERO_CHA
AnimationMode = ONCE
End

; injured cheering
ConditionState = SPECIAL_CHEERING REALLYDAMAGED
Animation = AIHERO_SKL.AIHERO_ICHA
AnimationMode = ONCE
End

; climbing
ConditionState = CLIMBING
Animation = AIHERO_SKL.AIHERO_CLMID
AnimationMode = LOOP
TransitionKey = TRANS_Climbing
End
AliasConditionState = RAPPELLING
AliasConditionState = CLIMBING REALLYDAMAGED
AliasConditionState = RAPPELLING REALLYDAMAGED

ConditionState = CLIMBING MOVING
Animation = AIHERO_SKL.AIHERO_CLMUP
AnimationMode = LOOP
TransitionKey = TRANS_Climbing
End
AliasConditionState = CLIMBING MOVING REALLYDAMAGED

ConditionState = RAPPELLING MOVING
Animation = AIHERO_SKL.AIHERO_CLMUP
AnimationMode = LOOP_BACKWARDS
TransitionKey = TRANS_Climbing
End
AliasConditionState = RAPPELLING MOVING REALLYDAMAGED

; these transitions don't really work well with our code. leave 'em out.
; TransitionState = TRANS_Climbing TRANS_Stand
; Animation = AIHERO_SKL.AIHERO_CLMST
; AnimationMode = ONCE
; End
;
; TransitionState = TRANS_Stand TRANS_Climbing
; Animation = AIHERO_SKL.AIHERO_CLMST
; AnimationMode = ONCE_BACKWARDS
; End

; dying anims
ConditionState = DYING
Animation = AIHERO_SKL.AIHERO_DTA
Animation = AIHERO_SKL.AIHERO_DTB
Animation = AIHero_SKL.AIHero_IDTA
Animation = AIHero_SKL.AIHero_IDTB
AnimationMode = ONCE
TransitionKey = TRANS_Dying
End
AliasConditionState = RAPPELLING DYING
AliasConditionState = CLIMBING DYING

TransitionState = TRANS_Dying TRANS_Flailing
Animation = AIHERO_SKL.AIHERO_ADTG21
AnimationMode = ONCE
End

ConditionState = DYING EXPLODED_FLAILING
Animation = AIHERO_SKL.AIHERO_ADTG22
AnimationMode = LOOP
TransitionKey = TRANS_Flailing
End

ConditionState = DYING EXPLODED_BOUNCING
Animation = AIHERO_SKL.AIHERO_ADTG23
AnimationMode = ONCE
TransitionKey = None
End

; misc anims
ConditionState = FREEFALL
Animation = AIHERO_SKL.AIHERO_PFL
AnimationMode = LOOP
TransitionKey = TRANS_Falling
End
AliasConditionState = FREEFALL REALLYDAMAGED
AliasConditionState = FREEFALL DYING

ConditionState = PARACHUTING
Animation = AIHERO_SKL.AIHERO_PHG
AnimationMode = LOOP
TransitionKey = TRANS_Chute
End
AliasConditionState = PARACHUTING REALLYDAMAGED
AliasConditionState = PARACHUTING DYING

TransitionState = TRANS_Falling TRANS_Chute
Animation = AIHERO_SKL.AIHERO_POP
AnimationMode = ONCE
Flags = PRISTINE_BONE_POS_IN_FINAL_FRAME ; our bone positions should come from the last frame, rather than the first
End

TransitionState = TRANS_Chute TRANS_Stand
Animation = AIHERO_SKL.AIHERO_PTD
AnimationMode = ONCE
End

TransitionState = TRANS_Chute TRANS_StandInjured
Animation = AIHERO_SKL.AIHERO_PTD
AnimationMode = ONCE
End

End

; ***DESIGN parameters ***
DisplayName = OBJECT:ColonelBurton
Side = AmericaSuperWeaponGeneral
EditorSorting = INFANTRY
TransportSlotCount = 1 ;how many "slots" we take in a transport (0 == not transportable)
WeaponSet
Conditions = None
Weapon = PRIMARY ColonelBurtonSniperRifleWeapon
Weapon = SECONDARY ColonelBurtonKnifeWeapon
AutoChooseSources = PRIMARY FROM_PLAYER FROM_SCRIPT FROM_AI
AutoChooseSources = SECONDARY NONE
End
ArmorSet
Conditions = None
Armor = HumanArmor
DamageFX = InfantryDamageFX
End
ArmorSet
Conditions = PLAYER_UPGRADE
Armor = ChemSuitHumanArmor
DamageFX = InfantryDamageFX
End
VisionRange = 150
ShroudClearingRange = 500
Prerequisites
Object = SupW_AmericaBarracks
Object = SupW_AmericaStrategyCenter
End
BuildCost = 1200
BuildTime = 20.0 ;in seconds

ExperienceValue = 50 100 100 150 ; Experience point value at each level
ExperienceRequired = 0 5 300 600 ; Experience points needed to gain each level
IsTrainable = Yes ; Can gain experience
CrushableLevel = 2 ;What am I?: 0 = for infantry, 1 = for trees, 2 = general vehicles
CommandSet = AmericaInfantryColonelBurtonCommandSet

MaxSimultaneousOfType = 1

; *** AUDIO Parameters ***
VoiceSelect = ColonelBurtonVoiceSelect
VoiceMove = ColonelBurtonVoiceMove
VoiceAttack = ColonelBurtonVoiceAttack
VoiceFear = ColonelBurtonVoiceFear
VoiceGuard = ColonelBurtonVoiceMove
SoundStealthOn = StealthOn
SoundStealthOff = StealthOff

UnitSpecificSounds
VoiceMelee = ColonelBurtonVoiceAttackKnife
VoiceCreate = ColonelBurtonVoiceCreate
VoiceGarrison = ColonelBurtonVoiceGarrison
VoiceEnter = ColonelBurtonVoiceMove
VoiceEnterHostile = ColonelBurtonVoiceMove
VoiceGetHealed = ColonelBurtonVoiceMove
End

; *** ENGINEERING Parameters ***
RadarPriority = UNIT
KindOf = PRELOAD SELECTABLE CAN_ATTACK ATTACK_NEEDS_LINE_OF_SIGHT CAN_CAST_REFLECTIONS INFANTRY SCORE HERO CANNOT_RETALIATE CAN_RAPPEL

Body = ActiveBody ModuleTag_02
MaxHealth = 200.0
InitialHealth = 200.0
End

Behavior = ArmorUpgrade ModuleTag_Armor01
TriggeredBy = Upgrade_AmericaChemicalSuits
End

Behavior = AIUpdateInterface ModuleTag_03
AutoAcquireEnemiesWhenIdle = Yes
End

Behavior = CommandButtonHuntUpdate ModuleTag_04 ; allows use of command button hunt script with this unit.
End

Behavior = AutoFindHealingUpdate ModuleTag_05 ; This update will have the unit go to a healing station if injured. jba
ScanRate = 1000 ; once a second.
ScanRange = 300 ;
NeverHeal = 0.85 ; don't heal if we are > 85% healthy.
AlwaysHeal = 0.25 ; if we get below 25%, find healing right away.
End

Locomotor = SET_NORMAL ColonelBurtonGroundLocomotor ColonelBurtonCliffLocomotor

Behavior = PhysicsBehavior ModuleTag_06
Mass = 5.0
End

Behavior = StealthUpdate ModuleTag_07
StealthDelay = 2000 ; msec
StealthForbiddenConditions = FIRING_PRIMARY
HintDetectableConditions = IS_FIRING_WEAPON
FriendlyOpacityMin = 50.0%
FriendlyOpacityMax = 100.0%
InnateStealth = Yes
OrderIdleEnemiesToAttackMeUponReveal = Yes
EnemyDetectionEvaEvent = EnemyColonelBurtonDetected
OwnDetectionEvaEvent = OwnColonelBurtonDetected
End

Behavior = SpecialAbility ModuleTag_08
SpecialPowerTemplate = SpecialAbilityColonelBurtonRemoteCharges
UpdateModuleStartsAttack = Yes
InitiateSound = ColonelBurtonVoicePlantRemoteCharge
End
Behavior = SpecialAbilityUpdate ModuleTag_09
SpecialPowerTemplate = SpecialAbilityColonelBurtonRemoteCharges
StartAbilityRange = 0.0
PreparationTime = 0
SpecialObject = RemoteC4Charge
MaxSpecialObjects = 8
SpecialObjectsPersistWhenOwnerDies = No ;Charges are removed instantly when owner dies (nobody can detonate).
AlwaysValidateSpecialObjects = Yes ;Coupled with the above setting, this one is necessary for code optimization.
SpecialObjectsPersistent = Yes ;Charges are persistent till lifetime expires or owner detonates them.
UniqueSpecialObjectTargets = Yes ;This prevents multiple charges placed on the same object.
UnpackTime = 5500 ;NOTE: Modifying this value will require modifying the delay for ColonelBurtonPlantCharge
PackTime = 0
SkipPackingWithNoTarget = Yes ;When yes, the packing/unpacking will be ignored when detonating charges.
FlipOwnerAfterUnpacking = Yes
FleeRangeAfterCompletion = 100.0 ;Runs away after finishing ability
UnpackSound = ColonelBurtonPlantCharge
LoseStealthOnTrigger = Yes
PreTriggerUnstealthTime = 5000 ; in milliseconds
End

Behavior = SpecialAbility ModuleTag_10
SpecialPowerTemplate = SpecialAbilityColonelBurtonTimedCharges
UpdateModuleStartsAttack = Yes
InitiateSound = ColonelBurtonVoicePlantTimedCharge
End
Behavior = SpecialAbilityUpdate ModuleTag_11
SpecialPowerTemplate = SpecialAbilityColonelBurtonTimedCharges
StartAbilityRange = 0.0
PreparationTime = 0
SpecialObject = TimedC4Charge
MaxSpecialObjects = 10
SpecialObjectsPersistWhenOwnerDies = Yes
SpecialObjectsPersistent = Yes ;Charges are persistent till lifetime expires or owner detonates them.
UniqueSpecialObjectTargets = Yes ;This prevents multiple charges placed on the same object.
UnpackTime = 5500 ;NOTE: Modifying this value will require modifying the delay for ColonelBurtonPlantCharge
FlipOwnerAfterUnpacking = Yes
FleeRangeAfterCompletion = 100.0 ;Runs away after finishing ability
UnpackSound = ColonelBurtonPlantCharge
LoseStealthOnTrigger = Yes
PreTriggerUnstealthTime = 5000 ; in milliseconds

End

Behavior = ExperienceScalarUpgrade ModuleTag_12
TriggeredBy = Upgrade_AmericaAdvancedTraining
AddXPScalar = 2.0 ;Increases experience gained by an additional 200%
End

;Hero units can't be squished!
;Behavior = SquishCollide ModuleTag_13
; ;nothing
;End


; --- begin Death modules ---
Behavior = SlowDeathBehavior ModuleTag_Death01
DeathTypes = ALL -CRUSHED -SPLATTED -EXPLODED -BURNED -POISONED -POISONED_BETA -POISONED_GAMMA
SinkDelay = 3000
SinkRate = 0.5 ; in Dist/Sec
DestructionDelay = 8000
FX = INITIAL FX_ColonelBurtonDie
End
Behavior = SlowDeathBehavior ModuleTag_Death02
DeathTypes = NONE +CRUSHED +SPLATTED
SinkDelay = 3000
SinkRate = 0.5 ; in Dist/Sec
DestructionDelay = 8000
FX = INITIAL FX_GIDieCrushed
End
Behavior = SlowDeathBehavior ModuleTag_Death03
DeathTypes = NONE +EXPLODED
SinkDelay = 3000
SinkRate = 0.5 ; in Dist/Sec
DestructionDelay = 8000
FX = INITIAL FX_ColonelBurtonDie
FlingForce = 8
FlingForceVariance = 3
FlingPitch = 60
FlingPitchVariance = 10
End
Behavior = SlowDeathBehavior ModuleTag_Death04
DeathTypes = NONE +BURNED
DestructionDelay = 0
FX = INITIAL FX_DieByFireUSA
OCL = INITIAL OCL_FlamingInfantry
End
Behavior = SlowDeathBehavior ModuleTag_Death05
DeathTypes = NONE +POISONED
DestructionDelay = 0
FX = INITIAL FX_DieByToxinUSA
OCL = INITIAL OCL_ToxicInfantry
End
Behavior = SlowDeathBehavior ModuleTag_Death06 ; don't forget to give it a new, unique module tag
DeathTypes = NONE +POISONED_BETA
DestructionDelay = 0
FX = INITIAL FX_DieByToxinUSA
OCL = INITIAL OCL_ToxicInfantryBeta ;you'll have to create this OCL and make it use the blue guys instead of green ones
End
Behavior = SlowDeathBehavior ModuleTag_Death07
DeathTypes = NONE +POISONED_GAMMA
DestructionDelay = 0
FX = INITIAL FX_DieByToxinGLA
OCL = INITIAL OCL_ToxicInfantryGamma
End
; --- end Death modules ---

;Behavior = PoisonedBehavior ModuleTag_18
;PoisonDamageInterval = 100 ; Every this many msec I will retake the poison damage dealt me...
;PoisonDuration = 3000 ; ... for this long after last hit by poison damage
;End


Behavior = SpecialAbility ModuleTag_20
SpecialPowerTemplate = SpecialAbilityPlaceNukeBeacon
UpdateModuleStartsAttack = Yes
InitiateSound = BlackLotusUnpack
End
Behavior = SpecialAbilityUpdate ModuleTag_21
SpecialPowerTemplate = SpecialAbilityPlaceNukeBeacon
StartAbilityRange = 1.0
PreparationTime = 0
SpecialObject = IonCannonBeacon
MaxSpecialObjects = 4
SpecialObjectsPersistWhenOwnerDies = Yes
SpecialObjectsPersistent = Yes ;Charges are persistent till lifetime expires or owner detonates them.
UniqueSpecialObjectTargets = Yes ;This prevents multiple charges placed on the same object.
UnpackTime = 6730 ;NOTE: Modifying this value will require modifying the delay for ColonelBurtonPlantCharge
FlipOwnerAfterUnpacking = Yes
FleeRangeAfterCompletion = 100.0 ;Runs away after finishing ability
UnpackSound = BlackLotusUnpack
LoseStealthOnTrigger = Yes
PreTriggerUnstealthTime = 5000 ; in milliseconds
End
;Behavior = VeterancyGainCreate ModuleTag_22
;StartingLevel = VETERAN
;End
Geometry = CYLINDER
GeometryMajorRadius = 10.0
GeometryMinorRadius = 10.0
GeometryHeight = 12.0
GeometryIsSmall = Yes
Shadow = SHADOW_DECAL
ShadowSizeX = 14
ShadowSizeY = 14
ShadowTexture = ShadowI
BuildCompletion = APPEARS_AT_RALLY_POINT

End
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 User(s) are reading this topic (1 Guests and 0 Anonymous Users)
0 Members:

 



Lo-Fi Version Time is now: 29 March 2024 - 16:45