diff --git a/OpenRA.Mods.RA/Missions/Allies02Script.cs b/OpenRA.Mods.RA/Missions/Allies02Script.cs index 1c006ddd2b..11ecdd4f86 100644 --- a/OpenRA.Mods.RA/Missions/Allies02Script.cs +++ b/OpenRA.Mods.RA/Missions/Allies02Script.cs @@ -87,7 +87,7 @@ namespace OpenRA.Mods.RA.Missions { currentObjective++; DisplayObjective(); - StartReinforcementsTimer(); + StartChinookTimer(); } } else if (currentObjective == 1) @@ -105,22 +105,39 @@ namespace OpenRA.Mods.RA.Missions CountdownTimerWidget reinforcementsTimer; const string ReinforcementsTimerHeader = "Reinforcements arrive in"; - const int ReinforcementsTimerTicks = 18000; - static readonly float2 reinforcementsTimerPosition = new float2(96, 64); + const int ReinforcementsTimerTicks = 1500 * 12; + static readonly float2 reinforcementsTimerPosition = new float2(128, 64); static readonly string[] reinforcements = { "1tnk", "1tnk", "jeep", "mcv" }; + CountdownTimerWidget chinookTimer; + const string ChinookTimerHeader = "Extraction in"; + const int ChinookTimerTicks = 1500 * 1; + static readonly float2 chinookTimerPosition = new float2(128, 96); + void StartReinforcementsTimer() { reinforcementsTimer.IsVisible = () => true; Sound.Play("timergo1.aud"); } - void TimerExpired() + void StartChinookTimer() + { + chinookTimer.IsVisible = () => true; + Sound.Play("timergo1.aud"); + } + + void ReinforcementsTimerExpired() { reinforcementsTimer.IsVisible = () => false; SendReinforcements(); } + void ChinookTimerExpired() + { + chinookTimer.IsVisible = () => false; + SendChinook(); + } + void SendReinforcements() { Sound.Play("reinfor1.aud"); @@ -131,6 +148,11 @@ namespace OpenRA.Mods.RA.Missions } } + void SendChinook() + { + + } + public void WorldLoaded(World w) { world = w; @@ -154,10 +176,17 @@ namespace OpenRA.Mods.RA.Missions reinforcementsTimer = new CountdownTimerWidget(ReinforcementsTimerHeader, ReinforcementsTimerTicks, reinforcementsTimerPosition) { IsVisible = () => false, - OnExpired = TimerExpired + OnExpired = ReinforcementsTimerExpired }; Ui.Root.AddChild(reinforcementsTimer); + chinookTimer = new CountdownTimerWidget(ChinookTimerHeader, ChinookTimerTicks, chinookTimerPosition) + { + IsVisible = () => false, + OnExpired = ChinookTimerExpired + }; + Ui.Root.AddChild(chinookTimer); Game.MoveViewport(((w.LocalPlayer ?? allies1) == allies1 ? chinookHusk.Location : allies2BasePoint.Location).ToFloat2()); + StartReinforcementsTimer(); } } @@ -166,7 +195,6 @@ namespace OpenRA.Mods.RA.Missions public string Header { get; set; } public int TicksLeft { get; set; } public float2 Position { get; set; } - int ticks; public CountdownTimerWidget(string header, int ticksLeft, float2 position) { @@ -201,7 +229,6 @@ namespace OpenRA.Mods.RA.Missions { return; } - ticks++; if (TicksLeft > 0) { TicksLeft--; @@ -229,7 +256,7 @@ namespace OpenRA.Mods.RA.Missions } var font = Game.Renderer.Fonts["Bold"]; var text = "{0}: {1}".F(Header, WidgetUtils.FormatTime(TicksLeft)); - font.DrawTextWithContrast(text, Position, TicksLeft == 0 && ticks % 60 >= 30 ? Color.Red : Color.White, Color.Black, 1); + font.DrawTextWithContrast(text, Position, TicksLeft == 0 && Game.LocalTick % 60 >= 30 ? Color.Red : Color.White, Color.Black, 1); } } }