data to consts, cheatmenu
This commit is contained in:
parent
a2fb893f49
commit
0d4c0c9558
47 changed files with 178 additions and 87 deletions
|
|
@ -1,7 +1,7 @@
|
|||
use crate::{ gamelog, Attributes, Burden, EquipmentChanged, Equipped, InBackpack, Item, Pools };
|
||||
use specs::prelude::*;
|
||||
use std::collections::HashMap;
|
||||
use crate::data::entity::CARRY_CAPACITY_PER_STRENGTH;
|
||||
use crate::consts::entity::CARRY_CAPACITY_PER_STRENGTH;
|
||||
|
||||
pub struct EncumbranceSystem {}
|
||||
|
||||
|
|
@ -20,7 +20,17 @@ impl<'a> System<'a> for EncumbranceSystem {
|
|||
);
|
||||
|
||||
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() {
|
||||
return;
|
||||
}
|
||||
|
|
@ -50,7 +60,8 @@ impl<'a> System<'a> for EncumbranceSystem {
|
|||
pool.weight = *weight;
|
||||
if let Some(attr) = attributes.get(*entity) {
|
||||
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 {
|
||||
// Overloaded
|
||||
burdened
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
use crate::data::entity::*;
|
||||
use crate::consts::entity::*;
|
||||
use crate::{
|
||||
Burden,
|
||||
BurdenLevel,
|
||||
|
|
@ -15,7 +15,7 @@ use crate::{
|
|||
use bracket_lib::prelude::*;
|
||||
use specs::prelude::*;
|
||||
use crate::config::CONFIG;
|
||||
use crate::data::events::*;
|
||||
use crate::consts::events::*;
|
||||
|
||||
pub struct EnergySystem {}
|
||||
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ use crate::{
|
|||
Intrinsics,
|
||||
};
|
||||
use specs::prelude::*;
|
||||
use crate::data::events::*;
|
||||
use crate::consts::events::*;
|
||||
|
||||
pub struct RegenSystem {}
|
||||
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ use crate::{
|
|||
};
|
||||
use bracket_lib::prelude::*;
|
||||
use specs::prelude::*;
|
||||
use crate::data::events::*;
|
||||
use crate::consts::events::*;
|
||||
|
||||
pub struct TurnStatusSystem {}
|
||||
|
||||
|
|
|
|||
|
|
@ -2,8 +2,8 @@ use super::{ Hidden, Map, Mind, Position, Prop, Renderable, Pools };
|
|||
use bracket_lib::prelude::*;
|
||||
use specs::prelude::*;
|
||||
use std::ops::Mul;
|
||||
use super::data::visuals::{ VIEWPORT_W, VIEWPORT_H };
|
||||
use super::data::prelude::*;
|
||||
use super::consts::visuals::{ VIEWPORT_W, VIEWPORT_H };
|
||||
use super::consts::prelude::*;
|
||||
|
||||
const SHOW_BOUNDARIES: bool = false;
|
||||
|
||||
|
|
@ -147,7 +147,7 @@ pub fn render_camera(ecs: &World, ctx: &mut BTerm) {
|
|||
if map.visible_tiles[idx] {
|
||||
draw = true;
|
||||
} 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.
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -10,3 +10,7 @@ pub mod sprites;
|
|||
pub mod prelude {
|
||||
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;
|
||||
|
|
@ -14,7 +14,7 @@ use super::{
|
|||
};
|
||||
use bracket_lib::prelude::*;
|
||||
use specs::prelude::*;
|
||||
use crate::data::events;
|
||||
use crate::consts::events;
|
||||
|
||||
pub fn delete_the_dead(ecs: &mut World) {
|
||||
let mut dead: Vec<Entity> = Vec::new();
|
||||
|
|
|
|||
|
|
@ -17,10 +17,10 @@ use crate::{
|
|||
HasDamageModifiers,
|
||||
};
|
||||
use crate::gui::with_article;
|
||||
use crate::data::visuals::{ DEFAULT_PARTICLE_LIFETIME, LONG_PARTICLE_LIFETIME };
|
||||
use crate::data::messages::LEVELUP_PLAYER;
|
||||
use crate::data::events::*;
|
||||
use crate::data::messages::*;
|
||||
use crate::consts::visuals::{ DEFAULT_PARTICLE_LIFETIME, LONG_PARTICLE_LIFETIME };
|
||||
use crate::consts::messages::LEVELUP_PLAYER;
|
||||
use crate::consts::events::*;
|
||||
use crate::consts::messages::*;
|
||||
use bracket_lib::prelude::*;
|
||||
use specs::prelude::*;
|
||||
|
||||
|
|
|
|||
|
|
@ -34,7 +34,7 @@ use crate::{
|
|||
Position,
|
||||
Viewshed,
|
||||
};
|
||||
use crate::data::messages::*;
|
||||
use crate::consts::messages::*;
|
||||
use bracket_lib::prelude::*;
|
||||
use specs::prelude::*;
|
||||
pub fn item_trigger(source: Option<Entity>, item: Entity, target: &Targets, ecs: &mut World) {
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
use std::collections::{ HashSet, HashMap };
|
||||
use std::sync::Mutex;
|
||||
use crate::data::events::EVENT;
|
||||
use crate::data::names::*;
|
||||
use crate::consts::events::EVENT;
|
||||
use crate::consts::names::*;
|
||||
|
||||
lazy_static! {
|
||||
/// A count of each event that has happened over the run. i.e. "turns", "descended", "ascended"
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
use super::{ Skill, Skills };
|
||||
use crate::gui::{ Ancestry, Class };
|
||||
use crate::data::entity;
|
||||
use crate::data::char_create::*;
|
||||
use crate::consts::entity;
|
||||
use crate::consts::char_create::*;
|
||||
use bracket_lib::prelude::*;
|
||||
use std::cmp::max;
|
||||
|
||||
|
|
|
|||
|
|
@ -8,8 +8,8 @@ use super::{
|
|||
RunState,
|
||||
State,
|
||||
};
|
||||
use crate::data::entity;
|
||||
use crate::data::char_create::*;
|
||||
use crate::consts::entity;
|
||||
use crate::consts::char_create::*;
|
||||
use crate::{
|
||||
raws,
|
||||
Attribute,
|
||||
|
|
@ -28,7 +28,7 @@ use bracket_lib::prelude::*;
|
|||
use serde::{ Deserialize, Serialize };
|
||||
use specs::prelude::*;
|
||||
use std::collections::HashMap;
|
||||
use crate::data::prelude::*;
|
||||
use crate::consts::prelude::*;
|
||||
|
||||
#[derive(Serialize, Deserialize, Copy, Clone, PartialEq)]
|
||||
pub enum Ancestry {
|
||||
|
|
|
|||
|
|
@ -1,5 +1,9 @@
|
|||
use super::State;
|
||||
use super::{ State };
|
||||
use bracket_lib::prelude::*;
|
||||
use notan::prelude::*;
|
||||
use notan::draw::DrawTextSection;
|
||||
use std::collections::HashMap;
|
||||
use crate::consts::TILESIZE;
|
||||
|
||||
#[derive(PartialEq, Copy, Clone)]
|
||||
pub enum CheatMenuResult {
|
||||
|
|
@ -12,8 +16,52 @@ pub enum CheatMenuResult {
|
|||
GodMode,
|
||||
}
|
||||
|
||||
pub fn show_cheat_menu(_gs: &mut State, ctx: &mut BTerm) -> CheatMenuResult {
|
||||
let (x_offset, y_offset) = (1, 10);
|
||||
pub fn show_cheat_menu(_gs: &mut State, ctx: &mut App) -> CheatMenuResult {
|
||||
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: ¬an::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(
|
||||
1 + x_offset,
|
||||
1 + y_offset,
|
||||
|
|
@ -46,19 +94,5 @@ pub fn show_cheat_menu(_gs: &mut State, ctx: &mut BTerm) -> CheatMenuResult {
|
|||
y += 1;
|
||||
// Godmode
|
||||
ctx.set(x_offset + 2, y, RGB::named(YELLOW), RGB::named(BLACK), to_cp437('g'));
|
||||
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,
|
||||
}
|
||||
}
|
||||
ctx.print(x_offset + 4, y, "GOD MODE");*/
|
||||
}
|
||||
|
|
|
|||
|
|
@ -32,11 +32,11 @@ use super::{
|
|||
Skills,
|
||||
Viewshed,
|
||||
BUC,
|
||||
data::ids::get_local_col,
|
||||
consts::ids::get_local_col,
|
||||
};
|
||||
use crate::data::prelude::*;
|
||||
use crate::data::entity::CARRY_CAPACITY_PER_STRENGTH;
|
||||
use crate::data::visuals::{
|
||||
use crate::consts::prelude::*;
|
||||
use crate::consts::entity::CARRY_CAPACITY_PER_STRENGTH;
|
||||
use crate::consts::visuals::{
|
||||
TARGETING_LINE_COL,
|
||||
TARGETING_CURSOR_COL,
|
||||
TARGETING_AOE_COL,
|
||||
|
|
@ -57,7 +57,7 @@ mod identify_menu;
|
|||
pub use identify_menu::*;
|
||||
mod tooltip;
|
||||
pub use cheat_menu::*;
|
||||
use crate::data::events::*;
|
||||
use crate::consts::events::*;
|
||||
mod farlook;
|
||||
pub use farlook::*;
|
||||
|
||||
|
|
|
|||
|
|
@ -11,8 +11,8 @@ use super::{
|
|||
RGB,
|
||||
};
|
||||
use crate::TileType;
|
||||
use crate::data::ids::*;
|
||||
use crate::data::prelude::*;
|
||||
use crate::consts::ids::*;
|
||||
use crate::consts::prelude::*;
|
||||
use bracket_lib::prelude::*;
|
||||
use specs::prelude::*;
|
||||
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ use crate::{
|
|||
WantsToPickupItem,
|
||||
};
|
||||
use specs::prelude::*;
|
||||
use crate::data::messages;
|
||||
use crate::consts::messages;
|
||||
use bracket_lib::prelude::*;
|
||||
|
||||
pub struct ItemCollectionSystem {}
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ use crate::{
|
|||
WantsToDropItem,
|
||||
};
|
||||
use specs::prelude::*;
|
||||
use crate::data::messages;
|
||||
use crate::consts::messages;
|
||||
use bracket_lib::prelude::*;
|
||||
|
||||
pub struct ItemDropSystem {}
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@ use crate::{
|
|||
BUC,
|
||||
};
|
||||
use specs::prelude::*;
|
||||
use crate::data::messages;
|
||||
use crate::consts::messages;
|
||||
use bracket_lib::prelude::*;
|
||||
|
||||
pub struct ItemEquipSystem {}
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ use crate::{
|
|||
Player,
|
||||
};
|
||||
use specs::prelude::*;
|
||||
use crate::data::events::*;
|
||||
use crate::consts::events::*;
|
||||
use crate::gamelog;
|
||||
|
||||
pub struct ItemIdentificationSystem {}
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ use crate::{
|
|||
};
|
||||
use bracket_lib::prelude::*;
|
||||
use specs::prelude::*;
|
||||
use crate::data::messages;
|
||||
use crate::consts::messages;
|
||||
|
||||
pub struct ItemRemoveSystem {}
|
||||
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@ pub mod trigger_system;
|
|||
pub mod inventory;
|
||||
pub mod particle_system;
|
||||
pub mod ai;
|
||||
pub mod data;
|
||||
pub mod consts;
|
||||
pub mod config;
|
||||
pub mod effects;
|
||||
pub mod gamesystem;
|
||||
|
|
|
|||
12
src/main.rs
12
src/main.rs
|
|
@ -6,10 +6,7 @@ use specs::prelude::*;
|
|||
use specs::saveload::{ SimpleMarker, SimpleMarkerAllocator };
|
||||
use bracket_lib::prelude::*;
|
||||
use std::collections::HashMap;
|
||||
|
||||
const TILESIZE: f32 = 16.0;
|
||||
const DISPLAYWIDTH: u32 = 100;
|
||||
const DISPLAYHEIGHT: u32 = 56;
|
||||
use crate::consts::{ DISPLAYHEIGHT, DISPLAYWIDTH, TILESIZE };
|
||||
|
||||
#[notan_main]
|
||||
fn main() -> Result<(), String> {
|
||||
|
|
@ -144,7 +141,7 @@ fn setup(gfx: &mut Graphics) -> State {
|
|||
gs.ecs.insert(rex_assets::RexAssets::new());
|
||||
|
||||
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
|
||||
|
|
@ -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>) {
|
||||
let offset = crate::camera::get_offset();
|
||||
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_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
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ use bracket_lib::prelude::*;
|
|||
use serde::{ Deserialize, Serialize };
|
||||
use specs::prelude::*;
|
||||
use std::collections::{ HashMap, HashSet };
|
||||
use crate::data::events::*;
|
||||
use crate::consts::events::*;
|
||||
|
||||
#[derive(Default, Serialize, Deserialize, Clone)]
|
||||
pub struct MasterDungeonMap {
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ use crate::{
|
|||
};
|
||||
use specs::prelude::*;
|
||||
use bracket_lib::prelude::*;
|
||||
use crate::data::events::*;
|
||||
use crate::consts::events::*;
|
||||
|
||||
const TRY_SPAWN_CHANCE: i32 = 70;
|
||||
const FEATURE_MESSAGE_CHANCE: i32 = 110;
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@ pub use interval_spawning_system::{ maybe_map_message, try_spawn_interval };
|
|||
pub mod dungeon;
|
||||
pub use dungeon::{ level_transition, MasterDungeonMap };
|
||||
pub mod themes;
|
||||
use super::data::visuals::{
|
||||
use super::consts::visuals::{
|
||||
BRIGHTEN_FG_COLOUR_BY,
|
||||
GLOBAL_OFFSET_MIN_CLAMP,
|
||||
GLOBAL_OFFSET_MAX_CLAMP,
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
use super::{ Map, Point, TileType };
|
||||
use crate::data::visuals::*;
|
||||
use crate::consts::visuals::*;
|
||||
use crate::config::CONFIG;
|
||||
use crate::data::ids::*;
|
||||
use crate::consts::ids::*;
|
||||
use bracket_lib::prelude::*;
|
||||
use std::ops::{ Add, Mul };
|
||||
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 interp_factor =
|
||||
(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 result =
|
||||
1.0 -
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
use serde::{ Deserialize, Serialize };
|
||||
use crate::data::sprites::*;
|
||||
use crate::consts::sprites::*;
|
||||
|
||||
#[derive(PartialEq, Eq, Hash, Copy, Clone, Serialize, Deserialize, Debug)]
|
||||
pub enum TileType {
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ use super::{
|
|||
Foliage,
|
||||
};
|
||||
use bracket_lib::prelude::*;
|
||||
use crate::data::names::*;
|
||||
use crate::consts::names::*;
|
||||
|
||||
pub fn forest_builder(
|
||||
new_id: i32,
|
||||
|
|
|
|||
|
|
@ -38,8 +38,8 @@ use common::*;
|
|||
use specs::prelude::*;
|
||||
use voronoi_spawning::VoronoiSpawning;
|
||||
use super::config::CONFIG;
|
||||
use super::data::ids::*;
|
||||
use super::data::names::*;
|
||||
use super::consts::ids::*;
|
||||
use super::consts::names::*;
|
||||
//use wfc::WaveFunctionCollapseBuilder;
|
||||
mod room_exploder;
|
||||
use room_exploder::RoomExploder;
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ pub mod prefab_levels;
|
|||
pub mod prefab_sections;
|
||||
pub mod prefab_vaults;
|
||||
use std::collections::HashSet;
|
||||
use crate::data::ids::*;
|
||||
use crate::consts::ids::*;
|
||||
|
||||
#[derive(PartialEq, Copy, Clone)]
|
||||
#[allow(dead_code)]
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
use super::{ BuilderMap, MetaMapBuilder, Rect, TileType };
|
||||
use crate::tile_walkable;
|
||||
use crate::data::messages::{
|
||||
use crate::consts::messages::{
|
||||
FEATURE_TREANTS,
|
||||
FEATURE_BARRACKS_GOBLIN,
|
||||
FEATURE_BARRACKS_KOBOLD,
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
use super::{ BuilderChain, BuilderMap, InitialMapBuilder, Position, TileType, FillEdges };
|
||||
use std::collections::HashSet;
|
||||
use crate::data::names::*;
|
||||
use crate::consts::names::*;
|
||||
use bracket_lib::prelude::*;
|
||||
|
||||
pub fn town_builder(
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ use specs::prelude::*;
|
|||
use bracket_lib::prelude::*;
|
||||
use to_char;
|
||||
use std::collections::HashMap;
|
||||
use crate::data::events::*;
|
||||
use crate::consts::events::*;
|
||||
|
||||
#[cfg(target_arch = "wasm32")]
|
||||
pub fn create_morgue_file(ecs: &World) {
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
use super::{ ParticleLifetime, Position, Renderable, BTerm };
|
||||
use bracket_lib::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.
|
||||
// Should make an addition to this to also spawn delayed particles,
|
||||
|
|
|
|||
|
|
@ -37,8 +37,8 @@ use super::{
|
|||
use bracket_lib::prelude::*;
|
||||
use specs::prelude::*;
|
||||
use std::cmp::{ max, min };
|
||||
use crate::data::events::*;
|
||||
use crate::data::ids::*;
|
||||
use crate::consts::events::*;
|
||||
use crate::consts::ids::*;
|
||||
use crate::gui::with_article;
|
||||
use notan::prelude::*;
|
||||
use std::collections::HashMap;
|
||||
|
|
|
|||
|
|
@ -4,8 +4,8 @@ use crate::gamesystem::*;
|
|||
use crate::gui::Ancestry;
|
||||
use crate::random_table::RandomTable;
|
||||
use crate::config::CONFIG;
|
||||
use crate::data::visuals::BLOODSTAIN_COLOUR;
|
||||
use crate::data::entity::DEFAULT_VIEWSHED_STANDARD;
|
||||
use crate::consts::visuals::BLOODSTAIN_COLOUR;
|
||||
use crate::consts::entity::DEFAULT_VIEWSHED_STANDARD;
|
||||
use bracket_lib::prelude::*;
|
||||
use specs::prelude::*;
|
||||
use specs::saveload::{ MarkedBuilder, SimpleMarker };
|
||||
|
|
|
|||
|
|
@ -28,8 +28,8 @@ use super::{
|
|||
HasDamageModifiers,
|
||||
Intrinsics,
|
||||
};
|
||||
use crate::data::entity;
|
||||
use crate::data::visuals::BLOODSTAIN_COLOUR;
|
||||
use crate::consts::entity;
|
||||
use crate::consts::visuals::BLOODSTAIN_COLOUR;
|
||||
use crate::gamesystem::*;
|
||||
use bracket_lib::prelude::*;
|
||||
use specs::prelude::*;
|
||||
|
|
|
|||
|
|
@ -13,8 +13,8 @@ use crate::visibility_system::VisibilitySystem;
|
|||
use crate::ai;
|
||||
use crate::gamelog;
|
||||
use crate::spawner;
|
||||
use crate::data::ids::*;
|
||||
use crate::data::events::*;
|
||||
use crate::consts::ids::*;
|
||||
use crate::consts::events::*;
|
||||
use crate::components::*;
|
||||
use crate::player::*;
|
||||
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::ShowDropItem
|
||||
// RunState::ShowRemoveItem
|
||||
|
|
@ -248,7 +290,7 @@ impl State {
|
|||
}
|
||||
//RunState::GameOver
|
||||
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);
|
||||
new_runstate = RunState::MapGeneration;
|
||||
}
|
||||
|
|
@ -414,7 +456,7 @@ impl State {
|
|||
}
|
||||
}
|
||||
RunState::ShowCheatMenu => {
|
||||
let result = gui::show_cheat_menu(self, ctx);
|
||||
let result = gui::CheatMenuResult::Cancel; //gui::show_cheat_menu(self, ctx);
|
||||
match result {
|
||||
gui::CheatMenuResult::Cancel => {
|
||||
new_runstate = RunState::AwaitingInput;
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
// tests/gamelog_test.rs
|
||||
use rust_rl::gamelog::*;
|
||||
use rust_rl::data::events::*;
|
||||
use rust_rl::consts::events::*;
|
||||
use lazy_static::lazy_static;
|
||||
use std::sync::Mutex;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue