forked from Jacorb90/UE-Rewritten
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.html
More file actions
206 lines (206 loc) · 29.2 KB
/
index.html
File metadata and controls
206 lines (206 loc) · 29.2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
<!DOCTYPE html>
<head>
<title>Universe Expander: Rewritten</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="style.css">
<script type="text/javascript" src="js/important/break_eternity.js"></script>
<script type="text/javascript" src="js/important/format.js"></script>
<script type="text/javascript" src="js/important/temp.js"></script>
<script src="https://cdn.jsdelivr.net/npm/vue@2.6.12"></script>
<script type="text/javascript" src="js/important/setup.js"></script>
<script type="text/javascript" src="js/gameplay/basics.js"></script>
<script type="text/javascript" src="js/gameplay/first_reset.js"></script>
<script type="text/javascript" src="js/gameplay/quarks.js"></script>
<script type="text/javascript" src="js/gameplay/hadrons.js"></script>
<script type="text/javascript" src="js/gameplay/annihilation.js"></script>
<script type="text/javascript" src="js/gameplay/void.js"></script>
<script type="text/javascript" src="js/gameplay/photons.js"></script>
<script type="text/javascript" src="js/gameplay/antiquarks.js"></script>
</head>
<body onload="loadGame()">
<div id="app">
<div v-if="!player.begun">
<br><br><br>
<button class="prestige unlocked" style="width: 100px; height: 100px; font-size: 20px;" onclick="player.begun = true;"><b class="normal shadow">BEGIN</b></button>
</div>
<div v-if="player.begun">
<b> You are doing (hardcapped) by the classics so you can't having your Total Annihilation energy surpass 1e14.</b><br>
Your universe has a volume of <b>{{format(player.size, 3)}}m<sup>3</sup></b> ({{(player.size.gte(tmp.compaction.start)?"+":"×")+format(player.size.gte(tmp.compaction.start)?displayCompactionSizeGain():tmp.sizeBase.root(player.size.gte(tmp.slowdown.start)?2:1), 3)}}/s)<br>
<div class="slowdown" v-if="player.size.gte(tmp.slowdown.start)">Universal Slowdown is slowing down your Universe's growth beyond {{format(tmp.slowdown.start)}}m<sup>3</sup></div><div v-else><br></div>
<div class="compaction" v-if="player.size.gte(tmp.compaction.start)">Universal Compaction is halting your Universe's growth beyond {{format(tmp.compaction.start)}}m<sup>3</sup></div><div v-else><br></div><br>
<div><table>
<tr>
<td v-for="(tab, name) in tabs.normal"><button v-if="tabs.normal[name]()" v-on:click="showTab(name, 'normal')" v-bind:class="{[name.toLowerCase()]: true, tabbtn: true, unlocked: true}">{{name}}</button></td>
</tr>
</table></div><br><br>
<div v-if="tabData.normal=='Options'">
<table>
<tr>
<td><button id="export" class="options op unlocked" onclick="exportSave()">Export Save</button></td><td><button id="hardReset" class="options op unlocked" onclick="hardReset()">HARD RESET</button></td><td><button id="saveGame" class="options op unlocked" onclick="save()">Save</button></td>
</tr>
<tr>
<td><button id="import" class="options op unlocked" onclick="importSave()">Import Save</button></td><td><button id="offTime" class="options op unlocked" onclick="toggleOffTime()">Offline Progress: {{player.offtime?"ON":"OFF"}}</button></td><td><button id="toggleAutoSave" class="options op unlocked" onclick="toggleAutoSave()">Autosave: {{player.autosave?"ON":"OFF"}}</button></td>
</tr>
</table><br><br>
Created by <b class="essence shadow">Jacorb</b><br>
Credit to Letorin for helping plan this out :)<br><br>
<a href="https://discord.gg/wwQfgPa" target="_blank" style="text-shadow: none; color: rgb(235, 196, 162);">Jacorb's Discord Server</a>
</div>
<div v-if="tabData.normal=='Universe'">
<button v-bind:class="{prestige: true, unlocked: player.size.gte(tmp.prestige.req), locked: player.size.lt(tmp.prestige.req)}" onclick="prestige()">Reach <b class="normal shadow">{{format(tmp.prestige.req, 3)}} m<sup>3</sup></b> to delve into Dimensional Depth <b class="prestige shadow">{{formatWhole(player.depth.plus(1))}}</b></button><br><br>
<div v-if="player.depth.gte(1)||player.upgsUnl">
You have completed <b class="prestige shadow">{{formatWhole(player.depth)}}</b> Dimensional Depths, which boost Universe Growth Speed by <b class="prestige shadow">{{format(tmp.prestige.eff)}}x</b>.<br>
You have <b class="essence shadow">{{formatWhole(player.essence)}}</b> Universe Essence.<br><br>
<button v-if="!player.upgsUnl" v-bind:class="{ essence: true, unlocked: player.essence.gte(universe_upgs_unl_req), locked: player.essence.lt(universe_upgs_unl_req) }" onclick="unlockUniversalUpgs()"><b>Unlock Universal Upgrades</b><br>Cost: <b class="essence shadow">{{formatWhole(universe_upgs_unl_req)}}</b> Universe Essence</button>
<div v-if="player.upgsUnl">
<table>
<tr>
<td></td>
<td v-if="!player.void.active"><button v-if="!hasAnhUpg(22)" v-bind:class="{ essence: true, unlocked: Object.keys(player.upgs).length>0, locked: Object.keys(player.upgs).length==0 }" onclick="respecUniverseUpgs()"><b>Respec Universal Upgrades</b></button>
<button v-else class="essence unlocked" onclick="maxAllUniUpgs()"><b>Max All</b></button></td>
<td></td>
</tr>
<tr>
<td></td>
<td v-if="player.hadrons.boosters.lt(4)&&!player.void.active">{{(tmp.upgs.rowsUnl<4)?(universe_upgs.rowUnls[tmp.upgs.rowsUnl+1].desc+" to unlock new Universal Upgrades"):""}}</td>
<td></td>
</tr>
<tr v-for="row in universe_upgs.rows">
<td v-for="col in universe_upgs.cols">
<button v-if="universe_upgs[row*10+col].unl()" v-bind:class="{ essenceUpg: true, essence: true, unlocked: player.essence.gte(tmp.upgs[row*10+col].cost), locked: player.essence.lt(tmp.upgs[row*10+col].cost) }" v-on:click="buyUniverseUpg(row*10+col)"><b v-html="checkFunc(universe_upgs[row*10+col].desc)"></b><br><br>Cost: <b class="essence shadow">{{formatWhole(tmp.upgs[row*10+col].cost)}}</b> Universe Essence<br>Level: <b class="essence shadow">{{formatWhole(tmp.upgs[row*10+col].lvl)+(tmp.upgs[row*10+col].extra.gt(0)?(" + "+format(tmp.upgs[row*10+col].extra)):"")}}</b><br>Currently: <b class="essence shadow" v-html="universe_upgs[row*10+col].dispEff(tmp.upgs[row*10+col].eff)"></b></button>
</td>
</tr>
</table>
<button v-if="!player.quarks.unl" v-bind:class="{ quarks: true, unlocked: player.depth.gte(quarks_unl_req), locked: player.depth.lt(quarks_unl_req) }" style="margin-top: 5px;" onclick="unlockQuarks()"><b>Unlock Quarks</b><br>Req: <b class="prestige shadow">{{formatWhole(quarks_unl_req)}}</b> Dimensional Depths</button>
</div>
</div>
</div>
<div v-if="tabData.normal=='Quarks'">
<table>
<tr>
<td v-for="(tab, name) in tabs.qk"><button v-if="tabs.qk[name]()" v-on:click="showTab(name, 'qk')" v-bind:class="{['qk'+name.toLowerCase()]: true, tabbtn: true, smol: true, unlocked: true}">{{name}}</button></td>
</tr>
</table><br v-if="player.aq.unl">
<div v-if="tabData.qk=='Quarks'">
You have <b class="red shadow">{{format(player.quarks.red)}}</b> Red Quarks, which multiply Green Quark gain by <b class="green shadow">{{format(tmp.qk.eff.red)}}</b>.<br><br>
You have <b class="green shadow">{{format(player.quarks.green)}}</b> Green Quarks, which multiply Blue Quark gain by <b class="blue shadow">{{format(tmp.qk.eff.green)}}</b>.<br><br>
You have <b class="blue shadow">{{format(player.quarks.blue)}}</b> Blue Quarks, which multiply Red Quark gain by <b class="red shadow">{{format(tmp.qk.eff.blue)}}</b>.<br><br><br>
The {{getGluonScaleName()}}Gluon is <b class="gluon shadow">{{format(tmp.qk.gluon.size)}}m</b> long, which boosts Universe Growth Speed{{voidUpgActive(16)?" & Quark gain":""}} by <b class="gluon shadow">{{format(tmp.qk.gluon.eff)}}x</b><br><br><br><br>
You have <b class="quarks shadow">{{formatWhole(player.quarks.charge)}}</b> Quark Charge, which strengthens all Quark effects by <b class="quarks shadow">{{format(tmp.qk.eff.charge.sub(1).times(100))+(tmp.qk.eff.addedCharge.gt(1)?(" + "+format(tmp.qk.eff.addedCharge.sub(1).times(100))):"")}}%</b>.<br><br>
<button v-bind:class="{ quarks: true, unlocked: tmp.qk.net.gte(tmp.qk.chargeCost), locked: tmp.qk.net.lt(tmp.qk.chargeCost) }" onclick="buyQuarkCharge()">Charge your Quarks.<br>Cost: <b class="quarksupg shadow">{{format(tmp.qk.chargeCost)}}</b> Total Quarks</button><br><br>
<button v-if="!player.hadrons.unl" v-bind:class="{ hadrons: true, unlocked: tmp.qk.gluon.size.gte(hadrons_unl_req), locked: tmp.qk.gluon.size.lt(hadrons_unl_req) }" onclick="unlockHadrons()"><b>Unlock Hadrons</b><br>Req: <b class="gluon shadow">{{formatWhole(hadrons_unl_req)}}m</b> of Gluon</button>
</div>
<div v-if="tabData.qk=='Antiquarks'">
You have <b class="invert red shadow">{{format(player.aq.red)}}</b> Anti-Red Quarks, which multiply Red Quark gain by <b class="red shadow">{{format(tmp.aq.eff.red)}}</b>, but divide Anti-Green Quark gain by <b class="invert green shadow">{{format(tmp.aq.eff.antired)}}</b>.<br><br>
You have <b class="invert green shadow">{{format(player.aq.green)}}</b> Anti-Green Quarks, which multiply Green Quark gain by <b class="green shadow">{{format(tmp.aq.eff.green)}}</b>, but divide Anti-Blue Quark gain by <b class="invert blue shadow">{{format(tmp.aq.eff.antigreen)}}</b>.<br><br>
You have <b class="invert blue shadow">{{format(player.aq.blue)}}</b> Anti-Blue Quarks, which multiply Blue Quark gain by <b class="blue shadow">{{format(tmp.aq.eff.blue)}}</b>, but divide Anti-Red Quark gain by <b class="invert red shadow">{{format(tmp.aq.eff.antiblue)}}</b>.<br><br><br>
The {{getAntiGluonScaleName()}}Anti-Gluon is <b class="invert gluon shadow">{{format(tmp.aq.gluon.size)}}m</b> long, which multiplies Photonic Matter{{hasAQUpg(21)?" & Anti-Energy":""}} gain by <b class="invert gluon shadow">{{format(tmp.aq.gluon.eff)}}x</b><br><br>
Your Anti-Quarks have generated <b class="invert quarks shadow">{{format(player.aq.energy)}}</b> Anti-Energy (+{{format(getAQEnergyGain())}}/s)<br><br><br>
<b class="invert gluon shadow">Antiquark Upgrade Power: {{format(tmp.aq.upgs.power.times(100))}}%</b><br>
<table>
<tr v-for="r in aq_upgs.rows">
<td v-for="c in aq_upgs.cols" v-if="aq_upgs[r*10+c]&&aq_upgs[r*10+c].unl()" style="margin-right: 5px; margin-left: 5px;"><button v-bind:class="{ aqupg: true, [aq_upgs[r*10+c].type]: true, bought: player.aq.upgs.includes(r*10+c), unlocked: (player.aq.energy.gte(aq_upgs[r*10+c].cost)&&!player.aq.upgs.includes(r*10+c)), locked: (player.aq.energy.lt(aq_upgs[r*10+c].cost)&&!player.aq.upgs.includes(r*10+c)) }" v-on:click="buyAQUpg(r*10+c)" style="font-weight: bold;"><b style="font-size: 17px;">{{aq_upgs[r*10+c].desc}}</b><br><br><span v-if="!player.aq.upgs.includes(r*10+c)">Cost: {{format(checkFunc(aq_upgs[r*10+c].cost))}} Anti-Energy<br><br></span><span v-if="aq_upgs[r*10+c].eff">{{aq_upgs[r*10+c].dispEff(tmp.aq.upgs[r*10+c])}}</span></button></td>
</tr>
</table>
</div>
</div>
<div v-if="tabData.normal=='Hadrons'">
You have <b class="hadrons shadow">{{format(player.hadrons.amount)}}</b> Hadrons (+{{format(tmp.had.dispGain)}}/s), which are extending the starts of Universal Slowdown & Compaction by <b class="hadrons shadow">{{format(tmp.had.eff)}}x</b><br><br>
You have <b class="hadrons shadow">{{formatWhole(player.hadrons.boosters)+(tmp.had.extraBoosts.gt(0)?(" + "+format(tmp.had.extraBoosts)):"")}}</b> Hadronic Boosters, which are strengthening Quark & Gluon effects by <b class="gluon shadow">{{format(tmp.had.boostEff.sub(1).times(100))}}%</b>, and are multiplying Hadron gain by <b class="hadrons shadow">{{format(tmp.had.boostEff2)}}x</b><br><br>
<button v-bind:class="{hadrons: true, unlocked: player.hadrons.amount.gte(tmp.had.boostCost), locked: player.hadrons.amount.lt(tmp.had.boostCost)}" onclick="boostHadrons()">Reset your Hadrons for a Boost<br><br>Cost: <b class="hadrons shadow">{{format(tmp.had.boostCost)}}</b> Hadrons</button>
</div>
<div v-if="tabData.normal=='Annihilation'">
<button v-if="!player.void.active" v-bind:class="{ anhReset: true, annihilation: true, unlocked: tmp.anh.gain.gte(1), locked: tmp.anh.gain.lt(1) }" onclick="annihilate()">Annihilate all previous progress to gain <b class="annihilation shadow">{{formatWhole(tmp.anh.gain)}}</b> Annihilation Energy<br><br>Next at Dimensional Depth <b class="prestige shadow">{{formatWhole(tmp.anh.next)}}</b></button>
<button class="voidReset void unlocked" onclick="enterVoid()" v-if="player.void.active">Exit the Void.</button><br><br>
<div v-if="player.annihilation.reached">
You have <b class="annihilation shadow">{{formatWhole(player.annihilation.energy)}}</b> Annihilation Energy.<br>
You have <b class="annihilation shadow">{{formatWhole(player.annihilation.total)}}</b> Total Annihilation Energy, which makes the Universe's size boost its growth rate by <b class="prestige shadow">{{format(tmp.anh.eff)}}x</b>.<br><br>
<table>
<tr>
<td v-for="(tab, name) in tabs.anh"><button v-if="tabs.anh[name]()" v-on:click="showTab(name, 'anh')" v-bind:class="{['anh'+((name=='Upgrades' && player.void.active)?'void':name.toLowerCase())]: true, tabbtn: true, unlocked: true}">{{name}}</button></td>
</tr>
</table><br>
<div v-if="tabData.anh=='Upgrades'">
<div v-if="player.void.active">
You have <b class="void shadow">{{format(player.void.fabric)}}</b> Space-Time Fabric (+{{format(tmp.void.stGain)}}/s)<br>
<div style="font-size: 11px;">Void Upgrades can be purchased twice: 1 Purchase = Works in Void, 2 Purchases = Works in & out of Void<br><br></div>
</div>
<table>
<tr v-for="r in annihilation_upgs.rows">
<td v-for="c in annihilation_upgs.cols" v-if="annihilation_upgs[r*10+c]">
<button v-if="annihilation_upgs[r*10+c].unl()" v-bind:class="{ annihilation: !tmp.anh.upgs[r*10+c].voidSwitch, void: tmp.anh.upgs[r*10+c].voidSwitch, bought: (tmp.anh.upgs[r*10+c].voidSwitch?(getVoidUpgTier(r*10+c)>1):player.annihilation.upgs.includes(r*10+c)), unlocked: (tmp.anh.upgs[r*10+c].voidSwitch?(player.void.fabric.gte(annihilation_upgs[r*10+c].voidCost[getVoidUpgTier(r*10+c)])&&getVoidUpgTier(r*10+c)<=1):(player.annihilation.energy.gte(annihilation_upgs[r*10+c].cost)&&!player.annihilation.upgs.includes(r*10+c))), locked: (tmp.anh.upgs[r*10+c].voidSwitch?(player.void.fabric.lt(annihilation_upgs[r*10+c].voidCost[getVoidUpgTier(r*10+c)])&&getVoidUpgTier(r*10+c)<=1):(player.annihilation.energy.lt(annihilation_upgs[r*10+c].cost)&&!player.annihilation.upgs.includes(r*10+c))) }" v-on:click="buyAnnihilationUpg(r*10+c)" v-bind:style="{ width: '180px', height: '170px', position: (tmp.anh.upgs[r*10+c].voidSwitch?'relative':'static') }"><b v-bind:style="(tmp.anh.upgs[r*10+c].voidSwitch?annihilation_upgs[r*10+c].voidSize:annihilation_upgs[r*10+c].size)?{ 'font-size': (tmp.anh.upgs[r*10+c].voidSwitch?annihilation_upgs[r*10+c].voidSize:annihilation_upgs[r*10+c].size) }:{}">{{tmp.anh.upgs[r*10+c].voidSwitch?checkFunc(annihilation_upgs[r*10+c].voidDesc):annihilation_upgs[r*10+c].desc}}</b><br><span v-if="tmp.anh.upgs[r*10+c].voidSwitch?(getVoidUpgTier(r*10+c)<2):(!player.annihilation.upgs.includes(r*10+c))"><br>Cost: <b v-bind:class="{ annihilation: !tmp.anh.upgs[r*10+c].voidSwitch, void: tmp.anh.upgs[r*10+c].voidSwitch, text: tmp.anh.upgs[r*10+c].voidSwitch, shadow: !tmp.anh.upgs[r*10+c].voidSwitch }">{{formatWhole(tmp.anh.upgs[r*10+c].voidSwitch?annihilation_upgs[r*10+c].voidCost[getVoidUpgTier(r*10+c)]:annihilation_upgs[r*10+c].cost)}}</b> {{tmp.anh.upgs[r*10+c].voidSwitch?"Space-Time Fabric":"AE"}}</span><br><span v-if="tmp.anh.upgs[r*10+c].voidSwitch?annihilation_upgs[r*10+c].voidDispEff:annihilation_upgs[r*10+c].dispEff">Currently: <b v-bind:class="{ annihilation: !tmp.anh.upgs[r*10+c].voidSwitch, void: tmp.anh.upgs[r*10+c].voidSwitch, text: tmp.anh.upgs[r*10+c].voidSwitch, shadow: !tmp.anh.upgs[r*10+c].voidSwitch }">{{tmp.anh.upgs[r*10+c].voidSwitch?annihilation_upgs[r*10+c].voidDispEff(tmp.anh.upgs[r*10+c].voidEff):annihilation_upgs[r*10+c].dispEff(tmp.anh.upgs[r*10+c].eff)}}</b></span><span v-if="annihilation_upgs[r*10+c].toggle && hasAnhUpg(r*10+c) && !tmp.anh.upgs[r*10+c].voidSwitch">Auto: <input type="checkbox" v-model="player[annihilation_upgs[r*10+c].toggle]"></span><div v-if="tmp.anh.upgs[r*10+c].voidSwitch" style="position: absolute; top: 2px; left: 2px; font-weight: bold;" v-bind:class="{ void: getVoidUpgTier(r*10+c)==0, voidGold: getVoidUpgTier(r*10+c)>0, text: true }">{{getVoidUpgTier(r*10+c)}}</div></button>
</td>
</tr>
<tr v-for="r in void_anh_upg_rows">
<td v-for="x in void_anh_upgs.filter((x,i) => (i>=(r-1)*6 && (i<r*6)))"><button v-if="annihilation_upgs[x].unl() && getVoidUpgTier(x)>=2 && !player.void.active" class="void bought" style="width: 180px; height: 170px;"><b v-bind:style="annihilation_upgs[x].voidSize?{ 'font-size': annihilation_upgs[x].voidSize }:{}">{{checkFunc(annihilation_upgs[x].voidDesc)}}</b><br><br><span v-if="annihilation_upgs[x].voidDispEff">Currently: <b class="void text">{{annihilation_upgs[x].voidDispEff(tmp.anh.upgs[x].voidEff)}}</b></span></button></td>
</tr>
</table><br>
<button v-if="!player.void.unl" v-bind:class="{ void: true, unlocked: canUnlockVoid(), locked: !canUnlockVoid() }" onclick="unlockVoid()"><b>Unlock Void</b><br>Req: Depth <b class="prestige shadow">{{formatWhole(voidReqs[0])}}</b> & <b class="annihilation shadow">{{formatWhole(voidReqs[1])}}</b> AE</button>
<button v-if="player.void.unl&&!player.photons.unl" v-bind:class="{ photons: true, unlocked: player.void.fabric.gte(photons_unl), locked: player.void.fabric.lt(photons_unl) }" onclick="unlockPhotons()"><b>Unlock Photons</b><br>Cost: <b class="void text">{{formatWhole(photons_unl)}}</b> Space-Time Fabric</button>
</div>
<div v-if="tabData.anh=='Boosts'">
<b>{{tmp.anh.boosts.power.eq(1)?"WARNING: Switching Annihilation Boosts forces an Annihilation reset!":("Boost Power: "+format(tmp.anh.boosts.power.times(100))+"%")}}</b><br>
<table>
<tr>
<td v-if="player.annihilation.total.gte(1)" v-bind:class="{ anhBoostDiv: true, active: player.annihilation.activeBoosts.includes(1), inactive: !player.annihilation.activeBoosts.includes(1) }"><h2>Annihilation Boost I</h2>Makes Dimensional Depths add extra levels to {{hasAnhUpg(35)?"all Universal Upgrades":"the first 9 Universal Upgrades"}}.<br><br>Currently: +{{format(tmp.anh.boosts[1])}}<br><br><button v-bind:class="{ anhboosts: true, unlocked: (player.annihilation.activeBoosts.includes(1)||tmp.anh.boosts.can), locked: !(player.annihilation.activeBoosts.includes(1)||tmp.anh.boosts.can), mini: true }" onclick="toggleAnhBoost(1)"><b>{{player.annihilation.activeBoosts.includes(1)?"ACTIVE":"INACTIVE"}}</b></button></td>
</tr>
<tr>
<td v-if="player.annihilation.total.gte(2)" v-bind:class="{ anhBoostDiv: true, active: player.annihilation.activeBoosts.includes(2), inactive: !player.annihilation.activeBoosts.includes(2) }"><h2>Annihilation Boost II</h2>Makes Unspent Annihilation Energy strengthen all Quark effects.<br><br>Currently: {{format(tmp.anh.boosts[2].sub(1).times(100))}}% stronger<br><br><button v-bind:class="{ anhboosts: true, unlocked: (player.annihilation.activeBoosts.includes(2)||tmp.anh.boosts.can), locked: !(player.annihilation.activeBoosts.includes(2)||tmp.anh.boosts.can), mini: true }" onclick="toggleAnhBoost(2)"><b>{{player.annihilation.activeBoosts.includes(2)?"ACTIVE":"INACTIVE"}}</b></button></td>
</tr>
<tr>
<td v-if="player.annihilation.total.gte(3)" v-bind:class="{ anhBoostDiv: true, active: player.annihilation.activeBoosts.includes(3), inactive: !player.annihilation.activeBoosts.includes(3) }"><h2>Annihilation Boost III</h2>Makes Total Universal Upgrade Level add extra Hadronic Boosters.<br><br>Currently: +{{format(tmp.anh.boosts[3])}}<br><br><button v-bind:class="{ anhboosts: true, unlocked: (player.annihilation.activeBoosts.includes(3)||tmp.anh.boosts.can), locked: !(player.annihilation.activeBoosts.includes(3)||tmp.anh.boosts.can), mini: true }" onclick="toggleAnhBoost(3)"><b>{{player.annihilation.activeBoosts.includes(3)?"ACTIVE":"INACTIVE"}}</b></button></td>
</tr>
</table>
</div>
<div v-if="tabData.anh=='Void'">
You have <b class="void shadow">{{format(player.void.fabric)}}</b> Space-Time Fabric <span v-if="player.void.active||hasAQUpg(33)">(+{{format(tmp.void.stGain.times(player.void.active?1:tmp.ph.col[6].eff.eff))}}/s)</span><br><br>
<div style="font-size: 11px; margin-bottom: 5px;">In the Void, all Universal Upgrades are disabled, and Annihilation Upgrades are replaced by Void Upgrades.<br>Space-Time Fabric is gained based on your Universe's size, but slows down over time since last Dimensional Depth<br><br></div>
<button class="voidReset void unlocked" onclick="enterVoid()">{{player.void.active?"Exit":"Enter"}} the Void.</button><br><br>
<table>
<tr v-for="x in void_rep_upgs.amt"><td><button v-bind:class="{ void: true, unlocked: player.void.fabric.gte(tmp.void.upgs[x].cost), locked: player.void.fabric.lt(tmp.void.upgs[x].cost) }" v-on:click="buyVoidRepUpg(x)" style="width: 500px;"><b style="font-size: 20px;" class="void text">{{void_rep_upgs[x].title}}<br></b>{{void_rep_upgs[x].desc}}<br>Cost: <b class="void text">{{format(tmp.void.upgs[x].cost)}}</b> Space-Time Fabric<br><br>Level: <b class="void text">{{formatWhole(tmp.void.upgs[x].lvl)+(tmp.void.upgs.extra.gt(0)?(" + "+format(tmp.void.upgs.extra)):"")}}</b><br>Currently: <b class="void text">{{void_rep_upgs[x].dispEff(tmp.void.upgs[x].eff)}}</b></button></td></tr>
</table>
</div>
</div>
</div>
<div v-if="tabData.normal=='Photons'">
<span v-if="!player.aq.unl"><button v-bind:class="{ aq: true, unlocked: player.photons.matter.gte(aq_unl), locked: player.photons.matter.lt(aq_unl) }" onclick="unlockAQ()">Unlock Antiquarks<br><br>Req: <b class="normal shadow">{{format(aq_unl)}}</b> Photonic Matter</button><br><br></span>
<table v-if="hasAQUpg(43)" style="margin-bottom: 10px;">
<tr>
<td v-for="(tab, name) in tabs.ph"><button v-if="tabs.ph[name]()" v-on:click="showTab(name, 'ph')" v-bind:class="{['ph'+name.toLowerCase()]: true, tabbtn: true, smol: true, unlocked: true}">{{name}}</button></td>
</tr>
</table>
<table v-if="tabData.ph=='Photons'">
<tr>
<td>Your Space-Time Fabric has generated <b class="photons shadow" style="font-size: 25px;">{{format(player.photons.matter)}}</b> Photonic Matter (+{{format(tmp.ph.gain)}}/s)</td>
</tr>
<tr v-if="player.aq.unl">
<td><button class="photons unlocked" onclick="maxAllPhotonGens()"><b>Max All</b></button></td>
</tr>
<tr>
<td v-for="(x,i) in photon_data" v-bind:class="{ photonDiv: true, [x.id]: true }" v-if="x.unl()"><h3>{{x.color}} Photons: {{format(player.photons.colors[i].amt)}} <span style="font-size: 12px;">(+{{format(tmp.ph.col[i].gain)}}/s)</span></h3><span v-html="(x.id=='uv'&&!hasAQUpg(33))?'':x.dispEff(tmp.ph.col[i].eff.eff)"></span>{{(x.id=="uv"&&!hasAQUpg(33))?"":"."}}<br>{{x.dispProd(tmp.ph.col[i].eff.prod)}}.<br><br><button v-bind:class="{ photonGenerator: true, photons: true, unlocked: player.photons.matter.gte(tmp.ph.col[i].genCost), locked: player.photons.matter.lt(tmp.ph.col[i].genCost) }" v-on:click="buyPhotonGen(i)"><b v-bind:class="{ [x.id]: true, text: true }">Purchase a {{x.color}} Photon Generator</b><br>Cost: <b class="normal shadow">{{format(tmp.ph.col[i].genCost)}}</b> Photonic Matter<br><br>Level: <b v-bind:class="{ [x.id]: true, text: true }">{{formatWhole(player.photons.colors[i].gen)}}</b><br>Base {{x.color}} Photon gain: <b v-bind:class="{ [x.id]: true, text: true }">{{format(tmp.ph.col[i].genEff)}}/s</b></button></td>
</tr>
</table>
<table v-if="tabData.ph=='Ultrawaves'">
<tr>
<td>Your Space-Time Fabric has generated <b class="photons shadow" style="font-size: 25px;">{{format(player.photons.matter)}}</b> Photonic Matter (+{{format(tmp.ph.gain)}}/s)</td>
</tr>
<tr>
<td>You have <b class="ultrawaves shadow" style="font-size:25px;">{{formatWhole(player.photons.ultra)}}</b> Ultrawaves.</td>
</tr>
<tr>
<td><button onclick="ultrawaveReset()" v-bind:class="{ ultrawaves: true, unlocked: getUltrawaveGain().gte(1), locked: getUltrawaveGain().lt(1) }" style="width: 15em; height: 15em;"><b>Force an Annihilation reset, and reset Photonic Matter & all Photons to gain <span class="ultrawaves shadow">{{formatWhole(getUltrawaveGain())}}</span> Ultrawaves.</b><br><br>Next at <b class="normal shadow">{{format(getUltrawaveNext())}}</b> Photonic Matter</button></td>
</tr>
<tr>
<td><button v-bind:class="{ waveacc: true, ultrawaves: true, unlocked: (player.photons.ultra.gte(1)&&minAllWaveAcc().gte(player.photons.uwi[1])), locked: (player.photons.ultra.lt(1)||minAllWaveAcc().lt(player.photons.uwi[1])) }" onclick="buyWaveAcc(1)"><h3 class="ultrawaves shadow">Wave Accelerator I</h3>Amount: <b class="ultrawaves shadow">{{formatWhole(player.photons.uwi[1])}}</b><br>Effect: Multiply the gain of all Pre-{{tmp.ph.preX}} Photons by <b class="ultrawaves shadow">{{format(tmp.ph.uw[1])}}.</b><br><br>Cost: 1 Ultrawave (Req {{formatWhole(player.photons.uwi[1])}} of all other Wave Acc.)</button></td>
<td><button v-bind:class="{ waveacc: true, ultrawaves: true, unlocked: (player.photons.ultra.gte(1)&&minAllWaveAcc().gte(player.photons.uwi[2])), locked: (player.photons.ultra.lt(1)||minAllWaveAcc().lt(player.photons.uwi[2])) }" onclick="buyWaveAcc(2)"><h3 class="ultrawaves shadow">Wave Accelerator II</h3>Amount: <b class="ultrawaves shadow">{{formatWhole(player.photons.uwi[2])}}</b><br>Effect: Strengthen the effects of all Pre-{{tmp.ph.preX}} Photons by <b class="ultrawaves shadow">{{format(tmp.ph.uw[2].sub(1).times(100))}}%.</b><br><br>Cost: 1 Ultrawave (Req {{formatWhole(player.photons.uwi[2])}} of all other Wave Acc.)</button></td>
<td><button v-bind:class="{ waveacc: true, ultrawaves: true, unlocked: (player.photons.ultra.gte(1)&&minAllWaveAcc().gte(player.photons.uwi[3])), locked: (player.photons.ultra.lt(1)||minAllWaveAcc().lt(player.photons.uwi[3])) }" onclick="buyWaveAcc(3)"><h3 class="ultrawaves shadow">Wave Accelerator III</h3>Amount: <b class="ultrawaves shadow">{{formatWhole(player.photons.uwi[3])}}</b><br>Effect: Raise the base gain of all Pre-{{tmp.ph.preX}} Photons ^<b class="ultrawaves shadow">{{format(tmp.ph.uw[3])}}.</b><br><br>Cost: 1 Ultrawave (Req {{formatWhole(player.photons.uwi[3])}} of all other Wave Acc.)</button></td>
</tr>
<tr>
<td><button class="ultrawaves unlocked" onclick="respecWaveAcc()"><b>Sell All Wave Accelerators</b></button></td>
</tr>
</table>
</div>
</div>
</div>
</body>