Una casa de cambio que define tasas entre dos monedas, unidireccional o bidireccional.
currencyExchange#
Define cambios entre monedas: 100 Gemas → 5000 Oro, 10 Tickets → 1 Gema, etc. Soporta solo una dirección o ambas.
Por qué importa#
En juegos con múltiples monedas (premium + soft + evento), las conversiones deben ser visibles y auditables. Si "100 Gemas = 5000 Oro" vive solo en el código de la tienda, el equipo de diseño no puede iterar la economía sin pedirle una build a un programador. Aquí se convierte tanto en un documento como en un JSON exportado.
Dónde suele vivir#
- Una página de tipo
💱 Casa de Cambio. El wizard pide las dos monedas y la tasa inicial. - Páginas en blanco cuando quieres agrupar varios cambios relacionados (ej.: "Banco Premium" con 5 conversiones diferentes).
Singleton — 1 addon por página, con N cambios (entries[]).
Esquema#
| Campo | Tipo | Padrão | Descrição |
|---|---|---|---|
idSí | string | ID interno. | |
nameSí | string | Nombre del addon. | |
entriesSí | CurrencyExchangeEntry[] | Lista de cambios. |
CurrencyExchangeEntry#
| Campo | Tipo | Padrão | Descrição |
|---|---|---|---|
idSí | string | ID interno. | |
fromCurrencyRef | string (sectionId) | Página de la moneda que el jugador gasta. | |
fromAmountSí | number | Cuánto de fromCurrency se gasta por cambio. | |
toCurrencyRef | string (sectionId) | Página de la moneda que el jugador recibe. | |
toAmountSí | number | Cuánto de toCurrency se recibe por cambio. | |
directionSí | "oneWay" | "bidirectional" | oneWay: solo de→a (Gemas se convierten en Oro, pero no al revés). bidirectional: puede cambiar en ambas direcciones a la misma tasa. | |
notes | string | Notas libres (límites diarios, condiciones, texto de sabor). |
Ejemplo#
Banco Premium con 2 cambios: Gemas → Oro (oneWay) y Tickets ↔ Gemas (bidirectional).
{
"id": "exchange-bank",
"name": "Banco Premium",
"entries": [
{
"id": "ex1",
"fromCurrencyRef": "section-gem",
"fromAmount": 100,
"toCurrencyRef": "section-gold",
"toAmount": 5000,
"direction": "oneWay",
"notes": "Tasa fija. No se puede revertir."
},
{
"id": "ex2",
"fromCurrencyRef": "section-tickets",
"fromAmount": 10,
"toCurrencyRef": "section-gem",
"toAmount": 1,
"direction": "bidirectional",
"notes": "Solo disponible durante eventos."
}
]
}
Validación#
- Misma moneda en ambos lados: el panel bloquea esto (cambiar Oro por Oro no tiene sentido).
- Referencias rotas: si eliminas una de las monedas, el panel muestra la entrada con una advertencia y no exportará hasta que la corrijas.
- Cantidades ≤ 0: rechazadas; un cambio gratuito o negativo no tiene un significado claro.
Wizard#
El tipo de página 💱 Casa de Cambio tiene un wizard más detallado que el habitual:
- El diálogo pide las dos monedas que esta casa cambia (no pueden ser la misma).
- Pide la dirección (oneWay/bidirectional).
- Pide la tasa (
fromAmount↔toAmount). - La página se crea con la entrada inicial ya completada.
Después puedes agregar más entradas (ej.: tiers de paquete — 100 Gemas → 5000 Oro, 500 Gemas → 30000 Oro con un bono).