From 7660e6dff3c968244323245b9383c0623cd78032 Mon Sep 17 00:00:00 2001 From: DanielNoord Date: Mon, 23 Nov 2020 16:32:27 +0100 Subject: [PATCH] Config option to make upgrade bar sticky (#323) Option to make Upgrade Bar sticky --- CookieMonster.js | 12 ++++++++++++ src/Config.js | 1 + src/Disp.js | 11 +++++++++++ 3 files changed, 24 insertions(+) diff --git a/CookieMonster.js b/CookieMonster.js index d1a16a8..8d71f0a 100644 --- a/CookieMonster.js +++ b/CookieMonster.js @@ -540,6 +540,7 @@ CM.ConfigData.Colors = { }, func: function() {CM.Disp.UpdateColors();} }; +CM.ConfigData.UpgradeBarFixedPos = {label: ['Upgrade Bar Fixed Position OFF', 'Upgrade Bar Fixed Positione ON'], desc: 'Lock the upgrade bar at top of the screen to prevent it from moving ofscreen when scrolling', toggle: true, func: function() {CM.Disp.ToggleUpgradeBarFixedPos();}}; CM.ConfigData.CalcWrink = {label: ['Calculate with Wrinklers OFF', 'Calculate with Wrinklers ON'], desc: 'Calculate times and average Cookies Per Second with Wrinklers', toggle: true}; CM.ConfigData.CPSMode = {label: ['Current Cookies Per Second', 'Average Cookies Per Second'], desc: 'Calculate times using current Cookies Per Second or average Cookies Per Second', toggle: false}; CM.ConfigData.AvgCPSHist = {label: ['Average CPS for past 10s', 'Average CPS for past 15s', 'Average CPS for past 30s', 'Average CPS for past 1m', 'Average CPS for past 5m', 'Average CPS for past 10m', 'Average CPS for past 15m', 'Average CPS for past 30m'], desc: 'How much time average Cookies Per Second should consider', toggle: false}; @@ -1227,6 +1228,7 @@ CM.Disp.CreateUpgradeBar = function() { CM.Disp.UpgradeBar.style.textAlign = 'center'; CM.Disp.UpgradeBar.style.fontWeight = 'bold'; CM.Disp.UpgradeBar.style.display = 'none'; + CM.Disp.UpgradeBar.style.zIndex = '21'; CM.Disp.UpgradeBar.onmouseout = function() { Game.tooltip.hide(); }; var placeholder = document.createElement('div'); @@ -1360,6 +1362,16 @@ CM.Disp.UpdateColors = function() { CM.Disp.UpdateBuildings(); // Class has been already set } +CM.Disp.ToggleUpgradeBarFixedPos = function() { + if (CM.Config.UpgradeBarFixedPos() == 1) { + CM.Disp.UpgradeBar.style.position = 'sticky'; + CM.Disp.UpgradeBar.style.top = '0px'; + } + else { + CM.Disp.UpgradeBar.style.position = ''; + } +} + CM.Disp.CreateWhiteScreen = function() { CM.Disp.WhiteScreen = document.createElement('div'); CM.Disp.WhiteScreen.id = 'CMWhiteScreen'; diff --git a/src/Config.js b/src/Config.js index 1598ebf..907a8f7 100644 --- a/src/Config.js +++ b/src/Config.js @@ -134,6 +134,7 @@ CM.ConfigData.Colors = { }, func: function() {CM.Disp.UpdateColors();} }; +CM.ConfigData.UpgradeBarFixedPos = {label: ['Upgrade Bar Fixed Position OFF', 'Upgrade Bar Fixed Positione ON'], desc: 'Lock the upgrade bar at top of the screen to prevent it from moving ofscreen when scrolling', toggle: true, func: function() {CM.Disp.ToggleUpgradeBarFixedPos();}}; CM.ConfigData.CalcWrink = {label: ['Calculate with Wrinklers OFF', 'Calculate with Wrinklers ON'], desc: 'Calculate times and average Cookies Per Second with Wrinklers', toggle: true}; CM.ConfigData.CPSMode = {label: ['Current Cookies Per Second', 'Average Cookies Per Second'], desc: 'Calculate times using current Cookies Per Second or average Cookies Per Second', toggle: false}; CM.ConfigData.AvgCPSHist = {label: ['Average CPS for past 10s', 'Average CPS for past 15s', 'Average CPS for past 30s', 'Average CPS for past 1m', 'Average CPS for past 5m', 'Average CPS for past 10m', 'Average CPS for past 15m', 'Average CPS for past 30m'], desc: 'How much time average Cookies Per Second should consider', toggle: false}; diff --git a/src/Disp.js b/src/Disp.js index fcb1d2d..a1f5f1d 100644 --- a/src/Disp.js +++ b/src/Disp.js @@ -603,6 +603,7 @@ CM.Disp.CreateUpgradeBar = function() { CM.Disp.UpgradeBar.style.textAlign = 'center'; CM.Disp.UpgradeBar.style.fontWeight = 'bold'; CM.Disp.UpgradeBar.style.display = 'none'; + CM.Disp.UpgradeBar.style.zIndex = '21'; CM.Disp.UpgradeBar.onmouseout = function() { Game.tooltip.hide(); }; var placeholder = document.createElement('div'); @@ -736,6 +737,16 @@ CM.Disp.UpdateColors = function() { CM.Disp.UpdateBuildings(); // Class has been already set } +CM.Disp.ToggleUpgradeBarFixedPos = function() { + if (CM.Config.UpgradeBarFixedPos() == 1) { + CM.Disp.UpgradeBar.style.position = 'sticky'; + CM.Disp.UpgradeBar.style.top = '0px'; + } + else { + CM.Disp.UpgradeBar.style.position = ''; + } +} + CM.Disp.CreateWhiteScreen = function() { CM.Disp.WhiteScreen = document.createElement('div'); CM.Disp.WhiteScreen.id = 'CMWhiteScreen';