reorder key handling

This commit is contained in:
Joachim Lusiardi 2024-10-21 20:37:52 +02:00
parent d6f4fdaa5b
commit a0635de65a
2 changed files with 28 additions and 22 deletions

View File

@ -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),

View File

@ -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();
}
}
}