1
0
Fork 0
mirror of https://github.com/Acamaeda/The-Modding-Tree.git synced 2024-11-28 02:51:55 +00:00
The-Modding-Tree/docs/buyables.md
2020-10-11 16:16:36 -04:00

2.2 KiB

Buyables

Buyables are usually things that can be bought multiple times with scaling costs. If you set a respec function, the player can reset the purchases to get their currency back.

The amount of a buyable owned is a Decimal. You can get or set the amount of a buyable with getBuyableAmt(layer, id) and setBuyableAmt(layer, id, amt). You can use buyableEffect(layer, id) to get the current effects of a buyable.

Buyables should be formatted like this:

    buyables: {
        rows: # of rows
        cols: # of columns
        respec() {}, **optional**, implement it to reset things and give back your currency.
                     Having this function makes a respec button appear
        respecText: **optional**, text that appears on the respec button
        11: {
            desc:() => "Blah",
            etc
        }
        etc
    }

Features:

  • title: optional, displayed at the top in a larger font It can also be a function that returns updating text.

  • cost(): cost for buying the next buyable. Can have an optional argument "x" to calculate the cost of the x+1th object, but needs to use "current amount" as a default value for x. Can return an object if there are multiple currencies.

  • effect(): optional, A function that calculates and returns the current values of bonuses of this buyable. Can return a value or an object containing multiple values.

  • display(): A function returning everything that should be displayed on the buyable after the title, likely including the description, amount bought, cost, and current effect. Can use basic HTML.

  • unl(): A function returning a bool to determine if the buyable is visible or not.

  • canAfford(): A function returning a bool to determine if you can buy one of the buyables.

  • buy(): A function that implements buying one of the buyable.

  • buyMax(): optional, A function that implements buying as many of the buyable as possible.

  • style: Optional, A CSS object, which affects this buyable.

  • 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 id for this buyable.