mirror of
https://github.com/Acamaeda/The-Modding-Tree.git
synced 2024-11-22 00:21:32 +00:00
Beta v1.1 Alpha 8
This commit is contained in:
parent
b9f3b5958d
commit
ea3e2cd4f1
4 changed files with 77 additions and 18 deletions
|
@ -1,2 +1,2 @@
|
||||||
# Prestige-Tree
|
# Prestige-Tree
|
||||||
A tree of prestige upgrades (alpha)
|
A tree of prestige upgrades
|
||||||
|
|
10
index.html
10
index.html
|
@ -16,6 +16,11 @@
|
||||||
<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.1 Alpha 8</h3>
|
||||||
|
<ul>
|
||||||
|
<li>Several bugfixes</li>
|
||||||
|
<li>Balanced up to 1e9 Hindrance Spirit & Quirks, and 1e25,750 Points</li>
|
||||||
|
</ul><br>
|
||||||
<h3>Beta v1.1 Alpha 7</h3>
|
<h3>Beta v1.1 Alpha 7</h3>
|
||||||
<ul>
|
<ul>
|
||||||
<li>Reversed the order of the changelog</li>
|
<li>Reversed the order of the changelog</li>
|
||||||
|
@ -119,7 +124,8 @@
|
||||||
<div v-if="player.tab=='credits'" class="col right">
|
<div v-if="player.tab=='credits'" 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>
|
||||||
This game uses <a href="https://github.com/Patashu/break_eternity.js/tree/master" target="_blank">break_eternity.js</a> by Patashu.<br>
|
This game uses <a href="https://github.com/Patashu/break_eternity.js/tree/master" target="_blank">break_eternity.js</a> by Patashu.<br>
|
||||||
This game was inspired by a post shown to me by Crimson406<br>
|
Made by Jacorb<br>
|
||||||
|
Idea by papyrus (on discord)<br>
|
||||||
Note: If anyone wishes to make a mod of this game, that is perfectly fine with me, just make sure to name it something different (ex: Prestige Tree NG+) and to let me know on <a href="https://discord.gg/wwQfgPa" target="_blank">my discord</a>.
|
Note: If anyone wishes to make a mod of this game, that is perfectly fine with me, just make sure to name it something different (ex: Prestige Tree NG+) and to let me know on <a href="https://discord.gg/wwQfgPa" target="_blank">my discord</a>.
|
||||||
</div>
|
</div>
|
||||||
<div v-if="player.tab=='info'" class="col right">
|
<div v-if="player.tab=='info'" class="col right">
|
||||||
|
@ -280,7 +286,7 @@
|
||||||
<div v-if="layer=='h'" class="upgTable">
|
<div v-if="layer=='h'" class="upgTable">
|
||||||
<div v-for="row in H_CHALLS.rows" class="upgRow">
|
<div v-for="row in H_CHALLS.rows" class="upgRow">
|
||||||
<div v-for="col in H_CHALLS.cols">
|
<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)}">
|
<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>
|
<br><h3>{{H_CHALLS[row*10+col].name}}</h3><br><br>
|
||||||
<button class="longUpg can h" v-on:click="startHindrance(row*10+col)">{{tmp.hcActive[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 class="longUpg can h" v-on:click="startHindrance(row*10+col)">{{tmp.hcActive[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>
|
{{H_CHALLS[row*10+col].desc}}<br>
|
||||||
|
|
73
js/game.js
73
js/game.js
|
@ -252,7 +252,11 @@ const LAYER_UPGS = {
|
||||||
desc: "Prestige Point gain is boosted by your Prestige Point amount.",
|
desc: "Prestige Point gain is boosted by your Prestige Point amount.",
|
||||||
cost: new Decimal("1e4450"),
|
cost: new Decimal("1e4450"),
|
||||||
unl: function() { return player.e.upgrades.includes(33) },
|
unl: function() { return player.e.upgrades.includes(33) },
|
||||||
currently: function() { return player.p.points.plus(1).log10().plus(1).pow(player.p.points.plus(1).log10().div(200).plus(1)).pow(player.p.upgrades.includes(32) ? LAYER_UPGS.p[32].currently() : 1) },
|
currently: function() {
|
||||||
|
let ret = player.p.points.plus(1).log10().plus(1).pow(player.p.points.plus(1).log10().div(200).plus(1)).pow(player.p.upgrades.includes(32) ? LAYER_UPGS.p[32].currently() : 1)
|
||||||
|
if (ret.gte("1e1000")) ret = ret.log10().times("1e997")
|
||||||
|
return ret;
|
||||||
|
},
|
||||||
effDisp: function(x) { return format(x)+"x" },
|
effDisp: function(x) { return format(x)+"x" },
|
||||||
},
|
},
|
||||||
32: {
|
32: {
|
||||||
|
@ -398,7 +402,11 @@ const LAYER_UPGS = {
|
||||||
desc: "Unspent Enhance Points boost Prestige Point gain.",
|
desc: "Unspent Enhance Points boost Prestige Point gain.",
|
||||||
cost: new Decimal(150),
|
cost: new Decimal(150),
|
||||||
unl: function() { return player.e.unl&&player.e.best.gte(40) },
|
unl: function() { return player.e.unl&&player.e.best.gte(40) },
|
||||||
currently: function() { return player.e.points.plus(1).pow((player.e.upgrades.includes(15)&&!(tmp.hcActive?tmp.hcActive[12]:true))?3.25:1.5) },
|
currently: function() {
|
||||||
|
let ret = player.e.points.plus(1).pow((player.e.upgrades.includes(15)&&!(tmp.hcActive?tmp.hcActive[12]:true))?3.25:1.5)
|
||||||
|
if (ret.gte("1e1500")) ret = ret.sqrt().times("1e750")
|
||||||
|
return ret
|
||||||
|
},
|
||||||
effDisp: function(x) { return format(x)+"x" },
|
effDisp: function(x) { return format(x)+"x" },
|
||||||
},
|
},
|
||||||
13: {
|
13: {
|
||||||
|
@ -461,7 +469,7 @@ const LAYER_UPGS = {
|
||||||
cost: new Decimal(7.5e108),
|
cost: new Decimal(7.5e108),
|
||||||
unl: function() { return player.e.upgrades.includes(25)&&player.sb.unl },
|
unl: function() { return player.e.upgrades.includes(25)&&player.sb.unl },
|
||||||
currently: function() {
|
currently: function() {
|
||||||
let ret = Decimal.pow(10, player.e.points.plus(1).log10().pow(0.085)).div(10).max(1);
|
let ret = Decimal.pow(10, player.e.points.plus(1).log10().pow(0.085)).div(10).max(1).min(10);
|
||||||
return ret;
|
return ret;
|
||||||
},
|
},
|
||||||
effDisp: function(x) { return format(x)+"x" },
|
effDisp: function(x) { return format(x)+"x" },
|
||||||
|
@ -524,7 +532,11 @@ const LAYER_UPGS = {
|
||||||
desc: "Time Energy production & limit are boosted by your Enhance Points.",
|
desc: "Time Energy production & limit are boosted by your Enhance Points.",
|
||||||
cost: new Decimal(5),
|
cost: new Decimal(5),
|
||||||
unl: function() { return player.t.upgrades.includes(14)&&player.e.unl },
|
unl: function() { return player.t.upgrades.includes(14)&&player.e.unl },
|
||||||
currently: function() { return player.e.points.plus(1).pow(0.8/(1+player.t.order)) },
|
currently: function() {
|
||||||
|
let ret = player.e.points.plus(1).pow(0.8/(1+player.t.order))
|
||||||
|
if (ret.gte("1e400")) ret = ret.log10().times(Decimal.div("1e400", 400)).min(ret)
|
||||||
|
return ret;
|
||||||
|
},
|
||||||
effDisp: function(x) { return format(x)+"x" },
|
effDisp: function(x) { return format(x)+"x" },
|
||||||
},
|
},
|
||||||
23: {
|
23: {
|
||||||
|
@ -665,7 +677,7 @@ const LAYER_UPGS = {
|
||||||
cols: 0,
|
cols: 0,
|
||||||
},
|
},
|
||||||
q: {
|
q: {
|
||||||
rows: 2,
|
rows: 3,
|
||||||
cols: 3,
|
cols: 3,
|
||||||
11: {
|
11: {
|
||||||
desc: "Quirks & Hindrance Spirit boost Point, Prestige Point, and Enhance Point gain.",
|
desc: "Quirks & Hindrance Spirit boost Point, Prestige Point, and Enhance Point gain.",
|
||||||
|
@ -706,6 +718,21 @@ const LAYER_UPGS = {
|
||||||
cost: new Decimal(5000),
|
cost: new Decimal(5000),
|
||||||
unl: function() { return player.q.upgrades.includes(21)||player.q.upgrades.includes(22) },
|
unl: function() { return player.q.upgrades.includes(21)||player.q.upgrades.includes(22) },
|
||||||
},
|
},
|
||||||
|
31: {
|
||||||
|
desc: "Get 1 of each Space Building for free.",
|
||||||
|
cost: new Decimal(150000),
|
||||||
|
unl: function() { return player.q.upgrades.includes(21)&&player.q.upgrades.includes(22) },
|
||||||
|
},
|
||||||
|
32: {
|
||||||
|
desc: "The Quirk Energy effect is squared.",
|
||||||
|
cost: new Decimal(500000),
|
||||||
|
unl: function() { return player.q.upgrades.includes(23)||player.q.upgrades.includes(31) },
|
||||||
|
},
|
||||||
|
33: {
|
||||||
|
desc: "???",
|
||||||
|
cost: new Decimal(1/0),
|
||||||
|
unl: function() { return false },
|
||||||
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1240,6 +1267,8 @@ function getPointGen() {
|
||||||
if (player.s.unl && tmp.spaceBuildEff) gain = gain.times(tmp.spaceBuildEff[1])
|
if (player.s.unl && tmp.spaceBuildEff) gain = gain.times(tmp.spaceBuildEff[1])
|
||||||
if (player.q.unl && tmp.quirkEff) gain = gain.times(tmp.quirkEff)
|
if (player.q.unl && tmp.quirkEff) gain = gain.times(tmp.quirkEff)
|
||||||
if (player.q.upgrades.includes(11)) gain = gain.times(LAYER_UPGS.q[11].currently())
|
if (player.q.upgrades.includes(11)) gain = gain.times(LAYER_UPGS.q[11].currently())
|
||||||
|
|
||||||
|
if (tmp.hcActive ? tmp.hcActive[31] : true) gain = gain.tetrate(0.1)
|
||||||
return gain
|
return gain
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1320,6 +1349,7 @@ function getEnhancerPow() {
|
||||||
let pow = new Decimal(1)
|
let pow = new Decimal(1)
|
||||||
if (player.e.upgrades.includes(25)&&!(tmp.hcActive?tmp.hcActive[12]:true)) pow = pow.times(LAYER_UPGS.e[25].currently())
|
if (player.e.upgrades.includes(25)&&!(tmp.hcActive?tmp.hcActive[12]:true)) pow = pow.times(LAYER_UPGS.e[25].currently())
|
||||||
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)
|
||||||
return pow
|
return pow
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1438,6 +1468,7 @@ function getSpaceBuildingCostMod() {
|
||||||
function getSpaceBuildingCost(x) {
|
function getSpaceBuildingCost(x) {
|
||||||
let inputVal = new Decimal([1e3,1e10,1e25,1e48,1e100][x-1])
|
let inputVal = new Decimal([1e3,1e10,1e25,1e48,1e100][x-1])
|
||||||
let bought = player.s.buildings[x]
|
let bought = player.s.buildings[x]
|
||||||
|
if (bought.gte(100)) bought = bought.pow(2).div(100)
|
||||||
let cost = Decimal.pow(inputVal, bought.times(getSpaceBuildingCostMod()).pow(1.35)).times(inputVal).times((bought.gt(0)||x>1)?1:0)
|
let cost = Decimal.pow(inputVal, bought.times(getSpaceBuildingCostMod()).pow(1.35)).times(inputVal).times((bought.gt(0)||x>1)?1:0)
|
||||||
return cost
|
return cost
|
||||||
}
|
}
|
||||||
|
@ -1456,6 +1487,7 @@ function getExtraBuildingLevels(x) {
|
||||||
let lvl = new Decimal(0)
|
let lvl = new Decimal(0)
|
||||||
if (player.s.upgrades.includes(11)&&!(tmp.hcActive?tmp.hcActive[12]:true)) lvl = lvl.plus(1);
|
if (player.s.upgrades.includes(11)&&!(tmp.hcActive?tmp.hcActive[12]:true)) lvl = lvl.plus(1);
|
||||||
if (player.s.upgrades.includes(14)&&!(tmp.hcActive?tmp.hcActive[12]:true)) lvl = lvl.plus(1);
|
if (player.s.upgrades.includes(14)&&!(tmp.hcActive?tmp.hcActive[12]:true)) lvl = lvl.plus(1);
|
||||||
|
if (player.q.upgrades.includes(31)) lvl = lvl.plus(1);
|
||||||
if (x<5) lvl = lvl.plus(tmp.spaceBuildEff[5])
|
if (x<5) lvl = lvl.plus(tmp.spaceBuildEff[5])
|
||||||
return lvl
|
return lvl
|
||||||
}
|
}
|
||||||
|
@ -1576,6 +1608,7 @@ function getQuirkEnergyEff() {
|
||||||
}
|
}
|
||||||
eff = eff.pow(mod)
|
eff = eff.pow(mod)
|
||||||
}
|
}
|
||||||
|
if (player.q.upgrades.includes(32)) eff = eff.pow(2)
|
||||||
return eff;
|
return eff;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1588,7 +1621,7 @@ function buyQuirkLayer() {
|
||||||
}
|
}
|
||||||
|
|
||||||
const H_CHALLS = {
|
const H_CHALLS = {
|
||||||
rows: 2,
|
rows: 3,
|
||||||
cols: 2,
|
cols: 2,
|
||||||
11: {
|
11: {
|
||||||
name: "Skip the Second",
|
name: "Skip the Second",
|
||||||
|
@ -1622,6 +1655,20 @@ const H_CHALLS = {
|
||||||
goal: new Decimal("1e4600"),
|
goal: new Decimal("1e4600"),
|
||||||
reward: "Add 0.25 to the Super-Booster base.",
|
reward: "Add 0.25 to the Super-Booster base.",
|
||||||
},
|
},
|
||||||
|
31: {
|
||||||
|
name: "Flattened Curve",
|
||||||
|
desc: "Point generation is tetrated by 0.1",
|
||||||
|
unl: function() { return player.h.challs.includes(21)||player.h.challs.includes(22) },
|
||||||
|
goal: new Decimal(1e208),
|
||||||
|
reward: "Enhancers are twice as strong.",
|
||||||
|
},
|
||||||
|
32: {
|
||||||
|
name: "???",
|
||||||
|
desc: "???",
|
||||||
|
unl: function() { return false },
|
||||||
|
goal: new Decimal(1/0),
|
||||||
|
reward: "???",
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
function HCActive(x) {
|
function HCActive(x) {
|
||||||
|
@ -1642,20 +1689,20 @@ function startHindrance(x) {
|
||||||
function gameLoop(diff) {
|
function gameLoop(diff) {
|
||||||
if (isNaN(diff)) diff = 0;
|
if (isNaN(diff)) diff = 0;
|
||||||
player.timePlayed += diff
|
player.timePlayed += diff
|
||||||
if (player.p.upgrades.includes(11)) player.points = player.points.plus(tmp.pointGen.times(diff))
|
if (player.p.upgrades.includes(11)) player.points = player.points.plus(tmp.pointGen.times(diff)).max(0)
|
||||||
if (player.g.unl) player.g.power = player.g.power.plus(tmp.layerEffs.g.times(diff))
|
if (player.g.unl) player.g.power = player.g.power.plus(tmp.layerEffs.g.times(diff)).max(0)
|
||||||
if (player.g.best.gte(10)) player.p.points = player.p.points.plus(tmp.resetGain.p.times(diff))
|
if (player.g.best.gte(10)) player.p.points = player.p.points.plus(tmp.resetGain.p.times(diff)).max(0)
|
||||||
if (player.t.unl) {
|
if (player.t.unl) {
|
||||||
let data = tmp.layerEffs.t
|
let data = tmp.layerEffs.t
|
||||||
player.t.energy = player.t.energy.plus(data.gain.times(diff)).min(data.limit)
|
player.t.energy = player.t.energy.plus(data.gain.times(diff)).min(data.limit).max(0)
|
||||||
}
|
}
|
||||||
if (player.q.unl) {
|
if (player.q.unl) {
|
||||||
let mult = getQuirkLayerMult()
|
let mult = getQuirkLayerMult()
|
||||||
player.q.time = player.q.time.plus(mult.times(diff))
|
player.q.time = player.q.time.plus(mult.times(diff)).max(0)
|
||||||
let exp = getQuirkEnergyGainExp()
|
let exp = getQuirkEnergyGainExp()
|
||||||
if (exp.gte(0)) player.q.energy = player.q.energy.plus(player.q.time.pow(exp).times(mult).times(diff))
|
if (exp.gte(0)) player.q.energy = player.q.energy.plus(player.q.time.pow(exp).times(mult).times(diff)).max(0)
|
||||||
}
|
}
|
||||||
if (player.q.best.gte(15)) player.e.points = player.e.points.plus(tmp.resetGain.e.times(diff))
|
if (player.q.best.gte(15)) player.e.points = player.e.points.plus(tmp.resetGain.e.times(diff)).max(0)
|
||||||
|
|
||||||
if (player.b.auto&&player.t.best.gte(5)) doReset("b")
|
if (player.b.auto&&player.t.best.gte(5)) doReset("b")
|
||||||
if (player.g.auto&&player.s.best.gte(5)) doReset("g")
|
if (player.g.auto&&player.s.best.gte(5)) doReset("g")
|
||||||
|
|
10
style.css
10
style.css
|
@ -219,8 +219,8 @@ h1, h2 {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
top: 0px;
|
top: 0px;
|
||||||
left: 0px;
|
left: 0px;
|
||||||
height: 40px;
|
height: 50px;
|
||||||
width: 40px;
|
width: 50px;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -366,6 +366,12 @@ ul {
|
||||||
color: #038c2c;
|
color: #038c2c;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.hChall.canComplete {
|
||||||
|
background-color: #93f0fa;
|
||||||
|
border: 4px solid #03858f;
|
||||||
|
color: #03858f;
|
||||||
|
}
|
||||||
|
|
||||||
[tooltip] {
|
[tooltip] {
|
||||||
position: relative;
|
position: relative;
|
||||||
z-index: 2;
|
z-index: 2;
|
||||||
|
|
Loading…
Reference in a new issue