Campaign: reduce failed/accomplished code duplication

This commit is contained in:
Scott_NZ
2013-01-20 19:45:49 +13:00
parent dfc4b07b1a
commit 031240ffc1
6 changed files with 54 additions and 101 deletions

View File

@@ -94,28 +94,12 @@ namespace OpenRA.Mods.RA.Missions
void MissionFailed(string text)
{
if (allies1.WinState != WinState.Undefined)
{
return;
}
allies1.WinState = allies2.WinState = WinState.Lost;
foreach (var actor in world.Actors.Where(a => a.IsInWorld && (a.Owner == allies1 || a.Owner == allies2) && !a.IsDead()))
{
actor.Kill(actor);
}
Game.AddChatLine(Color.Red, "Mission failed", text);
Sound.Play("misnlst1.aud");
MissionUtils.CoopMissionFailed(world, text, allies1, allies2);
}
void MissionAccomplished(string text)
{
if (allies1.WinState != WinState.Undefined)
{
return;
}
allies1.WinState = allies2.WinState = WinState.Won;
Game.AddChatLine(Color.Blue, "Mission accomplished", text);
Sound.Play("misnwon1.aud");
MissionUtils.CoopMissionAccomplished(world, text, allies1, allies2);
}
public void Tick(Actor self)