Fix accidentally erasing data if a new building/upgrade/achievement is found.

This commit is contained in:
Static Variable James
2020-11-26 20:49:06 -06:00
parent 744ee0dc5e
commit 8f809cc093
2 changed files with 96 additions and 48 deletions

View File

@@ -3645,13 +3645,17 @@ CM.Sim.getCPSBuffMult = function() {
return mult; return mult;
} }
CM.Sim.InitData = function() { /* Constructs an object with the static properties of a building,
// Buildings * but with a 'cps' method changed to use 'CM.Sim.Has' instead of 'Game.Has'
CM.Sim.Objects = []; * (and similar to 'hasAura', 'Objects', 'GetTieredCpsMult' and 'auraMult').
for (var i in Game.Objects) { *
CM.Sim.Objects[i] = {}; * The dynamic properties of the building,
var me = Game.Objects[i]; * namely level and amount owned,
var you = CM.Sim.Objects[i]; * are set by CM.Sim.CopyData.
*/
CM.Sim.InitialBuildingData = function(buildingName) {
var me = Game.Objects[buildingName];
var you = {};
eval('you.cps = ' + me.cps.toString() eval('you.cps = ' + me.cps.toString()
.split('Game.Has').join('CM.Sim.Has') .split('Game.Has').join('CM.Sim.Has')
.split('Game.hasAura').join('CM.Sim.hasAura') .split('Game.hasAura').join('CM.Sim.hasAura')
@@ -3662,18 +3666,42 @@ CM.Sim.InitData = function() {
// Below is needed for above eval! // Below is needed for above eval!
you.baseCps = me.baseCps; you.baseCps = me.baseCps;
you.name = me.name; you.name = me.name;
return you;
}
/* Similar to the previous function, but for upgrades.
* Note: currently no static data is used by Cookie Monster,
* so this function just returns an empty object.
*/
CM.Sim.InitUpgrade = function(upgradeName) {
return {};
}
/* Similar to the previous function, but for achievements.
* Note: currently no static data is used by Cookie Monster,
* so this function just returns an empty object.
*/
CM.Sim.InitAchievement = function(achievementName) {
return {};
}
CM.Sim.InitData = function() {
// Buildings
CM.Sim.Objects = [];
for (var i in Game.Objects) {
CM.Sim.Objects[i] = CM.Sim.InitialBuildingData(i);
} }
// Upgrades // Upgrades
CM.Sim.Upgrades = []; CM.Sim.Upgrades = [];
for (var i in Game.Upgrades) { for (var i in Game.Upgrades) {
CM.Sim.Upgrades[i] = {}; CM.Sim.Upgrades[i] = CM.Sim.InitUpgrade(i);
} }
// Achievements // Achievements
CM.Sim.Achievements = []; CM.Sim.Achievements = [];
for (var i in Game.Achievements) { for (var i in Game.Achievements) {
CM.Sim.Achievements[i] = {}; CM.Sim.Achievements[i] = CM.Sim.InitAchievement(i);
} }
} }
@@ -3691,10 +3719,9 @@ CM.Sim.CopyData = function() {
for (var i in Game.Objects) { for (var i in Game.Objects) {
var me = Game.Objects[i]; var me = Game.Objects[i];
var you = CM.Sim.Objects[i]; var you = CM.Sim.Objects[i];
if (you == undefined) { if (you == undefined) { // New building!
CM.Sim.InitData(); you = CM.Sim.Objects[i] = CM.Sim.InitialBuildingData(i);
you = CM.Sim.Objects[i]; // Not undefined anymore CM.Disp.CreateBotBarBuildingColumn(i); // Add new building to the bottom bar
CM.Disp.CreateBotBarBuildingColumn(i); // New building! Add it to the bottom bar
} }
you.amount = me.amount; you.amount = me.amount;
you.level = me.level; you.level = me.level;
@@ -3705,8 +3732,7 @@ CM.Sim.CopyData = function() {
var me = Game.Upgrades[i]; var me = Game.Upgrades[i];
var you = CM.Sim.Upgrades[i]; var you = CM.Sim.Upgrades[i];
if (you == undefined) { if (you == undefined) {
CM.Sim.InitData(); you = CM.Sim.Upgrades[i] = CM.Sim.InitUpgrade(i);
you = CM.Sim.Upgrades[i];
} }
you.bought = me.bought; you.bought = me.bought;
} }
@@ -3716,14 +3742,12 @@ CM.Sim.CopyData = function() {
var me = Game.Achievements[i]; var me = Game.Achievements[i];
var you = CM.Sim.Achievements[i]; var you = CM.Sim.Achievements[i];
if (you == undefined) { if (you == undefined) {
CM.Sim.InitData(); you = CM.Sim.Achievements[i] = CM.Sim.InitAchievement(i);
you = CM.Sim.Achievements[i];
} }
you.won = me.won; you.won = me.won;
} }
}; };
CM.Sim.CalculateGains = function() { CM.Sim.CalculateGains = function() {
CM.Sim.cookiesPs = 0; CM.Sim.cookiesPs = 0;
var mult = 1; var mult = 1;

View File

@@ -120,13 +120,17 @@ CM.Sim.getCPSBuffMult = function() {
return mult; return mult;
} }
CM.Sim.InitData = function() { /* Constructs an object with the static properties of a building,
// Buildings * but with a 'cps' method changed to use 'CM.Sim.Has' instead of 'Game.Has'
CM.Sim.Objects = []; * (and similar to 'hasAura', 'Objects', 'GetTieredCpsMult' and 'auraMult').
for (var i in Game.Objects) { *
CM.Sim.Objects[i] = {}; * The dynamic properties of the building,
var me = Game.Objects[i]; * namely level and amount owned,
var you = CM.Sim.Objects[i]; * are set by CM.Sim.CopyData.
*/
CM.Sim.InitialBuildingData = function(buildingName) {
var me = Game.Objects[buildingName];
var you = {};
eval('you.cps = ' + me.cps.toString() eval('you.cps = ' + me.cps.toString()
.split('Game.Has').join('CM.Sim.Has') .split('Game.Has').join('CM.Sim.Has')
.split('Game.hasAura').join('CM.Sim.hasAura') .split('Game.hasAura').join('CM.Sim.hasAura')
@@ -137,18 +141,42 @@ CM.Sim.InitData = function() {
// Below is needed for above eval! // Below is needed for above eval!
you.baseCps = me.baseCps; you.baseCps = me.baseCps;
you.name = me.name; you.name = me.name;
return you;
}
/* Similar to the previous function, but for upgrades.
* Note: currently no static data is used by Cookie Monster,
* so this function just returns an empty object.
*/
CM.Sim.InitUpgrade = function(upgradeName) {
return {};
}
/* Similar to the previous function, but for achievements.
* Note: currently no static data is used by Cookie Monster,
* so this function just returns an empty object.
*/
CM.Sim.InitAchievement = function(achievementName) {
return {};
}
CM.Sim.InitData = function() {
// Buildings
CM.Sim.Objects = [];
for (var i in Game.Objects) {
CM.Sim.Objects[i] = CM.Sim.InitialBuildingData(i);
} }
// Upgrades // Upgrades
CM.Sim.Upgrades = []; CM.Sim.Upgrades = [];
for (var i in Game.Upgrades) { for (var i in Game.Upgrades) {
CM.Sim.Upgrades[i] = {}; CM.Sim.Upgrades[i] = CM.Sim.InitUpgrade(i);
} }
// Achievements // Achievements
CM.Sim.Achievements = []; CM.Sim.Achievements = [];
for (var i in Game.Achievements) { for (var i in Game.Achievements) {
CM.Sim.Achievements[i] = {}; CM.Sim.Achievements[i] = CM.Sim.InitAchievement(i);
} }
} }
@@ -166,10 +194,9 @@ CM.Sim.CopyData = function() {
for (var i in Game.Objects) { for (var i in Game.Objects) {
var me = Game.Objects[i]; var me = Game.Objects[i];
var you = CM.Sim.Objects[i]; var you = CM.Sim.Objects[i];
if (you == undefined) { if (you == undefined) { // New building!
CM.Sim.InitData(); you = CM.Sim.Objects[i] = CM.Sim.InitialBuildingData(i);
you = CM.Sim.Objects[i]; // Not undefined anymore CM.Disp.CreateBotBarBuildingColumn(i); // Add new building to the bottom bar
CM.Disp.CreateBotBarBuildingColumn(i); // New building! Add it to the bottom bar
} }
you.amount = me.amount; you.amount = me.amount;
you.level = me.level; you.level = me.level;
@@ -180,8 +207,7 @@ CM.Sim.CopyData = function() {
var me = Game.Upgrades[i]; var me = Game.Upgrades[i];
var you = CM.Sim.Upgrades[i]; var you = CM.Sim.Upgrades[i];
if (you == undefined) { if (you == undefined) {
CM.Sim.InitData(); you = CM.Sim.Upgrades[i] = CM.Sim.InitUpgrade(i);
you = CM.Sim.Upgrades[i];
} }
you.bought = me.bought; you.bought = me.bought;
} }
@@ -191,14 +217,12 @@ CM.Sim.CopyData = function() {
var me = Game.Achievements[i]; var me = Game.Achievements[i];
var you = CM.Sim.Achievements[i]; var you = CM.Sim.Achievements[i];
if (you == undefined) { if (you == undefined) {
CM.Sim.InitData(); you = CM.Sim.Achievements[i] = CM.Sim.InitAchievement(i);
you = CM.Sim.Achievements[i];
} }
you.won = me.won; you.won = me.won;
} }
}; };
CM.Sim.CalculateGains = function() { CM.Sim.CalculateGains = function() {
CM.Sim.cookiesPs = 0; CM.Sim.cookiesPs = 0;
var mult = 1; var mult = 1;