Vincula preços de compra, venda, produção e desbloqueio a uma página de item ou skill.
economyLink#
O addon que conecta um item/conteúdo do jogo às moedas e variáveis globais que regem sua economia. Define preços de compra, venda, produção e desbloqueio em uma estrutura unificada.
Por que importa#
Item barato, item caro, item premium, item desbloqueável por evento — tudo isso é "economia". Sem um addon dedicado, você espalha esses números em campos soltos por toda a página de item, e quando precisa rebalancear o jogo (subir 10% todos os preços, dar 50% de desconto em evento) precisa caçar em 80 lugares diferentes.
Este addon centraliza, e ainda referencia globalVariable pra modificar tudo de uma vez (ex.: variável item_buy_discount = 0.1 aplicada em todas as compras).
Onde costuma viver#
- Página de tipo
🎒 Itensou⚔️ Itens com efeito— vem por padrão junto com Inventory. - Páginas em branco que representam algo vendável (skin, capítulo, slot extra).
Singleton — 1 economyLink por página.
Schema#
| Campo | Tipo | Padrão | Descrição |
|---|---|---|---|
idSim | string | ID interno. | |
nameSim | string | Nome do addon (default: Economia). | |
hasBuyConfig | boolean | Liga/desliga o bloco de compra. Permite item não-comprável. | |
buyCurrencyRef | string (sectionId) | Página da moeda usada na compra. | |
buyValue | number | Preço base de compra. | |
minBuyValue | number | Piso de preço mesmo com descontos máximos. | |
buyModifiers | EconomyModifierRef[] | Lista de globalVariables que ajustam o buyValue (ex.: desconto sazonal). | |
hasSellConfig | boolean | Liga/desliga o bloco de venda. | |
sellCurrencyRef | string (sectionId) | Moeda recebida na venda (geralmente igual à de compra). | |
sellValue | number | Valor base de venda. | |
maxSellValue | number | Teto de venda mesmo com bônus máximos. | |
sellModifiers | EconomyModifierRef[] | globalVariables que aumentam/diminuem sellValue. | |
hasProductionConfig | boolean | Liga/desliga produção. Item produz X unidades por intervalo. | |
producedItemRef | string (sectionId) | Item que esta página produz quando colocada (ex.: galinha produz ovos). | |
produceMin | number | Quantidade mínima produzida por ciclo. | |
produceMax | number | Quantidade máxima produzida por ciclo. | |
productionTimeSeconds | number | Intervalo entre ciclos. Aceita decimais. | |
hasUnlockConfig | boolean | Liga/desliga gate de desbloqueio. | |
unlockRef | string (sectionId) | Moeda usada pra desbloquear. | |
unlockValue | number | Quanto custa desbloquear pela primeira vez. | |
notes | string | Notas livres. |
EconomyModifierRef#
{ refId: string } // sectionId de uma página de globalVariable
Aponta pra uma globalVariable (ex.: item_buy_discount, event_sell_markup). O motor lê o valor da variável no runtime e aplica em cima do buyValue/sellValue.
Exemplo#
Espada de Ferro vendida e revendível, com desconto sazonal:
{
"id": "econ-iron-sword",
"name": "Economia",
"hasBuyConfig": true,
"buyCurrencyRef": "section-gold",
"buyValue": 100,
"minBuyValue": 50,
"buyModifiers": [
{ "refId": "section-buy-discount-var" }
],
"hasSellConfig": true,
"sellCurrencyRef": "section-gold",
"sellValue": 50,
"maxSellValue": 80,
"sellModifiers": [
{ "refId": "section-sell-markup-var" }
],
"hasUnlockConfig": false
}
Campos opcionais por padrão#
Cada bloco (Buy, Sell, Production, Unlock) tem um has*Config boolean que liga/desliga ele. Itens só vendíveis (não-compráveis) ou só desbloqueáveis (sem economia) ficam mais limpos no JSON exportado.
Wizard#
Não tem wizard próprio. É seedado por:
🎒 Itens(junto com Inventory)⚔️ Itens com efeito(junto com Inventory + AttributeModifiers)
O wizard pede a moeda no requires-dialog, e essa moeda vai como buyCurrencyRef + sellCurrencyRef automaticamente.