boaz23
  • boaz23
  • 50.25% (Neutral)
  • Private Topic Starter
12 years ago
I have been having difficulty to get the weapons in my rebel's weapon set to work correctly together with the demolition's general suicide bomb. The demolition's general suicide bomb works well if I don't change the rebel's weapon. Can you help me get it working?
Also, when firing the secondary weapon, it fires it from the ground, but that's a little animation bug I can take, but if someone can solve this too, then I also thank you.

The Rebel's Code:

Object GLASpecialForceInfantryRebel

; *** ART Parameters ***
SelectPortrait = SUToxinRebel_L
ButtonImage = SUToxinRebel

UpgradeCameo1 = Upgrade_GLAAPBullets
UpgradeCameo2 = Upgrade_InfantryCaptureBuilding
UpgradeCameo3 = Demo_Upgrade_SuicideBomb
UpgradeCameo4 = Chem_Upgrade_GLAAnthraxGamma
;UpgradeCameo5 = NONE

Draw = W3DModelDraw ModuleTag_01

OkToChangeModelColor = Yes
ParticlesAttachedToAnimatedBones = Yes



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

; ---- standing
DefaultConditionState
Model = UIRGrdTOX_SKN
IdleAnimation = UIRGrd_SKL.UIRGrd_STN 0 35
IdleAnimation = UIRGrd_SKL.UIRGrd_IDA
IdleAnimation = UIRGrd_SKL.UIRGrd_IDB
AnimationMode = ONCE
WeaponFireFXBone = PRIMARY Muzzle01
WeaponLaunchBone = PRIMARY Muzzle01
HideSubObject = MuzzleFX01
TransitionKey = TRANS_Standing
;;; ParticleSysBone = MUZZLE01 WaterSpray
End

ConditionState = REALLYDAMAGED
IdleAnimation = UIRGrd_SKL.UIRGrd_STB 0 35
IdleAnimation = UIRGrd_SKL.UIRGrd_IDC
IdleAnimation = UIRGrd_SKL.UIRGrd_IDD
AnimationMode = ONCE
TransitionKey = TRANS_StandingHurt
End

; ---- moving
ConditionState = MOVING
Animation = UIRGrd_SKL.UIRGrd_RNA 15
AnimationMode = LOOP
TransitionKey = TRANS_Walking
ParticleSysBone = None InfantryDustTrails
End
AliasConditionState = MOVING ATTACKING

ConditionState = MOVING REALLYDAMAGED
Animation = UIRGrd_SKL.UIRGrd_RNB 25
AnimationMode = LOOP
TransitionKey = TRANS_WalkingHurt
ParticleSysBone = None InfantryDustTrails
End
AliasConditionState = MOVING ATTACKING REALLYDAMAGED

; ---- dying
ConditionState = DYING
Animation = UIRGrd_SKL.UIRGrd_DTA
Animation = UIRGrd_SKL.UIRGrd_DTB
AnimationMode = ONCE
TransitionKey = TRANS_Dying
End

TransitionState = TRANS_Dying TRANS_Flailing
Animation = UIRGrd_SKL.UIRGrd_ADTE1
AnimationMode = ONCE
End

ConditionState = DYING EXPLODED_FLAILING
Animation = UIRGrd_SKL.UIRGrd_ADTE2
AnimationMode = LOOP
TransitionKey = TRANS_Flailing
End

ConditionState = DYING EXPLODED_BOUNCING
Animation = UIRGrd_SKL.UIRGrd_ADTE3
AnimationMode = ONCE
TransitionKey = None
End

ConditionState = SPECIAL_CHEERING
Animation = UIRGrd_SKL.UIRGrd_IDB
End

; ---- firing
ConditionState = USING_WEAPON_A
Animation = UIRGrd_SKL.UIRGrd_ATA3
AnimationMode = LOOP
TransitionKey = TRANS_Firing
End

ConditionState = USING_WEAPON_A REALLYDAMAGED
Animation = UIRGrd_SKL.UIRGrd_ATA2
AnimationMode = LOOP
TransitionKey = TRANS_FiringHurt
End

TransitionState = TRANS_Standing TRANS_Firing
Animation = UIRGrd_SKL.UIRGrd_ATAST
AnimationMode = ONCE
End

TransitionState = TRANS_Firing TRANS_Standing
Animation = UIRGrd_SKL.UIRGrd_ATAED
AnimationMode = ONCE
End

TransitionState = TRANS_StandingHurt TRANS_FiringHurt
Animation = UIRGrd_SKL.UIRGrd_ATA2ED
AnimationMode = ONCE_BACKWARDS
End

TransitionState = TRANS_FiringHurt TRANS_StandingHurt
Animation = UIRGrd_SKL.UIRGrd_ATA2ED
AnimationMode = ONCE
End

TransitionState = TRANS_Standing TRANS_StandingHurt
Animation = UIRGrd_SKL.UIRGrd_ATA2ED
AnimationMode = ONCE
End

; ---- firing
ConditionState = USING_WEAPON_B
Animation = UIRGrd_SKL.UIRGrd_ATA
AnimationMode = LOOP
TransitionKey = TRANS_Firing
End

ConditionState = USING_WEAPON_B REALLYDAMAGED
Animation = UIRGrd_SKL.UIRGrd_ATA2
AnimationMode = LOOP
TransitionKey = TRANS_FiringHurt
End

TransitionState = TRANS_Standing TRANS_Firing
Animation = UIRGrd_SKL.UIRGrd_ATAST
AnimationMode = ONCE
End

TransitionState = TRANS_Firing TRANS_Standing
Animation = UIRGrd_SKL.UIRGrd_ATAED
AnimationMode = ONCE
End

TransitionState = TRANS_StandingHurt TRANS_FiringHurt
Animation = UIRGrd_SKL.UIRGrd_ATA2ED
AnimationMode = ONCE_BACKWARDS
End

TransitionState = TRANS_FiringHurt TRANS_StandingHurt
Animation = UIRGrd_SKL.UIRGrd_ATA2ED
AnimationMode = ONCE
End

TransitionState = TRANS_Standing TRANS_StandingHurt
Animation = UIRGrd_SKL.UIRGrd_ATA2ED
AnimationMode = ONCE
End

; ------- Bldg-capture

ConditionState = UNPACKING
Model = UIRGrdTOXF_SKN
Animation = UIRGrd_F_SKL.UIRGrd_F_FDP1
AnimationMode = ONCE
End
AliasConditionState = UNPACKING REALLYDAMAGED

ConditionState = RAISING_FLAG
Model = UIRGrdTOXF_SKN
Animation = UIRGrd_F_SKL.UIRGrd_F_FDP2
AnimationMode = ONCE
TransitionKey = TRANS_Raising
End
AliasConditionState = RAISING_FLAG REALLYDAMAGED

ConditionState = PACKING
Model = UIRGrdTOXF_SKN
Animation = UIRGrd_F_SKL.UIRGrd_F_FDP1
AnimationMode = ONCE_BACKWARDS
Flags = START_FRAME_LAST
TransitionKey = TRANS_Packing
End
AliasConditionState = PACKING REALLYDAMAGED

TransitionState = TRANS_Raising TRANS_Packing
Model = UIRGrdTOXF_SKN
Animation = UIRGrd_F_SKL.UIRGrd_F_FDP2
AnimationMode = ONCE_BACKWARDS
Flags = START_FRAME_LAST
End

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

WeaponSet
Conditions = None
Weapon = PRIMARY GLARebelMachineGun
Weapon = SECONDARY GC_Chem_GLARebelGunBeta
Weapon = TERTIARY TerroristSuicideNotARealWeapon
AutoChooseSources = PRIMARY FROM_SCRIPT FROM_AI
AutoChooseSources = SECONDARY FROM_SCRIPT DEFAULT_SWITCH_WEAPON
AutoChooseSources = TERTIARY FROM_SCRIPT
WeaponLockSharedAcrossSets = Yes
End
WeaponSet
Conditions = PLAYER_UPGRADE
Weapon = PRIMARY GLARebelMachineGun
Weapon = SECONDARY GC_Chem_GLARebelGunGamma
Weapon = TERTIARY TerroristSuicideNotARealWeapon
AutoChooseSources = PRIMARY FROM_SCRIPT FROM_AI
AutoChooseSources = SECONDARY FROM_SCRIPT DEFAULT_SWITCH_WEAPON
AutoChooseSources = TERTIARY FROM_SCRIPT
WeaponLockSharedAcrossSets = Yes
End
ArmorSet
Conditions = None
Armor = ChemRebSuitHumanArmor
DamageFX = InfantryDamageFX
End
VisionRange = 150
ShroudClearingRange = 300
Prerequisites
Object = GLASpecialForceBarracks
End
BuildCost = 150
BuildTime = 5.0 ;in seconds

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

; *** AUDIO Parameters ***
VoiceSelect = RebelVoiceSelect
VoiceMove = RebelVoiceMove
VoiceGuard = RebelVoiceMove
VoiceAttack = RebelVoiceAttack
SoundStealthOn = StealthOn
SoundStealthOff = StealthOff
VoiceFear = RebelVoiceFear
VoiceTaskComplete = RebelVoiceCaptureComplete
UnitSpecificSounds
VoiceCreate = RebelVoiceCreate
VoiceSubdue = RebelVoiceSubdue
VoiceGarrison = RebelVoiceGarrison
VoiceEnter = RebelVoiceMove
VoiceEnterHostile = RebelVoiceMove
VoiceGetHealed = RebelVoiceMove
End

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

Body = ActiveBody ModuleTag_02
MaxHealth = 120.0
InitialHealth = 120.0
End

Behavior = AIUpdateInterface ModuleTag_03
AutoAcquireEnemiesWhenIdle = Yes
End

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

Locomotor = SET_NORMAL BasicHumanLocomotor

Behavior = PhysicsBehavior ModuleTag_05
Mass = 5.0
End
Behavior = StealthUpdate ModuleTag_07
StealthDelay = 2500 ; msec
StealthForbiddenConditions = ATTACKING USING_ABILITY TAKING_DAMAGE
MoveThresholdSpeed = 3
InnateStealth = Yes ;doesnt Require upgrade first
OrderIdleEnemiesToAttackMeUponReveal = Yes
End

Behavior = WeaponBonusUpgrade ModuleTag_09
TriggeredBy = Upgrade_GLAAPBullets
End
Behavior = GrantUpgradeCreate ModuleTag_10
UpgradeToGrant = Upgrade_GLACamouflage
End

Behavior = SquishCollide ModuleTag_11
;nothing
End


; --- begin Death modules ---
Behavior = SlowDeathBehavior ModuleTag_Death01
DeathTypes = ALL -CRUSHED -SPLATTED -EXPLODED -BURNED -POISONED -POISONED_BETA -POISONED_GAMMA -SUICIDED
SinkDelay = 3000
SinkRate = 0.5 ; in Dist/Sec
DestructionDelay = 8000
FX = INITIAL FX_RebelDie
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 -SUICIDED
SinkDelay = 3000
SinkRate = 0.5 ; in Dist/Sec
DestructionDelay = 8000
FX = INITIAL FX_RebelDie
FlingForce = 8
FlingForceVariance = 3
FlingPitch = 60
FlingPitchVariance = 10
End
Behavior = SlowDeathBehavior ModuleTag_Death04
DeathTypes = NONE +BURNED
DestructionDelay = 0
FX = INITIAL FX_DieByFireGLA
OCL = INITIAL OCL_FlamingInfantry
End
Behavior = SlowDeathBehavior ModuleTag_Death05
DeathTypes = NONE +POISONED
DestructionDelay = 0
FX = INITIAL FX_DieByToxinGLA
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_DieByToxinGLA
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_16
PoisonDamageInterval = 100 ; Every this many msec I will retake the poison damage dealt me...
PoisonDuration = 3000 ; ... for this long after last hit by poison damage
End

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

Behavior = UnpauseSpecialPowerUpgrade ModuleTag_19
SpecialPowerTemplate = SpecialAbilityRebelCaptureBuilding
TriggeredBy = Upgrade_InfantryCaptureBuilding
End

Behavior = SpecialAbility ModuleTag_20
SpecialPowerTemplate = SpecialAbilityBoobyTrap
UpdateModuleStartsAttack = Yes
StartsPaused = Yes
; InitiateSound = TankHunterVoiceTNT
End
Behavior = SpecialAbilityUpdate ModuleTag_21
SpecialPowerTemplate = SpecialAbilityBoobyTrap
StartAbilityRange = 5.0
PreparationTime = 0
SpecialObject = BoobyTrap
MaxSpecialObjects = 100
SpecialObjectsPersistWhenOwnerDies = Yes
SpecialObjectsPersistent = Yes ;Charges are persistent till lifetime expires or owner detonates them.
; Not implemented UniqueSpecialObjectTargets = Yes ;This prevents multiple charges placed on the same object.
End

Behavior = UnpauseSpecialPowerUpgrade ModuleTag_22
SpecialPowerTemplate = SpecialAbilityBoobyTrap
TriggeredBy = Upgrade_GLAInfantryRebelBoobyTrapAttack
End

; Module 23 commented out because it crashes saved games if the Rebel is Elite. GrantUpgradeCreate is a twitchy module.
; Behavior = GrantUpgradeCreate ModuleTag_23
; UpgradeToGrant = Upgrade_GLAInfantryRebelBoobyTrapAttack
; ExemptStatus = UNDER_CONSTRUCTION
; End

; I have just pulled my ripcord, and this ain't no parachute!
Behavior = SlowDeathBehavior ModuleTag_Death17
DeathTypes = NONE +SUICIDED +EXPLODED
SinkDelay = 3000
SinkRate = 0.5 ; in Dist/Sec
DestructionDelay = 8000
FX = INITIAL FX_TerroristExplode
FlingForce = 8
FlingForceVariance = 3
FlingPitch = 60
FlingPitchVariance = 10
End

Behavior = WeaponSetUpgrade ModuleTag_08
TriggeredBy = Chem_Upgrade_GLAAnthraxGamma
End

Behavior = FireWeaponWhenDeadBehavior ModuleTag998
DeathWeapon = Demo_SuicideDynamitePackPlusFire
StartsActive = No
TriggeredBy = Demo_Upgrade_SuicideBomb
DeathTypes = NONE +SUICIDED
End;

Behavior = FireWeaponWhenDeadBehavior ModuleTag999
DeathWeapon = Demo_DestroyedWeapon
StartsActive = No
TriggeredBy = Demo_Upgrade_SuicideBomb
DeathTypes = ALL -SUICIDED
End

Behavior = CommandSetUpgrade ModuleTag_25
CommandSet = GLASpecialForceInfantryRebelCommandSetAnthraxUpgrade
TriggeredBy = Demo_Upgrade_SuicideBomb
End

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

End



The Weapons Switch Command Buttons's Code:

CommandButton Command_GLASpecialForceRebelSwitchToMachineGun
Command = SWITCH_WEAPON
WeaponSlot = PRIMARY
Options = CHECK_LIKE OK_FOR_MULTI_SELECT
TextLabel = CONTROLBAR:RangerMachineGun
ButtonImage = SSAPShells
ButtonBorderType = ACTION
DescriptLabel = CONTROLBAR:ToolTipSwitchToRangerMachineGun
End


CommandButton Command_GLASpecialForceRebelSwitchToAnthrax
Command = SWITCH_WEAPON
WeaponSlot = SECONDARY
Options = CHECK_LIKE OK_FOR_MULTI_SELECT
TextLabel = CONTROLBAR:RebelToxinGun
ButtonImage = SSAnthraxBomb
ButtonBorderType = ACTION
DescriptLabel = CONTROLBAR:ToolTipSwitchToRebelToxinGun
End



And the Rebel's Command Sets Code:

CommandSet GLASpecialForceInfantryRebelCommandSetAnthrax
1 = Command_GLAInfantryRebelCaptureBuilding
2 = Command_GLAInfantryRebelBoobyTrapAttack
3 = Command_GLASpecialForceRebelSwitchToMachineGun
5 = Command_GLASpecialForceRebelSwitchToAnthrax
11 = Command_AttackMove
13 = Command_Guard
14 = Command_Stop
End

CommandSet GLASpecialForceInfantryRebelCommandSetAnthraxUpgrade
1 = Command_GLAInfantryRebelCaptureBuilding
2 = Command_GLAInfantryRebelBoobyTrapAttack
3 = Command_GLASpecialForceRebelSwitchToMachineGun
4 = Demo_Command_TertiarySuicide
5 = Command_GLASpecialForceRebelSwitchToAnthrax
11 = Command_AttackMove
13 = Command_Guard
14 = Command_Stop
End



You can also download the mode here to see what I am talking about:http://www.mediafire.com/download/y9r8cr6v8vay88f/SpecialForces.big 

Thanks for all the helpers
Sponsor
Annihilationzh
12 years ago
Remove the suicide weapon. Use ObjectCreationUpgrade to spawn an explosion. Then give it an object upgrade that is free and instant to trigger it.
If you need help, post in the forum. You'll get help a lot faster than if you send me a PM.

I reject all buddy requests. I don't think 'buddy' needs to be made official. It's not like you're marrying me.
boaz23
  • boaz23
  • 50.25% (Neutral)
  • Private Topic Starter
12 years ago
How do I create an object that kills the rebel once it spawns?
Also, I did not get the last part of your answer:

Then give it an object upgrade that is free and instant to trigger it.



Thank you for replaying
Annihilationzh
12 years ago

How do I create an object that kills the rebel once it spawns?


Copy a radiation field, but turn it explosive.

Also, I did not get the last part of your answer:


This is an object upgrade with no cost or build time:
Upgrade Upgrade_GLAWorkerFakeCommandSet
  Type               = OBJECT
  BuildTime          = 0.0
  BuildCost          = 0
  ButtonImage        = SUFakeToggle  
End
Use an upgrade like this to trigger the explosion.
If you need help, post in the forum. You'll get help a lot faster than if you send me a PM.

I reject all buddy requests. I don't think 'buddy' needs to be made official. It's not like you're marrying me.
Rrtaya_tsamsiyu
12 years ago
To fix the secondary weapon firing from the ground, go to where it says

WeaponFireFXBone = PRIMARY Muzzle01
WeaponLaunchBone = PRIMARY Muzzle01

and add secondary stuffs, so it looks like this

WeaponFireFXBone = PRIMARY Muzzle01
WeaponLaunchBone = PRIMARY Muzzle01
WeaponFireFXBone = SECONDARY Muzzle01
WeaponLaunchBone = SECONDARY Muzzle01

one soul at a time
boaz23
  • boaz23
  • 50.25% (Neutral)
  • Private Topic Starter
12 years ago
Well, I have tried to do as you sad, Annihilationzh, and now pressing the explosion trigger upgrade button is impossible... I got no clue what it might be.

The Rebel's Code:

Object GLASpecialForceInfantryRebel

; *** ART Parameters ***
SelectPortrait = SUToxinRebel_L
ButtonImage = SUToxinRebel

UpgradeCameo1 = Upgrade_GLAAPBullets
UpgradeCameo2 = Upgrade_InfantryCaptureBuilding
UpgradeCameo3 = Demo_Upgrade_SuicideBomb
UpgradeCameo4 = Chem_Upgrade_GLAAnthraxGamma
;UpgradeCameo5 = NONE

Draw = W3DModelDraw ModuleTag_01

OkToChangeModelColor = Yes
ParticlesAttachedToAnimatedBones = Yes



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

; ---- standing
DefaultConditionState
Model = UIRGrdTOX_SKN
IdleAnimation = UIRGrd_SKL.UIRGrd_STN 0 35
IdleAnimation = UIRGrd_SKL.UIRGrd_IDA
IdleAnimation = UIRGrd_SKL.UIRGrd_IDB
AnimationMode = ONCE
WeaponFireFXBone = PRIMARY Muzzle01
WeaponLaunchBone = PRIMARY Muzzle01
WeaponFireFXBone = SECONDARY Muzzle01
WeaponLaunchBone = SECONDARY Muzzle01
HideSubObject = MuzzleFX01
TransitionKey = TRANS_Standing
;;; ParticleSysBone = MUZZLE01 WaterSpray
End

ConditionState = REALLYDAMAGED
IdleAnimation = UIRGrd_SKL.UIRGrd_STB 0 35
IdleAnimation = UIRGrd_SKL.UIRGrd_IDC
IdleAnimation = UIRGrd_SKL.UIRGrd_IDD
AnimationMode = ONCE
TransitionKey = TRANS_StandingHurt
End

; ---- moving
ConditionState = MOVING
Animation = UIRGrd_SKL.UIRGrd_RNA 15
AnimationMode = LOOP
TransitionKey = TRANS_Walking
ParticleSysBone = None InfantryDustTrails
End
AliasConditionState = MOVING ATTACKING

ConditionState = MOVING REALLYDAMAGED
Animation = UIRGrd_SKL.UIRGrd_RNB 25
AnimationMode = LOOP
TransitionKey = TRANS_WalkingHurt
ParticleSysBone = None InfantryDustTrails
End
AliasConditionState = MOVING ATTACKING REALLYDAMAGED

; ---- dying
ConditionState = DYING
Animation = UIRGrd_SKL.UIRGrd_DTA
Animation = UIRGrd_SKL.UIRGrd_DTB
AnimationMode = ONCE
TransitionKey = TRANS_Dying
End

TransitionState = TRANS_Dying TRANS_Flailing
Animation = UIRGrd_SKL.UIRGrd_ADTE1
AnimationMode = ONCE
End

ConditionState = DYING EXPLODED_FLAILING
Animation = UIRGrd_SKL.UIRGrd_ADTE2
AnimationMode = LOOP
TransitionKey = TRANS_Flailing
End

ConditionState = DYING EXPLODED_BOUNCING
Animation = UIRGrd_SKL.UIRGrd_ADTE3
AnimationMode = ONCE
TransitionKey = None
End

ConditionState = SPECIAL_CHEERING
Animation = UIRGrd_SKL.UIRGrd_IDB
End

; ---- firing
ConditionState = USING_WEAPON_A
Animation = UIRGrd_SKL.UIRGrd_ATA3
AnimationMode = LOOP
TransitionKey = TRANS_Firing
End

ConditionState = USING_WEAPON_A REALLYDAMAGED
Animation = UIRGrd_SKL.UIRGrd_ATA2
AnimationMode = LOOP
TransitionKey = TRANS_FiringHurt
End

TransitionState = TRANS_Standing TRANS_Firing
Animation = UIRGrd_SKL.UIRGrd_ATAST
AnimationMode = ONCE
End

TransitionState = TRANS_Firing TRANS_Standing
Animation = UIRGrd_SKL.UIRGrd_ATAED
AnimationMode = ONCE
End

TransitionState = TRANS_StandingHurt TRANS_FiringHurt
Animation = UIRGrd_SKL.UIRGrd_ATA2ED
AnimationMode = ONCE_BACKWARDS
End

TransitionState = TRANS_FiringHurt TRANS_StandingHurt
Animation = UIRGrd_SKL.UIRGrd_ATA2ED
AnimationMode = ONCE
End

TransitionState = TRANS_Standing TRANS_StandingHurt
Animation = UIRGrd_SKL.UIRGrd_ATA2ED
AnimationMode = ONCE
End

; ---- firing
ConditionState = USING_WEAPON_B
Animation = UIRGrd_SKL.UIRGrd_ATA
AnimationMode = LOOP
TransitionKey = TRANS_Firing
End

ConditionState = USING_WEAPON_B REALLYDAMAGED
Animation = UIRGrd_SKL.UIRGrd_ATA2
AnimationMode = LOOP
TransitionKey = TRANS_FiringHurt
End

TransitionState = TRANS_Standing TRANS_Firing
Animation = UIRGrd_SKL.UIRGrd_ATAST
AnimationMode = ONCE
End

TransitionState = TRANS_Firing TRANS_Standing
Animation = UIRGrd_SKL.UIRGrd_ATAED
AnimationMode = ONCE
End

TransitionState = TRANS_StandingHurt TRANS_FiringHurt
Animation = UIRGrd_SKL.UIRGrd_ATA2ED
AnimationMode = ONCE_BACKWARDS
End

TransitionState = TRANS_FiringHurt TRANS_StandingHurt
Animation = UIRGrd_SKL.UIRGrd_ATA2ED
AnimationMode = ONCE
End

TransitionState = TRANS_Standing TRANS_StandingHurt
Animation = UIRGrd_SKL.UIRGrd_ATA2ED
AnimationMode = ONCE
End

; ------- Bldg-capture

ConditionState = UNPACKING
Model = UIRGrdTOXF_SKN
Animation = UIRGrd_F_SKL.UIRGrd_F_FDP1
AnimationMode = ONCE
End
AliasConditionState = UNPACKING REALLYDAMAGED

ConditionState = RAISING_FLAG
Model = UIRGrdTOXF_SKN
Animation = UIRGrd_F_SKL.UIRGrd_F_FDP2
AnimationMode = ONCE
TransitionKey = TRANS_Raising
End
AliasConditionState = RAISING_FLAG REALLYDAMAGED

ConditionState = PACKING
Model = UIRGrdTOXF_SKN
Animation = UIRGrd_F_SKL.UIRGrd_F_FDP1
AnimationMode = ONCE_BACKWARDS
Flags = START_FRAME_LAST
TransitionKey = TRANS_Packing
End
AliasConditionState = PACKING REALLYDAMAGED

TransitionState = TRANS_Raising TRANS_Packing
Model = UIRGrdTOXF_SKN
Animation = UIRGrd_F_SKL.UIRGrd_F_FDP2
AnimationMode = ONCE_BACKWARDS
Flags = START_FRAME_LAST
End

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

WeaponSet
Conditions = None
Weapon = PRIMARY GLARebelMachineGun
Weapon = SECONDARY GC_Chem_GLARebelGunBeta
; Weapon = TERTIARY TerroristSuicideNotARealWeapon
AutoChooseSources = PRIMARY FROM_SCRIPT FROM_AI
AutoChooseSources = SECONDARY FROM_SCRIPT DEFAULT_SWITCH_WEAPON
; AutoChooseSources = TERTIARY FROM_SCRIPT
WeaponLockSharedAcrossSets = Yes
End
WeaponSet
Conditions = PLAYER_UPGRADE
Weapon = PRIMARY GLARebelMachineGun
Weapon = SECONDARY GC_Chem_GLARebelGunGamma
; Weapon = TERTIARY TerroristSuicideNotARealWeapon
AutoChooseSources = PRIMARY FROM_SCRIPT FROM_AI
AutoChooseSources = SECONDARY FROM_SCRIPT DEFAULT_SWITCH_WEAPON
; AutoChooseSources = TERTIARY FROM_SCRIPT
WeaponLockSharedAcrossSets = Yes
End
ArmorSet
Conditions = None
Armor = ChemRebSuitHumanArmor
DamageFX = InfantryDamageFX
End
VisionRange = 150
ShroudClearingRange = 300
Prerequisites
Object = GLASpecialForceBarracks
End
BuildCost = 150
BuildTime = 5.0 ;in seconds

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

; *** AUDIO Parameters ***
VoiceSelect = RebelVoiceSelect
VoiceMove = RebelVoiceMove
VoiceGuard = RebelVoiceMove
VoiceAttack = RebelVoiceAttack
SoundStealthOn = StealthOn
SoundStealthOff = StealthOff
VoiceFear = RebelVoiceFear
VoiceTaskComplete = RebelVoiceCaptureComplete
UnitSpecificSounds
VoiceCreate = RebelVoiceCreate
VoiceSubdue = RebelVoiceSubdue
VoiceGarrison = RebelVoiceGarrison
VoiceEnter = RebelVoiceMove
VoiceEnterHostile = RebelVoiceMove
VoiceGetHealed = RebelVoiceMove
End

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

Body = ActiveBody ModuleTag_02
MaxHealth = 120.0
InitialHealth = 120.0
End

Behavior = AIUpdateInterface ModuleTag_03
AutoAcquireEnemiesWhenIdle = Yes
End

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

Locomotor = SET_NORMAL BasicHumanLocomotor

Behavior = PhysicsBehavior ModuleTag_05
Mass = 5.0
End
Behavior = StealthUpdate ModuleTag_07
StealthDelay = 2500 ; msec
StealthForbiddenConditions = ATTACKING USING_ABILITY TAKING_DAMAGE
MoveThresholdSpeed = 3
InnateStealth = Yes ;doesnt Require upgrade first
OrderIdleEnemiesToAttackMeUponReveal = Yes
End

Behavior = WeaponBonusUpgrade ModuleTag_09
TriggeredBy = Upgrade_GLAAPBullets
End
Behavior = GrantUpgradeCreate ModuleTag_10
UpgradeToGrant = Upgrade_GLACamouflage
End

Behavior = SquishCollide ModuleTag_11
;nothing
End


; --- begin Death modules ---
Behavior = SlowDeathBehavior ModuleTag_Death01
DeathTypes = ALL -CRUSHED -SPLATTED -EXPLODED -BURNED -POISONED -POISONED_BETA -POISONED_GAMMA -SUICIDED
SinkDelay = 3000
SinkRate = 0.5 ; in Dist/Sec
DestructionDelay = 8000
FX = INITIAL FX_RebelDie
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 -SUICIDED
SinkDelay = 3000
SinkRate = 0.5 ; in Dist/Sec
DestructionDelay = 8000
FX = INITIAL FX_RebelDie
FlingForce = 8
FlingForceVariance = 3
FlingPitch = 60
FlingPitchVariance = 10
End
Behavior = SlowDeathBehavior ModuleTag_Death04
DeathTypes = NONE +BURNED
DestructionDelay = 0
FX = INITIAL FX_DieByFireGLA
OCL = INITIAL OCL_FlamingInfantry
End
Behavior = SlowDeathBehavior ModuleTag_Death05
DeathTypes = NONE +POISONED
DestructionDelay = 0
FX = INITIAL FX_DieByToxinGLA
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_DieByToxinGLA
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_16
PoisonDamageInterval = 100 ; Every this many msec I will retake the poison damage dealt me...
PoisonDuration = 3000 ; ... for this long after last hit by poison damage
End

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

Behavior = UnpauseSpecialPowerUpgrade ModuleTag_19
SpecialPowerTemplate = SpecialAbilityRebelCaptureBuilding
TriggeredBy = Upgrade_InfantryCaptureBuilding
End

Behavior = SpecialAbility ModuleTag_20
SpecialPowerTemplate = SpecialAbilityBoobyTrap
UpdateModuleStartsAttack = Yes
StartsPaused = Yes
; InitiateSound = TankHunterVoiceTNT
End
Behavior = SpecialAbilityUpdate ModuleTag_21
SpecialPowerTemplate = SpecialAbilityBoobyTrap
StartAbilityRange = 5.0
PreparationTime = 0
SpecialObject = BoobyTrap
MaxSpecialObjects = 100
SpecialObjectsPersistWhenOwnerDies = Yes
SpecialObjectsPersistent = Yes ;Charges are persistent till lifetime expires or owner detonates them.
; Not implemented UniqueSpecialObjectTargets = Yes ;This prevents multiple charges placed on the same object.
End

Behavior = UnpauseSpecialPowerUpgrade ModuleTag_22
SpecialPowerTemplate = SpecialAbilityBoobyTrap
TriggeredBy = Upgrade_GLAInfantryRebelBoobyTrapAttack
End

; Module 23 commented out because it crashes saved games if the Rebel is Elite. GrantUpgradeCreate is a twitchy module.
; Behavior = GrantUpgradeCreate ModuleTag_23
; UpgradeToGrant = Upgrade_GLAInfantryRebelBoobyTrapAttack
; ExemptStatus = UNDER_CONSTRUCTION
; End

; I have just pulled my ripcord, and this ain't no parachute!
Behavior = SlowDeathBehavior ModuleTag_Death17
DeathTypes = NONE +SUICIDED +EXPLODED
SinkDelay = 3000
SinkRate = 0.5 ; in Dist/Sec
DestructionDelay = 8000
FX = INITIAL FX_TerroristExplode
FlingForce = 8
FlingForceVariance = 3
FlingPitch = 60
FlingPitchVariance = 10
End

Behavior = WeaponSetUpgrade ModuleTag_08
TriggeredBy = Chem_Upgrade_GLAAnthraxGamma
End

Behavior = ObjectCreationUpgrade ModuleTag_997
UpgradeObject = OCL_GLASpecialForceSuicideOCL
TriggeredBy = Upgrade_GSFSuicideUpgrade

End

Behavior = FireWeaponWhenDeadBehavior ModuleTag998
DeathWeapon = Demo_SuicideDynamitePackPlusFire
StartsActive = No
TriggeredBy = Demo_Upgrade_SuicideBomb
DeathTypes = NONE +SUICIDED
End;

Behavior = FireWeaponWhenDeadBehavior ModuleTag999
DeathWeapon = Demo_DestroyedWeapon
StartsActive = No
TriggeredBy = Demo_Upgrade_SuicideBomb
DeathTypes = ALL -SUICIDED
End

Behavior = CommandSetUpgrade ModuleTag_25
CommandSet = GLASpecialForceInfantryRebelCommandSetAnthraxUpgrade
TriggeredBy = Demo_Upgrade_SuicideBomb
End

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

End



The Explosion Object's Code:

Object GLASpecialForceSuicideObject

; *** ART Parameters ***
Draw = W3DModelDraw ModuleTag_01
DefaultConditionState
Model = NONE
End
End

; ***DESIGN parameters ***
EditorSorting = SYSTEM
; KindOf = IMMOBILE CLEANUP_HAZARD INERT NO_COLLIDE STICK_TO_TERRAIN_SLOPE
KindOf = IMMOBILE INERT NO_COLLIDE STICK_TO_TERRAIN_SLOPE
ArmorSet
Conditions = None
Armor = HazardousMaterialArmor
End

; ***AUDIO parameters ***
; SoundAmbient = RadiationPoolAmbientLoop

; *** ENGINEERING Parameters ***
Body = ActiveBody ModuleTag_02
MaxHealth = 100.0
InitialHealth = 100.0
End
Behavior = FireWeaponUpdate ModuleTag_03
Weapon = GLASpecialForceSuicideWeapon
End

Behavior = LifetimeUpdate ModuleTag_04
MinLifetime = 500
MaxLifetime = 500
End

; Behavior = FireWeaponUpdate ModuleTag_05
; Weapon = HazardFieldCoreWeapon ; Prevents stacking of fields with a small blast of cleaning at the core at startup
; End

Behavior = DestroyDie ModuleTag_06
End

; Behavior = FXListDie ModuleTag_07
; DeathFX = FX_RadiationPoolDie
; End

Geometry = CYLINDER
GeometryMajorRadius = 10.0
GeometryHeight = 1.0
GeometryIsSmall = No

End



The Explosion Object's Weapon's Code:

Weapon GLASpecialForceSuicideWeapon
LeechRangeWeapon = Yes
AttackRange = 1.0
PrimaryDamage = 999999.0
PrimaryDamageRadius = 1.0
DamageDealtAtSelfPosition = Yes ; this is a suicide bomber... remember?
RadiusDamageAffects = SELF SUICIDE; ALLIES
DamageType = EXPLOSION
DeathType = SUICIDED
WeaponSpeed = 99999.0
DelayBetweenShots = 0
ClipSize = 1
ClipReloadTime = 0
AutoReloadsClip = No
;PreAttackDelay = 600 ;766 matches the animation timing his detonating
End



The OCL Code:

ObjectCreationList OCL_GLASpecialForceSuicideOCL
CreateObject
Offset = X:0 Y:0 Z:0
ObjectNames = GLASpecialForceSuicideObject
IgnorePrimaryObstacle = Yes
Disposition = ON_GROUND_ALIGNED
Count = 1
RequiresLivePlayer = Yes
End
End



The Upgrade's Code:

Upgrade Upgrade_GSFSuicideUpgrade
Type = OBJECT
BuildTime = 0.0
BuildCost = 0
ButtonImage = SUSuicideAttk
End



The Upgrade's Command Button's Code:

CommandButton Command_UpgradeGSFSuicideUpgrade
Command = OBJECT_UPGRADE;PLAYER_UPGRADE
Upgrade = Upgrade_GSFSuicideUpgrade
Options = OK_FOR_MULTI_SELECT NOT_QUEUEABLE
TextLabel = CONTROLBAR:SuicideAttack
ButtonImage = SUSuicideAttk
ButtonBorderType = ACTION ; Identifier for the User as to what kind of button this is
DescriptLabel = CONTROLBAR:ToolTipGLASuicideAttack
End



And at least, The Rebel's Command Sets's Code

CommandSet GLASpecialForceInfantryRebelCommandSetAnthrax
1 = Command_GLAInfantryRebelCaptureBuilding
2 = Command_GLAInfantryRebelBoobyTrapAttack
3 = Command_GLASpecialForceRebelSwitchToMachineGun
5 = Command_GLASpecialForceRebelSwitchToAnthrax
11 = Command_AttackMove
13 = Command_Guard
14 = Command_Stop
End

CommandSet GLASpecialForceInfantryRebelCommandSetAnthraxUpgrade
1 = Command_GLAInfantryRebelCaptureBuilding
2 = Command_GLAInfantryRebelBoobyTrapAttack
3 = Command_GLASpecialForceRebelSwitchToMachineGun
4 = Command_UpgradeGSFSuicideUpgrade
5 = Command_GLASpecialForceRebelSwitchToAnthrax
11 = Command_AttackMove
13 = Command_Guard
14 = Command_Stop
End



If you need to see anything more, use this:http://www.mediafire.com/download/buask12sb4gy4le/SpecialForces(2).big 
Annihilationzh
12 years ago
EDIT: This was not intended as a response to the above post.

The Forum has been a bit slow lately, so...

; ----------------------------------------------
ObjectCreationList OCL_SuicideBomb
 CreateObject
   ObjectNames = SuicideBomb
   Disposition = ON_GROUND_ALIGNED
 End
End
CommandButton Command_UpgradeFakeSuicideButton
  Command       = OBJECT_UPGRADE
  Upgrade       = Upgrade_GLAWorkerFakeCommandSet
  TextLabel               = CONTROLBAR:SuicideAttack
  ButtonImage             = SUSuicideAttk
  ButtonBorderType        = ACTION ; Identifier for the User as to what kind of button this is
  DescriptLabel           = CONTROLBAR:ToolTipGLASuicideAttack
End
CommandSet GLASpecialForceInfantryRebelCommandSetAnthrax
  1 = Command_GLAInfantryRebelCaptureBuilding
  2 = Command_GLAInfantryRebelBoobyTrapAttack
  3 = Command_GLASpecialForceRebelSwitchToMachineGun
  5 = Command_GLASpecialForceRebelSwitchToAnthrax
  11 = Command_AttackMove
  13 = Command_Guard
  14 = Command_Stop
End

CommandSet GLASpecialForceInfantryRebelCommandSetAnthraxUpgrade
  1 = Command_GLAInfantryRebelCaptureBuilding
  2 = Command_GLAInfantryRebelBoobyTrapAttack
  3 = Command_GLASpecialForceRebelSwitchToMachineGun
  4 = Command_UpgradeFakeSuicideButton
  5 = Command_GLASpecialForceRebelSwitchToAnthrax
  11 = Command_AttackMove
  13 = Command_Guard
  14 = Command_Stop
End
Weapon SuicideBombWeapon
  PrimaryDamage = 500.0
  PrimaryDamageRadius = 18.0   
  SecondaryDamage = 300.0
  SecondaryDamageRadius = 50.0
  AttackRange = 15.0
  MinimumAttackRange = 10.0
  DamageType = EXPLOSION
  DeathType = EXPLODED
  WeaponSpeed = 600                     ;  dist/sec 
  RadiusDamageAffects = SELF SUICIDE ALLIES ENEMIES NEUTRALS

  FireFX = WeaponFX_SuicideDynamitePackDetonation
  FireSound = CarBomberDie
  DelayBetweenShots = 750
End


;------------------------------------------------------------------------------
Object GLASpecialForceInfantryRebel

  ; *** ART Parameters ***
  SelectPortrait         = SUToxinRebel_L
  ButtonImage            = SUToxinRebel

  UpgradeCameo1 = Upgrade_GLAAPBullets
  UpgradeCameo2 = Upgrade_InfantryCaptureBuilding
  UpgradeCameo3 = Demo_Upgrade_SuicideBomb
  UpgradeCameo4 = Chem_Upgrade_GLAAnthraxGamma
  ;UpgradeCameo5 = NONE

  Draw = W3DModelDraw ModuleTag_01

    OkToChangeModelColor = Yes
  ParticlesAttachedToAnimatedBones = Yes


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

    ; ---- standing
    DefaultConditionState
      Model               = UIRGrdTOX_SKN
      IdleAnimation       = UIRGrd_SKL.UIRGrd_STN 0 35
      IdleAnimation       = UIRGrd_SKL.UIRGrd_IDA 
      IdleAnimation       = UIRGrd_SKL.UIRGrd_IDB 
      AnimationMode       = ONCE
      WeaponFireFXBone    = PRIMARY Muzzle01
      WeaponLaunchBone    = PRIMARY Muzzle01
      WeaponFireFXBone    = SECONDARY Muzzle01
      WeaponLaunchBone    = SECONDARY Muzzle01
      HideSubObject       = MuzzleFX01
      TransitionKey       = TRANS_Standing
;;;   ParticleSysBone     = MUZZLE01 WaterSpray
    End

    ConditionState        = REALLYDAMAGED
      IdleAnimation       = UIRGrd_SKL.UIRGrd_STB 0 35
      IdleAnimation       = UIRGrd_SKL.UIRGrd_IDC
      IdleAnimation       = UIRGrd_SKL.UIRGrd_IDD 
      AnimationMode       = ONCE
      TransitionKey       = TRANS_StandingHurt
    End

    ; ---- moving
    ConditionState        = MOVING
      Animation           = UIRGrd_SKL.UIRGrd_RNA 15
      AnimationMode       = LOOP
      TransitionKey       = TRANS_Walking
      ParticleSysBone     = None InfantryDustTrails
    End
    AliasConditionState   = MOVING ATTACKING

    ConditionState        = MOVING REALLYDAMAGED
      Animation           = UIRGrd_SKL.UIRGrd_RNB 25
      AnimationMode       = LOOP
      TransitionKey       = TRANS_WalkingHurt
      ParticleSysBone     = None InfantryDustTrails
    End
    AliasConditionState   = MOVING ATTACKING REALLYDAMAGED
    
    ; ---- dying 
    ConditionState        = DYING
      Animation           = UIRGrd_SKL.UIRGrd_DTA 
      Animation           = UIRGrd_SKL.UIRGrd_DTB 
      AnimationMode       = ONCE
      TransitionKey       = TRANS_Dying
    End

    TransitionState = TRANS_Dying TRANS_Flailing
      Animation = UIRGrd_SKL.UIRGrd_ADTE1
      AnimationMode = ONCE
    End

    ConditionState = DYING EXPLODED_FLAILING
      Animation = UIRGrd_SKL.UIRGrd_ADTE2
      AnimationMode = LOOP
      TransitionKey = TRANS_Flailing
    End

    ConditionState = DYING EXPLODED_BOUNCING
      Animation = UIRGrd_SKL.UIRGrd_ADTE3
      AnimationMode = ONCE
      TransitionKey = None
    End
    
    ConditionState = SPECIAL_CHEERING
      Animation = UIRGrd_SKL.UIRGrd_IDB
    End

    ; ---- firing
    ConditionState = USING_WEAPON_A
      Animation = UIRGrd_SKL.UIRGrd_ATA3
      AnimationMode = LOOP
      TransitionKey = TRANS_Firing
    End

    ConditionState = USING_WEAPON_A REALLYDAMAGED
      Animation = UIRGrd_SKL.UIRGrd_ATA2
      AnimationMode = LOOP
      TransitionKey = TRANS_FiringHurt
    End

    TransitionState = TRANS_Standing TRANS_Firing
      Animation = UIRGrd_SKL.UIRGrd_ATAST
      AnimationMode = ONCE
    End

    TransitionState = TRANS_Firing TRANS_Standing
      Animation = UIRGrd_SKL.UIRGrd_ATAED
      AnimationMode = ONCE
    End

    TransitionState = TRANS_StandingHurt TRANS_FiringHurt
      Animation = UIRGrd_SKL.UIRGrd_ATA2ED
      AnimationMode = ONCE_BACKWARDS
    End

    TransitionState = TRANS_FiringHurt TRANS_StandingHurt
      Animation = UIRGrd_SKL.UIRGrd_ATA2ED
      AnimationMode = ONCE
    End

    TransitionState = TRANS_Standing TRANS_StandingHurt
      Animation = UIRGrd_SKL.UIRGrd_ATA2ED
      AnimationMode = ONCE
    End

    ; ---- firing
    ConditionState = USING_WEAPON_B
      Animation = UIRGrd_SKL.UIRGrd_ATA
      AnimationMode = LOOP
      TransitionKey = TRANS_Firing
    End

    ConditionState = USING_WEAPON_B REALLYDAMAGED
      Animation = UIRGrd_SKL.UIRGrd_ATA2
      AnimationMode = LOOP
      TransitionKey = TRANS_FiringHurt
    End

    TransitionState = TRANS_Standing TRANS_Firing
      Animation = UIRGrd_SKL.UIRGrd_ATAST
      AnimationMode = ONCE
    End

    TransitionState = TRANS_Firing TRANS_Standing
      Animation = UIRGrd_SKL.UIRGrd_ATAED
      AnimationMode = ONCE
    End

    TransitionState = TRANS_StandingHurt TRANS_FiringHurt
      Animation = UIRGrd_SKL.UIRGrd_ATA2ED
      AnimationMode = ONCE_BACKWARDS
    End

    TransitionState = TRANS_FiringHurt TRANS_StandingHurt
      Animation = UIRGrd_SKL.UIRGrd_ATA2ED
      AnimationMode = ONCE
    End

    TransitionState = TRANS_Standing TRANS_StandingHurt
      Animation = UIRGrd_SKL.UIRGrd_ATA2ED
      AnimationMode = ONCE
    End    

    ; ------- Bldg-capture

    ConditionState = UNPACKING
      Model             = UIRGrdTOXF_SKN
      Animation         = UIRGrd_F_SKL.UIRGrd_F_FDP1
      AnimationMode     = ONCE
    End
    AliasConditionState = UNPACKING REALLYDAMAGED

    ConditionState = RAISING_FLAG
      Model             = UIRGrdTOXF_SKN
      Animation         = UIRGrd_F_SKL.UIRGrd_F_FDP2
      AnimationMode     = ONCE
      TransitionKey     = TRANS_Raising
    End
    AliasConditionState = RAISING_FLAG REALLYDAMAGED

    ConditionState = PACKING
      Model             = UIRGrdTOXF_SKN
      Animation         = UIRGrd_F_SKL.UIRGrd_F_FDP1
      AnimationMode     = ONCE_BACKWARDS
      Flags             = START_FRAME_LAST
      TransitionKey     = TRANS_Packing
    End
    AliasConditionState = PACKING REALLYDAMAGED

    TransitionState = TRANS_Raising TRANS_Packing
      Model             = UIRGrdTOXF_SKN
      Animation         = UIRGrd_F_SKL.UIRGrd_F_FDP2
      AnimationMode     = ONCE_BACKWARDS
      Flags             = START_FRAME_LAST
    End

  End
  ; ***DESIGN parameters ***
  DisplayName         = OBJECT:Rebel
  Side                = GLASpecialForce
  EditorSorting       = INFANTRY
  TransportSlotCount  = 1                 ;how many "slots" we take in a transport (0 == not transportable)
 
  WeaponSet
    Conditions = None 
    Weapon = PRIMARY GLARebelMachineGun
    Weapon = SECONDARY GC_Chem_GLARebelGunBeta
    AutoChooseSources = PRIMARY FROM_SCRIPT FROM_AI
    AutoChooseSources = SECONDARY FROM_SCRIPT DEFAULT_SWITCH_WEAPON
    WeaponLockSharedAcrossSets = Yes
  End
  WeaponSet
    Conditions = PLAYER_UPGRADE
    Weapon = PRIMARY GLARebelMachineGun
    Weapon = SECONDARY GC_Chem_GLARebelGunGamma
    AutoChooseSources = PRIMARY FROM_SCRIPT FROM_AI
    AutoChooseSources = SECONDARY FROM_SCRIPT DEFAULT_SWITCH_WEAPON
    WeaponLockSharedAcrossSets = Yes
  End
  ArmorSet
    Conditions      = None
    Armor           = ChemRebSuitHumanArmor
    DamageFX        = InfantryDamageFX
  End
  VisionRange         = 150
  ShroudClearingRange = 300
  Prerequisites
    Object = GLASpecialForceBarracks
  End
  BuildCost = 150
  BuildTime = 5.0          ;in seconds  

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

  ; *** AUDIO Parameters ***
  VoiceSelect = RebelVoiceSelect
  VoiceMove = RebelVoiceMove
  VoiceGuard = RebelVoiceMove
  VoiceAttack = RebelVoiceAttack
  SoundStealthOn = StealthOn
  SoundStealthOff = StealthOff
  VoiceFear = RebelVoiceFear
  VoiceTaskComplete = RebelVoiceCaptureComplete
  UnitSpecificSounds
    VoiceCreate = RebelVoiceCreate
    VoiceSubdue = RebelVoiceSubdue
    VoiceGarrison = RebelVoiceGarrison
    VoiceEnter = RebelVoiceMove
    VoiceEnterHostile = RebelVoiceMove
    VoiceGetHealed      = RebelVoiceMove
  End

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

  Body = ActiveBody ModuleTag_02
    MaxHealth       = 120.0
    InitialHealth   = 120.0
  End

  Behavior = AIUpdateInterface ModuleTag_03
    AutoAcquireEnemiesWhenIdle = Yes
  End

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

  Locomotor = SET_NORMAL BasicHumanLocomotor

  Behavior = PhysicsBehavior ModuleTag_05
    Mass = 5.0
  End
  Behavior = StealthUpdate ModuleTag_07
    StealthDelay                = 2500 ; msec
    StealthForbiddenConditions  = ATTACKING USING_ABILITY TAKING_DAMAGE
    MoveThresholdSpeed          = 3
    InnateStealth               = Yes ;doesnt Require upgrade first
    OrderIdleEnemiesToAttackMeUponReveal  = Yes
  End

  Behavior = WeaponBonusUpgrade ModuleTag_09
    TriggeredBy = Upgrade_GLAAPBullets
  End
  Behavior = GrantUpgradeCreate ModuleTag_10
    UpgradeToGrant = Upgrade_GLACamouflage
  End
 
  Behavior = SquishCollide ModuleTag_11
    ;nothing
  End


; --- begin Death modules ---
  Behavior = SlowDeathBehavior ModuleTag_Death01
    DeathTypes          = ALL -CRUSHED -SPLATTED -EXPLODED -BURNED -POISONED -POISONED_BETA -POISONED_GAMMA -SUICIDED
    SinkDelay           = 3000
    SinkRate            = 0.5     ; in Dist/Sec
    DestructionDelay    = 8000
    FX                  = INITIAL FX_RebelDie
  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 -SUICIDED
    SinkDelay           = 3000
    SinkRate            = 0.5     ; in Dist/Sec
    DestructionDelay    = 8000
    FX                  = INITIAL FX_RebelDie
    FlingForce          = 8
    FlingForceVariance  = 3
    FlingPitch          = 60
    FlingPitchVariance  = 10
  End
  Behavior = SlowDeathBehavior ModuleTag_Death04
    DeathTypes          = NONE +BURNED
    DestructionDelay    = 0
    FX                  = INITIAL FX_DieByFireGLA
    OCL                 = INITIAL OCL_FlamingInfantry
  End
  Behavior = SlowDeathBehavior ModuleTag_Death05
    DeathTypes          = NONE +POISONED
    DestructionDelay    = 0
    FX                  = INITIAL FX_DieByToxinGLA
    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_DieByToxinGLA
    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_16
    PoisonDamageInterval = 100  ; Every this many msec I will retake the poison damage dealt me...
    PoisonDuration = 3000       ; ... for this long after last hit by poison damage
  End

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

  Behavior = UnpauseSpecialPowerUpgrade ModuleTag_19
    SpecialPowerTemplate = SpecialAbilityRebelCaptureBuilding
    TriggeredBy = Upgrade_InfantryCaptureBuilding
  End

  Behavior = SpecialAbility ModuleTag_20
    SpecialPowerTemplate = SpecialAbilityBoobyTrap
    UpdateModuleStartsAttack = Yes
    StartsPaused              = Yes
;    InitiateSound = TankHunterVoiceTNT
  End
  Behavior = SpecialAbilityUpdate ModuleTag_21
    SpecialPowerTemplate = SpecialAbilityBoobyTrap
    StartAbilityRange = 5.0
    PreparationTime = 0
    SpecialObject = BoobyTrap
    MaxSpecialObjects = 100
    SpecialObjectsPersistWhenOwnerDies = Yes
    SpecialObjectsPersistent = Yes          ;Charges are persistent till lifetime expires or owner detonates them.
; Not implemented    UniqueSpecialObjectTargets = Yes        ;This prevents multiple charges placed on the same object.
  End

  Behavior = UnpauseSpecialPowerUpgrade ModuleTag_22
    SpecialPowerTemplate = SpecialAbilityBoobyTrap
    TriggeredBy = Upgrade_GLAInfantryRebelBoobyTrapAttack
  End

; Module 23 commented out because it crashes saved games if the Rebel is Elite.  GrantUpgradeCreate is a twitchy module.
;  Behavior = GrantUpgradeCreate ModuleTag_23
;    UpgradeToGrant           = Upgrade_GLAInfantryRebelBoobyTrapAttack
;    ExemptStatus      = UNDER_CONSTRUCTION
;  End

  ; I have just pulled my ripcord, and this ain't no parachute!
  Behavior = SlowDeathBehavior ModuleTag_Death17
    DeathTypes          = NONE +EXPLODED
    SinkDelay           = 3000
    SinkRate            = 0.5     ; in Dist/Sec
    DestructionDelay    = 8000
    FX                  = INITIAL FX_TerroristExplode
    FlingForce          = 8
    FlingForceVariance  = 3
    FlingPitch          = 60
    FlingPitchVariance  = 10
  End

  Behavior = WeaponSetUpgrade ModuleTag_08
    TriggeredBy   = Chem_Upgrade_GLAAnthraxGamma
  End

  Behavior = FireWeaponWhenDeadBehavior ModuleTag999
    DeathWeapon   = Demo_DestroyedWeapon
    StartsActive  = No
    TriggeredBy   = Demo_Upgrade_SuicideBomb
    DeathTypes = ALL
  End

  Behavior = CommandSetUpgrade ModuleTag_25
    CommandSet = GLASpecialForceInfantryRebelCommandSetAnthraxUpgrade
    TriggeredBy = Demo_Upgrade_SuicideBomb
  End

  Behavior = ObjectCreationUpgrade ModuleTag_X0
    UpgradeObject = OCL_SuicideBomb
    TriggeredBy   = Upgrade_GLAWorkerFakeCommandSet
  End

  Behavior = ProductionUpdate ModuleTag_X1
    MaxQueueEntries = 1
  End

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

End



;------------------------------------------------------------------------------
Object SuicideBomb

  ; *** ART Parameters ***
  Draw = W3DModelDraw ModuleTag_01
    DefaultConditionState
      Model = NONE
    End
  End

  ; ***DESIGN parameters ***
  EditorSorting = SYSTEM
  ; srj asks: should this also be STICK_TO_TERRAIN_SLOPE?
  KindOf = IMMOBILE CLEANUP_HAZARD INERT NO_COLLIDE
  ArmorSet
    Conditions      = None
    Armor           = InvulnerableAllArmor
  End

  ; ***AUDIO parameters ***
  SoundAmbient      = RadiationPoolAmbientLoop

  ; *** ENGINEERING Parameters ***  
  Body = ActiveBody ModuleTag_02
    MaxHealth        = 5000.0
    InitialHealth    = 5000.0
  End
  Behavior = FireWeaponUpdate ModuleTag_03
    Weapon = SuicideBombWeapon
  End

  Behavior = LifetimeUpdate ModuleTag_04
    MinLifetime = 300
    MaxLifetime = 300
  End
  
  Behavior = DestroyDie ModuleTag_06
  End
  
  Geometry            = CYLINDER
  GeometryMajorRadius = 100.0
  GeometryHeight      = 1.0
  GeometryIsSmall     = No
  
End

I don't think I've missed anything, but if I have, don't be afraid to poke me with a stick.
If you need help, post in the forum. You'll get help a lot faster than if you send me a PM.

I reject all buddy requests. I don't think 'buddy' needs to be made official. It's not like you're marrying me.
boaz23
  • boaz23
  • 50.25% (Neutral)
  • Private Topic Starter
12 years ago
It finally works 😁.
Thank you so much guys, especially you Annihilationzh, Thank you very much.

I am sorry for beeing abit noob and for the slow posts.