Chinook timer

This commit is contained in:
Scott_NZ
2012-08-11 13:03:50 +12:00
parent ffd2588f50
commit c9318cd2dd

View File

@@ -87,7 +87,7 @@ namespace OpenRA.Mods.RA.Missions
{ {
currentObjective++; currentObjective++;
DisplayObjective(); DisplayObjective();
StartReinforcementsTimer(); StartChinookTimer();
} }
} }
else if (currentObjective == 1) else if (currentObjective == 1)
@@ -105,22 +105,39 @@ namespace OpenRA.Mods.RA.Missions
CountdownTimerWidget reinforcementsTimer; CountdownTimerWidget reinforcementsTimer;
const string ReinforcementsTimerHeader = "Reinforcements arrive in"; const string ReinforcementsTimerHeader = "Reinforcements arrive in";
const int ReinforcementsTimerTicks = 18000; const int ReinforcementsTimerTicks = 1500 * 12;
static readonly float2 reinforcementsTimerPosition = new float2(96, 64); static readonly float2 reinforcementsTimerPosition = new float2(128, 64);
static readonly string[] reinforcements = { "1tnk", "1tnk", "jeep", "mcv" }; 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() void StartReinforcementsTimer()
{ {
reinforcementsTimer.IsVisible = () => true; reinforcementsTimer.IsVisible = () => true;
Sound.Play("timergo1.aud"); Sound.Play("timergo1.aud");
} }
void TimerExpired() void StartChinookTimer()
{
chinookTimer.IsVisible = () => true;
Sound.Play("timergo1.aud");
}
void ReinforcementsTimerExpired()
{ {
reinforcementsTimer.IsVisible = () => false; reinforcementsTimer.IsVisible = () => false;
SendReinforcements(); SendReinforcements();
} }
void ChinookTimerExpired()
{
chinookTimer.IsVisible = () => false;
SendChinook();
}
void SendReinforcements() void SendReinforcements()
{ {
Sound.Play("reinfor1.aud"); Sound.Play("reinfor1.aud");
@@ -131,6 +148,11 @@ namespace OpenRA.Mods.RA.Missions
} }
} }
void SendChinook()
{
}
public void WorldLoaded(World w) public void WorldLoaded(World w)
{ {
world = w; world = w;
@@ -154,10 +176,17 @@ namespace OpenRA.Mods.RA.Missions
reinforcementsTimer = new CountdownTimerWidget(ReinforcementsTimerHeader, ReinforcementsTimerTicks, reinforcementsTimerPosition) reinforcementsTimer = new CountdownTimerWidget(ReinforcementsTimerHeader, ReinforcementsTimerTicks, reinforcementsTimerPosition)
{ {
IsVisible = () => false, IsVisible = () => false,
OnExpired = TimerExpired OnExpired = ReinforcementsTimerExpired
}; };
Ui.Root.AddChild(reinforcementsTimer); 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()); 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 string Header { get; set; }
public int TicksLeft { get; set; } public int TicksLeft { get; set; }
public float2 Position { get; set; } public float2 Position { get; set; }
int ticks;
public CountdownTimerWidget(string header, int ticksLeft, float2 position) public CountdownTimerWidget(string header, int ticksLeft, float2 position)
{ {
@@ -201,7 +229,6 @@ namespace OpenRA.Mods.RA.Missions
{ {
return; return;
} }
ticks++;
if (TicksLeft > 0) if (TicksLeft > 0)
{ {
TicksLeft--; TicksLeft--;
@@ -229,7 +256,7 @@ namespace OpenRA.Mods.RA.Missions
} }
var font = Game.Renderer.Fonts["Bold"]; var font = Game.Renderer.Fonts["Bold"];
var text = "{0}: {1}".F(Header, WidgetUtils.FormatTime(TicksLeft)); 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);
} }
} }
} }