diff --git a/index.html b/index.html
index bd159aa..115a471 100644
--- a/index.html
+++ b/index.html
@@ -660,7 +660,7 @@
Your Work is currently {{format(tmp.i.work)}}, which reduces the gain power of rows 1 - 5 by {{format(tmp.i.workEff)}}x
-
Your Work also collapses Prestige layer by {{format(tmp.i.work.sub(1.5).times(200).min(100))}}%
+
Your Work also collapses row {{i}} layers by {{format(tmp.i.collapse[i].times(100))}}%
diff --git a/js/game.js b/js/game.js
index 11afa1f..c81fc5d 100644
--- a/js/game.js
+++ b/js/game.js
@@ -413,6 +413,7 @@ const LAYER_UPGS = {
if (tmp.challActive ? tmp.challActive.h[32] : true) return new Decimal(1)
let ret = player.p.points.add(1).pow(player.g.upgrades.includes(24)?1.1:(player.g.upgrades.includes(14)?0.75:0.5))
if (ret.gte("1e20000000")) ret = ret.sqrt().times("1e10000000")
+ if (IMPERIUM.collapsed(1)) ret = ret.pow(Decimal.sub(1, tmp.i.collapse[1]))
return ret;
},
effDisp(x) { return format(x)+"x" },
@@ -425,6 +426,7 @@ const LAYER_UPGS = {
let ret = player.points.add(1).log10().pow(0.75).add(1)
if (player.g.upgrades.includes(15)) ret = ret.pow(LAYER_UPGS.g[15].currently())
if (player.sp.upgrades.includes(11)) ret = ret.pow(100)
+ if (IMPERIUM.collapsed(1)) ret = ret.pow(Decimal.sub(1, tmp.i.collapse[1]))
return ret;
},
effDisp(x) { return format(x)+"x" },
@@ -438,7 +440,11 @@ const LAYER_UPGS = {
desc: "Point generation is faster based on your Prestige Upgrades bought.",
cost: new Decimal(75),
unl() { return (player.b.unl||player.g.unl)&&player.p.upgrades.includes(12) },
- currently() { return Decimal.pow(1.4, player.p.upgrades.length) },
+ currently() {
+ let ret = Decimal.pow(1.4, player.p.upgrades.length)
+ if (IMPERIUM.collapsed(1)) ret = ret.pow(Decimal.sub(1, tmp.i.collapse[1]))
+ return ret
+ },
effDisp(x) { return format(x)+"x" },
},
23: {
@@ -2182,9 +2188,10 @@ function getLayerGainMult(layer) {
}
function getLayerGainExp(layer) {
- let exp = new Decimal(1);
- if (layer == "p" && tmp.i && tmp.i.work.gt(1.5)) exp = exp.times(Decimal.sub(2, tmp.i.work).times(2))
+ let exp = new Decimal(1)
+ let row = LAYER_ROW[layer] + 1
if (LAYER_ROW[layer] < 5) exp = fixValue(tmp.i && tmp.i.workEff, 1).recip()
+ if (IMPERIUM.collapsed(row)) exp = exp.times(Decimal.sub(1, tmp.i.collapse[row]))
switch(layer) {
case "p":
if (tmp.challActive ? tmp.challActive.h[21] : true) exp = exp.div(100)
@@ -2203,6 +2210,7 @@ function getLayerGainExp(layer) {
}
function getResetGain(layer) {
+ if (tmp.gainExp[layer].eq(0)) return new Decimal(0)
if (LAYER_TYPE[layer]=="static") {
if ((!canBuyMax(layer)) || tmp.layerAmt[layer].lt(tmp.layerReqs[layer])) return new Decimal(1)
let gain = tmp.layerAmt[layer].div(tmp.layerReqs[layer]).div(tmp.gainMults[layer]).max(1).log(LAYER_BASE[layer]).times(tmp.gainExp[layer]).pow(Decimal.pow(LAYER_EXP[layer], -1))
@@ -2223,6 +2231,7 @@ function getResetGain(layer) {
}
function getNextAt(layer) {
+ if (tmp.gainExp[layer].eq(0)) return new Decimal(1/0)
if (LAYER_TYPE[layer]=="static") {
let amt = player[layer].points
if ((LAYER_ROW[layer] < 4 && layer != "hb") || layer == "ps") {
@@ -3847,7 +3856,11 @@ let IMPERIUM = {
},
sgSpeedBoost() {
return player.sg.points.add(1).pow(2)
- }
+ },
+ collapsed(row) {
+ return tmp.i !== undefined && tmp.i.collapse !== undefined && tmp.i.collapse[row]
+ },
+ maxCollapseRows: 1
}
const ENDGAME = new Decimal("e280000000");
diff --git a/js/temp.js b/js/temp.js
index 712ae23..758621b 100644
--- a/js/temp.js
+++ b/js/temp.js
@@ -119,10 +119,14 @@ function updateTemp() {
if (!tmp.i) tmp.i = {}
var data = tmp.i
- data.compressed = tmp.s.sbUnl.sub(SPACE_BUILDINGS.max).max(0).floor().toNumber()
data.work = new Decimal(1)
if (player.i.building) data.work = data.work.add(player.i.extraBuildings.add(1).sqrt().add(1).div(5))
data.workEff = Decimal.pow(2, data.work.sub(1))
+
+ data.collapse = {}
+ for (var i = 1; i <= IMPERIUM.maxCollapseRows; i++) if (data.work.gt(i + 0.5)) data.collapse[i] = data.work.sub(i + 0.5).times(2).min(1)
+
+ data.compressed = tmp.s.sbUnl.sub(SPACE_BUILDINGS.max).max(0).floor().toNumber()
}
}