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" / >
< 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-08-19 19:53:14 +00:00
< div class = "vl" > < / div >
2020-08-20 04:55:26 +00:00
< div v-if = "player.tab=='changelog'" class = "col right" >
< button class = "back" onclick = "showTab('tree')" > ←< / button > < br > < br >
2020-09-10 00:40:07 +00:00
< h3 > v1.0 Beta 4< / h3 >
< ul >
< li > Balanced up to 1e40,000,000 Points & 500,000 Super-Prestige Points< / li >
< / ul > < br >
2020-09-09 22:47:26 +00:00
< h3 > v1.0 Beta 3< / h3 >
< ul >
< li > Added a hotkey for the fourth Spell< / li >
< li > Balanced up to 1e29,000,000 Points & 10,000 Super-Prestige Points< / li >
< / ul > < br >
2020-09-09 16:51:59 +00:00
< h3 > v1.0 Beta 2< / h3 >
< ul >
< li > Fixed a bug involving the fourth Spell< / li >
< li > Added more Super-Prestige Upgrades< / li >
< li > Balanced up to 1e26,000,000 Points & 250 Super-Prestige Points< / li >
< / ul > < br >
2020-09-09 02:10:25 +00:00
< h3 > v1.0 Beta 1< / h3 >
< ul >
< li > Implemented the Super-Prestige layer (unfinished)< / li >
< li > Balanced up to 1e18,000,000 Points & 10 Super-Prestige Points< / li >
< / ul > < br >
< h3 > Beta v1.2< / h3 >
2020-09-08 22:28:40 +00:00
< 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 >
< div v-if = "player.tab=='credits'" class = "col right" >
< 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 >
2020-08-27 15:38:26 +00:00
Made by Jacorb< br >
Idea by papyrus (on discord)< br >
2020-08-25 22:42:43 +00:00
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 > .
2020-08-20 04:55:26 +00:00
< / div >
2020-08-19 22:12:31 +00:00
< div v-if = "player.tab=='info'" class = "col right" >
< button class = "back" onclick = "showTab('tree')" > ←< / button > < br > < br > < br > < br > < br >
2020-08-24 02:01:14 +00:00
Time Played: {{ formatTime(player.timePlayed) }}< br > < br > < br >
2020-08-25 22:42:43 +00:00
< div id = "cl" onclick = "showTab('credits')" > Credits< / div > < br >
2020-09-04 03:17:05 +00:00
< div id = "cl" onclick = "showTab('changelog')" > Changelog< / div > < br >
2020-09-07 02:17:10 +00:00
< div id = "cl" onclick = "window.open('https://discord.gg/wwQfgPa','mywindow')" target = "_blank" > My Discord< / div > < br > < br >
2020-08-19 22:12:31 +00:00
< h3 > Hotkeys< / h3 > < br > < br >
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 >
2020-09-09 22:47:26 +00:00
3: Cast spell 3< br >
< span v-if = "player.sp.upgrades.includes(13)" > 4: Cast spell 4< br > < / span >
< / span >
2020-09-03 21:59:23 +00:00
< span v-if = "player.ba.unl" > A: Balance reset< / span > < br >
2020-09-09 02:10:25 +00:00
< span v-if = "player.sp.unl" > Shift+P: Super-Prestige 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-08-19 02:50:24 +00:00
< button class = "back" onclick = "showTab('tree')" > ←< / button > < br > < br > < br > < br > < br >
< table >
< tr >
< td > < button class = "opt" onclick = "save()" > Save< / button > < / td >
< 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 >
< / tr >
< tr >
< td > < button class = "opt" onclick = "toggleOpt('autosave')" > Autosave: {{ player.autosave?"ON":"OFF" }}< / button > < / td >
2020-08-27 19:12:20 +00:00
< td > < button class = "opt" onclick = "adjustMSDisp()" > Show Milestones: {{ player.msDisplay.toUpperCase() }}< / button > < / td >
2020-09-03 21:59:23 +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 >
< / table >
< / div >
2020-08-25 22:42:43 +00:00
< div id = "treeTab" onscroll = "resizeCanvas()" class = "col left" >
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-08-19 22:20:42 +00:00
< br > You have < h2 > {{format(player.points)}}< / h2 > Points
2020-08-19 02:50:24 +00:00
< br > < br > < br > < br > < br >
< table >
< tr >
2020-08-21 19:02:34 +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), can: (player.points.gte(tmp.layerReqs.p)||player.p.unl) }" > P< / button > < / td >
2020-08-19 02:50:24 +00:00
< / tr >
< / table > < table >
< tr >
< td > < button class = "treeNode hidden" > < / button > < / td >
< / tr >
< / table > < table >
< tr >
< td v-if = "player.b.unl||player.g.unl" class = "left" > < br > < br > < img class = "remove" src = "remove.png" onclick = "resetRow(1)" > < / img > < / td >
2020-08-21 19:02:34 +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), 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), can: (player.points.gte(tmp.layerReqs.g)||player.g.unl) }" > G< / button > < / td >
2020-08-19 02:50:24 +00:00
< / tr >
< / table > < table >
< tr >
< td > < button class = "treeNode hidden" > < / button > < / td >
< / tr >
< / table > < table >
< tr >
2020-08-22 01:16:23 +00:00
< td v-if = "player.e.unl||player.t.unl||player.s.unl||player.sb.unl" class = "left" > < br > < br > < img class = "remove" src = "remove.png" onclick = "resetRow(2)" > < / img > < / td >
< 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), can: (player.b.points.gte(tmp.layerReqs.sb)||player.sb.unl) }" > SB< / button > < / td >
2020-08-21 19:02:34 +00:00
< 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), 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), 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), can: (player.points.gte(tmp.layerReqs.s)||player.s.unl) }" > S< / button > < / td >
2020-09-04 17:45:22 +00:00
< 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), can: (player.g.points.gte(tmp.layerReqs.sg)||player.sg.unl) }" > SG< / button > < / td >
2020-08-19 02:50:24 +00:00
< / tr >
2020-08-26 01:45:22 +00:00
< / table > < table >
< tr >
< td > < button class = "treeNode hidden" > < / button > < / td >
< / tr >
< / table > < table >
< tr >
< td v-if = "player.h.unl||player.q.unl" class = "left" > < br > < br > < img class = "remove" src = "remove.png" onclick = "resetRow(3)" > < / img > < / td >
2020-08-29 23:43:53 +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), can: (player.sb.points.gte(tmp.layerReqs.hb)||player.hb.unl) }" > HB< / button > < / td >
2020-08-26 01:45:22 +00:00
< 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), 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), can: (player.g.power.gte(tmp.layerReqs.q)||player.q.unl) }" > Q< / button > < / td >
2020-08-29 23:43:53 +00:00
< 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), can: (player.s.points.gte(tmp.layerReqs.ss)||player.ss.unl) }" > SS< / button > < / td >
2020-08-26 01:45:22 +00:00
< / tr >
2020-09-03 21:59:23 +00:00
< / table > < table >
< tr >
< td > < button class = "treeNode hidden" > < / button > < / td >
< / tr >
< / table > < table >
< 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), can: (player.h.points.gte(tmp.layerReqs.m)||player.m.unl) }" > M< / button > < / td >
< 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), can: (player.q.points.gte(tmp.layerReqs.ba)||player.ba.unl) }" > BA< / button > < / td >
2020-09-09 02:10:25 +00:00
< / table > < table >
< tr >
< td > < button class = "treeNode hidden" > < / button > < / td >
< / tr >
< / table > < table >
< tr >
2020-09-09 02:24:29 +00:00
< td id = "sp" v-if = "layerUnl('sp')" > < button onclick = "showTab('sp')" v-bind:tooltip = "(player.p.points.gte(tmp.layerReqs.sp)||player.sp.unl) ? (formatWhole(player.sp.points)+' super-prestige points') : ('Reach '+format(tmp.layerReqs.sp)+' prestige points to unlock')" v-bind:class = "{ treeNode: true, sp: true, locked: (player.p.points.lt(tmp.layerReqs.sp)&&!player.sp.unl), can: (player.p.points.gte(tmp.layerReqs.sp)||player.sp.unl) }" > SP< / button > < / td >
2020-09-09 02:10:25 +00:00
< / tr >
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-08-27 19:12:20 +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) }" > 8 Boosters< 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) }" > 15 Boosters< 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-08-27 19:12:20 +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) }" > 8 Generators< 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) }" > 10 Generators< 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) }" > 15 Generators< br > You can buy max Generators< / td > < / tr > < / table >
2020-08-19 02:50:24 +00:00
< / div >
< div v-if = "layer=='e'" >
2020-08-27 19:12:20 +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) }" > 2 enhance points< 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) }" > 10 enhance points< 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-08-27 19:12:20 +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) }" > 2 time capsules< 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) }" > 3 time capsules< 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) }" > 4 time capsules< 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) }" > 5 time capsules< 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) }" > 12 time capsules< 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-08-27 19:12:20 +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) }" > 2 space energy< 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) }" > 3 space energy< 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) }" > 4 space energy< 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) }" > 5 space energy< 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) }" > 12 space energy< 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-08-29 18:00:32 +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)" > Building {{id}}< br > Level: {{formatWhole(player.s.buildings[id])}}< br > Cost: {{format(getSpaceBuildingCost(id))}} Generator Power< br > Effect: {{getSpaceBuildingEffDesc(id)}}< / button > < br > < 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)" > 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-08-27 19:12:20 +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) }" > 3 Super-Boosters< 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) }" > 4 Super-Boosters< 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 >
< 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) }" > 1 Super-Generator< 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) }" > 2 Super-Generators< 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 >
< / table >
< / div >
2020-08-26 01:45:22 +00:00
< div v-if = "layer=='h'" >
2020-08-27 19:12:20 +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) }" > 1 Hindrance Spirit< 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) }" > 2 Hindrance Spirit< 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) }" > 4 Hindrance Spirit< 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) }" > 5 Hindrance Spirit< 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) }" > 10 Hindrance Spirit< 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) }" > 15 Hindrance Spirit< 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) }" > 25 Hindrance Spirit< 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) }" > 2,500 Hindrance Spirit< 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-08-27 19:12:20 +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) }" > 1 Quirk< 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) }" > 2 Quirks< 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) }" > 4 Quirks< 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) }" > 5 Quirks< 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) }" > 10 Quirks< 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) }" > 15 Quirks< 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) }" > 25 Quirks< br > Space resets reset nothing< / td > < / tr >
2020-08-29 18:00:32 +00:00
< 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) }" > 2,500 Quirks< 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 >
< 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) }" > 1 Hyper-Booster< br > You can buy max Super-Boosters< / td > < / tr >
< / 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 >
< 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) }" > 1 Subspace Energy< 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 >
< / 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-09 02:10:25 +00:00
< span v-if = "player.sp.total.lt(2)" > Note: Activating a Spell costs Magic.< / span > < br > < br >
2020-09-03 21:59:23 +00:00
< div class = "upgRow" >
2020-09-09 02:10:25 +00:00
< div v-for = "id in tmp.spellsUnl" >
2020-09-08 00:11:57 +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 > Time Left: {{formatTime(player.m.spellTimes[id])}}< br > Effect: {{getSpellDesc(id)}}< / button > < br > < br >
< 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-04 02:25:24 +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) }" > 1 Magic< 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) }" > 2 Magic< br > Keep Hindrance completions on all resets< / td > < / tr >
2020-09-05 20:00:21 +00:00
< 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) }" > 3 Magic< br > Gain 100% of Hindrance Spirit & Quirk gain every second< / td > < / tr >
2020-09-04 02:25:24 +00:00
< 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) }" > 4 Magic< 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 >
2020-09-07 02:17:10 +00:00
< 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) }" > 1,000 Magic< 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 >
2020-09-05 20:00:21 +00:00
< 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) }" > 2.5e9 Magic< 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'" >
< br > You have {{format(player.ba.power)}} Balance Power, which is multiplying Hindrance Spirit & Quirk gain by {{format(tmp.balEff)}}< br > < br >
You have {{format(player.ba.positivity)}} Positivity< br >
You have {{format(player.ba.negativity)}} Negativity< br >
Your Positivity & Negativity are multiplying Balance Power gain by {{format(tmp.balEff2)}}< br > < br >
< table >
2020-09-04 02:25:24 +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) }" > 1 Balance Energy< 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) }" > 2 Balance Energy< 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) }" > 3 Balance Energy< 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) }" > 5 Balance Energy< 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) }" > 8 Balance Energy< 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-09-09 02:10:25 +00:00
< div v-if = "layer=='sp'" >
< table >
< tr > < td v-if = "milestoneShown(player.sp.total.gte(1))" v-bind:class = "{ milestone: player.sp.total.lt(1), milestoneDone: player.sp.total.gte(1) }" > 1 Total Super-Prestige Point< br > Upgrades of Rows 1-5 and Hindrances are kept on all resets< / td > < / tr >
< tr > < td v-if = "milestoneShown(player.sp.total.gte(2), true)" v-bind:class = "{ milestone: player.sp.total.lt(2), milestoneDone: player.sp.total.gte(2) }" > 2 Total Super-Prestige Points< br > Keep Magic Milestones on reset, Spells do not cost Magic, and Magic Upgrade 13's effect can be auto-set to your current Magic < button v-if = "player.sp.total.gte(2)" class = "smallUpg can m" onclick = "toggleAuto('m', 'Ins')" > {{player.m.autoIns?"ON":"OFF"}}< / button > < / td > < / tr >
< tr > < td v-if = "milestoneShown(player.sp.total.gte(5))" v-bind:class = "{ milestone: player.sp.total.lt(5), milestoneDone: player.sp.total.gte(5) }" > 5 Total Super-Prestige Point< br > Keep Balance Milestones on reset< / td > < / tr >
< tr > < td v-if = "milestoneShown(player.sp.total.gte(10))" v-bind:class = "{ milestone: player.sp.total.lt(10), milestoneDone: player.sp.total.gte(10) }" > 10 Total Super-Prestige Point< br > Gain 100% of Magic & Balance Power gain every second< / td > < / tr >
< / table >
< / div >
2020-08-19 02:50:24 +00:00
< br > < br > < br >
2020-08-25 22:42:43 +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)" > +{{formatWhole(tmp.resetGain[layer])}} {{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)" > +{{formatWhole(tmp.resetGain[layer])}} {{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" >
< div v-for = "col in LAYER_UPGS[layer].cols" > < 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 }}< br > Cost: {{ formatWhole(LAYER_UPGS[layer][row*10+col].cost) }} {{LAYER_RES[layer]}}< 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 > < / button > < / div >
< / 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 >