Rework bottom right of the Allies 02 map, move captive Engineer outside. Set Tanya's stance to ReturnFire so attack-move works.
This commit is contained in:
@@ -106,17 +106,14 @@ namespace OpenRA.Mods.RA.Missions
|
||||
{
|
||||
return;
|
||||
}
|
||||
// display current objective every so often
|
||||
if (world.FrameNumber % 1500 == 1)
|
||||
{
|
||||
DisplayObjective();
|
||||
}
|
||||
// taunt every so often
|
||||
if (world.FrameNumber % 1000 == 0)
|
||||
{
|
||||
Sound.Play(Taunts[world.SharedRandom.Next(Taunts.Length)]);
|
||||
}
|
||||
// objectives
|
||||
if (currentObjective == 0)
|
||||
{
|
||||
if (AlliesControlLab())
|
||||
|
||||
@@ -42,8 +42,6 @@ namespace OpenRA.Mods.RA.Missions
|
||||
Actor einstein;
|
||||
Actor engineer;
|
||||
|
||||
Actor engineerMiss;
|
||||
|
||||
Actor chinookHusk;
|
||||
Actor allies2BasePoint;
|
||||
Actor reinforcementsEntryPoint;
|
||||
@@ -89,8 +87,7 @@ namespace OpenRA.Mods.RA.Missions
|
||||
|
||||
const string ChinookName = "tran";
|
||||
const string SignalFlareName = "flare";
|
||||
const string EngineerName = "e6";
|
||||
const int EngineerMissClearRange = 5;
|
||||
const int EngineerSafeRange = 5;
|
||||
|
||||
void DisplayObjective()
|
||||
{
|
||||
@@ -166,10 +163,9 @@ namespace OpenRA.Mods.RA.Missions
|
||||
BuildSovietUnits();
|
||||
ManageSovietUnits();
|
||||
}
|
||||
if (!engineerMiss.Destroyed && engineer == null && AlliesControlMiss())
|
||||
if (EngineerSafe())
|
||||
{
|
||||
SpawnEngineerAtMiss();
|
||||
engineerMiss.QueueActivity(new Demolish(engineerMiss, 0));
|
||||
RescueEngineer();
|
||||
}
|
||||
if (currentObjective == 0)
|
||||
{
|
||||
@@ -387,16 +383,16 @@ namespace OpenRA.Mods.RA.Missions
|
||||
return UnitsNearActor(actor, range).Where(a => a.HasTrait<IMove>());
|
||||
}
|
||||
|
||||
bool AlliesControlMiss()
|
||||
bool EngineerSafe()
|
||||
{
|
||||
var units = ForcesNearActor(engineerMiss, EngineerMissClearRange);
|
||||
if (engineer.Destroyed) return false;
|
||||
var units = ForcesNearActor(engineer, EngineerSafeRange);
|
||||
return units.Any() && units.All(a => a.Owner == allies1);
|
||||
}
|
||||
|
||||
void SpawnEngineerAtMiss()
|
||||
void RescueEngineer()
|
||||
{
|
||||
engineer = world.CreateActor(EngineerName, new TypeDictionary { new OwnerInit(allies1), new LocationInit(engineerMiss.Location) });
|
||||
engineer.QueueActivity(new Move.Move(engineerMiss.Location + new CVec(5, 0)));
|
||||
if (!engineer.Destroyed) engineer.ChangeOwner(allies1);
|
||||
}
|
||||
|
||||
public void WorldLoaded(World w)
|
||||
@@ -419,7 +415,7 @@ namespace OpenRA.Mods.RA.Missions
|
||||
extractionLZEntryPoint = actors["ExtractionLZEntryPoint"];
|
||||
badgerEntryPoint = actors["BadgerEntryPoint"];
|
||||
badgerDropPoint = actors["BadgerDropPoint"];
|
||||
engineerMiss = actors["EngineerMiss"];
|
||||
engineer = actors["Engineer"];
|
||||
sovietBarracks = actors["SovietBarracks"];
|
||||
sovietWarFactory = actors["SovietWarFactory"];
|
||||
sovietRallyPoint = actors["SovietRallyPoint"];
|
||||
|
||||
Binary file not shown.
Binary file not shown.
@@ -1214,6 +1214,7 @@ KENN:
|
||||
Range: 4
|
||||
IronCurtainable:
|
||||
-EmitInfantryOnSell:
|
||||
-AcceptsSupplies:
|
||||
|
||||
FIX:
|
||||
Inherits: ^Building
|
||||
|
||||
Reference in New Issue
Block a user