mirror of
https://github.com/Acamaeda/The-Modding-Tree.git
synced 2024-11-25 01:41:45 +00:00
Beta v1.1 Alpha 9
This commit is contained in:
parent
ea3e2cd4f1
commit
4a90e5ae8b
3 changed files with 102 additions and 43 deletions
71
index.html
71
index.html
|
@ -16,6 +16,11 @@
|
||||||
<div class="vl"></div>
|
<div class="vl"></div>
|
||||||
<div v-if="player.tab=='changelog'" class="col right">
|
<div v-if="player.tab=='changelog'" class="col right">
|
||||||
<button class="back" onclick="showTab('tree')">←</button><br><br>
|
<button class="back" onclick="showTab('tree')">←</button><br><br>
|
||||||
|
<h3>Beta v1.1 Alpha 9</h3>
|
||||||
|
<ul>
|
||||||
|
<li>Added a new option</li>
|
||||||
|
<li>Balanced up to 2e10 Hindrance Spirit & Quirks, and 1e27,500 Points</li>
|
||||||
|
</ul><br>
|
||||||
<h3>Beta v1.1 Alpha 8</h3>
|
<h3>Beta v1.1 Alpha 8</h3>
|
||||||
<ul>
|
<ul>
|
||||||
<li>Several bugfixes</li>
|
<li>Several bugfixes</li>
|
||||||
|
@ -157,6 +162,7 @@
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><button class="opt" onclick="toggleOpt('autosave')">Autosave: {{ player.autosave?"ON":"OFF" }}</button></td>
|
<td><button class="opt" onclick="toggleOpt('autosave')">Autosave: {{ player.autosave?"ON":"OFF" }}</button></td>
|
||||||
|
<td><button class="opt" onclick="adjustMSDisp()">Show Milestones: {{ player.msDisplay.toUpperCase() }}</button></td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
|
@ -209,34 +215,37 @@
|
||||||
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>
|
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>
|
<br><br>
|
||||||
<div v-if="layer=='b'">
|
<div v-if="layer=='b'">
|
||||||
<table><tr><td 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-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>
|
<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>
|
||||||
</div>
|
</div>
|
||||||
<div v-if="layer=='g'">
|
<div v-if="layer=='g'">
|
||||||
You have {{format(player.g.power)}} Generator Power, which multiplies Point gain by {{format(tmp.genPowEff)}}<br><br>
|
You have {{format(player.g.power)}} Generator Power, which multiplies Point gain by {{format(tmp.genPowEff)}}<br><br>
|
||||||
<table><tr><td 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-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-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>
|
<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>
|
||||||
</div>
|
</div>
|
||||||
<div v-if="layer=='e'">
|
<div v-if="layer=='e'">
|
||||||
<table><tr><td 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>
|
<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-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>
|
<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>
|
||||||
<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)}}<br>Multiplies Prestige Point gain by {{format(tmp.enhEff)}}<br>Adds to base of Booster/Generator effects by {{format(tmp.enhEff2)}}</button>
|
<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)}}<br>Multiplies Prestige Point gain by {{format(tmp.enhEff)}}<br>Adds to base of Booster/Generator effects by {{format(tmp.enhEff2)}}</button>
|
||||||
</div>
|
</div>
|
||||||
<div v-if="layer=='t'">
|
<div v-if="layer=='t'">
|
||||||
You have {{format(player.t.energy)}} Time Energy, which multiplies Point gain & Prestige Point gain by {{format(tmp.timeEff)}}<br><br>
|
You have {{format(player.t.energy)}} Time Energy, which multiplies Point gain & Prestige Point gain by {{format(tmp.timeEff)}}<br><br>
|
||||||
<table><tr><td 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>
|
<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-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(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-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(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-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(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-bind:class="{ milestone: player.t.best.lt(12), milestoneDone: player.t.best.gte(12) }">12 time capsules<br>Boosters reset nothing</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>
|
||||||
</table><br><br>
|
</table><br><br>
|
||||||
<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>
|
<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>
|
||||||
<div v-if="layer=='s'">
|
<div v-if="layer=='s'">
|
||||||
You have {{formatWhole(getSpace())}} Space remaining for Space Buildings.<br><br>
|
You have {{formatWhole(getSpace())}} Space remaining for Space Buildings.<br><br>
|
||||||
<table><tr><td 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>
|
<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-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(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-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(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-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(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-bind:class="{ milestone: player.s.best.lt(12), milestoneDone: player.s.best.gte(12) }">12 space energy<br>Generators reset nothing</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>
|
||||||
</table><br><br>
|
</table><br><br>
|
||||||
You have {{ format(player.g.power) }} Generator Power<br><br>
|
You have {{ format(player.g.power) }} Generator Power<br><br>
|
||||||
<button onclick="respecSpaceBuildings()" v-bind:class="{ longUpg: true, can: player.s.unl, locked: !player.s.unl }">Respec Space Buildings</button><br>
|
<button onclick="respecSpaceBuildings()" v-bind:class="{ longUpg: true, can: player.s.unl, locked: !player.s.unl }">Respec Space Buildings</button><br>
|
||||||
|
@ -247,29 +256,29 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div v-if="layer=='sb'">
|
<div v-if="layer=='sb'">
|
||||||
<table><tr><td 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>
|
<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-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>
|
<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>
|
||||||
</div>
|
</div>
|
||||||
<div v-if="layer=='h'">
|
<div v-if="layer=='h'">
|
||||||
<table><tr><td 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>
|
<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-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(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-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(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-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(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-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(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-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(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-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(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-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>
|
<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>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
<div v-if="layer=='q'">
|
<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>
|
You have {{format(player.q.energy)}} Quirk Energy (generated by Quirk Layers), which multiplies Point & Generator Power gain by {{format(tmp.quirkEff)}}<br><br>
|
||||||
<table><tr><td 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>
|
<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-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(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-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(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-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(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-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(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-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(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-bind:class="{ milestone: player.q.best.lt(25), milestoneDone: player.q.best.gte(25) }">25 Quirks<br>Space resets reset nothing</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>
|
||||||
</table><br><br>
|
</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>
|
<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>
|
</div>
|
||||||
|
|
73
js/game.js
73
js/game.js
|
@ -8,6 +8,7 @@ function getStartPlayer() {
|
||||||
tab: "tree",
|
tab: "tree",
|
||||||
time: Date.now(),
|
time: Date.now(),
|
||||||
autosave: true,
|
autosave: true,
|
||||||
|
msDisplay: "always",
|
||||||
versionType: "beta",
|
versionType: "beta",
|
||||||
version: 1.1,
|
version: 1.1,
|
||||||
timePlayed: 0,
|
timePlayed: 0,
|
||||||
|
@ -186,8 +187,8 @@ const LAYER_EFFS = {
|
||||||
},
|
},
|
||||||
g: function() { return Decimal.pow(Decimal.add(2, tmp.atgb), player.g.points).sub(1).times(getGenPowerGainMult()) },
|
g: function() { return Decimal.pow(Decimal.add(2, tmp.atgb), player.g.points).sub(1).times(getGenPowerGainMult()) },
|
||||||
t: function() { return {
|
t: function() { return {
|
||||||
gain: Decimal.pow(3, player.t.points.plus(player.t.extCapsules.plus(tmp.freeExtCap).times(getFreeExtPow()))).sub(1).times(getTimeEnergyGainMult()),
|
gain: Decimal.pow(3, player.t.points.plus(player.t.extCapsules.plus(tmp.freeExtCap).times(getFreeExtPow())).times(getCapPow())).sub(1).times(getTimeEnergyGainMult()),
|
||||||
limit: Decimal.pow(2, player.t.points.plus(player.t.extCapsules.plus(tmp.freeExtCap).times(getFreeExtPow()))).sub(1).times(100).times(getTimeEnergyLimitMult()),
|
limit: Decimal.pow(2, player.t.points.plus(player.t.extCapsules.plus(tmp.freeExtCap).times(getFreeExtPow())).times(getCapPow())).sub(1).times(100).times(getTimeEnergyLimitMult()),
|
||||||
}},
|
}},
|
||||||
sb: function() { return Decimal.pow(Decimal.add(1.5, addToSBBase()), player.sb.points.times(getSuperBoosterPow())) },
|
sb: function() { return Decimal.pow(Decimal.add(1.5, addToSBBase()), player.sb.points.times(getSuperBoosterPow())) },
|
||||||
h: function() {
|
h: function() {
|
||||||
|
@ -210,7 +211,10 @@ const LAYER_UPGS = {
|
||||||
desc: "Point generation is faster based on your unspent Prestige Points.",
|
desc: "Point generation is faster based on your unspent Prestige Points.",
|
||||||
cost: new Decimal(1),
|
cost: new Decimal(1),
|
||||||
unl: function() { return player.p.upgrades.includes(11) },
|
unl: function() { return player.p.upgrades.includes(11) },
|
||||||
currently: function() { return player.p.points.plus(1).pow(player.g.upgrades.includes(24)?1.1:(player.g.upgrades.includes(14)?0.75:0.5)) },
|
currently: function() {
|
||||||
|
if (tmp.hcActive ? tmp.hcActive[32] : true) return new Decimal(1)
|
||||||
|
return player.p.points.plus(1).pow(player.g.upgrades.includes(24)?1.1:(player.g.upgrades.includes(14)?0.75:0.5))
|
||||||
|
},
|
||||||
effDisp: function(x) { return format(x)+"x" },
|
effDisp: function(x) { return format(x)+"x" },
|
||||||
},
|
},
|
||||||
13: {
|
13: {
|
||||||
|
@ -651,7 +655,7 @@ const LAYER_UPGS = {
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
sb: {
|
sb: {
|
||||||
rows: 1,
|
rows: 2,
|
||||||
cols: 2,
|
cols: 2,
|
||||||
11: {
|
11: {
|
||||||
desc: "Super-Boosters are stronger based on your Prestige Points.",
|
desc: "Super-Boosters are stronger based on your Prestige Points.",
|
||||||
|
@ -671,6 +675,18 @@ const LAYER_UPGS = {
|
||||||
currently: function() { return player.g.points.div(10).pow(0.04).max(1) },
|
currently: function() { return player.g.points.div(10).pow(0.04).max(1) },
|
||||||
effDisp: function(x) { return format(x)+"x" },
|
effDisp: function(x) { return format(x)+"x" },
|
||||||
},
|
},
|
||||||
|
21: {
|
||||||
|
desc: "Super-Boosters add to the Booster base.",
|
||||||
|
cost: new Decimal(8),
|
||||||
|
unl: function() { return player.h.challs.includes(32) },
|
||||||
|
currently: function() { return player.sb.points.pow(2.15) },
|
||||||
|
effDisp: function(x) { return "+"+format(x) },
|
||||||
|
},
|
||||||
|
22: {
|
||||||
|
desc: "Definitely not a placeholder",
|
||||||
|
cost: new Decimal(1/0),
|
||||||
|
unl: function() { return player.h.challs.includes(32) },
|
||||||
|
},
|
||||||
},
|
},
|
||||||
h: {
|
h: {
|
||||||
rows: 0,
|
rows: 0,
|
||||||
|
@ -729,9 +745,11 @@ const LAYER_UPGS = {
|
||||||
unl: function() { return player.q.upgrades.includes(23)||player.q.upgrades.includes(31) },
|
unl: function() { return player.q.upgrades.includes(23)||player.q.upgrades.includes(31) },
|
||||||
},
|
},
|
||||||
33: {
|
33: {
|
||||||
desc: "???",
|
desc: "Time Capsules are stronger based on their amount",
|
||||||
cost: new Decimal(1/0),
|
cost: new Decimal(2e9),
|
||||||
unl: function() { return false },
|
unl: function() { return player.q.upgrades.includes(23)&&player.q.upgrades.includes(31) },
|
||||||
|
currently: function() { return player.t.points.plus(player.t.extCapsules.plus(tmp.freeExtCap)).plus(1).log10().plus(1) },
|
||||||
|
effDisp: function(x) { return format(x.sub(1).times(100))+"% stronger" },
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
@ -888,6 +906,7 @@ function checkForVars() {
|
||||||
if (player.h === undefined) player.h = getStartPlayer().h
|
if (player.h === undefined) player.h = getStartPlayer().h
|
||||||
if (player.h.active === undefined) player.h.active = 0
|
if (player.h.active === undefined) player.h.active = 0
|
||||||
if (player.q === undefined) player.q = getStartPlayer().q
|
if (player.q === undefined) player.q = getStartPlayer().q
|
||||||
|
if (player.msDisplay === undefined) player.msDisplay = "always"
|
||||||
}
|
}
|
||||||
|
|
||||||
function convertToDecimal() {
|
function convertToDecimal() {
|
||||||
|
@ -1282,6 +1301,7 @@ function addToBoosterBase() {
|
||||||
if (player.e.unl) toAdd = toAdd.plus(tmp.enhEff2)
|
if (player.e.unl) toAdd = toAdd.plus(tmp.enhEff2)
|
||||||
if (player.e.upgrades.includes(11)&&!(tmp.hcActive?tmp.hcActive[12]:true)) toAdd = toAdd.plus(LAYER_UPGS.e[11].currently().b)
|
if (player.e.upgrades.includes(11)&&!(tmp.hcActive?tmp.hcActive[12]:true)) toAdd = toAdd.plus(LAYER_UPGS.e[11].currently().b)
|
||||||
if (player.s.unl && tmp.spaceBuildEff) toAdd = toAdd.plus(tmp.spaceBuildEff[2])
|
if (player.s.unl && tmp.spaceBuildEff) toAdd = toAdd.plus(tmp.spaceBuildEff[2])
|
||||||
|
if (player.sb.upgrades.includes(21)) toAdd = toAdd.plus(LAYER_UPGS.sb[21].currently())
|
||||||
if (player.sb.unl) toAdd = toAdd.times(tmp.layerEffs.sb)
|
if (player.sb.unl) toAdd = toAdd.times(tmp.layerEffs.sb)
|
||||||
return toAdd
|
return toAdd
|
||||||
}
|
}
|
||||||
|
@ -1394,6 +1414,12 @@ function getFreeExtCapsules() {
|
||||||
return amt
|
return amt
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function getCapPow() {
|
||||||
|
let pow = new Decimal(1)
|
||||||
|
if (player.q.upgrades.includes(33)) pow = pow.times(LAYER_UPGS.q[33].currently())
|
||||||
|
return pow
|
||||||
|
}
|
||||||
|
|
||||||
function getFreeExtPow() {
|
function getFreeExtPow() {
|
||||||
if (tmp.hcActive ? tmp.hcActive[22] : true) return new Decimal(0)
|
if (tmp.hcActive ? tmp.hcActive[22] : true) return new Decimal(0)
|
||||||
let pow = new Decimal(1)
|
let pow = new Decimal(1)
|
||||||
|
@ -1663,11 +1689,11 @@ const H_CHALLS = {
|
||||||
reward: "Enhancers are twice as strong.",
|
reward: "Enhancers are twice as strong.",
|
||||||
},
|
},
|
||||||
32: {
|
32: {
|
||||||
name: "???",
|
name: "Surprise Junction",
|
||||||
desc: "???",
|
desc: "Prestige Upgrade 2 does nothing",
|
||||||
unl: function() { return false },
|
unl: function() { return player.h.challs.includes(21)&&player.h.challs.includes(22) },
|
||||||
goal: new Decimal(1/0),
|
goal: new Decimal("1e2580"),
|
||||||
reward: "???",
|
reward: "Unlock 2 new Super-Booster Upgrades.",
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1686,6 +1712,29 @@ function startHindrance(x) {
|
||||||
doReset("h", true)
|
doReset("h", true)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function adjustMSDisp() {
|
||||||
|
let displays = ["always", "automation", "incomplete", "never"];
|
||||||
|
player.msDisplay = displays[(displays.indexOf(player.msDisplay)+1)%4]
|
||||||
|
}
|
||||||
|
|
||||||
|
function milestoneShown(complete, auto=false) {
|
||||||
|
switch(player.msDisplay) {
|
||||||
|
case "always":
|
||||||
|
return true;
|
||||||
|
break;
|
||||||
|
case "automation":
|
||||||
|
return auto||!complete
|
||||||
|
break;
|
||||||
|
case "incomplete":
|
||||||
|
return !complete
|
||||||
|
break;
|
||||||
|
case "never":
|
||||||
|
return false;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
function gameLoop(diff) {
|
function gameLoop(diff) {
|
||||||
if (isNaN(diff)) diff = 0;
|
if (isNaN(diff)) diff = 0;
|
||||||
player.timePlayed += diff
|
player.timePlayed += diff
|
||||||
|
|
1
js/v.js
1
js/v.js
|
@ -24,6 +24,7 @@ function loadVue() {
|
||||||
buyQuirkLayer,
|
buyQuirkLayer,
|
||||||
startHindrance,
|
startHindrance,
|
||||||
HCActive,
|
HCActive,
|
||||||
|
milestoneShown,
|
||||||
LAYERS,
|
LAYERS,
|
||||||
LAYER_RES,
|
LAYER_RES,
|
||||||
LAYER_TYPE,
|
LAYER_TYPE,
|
||||||
|
|
Loading…
Reference in a new issue