Much better yak management. Map improvements.

This commit is contained in:
Scott_NZ
2012-11-11 23:23:32 +13:00
parent 93e951eb75
commit 1f8fd404e5
4 changed files with 317 additions and 318 deletions

View File

@@ -236,10 +236,10 @@ namespace OpenRA.Mods.RA.Missions
} }
if (objectives[DestroySamSitesID].Status == ObjectiveStatus.InProgress) if (objectives[DestroySamSitesID].Status == ObjectiveStatus.InProgress)
{ {
if ((sam1.Destroyed || sam1.Owner != soviets) && if ((sam1.Destroyed || sam1.Owner != soviets)
(sam2.Destroyed || sam2.Owner != soviets) && && (sam2.Destroyed || sam2.Owner != soviets)
(sam3.Destroyed || sam3.Owner != soviets) && && (sam3.Destroyed || sam3.Owner != soviets)
(sam4.Destroyed || sam4.Owner != soviets)) && (sam4.Destroyed || sam4.Owner != soviets))
{ {
objectives[DestroySamSitesID].Status = ObjectiveStatus.Completed; objectives[DestroySamSitesID].Status = ObjectiveStatus.Completed;
objectives[ExtractEinsteinID].Status = ObjectiveStatus.InProgress; objectives[ExtractEinsteinID].Status = ObjectiveStatus.InProgress;

View File

@@ -64,12 +64,14 @@ namespace OpenRA.Mods.RA.Missions
Actor sovietEntryPoint3; Actor sovietEntryPoint3;
Actor sovietEntryPoint4; Actor sovietEntryPoint4;
Actor sovietEntryPoint5; Actor sovietEntryPoint5;
Actor sovietEntryPoint6;
CPos[] sovietEntryPoints; CPos[] sovietEntryPoints;
Actor sovietRallyPoint1; Actor sovietRallyPoint1;
Actor sovietRallyPoint2; Actor sovietRallyPoint2;
Actor sovietRallyPoint3; Actor sovietRallyPoint3;
Actor sovietRallyPoint4; Actor sovietRallyPoint4;
Actor sovietRallyPoint5; Actor sovietRallyPoint5;
Actor sovietRallyPoint6;
CPos[] sovietRallyPoints; CPos[] sovietRallyPoints;
Actor sovietAirfield1; Actor sovietAirfield1;
@@ -78,8 +80,9 @@ namespace OpenRA.Mods.RA.Missions
Actor sovietAirfield4; Actor sovietAirfield4;
static readonly string[] SovietVehicles = { "3tnk", "3tnk", "3tnk", "3tnk", "3tnk", "3tnk", "v2rl", "v2rl", "ftrk", "ftrk", "apc", "apc", "apc" }; static readonly string[] SovietVehicles = { "3tnk", "3tnk", "3tnk", "3tnk", "3tnk", "3tnk", "v2rl", "v2rl", "ftrk", "ftrk", "apc", "apc", "apc" };
const int SovietAttackGroupSize = 5; const int SovietAttackGroupSize = 3;
const int YakTicks = 2000; const int YakSpawnTicks = 2000;
const int MaxNumberYaks = 4;
int attackAtFrame; int attackAtFrame;
int attackAtFrameIncrement; int attackAtFrameIncrement;
@@ -127,7 +130,7 @@ namespace OpenRA.Mods.RA.Missions
} }
if (world.FrameNumber == 1) if (world.FrameNumber == 1)
{ {
SpawnAlliedUnits(); SpawnAlliedMcvs();
evacuateWidget = new InfoWidget("", new float2(Game.viewport.Width * 0.35f, Game.viewport.Height * 0.9f)); evacuateWidget = new InfoWidget("", new float2(Game.viewport.Width * 0.35f, Game.viewport.Height * 0.9f));
Ui.Root.AddChild(evacuateWidget); Ui.Root.AddChild(evacuateWidget);
UpdateUnitsEvacuated(); UpdateUnitsEvacuated();
@@ -138,11 +141,16 @@ namespace OpenRA.Mods.RA.Missions
attackAtFrame += attackAtFrameIncrement; attackAtFrame += attackAtFrameIncrement;
attackAtFrameIncrement = Math.Max(attackAtFrameIncrement - 5, 100); attackAtFrameIncrement = Math.Max(attackAtFrameIncrement - 5, 100);
} }
if (world.FrameNumber % YakTicks == 1 && objectives[AirbaseID].Status != ObjectiveStatus.Completed) if (world.FrameNumber % YakSpawnTicks == 0 && SovietAircraft().Count() < MaxNumberYaks)
{ {
AirStrafe(YakName); SpawnSovietAircraft();
}
if (objectives[AirbaseID].Status != ObjectiveStatus.Completed)
{
ManageSovietAircraft();
} }
ManageSovietUnits(); ManageSovietUnits();
ManageSovietAircraft();
ManageSovietOre(); ManageSovietOre();
EvacuateAlliedUnits(exit1TopLeft.CenterLocation, exit1BottomRight.CenterLocation, exit1ExitPoint.Location); EvacuateAlliedUnits(exit1TopLeft.CenterLocation, exit1BottomRight.CenterLocation, exit1ExitPoint.Location);
EvacuateAlliedUnits(exit2TopLeft.CenterLocation, exit2BottomRight.CenterLocation, exit2ExitPoint.Location); EvacuateAlliedUnits(exit2TopLeft.CenterLocation, exit2BottomRight.CenterLocation, exit2ExitPoint.Location);
@@ -160,51 +168,72 @@ namespace OpenRA.Mods.RA.Missions
res.TakeCash(res.Cash); res.TakeCash(res.Cash);
} }
void AirStrafe(string withActor) void ManageSovietAircraft()
{ {
var spawnPoint = world.ChooseRandomEdgeCell(); var enemies = world.Actors.Where(u => (u.Owner == allies1 || u.Owner == allies2) && ((u.HasTrait<Building>() && !u.HasTrait<Wall>()) || u.HasTrait<Mobile>()) && u.IsInWorld && !u.IsDead());
var aircraft = world.Actors.Where( foreach (var a in SovietAircraft())
a => a.HasTrait<AttackPlane>() && a.Trait<LimitedAmmo>().FullAmmo() && a.Trait<Plane>().Altitude == 0
&& a.Owner == soviets && a.IsIdle && a.IsInWorld);
if (aircraft.Count() < 4)
{ {
var a = world.CreateActor(withActor, new TypeDictionary var plane = a.Trait<Plane>();
{ var ammo = a.Trait<LimitedAmmo>();
new LocationInit(spawnPoint), if ((plane.Altitude == 0 && ammo.FullAmmo()) || (plane.Altitude != 0 && ammo.HasAmmo()))
new OwnerInit(soviets), {
new AltitudeInit(Rules.Info[withActor].Traits.Get<PlaneInfo>().CruiseAltitude) if (!a.IsIdle && a.GetCurrentActivity().GetType() != typeof(FlyAttack))
}); {
aircraft = aircraft.Concat(new[] { a }); a.CancelActivity();
} }
foreach (var a in aircraft) var enemy = enemies.OrderBy(u => (a.CenterLocation - u.CenterLocation).LengthSquared).FirstOrDefault();
{ if (enemy != null)
AirStrafe(a); {
if (plane.Altitude == 0)
{
plane.UnReserve();
}
a.QueueActivity(new FlyAttack(Target.FromActor(enemy)));
}
}
else if (plane.Altitude != 0 && !LandIsQueued(a))
{
a.CancelActivity();
a.QueueActivity(new ReturnToBase(a, null));
a.QueueActivity(new ResupplyAircraft());
}
} }
} }
void AirStrafe(Actor self) bool LandIsQueued(Actor actor)
{ {
var enemies = world.Actors.Where(u => u.IsInWorld && !u.IsDead() && (u.Owner == allies1 || u.Owner == allies2) && ((u.HasTrait<Building>() && !u.HasTrait<Wall>()) || u.HasTrait<Mobile>())); var a = actor.GetCurrentActivity();
var targetEnemy = enemies.OrderBy(u => (self.CenterLocation - u.CenterLocation).LengthSquared).FirstOrDefault(); for (;;)
if (targetEnemy != null && self.Trait<LimitedAmmo>().HasAmmo())
{ {
self.QueueActivity(new FlyAttack(Target.FromActor(targetEnemy))); if (a == null) { return false; }
self.QueueActivity(new CallFunc(() => AirStrafe(self))); if (a.GetType() == typeof(ReturnToBase) || a.GetType() == typeof(Land)) { return true; }
} a = a.NextActivity;
else
{
self.QueueActivity(new FlyOffMap());
self.QueueActivity(new RemoveSelf());
} }
} }
void SpawnSovietAircraft()
{
var spawnPoint = world.ChooseRandomEdgeCell();
world.CreateActor(YakName, new TypeDictionary
{
new LocationInit(spawnPoint),
new OwnerInit(soviets),
new AltitudeInit(Rules.Info[YakName].Traits.Get<PlaneInfo>().CruiseAltitude)
});
}
IEnumerable<Actor> SovietAircraft()
{
return world.Actors.Where(a => a.HasTrait<AttackPlane>() && a.Owner == soviets && a.IsInWorld && !a.IsDead());
}
void CheckSovietAirbase() void CheckSovietAirbase()
{ {
if (objectives[AirbaseID].Status != ObjectiveStatus.Completed && if (objectives[AirbaseID].Status != ObjectiveStatus.Completed
(sovietAirfield1.Destroyed || sovietAirfield1.Owner != soviets) && && (sovietAirfield1.Destroyed || sovietAirfield1.Owner != soviets)
(sovietAirfield2.Destroyed || sovietAirfield2.Owner != soviets) && && (sovietAirfield2.Destroyed || sovietAirfield2.Owner != soviets)
(sovietAirfield3.Destroyed || sovietAirfield3.Owner != soviets) && && (sovietAirfield3.Destroyed || sovietAirfield3.Owner != soviets)
(sovietAirfield4.Destroyed || sovietAirfield4.Owner != soviets)) && (sovietAirfield4.Destroyed || sovietAirfield4.Owner != soviets))
{ {
objectives[AirbaseID].Status = ObjectiveStatus.Completed; objectives[AirbaseID].Status = ObjectiveStatus.Completed;
OnObjectivesUpdated(true); OnObjectivesUpdated(true);
@@ -255,7 +284,7 @@ namespace OpenRA.Mods.RA.Missions
} }
} }
void SpawnAlliedUnits() void SpawnAlliedMcvs()
{ {
var unit = world.CreateActor(McvName, new TypeDictionary var unit = world.CreateActor(McvName, new TypeDictionary
{ {
@@ -317,14 +346,14 @@ namespace OpenRA.Mods.RA.Missions
allies2 = w.Players.SingleOrDefault(p => p.InternalName == "Allies2"); allies2 = w.Players.SingleOrDefault(p => p.InternalName == "Allies2");
if (allies2 != null) if (allies2 != null)
{ {
attackAtFrame = 400; attackAtFrame = 500;
attackAtFrameIncrement = 400; attackAtFrameIncrement = 500;
} }
else else
{ {
allies2 = allies1; allies2 = allies1;
attackAtFrame = 500; attackAtFrame = 600;
attackAtFrameIncrement = 500; attackAtFrameIncrement = 600;
} }
allies = w.Players.Single(p => p.InternalName == "Allies"); allies = w.Players.Single(p => p.InternalName == "Allies");
soviets = w.Players.Single(p => p.InternalName == "Soviets"); soviets = w.Players.Single(p => p.InternalName == "Soviets");
@@ -344,13 +373,15 @@ namespace OpenRA.Mods.RA.Missions
sovietEntryPoint3 = actors["SovietEntryPoint3"]; sovietEntryPoint3 = actors["SovietEntryPoint3"];
sovietEntryPoint4 = actors["SovietEntryPoint4"]; sovietEntryPoint4 = actors["SovietEntryPoint4"];
sovietEntryPoint5 = actors["SovietEntryPoint5"]; sovietEntryPoint5 = actors["SovietEntryPoint5"];
sovietEntryPoints = new[] { sovietEntryPoint1, sovietEntryPoint2, sovietEntryPoint3, sovietEntryPoint4, sovietEntryPoint5 }.Select(p => p.Location).ToArray(); sovietEntryPoint6 = actors["SovietEntryPoint6"];
sovietEntryPoints = new[] { sovietEntryPoint1, sovietEntryPoint2, sovietEntryPoint3, sovietEntryPoint4, sovietEntryPoint5, sovietEntryPoint6 }.Select(p => p.Location).ToArray();
sovietRallyPoint1 = actors["SovietRallyPoint1"]; sovietRallyPoint1 = actors["SovietRallyPoint1"];
sovietRallyPoint2 = actors["SovietRallyPoint2"]; sovietRallyPoint2 = actors["SovietRallyPoint2"];
sovietRallyPoint3 = actors["SovietRallyPoint3"]; sovietRallyPoint3 = actors["SovietRallyPoint3"];
sovietRallyPoint4 = actors["SovietRallyPoint4"]; sovietRallyPoint4 = actors["SovietRallyPoint4"];
sovietRallyPoint5 = actors["SovietRallyPoint5"]; sovietRallyPoint5 = actors["SovietRallyPoint5"];
sovietRallyPoints = new[] { sovietRallyPoint1, sovietRallyPoint2, sovietRallyPoint3, sovietRallyPoint4, sovietRallyPoint5 }.Select(p => p.Location).ToArray(); sovietRallyPoint6 = actors["SovietRallyPoint6"];
sovietRallyPoints = new[] { sovietRallyPoint1, sovietRallyPoint2, sovietRallyPoint3, sovietRallyPoint4, sovietRallyPoint5, sovietRallyPoint6 }.Select(p => p.Location).ToArray();
sovietAirfield1 = actors["SovietAirfield1"]; sovietAirfield1 = actors["SovietAirfield1"];
sovietAirfield2 = actors["SovietAirfield2"]; sovietAirfield2 = actors["SovietAirfield2"];
sovietAirfield3 = actors["SovietAirfield3"]; sovietAirfield3 = actors["SovietAirfield3"];

Binary file not shown.

View File

@@ -114,8 +114,8 @@ Actors:
Actor53: tc03 Actor53: tc03
Location: 138,53 Location: 138,53
Owner: Neutral Owner: Neutral
Actor2: tc04 Actor2: tc05
Location: 53,43 Location: 64,44
Owner: Neutral Owner: Neutral
Actor57: tc04 Actor57: tc04
Location: 43,19 Location: 43,19
@@ -528,11 +528,8 @@ Actors:
Actor322: t07 Actor322: t07
Location: 112,65 Location: 112,65
Owner: Neutral Owner: Neutral
Actor321: t07 Actor246: t06
Location: 93,59 Location: 94,64
Owner: Neutral
Actor320: t07
Location: 95,51
Owner: Neutral Owner: Neutral
Actor303: t06 Actor303: t06
Location: 101,69 Location: 101,69
@@ -558,9 +555,6 @@ Actors:
Actor360: t11 Actor360: t11
Location: 122,76 Location: 122,76
Owner: Neutral Owner: Neutral
Actor173: oilb
Location: 146,46
Owner: Neutral
Actor187: tc04 Actor187: tc04
Location: 99,27 Location: 99,27
Owner: Neutral Owner: Neutral
@@ -570,21 +564,12 @@ Actors:
Actor203: tc05 Actor203: tc05
Location: 67,64 Location: 67,64
Owner: Neutral Owner: Neutral
Actor172: barl
Location: 74,60
Owner: Neutral
Actor295: t05
Location: 89,54
Owner: Neutral
Actor350: t10 Actor350: t10
Location: 87,22 Location: 87,22
Owner: Neutral Owner: Neutral
Actor17: proc Actor17: proc
Location: 168,62 Location: 168,62
Owner: Soviets Owner: Soviets
Actor170: oilb
Location: 72,58
Owner: Neutral
Actor291: t05 Actor291: t05
Location: 91,33 Location: 91,33
Owner: Neutral Owner: Neutral
@@ -606,15 +591,9 @@ Actors:
Actor269: t03 Actor269: t03
Location: 84,37 Location: 84,37
Owner: Neutral Owner: Neutral
Actor256: t02
Location: 106,42
Owner: Neutral
Actor271: t03 Actor271: t03
Location: 79,57 Location: 79,57
Owner: Neutral Owner: Neutral
Actor352: t10
Location: 88,57
Owner: Neutral
SovietEntryPoint4: waypoint SovietEntryPoint4: waypoint
Location: 115,16 Location: 115,16
Owner: Neutral Owner: Neutral
@@ -624,8 +603,8 @@ Actors:
Actor221: tc01 Actor221: tc01
Location: 113,73 Location: 113,73
Owner: Neutral Owner: Neutral
Actor224: tc01 Actor215: t05
Location: 65,42 Location: 72,40
Owner: Neutral Owner: Neutral
Actor267: t02 Actor267: t02
Location: 123,62 Location: 123,62
@@ -636,9 +615,6 @@ Actors:
Actor220: tc01 Actor220: tc01
Location: 117,40 Location: 117,40
Owner: Neutral Owner: Neutral
Actor218: tc01
Location: 89,63
Owner: Neutral
Actor158: tc01 Actor158: tc01
Location: 23,35 Location: 23,35
Owner: Neutral Owner: Neutral
@@ -654,8 +630,8 @@ Actors:
Actor211: tc02 Actor211: tc02
Location: 75,74 Location: 75,74
Owner: Neutral Owner: Neutral
Actor215: tc02 Actor213: tc04
Location: 71,38 Location: 55,43
Owner: Neutral Owner: Neutral
Actor214: tc02 Actor214: tc02
Location: 79,47 Location: 79,47
@@ -663,9 +639,6 @@ Actors:
Actor38: t15 Actor38: t15
Location: 30,52 Location: 30,52
Owner: Neutral Owner: Neutral
Actor44: t01
Location: 55,56
Owner: Neutral
Actor407: t13 Actor407: t13
Location: 32,62 Location: 32,62
Owner: Neutral Owner: Neutral
@@ -741,9 +714,6 @@ Actors:
Actor55: t01 Actor55: t01
Location: 37,37 Location: 37,37
Owner: Neutral Owner: Neutral
Actor56: t01
Location: 94,41
Owner: Neutral
Actor760: t03 Actor760: t03
Location: 175,27 Location: 175,27
Owner: Neutral Owner: Neutral
@@ -777,9 +747,6 @@ Actors:
Actor780: t03 Actor780: t03
Location: 79,39 Location: 79,39
Owner: Neutral Owner: Neutral
Actor171: brl3
Location: 74,59
Owner: Neutral
Actor398: t05 Actor398: t05
Location: 32,64 Location: 32,64
Owner: Neutral Owner: Neutral
@@ -999,26 +966,8 @@ Actors:
Exit2ExitPoint: waypoint Exit2ExitPoint: waypoint
Location: 16,29 Location: 16,29
Owner: Neutral Owner: Neutral
Actor174: oilb Actor177: oilb
Location: 143,46 Location: 86,52
Owner: Neutral
Actor169: oilb
Location: 72,54
Owner: Neutral
Actor175: brl3
Location: 148,47
Owner: Neutral
Actor176: barl
Location: 142,47
Owner: Neutral
Actor177: brl3
Location: 142,46
Owner: Neutral
Actor179: barl
Location: 145,48
Owner: Neutral
Actor180: barl
Location: 74,56
Owner: Neutral Owner: Neutral
SovietEntryPoint3: waypoint SovietEntryPoint3: waypoint
Location: 105,79 Location: 105,79
@@ -1030,19 +979,19 @@ Actors:
Location: 89,79 Location: 89,79
Owner: Neutral Owner: Neutral
SovietRallyPoint2: waypoint SovietRallyPoint2: waypoint
Location: 94,33 Location: 93,20
Owner: Neutral Owner: Neutral
SovietRallyPoint1: waypoint SovietRallyPoint1: waypoint
Location: 83,61 Location: 89,75
Owner: Neutral Owner: Neutral
SovietRallyPoint3: waypoint SovietRallyPoint3: waypoint
Location: 112,49 Location: 105,75
Owner: Neutral Owner: Neutral
SovietRallyPoint4: waypoint SovietRallyPoint4: waypoint
Location: 116,30 Location: 115,20
Owner: Neutral Owner: Neutral
SovietRallyPoint5: waypoint SovietRallyPoint5: waypoint
Location: 131,63 Location: 130,75
Owner: Neutral Owner: Neutral
Actor152: brl3 Actor152: brl3
Location: 157,66 Location: 157,66
@@ -1158,9 +1107,6 @@ Actors:
Actor244: e1 Actor244: e1
Location: 160,60 Location: 160,60
Owner: Soviets Owner: Soviets
Actor245: fenc
Location: 63,33
Owner: Soviets
Actor206: fenc Actor206: fenc
Location: 158,53 Location: 158,53
Owner: Soviets Owner: Soviets
@@ -1206,220 +1152,242 @@ Actors:
Actor202: fenc Actor202: fenc
Location: 147,69 Location: 147,69
Owner: Soviets Owner: Soviets
Actor258: fenc
Location: 63,34
Owner: Soviets
Actor259: fenc
Location: 63,35
Owner: Soviets
Actor260: fenc
Location: 63,36
Owner: Soviets
Actor261: fenc
Location: 64,36
Owner: Soviets
Actor262: fenc
Location: 64,37
Owner: Soviets
Actor263: fenc
Location: 65,37
Owner: Soviets
Actor265: fenc
Location: 66,37
Owner: Soviets
Actor266: fenc
Location: 66,38
Owner: Soviets
Actor270: fenc
Location: 66,39
Owner: Soviets
Actor272: fenc
Location: 66,40
Owner: Soviets
Actor275: fenc
Location: 66,41
Owner: Soviets
Actor276: fenc
Location: 65,41
Owner: Soviets
Actor277: fenc
Location: 64,41
Owner: Soviets
Actor281: fenc
Location: 64,42
Owner: Soviets
Actor282: ftur
Location: 68,38
Owner: Soviets
Actor285: e1
Location: 67,41
Owner: Soviets
Actor286: e1
Location: 68,35
Owner: Soviets
Actor288: e2
Location: 64,34
Owner: Soviets
Actor290: dog
Location: 67,42
Owner: Soviets
Actor292: e2 Actor292: e2
Location: 165,59 Location: 165,59
Owner: Soviets Owner: Soviets
Actor293: fenc Actor232: t01
Location: 61,63 Location: 72,43
Owner: Soviets
Actor297: fenc
Location: 61,65
Owner: Soviets
Actor299: fenc
Location: 62,65
Owner: Soviets
Actor300: fenc
Location: 62,66
Owner: Soviets
Actor294: fenc
Location: 61,64
Owner: Soviets
Actor308: dog
Location: 61,67
Owner: Soviets
Actor304: fenc
Location: 62,70
Owner: Soviets
Actor305: fenc
Location: 62,71
Owner: Soviets
Actor306: fenc
Location: 62,72
Owner: Soviets
Actor301: ftur
Location: 64,66
Owner: Soviets
Actor309: e1
Location: 63,69
Owner: Soviets
Actor311: e1
Location: 62,67
Owner: Soviets
Actor313: ftur
Location: 130,29
Owner: Soviets
Actor318: v02
Location: 91,54
Owner: Neutral Owner: Neutral
Actor317: v01.sniper Actor224: tc02
Location: 96,54 Location: 58,46
Owner: Soviets
Actor316: e1
Location: 130,31
Owner: Soviets
Actor319: fenc
Location: 127,27
Owner: Soviets
Actor324: fenc
Location: 127,28
Owner: Soviets
Actor325: fenc
Location: 127,29
Owner: Soviets
Actor328: fenc
Location: 127,30
Owner: Soviets
Actor330: v04
Location: 101,54
Owner: Neutral Owner: Neutral
Actor332: v05 Actor170: mine
Location: 102,51 Location: 114,55
Owner: Neutral Owner: Neutral
Actor334: v06 Actor169: mine
Location: 91,60 Location: 113,57
Owner: Neutral
Actor336: v04
Location: 87,56
Owner: Neutral
Actor337: v07
Location: 106,55
Owner: Neutral
Actor339: v09
Location: 92,53
Owner: Neutral
Actor340: v10
Location: 94,53
Owner: Neutral
Actor341: wood
Location: 100,49
Owner: Neutral
Actor342: wood
Location: 99,49
Owner: Neutral
Actor343: wood
Location: 98,49
Owner: Neutral
Actor344: wood
Location: 97,49
Owner: Neutral
Actor347: wood
Location: 96,49
Owner: Neutral
Actor348: wood
Location: 95,49
Owner: Neutral
Actor349: wood
Location: 94,49
Owner: Neutral
Actor351: wood
Location: 93,49
Owner: Neutral
Actor353: wood
Location: 92,49
Owner: Neutral
Actor355: wood
Location: 91,49
Owner: Neutral
Actor358: v17
Location: 91,62
Owner: Neutral
Actor357: tc05
Location: 88,48
Owner: Neutral Owner: Neutral
Allies2MovePoint: waypoint Allies2MovePoint: waypoint
Location: 167,38 Location: 167,38
Owner: Neutral Owner: Neutral
Actor359: powr
Location: 104,4
Owner: Soviets
Actor361: powr
Location: 106,4
Owner: Soviets
Actor362: powr
Location: 104,7
Owner: Soviets
Actor413: powr
Location: 106,7
Owner: Soviets
Actor414: e1
Location: 98,58
Owner: Soviets
Actor415: e1
Location: 90,56
Owner: Soviets
Actor416: dog
Location: 97,57
Owner: Soviets
Actor417: e1
Location: 98,52
Owner: Soviets
Actor3: silo Actor3: silo
Location: 172,59 Location: 172,59
Owner: Soviets Owner: Soviets
Actor33: kenn Actor33: kenn
Location: 162,67 Location: 162,67
Owner: Soviets Owner: Soviets
SovietEntryPoint6: waypoint
Location: 53,79
Owner: Neutral
SovietRallyPoint6: waypoint
Location: 53,75
Owner: Neutral
Actor171: mine
Location: 168,73
Owner: Neutral
Actor176: brl3
Location: 84,51
Owner: Neutral
Actor172: t10
Location: 61,50
Owner: Neutral
Actor256: barl
Location: 88,56
Owner: Neutral
Actor255: barl
Location: 87,51
Owner: Neutral
Actor44: t11
Location: 57,54
Owner: Neutral
Actor249: t11
Location: 98,58
Owner: Neutral
Actor245: tc05
Location: 106,43
Owner: Neutral
Actor179: barl
Location: 84,52
Owner: Neutral
Actor236: brl3
Location: 87,55
Owner: Neutral
Actor258: brl3
Location: 88,51
Owner: Neutral
Actor212: oilb
Location: 86,56
Owner: Neutral
Actor174: brl3
Location: 84,55
Owner: Neutral
Actor175: barl
Location: 83,55
Owner: Neutral
Actor173: oilb
Location: 82,56
Owner: Neutral
Actor56: oilb
Location: 82,52
Owner: Neutral
Actor180: v01.sniper
Location: 100,29
Owner: Soviets
Actor218: v03
Location: 90,30
Owner: Neutral
Actor243: v02
Location: 95,30
Owner: Neutral
Actor247: v04
Location: 102,30
Owner: Neutral
Actor250: v07
Location: 104,33
Owner: Neutral
Actor252: v13
Location: 101,33
Owner: Neutral
Actor251: truk
Location: 105,30
Owner: Neutral
Actor259: v18
Location: 105,28
Owner: Neutral
Actor260: v09
Location: 110,30
Owner: Neutral
Actor261: v08
Location: 109,33
Owner: Neutral
Actor262: v17
Location: 104,28
Owner: Neutral
Actor263: e1
Location: 108,34
Owner: Soviets
Actor265: e1
Location: 97,30
Owner: Soviets
Actor266: e1
Location: 92,34
Owner: Soviets
Actor270: e2
Location: 102,33
Owner: Soviets
Actor272: e3
Location: 94,30
Owner: Soviets
Actor275: e3
Location: 100,31
Owner: Soviets
Actor276: 3tnk
Location: 107,30
Owner: Soviets
Smudges: Smudges:
Rules: Rules:
1TNK.evac:
Inherits: ^Tank
Valued:
Cost: 700
Tooltip:
Name: Light Tank
Health:
HP: 220
Armor:
Type: Heavy
Mobile:
Speed: 4
RevealsShroud:
Range: 4
Turreted:
ROT: 5
AttackTurreted:
PrimaryWeapon: 25mm
PrimaryRecoil: 2
PrimaryRecoilRecovery: 0.5
RenderUnitTurreted:
Image: 1TNK
AutoTarget:
Explodes:
Weapon: UnitExplodeSmall
EmptyWeapon: UnitExplodeSmall
LeavesHusk:
HuskActor: 1TNK.Husk
2TNK.evac:
Inherits: ^Tank
Valued:
Cost: 850
Tooltip:
Name: Medium Tank
Health:
HP: 450
Armor:
Type: Heavy
Mobile:
Speed: 4
Crushes: wall, atmine, crate, infantry
RevealsShroud:
Range: 5
Turreted:
ROT: 5
AttackTurreted:
PrimaryWeapon: 90mm
PrimaryRecoil: 3
PrimaryRecoilRecovery: 0.9
RenderUnitTurreted:
Image: 2TNK
AutoTarget:
Explodes:
Weapon: UnitExplodeSmall
EmptyWeapon: UnitExplodeSmall
LeavesHusk:
HuskActor: 2TNK.Husk
Selectable:
Bounds: 30,30
TRUK.evac:
Inherits: ^Vehicle
Valued:
Cost: 500
Tooltip:
Name: Supply Truck
Health:
HP: 110
Armor:
Type: Light
Mobile:
Speed: 4
RevealsShroud:
Range: 3
RenderUnit:
Image: TRUK
AttackMove:
JustMove: yes
JEEP.evac:
Inherits: ^Vehicle
Valued:
Cost: 500
Tooltip:
Name: Ranger
Health:
HP: 150
Armor:
Type: Light
Mobile:
Speed: 4
RevealsShroud:
Range: 8
Turreted:
ROT: 10
AttackTurreted:
PrimaryWeapon: M60mg
PrimaryOffset: 0,0,0,-2
WithMuzzleFlash:
RenderUnitTurreted:
Image: JEEP
AutoTarget:
Player: Player:
-ConquestVictoryConditions: -ConquestVictoryConditions:
World: World:
@@ -1468,9 +1436,6 @@ Rules:
MSLO: MSLO:
Buildable: Buildable:
Owner: None Owner: None
GAP:
Buildable:
Owner: None
SPEN: SPEN:
Buildable: Buildable:
Owner: None Owner: None
@@ -1492,9 +1457,6 @@ Rules:
SAM: SAM:
Buildable: Buildable:
Owner: None Owner: None
ATEK:
Buildable:
Owner: None
HPAD: HPAD:
Buildable: Buildable:
Owner: None Owner: None
@@ -1531,6 +1493,12 @@ Rules:
CTNK: CTNK:
Buildable: Buildable:
Owner: None Owner: None
MGG:
Buildable:
Queue: Vehicle
BuildPaletteOrder: 150
Prerequisites: atek
Owner: allies
Sequences: Sequences: