#![recursion_limit = "512"] mod application; mod bootstrap; mod commands; mod domain; mod errors; mod events; mod session_action; pub mod battle; #[cfg(test)] mod battle_tests; pub mod core; pub mod forge; pub mod forge_actions; pub mod game_state; pub mod npc_support; pub mod options; pub mod post_battle; pub mod projection; pub mod prompt_context; pub mod story_engine; pub mod view_model; pub use application::*; pub use battle::{ build_battle_runtime_story_options, inventory_item_has_usable_effect, resolve_battle_action, restore_player_resource, }; pub use bootstrap::{ RuntimeStoryBootstrapBuild, RuntimeStoryBootstrapSeed, build_custom_scene_preset, build_encounter_from_scene_npc, build_runtime_story_bootstrap, generate_runtime_session_id, resolve_custom_runtime_scene_id, }; pub use commands::*; pub use core::{ MAX_PLAYER_LEVEL, add_player_currency, add_player_inventory_items, append_active_build_buffs, append_story_history, clear_encounter_only, clear_encounter_state, cumulative_xp_required, ensure_json_object, first_hostile_npc_string_field, format_now_rfc3339, grant_player_progression_experience, increment_runtime_stat, normalize_optional_string, normalize_required_string, read_array_field, read_bool_field, read_field, read_i32_field, read_object_field, read_optional_string_field, read_required_string_field, read_runtime_session_id, read_u32_field, remove_player_inventory_item, resolve_progression_level, write_bool_field, write_current_encounter_i32_field, write_first_hostile_npc_i32_field, write_i32_field, write_null_field, write_string_field, write_u32_field, xp_to_next_level_for, }; pub use domain::*; pub use errors::*; pub use events::*; pub use forge::{build_runtime_equipment_item, build_runtime_material_item, format_currency_text}; pub use forge_actions::{ resolve_forge_craft_action, resolve_forge_dismantle_action, resolve_forge_reforge_action, }; pub use game_state::{ add_inventory_items_to_list, apply_equipment_loadout_to_state, battle_mode_text, build_current_build_toast, clone_inventory_item_with_quantity, current_encounter_id, current_encounter_name, current_encounter_name_from_battle, ensure_inventory_action_available, equipment_bonus_fallbacks, equipment_item_bonuses, equipment_slot_label, find_player_inventory_entry, has_giftable_player_inventory, item_rarity_key, normalize_equipment_slot_id, normalize_equipped_item, read_equipment_total_bonuses, read_inventory_item_name, read_player_equipment_item, read_player_inventory_values, read_runtime_equipment_bonus_cache, remove_inventory_item_from_list, resolve_equipment_slot_for_item, write_player_equipment_item, write_player_inventory_values, write_runtime_equipment_bonus_cache, }; pub use npc_support::{ build_npc_gift_result_text, build_runtime_npc_interaction_view, npc_buyback_price, npc_purchase_price, recruit_companion_to_party, resolve_npc_gift_affinity_gain, trade_quantity_suffix, write_runtime_npc_interaction_view, }; pub use options::{ build_disabled_runtime_story_option, build_runtime_story_option_from_story_option, build_runtime_story_option_interaction, build_runtime_story_option_with_payload, build_static_runtime_story_option, build_story_option_from_runtime_option, infer_option_scope, }; pub use post_battle::{ clear_post_battle_state, ensure_scene_act_state, ensure_scene_encounter_preview, finalize_post_battle_resolution, is_terminal_battle_outcome, resolve_forward_scene_id, resolve_post_battle_story_options, resolve_runtime_scene_preset, }; pub use projection::{StoryRuntimeProjectionSource, build_story_runtime_projection}; pub use prompt_context::{RuntimeStoryPromptContextExtras, build_runtime_story_prompt_context}; pub use session_action::{ StoryRuntimeActionResolveInput, StoryRuntimeActionResolveOutput, build_runtime_story_options, build_runtime_story_state_response_parts, resolve_story_runtime_action, }; pub use story_engine::project_story_engine_after_action; pub use view_model::{ build_runtime_story_companions, build_runtime_story_encounter, build_runtime_story_view_model, resolve_current_encounter_npc_state, };