mirror of
https://github.com/Acamaeda/The-Modding-Tree.git
synced 2024-11-21 16:13:55 +00:00
Beta v1.1 Alpha 14
This commit is contained in:
parent
b1fb208587
commit
9ac3201c01
2 changed files with 104 additions and 9 deletions
|
@ -16,6 +16,11 @@
|
|||
<div class="vl"></div>
|
||||
<div v-if="player.tab=='changelog'" class="col right">
|
||||
<button class="back" onclick="showTab('tree')">←</button><br><br>
|
||||
<h3>Beta v1.1 Alpha 14</h3>
|
||||
<ul>
|
||||
<li>Implemented the fourth row 4 layer unlock</li>
|
||||
<li>Balanced up to 1e240,000-1e250,000 Points</li>
|
||||
</ul><br>
|
||||
<h3>Beta v1.1 Alpha 13</h3>
|
||||
<ul>
|
||||
<li>Implemented Subspace & Hyper-Booster resets</li>
|
||||
|
@ -309,6 +314,9 @@
|
|||
</div>
|
||||
<div v-if="layer=='ss'">
|
||||
You have {{format(player.ss.subspace)}} Subspace, which provides you with {{formatWhole(tmp.ssEff1)}} extra Space, makes all Space Buildings {{format(tmp.ssEff2)}}x cheaper, and makes all Space Buildings {{format(tmp.ssEff3.sub(1).times(100))}}% stronger<br><br>
|
||||
<table>
|
||||
<tr><td v-if="milestoneShown(player.ss.best.gte(1), true)" v-bind:class="{ milestone: player.ss.best.lt(1), milestoneDone: player.ss.best.gte(1) }">1 Subspace Energy<br>Automatically purchase Space Buildings <button v-if="player.ss.best.gte(1)" class="smallUpg can s" onclick="toggleAuto('s', 'Build')">{{player.s.autoBuild?"ON":"OFF"}}</button></td></tr>
|
||||
</table>
|
||||
</div>
|
||||
<br><br><br>
|
||||
<button v-if="LAYER_TYPE[layer]=='normal'" v-bind:class="{ [layer]: true, reset: true, locked: tmp.layerAmt[layer].lt(tmp.layerReqs[layer]), can: tmp.layerAmt[layer].gte(tmp.layerReqs[layer]) }" v-on:click="doReset(layer)">+{{formatWhole(tmp.resetGain[layer])}} {{LAYER_RES[layer]}}<br>Next at {{ (LAYER_RES_CEIL.includes(layer) ? formatWhole(tmp.nextAt[layer]) : format(tmp.nextAt[layer])) }} {{ LAYER_AMT_NAMES[layer] }}</button>
|
||||
|
|
105
js/game.js
105
js/game.js
|
@ -58,6 +58,7 @@ function getStartPlayer() {
|
|||
s: {
|
||||
unl: false,
|
||||
auto: false,
|
||||
autoBuild: false,
|
||||
order: 0,
|
||||
points: new Decimal(0),
|
||||
best: new Decimal(0),
|
||||
|
@ -171,7 +172,7 @@ const LAYER_EXP = {
|
|||
sb: new Decimal(1.25),
|
||||
h: new Decimal(0.015),
|
||||
q: new Decimal(0.0075),
|
||||
hb: new Decimal(1.1),
|
||||
hb: new Decimal(2.5),
|
||||
ss: new Decimal(1.1),
|
||||
}
|
||||
|
||||
|
@ -224,8 +225,8 @@ const LAYER_EFFS = {
|
|||
if (ret.gte(100)) ret = ret.log10().times(50).min(ret);
|
||||
return ret;
|
||||
},
|
||||
hb: function() { return Decimal.pow(1.6, player.hb.points) },
|
||||
ss: function() { return player.ss.points.pow(2.5) },
|
||||
hb: function() { return Decimal.pow(1.6, player.hb.points.pow(getHyperBoosterExp()).times(getHyperBoosterPow())) },
|
||||
ss: function() { return player.ss.points.pow(2.5).times(getSubspaceGainMult()) },
|
||||
}
|
||||
|
||||
const LAYER_UPGS = {
|
||||
|
@ -826,12 +827,50 @@ const LAYER_UPGS = {
|
|||
},
|
||||
},
|
||||
hb: {
|
||||
rows: 0,
|
||||
cols: 0,
|
||||
rows: 1,
|
||||
cols: 2,
|
||||
11: {
|
||||
desc: "Super-Boosters are stronger based on your Hyper-Boosters.",
|
||||
cost: new Decimal(2),
|
||||
unl: function() { return player.hb.unl },
|
||||
currently: function() { return player.hb.points.sqrt().div((player.hb.order>0)?25:4).plus(1) },
|
||||
effDisp: function(x) { return format(x.sub(1).times(100))+"% stronger" },
|
||||
},
|
||||
12: {
|
||||
desc: "Hyper-Boosters are stronger based on your Super-Boosters.",
|
||||
cost: new Decimal(2),
|
||||
unl: function() { return player.hb.unl },
|
||||
currently: function() { return player.sb.points.div(10).plus(1).log10().div((player.hb.order>0)?5:1).plus(1) },
|
||||
effDisp: function(x) { return format(x.sub(1).times(100))+"% stronger" },
|
||||
},
|
||||
},
|
||||
ss: {
|
||||
rows: 0,
|
||||
cols: 0,
|
||||
rows: 1,
|
||||
cols: 4,
|
||||
11: {
|
||||
desc: "You get more Space based on your Subspace Energy.",
|
||||
cost: new Decimal(1),
|
||||
unl: function() { return player.ss.unl },
|
||||
currently: function() { return player.ss.points.sqrt().times(150).floor() },
|
||||
effDisp: function(x) { return formatWhole(x)+" more Space" },
|
||||
},
|
||||
12: {
|
||||
desc: "You generate Subspace faster based on your Points.",
|
||||
cost: new Decimal(2),
|
||||
unl: function() { return player.ss.unl },
|
||||
currently: function() { return player.points.plus(1).log10().div(1e4).plus(1) },
|
||||
effDisp: function(x) { return format(x)+"x" },
|
||||
},
|
||||
13: {
|
||||
desc: "Subspace's third effect is 50% stronger.",
|
||||
cost: new Decimal(2),
|
||||
unl: function() { return player.ss.unl },
|
||||
},
|
||||
14: {
|
||||
desc: "Super-Boosters are 5.5% cheaper.",
|
||||
cost: new Decimal(2),
|
||||
unl: function() { return player.hb.unl },
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
|
@ -996,6 +1035,7 @@ function checkForVars() {
|
|||
if (player.s.buildings[4] === undefined) player.s.buildings[4] = new Decimal(0);
|
||||
if (player.s.buildings[5] === undefined) player.s.buildings[5] = new Decimal(0);
|
||||
if (player.s.auto === undefined) player.s.auto = false
|
||||
if (player.s.autoBuild === undefined) player.s.autoBuild = false
|
||||
if (player.sb === undefined) player.sb = getStartPlayer().sb
|
||||
if (player.sb.auto === undefined) player.sb.auto = false
|
||||
if (player.timePlayed === undefined) player.timePlayed = 0
|
||||
|
@ -1128,10 +1168,10 @@ function getLayerReq(layer) {
|
|||
req = req.times(Decimal.pow("1e200", Decimal.pow(player.s.order, 2)))
|
||||
break;
|
||||
case "hb":
|
||||
if (player.hb.order>0) req = new Decimal(1/0)
|
||||
if (player.hb.order>0) req = new Decimal(15)
|
||||
break;
|
||||
case "ss":
|
||||
if (player.ss.order>0) req = new Decimal(1/0)
|
||||
if (player.ss.order>0) req = new Decimal(45)
|
||||
break;
|
||||
}
|
||||
return req
|
||||
|
@ -1174,6 +1214,9 @@ function getLayerGainMult(layer) {
|
|||
case "s":
|
||||
if (player.h.challs.includes(21)) mult = mult.div(H_CHALLS[21].currently())
|
||||
break;
|
||||
case "sb":
|
||||
if (player.ss.upgrades.includes(14)) mult = mult.div(1.055)
|
||||
break;
|
||||
case "h":
|
||||
if (player.q.upgrades.includes(22)) mult = mult.times(LAYER_UPGS.q[22].currently().h)
|
||||
if (player.q.upgrades.includes(34)) mult = mult.times(LAYER_UPGS.q[34].currently())
|
||||
|
@ -1330,6 +1373,7 @@ function rowReset(row, layer) {
|
|||
}),
|
||||
upgrades: player.h.best.gte(4) ? player.s.upgrades : [],
|
||||
auto: player.s.auto,
|
||||
autoBuild: player.s.autoBuild,
|
||||
}
|
||||
player.sb = {
|
||||
unl: player.sb.unl,
|
||||
|
@ -1611,6 +1655,7 @@ function getSpace() {
|
|||
if (player.s.upgrades.includes(13)&&!(tmp.hcActive?tmp.hcActive[12]:true)) baseSpace = baseSpace.plus(2);
|
||||
if (player.s.upgrades.includes(24)&&!(tmp.hcActive?tmp.hcActive[12]:true)) baseSpace = baseSpace.plus(3);
|
||||
if (player.ss.unl) baseSpace = baseSpace.plus(tmp.ssEff1)
|
||||
if (player.ss.upgrades.includes(11)) baseSpace = baseSpace.plus(LAYER_UPGS.ss[11].currently())
|
||||
return baseSpace.sub(player.s.spent).max(0)
|
||||
}
|
||||
|
||||
|
@ -1634,6 +1679,13 @@ function getSpaceBuildingCost(x) {
|
|||
return cost
|
||||
}
|
||||
|
||||
function getSpaceBuildingTarg(x) {
|
||||
let inputVal = new Decimal([1e3,1e10,1e25,1e48,1e100][x-1])
|
||||
let target = player.g.power.div(getSpaceBuildingCostMult()).div(inputVal).max(1).log(inputVal).pow(1/1.35).div(getSpaceBuildingCostMod())
|
||||
if (target.gte(100)) target = target.times(100).sqrt()
|
||||
return target.plus(1).floor()
|
||||
}
|
||||
|
||||
function getSpaceBuildingPow() {
|
||||
if (!player.s.unl) return new Decimal(0)
|
||||
if (tmp.hcActive ? tmp.hcActive[22] : true) return new Decimal(0)
|
||||
|
@ -1713,6 +1765,18 @@ function buyBuilding(x) {
|
|||
player.s.buildings[x] = player.s.buildings[x].plus(1)
|
||||
}
|
||||
|
||||
function maxSpaceBuilding(x) {
|
||||
if (!player.s.unl) return
|
||||
if (tmp.sbUnl<x) return
|
||||
let space = getSpace()
|
||||
if (space.lt(1)) return
|
||||
let target = getSpaceBuildingTarg(x)
|
||||
let bulk = target.sub(player.s.buildings[x]).min(space)
|
||||
if (bulk.lt(1)) return
|
||||
player.s.spent = player.s.spent.plus(bulk)
|
||||
player.s.buildings[x] = player.s.buildings[x].plus(bulk)
|
||||
}
|
||||
|
||||
function destroyBuilding(x, all=false) {
|
||||
if (!player.s.unl) return
|
||||
if (tmp.sbUnl<x) return
|
||||
|
@ -1747,6 +1811,7 @@ function getSuperBoosterPow() {
|
|||
let pow = new Decimal(1)
|
||||
if (player.sb.upgrades.includes(11)&&!(tmp.hcActive?tmp.hcActive[12]:true)) pow = pow.times(LAYER_UPGS.sb[11].currently())
|
||||
if (player.sb.upgrades.includes(12)&&!(tmp.hcActive?tmp.hcActive[12]:true)) pow = pow.times(LAYER_UPGS.sb[12].currently())
|
||||
if (player.hb.upgrades.includes(11)) pow = pow.times(LAYER_UPGS.hb[11].currently())
|
||||
return pow;
|
||||
}
|
||||
|
||||
|
@ -1916,10 +1981,31 @@ function getSubspaceEff2() {
|
|||
function getSubspaceEff3() {
|
||||
if (!player.ss.unl) return new Decimal(1)
|
||||
let eff = player.ss.subspace.plus(1).log10().plus(1).log10().div(2.5).plus(1)
|
||||
if (player.ss.upgrades.includes(13)) eff = eff.times(1.5)
|
||||
if (eff.gte(2)) eff = eff.log2().plus(1)
|
||||
return eff;
|
||||
}
|
||||
|
||||
function getSubspaceGainMult() {
|
||||
let mult = new Decimal(1)
|
||||
if (player.ss.upgrades.includes(12)) mult = mult.times(LAYER_UPGS.ss[12].currently())
|
||||
return mult
|
||||
}
|
||||
|
||||
function getHyperBoosterExp() {
|
||||
let exp = new Decimal(1)
|
||||
if (player.hb.order>0) exp = new Decimal(0.5)
|
||||
return exp
|
||||
}
|
||||
|
||||
function getHyperBoosterPow() {
|
||||
let pow = new Decimal(1)
|
||||
if (player.hb.upgrades.includes(12)) pow = pow.times(LAYER_UPGS.hb[12].currently())
|
||||
return pow;
|
||||
}
|
||||
|
||||
function gameLoop(diff) {
|
||||
diff = new Decimal(diff)
|
||||
if (isNaN(diff.toNumber())) diff = new Decimal(0);
|
||||
player.h.time += diff.toNumber()
|
||||
if (tmp.hcActive ? tmp.hcActive[42] : true) {
|
||||
|
@ -1949,6 +2035,7 @@ function gameLoop(diff) {
|
|||
if (player.t.autoCap&&player.h.best.gte(5)) maxExtTimeCapsules()
|
||||
if (player.t.auto&&player.q.best.gte(10)) doReset("t")
|
||||
if (player.s.auto&&player.q.best.gte(10)) doReset("s")
|
||||
if (player.s.autoBuild&&player.ss.best.gte(1)) for (let i=1;i<=tmp.sbUnl;i++) maxSpaceBuilding(i)
|
||||
if (player.sb.auto&&player.h.best.gte(15)) doReset("sb")
|
||||
|
||||
if (player.hasNaN&&!NaNalert) {
|
||||
|
|
Loading…
Reference in a new issue