Cleaned up CM.Sim.CalculateGains and added TODOs
This commit is contained in:
@@ -3577,6 +3577,8 @@ CM.Sim.hasAura = function(what) {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Check if multiplier auras are present
|
||||||
|
// Used as CM.Sim.auraMult('Aura') * mult, i.e. CM.Sim.auraMult('Dragon God) * 0.05
|
||||||
CM.Sim.auraMult = function(what) {
|
CM.Sim.auraMult = function(what) {
|
||||||
var n = 0;
|
var n = 0;
|
||||||
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)
|
||||||
@@ -3643,7 +3645,7 @@ CM.Sim.CopyData = function() {
|
|||||||
CM.Sim.UpgradesOwned = Game.UpgradesOwned;
|
CM.Sim.UpgradesOwned = Game.UpgradesOwned;
|
||||||
CM.Sim.pledges = Game.pledges;
|
CM.Sim.pledges = Game.pledges;
|
||||||
CM.Sim.AchievementsOwned = Game.AchievementsOwned;
|
CM.Sim.AchievementsOwned = Game.AchievementsOwned;
|
||||||
CM.Sim.heavenlyPower = Game.heavenlyPower; // Unneeded?
|
CM.Sim.heavenlyPower = Game.heavenlyPower; // Unneeded? > Might be modded
|
||||||
CM.Sim.prestige = Game.prestige;
|
CM.Sim.prestige = Game.prestige;
|
||||||
CM.Sim.dragonAura = Game.dragonAura;
|
CM.Sim.dragonAura = Game.dragonAura;
|
||||||
CM.Sim.dragonAura2 = Game.dragonAura2;
|
CM.Sim.dragonAura2 = Game.dragonAura2;
|
||||||
@@ -3688,15 +3690,22 @@ CM.Sim.CopyData = function() {
|
|||||||
CM.Sim.CalculateGains = function() {
|
CM.Sim.CalculateGains = function() {
|
||||||
CM.Sim.cookiesPs = 0;
|
CM.Sim.cookiesPs = 0;
|
||||||
var mult = 1;
|
var mult = 1;
|
||||||
|
// Include minigame effects
|
||||||
|
for (var i in CM.Cache.Objects) {
|
||||||
|
// TODO Store minigames and effects in Cache
|
||||||
|
// Include possibility of new/modded building and new/modded minigames
|
||||||
|
if (Game.Objects[i].minigameLoaded && Game.Objects[i].minigame.effs) {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (Game.ascensionMode != 1) mult += parseFloat(CM.Sim.prestige) * 0.01 * CM.Sim.heavenlyPower * CM.Sim.GetHeavenlyMultiplier();
|
if (Game.ascensionMode != 1) mult += parseFloat(CM.Sim.prestige) * 0.01 * CM.Sim.heavenlyPower * CM.Sim.GetHeavenlyMultiplier();
|
||||||
|
|
||||||
// TODO Store minigame buffs?
|
|
||||||
mult *= Game.eff('cps');
|
mult *= Game.eff('cps');
|
||||||
|
|
||||||
if (CM.Sim.Has('Heralds') && Game.ascensionMode != 1) mult *= 1 + 0.01 * Game.heralds;
|
if (CM.Sim.Has('Heralds') && Game.ascensionMode != 1) mult *= 1 + 0.01 * Game.heralds;
|
||||||
|
|
||||||
var cookieMult = 0;
|
// TODO: Make function call cached function where Game.Has is replaced with CM.Has
|
||||||
|
// Related to valentine cookies
|
||||||
for (var i in Game.cookieUpgrades) {
|
for (var i in Game.cookieUpgrades) {
|
||||||
var me = Game.cookieUpgrades[i];
|
var me = Game.cookieUpgrades[i];
|
||||||
if (CM.Sim.Has(me.name)) {
|
if (CM.Sim.Has(me.name)) {
|
||||||
@@ -3704,7 +3713,6 @@ CM.Sim.CalculateGains = function() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
mult *= (1 + 0.01 * cookieMult);
|
|
||||||
if (CM.Sim.Has('Specialized chocolate chips')) mult *= 1.01;
|
if (CM.Sim.Has('Specialized chocolate chips')) mult *= 1.01;
|
||||||
if (CM.Sim.Has('Designer cocoa beans')) mult *= 1.02;
|
if (CM.Sim.Has('Designer cocoa beans')) mult *= 1.02;
|
||||||
if (CM.Sim.Has('Underworld ovens')) mult *= 1.03;
|
if (CM.Sim.Has('Underworld ovens')) mult *= 1.03;
|
||||||
@@ -3722,6 +3730,8 @@ CM.Sim.CalculateGains = function() {
|
|||||||
|
|
||||||
if (CM.Sim.Has('Dragon scale')) mult *= 1.03;
|
if (CM.Sim.Has('Dragon scale')) mult *= 1.03;
|
||||||
|
|
||||||
|
// Cached and sim temple gods
|
||||||
|
// TODO: Caches chosen gods
|
||||||
var buildMult = 1;
|
var buildMult = 1;
|
||||||
if (Game.hasGod) {
|
if (Game.hasGod) {
|
||||||
var godLvl = Game.hasGod('asceticism');
|
var godLvl = Game.hasGod('asceticism');
|
||||||
@@ -3729,6 +3739,7 @@ CM.Sim.CalculateGains = function() {
|
|||||||
else if (godLvl == 2) mult *= 1.1;
|
else if (godLvl == 2) mult *= 1.1;
|
||||||
else if (godLvl == 3) mult *= 1.05;
|
else if (godLvl == 3) mult *= 1.05;
|
||||||
|
|
||||||
|
// TODO: What does DateAges do?
|
||||||
var godLvl = Game.hasGod('ages');
|
var godLvl = Game.hasGod('ages');
|
||||||
if (godLvl == 1) mult *= 1 + 0.15 * Math.sin((CM.Sim.DateAges / 1000 / (60 * 60 * 3)) * Math.PI * 2);
|
if (godLvl == 1) mult *= 1 + 0.15 * Math.sin((CM.Sim.DateAges / 1000 / (60 * 60 * 3)) * Math.PI * 2);
|
||||||
else if (godLvl == 2) mult *= 1 + 0.15 * Math.sin((CM.Sim.DateAges / 1000 / (60 * 60 * 12)) * Math.PI*2);
|
else if (godLvl == 2) mult *= 1 + 0.15 * Math.sin((CM.Sim.DateAges / 1000 / (60 * 60 * 12)) * Math.PI*2);
|
||||||
@@ -3824,26 +3835,25 @@ CM.Sim.CalculateGains = function() {
|
|||||||
//if (CM.Sim.hasAura('Radiant Appetite')) mult *= 2;
|
//if (CM.Sim.hasAura('Radiant Appetite')) mult *= 2;
|
||||||
mult *= 1 + CM.Sim.auraMult('Radiant Appetite');
|
mult *= 1 + CM.Sim.auraMult('Radiant Appetite');
|
||||||
|
|
||||||
if (true) { // || CM.Sim.hasAura('Dragon\'s Fortune')) {
|
|
||||||
var n = Game.shimmerTypes['golden'].n;
|
|
||||||
var auraMult = CM.Sim.auraMult('Dragon\'s Fortune');
|
|
||||||
for (var i = 0; i < n; i++) {
|
|
||||||
mult *= 1 + auraMult * 1.23;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
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);
|
||||||
}
|
}
|
||||||
|
|
||||||
mult *= CM.Sim.getCPSBuffMult();
|
CM.Sim.cookiesPsRaw=rawCookiesPs;
|
||||||
|
|
||||||
|
if (CM.Sim.hasAura('Dragon\'s Fortune')) {
|
||||||
|
var n = Game.shimmerTypes['golden'].n;
|
||||||
|
for (var i = 0; i < n; i++) {
|
||||||
|
mult *= 1.23;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Pointless?
|
|
||||||
var name = Game.bakeryName.toLowerCase();
|
var name = Game.bakeryName.toLowerCase();
|
||||||
if (name == 'orteil') mult *= 0.99;
|
if (name == 'orteil') mult *= 0.99;
|
||||||
else if (name == 'ortiel') mult *= 0.98; //or so help me
|
else if (name == 'ortiel') mult *= 0.98;
|
||||||
|
|
||||||
|
// TODO: Move CalcWink option and calculation here from CM.Disp
|
||||||
|
|
||||||
if (CM.Sim.Has('Elder Covenant')) mult *= 0.95;
|
if (CM.Sim.Has('Elder Covenant')) mult *= 0.95;
|
||||||
|
|
||||||
@@ -3862,13 +3872,15 @@ CM.Sim.CalculateGains = function() {
|
|||||||
if (CM.Sim.Has('Reinforced membrane')) veilMult += 0.1;
|
if (CM.Sim.Has('Reinforced membrane')) veilMult += 0.1;
|
||||||
mult *= 1 + veilMult;
|
mult *= 1 + veilMult;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Removed debug upgrades
|
// Removed debug upgrades
|
||||||
|
|
||||||
// Removed buffs
|
mult *= CM.Sim.getCPSBuffMult();
|
||||||
|
|
||||||
|
// TODO: Handle ModHooks, see Game code
|
||||||
|
|
||||||
CM.Sim.cookiesPs *= mult;
|
CM.Sim.cookiesPs *= mult;
|
||||||
|
|
||||||
// TODO remove?
|
|
||||||
// if (Game.hasBuff('Cursed finger')) Game.cookiesPs = 0;
|
// if (Game.hasBuff('Cursed finger')) Game.cookiesPs = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -4091,6 +4103,7 @@ CM.Sim.ResetBonus = function(possiblePresMax) {
|
|||||||
CM.Sim.Upgrades['Heavenly confectionery'].bought = 1;
|
CM.Sim.Upgrades['Heavenly confectionery'].bought = 1;
|
||||||
CM.Sim.Upgrades['Heavenly key'].bought = 1;
|
CM.Sim.Upgrades['Heavenly key'].bought = 1;
|
||||||
|
|
||||||
|
// TODO: Fix this reseting.
|
||||||
CM.Sim.prestige = possiblePresMax;
|
CM.Sim.prestige = possiblePresMax;
|
||||||
|
|
||||||
lastAchievementsOwned = CM.Sim.AchievementsOwned;
|
lastAchievementsOwned = CM.Sim.AchievementsOwned;
|
||||||
@@ -4164,8 +4177,7 @@ CM.Sim.SellBuildingsForChoEgg = function() {
|
|||||||
// Get money made by selling all remaining buildings
|
// Get money made by selling all remaining buildings
|
||||||
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];
|
||||||
debug = CM.Sim.BuildingSell(Game.Objects[me.name], Game.Objects[i].basePrice, me.amount, Game.Objects[i].free, me.amount);
|
sellTotal += CM.Sim.BuildingSell(Game.Objects[me.name], Game.Objects[i].basePrice, me.amount, Game.Objects[i].free, me.amount);
|
||||||
sellTotal += debug;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// CM.Sim.CalculateGains();
|
// CM.Sim.CalculateGains();
|
||||||
|
|||||||
53
src/Sim.js
53
src/Sim.js
@@ -86,6 +86,8 @@ CM.Sim.hasAura = function(what) {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Check if multiplier auras are present
|
||||||
|
// Used as CM.Sim.auraMult('Aura') * mult, i.e. CM.Sim.auraMult('Dragon God) * 0.05
|
||||||
CM.Sim.auraMult = function(what) {
|
CM.Sim.auraMult = function(what) {
|
||||||
var n = 0;
|
var n = 0;
|
||||||
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)
|
||||||
@@ -152,7 +154,7 @@ CM.Sim.CopyData = function() {
|
|||||||
CM.Sim.UpgradesOwned = Game.UpgradesOwned;
|
CM.Sim.UpgradesOwned = Game.UpgradesOwned;
|
||||||
CM.Sim.pledges = Game.pledges;
|
CM.Sim.pledges = Game.pledges;
|
||||||
CM.Sim.AchievementsOwned = Game.AchievementsOwned;
|
CM.Sim.AchievementsOwned = Game.AchievementsOwned;
|
||||||
CM.Sim.heavenlyPower = Game.heavenlyPower; // Unneeded?
|
CM.Sim.heavenlyPower = Game.heavenlyPower; // Unneeded? > Might be modded
|
||||||
CM.Sim.prestige = Game.prestige;
|
CM.Sim.prestige = Game.prestige;
|
||||||
CM.Sim.dragonAura = Game.dragonAura;
|
CM.Sim.dragonAura = Game.dragonAura;
|
||||||
CM.Sim.dragonAura2 = Game.dragonAura2;
|
CM.Sim.dragonAura2 = Game.dragonAura2;
|
||||||
@@ -197,15 +199,22 @@ CM.Sim.CopyData = function() {
|
|||||||
CM.Sim.CalculateGains = function() {
|
CM.Sim.CalculateGains = function() {
|
||||||
CM.Sim.cookiesPs = 0;
|
CM.Sim.cookiesPs = 0;
|
||||||
var mult = 1;
|
var mult = 1;
|
||||||
|
// Include minigame effects
|
||||||
|
for (var i in CM.Cache.Objects) {
|
||||||
|
// TODO Store minigames and effects in Cache
|
||||||
|
// Include possibility of new/modded building and new/modded minigames
|
||||||
|
if (Game.Objects[i].minigameLoaded && Game.Objects[i].minigame.effs) {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (Game.ascensionMode != 1) mult += parseFloat(CM.Sim.prestige) * 0.01 * CM.Sim.heavenlyPower * CM.Sim.GetHeavenlyMultiplier();
|
if (Game.ascensionMode != 1) mult += parseFloat(CM.Sim.prestige) * 0.01 * CM.Sim.heavenlyPower * CM.Sim.GetHeavenlyMultiplier();
|
||||||
|
|
||||||
// TODO Store minigame buffs?
|
|
||||||
mult *= Game.eff('cps');
|
mult *= Game.eff('cps');
|
||||||
|
|
||||||
if (CM.Sim.Has('Heralds') && Game.ascensionMode != 1) mult *= 1 + 0.01 * Game.heralds;
|
if (CM.Sim.Has('Heralds') && Game.ascensionMode != 1) mult *= 1 + 0.01 * Game.heralds;
|
||||||
|
|
||||||
var cookieMult = 0;
|
// TODO: Make function call cached function where Game.Has is replaced with CM.Has
|
||||||
|
// Related to valentine cookies
|
||||||
for (var i in Game.cookieUpgrades) {
|
for (var i in Game.cookieUpgrades) {
|
||||||
var me = Game.cookieUpgrades[i];
|
var me = Game.cookieUpgrades[i];
|
||||||
if (CM.Sim.Has(me.name)) {
|
if (CM.Sim.Has(me.name)) {
|
||||||
@@ -213,7 +222,6 @@ CM.Sim.CalculateGains = function() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
mult *= (1 + 0.01 * cookieMult);
|
|
||||||
if (CM.Sim.Has('Specialized chocolate chips')) mult *= 1.01;
|
if (CM.Sim.Has('Specialized chocolate chips')) mult *= 1.01;
|
||||||
if (CM.Sim.Has('Designer cocoa beans')) mult *= 1.02;
|
if (CM.Sim.Has('Designer cocoa beans')) mult *= 1.02;
|
||||||
if (CM.Sim.Has('Underworld ovens')) mult *= 1.03;
|
if (CM.Sim.Has('Underworld ovens')) mult *= 1.03;
|
||||||
@@ -231,6 +239,8 @@ CM.Sim.CalculateGains = function() {
|
|||||||
|
|
||||||
if (CM.Sim.Has('Dragon scale')) mult *= 1.03;
|
if (CM.Sim.Has('Dragon scale')) mult *= 1.03;
|
||||||
|
|
||||||
|
// Cached and sim temple gods
|
||||||
|
// TODO: Caches chosen gods
|
||||||
var buildMult = 1;
|
var buildMult = 1;
|
||||||
if (Game.hasGod) {
|
if (Game.hasGod) {
|
||||||
var godLvl = Game.hasGod('asceticism');
|
var godLvl = Game.hasGod('asceticism');
|
||||||
@@ -238,6 +248,7 @@ CM.Sim.CalculateGains = function() {
|
|||||||
else if (godLvl == 2) mult *= 1.1;
|
else if (godLvl == 2) mult *= 1.1;
|
||||||
else if (godLvl == 3) mult *= 1.05;
|
else if (godLvl == 3) mult *= 1.05;
|
||||||
|
|
||||||
|
// TODO: What does DateAges do?
|
||||||
var godLvl = Game.hasGod('ages');
|
var godLvl = Game.hasGod('ages');
|
||||||
if (godLvl == 1) mult *= 1 + 0.15 * Math.sin((CM.Sim.DateAges / 1000 / (60 * 60 * 3)) * Math.PI * 2);
|
if (godLvl == 1) mult *= 1 + 0.15 * Math.sin((CM.Sim.DateAges / 1000 / (60 * 60 * 3)) * Math.PI * 2);
|
||||||
else if (godLvl == 2) mult *= 1 + 0.15 * Math.sin((CM.Sim.DateAges / 1000 / (60 * 60 * 12)) * Math.PI*2);
|
else if (godLvl == 2) mult *= 1 + 0.15 * Math.sin((CM.Sim.DateAges / 1000 / (60 * 60 * 12)) * Math.PI*2);
|
||||||
@@ -333,26 +344,25 @@ CM.Sim.CalculateGains = function() {
|
|||||||
//if (CM.Sim.hasAura('Radiant Appetite')) mult *= 2;
|
//if (CM.Sim.hasAura('Radiant Appetite')) mult *= 2;
|
||||||
mult *= 1 + CM.Sim.auraMult('Radiant Appetite');
|
mult *= 1 + CM.Sim.auraMult('Radiant Appetite');
|
||||||
|
|
||||||
if (true) { // || CM.Sim.hasAura('Dragon\'s Fortune')) {
|
|
||||||
var n = Game.shimmerTypes['golden'].n;
|
|
||||||
var auraMult = CM.Sim.auraMult('Dragon\'s Fortune');
|
|
||||||
for (var i = 0; i < n; i++) {
|
|
||||||
mult *= 1 + auraMult * 1.23;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
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);
|
||||||
}
|
}
|
||||||
|
|
||||||
mult *= CM.Sim.getCPSBuffMult();
|
CM.Sim.cookiesPsRaw=rawCookiesPs;
|
||||||
|
|
||||||
|
if (CM.Sim.hasAura('Dragon\'s Fortune')) {
|
||||||
|
var n = Game.shimmerTypes['golden'].n;
|
||||||
|
for (var i = 0; i < n; i++) {
|
||||||
|
mult *= 1.23;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Pointless?
|
|
||||||
var name = Game.bakeryName.toLowerCase();
|
var name = Game.bakeryName.toLowerCase();
|
||||||
if (name == 'orteil') mult *= 0.99;
|
if (name == 'orteil') mult *= 0.99;
|
||||||
else if (name == 'ortiel') mult *= 0.98; //or so help me
|
else if (name == 'ortiel') mult *= 0.98;
|
||||||
|
|
||||||
|
// TODO: Move CalcWink option and calculation here from CM.Disp
|
||||||
|
|
||||||
if (CM.Sim.Has('Elder Covenant')) mult *= 0.95;
|
if (CM.Sim.Has('Elder Covenant')) mult *= 0.95;
|
||||||
|
|
||||||
@@ -371,13 +381,15 @@ CM.Sim.CalculateGains = function() {
|
|||||||
if (CM.Sim.Has('Reinforced membrane')) veilMult += 0.1;
|
if (CM.Sim.Has('Reinforced membrane')) veilMult += 0.1;
|
||||||
mult *= 1 + veilMult;
|
mult *= 1 + veilMult;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Removed debug upgrades
|
// Removed debug upgrades
|
||||||
|
|
||||||
// Removed buffs
|
mult *= CM.Sim.getCPSBuffMult();
|
||||||
|
|
||||||
|
// TODO: Handle ModHooks, see Game code
|
||||||
|
|
||||||
CM.Sim.cookiesPs *= mult;
|
CM.Sim.cookiesPs *= mult;
|
||||||
|
|
||||||
// TODO remove?
|
|
||||||
// if (Game.hasBuff('Cursed finger')) Game.cookiesPs = 0;
|
// if (Game.hasBuff('Cursed finger')) Game.cookiesPs = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -600,6 +612,7 @@ CM.Sim.ResetBonus = function(possiblePresMax) {
|
|||||||
CM.Sim.Upgrades['Heavenly confectionery'].bought = 1;
|
CM.Sim.Upgrades['Heavenly confectionery'].bought = 1;
|
||||||
CM.Sim.Upgrades['Heavenly key'].bought = 1;
|
CM.Sim.Upgrades['Heavenly key'].bought = 1;
|
||||||
|
|
||||||
|
// TODO: Fix this reseting.
|
||||||
CM.Sim.prestige = possiblePresMax;
|
CM.Sim.prestige = possiblePresMax;
|
||||||
|
|
||||||
lastAchievementsOwned = CM.Sim.AchievementsOwned;
|
lastAchievementsOwned = CM.Sim.AchievementsOwned;
|
||||||
|
|||||||
Reference in New Issue
Block a user