File size: 1,844 Bytes
463f868
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
pub mod action_factory;
pub mod action_gen;
pub mod ability_patterns;
pub mod ai_encoding;
pub mod card_db;
pub mod constants;
pub mod diagnostics;
pub mod execution;
pub mod filter;
pub mod game;
mod game_logging;
mod game_trigger;
mod game_setup;
mod game_action_processor;
mod game_rules_ext;
pub mod handlers;
pub mod interpreter;
pub mod models;
pub mod performance;
pub mod performance_allocation;
pub mod performance_requirements;
pub mod player;
pub mod rules;
pub mod state;
pub mod standard_state;
pub mod turn_sequencer;
pub mod filter_bench;

// Constants
pub use constants::*;

// Re-export core structures
pub use action_factory::ActionFactory;
pub use card_db::{CardDatabase, LiveCard, MemberCard, LOGIC_ID_MASK};
pub use handlers::{
    MainPhaseController, MulliganController, ResponseController, TurnController,
    TurnPhaseController,
};
pub use player::PlayerState;
pub use state::{ActionReceiver, CoreGameState, DebugState, GameState, UIState};
pub use standard_state::StandardizedState;

// Re-export models
pub use models::{
    Ability, AbilityContext, Condition, Cost, DeckStats, Effect, EnergyCard, PendingInteraction,
    TurnEvent,
};

// Re-export enums and constants
pub use crate::core::enums::*;
pub use crate::core::hearts::HeartBoard;

// Heuristic utility re-exports
pub use interpreter::conditions::{check_condition, check_condition_opcode};
pub use interpreter::costs::{check_cost, pay_cost};
pub use interpreter::suspension::suspend_interaction;
pub use interpreter::{
    check_once_per_turn, consume_once_per_turn, process_trigger_queue, resolve_bytecode,
};
pub use rules::get_effective_blades;
pub use performance::PerformanceResults;

// Heuristic flags (moved to constants.rs)
// They are re-exported via 'pub use constants::*;' above