Merge pull request #11407 from reaperrr/ts-infantry-tweaks

Various TS infantry fixes
This commit is contained in:
abcdefg30
2016-06-12 14:42:12 +02:00
committed by GitHub
16 changed files with 405 additions and 1405 deletions

View File

@@ -332,6 +332,7 @@
<Compile Include="Traits\EmitInfantryOnSell.cs" /> <Compile Include="Traits\EmitInfantryOnSell.cs" />
<Compile Include="Traits\EngineerRepair.cs" /> <Compile Include="Traits\EngineerRepair.cs" />
<Compile Include="Traits\Explodes.cs" /> <Compile Include="Traits\Explodes.cs" />
<Compile Include="Traits\ExplosionOnDamageTransition.cs" />
<Compile Include="Traits\ExternalCapturable.cs" /> <Compile Include="Traits\ExternalCapturable.cs" />
<Compile Include="Traits\ExternalCapturableBar.cs" /> <Compile Include="Traits\ExternalCapturableBar.cs" />
<Compile Include="Traits\ExternalCaptures.cs" /> <Compile Include="Traits\ExternalCaptures.cs" />

View File

@@ -0,0 +1,70 @@
#region Copyright & License Information
/*
* Copyright 2007-2016 The OpenRA Developers (see AUTHORS)
* This file is part of OpenRA, which is free software. It is made
* available to you under the terms of the GNU General Public License
* as published by the Free Software Foundation, either version 3 of
* the License, or (at your option) any later version. For more
* information, see COPYING.
*/
#endregion
using System.Collections.Generic;
using System.Linq;
using OpenRA.GameRules;
using OpenRA.Mods.Common.Warheads;
using OpenRA.Traits;
namespace OpenRA.Mods.Common.Traits
{
[Desc("This actor triggers an explosion on itself when transitioning to a specific damage state.")]
public class ExplosionOnDamageTransitionInfo : ITraitInfo, IRulesetLoaded, Requires<HealthInfo>
{
[WeaponReference, FieldLoader.Require, Desc("Weapon to use for explosion.")]
public readonly string Weapon = null;
[Desc("At which damage state explosion will trigger.")]
public readonly DamageState DamageState = DamageState.Heavy;
[Desc("Should the explosion only be triggered once?")]
public readonly bool TriggerOnlyOnce = false;
public WeaponInfo WeaponInfo { get; private set; }
public object Create(ActorInitializer init) { return new ExplosionOnDamageTransition(this, init.Self); }
public void RulesetLoaded(Ruleset rules, ActorInfo ai)
{
WeaponInfo = string.IsNullOrEmpty(Weapon) ? null : rules.Weapons[Weapon.ToLowerInvariant()];
}
}
public class ExplosionOnDamageTransition : INotifyDamageStateChanged
{
readonly ExplosionOnDamageTransitionInfo info;
bool triggered;
public ExplosionOnDamageTransition(ExplosionOnDamageTransitionInfo info, Actor self)
{
this.info = info;
}
public void DamageStateChanged(Actor self, AttackInfo e)
{
if (!self.IsInWorld)
return;
if (triggered)
return;
if (e.DamageState >= info.DamageState && e.PreviousDamageState < info.DamageState)
{
if (info.TriggerOnlyOnce)
triggered = true;
// Use .FromPos since the actor might have been killed, don't use Target.FromActor
info.WeaponInfo.Impact(Target.FromPos(self.CenterPosition), e.Attacker, Enumerable.Empty<int>());
}
}
}
}

View File

@@ -44,7 +44,7 @@ namespace OpenRA.Mods.Common.Traits.Render
[FieldLoader.LoadUsing("LoadDeathTypes")] [FieldLoader.LoadUsing("LoadDeathTypes")]
[Desc("Death animation to use for each damage type (defined on the warheads).", [Desc("Death animation to use for each damage type (defined on the warheads).",
"Is only used if UseDeathTypeSuffix is `True`.")] "Is only used if UseDeathTypeSuffix is `True`.")]
public readonly Dictionary<string, int> DeathTypes = new Dictionary<string, int>(); public readonly Dictionary<string, string> DeathTypes = new Dictionary<string, string>();
[Desc("Sequence to use when the actor is killed by some non-standard means (e.g. suicide).")] [Desc("Sequence to use when the actor is killed by some non-standard means (e.g. suicide).")]
[SequenceReference] public readonly string FallbackSequence = null; [SequenceReference] public readonly string FallbackSequence = null;
@@ -54,8 +54,8 @@ namespace OpenRA.Mods.Common.Traits.Render
var md = yaml.ToDictionary(); var md = yaml.ToDictionary();
return md.ContainsKey("DeathTypes") return md.ContainsKey("DeathTypes")
? md["DeathTypes"].ToDictionary(my => FieldLoader.GetValue<int>("(value)", my.Value)) ? md["DeathTypes"].ToDictionary(my => FieldLoader.GetValue<string>("(value)", my.Value))
: new Dictionary<string, int>(); : new Dictionary<string, string>();
} }
public object Create(ActorInitializer init) { return new WithDeathAnimation(init.Self, this); } public object Create(ActorInitializer init) { return new WithDeathAnimation(init.Self, this); }

View File

@@ -29,6 +29,9 @@ namespace OpenRA.Mods.Common.Traits
[Desc("Levels of damage at which to grant upgrades.")] [Desc("Levels of damage at which to grant upgrades.")]
public readonly DamageState ValidDamageStates = DamageState.Heavy | DamageState.Critical; public readonly DamageState ValidDamageStates = DamageState.Heavy | DamageState.Critical;
[Desc("Are upgrades irrevocable once the conditions have been met?")]
public readonly bool GrantPermanently = false;
public object Create(ActorInitializer init) { return new UpgradeOnDamage(init.Self, this); } public object Create(ActorInitializer init) { return new UpgradeOnDamage(init.Self, this); }
} }
@@ -36,6 +39,7 @@ namespace OpenRA.Mods.Common.Traits
{ {
readonly UpgradeOnDamageInfo info; readonly UpgradeOnDamageInfo info;
readonly UpgradeManager um; readonly UpgradeManager um;
bool granted;
public UpgradeOnDamage(Actor self, UpgradeOnDamageInfo info) public UpgradeOnDamage(Actor self, UpgradeOnDamageInfo info)
{ {
@@ -43,12 +47,14 @@ namespace OpenRA.Mods.Common.Traits
um = self.TraitOrDefault<UpgradeManager>(); um = self.TraitOrDefault<UpgradeManager>();
} }
bool granted;
void INotifyDamageStateChanged.DamageStateChanged(Actor self, AttackInfo e) void INotifyDamageStateChanged.DamageStateChanged(Actor self, AttackInfo e)
{ {
if (um == null) if (um == null)
return; return;
if (granted && info.GrantPermanently)
return;
var rand = Game.CosmeticRandom; var rand = Game.CosmeticRandom;
if (!granted && info.ValidDamageStates.HasFlag(e.DamageState) && !info.ValidDamageStates.HasFlag(e.PreviousDamageState)) if (!granted && info.ValidDamageStates.HasFlag(e.DamageState) && !info.ValidDamageStates.HasFlag(e.PreviousDamageState))
{ {

View File

@@ -7,6 +7,7 @@ Infantry:
Die: dedman1, dedman3, dedman4, dedman5, dedman6 Die: dedman1, dedman3, dedman4, dedman5, dedman6
Burned: dedman2 Burned: dedman2
Zapped: electro1 Zapped: electro1
Explode: expnew10
Rocket: Rocket:
Voices: Voices:
@@ -17,6 +18,7 @@ Rocket:
Die: dedman1, dedman3, dedman4, dedman5, dedman6 Die: dedman1, dedman3, dedman4, dedman5, dedman6
Burned: dedman2 Burned: dedman2
Zapped: electro1 Zapped: electro1
Explode: expnew10
Umagon: Umagon:
Voices: Voices:
@@ -26,6 +28,7 @@ Umagon:
Die: dedgirl1, dedgirl2, dedgirl4 Die: dedgirl1, dedgirl2, dedgirl4
Burned: dedgirl3 Burned: dedgirl3
Zapped: electro1 Zapped: electro1
Explode: expnew10
Ghost: Ghost:
Voices: Voices:
@@ -35,6 +38,7 @@ Ghost:
Die: dedman1, dedman3, dedman4, dedman5, dedman6 Die: dedman1, dedman3, dedman4, dedman5, dedman6
Burned: dedman2 Burned: dedman2
Zapped: electro1 Zapped: electro1
Explode: expnew10
Medic: Medic:
Voices: Voices:
@@ -44,6 +48,7 @@ Medic:
Die: dedman1, dedman3, dedman4, dedman5, dedman6 Die: dedman1, dedman3, dedman4, dedman5, dedman6
Burned: dedman2 Burned: dedman2
Zapped: electro1 Zapped: electro1
Explode: expnew10
Engineer: Engineer:
Voices: Voices:
@@ -53,6 +58,7 @@ Engineer:
Die: dedman1, dedman3, dedman4, dedman5, dedman6 Die: dedman1, dedman3, dedman4, dedman5, dedman6
Burned: dedman2 Burned: dedman2
Zapped: electro1 Zapped: electro1
Explode: expnew10
JumpJet: JumpJet:
Voices: Voices:
@@ -63,6 +69,7 @@ JumpJet:
Die: dedman1, dedman3, dedman4, dedman5, dedman6 Die: dedman1, dedman3, dedman4, dedman5, dedman6
Burned: dedman2 Burned: dedman2
Zapped: electro1 Zapped: electro1
Explode: expnew10
Weed: Weed:
Voices: Voices:
@@ -73,6 +80,7 @@ Weed:
Die: dedman1, dedman3, dedman4, dedman5, dedman6 Die: dedman1, dedman3, dedman4, dedman5, dedman6
Burned: dedman2 Burned: dedman2
Zapped: electro1 Zapped: electro1
Explode: expnew10
Spy: Spy:
Voices: Voices:
@@ -83,6 +91,7 @@ Spy:
Die: dedman1, dedman3, dedman4, dedman5, dedman6 Die: dedman1, dedman3, dedman4, dedman5, dedman6
Burned: dedman2 Burned: dedman2
Zapped: electro1 Zapped: electro1
Explode: expnew10
Hijacker: Hijacker:
Voices: Voices:
@@ -92,24 +101,21 @@ Hijacker:
Die: dedman1, dedman3, dedman4, dedman5, dedman6 Die: dedman1, dedman3, dedman4, dedman5, dedman6
Burned: dedman2 Burned: dedman2
Zapped: electro1 Zapped: electro1
Explode: expnew10
Cyborg: Cyborg:
Voices: Voices:
Select: 22-i000, 22-i002, 22-i006 Select: 22-i000, 22-i002, 22-i006
Move: 22-i008, 22-i010, 22-i014, 22-i016, 22-i020 Move: 22-i008, 22-i010, 22-i014, 22-i016, 22-i020
Attack: 22-i008, 22-i010, 22-i012, 22-i018 Attack: 22-i008, 22-i010, 22-i012, 22-i018
Die: 22-n104, 22-n108 Die: 22-n104, 22-n106, 22-n108
Burned: 22-n106
Zapped: electro1
CyborgCommando: CyborgCommando:
Voices: Voices:
Select: 23-i000, 23-i002, 23-i004, 23-i006 Select: 23-i000, 23-i002, 23-i004, 23-i006
Move: 23-i008, 23-i010, 23-i012, 23-i016 Move: 23-i008, 23-i010, 23-i012, 23-i016
Attack: 23-i014, 23-i018, 23-i020, 23-i022 Attack: 23-i014, 23-i018, 23-i020, 23-i022
Die: 22-n104, 22-n108 Die: 22-n104, 22-n106, 22-n108
Burned: 22-n106
Zapped: electro1
Mutant: Mutant:
Voices: Voices:
@@ -119,6 +125,7 @@ Mutant:
Die: dedman1, dedman3, dedman4, dedman5, dedman6 Die: dedman1, dedman3, dedman4, dedman5, dedman6
Burned: dedman2 Burned: dedman2
Zapped: electro1 Zapped: electro1
Explode: expnew10
Tratos: Tratos:
Voices: Voices:
@@ -128,6 +135,7 @@ Tratos:
Die: dedman1, dedman3, dedman4, dedman5, dedman6 Die: dedman1, dedman3, dedman4, dedman5, dedman6
Burned: dedman2 Burned: dedman2
Zapped: electro1 Zapped: electro1
Explode: expnew10
Oxanna: Oxanna:
Voices: Voices:
@@ -137,6 +145,7 @@ Oxanna:
Die: dedgirl1, dedgirl2, dedgirl4 Die: dedgirl1, dedgirl2, dedgirl4
Burned: dedgirl3 Burned: dedgirl3
Zapped: electro1 Zapped: electro1
Explode: expnew10
Slavick: Slavick:
Voices: Voices:
@@ -146,6 +155,7 @@ Slavick:
Die: dedman1, dedman3, dedman4, dedman5, dedman6 Die: dedman1, dedman3, dedman4, dedman5, dedman6
Burned: dedman2 Burned: dedman2
Zapped: electro1 Zapped: electro1
Explode: expnew10
Fiend: Fiend:
Voices: Voices:
@@ -155,6 +165,7 @@ Fiend:
Die: fiend1 Die: fiend1
Burned: fiend1 Burned: fiend1
Zapped: fiend1 Zapped: fiend1
Explode: expnew10
Vehicle: Vehicle:
Voices: Voices:
@@ -183,6 +194,7 @@ Civilian:
Die: dedman1, dedman3, dedman4, dedman5, dedman6 Die: dedman1, dedman3, dedman4, dedman5, dedman6
Burned: dedman2 Burned: dedman2
Zapped: electro1 Zapped: electro1
Explode: expnew10
CivilianFemale: #can be used for female mutant as well CivilianFemale: #can be used for female mutant as well
Voices: Voices:
@@ -192,6 +204,7 @@ CivilianFemale: #can be used for female mutant as well
Die: dedgirl1, dedgirl2, dedgirl4 Die: dedgirl1, dedgirl2, dedgirl4
Burned: dedgirl3 Burned: dedgirl3
Zapped: electro1 Zapped: electro1
Explode: expnew10
Scrin: Scrin:
Voices: Voices:

Binary file not shown.

View File

@@ -19,8 +19,9 @@ WEEDGUY:
Voice: Attack Voice: Attack
-SpawnActorOnDeath@FLAMEGUY: -SpawnActorOnDeath@FLAMEGUY:
WithDeathAnimation@fire: WithDeathAnimation@fire:
DeathSequence: die-
DeathTypes: DeathTypes:
FireDeath: 5 FireDeath: burning
UMAGON: UMAGON:
Inherits: ^Soldier Inherits: ^Soldier
@@ -44,7 +45,7 @@ UMAGON:
AttackFrontal: AttackFrontal:
Voice: Attack Voice: Attack
WithInfantryBody: WithInfantryBody:
AttackSequence: shoot AttackSequence: attack
ProducibleWithLevel: ProducibleWithLevel:
Prerequisites: barracks.upgraded Prerequisites: barracks.upgraded
@@ -100,7 +101,7 @@ MUTANT:
AttackFrontal: AttackFrontal:
Voice: Attack Voice: Attack
WithInfantryBody: WithInfantryBody:
AttackSequence: shoot AttackSequence: attack
ProducibleWithLevel: ProducibleWithLevel:
Prerequisites: barracks.upgraded Prerequisites: barracks.upgraded
@@ -125,7 +126,7 @@ MWMN:
AttackFrontal: AttackFrontal:
Voice: Attack Voice: Attack
WithInfantryBody: WithInfantryBody:
AttackSequence: shoot AttackSequence: attack
ProducibleWithLevel: ProducibleWithLevel:
Prerequisites: barracks.upgraded Prerequisites: barracks.upgraded
@@ -150,7 +151,7 @@ MUTANT3:
AttackFrontal: AttackFrontal:
Voice: Attack Voice: Attack
WithInfantryBody: WithInfantryBody:
AttackSequence: shoot AttackSequence: attack
ProducibleWithLevel: ProducibleWithLevel:
Prerequisites: barracks.upgraded Prerequisites: barracks.upgraded
@@ -172,7 +173,7 @@ TRATOS:
Range: 4c0 Range: 4c0
-AutoTarget: -AutoTarget:
WithInfantryBody: WithInfantryBody:
AttackSequence: shoot AttackSequence: attack
OXANNA: OXANNA:
Inherits: ^Soldier Inherits: ^Soldier
@@ -190,7 +191,7 @@ OXANNA:
Range: 4c0 Range: 4c0
-AutoTarget: -AutoTarget:
WithInfantryBody: WithInfantryBody:
AttackSequence: shoot AttackSequence: attack
SLAV: SLAV:
Inherits: ^Soldier Inherits: ^Soldier
@@ -208,10 +209,11 @@ SLAV:
Range: 4c0 Range: 4c0
-AutoTarget: -AutoTarget:
WithInfantryBody: WithInfantryBody:
AttackSequence: shoot AttackSequence: attack
DOGGIE: DOGGIE:
Inherits: ^Infantry Inherits@1: ^Infantry
Inherits@2: ^RegularInfantryDeath
Tooltip: Tooltip:
Name: Tiberian Fiend Name: Tiberian Fiend
Health: Health:
@@ -241,8 +243,9 @@ DOGGIE:
MaxMoveDelayInTicks: 45 MaxMoveDelayInTicks: 45
-SpawnActorOnDeath@FLAMEGUY: -SpawnActorOnDeath@FLAMEGUY:
WithDeathAnimation@fire: WithDeathAnimation@fire:
DeathSequence: die-
DeathTypes: DeathTypes:
FireDeath: 5 FireDeath: burning
VISC_SML: VISC_SML:
Inherits: ^Visceroid Inherits: ^Visceroid
@@ -282,7 +285,7 @@ VISC_LRG:
CIV1: CIV1:
Inherits: ^CivilianInfantry Inherits: ^CivilianInfantry
WithInfantryBody: WithInfantryBody:
AttackSequence: shoot AttackSequence: attack
Armament: Armament:
Weapon: Pistola Weapon: Pistola
AttackFrontal: AttackFrontal:
@@ -295,7 +298,7 @@ CIV2:
CIV3: CIV3:
Inherits: ^CivilianInfantry Inherits: ^CivilianInfantry
WithInfantryBody: WithInfantryBody:
AttackSequence: shoot AttackSequence: attack
Armament: Armament:
Weapon: Pistola Weapon: Pistola
AttackFrontal: AttackFrontal:

View File

@@ -274,24 +274,6 @@
QuantizeFacingsFromSequence: QuantizeFacingsFromSequence:
Sequence: stand Sequence: stand
WithInfantryBody: WithInfantryBody:
WithDeathAnimation@normal:
DeathTypes:
BulletDeath: 1
SmallExplosionDeath: 2
HeadshotDeath: 3
SpawnActorOnDeath@FLAMEGUY:
Actor: FLAMEGUY
DeathType: FireDeath
WithDeathAnimation@explosion:
DeathSequencePalette: effect
DeathPaletteIsPlayerPalette: False
DeathTypes:
ExplosionDeath: 4
WithDeathAnimation@energy:
DeathSequencePalette: ra
DeathPaletteIsPlayerPalette: False
DeathTypes:
EnergyDeath: 6
AutoTarget: AutoTarget:
AttackMove: AttackMove:
Voice: Move Voice: Move
@@ -300,27 +282,10 @@
Voice: Move Voice: Move
HiddenUnderFog: HiddenUnderFog:
ActorLostNotification: ActorLostNotification:
Crushable:
CrushSound: squish6.aud
PoisonedByTiberium: PoisonedByTiberium:
SpawnActorOnDeath:
Actor: visc_sml
Probability: 10
OwnerType: InternalName
InternalOwner: Creeps
DeathType: EnergyDeath # TODO: FIX ME! (Tiberium currently uses the wrong damage type!)
RequiresLobbyCreeps: true
Guard: Guard:
Voice: Move Voice: Move
Guardable: Guardable:
DeathSounds@NORMAL:
DeathTypes: BulletDeath, SmallExplosionDeath, ExplosionDeath
DeathSounds@BURNED:
Voice: Burned
DeathTypes: FireDeath
DeathSounds@ZAPPED:
Voice: Zapped
DeathTypes: EnergyDeath
SelfHealing@HOSPITAL: SelfHealing@HOSPITAL:
Step: 5 Step: 5
Delay: 100 Delay: 100
@@ -339,8 +304,55 @@
UpgradeTypes: hospitalheal UpgradeTypes: hospitalheal
UpgradeMinEnabledLevel: 1 UpgradeMinEnabledLevel: 1
^RegularInfantryDeath:
WithDeathAnimation@normal:
DeathSequence: die-
DeathTypes:
BulletDeath: twirling
SmallExplosionDeath: flying
WithDeathAnimation@explosion:
DeathSequence: die-
DeathSequencePalette: effect
DeathPaletteIsPlayerPalette: False
DeathTypes:
ExplosionDeath: exploding
WithDeathAnimation@energy:
DeathSequence: die-
DeathSequencePalette: ra
DeathPaletteIsPlayerPalette: False
DeathTypes:
EnergyDeath: melting
WithDeathAnimation:
CrushedSequence: die-crushed
CrushedSequencePalette: player
CrushedPaletteIsPlayerPalette: true
DeathSounds@NORMAL:
DeathTypes: BulletDeath, SmallExplosionDeath, ExplosionDeath
DeathSounds@EXPLOSION:
Voice: Explode
DeathTypes: ExplosionDeath
DeathSounds@BURNED:
Voice: Burned
DeathTypes: FireDeath
DeathSounds@ZAPPED:
Voice: Zapped
DeathTypes: EnergyDeath
Crushable:
CrushSound: squish6.aud
SpawnActorOnDeath:
Actor: visc_sml
Probability: 10
OwnerType: InternalName
InternalOwner: Creeps
DeathType: TriggerVisceroid
RequiresLobbyCreeps: true
SpawnActorOnDeath@FLAMEGUY:
Actor: FLAMEGUY
DeathType: FireDeath
^Soldier: ^Soldier:
Inherits: ^Infantry Inherits@1: ^Infantry
Inherits@2: ^RegularInfantryDeath
RevealsShroud: RevealsShroud:
Range: 4c0 Range: 4c0
MustBeDestroyed: MustBeDestroyed:
@@ -354,42 +366,43 @@
DamageTriggers: TriggerProne DamageTriggers: TriggerProne
WithInfantryBody: WithInfantryBody:
IdleSequences: idle1,idle2 IdleSequences: idle1,idle2
WithDeathAnimation:
CrushedSequence: die-crushed
CrushedSequencePalette: player
CrushedPaletteIsPlayerPalette: true
^Cyborg: ^Cyborg:
Inherits@1: ^Infantry Inherits@1: ^Infantry
Inherits@2: ^EmpDisableMobile Inherits@2: ^EmpDisableMobile
ExplosionOnDamageTransition:
Weapon: CyborgExplode
DamageState: Critical
TriggerOnlyOnce: true
Explodes:
Weapon: CyborgExplode
EmptyWeapon: CyborgExplode
DeathSounds:
RevealsShroud: RevealsShroud:
Range: 4c0 Range: 4c0
MustBeDestroyed: MustBeDestroyed:
-Crushable:
PoisonedByTiberium: PoisonedByTiberium:
Weapon: TiberiumHeal Weapon: TiberiumHeal
WithPermanentInjury: WithPermanentInjury:
WithInfantryBody: WithInfantryBody:
AttackSequence: shoot AttackSequence: attack
IdleSequences: idle1,idle2 IdleSequences: idle1,idle2
UpgradeOnDamage@CRITICAL: UpgradeOnDamage@CRITICAL:
Upgrades: criticalspeed Upgrades: criticalspeed
ValidDamageStates: Critical ValidDamageStates: Critical
GrantPermanently: true
SpeedMultiplier@CRITICAL: SpeedMultiplier@CRITICAL:
UpgradeTypes: criticalspeed UpgradeTypes: criticalspeed
Modifier: 50 Modifier: 50
^CivilianInfantry: ^CivilianInfantry:
Inherits: ^Infantry Inherits@1: ^Infantry
Inherits@2: ^RegularInfantryDeath
Voiced: Voiced:
VoiceSet: Civilian VoiceSet: Civilian
Tooltip: Tooltip:
Name: Civilian Name: Civilian
ScaredyCat: ScaredyCat:
WithDeathAnimation:
CrushedSequence: die-crushed
CrushedSequencePalette: player
CrushedPaletteIsPlayerPalette: true
^Vehicle: ^Vehicle:
Inherits@1: ^GainsExperience Inherits@1: ^GainsExperience

View File

@@ -20,7 +20,7 @@ E2:
AttackFrontal: AttackFrontal:
Voice: Attack Voice: Attack
WithInfantryBody: WithInfantryBody:
AttackSequence: throw AttackSequence: attack
ProducibleWithLevel: ProducibleWithLevel:
Prerequisites: barracks.upgraded Prerequisites: barracks.upgraded
@@ -88,7 +88,7 @@ JUMPJET:
AttackFrontal: AttackFrontal:
Voice: Attack Voice: Attack
WithInfantryBody: WithInfantryBody:
AttackSequence: shoot AttackSequence: attack
-TakeCover: -TakeCover:
ProducibleWithLevel: ProducibleWithLevel:
Prerequisites: barracks.upgraded Prerequisites: barracks.upgraded
@@ -129,6 +129,6 @@ GHOST:
DetonationDelay: 45 DetonationDelay: 45
Voice: Attack Voice: Attack
WithInfantryBody: WithInfantryBody:
AttackSequence: shoot AttackSequence: attack
ProducibleWithLevel: ProducibleWithLevel:
Prerequisites: barracks.upgraded Prerequisites: barracks.upgraded

View File

@@ -21,7 +21,7 @@ E3:
AttackFrontal: AttackFrontal:
Voice: Attack Voice: Attack
WithInfantryBody: WithInfantryBody:
AttackSequence: shoot AttackSequence: attack
ProducibleWithLevel: ProducibleWithLevel:
Prerequisites: barracks.upgraded Prerequisites: barracks.upgraded
@@ -57,10 +57,6 @@ CYBORG:
VisualBounds: 16,31,0,-10 VisualBounds: 16,31,0,-10
ProducibleWithLevel: ProducibleWithLevel:
Prerequisites: barracks.upgraded Prerequisites: barracks.upgraded
-SpawnActorOnDeath@FLAMEGUY:
WithDeathAnimation@explosion:
DeathTypes:
FireDeath: 4
CYC2: CYC2:
Inherits: ^Cyborg Inherits: ^Cyborg
@@ -96,10 +92,6 @@ CYC2:
VisualBounds: 16,32,-1,-12 VisualBounds: 16,32,-1,-12
ProducibleWithLevel: ProducibleWithLevel:
Prerequisites: barracks.upgraded Prerequisites: barracks.upgraded
-SpawnActorOnDeath@FLAMEGUY:
WithDeathAnimation@explosion:
DeathTypes:
FireDeath: 4
MHIJACK: MHIJACK:
Inherits: ^Soldier Inherits: ^Soldier
@@ -127,5 +119,3 @@ MHIJACK:
RevealsShroud: RevealsShroud:
Range: 6c0 Range: 6c0
-AutoTarget: -AutoTarget:
WithInfantryBody:
AttackSequence: shoot

View File

@@ -25,7 +25,7 @@ E1:
AttackFrontal: AttackFrontal:
Voice: Attack Voice: Attack
WithInfantryBody: WithInfantryBody:
AttackSequence: shoot AttackSequence: attack
ProducibleWithLevel: ProducibleWithLevel:
Prerequisites: barracks.upgraded Prerequisites: barracks.upgraded
RenderSprites: RenderSprites:

File diff suppressed because it is too large Load Diff

View File

@@ -23,7 +23,7 @@ LtRail:
Light: 150 Light: 150
Heavy: 110 Heavy: 110
Concrete: 5 Concrete: 5
DamageTypes: Prone100Percent, TriggerProne, SmallExplosionDeath DamageTypes: Prone100Percent, TriggerProne, ExplosionDeath
Warhead@2Dam: SpreadDamage Warhead@2Dam: SpreadDamage
Range: 0, 32 Range: 0, 32
Falloff: 50, 50 # Only does half damage to friendly units Falloff: 50, 50 # Only does half damage to friendly units
@@ -37,7 +37,7 @@ LtRail:
Light: 150 Light: 150
Heavy: 110 Heavy: 110
Concrete: 5 Concrete: 5
DamageTypes: Prone100Percent, TriggerProne, SmallExplosionDeath DamageTypes: Prone100Percent, TriggerProne, ExplosionDeath
MechRailgun: MechRailgun:
ReloadDelay: 60 ReloadDelay: 60
@@ -62,7 +62,7 @@ MechRailgun:
Light: 160 Light: 160
Heavy: 100 Heavy: 100
Concrete: 25 Concrete: 25
DamageTypes: Prone100Percent, TriggerProne, FireDeath DamageTypes: Prone100Percent, TriggerProne, ExplosionDeath
SonicZap: SonicZap:
ReloadDelay: 180 ReloadDelay: 180
@@ -87,7 +87,7 @@ SonicZap:
Versus: Versus:
Heavy: 80 Heavy: 80
Concrete: 60 Concrete: 60
DamageTypes: Prone50Percent, TriggerProne, ExplosionDeath DamageTypes: Prone50Percent, TriggerProne, SmallExplosionDeath
Warhead@2Dam: SpreadDamage Warhead@2Dam: SpreadDamage
Range: 0, 32 Range: 0, 32
Falloff: 50, 50 Falloff: 50, 50
@@ -98,7 +98,7 @@ SonicZap:
Versus: Versus:
Heavy: 80 Heavy: 80
Concrete: 60 Concrete: 60
DamageTypes: Prone50Percent, TriggerProne, ExplosionDeath DamageTypes: Prone50Percent, TriggerProne, SmallExplosionDeath
CyCannon: CyCannon:
ReloadDelay: 50 ReloadDelay: 50

View File

@@ -27,6 +27,11 @@ UnitExplodeSmall:
Explosions: medium_brnl Explosions: medium_brnl
ImpactSounds: expnew13.aud ImpactSounds: expnew13.aud
CyborgExplode:
Warhead@1Eff: CreateEffect
Explosions: medium_bang
ImpactSounds: expnew10.aud
TiberiumExplosion: TiberiumExplosion:
Warhead@1Dam: SpreadDamage Warhead@1Dam: SpreadDamage
Spread: 9 Spread: 9

View File

@@ -65,14 +65,14 @@ Tiberium:
Warhead@1Dam: SpreadDamage Warhead@1Dam: SpreadDamage
Spread: 42 Spread: 42
Damage: 2 Damage: 2
DamageTypes: EnergyDeath # TODO: FIX ME! DamageTypes: ExplosionDeath, TriggerVisceroid
Veins: Veins:
ReloadDelay: 16 ReloadDelay: 16
Warhead@Damage: SpreadDamage Warhead@Damage: SpreadDamage
Spread: 42 Spread: 42
Damage: 5 Damage: 5
DamageTypes: EnergyDeath # TODO: FIX ME! DamageTypes: BulletDeath
Warhead@Effect: CreateEffect Warhead@Effect: CreateEffect
Explosions: veins Explosions: veins
ExplosionPalette: player ExplosionPalette: player

View File

@@ -274,4 +274,4 @@ Sniper:
Light: 5 Light: 5
Heavy: 5 Heavy: 5
Concrete: 5 Concrete: 5
DamageTypes: Prone100Percent, TriggerProne, HeadshotDeath DamageTypes: Prone100Percent, TriggerProne, BulletDeath