Reduce mission music code duplication
This commit is contained in:
@@ -324,35 +324,15 @@ namespace OpenRA.Mods.RA.Missions
|
|||||||
alliesRes.TakeCash(alliesRes.Cash);
|
alliesRes.TakeCash(alliesRes.Cash);
|
||||||
alliesRes.TakeOre(alliesRes.Ore);
|
alliesRes.TakeOre(alliesRes.Ore);
|
||||||
Game.MoveViewport(insertionLZ.Location.ToFloat2());
|
Game.MoveViewport(insertionLZ.Location.ToFloat2());
|
||||||
Game.ConnectionStateChanged += StopMusic;
|
|
||||||
Media.PlayFMVFullscreen(w, "ally1.vqa", () =>
|
Media.PlayFMVFullscreen(w, "ally1.vqa", () =>
|
||||||
{
|
{
|
||||||
Media.PlayFMVFullscreen(w, "landing.vqa", () =>
|
Media.PlayFMVFullscreen(w, "landing.vqa", () =>
|
||||||
{
|
{
|
||||||
InsertTanyaAtLZ();
|
InsertTanyaAtLZ();
|
||||||
SendPatrol();
|
SendPatrol();
|
||||||
PlayMusic();
|
MissionUtils.PlayMissionMusic();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
void PlayMusic()
|
|
||||||
{
|
|
||||||
if (!Rules.InstalledMusic.Any())
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
var track = Rules.InstalledMusic.Random(Game.CosmeticRandom);
|
|
||||||
Sound.PlayMusicThen(track.Value, PlayMusic);
|
|
||||||
}
|
|
||||||
|
|
||||||
void StopMusic(OrderManager orderManager)
|
|
||||||
{
|
|
||||||
if (!orderManager.GameStarted)
|
|
||||||
{
|
|
||||||
Sound.StopMusic();
|
|
||||||
Game.ConnectionStateChanged -= StopMusic;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -569,8 +569,7 @@ namespace OpenRA.Mods.RA.Missions
|
|||||||
{
|
{
|
||||||
Game.MoveViewport(allies2BasePoint.Location.ToFloat2());
|
Game.MoveViewport(allies2BasePoint.Location.ToFloat2());
|
||||||
}
|
}
|
||||||
PlayMusic();
|
MissionUtils.PlayMissionMusic();
|
||||||
Game.ConnectionStateChanged += StopMusic;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void SetupAlliedBase(Dictionary<string, Actor> actors)
|
void SetupAlliedBase(Dictionary<string, Actor> actors)
|
||||||
@@ -588,24 +587,5 @@ namespace OpenRA.Mods.RA.Missions
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
void PlayMusic()
|
|
||||||
{
|
|
||||||
if (!Rules.InstalledMusic.Any())
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
var track = Rules.InstalledMusic.Random(Game.CosmeticRandom);
|
|
||||||
Sound.PlayMusicThen(track.Value, PlayMusic);
|
|
||||||
}
|
|
||||||
|
|
||||||
void StopMusic(OrderManager orderManager)
|
|
||||||
{
|
|
||||||
if (!orderManager.GameStarted)
|
|
||||||
{
|
|
||||||
Sound.StopMusic();
|
|
||||||
Game.ConnectionStateChanged -= StopMusic;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -472,28 +472,8 @@ namespace OpenRA.Mods.RA.Missions
|
|||||||
{
|
{
|
||||||
Game.MoveViewport(allies2EntryPoint.Location.ToFloat2());
|
Game.MoveViewport(allies2EntryPoint.Location.ToFloat2());
|
||||||
}
|
}
|
||||||
PlayMusic();
|
|
||||||
OnObjectivesUpdated(false);
|
OnObjectivesUpdated(false);
|
||||||
Game.ConnectionStateChanged += StopMusic;
|
MissionUtils.PlayMissionMusic();
|
||||||
}
|
|
||||||
|
|
||||||
void PlayMusic()
|
|
||||||
{
|
|
||||||
if (!Rules.InstalledMusic.Any())
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
var track = Rules.InstalledMusic.Random(Game.CosmeticRandom);
|
|
||||||
Sound.PlayMusicThen(track.Value, PlayMusic);
|
|
||||||
}
|
|
||||||
|
|
||||||
void StopMusic(OrderManager orderManager)
|
|
||||||
{
|
|
||||||
if (!orderManager.GameStarted)
|
|
||||||
{
|
|
||||||
Sound.StopMusic();
|
|
||||||
Game.ConnectionStateChanged -= StopMusic;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -34,11 +34,12 @@ namespace OpenRA.Mods.RA.Missions
|
|||||||
Dictionary<int, Objective> objectives = new Dictionary<int, Objective>
|
Dictionary<int, Objective> objectives = new Dictionary<int, Objective>
|
||||||
{
|
{
|
||||||
{ InfiltrateID, new Objective(ObjectiveType.Primary, "", ObjectiveStatus.InProgress) },
|
{ InfiltrateID, new Objective(ObjectiveType.Primary, "", ObjectiveStatus.InProgress) },
|
||||||
{ DestroyID, new Objective(ObjectiveType.Primary, "Secure the laboratory and destroy the rest of the Soviet base. Ensure that the laboratory is not destroyed.", ObjectiveStatus.Inactive) }
|
{ DestroyID, new Objective(ObjectiveType.Primary, Destroy, ObjectiveStatus.Inactive) }
|
||||||
};
|
};
|
||||||
|
|
||||||
const int InfiltrateID = 0;
|
const int InfiltrateID = 0;
|
||||||
const int DestroyID = 1;
|
const int DestroyID = 1;
|
||||||
|
const string Destroy = "Secure the laboratory and destroy the rest of the Soviet base. Ensure that the laboratory is not destroyed.";
|
||||||
const string Infiltrate = "The Soviets are currently developing a new defensive system named the \"Iron Curtain\" at their main research laboratory. Get our {0} into the laboratory undetected.";
|
const string Infiltrate = "The Soviets are currently developing a new defensive system named the \"Iron Curtain\" at their main research laboratory. Get our {0} into the laboratory undetected.";
|
||||||
|
|
||||||
Actor lstEntryPoint;
|
Actor lstEntryPoint;
|
||||||
@@ -415,27 +416,7 @@ namespace OpenRA.Mods.RA.Missions
|
|||||||
OnObjectivesUpdated(false);
|
OnObjectivesUpdated(false);
|
||||||
SetupSubStances();
|
SetupSubStances();
|
||||||
Game.MoveViewport(lstEntryPoint.Location.ToFloat2());
|
Game.MoveViewport(lstEntryPoint.Location.ToFloat2());
|
||||||
PlayMusic();
|
MissionUtils.PlayMissionMusic();
|
||||||
Game.ConnectionStateChanged += StopMusic;
|
|
||||||
}
|
|
||||||
|
|
||||||
void PlayMusic()
|
|
||||||
{
|
|
||||||
if (!Rules.InstalledMusic.Any())
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
var track = Rules.InstalledMusic.Random(Game.CosmeticRandom);
|
|
||||||
Sound.PlayMusicThen(track.Value, PlayMusic);
|
|
||||||
}
|
|
||||||
|
|
||||||
void StopMusic(OrderManager orderManager)
|
|
||||||
{
|
|
||||||
if (!orderManager.GameStarted)
|
|
||||||
{
|
|
||||||
Sound.StopMusic();
|
|
||||||
Game.ConnectionStateChanged -= StopMusic;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -16,6 +16,7 @@ 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.Traits;
|
using OpenRA.Traits;
|
||||||
|
using OpenRA.Network;
|
||||||
|
|
||||||
namespace OpenRA.Mods.RA.Missions
|
namespace OpenRA.Mods.RA.Missions
|
||||||
{
|
{
|
||||||
@@ -141,5 +142,27 @@ 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 void PlayMissionMusic()
|
||||||
|
{
|
||||||
|
if (!Rules.InstalledMusic.Any()) return;
|
||||||
|
Game.ConnectionStateChanged += StopMusic;
|
||||||
|
PlayMusic();
|
||||||
|
}
|
||||||
|
|
||||||
|
static void PlayMusic()
|
||||||
|
{
|
||||||
|
var track = Rules.InstalledMusic.Random(Game.CosmeticRandom);
|
||||||
|
Sound.PlayMusicThen(track.Value, PlayMusic);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void StopMusic(OrderManager orderManager)
|
||||||
|
{
|
||||||
|
if (!orderManager.GameStarted)
|
||||||
|
{
|
||||||
|
Sound.StopMusic();
|
||||||
|
Game.ConnectionStateChanged -= StopMusic;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -135,32 +135,12 @@ namespace OpenRA.Mods.RA.Missions
|
|||||||
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());
|
||||||
Game.ConnectionStateChanged += StopMusic;
|
|
||||||
Media.PlayFMVFullscreen(w, "soviet1.vqa", () =>
|
Media.PlayFMVFullscreen(w, "soviet1.vqa", () =>
|
||||||
{
|
{
|
||||||
PlayMusic();
|
MissionUtils.PlayMissionMusic();
|
||||||
LandYaks();
|
LandYaks();
|
||||||
MoveJeep();
|
MoveJeep();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
void PlayMusic()
|
|
||||||
{
|
|
||||||
if (!Rules.InstalledMusic.Any())
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
var track = Rules.InstalledMusic.Random(Game.CosmeticRandom);
|
|
||||||
Sound.PlayMusicThen(track.Value, PlayMusic);
|
|
||||||
}
|
|
||||||
|
|
||||||
void StopMusic(OrderManager orderManager)
|
|
||||||
{
|
|
||||||
if (!orderManager.GameStarted)
|
|
||||||
{
|
|
||||||
Sound.StopMusic();
|
|
||||||
Game.ConnectionStateChanged -= StopMusic;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user