diff --git a/index.html b/index.html index dac1385..bbd9134 100644 --- a/index.html +++ b/index.html @@ -409,7 +409,7 @@ - + @@ -533,12 +533,12 @@


- - - - - - + + + + + +

1 Magic


Keep row 4 milestones on all resets

2 Magic


Keep Hindrance completions on all resets

3 Magic


Gain 100% of Hindrance Spirit & Quirk gain every second

4 Magic


Automatically purchase Hyper-Boosters & Subspace      

1,000 Magic


Automatically cast Spells   

2.5e9 Magic


Gain 100% of Hex gain every second, and Spells last 10x longer

1 total Magic


Keep row 4 milestones on all resets

2 total Magic


Keep Hindrance completions on all resets

3 total Magic


Gain 100% of Hindrance Spirit & Quirk gain every second

4 total Magic


Automatically purchase Hyper-Boosters & Subspace      

50 total Magic


Automatically cast Spells   

2.5e9 total Magic


Gain 100% of Hex gain every second, and Spells last 4x longer


Note: Activating a Spell costs Magic.
@@ -549,7 +549,7 @@
- You have {{formatWhole(player.m.hexes)}} Hexes, which are multiplying Hindrance Spirit & Quirk gain by {{format(tmp.hexEff)} + You have {{formatWhole(player.m.hexes)}} Hexes, which are multiplying Hindrance Spirit & Quirk gain by {{format(tmp.hexEff)}}
diff --git a/js/game.js b/js/game.js index afd561f..c42258a 100644 --- a/js/game.js +++ b/js/game.js @@ -138,6 +138,7 @@ function getStartPlayer() { autoIns: false, points: new Decimal(0), best: new Decimal(0), + total: new Decimal(0), spellTimes: { 1: 0, 2: 0, @@ -210,11 +211,11 @@ const LAYER_REQS = { q: new Decimal("1e512"), hb: new Decimal(12), ss: new Decimal(36), - m: new Decimal(1e80), - ba: new Decimal(1e130), + m: new Decimal(2e78), + ba: new Decimal(5e129), sp: new Decimal("1e8500000"), - l: new Decimal(1415), - hs: new Decimal(715), + l: new Decimal(1e230), + hs: new Decimal(725), } const LAYER_RES = { @@ -669,12 +670,12 @@ const LAYER_UPGS = { 22: { desc: "This layer behaves as if you chose it first (base req is now 1e120 points)", cost: new Decimal(1e22), - unl: function() { return (player.t.unl&&player.s.unl&&player.e.order==2)||player.e.upgrades.includes(22)||player.e.upgrades.includes(23) }, + unl: function() { return (player.t.unl&&player.s.unl&&player.e.order==2)||player.e.upgrades.includes(22) }, }, 23: { desc: "This layer behaves as if you chose it first (base req is now 1e120 points)", cost: new Decimal(1e40), - unl: function() { return (player.t.unl&&player.s.unl)||player.e.upgrades.includes(22)||player.e.upgrades.includes(23) }, + unl: function() { return (player.t.unl&&player.s.unl&&player.e.order==1)||player.e.upgrades.includes(23) }, }, 24: { desc: "Prestige Points boost Enhance Point gain.", @@ -1177,28 +1178,28 @@ const LAYER_UPGS = { cols: 4, 11: { desc: "Hexes boost all Spells.", - cost: new Decimal(10), + cost: new Decimal(5), unl: function() { return player.m.unl }, - currently: function() { return player.m.hexes.plus(1).log10().plus(1).log10().plus(1).log10().plus(1) }, + currently: function() { return player.m.hexes.times(3).plus(1).log10().plus(1).log10().plus(1).log10().plus(1) }, effDisp: function(x) { return format(x.sub(1).times(100))+"% stronger" }, }, 12: { desc: "Unlock 2 new Hindrances.", - cost: new Decimal(25), + cost: new Decimal(10), unl: function() { return player.m.upgrades.includes(11) }, }, 13: { desc: "Hexes add to the Hyper-Booster base.", - cost: new Decimal(40), + cost: new Decimal(15), unl: function() { return player.m.upgrades.includes(11) }, currently: function() { return player.m.hexes.plus(1).log10().plus(1).log10().plus(1).log10().div(2.5) }, effDisp: function(x) { return "+"+format(x)+" to base" }, }, 14: { desc: "You get more Hexes based on your best Magic.", - cost: new Decimal(100), + cost: new Decimal(20), unl: function() { return player.m.upgrades.includes(12) }, - currently: function() { return player.m.best.div(3).plus(1).pow(0.8) }, + currently: function() { return player.m.best.times(1.2).plus(1).pow(0.8) }, effDisp: function(x) { return format(x)+"x" }, }, 21: { @@ -1279,19 +1280,19 @@ const LAYER_UPGS = { cols: 4, 11: { desc: "All Balance Energy effects use better formulas.", - cost: new Decimal(25), + cost: new Decimal(5), unl: function() { return player.ba.unl }, }, 12: { desc: "Subspace is generated faster based on your Positivity & Negativity.", - cost: new Decimal(40), + cost: new Decimal(10), unl: function() { return player.ba.upgrades.includes(11) }, currently: function() { return (tmp.balEff2?tmp.balEff2:new Decimal(1)).max(1).pow(4) }, effDisp: function(x) { return format(x)+"x" }, }, 13: { desc: "Multiply all Quirk Layers based on your Balance Power, and the Quirk Energy effect is cubed.", - cost: new Decimal(50), + cost: new Decimal(25), unl: function() { return player.ba.upgrades.includes(11) }, currently: function() { return player.ba.power.plus(1).pow(1.25) }, effDisp: function(x) { return format(x)+"x" }, @@ -1570,7 +1571,7 @@ function getLayerAmt(layer) { return player.p.points; break; case "l": - return player.b.points; + return player.m.points; break; case "hs": return player.s.points; @@ -1685,39 +1686,31 @@ function versionCheck() { function checkForVars() { let start = getStartPlayer() + for (var i=0; i Decimal.add()) + return x.reduce((a, b) => Decimal.add(a, b)) } function format(decimal, precision=3) { @@ -2149,11 +2112,11 @@ function rowReset(row, layer) { break; case 2: player.b.points = new Decimal(0); - player.b.best = player.m.best.gte(1)?player.b.best:new Decimal(0); + player.b.best = player.m.total.gte(1)?player.b.best:new Decimal(0); if (!player.t.best.gte(4)&&!player.sp.total.gte(1)) player.b.upgrades = []; player.g.points = new Decimal(0); player.g.power = new Decimal(0); - player.g.best = player.m.best.gte(1)?player.g.best:new Decimal(0); + player.g.best = player.m.total.gte(1)?player.g.best:new Decimal(0); if (!player.s.best.gte(4)&&!player.sp.total.gte(1)) player.g.upgrades = []; player.t.energy = new Decimal(0); if (layer=="t"||layer=="e"||layer=="s") { @@ -2169,19 +2132,19 @@ function rowReset(row, layer) { case 3: player.t.points = new Decimal(0); player.t.order = 0 - if (player.h.best.lt(2)&&player.m.best.lt(1)) player.t.best = new Decimal(0); + if (player.h.best.lt(2)&&player.m.total.lt(1)) player.t.best = new Decimal(0); if (player.h.best.lt(4)&&!player.sp.total.gte(1)) player.t.upgrades = []; player.t.extCapsules = new Decimal(0); player.e.order = 0 player.e.points = new Decimal(0); - if (player.h.best.lt(2)&&player.m.best.lt(1)) player.e.best = new Decimal(0); + if (player.h.best.lt(2)&&player.m.total.lt(1)) player.e.best = new Decimal(0); player.e.enhancers = new Decimal(0); if (player.h.best.lt(4)&&!player.sp.total.gte(1)) player.e.upgrades = []; player.s = { unl: player.s.unl, order: 0, points: new Decimal(0), - best: (player.h.best.gte(2)||player.m.best.gte(1)) ? player.s.best : new Decimal(0), + best: (player.h.best.gte(2)||player.m.total.gte(1)) ? player.s.best : new Decimal(0), spent: (player.q.best.gte(4)&&(layer=="h"||layer=="q"||layer=="ss"||layer=="hb")) ? player.s.spent : new Decimal(0), buildings: (player.q.best.gte(4)&&(layer=="h"||layer=="q"||layer=="ss"||layer=="hb")) ? player.s.buildings : ({}), upgrades: (player.h.best.gte(4)||player.sp.total.gte(1)) ? player.s.upgrades : [], @@ -2193,7 +2156,7 @@ function rowReset(row, layer) { auto: player.sb.auto, order: 0, points: new Decimal(0), - best: (player.h.best.gte(2)||player.m.best.gte(1)) ? player.sb.best : new Decimal(0), + best: (player.h.best.gte(2)||player.m.total.gte(1)) ? player.sb.best : new Decimal(0), upgrades: (player.h.best.gte(10)||player.sp.total.gte(1)) ? player.sb.upgrades : [], } player.sg = { @@ -2213,16 +2176,16 @@ function rowReset(row, layer) { unl: player.h.unl, time: 0, points: new Decimal(0), - best: (player.ba.best.gte(1)||player.m.best.gte(1))?player.h.best:new Decimal(0), + best: (player.ba.best.gte(1)||player.m.total.gte(1))?player.h.best:new Decimal(0), active: 0, - challs: (player.m.best.gte(2)||player.sp.total.gte(1))?player.h.challs:[], + challs: (player.m.total.gte(2)||player.sp.total.gte(1))?player.h.challs:[], upgrades: [], } player.q = { unl: player.q.unl, auto: player.q.auto, points: new Decimal(0), - best: (player.ba.best.gte(1)||player.m.best.gte(1))?player.q.best:new Decimal(0), + best: (player.ba.best.gte(1)||player.m.total.gte(1))?player.q.best:new Decimal(0), layers: new Decimal(0), energy: new Decimal(0), time: new Decimal(0), @@ -2233,7 +2196,7 @@ function rowReset(row, layer) { auto: player.hb.auto, order: player.hb.order, points: new Decimal(0), - best: (player.ba.best.gte(1)||player.m.best.gte(1))?player.hb.best:new Decimal(0), + best: (player.ba.best.gte(1)||player.m.total.gte(1))?player.hb.best:new Decimal(0), upgrades: (player.ba.best.gte(5)||player.sp.total.gte(1))?player.hb.upgrades:[], } player.ss = { @@ -2241,7 +2204,7 @@ function rowReset(row, layer) { auto: player.ss.auto, order: player.ss.order, points: new Decimal(0), - best: (player.ba.best.gte(1)||player.m.best.gte(1))?player.ss.best:new Decimal(0), + best: (player.ba.best.gte(1)||player.m.total.gte(1))?player.ss.best:new Decimal(0), subspace: new Decimal(0), upgrades: (player.ba.best.gte(5)||player.sp.total.gte(1))?player.ss.upgrades:[], } @@ -2252,7 +2215,8 @@ function rowReset(row, layer) { auto: player.m.auto, autoIns: player.m.autoIns, points: new Decimal(0), - best: player.sp.total.gte(2) ? player.m.best : new Decimal(0), + best: new Decimal(0), + total: player.sp.total.gte(2) ? player.m.total : new Decimal(0), spellTimes: { 1: 0, 2: 0, @@ -3086,8 +3050,8 @@ function getHyperBoosterPow() { } function getBalancePowerEff() { - let eff = player.ba.power.plus(1).sqrt() - if (player.ba.upgrades.includes(14)) eff = eff.pow(5) + let eff = player.ba.power.times(2).plus(1).pow(2/3) + if (player.ba.upgrades.includes(14)) eff = eff.pow(3.85) if (player.ba.upgrades.includes(33)) eff = eff.pow(2) return eff; } @@ -3179,8 +3143,8 @@ function getSpellDesc(x) { } function getSpellTime() { - let time = 20 - if (player.m.best.gte(2.5e9)) time *= 10 + let time = 60 + if (player.m.total.gte(2.5e9)) time *= 4 if (player.m.upgrades.includes(43)) time *= LAYER_UPGS.m[43].currently().toNumber() return time } @@ -3214,7 +3178,7 @@ function getHexGain() { } function getHexEff() { - let eff = player.m.hexes.plus(1).pow(5) + let eff = player.m.hexes.times(2).max(1).pow(5) return eff; } @@ -3308,11 +3272,11 @@ function gameLoop(diff) { player.m.spellTimes[i] = Decimal.sub(player.m.spellTimes[i], diff).max(0).toNumber() } } - if (player.m.best.gte(3)) { + if (player.m.total.gte(3)) { generatePoints("h", diff) generatePoints("q", diff) } - if (player.m.best.gte(2.5e9)) player.m.hexes = player.m.hexes.plus(getHexGain().times(diff)).max(0) + if (player.m.total.gte(2.5e9)) player.m.hexes = player.m.hexes.plus(getHexGain().times(diff)).max(0) if (player.sp.total.gte(10)) { generatePoints("m", diff) generatePoints("ba", diff) @@ -3328,13 +3292,13 @@ function gameLoop(diff) { if (player.sb.auto&&player.h.best.gte(15)) doReset("sb") if (player.sg.auto&&player.sg.best.gte(2)) doReset("sg") if (player.q.auto&&player.ba.best.gte(3)) maxQuirkLayers() - if (player.hb.auto&&player.m.best.gte(4)) doReset("hb") - if (player.ss.auto&&player.m.best.gte(4)) doReset("ss") + if (player.hb.auto&&player.m.total.gte(4)) doReset("hb") + if (player.ss.auto&&player.m.total.gte(4)) doReset("ss") if (player.m.autoIns&&player.sp.total.gte(2)) for (let i=1;i<=tmp.spellsUnl;i++) { player.m.casted[i] = player.m.points player.m.toCast[i] = player.m.points } - if (player.m.auto&&player.m.best.gte(1000)) for (let i=1;i<=tmp.spellsUnl;i++) activateSpell(i) + if (player.m.auto&&player.m.total.gte(50)) for (let i=1;i<=tmp.spellsUnl;i++) activateSpell(i) if (player.hasNaN&&!NaNalert) { alert("We have detected a corruption in your save. Please visit https://discord.gg/wwQfgPa for help.")