let modInfo = { name: "Progressbar Incremental", id: "nif/pbic", author: "Nif", pointsName: "points", modFiles: ["data/ranks.js", "data/levels.js", "data/progress.js", "data/super progress.js", "data/files.js", "data/integrals.js", "data/achievements.js", "data/tree.js"], discordName: "", discordLink: "", initialStartPoints: new Decimal (1), // Used for hard resets and new players offlineLimit: 1, // In hours } // Set your version in num and name let VERSION = { num: "1.6", name: "The great rebalancing", } let changelog = `

Changelog:



v1.6


- General bugfixing.
- Made the tree manually generated.
- Fixed the file prestige functions.

v1.5


- Clarified some effects.
- Decreased SPP requirement.
- Made Even more progress affect SPP gain.
- Made Files need SPP instead of PP.
- Made File cost dependent on total and points.
- Made other changes to File cost.
- Reshuffled some Filestones.
- Added a new softcap.
- Made Directory upgrade [4,3] use total Files.
- Added more Filestones and Directory upgrades.
- Added a Directory buyable.
- Slightly increased Integral cost.

v1.2


- Added a few missing format() calls.
- Added a note for the hardcap.
- Decreased Integral requirement.

v1.1


- Made all renders of Decimal objects use format().
- Adjusted file costs and filestone 2 effect.

v1.0 First Release


- Added Progress, Super Progress, and File layers.
- Added bars Alpha to Lambda.
- Added ranks Alpha to Zeta.
- Added 3 buyables and 2 super buyables.
- Added 10 Filestones.
- Added 11 Directory upgrades.
- Added Integral reset.
- Added 29 achievements.
- Current endgame: 1 integral.
` let winText = `Download 100% complete.

You won! Congratulations!
More content coming soon...` // If you add new functions anywhere inside of a layer, and those functions have an effect when called, add them here. // (The ones here are examples, all official functions are already taken care of) var doNotCallTheseFunctionsEveryTick = ["blowUpEverything"] function getStartPoints(){ return new Decimal(modInfo.initialStartPoints) } // Determines if it should show points/sec function canGenPoints(){ return getAlphaLevel().gte(0) } // Calculate points/sec! function getPointGen() { if(!canGenPoints()) return new Decimal(0) // additive let gain = getAlphaEffect() gain = gain.add(getEtaEffect()) // multiplicative gain = gain.mul(getBetaEffect()) gain = gain.mul(getGammaEffect()) gain = gain.mul(getDeltaEffect()) gain = gain.mul(getZetaEffect()) gain = gain.mul(getLambdaEffect()) gain = gain.mul(tmp.ach.effect) gain = gain.mul(buyableEffect('f', 11)) if (hasMilestone('f', 1)) gain = gain.mul(getTotalLevel().add(7).log(2)) if (hasMilestone('f', 6)) gain = gain.mul(player.f.total.div(2).add(1)) // exponentiative if (gain.gte(1)) { gain = gain.pow(getEpsilonEffect()) gain = gain.pow(getIotaEffect()) gain = gain.pow(buyableEffect('sp', 12)) if (hasMilestone('f', 3)) gain = gain.pow(2) if (hasUpgrade('f', 11)) gain = gain.pow(upgradeEffect('f', 11)) if (hasUpgrade('f', 53)) gain = gain.pow(upgradeEffect('f', 53)) } // softcaps gain = softcap(gain, getKappaEffect().mul(1000), d => d.add(1).log(Math.E).add(1).pow(2).sub(1).div(2)) gain = softcap(gain, Decimal.pow(1e6, (hasMilestone('f', 11) ? getTotalSuperLevel().add(1).log(2).add(1).log(2).add(1) : 1)), d => d.add(1).log(3 - hasUpgrade('f', 61)).add(1) ) gain = softcap(gain, Decimal.pow(2, 128), _ => new Decimal(0), player.points) return gain } // You can add non-layer related variables that should to into "player" and be saved here, along with default values function addedPlayerData() { return { }} // Display extra things at the top of the page var displayThings = [ "All exponentiative upgrades only take affect above 1.", () => getPointGen().gte(getKappaEffect().mul(1000)) ? "Your points per second are being logarithmically softcapped over " + format(getKappaEffect().mul(1000)) + "/s" : "", () => getPointGen().gte( Decimal.pow(1e6, hasMilestone('f', 10) ? getTotalSuperLevel().pow(1/10).add(1).log(10).add(1) : 1) ) ? "Your points per second are being logarithmically softcapped again over " + format(Decimal.pow( 1e6, hasMilestone('f', 11) ? getTotalSuperLevel().pow(1/10).add(1).log(10).add(1) : 1 )) + "/s" : "", () => getPointGen().add(player.points).gte(Decimal.pow(2, 128)) ? "Your points per second are being hardcapped over " + format(Decimal.pow(2, 128)) : "" ] // Determines when the game "ends" function isEndgame() { return player.i.points.gt(0) } // Less important things beyond this point! // Style for the background, can be a function var backgroundStyle = { } // You can change this if you have things that can be messed up by long tick lengths function maxTickLength() { return(3600) // Default is 1 hour which is just arbitrarily large } // Use this if you need to undo inflation from an older version. If the version is older than the version that fixed the issue, // you can cap their current resources with this. function fixOldSave(oldVersion) { }