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

@@ -106,17 +106,14 @@ namespace OpenRA.Mods.RA.Missions
{ {
return; return;
} }
// display current objective every so often
if (world.FrameNumber % 1500 == 1) if (world.FrameNumber % 1500 == 1)
{ {
DisplayObjective(); DisplayObjective();
} }
// taunt every so often
if (world.FrameNumber % 1000 == 0) if (world.FrameNumber % 1000 == 0)
{ {
Sound.Play(Taunts[world.SharedRandom.Next(Taunts.Length)]); Sound.Play(Taunts[world.SharedRandom.Next(Taunts.Length)]);
} }
// objectives
if (currentObjective == 0) if (currentObjective == 0)
{ {
if (AlliesControlLab()) if (AlliesControlLab())

View File

@@ -42,8 +42,6 @@ namespace OpenRA.Mods.RA.Missions
Actor einstein; Actor einstein;
Actor engineer; Actor engineer;
Actor engineerMiss;
Actor chinookHusk; Actor chinookHusk;
Actor allies2BasePoint; Actor allies2BasePoint;
Actor reinforcementsEntryPoint; Actor reinforcementsEntryPoint;
@@ -89,8 +87,7 @@ namespace OpenRA.Mods.RA.Missions
const string ChinookName = "tran"; const string ChinookName = "tran";
const string SignalFlareName = "flare"; const string SignalFlareName = "flare";
const string EngineerName = "e6"; const int EngineerSafeRange = 5;
const int EngineerMissClearRange = 5;
void DisplayObjective() void DisplayObjective()
{ {
@@ -166,10 +163,9 @@ namespace OpenRA.Mods.RA.Missions
BuildSovietUnits(); BuildSovietUnits();
ManageSovietUnits(); ManageSovietUnits();
} }
if (!engineerMiss.Destroyed && engineer == null && AlliesControlMiss()) if (EngineerSafe())
{ {
SpawnEngineerAtMiss(); RescueEngineer();
engineerMiss.QueueActivity(new Demolish(engineerMiss, 0));
} }
if (currentObjective == 0) if (currentObjective == 0)
{ {
@@ -387,16 +383,16 @@ namespace OpenRA.Mods.RA.Missions
return UnitsNearActor(actor, range).Where(a => a.HasTrait<IMove>()); 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); 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) }); if (!engineer.Destroyed) engineer.ChangeOwner(allies1);
engineer.QueueActivity(new Move.Move(engineerMiss.Location + new CVec(5, 0)));
} }
public void WorldLoaded(World w) public void WorldLoaded(World w)
@@ -419,7 +415,7 @@ namespace OpenRA.Mods.RA.Missions
extractionLZEntryPoint = actors["ExtractionLZEntryPoint"]; extractionLZEntryPoint = actors["ExtractionLZEntryPoint"];
badgerEntryPoint = actors["BadgerEntryPoint"]; badgerEntryPoint = actors["BadgerEntryPoint"];
badgerDropPoint = actors["BadgerDropPoint"]; badgerDropPoint = actors["BadgerDropPoint"];
engineerMiss = actors["EngineerMiss"]; engineer = actors["Engineer"];
sovietBarracks = actors["SovietBarracks"]; sovietBarracks = actors["SovietBarracks"];
sovietWarFactory = actors["SovietWarFactory"]; sovietWarFactory = actors["SovietWarFactory"];
sovietRallyPoint = actors["SovietRallyPoint"]; sovietRallyPoint = actors["SovietRallyPoint"];

Binary file not shown.

Binary file not shown.

View File

@@ -1214,6 +1214,7 @@ KENN:
Range: 4 Range: 4
IronCurtainable: IronCurtainable:
-EmitInfantryOnSell: -EmitInfantryOnSell:
-AcceptsSupplies:
FIX: FIX:
Inherits: ^Building Inherits: ^Building