Skip to content

Mecânicas do Jogo

Guilherme Rodrigues edited this page Aug 18, 2025 · 3 revisions

Esta seção detalha as regras e fórmulas que governam o sistema de combate, progressão e outras mecânicas centrais do jogo.

Sistema de Combate

O combate é baseado em um sistema de turnos onde o Herói e o Monstro se revezam em suas ações até que a vida de um deles chegue a zero. A ordem dos ataques é determinada pela agilidade, mas no estado atual, o Herói sempre ataca primeiro para uma melhor jogabilidade.

O diagrama abaixo ilustra a sequência lógica de eventos e verificações que ocorrem sempre que um personagem ataca o outro durante um turno de combate.

graph TD
    A["Início do Turno: Atacante escolhe 'Atacar'"] --> B{"Verifica Esquiva do Alvo"};
    B -- "Sim (Alvo se esquiva)" --> C["Dano = 0 <br> Fim do Turno"];
    B -- "Não (Ataque acerta)" --> D{"Verifica Acerto Crítico do Atacante"};
    D -- "Sim (Ataque Crítico)" --> E["Calcula Dano Final <br> Dano = (Ataque - Defesa) * multiplicadorCritico"];
    D -- "Não (Ataque Normal)" --> F["Calcula Dano Final <br> Dano = Ataque - Defesa"];
    E --> G{"Dano Final <= 0?"};
    F --> G;
    G -- "Sim" --> H["Dano Mínimo = 1"];
    G -- "Não" --> I["Mantém Dano Calculado"];
    H --> J["Alvo recebe 1 de dano"];
    I --> K["Alvo recebe o dano final"];
    J --> L["Fim do Turno"];
    K --> L["Fim do Turno"];

    %% Estilo para Legibilidade
    style A fill:#d4edda,stroke:#155724,stroke-width:2px,color:#333
    style C fill:#f8d7da,stroke:#721c24,stroke-width:2px,color:#333
    style L fill:#cce5ff,stroke:#004085,stroke-width:2px,color:#333
Loading

Sistema de Combate e Progressão do RPG


Fórmula de Dano

O cálculo de dano leva em consideração o ataque total do agressor (incluindo bônus de equipamentos) e a defesa do alvo.

  1. Dano Base: danoBase = atacante.getAtaque()
    (O ataque pode incluir bônus de armas equipadas, como espadas.)
  2. Redução de Dano: reducao = alvo.getDefesa()
    (A defesa é subtraída diretamente do ataque.)
  3. Dano Final: danoFinal = danoBase - reducao

Para evitar que personagens com defesa alta fiquem imunes, existe um dano mínimo garantido. Se danoFinal for menor ou igual a zero, o dano causado será 1.

Acerto Crítico

Todo ataque tem uma chance de ser crítico, causando dano multiplicado.

  • Chance de Crítico: Determinada pelo atributo chanceCritico do atacante. Um número aleatório entre 0 e 99 é gerado; se for menor que chanceCritico, o ataque é crítico.
  • Multiplicador de Crítico: O dano crítico é multiplicado pelo atributo multiplicadorCritico do atacante (exemplo: 1.5x).
  • Cálculo do Dano Crítico: danoCritico = danoFinal * multiplicadorCritico

Esquiva

O alvo pode esquivar do ataque, anulando o dano.

  • Chance de Esquiva: Determinada pelo atributo chanceEsquiva do alvo. Um número aleatório entre 0 e 99 é gerado; se for menor que chanceEsquiva, o ataque é esquivado e o dano é zero.

Habilidade Especial: "Golpe Heroico"

O Herói possui uma habilidade especial que causa mais dano ao custo de energia.

  • Custo: Consome 10 pontos de energia.
  • Dano: danoGolpeHeroico = (heroi.getAtaque() * 1.5) + (heroi.getNivel() * 5) - (alvo.getDefesa() * 0.5)
  • Chance de Crítico: Aumentada durante o golpe especial.
  • A habilidade não pode ser usada se o Herói não tiver energia suficiente.

Sistema de Progressão (Level Up)

Ao vencer uma batalha, o Herói ganha pontos de experiência (XP). Acumular XP suficiente resulta em "Level Up", tornando o Herói mais forte.

  • Ganho de XP: O Herói ganha 10 XP por vitória.
  • Requisito de Nível: Para subir de nível, o Herói precisa de 100 * nivelAtual de XP.
  • Benefícios do Level Up:
    • Todos os atributos base (forca, defesa, agilidade, etc.) são aumentados em +1.
    • Os status de combate (vida, energia) são recalculados com base nos novos atributos.
    • A vida do Herói é totalmente restaurada.
    • O progresso é salvo automaticamente no banco de dados.

Clone this wiki locally