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
mod shm;

pub use crate::types::*;
pub use bwapi_wrapper::prelude::*;
pub mod aimodule;
pub mod bullet;
pub mod can_do;
pub mod client;
pub mod command;
pub mod force;
pub mod game;
pub mod player;
pub mod predicate;
pub mod region;
pub mod types;
pub mod unit;

pub use aimodule::AiModule;
pub use force::Force;
pub use game::Game;
pub use player::Player;
pub use unit::Unit;

pub fn start(mut module: impl AiModule) {
    let mut client = client::Client::default();

    println!("Waiting for frame to start");

    while !client.get_game().is_in_game() {
        client.update(&mut module);
    }

    while client.get_game().is_in_game() {
        client.update(&mut module);
    }
}