2020-08-19 02:50:24 +00:00
<!DOCTYPE html>
< head >
< title > The Prestige Tree< / title >
< link rel = "stylesheet" type = "text/css" href = "style.css" / >
2020-09-08 23:22:22 +00:00
< link href = "https://fonts.googleapis.com/css?family=Inconsolata" rel = "stylesheet" >
2020-08-19 02:50:24 +00:00
< script src = "https://cdn.jsdelivr.net/npm/vue/dist/vue.js" > < / script >
2020-08-26 14:16:23 +00:00
< script type = "text/javascript" src = "js/break_eternity.js" > < / script >
2020-08-21 19:02:34 +00:00
< script type = "text/javascript" src = "js/temp.js" > < / script >
2020-08-23 19:36:03 +00:00
< script type = "text/javascript" src = "js/saves.js" > < / script >
2020-08-19 02:50:24 +00:00
< script type = "text/javascript" src = "js/game.js" > < / script >
< script type = "text/javascript" src = "js/v.js" > < / script >
< script type = "text/javascript" src = "js/canvas.js" > < / script >
< / head >
< body onload = "load()" >
< div id = "app" >
2020-09-08 23:22:22 +00:00
< div id = "vl" class = "vl none" > < / div >
2020-08-20 04:55:26 +00:00
< div v-if = "player.tab=='changelog'" class = "col right" >
2020-09-07 02:33:31 +00:00
< button class = "back" onclick = "showTab('info')" > ←< / button > < br >
< h3 > Version 1.1: The Life Update< / h3 >
< ul >
< li > ???< / li >
< / ul > < br >
< div class = "link" onclick = "showTab('changelog_beta')" > Alpha / Beta< / div > < br >
< / div >
< div v-if = "player.tab=='changelog_beta'" class = "col right" >
< button class = "back" onclick = "showTab('changelog')" > ←< / button > < br >
2020-09-08 22:28:40 +00:00
< h3 > Beta v1.2 Alpha 14< / h3 >
< ul >
< li > Balanced up to 1e15,000,000 Points< / li >
< / ul > < br >
2020-09-08 20:47:32 +00:00
< h3 > Beta v1.2 Alpha 13< / h3 >
< ul >
< li > Reduced a few upgrade costs< / li >
< li > Balanced up to 1e11,000,000 Points, 5e23 Magic, and 3e20 Balance Energy< / li >
< / ul > < br >
2020-09-08 16:48:48 +00:00
< h3 > Beta v1.2 Alpha 12< / h3 >
< ul >
< li > Balanced up to 1e9,200,000 Points, 5e18 Magic, and 1e16 Balance Energy< / li >
< / ul > < br >
2020-09-08 00:11:57 +00:00
< h3 > Beta v1.2 Alpha 11< / h3 >
< ul >
< li > Balanced up to 1e7,650,000 Points, 1e16 Magic, and 4e13 Balance Energy< / li >
< / ul > < br >
2020-09-07 16:33:50 +00:00
< h3 > Beta v1.2 Alpha 10< / h3 >
< ul >
< li > Made a few visual fixes< / li >
< li > Adjusted the 1,070 Generator upgrade to cost 1,068 Generators instead< / li >
< li > Balanced up to 1e6,800,000 Points, 1e14 Magic, and 1.5e12 Balance Energy< / li >
< / ul > < br >
2020-09-07 02:17:10 +00:00
< h3 > Beta v1.2 Alpha 9< / h3 >
< ul >
< li > Added hints for h8 & h10< / li >
< li > Added a new Magic milestone< / li >
< li > Reduced offline time to 10% of its original amount< / li >
< li > Balanced up to 1e6,000,000 Points, 3e12 Magic, and 1e11 Balance Energy< / li >
< / ul > < br >
2020-09-05 20:00:21 +00:00
< h3 > Beta v1.2 Alpha 8< / h3 >
< ul >
< li > Added a new milestone< / li >
< li > Added a new Hindrance ;)< / li >
< li > Balanced up to 1e5,500,000 Points, 2.5e10 Magic, and 2e9 Balance Energy< / li >
< / ul > < br >
2020-09-05 17:11:53 +00:00
< 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 >
2020-09-04 23:09:10 +00:00
< h3 > Beta v1.2 Alpha 6< / h3 >
< ul >
< li > Fixed a bug with hotkeys< / li >
< li > Balanced up to 1e3,000,000 Points, 80,000 Magic, and 160,000 Balance Energy< / li >
< / ul > < br >
2020-09-04 19:42:40 +00:00
< h3 > Beta v1.2 Alpha 5< / h3 >
< ul >
< li > Balanced up to 1e2,400,000 Points, 1,500 Magic, and 3,000 Balance Energy< / li >
< / ul > < br >
2020-09-04 17:45:22 +00:00
< h3 > Beta v1.2 Alpha 4< / h3 >
< ul >
< li > Implemented the final Hindrance< / li >
< li > Balanced up to 1e2,000,000 Points, 200 Magic, and 200 Balance Energy< / li >
< / ul > < br >
2020-09-04 03:15:10 +00:00
< h3 > Beta v1.2 Alpha 3< / h3 >
< ul >
< li > Balanced up to 50 Magic and 50 Balance Energy< / li >
< / ul > < br >
2020-09-04 02:25:24 +00:00
< h3 > Beta v1.2 Alpha 2< / h3 >
< ul >
< li > Added 2 new upgrades and a few new milestones< / li >
< li > Balanced up to 25 Magic and 25 Balance Energy< / li >
< / ul > < br >
2020-09-03 21:59:23 +00:00
< h3 > Beta v1.2 Alpha 1< / h3 >
< ul >
< li > Implemented the two Row 5 layers< / li >
< li > Added a new option< / li >
< li > Rebalanced a few things at the end of row 4< / li >
< li > Balanced up to 1 of each Row 5 reset< / li >
< / ul > < br >
2020-09-02 02:30:37 +00:00
< h3 > Beta v1.1< / h3 >
< ul >
< li > Cleaned up a few things< / li >
< / ul > < br >
2020-09-01 02:27:52 +00:00
< h3 > Beta v1.1 Alpha 21< / h3 >
< ul >
< li > Rebalanced from h10 to endgame (now ends at 1e920,000 Points unless you wanna grind)< / li >
< / ul > < br >
2020-09-01 02:11:22 +00:00
< h3 > Beta v1.1 Alpha 20< / h3 >
< ul >
< li > Made h10 hidden until you beat h9< / li >
< li > Rebalanced/fixed h10< / li >
< / ul > < br >
2020-09-01 00:39:33 +00:00
< h3 > Beta v1.1 Alpha 19< / h3 >
< ul >
< li > Remade the offline progression system< / li >
< li > Balanced up to 1e925,000 Points< / li >
< / ul > < br >
2020-08-31 18:33:29 +00:00
< h3 > Beta v1.1 Alpha 18< / h3 >
< ul >
< li > Added a new Hindrance (h10)< / li >
< li > Balanced up to 1e800,000 Points< / li >
< / ul > < br >
2020-08-31 02:35:50 +00:00
< h3 > Beta v1.1 Alpha 17< / h3 >
< ul >
< li > Fixed a bug with unlocking Hyper-Boosters & Subspace< / li >
< li > Balanced up to 1e710,000 Points< / li >
< / ul > < br >
2020-08-30 16:18:34 +00:00
< h3 > Beta v1.1 Alpha 16< / h3 >
< ul >
< li > Added a new Hindrance (h9)< / li >
< li > Added a new Hyper-Booster milestone< / li >
< li > Made the Space Building automation prioritize the rightmost buildings first< / li >
< li > Balanced up to 1e690,000 Points< / li >
< / ul > < br >
2020-08-30 02:28:21 +00:00
< h3 > Beta v1.1 Alpha 15< / h3 >
< ul >
< li > Balanced up to 1e635,000 Points (don't worry, the crazy inflation stops here)< / li >
< / ul > < br >
2020-08-30 01:39:01 +00:00
< h3 > Beta v1.1 Alpha 14< / h3 >
< ul >
< li > Implemented the fourth row 4 layer unlock< / li >
< li > Balanced up to 1e240,000-1e250,000 Points< / li >
< / ul > < br >
2020-08-29 23:43:53 +00:00
< h3 > Beta v1.1 Alpha 13< / h3 >
< ul >
< li > Implemented Subspace & Hyper-Booster resets< / li >
< li > Balanced up to 1e100,000 Points in either path< / li >
< / ul > < br >
2020-08-29 19:45:18 +00:00
< h3 > Beta v1.1 Alpha 12< / h3 >
< ul >
< li > Balanced up to 1e20 Hindrance Spirit, 2e21 Quirks, and 1e72,000 Points< / li >
< / ul > < br >
2020-08-29 18:00:32 +00:00
< h3 > Beta v1.1 Alpha 11< / h3 >
< ul >
< li > Added a new Quirk Milestone< / li >
< li > Balanced up to 1e15 Hindrance Spirit, 1e16 Quirks, and 1e42,500 Points< / li >
< / ul > < br >
2020-08-29 16:43:58 +00:00
< h3 > Beta v1.1 Alpha 10< / h3 >
< ul >
< li > Balanced up to 2e13 Hindrance Spirit & Quirks, and 1e31,000 Points< / li >
< / ul > < br >
2020-08-27 19:12:20 +00:00
< h3 > Beta v1.1 Alpha 9< / h3 >
< ul >
< li > Added a new option< / li >
< li > Balanced up to 2e10 Hindrance Spirit & Quirks, and 1e27,500 Points< / li >
< / ul > < br >
2020-08-27 15:38:26 +00:00
< 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 >
2020-08-26 22:42:19 +00:00
< h3 > Beta v1.1 Alpha 7< / h3 >
2020-08-20 04:55:26 +00:00
< ul >
2020-08-26 22:42:19 +00:00
< li > Reversed the order of the changelog< / li >
< li > Added the fourth Hindrance< / li >
< li > Balanced up to 50,000 Hindrance Spirit & Quirks< / li >
< / ul > < br >
< h3 > Beta v1.1 Alpha 6< / h3 >
2020-08-20 04:55:26 +00:00
< ul >
2020-08-26 22:42:19 +00:00
< li > Various bugfixes< / li >
< li > Added the third Hindrance< / li >
< li > Balanced up to 2,500 Hindrance Spirit & Quirks< / li >
2020-08-20 04:55:26 +00:00
< / ul > < br > < br >
2020-08-26 22:42:19 +00:00
< h3 > Beta v1.1 Alpha 5< / h3 >
2020-08-20 20:37:22 +00:00
< ul >
2020-08-26 22:42:19 +00:00
< li > Add the second Hindrance< / li >
< li > Balanced up to 200 Hindrance Spirit & Quirks< / li >
2020-08-20 20:37:22 +00:00
< / ul > < br > < br >
2020-08-26 22:42:19 +00:00
< h3 > Beta v1.1 Alpha 4< / h3 >
2020-08-21 03:33:13 +00:00
< ul >
2020-08-26 22:42:19 +00:00
< li > Add the first Hindrance< / li >
< li > Implemented some new milestones< / li >
< li > Balanced up to 60 Hindrance Spirit & Quirks< / li >
2020-08-21 03:33:13 +00:00
< / ul > < br > < br >
2020-08-26 22:42:19 +00:00
< h3 > Beta v1.1 Alpha 3< / h3 >
2020-08-21 19:02:34 +00:00
< ul >
2020-08-26 22:42:19 +00:00
< li > Fixed corruption bug< / li >
< li > Implemented some new milestones< / li >
< li > Balanced up to 15 Hindrance Spirit & 15 Quirks< / li >
2020-08-21 19:02:34 +00:00
< / ul > < br > < br >
2020-08-26 22:42:19 +00:00
< h3 > Beta v1.1 Alpha 2< / h3 >
2020-08-22 01:16:23 +00:00
< ul >
2020-08-26 22:42:19 +00:00
< li > Implemented some new milestones< / li >
< li > Balanced up to 5 Hindrance Spirit & 5 Quirks< / li >
2020-08-22 01:16:23 +00:00
< / ul > < br > < br >
2020-08-26 22:42:19 +00:00
< h3 > Beta v1.1 Alpha 1< / h3 >
2020-08-22 03:59:24 +00:00
< ul >
2020-08-26 22:42:19 +00:00
< li > Add the framework for the first two row 4 layers< / li >
< li > Balanced up to the second row 4 reset< / li >
2020-08-22 03:59:24 +00:00
< / ul > < br > < br >
2020-08-26 22:42:19 +00:00
< h3 > Beta v1.01< / h3 >
2020-08-23 19:36:03 +00:00
< ul >
2020-08-26 22:42:19 +00:00
< li > Display Generator Power in the Space tab< / li >
< li > Add a credits page in the info tab< / li >
< li > Implemented a few minor QoL/visual fixes< / li >
2020-08-23 19:36:03 +00:00
< / ul > < br > < br >
2020-08-24 02:01:14 +00:00
< h3 > Beta v1.0< / h3 >
< ul >
< li > Made sure any built-in saves had Auto-Save turned on< / li >
< li > Fixed a visual bug for mobile users< / li >
< li > Added a "time played" display in the info tab< / li >
< li > Implemented a NaN check system< / li >
< / ul > < br > < br >
2020-08-26 22:42:19 +00:00
< h3 > Alpha Build 10< / h3 >
2020-08-25 22:42:43 +00:00
< ul >
2020-08-26 22:42:19 +00:00
< li > Rebalanced the Super-Booster era (now up to 1e9,250 points)< / li >
< li > Implemented a game version variable< / li >
2020-08-25 22:42:43 +00:00
< / ul > < br > < br >
2020-08-26 22:42:19 +00:00
< h3 > Alpha Build 9< / h3 >
2020-08-26 01:45:22 +00:00
< ul >
2020-08-26 22:42:19 +00:00
< li > Fixed a visual bug with the Prestige Tree branches< / li >
< li > Added a hotkey for Super-Boosters< / li >
< li > Added a new Super-Booster milestone< / li >
< li > Fixed a bug with hotkeys< / li >
< li > Balanced up to 1e46,500 points< / li >
< / ul > < br > < br >
< h3 > Alpha Build 8< / h3 >
2020-08-26 03:32:27 +00:00
< ul >
2020-08-26 22:42:19 +00:00
< li > Implemented Super-Boosters< / li >
< li > Balanced up to 1e25,600 points< / li >
< / ul > < br > < br >
< h3 > Alpha Build 7< / h3 >
2020-08-26 14:16:23 +00:00
< ul >
2020-08-26 22:42:19 +00:00
< li > Made the new upgrades from Alpha Build 6 shown at proper times< / li >
< li > Balanced up to 1e4,175 points< / li >
< li > Setup a temp variable system (to prevent lag later on)< / li >
< / ul > < br > < br >
< h3 > Alpha Build 6< / h3 >
2020-08-26 16:26:46 +00:00
< ul >
2020-08-26 22:42:19 +00:00
< li > Made font work for Mac users< / li >
< li > Added 1 new Space & Time milestone each< / li >
< li > Balanced up to 1e3,375 points< / li >
< / ul > < br > < br >
< h3 > Alpha Build 5< / h3 >
2020-08-26 19:08:00 +00:00
< ul >
2020-08-26 22:42:19 +00:00
< li > Balanced up to 1e920 with all prestige tree paths (before unlocking third row 3 layer)< / li >
< / ul > < br > < br >
< h3 > Alpha Build 4< / h3 >
2020-08-26 20:40:54 +00:00
< ul >
2020-08-26 22:42:19 +00:00
< li > Implemented Auto-Boosters & Auto-Generators< / li >
< li > Fixed a balancing issue with a certain prestige tree path (1e660 -> 1e600)< / li >
< li > Added changelog< / li >
< li > Balanced up to 1e700 with all prestige tree paths< / li >
< / ul > < br > < br >
< h3 > Pre-Alpha Build 4< / h3 >
< ul >
< li > Implemented/balanced all row 1 & 2 prestige layers< / li >
< li > Added the options/info menus< / li >
< li > Balanced the row 3 prestige layers up to 1e560 points< / li >
< / ul > < br > < br >
2020-08-25 22:42:43 +00:00
< / div >
2020-08-19 22:12:31 +00:00
< div v-if = "player.tab=='info'" class = "col right" >
2020-09-07 02:33:31 +00:00
< button class = "back" onclick = "showTab('tree')" > ←< / button > < br >
< h2 > Prestige Tree< / h2 >
< br >
< h3 > Version 1.1: The Life Update< / 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" 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 >
Note by Jacorb: 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 > .
< br > < br >
Time Played: {{ formatTime(player.timePlayed) }}< br > < br >
< h3 > Hotkeys< / h3 > < br >
2020-08-19 22:12:31 +00:00
P: Prestige reset< br >
< span v-if = "player.b.unl" > B: Booster reset< / span > < br >
< span v-if = "player.g.unl" > G: Generator reset< / span > < br >
< span v-if = "player.t.unl" > T: Time reset< / span > < br >
< span v-if = "player.e.unl" > E: Enhance reset< / span > < br >
< span v-if = "player.s.unl" > S: Space reset< / span > < br >
2020-08-22 03:59:24 +00:00
< span v-if = "player.sb.unl" > Shift+B: Super-Booster reset< / span > < br >
2020-09-04 17:45:22 +00:00
< span v-if = "player.sg.unl" > Shift+G: Super-Generator reset< / span > < br >
2020-08-26 01:45:22 +00:00
< span v-if = "player.h.unl" > H: Hindrance reset< / span > < br >
< span v-if = "player.q.unl" > Q: Quirk reset< / span > < br >
2020-08-29 23:43:53 +00:00
< 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 >
2020-09-05 17:11:53 +00:00
< 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 >
2020-09-03 21:59:23 +00:00
< span v-if = "player.ba.unl" > A: Balance reset< / span > < br >
2020-08-19 22:12:31 +00:00
< / div >
2020-08-19 19:53:14 +00:00
< div v-if = "player.tab=='options'" class = "col right" >
2020-09-07 02:33:31 +00:00
< button class = "back" onclick = "showTab('tree')" > ←< / button > < br >
2020-08-19 02:50:24 +00:00
< table >
< tr >
< td > < button class = "opt" onclick = "save()" > Save< / button > < / td >
2020-09-07 14:16:04 +00:00
< td > < button class = "opt" onclick = "toggleOpt('autosave')" > Autosave: {{ player.autosave?"ON":"OFF" }}< / button > < / td >
2020-08-19 02:50:24 +00:00
< td > < button class = "opt" onclick = "hardReset()" > HARD RESET< / button > < / td >
< / tr >
< tr >
2020-09-03 21:59:23 +00:00
< td > < button class = "opt" onclick = "exportSave()" > Export to clipboard< / button > < / td >
2020-08-19 02:50:24 +00:00
< td > < button class = "opt" onclick = "importSave()" > Import< / button > < / td >
2020-09-07 14:16:04 +00:00
< td > < button class = "opt" onclick = "toggleOpt('offlineProd')" > Offline Prod: {{ player.offlineProd?"ON":"OFF" }}< / button > < / td >
2020-08-19 02:50:24 +00:00
< / tr >
< tr >
2020-08-27 19:12:20 +00:00
< td > < button class = "opt" onclick = "adjustMSDisp()" > Show Milestones: {{ player.msDisplay.toUpperCase() }}< / button > < / td >
2020-09-07 14:16:04 +00:00
< td > < button class = "opt" onclick = "toggleOpt('hqTree')" > High-Quality Tree: {{ player.hqTree?"ON":"OFF" }}< / button > < / td >
2020-08-19 02:50:24 +00:00
< / tr >
< / table >
< / div >
2020-09-08 23:22:22 +00:00
< div id = "treeTab" onscroll = "resizeCanvas()" class = "col full" >
2020-08-19 22:20:42 +00:00
< img id = "optionWheel" v-if = "player.tab!='options'" src = "options_wheel.png" onclick = "showTab('options')" > < / img >
2020-09-02 02:30:37 +00:00
< div id = "info" v-if = "player.tab!='info'" onclick = "showTab('info')" > < br > i< / div >
2020-09-01 00:39:33 +00:00
< span v-if = "offTime.remain>0" >
< br > Offline Time: {{formatTime(offTime.remain)}} ({{format(offTime.speed)}}x speed)< br >
< / span >
2020-09-09 02:13:45 +00:00
< br > You have < h2 id = "points" > {{format(player.points)}}< / h2 > Points
2020-08-19 02:50:24 +00:00
< br > < br > < br > < br > < br >
< table >
2020-09-08 23:22:22 +00:00
< td id = "p" > < button onclick = "showTab('p')" v-bind:tooltip = "(player.points.gte(tmp.layerReqs.p)||player.p.unl) ? (formatWhole(player.p.points)+' prestige points') : ('Reach '+format(tmp.layerReqs.p)+' points to unlock')" v-bind:class = "{ treeNode: true, p: true, locked: (player.points.lt(tmp.layerReqs.p)&&!player.p.unl), notify: player.notify.p, can: (player.points.gte(tmp.layerReqs.p)||player.p.unl) }" > P< / button > < / td >
2020-08-19 02:50:24 +00:00
< / table > < table >
2020-09-07 02:33:31 +00:00
< td > < button class = "treeNode hidden" > < / button > < / td >
2020-08-19 02:50:24 +00:00
< / table > < table >
2020-09-09 02:13:45 +00:00
< td v-if = "player.tab=='tree'&&(player.b.unl||player.g.unl)" class = "left" > < br > < br > < img class = "remove" src = "remove.png" onclick = "resetRow(1)" > < / img > < / td >
2020-09-08 23:22:22 +00:00
< td id = "b" v-if = "layerUnl('b')" > < button onclick = "showTab('b')" v-bind:tooltip = "((player.points.gte(tmp.layerReqs.b)||player.b.unl)&&layerUnl('b')) ? (formatWhole(player.b.points)+' boosters') : ('Reach '+format(tmp.layerReqs.b)+' points to unlock')" v-bind:class = "{ treeNode: true, b: true, locked: (player.points.lt(tmp.layerReqs.b)&&!player.b.unl), notify: player.notify.b, can: (player.points.gte(tmp.layerReqs.b)||player.b.unl) }" > B< / button > < / td >
< td id = "g" v-if = "layerUnl('g')" > < button onclick = "showTab('g')" v-bind:tooltip = "((player.points.gte(tmp.layerReqs.g)||player.g.unl)&&layerUnl('g')) ? (formatWhole(player.g.points)+' generators') : ('Reach '+format(tmp.layerReqs.g)+' points to unlock')" v-bind:class = "{ treeNode: true, g: true, locked: (player.points.lt(tmp.layerReqs.g)&&!player.g.unl), notify: player.notify.g, can: (player.points.gte(tmp.layerReqs.g)||player.g.unl) }" > G< / button > < / td >
2020-08-19 02:50:24 +00:00
< / table > < table >
2020-09-07 02:33:31 +00:00
< td > < button class = "treeNode hidden" > < / button > < / td >
2020-08-19 02:50:24 +00:00
< / table > < table >
2020-09-09 02:13:45 +00:00
< td v-if = "player.tab=='tree'&&(player.e.unl||player.t.unl||player.s.unl)" class = "left" > < br > < br > < img class = "remove" src = "remove.png" onclick = "resetRow(2)" > < / img > < / td >
2020-09-08 23:22:22 +00:00
< td id = "sb" v-if = "layerUnl('sb')" > < button onclick = "showTab('sb')" v-bind:tooltip = "((player.b.points.gte(tmp.layerReqs.sb)||player.sb.unl)&&layerUnl('sb')) ? (formatWhole(player.sb.points)+' super-boosters') : ('Reach '+formatWhole(tmp.layerReqs.sb)+' boosters to unlock')" v-bind:class = "{ treeNode: true, sb: true, locked: (player.b.points.lt(tmp.layerReqs.sb)&&!player.sb.unl), notify: player.notify.sb, can: (player.b.points.gte(tmp.layerReqs.sb)||player.sb.unl) }" > SB< / button > < / td >
< td id = "t" v-if = "layerUnl('t')" > < button onclick = "showTab('t')" v-bind:tooltip = "((player.points.gte(tmp.layerReqs.t)||player.t.unl)&&layerUnl('t')) ? (formatWhole(player.t.points)+' time capsules') : ('Reach '+format(tmp.layerReqs.t)+' points to unlock')" v-bind:class = "{ treeNode: true, t: true, locked: (player.points.lt(tmp.layerReqs.t)&&!player.t.unl), notify: player.notify.t, can: (player.points.gte(tmp.layerReqs.t)||player.t.unl) }" > T< / button > < / td >
< td id = "e" v-if = "layerUnl('e')" > < button onclick = "showTab('e')" v-bind:tooltip = "((player.points.gte(tmp.layerReqs.e)||player.e.unl)&&layerUnl('e')) ? (formatWhole(player.e.points)+' enhance points') : ('Reach '+format(tmp.layerReqs.e)+' points to unlock')" v-bind:class = "{ treeNode: true, e: true, locked: (player.points.lt(tmp.layerReqs.e)&&!player.e.unl), notify: player.notify.e, can: (player.points.gte(tmp.layerReqs.e)||player.e.unl) }" > E< / button > < / td >
< td id = "s" v-if = "layerUnl('s')" > < button onclick = "showTab('s')" v-bind:tooltip = "((player.points.gte(tmp.layerReqs.s)||player.s.unl)&&layerUnl('s')) ? (formatWhole(player.s.points)+' space energy') : ('Reach '+format(tmp.layerReqs.s)+' points to unlock')" v-bind:class = "{ treeNode: true, s: true, locked: (player.points.lt(tmp.layerReqs.s)&&!player.s.unl), notify: player.notify.s, can: (player.points.gte(tmp.layerReqs.s)||player.s.unl) }" > S< / button > < / td >
< td id = "sg" v-if = "layerUnl('sg')" > < button onclick = "showTab('sg')" v-bind:tooltip = "((player.g.points.gte(tmp.layerReqs.sg)||player.sg.unl)&&layerUnl('sg')) ? (formatWhole(player.sg.points)+' super-generators') : ('Reach '+formatWhole(tmp.layerReqs.sg)+' generators to unlock')" v-bind:class = "{ treeNode: true, sg: true, locked: (player.g.points.lt(tmp.layerReqs.sg)&&!player.sg.unl), notify: player.notify.sg, can: (player.g.points.gte(tmp.layerReqs.sg)||player.sg.unl) }" > SG< / button > < / td >
2020-08-26 01:45:22 +00:00
< / table > < table >
2020-09-07 02:33:31 +00:00
< td > < button class = "treeNode hidden" > < / button > < / td >
2020-08-26 01:45:22 +00:00
< / table > < table >
2020-09-09 02:13:45 +00:00
< td v-if = "player.tab=='tree'&&(player.h.unl||player.q.unl)" class = "left" > < br > < br > < img class = "remove" src = "remove.png" onclick = "resetRow(3)" > < / img > < / td >
2020-09-08 23:22:22 +00:00
< td id = "hb" v-if = "layerUnl('hb')" > < button onclick = "showTab('hb')" v-bind:tooltip = "((player.sb.points.gte(tmp.layerReqs.hb)||player.hb.unl)&&layerUnl('hb')) ? (formatWhole(player.hb.points)+' hyper-boosters') : ('Reach '+formatWhole(tmp.layerReqs.hb)+' super-boosters to unlock')" v-bind:class = "{ treeNode: true, hb: true, locked: (player.sb.points.lt(tmp.layerReqs.hb)&&!player.hb.unl), notify: player.notify.hb, can: (player.sb.points.gte(tmp.layerReqs.hb)||player.hb.unl) }" > HB< / button > < / td >
< td id = "h" v-if = "layerUnl('h')" > < button onclick = "showTab('h')" v-bind:tooltip = "((player.t.energy.gte(tmp.layerReqs.h)||player.h.unl)&&layerUnl('h')) ? (formatWhole(player.h.points)+' hindrance spirit') : ('Reach '+format(tmp.layerReqs.h)+' time energy to unlock')" v-bind:class = "{ treeNode: true, h: true, locked: (player.t.energy.lt(tmp.layerReqs.h)&&!player.h.unl), notify: player.notify.h, can: (player.t.energy.gte(tmp.layerReqs.h)||player.h.unl) }" > H< / button > < / td >
< td id = "q" v-if = "layerUnl('q')" > < button onclick = "showTab('q')" v-bind:tooltip = "((player.g.power.gte(tmp.layerReqs.q)||player.q.unl)&&layerUnl('q')) ? (formatWhole(player.q.points)+' quirks') : ('Reach '+format(tmp.layerReqs.q)+' generator power to unlock')" v-bind:class = "{ treeNode: true, q: true, locked: (player.g.power.lt(tmp.layerReqs.q)&&!player.q.unl), notify: player.notify.q, can: (player.g.power.gte(tmp.layerReqs.q)||player.q.unl) }" > Q< / button > < / td >
< td id = "ss" v-if = "layerUnl('ss')" > < button onclick = "showTab('ss')" v-bind:tooltip = "((player.s.points.gte(tmp.layerReqs.ss)||player.ss.unl)&&layerUnl('ss')) ? (formatWhole(player.ss.points)+' subspace energy') : ('Reach '+format(tmp.layerReqs.ss)+' space energy to unlock')" v-bind:class = "{ treeNode: true, ss: true, locked: (player.s.points.lt(tmp.layerReqs.ss)&&!player.ss.unl), notify: player.notify.ss, can: (player.s.points.gte(tmp.layerReqs.ss)||player.ss.unl) }" > SS< / button > < / td >
2020-09-03 21:59:23 +00:00
< / table > < table >
2020-09-07 02:33:31 +00:00
< td > < button class = "treeNode hidden" > < / button > < / td >
2020-09-03 21:59:23 +00:00
< / table > < table >
2020-09-09 02:13:45 +00:00
< td v-if = "player.tab=='tree'&&(player.m.unl||player.ba.unl)" class = "left" > < br > < br > < img class = "remove" src = "remove.png" onclick = "resetRow(4)" > < / img > < / td >
2020-09-08 23:22:22 +00:00
< td id = "m" v-if = "layerUnl('m')" > < button onclick = "showTab('m')" v-bind:tooltip = "((player.h.points.gte(tmp.layerReqs.m)||player.m.unl)&&layerUnl('m')) ? (formatWhole(player.m.points)+' magic') : ('Reach '+format(tmp.layerReqs.m)+' hindrance spirit to unlock')" v-bind:class = "{ treeNode: true, m: true, locked: (player.h.points.lt(tmp.layerReqs.m)&&!player.m.unl), notify: player.notify.m, can: (player.h.points.gte(tmp.layerReqs.m)||player.m.unl) }" > M< / button > < / td >
2020-09-07 02:33:31 +00:00
< td id = "ps" v-if = "layerUnl('ps')" > < button class = "treeNode ps can" > PS< / button > < / td >
2020-09-08 23:22:22 +00:00
< td id = "ba" v-if = "layerUnl('ba')" > < button onclick = "showTab('ba')" v-bind:tooltip = "((player.q.points.gte(tmp.layerReqs.ba)||player.ba.unl)&&layerUnl('ba')) ? (formatWhole(player.ba.points)+' balance energy') : ('Reach '+format(tmp.layerReqs.ba)+' quirks to unlock')" v-bind:class = "{ treeNode: true, ba: true, locked: (player.q.points.lt(tmp.layerReqs.ba)&&!player.ba.unl), notify: player.notify.ba, can: (player.q.points.gte(tmp.layerReqs.ba)||player.ba.unl) }" > BA< / button > < / td >
2020-09-07 02:33:31 +00:00
< / table > < table >
< td > < button class = "treeNode hidden" > < / button > < / td >
< / table > < table >
2020-09-09 02:13:45 +00:00
< td v-if = "player.tab=='tree'&&layerUnl('sp')" class = "left" > < br > < br > < img class = "remove" src = "remove.png" onclick = "resetRow(5)" > < / img > < / td >
2020-09-07 02:33:31 +00:00
< td id = "l" v-if = "layerUnl('l')" > < button class = "treeNode l can" > L< / button > < / td >
< td > < button class = "treeNode hidden" > < / button > < / td >
< td id = "sp" v-if = "layerUnl('sp')" > < button class = "treeNode sp can" > SP< / button > < / td >
< td > < button class = "treeNode hidden" > < / button > < / td >
< td id = "hs" v-if = "layerUnl('hs')" > < button class = "treeNode hs can" > HS< / button > < / td >
< td id = "i" v-if = "layerUnl('i')" > < button class = "treeNode i can" > I< / button > < / td >
2020-08-19 02:50:24 +00:00
< / table >
< canvas id = "treeCanvas" class = "canvas" > < / canvas >
< / div >
< div v-for = "layer in LAYERS" >
2020-08-19 19:53:14 +00:00
< div v-if = "player.tab==layer" class = "col right" >
2020-08-19 02:50:24 +00:00
< button class = "back" onclick = "showTab('tree')" > ←< / button > < br > < br > < br >
You have < h2 v-bind:class = "{ [layer+'_txt']: true }" > {{formatWhole(player[layer].points)}}< / h2 > {{LAYER_RES[layer]}}< span v-if = "Object.keys(LAYER_EFFS).includes(layer)" > , {{getLayerEffDesc(layer)}}< / span >
< br > < br >
< div v-if = "layer=='b'" >
2020-09-09 02:13:45 +00:00
< table > < tr > < td v-if = "milestoneShown(player.b.best.gte(8))" v-bind:class = "{ milestone: player.b.best.lt(8)&&player.h.best.lt(1)&&player.q.best.lt(1), milestoneDone: player.b.best.gte(8)||player.h.best.gte(1)||player.q.best.gte(1) }" > < h3 > 8 Boosters< / h3 > < br > Keep Prestige Upgrades on reset< / td > < / tr >
< tr > < td v-if = "milestoneShown(player.b.best.gte(15))" v-bind:class = "{ milestone: player.b.best.lt(15), milestoneDone: player.b.best.gte(15) }" > < h3 > 15 Boosters< / h3 > < br > You can buy max Boosters< / td > < / tr > < / table >
2020-08-19 02:50:24 +00:00
< / div >
< div v-if = "layer=='g'" >
2020-08-21 19:02:34 +00:00
You have {{format(player.g.power)}} Generator Power, which multiplies Point gain by {{format(tmp.genPowEff)}}< br > < br >
2020-09-09 02:13:45 +00:00
< table > < tr > < td v-if = "milestoneShown(player.g.best.gte(8)||player.h.best.gte(1)||player.q.best.gte(1))" v-bind:class = "{ milestone: player.g.best.lt(8)&&player.h.best.lt(1)&&player.q.best.lt(1), milestoneDone: player.g.best.gte(8)||player.h.best.gte(1)||player.q.best.gte(1) }" > < h3 > 8 Generators< / h3 > < br > Keep Prestige Upgrades on reset< / td > < / tr >
< tr > < td v-if = "milestoneShown(player.g.best.gte(10))" v-bind:class = "{ milestone: player.g.best.lt(10), milestoneDone: player.g.best.gte(10) }" > < h3 > 10 Generators< / h3 > < br > Gain 100% of Prestige Point gain every second< / td > < / tr >
< tr > < td v-if = "milestoneShown(player.g.best.gte(15))" v-bind:class = "{ milestone: player.g.best.lt(15), milestoneDone: player.g.best.gte(15) }" > < h3 > 15 Generators< / h3 > < br > You can buy max Generators< / td > < / tr > < / table >
2020-08-19 02:50:24 +00:00
< / div >
< div v-if = "layer=='e'" >
2020-09-09 02:13:45 +00:00
< table > < tr > < td v-if = "milestoneShown(player.e.best.gte(2))" v-bind:class = "{ milestone: player.e.best.lt(2), milestoneDone: player.e.best.gte(2) }" > < h3 > 2 enhance points< / h3 > < br > Keep Booster/Generator milestones on reset< / td > < / tr >
< tr > < td v-if = "milestoneShown(player.e.best.gte(10)||player.h.best.gte(1)||player.q.best.gte(1))" v-bind:class = "{ milestone: player.e.best.lt(10)&&player.h.best.lt(1)&&player.q.best.lt(1), milestoneDone: player.e.best.gte(10)||player.h.best.gte(1)||player.q.best.gte(1) }" > < h3 > 10 enhance points< / h3 > < br > Keep Prestige Upgrades on reset< / td > < / tr > < / table > < br > < br >
2020-09-08 20:47:32 +00:00
< button v-bind:class = "{ upgBig: true, can: player.e.points.gte(getEnhancerCost()), locked: player.e.points.lt(getEnhancerCost()), e: true }" onclick = "buyEnhancer()" > Buy an Enhancer< br > Cost: {{formatWhole(getEnhancerCost())}} Enhance Points< br > Amount: {{formatWhole(player.e.enhancers.sub(tmp.subbedEnh))}}< br > Multiplies Prestige Point gain by {{format(tmp.enhEff)}}< br > Adds< span v-if = "player.q.upgrades.includes(53)" > and multiplies< / span > to base of Booster/Generator effects by {{format(tmp.enhEff2)}}< / button >
2020-08-19 02:50:24 +00:00
< / div >
< div v-if = "layer=='t'" >
2020-08-21 19:02:34 +00:00
You have {{format(player.t.energy)}} Time Energy, which multiplies Point gain & Prestige Point gain by {{format(tmp.timeEff)}}< br > < br >
2020-09-09 02:13:45 +00:00
< table > < tr > < td v-if = "milestoneShown(player.t.best.gte(2))" v-bind:class = "{ milestone: player.t.best.lt(2), milestoneDone: player.t.best.gte(2) }" > < h3 > 2 time capsules< / h3 > < br > Keep Booster/Generator milestones on reset< / td > < / tr >
< tr > < td v-if = "milestoneShown(player.t.best.gte(3)||player.h.best.gte(1)||player.q.best.gte(1))" v-bind:class = "{ milestone: player.t.best.lt(3)&&player.h.best.lt(1)&&player.q.best.lt(1), milestoneDone: player.t.best.gte(3)||player.h.best.gte(1)||player.q.best.gte(1) }" > < h3 > 3 time capsules< / h3 > < br > Keep Prestige Upgrades on reset< / td > < / tr >
< tr > < td v-if = "milestoneShown(player.t.best.gte(4))" v-bind:class = "{ milestone: player.t.best.lt(4), milestoneDone: player.t.best.gte(4) }" > < h3 > 4 time capsules< / h3 > < br > Keep Booster Upgrades on all row 3 resets< / td > < / tr >
< tr > < td v-if = "milestoneShown(player.t.best.gte(5), true)" v-bind:class = "{ milestone: player.t.best.lt(5), milestoneDone: player.t.best.gte(5) }" > < h3 > 5 time capsules< / h3 > < br > Automatically purchase Boosters < button v-if = "player.t.best.gte(5)" class = "smallUpg can b" onclick = "toggleAuto('b')" > {{player.b.auto?"ON":"OFF"}}< / button > < / td > < / tr >
< tr > < td v-if = "milestoneShown(player.t.best.gte(12))" v-bind:class = "{ milestone: player.t.best.lt(12), milestoneDone: player.t.best.gte(12) }" > < h3 > 12 time capsules< / h3 > < br > Boosters reset nothing< / td > < / tr >
2020-08-19 19:53:14 +00:00
< / table > < br > < br >
2020-08-19 02:50:24 +00:00
< button v-bind:class = "{ upgBig: true, can: (player.b.points.gte(getExtCapsuleCost())&&player.t.unl), locked: (player.b.points.lt(getExtCapsuleCost())||!player.t.unl), t: true }" onclick = "buyExtCapsule()" > Buy an extra Time Capsule< br > Cost: {{formatWhole(getExtCapsuleCost())}} Boosters< br > Amount: {{formatWhole(player.t.extCapsules)}}< / button >
< / div >
< div v-if = "layer=='s'" >
2020-08-25 22:42:43 +00:00
You have {{formatWhole(getSpace())}} Space remaining for Space Buildings.< br > < br >
2020-09-09 02:13:45 +00:00
< table > < tr > < td v-if = "milestoneShown(player.s.best.gte(2))" v-bind:class = "{ milestone: player.s.best.lt(2), milestoneDone: player.s.best.gte(2) }" > < h3 > 2 space energy< / h3 > < br > Keep Booster/Generator milestones on reset< / td > < / tr >
< tr > < td v-if = "milestoneShown(player.s.best.gte(3)||player.h.best.gte(1)||player.h.best.gte(1))" v-bind:class = "{ milestone: player.s.best.lt(3)&&player.h.best.lt(1)&&player.q.best.lt(1), milestoneDone: player.s.best.gte(3)||player.h.best.gte(1)||player.q.best.gte(1) }" > < h3 > 3 space energy< / h3 > < br > Keep Prestige Upgrades on reset< / td > < / tr >
< tr > < td v-if = "milestoneShown(player.s.best.gte(4))" v-bind:class = "{ milestone: player.s.best.lt(4), milestoneDone: player.s.best.gte(4) }" > < h3 > 4 space energy< / h3 > < br > Keep Generator Upgrades on all row 3 resets< / td > < / tr >
< tr > < td v-if = "milestoneShown(player.s.best.gte(5), true)" v-bind:class = "{ milestone: player.s.best.lt(5), milestoneDone: player.s.best.gte(5) }" > < h3 > 5 space energy< / h3 > < br > Automatically purchase Generators < button v-if = "player.s.best.gte(5)" class = "smallUpg can g" onclick = "toggleAuto('g')" > {{player.g.auto?"ON":"OFF"}}< / button > < / td > < / tr >
< tr > < td v-if = "milestoneShown(player.s.best.gte(12))" v-bind:class = "{ milestone: player.s.best.lt(12), milestoneDone: player.s.best.gte(12) }" > < h3 > 12 space energy< / h3 > < br > Generators reset nothing< / td > < / tr >
2020-08-19 22:12:31 +00:00
< / table > < br > < br >
2020-08-25 22:42:43 +00:00
You have {{ format(player.g.power) }} Generator Power< br > < br >
2020-08-19 02:50:24 +00:00
< button onclick = "respecSpaceBuildings()" v-bind:class = "{ longUpg: true, can: player.s.unl, locked: !player.s.unl }" > Respec Space Buildings< / button > < br >
2020-08-24 02:01:14 +00:00
< div class = "upgRow" >
< div v-for = "id in 5" >
2020-09-09 02:13:45 +00:00
< button v-if = "tmp.sbUnl>=id" 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(player.s.buildings[id])}}< br > Cost: {{format(getSpaceBuildingCost(id))}} Generator Power< / button > < br > < br >
2020-08-29 18:00:32 +00:00
< button v-if = "tmp.sbUnl>=id&&player.q.best.gte(2500)" v-bind:class = "{ longUpg: true, can: player.s.buildings[id].gte(1), locked: player.s.buildings[id].lt(1) }" v-on:click = "destroyBuilding(id)" > Destroy One< / button > < br >
< button v-if = "tmp.sbUnl>=id&&player.q.best.gte(2500)" v-bind:class = "{ longUpg: true, can: player.s.buildings[id].gte(1), locked: player.s.buildings[id].lt(1) }" v-on:click = "destroyBuilding(id, true)" > Destroy All< / button >
2020-08-24 02:01:14 +00:00
< / div >
< / div >
2020-08-19 02:50:24 +00:00
< / div >
2020-08-22 01:16:23 +00:00
< div v-if = "layer=='sb'" >
2020-09-09 02:13:45 +00:00
< table > < tr > < td v-if = "milestoneShown(player.sb.best.gte(3)||player.h.best.gte(1)||player.q.best.gte(1))" v-bind:class = "{ milestone: player.sb.best.lt(3)&&player.h.best.lt(1)&&player.q.best.lt(1), milestoneDone: player.sb.best.gte(3)||player.h.best.gte(1)||player.q.best.gte(1) }" > < h3 > 3 Super-Boosters< / h3 > < br > Keep Prestige Upgrades on reset< / td > < / tr >
< tr > < td v-if = "milestoneShown(player.sb.best.gte(4))" v-bind:class = "{ milestone: player.sb.best.lt(4), milestoneDone: player.sb.best.gte(4) }" > < h3 > 4 Super-Boosters< / h3 > < br > Keep Booster/Generator milestones on reset< / td > < / tr > < / table >
2020-08-22 01:16:23 +00:00
< / div >
2020-09-04 17:45:22 +00:00
< div v-if = "layer=='sg'" >
You have {{format(player.sg.power)}} Super-Generator Power, which multiplies the Generator base by {{format(tmp.sGenPowEff)}}< br > < br >
< table >
2020-09-09 02:13:45 +00:00
< tr > < td v-if = "milestoneShown(player.sg.best.gte(1))" v-bind:class = "{ milestone: player.sg.best.lt(1), milestoneDone: player.sg.best.gte(1) }" > < h3 > 1 Super-Generator< / h3 > < br > You can buy max Super-Generators, and Super-Generators reset nothing< / td > < / tr >
< tr > < td v-if = "milestoneShown(player.sg.best.gte(2), true)" v-bind:class = "{ milestone: player.sg.best.lt(2), milestoneDone: player.sg.best.gte(2) }" > < h3 > 2 Super-Generators< / h3 > < br > Automatically purchase Super-Generators < button v-if = "player.sg.best.gte(2)" class = "smallUpg can sg" onclick = "toggleAuto('sg')" > {{player.sg.auto?"ON":"OFF"}}< / button > < / td > < / tr >
2020-09-04 17:45:22 +00:00
< / table >
< / div >
2020-08-26 01:45:22 +00:00
< div v-if = "layer=='h'" >
2020-09-09 02:13:45 +00:00
< table > < tr > < td v-if = "milestoneShown(player.h.best.gte(1))" v-bind:class = "{ milestone: player.h.best.lt(1), milestoneDone: player.h.best.gte(1) }" > < h3 > 1 Hindrance Spirit< / h3 > < br > Keep Prestige Upgrades on all previous resets, and gain 100x more Enhance Points< / td > < / tr >
< tr > < td v-if = "milestoneShown(player.h.best.gte(2))" v-bind:class = "{ milestone: player.h.best.lt(2), milestoneDone: player.h.best.gte(2) }" > < h3 > 2 Hindrance Spirit< / h3 > < br > Keep all third row milestones on all fourth row resets, and start with your best-ever Space< / td > < / tr >
< tr > < td v-if = "milestoneShown(player.h.best.gte(4))" v-bind:class = "{ milestone: player.h.best.lt(4), milestoneDone: player.h.best.gte(4) }" > < h3 > 4 Hindrance Spirit< / h3 > < br > Keep Time, Enhance, and Space Upgrades on all fourth row resets< / td > < / tr >
< tr > < td v-if = "milestoneShown(player.h.best.gte(5), true)" v-bind:class = "{ milestone: player.h.best.lt(5), milestoneDone: player.h.best.gte(5) }" > < h3 > 5 Hindrance Spirit< / h3 > < br > Automatically purchase Extra Time Capsules < button v-if = "player.h.best.gte(5)" class = "smallUpg can t" onclick = "toggleAuto('t', 'Cap')" > {{player.t.autoCap?"ON":"OFF"}}< / button > < / td > < / tr >
< tr > < td v-if = "milestoneShown(player.h.best.gte(10))" v-bind:class = "{ milestone: player.h.best.lt(10), milestoneDone: player.h.best.gte(10) }" > < h3 > 10 Hindrance Spirit< / h3 > < br > Keep Prestige & Super-Booster Upgrades on all fourth row resets< / td > < / tr >
< tr > < td v-if = "milestoneShown(player.h.best.gte(15), true)" v-bind:class = "{ milestone: player.h.best.lt(15), milestoneDone: player.h.best.gte(15) }" > < h3 > 15 Hindrance Spirit< / h3 > < br > Automatically purchase Super-Boosters < button v-if = "player.h.best.gte(15)" class = "smallUpg can sb" onclick = "toggleAuto('sb')" > {{player.sb.auto?"ON":"OFF"}}< / button > < / td > < / tr >
< tr > < td v-if = "milestoneShown(player.h.best.gte(25))" v-bind:class = "{ milestone: player.h.best.lt(25), milestoneDone: player.h.best.gte(25) }" > < h3 > 25 Hindrance Spirit< / h3 > < br > Time resets reset nothing< / td > < / tr >
< tr > < td v-if = "milestoneShown(player.h.best.gte(2500))" v-bind:class = "{ milestone: player.h.best.lt(2500), milestoneDone: player.h.best.gte(2500) }" > < h3 > 2,500 Hindrance Spirit< / h3 > < br > Super-Boosters reset nothing< / td > < / tr >
2020-08-26 01:45:22 +00:00
< / table >
< / div >
< div v-if = "layer=='q'" >
You have {{format(player.q.energy)}} Quirk Energy (generated by Quirk Layers), which multiplies Point & Generator Power gain by {{format(tmp.quirkEff)}}< br > < br >
2020-09-09 02:13:45 +00:00
< table > < tr > < td v-if = "milestoneShown(player.q.best.gte(1))" v-bind:class = "{ milestone: player.q.best.lt(1), milestoneDone: player.q.best.gte(1) }" > < h3 > 1 Quirk< / h3 > < br > Keep Prestige Upgrades on all previous resets, and gain 100x more Enhance Points< / td > < / tr >
< tr > < td v-if = "milestoneShown(player.q.best.gte(2))" v-bind:class = "{ milestone: player.q.best.lt(2), milestoneDone: player.q.best.gte(2) }" > < h3 > 2 Quirks< / h3 > < br > You can buy max Time Capsules & Space Energy< / td > < / tr >
< tr > < td v-if = "milestoneShown(player.q.best.gte(4))" v-bind:class = "{ milestone: player.q.best.lt(4), milestoneDone: player.q.best.gte(4) }" > < h3 > 4 Quirks< / h3 > < br > Keep Space Buildings on all fourth row resets< / td > < / tr >
< tr > < td v-if = "milestoneShown(player.q.best.gte(5), true)" v-bind:class = "{ milestone: player.q.best.lt(5), milestoneDone: player.q.best.gte(5) }" > < h3 > 5 Quirks< / h3 > < br > Automatically purchase Enhancers < button v-if = "player.q.best.gte(5)" class = "smallUpg can e" onclick = "toggleAuto('e')" > {{player.e.auto?"ON":"OFF"}}< / button > < / td > < / tr >
< tr > < td v-if = "milestoneShown(player.q.best.gte(10), true)" v-bind:class = "{ milestone: player.q.best.lt(10), milestoneDone: player.q.best.gte(10) }" > < h3 > 10 Quirks< / h3 > < br > Automatically purchase Time Capsules & Space Energy< br > < button v-if = "player.q.best.gte(10)" class = "smallUpg can t" onclick = "toggleAuto('t')" > {{player.t.auto?"ON":"OFF"}}< / button > < button v-if = "player.q.best.gte(10)" class = "smallUpg can s" onclick = "toggleAuto('s')" > {{player.s.auto?"ON":"OFF"}}< / button > < / td > < / tr >
< tr > < td v-if = "milestoneShown(player.q.best.gte(15))" v-bind:class = "{ milestone: player.q.best.lt(15), milestoneDone: player.q.best.gte(15) }" > < h3 > 15 Quirks< / h3 > < br > Gain 100% of Enhance Point gain every second< / td > < / tr >
< tr > < td v-if = "milestoneShown(player.q.best.gte(25))" v-bind:class = "{ milestone: player.q.best.lt(25), milestoneDone: player.q.best.gte(25) }" > < h3 > 25 Quirks< / h3 > < br > Space resets reset nothing< / td > < / tr >
< tr > < td v-if = "milestoneShown(player.q.best.gte(2500))" v-bind:class = "{ milestone: player.q.best.lt(2500), milestoneDone: player.q.best.gte(2500) }" > < h3 > 2,500 Quirks< / h3 > < br > You can destroy individual Space Buildings< / td > < / tr >
2020-08-26 01:45:22 +00:00
< / table > < br > < br >
< button v-bind:class = "{ upgBig: true, can: player.q.points.gte(getQuirkLayerCost()), locked: player.q.points.lt(getQuirkLayerCost()), q: true }" onclick = "buyQuirkLayer()" > Increment your Quirk Layer< br > Cost: {{formatWhole(getQuirkLayerCost())}} Quirks< br > Layers: {{formatWhole(player.q.layers)}}< / button >
< / div >
2020-08-30 16:18:34 +00:00
< div v-if = "layer=='hb'" >
< table >
2020-09-09 02:13:45 +00:00
< tr > < td v-if = "milestoneShown(player.hb.best.gte(1))" v-bind:class = "{ milestone: player.hb.best.lt(1), milestoneDone: player.hb.best.gte(1) }" > < h3 > 1 Hyper-Booster< / h3 > < br > You can buy max Super-Boosters< / td > < / tr >
2020-08-30 16:18:34 +00:00
< / table >
< / div >
2020-08-29 23:43:53 +00:00
< div v-if = "layer=='ss'" >
You have {{format(player.ss.subspace)}} Subspace, which provides you with {{formatWhole(tmp.ssEff1)}} extra Space, makes all Space Buildings {{format(tmp.ssEff2)}}x cheaper, and makes all Space Buildings {{format(tmp.ssEff3.sub(1).times(100))}}% stronger< br > < br >
2020-08-30 01:39:01 +00:00
< table >
2020-09-09 02:13:45 +00:00
< tr > < td v-if = "milestoneShown(player.ss.best.gte(1), true)" v-bind:class = "{ milestone: player.ss.best.lt(1), milestoneDone: player.ss.best.gte(1) }" > < h3 > 1 Subspace Energy< / h3 > < br > Automatically purchase Space Buildings < button v-if = "player.ss.best.gte(1)" class = "smallUpg can s" onclick = "toggleAuto('s', 'Build')" > {{player.s.autoBuild?"ON":"OFF"}}< / button > < / td > < / tr >
2020-08-30 01:39:01 +00:00
< / table >
2020-08-29 23:43:53 +00:00
< / div >
2020-09-03 21:59:23 +00:00
< div v-if = "layer=='m'" >
< br >
2020-09-08 00:11:57 +00:00
Note: Activating a Spell costs Magic.< br > < br >
2020-09-03 21:59:23 +00:00
< div class = "upgRow" >
< div v-for = "id in 3" >
2020-09-09 02:13:45 +00:00
< button v-bind:class = "{ upg: true, bought: spellActive(id), can: ((player.m.points.gte(player.m.toCast[id]))&&player.m.unl&&!spellActive(id)), locked: (!(player.m.points.gte(player.m.toCast[id])||spellActive(id))), m: true }" v-on:click = "activateSpell(id)" > < h3 > {{SPELL_NAMES[id]}}< / h3 > < br > {{getSpellDesc(id)}}< br > < br > Time: {{formatTime(player.m.spellTimes[id])}}< / button > < br > < br >
2020-09-08 00:11:57 +00:00
< div v-if = "player.m.upgrades.includes(41)" >
< input v-model = "player.m.toCast[id]" v-on:change = "updateToCast(id)" > < / input > < br > < br >
< / div >
2020-09-03 21:59:23 +00:00
< / div >
2020-09-08 00:11:57 +00:00
< / div >
2020-09-03 21:59:23 +00:00
You have {{formatWhole(player.m.hexes)}} Hexes, which are multiplying Hindrance Spirit & Quirk gain by {{format(tmp.hexEff)}}< br > < br >
< table >
2020-09-09 02:13:45 +00:00
< 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) }" > < h3 > 1 Magic< / h3 > < 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) }" > < h3 > 2 Magic< / h3 > < 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) }" > < h3 > 3 Magic< / h3 > < br > Gain 100% 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) }" > < h3 > 4 Magic< / h3 > < 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(1000), true)" v-bind:class = "{ milestone: player.m.best.lt(1000), milestoneDone: player.m.best.gte(1000) }" > < h3 > 1,000 Magic< / h3 > < br > Automatically cast Spells < button v-if = "player.m.best.gte(1000)" class = "smallUpg can m" onclick = "toggleAuto('m')" > {{player.m.auto?"ON":"OFF"}}< / button > < / td > < / tr >
< tr > < td v-if = "milestoneShown(player.m.best.gte(2.5e9))" v-bind:class = "{ milestone: player.m.best.lt(2.5e9), milestoneDone: player.m.best.gte(2.5e9) }" > < h3 > 2.5e9 Magic< / h3 > < br > Gain 100% of Hex gain every second, and Spells last 10x longer< / td > < / tr >
2020-09-03 21:59:23 +00:00
< / table >
< / div >
< div v-if = "layer=='ba'" >
2020-09-09 02:13:45 +00:00
< br > You have {{format(player.ba.power)}} Balance Power, which is multiplying Hindrance Spirit & Quirk gain by {{format(tmp.balEff)}}< br >
You have {{format(player.ba.positivity)}} Positivity and {{format(player.ba.negativity)}} Negativity, which are multiplying Balance Power gain by {{format(tmp.balEff2)}}< br > < br >
2020-09-03 21:59:23 +00:00
< table >
2020-09-09 02:13:45 +00:00
< tr > < td v-if = "milestoneShown(player.ba.best.gte(1))" v-bind:class = "{ milestone: player.ba.best.lt(1), milestoneDone: player.ba.best.gte(1) }" > < h3 > 1 Balance Energy< / h3 > < br > Keep row 4 milestones on all resets< / td > < / tr >
< tr > < td v-if = "milestoneShown(player.ba.best.gte(2))" v-bind:class = "{ milestone: player.ba.best.lt(2), milestoneDone: player.ba.best.gte(2) }" > < h3 > 2 Balance Energy< / h3 > < br > Keep Quirk Upgrades on all resets< / td > < / tr >
< tr > < td v-if = "milestoneShown(player.ba.best.gte(3), true)" v-bind:class = "{ milestone: player.ba.best.lt(3), milestoneDone: player.ba.best.gte(3) }" > < h3 > 3 Balance Energy< / h3 > < br > Automatically purchase Quirk Layers < button v-if = "player.ba.best.gte(3)" class = "smallUpg can q" onclick = "toggleAuto('q')" > {{player.q.auto?"ON":"OFF"}}< / button > < / td > < / tr >
< tr > < td v-if = "milestoneShown(player.ba.best.gte(5))" v-bind:class = "{ milestone: player.ba.best.lt(5), milestoneDone: player.ba.best.gte(5) }" > < h3 > 5 Balance Energy< / h3 > < br > Keep Hyper-Booster & Subspace Upgrades on all resets< / td > < / tr >
< tr > < td v-if = "milestoneShown(player.ba.best.gte(8))" v-bind:class = "{ milestone: player.ba.best.lt(8), milestoneDone: player.ba.best.gte(8) }" > < h3 > 8 Balance Energy< / h3 > < br > You can buy max Hyper-Boosters & Subspace Energy, and Hyper-Boosters/Subspace Energy reset nothing< / td > < / tr >
2020-09-03 21:59:23 +00:00
< / table >
< / div >
2020-08-19 02:50:24 +00:00
< br > < br > < br >
2020-09-08 23:22:22 +00:00
< button v-if = "LAYER_TYPE[layer]=='normal'" v-bind:class = "{ [layer]: true, reset: true, locked: tmp.layerAmt[layer].lt(tmp.layerReqs[layer]), can: tmp.layerAmt[layer].gte(tmp.layerReqs[layer]) }" v-on:click = "doReset(layer)" > Reset for +< b > {{formatWhole(tmp.resetGain[layer])}}< / b > {{LAYER_RES[layer]}}< br > Next at {{ (LAYER_RES_CEIL.includes(layer) ? formatWhole(tmp.nextAt[layer]) : format(tmp.nextAt[layer])) }} {{ LAYER_AMT_NAMES[layer] }}< / button >
< button v-if = "LAYER_TYPE[layer]=='static'" v-bind:class = "{ [layer]: true, reset: true, locked: tmp.layerAmt[layer].lt(tmp.nextAt[layer]), can: tmp.layerAmt[layer].gte(tmp.nextAt[layer]) }" v-on:click = "doReset(layer)" > Reset for +< b > {{formatWhole(tmp.resetGain[layer])}}< / b > {{LAYER_RES[layer]}}< br > Req: {{(LAYER_RES_CEIL.includes(layer) ? formatWhole(tmp.nextAt[layer]) : format(tmp.nextAt[layer]))}} {{ LAYER_AMT_NAMES[layer] }}< / button >
2020-08-19 02:50:24 +00:00
< br > < br > < br >
2020-08-24 02:01:14 +00:00
< div class = "upgTable" >
< div v-for = "row in LAYER_UPGS[layer].rows" class = "upgRow" >
2020-09-07 14:16:04 +00:00
< div v-for = "col in LAYER_UPGS[layer].cols" class = "upgAlign" >
2020-09-08 23:22:22 +00:00
< 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 >
2020-09-07 14:16:04 +00:00
< / div >
2020-08-24 02:01:14 +00:00
< / div >
< / div >
2020-08-26 16:26:46 +00:00
< br > < br >
< 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" >
2020-08-27 15:38:26 +00:00
< 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))}" >
2020-08-26 16:26:46 +00:00
< br > < h3 > {{H_CHALLS[row*10+col].name}}< / h3 > < br > < br >
2020-08-30 16:18:34 +00:00
< 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 >
2020-08-26 16:26:46 +00:00
{{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 >
2020-08-26 19:08:00 +00:00
< span v-if = "H_CHALLS[row*10+col].effDisp!==undefined" > Currently: {{H_CHALLS[row*10+col].effDisp(H_CHALLS[row*10+col].currently())}}< / span >
2020-08-26 16:26:46 +00:00
< / div >
< / div >
< / div >
< / div >
< br > < br >
2020-08-19 02:50:24 +00:00
< / div >
< / div >
< / div >
< / body >