Add hunger
This commit is contained in:
23
src/gui.rs
23
src/gui.rs
@@ -1,14 +1,14 @@
|
||||
use rltk::Rltk;
|
||||
use rltk::RGB;
|
||||
use rltk::{Point, VirtualKeyCode};
|
||||
use rltk::RGB;
|
||||
use rltk::Rltk;
|
||||
use specs::prelude::*;
|
||||
|
||||
use crate::gamelog::GameLog;
|
||||
use crate::Name;
|
||||
use crate::Player;
|
||||
use crate::Position;
|
||||
use crate::{HungerClock, HungerState, HungerSystem, Name};
|
||||
use crate::{CombatStats, InBackpack, RunState, State, Viewshed};
|
||||
use crate::{Equipped, Map};
|
||||
use crate::gamelog::GameLog;
|
||||
use crate::Player;
|
||||
use crate::Position;
|
||||
|
||||
pub fn draw_ui(ecs: &World, ctx: &mut Rltk) {
|
||||
ctx.draw_box(
|
||||
@@ -22,9 +22,10 @@ pub fn draw_ui(ecs: &World, ctx: &mut Rltk) {
|
||||
|
||||
let combat_stats = ecs.read_storage::<CombatStats>();
|
||||
let players = ecs.read_storage::<Player>();
|
||||
let hunger = ecs.read_storage::<HungerClock>();
|
||||
let log = ecs.fetch::<GameLog>();
|
||||
|
||||
for (_player, stats) in (&players, &combat_stats).join() {
|
||||
for (_player, stats, hc) in (&players, &combat_stats, &hunger).join() {
|
||||
let health = format!(" HP: {} / {}", stats.hp, stats.max_hp);
|
||||
ctx.print_color(
|
||||
12,
|
||||
@@ -43,8 +44,16 @@ pub fn draw_ui(ecs: &World, ctx: &mut Rltk) {
|
||||
RGB::named(rltk::RED),
|
||||
RGB::named(rltk::BLACK),
|
||||
);
|
||||
|
||||
match hc.state {
|
||||
HungerState::WellFed => ctx.print_color(71, 42, RGB::named(rltk::GREEN), RGB::named(rltk::BLACK), "Well Fed"),
|
||||
HungerState::Normal => {}
|
||||
HungerState::Hungry => ctx.print_color(71, 42, RGB::named(rltk::ORANGE), RGB::named(rltk::BLACK), "Hungry"),
|
||||
HungerState::Starving => ctx.print_color(71, 42, RGB::named(rltk::RED), RGB::named(rltk::BLACK), "Starving"),
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
let mut y = 44;
|
||||
for s in log.entries.iter().rev() {
|
||||
if y < 49 {
|
||||
|
Reference in New Issue
Block a user