[INFO] cloning repository https://github.com/tiagofdev/Maldito-Dungeon
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/tiagofdev/Maldito-Dungeon" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftiagofdev%2FMaldito-Dungeon", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftiagofdev%2FMaldito-Dungeon'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] c1e480f63b21dfa05cbfb709366a85a0782d2c0a
[INFO] checking tiagofdev/Maldito-Dungeon against be3da1e8c043bb6f1f335463d3b1335cdf50b03c for pr-162597
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftiagofdev%2FMaldito-Dungeon" "/workspace/builds/worker-7-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/tiagofdev/Maldito-Dungeon
[INFO] finished tweaking git repo https://github.com/tiagofdev/Maldito-Dungeon
[INFO] tweaked toml for git repo https://github.com/tiagofdev/Maldito-Dungeon written to /workspace/builds/worker-7-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/tiagofdev/Maldito-Dungeon on toolchain be3da1e8c043bb6f1f335463d3b1335cdf50b03c
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+be3da1e8c043bb6f1f335463d3b1335cdf50b03c" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/tiagofdev/Maldito-Dungeon already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+be3da1e8c043bb6f1f335463d3b1335cdf50b03c" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]     Blocking waiting for file lock on package cache
[ERROR] error running command: no output for 300 seconds
[INFO] checking tiagofdev/Maldito-Dungeon against be3da1e8c043bb6f1f335463d3b1335cdf50b03c for pr-162597
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftiagofdev%2FMaldito-Dungeon" "/workspace/builds/worker-7-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/tiagofdev/Maldito-Dungeon
[INFO] finished tweaking git repo https://github.com/tiagofdev/Maldito-Dungeon
[INFO] tweaked toml for git repo https://github.com/tiagofdev/Maldito-Dungeon written to /workspace/builds/worker-7-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/tiagofdev/Maldito-Dungeon on toolchain be3da1e8c043bb6f1f335463d3b1335cdf50b03c
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+be3da1e8c043bb6f1f335463d3b1335cdf50b03c" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/tiagofdev/Maldito-Dungeon already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+be3da1e8c043bb6f1f335463d3b1335cdf50b03c" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded ansi_colours v1.2.3
[INFO] [stderr]   Downloaded viuer v0.11.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:8683fc1fc2eb5c9ac98e0d076ab094b2ffac7f99da555d2b6a2e27f346de2ec7" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 63ca131f854284ffbbae91d38209877cf0b0a9ccfaf863ab6e0087f9b1280885
[INFO] running `Command { std: "docker" "start" "63ca131f854284ffbbae91d38209877cf0b0a9ccfaf863ab6e0087f9b1280885", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "63ca131f854284ffbbae91d38209877cf0b0a9ccfaf863ab6e0087f9b1280885", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "63ca131f854284ffbbae91d38209877cf0b0a9ccfaf863ab6e0087f9b1280885" "/opt/rustwide/cargo-home/bin/cargo" "+be3da1e8c043bb6f1f335463d3b1335cdf50b03c" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "63ca131f854284ffbbae91d38209877cf0b0a9ccfaf863ab6e0087f9b1280885", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "63ca131f854284ffbbae91d38209877cf0b0a9ccfaf863ab6e0087f9b1280885" "/opt/rustwide/cargo-home/bin/cargo" "+be3da1e8c043bb6f1f335463d3b1335cdf50b03c" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]     Checking cfg-if v1.0.1
[INFO] [stderr]    Compiling crossbeam-utils v0.8.22
[INFO] [stderr]    Compiling crossbeam-deque v0.8.7
[INFO] [stderr]    Compiling zerocopy v0.8.56
[INFO] [stderr]     Checking bytemuck v1.25.2
[INFO] [stderr]     Checking memchr v2.7.4
[INFO] [stderr]     Checking bitflags v2.9.1
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]     Checking either v1.17.0
[INFO] [stderr]     Checking arrayvec v0.7.8
[INFO] [stderr]    Compiling syn v2.0.102
[INFO] [stderr]    Compiling syn v3.0.3
[INFO] [stderr]     Checking as-slice v0.2.1
[INFO] [stderr]    Compiling built v0.8.1
[INFO] [stderr]    Compiling libm v0.2.16
[INFO] [stderr]    Compiling av-scenechange v0.14.1
[INFO] [stderr]     Checking log v0.4.33
[INFO] [stderr]     Checking aligned v0.4.3
[INFO] [stderr]    Compiling pulp v0.22.3
[INFO] [stderr]     Checking crc32fast v1.5.0
[INFO] [stderr]    Compiling pastey v0.1.1
[INFO] [stderr]     Checking y4m v0.8.0
[INFO] [stderr]     Checking quick-error v2.0.1
[INFO] [stderr]    Compiling getrandom v0.3.3
[INFO] [stderr]     Checking flate2 v1.1.9
[INFO] [stderr]     Checking itertools v0.14.0
[INFO] [stderr]     Checking raw-cpuid v11.6.0
[INFO] [stderr]    Compiling simd_helpers v0.1.0
[INFO] [stderr]     Checking imgref v1.12.2
[INFO] [stderr]     Checking weezl v0.1.12
[INFO] [stderr]     Checking zune-core v0.5.3
[INFO] [stderr]    Compiling noop_proc_macro v0.3.0
[INFO] [stderr]     Checking new_debug_unreachable v1.0.6
[INFO] [stderr]     Checking reborrow v0.5.5
[INFO] [stderr]     Checking pulp-wasm-simd-flag v0.1.1
[INFO] [stderr]     Checking rustix v1.1.4
[INFO] [stderr]     Checking loop9 v0.1.5
[INFO] [stderr]     Checking crossbeam-epoch v0.9.20
[INFO] [stderr]     Checking rgb v0.8.53
[INFO] [stderr]     Checking avif-serialize v0.8.9
[INFO] [stderr]     Checking num-integer v0.1.46
[INFO] [stderr]     Checking num-complex v0.4.6
[INFO] [stderr]     Checking parking_lot_core v0.9.12
[INFO] [stderr]    Compiling rav1e v0.8.1
[INFO] [stderr]     Checking zune-jpeg v0.5.15
[INFO] [stderr]     Checking zune-inflate v0.2.54
[INFO] [stderr]     Checking nom v8.0.0
[INFO] [stderr]     Checking no_std_io2 v0.9.4
[INFO] [stderr]     Checking bitstream-io v4.10.0
[INFO] [stderr]     Checking fax v0.2.7
[INFO] [stderr]     Checking color_quant v1.1.0
[INFO] [stderr]     Checking lebe v0.5.3
[INFO] [stderr]     Checking bit_field v0.10.3
[INFO] [stderr]     Checking num-bigint v0.4.8
[INFO] [stderr]     Checking rayon-core v1.13.0
[INFO] [stderr]     Checking moxcms v0.8.1
[INFO] [stderr]     Checking image-webp v0.2.4
[INFO] [stderr]     Checking gif v0.14.2
[INFO] [stderr]     Checking png v0.18.1
[INFO] [stderr]     Checking parking_lot v0.12.5
[INFO] [stderr]     Checking rand_core v0.9.3
[INFO] [stderr]     Checking rayon v1.12.0
[INFO] [stderr]     Checking qoi v0.4.1
[INFO] [stderr]     Checking getrandom v0.4.3
[INFO] [stderr]     Checking once_cell v1.21.4
[INFO] [stderr]     Checking ansi_colours v1.2.3
[INFO] [stderr]     Checking console v0.16.4
[INFO] [stderr]     Checking colored v3.0.0
[INFO] [stderr]    Compiling thiserror-impl v2.0.20
[INFO] [stderr]     Checking tempfile v3.27.0
[INFO] [stderr]     Checking crossterm v0.29.0
[INFO] [stderr]     Checking thiserror v2.0.20
[INFO] [stderr]     Checking num-rational v0.4.2
[INFO] [stderr]     Checking maybe-rayon v0.1.1
[INFO] [stderr]    Compiling zerocopy-derive v0.8.56
[INFO] [stderr]    Compiling equator-macro v0.4.2
[INFO] [stderr]    Compiling arg_enum_proc_macro v0.3.4
[INFO] [stderr]    Compiling profiling-procmacros v1.0.18
[INFO] [stderr]    Compiling num-derive v0.4.2
[INFO] [stderr]    Compiling serde_derive v1.0.219
[INFO] [stderr]     Checking profiling v1.0.18
[INFO] [stderr]     Checking equator v0.4.2
[INFO] [stderr]     Checking aligned-vec v0.6.4
[INFO] [stderr]     Checking v_frame v0.3.9
[INFO] [stderr]     Checking av1-grain v0.2.5
[INFO] [stderr]     Checking serde v1.0.219
[INFO] [stderr]     Checking serde_json v1.0.140
[INFO] [stderr]     Checking ravif v0.13.0
[INFO] [stderr]     Checking half v2.7.1
[INFO] [stderr]     Checking ppv-lite86 v0.2.21
[INFO] [stderr]     Checking exr v1.74.2
[INFO] [stderr]     Checking tiff v0.11.3
[INFO] [stderr]     Checking rand_chacha v0.9.0
[INFO] [stderr]     Checking rand v0.9.1
[INFO] [stderr]     Checking image v0.25.10
[INFO] [stderr]     Checking viuer v0.11.0
[INFO] [stderr]     Checking textrpg v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `crate::entities::inventory_item::InventoryItem`
[INFO] [stdout]  --> src/entities/living.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::entities::inventory_item::InventoryItem;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/entities/player.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde::de::Visitor`
[INFO] [stdout]  --> src/entities/player.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use serde::de::Visitor;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::entities::inventory_item::InventoryItem`
[INFO] [stdout]  --> src/entities/player.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::entities::inventory_item::InventoryItem;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::entities::item::Item`
[INFO] [stdout]  --> src/entities/npc.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::entities::item::Item;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::entities::loot_entry::LootEntry`
[INFO] [stdout]  --> src/entities/npc.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::entities::loot_entry::LootEntry;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::entities::direction::Direction`
[INFO] [stdout]  --> src/entities/room.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::entities::direction::Direction;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::entities::inventory::Inventory`
[INFO] [stdout]  --> src/entities/creature.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::entities::inventory::Inventory;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around method argument
[INFO] [stdout]   --> src/entities/creature.rs:44:34
[INFO] [stdout]    |
[INFO] [stdout] 44 |         self.living.set_strength((self.level() * damage));
[INFO] [stdout]    |                                  ^                     ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 44 -         self.living.set_strength((self.level() * damage));
[INFO] [stdout] 44 +         self.living.set_strength(self.level() * damage);
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fmt::Display`
[INFO] [stdout]  --> src/entities/direction.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::fmt::Display;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde::Deserialize`
[INFO] [stdout]  --> src/entities/direction.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use serde::Deserialize;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `io`
[INFO] [stdout]  --> src/loader.rs:1:15
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{fs, io};
[INFO] [stdout]   |               ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde_json::Value`
[INFO] [stdout]  --> src/loader.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use serde_json::Value;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `colored::*`
[INFO] [stdout]  --> src/behaviors/enter.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use colored::*;
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::entities::direction::Direction`
[INFO] [stdout]  --> src/behaviors/get.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::entities::direction::Direction;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::entities::inventory_item::InventoryItem`
[INFO] [stdout]  --> src/behaviors/combat.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::entities::inventory_item::InventoryItem;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::loader::Being`
[INFO] [stdout]  --> src/behaviors/combat.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::loader::Being;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `RngCore`
[INFO] [stdout]  --> src/behaviors/combat.rs:7:17
[INFO] [stdout]   |
[INFO] [stdout] 7 | use rand::{Rng, RngCore};
[INFO] [stdout]   |                 ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Living`
[INFO] [stdout]  --> src/behaviors/creature_attack.rs:2:41
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::entities::living::{Category, Living};
[INFO] [stdout]   |                                         ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::entities::npc::Npc`
[INFO] [stdout]  --> src/behaviors/creature_attack.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::entities::npc::Npc;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/behaviors/creature_attack.rs:19:35
[INFO] [stdout]    |
[INFO] [stdout] 19 |                 physical_damage = (self.living_mut().strength() * 3 * self.level());
[INFO] [stdout]    |                                   ^                                               ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 19 -                 physical_damage = (self.living_mut().strength() * 3 * self.level());
[INFO] [stdout] 19 +                 physical_damage = self.living_mut().strength() * 3 * self.level();
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/behaviors/creature_attack.rs:20:34
[INFO] [stdout]    |
[INFO] [stdout] 20 |                 magical_damage = (self.living_mut().intelligence() * 1 * self.level());
[INFO] [stdout]    |                                  ^                                                   ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 20 -                 magical_damage = (self.living_mut().intelligence() * 1 * self.level());
[INFO] [stdout] 20 +                 magical_damage = self.living_mut().intelligence() * 1 * self.level();
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/behaviors/creature_attack.rs:23:35
[INFO] [stdout]    |
[INFO] [stdout] 23 |                 physical_damage = (self.living_mut().strength() * 0 * self.level());
[INFO] [stdout]    |                                   ^                                               ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 23 -                 physical_damage = (self.living_mut().strength() * 0 * self.level());
[INFO] [stdout] 23 +                 physical_damage = self.living_mut().strength() * 0 * self.level();
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/behaviors/creature_attack.rs:24:34
[INFO] [stdout]    |
[INFO] [stdout] 24 |                 magical_damage = (self.living_mut().intelligence() * 4 * self.level());
[INFO] [stdout]    |                                  ^                                                   ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 24 -                 magical_damage = (self.living_mut().intelligence() * 4 * self.level());
[INFO] [stdout] 24 +                 magical_damage = self.living_mut().intelligence() * 4 * self.level();
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/behaviors/creature_attack.rs:27:35
[INFO] [stdout]    |
[INFO] [stdout] 27 |                 physical_damage = (self.living_mut().strength() * 4 * self.level());
[INFO] [stdout]    |                                   ^                                               ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 27 -                 physical_damage = (self.living_mut().strength() * 4 * self.level());
[INFO] [stdout] 27 +                 physical_damage = self.living_mut().strength() * 4 * self.level();
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/behaviors/creature_attack.rs:28:34
[INFO] [stdout]    |
[INFO] [stdout] 28 |                 magical_damage = (self.living_mut().intelligence() * 0 * self.level());
[INFO] [stdout]    |                                  ^                                                   ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 28 -                 magical_damage = (self.living_mut().intelligence() * 0 * self.level());
[INFO] [stdout] 28 +                 magical_damage = self.living_mut().intelligence() * 0 * self.level();
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/behaviors/creature_attack.rs:31:35
[INFO] [stdout]    |
[INFO] [stdout] 31 |                 physical_damage = (self.living_mut().strength() * 2 * self.level());
[INFO] [stdout]    |                                   ^                                               ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 31 -                 physical_damage = (self.living_mut().strength() * 2 * self.level());
[INFO] [stdout] 31 +                 physical_damage = self.living_mut().strength() * 2 * self.level();
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/behaviors/creature_attack.rs:32:34
[INFO] [stdout]    |
[INFO] [stdout] 32 |                 magical_damage = (self.living_mut().intelligence() * 2 * self.level());
[INFO] [stdout]    |                                  ^                                                   ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 32 -                 magical_damage = (self.living_mut().intelligence() * 2 * self.level());
[INFO] [stdout] 32 +                 magical_damage = self.living_mut().intelligence() * 2 * self.level();
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/behaviors/creature_attack.rs:35:35
[INFO] [stdout]    |
[INFO] [stdout] 35 |                 physical_damage = (self.living_mut().strength() * 1 * self.level());
[INFO] [stdout]    |                                   ^                                               ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 35 -                 physical_damage = (self.living_mut().strength() * 1 * self.level());
[INFO] [stdout] 35 +                 physical_damage = self.living_mut().strength() * 1 * self.level();
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/behaviors/creature_attack.rs:36:34
[INFO] [stdout]    |
[INFO] [stdout] 36 |                 magical_damage = (self.living_mut().intelligence() * 3 * self.level());
[INFO] [stdout]    |                                  ^                                                   ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 36 -                 magical_damage = (self.living_mut().intelligence() * 3 * self.level());
[INFO] [stdout] 36 +                 magical_damage = self.living_mut().intelligence() * 3 * self.level();
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/behaviors/creature_attack.rs:39:35
[INFO] [stdout]    |
[INFO] [stdout] 39 |                 physical_damage = (self.living_mut().strength() * 2 * self.level());
[INFO] [stdout]    |                                   ^                                               ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 39 -                 physical_damage = (self.living_mut().strength() * 2 * self.level());
[INFO] [stdout] 39 +                 physical_damage = self.living_mut().strength() * 2 * self.level();
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/behaviors/creature_attack.rs:40:34
[INFO] [stdout]    |
[INFO] [stdout] 40 |                 magical_damage = (self.living_mut().intelligence() * 2 * self.level());
[INFO] [stdout]    |                                  ^                                                   ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 40 -                 magical_damage = (self.living_mut().intelligence() * 2 * self.level());
[INFO] [stdout] 40 +                 magical_damage = self.living_mut().intelligence() * 2 * self.level();
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Item`
[INFO] [stdout]  --> src/behaviors/utilize.rs:2:37
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::entities::item::{Effect, Item};
[INFO] [stdout]   |                                     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde_json::Value::Null`
[INFO] [stdout]  --> src/behaviors/equip.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use serde_json::Value::Null;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Effect`
[INFO] [stdout]  --> src/behaviors/equip.rs:4:29
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::entities::item::{Effect, Item, Slot};
[INFO] [stdout]   |                             ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::game::Game`
[INFO] [stdout]  --> src/behaviors/equip.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::game::Game;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::entities::inventory_item::InventoryItem`
[INFO] [stdout]  --> src/entities/living.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::entities::inventory_item::InventoryItem;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/entities/player.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde::de::Visitor`
[INFO] [stdout]  --> src/entities/player.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use serde::de::Visitor;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::entities::inventory_item::InventoryItem`
[INFO] [stdout]  --> src/entities/player.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::entities::inventory_item::InventoryItem;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::entities::item::Item`
[INFO] [stdout]  --> src/entities/npc.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::entities::item::Item;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::entities::loot_entry::LootEntry`
[INFO] [stdout]  --> src/entities/npc.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::entities::loot_entry::LootEntry;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::entities::direction::Direction`
[INFO] [stdout]  --> src/entities/room.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::entities::direction::Direction;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::entities::inventory::Inventory`
[INFO] [stdout]  --> src/entities/creature.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::entities::inventory::Inventory;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around method argument
[INFO] [stdout]   --> src/entities/creature.rs:44:34
[INFO] [stdout]    |
[INFO] [stdout] 44 |         self.living.set_strength((self.level() * damage));
[INFO] [stdout]    |                                  ^                     ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 44 -         self.living.set_strength((self.level() * damage));
[INFO] [stdout] 44 +         self.living.set_strength(self.level() * damage);
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fmt::Display`
[INFO] [stdout]  --> src/entities/direction.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::fmt::Display;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde::Deserialize`
[INFO] [stdout]  --> src/entities/direction.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use serde::Deserialize;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `io`
[INFO] [stdout]  --> src/loader.rs:1:15
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{fs, io};
[INFO] [stdout]   |               ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde_json::Value`
[INFO] [stdout]  --> src/loader.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use serde_json::Value;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `colored::*`
[INFO] [stdout]  --> src/behaviors/enter.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use colored::*;
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::entities::direction::Direction`
[INFO] [stdout]  --> src/behaviors/get.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::entities::direction::Direction;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::entities::inventory_item::InventoryItem`
[INFO] [stdout]  --> src/behaviors/combat.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::entities::inventory_item::InventoryItem;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::loader::Being`
[INFO] [stdout]  --> src/behaviors/combat.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::loader::Being;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `RngCore`
[INFO] [stdout]  --> src/behaviors/combat.rs:7:17
[INFO] [stdout]   |
[INFO] [stdout] 7 | use rand::{Rng, RngCore};
[INFO] [stdout]   |                 ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Living`
[INFO] [stdout]  --> src/behaviors/creature_attack.rs:2:41
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::entities::living::{Category, Living};
[INFO] [stdout]   |                                         ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::entities::npc::Npc`
[INFO] [stdout]  --> src/behaviors/creature_attack.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::entities::npc::Npc;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/behaviors/creature_attack.rs:19:35
[INFO] [stdout]    |
[INFO] [stdout] 19 |                 physical_damage = (self.living_mut().strength() * 3 * self.level());
[INFO] [stdout]    |                                   ^                                               ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 19 -                 physical_damage = (self.living_mut().strength() * 3 * self.level());
[INFO] [stdout] 19 +                 physical_damage = self.living_mut().strength() * 3 * self.level();
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/behaviors/creature_attack.rs:20:34
[INFO] [stdout]    |
[INFO] [stdout] 20 |                 magical_damage = (self.living_mut().intelligence() * 1 * self.level());
[INFO] [stdout]    |                                  ^                                                   ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 20 -                 magical_damage = (self.living_mut().intelligence() * 1 * self.level());
[INFO] [stdout] 20 +                 magical_damage = self.living_mut().intelligence() * 1 * self.level();
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/behaviors/creature_attack.rs:23:35
[INFO] [stdout]    |
[INFO] [stdout] 23 |                 physical_damage = (self.living_mut().strength() * 0 * self.level());
[INFO] [stdout]    |                                   ^                                               ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 23 -                 physical_damage = (self.living_mut().strength() * 0 * self.level());
[INFO] [stdout] 23 +                 physical_damage = self.living_mut().strength() * 0 * self.level();
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/behaviors/creature_attack.rs:24:34
[INFO] [stdout]    |
[INFO] [stdout] 24 |                 magical_damage = (self.living_mut().intelligence() * 4 * self.level());
[INFO] [stdout]    |                                  ^                                                   ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 24 -                 magical_damage = (self.living_mut().intelligence() * 4 * self.level());
[INFO] [stdout] 24 +                 magical_damage = self.living_mut().intelligence() * 4 * self.level();
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/behaviors/creature_attack.rs:27:35
[INFO] [stdout]    |
[INFO] [stdout] 27 |                 physical_damage = (self.living_mut().strength() * 4 * self.level());
[INFO] [stdout]    |                                   ^                                               ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 27 -                 physical_damage = (self.living_mut().strength() * 4 * self.level());
[INFO] [stdout] 27 +                 physical_damage = self.living_mut().strength() * 4 * self.level();
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/behaviors/creature_attack.rs:28:34
[INFO] [stdout]    |
[INFO] [stdout] 28 |                 magical_damage = (self.living_mut().intelligence() * 0 * self.level());
[INFO] [stdout]    |                                  ^                                                   ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 28 -                 magical_damage = (self.living_mut().intelligence() * 0 * self.level());
[INFO] [stdout] 28 +                 magical_damage = self.living_mut().intelligence() * 0 * self.level();
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/behaviors/creature_attack.rs:31:35
[INFO] [stdout]    |
[INFO] [stdout] 31 |                 physical_damage = (self.living_mut().strength() * 2 * self.level());
[INFO] [stdout]    |                                   ^                                               ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 31 -                 physical_damage = (self.living_mut().strength() * 2 * self.level());
[INFO] [stdout] 31 +                 physical_damage = self.living_mut().strength() * 2 * self.level();
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/behaviors/creature_attack.rs:32:34
[INFO] [stdout]    |
[INFO] [stdout] 32 |                 magical_damage = (self.living_mut().intelligence() * 2 * self.level());
[INFO] [stdout]    |                                  ^                                                   ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 32 -                 magical_damage = (self.living_mut().intelligence() * 2 * self.level());
[INFO] [stdout] 32 +                 magical_damage = self.living_mut().intelligence() * 2 * self.level();
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/behaviors/creature_attack.rs:35:35
[INFO] [stdout]    |
[INFO] [stdout] 35 |                 physical_damage = (self.living_mut().strength() * 1 * self.level());
[INFO] [stdout]    |                                   ^                                               ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 35 -                 physical_damage = (self.living_mut().strength() * 1 * self.level());
[INFO] [stdout] 35 +                 physical_damage = self.living_mut().strength() * 1 * self.level();
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/behaviors/creature_attack.rs:36:34
[INFO] [stdout]    |
[INFO] [stdout] 36 |                 magical_damage = (self.living_mut().intelligence() * 3 * self.level());
[INFO] [stdout]    |                                  ^                                                   ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 36 -                 magical_damage = (self.living_mut().intelligence() * 3 * self.level());
[INFO] [stdout] 36 +                 magical_damage = self.living_mut().intelligence() * 3 * self.level();
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/behaviors/creature_attack.rs:39:35
[INFO] [stdout]    |
[INFO] [stdout] 39 |                 physical_damage = (self.living_mut().strength() * 2 * self.level());
[INFO] [stdout]    |                                   ^                                               ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 39 -                 physical_damage = (self.living_mut().strength() * 2 * self.level());
[INFO] [stdout] 39 +                 physical_damage = self.living_mut().strength() * 2 * self.level();
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/behaviors/creature_attack.rs:40:34
[INFO] [stdout]    |
[INFO] [stdout] 40 |                 magical_damage = (self.living_mut().intelligence() * 2 * self.level());
[INFO] [stdout]    |                                  ^                                                   ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 40 -                 magical_damage = (self.living_mut().intelligence() * 2 * self.level());
[INFO] [stdout] 40 +                 magical_damage = self.living_mut().intelligence() * 2 * self.level();
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Item`
[INFO] [stdout]  --> src/behaviors/utilize.rs:2:37
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::entities::item::{Effect, Item};
[INFO] [stdout]   |                                     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde_json::Value::Null`
[INFO] [stdout]  --> src/behaviors/equip.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use serde_json::Value::Null;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Effect`
[INFO] [stdout]  --> src/behaviors/equip.rs:4:29
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::entities::item::{Effect, Item, Slot};
[INFO] [stdout]   |                             ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::game::Game`
[INFO] [stdout]  --> src/behaviors/equip.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::game::Game;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::error::Error`
[INFO] [stdout]  --> src/game.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::error::Error;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `id`
[INFO] [stdout]   --> src/entities/living.rs:51:28
[INFO] [stdout]    |
[INFO] [stdout] 51 |     pub fn new_with_params(id: u32, name: String, description: String, health: u32, strength: u32, intelligence: u32, defense: u32) ...
[INFO] [stdout]    |                            ^^ help: if this is intentional, prefix it with an underscore: `_id`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]   --> src/entities/living.rs:51:37
[INFO] [stdout]    |
[INFO] [stdout] 51 |     pub fn new_with_params(id: u32, name: String, description: String, health: u32, strength: u32, intelligence: u32, defense: u32) ...
[INFO] [stdout]    |                                     ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `description`
[INFO] [stdout]   --> src/entities/living.rs:51:51
[INFO] [stdout]    |
[INFO] [stdout] 51 | ...: u32, name: String, description: String, health: u32, strength: u32, intelligence: u32, defense: u32) -> Self {
[INFO] [stdout]    |                         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_description`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::error::Error`
[INFO] [stdout]  --> src/game.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::error::Error;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `obj`
[INFO] [stdout]   --> src/entities/quest.rs:62:36
[INFO] [stdout]    |
[INFO] [stdout] 62 |             Objective::Information(obj) => 0,
[INFO] [stdout]    |                                    ^^^ help: if this is intentional, prefix it with an underscore: `_obj`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `id`
[INFO] [stdout]   --> src/entities/living.rs:51:28
[INFO] [stdout]    |
[INFO] [stdout] 51 |     pub fn new_with_params(id: u32, name: String, description: String, health: u32, strength: u32, intelligence: u32, defense: u32) ...
[INFO] [stdout]    |                            ^^ help: if this is intentional, prefix it with an underscore: `_id`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]   --> src/entities/living.rs:51:37
[INFO] [stdout]    |
[INFO] [stdout] 51 |     pub fn new_with_params(id: u32, name: String, description: String, health: u32, strength: u32, intelligence: u32, defense: u32) ...
[INFO] [stdout]    |                                     ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `description`
[INFO] [stdout]   --> src/entities/living.rs:51:51
[INFO] [stdout]    |
[INFO] [stdout] 51 | ...: u32, name: String, description: String, health: u32, strength: u32, intelligence: u32, defense: u32) -> Self {
[INFO] [stdout]    |                         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_description`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/behaviors/get.rs:25:18
[INFO] [stdout]    |
[INFO] [stdout] 25 |         let Some(mut current_room) = g.rooms.get_mut(&self.position()) else {
[INFO] [stdout]    |                  ----^^^^^^^^^^^^
[INFO] [stdout]    |                  |
[INFO] [stdout]    |                  help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/behaviors/quest_mngr.rs:108:13
[INFO] [stdout]     |
[INFO] [stdout] 108 |         let mut ids: Vec<u32>;
[INFO] [stdout]     |             ----^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `room_id`
[INFO] [stdout]    --> src/behaviors/quest_mngr.rs:197:20
[INFO] [stdout]     |
[INFO] [stdout] 197 |                    room_id: u32,
[INFO] [stdout]     |                    ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_room_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `object_name`
[INFO] [stdout]    --> src/behaviors/combat.rs:116:25
[INFO] [stdout]     |
[INFO] [stdout] 116 |                     let object_name = object_name.trim();
[INFO] [stdout]     |                         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_object_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `equip_defense` is assigned to, but never used
[INFO] [stdout]   --> src/behaviors/player_attack.rs:14:13
[INFO] [stdout]    |
[INFO] [stdout] 14 |         let mut equip_defense = 0;
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using `_equip_defense` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `equip_magic_resistance` is assigned to, but never used
[INFO] [stdout]   --> src/behaviors/player_attack.rs:15:13
[INFO] [stdout]    |
[INFO] [stdout] 15 |         let mut equip_magic_resistance = 0;
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using `_equip_magic_resistance` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `equip_defense` is never read
[INFO] [stdout]   --> src/behaviors/player_attack.rs:33:21
[INFO] [stdout]    |
[INFO] [stdout] 33 |                     equip_defense += item.effect_value();
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout]    = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `equip_magic_resistance` is never read
[INFO] [stdout]   --> src/behaviors/player_attack.rs:36:21
[INFO] [stdout]    |
[INFO] [stdout] 36 |                     equip_magic_resistance += item.effect_value();
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `physical_damage` is never read
[INFO] [stdout]   --> src/behaviors/player_attack.rs:43:35
[INFO] [stdout]    |
[INFO] [stdout] 43 |         let mut physical_damage = 0;
[INFO] [stdout]    |                                   ^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 49 |                 physical_damage = (self.living_mut().strength() * 4 * self.level()) + equip_strength;
[INFO] [stdout]    |                 ------------------------------------------------------------------------------------ `physical_damage` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `magical_damage` is never read
[INFO] [stdout]   --> src/behaviors/player_attack.rs:44:34
[INFO] [stdout]    |
[INFO] [stdout] 44 |         let mut magical_damage = 0;
[INFO] [stdout]    |                                  ^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 50 |                 magical_damage = (self.living_mut().intelligence() * 1 * self.level()) + equip_intelligence;
[INFO] [stdout]    |                 ------------------------------------------------------------------------------------------- `magical_damage` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> src/behaviors/creature_attack.rs:38:13
[INFO] [stdout]    |
[INFO] [stdout] 38 |             _ => {
[INFO] [stdout]    |             ^ no value can reach this
[INFO] [stdout]    |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]   --> src/behaviors/creature_attack.rs:38:13
[INFO] [stdout]    |
[INFO] [stdout] 18 |             Category::Humanoid => {
[INFO] [stdout]    |             ------------------ matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 22 |             Category::Arcane => {
[INFO] [stdout]    |             ---------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 26 |             Category::Beast => {
[INFO] [stdout]    |             --------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 30 |             Category::Undead => {
[INFO] [stdout]    |             ---------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 38 |             _ => {
[INFO] [stdout]    |             ^ ...and 1 other patterns collectively make this unreachable
[INFO] [stdout]    = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `physical_damage` is never read
[INFO] [stdout]   --> src/behaviors/creature_attack.rs:14:35
[INFO] [stdout]    |
[INFO] [stdout] 14 |         let mut physical_damage = 0;
[INFO] [stdout]    |                                   ^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 19 |                 physical_damage = (self.living_mut().strength() * 3 * self.level());
[INFO] [stdout]    |                 ------------------------------------------------------------------- `physical_damage` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `magical_damage` is never read
[INFO] [stdout]   --> src/behaviors/creature_attack.rs:15:34
[INFO] [stdout]    |
[INFO] [stdout] 15 |         let mut magical_damage = 0;
[INFO] [stdout]    |                                  ^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 20 |                 magical_damage = (self.living_mut().intelligence() * 1 * self.level());
[INFO] [stdout]    |                 ---------------------------------------------------------------------- `magical_damage` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `is_complete` is never read
[INFO] [stdout]   --> src/behaviors/show_questlog.rs:22:39
[INFO] [stdout]    |
[INFO] [stdout] 22 |                 let mut is_complete = "";
[INFO] [stdout]    |                                       ^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 26 |                     is_complete = "🔄  Incomplete";
[INFO] [stdout]    |                     ------------------------------ `is_complete` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> src/behaviors/equip.rs:93:17
[INFO] [stdout]    |
[INFO] [stdout] 93 |                 _ => {
[INFO] [stdout]    |                 ^ no value can reach this
[INFO] [stdout]    |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]   --> src/behaviors/equip.rs:93:17
[INFO] [stdout]    |
[INFO] [stdout] 63 |                 Slot::Head => {
[INFO] [stdout]    |                 ---------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 71 |                 Slot::Chest => {
[INFO] [stdout]    |                 ----------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 77 |                 Slot::Legs => {
[INFO] [stdout]    |                 ---------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 83 |                 Slot::Weapon => {
[INFO] [stdout]    |                 ------------ matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 93 |                 _ => {
[INFO] [stdout]    |                 ^ ...and 1 other patterns collectively make this unreachable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `set_id` and `set_description` are never used
[INFO] [stdout]   --> src/entities/entity.rs:36:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | impl Entity {
[INFO] [stdout]    | ----------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 36 |     pub fn set_id(&mut self, id: u32) {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 46 |     pub fn set_description(&mut self, description: String) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new_with_params` and `set_id` are never used
[INFO] [stdout]    --> src/entities/living.rs:51:12
[INFO] [stdout]     |
[INFO] [stdout]  34 | impl Living {
[INFO] [stdout]     | ----------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  51 |     pub fn new_with_params(id: u32, name: String, description: String, health: u32, strength: u32, intelligence: u32, defense: u32)...
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 123 |     pub fn set_id(&mut self, id: u32) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `set_slots` is never used
[INFO] [stdout]   --> src/entities/inventory.rs:40:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | impl Inventory {
[INFO] [stdout]    | -------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 40 |     pub fn set_slots(&mut self, slots: u32) {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `increment_quantity`, `decrement_quantity`, `weight`, `increment_slot`, and `decrement_slot` are never used
[INFO] [stdout]   --> src/entities/inventory_item.rs:27:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | impl InventoryItem {
[INFO] [stdout]    | ------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 27 |     pub fn increment_quantity(&mut self, amount: u32) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 31 |     pub fn decrement_quantity(&mut self, amount: u32) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 39 |     pub fn weight(&self) -> u32 {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 44 |     pub fn increment_slot(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 52 |     pub fn decrement_slot(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `id`, `set_slots`, and `add_experience` are never used
[INFO] [stdout]    --> src/entities/player.rs:61:12
[INFO] [stdout]     |
[INFO] [stdout]  38 | impl Player {
[INFO] [stdout]     | ----------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  61 |     pub fn id(&self) -> u32 {
[INFO] [stdout]     |            ^^
[INFO] [stdout] ...
[INFO] [stdout] 181 |     pub fn set_slots(&mut self, slots: u32) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 253 |     pub fn add_experience(&mut self, xp: u32) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `type_str` is never used
[INFO] [stdout]    --> src/entities/quest.rs:109:12
[INFO] [stdout]     |
[INFO] [stdout]  52 | impl Objective {
[INFO] [stdout]     | -------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 109 |     pub fn type_str(&self) -> &'static str {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `set_physical_damage_stats` is never used
[INFO] [stdout]   --> src/entities/creature.rs:41:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | impl Creature {
[INFO] [stdout]    | ------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 41 |     pub fn set_physical_damage_stats(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Being` is never used
[INFO] [stdout]   --> src/loader.rs:17:10
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub enum Being {
[INFO] [stdout]    |          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `drop_item_qty` is never used
[INFO] [stdout]   --> src/behaviors/get.rs:12:8
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub trait Get{
[INFO] [stdout]    |           --- method in this trait
[INFO] [stdout] ...
[INFO] [stdout] 12 |     fn drop_item_qty(&mut self, item_name: String, qty: u32, g: &mut Game);
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_active_quests` is never used
[INFO] [stdout]   --> src/behaviors/quest_mngr.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub trait QuestManager {
[INFO] [stdout]    |           ------------ method in this trait
[INFO] [stdout] ...
[INFO] [stdout] 11 |     fn get_active_quests(&self, game: &Game) -> Vec<String>;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `obj`
[INFO] [stdout]   --> src/entities/quest.rs:62:36
[INFO] [stdout]    |
[INFO] [stdout] 62 |             Objective::Information(obj) => 0,
[INFO] [stdout]    |                                    ^^^ help: if this is intentional, prefix it with an underscore: `_obj`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/behaviors/get.rs:25:18
[INFO] [stdout]    |
[INFO] [stdout] 25 |         let Some(mut current_room) = g.rooms.get_mut(&self.position()) else {
[INFO] [stdout]    |                  ----^^^^^^^^^^^^
[INFO] [stdout]    |                  |
[INFO] [stdout]    |                  help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/behaviors/quest_mngr.rs:108:13
[INFO] [stdout]     |
[INFO] [stdout] 108 |         let mut ids: Vec<u32>;
[INFO] [stdout]     |             ----^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `room_id`
[INFO] [stdout]    --> src/behaviors/quest_mngr.rs:197:20
[INFO] [stdout]     |
[INFO] [stdout] 197 |                    room_id: u32,
[INFO] [stdout]     |                    ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_room_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `object_name`
[INFO] [stdout]    --> src/behaviors/combat.rs:116:25
[INFO] [stdout]     |
[INFO] [stdout] 116 |                     let object_name = object_name.trim();
[INFO] [stdout]     |                         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_object_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `equip_defense` is assigned to, but never used
[INFO] [stdout]   --> src/behaviors/player_attack.rs:14:13
[INFO] [stdout]    |
[INFO] [stdout] 14 |         let mut equip_defense = 0;
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using `_equip_defense` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `equip_magic_resistance` is assigned to, but never used
[INFO] [stdout]   --> src/behaviors/player_attack.rs:15:13
[INFO] [stdout]    |
[INFO] [stdout] 15 |         let mut equip_magic_resistance = 0;
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using `_equip_magic_resistance` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `equip_defense` is never read
[INFO] [stdout]   --> src/behaviors/player_attack.rs:33:21
[INFO] [stdout]    |
[INFO] [stdout] 33 |                     equip_defense += item.effect_value();
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout]    = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `equip_magic_resistance` is never read
[INFO] [stdout]   --> src/behaviors/player_attack.rs:36:21
[INFO] [stdout]    |
[INFO] [stdout] 36 |                     equip_magic_resistance += item.effect_value();
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `physical_damage` is never read
[INFO] [stdout]   --> src/behaviors/player_attack.rs:43:35
[INFO] [stdout]    |
[INFO] [stdout] 43 |         let mut physical_damage = 0;
[INFO] [stdout]    |                                   ^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 49 |                 physical_damage = (self.living_mut().strength() * 4 * self.level()) + equip_strength;
[INFO] [stdout]    |                 ------------------------------------------------------------------------------------ `physical_damage` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `magical_damage` is never read
[INFO] [stdout]   --> src/behaviors/player_attack.rs:44:34
[INFO] [stdout]    |
[INFO] [stdout] 44 |         let mut magical_damage = 0;
[INFO] [stdout]    |                                  ^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 50 |                 magical_damage = (self.living_mut().intelligence() * 1 * self.level()) + equip_intelligence;
[INFO] [stdout]    |                 ------------------------------------------------------------------------------------------- `magical_damage` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> src/behaviors/creature_attack.rs:38:13
[INFO] [stdout]    |
[INFO] [stdout] 38 |             _ => {
[INFO] [stdout]    |             ^ no value can reach this
[INFO] [stdout]    |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]   --> src/behaviors/creature_attack.rs:38:13
[INFO] [stdout]    |
[INFO] [stdout] 18 |             Category::Humanoid => {
[INFO] [stdout]    |             ------------------ matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 22 |             Category::Arcane => {
[INFO] [stdout]    |             ---------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 26 |             Category::Beast => {
[INFO] [stdout]    |             --------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 30 |             Category::Undead => {
[INFO] [stdout]    |             ---------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 38 |             _ => {
[INFO] [stdout]    |             ^ ...and 1 other patterns collectively make this unreachable
[INFO] [stdout]    = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `physical_damage` is never read
[INFO] [stdout]   --> src/behaviors/creature_attack.rs:14:35
[INFO] [stdout]    |
[INFO] [stdout] 14 |         let mut physical_damage = 0;
[INFO] [stdout]    |                                   ^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 19 |                 physical_damage = (self.living_mut().strength() * 3 * self.level());
[INFO] [stdout]    |                 ------------------------------------------------------------------- `physical_damage` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `magical_damage` is never read
[INFO] [stdout]   --> src/behaviors/creature_attack.rs:15:34
[INFO] [stdout]    |
[INFO] [stdout] 15 |         let mut magical_damage = 0;
[INFO] [stdout]    |                                  ^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 20 |                 magical_damage = (self.living_mut().intelligence() * 1 * self.level());
[INFO] [stdout]    |                 ---------------------------------------------------------------------- `magical_damage` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `is_complete` is never read
[INFO] [stdout]   --> src/behaviors/show_questlog.rs:22:39
[INFO] [stdout]    |
[INFO] [stdout] 22 |                 let mut is_complete = "";
[INFO] [stdout]    |                                       ^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 26 |                     is_complete = "🔄  Incomplete";
[INFO] [stdout]    |                     ------------------------------ `is_complete` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> src/behaviors/equip.rs:93:17
[INFO] [stdout]    |
[INFO] [stdout] 93 |                 _ => {
[INFO] [stdout]    |                 ^ no value can reach this
[INFO] [stdout]    |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]   --> src/behaviors/equip.rs:93:17
[INFO] [stdout]    |
[INFO] [stdout] 63 |                 Slot::Head => {
[INFO] [stdout]    |                 ---------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 71 |                 Slot::Chest => {
[INFO] [stdout]    |                 ----------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 77 |                 Slot::Legs => {
[INFO] [stdout]    |                 ---------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 83 |                 Slot::Weapon => {
[INFO] [stdout]    |                 ------------ matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 93 |                 _ => {
[INFO] [stdout]    |                 ^ ...and 1 other patterns collectively make this unreachable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `set_id` and `set_description` are never used
[INFO] [stdout]   --> src/entities/entity.rs:36:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | impl Entity {
[INFO] [stdout]    | ----------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 36 |     pub fn set_id(&mut self, id: u32) {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 46 |     pub fn set_description(&mut self, description: String) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new_with_params` and `set_id` are never used
[INFO] [stdout]    --> src/entities/living.rs:51:12
[INFO] [stdout]     |
[INFO] [stdout]  34 | impl Living {
[INFO] [stdout]     | ----------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  51 |     pub fn new_with_params(id: u32, name: String, description: String, health: u32, strength: u32, intelligence: u32, defense: u32)...
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 123 |     pub fn set_id(&mut self, id: u32) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `set_slots` is never used
[INFO] [stdout]   --> src/entities/inventory.rs:40:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | impl Inventory {
[INFO] [stdout]    | -------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 40 |     pub fn set_slots(&mut self, slots: u32) {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `increment_quantity`, `decrement_quantity`, `weight`, `increment_slot`, and `decrement_slot` are never used
[INFO] [stdout]   --> src/entities/inventory_item.rs:27:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | impl InventoryItem {
[INFO] [stdout]    | ------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 27 |     pub fn increment_quantity(&mut self, amount: u32) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 31 |     pub fn decrement_quantity(&mut self, amount: u32) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 39 |     pub fn weight(&self) -> u32 {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 44 |     pub fn increment_slot(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 52 |     pub fn decrement_slot(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `id`, `set_slots`, and `add_experience` are never used
[INFO] [stdout]    --> src/entities/player.rs:61:12
[INFO] [stdout]     |
[INFO] [stdout]  38 | impl Player {
[INFO] [stdout]     | ----------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  61 |     pub fn id(&self) -> u32 {
[INFO] [stdout]     |            ^^
[INFO] [stdout] ...
[INFO] [stdout] 181 |     pub fn set_slots(&mut self, slots: u32) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 253 |     pub fn add_experience(&mut self, xp: u32) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `type_str` is never used
[INFO] [stdout]    --> src/entities/quest.rs:109:12
[INFO] [stdout]     |
[INFO] [stdout]  52 | impl Objective {
[INFO] [stdout]     | -------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 109 |     pub fn type_str(&self) -> &'static str {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `set_physical_damage_stats` is never used
[INFO] [stdout]   --> src/entities/creature.rs:41:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | impl Creature {
[INFO] [stdout]    | ------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 41 |     pub fn set_physical_damage_stats(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Being` is never used
[INFO] [stdout]   --> src/loader.rs:17:10
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub enum Being {
[INFO] [stdout]    |          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `drop_item_qty` is never used
[INFO] [stdout]   --> src/behaviors/get.rs:12:8
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub trait Get{
[INFO] [stdout]    |           --- method in this trait
[INFO] [stdout] ...
[INFO] [stdout] 12 |     fn drop_item_qty(&mut self, item_name: String, qty: u32, g: &mut Game);
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_active_quests` is never used
[INFO] [stdout]   --> src/behaviors/quest_mngr.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub trait QuestManager {
[INFO] [stdout]    |           ------------ method in this trait
[INFO] [stdout] ...
[INFO] [stdout] 11 |     fn get_active_quests(&self, game: &Game) -> Vec<String>;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 44.20s
[INFO] running `Command { std: "docker" "inspect" "63ca131f854284ffbbae91d38209877cf0b0a9ccfaf863ab6e0087f9b1280885", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "63ca131f854284ffbbae91d38209877cf0b0a9ccfaf863ab6e0087f9b1280885", kill_on_drop: false }`
[INFO] [stdout] 63ca131f854284ffbbae91d38209877cf0b0a9ccfaf863ab6e0087f9b1280885
