From a0635de65a991316caf547f6f566bd3158261a83 Mon Sep 17 00:00:00 2001 From: Joachim Lusiardi Date: Mon, 21 Oct 2024 20:37:52 +0200 Subject: [PATCH] reorder key handling --- src/artifacts.rs | 4 ++-- src/main.rs | 46 ++++++++++++++++++++++++++-------------------- 2 files changed, 28 insertions(+), 22 deletions(-) diff --git a/src/artifacts.rs b/src/artifacts.rs index e907f1e..632b6a3 100644 --- a/src/artifacts.rs +++ b/src/artifacts.rs @@ -23,8 +23,8 @@ pub struct Chest { impl Chest { pub fn new(position: Position) -> Self { - let min_gold = 10 * (position.get_level()+1); - let max_gold = min_gold + 10*position.get_level(); + let min_gold = 10 * (position.get_level() + 1); + let max_gold = min_gold + 10 * position.get_level(); Self { position, gold: rand::thread_rng().gen_range(min_gold..=max_gold), diff --git a/src/main.rs b/src/main.rs index c237013..8e9ffe6 100644 --- a/src/main.rs +++ b/src/main.rs @@ -146,28 +146,34 @@ fn main() -> Result<()> { })?; if event::poll(std::time::Duration::from_millis(FRAME_LENGTH))? { if let event::Event::Key(key) = event::read()? { - if key.kind == KeyEventKind::Press && key.code == KeyCode::Char('v') { - game.messages.insert( - 0, - format!("You are playing version '{}'.", env!("GIT_HASH")).to_string(), - ); - } - if key.kind == KeyEventKind::Press && key.code == KeyCode::Char('q') { - break; - } if key.kind == KeyEventKind::Press { - let new_pos = match key.code { - KeyCode::Left => game.move_player(-1, 0), - KeyCode::Right => game.move_player(1, 0), - KeyCode::Up => game.move_player(0, -1), - KeyCode::Down => game.move_player(0, 1), - _ => (0, 0), - }; - if !game.player_fights_monster() { - // player attacked monster but did not kill it - game.move_player(new_pos.0, new_pos.1); + match key.code { + KeyCode::Char('v') => { + game.messages.insert( + 0, + format!("You are playing version '{}'.", env!("GIT_HASH")) + .to_string(), + ); + } + KeyCode::Char('q') => { + break; + } + KeyCode::Left | KeyCode::Down | KeyCode::Right | KeyCode::Up => { + let new_pos = match key.code { + KeyCode::Left => game.move_player(-1, 0), + KeyCode::Right => game.move_player(1, 0), + KeyCode::Up => game.move_player(0, -1), + KeyCode::Down => game.move_player(0, 1), + _ => (0, 0), + }; + if !game.player_fights_monster() { + // player attacked monster but did not kill it + game.move_player(new_pos.0, new_pos.1); + } + game.player_collects_artifact(); + } + _ => {} } - game.player_collects_artifact(); } } }