mirror of
https://github.com/Acamaeda/The-Modding-Tree.git
synced 2025-05-11 04:21:09 +00:00
Build 7
This commit is contained in:
parent
e5435d9de8
commit
4d5963e65d
2 changed files with 127 additions and 116 deletions
js
73
js/game.js
73
js/game.js
|
@ -2133,19 +2133,24 @@ function rowReset(row, layer) {
|
|||
}
|
||||
}
|
||||
|
||||
function addPoints(layer, gain) {
|
||||
player[layer].points = player[layer].points.plus(gain).max(0)
|
||||
player[layer].best = player[layer].best.max(player[layer].points)
|
||||
if (player[layer].total) player[layer].total = player[layer].total.plus(gain)
|
||||
}
|
||||
|
||||
function generatePoints(layer, diff) {
|
||||
addPoints(layer, tmp.resetGain[layer].times(diff))
|
||||
}
|
||||
|
||||
function doReset(layer, force=false) {
|
||||
if (!force) {
|
||||
if (tmp.layerAmt[layer].lt(tmp.layerReqs[layer])) return;
|
||||
let gain = tmp.resetGain[layer]
|
||||
if (LAYER_TYPE[layer]=="static") {
|
||||
if (tmp.layerAmt[layer].lt(tmp.nextAt[layer])) return;
|
||||
player[layer].points = player[layer].points.plus(canBuyMax(layer)?gain:1)
|
||||
if (player[layer].total) player[layer].total = player[layer].total.plus(canBuyMax(layer)?gain:1)
|
||||
} else {
|
||||
player[layer].points = player[layer].points.plus(gain)
|
||||
if (player[layer].total) player[layer].total = player[layer].total.plus(gain)
|
||||
}
|
||||
player[layer].best = player[layer].best.max(player[layer].points)
|
||||
addPoints(layer, canBuyMax(layer)?gain:1)
|
||||
} else addPoints(layer, gain)
|
||||
|
||||
if (!player[layer].unl) {
|
||||
player[layer].unl = true;
|
||||
|
@ -2157,11 +2162,12 @@ function doReset(layer, force=false) {
|
|||
|
||||
tmp.layerAmt[layer] = new Decimal(0) // quick fix
|
||||
}
|
||||
|
||||
|
||||
if ((layer=="b"&&player.t.best.gte(12))||(layer=="g"&&player.s.best.gte(12))) return;
|
||||
if ((layer=="t"&&player.h.best.gte(25))||(layer=="s"&&player.q.best.gte(25))||(layer=="sb"&&player.h.best.gte(2500))||(layer=="sg"&&player.sg.best.gte(1))) return;
|
||||
if ((layer=="hb"&&player.ba.best.gte(8))||(layer=="ss"&&player.ba.best.gte(8))) return;
|
||||
let row = LAYER_ROW[layer]
|
||||
if (!force && row>=3) completeHindrance()
|
||||
if (row==0) rowReset(0, layer)
|
||||
else for (let x=row;x>=1;x--) rowReset(x, layer)
|
||||
|
||||
|
@ -2827,10 +2833,7 @@ function HCActive(x) {
|
|||
function startHindrance(x) {
|
||||
if (!player.h.unl) return
|
||||
if (player.h.active==x) {
|
||||
if (player.points.gte(H_CHALLS[x].goal) && !player.h.challs.includes(x)) {
|
||||
if (x==62) needCanvasUpdate = true;
|
||||
player.h.challs.push(x);
|
||||
}
|
||||
completeHindrance(x)
|
||||
player.h.active = 0
|
||||
} else {
|
||||
player.h.active = x
|
||||
|
@ -2838,6 +2841,17 @@ function startHindrance(x) {
|
|||
doReset("h", true)
|
||||
}
|
||||
|
||||
function completeHindrance() {
|
||||
var x = player.h.active
|
||||
if (x == 0) return
|
||||
if (!player.points.gte(H_CHALLS[x].goal)) return
|
||||
if (!player.h.challs.includes(x)) {
|
||||
if (x==62) needCanvasUpdate = true
|
||||
player.h.challs.push(x);
|
||||
}
|
||||
player.h.active = 0
|
||||
}
|
||||
|
||||
function adjustMSDisp() {
|
||||
let displays = ["always", "automation", "incomplete", "never"];
|
||||
player.msDisplay = displays[(displays.indexOf(player.msDisplay)+1)%4]
|
||||
|
@ -3078,20 +3092,16 @@ function addToSGBase() {
|
|||
}
|
||||
|
||||
function gameLoop(diff) {
|
||||
diff = new Decimal(diff)
|
||||
if (isNaN(diff.toNumber())) diff = new Decimal(0);
|
||||
player.h.time += diff.toNumber()
|
||||
if (isNaN(diff)) diff = 0
|
||||
player.timePlayed += diff
|
||||
player.h.time += diff
|
||||
if (tmp.hcActive ? tmp.hcActive[42] : true) {
|
||||
if (player.h.time>=10) diff = new Decimal(0)
|
||||
else diff = diff.div(Decimal.div(10, Decimal.sub(10, player.h.time+1)).pow(1000))
|
||||
if (player.h.time>=10) diff = 0
|
||||
else diff = Decimal.div(diff, Decimal.div(10, Decimal.sub(10, player.h.time + 1)).pow(1000))
|
||||
}
|
||||
player.timePlayed += diff.toNumber()
|
||||
if (player.p.upgrades.includes(11)) player.points = player.points.plus(tmp.pointGen.times(diff)).max(0)
|
||||
if (player.g.unl) player.g.power = player.g.power.plus(tmp.layerEffs.g.times(diff)).max(0)
|
||||
if (player.g.best.gte(10)) {
|
||||
player.p.points = player.p.points.plus(tmp.resetGain.p.times(diff)).max(0)
|
||||
player.p.best = player.p.best.max(player.p.points)
|
||||
}
|
||||
if (player.g.best.gte(10)) generatePoints("p", diff)
|
||||
if (player.t.unl) {
|
||||
let data = tmp.layerEffs.t
|
||||
player.t.energy = player.t.energy.plus(data.gain.times(diff)).min(data.limit).max(0)
|
||||
|
@ -3103,10 +3113,7 @@ function gameLoop(diff) {
|
|||
let exp = getQuirkEnergyGainExp()
|
||||
if (exp.gte(0)) player.q.energy = player.q.energy.plus(player.q.time.pow(exp).times(mult).times(diff)).max(0)
|
||||
}
|
||||
if (player.q.best.gte(15)) {
|
||||
player.e.points = player.e.points.plus(tmp.resetGain.e.times(diff)).max(0)
|
||||
player.e.best = player.e.best.max(player.e.points)
|
||||
}
|
||||
if (player.q.best.gte(15)) generatePoints("e", diff)
|
||||
if (player.ss.unl) player.ss.subspace = player.ss.subspace.plus(tmp.layerEffs.ss.times(diff)).max(0)
|
||||
if (player.ba.unl) {
|
||||
player.ba.power = player.ba.power.plus(tmp.layerEffs.ba.power.times(tmp.balEff2).times(getBalPowGainMult()).times(diff)).max(0)
|
||||
|
@ -3115,17 +3122,13 @@ function gameLoop(diff) {
|
|||
}
|
||||
if (player.m.unl) for (let i=1;i<=3;i++) player.m.spellTimes[i] = Decimal.sub(player.m.spellTimes[i], diff).max(0).toNumber()
|
||||
if (player.m.best.gte(3)) {
|
||||
player.h.points = player.h.points.plus(tmp.resetGain.h.times(diff)).max(0)
|
||||
player.q.points = player.q.points.plus(tmp.resetGain.q.times(diff)).max(0)
|
||||
player.h.best = player.h.best.max(player.h.points)
|
||||
player.q.best = player.q.best.max(player.q.points)
|
||||
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.sp.total.gte(10)) {
|
||||
player.m.points = player.m.points.plus(tmp.resetGain.m.times(diff)).max(0)
|
||||
player.ba.points = player.ba.points.plus(tmp.resetGain.ba.times(diff)).max(0)
|
||||
player.m.best = player.m.best.max(player.m.points)
|
||||
player.ba.best = player.ba.best.max(player.ba.points)
|
||||
generatePoints("m", diff)
|
||||
generatePoints("ba", diff)
|
||||
}
|
||||
|
||||
if (player.b.auto&&player.t.best.gte(5)) doReset("b")
|
||||
|
@ -3178,7 +3181,7 @@ var interval = setInterval(function() {
|
|||
player.time = Date.now()
|
||||
if (needCanvasUpdate) resizeCanvas();
|
||||
updateTemp();
|
||||
gameLoop(new Decimal(diff))
|
||||
gameLoop(diff)
|
||||
}, 50)
|
||||
|
||||
document.onkeydown = function(e) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue