data to consts, cheatmenu

This commit is contained in:
Llywelwyn 2023-09-24 23:46:27 +01:00
parent a2fb893f49
commit 0d4c0c9558
47 changed files with 178 additions and 87 deletions

View file

@ -1,7 +1,7 @@
use crate::{ gamelog, Attributes, Burden, EquipmentChanged, Equipped, InBackpack, Item, Pools }; use crate::{ gamelog, Attributes, Burden, EquipmentChanged, Equipped, InBackpack, Item, Pools };
use specs::prelude::*; use specs::prelude::*;
use std::collections::HashMap; use std::collections::HashMap;
use crate::data::entity::CARRY_CAPACITY_PER_STRENGTH; use crate::consts::entity::CARRY_CAPACITY_PER_STRENGTH;
pub struct EncumbranceSystem {} pub struct EncumbranceSystem {}
@ -20,7 +20,17 @@ impl<'a> System<'a> for EncumbranceSystem {
); );
fn run(&mut self, data: Self::SystemData) { fn run(&mut self, data: Self::SystemData) {
let (mut equip_dirty, entities, items, backpacks, wielded, mut pools, attributes, player, mut burdened) = data; let (
mut equip_dirty,
entities,
items,
backpacks,
wielded,
mut pools,
attributes,
player,
mut burdened,
) = data;
if equip_dirty.is_empty() { if equip_dirty.is_empty() {
return; return;
} }
@ -50,7 +60,8 @@ impl<'a> System<'a> for EncumbranceSystem {
pool.weight = *weight; pool.weight = *weight;
if let Some(attr) = attributes.get(*entity) { if let Some(attr) = attributes.get(*entity) {
let carry_capacity_lbs = let carry_capacity_lbs =
(attr.strength.base + attr.strength.modifiers) * CARRY_CAPACITY_PER_STRENGTH; (attr.strength.base + attr.strength.modifiers) *
CARRY_CAPACITY_PER_STRENGTH;
if (pool.weight as i32) > 3 * carry_capacity_lbs { if (pool.weight as i32) > 3 * carry_capacity_lbs {
// Overloaded // Overloaded
burdened burdened

View file

@ -1,4 +1,4 @@
use crate::data::entity::*; use crate::consts::entity::*;
use crate::{ use crate::{
Burden, Burden,
BurdenLevel, BurdenLevel,
@ -15,7 +15,7 @@ use crate::{
use bracket_lib::prelude::*; use bracket_lib::prelude::*;
use specs::prelude::*; use specs::prelude::*;
use crate::config::CONFIG; use crate::config::CONFIG;
use crate::data::events::*; use crate::consts::events::*;
pub struct EnergySystem {} pub struct EnergySystem {}

View file

@ -12,7 +12,7 @@ use crate::{
Intrinsics, Intrinsics,
}; };
use specs::prelude::*; use specs::prelude::*;
use crate::data::events::*; use crate::consts::events::*;
pub struct RegenSystem {} pub struct RegenSystem {}

View file

@ -12,7 +12,7 @@ use crate::{
}; };
use bracket_lib::prelude::*; use bracket_lib::prelude::*;
use specs::prelude::*; use specs::prelude::*;
use crate::data::events::*; use crate::consts::events::*;
pub struct TurnStatusSystem {} pub struct TurnStatusSystem {}

View file

@ -2,8 +2,8 @@ use super::{ Hidden, Map, Mind, Position, Prop, Renderable, Pools };
use bracket_lib::prelude::*; use bracket_lib::prelude::*;
use specs::prelude::*; use specs::prelude::*;
use std::ops::Mul; use std::ops::Mul;
use super::data::visuals::{ VIEWPORT_W, VIEWPORT_H }; use super::consts::visuals::{ VIEWPORT_W, VIEWPORT_H };
use super::data::prelude::*; use super::consts::prelude::*;
const SHOW_BOUNDARIES: bool = false; const SHOW_BOUNDARIES: bool = false;
@ -147,7 +147,7 @@ pub fn render_camera(ecs: &World, ctx: &mut BTerm) {
if map.visible_tiles[idx] { if map.visible_tiles[idx] {
draw = true; draw = true;
} else { } else {
fg = fg.mul(crate::data::visuals::NON_VISIBLE_MULTIPLIER); fg = fg.mul(crate::consts::visuals::NON_VISIBLE_MULTIPLIER);
// We don't darken BG, because get_tile_renderables_for_id handles this. // We don't darken BG, because get_tile_renderables_for_id handles this.
} }

View file

@ -10,3 +10,7 @@ pub mod sprites;
pub mod prelude { pub mod prelude {
pub use super::visuals::{ TILE_LAYER, ENTITY_LAYER, TEXT_LAYER, HP_BAR_LAYER }; pub use super::visuals::{ TILE_LAYER, ENTITY_LAYER, TEXT_LAYER, HP_BAR_LAYER };
} }
pub const TILESIZE: f32 = 16.0;
pub const DISPLAYWIDTH: u32 = 100;
pub const DISPLAYHEIGHT: u32 = 56;

View file

@ -14,7 +14,7 @@ use super::{
}; };
use bracket_lib::prelude::*; use bracket_lib::prelude::*;
use specs::prelude::*; use specs::prelude::*;
use crate::data::events; use crate::consts::events;
pub fn delete_the_dead(ecs: &mut World) { pub fn delete_the_dead(ecs: &mut World) {
let mut dead: Vec<Entity> = Vec::new(); let mut dead: Vec<Entity> = Vec::new();

View file

@ -17,10 +17,10 @@ use crate::{
HasDamageModifiers, HasDamageModifiers,
}; };
use crate::gui::with_article; use crate::gui::with_article;
use crate::data::visuals::{ DEFAULT_PARTICLE_LIFETIME, LONG_PARTICLE_LIFETIME }; use crate::consts::visuals::{ DEFAULT_PARTICLE_LIFETIME, LONG_PARTICLE_LIFETIME };
use crate::data::messages::LEVELUP_PLAYER; use crate::consts::messages::LEVELUP_PLAYER;
use crate::data::events::*; use crate::consts::events::*;
use crate::data::messages::*; use crate::consts::messages::*;
use bracket_lib::prelude::*; use bracket_lib::prelude::*;
use specs::prelude::*; use specs::prelude::*;

View file

@ -34,7 +34,7 @@ use crate::{
Position, Position,
Viewshed, Viewshed,
}; };
use crate::data::messages::*; use crate::consts::messages::*;
use bracket_lib::prelude::*; use bracket_lib::prelude::*;
use specs::prelude::*; use specs::prelude::*;
pub fn item_trigger(source: Option<Entity>, item: Entity, target: &Targets, ecs: &mut World) { pub fn item_trigger(source: Option<Entity>, item: Entity, target: &Targets, ecs: &mut World) {

View file

@ -1,7 +1,7 @@
use std::collections::{ HashSet, HashMap }; use std::collections::{ HashSet, HashMap };
use std::sync::Mutex; use std::sync::Mutex;
use crate::data::events::EVENT; use crate::consts::events::EVENT;
use crate::data::names::*; use crate::consts::names::*;
lazy_static! { lazy_static! {
/// A count of each event that has happened over the run. i.e. "turns", "descended", "ascended" /// A count of each event that has happened over the run. i.e. "turns", "descended", "ascended"

View file

@ -1,7 +1,7 @@
use super::{ Skill, Skills }; use super::{ Skill, Skills };
use crate::gui::{ Ancestry, Class }; use crate::gui::{ Ancestry, Class };
use crate::data::entity; use crate::consts::entity;
use crate::data::char_create::*; use crate::consts::char_create::*;
use bracket_lib::prelude::*; use bracket_lib::prelude::*;
use std::cmp::max; use std::cmp::max;

View file

@ -8,8 +8,8 @@ use super::{
RunState, RunState,
State, State,
}; };
use crate::data::entity; use crate::consts::entity;
use crate::data::char_create::*; use crate::consts::char_create::*;
use crate::{ use crate::{
raws, raws,
Attribute, Attribute,
@ -28,7 +28,7 @@ use bracket_lib::prelude::*;
use serde::{ Deserialize, Serialize }; use serde::{ Deserialize, Serialize };
use specs::prelude::*; use specs::prelude::*;
use std::collections::HashMap; use std::collections::HashMap;
use crate::data::prelude::*; use crate::consts::prelude::*;
#[derive(Serialize, Deserialize, Copy, Clone, PartialEq)] #[derive(Serialize, Deserialize, Copy, Clone, PartialEq)]
pub enum Ancestry { pub enum Ancestry {

View file

@ -1,5 +1,9 @@
use super::State; use super::{ State };
use bracket_lib::prelude::*; use bracket_lib::prelude::*;
use notan::prelude::*;
use notan::draw::DrawTextSection;
use std::collections::HashMap;
use crate::consts::TILESIZE;
#[derive(PartialEq, Copy, Clone)] #[derive(PartialEq, Copy, Clone)]
pub enum CheatMenuResult { pub enum CheatMenuResult {
@ -12,8 +16,52 @@ pub enum CheatMenuResult {
GodMode, GodMode,
} }
pub fn show_cheat_menu(_gs: &mut State, ctx: &mut BTerm) -> CheatMenuResult { pub fn show_cheat_menu(_gs: &mut State, ctx: &mut App) -> CheatMenuResult {
let (x_offset, y_offset) = (1, 10); let key = &ctx.keyboard;
for keycode in key.pressed.iter() {
match *keycode {
KeyCode::A => {
return CheatMenuResult::Ascend;
}
KeyCode::D => {
return CheatMenuResult::Descend;
}
KeyCode::H => {
return CheatMenuResult::Heal;
}
KeyCode::M => {
return CheatMenuResult::MagicMap;
}
KeyCode::G => {
return CheatMenuResult::GodMode;
}
KeyCode::Escape => {
return CheatMenuResult::Cancel;
}
_ => {}
};
}
return CheatMenuResult::NoResponse;
}
pub fn draw_cheat_menu(
draw: &mut notan::draw::Draw,
atlas: &HashMap<String, Texture>,
font: &notan::draw::Font
) {
let offsets = crate::camera::get_offset();
const DEBUG_MENU: &str =
r#"DEBUG MENU! [aA-zZ][Esc.]
a - ASCEND A FLOOR
d - DESCEND A FLOOR
h - HEAL TO FULL
m - MAGIC MAP REVEAL
g - GOD MODE"#;
draw.text(&font, DEBUG_MENU)
.position(1.0 + (offsets.x as f32) * TILESIZE, 1.0 + (offsets.y as f32) * TILESIZE)
.color(Color::RED);
/*let (x_offset, y_offset) = (1, 10);
ctx.print_color( ctx.print_color(
1 + x_offset, 1 + x_offset,
1 + y_offset, 1 + y_offset,
@ -46,19 +94,5 @@ pub fn show_cheat_menu(_gs: &mut State, ctx: &mut BTerm) -> CheatMenuResult {
y += 1; y += 1;
// Godmode // Godmode
ctx.set(x_offset + 2, y, RGB::named(YELLOW), RGB::named(BLACK), to_cp437('g')); ctx.set(x_offset + 2, y, RGB::named(YELLOW), RGB::named(BLACK), to_cp437('g'));
ctx.print(x_offset + 4, y, "GOD MODE"); ctx.print(x_offset + 4, y, "GOD MODE");*/
// Match keys
match ctx.key {
None => CheatMenuResult::NoResponse,
Some(key) =>
match key {
VirtualKeyCode::A => CheatMenuResult::Ascend,
VirtualKeyCode::D => CheatMenuResult::Descend,
VirtualKeyCode::H => CheatMenuResult::Heal,
VirtualKeyCode::M => CheatMenuResult::MagicMap,
VirtualKeyCode::G => CheatMenuResult::GodMode,
VirtualKeyCode::Escape => CheatMenuResult::Cancel,
_ => CheatMenuResult::NoResponse,
}
}
} }

View file

@ -32,11 +32,11 @@ use super::{
Skills, Skills,
Viewshed, Viewshed,
BUC, BUC,
data::ids::get_local_col, consts::ids::get_local_col,
}; };
use crate::data::prelude::*; use crate::consts::prelude::*;
use crate::data::entity::CARRY_CAPACITY_PER_STRENGTH; use crate::consts::entity::CARRY_CAPACITY_PER_STRENGTH;
use crate::data::visuals::{ use crate::consts::visuals::{
TARGETING_LINE_COL, TARGETING_LINE_COL,
TARGETING_CURSOR_COL, TARGETING_CURSOR_COL,
TARGETING_AOE_COL, TARGETING_AOE_COL,
@ -57,7 +57,7 @@ mod identify_menu;
pub use identify_menu::*; pub use identify_menu::*;
mod tooltip; mod tooltip;
pub use cheat_menu::*; pub use cheat_menu::*;
use crate::data::events::*; use crate::consts::events::*;
mod farlook; mod farlook;
pub use farlook::*; pub use farlook::*;

View file

@ -11,8 +11,8 @@ use super::{
RGB, RGB,
}; };
use crate::TileType; use crate::TileType;
use crate::data::ids::*; use crate::consts::ids::*;
use crate::data::prelude::*; use crate::consts::prelude::*;
use bracket_lib::prelude::*; use bracket_lib::prelude::*;
use specs::prelude::*; use specs::prelude::*;

View file

@ -14,7 +14,7 @@ use crate::{
WantsToPickupItem, WantsToPickupItem,
}; };
use specs::prelude::*; use specs::prelude::*;
use crate::data::messages; use crate::consts::messages;
use bracket_lib::prelude::*; use bracket_lib::prelude::*;
pub struct ItemCollectionSystem {} pub struct ItemCollectionSystem {}

View file

@ -14,7 +14,7 @@ use crate::{
WantsToDropItem, WantsToDropItem,
}; };
use specs::prelude::*; use specs::prelude::*;
use crate::data::messages; use crate::consts::messages;
use bracket_lib::prelude::*; use bracket_lib::prelude::*;
pub struct ItemDropSystem {} pub struct ItemDropSystem {}

View file

@ -16,7 +16,7 @@ use crate::{
BUC, BUC,
}; };
use specs::prelude::*; use specs::prelude::*;
use crate::data::messages; use crate::consts::messages;
use bracket_lib::prelude::*; use bracket_lib::prelude::*;
pub struct ItemEquipSystem {} pub struct ItemEquipSystem {}

View file

@ -9,7 +9,7 @@ use crate::{
Player, Player,
}; };
use specs::prelude::*; use specs::prelude::*;
use crate::data::events::*; use crate::consts::events::*;
use crate::gamelog; use crate::gamelog;
pub struct ItemIdentificationSystem {} pub struct ItemIdentificationSystem {}

View file

@ -13,7 +13,7 @@ use crate::{
}; };
use bracket_lib::prelude::*; use bracket_lib::prelude::*;
use specs::prelude::*; use specs::prelude::*;
use crate::data::messages; use crate::consts::messages;
pub struct ItemRemoveSystem {} pub struct ItemRemoveSystem {}

View file

@ -26,7 +26,7 @@ pub mod trigger_system;
pub mod inventory; pub mod inventory;
pub mod particle_system; pub mod particle_system;
pub mod ai; pub mod ai;
pub mod data; pub mod consts;
pub mod config; pub mod config;
pub mod effects; pub mod effects;
pub mod gamesystem; pub mod gamesystem;

View file

@ -6,10 +6,7 @@ use specs::prelude::*;
use specs::saveload::{ SimpleMarker, SimpleMarkerAllocator }; use specs::saveload::{ SimpleMarker, SimpleMarkerAllocator };
use bracket_lib::prelude::*; use bracket_lib::prelude::*;
use std::collections::HashMap; use std::collections::HashMap;
use crate::consts::{ DISPLAYHEIGHT, DISPLAYWIDTH, TILESIZE };
const TILESIZE: f32 = 16.0;
const DISPLAYWIDTH: u32 = 100;
const DISPLAYHEIGHT: u32 = 56;
#[notan_main] #[notan_main]
fn main() -> Result<(), String> { fn main() -> Result<(), String> {
@ -144,7 +141,7 @@ fn setup(gfx: &mut Graphics) -> State {
gs.ecs.insert(rex_assets::RexAssets::new()); gs.ecs.insert(rex_assets::RexAssets::new());
gamelog::setup_log(); gamelog::setup_log();
gamelog::record_event(data::events::EVENT::Level(1)); gamelog::record_event(consts::events::EVENT::Level(1));
gs.generate_world_map(1, TileType::Floor); gs.generate_world_map(1, TileType::Floor);
gs gs
@ -379,7 +376,7 @@ fn draw_spritebox(panel: BoxDraw, draw: &mut Draw, atlas: &HashMap<String, Textu
); );
} }
use crate::data::visuals::{ VIEWPORT_H, VIEWPORT_W }; use crate::consts::visuals::{ VIEWPORT_H, VIEWPORT_W };
fn draw_bg(ecs: &World, draw: &mut Draw, atlas: &HashMap<String, Texture>) { fn draw_bg(ecs: &World, draw: &mut Draw, atlas: &HashMap<String, Texture>) {
let offset = crate::camera::get_offset(); let offset = crate::camera::get_offset();
let log = BoxDraw { let log = BoxDraw {
@ -451,6 +448,9 @@ fn draw(app: &mut App, gfx: &mut Graphics, gs: &mut State) {
draw_farlook(x, y, &mut draw, &gs.atlas); draw_farlook(x, y, &mut draw, &gs.atlas);
//draw_tooltips(&gs.ecs, ctx, Some((x, y))); TODO: Put this in draw loop //draw_tooltips(&gs.ecs, ctx, Some((x, y))); TODO: Put this in draw loop
} }
RunState::ShowCheatMenu => {
crate::gui::draw_cheat_menu(&mut draw, &gs.atlas, &gs.font);
}
_ => {} _ => {}
} }
// Render batch // Render batch

View file

@ -4,7 +4,7 @@ use bracket_lib::prelude::*;
use serde::{ Deserialize, Serialize }; use serde::{ Deserialize, Serialize };
use specs::prelude::*; use specs::prelude::*;
use std::collections::{ HashMap, HashSet }; use std::collections::{ HashMap, HashSet };
use crate::data::events::*; use crate::consts::events::*;
#[derive(Default, Serialize, Deserialize, Clone)] #[derive(Default, Serialize, Deserialize, Clone)]
pub struct MasterDungeonMap { pub struct MasterDungeonMap {

View file

@ -10,7 +10,7 @@ use crate::{
}; };
use specs::prelude::*; use specs::prelude::*;
use bracket_lib::prelude::*; use bracket_lib::prelude::*;
use crate::data::events::*; use crate::consts::events::*;
const TRY_SPAWN_CHANCE: i32 = 70; const TRY_SPAWN_CHANCE: i32 = 70;
const FEATURE_MESSAGE_CHANCE: i32 = 110; const FEATURE_MESSAGE_CHANCE: i32 = 110;

View file

@ -16,7 +16,7 @@ pub use interval_spawning_system::{ maybe_map_message, try_spawn_interval };
pub mod dungeon; pub mod dungeon;
pub use dungeon::{ level_transition, MasterDungeonMap }; pub use dungeon::{ level_transition, MasterDungeonMap };
pub mod themes; pub mod themes;
use super::data::visuals::{ use super::consts::visuals::{
BRIGHTEN_FG_COLOUR_BY, BRIGHTEN_FG_COLOUR_BY,
GLOBAL_OFFSET_MIN_CLAMP, GLOBAL_OFFSET_MIN_CLAMP,
GLOBAL_OFFSET_MAX_CLAMP, GLOBAL_OFFSET_MAX_CLAMP,

View file

@ -1,7 +1,7 @@
use super::{ Map, Point, TileType }; use super::{ Map, Point, TileType };
use crate::data::visuals::*; use crate::consts::visuals::*;
use crate::config::CONFIG; use crate::config::CONFIG;
use crate::data::ids::*; use crate::consts::ids::*;
use bracket_lib::prelude::*; use bracket_lib::prelude::*;
use std::ops::{ Add, Mul }; use std::ops::{ Add, Mul };
use notan::prelude::*; use notan::prelude::*;
@ -361,7 +361,7 @@ fn darken_by_distance(pos: Point, other_pos: Point) -> f32 {
let distance = DistanceAlg::Pythagoras.distance2d(pos, other_pos) as f32; // Get distance in tiles. let distance = DistanceAlg::Pythagoras.distance2d(pos, other_pos) as f32; // Get distance in tiles.
let interp_factor = let interp_factor =
(distance - START_DARKEN_AT_N_TILES) / (distance - START_DARKEN_AT_N_TILES) /
((crate::data::entity::DEFAULT_VIEWSHED_STANDARD as f32) - START_DARKEN_AT_N_TILES); ((crate::consts::entity::DEFAULT_VIEWSHED_STANDARD as f32) - START_DARKEN_AT_N_TILES);
let interp_factor = interp_factor.max(0.0).min(1.0); // Clamp [0-1] let interp_factor = interp_factor.max(0.0).min(1.0); // Clamp [0-1]
let result = let result =
1.0 - 1.0 -

View file

@ -1,5 +1,5 @@
use serde::{ Deserialize, Serialize }; use serde::{ Deserialize, Serialize };
use crate::data::sprites::*; use crate::consts::sprites::*;
#[derive(PartialEq, Eq, Hash, Copy, Clone, Serialize, Deserialize, Debug)] #[derive(PartialEq, Eq, Hash, Copy, Clone, Serialize, Deserialize, Debug)]
pub enum TileType { pub enum TileType {

View file

@ -12,7 +12,7 @@ use super::{
Foliage, Foliage,
}; };
use bracket_lib::prelude::*; use bracket_lib::prelude::*;
use crate::data::names::*; use crate::consts::names::*;
pub fn forest_builder( pub fn forest_builder(
new_id: i32, new_id: i32,

View file

@ -38,8 +38,8 @@ use common::*;
use specs::prelude::*; use specs::prelude::*;
use voronoi_spawning::VoronoiSpawning; use voronoi_spawning::VoronoiSpawning;
use super::config::CONFIG; use super::config::CONFIG;
use super::data::ids::*; use super::consts::ids::*;
use super::data::names::*; use super::consts::names::*;
//use wfc::WaveFunctionCollapseBuilder; //use wfc::WaveFunctionCollapseBuilder;
mod room_exploder; mod room_exploder;
use room_exploder::RoomExploder; use room_exploder::RoomExploder;

View file

@ -4,7 +4,7 @@ pub mod prefab_levels;
pub mod prefab_sections; pub mod prefab_sections;
pub mod prefab_vaults; pub mod prefab_vaults;
use std::collections::HashSet; use std::collections::HashSet;
use crate::data::ids::*; use crate::consts::ids::*;
#[derive(PartialEq, Copy, Clone)] #[derive(PartialEq, Copy, Clone)]
#[allow(dead_code)] #[allow(dead_code)]

View file

@ -1,6 +1,6 @@
use super::{ BuilderMap, MetaMapBuilder, Rect, TileType }; use super::{ BuilderMap, MetaMapBuilder, Rect, TileType };
use crate::tile_walkable; use crate::tile_walkable;
use crate::data::messages::{ use crate::consts::messages::{
FEATURE_TREANTS, FEATURE_TREANTS,
FEATURE_BARRACKS_GOBLIN, FEATURE_BARRACKS_GOBLIN,
FEATURE_BARRACKS_KOBOLD, FEATURE_BARRACKS_KOBOLD,

View file

@ -1,6 +1,6 @@
use super::{ BuilderChain, BuilderMap, InitialMapBuilder, Position, TileType, FillEdges }; use super::{ BuilderChain, BuilderMap, InitialMapBuilder, Position, TileType, FillEdges };
use std::collections::HashSet; use std::collections::HashSet;
use crate::data::names::*; use crate::consts::names::*;
use bracket_lib::prelude::*; use bracket_lib::prelude::*;
pub fn town_builder( pub fn town_builder(

View file

@ -9,7 +9,7 @@ use specs::prelude::*;
use bracket_lib::prelude::*; use bracket_lib::prelude::*;
use to_char; use to_char;
use std::collections::HashMap; use std::collections::HashMap;
use crate::data::events::*; use crate::consts::events::*;
#[cfg(target_arch = "wasm32")] #[cfg(target_arch = "wasm32")]
pub fn create_morgue_file(ecs: &World) { pub fn create_morgue_file(ecs: &World) {

View file

@ -1,7 +1,7 @@
use super::{ ParticleLifetime, Position, Renderable, BTerm }; use super::{ ParticleLifetime, Position, Renderable, BTerm };
use bracket_lib::prelude::*; use bracket_lib::prelude::*;
use specs::prelude::*; use specs::prelude::*;
use crate::data::visuals::{ DEFAULT_PARTICLE_LIFETIME, SHORT_PARTICLE_LIFETIME }; use crate::consts::visuals::{ DEFAULT_PARTICLE_LIFETIME, SHORT_PARTICLE_LIFETIME };
/// Runs each tick, deleting particles who are past their expiry. /// Runs each tick, deleting particles who are past their expiry.
// Should make an addition to this to also spawn delayed particles, // Should make an addition to this to also spawn delayed particles,

View file

@ -37,8 +37,8 @@ use super::{
use bracket_lib::prelude::*; use bracket_lib::prelude::*;
use specs::prelude::*; use specs::prelude::*;
use std::cmp::{ max, min }; use std::cmp::{ max, min };
use crate::data::events::*; use crate::consts::events::*;
use crate::data::ids::*; use crate::consts::ids::*;
use crate::gui::with_article; use crate::gui::with_article;
use notan::prelude::*; use notan::prelude::*;
use std::collections::HashMap; use std::collections::HashMap;

View file

@ -4,8 +4,8 @@ use crate::gamesystem::*;
use crate::gui::Ancestry; use crate::gui::Ancestry;
use crate::random_table::RandomTable; use crate::random_table::RandomTable;
use crate::config::CONFIG; use crate::config::CONFIG;
use crate::data::visuals::BLOODSTAIN_COLOUR; use crate::consts::visuals::BLOODSTAIN_COLOUR;
use crate::data::entity::DEFAULT_VIEWSHED_STANDARD; use crate::consts::entity::DEFAULT_VIEWSHED_STANDARD;
use bracket_lib::prelude::*; use bracket_lib::prelude::*;
use specs::prelude::*; use specs::prelude::*;
use specs::saveload::{ MarkedBuilder, SimpleMarker }; use specs::saveload::{ MarkedBuilder, SimpleMarker };

View file

@ -28,8 +28,8 @@ use super::{
HasDamageModifiers, HasDamageModifiers,
Intrinsics, Intrinsics,
}; };
use crate::data::entity; use crate::consts::entity;
use crate::data::visuals::BLOODSTAIN_COLOUR; use crate::consts::visuals::BLOODSTAIN_COLOUR;
use crate::gamesystem::*; use crate::gamesystem::*;
use bracket_lib::prelude::*; use bracket_lib::prelude::*;
use specs::prelude::*; use specs::prelude::*;

View file

@ -13,8 +13,8 @@ use crate::visibility_system::VisibilitySystem;
use crate::ai; use crate::ai;
use crate::gamelog; use crate::gamelog;
use crate::spawner; use crate::spawner;
use crate::data::ids::*; use crate::consts::ids::*;
use crate::data::events::*; use crate::consts::events::*;
use crate::components::*; use crate::components::*;
use crate::player::*; use crate::player::*;
use crate::gui; use crate::gui;
@ -230,7 +230,49 @@ impl State {
} }
} }
} }
// RunState::ShowCheatMenu RunState::ShowCheatMenu => {
let result = gui::show_cheat_menu(self, ctx);
match result {
gui::CheatMenuResult::Cancel => {
new_runstate = RunState::AwaitingInput;
}
gui::CheatMenuResult::NoResponse => {}
gui::CheatMenuResult::Ascend => {
let id = self.ecs.fetch::<Map>().id - 1;
self.goto_id(id, TileType::DownStair);
self.mapgen_next_state = Some(RunState::PreRun);
new_runstate = RunState::MapGeneration;
}
gui::CheatMenuResult::Descend => {
let id = self.ecs.fetch::<Map>().id + 1;
self.goto_id(id, TileType::UpStair);
self.mapgen_next_state = Some(RunState::PreRun);
new_runstate = RunState::MapGeneration;
}
gui::CheatMenuResult::Heal => {
let player = self.ecs.fetch::<Entity>();
let mut pools = self.ecs.write_storage::<Pools>();
let mut player_pools = pools.get_mut(*player).unwrap();
player_pools.hit_points.current = player_pools.hit_points.max;
new_runstate = RunState::AwaitingInput;
}
gui::CheatMenuResult::MagicMap => {
let mut map = self.ecs.fetch_mut::<Map>();
for v in map.revealed_tiles.iter_mut() {
*v = true;
}
new_runstate = RunState::AwaitingInput;
}
gui::CheatMenuResult::GodMode => {
let player = self.ecs.fetch::<Entity>();
let mut pools = self.ecs.write_storage::<Pools>();
let mut player_pools = pools.get_mut(*player).unwrap();
gamelog::Logger::new().append("TOGGLED GOD MODE!").log();
player_pools.god = !player_pools.god;
new_runstate = RunState::AwaitingInput;
}
}
}
// RunState::ShowInventory // RunState::ShowInventory
// RunState::ShowDropItem // RunState::ShowDropItem
// RunState::ShowRemoveItem // RunState::ShowRemoveItem
@ -248,7 +290,7 @@ impl State {
} }
//RunState::GameOver //RunState::GameOver
RunState::GoToLevel(id, dest_tile) => { RunState::GoToLevel(id, dest_tile) => {
self.goto_id(id, dest_tile); // TODO: This causes issues being before swapping runstate? self.goto_id(id, dest_tile);
self.mapgen_next_state = Some(RunState::PreRun); self.mapgen_next_state = Some(RunState::PreRun);
new_runstate = RunState::MapGeneration; new_runstate = RunState::MapGeneration;
} }
@ -414,7 +456,7 @@ impl State {
} }
} }
RunState::ShowCheatMenu => { RunState::ShowCheatMenu => {
let result = gui::show_cheat_menu(self, ctx); let result = gui::CheatMenuResult::Cancel; //gui::show_cheat_menu(self, ctx);
match result { match result {
gui::CheatMenuResult::Cancel => { gui::CheatMenuResult::Cancel => {
new_runstate = RunState::AwaitingInput; new_runstate = RunState::AwaitingInput;

View file

@ -1,6 +1,6 @@
// tests/gamelog_test.rs // tests/gamelog_test.rs
use rust_rl::gamelog::*; use rust_rl::gamelog::*;
use rust_rl::data::events::*; use rust_rl::consts::events::*;
use lazy_static::lazy_static; use lazy_static::lazy_static;
use std::sync::Mutex; use std::sync::Mutex;