From 05278149c513f1b19c6eebab56d0777240f1ac0f Mon Sep 17 00:00:00 2001 From: Aktanusa Date: Thu, 28 Apr 2016 00:22:56 -0400 Subject: [PATCH 01/22] Changed to Version 2.001.1 and fixed for Version 2.001 Beta (mostly) (Issue #77) --- CookieMonster.js | 239 +++++++++++++++++++++++++++-------------------- src/Cache.js | 8 +- src/Disp.js | 194 ++++++++++++++++++++++---------------- src/Main.js | 15 +-- src/Sim.js | 22 ++++- 5 files changed, 274 insertions(+), 204 deletions(-) diff --git a/CookieMonster.js b/CookieMonster.js index 556e0c0..39f9113 100644 --- a/CookieMonster.js +++ b/CookieMonster.js @@ -142,9 +142,7 @@ CM.Cache.RemakePP = function() { CM.Cache.RemakeLucky = function() { CM.Cache.Lucky = (CM.Cache.NoGoldSwitchCookiesPS * 60 * 15) / 0.15; - if (Game.frenzy > 0) { - CM.Cache.Lucky /= Game.frenzyPower; - } + CM.Cache.Lucky /= CM.Sim.getCPSBuffMult(); CM.Cache.LuckyReward = (CM.Cache.Lucky * 0.15) + 13; CM.Cache.LuckyFrenzy = CM.Cache.Lucky * 7; CM.Cache.LuckyRewardFrenzy = (CM.Cache.LuckyFrenzy * 0.15) + 13; @@ -164,9 +162,7 @@ CM.Cache.MaxChainMoni = function(digit, maxPayout) { CM.Cache.RemakeChain = function() { var maxPayout = CM.Cache.NoGoldSwitchCookiesPS * 60 * 60 * 6; - if (Game.frenzy > 0) { - maxPayout /= Game.frenzyPower; - } + maxPayout /= CM.Sim.getCPSBuffMult(); CM.Cache.ChainReward = CM.Cache.MaxChainMoni(7, maxPayout); @@ -801,23 +797,23 @@ CM.Disp.CreateTimerBar = function() { CM.Disp.TimerBarRen.appendChild(bar('Next Reindeer', [{id: 'CMTimerBarRenMinBar', color: CM.Disp.colorGray}, {id: 'CMTimerBarRenBar', color: CM.Disp.colorOrange}], 'CMTimerBarRenTime')); CM.Disp.TimerBar.appendChild(CM.Disp.TimerBarRen); - CM.Disp.TimerBarFren = document.createElement('div'); - CM.Disp.TimerBarFren.id = 'CMTimerBarFren'; - CM.Disp.TimerBarFren.style.height = '12px'; - CM.Disp.TimerBarFren.style.margin = '0px 10px'; - CM.Disp.TimerBarFren.style.position = 'relative'; - CM.Disp.TimerBarFren.appendChild(bar('', [{id: 'CMTimerBarFrenBar'}], 'CMTimerBarFrenTime')); - CM.Disp.TimerBarFren.firstChild.firstChild.id = 'CMTimerBarFrenType'; - CM.Disp.TimerBar.appendChild(CM.Disp.TimerBarFren); + CM.Disp.TimerBarBuff1 = document.createElement('div'); + CM.Disp.TimerBarBuff1.id = 'CMTimerBarBuff1'; + CM.Disp.TimerBarBuff1.style.height = '12px'; + CM.Disp.TimerBarBuff1.style.margin = '0px 10px'; + CM.Disp.TimerBarBuff1.style.position = 'relative'; + CM.Disp.TimerBarBuff1.appendChild(bar('', [{id: 'CMTimerBarBuff1Bar'}], 'CMTimerBarBuff1Time')); + CM.Disp.TimerBarBuff1.firstChild.firstChild.id = 'CMTimerBarBuff1Type'; + CM.Disp.TimerBar.appendChild(CM.Disp.TimerBarBuff1); - CM.Disp.TimerBarCF = document.createElement('div'); - CM.Disp.TimerBarCF.id = 'CMTimerBarCF'; - CM.Disp.TimerBarCF.style.height = '12px'; - CM.Disp.TimerBarCF.style.margin = '0px 10px'; - CM.Disp.TimerBarCF.style.position = 'relative'; - CM.Disp.TimerBarCF.appendChild(bar('', [{id: 'CMTimerBarCFBar'}], 'CMTimerBarCFTime')); - CM.Disp.TimerBarCF.firstChild.firstChild.id = 'CMTimerBarCFType'; - CM.Disp.TimerBar.appendChild(CM.Disp.TimerBarCF); + CM.Disp.TimerBarBuff2 = document.createElement('div'); + CM.Disp.TimerBarBuff2.id = 'CMTimerBarBuff2'; + CM.Disp.TimerBarBuff2.style.height = '12px'; + CM.Disp.TimerBarBuff2.style.margin = '0px 10px'; + CM.Disp.TimerBarBuff2.style.position = 'relative'; + CM.Disp.TimerBarBuff2.appendChild(bar('', [{id: 'CMTimerBarBuff2Bar'}], 'CMTimerBarBuff2Time')); + CM.Disp.TimerBarBuff2.firstChild.firstChild.id = 'CMTimerBarBuff2Type'; + CM.Disp.TimerBar.appendChild(CM.Disp.TimerBarBuff2); l('wrapper').appendChild(CM.Disp.TimerBar); } @@ -852,10 +848,10 @@ CM.Disp.UpdateTimerBar = function() { var maxWidth = CM.Disp.TimerBar.offsetWidth - 129; var count = 0; - if (Game.goldenCookie.life <= 0 && Game.goldenCookie.toDie == 0 && !Game.Has('Golden switch [off]')) { + if (Game.shimmerTypes['golden'].spawned == 0 && !Game.Has('Golden switch [off]')) { CM.Disp.TimerBarGC.style.display = ''; - l('CMTimerBarGCMinBar').style.width = Math.round(Math.max(0, Game.goldenCookie.minTime - Game.goldenCookie.time) * maxWidth / Game.goldenCookie.maxTime) + 'px'; - if (Game.goldenCookie.minTime == Game.goldenCookie.maxTime) { + l('CMTimerBarGCMinBar').style.width = Math.round(Math.max(0, Game.shimmerTypes['golden'].minTime - Game.shimmerTypes['golden'].time) * maxWidth / Game.shimmerTypes['golden'].maxTime) + 'px'; + if (Game.shimmerTypes['golden'].minTime == Game.shimmerTypes['golden'].maxTime) { l('CMTimerBarGCMinBar').style.borderTopRightRadius = '10px'; l('CMTimerBarGCMinBar').style.borderBottomRightRadius = '10px'; } @@ -863,19 +859,19 @@ CM.Disp.UpdateTimerBar = function() { l('CMTimerBarGCMinBar').style.borderTopRightRadius = ''; l('CMTimerBarGCMinBar').style.borderBottomRightRadius = ''; } - l('CMTimerBarGCBar').style.width = Math.round(Math.min(Game.goldenCookie.maxTime - Game.goldenCookie.minTime, Game.goldenCookie.maxTime - Game.goldenCookie.time) * maxWidth / Game.goldenCookie.maxTime) + 'px'; - l('CMTimerBarGCTime').textContent = Math.ceil((Game.goldenCookie.maxTime - Game.goldenCookie.time) / Game.fps); + l('CMTimerBarGCBar').style.width = Math.round(Math.min(Game.shimmerTypes['golden'].maxTime - Game.shimmerTypes['golden'].minTime, Game.shimmerTypes['golden'].maxTime - Game.shimmerTypes['golden'].time) * maxWidth / Game.shimmerTypes['golden'].maxTime) + 'px'; + l('CMTimerBarGCTime').textContent = Math.ceil((Game.shimmerTypes['golden'].maxTime - Game.shimmerTypes['golden'].time) / Game.fps); count++; } else { CM.Disp.TimerBarGC.style.display = 'none'; } - if (Game.season == 'christmas' && Game.seasonPopup.life <= 0 && Game.seasonPopup.toDie == 0) { + if (Game.season == 'christmas' && Game.shimmerTypes['reindeer'].spawned == 0) { CM.Disp.TimerBarRen.style.display = ''; - l('CMTimerBarRenMinBar').style.width = Math.round(Math.max(0, Game.seasonPopup.minTime - Game.seasonPopup.time) * maxWidth / Game.seasonPopup.maxTime) + 'px'; - l('CMTimerBarRenBar').style.width = Math.round(Math.min(Game.seasonPopup.maxTime - Game.seasonPopup.minTime, Game.seasonPopup.maxTime - Game.seasonPopup.time) * maxWidth / Game.seasonPopup.maxTime) + 'px'; - l('CMTimerBarRenTime').textContent = Math.ceil((Game.seasonPopup.maxTime - Game.seasonPopup.time) / Game.fps); + l('CMTimerBarRenMinBar').style.width = Math.round(Math.max(0, Game.shimmerTypes['reindeer'].minTime - Game.shimmerTypes['reindeer'].time) * maxWidth / Game.shimmerTypes['reindeer'].maxTime) + 'px'; + l('CMTimerBarRenBar').style.width = Math.round(Math.min(Game.shimmerTypes['reindeer'].maxTime - Game.shimmerTypes['reindeer'].minTime, Game.shimmerTypes['reindeer'].maxTime - Game.shimmerTypes['reindeer'].time) * maxWidth / Game.shimmerTypes['reindeer'].maxTime) + 'px'; + l('CMTimerBarRenTime').textContent = Math.ceil((Game.shimmerTypes['reindeer'].maxTime - Game.shimmerTypes['reindeer'].time) / Game.fps); count++; } else { @@ -883,55 +879,55 @@ CM.Disp.UpdateTimerBar = function() { } if (Game.frenzy > 0) { - CM.Disp.TimerBarFren.style.display = ''; + CM.Disp.TimerBarBuff1.style.display = ''; if (Game.frenzyPower == 7) { - l('CMTimerBarFrenType').textContent = 'Frenzy'; - l('CMTimerBarFrenBar').className = CM.Disp.colorBackPre + CM.Disp.colorYellow; + l('CMTimerBarBuff1Type').textContent = 'Frenzy'; + l('CMTimerBarBuff1Bar').className = CM.Disp.colorBackPre + CM.Disp.colorYellow; } else if (Game.frenzyPower == 0.5) { - l('CMTimerBarFrenType').textContent = 'Clot'; - l('CMTimerBarFrenBar').className = CM.Disp.colorBackPre + CM.Disp.colorRed; + l('CMTimerBarBuff1Type').textContent = 'Clot'; + l('CMTimerBarBuff1Bar').className = CM.Disp.colorBackPre + CM.Disp.colorRed; } else if (Game.frenzyPower == 15) { - l('CMTimerBarFrenType').textContent = 'Dragon Harvest'; - l('CMTimerBarFrenBar').className = CM.Disp.colorBackPre + CM.Disp.colorBrown; + l('CMTimerBarBuff1Type').textContent = 'Dragon Harvest'; + l('CMTimerBarBuff1Bar').className = CM.Disp.colorBackPre + CM.Disp.colorBrown; } else { - l('CMTimerBarFrenType').textContent = 'Blood Frenzy'; - l('CMTimerBarFrenBar').className = CM.Disp.colorBackPre + CM.Disp.colorGreen; + l('CMTimerBarBuff1Type').textContent = 'Blood Frenzy'; + l('CMTimerBarBuff1Bar').className = CM.Disp.colorBackPre + CM.Disp.colorGreen; } - l('CMTimerBarFrenBar').style.width = Math.round(Game.frenzy * maxWidth / Game.frenzyMax) + 'px'; - l('CMTimerBarFrenTime').textContent = Math.ceil(Game.frenzy / Game.fps); + l('CMTimerBarBuff1Bar').style.width = Math.round(Game.frenzy * maxWidth / Game.frenzyMax) + 'px'; + l('CMTimerBarBuff1Time').textContent = Math.ceil(Game.frenzy / Game.fps); count++; } else { - CM.Disp.TimerBarFren.style.display = 'none'; + CM.Disp.TimerBarBuff1.style.display = 'none'; } if (Game.clickFrenzy > 0) { - CM.Disp.TimerBarCF.style.display = ''; + CM.Disp.TimerBarBuff2.style.display = ''; if (Game.clickFrenzyPower == 777) { - l('CMTimerBarCFType').textContent = 'Click Frenzy'; - l('CMTimerBarCFBar').className = CM.Disp.colorBackPre + CM.Disp.colorBlue; + l('CMTimerBarBuff2Type').textContent = 'Click Frenzy'; + l('CMTimerBarBuff2Bar').className = CM.Disp.colorBackPre + CM.Disp.colorBlue; } else { - l('CMTimerBarCFType').textContent = 'Dragonflight'; - l('CMTimerBarCFBar').className = CM.Disp.colorBackPre + CM.Disp.colorPink; + l('CMTimerBarBuff2Type').textContent = 'Dragonflight'; + l('CMTimerBarBuff2Bar').className = CM.Disp.colorBackPre + CM.Disp.colorPink; } - l('CMTimerBarCFBar').style.width = Math.round(Game.clickFrenzy * maxWidth / Game.clickFrenzyMax) + 'px'; - l('CMTimerBarCFTime').textContent = Math.ceil(Game.clickFrenzy / Game.fps); + l('CMTimerBarBuff2Bar').style.width = Math.round(Game.clickFrenzy * maxWidth / Game.clickFrenzyMax) + 'px'; + l('CMTimerBarBuff2Time').textContent = Math.ceil(Game.clickFrenzy / Game.fps); count++; } else { - CM.Disp.TimerBarCF.style.display = 'none'; + CM.Disp.TimerBarBuff2.style.display = 'none'; } if (count != 0) { var height = 48 / count; CM.Disp.TimerBarGC.style.height = height + 'px'; CM.Disp.TimerBarRen.style.height = height + 'px'; - CM.Disp.TimerBarFren.style.height = height + 'px'; - CM.Disp.TimerBarCF.style.height = height + 'px'; + CM.Disp.TimerBarBuff1.style.height = height + 'px'; + CM.Disp.TimerBarBuff2.style.height = height + 'px'; } } } @@ -1163,6 +1159,20 @@ CM.Disp.PlaySound = function(url) { } } +/** + * Needed for some of the functions to use the right object + */ +CM.Disp.FindGoldenShimmer = function() { + if (CM.Disp.lastGoldenCookieState) { + for (var i in Game.shimmers) { + if (Game.shimmers[i].spawnLead && Game.shimmers[i].type == 'golden') { + CM.Disp.goldenShimmer = Game.shimmers[i]; + break; + } + } + } +} + CM.Disp.CreateFavicon = function() { CM.Disp.Favicon = document.createElement('link'); CM.Disp.Favicon.id = 'CMFavicon'; @@ -1172,8 +1182,8 @@ CM.Disp.CreateFavicon = function() { } CM.Disp.UpdateFavicon = function() { - if (CM.Config.Favicon == 1 && l('goldenCookie').style.display != 'none') { - if (Game.goldenCookie.wrath) { + if (CM.Config.Favicon == 1 && CM.Disp.lastGoldenCookieState) { + if (CM.Disp.goldenShimmer.wrath) { CM.Disp.Favicon.href = 'http://aktanusa.github.io/CookieMonster/favicon/wrathCookie.ico'; } else { @@ -1197,17 +1207,17 @@ CM.Disp.CreateGCTimer = function() { CM.Disp.GCTimer.style.fontFamily = '\"Kavoon\", Georgia, serif'; CM.Disp.GCTimer.style.fontSize = '35px'; CM.Disp.GCTimer.style.cursor = 'pointer'; - CM.Disp.GCTimer.onclick = function () {Game.goldenCookie.click(); CM.Disp.GCTimer.style.display = 'none';}; + CM.Disp.GCTimer.onclick = function () {CM.Disp.goldenShimmer.pop(event); CM.Disp.GCTimer.style.display = 'none';}; l('game').appendChild(CM.Disp.GCTimer); } CM.Disp.ToggleGCTimer = function() { if (CM.Config.GCTimer == 1) { - if (l('goldenCookie').style.display != 'none') { + if (CM.Disp.lastGoldenCookieState) { CM.Disp.GCTimer.style.display = 'block'; - CM.Disp.GCTimer.style.left = l('goldenCookie').style.left; - CM.Disp.GCTimer.style.top = l('goldenCookie').style.top; + CM.Disp.GCTimer.style.left = CM.Disp.goldenShimmer.l.style.left; + CM.Disp.GCTimer.style.top = CM.Disp.goldenShimmer.l.style.top; } } else { @@ -1216,14 +1226,15 @@ CM.Disp.ToggleGCTimer = function() { } CM.Disp.CheckGoldenCookie = function() { - if (CM.Disp.lastGoldenCookieState != l('goldenCookie').style.display) { - CM.Disp.lastGoldenCookieState = l('goldenCookie').style.display; + if (CM.Disp.lastGoldenCookieState != Game.shimmerTypes['golden'].spawned) { + CM.Disp.lastGoldenCookieState = Game.shimmerTypes['golden'].spawned; + CM.Disp.FindGoldenShimmer(); CM.Disp.UpdateFavicon(); - if (l('goldenCookie').style.display != 'none') { + if (CM.Disp.lastGoldenCookieState) { if (CM.Config.GCTimer == 1) { CM.Disp.GCTimer.style.display = 'block'; - CM.Disp.GCTimer.style.left = l('goldenCookie').style.left; - CM.Disp.GCTimer.style.top = l('goldenCookie').style.top; + CM.Disp.GCTimer.style.left = CM.Disp.goldenShimmer.l.style.left; + CM.Disp.GCTimer.style.top = CM.Disp.goldenShimmer.l.style.top; } CM.Disp.Flash(3); @@ -1231,17 +1242,29 @@ CM.Disp.CheckGoldenCookie = function() { } else if (CM.Config.GCTimer == 1) CM.Disp.GCTimer.style.display = 'none'; } - else if (CM.Config.GCTimer == 1 && l('goldenCookie').style.display != 'none') { - CM.Disp.GCTimer.style.opacity = 1 - Math.pow((Game.goldenCookie.life / (Game.fps * Game.goldenCookie.dur)) * 2 - 1, 4); - CM.Disp.GCTimer.textContent = Math.ceil(Game.goldenCookie.life / Game.fps); + else if (CM.Config.GCTimer == 1 && CM.Disp.lastGoldenCookieState) { + CM.Disp.GCTimer.style.opacity = CM.Disp.goldenShimmer.l.style.opacity; + CM.Disp.GCTimer.style.transform = CM.Disp.goldenShimmer.l.style.transform; + CM.Disp.GCTimer.textContent = Math.ceil(CM.Disp.goldenShimmer.life / Game.fps); } } -CM.Disp.EmphSeasonPopup = function() { - if (Game.season=='christmas') { - CM.Disp.Flash(3); - CM.Disp.PlaySound(CM.Config.SeaSoundURL); +CM.Disp.CheckSeasonPopup = function() { + if (CM.Disp.lastSeasonPopupState != Game.shimmerTypes['reindeer'].spawned) { + CM.Disp.lastSeasonPopupState = Game.shimmerTypes['reindeer'].spawned; + if (CM.Disp.lastSeasonPopupState && Game.season=='christmas') { + // Needed for some of the functions to use the right object + for (var i in Game.shimmers) { + if (Game.shimmers[i].spawnLead && Game.shimmers[i].type == 'reindeer') { + CM.Disp.seasonPopShimmer = Game.shimmers[i]; + break; + } + } + + CM.Disp.Flash(3); + CM.Disp.PlaySound(CM.Config.SeaSoundURL); + } } } @@ -1254,27 +1277,27 @@ CM.Disp.UpdateTitle = function() { var titleGC; var titleSP; - if (l('goldenCookie').style.display != 'none') { - if (Game.goldenCookie.wrath) { - titleGC = '[W ' + Math.ceil(Game.goldenCookie.life / Game.fps) + ']'; + if (CM.Disp.lastGoldenCookieState) { + if (CM.Disp.goldenShimmer.wrath) { + titleGC = '[W ' + Math.ceil(CM.Disp.goldenShimmer.life / Game.fps) + ']'; } else { - titleGC = '[G ' + Math.ceil(Game.goldenCookie.life / Game.fps) + ']'; + titleGC = '[G ' + Math.ceil(CM.Disp.goldenShimmer.life / Game.fps) + ']'; } } else if (!Game.Has('Golden switch [off]')) { - titleGC = '[' + Math.ceil((Game.goldenCookie.maxTime - Game.goldenCookie.time) / Game.fps) + ']'; + titleGC = '[' + Math.ceil((Game.shimmerTypes['golden'].maxTime - Game.shimmerTypes['golden'].time) / Game.fps) + ']'; } else { titleGC = '[GS]' } if (Game.season=='christmas') { addSP = true; - if (l('seasonPopup').style.display != 'none') { - titleSP = '[R ' + Math.ceil(Game.seasonPopup.life / Game.fps) + ']'; + if (CM.Disp.lastSeasonPopupState) { + titleSP = '[R ' + Math.ceil(CM.Disp.seasonPopShimmer.life / Game.fps) + ']'; } else { - titleSP = '[' + Math.ceil((Game.seasonPopup.maxTime - Game.seasonPopup.time) / Game.fps) + ']'; + titleSP = '[' + Math.ceil((Game.shimmerTypes['reindeer'].maxTime - Game.shimmerTypes['reindeer'].time) / Game.fps) + ']'; } } @@ -1288,17 +1311,17 @@ CM.Disp.UpdateTitle = function() { else if (CM.Config.Title == 2) { var str = ''; var spawn = false; - if (l('goldenCookie').style.display != 'none') { + if (CM.Disp.lastGoldenCookieState) { spawn = true; - if (Game.goldenCookie.wrath) { - str += '[W ' + Math.ceil(Game.goldenCookie.life / Game.fps) + ']'; + if (CM.Disp.goldenShimmer.wrath) { + str += '[W ' + Math.ceil(CM.Disp.goldenShimmer.life / Game.fps) + ']'; } else { - str += '[G ' + Math.ceil(Game.goldenCookie.life / Game.fps) + ']'; + str += '[G ' + Math.ceil(CM.Disp.goldenShimmer.life / Game.fps) + ']'; } } - if (Game.season=='christmas' && l('seasonPopup').style.display != 'none') { - str += '[R ' + Math.ceil(Game.seasonPopup.life / Game.fps) + ']'; + if (Game.season=='christmas' && CM.Disp.lastSeasonPopupState) { + str += '[R ' + Math.ceil(CM.Disp.seasonPopShimmer.life / Game.fps) + ']'; spawn = true; } if (spawn) str += ' - '; @@ -2089,9 +2112,7 @@ CM.Disp.UpdateTooltip = function() { var warn = CM.Cache.Lucky; if (CM.Config.ToolWarnCautBon == 1) { var bonusNoFren = bonus; - if (Game.frenzy > 0) { - bonusNoFren /= Game.frenzyPower; - } + bonusNoFren /= CM.Sim.getCPSBuffMult(); warn += ((bonusNoFren * 60 * 15) / 0.15); } var caut = warn * 7; @@ -2256,7 +2277,10 @@ CM.Disp.colorGray = 'Gray'; CM.Disp.colorPink = 'Pink'; CM.Disp.colorBrown = 'Brown'; CM.Disp.colors = [CM.Disp.colorBlue, CM.Disp.colorGreen, CM.Disp.colorYellow, CM.Disp.colorOrange, CM.Disp.colorRed, CM.Disp.colorPurple, CM.Disp.colorGray, CM.Disp.colorPink, CM.Disp.colorBrown]; -CM.Disp.lastGoldenCookieState = 'none'; +CM.Disp.lastGoldenCookieState = 0; +CM.Disp.lastSeasonPopupState = 0; +CM.Disp.goldenShimmer; +CM.Disp.seasonPopShimmer; CM.Disp.lastAscendState = -1; CM.Disp.times = [1, 5, 10, 15, 30]; @@ -2286,14 +2310,6 @@ CM.ReplaceNative = function() { CM.Sim.Date = new Date().getTime(); } - CM.Backup.seasonPopup = {}; - CM.Backup.seasonPopup.spawn = Game.seasonPopup.spawn; - eval('CM.Backup.seasonPopup.spawnMod = ' + Game.seasonPopup.spawn.toString().split('this').join('Game.seasonPopup')); - Game.seasonPopup.spawn = function() { - CM.Backup.seasonPopup.spawnMod(); - CM.Disp.EmphSeasonPopup(); - } - CM.Backup.tooltip = {}; CM.Backup.tooltip.draw = Game.tooltip.draw; eval('CM.Backup.tooltip.drawMod = ' + Game.tooltip.draw.toString().split('this').join('Game.tooltip')); @@ -2424,6 +2440,9 @@ CM.Loop = function() { // Check Golden Cookies CM.Disp.CheckGoldenCookie(); + // Check Season Popup + CM.Disp.CheckSeasonPopup(); + // Update Average CPS (might need to move) CM.Cache.UpdateAvgCPS() } @@ -2481,8 +2500,8 @@ CM.DelayInit = function() { CM.ConfigDefault = {BotBar: 1, TimerBar: 1, TimerBarPos: 0, BuildColor: 1, BulkBuildColor: 0, UpBarColor: 1, CalcWrink: 1, CPSMode: 1, AvgCPSHist: 2, AvgClicksHist: 2, ToolWarnCautBon: 0, Flash: 1, Sound: 1, Volume: 100, GCSoundURL: 'http://freesound.org/data/previews/66/66717_931655-lq.mp3', SeaSoundURL: 'http://www.freesound.org/data/previews/121/121099_2193266-lq.mp3', GCTimer: 1, Title: 1, Favicon: 1, Tooltip: 1, TooltipAmor: 0, ToolWarnCaut: 1, ToolWarnCautPos: 1, ToolWrink: 1, Stats: 1, UpStats: 1, SayTime: 1, Scale: 2, StatsPref: {Lucky: 1, Chain: 1, Prestige: 1, Wrink: 1, Sea: 1, Misc: 1}, Colors : {Blue: '#4bb8f0', Green: '#00ff00', Yellow: '#ffff00', Orange: '#ff7f00', Red: '#ff0000', Purple: '#ff00ff', Gray: '#b3b3b3', Pink: '#ff1493', Brown: '#8b4513'}}; CM.ConfigPrefix = 'CMConfig'; -CM.VersionMajor = '2'; -CM.VersionMinor = '5'; +CM.VersionMajor = '2.001'; +CM.VersionMinor = '1'; /******* * Sim * @@ -2508,6 +2527,7 @@ CM.Sim.BuildingGetPrice = function(basePrice, start, free, increase) { if (Game.Has('Faberge egg')) price *= 0.99; if (Game.Has('Divine discount')) price *= 0.99; if (Game.hasAura('Fierce Hoarder')) price *= 0.98; + if (Game.hasBuff('Everything must go')) price *= 0.95; price = Math.ceil(price); moni+=price; start++; @@ -2541,6 +2561,7 @@ CM.Sim.BuildingSell = function(basePrice, start, free, amount, emuAura) { if (Game.Has('Faberge egg')) price *= 0.99; if (Game.Has('Divine discount')) price *= 0.99; if (Game.hasAura('Fierce Hoarder')) price *= 0.98; + if (Game.hasBuff('Everything must go')) price *= 0.95; price = Math.ceil(price); var giveBack = 0.5; if (Game.hasAura('Earth Shatterer') || emuAura) giveBack=0.85; @@ -2583,6 +2604,18 @@ eval('CM.Sim.GetTieredCpsMult = ' + Game.GetTieredCpsMult.toString().split('Game eval('CM.Sim.getGrandmaSynergyUpgradeMultiplier = ' + Game.getGrandmaSynergyUpgradeMultiplier.toString().split('Game.Objects[\'Grandma\']').join('CM.Sim.Objects[\'Grandma\']')); +CM.Sim.getCPSBuffMult = function() { + var mult = 1; + var buffs = ['Frenzy', 'Elder frenzy', 'Clot', 'Dragon Harvest']; + for (var i in Game.goldenCookieBuildingBuffs) { + buffs.push(Game.goldenCookieBuildingBuffs[i][0], Game.goldenCookieBuildingBuffs[i][1]); + } + for (var i in buffs) { + if (Game.hasBuff(buffs[i]) && Game.buffs[buffs[i]].power) mult *= Game.buffs[buffs[i]].power; + } + return mult; +} + CM.Sim.InitData = function() { // Buildings CM.Sim.Objects = []; @@ -2720,8 +2753,8 @@ CM.Sim.CalculateGains = function() { if (rawCookiesPs >= Game.CpsAchievements[i].threshold) CM.Sim.Win(Game.CpsAchievements[i].name); } - if (Game.frenzy > 0) mult *= Game.frenzyPower; - + mult *= CM.Sim.getCPSBuffMult(); + // Pointless? name = Game.bakeryName.toLowerCase(); if (name == 'orteil') mult *= 0.99; @@ -2740,7 +2773,9 @@ CM.Sim.CalculateGains = function() { mult *= goldenSwitchMult; } - CM.Sim.cookiesPs *= mult; + CM.Sim.cookiesPs *= mult; + + if (Game.hasBuff('Cursed finger')) Game.cookiesPs = 0; }; CM.Sim.CheckOtherAchiev = function() { diff --git a/src/Cache.js b/src/Cache.js index f1a36cc..c7a1e6a 100644 --- a/src/Cache.js +++ b/src/Cache.js @@ -122,9 +122,7 @@ CM.Cache.RemakePP = function() { CM.Cache.RemakeLucky = function() { CM.Cache.Lucky = (CM.Cache.NoGoldSwitchCookiesPS * 60 * 15) / 0.15; - if (Game.frenzy > 0) { - CM.Cache.Lucky /= Game.frenzyPower; - } + CM.Cache.Lucky /= CM.Sim.getCPSBuffMult(); CM.Cache.LuckyReward = (CM.Cache.Lucky * 0.15) + 13; CM.Cache.LuckyFrenzy = CM.Cache.Lucky * 7; CM.Cache.LuckyRewardFrenzy = (CM.Cache.LuckyFrenzy * 0.15) + 13; @@ -144,9 +142,7 @@ CM.Cache.MaxChainMoni = function(digit, maxPayout) { CM.Cache.RemakeChain = function() { var maxPayout = CM.Cache.NoGoldSwitchCookiesPS * 60 * 60 * 6; - if (Game.frenzy > 0) { - maxPayout /= Game.frenzyPower; - } + maxPayout /= CM.Sim.getCPSBuffMult(); CM.Cache.ChainReward = CM.Cache.MaxChainMoni(7, maxPayout); diff --git a/src/Disp.js b/src/Disp.js index b150200..8f69832 100644 --- a/src/Disp.js +++ b/src/Disp.js @@ -295,23 +295,23 @@ CM.Disp.CreateTimerBar = function() { CM.Disp.TimerBarRen.appendChild(bar('Next Reindeer', [{id: 'CMTimerBarRenMinBar', color: CM.Disp.colorGray}, {id: 'CMTimerBarRenBar', color: CM.Disp.colorOrange}], 'CMTimerBarRenTime')); CM.Disp.TimerBar.appendChild(CM.Disp.TimerBarRen); - CM.Disp.TimerBarFren = document.createElement('div'); - CM.Disp.TimerBarFren.id = 'CMTimerBarFren'; - CM.Disp.TimerBarFren.style.height = '12px'; - CM.Disp.TimerBarFren.style.margin = '0px 10px'; - CM.Disp.TimerBarFren.style.position = 'relative'; - CM.Disp.TimerBarFren.appendChild(bar('', [{id: 'CMTimerBarFrenBar'}], 'CMTimerBarFrenTime')); - CM.Disp.TimerBarFren.firstChild.firstChild.id = 'CMTimerBarFrenType'; - CM.Disp.TimerBar.appendChild(CM.Disp.TimerBarFren); + CM.Disp.TimerBarBuff1 = document.createElement('div'); + CM.Disp.TimerBarBuff1.id = 'CMTimerBarBuff1'; + CM.Disp.TimerBarBuff1.style.height = '12px'; + CM.Disp.TimerBarBuff1.style.margin = '0px 10px'; + CM.Disp.TimerBarBuff1.style.position = 'relative'; + CM.Disp.TimerBarBuff1.appendChild(bar('', [{id: 'CMTimerBarBuff1Bar'}], 'CMTimerBarBuff1Time')); + CM.Disp.TimerBarBuff1.firstChild.firstChild.id = 'CMTimerBarBuff1Type'; + CM.Disp.TimerBar.appendChild(CM.Disp.TimerBarBuff1); - CM.Disp.TimerBarCF = document.createElement('div'); - CM.Disp.TimerBarCF.id = 'CMTimerBarCF'; - CM.Disp.TimerBarCF.style.height = '12px'; - CM.Disp.TimerBarCF.style.margin = '0px 10px'; - CM.Disp.TimerBarCF.style.position = 'relative'; - CM.Disp.TimerBarCF.appendChild(bar('', [{id: 'CMTimerBarCFBar'}], 'CMTimerBarCFTime')); - CM.Disp.TimerBarCF.firstChild.firstChild.id = 'CMTimerBarCFType'; - CM.Disp.TimerBar.appendChild(CM.Disp.TimerBarCF); + CM.Disp.TimerBarBuff2 = document.createElement('div'); + CM.Disp.TimerBarBuff2.id = 'CMTimerBarBuff2'; + CM.Disp.TimerBarBuff2.style.height = '12px'; + CM.Disp.TimerBarBuff2.style.margin = '0px 10px'; + CM.Disp.TimerBarBuff2.style.position = 'relative'; + CM.Disp.TimerBarBuff2.appendChild(bar('', [{id: 'CMTimerBarBuff2Bar'}], 'CMTimerBarBuff2Time')); + CM.Disp.TimerBarBuff2.firstChild.firstChild.id = 'CMTimerBarBuff2Type'; + CM.Disp.TimerBar.appendChild(CM.Disp.TimerBarBuff2); l('wrapper').appendChild(CM.Disp.TimerBar); } @@ -346,10 +346,10 @@ CM.Disp.UpdateTimerBar = function() { var maxWidth = CM.Disp.TimerBar.offsetWidth - 129; var count = 0; - if (Game.goldenCookie.life <= 0 && Game.goldenCookie.toDie == 0 && !Game.Has('Golden switch [off]')) { + if (Game.shimmerTypes['golden'].spawned == 0 && !Game.Has('Golden switch [off]')) { CM.Disp.TimerBarGC.style.display = ''; - l('CMTimerBarGCMinBar').style.width = Math.round(Math.max(0, Game.goldenCookie.minTime - Game.goldenCookie.time) * maxWidth / Game.goldenCookie.maxTime) + 'px'; - if (Game.goldenCookie.minTime == Game.goldenCookie.maxTime) { + l('CMTimerBarGCMinBar').style.width = Math.round(Math.max(0, Game.shimmerTypes['golden'].minTime - Game.shimmerTypes['golden'].time) * maxWidth / Game.shimmerTypes['golden'].maxTime) + 'px'; + if (Game.shimmerTypes['golden'].minTime == Game.shimmerTypes['golden'].maxTime) { l('CMTimerBarGCMinBar').style.borderTopRightRadius = '10px'; l('CMTimerBarGCMinBar').style.borderBottomRightRadius = '10px'; } @@ -357,19 +357,19 @@ CM.Disp.UpdateTimerBar = function() { l('CMTimerBarGCMinBar').style.borderTopRightRadius = ''; l('CMTimerBarGCMinBar').style.borderBottomRightRadius = ''; } - l('CMTimerBarGCBar').style.width = Math.round(Math.min(Game.goldenCookie.maxTime - Game.goldenCookie.minTime, Game.goldenCookie.maxTime - Game.goldenCookie.time) * maxWidth / Game.goldenCookie.maxTime) + 'px'; - l('CMTimerBarGCTime').textContent = Math.ceil((Game.goldenCookie.maxTime - Game.goldenCookie.time) / Game.fps); + l('CMTimerBarGCBar').style.width = Math.round(Math.min(Game.shimmerTypes['golden'].maxTime - Game.shimmerTypes['golden'].minTime, Game.shimmerTypes['golden'].maxTime - Game.shimmerTypes['golden'].time) * maxWidth / Game.shimmerTypes['golden'].maxTime) + 'px'; + l('CMTimerBarGCTime').textContent = Math.ceil((Game.shimmerTypes['golden'].maxTime - Game.shimmerTypes['golden'].time) / Game.fps); count++; } else { CM.Disp.TimerBarGC.style.display = 'none'; } - if (Game.season == 'christmas' && Game.seasonPopup.life <= 0 && Game.seasonPopup.toDie == 0) { + if (Game.season == 'christmas' && Game.shimmerTypes['reindeer'].spawned == 0) { CM.Disp.TimerBarRen.style.display = ''; - l('CMTimerBarRenMinBar').style.width = Math.round(Math.max(0, Game.seasonPopup.minTime - Game.seasonPopup.time) * maxWidth / Game.seasonPopup.maxTime) + 'px'; - l('CMTimerBarRenBar').style.width = Math.round(Math.min(Game.seasonPopup.maxTime - Game.seasonPopup.minTime, Game.seasonPopup.maxTime - Game.seasonPopup.time) * maxWidth / Game.seasonPopup.maxTime) + 'px'; - l('CMTimerBarRenTime').textContent = Math.ceil((Game.seasonPopup.maxTime - Game.seasonPopup.time) / Game.fps); + l('CMTimerBarRenMinBar').style.width = Math.round(Math.max(0, Game.shimmerTypes['reindeer'].minTime - Game.shimmerTypes['reindeer'].time) * maxWidth / Game.shimmerTypes['reindeer'].maxTime) + 'px'; + l('CMTimerBarRenBar').style.width = Math.round(Math.min(Game.shimmerTypes['reindeer'].maxTime - Game.shimmerTypes['reindeer'].minTime, Game.shimmerTypes['reindeer'].maxTime - Game.shimmerTypes['reindeer'].time) * maxWidth / Game.shimmerTypes['reindeer'].maxTime) + 'px'; + l('CMTimerBarRenTime').textContent = Math.ceil((Game.shimmerTypes['reindeer'].maxTime - Game.shimmerTypes['reindeer'].time) / Game.fps); count++; } else { @@ -377,55 +377,55 @@ CM.Disp.UpdateTimerBar = function() { } if (Game.frenzy > 0) { - CM.Disp.TimerBarFren.style.display = ''; + CM.Disp.TimerBarBuff1.style.display = ''; if (Game.frenzyPower == 7) { - l('CMTimerBarFrenType').textContent = 'Frenzy'; - l('CMTimerBarFrenBar').className = CM.Disp.colorBackPre + CM.Disp.colorYellow; + l('CMTimerBarBuff1Type').textContent = 'Frenzy'; + l('CMTimerBarBuff1Bar').className = CM.Disp.colorBackPre + CM.Disp.colorYellow; } else if (Game.frenzyPower == 0.5) { - l('CMTimerBarFrenType').textContent = 'Clot'; - l('CMTimerBarFrenBar').className = CM.Disp.colorBackPre + CM.Disp.colorRed; + l('CMTimerBarBuff1Type').textContent = 'Clot'; + l('CMTimerBarBuff1Bar').className = CM.Disp.colorBackPre + CM.Disp.colorRed; } else if (Game.frenzyPower == 15) { - l('CMTimerBarFrenType').textContent = 'Dragon Harvest'; - l('CMTimerBarFrenBar').className = CM.Disp.colorBackPre + CM.Disp.colorBrown; + l('CMTimerBarBuff1Type').textContent = 'Dragon Harvest'; + l('CMTimerBarBuff1Bar').className = CM.Disp.colorBackPre + CM.Disp.colorBrown; } else { - l('CMTimerBarFrenType').textContent = 'Blood Frenzy'; - l('CMTimerBarFrenBar').className = CM.Disp.colorBackPre + CM.Disp.colorGreen; + l('CMTimerBarBuff1Type').textContent = 'Blood Frenzy'; + l('CMTimerBarBuff1Bar').className = CM.Disp.colorBackPre + CM.Disp.colorGreen; } - l('CMTimerBarFrenBar').style.width = Math.round(Game.frenzy * maxWidth / Game.frenzyMax) + 'px'; - l('CMTimerBarFrenTime').textContent = Math.ceil(Game.frenzy / Game.fps); + l('CMTimerBarBuff1Bar').style.width = Math.round(Game.frenzy * maxWidth / Game.frenzyMax) + 'px'; + l('CMTimerBarBuff1Time').textContent = Math.ceil(Game.frenzy / Game.fps); count++; } else { - CM.Disp.TimerBarFren.style.display = 'none'; + CM.Disp.TimerBarBuff1.style.display = 'none'; } if (Game.clickFrenzy > 0) { - CM.Disp.TimerBarCF.style.display = ''; + CM.Disp.TimerBarBuff2.style.display = ''; if (Game.clickFrenzyPower == 777) { - l('CMTimerBarCFType').textContent = 'Click Frenzy'; - l('CMTimerBarCFBar').className = CM.Disp.colorBackPre + CM.Disp.colorBlue; + l('CMTimerBarBuff2Type').textContent = 'Click Frenzy'; + l('CMTimerBarBuff2Bar').className = CM.Disp.colorBackPre + CM.Disp.colorBlue; } else { - l('CMTimerBarCFType').textContent = 'Dragonflight'; - l('CMTimerBarCFBar').className = CM.Disp.colorBackPre + CM.Disp.colorPink; + l('CMTimerBarBuff2Type').textContent = 'Dragonflight'; + l('CMTimerBarBuff2Bar').className = CM.Disp.colorBackPre + CM.Disp.colorPink; } - l('CMTimerBarCFBar').style.width = Math.round(Game.clickFrenzy * maxWidth / Game.clickFrenzyMax) + 'px'; - l('CMTimerBarCFTime').textContent = Math.ceil(Game.clickFrenzy / Game.fps); + l('CMTimerBarBuff2Bar').style.width = Math.round(Game.clickFrenzy * maxWidth / Game.clickFrenzyMax) + 'px'; + l('CMTimerBarBuff2Time').textContent = Math.ceil(Game.clickFrenzy / Game.fps); count++; } else { - CM.Disp.TimerBarCF.style.display = 'none'; + CM.Disp.TimerBarBuff2.style.display = 'none'; } if (count != 0) { var height = 48 / count; CM.Disp.TimerBarGC.style.height = height + 'px'; CM.Disp.TimerBarRen.style.height = height + 'px'; - CM.Disp.TimerBarFren.style.height = height + 'px'; - CM.Disp.TimerBarCF.style.height = height + 'px'; + CM.Disp.TimerBarBuff1.style.height = height + 'px'; + CM.Disp.TimerBarBuff2.style.height = height + 'px'; } } } @@ -657,6 +657,20 @@ CM.Disp.PlaySound = function(url) { } } +/** + * Needed for some of the functions to use the right object + */ +CM.Disp.FindGoldenShimmer = function() { + if (CM.Disp.lastGoldenCookieState) { + for (var i in Game.shimmers) { + if (Game.shimmers[i].spawnLead && Game.shimmers[i].type == 'golden') { + CM.Disp.goldenShimmer = Game.shimmers[i]; + break; + } + } + } +} + CM.Disp.CreateFavicon = function() { CM.Disp.Favicon = document.createElement('link'); CM.Disp.Favicon.id = 'CMFavicon'; @@ -666,8 +680,8 @@ CM.Disp.CreateFavicon = function() { } CM.Disp.UpdateFavicon = function() { - if (CM.Config.Favicon == 1 && l('goldenCookie').style.display != 'none') { - if (Game.goldenCookie.wrath) { + if (CM.Config.Favicon == 1 && CM.Disp.lastGoldenCookieState) { + if (CM.Disp.goldenShimmer.wrath) { CM.Disp.Favicon.href = 'http://aktanusa.github.io/CookieMonster/favicon/wrathCookie.ico'; } else { @@ -691,17 +705,17 @@ CM.Disp.CreateGCTimer = function() { CM.Disp.GCTimer.style.fontFamily = '\"Kavoon\", Georgia, serif'; CM.Disp.GCTimer.style.fontSize = '35px'; CM.Disp.GCTimer.style.cursor = 'pointer'; - CM.Disp.GCTimer.onclick = function () {Game.goldenCookie.click(); CM.Disp.GCTimer.style.display = 'none';}; + CM.Disp.GCTimer.onclick = function () {CM.Disp.goldenShimmer.pop(event); CM.Disp.GCTimer.style.display = 'none';}; l('game').appendChild(CM.Disp.GCTimer); } CM.Disp.ToggleGCTimer = function() { if (CM.Config.GCTimer == 1) { - if (l('goldenCookie').style.display != 'none') { + if (CM.Disp.lastGoldenCookieState) { CM.Disp.GCTimer.style.display = 'block'; - CM.Disp.GCTimer.style.left = l('goldenCookie').style.left; - CM.Disp.GCTimer.style.top = l('goldenCookie').style.top; + CM.Disp.GCTimer.style.left = CM.Disp.goldenShimmer.l.style.left; + CM.Disp.GCTimer.style.top = CM.Disp.goldenShimmer.l.style.top; } } else { @@ -710,14 +724,15 @@ CM.Disp.ToggleGCTimer = function() { } CM.Disp.CheckGoldenCookie = function() { - if (CM.Disp.lastGoldenCookieState != l('goldenCookie').style.display) { - CM.Disp.lastGoldenCookieState = l('goldenCookie').style.display; + if (CM.Disp.lastGoldenCookieState != Game.shimmerTypes['golden'].spawned) { + CM.Disp.lastGoldenCookieState = Game.shimmerTypes['golden'].spawned; + CM.Disp.FindGoldenShimmer(); CM.Disp.UpdateFavicon(); - if (l('goldenCookie').style.display != 'none') { + if (CM.Disp.lastGoldenCookieState) { if (CM.Config.GCTimer == 1) { CM.Disp.GCTimer.style.display = 'block'; - CM.Disp.GCTimer.style.left = l('goldenCookie').style.left; - CM.Disp.GCTimer.style.top = l('goldenCookie').style.top; + CM.Disp.GCTimer.style.left = CM.Disp.goldenShimmer.l.style.left; + CM.Disp.GCTimer.style.top = CM.Disp.goldenShimmer.l.style.top; } CM.Disp.Flash(3); @@ -725,17 +740,29 @@ CM.Disp.CheckGoldenCookie = function() { } else if (CM.Config.GCTimer == 1) CM.Disp.GCTimer.style.display = 'none'; } - else if (CM.Config.GCTimer == 1 && l('goldenCookie').style.display != 'none') { - CM.Disp.GCTimer.style.opacity = 1 - Math.pow((Game.goldenCookie.life / (Game.fps * Game.goldenCookie.dur)) * 2 - 1, 4); - CM.Disp.GCTimer.textContent = Math.ceil(Game.goldenCookie.life / Game.fps); + else if (CM.Config.GCTimer == 1 && CM.Disp.lastGoldenCookieState) { + CM.Disp.GCTimer.style.opacity = CM.Disp.goldenShimmer.l.style.opacity; + CM.Disp.GCTimer.style.transform = CM.Disp.goldenShimmer.l.style.transform; + CM.Disp.GCTimer.textContent = Math.ceil(CM.Disp.goldenShimmer.life / Game.fps); } } -CM.Disp.EmphSeasonPopup = function() { - if (Game.season=='christmas') { - CM.Disp.Flash(3); - CM.Disp.PlaySound(CM.Config.SeaSoundURL); +CM.Disp.CheckSeasonPopup = function() { + if (CM.Disp.lastSeasonPopupState != Game.shimmerTypes['reindeer'].spawned) { + CM.Disp.lastSeasonPopupState = Game.shimmerTypes['reindeer'].spawned; + if (CM.Disp.lastSeasonPopupState && Game.season=='christmas') { + // Needed for some of the functions to use the right object + for (var i in Game.shimmers) { + if (Game.shimmers[i].spawnLead && Game.shimmers[i].type == 'reindeer') { + CM.Disp.seasonPopShimmer = Game.shimmers[i]; + break; + } + } + + CM.Disp.Flash(3); + CM.Disp.PlaySound(CM.Config.SeaSoundURL); + } } } @@ -748,27 +775,27 @@ CM.Disp.UpdateTitle = function() { var titleGC; var titleSP; - if (l('goldenCookie').style.display != 'none') { - if (Game.goldenCookie.wrath) { - titleGC = '[W ' + Math.ceil(Game.goldenCookie.life / Game.fps) + ']'; + if (CM.Disp.lastGoldenCookieState) { + if (CM.Disp.goldenShimmer.wrath) { + titleGC = '[W ' + Math.ceil(CM.Disp.goldenShimmer.life / Game.fps) + ']'; } else { - titleGC = '[G ' + Math.ceil(Game.goldenCookie.life / Game.fps) + ']'; + titleGC = '[G ' + Math.ceil(CM.Disp.goldenShimmer.life / Game.fps) + ']'; } } else if (!Game.Has('Golden switch [off]')) { - titleGC = '[' + Math.ceil((Game.goldenCookie.maxTime - Game.goldenCookie.time) / Game.fps) + ']'; + titleGC = '[' + Math.ceil((Game.shimmerTypes['golden'].maxTime - Game.shimmerTypes['golden'].time) / Game.fps) + ']'; } else { titleGC = '[GS]' } if (Game.season=='christmas') { addSP = true; - if (l('seasonPopup').style.display != 'none') { - titleSP = '[R ' + Math.ceil(Game.seasonPopup.life / Game.fps) + ']'; + if (CM.Disp.lastSeasonPopupState) { + titleSP = '[R ' + Math.ceil(CM.Disp.seasonPopShimmer.life / Game.fps) + ']'; } else { - titleSP = '[' + Math.ceil((Game.seasonPopup.maxTime - Game.seasonPopup.time) / Game.fps) + ']'; + titleSP = '[' + Math.ceil((Game.shimmerTypes['reindeer'].maxTime - Game.shimmerTypes['reindeer'].time) / Game.fps) + ']'; } } @@ -782,17 +809,17 @@ CM.Disp.UpdateTitle = function() { else if (CM.Config.Title == 2) { var str = ''; var spawn = false; - if (l('goldenCookie').style.display != 'none') { + if (CM.Disp.lastGoldenCookieState) { spawn = true; - if (Game.goldenCookie.wrath) { - str += '[W ' + Math.ceil(Game.goldenCookie.life / Game.fps) + ']'; + if (CM.Disp.goldenShimmer.wrath) { + str += '[W ' + Math.ceil(CM.Disp.goldenShimmer.life / Game.fps) + ']'; } else { - str += '[G ' + Math.ceil(Game.goldenCookie.life / Game.fps) + ']'; + str += '[G ' + Math.ceil(CM.Disp.goldenShimmer.life / Game.fps) + ']'; } } - if (Game.season=='christmas' && l('seasonPopup').style.display != 'none') { - str += '[R ' + Math.ceil(Game.seasonPopup.life / Game.fps) + ']'; + if (Game.season=='christmas' && CM.Disp.lastSeasonPopupState) { + str += '[R ' + Math.ceil(CM.Disp.seasonPopShimmer.life / Game.fps) + ']'; spawn = true; } if (spawn) str += ' - '; @@ -1583,9 +1610,7 @@ CM.Disp.UpdateTooltip = function() { var warn = CM.Cache.Lucky; if (CM.Config.ToolWarnCautBon == 1) { var bonusNoFren = bonus; - if (Game.frenzy > 0) { - bonusNoFren /= Game.frenzyPower; - } + bonusNoFren /= CM.Sim.getCPSBuffMult(); warn += ((bonusNoFren * 60 * 15) / 0.15); } var caut = warn * 7; @@ -1750,7 +1775,10 @@ CM.Disp.colorGray = 'Gray'; CM.Disp.colorPink = 'Pink'; CM.Disp.colorBrown = 'Brown'; CM.Disp.colors = [CM.Disp.colorBlue, CM.Disp.colorGreen, CM.Disp.colorYellow, CM.Disp.colorOrange, CM.Disp.colorRed, CM.Disp.colorPurple, CM.Disp.colorGray, CM.Disp.colorPink, CM.Disp.colorBrown]; -CM.Disp.lastGoldenCookieState = 'none'; +CM.Disp.lastGoldenCookieState = 0; +CM.Disp.lastSeasonPopupState = 0; +CM.Disp.goldenShimmer; +CM.Disp.seasonPopShimmer; CM.Disp.lastAscendState = -1; CM.Disp.times = [1, 5, 10, 15, 30]; diff --git a/src/Main.js b/src/Main.js index 65d5763..aaf50c0 100644 --- a/src/Main.js +++ b/src/Main.js @@ -13,14 +13,6 @@ CM.ReplaceNative = function() { CM.Sim.Date = new Date().getTime(); } - CM.Backup.seasonPopup = {}; - CM.Backup.seasonPopup.spawn = Game.seasonPopup.spawn; - eval('CM.Backup.seasonPopup.spawnMod = ' + Game.seasonPopup.spawn.toString().split('this').join('Game.seasonPopup')); - Game.seasonPopup.spawn = function() { - CM.Backup.seasonPopup.spawnMod(); - CM.Disp.EmphSeasonPopup(); - } - CM.Backup.tooltip = {}; CM.Backup.tooltip.draw = Game.tooltip.draw; eval('CM.Backup.tooltip.drawMod = ' + Game.tooltip.draw.toString().split('this').join('Game.tooltip')); @@ -151,6 +143,9 @@ CM.Loop = function() { // Check Golden Cookies CM.Disp.CheckGoldenCookie(); + // Check Season Popup + CM.Disp.CheckSeasonPopup(); + // Update Average CPS (might need to move) CM.Cache.UpdateAvgCPS() } @@ -208,6 +203,6 @@ CM.DelayInit = function() { CM.ConfigDefault = {BotBar: 1, TimerBar: 1, TimerBarPos: 0, BuildColor: 1, BulkBuildColor: 0, UpBarColor: 1, CalcWrink: 1, CPSMode: 1, AvgCPSHist: 2, AvgClicksHist: 2, ToolWarnCautBon: 0, Flash: 1, Sound: 1, Volume: 100, GCSoundURL: 'http://freesound.org/data/previews/66/66717_931655-lq.mp3', SeaSoundURL: 'http://www.freesound.org/data/previews/121/121099_2193266-lq.mp3', GCTimer: 1, Title: 1, Favicon: 1, Tooltip: 1, TooltipAmor: 0, ToolWarnCaut: 1, ToolWarnCautPos: 1, ToolWrink: 1, Stats: 1, UpStats: 1, SayTime: 1, Scale: 2, StatsPref: {Lucky: 1, Chain: 1, Prestige: 1, Wrink: 1, Sea: 1, Misc: 1}, Colors : {Blue: '#4bb8f0', Green: '#00ff00', Yellow: '#ffff00', Orange: '#ff7f00', Red: '#ff0000', Purple: '#ff00ff', Gray: '#b3b3b3', Pink: '#ff1493', Brown: '#8b4513'}}; CM.ConfigPrefix = 'CMConfig'; -CM.VersionMajor = '2'; -CM.VersionMinor = '5'; +CM.VersionMajor = '2.001'; +CM.VersionMinor = '1'; diff --git a/src/Sim.js b/src/Sim.js index 108ae0c..ae72530 100644 --- a/src/Sim.js +++ b/src/Sim.js @@ -22,6 +22,7 @@ CM.Sim.BuildingGetPrice = function(basePrice, start, free, increase) { if (Game.Has('Faberge egg')) price *= 0.99; if (Game.Has('Divine discount')) price *= 0.99; if (Game.hasAura('Fierce Hoarder')) price *= 0.98; + if (Game.hasBuff('Everything must go')) price *= 0.95; price = Math.ceil(price); moni+=price; start++; @@ -55,6 +56,7 @@ CM.Sim.BuildingSell = function(basePrice, start, free, amount, emuAura) { if (Game.Has('Faberge egg')) price *= 0.99; if (Game.Has('Divine discount')) price *= 0.99; if (Game.hasAura('Fierce Hoarder')) price *= 0.98; + if (Game.hasBuff('Everything must go')) price *= 0.95; price = Math.ceil(price); var giveBack = 0.5; if (Game.hasAura('Earth Shatterer') || emuAura) giveBack=0.85; @@ -97,6 +99,18 @@ eval('CM.Sim.GetTieredCpsMult = ' + Game.GetTieredCpsMult.toString().split('Game eval('CM.Sim.getGrandmaSynergyUpgradeMultiplier = ' + Game.getGrandmaSynergyUpgradeMultiplier.toString().split('Game.Objects[\'Grandma\']').join('CM.Sim.Objects[\'Grandma\']')); +CM.Sim.getCPSBuffMult = function() { + var mult = 1; + var buffs = ['Frenzy', 'Elder frenzy', 'Clot', 'Dragon Harvest']; + for (var i in Game.goldenCookieBuildingBuffs) { + buffs.push(Game.goldenCookieBuildingBuffs[i][0], Game.goldenCookieBuildingBuffs[i][1]); + } + for (var i in buffs) { + if (Game.hasBuff(buffs[i]) && Game.buffs[buffs[i]].power) mult *= Game.buffs[buffs[i]].power; + } + return mult; +} + CM.Sim.InitData = function() { // Buildings CM.Sim.Objects = []; @@ -234,8 +248,8 @@ CM.Sim.CalculateGains = function() { if (rawCookiesPs >= Game.CpsAchievements[i].threshold) CM.Sim.Win(Game.CpsAchievements[i].name); } - if (Game.frenzy > 0) mult *= Game.frenzyPower; - + mult *= CM.Sim.getCPSBuffMult(); + // Pointless? name = Game.bakeryName.toLowerCase(); if (name == 'orteil') mult *= 0.99; @@ -254,7 +268,9 @@ CM.Sim.CalculateGains = function() { mult *= goldenSwitchMult; } - CM.Sim.cookiesPs *= mult; + CM.Sim.cookiesPs *= mult; + + if (Game.hasBuff('Cursed finger')) Game.cookiesPs = 0; }; CM.Sim.CheckOtherAchiev = function() { From 91d2ea8df73106a337a755d72b36cf14009d5a23 Mon Sep 17 00:00:00 2001 From: Aktanusa Date: Thu, 28 Apr 2016 08:48:35 -0400 Subject: [PATCH 02/22] Hopefully fix the issue of GC timer not popping GC in Firefox (Issue #81) --- CookieMonster.js | 2 +- src/Disp.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/CookieMonster.js b/CookieMonster.js index 39f9113..e892610 100644 --- a/CookieMonster.js +++ b/CookieMonster.js @@ -1207,7 +1207,7 @@ CM.Disp.CreateGCTimer = function() { CM.Disp.GCTimer.style.fontFamily = '\"Kavoon\", Georgia, serif'; CM.Disp.GCTimer.style.fontSize = '35px'; CM.Disp.GCTimer.style.cursor = 'pointer'; - CM.Disp.GCTimer.onclick = function () {CM.Disp.goldenShimmer.pop(event); CM.Disp.GCTimer.style.display = 'none';}; + CM.Disp.GCTimer.onclick = function () {CM.Disp.goldenShimmer.pop(); CM.Disp.GCTimer.style.display = 'none';}; l('game').appendChild(CM.Disp.GCTimer); } diff --git a/src/Disp.js b/src/Disp.js index 8f69832..5b5f6c3 100644 --- a/src/Disp.js +++ b/src/Disp.js @@ -705,7 +705,7 @@ CM.Disp.CreateGCTimer = function() { CM.Disp.GCTimer.style.fontFamily = '\"Kavoon\", Georgia, serif'; CM.Disp.GCTimer.style.fontSize = '35px'; CM.Disp.GCTimer.style.cursor = 'pointer'; - CM.Disp.GCTimer.onclick = function () {CM.Disp.goldenShimmer.pop(event); CM.Disp.GCTimer.style.display = 'none';}; + CM.Disp.GCTimer.onclick = function () {CM.Disp.goldenShimmer.pop(); CM.Disp.GCTimer.style.display = 'none';}; l('game').appendChild(CM.Disp.GCTimer); } From e62b7bfe043bf2b964da79cbd4a8da0349c29113 Mon Sep 17 00:00:00 2001 From: Aktanusa Date: Thu, 28 Apr 2016 10:00:14 -0400 Subject: [PATCH 03/22] Fixed GC CSS hover wasn't showing with GC timer --- CookieMonster.js | 2 ++ src/Disp.js | 2 ++ 2 files changed, 4 insertions(+) diff --git a/CookieMonster.js b/CookieMonster.js index e892610..5a95a1a 100644 --- a/CookieMonster.js +++ b/CookieMonster.js @@ -1208,6 +1208,8 @@ CM.Disp.CreateGCTimer = function() { CM.Disp.GCTimer.style.fontSize = '35px'; CM.Disp.GCTimer.style.cursor = 'pointer'; CM.Disp.GCTimer.onclick = function () {CM.Disp.goldenShimmer.pop(); CM.Disp.GCTimer.style.display = 'none';}; + CM.Disp.GCTimer.onmouseover = function() {CM.Disp.goldenShimmer.l.style.filter = 'brightness(125%) drop-shadow(0px 0px 3px rgba(255,255,255,1))'; CM.Disp.goldenShimmer.l.style.webkitFilter = 'brightness(125%) drop-shadow(0px 0px 3px rgba(255,255,255,1))';}; + CM.Disp.GCTimer.onmouseout = function() {CM.Disp.goldenShimmer.l.style.filter = ''; CM.Disp.goldenShimmer.l.style.webkitFilter = '';}; l('game').appendChild(CM.Disp.GCTimer); } diff --git a/src/Disp.js b/src/Disp.js index 5b5f6c3..9a8d5bf 100644 --- a/src/Disp.js +++ b/src/Disp.js @@ -706,6 +706,8 @@ CM.Disp.CreateGCTimer = function() { CM.Disp.GCTimer.style.fontSize = '35px'; CM.Disp.GCTimer.style.cursor = 'pointer'; CM.Disp.GCTimer.onclick = function () {CM.Disp.goldenShimmer.pop(); CM.Disp.GCTimer.style.display = 'none';}; + CM.Disp.GCTimer.onmouseover = function() {CM.Disp.goldenShimmer.l.style.filter = 'brightness(125%) drop-shadow(0px 0px 3px rgba(255,255,255,1))'; CM.Disp.goldenShimmer.l.style.webkitFilter = 'brightness(125%) drop-shadow(0px 0px 3px rgba(255,255,255,1))';}; + CM.Disp.GCTimer.onmouseout = function() {CM.Disp.goldenShimmer.l.style.filter = ''; CM.Disp.goldenShimmer.l.style.webkitFilter = '';}; l('game').appendChild(CM.Disp.GCTimer); } From 9555e73475752f315ed9557521b55b4f6b76d66d Mon Sep 17 00:00:00 2001 From: Aktanusa Date: Thu, 28 Apr 2016 17:43:07 -0400 Subject: [PATCH 04/22] Fixed buff bars (Issue #77) --- CookieMonster.js | 40 +++++++++++++++++++++++++++++++++++----- src/Disp.js | 40 +++++++++++++++++++++++++++++++++++----- 2 files changed, 70 insertions(+), 10 deletions(-) diff --git a/CookieMonster.js b/CookieMonster.js index 5a95a1a..b320937 100644 --- a/CookieMonster.js +++ b/CookieMonster.js @@ -752,7 +752,7 @@ CM.Disp.CreateTimerBar = function() { var type = document.createElement('span'); type.style.display = 'inline-block'; type.style.textAlign = 'right'; - type.style.width = '78px'; + type.style.width = '108px'; type.style.marginRight = '5px'; type.style.verticalAlign = 'text-top'; type.textContent = name; @@ -844,8 +844,8 @@ CM.Disp.ToggleTimerBarPos = function() { CM.Disp.UpdateTimerBar = function() { if (CM.Config.TimerBar == 1) { - // label width: 83, timer width: 26, div margin: 20 - var maxWidth = CM.Disp.TimerBar.offsetWidth - 129; + // label width: 113, timer width: 26, div margin: 20 + var maxWidth = CM.Disp.TimerBar.offsetWidth - 159; var count = 0; if (Game.shimmerTypes['golden'].spawned == 0 && !Game.Has('Golden switch [off]')) { @@ -878,7 +878,36 @@ CM.Disp.UpdateTimerBar = function() { CM.Disp.TimerBarRen.style.display = 'none'; } - if (Game.frenzy > 0) { + var buffCount = 0; + for (var i in Game.buffs) { + if (Game.buffs[i]) { + buffCount++; + CM.Disp['TimerBarBuff' + buffCount].style.display = ''; + l('CMTimerBarBuff' + buffCount + 'Type').textContent = Game.buffs[i].name; + var classColor = ''; + if (typeof CM.Disp.buffColors[Game.buffs[i].name] !== 'undefined') { + classColor = CM.Disp.buffColors[Game.buffs[i].name]; + } + else { + classColor = CM.Disp.colorPurple; + } + l('CMTimerBarBuff' + buffCount + 'Bar').className = CM.Disp.colorBackPre + classColor; + l('CMTimerBarBuff' + buffCount + 'Bar').style.width = Math.round(Game.buffs[i].time * maxWidth / Game.buffs[i].maxTime) + 'px'; + l('CMTimerBarBuff' + buffCount + 'Time').textContent = Math.ceil(Game.buffs[i].time / Game.fps); + count++; + if (buffCount == 2) { + break; + } + } + } + if (buffCount < 2) { + CM.Disp.TimerBarBuff2.style.display = 'none'; + if (buffCount < 1) { + CM.Disp.TimerBarBuff1.style.display = 'none'; + } + } + + /*if (Game.frenzy > 0) { CM.Disp.TimerBarBuff1.style.display = ''; if (Game.frenzyPower == 7) { l('CMTimerBarBuff1Type').textContent = 'Frenzy'; @@ -920,7 +949,7 @@ CM.Disp.UpdateTimerBar = function() { } else { CM.Disp.TimerBarBuff2.style.display = 'none'; - } + }*/ if (count != 0) { var height = 48 / count; @@ -2279,6 +2308,7 @@ CM.Disp.colorGray = 'Gray'; CM.Disp.colorPink = 'Pink'; CM.Disp.colorBrown = 'Brown'; CM.Disp.colors = [CM.Disp.colorBlue, CM.Disp.colorGreen, CM.Disp.colorYellow, CM.Disp.colorOrange, CM.Disp.colorRed, CM.Disp.colorPurple, CM.Disp.colorGray, CM.Disp.colorPink, CM.Disp.colorBrown]; +CM.Disp.buffColors = {'Frenzy': CM.Disp.colorYellow, 'Dragon Harvest': CM.Disp.colorBrown, 'Elder frenzy': CM.Disp.colorGreen, 'Clot': CM.Disp.colorRed, 'Click frenzy': CM.Disp.colorBlue, 'Dragonflight': CM.Disp.colorPink}; CM.Disp.lastGoldenCookieState = 0; CM.Disp.lastSeasonPopupState = 0; CM.Disp.goldenShimmer; diff --git a/src/Disp.js b/src/Disp.js index 9a8d5bf..5438267 100644 --- a/src/Disp.js +++ b/src/Disp.js @@ -250,7 +250,7 @@ CM.Disp.CreateTimerBar = function() { var type = document.createElement('span'); type.style.display = 'inline-block'; type.style.textAlign = 'right'; - type.style.width = '78px'; + type.style.width = '108px'; type.style.marginRight = '5px'; type.style.verticalAlign = 'text-top'; type.textContent = name; @@ -342,8 +342,8 @@ CM.Disp.ToggleTimerBarPos = function() { CM.Disp.UpdateTimerBar = function() { if (CM.Config.TimerBar == 1) { - // label width: 83, timer width: 26, div margin: 20 - var maxWidth = CM.Disp.TimerBar.offsetWidth - 129; + // label width: 113, timer width: 26, div margin: 20 + var maxWidth = CM.Disp.TimerBar.offsetWidth - 159; var count = 0; if (Game.shimmerTypes['golden'].spawned == 0 && !Game.Has('Golden switch [off]')) { @@ -376,7 +376,36 @@ CM.Disp.UpdateTimerBar = function() { CM.Disp.TimerBarRen.style.display = 'none'; } - if (Game.frenzy > 0) { + var buffCount = 0; + for (var i in Game.buffs) { + if (Game.buffs[i]) { + buffCount++; + CM.Disp['TimerBarBuff' + buffCount].style.display = ''; + l('CMTimerBarBuff' + buffCount + 'Type').textContent = Game.buffs[i].name; + var classColor = ''; + if (typeof CM.Disp.buffColors[Game.buffs[i].name] !== 'undefined') { + classColor = CM.Disp.buffColors[Game.buffs[i].name]; + } + else { + classColor = CM.Disp.colorPurple; + } + l('CMTimerBarBuff' + buffCount + 'Bar').className = CM.Disp.colorBackPre + classColor; + l('CMTimerBarBuff' + buffCount + 'Bar').style.width = Math.round(Game.buffs[i].time * maxWidth / Game.buffs[i].maxTime) + 'px'; + l('CMTimerBarBuff' + buffCount + 'Time').textContent = Math.ceil(Game.buffs[i].time / Game.fps); + count++; + if (buffCount == 2) { + break; + } + } + } + if (buffCount < 2) { + CM.Disp.TimerBarBuff2.style.display = 'none'; + if (buffCount < 1) { + CM.Disp.TimerBarBuff1.style.display = 'none'; + } + } + + /*if (Game.frenzy > 0) { CM.Disp.TimerBarBuff1.style.display = ''; if (Game.frenzyPower == 7) { l('CMTimerBarBuff1Type').textContent = 'Frenzy'; @@ -418,7 +447,7 @@ CM.Disp.UpdateTimerBar = function() { } else { CM.Disp.TimerBarBuff2.style.display = 'none'; - } + }*/ if (count != 0) { var height = 48 / count; @@ -1777,6 +1806,7 @@ CM.Disp.colorGray = 'Gray'; CM.Disp.colorPink = 'Pink'; CM.Disp.colorBrown = 'Brown'; CM.Disp.colors = [CM.Disp.colorBlue, CM.Disp.colorGreen, CM.Disp.colorYellow, CM.Disp.colorOrange, CM.Disp.colorRed, CM.Disp.colorPurple, CM.Disp.colorGray, CM.Disp.colorPink, CM.Disp.colorBrown]; +CM.Disp.buffColors = {'Frenzy': CM.Disp.colorYellow, 'Dragon Harvest': CM.Disp.colorBrown, 'Elder frenzy': CM.Disp.colorGreen, 'Clot': CM.Disp.colorRed, 'Click frenzy': CM.Disp.colorBlue, 'Dragonflight': CM.Disp.colorPink}; CM.Disp.lastGoldenCookieState = 0; CM.Disp.lastSeasonPopupState = 0; CM.Disp.goldenShimmer; From 4d2287a7aea4b065a9d39d2dcbdb7381cf4fe445 Mon Sep 17 00:00:00 2001 From: Aktanusa Date: Thu, 28 Apr 2016 17:56:46 -0400 Subject: [PATCH 05/22] Change to Version 2.6 --- CookieMonster.js | 2 +- src/Main.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/CookieMonster.js b/CookieMonster.js index 556e0c0..68e799d 100644 --- a/CookieMonster.js +++ b/CookieMonster.js @@ -2482,7 +2482,7 @@ CM.ConfigDefault = {BotBar: 1, TimerBar: 1, TimerBarPos: 0, BuildColor: 1, BulkB CM.ConfigPrefix = 'CMConfig'; CM.VersionMajor = '2'; -CM.VersionMinor = '5'; +CM.VersionMinor = '6'; /******* * Sim * diff --git a/src/Main.js b/src/Main.js index 65d5763..eb9fc67 100644 --- a/src/Main.js +++ b/src/Main.js @@ -209,5 +209,5 @@ CM.ConfigDefault = {BotBar: 1, TimerBar: 1, TimerBarPos: 0, BuildColor: 1, BulkB CM.ConfigPrefix = 'CMConfig'; CM.VersionMajor = '2'; -CM.VersionMinor = '5'; +CM.VersionMinor = '6'; From ba726ec4355d426b389a7ead379508ae14b1931e Mon Sep 17 00:00:00 2001 From: Aktanusa Date: Thu, 28 Apr 2016 17:59:01 -0400 Subject: [PATCH 06/22] Fixed minor bug (which may never happen anyway) --- CookieMonster.js | 4 ++-- src/Cache.js | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/CookieMonster.js b/CookieMonster.js index 68e799d..c0586a5 100644 --- a/CookieMonster.js +++ b/CookieMonster.js @@ -179,7 +179,7 @@ CM.Cache.RemakeChain = function() { CM.Cache.Chain = CM.Cache.NextNumber(CM.Cache.ChainReward) / 0.25; } if (maxPayout < CM.Cache.ChainWrathReward) { - CM.Cache.Chain = 0; + CM.Cache.ChainWrath = 0; } else { CM.Cache.ChainWrath = CM.Cache.NextNumber(CM.Cache.ChainWrathReward) / 0.25; @@ -196,7 +196,7 @@ CM.Cache.RemakeChain = function() { CM.Cache.ChainFrenzy = CM.Cache.NextNumber(CM.Cache.ChainFrenzyReward) / 0.25; } if ((maxPayout * 7) < CM.Cache.ChainFrenzyWrathReward) { - CM.Cache.ChainFrenzy = 0; + CM.Cache.ChainFrenzyWrath = 0; } else { CM.Cache.ChainFrenzyWrath = CM.Cache.NextNumber(CM.Cache.ChainFrenzyWrathReward) / 0.25; diff --git a/src/Cache.js b/src/Cache.js index f1a36cc..787355c 100644 --- a/src/Cache.js +++ b/src/Cache.js @@ -159,7 +159,7 @@ CM.Cache.RemakeChain = function() { CM.Cache.Chain = CM.Cache.NextNumber(CM.Cache.ChainReward) / 0.25; } if (maxPayout < CM.Cache.ChainWrathReward) { - CM.Cache.Chain = 0; + CM.Cache.ChainWrath = 0; } else { CM.Cache.ChainWrath = CM.Cache.NextNumber(CM.Cache.ChainWrathReward) / 0.25; @@ -176,7 +176,7 @@ CM.Cache.RemakeChain = function() { CM.Cache.ChainFrenzy = CM.Cache.NextNumber(CM.Cache.ChainFrenzyReward) / 0.25; } if ((maxPayout * 7) < CM.Cache.ChainFrenzyWrathReward) { - CM.Cache.ChainFrenzy = 0; + CM.Cache.ChainFrenzyWrath = 0; } else { CM.Cache.ChainFrenzyWrath = CM.Cache.NextNumber(CM.Cache.ChainFrenzyWrathReward) / 0.25; From ae11e1db737938f4f04b4a4c59a917079a9b2c13 Mon Sep 17 00:00:00 2001 From: Jean-Christophe Bourgault Date: Sun, 1 May 2016 22:27:39 -0400 Subject: [PATCH 07/22] Added config for "XX:XX:XX:XX:XX" --- src/Config.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Config.js b/src/Config.js index c39f99b..b11fa35 100644 --- a/src/Config.js +++ b/src/Config.js @@ -145,5 +145,6 @@ CM.ConfigData.ToolWrink = {label: ['Wrinkler Tooltip OFF', 'Wrinkler Tooltip ON' CM.ConfigData.Stats = {label: ['Statistics OFF', 'Statistics ON'], desc: 'Extra Cookie Monster statistics!', toggle: true}; CM.ConfigData.UpStats = {label: ['Statistics Update Rate (Default)', 'Statistics Update Rate (1s)'], desc: 'Default Game rate is once every 5 seconds', toggle: false}; CM.ConfigData.SayTime = {label: ['Format Time OFF', 'Format Time ON'], desc: 'Change how time is displayed in statistics', toggle: true, func: function() {CM.Disp.ToggleSayTime();}}; +CM.ConfigData.TimeFormat = {label: ['Time XXy, XXd, XXh, XXm, XXs', 'Time XX:XX:XX:XX:XX'], desc: 'Change the time format', toggle:true}; CM.ConfigData.Scale = {label: ['Game\'s Setting Scale', 'Metric', 'Short Scale', 'Scientific Notation'], desc: 'Change how long numbers are handled', toggle: false, func: function() {CM.Disp.RefreshScale();}}; From 6107be18a9c02e1b838ef9c8d84645a1f3534cd2 Mon Sep 17 00:00:00 2001 From: Jean-Christophe Bourgault Date: Sun, 1 May 2016 22:30:24 -0400 Subject: [PATCH 08/22] Added listing for TimeFormat --- src/Disp.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Disp.js b/src/Disp.js index b150200..74ff8cb 100644 --- a/src/Disp.js +++ b/src/Disp.js @@ -957,6 +957,7 @@ CM.Disp.AddMenuPref = function(title) { frag.appendChild(listing('Stats')); frag.appendChild(listing('UpStats')); frag.appendChild(listing('SayTime')); + frag.appendChild(listing('TimeFormat')); frag.appendChild(header('Other')); frag.appendChild(listing('Scale')); From c3e85afb8508c5dea3cffdc330af998462ffb983 Mon Sep 17 00:00:00 2001 From: Jean-Christophe Bourgault Date: Sun, 1 May 2016 22:45:55 -0400 Subject: [PATCH 09/22] Added an "if" for the XX:XX:XX:XX:XX time format Maybe the "if" is constructed backwards... simply a matter of changing the 1 to 0 in the condition. Otherwise I think it's good. --- src/Disp.js | 64 +++++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 47 insertions(+), 17 deletions(-) diff --git a/src/Disp.js b/src/Disp.js index 74ff8cb..a8f1852 100644 --- a/src/Disp.js +++ b/src/Disp.js @@ -4,24 +4,54 @@ CM.Disp.FormatTime = function(time, format) { if (time == 'Infinity') return time; - if (time > 777600000) return format ? 'Over 9000 days!' : '>9000d'; - time = Math.ceil(time); - var d = Math.floor(time / 86400); - var h = Math.floor(time % 86400 / 3600); - var m = Math.floor(time % 3600 / 60); - var s = Math.floor(time % 60); - var str = ''; - if (d > 0) { - str += d + (format ? (d == 1 ? ' day' : ' days') : 'd') + ', '; + if (CM.ConfigData.TimeFormat == 1) { + if (time > 3153600000) return 'XX:XX:XX:XX:XX'; + time = Math.ceil(time); + var y = Math.floor(time / 31536000); + var d = Math.floor(time % 31536000 / 86400); + var h = Math.floor(time % 86400 / 3600); + var m = Math.floor(time % 3600 / 60); + var s = Math.floor(time % 60); + var str = ''; + if (y < 10) { + str += '0'; + } + str += y + ':'; + if (d < 10) { + str += '0'; + } + str += d + ':'; + if (h < 10) { + str += '0'; + } + str += h + ':'; + if (m < 10) { + str += '0'; + } + str += m + ':'; + if (s < 10) { + str += '0'; + } + str += s + ':'; + } else { + if (time > 777600000) return format ? 'Over 9000 days!' : '>9000d'; + time = Math.ceil(time); + var d = Math.floor(time / 86400); + var h = Math.floor(time % 86400 / 3600); + var m = Math.floor(time % 3600 / 60); + var s = Math.floor(time % 60); + var str = ''; + if (d > 0) { + str += d + (format ? (d == 1 ? ' day' : ' days') : 'd') + ', '; + } + if (str.length > 0 || h > 0) { + str += h + (format ? (h == 1 ? ' hour' : ' hours') : 'h') + ', '; + } + if (str.length > 0 || m > 0) { + str += m + (format ? (m == 1 ? ' minute' : ' minutes') : 'm') + ', '; + } + str += s + (format ? (s == 1 ? ' second' : ' seconds') : 's'); } - if (str.length > 0 || h > 0) { - str += h + (format ? (h == 1 ? ' hour' : ' hours') : 'h') + ', '; - } - if (str.length > 0 || m > 0) { - str += m + (format ? (m == 1 ? ' minute' : ' minutes') : 'm') + ', '; - } - str += s + (format ? (s == 1 ? ' second' : ' seconds') : 's'); - return str; } From 5fb084bd128b4b08b49479b9460636907b0a19cf Mon Sep 17 00:00:00 2001 From: Jean-Christophe Bourgault Date: Mon, 2 May 2016 20:13:12 -0400 Subject: [PATCH 10/22] Added condition for format and time lower than 1 --- src/Disp.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Disp.js b/src/Disp.js index a8f1852..3def81a 100644 --- a/src/Disp.js +++ b/src/Disp.js @@ -6,6 +6,7 @@ CM.Disp.FormatTime = function(time, format) { if (time == 'Infinity') return time; if (CM.ConfigData.TimeFormat == 1) { if (time > 3153600000) return 'XX:XX:XX:XX:XX'; + if ((format == 1) && (time < 1)) return ''; time = Math.ceil(time); var y = Math.floor(time / 31536000); var d = Math.floor(time % 31536000 / 86400); From ae2913217552dc4c420a093cc0c81c0e05a32a69 Mon Sep 17 00:00:00 2001 From: Jean-Christophe Bourgault Date: Mon, 2 May 2016 20:33:48 -0400 Subject: [PATCH 11/22] Made a single second look nicer Changed the condition so it returns only ":01" when the time is at a second (or less) for the items with format = 1. --- src/Disp.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Disp.js b/src/Disp.js index 3def81a..773ca06 100644 --- a/src/Disp.js +++ b/src/Disp.js @@ -6,7 +6,7 @@ CM.Disp.FormatTime = function(time, format) { if (time == 'Infinity') return time; if (CM.ConfigData.TimeFormat == 1) { if (time > 3153600000) return 'XX:XX:XX:XX:XX'; - if ((format == 1) && (time < 1)) return ''; + if ((format == 1) && (time == 1)) return ':01'; time = Math.ceil(time); var y = Math.floor(time / 31536000); var d = Math.floor(time % 31536000 / 86400); From 37f425250975d202da38c03550f4bb28d98a8bcf Mon Sep 17 00:00:00 2001 From: Jean-Christophe Bourgault Date: Mon, 2 May 2016 20:45:33 -0400 Subject: [PATCH 12/22] Removed the line, back to the original --- src/Disp.js | 1 - 1 file changed, 1 deletion(-) diff --git a/src/Disp.js b/src/Disp.js index 773ca06..a8f1852 100644 --- a/src/Disp.js +++ b/src/Disp.js @@ -6,7 +6,6 @@ CM.Disp.FormatTime = function(time, format) { if (time == 'Infinity') return time; if (CM.ConfigData.TimeFormat == 1) { if (time > 3153600000) return 'XX:XX:XX:XX:XX'; - if ((format == 1) && (time == 1)) return ':01'; time = Math.ceil(time); var y = Math.floor(time / 31536000); var d = Math.floor(time % 31536000 / 86400); From 5a9d3785854ecb9aef6497670816608b4cc1ea24 Mon Sep 17 00:00:00 2001 From: Aktanusa Date: Mon, 2 May 2016 22:18:10 -0400 Subject: [PATCH 13/22] Added minor fixes to @JCBourgo's pull (Issue #85) --- CookieMonster.js | 66 +++++++++++++++++++++++++++++++++++------------- src/Config.js | 2 +- src/Disp.js | 12 ++++----- 3 files changed, 56 insertions(+), 24 deletions(-) diff --git a/CookieMonster.js b/CookieMonster.js index c0586a5..9a2e1a9 100644 --- a/CookieMonster.js +++ b/CookieMonster.js @@ -493,6 +493,7 @@ CM.ConfigData.ToolWarnCautPos = {label: ['Tooltip Warning/Caution Position (Left CM.ConfigData.ToolWrink = {label: ['Wrinkler Tooltip OFF', 'Wrinkler Tooltip ON'], desc: 'Shows the amount of cookies a wrinkler will give when popping it', toggle: true}; CM.ConfigData.Stats = {label: ['Statistics OFF', 'Statistics ON'], desc: 'Extra Cookie Monster statistics!', toggle: true}; CM.ConfigData.UpStats = {label: ['Statistics Update Rate (Default)', 'Statistics Update Rate (1s)'], desc: 'Default Game rate is once every 5 seconds', toggle: false}; +CM.ConfigData.TimeFormat = {label: ['Time XXd, XXh, XXm, XXs', 'Time XX:XX:XX:XX:XX'], desc: 'Change the time format', toggle: false}; CM.ConfigData.SayTime = {label: ['Format Time OFF', 'Format Time ON'], desc: 'Change how time is displayed in statistics', toggle: true, func: function() {CM.Disp.ToggleSayTime();}}; CM.ConfigData.Scale = {label: ['Game\'s Setting Scale', 'Metric', 'Short Scale', 'Scientific Notation'], desc: 'Change how long numbers are handled', toggle: false, func: function() {CM.Disp.RefreshScale();}}; @@ -510,24 +511,54 @@ CM.Data.ValCookies = ['Pure heart biscuits', 'Ardent heart biscuits', 'Sour hear CM.Disp.FormatTime = function(time, format) { if (time == 'Infinity') return time; - if (time > 777600000) return format ? 'Over 9000 days!' : '>9000d'; - time = Math.ceil(time); - var d = Math.floor(time / 86400); - var h = Math.floor(time % 86400 / 3600); - var m = Math.floor(time % 3600 / 60); - var s = Math.floor(time % 60); - var str = ''; - if (d > 0) { - str += d + (format ? (d == 1 ? ' day' : ' days') : 'd') + ', '; + if (CM.Config.TimeFormat) { + if (time > 3155760000) return 'XX:XX:XX:XX:XX'; + time = Math.ceil(time); + var y = Math.floor(time / 31557600); + var d = Math.floor(time % 31557600 / 86400); + var h = Math.floor(time % 86400 / 3600); + var m = Math.floor(time % 3600 / 60); + var s = Math.floor(time % 60); + var str = ''; + if (y < 10) { + str += '0'; + } + str += y + ':'; + if (d < 10) { + str += '0'; + } + str += d + ':'; + if (h < 10) { + str += '0'; + } + str += h + ':'; + if (m < 10) { + str += '0'; + } + str += m + ':'; + if (s < 10) { + str += '0'; + } + str += s; + } else { + if (time > 777600000) return format ? 'Over 9000 days!' : '>9000d'; + time = Math.ceil(time); + var d = Math.floor(time / 86400); + var h = Math.floor(time % 86400 / 3600); + var m = Math.floor(time % 3600 / 60); + var s = Math.floor(time % 60); + var str = ''; + if (d > 0) { + str += d + (format ? (d == 1 ? ' day' : ' days') : 'd') + ', '; + } + if (str.length > 0 || h > 0) { + str += h + (format ? (h == 1 ? ' hour' : ' hours') : 'h') + ', '; + } + if (str.length > 0 || m > 0) { + str += m + (format ? (m == 1 ? ' minute' : ' minutes') : 'm') + ', '; + } + str += s + (format ? (s == 1 ? ' second' : ' seconds') : 's'); } - if (str.length > 0 || h > 0) { - str += h + (format ? (h == 1 ? ' hour' : ' hours') : 'h') + ', '; - } - if (str.length > 0 || m > 0) { - str += m + (format ? (m == 1 ? ' minute' : ' minutes') : 'm') + ', '; - } - str += s + (format ? (s == 1 ? ' second' : ' seconds') : 's'); - return str; } @@ -1462,6 +1493,7 @@ CM.Disp.AddMenuPref = function(title) { frag.appendChild(header('Statistics')); frag.appendChild(listing('Stats')); frag.appendChild(listing('UpStats')); + frag.appendChild(listing('TimeFormat')); frag.appendChild(listing('SayTime')); frag.appendChild(header('Other')); diff --git a/src/Config.js b/src/Config.js index b11fa35..6da6bad 100644 --- a/src/Config.js +++ b/src/Config.js @@ -144,7 +144,7 @@ CM.ConfigData.ToolWarnCautPos = {label: ['Tooltip Warning/Caution Position (Left CM.ConfigData.ToolWrink = {label: ['Wrinkler Tooltip OFF', 'Wrinkler Tooltip ON'], desc: 'Shows the amount of cookies a wrinkler will give when popping it', toggle: true}; CM.ConfigData.Stats = {label: ['Statistics OFF', 'Statistics ON'], desc: 'Extra Cookie Monster statistics!', toggle: true}; CM.ConfigData.UpStats = {label: ['Statistics Update Rate (Default)', 'Statistics Update Rate (1s)'], desc: 'Default Game rate is once every 5 seconds', toggle: false}; +CM.ConfigData.TimeFormat = {label: ['Time XXd, XXh, XXm, XXs', 'Time XX:XX:XX:XX:XX'], desc: 'Change the time format', toggle: false}; CM.ConfigData.SayTime = {label: ['Format Time OFF', 'Format Time ON'], desc: 'Change how time is displayed in statistics', toggle: true, func: function() {CM.Disp.ToggleSayTime();}}; -CM.ConfigData.TimeFormat = {label: ['Time XXy, XXd, XXh, XXm, XXs', 'Time XX:XX:XX:XX:XX'], desc: 'Change the time format', toggle:true}; CM.ConfigData.Scale = {label: ['Game\'s Setting Scale', 'Metric', 'Short Scale', 'Scientific Notation'], desc: 'Change how long numbers are handled', toggle: false, func: function() {CM.Disp.RefreshScale();}}; diff --git a/src/Disp.js b/src/Disp.js index a8f1852..7279416 100644 --- a/src/Disp.js +++ b/src/Disp.js @@ -4,11 +4,11 @@ CM.Disp.FormatTime = function(time, format) { if (time == 'Infinity') return time; - if (CM.ConfigData.TimeFormat == 1) { - if (time > 3153600000) return 'XX:XX:XX:XX:XX'; + if (CM.Config.TimeFormat) { + if (time > 3155760000) return 'XX:XX:XX:XX:XX'; time = Math.ceil(time); - var y = Math.floor(time / 31536000); - var d = Math.floor(time % 31536000 / 86400); + var y = Math.floor(time / 31557600); + var d = Math.floor(time % 31557600 / 86400); var h = Math.floor(time % 86400 / 3600); var m = Math.floor(time % 3600 / 60); var s = Math.floor(time % 60); @@ -32,7 +32,7 @@ CM.Disp.FormatTime = function(time, format) { if (s < 10) { str += '0'; } - str += s + ':'; + str += s; } else { if (time > 777600000) return format ? 'Over 9000 days!' : '>9000d'; time = Math.ceil(time); @@ -986,8 +986,8 @@ CM.Disp.AddMenuPref = function(title) { frag.appendChild(header('Statistics')); frag.appendChild(listing('Stats')); frag.appendChild(listing('UpStats')); - frag.appendChild(listing('SayTime')); frag.appendChild(listing('TimeFormat')); + frag.appendChild(listing('SayTime')); frag.appendChild(header('Other')); frag.appendChild(listing('Scale')); From eea46560946f9c59da4e1ba7f7c1d49bd5f73fe3 Mon Sep 17 00:00:00 2001 From: Aktanusa Date: Mon, 2 May 2016 22:25:23 -0400 Subject: [PATCH 14/22] Minor bug forgot to fix for Issue #85 --- CookieMonster.js | 2 +- src/Main.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/CookieMonster.js b/CookieMonster.js index 9a2e1a9..ce31109 100644 --- a/CookieMonster.js +++ b/CookieMonster.js @@ -2510,7 +2510,7 @@ CM.DelayInit = function() { Game.Win('Third-party'); } -CM.ConfigDefault = {BotBar: 1, TimerBar: 1, TimerBarPos: 0, BuildColor: 1, BulkBuildColor: 0, UpBarColor: 1, CalcWrink: 1, CPSMode: 1, AvgCPSHist: 2, AvgClicksHist: 2, ToolWarnCautBon: 0, Flash: 1, Sound: 1, Volume: 100, GCSoundURL: 'http://freesound.org/data/previews/66/66717_931655-lq.mp3', SeaSoundURL: 'http://www.freesound.org/data/previews/121/121099_2193266-lq.mp3', GCTimer: 1, Title: 1, Favicon: 1, Tooltip: 1, TooltipAmor: 0, ToolWarnCaut: 1, ToolWarnCautPos: 1, ToolWrink: 1, Stats: 1, UpStats: 1, SayTime: 1, Scale: 2, StatsPref: {Lucky: 1, Chain: 1, Prestige: 1, Wrink: 1, Sea: 1, Misc: 1}, Colors : {Blue: '#4bb8f0', Green: '#00ff00', Yellow: '#ffff00', Orange: '#ff7f00', Red: '#ff0000', Purple: '#ff00ff', Gray: '#b3b3b3', Pink: '#ff1493', Brown: '#8b4513'}}; +CM.ConfigDefault = {BotBar: 1, TimerBar: 1, TimerBarPos: 0, BuildColor: 1, BulkBuildColor: 0, UpBarColor: 1, CalcWrink: 1, CPSMode: 1, AvgCPSHist: 2, AvgClicksHist: 2, ToolWarnCautBon: 0, Flash: 1, Sound: 1, Volume: 100, GCSoundURL: 'http://freesound.org/data/previews/66/66717_931655-lq.mp3', SeaSoundURL: 'http://www.freesound.org/data/previews/121/121099_2193266-lq.mp3', GCTimer: 1, Title: 1, Favicon: 1, Tooltip: 1, TooltipAmor: 0, ToolWarnCaut: 1, ToolWarnCautPos: 1, ToolWrink: 1, Stats: 1, UpStats: 1, TimeFormat: 0, SayTime: 1, Scale: 2, StatsPref: {Lucky: 1, Chain: 1, Prestige: 1, Wrink: 1, Sea: 1, Misc: 1}, Colors : {Blue: '#4bb8f0', Green: '#00ff00', Yellow: '#ffff00', Orange: '#ff7f00', Red: '#ff0000', Purple: '#ff00ff', Gray: '#b3b3b3', Pink: '#ff1493', Brown: '#8b4513'}}; CM.ConfigPrefix = 'CMConfig'; CM.VersionMajor = '2'; diff --git a/src/Main.js b/src/Main.js index eb9fc67..b5e0ef3 100644 --- a/src/Main.js +++ b/src/Main.js @@ -205,7 +205,7 @@ CM.DelayInit = function() { Game.Win('Third-party'); } -CM.ConfigDefault = {BotBar: 1, TimerBar: 1, TimerBarPos: 0, BuildColor: 1, BulkBuildColor: 0, UpBarColor: 1, CalcWrink: 1, CPSMode: 1, AvgCPSHist: 2, AvgClicksHist: 2, ToolWarnCautBon: 0, Flash: 1, Sound: 1, Volume: 100, GCSoundURL: 'http://freesound.org/data/previews/66/66717_931655-lq.mp3', SeaSoundURL: 'http://www.freesound.org/data/previews/121/121099_2193266-lq.mp3', GCTimer: 1, Title: 1, Favicon: 1, Tooltip: 1, TooltipAmor: 0, ToolWarnCaut: 1, ToolWarnCautPos: 1, ToolWrink: 1, Stats: 1, UpStats: 1, SayTime: 1, Scale: 2, StatsPref: {Lucky: 1, Chain: 1, Prestige: 1, Wrink: 1, Sea: 1, Misc: 1}, Colors : {Blue: '#4bb8f0', Green: '#00ff00', Yellow: '#ffff00', Orange: '#ff7f00', Red: '#ff0000', Purple: '#ff00ff', Gray: '#b3b3b3', Pink: '#ff1493', Brown: '#8b4513'}}; +CM.ConfigDefault = {BotBar: 1, TimerBar: 1, TimerBarPos: 0, BuildColor: 1, BulkBuildColor: 0, UpBarColor: 1, CalcWrink: 1, CPSMode: 1, AvgCPSHist: 2, AvgClicksHist: 2, ToolWarnCautBon: 0, Flash: 1, Sound: 1, Volume: 100, GCSoundURL: 'http://freesound.org/data/previews/66/66717_931655-lq.mp3', SeaSoundURL: 'http://www.freesound.org/data/previews/121/121099_2193266-lq.mp3', GCTimer: 1, Title: 1, Favicon: 1, Tooltip: 1, TooltipAmor: 0, ToolWarnCaut: 1, ToolWarnCautPos: 1, ToolWrink: 1, Stats: 1, UpStats: 1, TimeFormat: 0, SayTime: 1, Scale: 2, StatsPref: {Lucky: 1, Chain: 1, Prestige: 1, Wrink: 1, Sea: 1, Misc: 1}, Colors : {Blue: '#4bb8f0', Green: '#00ff00', Yellow: '#ffff00', Orange: '#ff7f00', Red: '#ff0000', Purple: '#ff00ff', Gray: '#b3b3b3', Pink: '#ff1493', Brown: '#8b4513'}}; CM.ConfigPrefix = 'CMConfig'; CM.VersionMajor = '2'; From 76cc63e510f2da75bd86b7e6414ae73e2c60aa51 Mon Sep 17 00:00:00 2001 From: Aktanusa Date: Mon, 2 May 2016 22:58:44 -0400 Subject: [PATCH 15/22] Changed Done! for new timer format (Issue #85) --- CookieMonster.js | 7 ++++++- src/Disp.js | 7 ++++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/CookieMonster.js b/CookieMonster.js index ce31109..15f3594 100644 --- a/CookieMonster.js +++ b/CookieMonster.js @@ -567,7 +567,12 @@ CM.Disp.GetTimeColor = function(price, bank, cps) { var text; if (bank >= price) { color = CM.Disp.colorGreen; - text = 'Done!'; + if (CM.Config.TimeFormat) { + text = '00:00:00:00:00'; + } + else { + text = 'Done!'; + } } else { var time = (price - bank) / cps; diff --git a/src/Disp.js b/src/Disp.js index 7279416..4a4a259 100644 --- a/src/Disp.js +++ b/src/Disp.js @@ -60,7 +60,12 @@ CM.Disp.GetTimeColor = function(price, bank, cps) { var text; if (bank >= price) { color = CM.Disp.colorGreen; - text = 'Done!'; + if (CM.Config.TimeFormat) { + text = '00:00:00:00:00'; + } + else { + text = 'Done!'; + } } else { var time = (price - bank) / cps; From d435e215e883a0a11eb63d5cccc3ea2ca9c150d0 Mon Sep 17 00:00:00 2001 From: DeathOfBalance Date: Tue, 28 Jun 2016 17:51:31 -0400 Subject: [PATCH 16/22] Updated for 2.002 multiplicative egg behavior --- CookieMonster.js | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/CookieMonster.js b/CookieMonster.js index b320937..c2113bf 100644 --- a/CookieMonster.js +++ b/CookieMonster.js @@ -2756,27 +2756,27 @@ CM.Sim.CalculateGains = function() { if (CM.Sim.Has('Kitten experts')) mult *= (1 + (CM.Sim.AchievementsOwned / 25) * 0.2 * milkMult); if (CM.Sim.Has('Kitten angels')) mult *= (1 + (CM.Sim.AchievementsOwned / 25) * 0.1 * milkMult); - var eggMult = 0; - if (CM.Sim.Has('Chicken egg')) eggMult++; - if (CM.Sim.Has('Duck egg')) eggMult++; - if (CM.Sim.Has('Turkey egg')) eggMult++; - if (CM.Sim.Has('Quail egg')) eggMult++; - if (CM.Sim.Has('Robin egg')) eggMult++; - if (CM.Sim.Has('Ostrich egg')) eggMult++; - if (CM.Sim.Has('Cassowary egg')) eggMult++; - if (CM.Sim.Has('Salmon roe')) eggMult++; - if (CM.Sim.Has('Frogspawn')) eggMult++; - if (CM.Sim.Has('Shark egg')) eggMult++; - if (CM.Sim.Has('Turtle egg')) eggMult++; - if (CM.Sim.Has('Ant larva')) eggMult++; + var eggMult = 1; + if (CM.Sim.Has('Chicken egg')) eggMult*=1.01; + if (CM.Sim.Has('Duck egg')) eggMult*=1.01; + if (CM.Sim.Has('Turkey egg')) eggMult*=1.01; + if (CM.Sim.Has('Quail egg')) eggMult*=1.01; + if (CM.Sim.Has('Robin egg')) eggMult*=1.01; + if (CM.Sim.Has('Ostrich egg')) eggMult*=1.01; + if (CM.Sim.Has('Cassowary egg')) eggMult*=1.01; + if (CM.Sim.Has('Salmon roe')) eggMult*=1.01; + if (CM.Sim.Has('Frogspawn')) eggMult*=1.01; + if (CM.Sim.Has('Shark egg')) eggMult*=1.01; + if (CM.Sim.Has('Turtle egg')) eggMult*=1.01; + if (CM.Sim.Has('Ant larva')) eggMult*=1.01; if (CM.Sim.Has('Century egg')) { // The boost increases a little every day, with diminishing returns up to +10% on the 100th day var day = Math.floor((CM.Sim.Date - Game.startDate) / 1000 / 10) * 10 / 60 / 60 / 24; day = Math.min(day,100); - CM.Cache.CentEgg = (1 - Math.pow(1 - day / 100, 3)) * 10; - eggMult += CM.Cache.CentEgg; + CM.Cache.CentEgg = 1 + (1 - Math.pow(1 - day / 100, 3)) * 0.1; + eggMult *= CM.Cache.CentEgg; } - mult *= (1 + 0.01 * eggMult); + mult *= eggMult; if (CM.Sim.hasAura('Radiant Appetite')) mult *= 2; From adef849df990871da334e7e98195cf3bca03d5da Mon Sep 17 00:00:00 2001 From: Aktanusa Date: Tue, 28 Jun 2016 20:38:41 -0400 Subject: [PATCH 17/22] Fixed minor bug with "Cookies To Next Level" stat --- CookieMonster.js | 4 ++-- src/Cache.js | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/CookieMonster.js b/CookieMonster.js index 15f3594..7bf84f6 100644 --- a/CookieMonster.js +++ b/CookieMonster.js @@ -296,8 +296,8 @@ CM.Cache.UpdateAvgCPS = function() { } CM.Cache.AvgCPS = (totalGainBank + (CM.Config.CalcWrink ? totalGainWrink : 0)) / cpsLength; - if (Game.HasUnlocked('Chocolate egg') && !Game.Has('Chocolate egg')) { - CM.Cache.AvgCPSChoEgg = (totalGainBank + (CM.Config.CalcWrink ? totalGainWrink : 0) + totalGainChoEgg) / cpsLength; + if ((Game.HasUnlocked('Chocolate egg') && !Game.Has('Chocolate egg')) || CM.Config.CalcWrink == 0) { + CM.Cache.AvgCPSChoEgg = (totalGainBank + totalGainWrink + totalGainChoEgg) / cpsLength; } else { CM.Cache.AvgCPSChoEgg = CM.Cache.AvgCPS; diff --git a/src/Cache.js b/src/Cache.js index 787355c..9b3e72e 100644 --- a/src/Cache.js +++ b/src/Cache.js @@ -276,8 +276,8 @@ CM.Cache.UpdateAvgCPS = function() { } CM.Cache.AvgCPS = (totalGainBank + (CM.Config.CalcWrink ? totalGainWrink : 0)) / cpsLength; - if (Game.HasUnlocked('Chocolate egg') && !Game.Has('Chocolate egg')) { - CM.Cache.AvgCPSChoEgg = (totalGainBank + (CM.Config.CalcWrink ? totalGainWrink : 0) + totalGainChoEgg) / cpsLength; + if ((Game.HasUnlocked('Chocolate egg') && !Game.Has('Chocolate egg')) || CM.Config.CalcWrink == 0) { + CM.Cache.AvgCPSChoEgg = (totalGainBank + totalGainWrink + totalGainChoEgg) / cpsLength; } else { CM.Cache.AvgCPSChoEgg = CM.Cache.AvgCPS; From 9fc5b3dbafd133a176a6c3305d6fde0ffa6cb7ca Mon Sep 17 00:00:00 2001 From: Aktanusa Date: Tue, 28 Jun 2016 20:50:57 -0400 Subject: [PATCH 18/22] Version changed to 2.002.1 --- CookieMonster.js | 2 +- src/Main.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/CookieMonster.js b/CookieMonster.js index b320937..aa07205 100644 --- a/CookieMonster.js +++ b/CookieMonster.js @@ -2532,7 +2532,7 @@ CM.DelayInit = function() { CM.ConfigDefault = {BotBar: 1, TimerBar: 1, TimerBarPos: 0, BuildColor: 1, BulkBuildColor: 0, UpBarColor: 1, CalcWrink: 1, CPSMode: 1, AvgCPSHist: 2, AvgClicksHist: 2, ToolWarnCautBon: 0, Flash: 1, Sound: 1, Volume: 100, GCSoundURL: 'http://freesound.org/data/previews/66/66717_931655-lq.mp3', SeaSoundURL: 'http://www.freesound.org/data/previews/121/121099_2193266-lq.mp3', GCTimer: 1, Title: 1, Favicon: 1, Tooltip: 1, TooltipAmor: 0, ToolWarnCaut: 1, ToolWarnCautPos: 1, ToolWrink: 1, Stats: 1, UpStats: 1, SayTime: 1, Scale: 2, StatsPref: {Lucky: 1, Chain: 1, Prestige: 1, Wrink: 1, Sea: 1, Misc: 1}, Colors : {Blue: '#4bb8f0', Green: '#00ff00', Yellow: '#ffff00', Orange: '#ff7f00', Red: '#ff0000', Purple: '#ff00ff', Gray: '#b3b3b3', Pink: '#ff1493', Brown: '#8b4513'}}; CM.ConfigPrefix = 'CMConfig'; -CM.VersionMajor = '2.001'; +CM.VersionMajor = '2.002'; CM.VersionMinor = '1'; /******* diff --git a/src/Main.js b/src/Main.js index aaf50c0..0857bb2 100644 --- a/src/Main.js +++ b/src/Main.js @@ -203,6 +203,6 @@ CM.DelayInit = function() { CM.ConfigDefault = {BotBar: 1, TimerBar: 1, TimerBarPos: 0, BuildColor: 1, BulkBuildColor: 0, UpBarColor: 1, CalcWrink: 1, CPSMode: 1, AvgCPSHist: 2, AvgClicksHist: 2, ToolWarnCautBon: 0, Flash: 1, Sound: 1, Volume: 100, GCSoundURL: 'http://freesound.org/data/previews/66/66717_931655-lq.mp3', SeaSoundURL: 'http://www.freesound.org/data/previews/121/121099_2193266-lq.mp3', GCTimer: 1, Title: 1, Favicon: 1, Tooltip: 1, TooltipAmor: 0, ToolWarnCaut: 1, ToolWarnCautPos: 1, ToolWrink: 1, Stats: 1, UpStats: 1, SayTime: 1, Scale: 2, StatsPref: {Lucky: 1, Chain: 1, Prestige: 1, Wrink: 1, Sea: 1, Misc: 1}, Colors : {Blue: '#4bb8f0', Green: '#00ff00', Yellow: '#ffff00', Orange: '#ff7f00', Red: '#ff0000', Purple: '#ff00ff', Gray: '#b3b3b3', Pink: '#ff1493', Brown: '#8b4513'}}; CM.ConfigPrefix = 'CMConfig'; -CM.VersionMajor = '2.001'; +CM.VersionMajor = '2.002'; CM.VersionMinor = '1'; From e1c4826605de5ec802c249c735c81190b048f7a3 Mon Sep 17 00:00:00 2001 From: Aktanusa Date: Tue, 28 Jun 2016 21:05:21 -0400 Subject: [PATCH 19/22] Copy @DeathOfBalance code (#95) to the correct source and did minor code cleanup (thanks @DeathOfBalance!) --- CookieMonster.js | 24 ++++++++++++------------ src/Sim.js | 32 ++++++++++++++++---------------- 2 files changed, 28 insertions(+), 28 deletions(-) diff --git a/CookieMonster.js b/CookieMonster.js index a467fee..1140378 100644 --- a/CookieMonster.js +++ b/CookieMonster.js @@ -2757,18 +2757,18 @@ CM.Sim.CalculateGains = function() { if (CM.Sim.Has('Kitten angels')) mult *= (1 + (CM.Sim.AchievementsOwned / 25) * 0.1 * milkMult); var eggMult = 1; - if (CM.Sim.Has('Chicken egg')) eggMult*=1.01; - if (CM.Sim.Has('Duck egg')) eggMult*=1.01; - if (CM.Sim.Has('Turkey egg')) eggMult*=1.01; - if (CM.Sim.Has('Quail egg')) eggMult*=1.01; - if (CM.Sim.Has('Robin egg')) eggMult*=1.01; - if (CM.Sim.Has('Ostrich egg')) eggMult*=1.01; - if (CM.Sim.Has('Cassowary egg')) eggMult*=1.01; - if (CM.Sim.Has('Salmon roe')) eggMult*=1.01; - if (CM.Sim.Has('Frogspawn')) eggMult*=1.01; - if (CM.Sim.Has('Shark egg')) eggMult*=1.01; - if (CM.Sim.Has('Turtle egg')) eggMult*=1.01; - if (CM.Sim.Has('Ant larva')) eggMult*=1.01; + if (CM.Sim.Has('Chicken egg')) eggMult *= 1.01; + if (CM.Sim.Has('Duck egg')) eggMult *= 1.01; + if (CM.Sim.Has('Turkey egg')) eggMult *= 1.01; + if (CM.Sim.Has('Quail egg')) eggMult *= 1.01; + if (CM.Sim.Has('Robin egg')) eggMult *= 1.01; + if (CM.Sim.Has('Ostrich egg')) eggMult *= 1.01; + if (CM.Sim.Has('Cassowary egg')) eggMult *= 1.01; + if (CM.Sim.Has('Salmon roe')) eggMult *= 1.01; + if (CM.Sim.Has('Frogspawn')) eggMult *= 1.01; + if (CM.Sim.Has('Shark egg')) eggMult *= 1.01; + if (CM.Sim.Has('Turtle egg')) eggMult *= 1.01; + if (CM.Sim.Has('Ant larva')) eggMult *= 1.01; if (CM.Sim.Has('Century egg')) { // The boost increases a little every day, with diminishing returns up to +10% on the 100th day var day = Math.floor((CM.Sim.Date - Game.startDate) / 1000 / 10) * 10 / 60 / 60 / 24; diff --git a/src/Sim.js b/src/Sim.js index ae72530..fad806c 100644 --- a/src/Sim.js +++ b/src/Sim.js @@ -219,27 +219,27 @@ CM.Sim.CalculateGains = function() { if (CM.Sim.Has('Kitten experts')) mult *= (1 + (CM.Sim.AchievementsOwned / 25) * 0.2 * milkMult); if (CM.Sim.Has('Kitten angels')) mult *= (1 + (CM.Sim.AchievementsOwned / 25) * 0.1 * milkMult); - var eggMult = 0; - if (CM.Sim.Has('Chicken egg')) eggMult++; - if (CM.Sim.Has('Duck egg')) eggMult++; - if (CM.Sim.Has('Turkey egg')) eggMult++; - if (CM.Sim.Has('Quail egg')) eggMult++; - if (CM.Sim.Has('Robin egg')) eggMult++; - if (CM.Sim.Has('Ostrich egg')) eggMult++; - if (CM.Sim.Has('Cassowary egg')) eggMult++; - if (CM.Sim.Has('Salmon roe')) eggMult++; - if (CM.Sim.Has('Frogspawn')) eggMult++; - if (CM.Sim.Has('Shark egg')) eggMult++; - if (CM.Sim.Has('Turtle egg')) eggMult++; - if (CM.Sim.Has('Ant larva')) eggMult++; + var eggMult = 1; + if (CM.Sim.Has('Chicken egg')) eggMult *= 1.01; + if (CM.Sim.Has('Duck egg')) eggMult *= 1.01; + if (CM.Sim.Has('Turkey egg')) eggMult *= 1.01; + if (CM.Sim.Has('Quail egg')) eggMult *= 1.01; + if (CM.Sim.Has('Robin egg')) eggMult *= 1.01; + if (CM.Sim.Has('Ostrich egg')) eggMult *= 1.01; + if (CM.Sim.Has('Cassowary egg')) eggMult *= 1.01; + if (CM.Sim.Has('Salmon roe')) eggMult *= 1.01; + if (CM.Sim.Has('Frogspawn')) eggMult *= 1.01; + if (CM.Sim.Has('Shark egg')) eggMult *= 1.01; + if (CM.Sim.Has('Turtle egg')) eggMult *= 1.01; + if (CM.Sim.Has('Ant larva')) eggMult *= 1.01; if (CM.Sim.Has('Century egg')) { // The boost increases a little every day, with diminishing returns up to +10% on the 100th day var day = Math.floor((CM.Sim.Date - Game.startDate) / 1000 / 10) * 10 / 60 / 60 / 24; day = Math.min(day,100); - CM.Cache.CentEgg = (1 - Math.pow(1 - day / 100, 3)) * 10; - eggMult += CM.Cache.CentEgg; + CM.Cache.CentEgg = 1 + (1 - Math.pow(1 - day / 100, 3)) * 0.1; + eggMult *= CM.Cache.CentEgg; } - mult *= (1 + 0.01 * eggMult); + mult *= eggMult; if (CM.Sim.hasAura('Radiant Appetite')) mult *= 2; From 5a42ae532e31ca26a44bd45cce71bd71cc5dd737 Mon Sep 17 00:00:00 2001 From: Aktanusa Date: Tue, 28 Jun 2016 22:32:07 -0400 Subject: [PATCH 20/22] Fixed for Version 2.002 Beta (mostly) --- CookieMonster.js | 24 ++++++++++++------------ src/Cache.js | 5 ++++- src/Sim.js | 19 ++++++++----------- 3 files changed, 24 insertions(+), 24 deletions(-) diff --git a/CookieMonster.js b/CookieMonster.js index 1140378..7c4a6fe 100644 --- a/CookieMonster.js +++ b/CookieMonster.js @@ -201,7 +201,10 @@ CM.Cache.RemakeChain = function() { CM.Cache.RemakeSeaSpec = function() { if (Game.season == 'christmas') { - CM.Cache.SeaSpec = Math.max(25, Game.cookiesPs * 60 * 1); + var val = Game.cookiesPs * 60; + if (Game.hasBuff('Elder frenzy')) val *= 0.5; // very sorry + if (Game.hasBuff('Frenzy')) val *= 0.75; // I sincerely apologize + CM.Cache.SeaSpec = Math.max(25, val); if (Game.Has('Ho ho ho-flavored frosting')) CM.Cache.SeaSpec *= 2; } } @@ -2638,12 +2641,8 @@ eval('CM.Sim.getGrandmaSynergyUpgradeMultiplier = ' + Game.getGrandmaSynergyUpgr CM.Sim.getCPSBuffMult = function() { var mult = 1; - var buffs = ['Frenzy', 'Elder frenzy', 'Clot', 'Dragon Harvest']; - for (var i in Game.goldenCookieBuildingBuffs) { - buffs.push(Game.goldenCookieBuildingBuffs[i][0], Game.goldenCookieBuildingBuffs[i][1]); - } - for (var i in buffs) { - if (Game.hasBuff(buffs[i]) && Game.buffs[buffs[i]].power) mult *= Game.buffs[buffs[i]].power; + for (var i in Game.buffs) { + if (typeof Game.buffs[i].multCpS != 'undefined') mult *= Game.buffs[i].multCpS; } return mult; } @@ -2714,10 +2713,10 @@ CM.Sim.CalculateGains = function() { if (Game.ascensionMode != 1) mult += parseFloat(CM.Sim.prestige) * 0.01 * CM.Sim.heavenlyPower * CM.Sim.GetHeavenlyMultiplier(); var cookieMult = 0; - for (var i in CM.Sim.Upgrades) { - var me = CM.Sim.Upgrades[i]; - if (me.bought > 0) { - if (Game.Upgrades[i].pool == 'cookie' && CM.Sim.Has(Game.Upgrades[i].name)) mult *= (1 + (typeof(Game.Upgrades[i].power) == 'function' ? Game.Upgrades[i].power(Game.Upgrades[i]) : Game.Upgrades[i].power) * 0.01); + for (var i in Game.cookieUpgrades) { + var me = Game.cookieUpgrades[i]; + if (CM.Sim.Has(me.name)) { + mult *= (1 + (typeof(me.power) == 'function' ? me.power(me) : me.power) * 0.01); } } @@ -2807,7 +2806,8 @@ CM.Sim.CalculateGains = function() { CM.Sim.cookiesPs *= mult; - if (Game.hasBuff('Cursed finger')) Game.cookiesPs = 0; + // TODO remove? + // if (Game.hasBuff('Cursed finger')) Game.cookiesPs = 0; }; CM.Sim.CheckOtherAchiev = function() { diff --git a/src/Cache.js b/src/Cache.js index c7a1e6a..654ef3e 100644 --- a/src/Cache.js +++ b/src/Cache.js @@ -181,7 +181,10 @@ CM.Cache.RemakeChain = function() { CM.Cache.RemakeSeaSpec = function() { if (Game.season == 'christmas') { - CM.Cache.SeaSpec = Math.max(25, Game.cookiesPs * 60 * 1); + var val = Game.cookiesPs * 60; + if (Game.hasBuff('Elder frenzy')) val *= 0.5; // very sorry + if (Game.hasBuff('Frenzy')) val *= 0.75; // I sincerely apologize + CM.Cache.SeaSpec = Math.max(25, val); if (Game.Has('Ho ho ho-flavored frosting')) CM.Cache.SeaSpec *= 2; } } diff --git a/src/Sim.js b/src/Sim.js index fad806c..1d405ff 100644 --- a/src/Sim.js +++ b/src/Sim.js @@ -101,12 +101,8 @@ eval('CM.Sim.getGrandmaSynergyUpgradeMultiplier = ' + Game.getGrandmaSynergyUpgr CM.Sim.getCPSBuffMult = function() { var mult = 1; - var buffs = ['Frenzy', 'Elder frenzy', 'Clot', 'Dragon Harvest']; - for (var i in Game.goldenCookieBuildingBuffs) { - buffs.push(Game.goldenCookieBuildingBuffs[i][0], Game.goldenCookieBuildingBuffs[i][1]); - } - for (var i in buffs) { - if (Game.hasBuff(buffs[i]) && Game.buffs[buffs[i]].power) mult *= Game.buffs[buffs[i]].power; + for (var i in Game.buffs) { + if (typeof Game.buffs[i].multCpS != 'undefined') mult *= Game.buffs[i].multCpS; } return mult; } @@ -177,10 +173,10 @@ CM.Sim.CalculateGains = function() { if (Game.ascensionMode != 1) mult += parseFloat(CM.Sim.prestige) * 0.01 * CM.Sim.heavenlyPower * CM.Sim.GetHeavenlyMultiplier(); var cookieMult = 0; - for (var i in CM.Sim.Upgrades) { - var me = CM.Sim.Upgrades[i]; - if (me.bought > 0) { - if (Game.Upgrades[i].pool == 'cookie' && CM.Sim.Has(Game.Upgrades[i].name)) mult *= (1 + (typeof(Game.Upgrades[i].power) == 'function' ? Game.Upgrades[i].power(Game.Upgrades[i]) : Game.Upgrades[i].power) * 0.01); + for (var i in Game.cookieUpgrades) { + var me = Game.cookieUpgrades[i]; + if (CM.Sim.Has(me.name)) { + mult *= (1 + (typeof(me.power) == 'function' ? me.power(me) : me.power) * 0.01); } } @@ -270,7 +266,8 @@ CM.Sim.CalculateGains = function() { CM.Sim.cookiesPs *= mult; - if (Game.hasBuff('Cursed finger')) Game.cookiesPs = 0; + // TODO remove? + // if (Game.hasBuff('Cursed finger')) Game.cookiesPs = 0; }; CM.Sim.CheckOtherAchiev = function() { From 8802a834d5076e91b694710a3006c96e01ef108c Mon Sep 17 00:00:00 2001 From: CrackedP0t Date: Sun, 24 Jul 2016 14:01:06 -0600 Subject: [PATCH 21/22] Add shell script to make CookieMonster.js --- Combine.sh | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 Combine.sh diff --git a/Combine.sh b/Combine.sh new file mode 100644 index 0000000..bddd2a2 --- /dev/null +++ b/Combine.sh @@ -0,0 +1,2 @@ +#!/bin/sh +cat src/*.js > CookieMonster.js From 991c80d04024a8e607245874dda9f88488521011 Mon Sep 17 00:00:00 2001 From: Aktanusa Date: Mon, 25 Jul 2016 20:58:12 -0400 Subject: [PATCH 22/22] Fixed minor bug with version numbers --- CookieMonster.js | 2 -- src/Main.js | 2 -- 2 files changed, 4 deletions(-) diff --git a/CookieMonster.js b/CookieMonster.js index 9c9d123..67d97d5 100644 --- a/CookieMonster.js +++ b/CookieMonster.js @@ -2572,8 +2572,6 @@ CM.DelayInit = function() { CM.ConfigDefault = {BotBar: 1, TimerBar: 1, TimerBarPos: 0, BuildColor: 1, BulkBuildColor: 0, UpBarColor: 1, CalcWrink: 1, CPSMode: 1, AvgCPSHist: 2, AvgClicksHist: 2, ToolWarnCautBon: 0, Flash: 1, Sound: 1, Volume: 100, GCSoundURL: 'http://freesound.org/data/previews/66/66717_931655-lq.mp3', SeaSoundURL: 'http://www.freesound.org/data/previews/121/121099_2193266-lq.mp3', GCTimer: 1, Title: 1, Favicon: 1, Tooltip: 1, TooltipAmor: 0, ToolWarnCaut: 1, ToolWarnCautPos: 1, ToolWrink: 1, Stats: 1, UpStats: 1, TimeFormat: 0, SayTime: 1, Scale: 2, StatsPref: {Lucky: 1, Chain: 1, Prestige: 1, Wrink: 1, Sea: 1, Misc: 1}, Colors : {Blue: '#4bb8f0', Green: '#00ff00', Yellow: '#ffff00', Orange: '#ff7f00', Red: '#ff0000', Purple: '#ff00ff', Gray: '#b3b3b3', Pink: '#ff1493', Brown: '#8b4513'}}; CM.ConfigPrefix = 'CMConfig'; -CM.VersionMajor = '2'; -CM.VersionMinor = '6'; CM.VersionMajor = '2.002'; CM.VersionMinor = '1'; diff --git a/src/Main.js b/src/Main.js index 3aaa259..8574b3a 100644 --- a/src/Main.js +++ b/src/Main.js @@ -203,8 +203,6 @@ CM.DelayInit = function() { CM.ConfigDefault = {BotBar: 1, TimerBar: 1, TimerBarPos: 0, BuildColor: 1, BulkBuildColor: 0, UpBarColor: 1, CalcWrink: 1, CPSMode: 1, AvgCPSHist: 2, AvgClicksHist: 2, ToolWarnCautBon: 0, Flash: 1, Sound: 1, Volume: 100, GCSoundURL: 'http://freesound.org/data/previews/66/66717_931655-lq.mp3', SeaSoundURL: 'http://www.freesound.org/data/previews/121/121099_2193266-lq.mp3', GCTimer: 1, Title: 1, Favicon: 1, Tooltip: 1, TooltipAmor: 0, ToolWarnCaut: 1, ToolWarnCautPos: 1, ToolWrink: 1, Stats: 1, UpStats: 1, TimeFormat: 0, SayTime: 1, Scale: 2, StatsPref: {Lucky: 1, Chain: 1, Prestige: 1, Wrink: 1, Sea: 1, Misc: 1}, Colors : {Blue: '#4bb8f0', Green: '#00ff00', Yellow: '#ffff00', Orange: '#ff7f00', Red: '#ff0000', Purple: '#ff00ff', Gray: '#b3b3b3', Pink: '#ff1493', Brown: '#8b4513'}}; CM.ConfigPrefix = 'CMConfig'; -CM.VersionMajor = '2'; -CM.VersionMinor = '6'; CM.VersionMajor = '2.002'; CM.VersionMinor = '1';