1
0
Fork 0
roguelike-game/src/systems/inventory_system.rs

42 lines
1.2 KiB
Rust
Raw Normal View History

mod collection_system;
mod drop_system;
mod equip_use;
mod identification_system;
mod remove_system;
mod use_system;
2021-12-24 10:38:44 -05:00
use ::specs::prelude::*;
pub use collection_system::ItemCollectionSystem;
pub use drop_system::ItemDropSystem;
pub use equip_use::ItemEquipOnUse;
pub use identification_system::ItemIdentificationSystem;
pub use remove_system::ItemRemoveSystem;
2022-01-25 11:15:32 -05:00
pub use use_system::{ItemUseSystem, SpellUseSystem};
2021-11-03 15:11:19 -04:00
use crate::components::{MagicItem, Name, ObfuscatedName};
use crate::MasterDungeonMap;
2021-12-10 20:16:48 -05:00
fn obfuscate_name(
item: Entity,
names: &ReadStorage<Name>,
magic_items: &ReadStorage<MagicItem>,
obfuscated_names: &ReadStorage<ObfuscatedName>,
dm: &MasterDungeonMap,
) -> String {
if let Some(name) = names.get(item) {
if magic_items.get(item).is_some() {
if dm.identified_items.contains(&name.name) {
name.name.clone()
} else if let Some(obfuscated) = obfuscated_names.get(item) {
obfuscated.name.clone()
} else {
"Unidentified magic item".to_string()
}
} else {
name.name.clone()
}
} else {
"Nameless item (bug)".to_string()
}
}