1
0
Fork 0
mirror of https://github.com/Acamaeda/The-Modding-Tree.git synced 2024-11-28 19:11:43 +00:00
The-Modding-Tree/docs/upgrades.md

61 lines
3.1 KiB
Markdown
Raw Normal View History

2020-10-01 05:30:59 +00:00
# Upgrades
Useful functions for dealing with Upgrades and implementing their effects:
- hasUpgrade(layer, id): determine if the player has the upgrade
- upgradeEffect(layer, id): Returns the current effects of the upgrade, if any
2020-10-19 23:52:52 +00:00
- buyUpgrade(layer, id): Buys an upgrade directly (if affordable)
Hint: Basic point gain is calculated in mod.js's "getPointGen".
2020-10-15 01:43:16 +00:00
Upgrades are stored in the following format:
```js
2020-10-01 05:43:30 +00:00
upgrades: {
rows: # of rows
cols: # of columns
11: {
description: "Blah",
more features
2020-10-01 05:43:30 +00:00
}
2020-10-01 05:41:25 +00:00
etc
}
```
Each upgrade should have an id where the first digit is the row and the second digit is the column.
Individual upgrades can have these features:
2020-10-03 19:45:47 +00:00
- title: **optional**, displayed at the top in a larger font
2020-10-07 20:41:45 +00:00
It can also be a function that returns updating text. Can use basic HTML.
2020-10-03 19:45:47 +00:00
- description: A description of the upgrade's effect. *You will also have to implement the effect where it is applied.*
2020-10-07 20:41:45 +00:00
It can also be a function that returns updating text. Can use basic HTML.
- effect(): **optional**, A function that calculates and returns the current values of any bonuses from the upgrade.
Can return a value or an object containing multiple values.
- effectDisplay(): **optional**, A function that returns a display of the current effects of the upgrade with
2020-10-07 20:41:45 +00:00
formatting. Default behavior is to just display the a number appropriately formatted. Can use basic HTML.
- cost: A Decimal for the cost of the upgrade. By default, upgrades cost the main prestige currency for the layer.
- unlocked(): **optional**, A function returning a bool to determine if the upgrade is visible or not. Default is unlocked.
- onPurchase() - **optional**, this function will be called when the upgrade is purchased.
Good for upgrades like "makes this layer act like it was unlocked first".
2020-10-16 15:39:39 +00:00
By default, upgrades use the main prestige currency for the layer. You can include these to change them (but it needs to be a Decimal):
- currencyDisplayName: **optional**, the name to display for the currency for the upgrade
- currencyInternalName: **optional**, the internal name for that currency
- currencyLayer: **optional**, the internal name of the layer that currency is stored in.
2020-10-16 15:39:39 +00:00
If it's not in a layer (like Points), omit. If it's not stored directly in a layer, instead use the next feature.
- currencyLocation: **optional**, if your currency is stored in something inside a layer (e.g. a buyable's amount), you can access it this way.
This is a function returning the object in "player" that contains the value (like player[this.layer].buyables)
- style: **Optional**, Applies CSS to this upgrade, in the form of an object where the keys are CSS attributes,
and the values are the values for those attributes (both as strings)
2020-10-07 20:41:45 +00:00
2020-10-03 19:45:47 +00:00
- layer: **Assigned automagically**. It's the same value as the name of this layer, so you can do player[this.layer].points or similar
- id: **Assigned automagically**. It's the "key" which the upgrade was stored under, for convenient access.
The upgrade in the example's id is 11.