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.2", name: "First Release", } let changelog = `

Changelog:



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) if (hasMilestone('f', 0)) gain = gain.mul(getTotalLevel().add(1).log(5).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)) } // 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(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().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) { }