Chinook timer
This commit is contained in:
@@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user