mirror of
https://github.com/Acamaeda/The-Modding-Tree.git
synced 2024-11-24 17:31:50 +00:00
Beta v1.2 Alpha 7
This commit is contained in:
parent
c4a4877c7b
commit
f03a3bf1de
4 changed files with 74 additions and 13 deletions
15
index.html
15
index.html
|
@ -15,6 +15,10 @@
|
||||||
<div class="vl"></div>
|
<div class="vl"></div>
|
||||||
<div v-if="player.tab=='changelog'" class="col right">
|
<div v-if="player.tab=='changelog'" class="col right">
|
||||||
<button class="back" onclick="showTab('tree')">←</button><br><br>
|
<button class="back" onclick="showTab('tree')">←</button><br><br>
|
||||||
|
<h3>Beta v1.2 Alpha 7</h3>
|
||||||
|
<ul>
|
||||||
|
<li>Balanced up to 1e3,950,000 Points, 1,500,000 Magic, and 5,000,000 Balance Energy</li>
|
||||||
|
</ul><br>
|
||||||
<h3>Beta v1.2 Alpha 6</h3>
|
<h3>Beta v1.2 Alpha 6</h3>
|
||||||
<ul>
|
<ul>
|
||||||
<li>Fixed a bug with hotkeys</li>
|
<li>Fixed a bug with hotkeys</li>
|
||||||
|
@ -243,7 +247,12 @@
|
||||||
<span v-if="player.q.unl">Q: Quirk reset</span><br>
|
<span v-if="player.q.unl">Q: Quirk reset</span><br>
|
||||||
<span v-if="player.hb.unl">Ctrl+B: Hyper-Booster reset</span><br>
|
<span v-if="player.hb.unl">Ctrl+B: Hyper-Booster reset</span><br>
|
||||||
<span v-if="player.ss.unl">Shift+S: Subspace reset</span><br>
|
<span v-if="player.ss.unl">Shift+S: Subspace reset</span><br>
|
||||||
<span v-if="player.m.unl">M: Magic reset</span><br>
|
<span v-if="player.m.unl">
|
||||||
|
M: Magic reset<br>
|
||||||
|
1: Cast spell 1<br>
|
||||||
|
2: Cast spell 2<br>
|
||||||
|
3: Cast spell 3
|
||||||
|
</span><br>
|
||||||
<span v-if="player.ba.unl">A: Balance reset</span><br>
|
<span v-if="player.ba.unl">A: Balance reset</span><br>
|
||||||
</div>
|
</div>
|
||||||
<div v-if="player.tab=='options'" class="col right">
|
<div v-if="player.tab=='options'" class="col right">
|
||||||
|
@ -419,14 +428,14 @@
|
||||||
<br>
|
<br>
|
||||||
<div class="upgRow">
|
<div class="upgRow">
|
||||||
<div v-for="id in 3">
|
<div v-for="id in 3">
|
||||||
<button v-bind:class="{ upg: true, bought: spellActive(id), can: ((player.m.points.gte(1))&&player.m.unl&&!spellActive(id)), locked: (!(player.m.points.gte(1)||spellActive(id))), m: true }" v-on:click="activateSpell(id)">{{SPELL_NAMES[id]}}<br>Time Left: {{format(player.m.spellTimes[id])}}<br>Effect: {{getSpellDesc(id)}}</button>
|
<button v-bind:class="{ upg: true, bought: spellActive(id), can: ((player.m.points.gte(1))&&player.m.unl&&!spellActive(id)), locked: (!(player.m.points.gte(1)||spellActive(id))), m: true }" v-on:click="activateSpell(id)"><h3>{{SPELL_NAMES[id]}}</h3><br>Time Left: {{format(player.m.spellTimes[id])}}<br>Effect: {{getSpellDesc(id)}}</button>
|
||||||
</div>
|
</div>
|
||||||
</div><br><br>
|
</div><br><br>
|
||||||
You have {{formatWhole(player.m.hexes)}} Hexes, which are multiplying Hindrance Spirit & Quirk gain by {{format(tmp.hexEff)}}<br><br>
|
You have {{formatWhole(player.m.hexes)}} Hexes, which are multiplying Hindrance Spirit & Quirk gain by {{format(tmp.hexEff)}}<br><br>
|
||||||
<table>
|
<table>
|
||||||
<tr><td v-if="milestoneShown(player.m.best.gte(1))" v-bind:class="{ milestone: player.m.best.lt(1), milestoneDone: player.m.best.gte(1) }">1 Magic<br>Keep row 4 milestones on all resets</td></tr>
|
<tr><td v-if="milestoneShown(player.m.best.gte(1))" v-bind:class="{ milestone: player.m.best.lt(1), milestoneDone: player.m.best.gte(1) }">1 Magic<br>Keep row 4 milestones on all resets</td></tr>
|
||||||
<tr><td v-if="milestoneShown(player.m.best.gte(2))" v-bind:class="{ milestone: player.m.best.lt(2), milestoneDone: player.m.best.gte(2) }">2 Magic<br>Keep Hindrance completions on all resets</td></tr>
|
<tr><td v-if="milestoneShown(player.m.best.gte(2))" v-bind:class="{ milestone: player.m.best.lt(2), milestoneDone: player.m.best.gte(2) }">2 Magic<br>Keep Hindrance completions on all resets</td></tr>
|
||||||
<tr><td v-if="milestoneShown(player.m.best.gte(3))" v-bind:class="{ milestone: player.m.best.lt(3), milestoneDone: player.m.best.gte(3) }">3 Magic<br>Gain 1% of Hindrance Energy & Quirk gain every second</td></tr>
|
<tr><td v-if="milestoneShown(player.m.best.gte(3))" v-bind:class="{ milestone: player.m.best.lt(3), milestoneDone: player.m.best.gte(3) }">3 Magic<br>Gain 1% of Hindrance Spirit & Quirk gain every second</td></tr>
|
||||||
<tr><td v-if="milestoneShown(player.m.best.gte(4), true)" v-bind:class="{ milestone: player.m.best.lt(4), milestoneDone: player.m.best.gte(4) }">4 Magic<br>Automatically purchase Hyper-Boosters & Subspace <button v-if="player.m.best.gte(4)" class="smallUpg can hb" onclick="toggleAuto('hb')">{{player.hb.auto?"ON":"OFF"}}</button> <button v-if="player.m.best.gte(4)" class="smallUpg can ss" onclick="toggleAuto('ss')">{{player.ss.auto?"ON":"OFF"}}</button></td></tr>
|
<tr><td v-if="milestoneShown(player.m.best.gte(4), true)" v-bind:class="{ milestone: player.m.best.lt(4), milestoneDone: player.m.best.gte(4) }">4 Magic<br>Automatically purchase Hyper-Boosters & Subspace <button v-if="player.m.best.gte(4)" class="smallUpg can hb" onclick="toggleAuto('hb')">{{player.hb.auto?"ON":"OFF"}}</button> <button v-if="player.m.best.gte(4)" class="smallUpg can ss" onclick="toggleAuto('ss')">{{player.ss.auto?"ON":"OFF"}}</button></td></tr>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -48,6 +48,7 @@ function drawTree() {
|
||||||
if (layerUnl('m')) {
|
if (layerUnl('m')) {
|
||||||
drawTreeBranch("hb", "m")
|
drawTreeBranch("hb", "m")
|
||||||
drawTreeBranch("h", "m")
|
drawTreeBranch("h", "m")
|
||||||
|
drawTreeBranch("q", "m")
|
||||||
}
|
}
|
||||||
if (layerUnl('ba')) {
|
if (layerUnl('ba')) {
|
||||||
drawTreeBranch("q", "ba")
|
drawTreeBranch("q", "ba")
|
||||||
|
|
70
js/game.js
70
js/game.js
|
@ -1090,13 +1090,15 @@ const LAYER_UPGS = {
|
||||||
unl: function() { return player.m.upgrades.includes(21) },
|
unl: function() { return player.m.upgrades.includes(21) },
|
||||||
},
|
},
|
||||||
24: {
|
24: {
|
||||||
desc: "???",
|
desc: "Add free Quirk Layers based on your Boosters.",
|
||||||
cost: new Decimal(1/0),
|
cost: new Decimal(80000),
|
||||||
unl: function() { return false },
|
unl: function() { return player.m.upgrades.includes(22) },
|
||||||
|
currently: function() { return player.b.points.plus(1).log10().times(0.9) },
|
||||||
|
effDisp: function(x) { return "+"+format(x) },
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
ba: {
|
ba: {
|
||||||
rows: 2,
|
rows: 3,
|
||||||
cols: 4,
|
cols: 4,
|
||||||
11: {
|
11: {
|
||||||
desc: "All Balance Energy effects use better formulas.",
|
desc: "All Balance Energy effects use better formulas.",
|
||||||
|
@ -1148,6 +1150,30 @@ const LAYER_UPGS = {
|
||||||
cost: new Decimal(2e4),
|
cost: new Decimal(2e4),
|
||||||
unl: function() { return player.ba.upgrades.includes(22) },
|
unl: function() { return player.ba.upgrades.includes(22) },
|
||||||
},
|
},
|
||||||
|
31: {
|
||||||
|
desc: "The Quirk Layer cost is adjusted based on your Balance Upgrades bought.",
|
||||||
|
cost: new Decimal(4e5),
|
||||||
|
unl: function() { return player.ba.upgrades.includes(23) },
|
||||||
|
currently: function() { return Decimal.div(0.8, Math.pow(player.ba.upgrades.length+1, 0.1)).plus(1.2) },
|
||||||
|
effDisp: function(x) { return "2 -> "+format(x) },
|
||||||
|
},
|
||||||
|
32: {
|
||||||
|
desc: "Enhancers are stronger based on your Positivity.",
|
||||||
|
cost: new Decimal(5e5),
|
||||||
|
unl: function() { return player.ba.upgrades.includes(24) },
|
||||||
|
currently: function() { return player.ba.positivity.plus(1).log10().plus(1).log10().plus(1).pow(2) },
|
||||||
|
effDisp: function(x) { return format(x.sub(1).times(100))+"% stronger" },
|
||||||
|
},
|
||||||
|
33: {
|
||||||
|
desc: "The Balance Power effect is squared.",
|
||||||
|
cost: new Decimal(1e6),
|
||||||
|
unl: function() { return player.ba.upgrades.includes(31) },
|
||||||
|
},
|
||||||
|
34: {
|
||||||
|
desc: "The Positivity & Negativity effect uses a better formula.",
|
||||||
|
cost: new Decimal(2e6),
|
||||||
|
unl: function() { return player.ba.upgrades.includes(32) },
|
||||||
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1961,6 +1987,7 @@ function getEnhancerPow() {
|
||||||
if (player.e.upgrades.includes(31)&&!(tmp.hcActive?tmp.hcActive[12]:true)) pow = pow.times(LAYER_UPGS.e[31].currently())
|
if (player.e.upgrades.includes(31)&&!(tmp.hcActive?tmp.hcActive[12]:true)) pow = pow.times(LAYER_UPGS.e[31].currently())
|
||||||
if (player.h.challs.includes(31)) pow = pow.times(2)
|
if (player.h.challs.includes(31)) pow = pow.times(2)
|
||||||
if (player.q.upgrades.includes(42)) pow = pow.times(1.4)
|
if (player.q.upgrades.includes(42)) pow = pow.times(1.4)
|
||||||
|
if (player.ba.upgrades.includes(32)) pow = pow.times(LAYER_UPGS.ba[32].currently())
|
||||||
return pow
|
return pow
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2253,13 +2280,19 @@ function addToSBBase() {
|
||||||
return toAdd
|
return toAdd
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function getQuirkLayerCostBase() {
|
||||||
|
let base = new Decimal(2)
|
||||||
|
if (player.ba.upgrades.includes(31)) base = LAYER_UPGS.ba[31].currently()
|
||||||
|
return base
|
||||||
|
}
|
||||||
|
|
||||||
function getQuirkLayerCost() {
|
function getQuirkLayerCost() {
|
||||||
let cost = Decimal.pow(2, Decimal.pow(2, player.q.layers)).sub(1)
|
let cost = Decimal.pow(tmp.qCB, Decimal.pow(tmp.qCB, player.q.layers)).sub(1)
|
||||||
return cost.max(1);
|
return cost.max(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
function getQuirkLayerTarg() {
|
function getQuirkLayerTarg() {
|
||||||
let targ = player.q.points.plus(1).log2().plus(1).log2().plus(1).floor()
|
let targ = player.q.points.plus(1).log(tmp.qCB).plus(1).log(tmp.qCB).plus(1).floor()
|
||||||
return targ
|
return targ
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2273,10 +2306,16 @@ function getQuirkLayerMult() {
|
||||||
return mult
|
return mult
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function getExtraQuirkLayers() {
|
||||||
|
let layers = new Decimal(0);
|
||||||
|
if (player.m.upgrades.includes(24)) layers = layers.plus(LAYER_UPGS.m[24].currently())
|
||||||
|
return layers;
|
||||||
|
}
|
||||||
|
|
||||||
function getQuirkEnergyGainExp() {
|
function getQuirkEnergyGainExp() {
|
||||||
let mult = new Decimal(1)
|
let mult = new Decimal(1)
|
||||||
if (spellActive(3)) mult = mult.times(tmp.spellEffs[3])
|
if (spellActive(3)) mult = mult.times(tmp.spellEffs[3])
|
||||||
return player.q.layers.sub(1).times(mult)
|
return player.q.layers.plus(getExtraQuirkLayers()).sub(1).times(mult)
|
||||||
}
|
}
|
||||||
|
|
||||||
function getQuirkEnergyEff() {
|
function getQuirkEnergyEff() {
|
||||||
|
@ -2509,6 +2548,7 @@ function getHyperBoosterPow() {
|
||||||
function getBalancePowerEff() {
|
function getBalancePowerEff() {
|
||||||
let eff = player.ba.power.plus(1).sqrt()
|
let eff = player.ba.power.plus(1).sqrt()
|
||||||
if (player.ba.upgrades.includes(14)) eff = eff.pow(5)
|
if (player.ba.upgrades.includes(14)) eff = eff.pow(5)
|
||||||
|
if (player.ba.upgrades.includes(33)) eff = eff.pow(2)
|
||||||
return eff;
|
return eff;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2516,6 +2556,7 @@ function getBalanceTypesEff() {
|
||||||
let mod = player.ba.positivity.plus(1).log10().plus(1).div(player.ba.negativity.plus(1).log10().plus(1)).log10().abs().plus(1).pow(-1)
|
let mod = player.ba.positivity.plus(1).log10().plus(1).div(player.ba.negativity.plus(1).log10().plus(1)).log10().abs().plus(1).pow(-1)
|
||||||
let pos = player.ba.positivity.plus(1).log10().plus(1)
|
let pos = player.ba.positivity.plus(1).log10().plus(1)
|
||||||
let neg = player.ba.negativity.plus(1).log10().plus(1)
|
let neg = player.ba.negativity.plus(1).log10().plus(1)
|
||||||
|
if (player.ba.upgrades.includes(34)) mod = mod.times(1.5)
|
||||||
let eff = pos.times(neg).pow(mod)
|
let eff = pos.times(neg).pow(mod)
|
||||||
return eff;
|
return eff;
|
||||||
}
|
}
|
||||||
|
@ -2539,9 +2580,9 @@ function getNegGainMult() {
|
||||||
}
|
}
|
||||||
|
|
||||||
const SPELL_NAMES = {
|
const SPELL_NAMES = {
|
||||||
1: "Spell 1",
|
1: "Booster Launch",
|
||||||
2: "Spell 2",
|
2: "Time Warp",
|
||||||
3: "Spell 3",
|
3: "Quirk Amplification",
|
||||||
}
|
}
|
||||||
|
|
||||||
const SPELL_DESCS = {
|
const SPELL_DESCS = {
|
||||||
|
@ -2734,6 +2775,15 @@ document.onkeydown = function(e) {
|
||||||
case "S":
|
case "S":
|
||||||
if (player.ss.unl) doReset("ss")
|
if (player.ss.unl) doReset("ss")
|
||||||
break;
|
break;
|
||||||
|
case "1":
|
||||||
|
if (player.ba.unl) activateSpell(1)
|
||||||
|
break;
|
||||||
|
case "2":
|
||||||
|
if (player.ba.unl) activateSpell(2)
|
||||||
|
break;
|
||||||
|
case "3":
|
||||||
|
if (player.ba.unl) activateSpell(3)
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
} else if (player[key].unl) doReset(key)
|
} else if (player[key].unl) doReset(key)
|
||||||
}
|
}
|
|
@ -47,6 +47,7 @@ function updateTemp() {
|
||||||
tmp.sbUnl = getSpaceBuildingsUnl()
|
tmp.sbUnl = getSpaceBuildingsUnl()
|
||||||
|
|
||||||
tmp.quirkEff = getQuirkEnergyEff()
|
tmp.quirkEff = getQuirkEnergyEff()
|
||||||
|
tmp.qCB = getQuirkLayerCostBase()
|
||||||
|
|
||||||
tmp.ssEff1 = getSubspaceEff1()
|
tmp.ssEff1 = getSubspaceEff1()
|
||||||
tmp.ssEff2 = getSubspaceEff2()
|
tmp.ssEff2 = getSubspaceEff2()
|
||||||
|
|
Loading…
Reference in a new issue