Documentação

CurvaDeMana Docs

Detector de efeitos

Como o texto de regras vira tags de efeito para as alternativas.

Atualizado em 11 de junho de 2026

O detector de efeitos é o motor por trás da busca por alternativas de carta. Ele vive em src/lib/card-tags.ts e traduz o texto de regras de uma carta em uma lista de tags de efeito legíveis.

A ideia

Cada tag descreve uma coisa que a carta faz, de forma reconhecível: ritual (gerar mana de uma vez), card-draw (comprar cartas), board-wipe (remoção em massa), tutor (buscar carta na biblioteca), e assim por diante. As tags são detectadas por padrões de texto conservadores, que preferem não marcar a marcar errado.

Por que tags locais

Em vez de depender de um serviço externo de classificação, o detector roda sobre o texto que já temos no banco. Isso o torna rápido, determinístico e explicável: a interface mostra exatamente quais efeitos foram detectados, então a sugestão nunca é uma caixa preta.

Onde as tags ficam

As tags são calculadas uma vez e gravadas no campo effectTags de cada carta, com um índice apropriado no banco para que a busca por efeito seja rápida. Elas são preenchidas de duas formas:

  • Durante a importação das cartas, no scripts/import-cards.ts.
  • Em lote, sobre o banco existente, com npm run tag:cards (scripts/tag-cards.ts).

Cobertura

O catálogo cobre os efeitos mais relevantes para construção de deck, com ênfase em Commander: rituais e fontes de mana, compra de cartas e motores de compra, tutores, remoção pontual e em massa, anulação, recursão e reanimação, fichas, marcadores, turnos e combates extras, e mais.

A cobertura é evolutiva. Como o detector é só texto e regras, novos efeitos podem ser acrescentados ao catálogo sem mudar o banco, bastando recalcular as tags depois.

Limites

O detector entende o que está escrito, não a intenção estratégica. Ele reconhece que uma carta "compra cartas", mas não sabe que ela é especialmente boa em um arquétipo específico. É um ponto de partida para descoberta, não um substituto para o conhecimento do jogador.