From 327af68c9de15ffb2ccb94167d308a8cf8deb778 Mon Sep 17 00:00:00 2001 From: David Gay Date: Sun, 15 Oct 2023 02:35:16 -0400 Subject: Add some simple debug logging --- Cargo.lock | 163 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ Cargo.toml | 5 +- src/main.rs | 3 + src/rules/npcs.rs | 6 ++ 4 files changed, 174 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index d196a6f..11f8b9a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2,6 +2,15 @@ # It is not intended for manual editing. version = 3 +[[package]] +name = "aho-corasick" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0" +dependencies = [ + "memchr", +] + [[package]] name = "anstream" version = "0.5.0" @@ -50,6 +59,12 @@ dependencies = [ "windows-sys", ] +[[package]] +name = "bitflags" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4682ae6287fcf752ecaabbfcc7b6f9b72aa33933dc23a554d853aea8eea8635" + [[package]] name = "cfg-if" version = "1.0.0" @@ -94,19 +109,44 @@ name = "dmn" version = "0.0.1" dependencies = [ "clap", + "env_logger", "include_dir", "lazy_static", + "log", "rand", "serde", "serde_yaml", ] +[[package]] +name = "env_logger" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85cdab6a89accf66733ad5a1693a4dcced6aeff64602b634530dd73c1f3ee9f0" +dependencies = [ + "humantime", + "is-terminal", + "log", + "regex", + "termcolor", +] + [[package]] name = "equivalent" version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" +[[package]] +name = "errno" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3e13f66a2f95e32a39eaa81f6b95d42878ca0e1db0c7543723dfe12557e860" +dependencies = [ + "libc", + "windows-sys", +] + [[package]] name = "getrandom" version = "0.2.10" @@ -124,6 +164,18 @@ version = "0.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7dfda62a12f55daeae5015f81b0baea145391cb4520f86c248fc615d72640d12" +[[package]] +name = "hermit-abi" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7" + +[[package]] +name = "humantime" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" + [[package]] name = "include_dir" version = "0.7.3" @@ -153,6 +205,17 @@ dependencies = [ "hashbrown", ] +[[package]] +name = "is-terminal" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b" +dependencies = [ + "hermit-abi", + "rustix", + "windows-sys", +] + [[package]] name = "itoa" version = "1.0.9" @@ -171,6 +234,24 @@ version = "0.2.148" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9cdc71e17332e86d2e1d38c1f99edcb6288ee11b815fb1a4b049eaa2114d369b" +[[package]] +name = "linux-raw-sys" +version = "0.4.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da2479e8c062e40bf0066ffa0bc823de0a9368974af99c9f6df941d2c231e03f" + +[[package]] +name = "log" +version = "0.4.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" + +[[package]] +name = "memchr" +version = "2.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167" + [[package]] name = "ppv-lite86" version = "0.2.17" @@ -225,6 +306,48 @@ dependencies = [ "getrandom", ] +[[package]] +name = "regex" +version = "1.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aaac441002f822bc9705a681810a4dd2963094b9ca0ddc41cb963a4c189189ea" +dependencies = [ + "aho-corasick", + "memchr", + "regex-automata", + "regex-syntax", +] + +[[package]] +name = "regex-automata" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5011c7e263a695dc8ca064cddb722af1be54e517a280b12a5356f98366899e5d" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax", +] + +[[package]] +name = "regex-syntax" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f" + +[[package]] +name = "rustix" +version = "0.38.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "745ecfa778e66b2b63c88a61cb36e0eea109e803b0b86bf9879fbc77c70e86ed" +dependencies = [ + "bitflags", + "errno", + "libc", + "linux-raw-sys", + "windows-sys", +] + [[package]] name = "ryu" version = "1.0.15" @@ -281,6 +404,15 @@ dependencies = [ "unicode-ident", ] +[[package]] +name = "termcolor" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6093bad37da69aab9d123a8091e4be0aa4a03e4d601ec641c327398315f62b64" +dependencies = [ + "winapi-util", +] + [[package]] name = "unicode-ident" version = "1.0.12" @@ -305,6 +437,37 @@ version = "0.11.0+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-util" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596" +dependencies = [ + "winapi", +] + +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + [[package]] name = "windows-sys" version = "0.48.0" diff --git a/Cargo.toml b/Cargo.toml index 24c9a81..15dd9a2 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -10,13 +10,12 @@ homepage = "https://demonidol.com/dmn" keywords = ["adnd", "dnd", "ttrpg", "rpg", "cli"] categories = ["command-line-utilities", "games"] - -# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html - [dependencies] clap = { version = "^4.4", features = ["cargo"] } +env_logger = "0.10.0" include_dir = "0.7.3" lazy_static = "1.4.0" +log = "0.4.20" rand = "^0.8" serde = { version = "^1.0", features = ["derive"] } serde_yaml = "^0.9" diff --git a/src/main.rs b/src/main.rs index 46fd094..307c1f9 100644 --- a/src/main.rs +++ b/src/main.rs @@ -4,10 +4,13 @@ use dmn::rules::ability_scores::AbilityScore; use dmn::rules::classes::CLASSES; use dmn::rules::npcs::Npc; use dmn::rules::races::RACES; +use env_logger; mod cli; fn main() { + env_logger::init(); + let matches = cli::cli().get_matches(); let random_tables = RandomTables::new().expect("Failed to load random tables."); diff --git a/src/rules/npcs.rs b/src/rules/npcs.rs index 4ee687f..fae1c69 100644 --- a/src/rules/npcs.rs +++ b/src/rules/npcs.rs @@ -2,6 +2,7 @@ use crate::dice::roll_formula; use crate::rules::ability_scores::{AbilityScore, AbilityScoreCollection}; use crate::rules::classes::Class; use crate::rules::races::Race; +use log::debug; use std::collections::HashMap; // use std::fmt; @@ -39,8 +40,10 @@ impl Npc { AbilityScore::Constitution, AbilityScore::Charisma, ] { + debug!("Generating score for {}", &ability.abbr()); // Roll 3d6 down the line. let mut roll_result = roll_formula("3d6").unwrap(); + debug!("Rolled {}", roll_result.total()); let class_ref = self.class.unwrap(); let race_ref = self.race.unwrap(); @@ -49,6 +52,7 @@ impl Npc { if class_ref.prime_requisites.contains(&ability) { roll_result.increase_sides_below_max(6, 1); } + debug!("Bumped prime requisites, now at {}", roll_result.total()); // At this point we don't need the individual dice anymore. let mut total = roll_result.total(); @@ -59,6 +63,7 @@ impl Npc { .get(&ability) .copied() .unwrap_or(0) as u32; + debug!("After adding NPC class modifiers, now at {}", total); // Add racial ability score modifiers. total += race_ref @@ -66,6 +71,7 @@ impl Npc { .get(&ability) .copied() .unwrap_or(0) as u32; + debug!("After adding racial modifiers, now at {}", total); ability_score_rolls.insert(ability, total); } -- cgit v1.2.3