Jacorb90

Universe Code

May 6th, 2019
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 46.81 KB | None | 0 0
  1. var universe = 2
  2. if (universe !== 1) dev.giveAllAchievements()
  3.  
  4. setInterval(function() {
  5. if (getDimensionFinalMultiplier(1).gte(new Decimal("1e308")) &&
  6. getDimensionFinalMultiplier(2).gte(new Decimal("1e308")) &&
  7. getDimensionFinalMultiplier(3).gte(new Decimal("1e308")) &&
  8. getDimensionFinalMultiplier(4).gte(new Decimal("1e308")) &&
  9. getDimensionFinalMultiplier(5).gte(new Decimal("1e308")) &&
  10. getDimensionFinalMultiplier(6).gte(new Decimal("1e308")) &&
  11. getDimensionFinalMultiplier(7).gte(new Decimal("1e308")) &&
  12. getDimensionFinalMultiplier(8).gte(new Decimal("1e308"))) giveAchievement("Can't hold all these infinities")
  13.  
  14. if (getDimensionFinalMultiplier(1).lt(getDimensionFinalMultiplier(2)) &&
  15. getDimensionFinalMultiplier(2).lt(getDimensionFinalMultiplier(3)) &&
  16. getDimensionFinalMultiplier(3).lt(getDimensionFinalMultiplier(4)) &&
  17. getDimensionFinalMultiplier(4).lt(getDimensionFinalMultiplier(5)) &&
  18. getDimensionFinalMultiplier(5).lt(getDimensionFinalMultiplier(6)) &&
  19. getDimensionFinalMultiplier(6).lt(getDimensionFinalMultiplier(7)) &&
  20. getDimensionFinalMultiplier(7).lt(getDimensionFinalMultiplier(8))) giveAchievement("How the antitables have turned")
  21.  
  22.  
  23.  
  24. if (player.infinitied == 0 && player.infinityPoints.lt(new Decimal(1e50)) && player.eternities <= 0) document.getElementById("infinityPoints2").style.display = "none"
  25. else document.getElementById("infinityPoints2").style.display = "inline-block"
  26.  
  27. if (blink && !player.achievements.includes("r78")) {
  28. document.getElementById("Blink of an eye").style.display = "none"
  29. blink = false
  30. }
  31. else {
  32. document.getElementById("Blink of an eye").style.display = "block"
  33. blink = true
  34. }
  35. if (player.challenges.includes("postc1")) {
  36. let temp = 1
  37. for (var i=0; i < player.challenges.length; i++) {
  38. if (player.challenges[i].includes("post")) {
  39. temp *= 1.3
  40. document.getElementById("infchallengesbtn").style.display = "inline-block"
  41. }
  42. }
  43. infDimPow = temp
  44. } else {
  45. document.getElementById("infchallengesbtn").style.display = "none"
  46. }
  47.  
  48. if (player.money.gte(new Decimal("1e2000")) || Object.keys(player.eternityChalls).length > 0 || player.eternityChallUnlocked !== 0) document.getElementById("challTabButtons").style.display = "table"
  49.  
  50. document.getElementById("kongip").textContent = "Double your IP gain from all sources (additive). Forever. Currently: x"+kongIPMult+", next: x"+(kongIPMult==1? 2: kongIPMult+2)
  51. document.getElementById("kongep").textContent = "Triple your EP gain from all sources (additive). Forever. Currently: x"+kongEPMult+", next: x"+(kongEPMult==1? 3: kongEPMult+3)
  52. document.getElementById("kongdim").textContent = "Double all your normal dimension multipliers (multiplicative). Forever. Currently: x"+kongDimMult+", next: x"+(kongDimMult*2)
  53. document.getElementById("kongalldim").textContent = "Double ALL the dimension multipliers (Normal, Infinity, Time) (multiplicative until 32x). Forever. Currently: x"+kongAllDimMult+", next: x"+((kongAllDimMult < 32) ? kongAllDimMult * 2 : kongAllDimMult + 32)
  54. document.getElementById("eternityPoints2").innerHTML = "You have <span class=\"EPAmount2\">"+shortenDimensions(player.eternityPoints)+"</span> Eternity point"+((player.eternityPoints.eq(1)) ? "." : "s.")
  55.  
  56. document.getElementById("eternitybtn").style.display = (player.infinityPoints.gte(player.eternityChallGoal) && (player.infDimensionsUnlocked[7] || player.eternities > 24)) ? "inline-block" : "none"
  57.  
  58.  
  59. if (player.eternities !== 0)document.getElementById("eternitystorebtn").style.display = "inline-block"
  60. for (var i=1; i <=8; i++) {
  61. document.getElementById("postc"+i+"goal").textContent = "Goal: "+shortenCosts(goals[i-1])
  62. }
  63.  
  64. if (player.replicanti.galaxybuyer !== undefined) document.getElementById("replicantiresettoggle").style.display = "inline-block"
  65. else document.getElementById("replicantiresettoggle").style.display = "none"
  66.  
  67. if (player.eternities > 0) document.getElementById("infmultbuyer").style.display = "inline-block"
  68. else document.getElementById("infmultbuyer").style.display = "none"
  69. if (player.eternities > 4) document.getElementById("togglecrunchmode").style.display = "inline-block"
  70. else document.getElementById("togglecrunchmode").style.display = "none"
  71. if (player.eternities > 8) document.getElementById("galaxybulk").style.display = "inline-block"
  72. else document.getElementById("galaxybulk").style.display = "none"
  73.  
  74. document.getElementById("replicantichance").className = (player.infinityPoints.gte(player.replicanti.chanceCost) && player.replicanti.chance < 1) ? "storebtn" : "unavailablebtn"
  75. document.getElementById("replicantiinterval").className = (player.infinityPoints.gte(player.replicanti.intervalCost) && ((player.replicanti.interval !== 50) || player.timestudy.studies.includes(22)) && (player.replicanti.interval !== 1)) ? "storebtn" : "unavailablebtn"
  76. document.getElementById("replicantimax").className = (player.infinityPoints.gte(player.replicanti.galCost)) ? "storebtn" : "unavailablebtn"
  77. document.getElementById("replicantireset").className = (player.replicanti.galaxies < player.replicanti.gal && player.replicanti.amount.gte(Number.MAX_VALUE)) ? "storebtn" : "unavailablebtn"
  78. document.getElementById("replicantiunlock").className = (player.infinityPoints.gte(1e140)) ? "storebtn" : "unavailablebtn"
  79. updateTheoremButtons()
  80.  
  81. if (getTickSpeedMultiplier().lt(0.001)) giveAchievement("Do you even bend time bro?")
  82.  
  83. if (player.eternities > 9) document.getElementById("bulklabel").textContent = "Buy max dimboosts every X seconds:"
  84. else document.getElementById("bulklabel").textContent = "Bulk DimBoost Amount:"
  85.  
  86. if (player.eternities > 10) {
  87. for (var i=1;i<player.eternities-9 && i < 9; i++) {
  88. document.getElementById("infauto"+i).style.visibility = "visible"
  89. }
  90. document.getElementById("toggleallinfdims").style.visibility = "visible"
  91. } else {
  92. for (var i=1; i<9; i++) {
  93. document.getElementById("infauto"+i).style.visibility = "hidden"
  94. }
  95. document.getElementById("toggleallinfdims").style.visibility = "hidden"
  96. }
  97.  
  98. if (player.eternities !== 0) document.getElementById("eternityconf").style.display = "inline-block"
  99. else document.getElementById("eternityconf").style.display = "none"
  100. if (player.eternities >= 40) document.getElementById("replauto1").style.visibility = "visible"
  101. else document.getElementById("replauto1").style.visibility = "hidden"
  102. if (player.eternities >= 60) document.getElementById("replauto2").style.visibility = "visible"
  103. else document.getElementById("replauto2").style.visibility = "hidden"
  104. if (player.eternities >= 80) document.getElementById("replauto3").style.visibility = "visible"
  105. else document.getElementById("replauto3").style.visibility = "hidden"
  106. if (player.eternities >= 100) document.getElementById("autoBuyerEter").style.display = "inline-block"
  107.  
  108. if (player.eternities == 0) document.getElementById("pasteternities").style.display = "none"
  109. else document.getElementById("pasteternities").style.display = "inline-block"
  110. if (player.challenges.length > 1) document.getElementById("challengetimesbtn").style.display = "inline-block"
  111. else document.getElementById("challengetimesbtn").style.display = "none"
  112. if (player.infinitied > 0 || player.eternities > 0) document.getElementById("pastinfs").style.display = "inline-block"
  113. else document.getElementById("pastinfs").style.display = "none"
  114.  
  115. if (player.infinitied !== 0 || player.eternities !== 0) document.getElementById("bigCrunchAnimBtn").style.display = "inline-block"
  116. else document.getElementById("bigCrunchAnimBtn").style.display = "none"
  117. if (!player.dilation.tachyonParticles.eq(0)) document.getElementById("tachyonParticleAnimBtn").style.display = "inline-block"
  118. else document.getElementById("tachyonParticleAnimBtn").style.display = "none"
  119.  
  120. if (player.eternities > 10 && player.currentEternityChall !== "eterc8") {
  121. for (var i=1;i<player.eternities-9 && i < 9; i++) {
  122. if (player.infDimBuyers[i-1]) {
  123. buyMaxInfDims(i)
  124. buyManyInfinityDimension(i)
  125. }
  126. }
  127. }
  128.  
  129. if (player.eternities >= 40 && player.replicanti.auto[0] && player.currentEternityChall !== "eterc8") {
  130. while (player.infinityPoints.gte(player.replicanti.chanceCost) && player.currentEternityChall !== "eterc8" && player.replicanti.chance < 1) upgradeReplicantiChance()
  131. }
  132.  
  133. if (player.eternities >= 60 && player.replicanti.auto[1] && player.currentEternityChall !== "eterc8") {
  134. while (player.infinityPoints.gte(player.replicanti.intervalCost) && player.currentEternityChall !== "eterc8" && ((player.timestudy.studies.includes(22)) ? player.replicanti.interval > 1 : player.replicanti.interval > 50)) upgradeReplicantiInterval()
  135. }
  136.  
  137. if (player.eternities >= 80 && player.replicanti.auto[2] && player.currentEternityChall !== "eterc8") {
  138. while (upgradeReplicantiGalaxy()) continue
  139. }
  140.  
  141. document.getElementById("eterc1goal").textContent = "Goal: "+shortenCosts(new Decimal("1e1800").times(new Decimal("1e200").pow(ECTimesCompleted("eterc1"))).max(new Decimal("1e1800"))) + " IP"
  142. document.getElementById("eterc1completed").textContent = "Completed "+ECTimesCompleted("eterc1")+" times."
  143.  
  144. document.getElementById("eterc2goal").textContent = "Goal: "+shortenCosts(new Decimal("1e975").times(new Decimal("1e175").pow(ECTimesCompleted("eterc2"))).max(new Decimal("1e975"))) + " IP"
  145. document.getElementById("eterc2completed").textContent = "Completed "+ECTimesCompleted("eterc2")+" times."
  146.  
  147. document.getElementById("eterc3goal").textContent = "Goal: "+shortenCosts(new Decimal("1e600").times(new Decimal("1e75").pow(ECTimesCompleted("eterc3"))).max(new Decimal("1e575"))) + " IP"
  148. document.getElementById("eterc3completed").textContent = "Completed "+ECTimesCompleted("eterc3")+" times."
  149.  
  150. document.getElementById("eterc4goal").textContent = "Goal: "+shortenCosts(new Decimal("1e2750").times(new Decimal("1e550").pow(ECTimesCompleted("eterc4"))).max(new Decimal("1e2750"))) + " IP in "+Math.max((16 - (ECTimesCompleted("eterc4")*4)), 0)+" infinities or less."
  151. document.getElementById("eterc4completed").textContent = "Completed "+ECTimesCompleted("eterc4")+" times."
  152.  
  153. document.getElementById("eterc5goal").textContent = "Goal: "+shortenCosts(new Decimal("1e750").times(new Decimal("1e400").pow(ECTimesCompleted("eterc5"))).max(new Decimal("1e750"))) + " IP"
  154. document.getElementById("eterc5completed").textContent = "Completed "+ECTimesCompleted("eterc5")+" times."
  155.  
  156. document.getElementById("eterc6goal").textContent = "Goal: "+shortenCosts(new Decimal("1e850").times(new Decimal("1e250").pow(ECTimesCompleted("eterc6"))).max(new Decimal("1e850"))) + " IP"
  157. document.getElementById("eterc6completed").textContent = "Completed "+ECTimesCompleted("eterc6")+" times."
  158.  
  159. document.getElementById("eterc7goal").textContent = "Goal: "+shortenCosts(new Decimal("1e2000").times(new Decimal("1e530").pow(ECTimesCompleted("eterc7"))).max(new Decimal("1e2000"))) + " IP"
  160. document.getElementById("eterc7completed").textContent = "Completed "+ECTimesCompleted("eterc7")+" times."
  161.  
  162. document.getElementById("eterc8goal").textContent = "Goal: "+shortenCosts(new Decimal("1e1300").times(new Decimal("1e900").pow(ECTimesCompleted("eterc8"))).max(new Decimal("1e1300"))) + " IP"
  163. document.getElementById("eterc8completed").textContent = "Completed "+ECTimesCompleted("eterc8")+" times."
  164.  
  165. document.getElementById("eterc9goal").textContent = "Goal: "+shortenCosts(new Decimal("1e1750").times(new Decimal("1e250").pow(ECTimesCompleted("eterc9"))).max(new Decimal("1e1750"))) + " IP"
  166. document.getElementById("eterc9completed").textContent = "Completed "+ECTimesCompleted("eterc9")+" times."
  167.  
  168. document.getElementById("eterc10goal").textContent = "Goal: "+shortenCosts(new Decimal("1e3000").times(new Decimal("1e300").pow(ECTimesCompleted("eterc10"))).max(new Decimal("1e3000"))) + " IP"
  169. document.getElementById("eterc10completed").textContent = "Completed "+ECTimesCompleted("eterc10")+" times."
  170.  
  171. document.getElementById("eterc11goal").textContent = "Goal: "+shortenCosts(new Decimal("1e500").times(new Decimal("1e200").pow(ECTimesCompleted("eterc11"))).max(new Decimal("1e500"))) + " IP"
  172. document.getElementById("eterc11completed").textContent = "Completed "+ECTimesCompleted("eterc11")+" times."
  173.  
  174. document.getElementById("eterc12goal").textContent = "Goal: "+shortenCosts(new Decimal("1e110000").times(new Decimal("1e12000").pow(ECTimesCompleted("eterc12"))).max(new Decimal("1e110000"))) + " IP in "+(Math.max(10 - ECTimesCompleted("eterc12")*2, 1)/10) + ((ECTimesCompleted("eterc12") === 0) ? " second or less." :" seconds or less." )
  175. document.getElementById("eterc12completed").textContent = "Completed "+ECTimesCompleted("eterc12")+" times."
  176. updateECUnlockButtons()
  177.  
  178.  
  179.  
  180.  
  181. if (player.currentEternityChall == "eterc8") {
  182. document.getElementById("eterc8repl").style.display = "block"
  183. document.getElementById("eterc8ids").style.display = "block"
  184. document.getElementById("eterc8repl").textContent = "You have "+player.eterc8repl+" purchases left."
  185. document.getElementById("eterc8ids").textContent = "You have "+player.eterc8ids+" purchases left."
  186. } else {
  187. document.getElementById("eterc8repl").style.display = "none"
  188. document.getElementById("eterc8ids").style.display = "none"
  189. }
  190.  
  191. if (player.currentEternityChall == "eterc12" && player.thisEternity >= Math.max(2 * (5 - ECTimesCompleted("eterc12")), 1)) {
  192. document.getElementById("challfail").style.display = "block"
  193. setTimeout(exitChallenge, 500)
  194. giveAchievement("You're a mistake")
  195. failureCount++
  196. if (failureCount > 9) giveAchievement("You're a failure")
  197. }
  198.  
  199. document.getElementById("infinitiedBank").style.display = (player.infinitiedBank > 0) ? "block" : "none"
  200. document.getElementById("infinitiedBank").textContent = "You have " + player.infinitiedBank.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",") + " banked infinities."
  201.  
  202. if (infchallengeTimes < 7.5) giveAchievement("Never again")
  203. if (player.infinityPoints.gte(new Decimal("1e22000")) && player.timestudy.studies.length == 0) giveAchievement("What do I have to do to get rid of you")
  204. if (player.replicanti.galaxies >= 180*player.galaxies && player.galaxies > 0) giveAchievement("Popular music")
  205. if (player.eternityPoints.gte(Number.MAX_VALUE)) giveAchievement("But I wanted another prestige layer...")
  206. if (player.infinityPoints.gte(1e100) && player.firstAmount.equals(0) && player.infinitied == 0 && player.resets <= 4 && player.galaxies <= 1 && player.replicanti.galaxies == 0) giveAchievement("Like feasting on a behind")
  207. if (player.infinityPoints.gte('9.99999e999')) giveAchievement("This achievement doesn't exist II");
  208. if (player.infinityPoints.gte('1e30008')) giveAchievement("Can you get infinite IP?");
  209. if (player.infinitied > 2e6) giveAchievement("2 Million Infinities")
  210. if (player.money.gte("9.9999e9999")) giveAchievement("This achievement doesn't exist")
  211. if (player.money.gte("1e35000")) giveAchievement("I got a few to spare")
  212. if (player.infinityPower.gt(1)) giveAchievement("A new beginning.");
  213. if (player.infinityPower.gt(1e6)) giveAchievement("1 million is a lot"); //TBD
  214. if (player.infinityPower.gt(1e260)) giveAchievement("Minute of infinity"); //TBD
  215. if (player.totalTickGained >= 308) giveAchievement("Infinite time");
  216. if (player.firstPow >= 10e30) giveAchievement("I forgot to nerf that")
  217. if (player.money >= 10e79) giveAchievement("Antimatter Apocalypse")
  218. if (player.totalTimePlayed >= 10 * 60 * 60 * 24 * 8) giveAchievement("One for each dimension")
  219. if (player.seventhAmount > 1e12) giveAchievement("Multidimensional");
  220. if (player.tickspeed.lt(1e-26)) giveAchievement("Faster than a potato");
  221. if (player.tickspeed.lt(1e-55)) giveAchievement("Faster than a squared potato");
  222. if (Math.random() < 0.00001) giveAchievement("Do you feel lucky? Well do ya punk?");
  223. if ((player.matter.gte(2.586e15) && player.currentChallenge == "postc6") || player.matter.gte(Number.MAX_VALUE)) giveAchievement("It's not called matter dimensions is it?")
  224.  
  225. document.getElementById("dilationTabbtn").style.display = (player.dilation.studies.includes(1)) ? "inline-block" : "none"
  226. updateDilationUpgradeButtons()
  227.  
  228. if (player.infinityDimension1.baseAmount == 0 &&
  229. player.infinityDimension2.baseAmount == 0 &&
  230. player.infinityDimension3.baseAmount == 0 &&
  231. player.infinityDimension4.baseAmount == 0 &&
  232. player.infinityDimension5.baseAmount == 0 &&
  233. player.infinityDimension6.baseAmount == 0 &&
  234. player.infinityDimension7.baseAmount == 0 &&
  235. player.infinityDimension8.baseAmount == 0 &&
  236. player.infMultCost.equals(10) &&
  237. player.infinityPoints.gt(new Decimal("1e140000"))) {
  238. giveAchievement("I never liked this infinity stuff anyway")
  239. }
  240.  
  241. if (player.replicanti.amount.gt(new Decimal("1e20000"))) giveAchievement("When will it be enough?")
  242. if (player.tickspeed.e < -8296262) giveAchievement("Faster than a potato^286078")
  243. if (player.timestudy.studies.length == 0 && player.dilation.active && player.infinityPoints.e >= 20000) giveAchievement("This is what I have to do to get rid of you.")
  244. if (player.why >= 1e6) giveAchievement("Should we tell them about buy max...")
  245.  
  246. }, 1000)
  247.  
  248. function updateDimensions() {
  249. if (document.getElementById("antimatterdimensions").style.display == "block" && document.getElementById("dimensions").style.display == "block") {
  250.  
  251. for (let tier = 1; tier <= 8; ++tier) {
  252. var name = TIER_NAMES[tier];
  253. if (!canBuyDimension(tier) && document.getElementById(name + "Row").style.display !== "table-row") {
  254. break;
  255. }
  256. document.getElementById(name + "D").childNodes[0].nodeValue = DISPLAY_NAMES[tier] + " Dimension x" + formatValue(player.options.notation, getDimensionFinalMultiplier(tier), 1, 1);
  257. document.getElementById(name + "Amount").textContent = getDimensionDescription(tier);
  258. }
  259.  
  260.  
  261.  
  262. for (let tier = 1; tier <= 8; ++tier) {
  263. var name = TIER_NAMES[tier];
  264. if (!canBuyDimension(tier)) {
  265. break;
  266. }
  267.  
  268. document.getElementById(name + "Row").style.display = "table-row";
  269. document.getElementById(name + "Row").style.visibility = "visible";
  270.  
  271.  
  272. }
  273.  
  274. var shiftRequirement = getShiftRequirement(0);
  275. if (player.currentChallenge == "challenge4" ? shiftRequirement.tier < 6 : shiftRequirement.tier < 8) {
  276. document.getElementById("resetLabel").textContent = 'Dimension Shift ('+ player.resets +'): requires ' + shiftRequirement.amount + " " + DISPLAY_NAMES[shiftRequirement.tier] + " Dimensions"
  277. }
  278. else document.getElementById("resetLabel").textContent = 'Dimension Boost ('+ player.resets +'): requires ' + shiftRequirement.amount + " " + DISPLAY_NAMES[shiftRequirement.tier] + " Dimensions"
  279.  
  280. if (player.currentChallenge == "challenge4" ? player.resets > 2 : player.resets > 3) {
  281. document.getElementById("softReset").textContent = "Reset the game for a Boost"
  282. } else {
  283. document.getElementById("softReset").textContent = "Reset the game for a new Dimension"
  284. }
  285. let extraGals = player.replicanti.galaxies
  286. if (player.timestudy.studies.includes(225)) extraGals += Math.floor(player.replicanti.amount.e / 1000)
  287. if (player.timestudy.studies.includes(226)) extraGals += Math.floor(player.replicanti.gal / 15)
  288. var galString = ""
  289. if (player.galaxies >= 800) galString += "Remote Antimatter Galaxies (";
  290. else if (player.galaxies >= getGalaxyCostScalingStart() || player.currentEternityChall === "eterc5") galString += "Distant Antimatter Galaxies (";
  291. else galString += "Antimatter Galaxies (";
  292. galString += player.galaxies;
  293. if (extraGals > 0) galString += " + "+extraGals;
  294. if (player.dilation.freeGalaxies > 0) galString += " + "+player.dilation.freeGalaxies;
  295. galString += "): requires " + getGalaxyRequirement()
  296. if (player.currentChallenge == "challenge4") galString += " Sixth Dimensions";
  297. else galString += " Eighth Dimensions";
  298. document.getElementById("secondResetLabel").textContent = galString;
  299. }
  300.  
  301. if (canBuyTickSpeed() || player.currentEternityChall == "eterc9") {
  302. var tickmult = getTickSpeedMultiplier()
  303. if (tickmult.lt(1e-9)) document.getElementById("tickLabel").textContent = "Divide the tick interval by " + shortenDimensions(tickmult.pow(-1)) + '.'
  304. else {
  305. var places = 0
  306. if (tickmult.lt(0.2)) places = Math.floor(Decimal.log10(Decimal.round(tickmult.pow(-1))))
  307. document.getElementById("tickLabel").textContent = 'Reduce the tick interval by ' + ((tickmult.times(-1).plus(1)).times(100)).toFixed(places) + '%.'
  308. }
  309.  
  310. document.getElementById("tickSpeed").style.visibility = "visible";
  311. document.getElementById("tickSpeedMax").style.visibility = "visible";
  312. document.getElementById("tickLabel").style.visibility = "visible";
  313. document.getElementById("tickSpeedAmount").style.visibility = "visible";
  314. } else {
  315. document.getElementById("tickSpeed").style.visibility = "hidden";
  316. document.getElementById("tickSpeedMax").style.visibility = "hidden";
  317. document.getElementById("tickLabel").style.visibility = "hidden";
  318. document.getElementById("tickSpeedAmount").style.visibility = "hidden";
  319. }
  320.  
  321. if (player.bestInfinityTime == 9999999999) {
  322. document.getElementById("bestInfinity").textContent = ""
  323. document.getElementById("infinitied").textContent = ""
  324. document.getElementById("thisInfinity").textContent = ""
  325. } else {
  326. document.getElementById("bestInfinity").textContent = "Your fastest Infinity is in " + timeDisplay(player.bestInfinityTime) + "."
  327. document.getElementById("thisInfinity").textContent = "You have spent " + timeDisplay(player.thisInfinityTime) + " in this Infinity."
  328. if (player.infinityPoints.equals(1)) {
  329. document.getElementById("infinityPoints1").textContent = "You have 1 Infinity point."
  330. document.getElementById("infinityPoints2").textContent = "You have 1 Infinity point."
  331. }
  332. else {
  333. document.getElementById("infinityPoints1").innerHTML = "You have <span class=\"IPAmount1\">"+shortenDimensions(player.infinityPoints)+"</span> Infinity points."
  334. document.getElementById("infinityPoints2").innerHTML = "You have <span class=\"IPAmount2\">"+shortenDimensions(player.infinityPoints)+"</span> Infinity points."
  335. }
  336. if (player.infinitied == 1) document.getElementById("infinitied").textContent = "You have infinitied 1 time."
  337. else document.getElementById("infinitied").textContent = "You have infinitied " + player.infinitied.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",") + " times."
  338. if (player.infinitiedBank > 0) document.getElementById("infinitied").textContent = "You have infinitied " + player.infinitied.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",") + " times this eternity."
  339.  
  340. }
  341.  
  342. if (document.getElementById("stats").style.display == "block" && document.getElementById("statistics").style.display == "block") {
  343. document.getElementById("totalmoney").textContent = 'You have made a total of ' + shortenMoney(player.totalmoney) + ' antimatter.'
  344. document.getElementById("totalresets").textContent = 'You have done ' + player.resets + ' dimensional boosts/shifts.'
  345. document.getElementById("galaxies").textContent = 'You have ' + Math.round(player.galaxies) + ' Antimatter Galaxies.'
  346. document.getElementById("totalTime").textContent = "You have played for " + timeDisplay(player.totalTimePlayed) + "."
  347.  
  348. if (player.eternities == 0) {
  349. document.getElementById("eternitied").textContent = ""
  350. document.getElementById("besteternity").textContent = ""
  351. document.getElementById("thiseternity").textContent = ""
  352. } else {
  353. document.getElementById("eternitied").textContent = "You have Eternitied " + player.eternities.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",") + " times."
  354. document.getElementById("besteternity").textContent = "You have spent "+timeDisplay(player.thisEternity)+" in this Eternity."
  355. document.getElementById("thiseternity").textContent = "Your fastest Eternity is in "+timeDisplay(player.bestEternity)+"."
  356. }
  357. }
  358.  
  359. if (document.getElementById("infinity").style.display == "block") {
  360. if (document.getElementById("preinf").style.display == "block") {
  361. document.getElementById("infi11").innerHTML = "Normal dimensions gain a multiplier based on time played <br>Currently: " + (Math.pow(0.5 * player.totalTimePlayed / 600, 0.15)).toFixed(2) + "x<br>Cost: 1 IP"
  362. document.getElementById("infi12").innerHTML = "First and Eighth Dimensions gain a multiplier based on infinitied stat<br>Currently: " + formatValue(player.options.notation, dimMults(), 1, 1) + "x<br>Cost: 1 IP"
  363. document.getElementById("infi13").innerHTML = "Third and Sixth Dimensions gain a multiplier based on infinitied stat<br>Currently: " + formatValue(player.options.notation, dimMults(), 1, 1) + "x<br>Cost: 1 IP"
  364. document.getElementById("infi22").innerHTML = "Second and seventh Dimensions gain a multiplier based on infinitied stat<br>Currently: " + formatValue(player.options.notation, dimMults(), 1, 1) + "x<br>Cost: 1 IP"
  365. document.getElementById("infi23").innerHTML = "Fourth and Fifth Dimensions gain a multiplier based on infinitied stat<br>Currently: " + formatValue(player.options.notation, dimMults(), 1, 1) + "x<br>Cost: 1 IP"
  366. document.getElementById("infi31").innerHTML = "Normal dimensions gain a multiplier based on time spent in current infinity<br>Currently: " + Decimal.max(Math.pow(player.thisInfinityTime / 2400, 0.25), 1).toFixed(2) + "x<br>Cost: 3 IP"
  367. document.getElementById("infi32").innerHTML = "Multiplier for unspent Infinity Points on 1st Dimension<br>Currently: " + formatValue(player.options.notation, player.infinityPoints.dividedBy(2).pow(1.5).plus(1), 2, 2) + "x<br>Cost: 5 IP"
  368. document.getElementById("infi34").innerHTML = "Infinity Point generation based on fastest infinity <br>Currently: "+shortenDimensions(player.infMult.times(kongIPMult))+" every " + timeDisplay(player.bestInfinityTime*10) + "<br>Cost: 10 IP"
  369. }
  370. else if (document.getElementById("postinf").style.display == "block") {
  371. document.getElementById("postinfi11").innerHTML = "Power up all dimensions based on total antimatter produced<br>Currently: "+ Math.pow(player.totalmoney.e+1, 0.5).toFixed(2)+"x<br>Cost: "+shortenCosts(1e4)+" IP"
  372. document.getElementById("postinfi21").innerHTML = "Power up all dimensions based on current antimatter<br>Currently: "+ Math.pow(player.money.e+1, 0.5).toFixed(2)+"x<br>Cost: "+shortenCosts(5e4)+" IP"
  373. document.getElementById("postinfi31").innerHTML = "Tickspeed cost multiplier increase <br>"+player.tickSpeedMultDecrease+"x -> "+(player.tickSpeedMultDecrease-1)+"x<br>Cost: "+shortenDimensions(player.tickSpeedMultDecreaseCost) +" IP"
  374. if (player.tickSpeedMultDecrease <= 2) document.getElementById("postinfi31").innerHTML = "Tickspeed cost multiplier increase <br>"+player.tickSpeedMultDecrease+"x"
  375. document.getElementById("postinfi22").innerHTML = "Power up all dimensions based on achievements completed <br>Currently: "+achievementMult.toFixed(2)+"x<br>Cost: "+shortenCosts(1e6)+" IP"
  376. document.getElementById("postinfi12").innerHTML = "Power up all dimensions based on amount infinitied <br>Currently: "+(1+Math.log10(getInfinitied()+1)*10).toFixed(2)+"x<br>Cost: "+shortenCosts(1e5)+" IP"
  377. if (player.timestudy.studies.includes(31)) document.getElementById("postinfi12").innerHTML = "Power up all dimensions based on amount infinitied <br>Currently: "+shortenMoney(Math.pow((Math.log10(getInfinitied()+1)*10).toFixed(2), 4))+"x<br>Cost: "+shortenCosts(1e5)+" IP"
  378. document.getElementById("postinfi41").innerHTML = "Makes galaxies 50% stronger <br>Cost: "+shortenCosts(5e11)+" IP"
  379. document.getElementById("postinfi32").innerHTML = "Power up all dimensions based on slowest challenge run<br>Currently:"+Decimal.max(10*3000/worstChallengeTime, 1).toFixed(2)+"x<br>Cost: "+shortenCosts(1e7)+" IP"
  380. document.getElementById("postinfi42").innerHTML = "Dimension cost multiplier increase <br>"+player.dimensionMultDecrease+"x -> "+(player.dimensionMultDecrease-1)+"x<br>Cost: "+shortenCosts(player.dimensionMultDecreaseCost) +" IP"
  381.  
  382. document.getElementById("postinfi13").innerHTML = "You passively generate Infinitied stat based on your fastest infinity.<br>1 Infinity every "+timeDisplay(player.bestInfinityTime*5)+ " <br>Cost: "+shortenCosts(20e6)+" IP"
  383. document.getElementById("postinfi23").innerHTML = "Option to bulk buy Dimension Boosts <br>Cost: "+shortenCosts(5e9)+" IP"
  384. document.getElementById("postinfi33").innerHTML = "Autobuyers work twice as fast <br>Cost:"+shortenCosts(1e15)+" IP"
  385. if (player.dimensionMultDecrease <= 3) document.getElementById("postinfi42").innerHTML = "Dimension cost multiplier increase <br>"+player.dimensionMultDecrease.toFixed(1)+"x"
  386.  
  387. document.getElementById("offlineProd").innerHTML = "Generates "+player.offlineProd+"% > "+Math.max(Math.max(5, player.offlineProd + 5), Math.min(50, player.offlineProd + 5))+"% of your best IP/min from last 10 infinities, works offline<br>Currently: "+shortenMoney(bestRunIppm.times(player.offlineProd/100)) +"IP/min<br> Cost: "+shortenCosts(player.offlineProdCost)+" IP"
  388. if (player.offlineProd == 50) document.getElementById("offlineProd").innerHTML = "Generates "+player.offlineProd+"% of your best IP/min from last 10 infinities, works offline<br>Currently: "+shortenMoney(bestRunIppm.times(player.offlineProd/100)) +" IP/min"
  389. }
  390. }
  391.  
  392. if (document.getElementById("eternityupgrades").style.display == "block" && document.getElementById("eternitystore").style.display == "block") {
  393. document.getElementById("eter1").innerHTML = "Infinity Dimensions multiplier based on unspent EP (x+1)<br>Currently: "+shortenMoney(player.eternityPoints.plus(1))+"x<br>Cost: 5 EP"
  394. document.getElementById("eter2").innerHTML = "Infinity Dimension multiplier based on eternities ((x/200)^log4(2x))<br>Currently: "+shortenMoney(Decimal.pow(Math.min(player.eternities, 100000)/200 + 1, Math.log(Math.min(player.eternities, 100000)*2+1)/Math.log(4)).times(new Decimal((player.eternities-100000)/200 + 1).times(Math.log((player.eternities- 100000)*2+1)/Math.log(4)).max(1)))+"x<br>Cost: 10 EP"
  395. document.getElementById("eter3").innerHTML = "Infinity Dimensions multiplier based on sum of Infinity Challenge times<br>Currently: "+shortenMoney(Decimal.pow(2,300/Math.max(infchallengeTimes, player.achievements.includes("r112") ? 6.1 : 7.5)))+"x<br>Cost: "+shortenCosts(50e3)+" EP"
  396. document.getElementById("eter4").innerHTML = "Your achievement bonus affects Time Dimensions"+"<br>Cost: "+shortenCosts(1e16)+" EP"
  397. document.getElementById("eter5").innerHTML = "Time Dimensions are multiplied by your unspent time theorems"+"<br>Cost: "+shortenCosts(1e40)+" EP"
  398. document.getElementById("eter6").innerHTML = "Time Dimensions are multiplied by days played"+"<br>Cost: "+shortenCosts(1e50)+" EP"
  399. }
  400.  
  401. if (document.getElementById("dilation").style.display == "block") {
  402. if (player.dilation.active) {
  403. if (Math.pow(Decimal.log10(player.money) / 400, 1.5) * (Math.pow(3, player.dilation.rebuyables[3])) - player.dilation.totalTachyonParticles <= 0) {
  404. document.getElementById("enabledilation").innerHTML = "Disable dilation.<br>Reach " + shortenMoney(Decimal.pow(10, Math.pow(player.dilation.tachyonParticles * Math.pow(400, 1.5) / Math.pow(3, player.dilation.rebuyables[3]), 2/3))) + " antimatter to gain more Tachyon Particles."
  405. } else {
  406. document.getElementById("enabledilation").textContent = "Disable dilation."
  407. }
  408. }
  409. else document.getElementById("enabledilation").textContent = "Dilate time."
  410. }
  411. }
  412.  
  413. function getTickSpeedMultiplier() {
  414. if (player.currentChallenge == "postc3") return new Decimal(1);
  415. if (player.galaxies + player.replicanti.galaxies + player.dilation.freeGalaxies < 3) {
  416. let baseMultiplier = 0.9;
  417. if (player.galaxies == 0) baseMultiplier = 0.89
  418. if (player.currentChallenge == "challenge6" || player.currentChallenge == "postc1") baseMultiplier = 0.93;
  419. let perGalaxy = 0.02;
  420. let galaxies = player.galaxies+player.replicanti.galaxies+player.dilation.freeGalaxies
  421. if (player.timestudy.studies.includes(133)) galaxies += player.replicanti.galaxies/2
  422. if (player.timestudy.studies.includes(132)) galaxies += player.replicanti.galaxies*0.4
  423. if (player.timestudy.studies.includes(225)) galaxies += Math.floor(player.replicanti.amount.e / 1000)
  424. if (player.timestudy.studies.includes(226)) galaxies += Math.floor(player.replicanti.gal / 15)
  425. galaxies += Math.min(player.replicanti.galaxies, player.replicanti.gal) * Math.max(Math.pow(Math.log10(player.infinityPower.plus(1).log10()+1), 0.03 * ECTimesCompleted("eterc8"))-1, 0)
  426. if (player.infinityUpgrades.includes("galaxyBoost")) perGalaxy *= 2;
  427. if (player.infinityUpgrades.includes("postGalaxy")) perGalaxy *= 1.5;
  428. if (player.challenges.includes("postc5")) perGalaxy *= 1.1;
  429. if (player.achievements.includes("r86")) perGalaxy *= 1.01;
  430. if (player.timestudy.studies.includes(212)) perGalaxy *= Math.min(Math.pow(player.timeShards.max(2).log2(), 0.005), 1.1)
  431.  
  432. return new Decimal(baseMultiplier-(player.galaxies*perGalaxy));
  433. } else {
  434. let baseMultiplier = new Decimal(0.8)
  435. if (player.currentChallenge == "challenge6" || player.currentChallenge == "postc1") baseMultiplier = new Decimal(0.83)
  436. let perGalaxy = new Decimal(0.965)
  437. let galaxies = player.galaxies-2+player.replicanti.galaxies+player.dilation.freeGalaxies
  438. if (player.timestudy.studies.includes(133)) galaxies += player.replicanti.galaxies/2
  439. if (player.timestudy.studies.includes(132)) galaxies += player.replicanti.galaxies*0.4
  440. if (player.timestudy.studies.includes(225)) galaxies += Math.floor(player.replicanti.amount.e / 1000)
  441. if (player.timestudy.studies.includes(226)) galaxies += Math.floor(player.replicanti.gal / 15)
  442. galaxies += Math.min(player.replicanti.galaxies, player.replicanti.gal) * Math.max(Math.pow(Math.log10(player.infinityPower.plus(1).log10()+1), 0.03 * ECTimesCompleted("eterc8"))-1, 0)
  443. if (player.infinityUpgrades.includes("galaxyBoost")) galaxies *= 2;
  444. if (player.infinityUpgrades.includes("postGalaxy")) galaxies *= 1.5;
  445. if (player.challenges.includes("postc5")) galaxies *= 1.1;
  446. if (player.achievements.includes("r86")) galaxies *= 1.01
  447. if (player.timestudy.studies.includes(212)) galaxies *= Math.min(Math.pow(player.timeShards.max(2).log2(), 0.005), 1.1)
  448. if (player.timestudy.studies.includes(232)) galaxies *= Math.pow(1+player.galaxies/1000, 0.2)
  449.  
  450. return baseMultiplier.times(Decimal.pow(perGalaxy, (galaxies-2)))
  451. }
  452. }
  453.  
  454. function getDimensionFinalMultiplier(tier) {
  455. //if (player.currentEternityChall == "eterc3" && tier > 4) return new Decimal(0)
  456. var name = TIER_NAMES[tier];
  457.  
  458. let multiplier = new Decimal(player[name + 'Pow']);
  459.  
  460. if (player.currentEternityChall == "eterc11") return player.infinityPower.pow(7).max(1).times(getDimensionBoostPower().pow(player.resets - tier + 1).max(1))
  461. if (player.currentChallenge == "challenge7") {
  462. if (tier == 4) multiplier = multiplier.pow(1.4)
  463. if (tier == 2) multiplier = multiplier.pow(1.7)
  464. }
  465.  
  466. multiplier = multiplier.times(player.achPow);
  467. multiplier = multiplier.times(kongDimMult)
  468. multiplier = multiplier.times(kongAllDimMult)
  469.  
  470. if (player.currentEternityChall == "eterc9") multiplier = multiplier;
  471. else multiplier = multiplier.times(player.infinityPower.pow(7).max(1))
  472.  
  473. if (player.infinityUpgrades.includes("totalMult")) multiplier = multiplier.times(totalMult)
  474. if (player.infinityUpgrades.includes("currentMult")) multiplier = multiplier.times(currentMult)
  475. if (player.infinityUpgrades.includes("infinitiedMult")) multiplier = multiplier.times(infinitiedMult)
  476. if (player.infinityUpgrades.includes("achievementMult")) multiplier = multiplier.times(achievementMult)
  477. if (player.infinityUpgrades.includes("challengeMult")) multiplier = multiplier.times(challengeMult)
  478.  
  479. if (hasInfinityMult(tier)) multiplier = multiplier.times(dimMults());
  480. if (tier == 1) {
  481. if (player.infinityUpgrades.includes("unspentBonus")) multiplier = multiplier.times(unspentBonus);
  482. if (player.achievements.includes("r28")) multiplier = multiplier.times(1.1);
  483. if (player.achievements.includes("r31")) multiplier = multiplier.times(1.05);
  484. if (player.achievements.includes("r71")) multiplier = multiplier.times(3);
  485. if (player.achievements.includes("r68")) multiplier = multiplier.times(1.5);
  486. }
  487.  
  488. multiplier = multiplier.times(timeMult());
  489. if (tier == 8 && player.achievements.includes("r23")) multiplier = multiplier.times(1.1);
  490. else if (player.achievements.includes("r34")) multiplier = multiplier.times(1.02);
  491. if (tier <= 4 && player.achievements.includes("r43")) multiplier = multiplier.times(1.25);
  492. if (player.achievements.includes("r48")) multiplier = multiplier.times(1.1);
  493. if (player.achievements.includes("r72")) multiplier = multiplier.times(1.1); // tbd
  494. if (player.achievements.includes("r74") && player.currentChallenge != "") multiplier = multiplier.times(1.4);
  495. if (player.achievements.includes("r77")) multiplier = multiplier.times(1+tier/100);
  496. if (player.achievements.includes("r56") && player.thisInfinityTime < 1800) multiplier = multiplier.times(3600/(player.thisInfinityTime+1800));
  497. if (player.achievements.includes("r78") && player.thisInfinityTime < 3) multiplier = multiplier.times(3.3/(player.thisInfinityTime+0.3));
  498. if (player.achievements.includes("r65") && player.currentChallenge != "" && player.thisInfinityTime < 1800) multiplier = multiplier.times(Math.max(2400/(player.thisInfinityTime+600), 1))
  499. if (player.achievements.includes("r91") && player.thisInfinityTime < 50) multiplier = multiplier.times(Math.max(301-player.thisInfinityTime*6, 1))
  500. if (player.achievements.includes("r92") && player.thisInfinityTime < 600) multiplier = multiplier.times(Math.max(101-player.thisInfinityTime/6, 1));
  501. if (player.achievements.includes("r84")) multiplier = multiplier.times(player.money.pow(0.00004).plus(1));
  502. else if (player.achievements.includes("r73")) multiplier = multiplier.times(player.money.pow(0.00002).plus(1));
  503.  
  504.  
  505. if (player.timestudy.studies.includes(71) && tier !== 8) multiplier = multiplier.times(calcTotalSacrificeBoost().pow(0.25).min("1e210000"));
  506. if (player.timestudy.studies.includes(91)) multiplier = multiplier.times(Decimal.pow(10, Math.min(player.thisEternity, 18000)/60));
  507. if (player.timestudy.studies.includes(101)) multiplier = multiplier.times(Decimal.max(player.replicanti.amount, 1))
  508. if (player.timestudy.studies.includes(161)) multiplier = multiplier.times(new Decimal("1e616"))
  509. if (player.timestudy.studies.includes(234) && tier == 1) multiplier = multiplier.times(calcTotalSacrificeBoost())
  510.  
  511. multiplier = multiplier.times(player.postC3Reward)
  512. if (player.challenges.includes("postc8") && tier < 8 && tier > 1) multiplier = multiplier.times(mult18);
  513.  
  514. if (player.currentChallenge == "postc6") multiplier = multiplier.dividedBy(player.matter.max(1))
  515. if (player.currentChallenge == "postc8") multiplier = multiplier.times(postc8Mult)
  516.  
  517. if (player.currentChallenge == "postc4" && player.postC4Tier != tier) multiplier = multiplier.pow(0.25)
  518. if (player.challenges.includes("postc4")) multiplier = multiplier.pow(1.05);
  519. if (player.currentEternityChall == "eterc10") multiplier = multiplier.times(ec10bonus)
  520. if (player.timestudy.studies.includes(193)) multiplier = multiplier.times(Decimal.pow(1.03, player.eternities).min("1e13000"))
  521. if (tier == 8 && player.timestudy.studies.includes(214)) multiplier = multiplier.times((calcTotalSacrificeBoost().pow(8)).min("1e46000").times(calcTotalSacrificeBoost().pow(1.1).min(new Decimal("1e125000"))))
  522. if (multiplier.lt(1)) multiplier = new Decimal(1)
  523. if (player.dilation.active) {
  524. multiplier = Decimal.pow(10, Math.pow(multiplier.log10(), 0.75))
  525. if (player.dilation.upgrades.includes(9)) {
  526. multiplier = Decimal.pow(10, Math.pow(multiplier.log10(), 1.05))
  527. }
  528. }
  529. if (universe == 2) {
  530. multiplier = Decimal.pow(10, Math.pow(multiplier.log10(), 1.2))
  531. }
  532.  
  533. if (player.dilation.upgrades.includes(6)) multiplier = multiplier.times(player.dilation.dilatedTime.pow(308))
  534. return multiplier;
  535. }
  536.  
  537. function getDimensionFinalMultiplier(tier) {
  538. //if (player.currentEternityChall == "eterc3" && tier > 4) return new Decimal(0)
  539. var name = TIER_NAMES[tier];
  540.  
  541. let multiplier = new Decimal(player[name + 'Pow']);
  542.  
  543. if (player.currentEternityChall == "eterc11") return player.infinityPower.pow(7).max(1).times(getDimensionBoostPower().pow(player.resets - tier + 1).max(1))
  544. if (player.currentChallenge == "challenge7") {
  545. if (tier == 4) multiplier = multiplier.pow(1.4)
  546. if (tier == 2) multiplier = multiplier.pow(1.7)
  547. }
  548.  
  549. multiplier = multiplier.times(player.achPow);
  550. multiplier = multiplier.times(kongDimMult)
  551. multiplier = multiplier.times(kongAllDimMult)
  552.  
  553. if (player.currentEternityChall == "eterc9") multiplier = multiplier;
  554. else multiplier = multiplier.times(player.infinityPower.pow(7).max(1))
  555.  
  556. if (player.infinityUpgrades.includes("totalMult")) multiplier = multiplier.times(totalMult)
  557. if (player.infinityUpgrades.includes("currentMult")) multiplier = multiplier.times(currentMult)
  558. if (player.infinityUpgrades.includes("infinitiedMult")) multiplier = multiplier.times(infinitiedMult)
  559. if (player.infinityUpgrades.includes("achievementMult")) multiplier = multiplier.times(achievementMult)
  560. if (player.infinityUpgrades.includes("challengeMult")) multiplier = multiplier.times(challengeMult)
  561.  
  562. if (hasInfinityMult(tier)) multiplier = multiplier.times(dimMults());
  563. if (tier == 1) {
  564. if (player.infinityUpgrades.includes("unspentBonus")) multiplier = multiplier.times(unspentBonus);
  565. if (player.achievements.includes("r28")) multiplier = multiplier.times(1.1);
  566. if (player.achievements.includes("r31")) multiplier = multiplier.times(1.05);
  567. if (player.achievements.includes("r71")) multiplier = multiplier.times(3);
  568. if (player.achievements.includes("r68")) multiplier = multiplier.times(1.5);
  569. }
  570.  
  571. multiplier = multiplier.times(timeMult());
  572. if (tier == 8 && player.achievements.includes("r23")) multiplier = multiplier.times(1.1);
  573. else if (player.achievements.includes("r34")) multiplier = multiplier.times(1.02);
  574. if (tier <= 4 && player.achievements.includes("r43")) multiplier = multiplier.times(1.25);
  575. if (player.achievements.includes("r48")) multiplier = multiplier.times(1.1);
  576. if (player.achievements.includes("r72")) multiplier = multiplier.times(1.1); // tbd
  577. if (player.achievements.includes("r74") && player.currentChallenge != "") multiplier = multiplier.times(1.4);
  578. if (player.achievements.includes("r77")) multiplier = multiplier.times(1+tier/100);
  579. if (player.achievements.includes("r56") && player.thisInfinityTime < 1800) multiplier = multiplier.times(3600/(player.thisInfinityTime+1800));
  580. if (player.achievements.includes("r78") && player.thisInfinityTime < 3) multiplier = multiplier.times(3.3/(player.thisInfinityTime+0.3));
  581. if (player.achievements.includes("r65") && player.currentChallenge != "" && player.thisInfinityTime < 1800) multiplier = multiplier.times(Math.max(2400/(player.thisInfinityTime+600), 1))
  582. if (player.achievements.includes("r91") && player.thisInfinityTime < 50) multiplier = multiplier.times(Math.max(301-player.thisInfinityTime*6, 1))
  583. if (player.achievements.includes("r92") && player.thisInfinityTime < 600) multiplier = multiplier.times(Math.max(101-player.thisInfinityTime/6, 1));
  584. if (player.achievements.includes("r84")) multiplier = multiplier.times(player.money.pow(0.00004).plus(1));
  585. else if (player.achievements.includes("r73")) multiplier = multiplier.times(player.money.pow(0.00002).plus(1));
  586.  
  587.  
  588. if (player.timestudy.studies.includes(71) && tier !== 8) multiplier = multiplier.times(calcTotalSacrificeBoost().pow(0.25).min("1e210000"));
  589. if (player.timestudy.studies.includes(91)) multiplier = multiplier.times(Decimal.pow(10, Math.min(player.thisEternity, 18000)/60));
  590. if (player.timestudy.studies.includes(101)) multiplier = multiplier.times(Decimal.max(player.replicanti.amount, 1))
  591. if (player.timestudy.studies.includes(161)) multiplier = multiplier.times(new Decimal("1e616"))
  592. if (player.timestudy.studies.includes(234) && tier == 1) multiplier = multiplier.times(calcTotalSacrificeBoost())
  593.  
  594. multiplier = multiplier.times(player.postC3Reward)
  595. if (player.challenges.includes("postc8") && tier < 8 && tier > 1) multiplier = multiplier.times(mult18);
  596.  
  597. if (player.currentChallenge == "postc6") multiplier = multiplier.dividedBy(player.matter.max(1))
  598. if (player.currentChallenge == "postc8") multiplier = multiplier.times(postc8Mult)
  599.  
  600. if (player.currentChallenge == "postc4" && player.postC4Tier != tier) multiplier = multiplier.pow(0.25)
  601. if (player.challenges.includes("postc4")) multiplier = multiplier.pow(1.05);
  602. if (player.currentEternityChall == "eterc10") multiplier = multiplier.times(ec10bonus)
  603. if (player.timestudy.studies.includes(193)) multiplier = multiplier.times(Decimal.pow(1.03, player.eternities).min("1e13000"))
  604. if (tier == 8 && player.timestudy.studies.includes(214)) multiplier = multiplier.times((calcTotalSacrificeBoost().pow(8)).min("1e46000").times(calcTotalSacrificeBoost().pow(1.1).min(new Decimal("1e125000"))))
  605. if (multiplier.lt(1)) multiplier = new Decimal(1)
  606. if (player.dilation.active) {
  607. multiplier = Decimal.pow(10, Math.pow(multiplier.log10(), 0.75))
  608. if (player.dilation.upgrades.includes(9)) {
  609. multiplier = Decimal.pow(10, Math.pow(multiplier.log10(), 1.05))
  610. }
  611. }
  612. if (universe == 2) {
  613. multiplier = Decimal.pow(10, Math.pow(multiplier.log10(), 1.2))
  614. }
  615.  
  616. if (player.dilation.upgrades.includes(6)) multiplier = multiplier.times(player.dilation.dilatedTime.pow(308))
  617. return multiplier;
  618. }
Add Comment
Please, Sign In to add comment