extern crate dcss_api;
use dcss_api::Webtile;
use dcss_api::{BlockingError, Error};
fn main() {
let mut webtile =
Webtile::connect("ws://localhost:8080/socket", 100, "0.29").expect("Failed to connect");
while webtile.get_message().is_some() {}
let _gameid = webtile
.login_with_credentials("Username", "Password")
.expect("Failed to login");
while webtile.get_message().is_some() {}
webtile
.start_game("dcss-web-trunk", "b", "i", "b")
.expect("Failed to start game");
while let Some(message) = webtile.get_message() {
println!("{:?}", message)
}
webtile.write_key("i").expect("");
webtile
.read_until("menu", None, None)
.expect("Failed to read");
webtile.write_key("a").expect("");
webtile
.read_until("ui-push", None, None)
.expect("Failed to read");
webtile.write_key("d").expect("");
webtile
.read_until("player", None, None)
.expect("Failed to read");
webtile.write_key("i").expect("");
webtile
.read_until("menu", None, None)
.expect("Failed to read");
webtile.write_key("b").expect("");
webtile
.read_until("ui-push", None, None)
.expect("Failed to read");
webtile.write_key("d").expect("");
webtile
.read_until("player", None, None)
.expect("Failed to read");
while let Some(message) = webtile.get_message() {
println!("{:?}", message)
}
webtile.write_key(",").expect("");
match webtile.read_until("input_mode", Some("mode"), Some(1)) {
Ok(_) => (),
Err(e) => match e {
Error::Blocking(BlockingError::Pickup) => {
println!("Pickup menu pop-up -- decide what to do");
webtile.write_key("key_esc").expect(""); webtile
.read_until("msgs", None, None)
.expect("Failed to read");
}
_ => panic!("Unexpected Error"),
},
};
while let Some(message) = webtile.get_message() {
println!("{:?}", message)
}
webtile.quit_game().expect("Failed to quit");
while let Some(message) = webtile.get_message() {
println!("{:?}", message)
}
webtile.disconnect().expect("Failed to disconnect");
}