Skip to content
Open

ok #108

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
185 commits
Select commit Hold shift + click to select a range
4f02779
testing
usernameee9 Jun 9, 2026
deaabe7
testing
usernameee9 Jun 9, 2026
22389ed
trying to do stuff
usernameee9 Jun 9, 2026
ccd59db
more stuff
usernameee9 Jun 9, 2026
bf5c930
idk
usernameee9 Jun 9, 2026
d3a6ae5
t
usernameee9 Jun 9, 2026
92f4e30
trans
usernameee9 Jun 9, 2026
d32ceb8
red
usernameee9 Jun 9, 2026
a88163c
yep
usernameee9 Jun 9, 2026
e9a6223
new upgrade
usernameee9 Jun 9, 2026
496d9d7
new layer
usernameee9 Jun 9, 2026
b6cbcaf
yeppers
usernameee9 Jun 9, 2026
494ac20
yeppers
usernameee9 Jun 9, 2026
5c51633
fix
usernameee9 Jun 9, 2026
2a0eff5
fix
usernameee9 Jun 9, 2026
cfade15
e]# Please enter the commit message for your changes. Lines starting
usernameee9 Jun 9, 2026
88ef503
idkd
usernameee9 Jun 9, 2026
452447a
ea
usernameee9 Jun 9, 2026
af3a9c0
tt
usernameee9 Jun 9, 2026
7a9885f
eat
usernameee9 Jun 9, 2026
e8a4a93
idkatp
usernameee9 Jun 9, 2026
02486b8
maybe works prob not
usernameee9 Jun 9, 2026
4e4debe
hope
usernameee9 Jun 9, 2026
9094be3
idk
usernameee9 Jun 9, 2026
9fe6cbe
please
usernameee9 Jun 9, 2026
faf7dab
hopes and dreams
usernameee9 Jun 9, 2026
8053a3f
idk
usernameee9 Jun 9, 2026
ed3791c
idk
usernameee9 Jun 9, 2026
2df2580
idk
usernameee9 Jun 9, 2026
b044142
idk
usernameee9 Jun 9, 2026
c9e3b61
idk
usernameee9 Jun 9, 2026
2147cad
idk
usernameee9 Jun 9, 2026
eb81885
idk
usernameee9 Jun 9, 2026
04ca92e
this is the fix
usernameee9 Jun 9, 2026
93bfb7c
please
usernameee9 Jun 9, 2026
a48c264
why
usernameee9 Jun 9, 2026
096abd6
maybeish
usernameee9 Jun 9, 2026
44a0ab6
this time?
usernameee9 Jun 9, 2026
bd00081
bruh
usernameee9 Jun 9, 2026
64fb817
what
usernameee9 Jun 9, 2026
4c24fc3
maybenow
usernameee9 Jun 9, 2026
dc99638
idk
usernameee9 Jun 9, 2026
61b6132
idk
usernameee9 Jun 9, 2026
1c8f942
idk
usernameee9 Jun 9, 2026
272fdd4
idk
usernameee9 Jun 9, 2026
2d1de75
f
usernameee9 Jun 9, 2026
cc32d10
f
usernameee9 Jun 9, 2026
e75f3f5
idk
usernameee9 Jun 9, 2026
054f20d
d
usernameee9 Jun 9, 2026
354e179
d
usernameee9 Jun 9, 2026
ecd775a
e# Please enter the commit message for your changes. Lines starting
usernameee9 Jun 9, 2026
e9aa7ff
e
usernameee9 Jun 9, 2026
5b5b40a
r
usernameee9 Jun 9, 2026
a2ee2c1
e
usernameee9 Jun 9, 2026
f429c5d
e
usernameee9 Jun 9, 2026
a3b1cc8
e
usernameee9 Jun 9, 2026
83b951b
e
usernameee9 Jun 9, 2026
7d810bb
e
usernameee9 Jun 10, 2026
c6099b0
idk
usernameee9 Jun 10, 2026
5865ee5
r
usernameee9 Jun 10, 2026
27fb255
r
usernameee9 Jun 10, 2026
18e23a5
d
usernameee9 Jun 10, 2026
7b19fa8
e
usernameee9 Jun 10, 2026
3fcac35
d
usernameee9 Jun 10, 2026
faa63f8
qwork
usernameee9 Jun 10, 2026
bfc88d3
u
usernameee9 Jun 10, 2026
f8eec5c
idk
usernameee9 Jun 10, 2026
8b79dbc
so uh
usernameee9 Jun 10, 2026
6e8fbde
C
usernameee9 Jun 10, 2026
85c4a2e
l
usernameee9 Jun 10, 2026
d466edd
w
usernameee9 Jun 10, 2026
3a0d816
work pls
usernameee9 Jun 10, 2026
4fc3a53
i
usernameee9 Jun 10, 2026
203fe9a
x
usernameee9 Jun 10, 2026
9364c3b
w
usernameee9 Jun 10, 2026
9e26acb
e
usernameee9 Jun 10, 2026
d41103f
idk
usernameee9 Jun 10, 2026
8e06ec0
e
usernameee9 Jun 10, 2026
acc556b
d
usernameee9 Jun 10, 2026
dbbb8bb
e
usernameee9 Jun 10, 2026
0eb1815
w
usernameee9 Jun 10, 2026
58e986a
yep
usernameee9 Jun 10, 2026
5fc2198
j
usernameee9 Jun 10, 2026
0f910fb
eat
usernameee9 Jun 10, 2026
10ad256
e
usernameee9 Jun 10, 2026
58835f1
r
usernameee9 Jun 10, 2026
7c35591
r
usernameee9 Jun 10, 2026
6da8609
h
usernameee9 Jun 10, 2026
7313921
e
usernameee9 Jun 10, 2026
fe9abde
ea
usernameee9 Jun 10, 2026
6b8f53b
s
usernameee9 Jun 10, 2026
1810885
e
usernameee9 Jun 10, 2026
641f1b5
e
usernameee9 Jun 10, 2026
dc9c724
ea
usernameee9 Jun 10, 2026
2a41ea1
e
usernameee9 Jun 10, 2026
3ec77da
s
usernameee9 Jun 10, 2026
50d4c03
e
usernameee9 Jun 10, 2026
4a1ad98
0
usernameee9 Jun 10, 2026
625f4c9
e
usernameee9 Jun 10, 2026
b3a42ba
e
usernameee9 Jun 10, 2026
bdefb23
e
usernameee9 Jun 10, 2026
44fa692
e
usernameee9 Jun 10, 2026
2247a23
e
usernameee9 Jun 10, 2026
f850162
e
usernameee9 Jun 10, 2026
76dd2c5
br
usernameee9 Jun 10, 2026
4d0c629
e
usernameee9 Jun 10, 2026
b944317
e
usernameee9 Jun 10, 2026
c54e71a
e
usernameee9 Jun 10, 2026
6819783
e
usernameee9 Jun 10, 2026
da2f72b
eda
usernameee9 Jun 10, 2026
65b4eee
e
usernameee9 Jun 10, 2026
bf27d1f
e
usernameee9 Jun 10, 2026
ab0a39d
e
usernameee9 Jun 10, 2026
31e7979
e
usernameee9 Jun 10, 2026
52d4a42
e
usernameee9 Jun 10, 2026
48ebea5
e
usernameee9 Jun 10, 2026
6d3435f
e
usernameee9 Jun 10, 2026
598db96
3
usernameee9 Jun 11, 2026
8d220b6
e
usernameee9 Jun 11, 2026
eca1279
e
usernameee9 Jun 11, 2026
49f8181
e
usernameee9 Jun 11, 2026
4e1231b
e
usernameee9 Jun 11, 2026
3125271
e
usernameee9 Jun 11, 2026
2b0f731
w
usernameee9 Jun 11, 2026
e673764
e
usernameee9 Jun 11, 2026
baa2568
e
usernameee9 Jun 11, 2026
d716720
e
usernameee9 Jun 11, 2026
481af96
e
usernameee9 Jun 11, 2026
92a039b
e
usernameee9 Jun 11, 2026
c2f2e85
e
usernameee9 Jun 11, 2026
062abc4
e
usernameee9 Jun 11, 2026
91fa1de
e
usernameee9 Jun 11, 2026
72c0172
e
usernameee9 Jun 11, 2026
4cc46b8
e
usernameee9 Jun 11, 2026
9c412f5
e
usernameee9 Jun 11, 2026
422046d
e
usernameee9 Jun 11, 2026
be2115a
e
usernameee9 Jun 11, 2026
92481c0
e
usernameee9 Jun 11, 2026
dd29fce
e
usernameee9 Jun 11, 2026
7b7a084
e
usernameee9 Jun 11, 2026
2e8e0cc
e
usernameee9 Jun 11, 2026
c95bc01
e
usernameee9 Jun 11, 2026
8917312
e
usernameee9 Jun 11, 2026
034e4e8
e
usernameee9 Jun 11, 2026
f4974e6
e
usernameee9 Jun 12, 2026
b7bd2d0
e
usernameee9 Jun 12, 2026
9afc641
e
usernameee9 Jun 12, 2026
7b5a4b2
e
usernameee9 Jun 12, 2026
2eb97d8
e
usernameee9 Jun 12, 2026
09643cd
e
usernameee9 Jun 12, 2026
47d53f5
e
usernameee9 Jun 12, 2026
c331905
e
usernameee9 Jun 12, 2026
23c825a
e
usernameee9 Jun 12, 2026
edc3116
e
usernameee9 Jun 12, 2026
8df3fd0
e
usernameee9 Jun 12, 2026
45b1795
e
usernameee9 Jun 12, 2026
c7cdaec
e
usernameee9 Jun 12, 2026
adfca70
e
usernameee9 Jun 12, 2026
f0f541e
e
usernameee9 Jun 12, 2026
e0f8766
e
usernameee9 Jun 12, 2026
3bba5f6
e
usernameee9 Jun 14, 2026
d17c370
e
usernameee9 Jun 18, 2026
d102474
e
usernameee9 Jun 18, 2026
4bb1b1a
e
usernameee9 Jun 18, 2026
7a4a3d7
e
usernameee9 Jun 18, 2026
8e896b4
e
usernameee9 Jun 18, 2026
bb35710
e
usernameee9 Jun 18, 2026
d7bc41c
e
usernameee9 Jun 18, 2026
22fe0e3
e
usernameee9 Jun 18, 2026
cdedd91
e
usernameee9 Jun 18, 2026
189262b
e
usernameee9 Jun 18, 2026
d58d82d
e
usernameee9 Jun 20, 2026
fe81f1e
e
usernameee9 Jun 20, 2026
f9df6da
idk
usernameee9 Jun 20, 2026
62cf48a
e
usernameee9 Jun 21, 2026
0715e53
e
usernameee9 Jun 21, 2026
7dd2b28
e
usernameee9 Jun 21, 2026
e2ce842
e
usernameee9 Jun 21, 2026
3c40465
e
usernameee9 Jun 21, 2026
7e34f1b
e
usernameee9 Jun 21, 2026
40cd8a4
e
usernameee9 Jun 21, 2026
643d4e9
e
usernameee9 Jun 21, 2026
c7f09c9
e
usernameee9 Jun 21, 2026
fd0b7f3
e
usernameee9 Jun 21, 2026
2352cc3
e
usernameee9 Jun 21, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"githubPullRequests.ignoredPullRequestBranches": [
"master"
]
}
192 changes: 181 additions & 11 deletions js/layers.js
Original file line number Diff line number Diff line change
@@ -1,28 +1,198 @@
addLayer("p", {
name: "prestige", // This is optional, only used in a few places, If absent it just uses the layer id.
symbol: "P", // This appears on the layer's node. Default is the id with the first letter capitalized
addLayer("s", {
name: "shadow", // This is optional, only used in a few places, If absent it just uses the layer id.
symbol: "S", // 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,
points: new Decimal(0),
}},
color: "#4BDC13",
color: "#595959",
requires: new Decimal(10), // Can be a function that takes requirement increases into account
resource: "prestige points", // Name of prestige currency
baseResource: "points", // Name of resource prestige is based on
resource: "shadows", // Name of prestige currency
baseResource: "shades", // Name of resource prestige is based on
baseAmount() {return player.points}, // Get the current amount of baseResource
type: "normal", // normal: cost to gain currency depends on amount gained. static: cost depends on how much you already have
exponent: 0.5, // Prestige currency exponent
gainMult() { // Calculate the multiplier for main currency from bonuses
mult = new Decimal(1)
if (hasUpgrade('s',14)) mult = mult.times(3)
if (hasUpgrade('d',12)) mult = mult.times(2)
return mult
},
gainExp() { // Calculate the exponent on main currency from bonuses
return new Decimal(1)
},
infoboxes: {
lore: {
title: "Reasoning",
body() { return "You decided that this world is filled with too much light, and that it must all be removed COMPLETELY." },
},
},
buyables: {
11: {
title: "Basic Buyable",
cost(x) { return new Decimal(100).mul(x) },
display() { return "Cost: " + format(tmp[this.layer].buyables[this.id].cost) + " Basic Buyable" + "<br>Bought: " + getBuyableAmount(this.layer, this.id) + "<br>Effect: Boost Shades gain by x" + format(buyableEffect(this.layer, this.id)) },
canAfford() { return player[this.layer].points.gte(this.cost()) },
buy() {
player[this.layer].points = player[this.layer].points.sub(this.cost())
setBuyableAmount(this.layer, this.id, getBuyableAmount(this.layer, this.id).add(1))
},
effect(x) { return new Decimal(1).add(x || getBuyableAmount(this.layer, this.id)).pow(1)},
unlocked(){return hasUpgrade('s',15)}
},
},
row: 0, // Row the layer is in on the tree (0 is the first row)
hotkeys: [
{key: "p", description: "P: Reset for prestige points", onPress(){if (canReset(this.layer)) doReset(this.layer)}},
],
layerShown(){return true}
})
layerShown(){return true},
upgrades: {
rows: 2,
cols: 5,
11: {
title: "Dark",
description: "Doubles your shades gain.",
cost: new Decimal(1),
},
12: {
title: "Darker",
description: "Shades increase shades gain",
cost: new Decimal(3),
unlocked(){return hasUpgrade('s',11)},
effect() {
return player.points.add(1).pow(0.5)
},
effectDisplay(){ return format(upgradeEffect(this.layer, this.id))+"x" }, // Add formatting to the effect

},
13: {
title: "Yet Darker",
description: "Shadows increase shades gain",
cost: new Decimal(10),
unlocked(){return hasUpgrade('s',12)},
effect() {
return player[this.layer].points.add(4).pow(0.5)
},
effectDisplay() { return format(upgradeEffect(this.layer, this.id))+"x" }, // Add formatting to the effect
},
14: {
title: "Triple the trouble",
description: "Triples your shades and shadows gain.",
cost: new Decimal(30),
unlocked(){return hasUpgrade('s',13)}
},
15: {
title: "New features",
description: "Unlocks a buyable.",
cost: new Decimal(50),
unlocked(){return hasUpgrade('s',14)}
},
},
}
),
addLayer("d", {
startData() { return { // startData is a function that returns default data for a layer.
unlocked: false, // You can add more variables here to add them to your layer.
points: new Decimal(0), // "points" is the internal name for the main resource of the layer.
}},
layerShown(){return false},
color: "#000844", // The color for this layer, which affects many elements.
resource: "darkness", // The name of this layer's main prestige resource.
row: 1, // The row this layer is on (0 is the first row).
baseResource: "shadows", // The name of the resource your prestige gain is based on.
baseAmount() { return player.s.points }, // A function to return the current amount of baseResource.

requires: new Decimal(100000), // The amount of the base needed to gain 1 of the prestige currency.
// Also the amount required to unlock the layer.

type: "normal", // Determines the formula used for calculating prestige currency.
exponent: 0.5, // "normal" prestige gain is (currency^exponent).

gainMult() { // Returns your multiplier to your gain of the prestige resource.
return new Decimal(1) // Factor in any bonuses multiplying gain here.
},
gainExp() { // Returns the exponent to your gain of the prestige resource.
return new Decimal(1)
},

layerShown() { return true }, // Returns a bool for if this layer's node should be visible in the tree.

upgrades: {
11: {
title: "The hunger...",
description: "Doubles your shades gain.",
cost: new Decimal(1),
},
12: {
title: "Deeper down",
description: "Doubles your shadows gain.",
cost: new Decimal(3),
},
},
branches: ['s']
},
),
addLayer("a", {
startData() { return {
unlocked: true,
points: new Decimal(0),
}},
color: "#deff09",
resource: "achievement power",
row: "side",
tooltip() { // Optional, tooltip displays when the layer is locked
return ("Achievements")
},
achievementPopups: true,
achievements: {
11: {
name: "Descent",
done() {return player.s.points.gte(1)},
tooltip: "Get a shadow.",
onComplete() {player.a.points = player.a.points.add(1)}
},
12: {
name: "There's gonna be a lot more of these",
done() {return hasUpgrade('s',15)},
tooltip: "Get the fifth shadow upgrade.", // Showed when the achievement is completed
onComplete() {player.a.points = player.a.points.add(1)}
},
13: {
name: "Wow this took a while",
done() {return player.d.points.gte(1)},
tooltip: "Get 2 darkness.", // Showed when the achievement is completed
onComplete() {player.a.points = player.a.points.add(2)}
},
},
effect(x) {
return player.a.points.add(1).pow(0.25)
},
effectDescription(){
return "multiplying point gain by " + format(tmp[this.layer].effect)
},
midsection: ["grid", "blank"],
grid: {
maxRows: 3,
rows: 2,
cols: 2,
getStartData(id) {
return id
},
getUnlocked(id) { // Default
return true
},
getCanClick(data, id) {
return player.points.eq(10)
},
getStyle(data, id) {
return {'background-color': '#'+ (data*1234%999999)}
},
onClick(data, id) { // Don't forget onHold
player[this.layer].grid[id]++
},
getTitle(data, id) {
return "Gridable #" + id
},
getDisplay(data, id) {
return data
},
},
})
20 changes: 13 additions & 7 deletions js/mod.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
let modInfo = {
name: "The ??? Tree",
author: "nobody",
pointsName: "points",
name: "The Darkness Tree",
author: "somebody",
pointsName: "shades",
modFiles: ["layers.js", "tree.js"],

discordName: "",
Expand All @@ -12,8 +12,8 @@ let modInfo = {

// Set your version in num and name
let VERSION = {
num: "0.0",
name: "Literally nothing",
num: "1.0",
name: "The beginning",
}

let changelog = `<h1>Changelog:</h1><br>
Expand All @@ -40,8 +40,14 @@ function canGenPoints(){
function getPointGen() {
if(!canGenPoints())
return new Decimal(0)

let gain = new Decimal(1)
if (hasUpgrade('s', 11)) gain = gain.times(2)
if (hasUpgrade('s', 12)) gain = gain.times(upgradeEffect('s', 12))
if (hasUpgrade('s', 13)) gain = gain.times(upgradeEffect('s', 13))
if (hasUpgrade('s', 14)) gain = gain.times(3)
if (getBuyableAmount('s', 11).gte(1)) gain = gain.times(buyableEffect('s', 11))
if (hasUpgrade('d', 11)) gain = gain.times(2)
gain = gain.times(tmp.a.effect)
return gain
}

Expand All @@ -55,7 +61,7 @@ var displayThings = [

// Determines when the game "ends"
function isEndgame() {
return player.points.gte(new Decimal("e280000000"))
return player.d.points.gte(new Decimal("e280000000"))
}


Expand Down