just_another_tree/js/data/achievements.js
TJCgames dc4539ec52 Integrals!
Big number hardcap and achievements
2024-03-15 15:48:00 +00:00

178 lines
6.5 KiB
JavaScript

addLayer("ach", {
name: "achievements", // This is optional, only used in a few places, If absent it just uses the layer id.
symbol: "☆", // This appears on the layer's node. Default is the id with the first letter capitalized
position: 0, // Horizontal position within a row. By default it uses the layer id and sorts in alphabetical order
startData() { return {
unlocked: true,
has45: false,
has55: false
}},
color: "#9d750d",
effect() {
return Decimal.div(player[this.layer].achievements.length, 20).add(1)
},
achievements: {
11: {
name: "All that progress is gone!",
done() { return player.p.points.gte(1) },
tooltip: "Reset for 1 PP."
},
12: {
name: "So that's what the mechanic is...",
done() { return getAlphaLevel().gte(2) },
tooltip: "Reach Alpha level 2."
},
13: {
name: "This is quite fun!",
done() { return getBetaLevel().gte(1) },
tooltip: "Reach Beta level 1."
},
14: {
name: "Oh so many bars.",
done() { return getGammaLevel().gte(1) },
tooltip: "Reach Gamma level 1."
},
15: {
name: "GREEN!!!",
done() { return options.theme === "verdant" },
tooltip: "Switch to the Verdant theme."
},
21: {
name: "Nomial gains.",
done() { return getPointGen().gte(1) },
tooltip: "Get 1 point per second."
},
22: {
name: "That's an exponent!",
done() { return getEpsilonLevel().gte(1) },
tooltip: "Reach Epsilon level 1."
},
23: {
name: "What's a \"Rank\"?",
done() { return getAlphaRank().gte(1) },
tooltip: "Reach Alpha rank 1."
},
24: {
name: "No more bars?",
done() { return getZetaLevel().gte(1) },
tooltip: "Reach Zeta level 1."
},
25: {
name: "Lots of points",
done() { return player.points.gte(200) },
tooltip: "Reach 200 points."
},
31: {
name: "Even more progress.",
done() { return getBuyableAmount('p', 11).gte(1) },
tooltip: "Get 1x <b>More progress</b> buyable."
},
32: {
name: "So this just boosts Gamma further?",
done() { return getBuyableAmount('p', 12).gte(1) },
tooltip: "Get 1x <b>Rebased</b> buyable."
},
33: {
name: "Softcap?? >:(",
done() { return getPointGen().gte(getKappaEffect().mul(1000)) },
tooltip: "Reach the first softcap."
},
33: {
name: "Decrementy",
done() { return getBuyableAmount('p', 13).gte(1) },
tooltip: "Get 1x <b>Shorter bars</b> buyable."
},
34: {
name: "Super!",
done() { return player.sp.points.gte(1) },
tooltip: "Reset for 1 SPP."
},
35: {
name: "Where were you??",
done() { return getPointGen().gt(0) && player.points.div(100).gte(getPointGen()) },
tooltip: "Have your points reach 100x your points per second."
},
41: {
name: "Progressed further.",
done() { return getThetaLevel().gte(1) },
tooltip: "Reach Theta level 1."
},
42: {
name: "Literally just another exponent.",
done() { return getIotaLevel().gte(1) },
tooltip: "Reach Iota level 1."
},
43: {
name: "YES! GOODBYE SOFTCAP!",
done() { return getKappaLevel().gte(1) },
tooltip: "Reach Kappa level 1."
},
44: {
name: "Very big multiplier",
done() { return getLambdaLevel().gte(1) },
tooltip: "Reach Lambda level 1."
},
45: {
name: "Don't even need PP anymore",
done() { return player[this.layer].has45 },
tooltip: "Reset for SPP with 0 PP."
},
51: {
name: "An exponent to progress points?",
done() { return getBuyableAmount('sp', 11).gte(1) },
tooltip: "Get 1x <b>Much more progress</b> buyable."
},
52: {
name: "And another exponent to points ¬_¬",
done() { return getBuyableAmount('sp', 12).gte(1) },
tooltip: "Get 1x <b>Super point booster</b> buyable."
},
53: {
name: "A new prestige layer!",
done() { return player.p.points.gte(5000) },
tooltip: "Reach 5000 PP."
},
54: {
name: "Ok so that speeds things up",
done() { return hasMilestone('f', 2) },
tooltip: "Earn Filestone 3."
},
55: {
name: "Well that was useful",
done() { return player[this.layer].has55 },
tooltip: "Respec directory upgrades when you have none."
},
61: {
name: "Ooh upgrades",
done() { return player.f.upgrades.map(x => x - 20).filter(x => x >= 0 && x < 9).length == 3 },
tooltip: "Get all row 2 directory upgrades."
},
62: {
name: "Lots of boosts!!",
done() { return player.f.upgrades.map(x => x - 30).filter(x => x >= 0 && x < 9).length == 3 },
tooltip: "Get all row 3 directory upgrades."
},
63: {
name: "Wait that's all of them?",
done() { return player.f.upgrades.map(x => x - 40).filter(x => x >= 0 && x < 9).length == 4 },
tooltip: "Get all row 4 directory upgrades."
},
64: {
name: "Well that exploded",
done() { return player.i.points.gt(0) },
tooltip: "Reset for 1 integral.<br>Current endgame."
},
},
tabFormat: [
"blank",
["raw-html", function () { return "Achievements: " + player[this.layer].achievements.length + "/" + (Object.keys(tmp[this.layer].achievements).length - 2) }],
["raw-html", function () { return "Effect: x" + tmp[this.layer].effect + " to point gen." }],
"blank",
"achievements"
],
tooltip() {
return player[this.layer].achievements.length + " achievement" + (player[this.layer].achievements.length == 1 ? "" : "s")
},
row: "side", // Row the layer is in on the tree (0 is the first row)
layerShown(){return true}
})