Habilidades activas/pasivas con cooldowns, costos múltiples y efectos vinculados a Modificadores.

skills#

Modela las habilidades del juego: hechizos, ataques especiales, pasivas, ultimates. Cada habilidad conoce su propio cooldown, costos (moneda/atributo/cargas), efectos (referencias a Modificadores en la misma página) y condiciones de desbloqueo.

Por qué importa#

Las habilidades son una de las estructuras más densas de cualquier GDD: tocan economía (costo), atributos (efecto), progresión (desbloqueo), tiempo (cooldown, duración de DoT) y a veces ítems (costo en consumible). Sin un esquema dedicado terminas duplicando esta información en prosa suelta y el motor implementa cada una a mano.

Dónde suele vivir#

  • Página de tipo ⚡ Habilidades (incluye Skills + AttributeModifiers vinculados).
  • Páginas en blanco cuando quieres agrupar habilidades de otra manera.

Singleton — 1 addon por página. Múltiples habilidades viven en los entries[] del mismo addon.

Esquema#

CampoTipoPadrãoDescrição
idstringID interno del addon.
namestringNombre amigable (ej.: Habilidades de Combate).
entriesSkillEntry[]Lista de habilidades.

SkillEntry#

CampoTipoPadrãoDescrição
idstringID interno.
namestringNombre amigable (ej.: Fireball).
descriptionstringDescripción de la habilidad (tooltip de UI).
kind"active" | "passive"active: debe activarse (Fireball). passive: efecto permanente (Iron Skin).
cooldownSecondsnumberTiempo mínimo entre usos. Sub-segundo permitido (0.5s). Vacío = sin límite (autofire).
costsSkillCost[]Costos pagados en cada uso. Vacío = gratis.
effectsSkillEffectRef[]Referencias a entradas del attributeModifiers en la misma página.
unlockSkillUnlockCondiciones para desbloquear (nivel + moneda + ítem). Reutiliza el tipo CraftTableUnlock.
tagsstring[]Etiquetas libres (fire, single-target, magical).

SkillCost#

Cada entrada de la lista de costos:

CampoTipoPadrãoDescrição
idstringID interno.
type"currency" | "attribute" | "charges"currency: paga una moneda del proyecto. attribute: paga un stat (ej.: mana). charges: cargas locales (sin referencia externa).
amountnumberCantidad a pagar.
currencyRefstring (sectionId)Cuando type=currency. Apunta a la página de la moneda.
definitionsRefstring (sectionId)Cuando type=attribute. Página de Atributos que define la clave. Cada costo puede usar una página diferente.
attributeKeystringCuando type=attribute. Clave existente en definitionsRef.

SkillEffectRef#

Cada entrada de la lista de efectos:

CampoTipoPadrãoDescrição
idstringID interno.
attributeModifiersSectionIdstring (sectionId)Sección que tiene el addon de modificadores. Generalmente la misma página de la habilidad.
attributeModifiersAddonIdstringID del addon de modificadores en esa sección.
modifierEntryIdstringID de la entrada específica dentro de los modificadores.

Ejemplo: Fireball completo#

{
  "id": "skill-fireball",
  "name": "Fireball",
  "description": "Bola de fuego que causa impacto + quemadura.",
  "kind": "active",
  "cooldownSeconds": 5,
  "costs": [
    {
      "id": "c1",
      "type": "attribute",
      "amount": 30,
      "definitionsRef": "section-attrs",
      "attributeKey": "mana"
    }
  ],
  "effects": [
    {
      "id": "e1",
      "attributeModifiersSectionId": "section-fireball",
      "attributeModifiersAddonId": "mods-fireball",
      "modifierEntryId": "mod-impact"
    },
    {
      "id": "e2",
      "attributeModifiersSectionId": "section-fireball",
      "attributeModifiersAddonId": "mods-fireball",
      "modifierEntryId": "mod-burn"
    }
  ],
  "unlock": {
    "level": { "enabled": true, "level": 5 }
  },
  "tags": ["fire", "magical", "aoe"]
}

Se lee como: habilidad activa, 5s de cooldown, cuesta 30 de mana, activa 2 modificadores (impacto + quemadura), se desbloquea en el nivel 5, etiquetada como fuego/magia/área.

Wizard#

El tipo de página ⚡ Habilidades crea automáticamente:

  1. Este addon skills (vacío)
  2. Un attributeModifiers (vacío, con definitionsRef completado)

El AttributeDefinitions utilizado viene del diálogo de requisitos que se abre al crear la página. Puedes elegir uno existente o crear uno nuevo en el mismo flujo.

Detalle de UX: panel de cooldown enriquecido#

El panel de cooldown de cada habilidad muestra:

  • Etiqueta derivada en vivo: al escribir 1.5 aparece "≈ 0.67 usos por segundo (autofire limitado)"
  • Presets: chips clicables (Sin límite / Ataque 1s / Habilidad 5s / Ultimate 60s)
  • Línea de tiempo: barra del lanzador (recarga) y barra del objetivo (efecto), proporcional. Muestra divisores de tick cuando el efecto es un DoT.
  • Aviso de stacking: alerta si la regla de apilamiento de los modificadores vinculados puede causar comportamiento inesperado (ej.: stack con cooldown corto = potencialmente roto).

Exportar a Remote Config#

Skills tiene 3 fuentes dedicadas en Remote Config:

  • source: "skills" — itera todas las habilidades del addon
  • source: "skillCosts" (dentro de skills) — itera los costos de la habilidad actual
  • source: "skillEffects" (dentro de skills) — itera los efectos de la habilidad actual

Y 3 fuentes de binding correspondientes (skillField, skillCostField, skillEffectField) con docenas de campos resueltos (resolvedName, resolvedAttributeKey, resolvedDefinitionsRef, resolvedDurationSeconds, resolvedStacking, etc.) que siguen referencias y devuelven datos listos para el motor.

Consulta Remote Config para ejemplos completos.

Ver también#