Add easy mode to Allies 01 which is like the classic mission

This commit is contained in:
Scott_NZ
2013-01-02 02:08:10 +13:00
parent 11c45e4388
commit c836d69385
3 changed files with 43 additions and 23 deletions

View File

@@ -76,6 +76,8 @@ namespace OpenRA.Mods.RA.Missions
const string TanyaName = "e7";
const string SignalFlareName = "flare";
string difficulty;
void MissionFailed(string text)
{
if (allies.WinState != WinState.Undefined)
@@ -122,6 +124,10 @@ namespace OpenRA.Mods.RA.Missions
SendShips();
objectives[FindEinsteinID].Status = ObjectiveStatus.Completed;
objectives[ExtractEinsteinID].Status = ObjectiveStatus.InProgress;
if (difficulty == "Easy")
{
ExtractEinsteinAtLZ();
}
OnObjectivesUpdated(true);
currentAttackWaveFrameNumber = world.FrameNumber;
}
@@ -134,20 +140,23 @@ namespace OpenRA.Mods.RA.Missions
}
if (objectives[ExtractEinsteinID].Status == ObjectiveStatus.InProgress)
{
SendAttackWave();
if (world.FrameNumber >= currentAttackWaveFrameNumber + 600)
if (difficulty != "Easy")
{
Sound.Play("enmyapp1.aud");
SpawnAttackWave(AttackWave);
currentAttackWave++;
currentAttackWaveFrameNumber = world.FrameNumber;
if (currentAttackWave >= EinsteinChinookAttackWave)
SendAttackWave();
if (world.FrameNumber >= currentAttackWaveFrameNumber + 600)
{
SpawnAttackWave(LastAttackWaveAddition);
}
if (currentAttackWave == EinsteinChinookAttackWave)
{
ExtractEinsteinAtLZ();
Sound.Play("enmyapp1.aud");
SpawnAttackWave(AttackWave);
currentAttackWave++;
currentAttackWaveFrameNumber = world.FrameNumber;
if (currentAttackWave >= EinsteinChinookAttackWave)
{
SpawnAttackWave(LastAttackWaveAddition);
}
if (currentAttackWave == EinsteinChinookAttackWave)
{
ExtractEinsteinAtLZ();
}
}
}
if (einsteinChinook != null)
@@ -306,8 +315,13 @@ namespace OpenRA.Mods.RA.Missions
public void WorldLoaded(World w)
{
world = w;
difficulty = w.LobbyInfo.GlobalSettings.Difficulty;
Game.Debug("{0} difficulty selected".F(difficulty));
allies = w.Players.Single(p => p.InternalName == "Allies");
soviets = w.Players.Single(p => p.InternalName == "Soviets");
var actors = w.WorldActor.Trait<SpawnMapActors>().Actors;
insertionLZ = actors["InsertionLZ"];
extractionLZ = actors["ExtractionLZ"];
@@ -320,9 +334,11 @@ namespace OpenRA.Mods.RA.Missions
attackEntryPoint1 = actors["SovietAttackEntryPoint1"];
attackEntryPoint2 = actors["SovietAttackEntryPoint2"];
SetAlliedUnitsToDefensiveStance();
var alliesRes = allies.PlayerActor.Trait<PlayerResources>();
alliesRes.TakeCash(alliesRes.Cash);
alliesRes.TakeOre(alliesRes.Ore);
Game.MoveViewport(insertionLZ.Location.ToFloat2());
Media.PlayFMVFullscreen(w, "ally1.vqa", () =>
{