Skip to main content

move_army/
move_army.rs

1use canwu_api::{Canwu, EntityRef, ObserveRequest, SemanticAction, SimDuration};
2
3fn main() -> Result<(), Box<dyn std::error::Error>> {
4    let mut canwu = Canwu::demo(35)?;
5    let ids = Canwu::demo_ids();
6
7    canwu.act(
8        ids.commander,
9        SemanticAction::MoveEntity {
10            subject: EntityRef::Army(ids.army),
11            destination: ids.eastern_territory,
12            cargo: Vec::new(),
13        },
14    )?;
15    let arrival_events = canwu.advance(SimDuration::days(1))?;
16
17    let commander = canwu.observe(ids.commander, &ObserveRequest::default())?;
18    let observer = canwu.observe(ids.observer, &ObserveRequest::default())?;
19    println!("time: {}", canwu.time());
20    println!("arrival events: {}", arrival_events.len());
21    println!(
22        "commander knows location: {:?}",
23        commander.known_armies[0].known_location
24    );
25    println!(
26        "observer still believes location: {:?}",
27        observer.known_armies[0].known_location
28    );
29
30    canwu.advance(SimDuration::days(3))?;
31    let observer = canwu.observe(ids.observer, &ObserveRequest::default())?;
32    println!(
33        "observer after report: {:?}",
34        observer.known_armies[0].known_location
35    );
36    Ok(())
37}