diff --git a/OpenRA.Mods.Common/Widgets/Logic/Lobby/LobbyMapPreviewLogic.cs b/OpenRA.Mods.Common/Widgets/Logic/Lobby/LobbyMapPreviewLogic.cs index a73adff1e3..a1600a8e09 100644 --- a/OpenRA.Mods.Common/Widgets/Logic/Lobby/LobbyMapPreviewLogic.cs +++ b/OpenRA.Mods.Common/Widgets/Logic/Lobby/LobbyMapPreviewLogic.cs @@ -16,6 +16,10 @@ namespace OpenRA.Mods.Common.Widgets.Logic { public class LobbyMapPreviewLogic : ChromeLogic { + readonly int blinkTickLength = 10; + bool installHighlighted; + int blinkTick; + [ObjectCreator.UseCtor] internal LobbyMapPreviewLogic(Widget widget, OrderManager orderManager, LobbyLogic lobby) { @@ -93,7 +97,10 @@ namespace OpenRA.Mods.Common.Widgets.Logic var install = download.GetOrNull("MAP_INSTALL"); if (install != null) + { install.OnClick = () => lobby.Map.Install(); + install.IsHighlighted = () => installHighlighted; + } } var progress = widget.GetOrNull("MAP_PROGRESS"); @@ -169,5 +176,14 @@ namespace OpenRA.Mods.Common.Widgets.Logic } } } + + public override void Tick() + { + if (++blinkTick >= blinkTickLength) + { + installHighlighted ^= true; + blinkTick = 0; + } + } } }