Skip to content

Commit

Permalink
Added buy 10 building tooltip/fixed minor bug with pref config loading
Browse files Browse the repository at this point in the history
  • Loading branch information
Aktanusa committed Jun 22, 2014
1 parent 75c5236 commit 9395beb
Show file tree
Hide file tree
Showing 6 changed files with 153 additions and 31 deletions.
93 changes: 77 additions & 16 deletions CookieMonster.js
Original file line number Diff line number Diff line change
Expand Up @@ -23,11 +23,14 @@ CM.Sim = {};
*********/

CM.Cache.RemakeIncome = function() {
// Simulate Building Buys
CM.Sim.BuyBuildings();
// Simulate Building Buys for 1 amount
CM.Sim.BuyBuildings(1, 'Objects');

// Simulate Upgrade Buys
CM.Sim.BuyUpgrades();

// Simulate Building Buys for 10 amount
CM.Sim.BuyBuildings(10, 'Objects10');
}

CM.Cache.RemakeBuildingsBCI = function() {
Expand Down Expand Up @@ -65,12 +68,31 @@ CM.Cache.RemakeUpgradeBCI = function() {
}
}

CM.Cache.RemakeBuildings10BCI = function() {
for (var i in CM.Cache.Objects10) {
CM.Cache.Objects10[i].price = CM.Sim.BuildingGetPrice(Game.Objects[i].basePrice, Game.Objects[i].amount, 10);
CM.Cache.Objects10[i].bci = CM.Cache.Objects10[i].price / CM.Cache.Objects10[i].bonus;
var color = '';
if (CM.Cache.Objects10[i].bci <= 0 || CM.Cache.Objects10[i].bci == 'Infinity') color = CM.Disp.colorGray;
else if (CM.Cache.Objects10[i].bci < CM.Disp.min) color = CM.Disp.colorBlue;
else if (CM.Cache.Objects10[i].bci == CM.Disp.min) color = CM.Disp.colorGreen;
else if (CM.Cache.Objects10[i].bci == CM.Disp.max) color = CM.Disp.colorRed;
else if (CM.Cache.Objects10[i].bci > CM.Disp.max) color = CM.Disp.colorPurple;
else if (CM.Cache.Objects10[i].bci > CM.Disp.mid) color = CM.Disp.colorOrange;
else color = CM.Disp.colorYellow;
CM.Cache.Objects10[i].color = color;
}
}

CM.Cache.RemakeBCI = function() {
// Buildings
// Buildings for 1 amount
CM.Cache.RemakeBuildingsBCI();

// Upgrades
CM.Cache.RemakeUpgradeBCI();

// Buildings for 10 amount
CM.Cache.RemakeBuildings10BCI();
}

CM.Cache.RemakeLucky = function() {
Expand Down Expand Up @@ -203,7 +225,7 @@ CM.LoadConfig = function() {
if (mod) CM.SaveConfig(CM.Config);
CM.Loop(); // Do loop once
for (var i in CM.ConfigDefault) {
if (CM.ConfigData[i].func != undefined) {
if (i != 'StatsPref' && CM.ConfigData[i].func != undefined) {
CM.ConfigData[i].func();
}
}
Expand Down Expand Up @@ -1040,7 +1062,7 @@ CM.Disp.AddMenuStats = function(title) {
span.style.color = 'black';
span.style.fontSize = '13px';
span.style.verticalAlign = 'middle';
span.textContent = CM.Config.StatsPref[config] ? '+' : '-';
span.textContent = CM.Config.StatsPref[config] ? '-' : '+';
span.onclick = function() {CM.ToggleStatsConfig(config); Game.UpdateMenu();};
div.appendChild(span);
return div;
Expand Down Expand Up @@ -1371,9 +1393,20 @@ CM.Disp.AddTooltipUpgrade = function() {
}
}

CM.Disp.AddTooltipBuild10 = function() {
for (var i in Game.Objects) {
var me = Game.Objects[i];
l('buttonBuy10-' + me.id).onmouseover = function() {CM.Disp.Buy10 = true;};
l('buttonBuy10-' + me.id).onmouseout = function() {CM.Disp.Buy10 = false;};
}
}

CM.Disp.Tooltip = function(type, name) {
if (type == 'b') {
l('tooltip').innerHTML = Game.Objects[name].tooltip();
if (CM.Disp.Buy10) {
l('tooltip').innerHTML = l('tooltip').innerHTML.split(Beautify(Game.Objects[name].getPrice())).join(Beautify(CM.Cache.Objects10[name].price));
}
}
else { // Upgrades
CM.Disp.TooltipUpgradeBack[name]();
Expand Down Expand Up @@ -1432,12 +1465,23 @@ CM.Disp.UpdateTooltip = function() {
var price;
var bonus;
if (CM.Disp.tooltipType == 'b') {
bonus = CM.Cache.Objects[CM.Disp.tooltipName].bonus;
price = Game.Objects[CM.Disp.tooltipName].getPrice();
if (CM.Config.Tooltip == 1) {
l('CMTooltipBorder').style.color = CM.Cache.Objects[CM.Disp.tooltipName].color;
l('CMTooltipBCI').textContent = Beautify(CM.Cache.Objects[CM.Disp.tooltipName].bci, 2);
l('CMTooltipBCI').style.color = CM.Cache.Objects[CM.Disp.tooltipName].color;
if (!CM.Disp.Buy10) {
bonus = CM.Cache.Objects[CM.Disp.tooltipName].bonus;
price = Game.Objects[CM.Disp.tooltipName].getPrice();
if (CM.Config.Tooltip == 1) {
l('CMTooltipBorder').style.color = CM.Cache.Objects[CM.Disp.tooltipName].color;
l('CMTooltipBCI').textContent = Beautify(CM.Cache.Objects[CM.Disp.tooltipName].bci, 2);
l('CMTooltipBCI').style.color = CM.Cache.Objects[CM.Disp.tooltipName].color;
}
}
else {
bonus = CM.Cache.Objects10[CM.Disp.tooltipName].bonus;
price = CM.Cache.Objects10[CM.Disp.tooltipName].price;
if (CM.Config.Tooltip == 1) {
l('CMTooltipBorder').style.color = CM.Cache.Objects10[CM.Disp.tooltipName].color;
l('CMTooltipBCI').textContent = Beautify(CM.Cache.Objects10[CM.Disp.tooltipName].bci, 2);
l('CMTooltipBCI').style.color = CM.Cache.Objects10[CM.Disp.tooltipName].color;
}
}
}
else { // Upgrades
Expand Down Expand Up @@ -1551,6 +1595,8 @@ CM.Disp.lastGoldenCookieState = 'none';
CM.Disp.metric = ['M', 'G', 'T', 'P', 'E', 'Z', 'Y'];
CM.Disp.shortScale = ['M', 'B', 'Tr', 'Quadr', 'Quint', 'Sext', 'Sept', 'Oct', 'Non', 'Dec', 'Undec', 'Duodec', 'Tredec'];

CM.Disp.Buy10 = false;

/********
* Main *
********/
Expand Down Expand Up @@ -1659,6 +1705,7 @@ CM.Init = function() {
CM.Disp.CreateGCTimer();
CM.Disp.CreateTooltipWarnCaut();
CM.Disp.AddTooltipBuild();
CM.Disp.AddTooltipBuild10();
CM.ReplaceNative();
Game.CalculateGains();
CM.LoadConfig(); // Must be after all things are created!
Expand All @@ -1680,6 +1727,20 @@ CM.VersionMinor = '7';
* Sim *
*******/

CM.Sim.BuildingGetPrice = function (basePrice, start, increase) {
var totalPrice = 0;
var count = 0;
while(count < increase) {
var price = basePrice * Math.pow(Game.priceIncrease, start + count);
if (Game.Has('Season savings')) price *= 0.99;
if (Game.Has('Santa\'s dominion')) price *= 0.99;
if (Game.Has('Faberge egg')) price *= 0.99;
totalPrice += Math.ceil(price);
count++;
}
return totalPrice;
}

eval('CM.Sim.Has = ' + Game.Has.toString().split('Game').join('CM.Sim'));

CM.Sim.Win = function(what) {
Expand Down Expand Up @@ -1884,12 +1945,12 @@ CM.Sim.CheckOtherAchiev = function() {
if (hasAllChristCook) CM.Sim.Win('Let it snow');
}

CM.Sim.BuyBuildings = function() {
CM.Cache.Objects = [];
CM.Sim.BuyBuildings = function(amount, target) {
CM.Cache[target] = [];
for (var i in Game.Objects) {
CM.Sim.CopyData();
var me = CM.Sim.Objects[i];
me.amount++;
me.amount += amount;

if (i == 'Cursor') {
if (me.amount >= 1) CM.Sim.Win('Click');
Expand Down Expand Up @@ -1982,8 +2043,8 @@ CM.Sim.BuyBuildings = function() {
CM.Sim.CalculateGains();
}

CM.Cache.Objects[i] = {};
CM.Cache.Objects[i].bonus = CM.Sim.cookiesPs - Game.cookiesPs;
CM.Cache[target][i] = {};
CM.Cache[target][i].bonus = CM.Sim.cookiesPs - Game.cookiesPs;
}
}

Expand Down
28 changes: 25 additions & 3 deletions src/Cache.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,14 @@
*********/

CM.Cache.RemakeIncome = function() {
// Simulate Building Buys
CM.Sim.BuyBuildings();
// Simulate Building Buys for 1 amount
CM.Sim.BuyBuildings(1, 'Objects');

// Simulate Upgrade Buys
CM.Sim.BuyUpgrades();

// Simulate Building Buys for 10 amount
CM.Sim.BuyBuildings(10, 'Objects10');
}

CM.Cache.RemakeBuildingsBCI = function() {
Expand Down Expand Up @@ -45,12 +48,31 @@ CM.Cache.RemakeUpgradeBCI = function() {
}
}

CM.Cache.RemakeBuildings10BCI = function() {
for (var i in CM.Cache.Objects10) {
CM.Cache.Objects10[i].price = CM.Sim.BuildingGetPrice(Game.Objects[i].basePrice, Game.Objects[i].amount, 10);
CM.Cache.Objects10[i].bci = CM.Cache.Objects10[i].price / CM.Cache.Objects10[i].bonus;
var color = '';
if (CM.Cache.Objects10[i].bci <= 0 || CM.Cache.Objects10[i].bci == 'Infinity') color = CM.Disp.colorGray;
else if (CM.Cache.Objects10[i].bci < CM.Disp.min) color = CM.Disp.colorBlue;
else if (CM.Cache.Objects10[i].bci == CM.Disp.min) color = CM.Disp.colorGreen;
else if (CM.Cache.Objects10[i].bci == CM.Disp.max) color = CM.Disp.colorRed;
else if (CM.Cache.Objects10[i].bci > CM.Disp.max) color = CM.Disp.colorPurple;
else if (CM.Cache.Objects10[i].bci > CM.Disp.mid) color = CM.Disp.colorOrange;
else color = CM.Disp.colorYellow;
CM.Cache.Objects10[i].color = color;
}
}

CM.Cache.RemakeBCI = function() {
// Buildings
// Buildings for 1 amount
CM.Cache.RemakeBuildingsBCI();

// Upgrades
CM.Cache.RemakeUpgradeBCI();

// Buildings for 10 amount
CM.Cache.RemakeBuildings10BCI();
}

CM.Cache.RemakeLucky = function() {
Expand Down
2 changes: 1 addition & 1 deletion src/Config.js
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ CM.LoadConfig = function() {
if (mod) CM.SaveConfig(CM.Config);
CM.Loop(); // Do loop once
for (var i in CM.ConfigDefault) {
if (CM.ConfigData[i].func != undefined) {
if (i != 'StatsPref' && CM.ConfigData[i].func != undefined) {
CM.ConfigData[i].func();
}
}
Expand Down
36 changes: 30 additions & 6 deletions src/Disp.js
Original file line number Diff line number Diff line change
Expand Up @@ -1087,9 +1087,20 @@ CM.Disp.AddTooltipUpgrade = function() {
}
}

CM.Disp.AddTooltipBuild10 = function() {
for (var i in Game.Objects) {
var me = Game.Objects[i];
l('buttonBuy10-' + me.id).onmouseover = function() {CM.Disp.Buy10 = true;};
l('buttonBuy10-' + me.id).onmouseout = function() {CM.Disp.Buy10 = false;};
}
}

CM.Disp.Tooltip = function(type, name) {
if (type == 'b') {
l('tooltip').innerHTML = Game.Objects[name].tooltip();
if (CM.Disp.Buy10) {
l('tooltip').innerHTML = l('tooltip').innerHTML.split(Beautify(Game.Objects[name].getPrice())).join(Beautify(CM.Cache.Objects10[name].price));
}
}
else { // Upgrades
CM.Disp.TooltipUpgradeBack[name]();
Expand Down Expand Up @@ -1148,12 +1159,23 @@ CM.Disp.UpdateTooltip = function() {
var price;
var bonus;
if (CM.Disp.tooltipType == 'b') {
bonus = CM.Cache.Objects[CM.Disp.tooltipName].bonus;
price = Game.Objects[CM.Disp.tooltipName].getPrice();
if (CM.Config.Tooltip == 1) {
l('CMTooltipBorder').style.color = CM.Cache.Objects[CM.Disp.tooltipName].color;
l('CMTooltipBCI').textContent = Beautify(CM.Cache.Objects[CM.Disp.tooltipName].bci, 2);
l('CMTooltipBCI').style.color = CM.Cache.Objects[CM.Disp.tooltipName].color;
if (!CM.Disp.Buy10) {
bonus = CM.Cache.Objects[CM.Disp.tooltipName].bonus;
price = Game.Objects[CM.Disp.tooltipName].getPrice();
if (CM.Config.Tooltip == 1) {
l('CMTooltipBorder').style.color = CM.Cache.Objects[CM.Disp.tooltipName].color;
l('CMTooltipBCI').textContent = Beautify(CM.Cache.Objects[CM.Disp.tooltipName].bci, 2);
l('CMTooltipBCI').style.color = CM.Cache.Objects[CM.Disp.tooltipName].color;
}
}
else {
bonus = CM.Cache.Objects10[CM.Disp.tooltipName].bonus;
price = CM.Cache.Objects10[CM.Disp.tooltipName].price;
if (CM.Config.Tooltip == 1) {
l('CMTooltipBorder').style.color = CM.Cache.Objects10[CM.Disp.tooltipName].color;
l('CMTooltipBCI').textContent = Beautify(CM.Cache.Objects10[CM.Disp.tooltipName].bci, 2);
l('CMTooltipBCI').style.color = CM.Cache.Objects10[CM.Disp.tooltipName].color;
}
}
}
else { // Upgrades
Expand Down Expand Up @@ -1267,3 +1289,5 @@ CM.Disp.lastGoldenCookieState = 'none';
CM.Disp.metric = ['M', 'G', 'T', 'P', 'E', 'Z', 'Y'];
CM.Disp.shortScale = ['M', 'B', 'Tr', 'Quadr', 'Quint', 'Sext', 'Sept', 'Oct', 'Non', 'Dec', 'Undec', 'Duodec', 'Tredec'];

CM.Disp.Buy10 = false;

1 change: 1 addition & 0 deletions src/Main.js
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,7 @@ CM.Init = function() {
CM.Disp.CreateGCTimer();
CM.Disp.CreateTooltipWarnCaut();
CM.Disp.AddTooltipBuild();
CM.Disp.AddTooltipBuild10();
CM.ReplaceNative();
Game.CalculateGains();
CM.LoadConfig(); // Must be after all things are created!
Expand Down
24 changes: 19 additions & 5 deletions src/Sim.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,20 @@
* Sim *
*******/

CM.Sim.BuildingGetPrice = function (basePrice, start, increase) {
var totalPrice = 0;
var count = 0;
while(count < increase) {
var price = basePrice * Math.pow(Game.priceIncrease, start + count);
if (Game.Has('Season savings')) price *= 0.99;
if (Game.Has('Santa\'s dominion')) price *= 0.99;
if (Game.Has('Faberge egg')) price *= 0.99;
totalPrice += Math.ceil(price);
count++;
}
return totalPrice;
}

eval('CM.Sim.Has = ' + Game.Has.toString().split('Game').join('CM.Sim'));

CM.Sim.Win = function(what) {
Expand Down Expand Up @@ -206,12 +220,12 @@ CM.Sim.CheckOtherAchiev = function() {
if (hasAllChristCook) CM.Sim.Win('Let it snow');
}

CM.Sim.BuyBuildings = function() {
CM.Cache.Objects = [];
CM.Sim.BuyBuildings = function(amount, target) {
CM.Cache[target] = [];
for (var i in Game.Objects) {
CM.Sim.CopyData();
var me = CM.Sim.Objects[i];
me.amount++;
me.amount += amount;

if (i == 'Cursor') {
if (me.amount >= 1) CM.Sim.Win('Click');
Expand Down Expand Up @@ -304,8 +318,8 @@ CM.Sim.BuyBuildings = function() {
CM.Sim.CalculateGains();
}

CM.Cache.Objects[i] = {};
CM.Cache.Objects[i].bonus = CM.Sim.cookiesPs - Game.cookiesPs;
CM.Cache[target][i] = {};
CM.Cache[target][i].bonus = CM.Sim.cookiesPs - Game.cookiesPs;
}
}

Expand Down

0 comments on commit 9395beb

Please sign in to comment.