Tank wave at 11 minutes, just before the reinforcements arrive
This commit is contained in:
@@ -69,6 +69,7 @@ namespace OpenRA.Mods.RA.Missions
|
|||||||
Actor parabombPoint;
|
Actor parabombPoint;
|
||||||
Actor sovietRallyPoint;
|
Actor sovietRallyPoint;
|
||||||
Actor flamersEntryPoint;
|
Actor flamersEntryPoint;
|
||||||
|
Actor tanksEntryPoint;
|
||||||
Actor townPoint;
|
Actor townPoint;
|
||||||
Actor sovietTownAttackPoint1;
|
Actor sovietTownAttackPoint1;
|
||||||
Actor sovietTownAttackPoint2;
|
Actor sovietTownAttackPoint2;
|
||||||
@@ -110,6 +111,9 @@ namespace OpenRA.Mods.RA.Missions
|
|||||||
static readonly string[] Flamers = { "e4", "e4", "e4", "e4", "e4" };
|
static readonly string[] Flamers = { "e4", "e4", "e4", "e4", "e4" };
|
||||||
const string ApcName = "apc";
|
const string ApcName = "apc";
|
||||||
|
|
||||||
|
const int TanksTicks = 1500 * 11;
|
||||||
|
static readonly string[] Tanks = { "3tnk", "3tnk", "3tnk", "3tnk", "3tnk", "3tnk", "3tnk", "3tnk" };
|
||||||
|
|
||||||
const string SignalFlareName = "flare";
|
const string SignalFlareName = "flare";
|
||||||
|
|
||||||
const int AlliedTownTransferRange = 15;
|
const int AlliedTownTransferRange = 15;
|
||||||
@@ -176,6 +180,10 @@ namespace OpenRA.Mods.RA.Missions
|
|||||||
{
|
{
|
||||||
RushSovietFlamers();
|
RushSovietFlamers();
|
||||||
}
|
}
|
||||||
|
if (world.FrameNumber == TanksTicks)
|
||||||
|
{
|
||||||
|
RushSovietTanks();
|
||||||
|
}
|
||||||
if (world.FrameNumber == ParabombTicks)
|
if (world.FrameNumber == ParabombTicks)
|
||||||
{
|
{
|
||||||
MissionUtils.Parabomb(world, soviets, badgerEntryPoint.Location, parabombPoint.Location);
|
MissionUtils.Parabomb(world, soviets, badgerEntryPoint.Location, parabombPoint.Location);
|
||||||
@@ -217,12 +225,14 @@ namespace OpenRA.Mods.RA.Missions
|
|||||||
if (einsteinChinook.Destroyed)
|
if (einsteinChinook.Destroyed)
|
||||||
{
|
{
|
||||||
objectives[ExtractEinsteinID].Status = ObjectiveStatus.Failed;
|
objectives[ExtractEinsteinID].Status = ObjectiveStatus.Failed;
|
||||||
|
objectives[MaintainPresenceID].Status = ObjectiveStatus.Failed;
|
||||||
ObjectivesUpdated();
|
ObjectivesUpdated();
|
||||||
MissionFailed("The extraction helicopter was destroyed.");
|
MissionFailed("The extraction helicopter was destroyed.");
|
||||||
}
|
}
|
||||||
else if (!world.Map.IsInMap(einsteinChinook.Location) && einsteinChinook.Trait<Cargo>().Passengers.Contains(einstein))
|
else if (!world.Map.IsInMap(einsteinChinook.Location) && einsteinChinook.Trait<Cargo>().Passengers.Contains(einstein))
|
||||||
{
|
{
|
||||||
objectives[ExtractEinsteinID].Status = ObjectiveStatus.Completed;
|
objectives[ExtractEinsteinID].Status = ObjectiveStatus.Completed;
|
||||||
|
objectives[MaintainPresenceID].Status = ObjectiveStatus.Completed;
|
||||||
ObjectivesUpdated();
|
ObjectivesUpdated();
|
||||||
MissionAccomplished("Einstein was rescued.");
|
MissionAccomplished("Einstein was rescued.");
|
||||||
}
|
}
|
||||||
@@ -286,7 +296,7 @@ namespace OpenRA.Mods.RA.Missions
|
|||||||
foreach (var unit in idleSovietUnitsAtRP)
|
foreach (var unit in idleSovietUnitsAtRP)
|
||||||
{
|
{
|
||||||
unit.Trait<Mobile>().Nudge(unit, unit, true);
|
unit.Trait<Mobile>().Nudge(unit, unit, true);
|
||||||
unit.QueueActivity(new AttackMove.AttackMoveActivity(unit, new Move.Move(closestAlliedBuilding.Location, 3)));
|
unit.QueueActivity(new AttackMove.AttackMoveActivity(unit, new Attack(Target.FromActor(closestAlliedBuilding), 3)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -297,7 +307,7 @@ namespace OpenRA.Mods.RA.Missions
|
|||||||
var closestAlliedBuilding = ClosestAlliedBuilding(unit, 40);
|
var closestAlliedBuilding = ClosestAlliedBuilding(unit, 40);
|
||||||
if (closestAlliedBuilding != null)
|
if (closestAlliedBuilding != null)
|
||||||
{
|
{
|
||||||
unit.QueueActivity(new AttackMove.AttackMoveActivity(unit, new Move.Move(closestAlliedBuilding.Location, 3)));
|
unit.QueueActivity(new AttackMove.AttackMoveActivity(unit, new Attack(Target.FromActor(closestAlliedBuilding), 3)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -343,6 +353,24 @@ namespace OpenRA.Mods.RA.Missions
|
|||||||
Ui.Root.AddChild(reinforcementsTimerWidget);
|
Ui.Root.AddChild(reinforcementsTimerWidget);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void RushSovietTanks()
|
||||||
|
{
|
||||||
|
var closestAlliedBuilding = ClosestAlliedBuilding(badgerDropPoint1, 40);
|
||||||
|
if (closestAlliedBuilding == null)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
foreach (var tank in Tanks)
|
||||||
|
{
|
||||||
|
var unit = world.CreateActor(tank, new TypeDictionary
|
||||||
|
{
|
||||||
|
new OwnerInit(soviets),
|
||||||
|
new LocationInit(tanksEntryPoint.Location)
|
||||||
|
});
|
||||||
|
unit.QueueActivity(new AttackMove.AttackMoveActivity(unit, new Attack(Target.FromActor(closestAlliedBuilding), 3)));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void RushSovietFlamers()
|
void RushSovietFlamers()
|
||||||
{
|
{
|
||||||
var closestAlliedBuilding = ClosestAlliedBuilding(badgerDropPoint1, 40);
|
var closestAlliedBuilding = ClosestAlliedBuilding(badgerDropPoint1, 40);
|
||||||
@@ -446,6 +474,7 @@ namespace OpenRA.Mods.RA.Missions
|
|||||||
sovietWarFactory = actors["SovietWarFactory"];
|
sovietWarFactory = actors["SovietWarFactory"];
|
||||||
sovietRallyPoint = actors["SovietRallyPoint"];
|
sovietRallyPoint = actors["SovietRallyPoint"];
|
||||||
flamersEntryPoint = actors["FlamersEntryPoint"];
|
flamersEntryPoint = actors["FlamersEntryPoint"];
|
||||||
|
tanksEntryPoint = actors["TanksEntryPoint"];
|
||||||
townPoint = actors["TownPoint"];
|
townPoint = actors["TownPoint"];
|
||||||
sovietTownAttackPoint1 = actors["SovietTownAttackPoint1"];
|
sovietTownAttackPoint1 = actors["SovietTownAttackPoint1"];
|
||||||
sovietTownAttackPoint2 = actors["SovietTownAttackPoint2"];
|
sovietTownAttackPoint2 = actors["SovietTownAttackPoint2"];
|
||||||
|
|||||||
@@ -2261,6 +2261,9 @@ Actors:
|
|||||||
ParabombPoint: waypoint
|
ParabombPoint: waypoint
|
||||||
Location: 38,107
|
Location: 38,107
|
||||||
Owner: Neutral
|
Owner: Neutral
|
||||||
|
TanksEntryPoint: waypoint
|
||||||
|
Location: 16,86
|
||||||
|
Owner: Neutral
|
||||||
|
|
||||||
Smudges:
|
Smudges:
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user