Casa de câmbio que define taxas entre duas moedas, uni- ou bidirecional.

currencyExchange#

Define trocas entre moedas: 100 Gem → 5000 Gold, 10 Tickets → 1 Gem, etc. Suporta uma direção só ou os dois lados.

Por que importa#

Em jogos com múltiplas moedas (premium + soft + event), as conversões precisam ficar visíveis e auditáveis. Se "100 Gem = 5000 Gold" vive só no código do shop, o time de design não consegue iterar a economia sem pedir build pro programador. Aqui isso vira documento + JSON exportado.

Onde costuma viver#

  • Página de tipo 💱 Casa de Câmbio. Wizard pergunta as duas moedas e a taxa inicial.
  • Páginas em branco quando você quer juntar várias trocas relacionadas (ex.: "Banco Premium" com 5 conversões diferentes).

Singleton — 1 addon por página, com N trocas (entries[]).

Schema#

CampoTipoPadrãoDescrição
idSimstringID interno.
nameSimstringNome do addon.
entriesSimCurrencyExchangeEntry[]Lista de trocas.

CurrencyExchangeEntry#

CampoTipoPadrãoDescrição
idSimstringID interno.
fromCurrencyRefstring (sectionId)Página da moeda que o jogador gasta.
fromAmountSimnumberQuanto da fromCurrency é gasto por troca.
toCurrencyRefstring (sectionId)Página da moeda que o jogador recebe.
toAmountSimnumberQuanto da toCurrency é recebido por troca.
directionSim"oneWay" | "bidirectional"oneWay: só from→to (Gem vira Gold, mas não o contrário). bidirectional: pode trocar nos dois sentidos pela mesma taxa.
notesstringNotas livres (limites diários, condições, flavor).

Exemplo#

Banco Premium com 2 trocas: Gem → Gold (oneWay) e Tickets ↔ Gem (bidirectional).

{
  "id": "exchange-bank",
  "name": "Banco Premium",
  "entries": [
    {
      "id": "ex1",
      "fromCurrencyRef": "section-gem",
      "fromAmount": 100,
      "toCurrencyRef": "section-gold",
      "toAmount": 5000,
      "direction": "oneWay",
      "notes": "Taxa fixa. Não permite voltar."
    },
    {
      "id": "ex2",
      "fromCurrencyRef": "section-tickets",
      "fromAmount": 10,
      "toCurrencyRef": "section-gem",
      "toAmount": 1,
      "direction": "bidirectional",
      "notes": "Disponível só durante eventos."
    }
  ]
}

Validação#

  • Mesma moeda dos dois lados: o painel bloqueia (não faz sentido trocar Gold por Gold).
  • Refs quebradas: se você apagar uma das moedas, o painel mostra a entry com aviso e ela não exporta até você corrigir.
  • Amounts ≤ 0: rejeitados; troca grátis ou negativa não tem semântica clara.

Wizard#

A page type 💱 Casa de Câmbio tem um wizard mais elaborado que o padrão:

  1. Dialog pergunta as duas moedas que essa casa troca (não pode ser a mesma).
  2. Pergunta a direção (oneWay/bidirectional).
  3. Pergunta a taxa (fromAmounttoAmount).
  4. A página nasce com a entry inicial pronta.

Depois você pode adicionar entries adicionais (ex.: troca em pacotes — 100 Gem → 5000 Gold, 500 Gem → 30000 Gold com bonus).

Veja também#