mirror of
https://github.com/Acamaeda/The-Modding-Tree.git
synced 2024-11-24 01:11:46 +00:00
Alpha Build 6
This commit is contained in:
parent
a89a6f1176
commit
cd465efa3c
3 changed files with 56 additions and 23 deletions
|
@ -31,6 +31,12 @@
|
||||||
<ul>
|
<ul>
|
||||||
<li>Balanced up to 1e920 with all prestige tree paths (before unlocking third row 3 layer)</li>
|
<li>Balanced up to 1e920 with all prestige tree paths (before unlocking third row 3 layer)</li>
|
||||||
</ul><br><br>
|
</ul><br><br>
|
||||||
|
<h3>Alpha Build 6</h3>
|
||||||
|
<ul>
|
||||||
|
<li>Made font work for Mac users</li>
|
||||||
|
<li>Added 1 new Space & Time milestone each</li>
|
||||||
|
<li>Balanced up to 1e3,375 points</li>
|
||||||
|
</ul><br><br>
|
||||||
</div>
|
</div>
|
||||||
<div v-if="player.tab=='info'" class="col right">
|
<div v-if="player.tab=='info'" class="col right">
|
||||||
<button class="back" onclick="showTab('tree')">←</button><br><br><br><br><br>
|
<button class="back" onclick="showTab('tree')">←</button><br><br><br><br><br>
|
||||||
|
@ -114,6 +120,7 @@
|
||||||
<tr><td v-bind:class="{ milestone: player.t.best.lt(3), milestoneDone: player.t.best.gte(3) }">3 time capsules<br>Keep Prestige Upgrades on reset</td></tr>
|
<tr><td v-bind:class="{ milestone: player.t.best.lt(3), milestoneDone: player.t.best.gte(3) }">3 time capsules<br>Keep Prestige Upgrades on reset</td></tr>
|
||||||
<tr><td v-bind:class="{ milestone: player.t.best.lt(4), milestoneDone: player.t.best.gte(4) }">4 time capsules<br>Keep Booster Upgrades on all row 3 resets</td></tr>
|
<tr><td v-bind:class="{ milestone: player.t.best.lt(4), milestoneDone: player.t.best.gte(4) }">4 time capsules<br>Keep Booster Upgrades on all row 3 resets</td></tr>
|
||||||
<tr><td v-bind:class="{ milestone: player.t.best.lt(5), milestoneDone: player.t.best.gte(5) }">5 time capsules<br>Automatically purchase Boosters <button v-if="player.t.best.gte(5)" class="smallUpg can b" onclick="toggleAuto('b')">{{player.b.auto?"ON":"OFF"}}</button></td></tr>
|
<tr><td v-bind:class="{ milestone: player.t.best.lt(5), milestoneDone: player.t.best.gte(5) }">5 time capsules<br>Automatically purchase Boosters <button v-if="player.t.best.gte(5)" class="smallUpg can b" onclick="toggleAuto('b')">{{player.b.auto?"ON":"OFF"}}</button></td></tr>
|
||||||
|
<tr><td v-bind:class="{ milestone: player.t.best.lt(12), milestoneDone: player.t.best.gte(12) }">12 time capsules<br>Boosters reset nothing</td></tr>
|
||||||
</table><br><br>
|
</table><br><br>
|
||||||
<button v-bind:class="{ upgBig: true, can: (player.b.points.gte(getExtCapsuleCost())&&player.t.unl), locked: (player.b.points.lt(getExtCapsuleCost())||!player.t.unl), t: true }" onclick="buyExtCapsule()">Buy an extra Time Capsule<br>Cost: {{formatWhole(getExtCapsuleCost())}} Boosters<br>Amount: {{formatWhole(player.t.extCapsules)}}</button>
|
<button v-bind:class="{ upgBig: true, can: (player.b.points.gte(getExtCapsuleCost())&&player.t.unl), locked: (player.b.points.lt(getExtCapsuleCost())||!player.t.unl), t: true }" onclick="buyExtCapsule()">Buy an extra Time Capsule<br>Cost: {{formatWhole(getExtCapsuleCost())}} Boosters<br>Amount: {{formatWhole(player.t.extCapsules)}}</button>
|
||||||
</div>
|
</div>
|
||||||
|
@ -123,6 +130,7 @@
|
||||||
<tr><td v-bind:class="{ milestone: player.s.best.lt(3), milestoneDone: player.s.best.gte(3) }">3 space energy<br>Keep Prestige Upgrades on reset</td></tr>
|
<tr><td v-bind:class="{ milestone: player.s.best.lt(3), milestoneDone: player.s.best.gte(3) }">3 space energy<br>Keep Prestige Upgrades on reset</td></tr>
|
||||||
<tr><td v-bind:class="{ milestone: player.s.best.lt(4), milestoneDone: player.s.best.gte(4) }">4 space energy<br>Keep Generator Upgrades on all row 3 resets</td></tr>
|
<tr><td v-bind:class="{ milestone: player.s.best.lt(4), milestoneDone: player.s.best.gte(4) }">4 space energy<br>Keep Generator Upgrades on all row 3 resets</td></tr>
|
||||||
<tr><td v-bind:class="{ milestone: player.s.best.lt(5), milestoneDone: player.s.best.gte(5) }">5 space energy<br>Automatically purchase Generators <button v-if="player.s.best.gte(5)" class="smallUpg can g" onclick="toggleAuto('g')">{{player.g.auto?"ON":"OFF"}}</button></td></tr>
|
<tr><td v-bind:class="{ milestone: player.s.best.lt(5), milestoneDone: player.s.best.gte(5) }">5 space energy<br>Automatically purchase Generators <button v-if="player.s.best.gte(5)" class="smallUpg can g" onclick="toggleAuto('g')">{{player.g.auto?"ON":"OFF"}}</button></td></tr>
|
||||||
|
<tr><td v-bind:class="{ milestone: player.s.best.lt(12), milestoneDone: player.s.best.gte(12) }">12 space energy<br>Generators reset nothing</td></tr>
|
||||||
</table><br><br>
|
</table><br><br>
|
||||||
<button onclick="respecSpaceBuildings()" v-bind:class="{ longUpg: true, can: player.s.unl, locked: !player.s.unl }">Respec Space Buildings</button><br>
|
<button onclick="respecSpaceBuildings()" v-bind:class="{ longUpg: true, can: player.s.unl, locked: !player.s.unl }">Respec Space Buildings</button><br>
|
||||||
<table><tr>
|
<table><tr>
|
||||||
|
|
69
js/game.js
69
js/game.js
|
@ -339,14 +339,14 @@ const LAYER_UPGS = {
|
||||||
unl: function() { return player.t.unl&&(player.t.order==1||player.s.unl)&&player.e.upgrades.includes(14) },
|
unl: function() { return player.t.unl&&(player.t.order==1||player.s.unl)&&player.e.upgrades.includes(14) },
|
||||||
},
|
},
|
||||||
22: {
|
22: {
|
||||||
desc: "???",
|
desc: "This layer behaves as if you chose it first (base req is now 1e120 points)",
|
||||||
cost: new Decimal(1/0),
|
cost: new Decimal(1e22),
|
||||||
unl: function() { return false },
|
unl: function() { return (player.t.unl&&player.s.unl&&player.e.order==2)||player.e.upgrades.includes(22)||player.e.upgrades.includes(23) },
|
||||||
},
|
},
|
||||||
23: {
|
23: {
|
||||||
desc: "???",
|
desc: "This layer behaves as if you chose it first (base req is now 1e120 points)",
|
||||||
cost: new Decimal(1/0),
|
cost: new Decimal(1e40),
|
||||||
unl: function() { return false },
|
unl: function() { return (player.t.unl&&player.s.unl&&player.e.order==1)||player.e.upgrades.includes(22)||player.e.upgrades.includes(23) },
|
||||||
},
|
},
|
||||||
24: {
|
24: {
|
||||||
desc: "???",
|
desc: "???",
|
||||||
|
@ -420,9 +420,9 @@ const LAYER_UPGS = {
|
||||||
unl: function() { return (player.t.upgrades.includes(22)&&(player.e.order==1||player.s.unl))||(player.t.upgrades.includes(23)&&(player.s.order==1||player.e.unl)) },
|
unl: function() { return (player.t.upgrades.includes(22)&&(player.e.order==1||player.s.unl))||(player.t.upgrades.includes(23)&&(player.s.order==1||player.e.unl)) },
|
||||||
},
|
},
|
||||||
32: {
|
32: {
|
||||||
desc: "???",
|
desc: "This layer behaves as if you chose it first (base req is now 1e120 points)",
|
||||||
cost: new Decimal(1/0),
|
cost: new Decimal(12),
|
||||||
unl: function() { return false },
|
unl: function() { return (player.s.unl&&player.e.unl)||player.t.upgrades.includes(32) },
|
||||||
},
|
},
|
||||||
33: {
|
33: {
|
||||||
desc: "???",
|
desc: "???",
|
||||||
|
@ -499,14 +499,16 @@ const LAYER_UPGS = {
|
||||||
unl: function() { return (player.s.upgrades.includes(22)&&(player.t.order==1||player.e.unl))||(player.s.upgrades.includes(23)&&(player.e.order==1||player.t.unl)) },
|
unl: function() { return (player.s.upgrades.includes(22)&&(player.t.order==1||player.e.unl))||(player.s.upgrades.includes(23)&&(player.e.order==1||player.t.unl)) },
|
||||||
},
|
},
|
||||||
33: {
|
33: {
|
||||||
desc: "???",
|
desc: "This layer behaves as if you chose it first (base req is now 1e120 points)",
|
||||||
cost: new Decimal(1/0),
|
cost: new Decimal(12),
|
||||||
unl: function() { return false },
|
unl: function() { return (player.t.unl&&player.e.unl)||player.s.upgrades.includes(33) },
|
||||||
},
|
},
|
||||||
34: {
|
34: {
|
||||||
desc: "???",
|
desc: "Space Buildings boost the Generator Power effect (before all other boosts).",
|
||||||
cost: new Decimal(1/0),
|
cost: new Decimal(15),
|
||||||
unl: function() { return false },
|
unl: function() { return player.t.unl&&player.e.unl&&player.t.order==0&&player.e.order==0&&player.s.order==0 },
|
||||||
|
currently: function() { return Decimal.pow(Object.values(player.s.buildings).reduce((a,b) => Decimal.add(a,b)), 0.2).div(17.5) },
|
||||||
|
effDisp: function(x) { return "Add "+format(x)+" to exponent" },
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
@ -633,7 +635,10 @@ function commaFormat(num, precision) {
|
||||||
|
|
||||||
function format(decimal, precision=3) {
|
function format(decimal, precision=3) {
|
||||||
decimal = new Decimal(decimal)
|
decimal = new Decimal(decimal)
|
||||||
if (decimal.gte(1e9)) return exponentialFormat(decimal, precision)
|
if (decimal.gte("eee1000")) return exponentialFormat(decimal, precision)
|
||||||
|
else if (decimal.gte("ee1000")) return "ee"+format(decimal.log10().log10())
|
||||||
|
else if (decimal.gte("1e1000")) return decimal.div(Decimal.pow(10, decimal.log10().floor())).toStringWithDecimalPlaces(precision)+"e"+format(decimal.log10().floor())
|
||||||
|
else if (decimal.gte(1e9)) return exponentialFormat(decimal, precision)
|
||||||
else if (decimal.gte(1e3)) return commaFormat(decimal, 0)
|
else if (decimal.gte(1e3)) return commaFormat(decimal, 0)
|
||||||
else return commaFormat(decimal, precision)
|
else return commaFormat(decimal, precision)
|
||||||
}
|
}
|
||||||
|
@ -834,6 +839,8 @@ function doReset(layer, force=false) {
|
||||||
for (let i in layers) if (!player[layers[i]].unl) player[layers[i]].order++
|
for (let i in layers) if (!player[layers[i]].unl) player[layers[i]].order++
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ((layer=="b"&&player.t.best.gte(12))||(layer=="g"&&player.s.best.gte(12))) return;
|
||||||
let row = LAYER_ROW[layer]
|
let row = LAYER_ROW[layer]
|
||||||
if (row==0) rowReset(0, layer)
|
if (row==0) rowReset(0, layer)
|
||||||
else for (let x=row;x>=1;x--) rowReset(x, layer)
|
else for (let x=row;x>=1;x--) rowReset(x, layer)
|
||||||
|
@ -846,6 +853,13 @@ function buyUpg(layer, id) {
|
||||||
if (player[layer].points.lt(LAYER_UPGS[layer][id].cost)) return
|
if (player[layer].points.lt(LAYER_UPGS[layer][id].cost)) return
|
||||||
player[layer].points = player[layer].points.sub(LAYER_UPGS[layer][id].cost)
|
player[layer].points = player[layer].points.sub(LAYER_UPGS[layer][id].cost)
|
||||||
player[layer].upgrades.push(id);
|
player[layer].upgrades.push(id);
|
||||||
|
if (layer=="t"&&id==32) player.t.order = 0;
|
||||||
|
if (layer=="e"&&(id==22||id==23)) {
|
||||||
|
player.e.order = 0;
|
||||||
|
if (!player.e.upgrades.includes(22)) player.e.upgrades.push(22)
|
||||||
|
if (!player.e.upgrades.includes(23)) player.e.upgrades.push(23)
|
||||||
|
}
|
||||||
|
if (layer=="s"&&id==33) player.s.order = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
function getPointGen() {
|
function getPointGen() {
|
||||||
|
@ -897,11 +911,17 @@ function getGenPowerGainMult() {
|
||||||
return mult
|
return mult
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function getGenPowerEffExp() {
|
||||||
|
let exp = new Decimal(1/3)
|
||||||
|
if (player.s.upgrades.includes(34)) exp = exp.plus(LAYER_UPGS.s[34].currently())
|
||||||
|
if (player.b.upgrades.includes(21)) exp = exp.times(2)
|
||||||
|
if (player.b.upgrades.includes(22)) exp = exp.times(1.2)
|
||||||
|
if (player.e.upgrades.includes(21)) exp = exp.times(1.15)
|
||||||
|
return exp;
|
||||||
|
}
|
||||||
|
|
||||||
function getGenPowerEff() {
|
function getGenPowerEff() {
|
||||||
let eff = player.g.power.plus(1).cbrt();
|
let eff = player.g.power.plus(1).pow(getGenPowerEffExp());
|
||||||
if (player.b.upgrades.includes(21)) eff = eff.pow(2);
|
|
||||||
if (player.b.upgrades.includes(22)) eff = eff.pow(1.2);
|
|
||||||
if (player.e.upgrades.includes(21)) eff = eff.pow(1.15);
|
|
||||||
return eff
|
return eff
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -914,12 +934,15 @@ function resetRow(row) {
|
||||||
doReset(pre_layers[0], true)
|
doReset(pre_layers[0], true)
|
||||||
for (let layer in layers) {
|
for (let layer in layers) {
|
||||||
player[layers[layer]].unl = false
|
player[layers[layer]].unl = false
|
||||||
|
if (player[layers[layer]].order) player[layers[layer]].order = 0
|
||||||
}
|
}
|
||||||
resizeCanvas();
|
resizeCanvas();
|
||||||
}
|
}
|
||||||
|
|
||||||
function getEnhancerCost() {
|
function getEnhancerCost() {
|
||||||
let cost = Decimal.pow(2, player.e.enhancers.pow(1.5))
|
let e = player.e.enhancers
|
||||||
|
if (e.gte(25)) e = e.pow(2).div(25)
|
||||||
|
let cost = Decimal.pow(2, e.pow(1.5))
|
||||||
return cost.floor()
|
return cost.floor()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -976,7 +999,9 @@ function getTimeEnergyLimitMult() {
|
||||||
}
|
}
|
||||||
|
|
||||||
function getExtCapsuleCost() {
|
function getExtCapsuleCost() {
|
||||||
let cost = player.t.extCapsules.times(0.4).pow(1.2).plus(1).times(10)
|
let amt = player.t.extCapsules
|
||||||
|
if (amt.gte(25)) amt = amt.pow(2).div(25)
|
||||||
|
let cost = amt.times(0.4).pow(1.2).plus(1).times(10)
|
||||||
return cost.floor()
|
return cost.floor()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
* {
|
* {
|
||||||
transition-duration: 0.5s;
|
transition-duration: 0.5s;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
font-family: "Lucida Console";
|
font-family: "Lucida Console", "Courier New", monospace;
|
||||||
table-align: center;
|
table-align: center;
|
||||||
margin: auto;
|
margin: auto;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue