Skip to content
This repository was archived by the owner on Jul 17, 2026. It is now read-only.
Xcode-sketcherPublic archive

About

Um motor de combate para RPG, com cálculo de ataque, cálculo e lançamento de dados, e verificação de vantagem.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

🎲 RPG Combat Engine API

Uma API REST stateless construída em ASP.NET Core para interpretar notações clássicas de dados de RPG de mesa e resolver mecânicas complexas de combate em tempo real. Sem dependência de banco de dados, puramente focada em algoritmos de probabilidade, manipulação de strings (Regex) e regras de negócio.

🚀 Funcionalidades

  • Interpretador de Dados (Dice Parser): Converte strings clássicas (ex: 2d6+3, 1d20-1) em rolagens matemáticas precisas.
  • Sistema de Vantagem/Desvantagem: Resolve testes de habilidade rolando dados múltiplos e mantendo o maior ou menor valor, aplicando modificadores.
  • Resolução Completa de Combate: Calcula turnos inteiros de ataque, validando a Classe de Armadura (AC), Acertos Críticos (Natural 20), Falhas Críticas (Natural 1) e aplicando o dano dinamicamente no HP do alvo.

🛠️ Tecnologias Utilizadas

  • C# / .NET (ASP.NET Core)
  • Geração de números pseudoaleatórios nativa do .NET.

📦 Como Executar o Projeto

Você pode rodar o projeto localmente usando o .NET CLI ou através de containers.

Via .NET CLI

# Clone o repositório
git clone [https://github.com/Xcode-sketcher/RPG-Combat-Engine.git](https://github.com/Xcode-sketcher/RPG-Combat-Engine.git)
cd RPG-Combat-Engine

# Restaure as dependências e rode o projeto
dotnet restore
dotnet run

📡 Endpoints da API

1. Rolagem Simples

POST /api/dice/roll

Avalia uma expressão de dados simples e retorna o resultado.

Request:

{
  "expression": "2d6+3"
}

2. Teste de Habilidade (Vantagem/Desvantagem)

POST /api/dice/check

Rola um teste aplicando a mecânica de rolar dois dados de 20 faces. O status pode ser Normal, Advantage ou Disadvantage.

Request:

{
  "modifier": 4,
  "status": "Advantage"
}

3. Resolução de Ataque

POST /api/combat/attack

Calcula o resultado completo de um golpe, verificando se a precisão supera a armadura do alvo e calculando o dano se houver acerto (com suporte a dano dobrado em caso de crítico).

Request (Exemplo: Atacando os druidas no Bosque):

{
  "attacker": {
    "name": "Dark Urge",
    "attackBonus": 5,
    "damageExpression": "1d8+2"
  },
  "defender": {
    "name": "Druid Guard",
    "armorClass": 14,
    "currentHp": 22
  }
}

About

Um motor de combate para RPG, com cálculo de ataque, cálculo e lançamento de dados, e verificação de vantagem.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages