kingslayer 0.5.5

A text adventure dungeon crawler game written in Rust
Documentation
#[cfg(test)]
mod tests {
    use kingslayer::Cli;

    #[test]
    fn open_close_path() {
        let cli = Cli::from_file("worlds/test_world.ron");

        assert!(cli.ask("l").contains("way is shut"));
        assert_eq!(cli.ask("enter door"), "The way is shut.");
        assert_eq!(cli.ask("open door"), "Opened.");
        assert!(cli.ask("l").contains("The way is open."));

        assert!(
            cli.ask("enter door").contains("Closet") && cli.ask("l").contains("The way is open.")
        );
        assert_eq!(cli.ask("close door"), "Closed.");
        assert!(cli.ask("l").contains("way is shut"));
        assert_eq!(cli.ask("enter door"), "The way is shut.");
        assert_eq!(cli.ask("open door"), "Opened.");
        assert!(cli.ask("l").contains("The way is open."));

        assert!(cli.ask("enter door").contains("Central Room"));
        assert!(cli.ask("l").contains("The way is open."));
    }

    #[test]
    fn open_close_item() {
        let cli = Cli::from_file("worlds/test_world.ron");

        cli.ask("s");

        assert!(cli.ask("open capsule").contains("already opened"));
        assert_eq!(cli.ask("close capsule"), "Closed.");
        assert!(
            cli.ask("l").contains("capsule")
                && !cli.ask("l").contains("contains")
                && !cli.ask("l").contains("red block")
        );
        assert_eq!(cli.ask("open capsule"), "Opened.");
        assert!(
            cli.ask("l").contains("capsule")
                && cli.ask("l").contains("contains")
                && cli.ask("l").contains("red block")
        );
        assert_eq!(cli.ask("close capsule"), "Closed.");
        assert!(cli.ask("close capsule").contains("already closed"));
        assert!(
            cli.ask("l").contains("capsule")
                && !cli.ask("l").contains("contains")
                && !cli.ask("l").contains("red block")
        );

        cli.ask("take all");
        assert!(
            !cli.ask("l").contains("capsule")
                && cli.ask("i").contains("capsule")
                && !cli.ask("i").contains("contains")
                && !cli.ask("i").contains("red block")
        );
        assert_eq!(cli.ask("open capsule"), "Opened.");
        assert!(cli.ask("open capsule").contains("already opened"));
        assert!(
            cli.ask("i").contains("capsule")
                && cli.ask("i").contains("contains")
                && cli.ask("i").contains("red block")
        );
        assert_eq!(cli.ask("close capsule"), "Closed.");
        assert!(cli.ask("close capsule").contains("already closed"));
        assert!(
            cli.ask("i").contains("capsule")
                && !cli.ask("i").contains("contains")
                && !cli.ask("i").contains("red block")
        );
    }
}