mirror of
https://github.com/Acamaeda/The-Modding-Tree.git
synced 2024-11-21 08:12:39 +00:00
v1.1
It is finally here!
This commit is contained in:
parent
8da71643e5
commit
c08042da7e
9 changed files with 848 additions and 697 deletions
BIN
discord.png
Normal file
BIN
discord.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.9 KiB |
59
index.html
59
index.html
|
@ -15,19 +15,38 @@
|
|||
<div id="app">
|
||||
<div class="vl" v-if="player.tab!='tree'&&player.tab!='gameEnded'"></div>
|
||||
<div v-if="player.tab=='gameEnded'" class="fullWidth">
|
||||
<h2>Thank you for playing Prestige Tree v{{player.version}}!</h2><br>
|
||||
<h4 v-if="!player.timePlayedReset">It took you {{formatTime(player.timePlayed)}}</h4>
|
||||
<h4 v-if="player.timePlayedReset">Make sure that you record the time in your stream or else your speedrun won't count!</h4><br><br><br><br><br>
|
||||
If you would like to speedrun this, play again from the beginning and record the whole thing as fast as possible, then submit in <span class="link" onclick="window.open('https://discord.gg/wwQfgPa','mywindow')" target="_blank">my discord</span><br><br><br><br><br>
|
||||
<br>
|
||||
<h2>Prestige Tree {{VERSION.withoutName}}</h2><br><br>
|
||||
<h3>Congratulations! You have reached the end and beaten this game, but for now...</h3><br>
|
||||
<h3>Please check the Discord to see there are new content updates!</h3><br><br>
|
||||
<div v-if="!player.timePlayedReset">It took you {{formatTime(player.timePlayed)}} to beat the game.</div>
|
||||
<div v-if="player.timePlayedReset">Make sure that you record the time in your stream or else your speedrun won't count!</div>
|
||||
<br>
|
||||
<button class="longUpg can" onclick="hardReset(true)">Play Again</button> <button class="longUpg can" onclick="keepGoing()">Keep Going</button>
|
||||
<br><br><br>
|
||||
<a class="link" href="http://discord.gg/wwQfgPa" target="_blank">Jacorb's Discord</a><br>
|
||||
<a class="link" href="http://aarextiaokhiao.github.io/" target="_blank">Aarex's Home</a>
|
||||
<br><br>
|
||||
If you would like to speedrun this, press Play Again and record your attempt, then submit on the Discord Server in the channel #speedrun-submissions.
|
||||
<br><br><br>
|
||||
<h1>Oh, you are still reading this?</h1>
|
||||
<br>
|
||||
Yeah. You also can test the next update whether you want to.<br>
|
||||
<a class="link">Test server</a> (Coming soon!)
|
||||
<br><br>
|
||||
For this next update, there will be 3 new layers which come after row 6! Stay tuned.
|
||||
</div>
|
||||
<div v-if="player.tab=='changelog'" class="col right">
|
||||
<button class="back" onclick="showTab('tree')">←</button><br>
|
||||
<h3>v1.1: The Life Update</h3>
|
||||
<ul>
|
||||
<li>Added 4 new layers</li>
|
||||
<li>Added some QoL displays</li>
|
||||
<li>Added Aqua theme</li>
|
||||
<li>Added HQ Tree option</li>
|
||||
<li>Rebalanced early parts of rows 4 - 5 progression</li>
|
||||
<li>Balanced up to e???,000,000</li>
|
||||
<li>Balanced up to e290,000,000</li>
|
||||
<li>Fixed some bugs</li>
|
||||
</ul><br>
|
||||
<h3>v1.0 Patch 1</h3>
|
||||
<ul>
|
||||
|
@ -308,13 +327,14 @@
|
|||
<button class="back" onclick="showTab('tree')">←</button><br>
|
||||
<h2>Prestige Tree</h2>
|
||||
<br>
|
||||
<h3>v1.1: The Life Update</h3>
|
||||
<h3>{{VERSION.withName}}</h3>
|
||||
<br>
|
||||
Made by Jacorb and Aarex
|
||||
<br>
|
||||
Idea by papyrus (on discord)
|
||||
<br><br>
|
||||
<div class="link" onclick="showTab('changelog')">Changelog</div><br>
|
||||
<a class="link">Test server</a> (Coming soon!)<br><br>
|
||||
<a class="link" href="http://discord.gg/wwQfgPa" target="_blank">Jacorb's Discord</a><br>
|
||||
<a class="link" href="http://aarextiaokhiao.github.io/" target="_blank">Aarex's Home</a>
|
||||
<br>
|
||||
|
@ -360,18 +380,26 @@
|
|||
<td><button class="opt" onclick="toggleOpt('offlineProd')">Offline Prod: {{ player.offlineProd?"ON":"OFF" }}</button></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><button class="opt" onclick="switchTheme()">Theme: {{ getThemeName() }}</button></td>
|
||||
<td><button class="opt" onclick="adjustMSDisp()">Show Milestones: {{ player.msDisplay.toUpperCase() }}</button></td>
|
||||
<td><button class="opt" onclick="toggleOpt('hqTree')">High-Quality Tree: {{ player.hqTree?"ON":"OFF" }}</button></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div id="treeTab" v-if="player.tab!='gameEnded'" onscroll="resizeCanvas()" v-bind:class="{ fullWidth: player.tab == 'tree', col: player.tab != 'tree', left: player.tab != 'tree'}">
|
||||
<div id="version" v-if="player.tab!='changelog'" onclick="showTab('changelog')">v{{player.version}}</div>
|
||||
<div id="version" onclick="showTab('changelog')">{{VERSION.withoutName}}</div>
|
||||
<img id="optionWheel" v-if="player.tab!='options'" src="options_wheel.png" onclick="showTab('options')"></img>
|
||||
<div id="info" v-if="player.tab!='info'" onclick="showTab('info')"><br>i</div>
|
||||
<img id="discord" onclick="window.open('https://discord.gg/wwQfgPa','mywindow')" src="discord.png" target="_blank"></img>
|
||||
<span v-if="player.devSpeed && player.devSpeed != 1">
|
||||
<br>Dev Speed: {{format(player.devSpeed)}}x<br>
|
||||
</span>
|
||||
<span v-if="offTime.remain>0">
|
||||
<br>Offline Time: {{formatTime(offTime.remain)}} ({{format(offTime.speed)}}x speed)<br>
|
||||
</span>
|
||||
<span v-if="player.sp.unl && !player.keepGoing">
|
||||
<br>Reach {{formatWhole(ENDGAME)}} to beat the game!<br>
|
||||
</span>
|
||||
<br>
|
||||
<span v-if="player.points.lt('1e1000')">You have </span>
|
||||
<h2 id="points">{{format(player.points)}}</h2>
|
||||
|
@ -483,12 +511,12 @@
|
|||
</table><br><br>
|
||||
You have {{formatWhole(getSpace())}} Space remaining for Space Buildings.<br>
|
||||
You have {{ format(player.g.power) }} Generator Power<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, s: true, can: player.s.unl, locked: !player.s.unl }">Respec Space Buildings</button><br>
|
||||
<div class="upgRow">
|
||||
<div v-for="id in tmp.s.trueSbUnl">
|
||||
<button v-bind:class="{ upg: true, can: (player.g.power.gte(getSpaceBuildingCost(id))&&player.s.unl&&getSpace().gte(1)), locked: (!(player.g.power.gte(getSpaceBuildingCost(id))&&player.s.unl&&getSpace().gte(1))), s: true }" v-on:click="buyBuilding(id)"><h3>Building {{id}}</h3><br>{{getSpaceBuildingEffDesc(id)}}<br><br>Level: {{formatWhole(tmp.s.sb[id])}}<br>Cost: {{format(getSpaceBuildingCost(id))}} Generator Power</button><br><br>
|
||||
<button v-if="player.q.best.gte(2500)" v-bind:class="{ longUpg: true, can: tmp.s.sb[id].gte(1), locked: tmp.s.sb[id].lt(1) }" v-on:click="destroyBuilding(id)">Destroy One</button><br>
|
||||
<button v-if="player.q.best.gte(2500)" v-bind:class="{ longUpg: true, can: tmp.s.sb[id].gte(1), locked: tmp.s.sb[id].lt(1) }" v-on:click="destroyBuilding(id, true)">Destroy All</button>
|
||||
<button v-if="player.q.best.gte(2500)" v-bind:class="{ longUpg: true, s: true, can: tmp.s.sb[id].gte(1), locked: tmp.s.sb[id].lt(1) }" v-on:click="destroyBuilding(id)">Destroy One</button><br>
|
||||
<button v-if="player.q.best.gte(2500)" v-bind:class="{ longUpg: true, s: true, can: tmp.s.sb[id].gte(1), locked: tmp.s.sb[id].lt(1) }" v-on:click="destroyBuilding(id, true)">Destroy All</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -571,8 +599,8 @@
|
|||
</div>
|
||||
<div v-if="layer=='ps'">
|
||||
<table>
|
||||
<tr v-if="milestoneShown(player.ps.best.gte(3), true)"><td v-bind:class="{ milestone: player.ps.best.lt(5), milestoneDone: player.ps.best.gte(3) }"><h3>3 Phantom Souls</h3><br>You can buy max Phantom Souls, and automatically purchase Phantom Souls <button v-if="player.ps.best.gte(3)" class="smallUpg can ps" onclick="toggleAuto('ps')">{{player.ps.auto?"ON":"OFF"}}</button></td></tr>
|
||||
<tr v-if="milestoneShown(player.ps.best.gte(5))"><td v-bind:class="{ milestone: player.ps.best.lt(5), milestoneDone: player.ps.best.gte(5) }"><h3>5 Phantom Souls</h3><br>Phantom Souls reset nothing</td></tr>
|
||||
<tr v-if="milestoneShown(player.ps.best.gte(2), true)"><td v-bind:class="{ milestone: player.ps.best.lt(5), milestoneDone: player.ps.best.gte(2) }"><h3>2 Phantom Souls</h3><br>Automatically purchase Phantom Souls <button v-if="player.ps.best.gte(2)" class="smallUpg can ps" onclick="toggleAuto('ps')">{{player.ps.auto?"ON":"OFF"}}</button></td></tr>
|
||||
<tr v-if="milestoneShown(player.ps.best.gte(5))"><td v-bind:class="{ milestone: player.ps.best.lt(5), milestoneDone: player.ps.best.gte(5) }"><h3>5 Phantom Souls</h3><br>You can buy max Phantom Souls, and Phantom Souls reset nothing</td></tr>
|
||||
</table><br><br>
|
||||
</div>
|
||||
<div v-if="layer=='sp'">
|
||||
|
@ -595,7 +623,7 @@
|
|||
</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>
|
||||
<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 1% of Super-Prestige Points gain every second</td></tr>
|
||||
</table>
|
||||
<br><br>
|
||||
You have {{formatWhole(player.ba.points)}} Balance Energy
|
||||
|
@ -620,13 +648,14 @@
|
|||
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() }">
|
||||
<h3>Imperium Buildings</h3><br>
|
||||
<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>
|
||||
<span v-if="!player.i.building">Cost: {{IMPERIUM.cost().i}} Imperium Bricks & {{IMPERIUM.cost().l}} Life Bricks</span>
|
||||
<span v-if="player.i.building">Progress: {{format(player.i.progress * 100)}}%<br>Your Super-Generator Power speeds up your progress by {{format(IMPERIUM.sgSpeedBoost())}}x<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
|
||||
|
|
|
@ -212,10 +212,6 @@
|
|||
this.layer = 0;
|
||||
this.mag = 0;
|
||||
}
|
||||
|
||||
if (isNaN(this.sign)) this.sign = 0
|
||||
if (isNaN(this.layer)) this.layer = 0
|
||||
if (isNaN(this.mag)) this.mag = 0
|
||||
}
|
||||
|
||||
Object.defineProperty(Decimal.prototype, "m", {
|
||||
|
@ -2743,4 +2739,4 @@ for (var i = 0; i < 10; ++i)
|
|||
|
||||
return Decimal;
|
||||
|
||||
}));
|
||||
}));
|
16
js/canvas.js
16
js/canvas.js
|
@ -23,10 +23,18 @@ function resizeCanvas() {
|
|||
}
|
||||
|
||||
var colors = {
|
||||
1: "#ffffff",
|
||||
2: "#bfbfbf",
|
||||
3: "#7f7f7f"
|
||||
default: {
|
||||
1: "#ffffff",
|
||||
2: "#bfbfbf",
|
||||
3: "#7f7f7f",
|
||||
},
|
||||
aqua: {
|
||||
1: "#bfefff",
|
||||
2: "#8fb3bf",
|
||||
3: "#5f777f",
|
||||
},
|
||||
}
|
||||
var colors_theme
|
||||
|
||||
function drawTree() {
|
||||
if (!retrieveCanvasData()) return;
|
||||
|
@ -107,7 +115,7 @@ function drawTreeBranch(num1, num2, color_id = 1) { // taken from Antimatter Dim
|
|||
let y2 = end.top + (end.height / 2) + (document.getElementById("treeTab").scrollTop || document.body.scrollTop);
|
||||
ctx.lineWidth = 15;
|
||||
ctx.beginPath();
|
||||
ctx.strokeStyle = colors[color_id]
|
||||
ctx.strokeStyle = colors_theme[color_id]
|
||||
ctx.moveTo(x1, y1);
|
||||
ctx.lineTo(x2, y2);
|
||||
ctx.stroke();
|
||||
|
|
1412
js/game.js
1412
js/game.js
File diff suppressed because it is too large
Load diff
|
@ -41,7 +41,7 @@ function updateTemp() {
|
|||
tmp.enhEff2 = getEnhancerEff2()
|
||||
tmp.subbedEnh = new Decimal(0)
|
||||
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.add(new Decimal(player.h.time).times(40).add(1).log10().pow(10).max(10)).round()
|
||||
}
|
||||
|
||||
tmp.freeExtCap = getFreeExtCapsules()
|
||||
|
@ -121,7 +121,7 @@ function updateTemp() {
|
|||
|
||||
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))
|
||||
if (player.i.building) data.work = data.work.add(player.i.extraBuildings.add(4).sqrt().div(5))
|
||||
data.workEff = Decimal.pow(2, data.work.sub(1))
|
||||
}
|
||||
}
|
||||
|
|
3
js/v.js
3
js/v.js
|
@ -35,6 +35,7 @@ function loadVue() {
|
|||
formatWhole,
|
||||
formatTime,
|
||||
focused,
|
||||
getThemeName,
|
||||
layerUnl,
|
||||
getLayerEffDesc,
|
||||
doReset,
|
||||
|
@ -56,6 +57,8 @@ function loadVue() {
|
|||
spellActive,
|
||||
updateToCast,
|
||||
keepGoing,
|
||||
VERSION,
|
||||
ENDGAME,
|
||||
LAYERS,
|
||||
LAYER_RES,
|
||||
LAYER_TYPE,
|
||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 4.7 KiB After Width: | Height: | Size: 4.3 KiB |
45
style.css
45
style.css
|
@ -13,9 +13,12 @@
|
|||
}
|
||||
|
||||
body {
|
||||
background-color: black;
|
||||
color: #dfdfdf;
|
||||
background-color: var(--background);
|
||||
color: var(--color);
|
||||
overflow: hidden;
|
||||
--background: #000000;
|
||||
--color: #dfdfdf;
|
||||
--points: #ffffff;
|
||||
}
|
||||
|
||||
html, body {
|
||||
|
@ -79,7 +82,7 @@ h1, h2, h3, b, input {
|
|||
|
||||
.can:hover {
|
||||
transform: scale(1.15, 1.15);
|
||||
box-shadow: 0px 0px 20px rgba(255, 255, 255, 0.5)
|
||||
box-shadow: 0px 0px 20px var(--points)
|
||||
}
|
||||
|
||||
.treeNode.notify {
|
||||
|
@ -91,7 +94,7 @@ h1, h2, h3, b, input {
|
|||
|
||||
.treeNode.can:hover {
|
||||
transform: scale(1.15, 1.15);
|
||||
box-shadow: var(--hqProperty2a), 0px 0px 20px rgba(255, 255, 255, 0.5);
|
||||
box-shadow: var(--hqProperty2a), 0px 0px 20px var(--points);
|
||||
z-index: 4
|
||||
}
|
||||
|
||||
|
@ -104,16 +107,16 @@ h1, h2, h3, b, input {
|
|||
position: absolute;
|
||||
top: 0px;
|
||||
left: 0px;
|
||||
background-color: black;
|
||||
border: 1px solid black;
|
||||
color: white;
|
||||
background-color: var(--background);
|
||||
border: 1px solid var(--background);
|
||||
color: var(--color);
|
||||
font-size: 40px;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.back:hover {
|
||||
transform: scale(1.1, 1.1);
|
||||
text-shadow: 0px 0px 7px white;
|
||||
text-shadow: 0px 0px 7px var(--color);
|
||||
}
|
||||
|
||||
.reset {
|
||||
|
@ -144,6 +147,7 @@ h1, h2, h3, b, input {
|
|||
.longUpg {
|
||||
height: 50px;
|
||||
width: 120px;
|
||||
background: var(--points);
|
||||
border-radius: 50%;
|
||||
border: 2px solid;
|
||||
border-color: rgba(255, 255, 255, 0.125) rgba(0, 0, 0, 0.25) rgba(0, 0, 0, 0.25) rgba(255, 255, 255, 0.125);
|
||||
|
@ -159,8 +163,8 @@ h1, h2, h3, b, input {
|
|||
}
|
||||
|
||||
#points {
|
||||
color: white;
|
||||
text-shadow: 0px 0px 10px white;
|
||||
color: var(--points);
|
||||
text-shadow: 0px 0px 10px var(--points);
|
||||
}
|
||||
|
||||
.p {
|
||||
|
@ -425,13 +429,26 @@ h1, h2, h3, b, input {
|
|||
-3px 0px 12px #02f2f2;
|
||||
}
|
||||
|
||||
#discord {
|
||||
position: absolute;
|
||||
top: 120px;
|
||||
left: 4px;
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
cursor: pointer
|
||||
}
|
||||
|
||||
#discord:hover {
|
||||
transform: scale(1.2, 1.2);
|
||||
}
|
||||
|
||||
#version {
|
||||
position: absolute;
|
||||
right: 4px;
|
||||
top: 4px;
|
||||
text-align: right;
|
||||
color: white;
|
||||
text-shadow: 0px 0px 10px #ffffff;
|
||||
color: var(--points);
|
||||
text-shadow: 0px 0px 10px var(--points);
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
|
@ -471,7 +488,7 @@ a {
|
|||
width: 100px;
|
||||
border-radius: 25%;
|
||||
border: 4px solid;
|
||||
background-color: #a1a1a1;
|
||||
background-color: var(--color);
|
||||
border-color: rgba(255, 255, 255, 0.125) rgba(0, 0, 0, 0.25) rgba(0, 0, 0, 0.25) rgba(255, 255, 255, 0.125);
|
||||
color: rgba(0, 0, 0, 0.5);
|
||||
cursor: pointer;
|
||||
|
@ -553,7 +570,7 @@ a {
|
|||
}
|
||||
|
||||
.vl {
|
||||
border-left: 6px solid #969696;
|
||||
border-left: 6px solid var(--color);
|
||||
height: 100%;
|
||||
position: absolute;
|
||||
left: 50%;
|
||||
|
|
Loading…
Reference in a new issue