1
0
Fork 0
mirror of https://github.com/Acamaeda/The-Modding-Tree.git synced 2024-11-24 09:21:46 +00:00
Balanced up to Space Building 6
This commit is contained in:
Aarex Tiaokhiao 2020-09-13 22:41:42 -04:00
parent a160f86cff
commit 690159cd41
4 changed files with 586 additions and 400 deletions

View file

@ -25,7 +25,9 @@
<button class="back" onclick="showTab('tree')"></button><br>
<h3>v1.1: The Life Update</h3>
<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>
<h3>v1.0 Patch 1</h3>
<ul>
@ -592,6 +594,9 @@
You have {{formatWhole(player.ps.points)}} Phantom Souls, {{getLayerEffDesc("ps")}}
</div>
<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>
You have {{formatWhole(player.ba.points)}} Balance Energy
<br>
@ -606,24 +611,44 @@
<br>
Get {{formatWhole(player.g.points)}} / {{formatWhole(HYPERSPACE.nextCapReq())}} Generators to increase the cap of Super-Upgrades
</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>
<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="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>
</div>
</div>
</div>
<div v-if="layer=='h'" class="upgTable">
<div v-for="row in H_CHALLS.rows" class="upgRow">
<div v-for="col in H_CHALLS.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))}">
<br><h3>{{H_CHALLS[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>
{{H_CHALLS[row*10+col].desc}}<br>
Goal: {{format(H_CHALLS[row*10+col].goal)}} Points<br>
Reward: {{H_CHALLS[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>
<div v-if="LAYER_CHALLS[layer]" class="upgTable">
<div v-for="row in LAYER_CHALLS[layer].rows" class="upgRow">
<div v-for="col in LAYER_CHALLS[layer].cols">
<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>{{LAYER_CHALLS[layer][row*10+col].name}}</h3><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>
{{LAYER_CHALLS[layer][row*10+col].desc}}<br>
Goal: {{format(LAYER_CHALLS[layer][row*10+col].goal)}} Points<br>
Reward: {{LAYER_CHALLS[layer][row*10+col].reward}}<br>
<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>

File diff suppressed because it is too large Load diff

View file

@ -1,9 +1,10 @@
function updateTemp() {
if (!tmp.hcActive) tmp.hcActive = {}
for (let row=1;row<=H_CHALLS.rows;row++) {
for (let col=1;col<=H_CHALLS.cols;col++) {
let id = row*10+col
tmp.hcActive[id] = HCActive(id)
if (!tmp.challActive) {
let LAYERS_WITH_CHALLS = Object.keys(LAYER_CHALLS)
tmp.challActive = {}
for (let i = 0; i < LAYERS_WITH_CHALLS.length; i++) {
tmp.challActive[LAYERS_WITH_CHALLS[i]] = {}
updateChallTemp(LAYERS_WITH_CHALLS[i])
}
}
@ -39,7 +40,7 @@ function updateTemp() {
tmp.enhEff = getEnhancerEff()
tmp.enhEff2 = getEnhancerEff2()
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()
}
@ -49,18 +50,23 @@ function updateTemp() {
tmp.mttb = multiplyToTimeBase()
if (layerUnl("s")) {
if (!tmp.s) tmp.s = {
tmp.s = {
sb: {},
sbEff: {}
}
var data = tmp.s
for (let i=1;i<=MAX_BUILDINGS;i++) {
tmp.s.sb[i] = fixValue(player.s.buildings[i])
tmp.s.sbEff[i] = getSpaceBuildingEff(i)
data.sbUnl = getSpaceBuildingsUnl()
data.trueSbUnl = Decimal.min(data.sbUnl, SPACE_BUILDINGS.max).floor().toNumber()
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()
@ -96,6 +102,7 @@ function updateTemp() {
data.lbEff[i] = data2[i].eff(data.lb[i].times(data.lpEff))
}
}
if (layerUnl("hs")) {
if (!tmp.hs) tmp.hs = {
su: {},
@ -105,6 +112,31 @@ function updateTemp() {
var data2 = HYPERSPACE
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]
}
}
}

View file

@ -48,8 +48,7 @@ function loadVue() {
buyBuilding,
getQuirkLayerCost,
buyQuirkLayer,
startHindrance,
HCActive,
startChall,
milestoneShown,
destroyBuilding,
getSpellDesc,
@ -64,10 +63,12 @@ function loadVue() {
LAYER_EFFS,
LAYER_AMT_NAMES,
LAYER_RES_CEIL,
H_CHALLS,
LAYER_CHALLS,
SPACE_BUILDINGS,
SPELL_NAMES,
LIFE_BOOSTERS,
HYPERSPACE
HYPERSPACE,
IMPERIUM
},
})
}