summaryrefslogtreecommitdiff
path: root/dungeon/src/lib.rs
diff options
context:
space:
mode:
Diffstat (limited to 'dungeon/src/lib.rs')
-rw-r--r--dungeon/src/lib.rs62
1 files changed, 3 insertions, 59 deletions
diff --git a/dungeon/src/lib.rs b/dungeon/src/lib.rs
index 0fd3e0d..fa75c10 100644
--- a/dungeon/src/lib.rs
+++ b/dungeon/src/lib.rs
@@ -10,16 +10,14 @@ pub mod player_input;
pub mod pos;
pub mod rng;
-use std::time::Instant;
-
use rand::{Rng, SeedableRng, TryRngCore, rngs::OsRng};
use crate::{
- entity::{Entity, EntityKind, PLAYER_INVENTORY_SIZE_USIZE, Player},
+ entity::{Entity, Player},
map::{Floor, Tile},
msg::Message,
player_input::PlayerInput,
- pos::{Direction, FPos},
+ pos::FPos,
rng::DungeonRng,
};
@@ -147,8 +145,7 @@ impl Dungeon {
let changed = self.msg.update(player_input);
UpdateResult::MessageUpdated(changed)
} else {
- let mut action = self.update_player(player_input);
-
+ let mut action = self.update_player(player_input, delta_time);
let curr_player_pos = self.player.entity.fpos;
self.update_entities(player_input, delta_time);
if self
@@ -181,59 +178,6 @@ impl Dungeon {
}
}
- fn update_player(&mut self, player_input: PlayerInput) -> PlayerAction {
- let mut action = PlayerAction::default();
-
- // update potion timer
- if let Some(timer) = self.player.potion_timer
- && Instant::now() > timer
- {
- self.player.potion_timer = None;
- self.player.entity.speed = self.player.entity.kind.initial_speed();
- }
-
- // use item
- if player_input.use_item
- && self.player.active_inv_slot < self.player.inventory.len()
- {
- let item = self.player.inventory.remove(self.player.active_inv_slot);
- action.potion = item.is_potion();
- action.bomb = item.is_bomb();
- item.consume(self);
- }
-
- if player_input.attack {
- // TODO: attack
- action.attack = true;
- }
-
- // check for drop input
- if player_input.drop && self.player.active_inv_slot < self.player.inventory.len() {
- let item = self.player.inventory.remove(self.player.active_inv_slot);
- self.entities.push(Entity::new(
- self.player.entity.pos,
- Direction::East,
- EntityKind::Item(item),
- ));
- self.player.active_inv_slot = self
- .player
- .active_inv_slot
- .max(self.player.inventory.len().saturating_sub(1));
- action.drop_item = true;
- }
-
- // TODO: pickup items
-
- // check for inv slot request
- if let Some(slot) = player_input.inv_slot
- && slot < PLAYER_INVENTORY_SIZE_USIZE
- {
- self.player.active_inv_slot = slot;
- }
-
- action
- }
-
fn spawn_enimies(&mut self) {
// TODO: better entity spawning
let zombie = Entity::zombie(self.floor.random_walkable_pos(&mut self.level_rng));