move ROT, InitialFacing and Speed to Mobile and Aircraft.
This commit is contained in:
@@ -8,6 +8,8 @@
|
||||
*/
|
||||
#endregion
|
||||
|
||||
using System.Linq;
|
||||
|
||||
namespace OpenRA.Traits.Activities
|
||||
{
|
||||
public class Turn : IActivity
|
||||
@@ -24,11 +26,13 @@ namespace OpenRA.Traits.Activities
|
||||
public IActivity Tick( Actor self )
|
||||
{
|
||||
var unit = self.traits.Get<Unit>();
|
||||
var ROT = self.traits.WithInterface<IMove>().FirstOrDefault().ROT(self);
|
||||
|
||||
if( desiredFacing == unit.Facing )
|
||||
return NextActivity;
|
||||
|
||||
Util.TickFacing( ref unit.Facing, desiredFacing, self.Info.Traits.Get<UnitInfo>().ROT );
|
||||
Util.TickFacing(ref unit.Facing, desiredFacing, ROT);
|
||||
|
||||
return this;
|
||||
}
|
||||
|
||||
|
||||
@@ -24,6 +24,9 @@ namespace OpenRA.Traits
|
||||
public readonly string[] Crushes;
|
||||
public readonly int WaitAverage = 60;
|
||||
public readonly int WaitSpread = 20;
|
||||
public readonly int InitialFacing = 128;
|
||||
public readonly int ROT = 255;
|
||||
public readonly int Speed = 1;
|
||||
|
||||
public virtual object Create(ActorInitializer init) { return new Mobile(init, this); }
|
||||
}
|
||||
@@ -59,7 +62,6 @@ namespace OpenRA.Traits
|
||||
|
||||
Shroud shroud;
|
||||
UnitInfluence uim;
|
||||
UnitInfo unitInfo;
|
||||
BuildingInfluence bim;
|
||||
bool canShareCell;
|
||||
|
||||
@@ -72,7 +74,6 @@ namespace OpenRA.Traits
|
||||
shroud = self.World.WorldActor.traits.Get<Shroud>();
|
||||
uim = self.World.WorldActor.traits.Get<UnitInfluence>();
|
||||
bim = self.World.WorldActor.traits.Get<BuildingInfluence>();
|
||||
unitInfo = self.Info.Traits.GetOrDefault<UnitInfo>();
|
||||
canShareCell = self.traits.Contains<SharesCell>();
|
||||
|
||||
AddInfluence();
|
||||
@@ -89,6 +90,10 @@ namespace OpenRA.Traits
|
||||
TerrainSpeed.Add(info.TerrainTypes[i], info.TerrainSpeeds[i]);
|
||||
}
|
||||
}
|
||||
|
||||
public int ROT(Actor self){ return Info.ROT; }
|
||||
|
||||
public int InitialFacing(Actor self){ return Info.InitialFacing; }
|
||||
|
||||
public void SetPosition(Actor self, int2 cell)
|
||||
{
|
||||
@@ -236,17 +241,14 @@ namespace OpenRA.Traits
|
||||
}
|
||||
|
||||
public virtual float MovementSpeedForCell(Actor self, int2 cell)
|
||||
{
|
||||
if( unitInfo == null )
|
||||
return 0f;
|
||||
|
||||
{
|
||||
var type = self.World.GetTerrainType(cell);
|
||||
|
||||
var modifier = self.traits
|
||||
.WithInterface<ISpeedModifier>()
|
||||
.Select(t => t.GetSpeedModifier())
|
||||
.Product();
|
||||
return unitInfo.Speed * TerrainSpeed[type] * modifier;
|
||||
return Info.Speed * TerrainSpeed[type] * modifier;
|
||||
}
|
||||
|
||||
public IEnumerable<float2> GetCurrentPath(Actor self)
|
||||
|
||||
@@ -46,7 +46,7 @@ namespace OpenRA.Traits
|
||||
|
||||
public virtual int CreationFacing( Actor self, Actor newUnit )
|
||||
{
|
||||
return newUnit.Info.Traits.GetOrDefault<UnitInfo>().InitialFacing;
|
||||
return newUnit.traits.Get<IMove>().InitialFacing(newUnit);
|
||||
}
|
||||
|
||||
public virtual bool Produce( Actor self, ActorInfo producee )
|
||||
|
||||
@@ -110,6 +110,8 @@ namespace OpenRA.Traits
|
||||
float MovementCostForCell(Actor self, int2 cell);
|
||||
float MovementSpeedForCell(Actor self, int2 cell);
|
||||
IEnumerable<float2> GetCurrentPath(Actor self);
|
||||
int ROT(Actor self);
|
||||
int InitialFacing(Actor self);
|
||||
}
|
||||
|
||||
public interface IOffsetCenterLocation { float2 CenterOffset { get; } }
|
||||
|
||||
@@ -16,10 +16,6 @@ namespace OpenRA.Traits
|
||||
{
|
||||
public class UnitInfo : ITraitInfo
|
||||
{
|
||||
public readonly int InitialFacing = 128;
|
||||
public readonly int ROT = 255;
|
||||
public readonly int Speed = 1;
|
||||
|
||||
public object Create( ActorInitializer init ) { return new Unit(); }
|
||||
}
|
||||
|
||||
|
||||
@@ -59,15 +59,11 @@ namespace OpenRA.Traits
|
||||
|
||||
public override float MovementSpeedForCell(Actor self, int2 cell)
|
||||
{
|
||||
var unitInfo = self.Info.Traits.GetOrDefault<UnitInfo>();
|
||||
if( unitInfo == null )
|
||||
return 0f;
|
||||
|
||||
var modifier = self.traits
|
||||
.WithInterface<ISpeedModifier>()
|
||||
.Select(t => t.GetSpeedModifier())
|
||||
.Product();
|
||||
return unitInfo.Speed * modifier;
|
||||
return Info.Speed * modifier;
|
||||
}
|
||||
|
||||
public override IEnumerable<int2> OccupiedCells()
|
||||
|
||||
@@ -39,7 +39,7 @@ namespace OpenRA.Mods.RA.Activities
|
||||
var desiredFacing = Util.GetFacing(d, unit.Facing);
|
||||
if (unit.Altitude == cruiseAltitude)
|
||||
Util.TickFacing(ref unit.Facing, desiredFacing,
|
||||
self.Info.Traits.Get<UnitInfo>().ROT);
|
||||
self.Info.Traits.Get<AircraftInfo>().ROT);
|
||||
|
||||
if (unit.Altitude < cruiseAltitude)
|
||||
++unit.Altitude;
|
||||
|
||||
@@ -44,7 +44,7 @@ namespace OpenRA.Mods.RA.Activities
|
||||
var dist = target.CenterLocation - self.CenterLocation;
|
||||
|
||||
var desiredFacing = Util.GetFacing(dist, unit.Facing);
|
||||
Util.TickFacing(ref unit.Facing, desiredFacing, self.Info.Traits.Get<UnitInfo>().ROT);
|
||||
Util.TickFacing(ref unit.Facing, desiredFacing, self.Info.Traits.Get<AircraftInfo>().ROT);
|
||||
|
||||
var mobile = self.traits.WithInterface<IMove>().FirstOrDefault();
|
||||
var rawSpeed = .2f * mobile.MovementSpeedForCell(self, self.Location);
|
||||
|
||||
@@ -50,7 +50,7 @@ namespace OpenRA.Mods.RA.Activities
|
||||
|
||||
var desiredFacing = Util.GetFacing(dist, unit.Facing);
|
||||
Util.TickFacing(ref unit.Facing, desiredFacing,
|
||||
self.Info.Traits.Get<UnitInfo>().ROT);
|
||||
self.Info.Traits.Get<AircraftInfo>().ROT);
|
||||
|
||||
var mobile = self.traits.WithInterface<IMove>().FirstOrDefault();
|
||||
var rawSpeed = .2f * mobile.MovementSpeedForCell(self, self.Location);
|
||||
|
||||
@@ -32,7 +32,7 @@ namespace OpenRA.Mods.RA.Activities
|
||||
if (isCanceled) return NextActivity;
|
||||
var dest = ChooseHelipad(self);
|
||||
|
||||
var initialFacing = self.Info.Traits.Get<UnitInfo>().InitialFacing;
|
||||
var initialFacing = self.Info.Traits.Get<AircraftInfo>().InitialFacing;
|
||||
|
||||
if (dest == null)
|
||||
return Util.SequenceActivities(
|
||||
|
||||
@@ -46,7 +46,7 @@ namespace OpenRA.Mods.RA.Activities
|
||||
--unit.Altitude;
|
||||
|
||||
var desiredFacing = Util.GetFacing(d, unit.Facing);
|
||||
Util.TickFacing(ref unit.Facing, desiredFacing, self.Info.Traits.Get<UnitInfo>().ROT);
|
||||
Util.TickFacing(ref unit.Facing, desiredFacing, self.Info.Traits.Get<AircraftInfo>().ROT);
|
||||
var mobile = self.traits.WithInterface<IMove>().FirstOrDefault();
|
||||
var speed = .2f * mobile.MovementSpeedForCell(self, self.Location);
|
||||
var angle = unit.Facing / 128f * Math.PI;
|
||||
|
||||
@@ -46,7 +46,7 @@ namespace OpenRA.Mods.RA.Activities
|
||||
var speed = .2f * mobile.MovementSpeedForCell(self, self.Location);
|
||||
|
||||
var approachStart = landPos - new float2(unit.Altitude * speed, 0);
|
||||
var turnRadius = (128f / self.Info.Traits.Get<UnitInfo>().ROT) * speed / (float)Math.PI;
|
||||
var turnRadius = (128f / self.Info.Traits.Get<AircraftInfo>().ROT) * speed / (float)Math.PI;
|
||||
|
||||
/* work out the center points */
|
||||
var fwd = -float2.FromAngle(unit.Facing / 128f * (float)Math.PI);
|
||||
|
||||
@@ -21,24 +21,33 @@ namespace OpenRA.Mods.RA
|
||||
public readonly string[] RepairBuildings = { "fix" };
|
||||
[ActorReference]
|
||||
public readonly string[] RearmBuildings = { "hpad", "afld" };
|
||||
public readonly int InitialFacing = 128;
|
||||
public readonly int ROT = 255;
|
||||
public readonly int Speed = 1;
|
||||
|
||||
public virtual object Create( ActorInitializer init ) { return new Aircraft( init ); }
|
||||
public virtual object Create( ActorInitializer init ) { return new Aircraft( init , this ); }
|
||||
}
|
||||
|
||||
public class Aircraft : IMove, IOccupySpace
|
||||
{
|
||||
[Sync]
|
||||
public int2 Location;
|
||||
AircraftInfo Info;
|
||||
|
||||
public Aircraft( ActorInitializer init )
|
||||
public Aircraft( ActorInitializer init , AircraftInfo info)
|
||||
{
|
||||
this.Location = init.location;
|
||||
Info = info;
|
||||
}
|
||||
|
||||
public int2 TopLeft
|
||||
{
|
||||
get { return Location; }
|
||||
}
|
||||
|
||||
public int ROT(Actor self){ return Info.ROT; }
|
||||
|
||||
public int InitialFacing(Actor self){ return Info.InitialFacing; }
|
||||
|
||||
public void SetPosition(Actor self, int2 cell)
|
||||
{
|
||||
@@ -48,9 +57,8 @@ namespace OpenRA.Mods.RA
|
||||
|
||||
public bool AircraftCanEnter(Actor self, Actor a)
|
||||
{
|
||||
var aircraft = self.Info.Traits.Get<AircraftInfo>();
|
||||
return aircraft.RearmBuildings.Contains( a.Info.Name )
|
||||
|| aircraft.RepairBuildings.Contains( a.Info.Name );
|
||||
return Info.RearmBuildings.Contains( a.Info.Name )
|
||||
|| Info.RepairBuildings.Contains( a.Info.Name );
|
||||
}
|
||||
|
||||
public virtual IEnumerable<float2> GetCurrentPath(Actor self)
|
||||
@@ -67,15 +75,11 @@ namespace OpenRA.Mods.RA
|
||||
|
||||
public float MovementSpeedForCell(Actor self, int2 cell)
|
||||
{
|
||||
var unitInfo = self.Info.Traits.GetOrDefault<UnitInfo>();
|
||||
if( unitInfo == null)
|
||||
return 0f;
|
||||
|
||||
var modifier = self.traits
|
||||
.WithInterface<ISpeedModifier>()
|
||||
.Select(t => t.GetSpeedModifier())
|
||||
.Product();
|
||||
return unitInfo.Speed * modifier;
|
||||
return Info.Speed * modifier;
|
||||
}
|
||||
|
||||
int2[] noCells = new int2[] { };
|
||||
|
||||
@@ -26,14 +26,18 @@ namespace OpenRA.Mods.RA
|
||||
public readonly int IdealSeparation = 40;
|
||||
public readonly bool LandWhenIdle = true;
|
||||
|
||||
public override object Create( ActorInitializer init ) { return new Helicopter( init ); }
|
||||
public override object Create( ActorInitializer init ) { return new Helicopter( init, this); }
|
||||
}
|
||||
|
||||
class Helicopter : Aircraft, ITick, IIssueOrder, IResolveOrder, IOrderCursor, IOrderVoice
|
||||
{
|
||||
public IDisposable reservation;
|
||||
HelicopterInfo Info;
|
||||
|
||||
public Helicopter( ActorInitializer init ) : base( init ) { }
|
||||
public Helicopter( ActorInitializer init, HelicopterInfo info) : base( init, info )
|
||||
{
|
||||
Info = info;
|
||||
}
|
||||
|
||||
public Order IssueOrder(Actor self, int2 xy, MouseInput mi, Actor underCursor)
|
||||
{
|
||||
@@ -86,9 +90,9 @@ namespace OpenRA.Mods.RA
|
||||
self.CancelActivity();
|
||||
self.QueueActivity(new HeliFly(Util.CenterOfCell(order.TargetLocation)));
|
||||
|
||||
if (self.Info.Traits.Get<HelicopterInfo>().LandWhenIdle)
|
||||
if (Info.LandWhenIdle)
|
||||
{
|
||||
self.QueueActivity(new Turn(self.Info.Traits.GetOrDefault<UnitInfo>().InitialFacing));
|
||||
self.QueueActivity(new Turn(Info.InitialFacing));
|
||||
self.QueueActivity(new HeliLand(true));
|
||||
}
|
||||
}
|
||||
@@ -115,9 +119,9 @@ namespace OpenRA.Mods.RA
|
||||
|
||||
self.CancelActivity();
|
||||
self.QueueActivity(new HeliFly(order.TargetActor.CenterLocation + offsetVec));
|
||||
self.QueueActivity(new Turn(self.Info.Traits.GetOrDefault<UnitInfo>().InitialFacing));
|
||||
self.QueueActivity(new Turn(Info.InitialFacing));
|
||||
self.QueueActivity(new HeliLand(false));
|
||||
self.QueueActivity(self.Info.Traits.Get<HelicopterInfo>().RearmBuildings.Contains(order.TargetActor.Info.Name)
|
||||
self.QueueActivity(Info.RearmBuildings.Contains(order.TargetActor.Info.Name)
|
||||
? (IActivity)new Rearm() : new Repair(order.TargetActor));
|
||||
}
|
||||
}
|
||||
@@ -129,7 +133,6 @@ namespace OpenRA.Mods.RA
|
||||
if (unit.Altitude <= 0)
|
||||
return;
|
||||
|
||||
var Info = self.Info.Traits.Get<HelicopterInfo>();
|
||||
var mobile = self.traits.WithInterface<IMove>().FirstOrDefault();
|
||||
var rawSpeed = .2f * mobile.MovementSpeedForCell(self, self.Location);
|
||||
var otherHelis = self.World.FindUnitsInCircle(self.CenterLocation, Info.IdealSeparation)
|
||||
@@ -158,7 +161,7 @@ namespace OpenRA.Mods.RA
|
||||
return float2.Zero;
|
||||
var d = self.CenterLocation - h.CenterLocation;
|
||||
|
||||
if (d.Length > self.Info.Traits.Get<HelicopterInfo>().IdealSeparation)
|
||||
if (d.Length > Info.IdealSeparation)
|
||||
return float2.Zero;
|
||||
|
||||
if (d.LengthSquared < Epsilon)
|
||||
|
||||
@@ -19,14 +19,14 @@ namespace OpenRA.Mods.RA
|
||||
{
|
||||
public class PlaneInfo : AircraftInfo
|
||||
{
|
||||
public override object Create( ActorInitializer init ) { return new Plane( init ); }
|
||||
public override object Create( ActorInitializer init ) { return new Plane( init, this ); }
|
||||
}
|
||||
|
||||
public class Plane : Aircraft, IIssueOrder, IResolveOrder, IOrderCursor, IOrderVoice, ITick
|
||||
{
|
||||
public IDisposable reservation;
|
||||
|
||||
public Plane( ActorInitializer init ) : base( init ) { }
|
||||
public Plane( ActorInitializer init, PlaneInfo info ) : base( init, info ) { }
|
||||
|
||||
bool firstTick = true;
|
||||
public void Tick(Actor self)
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
^Vehicle:
|
||||
Category: Vehicle
|
||||
Unit:
|
||||
ROT: 5
|
||||
Mobile:
|
||||
Crushes: crate
|
||||
TerrainTypes: Clear, Rough, Road, Tree, Water, Rock, Wall, Ore, Beach, River
|
||||
TerrainSpeeds: 60%, 40%, 100%, 0%, 0%, 0%, 0%, 50%, 40%, 0%
|
||||
ROT: 5
|
||||
Selectable:
|
||||
Voice: VehicleVoice
|
||||
Targetable:
|
||||
@@ -22,11 +22,11 @@
|
||||
^Tank:
|
||||
Category: Vehicle
|
||||
Unit:
|
||||
ROT: 5
|
||||
Mobile:
|
||||
Crushes: wall, crate
|
||||
TerrainTypes: Clear, Rough, Road, Tree, Water, Rock, Wall, Ore, Beach, River
|
||||
TerrainSpeeds: 80%, 70%, 100%, 0%, 0%, 0%, 0%, 70%, 70%, 0%
|
||||
ROT: 5
|
||||
Selectable:
|
||||
Voice: VehicleVoice
|
||||
Targetable:
|
||||
@@ -192,6 +192,7 @@
|
||||
^Husk:
|
||||
Category: Vehicle
|
||||
Unit:
|
||||
Mobile:
|
||||
ROT: 0
|
||||
Speed: 0
|
||||
Health:
|
||||
|
||||
@@ -10,6 +10,7 @@ E1:
|
||||
Selectable:
|
||||
Bounds: 12,17,0,-6
|
||||
Unit:
|
||||
Mobile:
|
||||
Speed: 4
|
||||
Health:
|
||||
HP: 50
|
||||
@@ -30,6 +31,7 @@ E2:
|
||||
Selectable:
|
||||
Bounds: 12,17,0,-6
|
||||
Unit:
|
||||
Mobile:
|
||||
Speed: 4
|
||||
Health:
|
||||
HP: 50
|
||||
@@ -51,6 +53,7 @@ E3:
|
||||
Selectable:
|
||||
Bounds: 12,17,0,-6
|
||||
Unit:
|
||||
Mobile:
|
||||
Speed: 3
|
||||
Health:
|
||||
HP: 45
|
||||
@@ -73,6 +76,7 @@ E4:
|
||||
Selectable:
|
||||
Bounds: 12,17,0,-6
|
||||
Unit:
|
||||
Mobile:
|
||||
Speed: 4
|
||||
Health:
|
||||
HP: 90
|
||||
@@ -98,6 +102,7 @@ E5:
|
||||
Selectable:
|
||||
Bounds: 12,17,0,-6
|
||||
Unit:
|
||||
Mobile:
|
||||
Speed: 4
|
||||
Health:
|
||||
HP: 90
|
||||
@@ -123,6 +128,7 @@ E6:
|
||||
Selectable:
|
||||
Bounds: 12,17,0,-6
|
||||
Unit:
|
||||
Mobile:
|
||||
Speed: 4
|
||||
Health:
|
||||
HP: 25
|
||||
@@ -147,6 +153,7 @@ RMBO:
|
||||
Bounds: 12,17,0,-6
|
||||
Voice: CommandoVoice
|
||||
Unit:
|
||||
Mobile:
|
||||
Speed: 5
|
||||
Health:
|
||||
HP: 200
|
||||
@@ -167,6 +174,7 @@ C1:
|
||||
Cost: 70
|
||||
Description: Technician
|
||||
Unit:
|
||||
Mobile:
|
||||
Speed: 4
|
||||
Health:
|
||||
HP: 20
|
||||
@@ -184,6 +192,7 @@ C2:
|
||||
Cost: 70
|
||||
Description: Technician
|
||||
Unit:
|
||||
Mobile:
|
||||
Speed: 4
|
||||
Health:
|
||||
HP: 20
|
||||
@@ -201,6 +210,7 @@ C3:
|
||||
Cost: 70
|
||||
Description: Technician
|
||||
Unit:
|
||||
Mobile:
|
||||
Speed: 4
|
||||
Health:
|
||||
HP: 20
|
||||
@@ -218,6 +228,7 @@ C4:
|
||||
Cost: 70
|
||||
Description: Technician
|
||||
Unit:
|
||||
Mobile:
|
||||
Speed: 4
|
||||
Health:
|
||||
HP: 20
|
||||
@@ -235,6 +246,7 @@ C5:
|
||||
Cost: 70
|
||||
Description: Technician
|
||||
Unit:
|
||||
Mobile:
|
||||
Speed: 4
|
||||
Health:
|
||||
HP: 20
|
||||
@@ -252,6 +264,7 @@ C6:
|
||||
Cost: 70
|
||||
Description: Technician
|
||||
Unit:
|
||||
Mobile:
|
||||
Speed: 4
|
||||
Health:
|
||||
HP: 20
|
||||
@@ -269,6 +282,7 @@ C7:
|
||||
Cost: 70
|
||||
Description: Technician
|
||||
Unit:
|
||||
Mobile:
|
||||
Speed: 4
|
||||
Health:
|
||||
HP: 20
|
||||
@@ -285,6 +299,7 @@ C8:
|
||||
Cost: 70
|
||||
Description: Technician
|
||||
Unit:
|
||||
Mobile:
|
||||
Speed: 4
|
||||
Health:
|
||||
HP: 20
|
||||
@@ -302,6 +317,7 @@ C9:
|
||||
Cost: 70
|
||||
Description: Technician
|
||||
Unit:
|
||||
Mobile:
|
||||
Speed: 4
|
||||
Health:
|
||||
HP: 20
|
||||
@@ -319,6 +335,7 @@ C10:
|
||||
Cost: 70
|
||||
Description: Technician
|
||||
Unit:
|
||||
Mobile:
|
||||
Speed: 4
|
||||
Health:
|
||||
HP: 20
|
||||
|
||||
@@ -11,6 +11,7 @@ MCV:
|
||||
Selectable:
|
||||
Priority: 3
|
||||
Unit:
|
||||
Mobile:
|
||||
Speed: 6
|
||||
Health:
|
||||
HP: 600
|
||||
@@ -44,6 +45,7 @@ HARV:
|
||||
PipColor: Green
|
||||
Capacity: 28
|
||||
Unit:
|
||||
Mobile:
|
||||
Speed: 6
|
||||
Health:
|
||||
HP: 600
|
||||
@@ -63,6 +65,7 @@ APC:
|
||||
Description: Armored Personnel Carrier
|
||||
LongDesc: Tough infantry transport.\n Strong vs Infantry, Light Vehicles\n Weak vs Tanks, Aircraft
|
||||
Unit:
|
||||
Mobile:
|
||||
ROT: 5
|
||||
Speed: 15
|
||||
Health:
|
||||
@@ -93,6 +96,7 @@ ARTY:
|
||||
Description: Artillery
|
||||
LongDesc: Long-range artillery.\n Strong vs Infantry, Buildings\n Weak vs Tanks, Aircraft
|
||||
Unit:
|
||||
Mobile:
|
||||
ROT: 2
|
||||
Speed: 6
|
||||
Health:
|
||||
@@ -117,6 +121,7 @@ FTNK:
|
||||
Description: Flame Tank
|
||||
LongDesc: Heavily armored flame-throwing vehicle.\n Strong vs Infantry, Buildings\n Weak vs Aircraft
|
||||
Unit:
|
||||
Mobile:
|
||||
ROT: 5
|
||||
Speed: 9
|
||||
Health:
|
||||
@@ -142,6 +147,7 @@ BGGY:
|
||||
Description: Nod Buggy
|
||||
LongDesc: Fast scout & anti-infantry vehicle.\n Strong vs Infantry\n Weak vs Tanks, Aircraft
|
||||
Unit:
|
||||
Mobile:
|
||||
ROT: 10
|
||||
Speed: 18
|
||||
Health:
|
||||
@@ -169,6 +175,7 @@ BIKE:
|
||||
Description: Recon Bike
|
||||
LongDesc: Fast scout vehicle, armed with \nrockets.\n Strong vs Vehicles, Aircraft\n Weak vs Infantry
|
||||
Unit:
|
||||
Mobile:
|
||||
ROT: 10
|
||||
Speed: 20
|
||||
Health:
|
||||
@@ -197,6 +204,7 @@ JEEP:
|
||||
Description: Hum-Vee
|
||||
LongDesc: Fast scout & anti-infantry vehicle.\n Strong vs Infantry\n Weak vs Tanks, Aircraft
|
||||
Unit:
|
||||
Mobile:
|
||||
ROT: 10
|
||||
Speed: 15
|
||||
Health:
|
||||
@@ -224,6 +232,7 @@ LTNK:
|
||||
Description: Light Tank
|
||||
LongDesc: Light Tank, good for scouting.\n Strong vs Light Vehicles\n Weak vs Tanks, Aircraft
|
||||
Unit:
|
||||
Mobile:
|
||||
Speed: 9
|
||||
Health:
|
||||
HP: 300
|
||||
@@ -254,6 +263,7 @@ MTNK:
|
||||
Description: Medium Tank
|
||||
LongDesc: General-Purpose GDI Tank.\n Strong vs Tanks, Light Vehicles\n Weak vs Infantry, Aircraft
|
||||
Unit:
|
||||
Mobile:
|
||||
Speed: 9
|
||||
Health:
|
||||
HP: 400
|
||||
@@ -284,6 +294,8 @@ HTNK:
|
||||
Description: Mammoth Tank
|
||||
LongDesc: Heavily armored GDI Tank.\n Strong vs Everything
|
||||
Unit:
|
||||
Mobile:
|
||||
Crushes: wall, heavywall
|
||||
Speed: 3
|
||||
Health:
|
||||
HP: 600
|
||||
@@ -306,8 +318,6 @@ HTNK:
|
||||
Explodes:
|
||||
Weapon: UnitExplodeSmall
|
||||
EmptyWeapon: UnitExplodeSmall
|
||||
Mobile:
|
||||
Crushes: wall, heavywall
|
||||
|
||||
MSAM:
|
||||
Inherits: ^Tank
|
||||
@@ -320,6 +330,7 @@ MSAM:
|
||||
Description: Rocket Launcher
|
||||
LongDesc: Long range artillery.\n Strong vs Infantry, Buildings\n Weak vs Tanks, Aircraft
|
||||
Unit:
|
||||
Mobile:
|
||||
Speed: 6
|
||||
Health:
|
||||
HP: 120
|
||||
@@ -349,6 +360,7 @@ MLRS:
|
||||
Description: SSM Launcher
|
||||
LongDesc: Long range artillery.\n Strong vs Infantry, Aircraft\n Weak vs Tanks, Aircraft
|
||||
Unit:
|
||||
Mobile:
|
||||
Speed: 6
|
||||
Health:
|
||||
HP: 120
|
||||
@@ -374,6 +386,7 @@ STNK:
|
||||
Description: Stealth Tank
|
||||
LongDesc: Missile tank that can bend light around \nitself to become invisible\n Strong vs Infantry, Aircraft\n Weak vs Tanks
|
||||
Unit:
|
||||
Mobile:
|
||||
Speed: 15
|
||||
Health:
|
||||
HP: 110
|
||||
@@ -402,6 +415,7 @@ TRAN:
|
||||
Description: Chinook Transport
|
||||
LongDesc: Fast Infantry Transport Helicopter.\n Unarmed
|
||||
Unit:
|
||||
MobileAir:
|
||||
InitialFacing: 20
|
||||
ROT: 5
|
||||
Speed: 15
|
||||
@@ -430,6 +444,7 @@ HELI:
|
||||
Description: Apache Longbow
|
||||
LongDesc: Helicopter Gunship with AG Missiles.\n Strong vs Buildings, Tanks\n Weak vs Infantry
|
||||
Unit:
|
||||
MobileAir:
|
||||
InitialFacing: 20
|
||||
ROT: 4
|
||||
Speed: 20
|
||||
@@ -459,6 +474,7 @@ ORCA:
|
||||
Description: Orca
|
||||
LongDesc: Helicopter Gunship with AG Missiles.\n Strong vs Buildings, Tanks\n Weak vs Infantry
|
||||
Unit:
|
||||
MobileAir:
|
||||
InitialFacing: 20
|
||||
ROT: 4
|
||||
Speed: 20
|
||||
@@ -480,6 +496,7 @@ C17:
|
||||
LZRange: 1
|
||||
Inherits: ^Plane
|
||||
Unit:
|
||||
Plane:
|
||||
ROT: 5
|
||||
Speed: 25
|
||||
Health:
|
||||
@@ -498,6 +515,7 @@ C17:
|
||||
A10:
|
||||
Inherits: ^Plane
|
||||
Unit:
|
||||
Plane:
|
||||
ROT: 4
|
||||
Speed: 25
|
||||
Health:
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
^Vehicle:
|
||||
Category: Vehicle
|
||||
Unit:
|
||||
ROT: 5
|
||||
Unit:
|
||||
Mobile:
|
||||
Crushes: atmine, crate
|
||||
TerrainTypes: Clear, Rough, Road, Tree, Water, Rock, Wall, Ore, Beach, River
|
||||
TerrainSpeeds: 60%, 40%, 100%, 0%, 0%, 0%, 0%, 90%, 40%, 0%
|
||||
ROT: 5
|
||||
Selectable:
|
||||
Voice: VehicleVoice
|
||||
Targetable:
|
||||
@@ -21,12 +21,12 @@
|
||||
|
||||
^Tank:
|
||||
Category: Vehicle
|
||||
Unit:
|
||||
ROT: 5
|
||||
Unit:
|
||||
Mobile:
|
||||
Crushes: wall, atmine, crate
|
||||
TerrainTypes: Clear, Rough, Road, Tree, Water, Rock, Wall, Ore, Beach, River
|
||||
TerrainSpeeds: 80%, 70%, 100%, 0%, 0%, 0%, 0%, 90%, 70%, 0%
|
||||
ROT: 5
|
||||
Selectable:
|
||||
Voice: VehicleVoice
|
||||
Targetable:
|
||||
@@ -42,6 +42,7 @@
|
||||
|
||||
^Infantry:
|
||||
Category: Infantry
|
||||
Unit:
|
||||
Health:
|
||||
Armor: none
|
||||
RevealsShroud:
|
||||
@@ -163,8 +164,6 @@
|
||||
^Husk:
|
||||
Category: Vehicle
|
||||
Unit:
|
||||
ROT: 0
|
||||
Speed: 0
|
||||
Health:
|
||||
HP: 140
|
||||
Armor: Heavy
|
||||
|
||||
@@ -13,7 +13,7 @@ DOG:
|
||||
Bounds: 12,17,-1,-4
|
||||
Health:
|
||||
HP: 12
|
||||
Unit:
|
||||
Mobile:
|
||||
Speed: 7
|
||||
RevealsShroud:
|
||||
Range: 5
|
||||
@@ -35,7 +35,7 @@ E1:
|
||||
Bounds: 12,17,0,-9
|
||||
Health:
|
||||
HP: 50
|
||||
Unit:
|
||||
Mobile:
|
||||
Speed: 4
|
||||
AttackBase:
|
||||
PrimaryWeapon: M1Carbine
|
||||
@@ -55,7 +55,7 @@ E2:
|
||||
Bounds: 12,17,0,-9
|
||||
Health:
|
||||
HP: 50
|
||||
Unit:
|
||||
Mobile:
|
||||
Speed: 5
|
||||
AttackBase:
|
||||
PrimaryWeapon: Grenade
|
||||
@@ -77,7 +77,7 @@ E3:
|
||||
Bounds: 12,17,0,-9
|
||||
Health:
|
||||
HP: 45
|
||||
Unit:
|
||||
Mobile:
|
||||
Speed: 3
|
||||
AttackBase:
|
||||
PrimaryWeapon: RedEye
|
||||
@@ -99,7 +99,7 @@ E4:
|
||||
Bounds: 12,17,0,-9
|
||||
Health:
|
||||
HP: 40
|
||||
Unit:
|
||||
Mobile:
|
||||
Speed: 3
|
||||
AttackBase:
|
||||
PrimaryWeapon: Flamer
|
||||
@@ -122,7 +122,7 @@ E6:
|
||||
Bounds: 12,17,0,-9
|
||||
Health:
|
||||
HP: 25
|
||||
Unit:
|
||||
Mobile:
|
||||
Speed: 4
|
||||
Passenger:
|
||||
ColorOfCargoPip: Yellow
|
||||
@@ -146,7 +146,7 @@ SPY:
|
||||
Bounds: 12,17,0,-9
|
||||
Health:
|
||||
HP: 25
|
||||
Unit:
|
||||
Mobile:
|
||||
Speed: 4
|
||||
RevealsShroud:
|
||||
Range: 5
|
||||
@@ -173,7 +173,7 @@ E7:
|
||||
Bounds: 12,17,0,-9
|
||||
Health:
|
||||
HP: 100
|
||||
Unit:
|
||||
Mobile:
|
||||
Speed: 5
|
||||
RevealsShroud:
|
||||
Range: 6
|
||||
@@ -199,7 +199,7 @@ MEDI:
|
||||
Bounds: 12,17,0,-9
|
||||
Health:
|
||||
HP: 80
|
||||
Unit:
|
||||
Mobile:
|
||||
Speed: 4
|
||||
RevealsShroud:
|
||||
Range: 3
|
||||
@@ -221,7 +221,7 @@ C1:
|
||||
Description: Technician
|
||||
Health:
|
||||
HP: 20
|
||||
Unit:
|
||||
Mobile:
|
||||
Speed: 4
|
||||
RevealsShroud:
|
||||
Range: 2
|
||||
@@ -238,7 +238,7 @@ C2:
|
||||
Description: Technician
|
||||
Health:
|
||||
HP: 20
|
||||
Unit:
|
||||
Mobile:
|
||||
Speed: 4
|
||||
RevealsShroud:
|
||||
Range: 2
|
||||
|
||||
@@ -6,9 +6,9 @@ BADR:
|
||||
HP: 60
|
||||
Armor: light
|
||||
Unit:
|
||||
Plane:
|
||||
ROT: 5
|
||||
Speed: 16
|
||||
Plane:
|
||||
RenderUnit:
|
||||
WithShadow:
|
||||
IronCurtainable:
|
||||
@@ -26,9 +26,9 @@ BADR.bomber:
|
||||
HP: 60
|
||||
Armor: light
|
||||
Unit:
|
||||
Plane:
|
||||
ROT: 5
|
||||
Speed: 16
|
||||
Plane:
|
||||
LimitedAmmo:
|
||||
Ammo: 7
|
||||
RenderUnit:
|
||||
@@ -51,6 +51,7 @@ V2RL:
|
||||
HP: 150
|
||||
Armor: light
|
||||
Unit:
|
||||
Mobile:
|
||||
Speed: 7
|
||||
RevealsShroud:
|
||||
Range: 5
|
||||
@@ -75,6 +76,7 @@ V2RL:
|
||||
HP: 300
|
||||
Armor: heavy
|
||||
Unit:
|
||||
Mobile:
|
||||
Speed: 9
|
||||
RevealsShroud:
|
||||
Range: 4
|
||||
@@ -104,6 +106,7 @@ V2RL:
|
||||
HP: 400
|
||||
Armor: heavy
|
||||
Unit:
|
||||
Mobile:
|
||||
Speed: 8
|
||||
RevealsShroud:
|
||||
Range: 5
|
||||
@@ -133,6 +136,7 @@ V2RL:
|
||||
HP: 550
|
||||
Armor: heavy
|
||||
Unit:
|
||||
Mobile:
|
||||
Speed: 6
|
||||
RevealsShroud:
|
||||
Range: 5
|
||||
@@ -162,6 +166,7 @@ V2RL:
|
||||
HP: 750
|
||||
Armor: heavy
|
||||
Unit:
|
||||
Mobile:
|
||||
Speed: 3
|
||||
RevealsShroud:
|
||||
Range: 6
|
||||
@@ -198,6 +203,7 @@ ARTY:
|
||||
HP: 75
|
||||
Armor: light
|
||||
Unit:
|
||||
Mobile:
|
||||
ROT: 2
|
||||
Speed: 6
|
||||
RevealsShroud:
|
||||
@@ -226,6 +232,7 @@ HARV:
|
||||
HP: 600
|
||||
Armor: heavy
|
||||
Unit:
|
||||
Mobile:
|
||||
Speed: 6
|
||||
RevealsShroud:
|
||||
Range: 4
|
||||
@@ -246,6 +253,7 @@ MCV:
|
||||
HP: 600
|
||||
Armor: light
|
||||
Unit:
|
||||
Mobile:
|
||||
Speed: 6
|
||||
RevealsShroud:
|
||||
Range: 4
|
||||
@@ -272,6 +280,7 @@ JEEP:
|
||||
HP: 150
|
||||
Armor: light
|
||||
Unit:
|
||||
Mobile:
|
||||
ROT: 10
|
||||
Speed: 12
|
||||
RevealsShroud:
|
||||
@@ -298,6 +307,7 @@ APC:
|
||||
HP: 200
|
||||
Armor: heavy
|
||||
Unit:
|
||||
Mobile:
|
||||
Speed: 10
|
||||
RevealsShroud:
|
||||
Range: 5
|
||||
@@ -327,6 +337,7 @@ MNLY.AP:
|
||||
HP: 100
|
||||
Armor: heavy
|
||||
Unit:
|
||||
Mobile:
|
||||
Speed: 9
|
||||
RevealsShroud:
|
||||
Range: 5
|
||||
@@ -352,6 +363,7 @@ MNLY.AT:
|
||||
HP: 100
|
||||
Armor: heavy
|
||||
Unit:
|
||||
Mobile:
|
||||
Speed: 9
|
||||
RevealsShroud:
|
||||
Range: 5
|
||||
@@ -369,6 +381,7 @@ TRUK:
|
||||
HP: 110
|
||||
Armor: light
|
||||
Unit:
|
||||
Mobile:
|
||||
Speed: 10
|
||||
RevealsShroud:
|
||||
Range: 3
|
||||
@@ -388,6 +401,7 @@ SS:
|
||||
HP: 120
|
||||
Armor: light
|
||||
Unit:
|
||||
Mobile:
|
||||
ROT: 4
|
||||
Speed: 5
|
||||
RevealsShroud:
|
||||
@@ -420,6 +434,7 @@ MSUB:
|
||||
HP: 200
|
||||
Armor: light
|
||||
Unit:
|
||||
Mobile:
|
||||
ROT: 3
|
||||
Speed: 3
|
||||
RevealsShroud:
|
||||
@@ -451,6 +466,7 @@ DD:
|
||||
HP: 400
|
||||
Armor: heavy
|
||||
Unit:
|
||||
Mobile:
|
||||
ROT: 7
|
||||
Speed: 6
|
||||
RevealsShroud:
|
||||
@@ -481,6 +497,7 @@ CA:
|
||||
HP: 800
|
||||
Armor: heavy
|
||||
Unit:
|
||||
Mobile:
|
||||
ROT: 2
|
||||
Speed: 2
|
||||
RevealsShroud:
|
||||
@@ -513,6 +530,7 @@ LST:
|
||||
HP: 350
|
||||
Armor: heavy
|
||||
Unit:
|
||||
Mobile:
|
||||
ROT: 10
|
||||
Speed: 14
|
||||
RevealsShroud:
|
||||
@@ -538,6 +556,7 @@ PT:
|
||||
HP: 200
|
||||
Armor: heavy
|
||||
Unit:
|
||||
Mobile:
|
||||
ROT: 7
|
||||
Speed: 9
|
||||
RevealsShroud:
|
||||
@@ -568,9 +587,6 @@ MIG:
|
||||
HP: 70
|
||||
Armor: light
|
||||
Unit:
|
||||
InitialFacing: 192
|
||||
ROT: 5
|
||||
Speed: 20
|
||||
RevealsShroud:
|
||||
Range: 12
|
||||
AttackPlane:
|
||||
@@ -579,6 +595,9 @@ MIG:
|
||||
PrimaryLocalOffset: -15,0,-10,-12,0,6
|
||||
SecondaryLocalOffset: 15,0,10,12,0,6
|
||||
Plane:
|
||||
InitialFacing: 192
|
||||
ROT: 5
|
||||
Speed: 20
|
||||
RearmBuildings: afld
|
||||
RenderUnit:
|
||||
WithShadow:
|
||||
@@ -601,9 +620,6 @@ YAK:
|
||||
HP: 60
|
||||
Armor: light
|
||||
Unit:
|
||||
InitialFacing: 192
|
||||
ROT: 5
|
||||
Speed: 16
|
||||
RevealsShroud:
|
||||
Range: 10
|
||||
AttackPlane:
|
||||
@@ -611,6 +627,9 @@ YAK:
|
||||
SecondaryWeapon: ChainGun
|
||||
Plane:
|
||||
RearmBuildings: afld
|
||||
InitialFacing: 192
|
||||
ROT: 5
|
||||
Speed: 16
|
||||
RenderUnit:
|
||||
WithShadow:
|
||||
LimitedAmmo:
|
||||
@@ -633,13 +652,13 @@ TRAN:
|
||||
HP: 90
|
||||
Armor: light
|
||||
Unit:
|
||||
InitialFacing: 20
|
||||
ROT: 5
|
||||
Speed: 12
|
||||
RevealsShroud:
|
||||
Range: 12
|
||||
Helicopter:
|
||||
RearmBuildings: hpad
|
||||
InitialFacing: 20
|
||||
ROT: 5
|
||||
Speed: 12
|
||||
RenderUnitRotor:
|
||||
PrimaryOffset: 0,14,0,-4
|
||||
SecondaryOffset: 0,-14,0,-2
|
||||
@@ -663,9 +682,6 @@ HELI:
|
||||
HP: 120
|
||||
Armor: light
|
||||
Unit:
|
||||
InitialFacing: 20
|
||||
ROT: 4
|
||||
Speed: 16
|
||||
RevealsShroud:
|
||||
Range: 12
|
||||
AttackHeli:
|
||||
@@ -675,6 +691,9 @@ HELI:
|
||||
SecondaryOffset: 5,0,0,2
|
||||
Helicopter:
|
||||
RearmBuildings: hpad
|
||||
InitialFacing: 20
|
||||
ROT: 4
|
||||
Speed: 16
|
||||
RenderUnitRotor:
|
||||
PrimaryOffset: 0,0,0,-2
|
||||
WithShadow:
|
||||
@@ -696,9 +715,6 @@ HIND:
|
||||
HP: 120
|
||||
Armor: light
|
||||
Unit:
|
||||
InitialFacing: 20
|
||||
ROT: 4
|
||||
Speed: 12
|
||||
RevealsShroud:
|
||||
Range: 12
|
||||
AttackHeli:
|
||||
@@ -707,6 +723,9 @@ HIND:
|
||||
SecondaryOffset: 5,0,0,2
|
||||
Helicopter:
|
||||
RearmBuildings: hpad
|
||||
InitialFacing: 20
|
||||
ROT: 4
|
||||
Speed: 12
|
||||
RenderUnitRotor:
|
||||
WithShadow:
|
||||
LimitedAmmo:
|
||||
@@ -719,6 +738,7 @@ U2:
|
||||
HP: 2000
|
||||
Armor: heavy
|
||||
Unit:
|
||||
Mobile:
|
||||
ROT: 7
|
||||
Speed: 40
|
||||
Plane:
|
||||
|
||||
Reference in New Issue
Block a user