Skip to main content

aeon_fighter/
lib.rs

1//! Deterministic 60Hz fighting-game simulation.
2//!
3//! The sim is a pure function of `(World, InputFrame, InputFrame) -> World`.
4//! No rendering, no wall clock, no floats in the game state, no filesystem.
5//! That is the contract a later rollback netcode layer will need.
6
7pub mod chars;
8pub mod collision;
9pub mod fighter;
10pub mod geom;
11pub mod input;
12pub mod moves;
13pub mod versus;
14pub mod world;
15
16pub use chars::{Character, CharacterId, GaugeDef};
17pub use fighter::{
18    Action, Connect, Fighter, Stance, CANCEL_LATE_FRAMES, FEINT_RECOVERY, GETUP_FRAMES,
19    KNOCKDOWN_FRAMES, METER_MAX, PREJUMP, RC_COST, RC_FREEZE_FRAMES, THROW_TECH_WINDOW,
20};
21pub use geom::{px, Aabb, LocalBox, Vec2i, SUB, TICK_HZ};
22pub use input::{stick_to_dir, Btn, Buttons, Chord, InputFrame, Motion};
23pub use moves::{
24    HitLevel, MoveDef, MoveId, ProjectileClass, ProjectileKind, ShotBehavior, ThrowKind,
25};
26pub use versus::{Match, Phase, ROUNDS_TO_WIN};
27pub use world::{
28    CombatEvent, DummyMode, EventKind, Projectile, RoundOutcome, ShotState, World, ROUND_TIME,
29    STAGE_W,
30};