Adding Veterancy Gain Create causes game to crash |
Adding Veterancy Gain Create causes game to crash |
25 Feb 2015, 5:54
Post
#1
|
|
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
|
|
|
25 Feb 2015, 14:10
Post
#2
|
|
Group: Dev. Team Posts: 964 Joined: 15 August 2013 From: Portugal, Lisbon Member No.: 10072 |
Could you post the code here please?
|
|
|
26 Feb 2015, 13:05
Post
#3
|
|
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 |
|
|
23 May 2015, 16:08
Post
#4
|
|
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 |
|
|
Lo-Fi Version | Time is now: 29 March 2024 - 16:45 |