use crate::rules::*;
use weasel::{Battle, BattleController, EventTrigger, FlatVersionedEvent, Server};
mod rules;
fn main() {
let battle = Battle::builder(CustomRules::new()).build();
let mut server = Server::builder(battle).build();
MakePizza::trigger(&mut server, "margherita".to_string())
.fire()
.unwrap();
MakePizza::trigger(&mut server, "diavola".to_string())
.fire()
.unwrap();
assert_eq!(
server
.battle()
.metrics()
.user_u64(PIZZAS_CREATED_METRIC.to_string()),
Some(2)
);
let events: Vec<FlatVersionedEvent<_>> = server
.battle()
.versioned_events(std::ops::Range {
start: 0,
end: server.battle().history().len() as usize,
})
.map(|e| e.into())
.collect();
println!("History:\n {}", serde_json::to_string(&events).unwrap());
}