From 465d15df1505fd682157f402c009feeb3c65e3b5 Mon Sep 17 00:00:00 2001 From: thepaperpilot Date: Mon, 28 Jun 2021 21:36:39 -0500 Subject: [PATCH] Fixed switching saves causing some getters to not update --- src/store/layers.js | 78 ++++++++++++++++++++++----------------------- 1 file changed, 39 insertions(+), 39 deletions(-) diff --git a/src/store/layers.js b/src/store/layers.js index 4523b7b..4fa8be9 100644 --- a/src/store/layers.js +++ b/src/store/layers.js @@ -71,7 +71,7 @@ export function addLayer(layer, player = null) { for (let id in layer.upgrades) { if (isPlainObject(layer.upgrades[id])) { layer.upgrades[id].bought = function() { - return !layer.deactivated && player[layer.id].upgrades.some(upgrade => upgrade == id); + return !layer.deactivated && playerProxy[layer.id].upgrades.some(upgrade => upgrade == id); } if (layer.upgrades[id].canAfford == undefined) { layer.upgrades[id].canAfford = function() { @@ -81,12 +81,12 @@ export function addLayer(layer, player = null) { return !(this.currencyLocation[name].lt(this.cost)); } else if (this.currencyLayer) { let lr = this.currencyLayer; - return !(player[lr][name].lt(this.cost)); + return !(playerProxy[lr][name].lt(this.cost)); } else { - return !(player[name].lt(this.cost)); + return !(playerProxy[name].lt(this.cost)); } } else { - return !(player[this.layer].points.lt(this.cost)) + return !(playerProxy[this.layer].points.lt(this.cost)) } } } @@ -104,21 +104,21 @@ export function addLayer(layer, player = null) { this.currencyLocation[name] = this.currencyLocation[name].sub(this.cost); } else if (this.currencyLayer) { let lr = this.currencyLayer; - if (player[lr][name].lt(this.cost)) { + if (playerProxy[lr][name].lt(this.cost)) { return; } - player[lr][name] = player[lr][name].sub(this.cost); + playerProxy[lr][name] = playerProxy[lr][name].sub(this.cost); } else { - if (player[name].lt(this.cost)) { + if (playerProxy[name].lt(this.cost)) { return; } - player[name] = player[name].sub(this.cost); + playerProxy[name] = playerProxy[name].sub(this.cost); } } else { - if (player[this.layer].points.lt(this.cost)) { + if (playerProxy[this.layer].points.lt(this.cost)) { return; } - player[this.layer].points = player[this.layer].points.sub(this.cost); + playerProxy[this.layer].points = playerProxy[this.layer].points.sub(this.cost); } }); } else { @@ -130,7 +130,7 @@ export function addLayer(layer, player = null) { return; } this.pay(); - player[this.layer].upgrades.push(this.id); + playerProxy[this.layer].upgrades.push(this.id); this.onPurchase?.(); }); } else { @@ -143,7 +143,7 @@ export function addLayer(layer, player = null) { for (let id in layer.achievements) { if (isPlainObject(layer.achievements[id])) { layer.achievements[id].earned = function() { - return !layer.deactivated && player[layer.id].achievements.some(achievement => achievement == id); + return !layer.deactivated && playerProxy[layer.id].achievements.some(achievement => achievement == id); } if (layer.achievements[id].onComplete != undefined) { layer.achievements[id].onComplete.forceCached = false; @@ -164,16 +164,16 @@ export function addLayer(layer, player = null) { layer.challenges[id].onExit.forceCached = false; } layer.challenges[id].shown = function() { - return this.unlocked !== false && (player.hideChallenges === false || !this.maxed); + return this.unlocked !== false && (playerProxy.hideChallenges === false || !this.maxed); } layer.challenges[id].completed = function() { - return !layer.deactivated && player[layer.id].challenges[id]?.gt(0); + return !layer.deactivated && playerProxy[layer.id].challenges[id]?.gt(0); } layer.challenges[id].completions = function() { - return player[layer.id].challenges[id]; + return playerProxy[layer.id].challenges[id]; } layer.challenges[id].maxed = function() { - return !layer.deactivated && Decimal.gte(player[layer.id].challenges[id], this.completionLimit); + return !layer.deactivated && Decimal.gte(playerProxy[layer.id].challenges[id], this.completionLimit); } if (layer.challenges[id].mark == undefined) { layer.challenges[id].mark = function() { @@ -181,7 +181,7 @@ export function addLayer(layer, player = null) { } } layer.challenges[id].active = function() { - return !layer.deactivated && player[layer.id].activeChallenge === id; + return !layer.deactivated && playerProxy[layer.id].activeChallenge === id; } if (layer.challenges[id].canComplete == undefined) { layer.challenges[id].canComplete = function() { @@ -195,12 +195,12 @@ export function addLayer(layer, player = null) { return !(this.currencyLocation[name].lt(this.goal)); } else if (this.currencyLayer) { let lr = this.currencyLayer; - return !(player[lr][name].lt(this.goal)); + return !(playerProxy[lr][name].lt(this.goal)); } else { - return !(player[name].lt(this.goal)); + return !(playerProxy[name].lt(this.goal)); } } else { - return !(player.points.lt(this.goal)); + return !(playerProxy.points.lt(this.goal)); } } } @@ -208,23 +208,23 @@ export function addLayer(layer, player = null) { layer.challenges[id].completionLimit = new Decimal(1); } layer.challenges[id].toggle = noCache(function() { - let exiting = player[layer.id].activeChallenge === id; + let exiting = playerProxy[layer.id].activeChallenge === id; if (exiting) { if (this.canComplete && !this.maxed) { let completions = this.canComplete; if (completions === true) { completions = 1; } - player[layer.id].challenges[id] = - Decimal.min(player[layer.id].challenges[id].add(completions), this.completionLimit); + playerProxy[layer.id].challenges[id] = + Decimal.min(playerProxy[layer.id].challenges[id].add(completions), this.completionLimit); this.onComplete?.(); } - player[layer.id].activeChallenge = null; + playerProxy[layer.id].activeChallenge = null; this.onExit?.(); layer.reset(true); } else if (!exiting && this.canStart) { layer.reset(true); - player[layer.id].activeChallenge = id; + playerProxy[layer.id].activeChallenge = id; this.onEnter?.(); } }); @@ -240,7 +240,7 @@ export function addLayer(layer, player = null) { if (layer.buyables) { if (layer.buyables.reset == undefined) { layer.buyables.reset = noCache(function() { - player[this.layer].buyables = getStartingBuyables(layer); + playerProxy[this.layer].buyables = getStartingBuyables(layer); }); } else { layer.buyables.reset.forceCached = false; @@ -251,21 +251,21 @@ export function addLayer(layer, player = null) { for (let id in layer.buyables) { if (isPlainObject(layer.buyables[id])) { layer.buyables[id].amount = function() { - return player[layer.id].buyables[id]; + return playerProxy[layer.id].buyables[id]; } layer.buyables[id].amountSet = function(amount) { - player[layer.id].buyables[id] = amount; + playerProxy[layer.id].buyables[id] = amount; } layer.buyables[id].canBuy = function() { return !layer.deactivated && this.unlocked !== false && this.canAfford !== false && - Decimal.lt(player[layer.id].buyables[id], this.purchaseLimit); + Decimal.lt(playerProxy[layer.id].buyables[id], this.purchaseLimit); } if (layer.buyables[id].purchaseLimit == undefined) { layer.buyables[id].purchaseLimit = new Decimal(Infinity); } if (layer.buyables[id].cost != undefined && layer.buyables[id].buy == undefined) { layer.buyables[id].buy = noCache(function() { - player[this.layer].points = player[this.layer].points.sub(this.cost()); + playerProxy[this.layer].points = playerProxy[this.layer].points.sub(this.cost()); this.amount = this.amount.add(1); }); } else { @@ -284,10 +284,10 @@ export function addLayer(layer, player = null) { for (let id in layer.clickables) { if (isPlainObject(layer.clickables[id])) { layer.clickables[id].state = function() { - return player[layer.id].clickables[id]; + return playerProxy[layer.id].clickables[id]; } layer.clickables[id].stateSet = function(state) { - player[layer.id].clickables[id] = state; + playerProxy[layer.id].clickables[id] = state; } if (layer.clickables[id].click != undefined) { layer.clickables[id].click.forceCached = false; @@ -313,13 +313,13 @@ export function addLayer(layer, player = null) { return false; } - switch (player.msDisplay) { + switch (playerProxy.msDisplay) { default: case "all": return true; case "last": return this.optionsDisplay || !this.earned || - player[this.layer].milestones[player[this.layer].milestones.length - 1] === this.id; + playerProxy[this.layer].milestones[playerProxy[this.layer].milestones.length - 1] === this.id; case "configurable": return this.optionsDisplay || !this.earned; case "incomplete": @@ -329,7 +329,7 @@ export function addLayer(layer, player = null) { } } layer.milestones[id].earned = function() { - return !layer.deactivated && player[layer.id].milestones.some(milestone => milestone == id); + return !layer.deactivated && playerProxy[layer.id].milestones.some(milestone => milestone == id); } } } @@ -374,8 +374,8 @@ export function addLayer(layer, player = null) { layer.grids[id].getDisplay.forceCached = false; } layer.grids[id].getData = function(cell) { - if (player[layer.id].grids[id][cell] != undefined) { - return player[layer.id].grids[id][cell]; + if (playerProxy[layer.id].grids[id][cell] != undefined) { + return playerProxy[layer.id].grids[id][cell]; } if (isFunction(this.getStartData)) { return this.getStartData(cell); @@ -383,7 +383,7 @@ export function addLayer(layer, player = null) { return this.getStartData; } layer.grids[id].dataSet = function(cell, data) { - player[layer.id].grids[id][cell] = data; + playerProxy[layer.id].grids[id][cell] = data; } layer.grids[id] = createGridProxy(layer.grids[id], getters, `${layer.id}/grids-${id}-`); } @@ -399,7 +399,7 @@ export function addLayer(layer, player = null) { for (let id in layer.subtabs) { if (isPlainObject(layer.subtabs[id])) { layer.subtabs[id].active = function() { - return player.subtabs[this.layer].mainTabs === this.id; + return playerProxy.subtabs[this.layer].mainTabs === this.id; } } }