Add traps
This commit is contained in:
45
src/gui.rs
45
src/gui.rs
@@ -1,15 +1,15 @@
|
||||
use rltk::{Point, VirtualKeyCode};
|
||||
use rltk::RGB;
|
||||
use rltk::Rltk;
|
||||
use rltk::RGB;
|
||||
use rltk::{Point, VirtualKeyCode};
|
||||
use specs::prelude::*;
|
||||
|
||||
use crate::{CombatStats, InBackpack, RunState, State, Viewshed};
|
||||
use crate::{Equipped, Map};
|
||||
use crate::{HungerClock, HungerState, Name};
|
||||
use crate::gamelog::GameLog;
|
||||
use crate::rex_assets::RexAssets;
|
||||
use crate::Player;
|
||||
use crate::Position;
|
||||
use crate::rex_assets::RexAssets;
|
||||
use crate::{CombatStats, Hidden, InBackpack, RunState, State, Viewshed};
|
||||
use crate::{Equipped, Map};
|
||||
use crate::{HungerClock, HungerState, Name};
|
||||
|
||||
pub fn draw_ui(ecs: &World, ctx: &mut Rltk) {
|
||||
ctx.draw_box(
|
||||
@@ -100,6 +100,7 @@ fn draw_tooltips(ecs: &World, ctx: &mut Rltk) {
|
||||
let map = ecs.fetch::<Map>();
|
||||
let names = ecs.read_storage::<Name>();
|
||||
let positions = ecs.read_storage::<Position>();
|
||||
let hidden = ecs.read_storage::<Hidden>();
|
||||
|
||||
let mouse_pos = ctx.mouse_pos();
|
||||
if mouse_pos.0 >= map.width || mouse_pos.1 >= map.height {
|
||||
@@ -107,7 +108,7 @@ fn draw_tooltips(ecs: &World, ctx: &mut Rltk) {
|
||||
}
|
||||
|
||||
let mut tooltip: Vec<String> = Vec::new();
|
||||
for (name, position) in (&names, &positions).join() {
|
||||
for (name, position, _hidden) in (&names, &positions, !&hidden).join() {
|
||||
let idx = map.xy_idx(position.x, position.y);
|
||||
if position.x == mouse_pos.0 && position.y == mouse_pos.1 && map.visible_tiles[idx] {
|
||||
tooltip.push(name.name.to_string());
|
||||
@@ -446,10 +447,32 @@ pub fn main_menu(gs: &mut State, ctx: &mut Rltk) -> MainMenuResult {
|
||||
let assets = gs.ecs.fetch::<RexAssets>();
|
||||
ctx.render_xp_sprite(&assets.menu, 0, 0);
|
||||
|
||||
ctx.draw_box_double(24, 18, 31, 10, RGB::named(rltk::WHEAT), RGB::named(rltk::BLACK));
|
||||
ctx.print_color_centered(20, RGB::named(rltk::YELLOW), RGB::named(rltk::BLACK), "Rust Roguelike Tutorial");
|
||||
ctx.print_color_centered(21, RGB::named(rltk::CYAN), RGB::named(rltk::BLACK), "by Herbert Wolverson");
|
||||
ctx.print_color_centered(22, RGB::named(rltk::GRAY), RGB::named(rltk::BLACK), "Use Up/Down Arrows and Enter");
|
||||
ctx.draw_box_double(
|
||||
24,
|
||||
18,
|
||||
31,
|
||||
10,
|
||||
RGB::named(rltk::WHEAT),
|
||||
RGB::named(rltk::BLACK),
|
||||
);
|
||||
ctx.print_color_centered(
|
||||
20,
|
||||
RGB::named(rltk::YELLOW),
|
||||
RGB::named(rltk::BLACK),
|
||||
"Rust Roguelike Tutorial",
|
||||
);
|
||||
ctx.print_color_centered(
|
||||
21,
|
||||
RGB::named(rltk::CYAN),
|
||||
RGB::named(rltk::BLACK),
|
||||
"by Herbert Wolverson",
|
||||
);
|
||||
ctx.print_color_centered(
|
||||
22,
|
||||
RGB::named(rltk::GRAY),
|
||||
RGB::named(rltk::BLACK),
|
||||
"Use Up/Down Arrows and Enter",
|
||||
);
|
||||
|
||||
let mut y = 24;
|
||||
if let RunState::MainMenu {
|
||||
|
Reference in New Issue
Block a user