diff --git a/.gitignore b/.gitignore
index 3f4542fb21..cb4ee5998b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -9,6 +9,7 @@ obj
# Red Alert binary files
*.[mM][iI][xX]
+*.[aA][uU][dD]
# Crap generated by OpenRa
sheet-*.png
diff --git a/OpenRa.Game/GameRules/UnitInfo.cs b/OpenRa.Game/GameRules/UnitInfo.cs
index 03aa28886a..180fca4d71 100755
--- a/OpenRa.Game/GameRules/UnitInfo.cs
+++ b/OpenRa.Game/GameRules/UnitInfo.cs
@@ -68,7 +68,6 @@ namespace OpenRa.Game.GameRules
public class InfantryInfo : MobileInfo
{
- public readonly bool Crushable = true; // also on VehicleInfo, but with a different default
public readonly bool C4 = false;
public readonly bool FraidyCat = false;
public readonly bool Infiltrate = false;
@@ -80,7 +79,6 @@ namespace OpenRa.Game.GameRules
public class VehicleInfo : MobileInfo
{
- public readonly bool Crushable = false;
public readonly bool Tracked = false;
public VehicleInfo(string name) : base(name) { }
diff --git a/OpenRa.Game/OpenRa.Game.csproj b/OpenRa.Game/OpenRa.Game.csproj
index 8b01dc9cc2..dfc52282ad 100644
--- a/OpenRa.Game/OpenRa.Game.csproj
+++ b/OpenRa.Game/OpenRa.Game.csproj
@@ -1,4 +1,4 @@
-
+
Debug
AnyCPU
@@ -181,9 +181,9 @@
-
+
@@ -258,11 +258,11 @@
-
-
\ No newline at end of file
+
diff --git a/OpenRa.Game/Traits/Activities/Move.cs b/OpenRa.Game/Traits/Activities/Move.cs
index a1cfb0655c..e92863fea2 100755
--- a/OpenRa.Game/Traits/Activities/Move.cs
+++ b/OpenRa.Game/Traits/Activities/Move.cs
@@ -81,7 +81,7 @@ namespace OpenRa.Game.Traits.Activities
var nextCell = PopPath( self, mobile );
if( nextCell == null )
- return NextActivity;
+ return this;
int2 dir = nextCell.Value - mobile.fromCell;
var firstFacing = Util.GetFacing( dir, unit.Facing );
diff --git a/OpenRa.Game/Traits/Infantry.cs b/OpenRa.Game/Traits/SquishByTank.cs
similarity index 80%
rename from OpenRa.Game/Traits/Infantry.cs
rename to OpenRa.Game/Traits/SquishByTank.cs
index 43200a940a..ed84275899 100644
--- a/OpenRa.Game/Traits/Infantry.cs
+++ b/OpenRa.Game/Traits/SquishByTank.cs
@@ -5,10 +5,10 @@ using OpenRa.Game.GameRules;
namespace OpenRa.Game.Traits
{
- class Infantry : ICrushable
+ class SquishByTank : ICrushable
{
readonly Actor self;
- public Infantry(Actor self)
+ public SquishByTank(Actor self)
{
this.self = self;
}
@@ -26,7 +26,6 @@ namespace OpenRa.Game.Traits
public bool IsCrushableBy(UnitMovementType umt, Player player)
{
if (player == Game.LocalPlayer) return false;
- if (!(self.Info as InfantryInfo).Crushable) return false;
switch (umt)
{
case UnitMovementType.Track: return true;
diff --git a/SequenceEditor/Program.cs b/SequenceEditor/Program.cs
index 476086d101..aed4c20707 100644
--- a/SequenceEditor/Program.cs
+++ b/SequenceEditor/Program.cs
@@ -25,7 +25,7 @@ namespace SequenceEditor
{
if (Shps.ContainsKey(shp)) return;
- var reader = new ShpReader(FileSystem.OpenWithExts(shp, ".shp", ".tem", ".sno", ".int"));
+ var reader = new ShpReader(FileSystem.OpenWithExts(shp, ".tem", ".sno", ".int", ".shp"));
Shps[shp] = reader.Select(ih =>
{
var bmp = new Bitmap(reader.Width, reader.Height);
@@ -74,6 +74,7 @@ namespace SequenceEditor
try
{
FileSystem.MountDefault( true );
+ FileSystem.MountTemporary(new Package("temperat.mix"));
}
catch( FileNotFoundException fnf )
{
diff --git a/aftermathUnits.ini b/aftermathUnits.ini
index 9e7f248de9..b0599a1ccd 100755
--- a/aftermathUnits.ini
+++ b/aftermathUnits.ini
@@ -54,13 +54,13 @@ MECH
[SHOK]
Description=Tesla Trooper
-Traits=Unit, Mobile, AttackBase, RenderInfantry
+Traits=Unit, Mobile, AttackBase, RenderInfantry, TakeCover
SquadSize=1
Voice=ShokVoice
[MECH]
Description=Mechanic
-Traits=Unit, Mobile, AttackBase, RenderInfantry
+Traits=Unit, Mobile, AttackBase, RenderInfantry, TakeCover, SquishByTank
SquadSize=1
Voice=MechVoice
@@ -99,7 +99,7 @@ MechVoice
[ShokVoice]
Select=jchrge1,jjuice1,jjump1,jpower1
Move=jdance1,jyes1
-Attack=jburn,jcrisp1,jshock1,jlight1
+Attack=jburn1,jcrisp1,jshock1,jlight1
[MechVoice]
Select=mhowdy1,mhotdig1,mhuh1
diff --git a/aftrmath.ini b/aftrmath.ini
index c07491fa0b..db4e05f689 100755
--- a/aftrmath.ini
+++ b/aftrmath.ini
@@ -134,7 +134,6 @@ Cost=900
Points=15
Explodes=no
NoMovingFire=yes
-Crushable=no
; field mechanic
[MECH]
diff --git a/sequences-aftermath.xml b/sequences-aftermath.xml
index def95e99bd..911a79510a 100644
--- a/sequences-aftermath.xml
+++ b/sequences-aftermath.xml
@@ -1,25 +1,11 @@
-
+
-
+
- sequence name="deploy-0" start="35" length="5" />
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ sequence name="deploy-0" start="35" length="5" />
+
@@ -39,56 +25,57 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -99,5 +86,19 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
\ No newline at end of file
diff --git a/units.ini b/units.ini
index 9e9cd42ebe..c25e35aa91 100755
--- a/units.ini
+++ b/units.ini
@@ -537,48 +537,48 @@ Traits=Unit, Mobile, RenderInfantry, Infantry, AutoTarget
LongDesc=Anti-infantry unit. Not fooled by the \nSpy's disguise.\n Strong vs Infantry\n Weak vs Vehicles
[E1]
Description=Rifle Infantry
-Traits=Unit, Mobile, RenderInfantry, AttackBase, TakeCover, Infantry, AutoTarget
+Traits=Unit, Mobile, RenderInfantry, AttackBase, TakeCover, SquishByTank, AutoTarget
LongDesc=General-purpose infantry. Strong vs Infantry\n Weak vs Vehicles
[E2]
Description=Grenadier
-Traits=Unit, Mobile, RenderInfantry, AttackBase, TakeCover, Infantry, AutoTarget
+Traits=Unit, Mobile, RenderInfantry, AttackBase, TakeCover, SquishByTank, AutoTarget
FireDelay=15
PrimaryOffset=0,0,0,-13
LongDesc=Infantry armed with grenades. \n Strong vs Buildings, Infantry\n Weak vs Vehicles
[E3]
Description=Rocket Soldier
-Traits=Unit, Mobile, RenderInfantry, AttackBase, TakeCover, Infantry, AutoTarget
+Traits=Unit, Mobile, RenderInfantry, AttackBase, TakeCover, SquishByTank, AutoTarget
PrimaryOffset=0,0,0,-13
LongDesc=Anti-tank/Anti-aircraft infantry.\n Strong vs Tanks, Aircraft\n Weak vs Infantry
[E4]
Description=Flamethrower
-Traits=Unit, Mobile, RenderInfantry, AttackBase, TakeCover, Infantry, AutoTarget
+Traits=Unit, Mobile, RenderInfantry, AttackBase, TakeCover, SquishByTank, AutoTarget
FireDelay=8
LongDesc=Advanced Anti-infantry unit.\n Strong vs Infantry, Buildings\n Weak vs Vehicles
[E6]
Description=Engineer
-Traits=Unit, Mobile, RenderInfantry, TakeCover, Infantry
+Traits=Unit, Mobile, RenderInfantry, TakeCover, SquishByTank
Voice=EngineerVoice
LongDesc=Infiltrates and captures enemy structures.\n Strong vs Nothing\n Weak vs Everything
[SPY]
Description=Spy
Voice=SpyVoice
-Traits=Unit, Mobile, RenderInfantry, TakeCover, Infantry
+Traits=Unit, Mobile, RenderInfantry, TakeCover, SquishByTank
LongDesc=Infiltrates enemy structures to gather \nintelligence. Exact effect depends on the \nbuilding infiltrated.\n Strong vs Nothing\n Weak vs Everything\n Special Ability: Disguised
[THF]
Description=Thief
Voice=ThiefVoice
-Traits=Unit, Mobile, RenderInfantry, TakeCover, Infantry
+Traits=Unit, Mobile, RenderInfantry, TakeCover, SquishByTank
LongDesc=Infiltrates enemy refineries & \nsilos, and steals money stored there.\n Unarmed
[E7]
Description=Tanya
Voice=TanyaVoice
-Traits=Unit, Mobile, RenderInfantry, AttackBase, TakeCover, Infantry, AutoTarget
+Traits=Unit, Mobile, RenderInfantry, AttackBase, TakeCover, SquishByTank, AutoTarget
LongDesc=Elite commando infantry, armed with \ndual pistols and C4.\n Strong vs Infantry, Buildings\n Weak vs Vehicles\n Special Ability: Destroy Building with C4
[MEDI]
Description=Medic
Voice=MedicVoice
-Traits=Unit, Mobile, RenderInfantry, AttackBase, TakeCover, Infantry, AutoHeal
+Traits=Unit, Mobile, RenderInfantry, AttackBase, TakeCover, SquishByTank, AutoHeal
LongDesc=Heals nearby infantry.\n Strong vs Nothing\n Weak vs Everything