Compare commits

...

31 Commits
2.5 ... 2.002.2

Author SHA1 Message Date
Aktanusa
b4c0c8de2b Fixed Century Egg Stat was wrong (Issue #102 and #103) and Version change 2016-07-27 23:08:28 -04:00
Aktanusa
991c80d040 Fixed minor bug with version numbers 2016-07-25 20:58:12 -04:00
Aktanusa
6c0ab25894 Merge branch 'beta' into dev to update to Version 2.002.1
Conflicts:
	CookieMonster.js
	src/Main.js
2016-07-25 20:50:32 -04:00
Aktanusa
92575ccd64 Merge branch 'CrackedP0t-master' into dev 2016-07-25 20:40:37 -04:00
Aktanusa
b4da2c69f1 Merge branch 'master' of https://github.com/CrackedP0t/CookieMonster into CrackedP0t-master 2016-07-25 20:38:53 -04:00
CrackedP0t
8802a834d5 Add shell script to make CookieMonster.js 2016-07-24 14:01:06 -06:00
Aktanusa
5a42ae532e Fixed for Version 2.002 Beta (mostly) 2016-06-28 22:32:07 -04:00
Aktanusa
e1c4826605 Copy @DeathOfBalance code (#95) to the correct source and did minor code cleanup (thanks @DeathOfBalance!) 2016-06-28 21:05:21 -04:00
Aktanusa
23232c536a Merge branch 'DeathOfBalance-beta' into beta 2016-06-28 20:58:06 -04:00
Aktanusa
e5f310393f Merge branch 'beta' of https://github.com/DeathOfBalance/CookieMonster into DeathOfBalance-beta 2016-06-28 20:57:27 -04:00
Aktanusa
9fc5b3dbaf Version changed to 2.002.1 2016-06-28 20:50:57 -04:00
Aktanusa
adef849df9 Fixed minor bug with "Cookies To Next Level" stat 2016-06-28 20:38:41 -04:00
DeathOfBalance
d435e215e8 Updated for 2.002 multiplicative egg behavior 2016-06-28 17:51:31 -04:00
Aktanusa
76cc63e510 Changed Done! for new timer format (Issue #85) 2016-05-02 22:58:44 -04:00
Aktanusa
eea4656094 Minor bug forgot to fix for Issue #85 2016-05-02 22:25:23 -04:00
Aktanusa
5a9d378585 Added minor fixes to @JCBourgo's pull (Issue #85) 2016-05-02 22:18:10 -04:00
Aktanusa
4a20c76885 Merge branch 'JCBourgo-patch-1' into dev 2016-05-02 21:22:02 -04:00
Aktanusa
520f72fe77 Merge branch 'patch-1' of https://github.com/JCBourgo/CookieMonster into JCBourgo-patch-1 2016-05-02 21:14:22 -04:00
Jean-Christophe Bourgault
37f4252509 Removed the line, back to the original 2016-05-02 20:45:33 -04:00
Jean-Christophe Bourgault
ae29132175 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.
2016-05-02 20:33:48 -04:00
Jean-Christophe Bourgault
5fb084bd12 Added condition for format and time lower than 1 2016-05-02 20:13:12 -04:00
Jean-Christophe Bourgault
c3e85afb85 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.
2016-05-01 22:45:55 -04:00
Jean-Christophe Bourgault
3ce5164abb Merge pull request #1 from JCBourgo/patch-2
Merge patches for TimeFormat config
2016-05-01 22:32:28 -04:00
Jean-Christophe Bourgault
6107be18a9 Added listing for TimeFormat 2016-05-01 22:30:24 -04:00
Jean-Christophe Bourgault
ae11e1db73 Added config for "XX:XX:XX:XX:XX" 2016-05-01 22:27:39 -04:00
Aktanusa
ba726ec435 Fixed minor bug (which may never happen anyway) 2016-04-28 17:59:01 -04:00
Aktanusa
4d2287a7ae Change to Version 2.6 2016-04-28 17:56:46 -04:00
Aktanusa
9555e73475 Fixed buff bars (Issue #77) 2016-04-28 17:43:07 -04:00
Aktanusa
e62b7bfe04 Fixed GC CSS hover wasn't showing with GC timer 2016-04-28 10:00:14 -04:00
Aktanusa
91d2ea8df7 Hopefully fix the issue of GC timer not popping GC in Firefox (Issue #81) 2016-04-28 08:48:35 -04:00
Aktanusa
05278149c5 Changed to Version 2.001.1 and fixed for Version 2.001 Beta (mostly) (Issue #77) 2016-04-28 00:22:56 -04:00
7 changed files with 516 additions and 306 deletions

2
Combine.sh Normal file
View File

@@ -0,0 +1,2 @@
#!/bin/sh
cat src/*.js > CookieMonster.js

View File

@@ -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);
@@ -179,7 +175,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 +192,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;
@@ -205,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;
}
}
@@ -296,8 +295,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;
@@ -493,6 +492,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,6 +510,36 @@ CM.Data.ValCookies = ['Pure heart biscuits', 'Ardent heart biscuits', 'Sour hear
CM.Disp.FormatTime = function(time, format) {
if (time == 'Infinity') return time;
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);
@@ -527,7 +557,7 @@ CM.Disp.FormatTime = function(time, format) {
str += m + (format ? (m == 1 ? ' minute' : ' minutes') : 'm') + ', ';
}
str += s + (format ? (s == 1 ? ' second' : ' seconds') : 's');
}
return str;
}
@@ -536,8 +566,13 @@ CM.Disp.GetTimeColor = function(price, bank, cps) {
var text;
if (bank >= price) {
color = CM.Disp.colorGreen;
if (CM.Config.TimeFormat) {
text = '00:00:00:00:00';
}
else {
text = 'Done!';
}
}
else {
var time = (price - bank) / cps;
text = CM.Disp.FormatTime(time);
@@ -756,7 +791,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;
@@ -801,23 +836,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);
}
@@ -848,14 +883,14 @@ 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.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,75 +898,104 @@ 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 {
CM.Disp.TimerBarRen.style.display = 'none';
}
if (Game.frenzy > 0) {
CM.Disp.TimerBarFren.style.display = '';
if (Game.frenzyPower == 7) {
l('CMTimerBarFrenType').textContent = 'Frenzy';
l('CMTimerBarFrenBar').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;
}
else if (Game.frenzyPower == 15) {
l('CMTimerBarFrenType').textContent = 'Dragon Harvest';
l('CMTimerBarFrenBar').className = CM.Disp.colorBackPre + CM.Disp.colorBrown;
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 {
l('CMTimerBarFrenType').textContent = 'Blood Frenzy';
l('CMTimerBarFrenBar').className = CM.Disp.colorBackPre + CM.Disp.colorGreen;
classColor = CM.Disp.colorPurple;
}
l('CMTimerBarFrenBar').style.width = Math.round(Game.frenzy * maxWidth / Game.frenzyMax) + 'px';
l('CMTimerBarFrenTime').textContent = Math.ceil(Game.frenzy / Game.fps);
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';
l('CMTimerBarBuff1Bar').className = CM.Disp.colorBackPre + CM.Disp.colorYellow;
}
else if (Game.frenzyPower == 0.5) {
l('CMTimerBarBuff1Type').textContent = 'Clot';
l('CMTimerBarBuff1Bar').className = CM.Disp.colorBackPre + CM.Disp.colorRed;
}
else if (Game.frenzyPower == 15) {
l('CMTimerBarBuff1Type').textContent = 'Dragon Harvest';
l('CMTimerBarBuff1Bar').className = CM.Disp.colorBackPre + CM.Disp.colorBrown;
}
else {
l('CMTimerBarBuff1Type').textContent = 'Blood Frenzy';
l('CMTimerBarBuff1Bar').className = CM.Disp.colorBackPre + CM.Disp.colorGreen;
}
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 +1227,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 +1250,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 +1275,19 @@ 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(); 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);
}
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 +1296,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,18 +1312,30 @@ 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.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);
}
}
}
CM.Disp.UpdateTitle = function() {
@@ -1254,27 +1347,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 +1381,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 += ' - ';
@@ -1462,6 +1555,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'));
@@ -1815,7 +1909,7 @@ CM.Disp.AddMenuStats = function(title) {
stats.appendChild(listing(listingQuest('Chocolate Egg Cookies', 'ChoEggTooltipPlaceholder'), document.createTextNode(Beautify(CM.Cache.lastChoEgg))));
}
if (centEgg) {
stats.appendChild(listing('Century Egg Multiplier', document.createTextNode((Math.round(CM.Cache.CentEgg * 100) / 100) + '%')));
stats.appendChild(listing('Century Egg Multiplier', document.createTextNode((Math.round((CM.Cache.CentEgg - 1) * 10000) / 100) + '%')));
}
}
}
@@ -2089,9 +2183,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 +2348,11 @@ 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.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;
CM.Disp.seasonPopShimmer;
CM.Disp.lastAscendState = -1;
CM.Disp.times = [1, 5, 10, 15, 30];
@@ -2286,14 +2382,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 +2512,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()
}
@@ -2478,11 +2569,11 @@ 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';
CM.VersionMinor = '5';
CM.VersionMajor = '2.002';
CM.VersionMinor = '2';
/*******
* Sim *
@@ -2508,6 +2599,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 +2633,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 +2676,14 @@ 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;
for (var i in Game.buffs) {
if (typeof Game.buffs[i].multCpS != 'undefined') mult *= Game.buffs[i].multCpS;
}
return mult;
}
CM.Sim.InitData = function() {
// Buildings
CM.Sim.Objects = [];
@@ -2649,10 +2750,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);
}
}
@@ -2691,27 +2792,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;
day = Math.min(day, 100);
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;
@@ -2720,7 +2821,7 @@ 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();
@@ -2741,6 +2842,9 @@ CM.Sim.CalculateGains = function() {
}
CM.Sim.cookiesPs *= mult;
// TODO remove?
// if (Game.hasBuff('Cursed finger')) Game.cookiesPs = 0;
};
CM.Sim.CheckOtherAchiev = function() {

View File

@@ -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);
@@ -159,7 +155,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 +172,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;
@@ -185,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;
}
}
@@ -276,8 +275,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;

View File

@@ -144,6 +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.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();}};

View File

@@ -4,6 +4,36 @@
CM.Disp.FormatTime = function(time, format) {
if (time == 'Infinity') return time;
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);
@@ -21,7 +51,7 @@ CM.Disp.FormatTime = function(time, format) {
str += m + (format ? (m == 1 ? ' minute' : ' minutes') : 'm') + ', ';
}
str += s + (format ? (s == 1 ? ' second' : ' seconds') : 's');
}
return str;
}
@@ -30,8 +60,13 @@ CM.Disp.GetTimeColor = function(price, bank, cps) {
var text;
if (bank >= price) {
color = CM.Disp.colorGreen;
if (CM.Config.TimeFormat) {
text = '00:00:00:00:00';
}
else {
text = 'Done!';
}
}
else {
var time = (price - bank) / cps;
text = CM.Disp.FormatTime(time);
@@ -250,7 +285,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;
@@ -295,23 +330,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);
}
@@ -342,14 +377,14 @@ 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.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,75 +392,104 @@ 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 {
CM.Disp.TimerBarRen.style.display = 'none';
}
if (Game.frenzy > 0) {
CM.Disp.TimerBarFren.style.display = '';
if (Game.frenzyPower == 7) {
l('CMTimerBarFrenType').textContent = 'Frenzy';
l('CMTimerBarFrenBar').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;
}
else if (Game.frenzyPower == 15) {
l('CMTimerBarFrenType').textContent = 'Dragon Harvest';
l('CMTimerBarFrenBar').className = CM.Disp.colorBackPre + CM.Disp.colorBrown;
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 {
l('CMTimerBarFrenType').textContent = 'Blood Frenzy';
l('CMTimerBarFrenBar').className = CM.Disp.colorBackPre + CM.Disp.colorGreen;
classColor = CM.Disp.colorPurple;
}
l('CMTimerBarFrenBar').style.width = Math.round(Game.frenzy * maxWidth / Game.frenzyMax) + 'px';
l('CMTimerBarFrenTime').textContent = Math.ceil(Game.frenzy / Game.fps);
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';
l('CMTimerBarBuff1Bar').className = CM.Disp.colorBackPre + CM.Disp.colorYellow;
}
else if (Game.frenzyPower == 0.5) {
l('CMTimerBarBuff1Type').textContent = 'Clot';
l('CMTimerBarBuff1Bar').className = CM.Disp.colorBackPre + CM.Disp.colorRed;
}
else if (Game.frenzyPower == 15) {
l('CMTimerBarBuff1Type').textContent = 'Dragon Harvest';
l('CMTimerBarBuff1Bar').className = CM.Disp.colorBackPre + CM.Disp.colorBrown;
}
else {
l('CMTimerBarBuff1Type').textContent = 'Blood Frenzy';
l('CMTimerBarBuff1Bar').className = CM.Disp.colorBackPre + CM.Disp.colorGreen;
}
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 +721,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 +744,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 +769,19 @@ 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(); 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);
}
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 +790,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,18 +806,30 @@ 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.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);
}
}
}
CM.Disp.UpdateTitle = function() {
@@ -748,27 +841,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 +875,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 += ' - ';
@@ -956,6 +1049,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'));
@@ -1309,7 +1403,7 @@ CM.Disp.AddMenuStats = function(title) {
stats.appendChild(listing(listingQuest('Chocolate Egg Cookies', 'ChoEggTooltipPlaceholder'), document.createTextNode(Beautify(CM.Cache.lastChoEgg))));
}
if (centEgg) {
stats.appendChild(listing('Century Egg Multiplier', document.createTextNode((Math.round(CM.Cache.CentEgg * 100) / 100) + '%')));
stats.appendChild(listing('Century Egg Multiplier', document.createTextNode((Math.round((CM.Cache.CentEgg - 1) * 10000) / 100) + '%')));
}
}
}
@@ -1583,9 +1677,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 +1842,11 @@ 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.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;
CM.Disp.seasonPopShimmer;
CM.Disp.lastAscendState = -1;
CM.Disp.times = [1, 5, 10, 15, 30];

View File

@@ -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()
}
@@ -205,9 +200,9 @@ 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';
CM.VersionMinor = '5';
CM.VersionMajor = '2.002';
CM.VersionMinor = '2';

View File

@@ -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,14 @@ 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;
for (var i in Game.buffs) {
if (typeof Game.buffs[i].multCpS != 'undefined') mult *= Game.buffs[i].multCpS;
}
return mult;
}
CM.Sim.InitData = function() {
// Buildings
CM.Sim.Objects = [];
@@ -163,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);
}
}
@@ -205,27 +215,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;
day = Math.min(day, 100);
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;
@@ -234,7 +244,7 @@ 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();
@@ -255,6 +265,9 @@ CM.Sim.CalculateGains = function() {
}
CM.Sim.cookiesPs *= mult;
// TODO remove?
// if (Game.hasBuff('Cursed finger')) Game.cookiesPs = 0;
};
CM.Sim.CheckOtherAchiev = function() {