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:
Scott_NZ
2012-09-09 14:08:11 +12:00
parent ff0ad9cb41
commit e5ab56e843
5 changed files with 10 additions and 16 deletions

View File

@@ -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"];