Make the mission actually winnable

This commit is contained in:
Scott_NZ
2012-08-11 16:58:09 +12:00
parent 0c9f39df78
commit 9ccfb2c322

View File

@@ -45,6 +45,8 @@ namespace OpenRA.Mods.RA.Missions
Actor extractionLZ; Actor extractionLZ;
Actor extractionLZExitPoint; Actor extractionLZExitPoint;
Actor einsteinChinook;
World world; World world;
Player allies1; Player allies1;
@@ -106,6 +108,10 @@ namespace OpenRA.Mods.RA.Missions
} }
else if (currentObjective == 1) else if (currentObjective == 1)
{ {
if (einsteinChinook != null && !world.Map.IsInMap(einsteinChinook.Location) && einsteinChinook.Trait<Cargo>().Passengers.Contains(einstein))
{
MissionAccomplished("Einstein was rescued.");
}
} }
if (tanya.Destroyed) if (tanya.Destroyed)
{ {
@@ -173,14 +179,14 @@ namespace OpenRA.Mods.RA.Missions
void SendChinook() void SendChinook()
{ {
var chinook = world.CreateActor(ChinookName, new TypeDictionary { new OwnerInit(allies1), new LocationInit(extractionLZEntryPoint.Location) }); einsteinChinook = world.CreateActor(ChinookName, new TypeDictionary { new OwnerInit(allies1), new LocationInit(extractionLZEntryPoint.Location) });
chinook.QueueActivity(new HeliFly(extractionLZ.CenterLocation)); einsteinChinook.QueueActivity(new HeliFly(extractionLZ.CenterLocation));
chinook.QueueActivity(new Turn(0)); einsteinChinook.QueueActivity(new Turn(0));
chinook.QueueActivity(new HeliLand(true)); einsteinChinook.QueueActivity(new HeliLand(true));
chinook.QueueActivity(new WaitFor(() => chinook.Trait<Cargo>().Passengers.Contains(einstein))); einsteinChinook.QueueActivity(new WaitFor(() => einsteinChinook.Trait<Cargo>().Passengers.Contains(einstein)));
chinook.QueueActivity(new Wait(150)); einsteinChinook.QueueActivity(new Wait(150));
chinook.QueueActivity(new HeliFly(extractionLZExitPoint.CenterLocation)); einsteinChinook.QueueActivity(new HeliFly(extractionLZExitPoint.CenterLocation));
chinook.QueueActivity(new RemoveSelf()); einsteinChinook.QueueActivity(new RemoveSelf());
} }
public void WorldLoaded(World w) public void WorldLoaded(World w)