Index: ps/trunk/binaries/data/mods/public/gui/session/hotkeys/misc.xml =================================================================== --- ps/trunk/binaries/data/mods/public/gui/session/hotkeys/misc.xml +++ ps/trunk/binaries/data/mods/public/gui/session/hotkeys/misc.xml @@ -96,4 +96,11 @@ toggleRangeOverlay("Aura"); + + + g_ShowAllStatusBars = !g_ShowAllStatusBars; + recalculateStatusBarDisplay(); + + + Index: ps/trunk/binaries/data/mods/public/gui/session/input.js =================================================================== --- ps/trunk/binaries/data/mods/public/gui/session/input.js +++ ps/trunk/binaries/data/mods/public/gui/session/input.js @@ -820,12 +820,7 @@ Engine.RewindTimeWarp(); } - if (ev.hotkey == "session.showstatusbars") - { - g_ShowAllStatusBars = (ev.type == "hotkeydown"); - recalculateStatusBarDisplay(); - } - else if (ev.hotkey == "session.highlightguarding") + if (ev.hotkey == "session.highlightguarding") { g_ShowGuarding = (ev.type == "hotkeydown"); updateAdditionalHighlight(); Index: ps/trunk/binaries/data/mods/public/gui/session/session.js =================================================================== --- ps/trunk/binaries/data/mods/public/gui/session/session.js +++ ps/trunk/binaries/data/mods/public/gui/session/session.js @@ -99,6 +99,11 @@ var lastTickTime = new Date(); /** + * Recalculate which units have their status bars shown with this frequency in milliseconds. + */ +const g_StatusBarUpdate = 200; + +/** * Not constant as we add "gaia". */ var g_CivData = {}; @@ -722,7 +727,7 @@ return; let now = new Date(); - let tickLength = new Date() - lastTickTime; + let tickLength = now - lastTickTime; lastTickTime = now; handleNetMessages(); @@ -739,13 +744,15 @@ if (Engine.GetPlayerID() != -1) Engine.GuiInterfaceCall("DisplayRallyPoint", { "entities": g_Selection.toList() }); } + else if (g_ShowAllStatusBars && now % g_StatusBarUpdate <= tickLength) + recalculateStatusBarDisplay(); updateTimers(); updateMenuPosition(tickLength); // When training is blocked, flash population (alternates color every 500msec) - Engine.GetGUIObjectByName("resourcePop").textcolor = g_IsTrainingBlocked && Date.now() % 1000 < 500 ? g_PopulationAlertColor : g_DefaultPopulationColor; + Engine.GetGUIObjectByName("resourcePop").textcolor = g_IsTrainingBlocked && now % 1000 < 500 ? g_PopulationAlertColor : g_DefaultPopulationColor; Engine.GuiInterfaceCall("ClearRenamedEntities"); }