Only play movies in Allies 01 and Soviet 01 Classic if there's one client

This commit is contained in:
Scott_NZ
2013-01-15 17:43:39 +13:00
parent a88a7d9834
commit 1da2d89ced
5 changed files with 46 additions and 10 deletions

View File

@@ -340,15 +340,25 @@ namespace OpenRA.Mods.RA.Missions
alliesRes.TakeOre(alliesRes.Ore); alliesRes.TakeOre(alliesRes.Ore);
Game.MoveViewport(insertionLZ.Location.ToFloat2()); Game.MoveViewport(insertionLZ.Location.ToFloat2());
Media.PlayFMVFullscreen(w, "ally1.vqa", () =>
if (MissionUtils.IsSingleClient(world))
{ {
Media.PlayFMVFullscreen(w, "landing.vqa", () => Media.PlayFMVFullscreen(w, "ally1.vqa", () =>
{ {
InsertTanyaAtLZ(); Media.PlayFMVFullscreen(w, "landing.vqa", () =>
SendPatrol(); {
MissionUtils.PlayMissionMusic(); InsertTanyaAtLZ();
SendPatrol();
MissionUtils.PlayMissionMusic();
});
}); });
}); }
else
{
InsertTanyaAtLZ();
SendPatrol();
MissionUtils.PlayMissionMusic();
}
} }
} }
} }

View File

@@ -517,6 +517,7 @@ namespace OpenRA.Mods.RA.Missions
public void WorldLoaded(World w) public void WorldLoaded(World w)
{ {
world = w; world = w;
allies1 = w.Players.Single(p => p.InternalName == "Allies1"); allies1 = w.Players.Single(p => p.InternalName == "Allies1");
allies2 = w.Players.SingleOrDefault(p => p.InternalName == "Allies2"); allies2 = w.Players.SingleOrDefault(p => p.InternalName == "Allies2");
if (allies2 == null) if (allies2 == null)
@@ -525,6 +526,7 @@ namespace OpenRA.Mods.RA.Missions
} }
allies = w.Players.Single(p => p.InternalName == "Allies"); allies = w.Players.Single(p => p.InternalName == "Allies");
soviets = w.Players.Single(p => p.InternalName == "Soviets"); soviets = w.Players.Single(p => p.InternalName == "Soviets");
var actors = w.WorldActor.Trait<SpawnMapActors>().Actors; var actors = w.WorldActor.Trait<SpawnMapActors>().Actors;
sam1 = actors["SAM1"]; sam1 = actors["SAM1"];
sam2 = actors["SAM2"]; sam2 = actors["SAM2"];
@@ -555,12 +557,15 @@ namespace OpenRA.Mods.RA.Missions
sovietTownAttackPoint2 = actors["SovietTownAttackPoint2"]; sovietTownAttackPoint2 = actors["SovietTownAttackPoint2"];
yakEntryPoint = actors["YakEntryPoint"]; yakEntryPoint = actors["YakEntryPoint"];
yakAttackPoint = actors["YakAttackPoint"]; yakAttackPoint = actors["YakAttackPoint"];
SetupAlliedBase(actors); SetupAlliedBase(actors);
var shroud = w.WorldActor.Trait<Shroud>(); var shroud = w.WorldActor.Trait<Shroud>();
shroud.Explore(w, sam1.Location, 2); shroud.Explore(w, sam1.Location, 2);
shroud.Explore(w, sam2.Location, 2); shroud.Explore(w, sam2.Location, 2);
shroud.Explore(w, sam3.Location, 2); shroud.Explore(w, sam3.Location, 2);
shroud.Explore(w, sam4.Location, 2); shroud.Explore(w, sam4.Location, 2);
if (w.LocalPlayer == null || w.LocalPlayer == allies1) if (w.LocalPlayer == null || w.LocalPlayer == allies1)
{ {
Game.MoveViewport(chinookHusk.Location.ToFloat2()); Game.MoveViewport(chinookHusk.Location.ToFloat2());
@@ -569,6 +574,7 @@ namespace OpenRA.Mods.RA.Missions
{ {
Game.MoveViewport(allies2BasePoint.Location.ToFloat2()); Game.MoveViewport(allies2BasePoint.Location.ToFloat2());
} }
MissionUtils.PlayMissionMusic(); MissionUtils.PlayMissionMusic();
} }

View File

@@ -17,7 +17,6 @@ using OpenRA.Mods.RA.Activities;
using OpenRA.Mods.RA.Air; using OpenRA.Mods.RA.Air;
using OpenRA.Mods.RA.Buildings; using OpenRA.Mods.RA.Buildings;
using OpenRA.Mods.RA.Move; using OpenRA.Mods.RA.Move;
using OpenRA.Network;
using OpenRA.Traits; using OpenRA.Traits;
using OpenRA.Widgets; using OpenRA.Widgets;
@@ -437,6 +436,7 @@ namespace OpenRA.Mods.RA.Missions
allies = w.Players.Single(p => p.InternalName == "Allies"); allies = w.Players.Single(p => p.InternalName == "Allies");
soviets = w.Players.Single(p => p.InternalName == "Soviets"); soviets = w.Players.Single(p => p.InternalName == "Soviets");
var actors = w.WorldActor.Trait<SpawnMapActors>().Actors; var actors = w.WorldActor.Trait<SpawnMapActors>().Actors;
exit1TopLeft = actors["Exit1TopLeft"]; exit1TopLeft = actors["Exit1TopLeft"];
exit1BottomRight = actors["Exit1BottomRight"]; exit1BottomRight = actors["Exit1BottomRight"];
@@ -466,6 +466,7 @@ namespace OpenRA.Mods.RA.Missions
var topLeft = actors["ParadropBoxTopLeft"]; var topLeft = actors["ParadropBoxTopLeft"];
var bottomRight = actors["ParadropBoxBottomRight"]; var bottomRight = actors["ParadropBoxBottomRight"];
paradropBox = new Rectangle(topLeft.Location.X, topLeft.Location.Y, bottomRight.Location.X - topLeft.Location.X, bottomRight.Location.Y - topLeft.Location.Y); paradropBox = new Rectangle(topLeft.Location.X, topLeft.Location.Y, bottomRight.Location.X - topLeft.Location.X, bottomRight.Location.Y - topLeft.Location.Y);
if (w.LocalPlayer == null || w.LocalPlayer == allies1) if (w.LocalPlayer == null || w.LocalPlayer == allies1)
{ {
Game.MoveViewport(allies1EntryPoint.Location.ToFloat2()); Game.MoveViewport(allies1EntryPoint.Location.ToFloat2());
@@ -474,6 +475,7 @@ namespace OpenRA.Mods.RA.Missions
{ {
Game.MoveViewport(allies2EntryPoint.Location.ToFloat2()); Game.MoveViewport(allies2EntryPoint.Location.ToFloat2());
} }
OnObjectivesUpdated(false); OnObjectivesUpdated(false);
MissionUtils.PlayMissionMusic(); MissionUtils.PlayMissionMusic();
} }

View File

@@ -143,6 +143,11 @@ namespace OpenRA.Mods.RA.Missions
return world.Actors.FirstOrDefault(a => a.HasTrait<Cargo>() && a.Trait<Cargo>().Passengers.Contains(actor)); return world.Actors.FirstOrDefault(a => a.HasTrait<Cargo>() && a.Trait<Cargo>().Passengers.Contains(actor));
} }
public static bool IsSingleClient(World world)
{
return world.LobbyInfo.Clients.Count() == 1;
}
public static void PlayMissionMusic() public static void PlayMissionMusic()
{ {
if (!Rules.InstalledMusic.Any()) return; if (!Rules.InstalledMusic.Any()) return;

View File

@@ -150,8 +150,10 @@ namespace OpenRA.Mods.RA.Missions
public void WorldLoaded(World w) public void WorldLoaded(World w)
{ {
world = w; world = w;
ussr = w.Players.Single(p => p.InternalName == "USSR"); ussr = w.Players.Single(p => p.InternalName == "USSR");
france = w.Players.Single(p => p.InternalName == "France"); france = w.Players.Single(p => p.InternalName == "France");
var actors = w.WorldActor.Trait<SpawnMapActors>().Actors; var actors = w.WorldActor.Trait<SpawnMapActors>().Actors;
startJeep = actors["StartJeep"]; startJeep = actors["StartJeep"];
startJeepMovePoint = actors["StartJeepMovePoint"]; startJeepMovePoint = actors["StartJeepMovePoint"];
@@ -164,13 +166,24 @@ namespace OpenRA.Mods.RA.Missions
airfield2 = actors["Airfield2"]; airfield2 = actors["Airfield2"];
airfield3 = actors["Airfield3"]; airfield3 = actors["Airfield3"];
airfields = new[] { airfield1, airfield2, airfield3 }; airfields = new[] { airfield1, airfield2, airfield3 };
Game.MoveViewport(startJeep.Location.ToFloat2()); Game.MoveViewport(startJeep.Location.ToFloat2());
Media.PlayFMVFullscreen(w, "soviet1.vqa", () =>
if (MissionUtils.IsSingleClient(world))
{
Media.PlayFMVFullscreen(w, "soviet1.vqa", () =>
{
LandYaks();
MoveJeep();
MissionUtils.PlayMissionMusic();
});
}
else
{ {
MissionUtils.PlayMissionMusic();
LandYaks(); LandYaks();
MoveJeep(); MoveJeep();
}); MissionUtils.PlayMissionMusic();
}
} }
} }