Compare commits
13 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
cad42578a9 | ||
|
|
446f1e767c | ||
|
|
6ac602a067 | ||
|
|
37107ae621 | ||
|
|
687cb9a4c9 | ||
|
|
2176b9b436 | ||
|
|
e061caa2e4 | ||
|
|
b4157cdbc5 | ||
|
|
c0cd967cc7 | ||
|
|
c32a364d82 | ||
|
|
d82f782f4b | ||
|
|
22a00ceef0 | ||
|
|
b4c0c8de2b |
107
CookieMonster.js
107
CookieMonster.js
@@ -67,6 +67,12 @@ CM.Cache.RemakeWrinkBank = function() {
|
|||||||
if (Game.wrinklers[i].type==1) toSuck *= 3; // Shiny wrinklers
|
if (Game.wrinklers[i].type==1) toSuck *= 3; // Shiny wrinklers
|
||||||
sucked *= toSuck;
|
sucked *= toSuck;
|
||||||
if (Game.Has('Wrinklerspawn')) sucked *= 1.05;
|
if (Game.Has('Wrinklerspawn')) sucked *= 1.05;
|
||||||
|
if (Game.hasGod) {
|
||||||
|
var godLvl = Game.hasGod('scorn');
|
||||||
|
if (godLvl == 1) sucked *= 1.15;
|
||||||
|
else if (godLvl == 2) sucked *= 1.1;
|
||||||
|
else if (godLvl == 3) sucked *= 1.05;
|
||||||
|
}
|
||||||
totalSucked += sucked;
|
totalSucked += sucked;
|
||||||
}
|
}
|
||||||
CM.Cache.WrinkBank = totalSucked;
|
CM.Cache.WrinkBank = totalSucked;
|
||||||
@@ -97,9 +103,9 @@ CM.Cache.RemakeUpgradePP = function() {
|
|||||||
for (var i in CM.Cache.Upgrades) {
|
for (var i in CM.Cache.Upgrades) {
|
||||||
//CM.Cache.Upgrades[i].pp = Game.Upgrades[i].getPrice() / CM.Cache.Upgrades[i].bonus;
|
//CM.Cache.Upgrades[i].pp = Game.Upgrades[i].getPrice() / CM.Cache.Upgrades[i].bonus;
|
||||||
CM.Cache.Upgrades[i].pp = (Math.max(Game.Upgrades[i].getPrice() - (Game.cookies + CM.Disp.GetWrinkConfigBank()), 0) / Game.cookiesPs) + (Game.Upgrades[i].getPrice() / CM.Cache.Upgrades[i].bonus);
|
CM.Cache.Upgrades[i].pp = (Math.max(Game.Upgrades[i].getPrice() - (Game.cookies + CM.Disp.GetWrinkConfigBank()), 0) / Game.cookiesPs) + (Game.Upgrades[i].getPrice() / CM.Cache.Upgrades[i].bonus);
|
||||||
if (isNaN(CM.Cache.Upgrades[i].pp)) CM.Cache.Upgrades[i].pp = 'Infinity';
|
if (isNaN(CM.Cache.Upgrades[i].pp)) CM.Cache.Upgrades[i].pp = Infinity;
|
||||||
var color = '';
|
var color = '';
|
||||||
if (CM.Cache.Upgrades[i].pp <= 0 || CM.Cache.Upgrades[i].pp == 'Infinity') color = CM.Disp.colorGray;
|
if (CM.Cache.Upgrades[i].pp <= 0 || CM.Cache.Upgrades[i].pp == Infinity) color = CM.Disp.colorGray;
|
||||||
else if (CM.Cache.Upgrades[i].pp < CM.Cache.min) color = CM.Disp.colorBlue;
|
else if (CM.Cache.Upgrades[i].pp < CM.Cache.min) color = CM.Disp.colorBlue;
|
||||||
else if (CM.Cache.Upgrades[i].pp == CM.Cache.min) color = CM.Disp.colorGreen;
|
else if (CM.Cache.Upgrades[i].pp == CM.Cache.min) color = CM.Disp.colorGreen;
|
||||||
else if (CM.Cache.Upgrades[i].pp == CM.Cache.max) color = CM.Disp.colorRed;
|
else if (CM.Cache.Upgrades[i].pp == CM.Cache.max) color = CM.Disp.colorRed;
|
||||||
@@ -115,7 +121,7 @@ CM.Cache.RemakeBuildingsOtherPP = function(amount, target) {
|
|||||||
//CM.Cache[target][i].pp = CM.Cache[target][i].price / CM.Cache[target][i].bonus;
|
//CM.Cache[target][i].pp = CM.Cache[target][i].price / CM.Cache[target][i].bonus;
|
||||||
CM.Cache[target][i].pp = (Math.max(CM.Cache[target][i].price - (Game.cookies + CM.Disp.GetWrinkConfigBank()), 0) / Game.cookiesPs) + (CM.Cache[target][i].price / CM.Cache[target][i].bonus);
|
CM.Cache[target][i].pp = (Math.max(CM.Cache[target][i].price - (Game.cookies + CM.Disp.GetWrinkConfigBank()), 0) / Game.cookiesPs) + (CM.Cache[target][i].price / CM.Cache[target][i].bonus);
|
||||||
var color = '';
|
var color = '';
|
||||||
if (CM.Cache[target][i].pp <= 0 || CM.Cache[target][i].pp == 'Infinity') color = CM.Disp.colorGray;
|
if (CM.Cache[target][i].pp <= 0 || CM.Cache[target][i].pp == Infinity) color = CM.Disp.colorGray;
|
||||||
else if (CM.Cache[target][i].pp < CM.Cache.min) color = CM.Disp.colorBlue;
|
else if (CM.Cache[target][i].pp < CM.Cache.min) color = CM.Disp.colorBlue;
|
||||||
else if (CM.Cache[target][i].pp == CM.Cache.min) color = CM.Disp.colorGreen;
|
else if (CM.Cache[target][i].pp == CM.Cache.min) color = CM.Disp.colorGreen;
|
||||||
else if (CM.Cache[target][i].pp == CM.Cache.max) color = CM.Disp.colorRed;
|
else if (CM.Cache[target][i].pp == CM.Cache.max) color = CM.Disp.colorRed;
|
||||||
@@ -257,7 +263,7 @@ CM.Cache.UpdateAvgCPS = function() {
|
|||||||
if (CM.Cache.lastDate != -1) {
|
if (CM.Cache.lastDate != -1) {
|
||||||
var timeDiff = currDate - CM.Cache.lastDate
|
var timeDiff = currDate - CM.Cache.lastDate
|
||||||
var bankDiffAvg = Math.max(0, (Game.cookies - CM.Cache.lastCookies)) / timeDiff;
|
var bankDiffAvg = Math.max(0, (Game.cookies - CM.Cache.lastCookies)) / timeDiff;
|
||||||
var wrinkDiffAvg = (CM.Cache.WrinkBank - CM.Cache.lastWrinkCookies) / timeDiff;
|
var wrinkDiffAvg = Math.max(0, (CM.Cache.WrinkBank - CM.Cache.lastWrinkCookies)) / timeDiff;
|
||||||
var choEggDiffAvg = Math.max(0,(choEggTotal - CM.Cache.lastChoEgg)) / timeDiff;
|
var choEggDiffAvg = Math.max(0,(choEggTotal - CM.Cache.lastChoEgg)) / timeDiff;
|
||||||
var clicksDiffAvg = (Game.cookieClicks - CM.Cache.lastClicks) / timeDiff;
|
var clicksDiffAvg = (Game.cookieClicks - CM.Cache.lastClicks) / timeDiff;
|
||||||
for (var i = 0; i < timeDiff; i++) {
|
for (var i = 0; i < timeDiff; i++) {
|
||||||
@@ -295,8 +301,10 @@ CM.Cache.UpdateAvgCPS = function() {
|
|||||||
}
|
}
|
||||||
CM.Cache.AvgCPS = (totalGainBank + (CM.Config.CalcWrink ? totalGainWrink : 0)) / cpsLength;
|
CM.Cache.AvgCPS = (totalGainBank + (CM.Config.CalcWrink ? totalGainWrink : 0)) / cpsLength;
|
||||||
|
|
||||||
if ((Game.HasUnlocked('Chocolate egg') && !Game.Has('Chocolate egg')) || CM.Config.CalcWrink == 0) {
|
var choEgg = (Game.HasUnlocked('Chocolate egg') && !Game.Has('Chocolate egg'));
|
||||||
CM.Cache.AvgCPSChoEgg = (totalGainBank + totalGainWrink + totalGainChoEgg) / cpsLength;
|
|
||||||
|
if (choEgg || CM.Config.CalcWrink == 0) {
|
||||||
|
CM.Cache.AvgCPSChoEgg = (totalGainBank + totalGainWrink + (choEgg ? totalGainChoEgg : 0)) / cpsLength;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
CM.Cache.AvgCPSChoEgg = CM.Cache.AvgCPS;
|
CM.Cache.AvgCPSChoEgg = CM.Cache.AvgCPS;
|
||||||
@@ -509,7 +517,7 @@ CM.Data.ValCookies = ['Pure heart biscuits', 'Ardent heart biscuits', 'Sour hear
|
|||||||
********/
|
********/
|
||||||
|
|
||||||
CM.Disp.FormatTime = function(time, format) {
|
CM.Disp.FormatTime = function(time, format) {
|
||||||
if (time == 'Infinity') return time;
|
if (time == Infinity) return time;
|
||||||
if (CM.Config.TimeFormat) {
|
if (CM.Config.TimeFormat) {
|
||||||
if (time > 3155760000) return 'XX:XX:XX:XX:XX';
|
if (time > 3155760000) return 'XX:XX:XX:XX:XX';
|
||||||
time = Math.ceil(time);
|
time = Math.ceil(time);
|
||||||
@@ -1909,7 +1917,7 @@ CM.Disp.AddMenuStats = function(title) {
|
|||||||
stats.appendChild(listing(listingQuest('Chocolate Egg Cookies', 'ChoEggTooltipPlaceholder'), document.createTextNode(Beautify(CM.Cache.lastChoEgg))));
|
stats.appendChild(listing(listingQuest('Chocolate Egg Cookies', 'ChoEggTooltipPlaceholder'), document.createTextNode(Beautify(CM.Cache.lastChoEgg))));
|
||||||
}
|
}
|
||||||
if (centEgg) {
|
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) + '%')));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -2298,6 +2306,12 @@ CM.Disp.UpdateWrinklerTooltip = function() {
|
|||||||
if (Game.wrinklers[CM.Disp.TooltipWrinkler].type == 1) toSuck *= 3; // Shiny wrinklers
|
if (Game.wrinklers[CM.Disp.TooltipWrinkler].type == 1) toSuck *= 3; // Shiny wrinklers
|
||||||
sucked *= toSuck;
|
sucked *= toSuck;
|
||||||
if (Game.Has('Wrinklerspawn')) sucked *= 1.05;
|
if (Game.Has('Wrinklerspawn')) sucked *= 1.05;
|
||||||
|
if (Game.hasGod) {
|
||||||
|
var godLvl = Game.hasGod('scorn');
|
||||||
|
if (godLvl == 1) sucked *= 1.15;
|
||||||
|
else if (godLvl == 2) sucked *= 1.1;
|
||||||
|
else if (godLvl == 3) sucked *= 1.05;
|
||||||
|
}
|
||||||
l('CMTooltipWrinkler').textContent = Beautify(sucked);
|
l('CMTooltipWrinkler').textContent = Beautify(sucked);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -2379,7 +2393,7 @@ CM.ReplaceNative = function() {
|
|||||||
Game.CalculateGains = function() {
|
Game.CalculateGains = function() {
|
||||||
CM.Backup.CalculateGains();
|
CM.Backup.CalculateGains();
|
||||||
CM.Sim.DoSims = 1;
|
CM.Sim.DoSims = 1;
|
||||||
CM.Sim.Date = new Date().getTime();
|
CM.Sim.Date = Date.now();
|
||||||
}
|
}
|
||||||
|
|
||||||
CM.Backup.tooltip = {};
|
CM.Backup.tooltip = {};
|
||||||
@@ -2569,10 +2583,10 @@ CM.DelayInit = function() {
|
|||||||
Game.Win('Third-party');
|
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, 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.ConfigDefault = {BotBar: 1, TimerBar: 1, TimerBarPos: 0, BuildColor: 1, BulkBuildColor: 0, UpBarColor: 1, CalcWrink: 0, 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.ConfigPrefix = 'CMConfig';
|
||||||
|
|
||||||
CM.VersionMajor = '2.002';
|
CM.VersionMajor = '2.0042';
|
||||||
CM.VersionMinor = '1';
|
CM.VersionMinor = '1';
|
||||||
|
|
||||||
/*******
|
/*******
|
||||||
@@ -2594,12 +2608,7 @@ CM.Sim.BuildingGetPrice = function(basePrice, start, free, increase) {
|
|||||||
var moni = 0;
|
var moni = 0;
|
||||||
for (var i = 0; i < increase; i++) {
|
for (var i = 0; i < increase; i++) {
|
||||||
var price = basePrice * Math.pow(Game.priceIncrease, Math.max(0, start - free));
|
var price = basePrice * Math.pow(Game.priceIncrease, Math.max(0, start - free));
|
||||||
if (Game.Has('Season savings')) price *= 0.99;
|
price = Game.modifyBuildingPrice(null, price);
|
||||||
if (Game.Has('Santa\'s dominion')) price *= 0.99;
|
|
||||||
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);
|
price = Math.ceil(price);
|
||||||
moni += price;
|
moni += price;
|
||||||
start++;
|
start++;
|
||||||
@@ -2628,12 +2637,7 @@ CM.Sim.BuildingSell = function(basePrice, start, free, amount, emuAura) {
|
|||||||
var moni=0;
|
var moni=0;
|
||||||
for (var i = 0; i < amount; i++) {
|
for (var i = 0; i < amount; i++) {
|
||||||
var price = basePrice * Math.pow(Game.priceIncrease, Math.max(0, start - free));
|
var price = basePrice * Math.pow(Game.priceIncrease, Math.max(0, start - free));
|
||||||
if (Game.Has('Season savings')) price *= 0.99;
|
price = Game.modifyBuildingPrice(null, price);
|
||||||
if (Game.Has('Santa\'s dominion')) price *= 0.99;
|
|
||||||
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);
|
price = Math.ceil(price);
|
||||||
var giveBack = 0.5;
|
var giveBack = 0.5;
|
||||||
if (Game.hasAura('Earth Shatterer') || emuAura) giveBack=0.85;
|
if (Game.hasAura('Earth Shatterer') || emuAura) giveBack=0.85;
|
||||||
@@ -2663,7 +2667,7 @@ CM.Sim.Win = function(what) {
|
|||||||
|
|
||||||
eval('CM.Sim.HasAchiev = ' + Game.HasAchiev.toString().split('Game').join('CM.Sim'));
|
eval('CM.Sim.HasAchiev = ' + Game.HasAchiev.toString().split('Game').join('CM.Sim'));
|
||||||
|
|
||||||
eval('CM.Sim.GetHeavenlyMultiplier = ' + Game.GetHeavenlyMultiplier.toString().split('Game').join('CM.Sim'));
|
eval('CM.Sim.GetHeavenlyMultiplier = ' + Game.GetHeavenlyMultiplier.toString().split('Game.Has').join('CM.Sim.Has').split('Game.hasAura').join('CM.Sim.hasAura'));
|
||||||
|
|
||||||
CM.Sim.hasAura = function(what) {
|
CM.Sim.hasAura = function(what) {
|
||||||
if (Game.dragonAuras[CM.Sim.dragonAura].name == what || Game.dragonAuras[CM.Sim.dragonAura2].name == what)
|
if (Game.dragonAuras[CM.Sim.dragonAura].name == what || Game.dragonAuras[CM.Sim.dragonAura2].name == what)
|
||||||
@@ -2725,6 +2729,7 @@ CM.Sim.CopyData = function() {
|
|||||||
var me = Game.Objects[i];
|
var me = Game.Objects[i];
|
||||||
var you = CM.Sim.Objects[i];
|
var you = CM.Sim.Objects[i];
|
||||||
you.amount = me.amount;
|
you.amount = me.amount;
|
||||||
|
you.level = me.level;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Upgrades
|
// Upgrades
|
||||||
@@ -2770,11 +2775,41 @@ CM.Sim.CalculateGains = function() {
|
|||||||
if (CM.Sim.Has('An itchy sweater')) mult *= 1.01;
|
if (CM.Sim.Has('An itchy sweater')) mult *= 1.01;
|
||||||
if (CM.Sim.Has('Santa\'s dominion')) mult *= 1.2;
|
if (CM.Sim.Has('Santa\'s dominion')) mult *= 1.2;
|
||||||
|
|
||||||
|
var buildMult=1;
|
||||||
|
if (Game.hasGod) {
|
||||||
|
var godLvl = Game.hasGod('asceticism');
|
||||||
|
if (godLvl == 1) mult *= 1.15;
|
||||||
|
else if (godLvl == 2) mult *= 1.1;
|
||||||
|
else if (godLvl == 3) mult *= 1.05;
|
||||||
|
|
||||||
|
var godLvl = Game.hasGod('ages');
|
||||||
|
if (godLvl == 1) mult *= 1 + 0.15 * Math.sin((CM.Sim.Date / 1000 / (60 * 60 * 3)) * Math.PI * 2);
|
||||||
|
else if (godLvl == 2) mult *= 1 + 0.15 * Math.sin((CM.Sim.Date / 1000 / (60 * 60 * 12)) * Math.PI*2);
|
||||||
|
else if (godLvl == 3) mult *= 1 + 0.15 * Math.sin((CM.Sim.Date / 1000 / (60 * 60 * 24)) * Math.PI*2);
|
||||||
|
|
||||||
|
var godLvl = Game.hasGod('decadence');
|
||||||
|
if (godLvl == 1) buildMult *= 0.93;
|
||||||
|
else if (godLvl == 2) buildMult *= 0.95;
|
||||||
|
else if (godLvl == 3) buildMult *= 0.98;
|
||||||
|
|
||||||
|
var godLvl = Game.hasGod('industry');
|
||||||
|
if (godLvl == 1) buildMult *= 1.1;
|
||||||
|
else if (godLvl == 2) buildMult *= 1.05;
|
||||||
|
else if (godLvl == 3) buildMult *= 1.03;
|
||||||
|
|
||||||
|
var godLvl = Game.hasGod('labor');
|
||||||
|
if (godLvl == 1) buildMult *= 0.97;
|
||||||
|
else if (godLvl == 2) buildMult *= 0.98;
|
||||||
|
else if (godLvl == 3) buildMult *= 0.99;
|
||||||
|
}
|
||||||
|
|
||||||
if (CM.Sim.Has('Santa\'s legacy')) mult *= 1 + (Game.santaLevel + 1) * 0.03;
|
if (CM.Sim.Has('Santa\'s legacy')) mult *= 1 + (Game.santaLevel + 1) * 0.03;
|
||||||
|
|
||||||
for (var i in CM.Sim.Objects) {
|
for (var i in CM.Sim.Objects) {
|
||||||
var me = CM.Sim.Objects[i];
|
var me = CM.Sim.Objects[i];
|
||||||
CM.Sim.cookiesPs += me.amount * (typeof(me.cps) == 'function' ? me.cps(me) : me.cps);
|
var storedCps = (typeof(me.cps) == 'function' ? me.cps(me) : me.cps);
|
||||||
|
if (Game.ascensionMode != 1) storedCps *= (1 + me.level * 0.01) * buildMult;
|
||||||
|
CM.Sim.cookiesPs += me.amount * storedCps;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (CM.Sim.Has('"egg"')) CM.Sim.cookiesPs += 9; // "egg"
|
if (CM.Sim.Has('"egg"')) CM.Sim.cookiesPs += 9; // "egg"
|
||||||
@@ -2782,6 +2817,12 @@ CM.Sim.CalculateGains = function() {
|
|||||||
var milkMult=1;
|
var milkMult=1;
|
||||||
if (CM.Sim.Has('Santa\'s milk and cookies')) milkMult *= 1.05;
|
if (CM.Sim.Has('Santa\'s milk and cookies')) milkMult *= 1.05;
|
||||||
if (CM.Sim.hasAura('Breath of Milk')) milkMult *= 1.05;
|
if (CM.Sim.hasAura('Breath of Milk')) milkMult *= 1.05;
|
||||||
|
if (Game.hasGod) {
|
||||||
|
var godLvl = Game.hasGod('mother');
|
||||||
|
if (godLvl == 1) milkMult *= 1.1;
|
||||||
|
else if (godLvl == 2) milkMult *= 1.06;
|
||||||
|
else if (godLvl == 3) milkMult *= 1.03;
|
||||||
|
}
|
||||||
if (CM.Sim.Has('Kitten helpers')) mult *= (1 + (CM.Sim.AchievementsOwned / 25) * 0.1 * milkMult);
|
if (CM.Sim.Has('Kitten helpers')) mult *= (1 + (CM.Sim.AchievementsOwned / 25) * 0.1 * milkMult);
|
||||||
if (CM.Sim.Has('Kitten workers')) mult *= (1 + (CM.Sim.AchievementsOwned / 25) * 0.125 * milkMult);
|
if (CM.Sim.Has('Kitten workers')) mult *= (1 + (CM.Sim.AchievementsOwned / 25) * 0.125 * milkMult);
|
||||||
if (CM.Sim.Has('Kitten engineers')) mult *= (1 + (CM.Sim.AchievementsOwned / 25) * 0.15 * milkMult);
|
if (CM.Sim.Has('Kitten engineers')) mult *= (1 + (CM.Sim.AchievementsOwned / 25) * 0.15 * milkMult);
|
||||||
@@ -2790,6 +2831,8 @@ CM.Sim.CalculateGains = function() {
|
|||||||
if (CM.Sim.Has('Kitten accountants')) mult *= (1 + (CM.Sim.AchievementsOwned / 25) * 0.2 * milkMult);
|
if (CM.Sim.Has('Kitten accountants')) mult *= (1 + (CM.Sim.AchievementsOwned / 25) * 0.2 * milkMult);
|
||||||
if (CM.Sim.Has('Kitten specialists')) mult *= (1 + (CM.Sim.AchievementsOwned / 25) * 0.2 * milkMult);
|
if (CM.Sim.Has('Kitten specialists')) mult *= (1 + (CM.Sim.AchievementsOwned / 25) * 0.2 * milkMult);
|
||||||
if (CM.Sim.Has('Kitten experts')) mult *= (1 + (CM.Sim.AchievementsOwned / 25) * 0.2 * milkMult);
|
if (CM.Sim.Has('Kitten experts')) mult *= (1 + (CM.Sim.AchievementsOwned / 25) * 0.2 * milkMult);
|
||||||
|
if (CM.Sim.Has('Kitten consultants')) mult *= (1 + (CM.Sim.AchievementsOwned / 25) * 0.2 * milkMult);
|
||||||
|
if (CM.Sim.Has('Kitten assistants to the regional manager')) mult *= (1 + (CM.Sim.AchievementsOwned / 25) * 0.2 * milkMult);
|
||||||
if (CM.Sim.Has('Kitten angels')) mult *= (1 + (CM.Sim.AchievementsOwned / 25) * 0.1 * milkMult);
|
if (CM.Sim.Has('Kitten angels')) mult *= (1 + (CM.Sim.AchievementsOwned / 25) * 0.1 * milkMult);
|
||||||
|
|
||||||
var eggMult = 1;
|
var eggMult = 1;
|
||||||
@@ -2816,7 +2859,15 @@ CM.Sim.CalculateGains = function() {
|
|||||||
|
|
||||||
if (CM.Sim.hasAura('Radiant Appetite')) mult *= 2;
|
if (CM.Sim.hasAura('Radiant Appetite')) mult *= 2;
|
||||||
|
|
||||||
|
if (Game.hasAura('Dragon\'s Fortune')) {
|
||||||
|
var n = Game.shimmerTypes['golden'].n;
|
||||||
|
for (var i = 0; i < n; i++) {
|
||||||
|
mult *= 2.11;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
var rawCookiesPs = CM.Sim.cookiesPs * mult;
|
var rawCookiesPs = CM.Sim.cookiesPs * mult;
|
||||||
|
|
||||||
for (var i in Game.CpsAchievements) {
|
for (var i in Game.CpsAchievements) {
|
||||||
if (rawCookiesPs >= Game.CpsAchievements[i].threshold) CM.Sim.Win(Game.CpsAchievements[i].name);
|
if (rawCookiesPs >= Game.CpsAchievements[i].threshold) CM.Sim.Win(Game.CpsAchievements[i].name);
|
||||||
}
|
}
|
||||||
@@ -2833,7 +2884,7 @@ CM.Sim.CalculateGains = function() {
|
|||||||
if (CM.Sim.Has('Golden switch [off]')) {
|
if (CM.Sim.Has('Golden switch [off]')) {
|
||||||
var goldenSwitchMult = 1.5;
|
var goldenSwitchMult = 1.5;
|
||||||
if (CM.Sim.Has('Residual luck')) {
|
if (CM.Sim.Has('Residual luck')) {
|
||||||
var upgrades = ['Get lucky', 'Lucky day', 'Serendipity', 'Heavenly luck', 'Lasting fortune', 'Decisive fate'];
|
var upgrades = ['Get lucky', 'Lucky day', 'Serendipity', 'Heavenly luck', 'Lasting fortune', 'Decisive fate', 'Lucky digit', 'Lucky number', 'Lucky payout'];
|
||||||
for (var i in upgrades) {
|
for (var i in upgrades) {
|
||||||
if (CM.Sim.Has(upgrades[i])) goldenSwitchMult += 0.1;
|
if (CM.Sim.Has(upgrades[i])) goldenSwitchMult += 0.1;
|
||||||
}
|
}
|
||||||
@@ -2861,6 +2912,7 @@ CM.Sim.CheckOtherAchiev = function() {
|
|||||||
if (CM.Sim.Has('Banker grandmas')) grandmas++;
|
if (CM.Sim.Has('Banker grandmas')) grandmas++;
|
||||||
if (CM.Sim.Has('Priestess grandmas')) grandmas++;
|
if (CM.Sim.Has('Priestess grandmas')) grandmas++;
|
||||||
if (CM.Sim.Has('Witch grandmas')) grandmas++;
|
if (CM.Sim.Has('Witch grandmas')) grandmas++;
|
||||||
|
if (CM.Sim.Has('Lucky grandmas')) grandmas++;
|
||||||
if (!CM.Sim.HasAchiev('Elder') && grandmas >= 7) CM.Sim.Win('Elder');
|
if (!CM.Sim.HasAchiev('Elder') && grandmas >= 7) CM.Sim.Win('Elder');
|
||||||
|
|
||||||
var buildingsOwned = 0;
|
var buildingsOwned = 0;
|
||||||
@@ -2884,11 +2936,12 @@ CM.Sim.CheckOtherAchiev = function() {
|
|||||||
if (minAmount >= 150) CM.Sim.Win('Centennial and a half');
|
if (minAmount >= 150) CM.Sim.Win('Centennial and a half');
|
||||||
if (minAmount >= 200) CM.Sim.Win('Bicentennial');
|
if (minAmount >= 200) CM.Sim.Win('Bicentennial');
|
||||||
if (minAmount >= 250) CM.Sim.Win('Bicentennial and a half');
|
if (minAmount >= 250) CM.Sim.Win('Bicentennial and a half');
|
||||||
|
if (minAmount >= 300) CM.Sim.Win('Tricentennial');
|
||||||
|
|
||||||
if (buildingsOwned >= 100) CM.Sim.Win('Builder');
|
if (buildingsOwned >= 100) CM.Sim.Win('Builder');
|
||||||
if (buildingsOwned >= 500) CM.Sim.Win('Architect');
|
if (buildingsOwned >= 500) CM.Sim.Win('Architect');
|
||||||
if (buildingsOwned >= 1000) CM.Sim.Win('Engineer');
|
if (buildingsOwned >= 1000) CM.Sim.Win('Engineer');
|
||||||
if (buildingsOwned >= 1500) CM.Sim.Win('Lord of Constructs');
|
if (buildingsOwned >= 2000) CM.Sim.Win('Lord of Constructs');
|
||||||
|
|
||||||
if (CM.Sim.UpgradesOwned >= 20) CM.Sim.Win('Enhancer');
|
if (CM.Sim.UpgradesOwned >= 20) CM.Sim.Win('Enhancer');
|
||||||
if (CM.Sim.UpgradesOwned >= 50) CM.Sim.Win('Augmenter');
|
if (CM.Sim.UpgradesOwned >= 50) CM.Sim.Win('Augmenter');
|
||||||
|
|||||||
20
src/Cache.js
20
src/Cache.js
@@ -47,6 +47,12 @@ CM.Cache.RemakeWrinkBank = function() {
|
|||||||
if (Game.wrinklers[i].type==1) toSuck *= 3; // Shiny wrinklers
|
if (Game.wrinklers[i].type==1) toSuck *= 3; // Shiny wrinklers
|
||||||
sucked *= toSuck;
|
sucked *= toSuck;
|
||||||
if (Game.Has('Wrinklerspawn')) sucked *= 1.05;
|
if (Game.Has('Wrinklerspawn')) sucked *= 1.05;
|
||||||
|
if (Game.hasGod) {
|
||||||
|
var godLvl = Game.hasGod('scorn');
|
||||||
|
if (godLvl == 1) sucked *= 1.15;
|
||||||
|
else if (godLvl == 2) sucked *= 1.1;
|
||||||
|
else if (godLvl == 3) sucked *= 1.05;
|
||||||
|
}
|
||||||
totalSucked += sucked;
|
totalSucked += sucked;
|
||||||
}
|
}
|
||||||
CM.Cache.WrinkBank = totalSucked;
|
CM.Cache.WrinkBank = totalSucked;
|
||||||
@@ -77,9 +83,9 @@ CM.Cache.RemakeUpgradePP = function() {
|
|||||||
for (var i in CM.Cache.Upgrades) {
|
for (var i in CM.Cache.Upgrades) {
|
||||||
//CM.Cache.Upgrades[i].pp = Game.Upgrades[i].getPrice() / CM.Cache.Upgrades[i].bonus;
|
//CM.Cache.Upgrades[i].pp = Game.Upgrades[i].getPrice() / CM.Cache.Upgrades[i].bonus;
|
||||||
CM.Cache.Upgrades[i].pp = (Math.max(Game.Upgrades[i].getPrice() - (Game.cookies + CM.Disp.GetWrinkConfigBank()), 0) / Game.cookiesPs) + (Game.Upgrades[i].getPrice() / CM.Cache.Upgrades[i].bonus);
|
CM.Cache.Upgrades[i].pp = (Math.max(Game.Upgrades[i].getPrice() - (Game.cookies + CM.Disp.GetWrinkConfigBank()), 0) / Game.cookiesPs) + (Game.Upgrades[i].getPrice() / CM.Cache.Upgrades[i].bonus);
|
||||||
if (isNaN(CM.Cache.Upgrades[i].pp)) CM.Cache.Upgrades[i].pp = 'Infinity';
|
if (isNaN(CM.Cache.Upgrades[i].pp)) CM.Cache.Upgrades[i].pp = Infinity;
|
||||||
var color = '';
|
var color = '';
|
||||||
if (CM.Cache.Upgrades[i].pp <= 0 || CM.Cache.Upgrades[i].pp == 'Infinity') color = CM.Disp.colorGray;
|
if (CM.Cache.Upgrades[i].pp <= 0 || CM.Cache.Upgrades[i].pp == Infinity) color = CM.Disp.colorGray;
|
||||||
else if (CM.Cache.Upgrades[i].pp < CM.Cache.min) color = CM.Disp.colorBlue;
|
else if (CM.Cache.Upgrades[i].pp < CM.Cache.min) color = CM.Disp.colorBlue;
|
||||||
else if (CM.Cache.Upgrades[i].pp == CM.Cache.min) color = CM.Disp.colorGreen;
|
else if (CM.Cache.Upgrades[i].pp == CM.Cache.min) color = CM.Disp.colorGreen;
|
||||||
else if (CM.Cache.Upgrades[i].pp == CM.Cache.max) color = CM.Disp.colorRed;
|
else if (CM.Cache.Upgrades[i].pp == CM.Cache.max) color = CM.Disp.colorRed;
|
||||||
@@ -95,7 +101,7 @@ CM.Cache.RemakeBuildingsOtherPP = function(amount, target) {
|
|||||||
//CM.Cache[target][i].pp = CM.Cache[target][i].price / CM.Cache[target][i].bonus;
|
//CM.Cache[target][i].pp = CM.Cache[target][i].price / CM.Cache[target][i].bonus;
|
||||||
CM.Cache[target][i].pp = (Math.max(CM.Cache[target][i].price - (Game.cookies + CM.Disp.GetWrinkConfigBank()), 0) / Game.cookiesPs) + (CM.Cache[target][i].price / CM.Cache[target][i].bonus);
|
CM.Cache[target][i].pp = (Math.max(CM.Cache[target][i].price - (Game.cookies + CM.Disp.GetWrinkConfigBank()), 0) / Game.cookiesPs) + (CM.Cache[target][i].price / CM.Cache[target][i].bonus);
|
||||||
var color = '';
|
var color = '';
|
||||||
if (CM.Cache[target][i].pp <= 0 || CM.Cache[target][i].pp == 'Infinity') color = CM.Disp.colorGray;
|
if (CM.Cache[target][i].pp <= 0 || CM.Cache[target][i].pp == Infinity) color = CM.Disp.colorGray;
|
||||||
else if (CM.Cache[target][i].pp < CM.Cache.min) color = CM.Disp.colorBlue;
|
else if (CM.Cache[target][i].pp < CM.Cache.min) color = CM.Disp.colorBlue;
|
||||||
else if (CM.Cache[target][i].pp == CM.Cache.min) color = CM.Disp.colorGreen;
|
else if (CM.Cache[target][i].pp == CM.Cache.min) color = CM.Disp.colorGreen;
|
||||||
else if (CM.Cache[target][i].pp == CM.Cache.max) color = CM.Disp.colorRed;
|
else if (CM.Cache[target][i].pp == CM.Cache.max) color = CM.Disp.colorRed;
|
||||||
@@ -237,7 +243,7 @@ CM.Cache.UpdateAvgCPS = function() {
|
|||||||
if (CM.Cache.lastDate != -1) {
|
if (CM.Cache.lastDate != -1) {
|
||||||
var timeDiff = currDate - CM.Cache.lastDate
|
var timeDiff = currDate - CM.Cache.lastDate
|
||||||
var bankDiffAvg = Math.max(0, (Game.cookies - CM.Cache.lastCookies)) / timeDiff;
|
var bankDiffAvg = Math.max(0, (Game.cookies - CM.Cache.lastCookies)) / timeDiff;
|
||||||
var wrinkDiffAvg = (CM.Cache.WrinkBank - CM.Cache.lastWrinkCookies) / timeDiff;
|
var wrinkDiffAvg = Math.max(0, (CM.Cache.WrinkBank - CM.Cache.lastWrinkCookies)) / timeDiff;
|
||||||
var choEggDiffAvg = Math.max(0,(choEggTotal - CM.Cache.lastChoEgg)) / timeDiff;
|
var choEggDiffAvg = Math.max(0,(choEggTotal - CM.Cache.lastChoEgg)) / timeDiff;
|
||||||
var clicksDiffAvg = (Game.cookieClicks - CM.Cache.lastClicks) / timeDiff;
|
var clicksDiffAvg = (Game.cookieClicks - CM.Cache.lastClicks) / timeDiff;
|
||||||
for (var i = 0; i < timeDiff; i++) {
|
for (var i = 0; i < timeDiff; i++) {
|
||||||
@@ -275,8 +281,10 @@ CM.Cache.UpdateAvgCPS = function() {
|
|||||||
}
|
}
|
||||||
CM.Cache.AvgCPS = (totalGainBank + (CM.Config.CalcWrink ? totalGainWrink : 0)) / cpsLength;
|
CM.Cache.AvgCPS = (totalGainBank + (CM.Config.CalcWrink ? totalGainWrink : 0)) / cpsLength;
|
||||||
|
|
||||||
if ((Game.HasUnlocked('Chocolate egg') && !Game.Has('Chocolate egg')) || CM.Config.CalcWrink == 0) {
|
var choEgg = (Game.HasUnlocked('Chocolate egg') && !Game.Has('Chocolate egg'));
|
||||||
CM.Cache.AvgCPSChoEgg = (totalGainBank + totalGainWrink + totalGainChoEgg) / cpsLength;
|
|
||||||
|
if (choEgg || CM.Config.CalcWrink == 0) {
|
||||||
|
CM.Cache.AvgCPSChoEgg = (totalGainBank + totalGainWrink + (choEgg ? totalGainChoEgg : 0)) / cpsLength;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
CM.Cache.AvgCPSChoEgg = CM.Cache.AvgCPS;
|
CM.Cache.AvgCPSChoEgg = CM.Cache.AvgCPS;
|
||||||
|
|||||||
10
src/Disp.js
10
src/Disp.js
@@ -3,7 +3,7 @@
|
|||||||
********/
|
********/
|
||||||
|
|
||||||
CM.Disp.FormatTime = function(time, format) {
|
CM.Disp.FormatTime = function(time, format) {
|
||||||
if (time == 'Infinity') return time;
|
if (time == Infinity) return time;
|
||||||
if (CM.Config.TimeFormat) {
|
if (CM.Config.TimeFormat) {
|
||||||
if (time > 3155760000) return 'XX:XX:XX:XX:XX';
|
if (time > 3155760000) return 'XX:XX:XX:XX:XX';
|
||||||
time = Math.ceil(time);
|
time = Math.ceil(time);
|
||||||
@@ -1403,7 +1403,7 @@ CM.Disp.AddMenuStats = function(title) {
|
|||||||
stats.appendChild(listing(listingQuest('Chocolate Egg Cookies', 'ChoEggTooltipPlaceholder'), document.createTextNode(Beautify(CM.Cache.lastChoEgg))));
|
stats.appendChild(listing(listingQuest('Chocolate Egg Cookies', 'ChoEggTooltipPlaceholder'), document.createTextNode(Beautify(CM.Cache.lastChoEgg))));
|
||||||
}
|
}
|
||||||
if (centEgg) {
|
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) + '%')));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1792,6 +1792,12 @@ CM.Disp.UpdateWrinklerTooltip = function() {
|
|||||||
if (Game.wrinklers[CM.Disp.TooltipWrinkler].type == 1) toSuck *= 3; // Shiny wrinklers
|
if (Game.wrinklers[CM.Disp.TooltipWrinkler].type == 1) toSuck *= 3; // Shiny wrinklers
|
||||||
sucked *= toSuck;
|
sucked *= toSuck;
|
||||||
if (Game.Has('Wrinklerspawn')) sucked *= 1.05;
|
if (Game.Has('Wrinklerspawn')) sucked *= 1.05;
|
||||||
|
if (Game.hasGod) {
|
||||||
|
var godLvl = Game.hasGod('scorn');
|
||||||
|
if (godLvl == 1) sucked *= 1.15;
|
||||||
|
else if (godLvl == 2) sucked *= 1.1;
|
||||||
|
else if (godLvl == 3) sucked *= 1.05;
|
||||||
|
}
|
||||||
l('CMTooltipWrinkler').textContent = Beautify(sucked);
|
l('CMTooltipWrinkler').textContent = Beautify(sucked);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ CM.ReplaceNative = function() {
|
|||||||
Game.CalculateGains = function() {
|
Game.CalculateGains = function() {
|
||||||
CM.Backup.CalculateGains();
|
CM.Backup.CalculateGains();
|
||||||
CM.Sim.DoSims = 1;
|
CM.Sim.DoSims = 1;
|
||||||
CM.Sim.Date = new Date().getTime();
|
CM.Sim.Date = Date.now();
|
||||||
}
|
}
|
||||||
|
|
||||||
CM.Backup.tooltip = {};
|
CM.Backup.tooltip = {};
|
||||||
@@ -200,9 +200,9 @@ CM.DelayInit = function() {
|
|||||||
Game.Win('Third-party');
|
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, 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.ConfigDefault = {BotBar: 1, TimerBar: 1, TimerBarPos: 0, BuildColor: 1, BulkBuildColor: 0, UpBarColor: 1, CalcWrink: 0, 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.ConfigPrefix = 'CMConfig';
|
||||||
|
|
||||||
CM.VersionMajor = '2.002';
|
CM.VersionMajor = '2.0042';
|
||||||
CM.VersionMinor = '1';
|
CM.VersionMinor = '1';
|
||||||
|
|
||||||
|
|||||||
71
src/Sim.js
71
src/Sim.js
@@ -17,12 +17,7 @@ CM.Sim.BuildingGetPrice = function(basePrice, start, free, increase) {
|
|||||||
var moni = 0;
|
var moni = 0;
|
||||||
for (var i = 0; i < increase; i++) {
|
for (var i = 0; i < increase; i++) {
|
||||||
var price = basePrice * Math.pow(Game.priceIncrease, Math.max(0, start - free));
|
var price = basePrice * Math.pow(Game.priceIncrease, Math.max(0, start - free));
|
||||||
if (Game.Has('Season savings')) price *= 0.99;
|
price = Game.modifyBuildingPrice(null, price);
|
||||||
if (Game.Has('Santa\'s dominion')) price *= 0.99;
|
|
||||||
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);
|
price = Math.ceil(price);
|
||||||
moni += price;
|
moni += price;
|
||||||
start++;
|
start++;
|
||||||
@@ -51,12 +46,7 @@ CM.Sim.BuildingSell = function(basePrice, start, free, amount, emuAura) {
|
|||||||
var moni=0;
|
var moni=0;
|
||||||
for (var i = 0; i < amount; i++) {
|
for (var i = 0; i < amount; i++) {
|
||||||
var price = basePrice * Math.pow(Game.priceIncrease, Math.max(0, start - free));
|
var price = basePrice * Math.pow(Game.priceIncrease, Math.max(0, start - free));
|
||||||
if (Game.Has('Season savings')) price *= 0.99;
|
price = Game.modifyBuildingPrice(null, price);
|
||||||
if (Game.Has('Santa\'s dominion')) price *= 0.99;
|
|
||||||
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);
|
price = Math.ceil(price);
|
||||||
var giveBack = 0.5;
|
var giveBack = 0.5;
|
||||||
if (Game.hasAura('Earth Shatterer') || emuAura) giveBack=0.85;
|
if (Game.hasAura('Earth Shatterer') || emuAura) giveBack=0.85;
|
||||||
@@ -86,7 +76,7 @@ CM.Sim.Win = function(what) {
|
|||||||
|
|
||||||
eval('CM.Sim.HasAchiev = ' + Game.HasAchiev.toString().split('Game').join('CM.Sim'));
|
eval('CM.Sim.HasAchiev = ' + Game.HasAchiev.toString().split('Game').join('CM.Sim'));
|
||||||
|
|
||||||
eval('CM.Sim.GetHeavenlyMultiplier = ' + Game.GetHeavenlyMultiplier.toString().split('Game').join('CM.Sim'));
|
eval('CM.Sim.GetHeavenlyMultiplier = ' + Game.GetHeavenlyMultiplier.toString().split('Game.Has').join('CM.Sim.Has').split('Game.hasAura').join('CM.Sim.hasAura'));
|
||||||
|
|
||||||
CM.Sim.hasAura = function(what) {
|
CM.Sim.hasAura = function(what) {
|
||||||
if (Game.dragonAuras[CM.Sim.dragonAura].name == what || Game.dragonAuras[CM.Sim.dragonAura2].name == what)
|
if (Game.dragonAuras[CM.Sim.dragonAura].name == what || Game.dragonAuras[CM.Sim.dragonAura2].name == what)
|
||||||
@@ -148,6 +138,7 @@ CM.Sim.CopyData = function() {
|
|||||||
var me = Game.Objects[i];
|
var me = Game.Objects[i];
|
||||||
var you = CM.Sim.Objects[i];
|
var you = CM.Sim.Objects[i];
|
||||||
you.amount = me.amount;
|
you.amount = me.amount;
|
||||||
|
you.level = me.level;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Upgrades
|
// Upgrades
|
||||||
@@ -193,11 +184,41 @@ CM.Sim.CalculateGains = function() {
|
|||||||
if (CM.Sim.Has('An itchy sweater')) mult *= 1.01;
|
if (CM.Sim.Has('An itchy sweater')) mult *= 1.01;
|
||||||
if (CM.Sim.Has('Santa\'s dominion')) mult *= 1.2;
|
if (CM.Sim.Has('Santa\'s dominion')) mult *= 1.2;
|
||||||
|
|
||||||
|
var buildMult=1;
|
||||||
|
if (Game.hasGod) {
|
||||||
|
var godLvl = Game.hasGod('asceticism');
|
||||||
|
if (godLvl == 1) mult *= 1.15;
|
||||||
|
else if (godLvl == 2) mult *= 1.1;
|
||||||
|
else if (godLvl == 3) mult *= 1.05;
|
||||||
|
|
||||||
|
var godLvl = Game.hasGod('ages');
|
||||||
|
if (godLvl == 1) mult *= 1 + 0.15 * Math.sin((CM.Sim.Date / 1000 / (60 * 60 * 3)) * Math.PI * 2);
|
||||||
|
else if (godLvl == 2) mult *= 1 + 0.15 * Math.sin((CM.Sim.Date / 1000 / (60 * 60 * 12)) * Math.PI*2);
|
||||||
|
else if (godLvl == 3) mult *= 1 + 0.15 * Math.sin((CM.Sim.Date / 1000 / (60 * 60 * 24)) * Math.PI*2);
|
||||||
|
|
||||||
|
var godLvl = Game.hasGod('decadence');
|
||||||
|
if (godLvl == 1) buildMult *= 0.93;
|
||||||
|
else if (godLvl == 2) buildMult *= 0.95;
|
||||||
|
else if (godLvl == 3) buildMult *= 0.98;
|
||||||
|
|
||||||
|
var godLvl = Game.hasGod('industry');
|
||||||
|
if (godLvl == 1) buildMult *= 1.1;
|
||||||
|
else if (godLvl == 2) buildMult *= 1.05;
|
||||||
|
else if (godLvl == 3) buildMult *= 1.03;
|
||||||
|
|
||||||
|
var godLvl = Game.hasGod('labor');
|
||||||
|
if (godLvl == 1) buildMult *= 0.97;
|
||||||
|
else if (godLvl == 2) buildMult *= 0.98;
|
||||||
|
else if (godLvl == 3) buildMult *= 0.99;
|
||||||
|
}
|
||||||
|
|
||||||
if (CM.Sim.Has('Santa\'s legacy')) mult *= 1 + (Game.santaLevel + 1) * 0.03;
|
if (CM.Sim.Has('Santa\'s legacy')) mult *= 1 + (Game.santaLevel + 1) * 0.03;
|
||||||
|
|
||||||
for (var i in CM.Sim.Objects) {
|
for (var i in CM.Sim.Objects) {
|
||||||
var me = CM.Sim.Objects[i];
|
var me = CM.Sim.Objects[i];
|
||||||
CM.Sim.cookiesPs += me.amount * (typeof(me.cps) == 'function' ? me.cps(me) : me.cps);
|
var storedCps = (typeof(me.cps) == 'function' ? me.cps(me) : me.cps);
|
||||||
|
if (Game.ascensionMode != 1) storedCps *= (1 + me.level * 0.01) * buildMult;
|
||||||
|
CM.Sim.cookiesPs += me.amount * storedCps;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (CM.Sim.Has('"egg"')) CM.Sim.cookiesPs += 9; // "egg"
|
if (CM.Sim.Has('"egg"')) CM.Sim.cookiesPs += 9; // "egg"
|
||||||
@@ -205,6 +226,12 @@ CM.Sim.CalculateGains = function() {
|
|||||||
var milkMult=1;
|
var milkMult=1;
|
||||||
if (CM.Sim.Has('Santa\'s milk and cookies')) milkMult *= 1.05;
|
if (CM.Sim.Has('Santa\'s milk and cookies')) milkMult *= 1.05;
|
||||||
if (CM.Sim.hasAura('Breath of Milk')) milkMult *= 1.05;
|
if (CM.Sim.hasAura('Breath of Milk')) milkMult *= 1.05;
|
||||||
|
if (Game.hasGod) {
|
||||||
|
var godLvl = Game.hasGod('mother');
|
||||||
|
if (godLvl == 1) milkMult *= 1.1;
|
||||||
|
else if (godLvl == 2) milkMult *= 1.06;
|
||||||
|
else if (godLvl == 3) milkMult *= 1.03;
|
||||||
|
}
|
||||||
if (CM.Sim.Has('Kitten helpers')) mult *= (1 + (CM.Sim.AchievementsOwned / 25) * 0.1 * milkMult);
|
if (CM.Sim.Has('Kitten helpers')) mult *= (1 + (CM.Sim.AchievementsOwned / 25) * 0.1 * milkMult);
|
||||||
if (CM.Sim.Has('Kitten workers')) mult *= (1 + (CM.Sim.AchievementsOwned / 25) * 0.125 * milkMult);
|
if (CM.Sim.Has('Kitten workers')) mult *= (1 + (CM.Sim.AchievementsOwned / 25) * 0.125 * milkMult);
|
||||||
if (CM.Sim.Has('Kitten engineers')) mult *= (1 + (CM.Sim.AchievementsOwned / 25) * 0.15 * milkMult);
|
if (CM.Sim.Has('Kitten engineers')) mult *= (1 + (CM.Sim.AchievementsOwned / 25) * 0.15 * milkMult);
|
||||||
@@ -213,6 +240,8 @@ CM.Sim.CalculateGains = function() {
|
|||||||
if (CM.Sim.Has('Kitten accountants')) mult *= (1 + (CM.Sim.AchievementsOwned / 25) * 0.2 * milkMult);
|
if (CM.Sim.Has('Kitten accountants')) mult *= (1 + (CM.Sim.AchievementsOwned / 25) * 0.2 * milkMult);
|
||||||
if (CM.Sim.Has('Kitten specialists')) mult *= (1 + (CM.Sim.AchievementsOwned / 25) * 0.2 * milkMult);
|
if (CM.Sim.Has('Kitten specialists')) mult *= (1 + (CM.Sim.AchievementsOwned / 25) * 0.2 * milkMult);
|
||||||
if (CM.Sim.Has('Kitten experts')) mult *= (1 + (CM.Sim.AchievementsOwned / 25) * 0.2 * milkMult);
|
if (CM.Sim.Has('Kitten experts')) mult *= (1 + (CM.Sim.AchievementsOwned / 25) * 0.2 * milkMult);
|
||||||
|
if (CM.Sim.Has('Kitten consultants')) mult *= (1 + (CM.Sim.AchievementsOwned / 25) * 0.2 * milkMult);
|
||||||
|
if (CM.Sim.Has('Kitten assistants to the regional manager')) mult *= (1 + (CM.Sim.AchievementsOwned / 25) * 0.2 * milkMult);
|
||||||
if (CM.Sim.Has('Kitten angels')) mult *= (1 + (CM.Sim.AchievementsOwned / 25) * 0.1 * milkMult);
|
if (CM.Sim.Has('Kitten angels')) mult *= (1 + (CM.Sim.AchievementsOwned / 25) * 0.1 * milkMult);
|
||||||
|
|
||||||
var eggMult = 1;
|
var eggMult = 1;
|
||||||
@@ -239,7 +268,15 @@ CM.Sim.CalculateGains = function() {
|
|||||||
|
|
||||||
if (CM.Sim.hasAura('Radiant Appetite')) mult *= 2;
|
if (CM.Sim.hasAura('Radiant Appetite')) mult *= 2;
|
||||||
|
|
||||||
|
if (Game.hasAura('Dragon\'s Fortune')) {
|
||||||
|
var n = Game.shimmerTypes['golden'].n;
|
||||||
|
for (var i = 0; i < n; i++) {
|
||||||
|
mult *= 2.11;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
var rawCookiesPs = CM.Sim.cookiesPs * mult;
|
var rawCookiesPs = CM.Sim.cookiesPs * mult;
|
||||||
|
|
||||||
for (var i in Game.CpsAchievements) {
|
for (var i in Game.CpsAchievements) {
|
||||||
if (rawCookiesPs >= Game.CpsAchievements[i].threshold) CM.Sim.Win(Game.CpsAchievements[i].name);
|
if (rawCookiesPs >= Game.CpsAchievements[i].threshold) CM.Sim.Win(Game.CpsAchievements[i].name);
|
||||||
}
|
}
|
||||||
@@ -256,7 +293,7 @@ CM.Sim.CalculateGains = function() {
|
|||||||
if (CM.Sim.Has('Golden switch [off]')) {
|
if (CM.Sim.Has('Golden switch [off]')) {
|
||||||
var goldenSwitchMult = 1.5;
|
var goldenSwitchMult = 1.5;
|
||||||
if (CM.Sim.Has('Residual luck')) {
|
if (CM.Sim.Has('Residual luck')) {
|
||||||
var upgrades = ['Get lucky', 'Lucky day', 'Serendipity', 'Heavenly luck', 'Lasting fortune', 'Decisive fate'];
|
var upgrades = ['Get lucky', 'Lucky day', 'Serendipity', 'Heavenly luck', 'Lasting fortune', 'Decisive fate', 'Lucky digit', 'Lucky number', 'Lucky payout'];
|
||||||
for (var i in upgrades) {
|
for (var i in upgrades) {
|
||||||
if (CM.Sim.Has(upgrades[i])) goldenSwitchMult += 0.1;
|
if (CM.Sim.Has(upgrades[i])) goldenSwitchMult += 0.1;
|
||||||
}
|
}
|
||||||
@@ -284,6 +321,7 @@ CM.Sim.CheckOtherAchiev = function() {
|
|||||||
if (CM.Sim.Has('Banker grandmas')) grandmas++;
|
if (CM.Sim.Has('Banker grandmas')) grandmas++;
|
||||||
if (CM.Sim.Has('Priestess grandmas')) grandmas++;
|
if (CM.Sim.Has('Priestess grandmas')) grandmas++;
|
||||||
if (CM.Sim.Has('Witch grandmas')) grandmas++;
|
if (CM.Sim.Has('Witch grandmas')) grandmas++;
|
||||||
|
if (CM.Sim.Has('Lucky grandmas')) grandmas++;
|
||||||
if (!CM.Sim.HasAchiev('Elder') && grandmas >= 7) CM.Sim.Win('Elder');
|
if (!CM.Sim.HasAchiev('Elder') && grandmas >= 7) CM.Sim.Win('Elder');
|
||||||
|
|
||||||
var buildingsOwned = 0;
|
var buildingsOwned = 0;
|
||||||
@@ -307,11 +345,12 @@ CM.Sim.CheckOtherAchiev = function() {
|
|||||||
if (minAmount >= 150) CM.Sim.Win('Centennial and a half');
|
if (minAmount >= 150) CM.Sim.Win('Centennial and a half');
|
||||||
if (minAmount >= 200) CM.Sim.Win('Bicentennial');
|
if (minAmount >= 200) CM.Sim.Win('Bicentennial');
|
||||||
if (minAmount >= 250) CM.Sim.Win('Bicentennial and a half');
|
if (minAmount >= 250) CM.Sim.Win('Bicentennial and a half');
|
||||||
|
if (minAmount >= 300) CM.Sim.Win('Tricentennial');
|
||||||
|
|
||||||
if (buildingsOwned >= 100) CM.Sim.Win('Builder');
|
if (buildingsOwned >= 100) CM.Sim.Win('Builder');
|
||||||
if (buildingsOwned >= 500) CM.Sim.Win('Architect');
|
if (buildingsOwned >= 500) CM.Sim.Win('Architect');
|
||||||
if (buildingsOwned >= 1000) CM.Sim.Win('Engineer');
|
if (buildingsOwned >= 1000) CM.Sim.Win('Engineer');
|
||||||
if (buildingsOwned >= 1500) CM.Sim.Win('Lord of Constructs');
|
if (buildingsOwned >= 2000) CM.Sim.Win('Lord of Constructs');
|
||||||
|
|
||||||
if (CM.Sim.UpgradesOwned >= 20) CM.Sim.Win('Enhancer');
|
if (CM.Sim.UpgradesOwned >= 20) CM.Sim.Win('Enhancer');
|
||||||
if (CM.Sim.UpgradesOwned >= 50) CM.Sim.Win('Augmenter');
|
if (CM.Sim.UpgradesOwned >= 50) CM.Sim.Win('Augmenter');
|
||||||
|
|||||||
Reference in New Issue
Block a user