mirror of
https://github.com/Acamaeda/The-Modding-Tree.git
synced 2024-11-24 09:21:46 +00:00
Beta 8
Balanced up to Space Building 6
This commit is contained in:
parent
a160f86cff
commit
690159cd41
4 changed files with 586 additions and 400 deletions
49
index.html
49
index.html
|
@ -25,7 +25,9 @@
|
||||||
<button class="back" onclick="showTab('tree')">←</button><br>
|
<button class="back" onclick="showTab('tree')">←</button><br>
|
||||||
<h3>v1.1: The Life Update</h3>
|
<h3>v1.1: The Life Update</h3>
|
||||||
<ul>
|
<ul>
|
||||||
<li>???</li>
|
<li>Added 4 new layers</li>
|
||||||
|
<li>Rebalanced early parts of rows 4 - 5 progression</li>
|
||||||
|
<li>Balanced up to e???,000,000</li>
|
||||||
</ul><br>
|
</ul><br>
|
||||||
<h3>v1.0 Patch 1</h3>
|
<h3>v1.0 Patch 1</h3>
|
||||||
<ul>
|
<ul>
|
||||||
|
@ -592,6 +594,9 @@
|
||||||
You have {{formatWhole(player.ps.points)}} Phantom Souls, {{getLayerEffDesc("ps")}}
|
You have {{formatWhole(player.ps.points)}} Phantom Souls, {{getLayerEffDesc("ps")}}
|
||||||
</div>
|
</div>
|
||||||
<div v-if="layer=='hs'">
|
<div v-if="layer=='hs'">
|
||||||
|
<table>
|
||||||
|
<tr v-if="milestoneShown(player.hs.best.gte(2e4))"><td v-bind:class="{ milestone: player.hs.best.lt(2e4), milestoneDone: player.hs.best.gte(2e4) }"><h3>20,000 Hyperspace Energy</h3><br>Gain 10% of Super-Prestige Points gain every second</td></tr>
|
||||||
|
</table>
|
||||||
<br><br>
|
<br><br>
|
||||||
You have {{formatWhole(player.ba.points)}} Balance Energy
|
You have {{formatWhole(player.ba.points)}} Balance Energy
|
||||||
<br>
|
<br>
|
||||||
|
@ -606,24 +611,44 @@
|
||||||
<br>
|
<br>
|
||||||
Get {{formatWhole(player.g.points)}} / {{formatWhole(HYPERSPACE.nextCapReq())}} Generators to increase the cap of Super-Upgrades
|
Get {{formatWhole(player.g.points)}} / {{formatWhole(HYPERSPACE.nextCapReq())}} Generators to increase the cap of Super-Upgrades
|
||||||
</div>
|
</div>
|
||||||
|
<div v-if="layer=='i'">
|
||||||
|
<table>
|
||||||
|
<tr v-if="milestoneShown(player.i.best.gte(3))"><td v-bind:class="{ milestone: player.i.best.lt(3), milestoneDone: player.i.best.gte(3) }"><h3>3 Imperium Bricks</h3><br>You can max out Imperium Bricks</td></tr>
|
||||||
|
</table>
|
||||||
<br><br>
|
<br><br>
|
||||||
<div class="upgTable">
|
You have {{formatWhole(player.i.lifeBricks)}} Life Bricks<br>
|
||||||
|
Next Life Brick is at {{format(player.l.power)}} / {{format(IMPERIUM.lifeReq())}} Life Power
|
||||||
|
<br><br>
|
||||||
|
<button v-on:click="IMPERIUM.build()" v-bind:class="{ upgBig: true, i: true, can: IMPERIUM.canBuild(), locked: !IMPERIUM.canBuild() }">
|
||||||
|
<span v-if="tmp.s.sbUnl.lt(SPACE_BUILDINGS.max)">Build Space Building {{formatWhole(tmp.s.sbUnl.add(1))}}</span>
|
||||||
|
<span v-if="tmp.s.sbUnl.gte(SPACE_BUILDINGS.max)">Enhance<sup v-if="tmp.s.sbUnl.div(SPACE_BUILDINGS.max).gte(2)">{{formatWhole(tmp.s.sbUnl.div(SPACE_BUILDINGS.max).floor())}}</sup> Space Building {{formatWhole(tmp.s.sbUnl.sub(tmp.s.sbUnl.div(SPACE_BUILDINGS.max).floor().times(SPACE_BUILDINGS.max)).add(1))}}</span>
|
||||||
|
<br>
|
||||||
|
Built Buildings: {{formatWhole(player.i.extraBuildings)}}
|
||||||
|
<br><br>
|
||||||
|
<span v-if="!player.i.building">Cost: {{0}} Imperium Bricks & {{0}} Life Bricks</span>
|
||||||
|
<span v-if="player.i.building">Progress: {{format(player.i.progress * 100)}}%<br><br>Click to cancel building</span>
|
||||||
|
</button>
|
||||||
|
<br>
|
||||||
|
Your Work is currently {{format(tmp.i.work)}}, which reduces the gain power of rows 1 - 5 by {{format(tmp.i.workEff)}}x
|
||||||
|
</div>
|
||||||
|
<br><br>
|
||||||
|
<div v-if="LAYER_UPGS[layer]" class="upgTable">
|
||||||
<div v-for="row in LAYER_UPGS[layer].rows" class="upgRow">
|
<div v-for="row in LAYER_UPGS[layer].rows" class="upgRow">
|
||||||
<div v-for="col in LAYER_UPGS[layer].cols" class="upgAlign">
|
<div v-for="col in LAYER_UPGS[layer].cols" class="upgAlign">
|
||||||
<button v-if="LAYER_UPGS[layer][row*10+col].unl()" v-on:click="buyUpg(layer, row*10+col)" v-bind:class="{ [layer]: true, upg: true, bought: player[layer].upgrades.includes(row*10+col), locked: (player[layer].points.lt(LAYER_UPGS[layer][row*10+col].cost)&&!player[layer].upgrades.includes(row*10+col)), can: (player[layer].points.gte(LAYER_UPGS[layer][row*10+col].cost)&&!player[layer].upgrades.includes(row*10+col)) }">{{ LAYER_UPGS[layer][row*10+col].desc }}<span v-if="LAYER_UPGS[layer][row*10+col].currently"><br>Currently: {{LAYER_UPGS[layer][row*10+col].effDisp(LAYER_UPGS[layer][row*10+col].currently())}}</span><br><br>Cost: {{ formatWhole(LAYER_UPGS[layer][row*10+col].cost) }} {{LAYER_RES[layer]}}</button>
|
<button v-if="LAYER_UPGS[layer][row*10+col].unl()" v-on:click="buyUpg(layer, row*10+col)" v-bind:class="{ [layer]: true, upg: true, bought: player[layer].upgrades.includes(row*10+col), locked: (player[layer].points.lt(LAYER_UPGS[layer][row*10+col].cost)&&!player[layer].upgrades.includes(row*10+col)), can: (player[layer].points.gte(LAYER_UPGS[layer][row*10+col].cost)&&!player[layer].upgrades.includes(row*10+col)) }">{{ LAYER_UPGS[layer][row*10+col].desc }}<span v-if="LAYER_UPGS[layer][row*10+col].currently"><br>Currently: {{LAYER_UPGS[layer][row*10+col].effDisp(LAYER_UPGS[layer][row*10+col].currently())}}</span><br><br>Cost: {{ formatWhole(LAYER_UPGS[layer][row*10+col].cost) }} {{LAYER_RES[layer]}}</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div v-if="layer=='h'" class="upgTable">
|
<div v-if="LAYER_CHALLS[layer]" class="upgTable">
|
||||||
<div v-for="row in H_CHALLS.rows" class="upgRow">
|
<div v-for="row in LAYER_CHALLS[layer].rows" class="upgRow">
|
||||||
<div v-for="col in H_CHALLS.cols">
|
<div v-for="col in LAYER_CHALLS[layer].cols">
|
||||||
<div v-if="H_CHALLS[row*10+col].unl()" v-bind:class="{hChall: true, done: player.h.challs.includes(row*10+col), canComplete: (player.points.gte(H_CHALLS[row*10+col].goal)&&tmp.hcActive[row*10+col]&&!player.h.challs.includes(row*10+col))}">
|
<div v-if="LAYER_CHALLS[layer][row*10+col].unl()" v-bind:class="{hChall: true, done: player[layer].challs.includes(row*10+col), canComplete: (player.points.gte(LAYER_CHALLS[layer][row*10+col].goal)&&tmp.challActive[layer][row*10+col]&&!player[layer].challs.includes(row*10+col))}">
|
||||||
<br><h3>{{H_CHALLS[row*10+col].name}}</h3><br><br>
|
<br><h3>{{LAYER_CHALLS[layer][row*10+col].name}}</h3><br><br>
|
||||||
<button class="longUpg can h" v-on:click="startHindrance(row*10+col)">{{player.h.active==(row*10+col)?(player.points.gte(H_CHALLS[row*10+col].goal)?"Finish":"Exit Early"):(player.h.challs.includes(row*10+col)?"Completed":"Start")}}</button><br><br>
|
<button v-bind:class="{ longUpg: true, can: true, [layer]: true }" v-on:click="startChall(layer, row*10+col)">{{player[layer].active==(row*10+col)?(player.points.gte(LAYER_CHALLS[layer][row*10+col].goal)?"Finish":"Exit Early"):(player[layer].challs.includes(row*10+col)?"Completed":"Start")}}</button><br><br>
|
||||||
{{H_CHALLS[row*10+col].desc}}<br>
|
{{LAYER_CHALLS[layer][row*10+col].desc}}<br>
|
||||||
Goal: {{format(H_CHALLS[row*10+col].goal)}} Points<br>
|
Goal: {{format(LAYER_CHALLS[layer][row*10+col].goal)}} Points<br>
|
||||||
Reward: {{H_CHALLS[row*10+col].reward}}<br>
|
Reward: {{LAYER_CHALLS[layer][row*10+col].reward}}<br>
|
||||||
<span v-if="H_CHALLS[row*10+col].effDisp!==undefined">Currently: {{H_CHALLS[row*10+col].effDisp(H_CHALLS[row*10+col].currently())}}</span>
|
<span v-if="LAYER_CHALLS[layer][row*10+col].effDisp!==undefined">Currently: {{LAYER_CHALLS[layer][row*10+col].effDisp(LAYER_CHALLS[layer][row*10+col].currently())}}</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
628
js/game.js
628
js/game.js
File diff suppressed because it is too large
Load diff
58
js/temp.js
58
js/temp.js
|
@ -1,9 +1,10 @@
|
||||||
function updateTemp() {
|
function updateTemp() {
|
||||||
if (!tmp.hcActive) tmp.hcActive = {}
|
if (!tmp.challActive) {
|
||||||
for (let row=1;row<=H_CHALLS.rows;row++) {
|
let LAYERS_WITH_CHALLS = Object.keys(LAYER_CHALLS)
|
||||||
for (let col=1;col<=H_CHALLS.cols;col++) {
|
tmp.challActive = {}
|
||||||
let id = row*10+col
|
for (let i = 0; i < LAYERS_WITH_CHALLS.length; i++) {
|
||||||
tmp.hcActive[id] = HCActive(id)
|
tmp.challActive[LAYERS_WITH_CHALLS[i]] = {}
|
||||||
|
updateChallTemp(LAYERS_WITH_CHALLS[i])
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -39,7 +40,7 @@ function updateTemp() {
|
||||||
tmp.enhEff = getEnhancerEff()
|
tmp.enhEff = getEnhancerEff()
|
||||||
tmp.enhEff2 = getEnhancerEff2()
|
tmp.enhEff2 = getEnhancerEff2()
|
||||||
tmp.subbedEnh = new Decimal(0)
|
tmp.subbedEnh = new Decimal(0)
|
||||||
if (tmp.hcActive ? tmp.hcActive[52] : true) {
|
if (tmp.challActive ? tmp.challActive.h[52] : true) {
|
||||||
tmp.subbedEnh = tmp.subbedEnh.plus(new Decimal(player.h.time).times(40).plus(1).log10().pow(10).max(10)).round()
|
tmp.subbedEnh = tmp.subbedEnh.plus(new Decimal(player.h.time).times(40).plus(1).log10().pow(10).max(10)).round()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -49,18 +50,23 @@ function updateTemp() {
|
||||||
tmp.mttb = multiplyToTimeBase()
|
tmp.mttb = multiplyToTimeBase()
|
||||||
|
|
||||||
if (layerUnl("s")) {
|
if (layerUnl("s")) {
|
||||||
if (!tmp.s) tmp.s = {
|
tmp.s = {
|
||||||
sb: {},
|
sb: {},
|
||||||
sbEff: {}
|
sbEff: {}
|
||||||
}
|
}
|
||||||
var data = tmp.s
|
var data = tmp.s
|
||||||
|
|
||||||
for (let i=1;i<=MAX_BUILDINGS;i++) {
|
data.sbUnl = getSpaceBuildingsUnl()
|
||||||
tmp.s.sb[i] = fixValue(player.s.buildings[i])
|
data.trueSbUnl = Decimal.min(data.sbUnl, SPACE_BUILDINGS.max).floor().toNumber()
|
||||||
tmp.s.sbEff[i] = getSpaceBuildingEff(i)
|
data.sbCostMult = getSpaceBuildingCostMult()
|
||||||
|
data.sbCostMod = getSpaceBuildingCostMod()
|
||||||
|
data.sbExtra = getExtraBuildingLevels()
|
||||||
|
data.sbPow = getSpaceBuildingPow()
|
||||||
|
data.sbSum = sumValues(player.s.buildings)
|
||||||
|
for (let i=data.trueSbUnl;i>=1;i--) {
|
||||||
|
data.sb[i] = fixValue(player.s.buildings[i])
|
||||||
|
data.sbEff[i] = getSpaceBuildingEff(i)
|
||||||
}
|
}
|
||||||
tmp.s.sbUnl = getSpaceBuildingsUnl()
|
|
||||||
tmp.s.trueSbUnl = Decimal.min(tmp.s.sbUnl, MAX_BUILDINGS).floor().toNumber()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
tmp.quirkEff = getQuirkEnergyEff()
|
tmp.quirkEff = getQuirkEnergyEff()
|
||||||
|
@ -96,6 +102,7 @@ function updateTemp() {
|
||||||
data.lbEff[i] = data2[i].eff(data.lb[i].times(data.lpEff))
|
data.lbEff[i] = data2[i].eff(data.lb[i].times(data.lpEff))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (layerUnl("hs")) {
|
if (layerUnl("hs")) {
|
||||||
if (!tmp.hs) tmp.hs = {
|
if (!tmp.hs) tmp.hs = {
|
||||||
su: {},
|
su: {},
|
||||||
|
@ -105,6 +112,31 @@ function updateTemp() {
|
||||||
var data2 = HYPERSPACE
|
var data2 = HYPERSPACE
|
||||||
|
|
||||||
data.eff = data2.eff()
|
data.eff = data2.eff()
|
||||||
for (let i=1;i<=MAX_BUILDINGS;i++) data.su[i] = fixValue(player.hs.superUpgrades[i])
|
for (let i=1;i<=tmp.s.trueSbUnl;i++) data.su[i] = fixValue(player.hs.superUpgrades[i])
|
||||||
|
}
|
||||||
|
|
||||||
|
if (layerUnl("i")) {
|
||||||
|
if (!tmp.i) tmp.i = {}
|
||||||
|
var data = tmp.i
|
||||||
|
|
||||||
|
data.compressed = tmp.s.sbUnl.sub(SPACE_BUILDINGS.max).max(0).floor().toNumber()
|
||||||
|
data.work = new Decimal(1)
|
||||||
|
if (player.i.building) data.work = data.work.add(player.i.extraBuildings.add(1).log10().add(2).div(5))
|
||||||
|
data.workEff = Decimal.pow(2, data.work.sub(1))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function updateChallTemp(layer) {
|
||||||
|
if (player[layer] === undefined) return
|
||||||
|
|
||||||
|
let data = tmp.challActive[layer]
|
||||||
|
let data2 = LAYER_CHALLS[layer]
|
||||||
|
let customActive = data2.active !== undefined
|
||||||
|
for (let row = 1; row <= data2.rows; row++) {
|
||||||
|
for (let col = 1; col <= data2.cols; col++) {
|
||||||
|
let id = row * 10 + col
|
||||||
|
if (customActive ? data2.active(id) : player[layer].active == id) data[id] = 1
|
||||||
|
else delete data[id]
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
9
js/v.js
9
js/v.js
|
@ -48,8 +48,7 @@ function loadVue() {
|
||||||
buyBuilding,
|
buyBuilding,
|
||||||
getQuirkLayerCost,
|
getQuirkLayerCost,
|
||||||
buyQuirkLayer,
|
buyQuirkLayer,
|
||||||
startHindrance,
|
startChall,
|
||||||
HCActive,
|
|
||||||
milestoneShown,
|
milestoneShown,
|
||||||
destroyBuilding,
|
destroyBuilding,
|
||||||
getSpellDesc,
|
getSpellDesc,
|
||||||
|
@ -64,10 +63,12 @@ function loadVue() {
|
||||||
LAYER_EFFS,
|
LAYER_EFFS,
|
||||||
LAYER_AMT_NAMES,
|
LAYER_AMT_NAMES,
|
||||||
LAYER_RES_CEIL,
|
LAYER_RES_CEIL,
|
||||||
H_CHALLS,
|
LAYER_CHALLS,
|
||||||
|
SPACE_BUILDINGS,
|
||||||
SPELL_NAMES,
|
SPELL_NAMES,
|
||||||
LIFE_BOOSTERS,
|
LIFE_BOOSTERS,
|
||||||
HYPERSPACE
|
HYPERSPACE,
|
||||||
|
IMPERIUM
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
}
|
}
|
Loading…
Reference in a new issue