//! Open Auto Battler Core - Auto-battler game engine
//!
//! This crate provides the core game logic for the Open Auto Battler.
//! It is designed to be no_std compatible for Substrate SDK pallet integration.

#![cfg_attr(not(feature = "std"), no_std)]

extern crate alloc;

pub mod battle;
pub mod commit;
pub mod error;
pub mod limits;
pub mod log;
pub mod rng;
pub mod state;
pub mod types;

#[cfg(test)]
mod tests;

#[cfg(feature = "bounded")]
pub mod bounded;

// Core exports
pub use battle::{
    resolve_battle, BattlePhase, BattleResult, CombatEvent, CombatUnit, UnitId, UnitView,
};
pub use commit::{
    apply_shop_start_triggers, apply_shop_start_triggers_with_result, verify_and_apply_turn,
};
pub use error::{GameError, GameResult};
pub use limits::{BattleLimits, LimitReason, Team};
pub use rng::{BattleRng, XorShiftRng};
pub use state::*;
pub use types::*;
