No description
  • Rust 58.8%
  • D 39.3%
  • Makefile 1%
  • Lua 0.8%
Find a file
Jonatas Oliveira e26f2916a3 feat(editor): add event_editor crate with types + validator + CLI
- crates/event_editor/: new workspace crate with lib + bin
- Root Cargo.toml: added event_editor as workspace member
- src/mission/: git-rm'd (history preserved)
- src/event/: placeholder module (re-exports event_editor::types::*)
- types.rs: 8 Trigger variants, 5 Action variants, Dialogue, EventRule, EventScript
- validator.rs: validate() checks duplicate triggers, invalid params, missing dialogue refs
- bin/editor.rs: Lua → JSON CLI via mlua
- 3 unit tests: 1 parse_lua_event_script + 2 validate tests
2026-07-09 07:11:55 +02:00
.agents chore: initial commit of bevy-lua project 2026-07-08 13:21:13 +02:00
assets feat(render): replace 3D Camera3d with 2D isometric board 2026-07-08 19:34:40 +02:00
crates/event_editor feat(editor): add event_editor crate with types + validator + CLI 2026-07-09 07:11:55 +02:00
src feat(editor): add event_editor crate with types + validator + CLI 2026-07-09 07:11:55 +02:00
tests chore: initial commit of bevy-lua project 2026-07-08 13:21:13 +02:00
.gitignore feat(levels): wire Lua level files to spawn room-specific geometry 2026-07-08 12:43:20 +02:00
Cargo.toml feat(editor): add event_editor crate with types + validator + CLI 2026-07-09 07:11:55 +02:00
README.md chore: initial commit of bevy-lua project 2026-07-08 13:21:13 +02:00

Catacumbas do Igneo

Sobre o Jogo

Dungeon crawler roguelike 3D feito em Bevy + Lua. ECS 100% Rust, scripting em mlua. Geometrias primitivas para representacao visual.

Como Rodar

  • Janela: cargo run --bin bevy-lua
  • Headless: cargo run --bin bevy-lua -- --headless
  • Smoke test: cargo run --bin bevy-lua -- --headless --mission smoke

Binarios

Binario Descricao
bevy-lua Jogo (windowed ou headless). cargo run --bin bevy-lua
quest-cli Ferramenta de autoria de missoes (Lua -> JSON). cargo run --bin quest-cli -- <cmd>

Quest CLI

Ferramenta que converte definicoes de missao em Lua para JSON validado.

Subcomandos

  • quest-cli new <arquivo.lua> — Converte Lua -> JSON
  • quest-cli validate <arquivo.json> — Valida JSON contra schema
  • quest-cli list — Lista missoes em assets/quests/
  • quest-cli schema — Mostra exemplo de schema

Exemplos em assets/quests/:

  • calor_cinzas_igneo.lua — LeverSequence (3 alavancas)
  • coletar_runas.lua — Collect (10 runas)
  • matar_na_sala.lua — KillInRoom (5 inimigos em s6)

Controles

  • WASD: movimento
  • Mouse: olhar
  • Botao esquerdo: atacar
  • E: interagir
  • ESC: menu
  • Espaco: dash

A Historia

Jogador atravessa 6 salas de catacumbas vulcanicas. Objetivo: ativar 3 alavancas de runa na ordem correta e derrotar o Golem de Magma.

As Seis Salas

  1. S1 Vestiario das Cinzas - spawn e tutorial
  2. S2 Rio de Magma - plataforma sobre lava
  3. S3 Cripta dos Templarios - 3 corredores, 1 correto
  4. S4 Camara da Forja - alavancas Calor e Cinzas
  5. S5 Sala do Selo - alavanca Igneo, abre portao para S6
  6. S6 Coracao Vulcanico - arena do chefe

Sistema de Combate

  • Telegraph: aviso visual antes do ataque
  • Dash: esquiva rapida
  • Componentes ECS em Rust para AttackTelegraph

Inimigos

  • Templarios: guardas da cripta
  • Sentinelas de Magma: guardam as salas

Chefe - Golem de Magma

  • 3 fases de combate
  • Padroes telegraphados
  • Nucleo incandescente como alvo

Progressao

Tres alavancas de runa: Calor (S4), Cinzas (S4), Igneo (S5). Ordem: Calor -> Cinzas -> Igneo.

Acessibilidade

  • Modos de cor para daltonismo
  • Rumble do gamepad
  • Legendas sempre ligadas

Testes

cargo test --lib - 133 testes passando

Estrutura Tecnica

  • Bevy 0.14+
  • mlua para scripts Lua
  • ECS 100% Rust
  • catacumbas_plugin.rs — Plugin orchestrator (camera, lights, spawn, mission tracking)
  • quest_tool/ — Ferramenta de autoria (schema, lua_loader, validator, emitter)
  • bin/quest-cli.rs — CLI para converter/validar missoes

Modulos principais

  • boss/ — FSM do Golem de Magma (3 fases)
  • enemies/ — AI de Salamandra e outros
  • mission/ — Tracker de missoes + tipos (Lever, Collect, KillInRoom)
  • render/ — Mesh pool + materiais
  • lua/ — Sandbox Lua + bootstrap de fase
  • i18n/ — Localizacao
  • audio/ — Audio mixer