2022-01-20 09:23:13 -05:00
|
|
|
mod collection_system;
|
|
|
|
mod drop_system;
|
|
|
|
mod identification_system;
|
|
|
|
mod remove_system;
|
2022-01-20 14:04:47 -05:00
|
|
|
mod use_equip;
|
2022-01-20 09:23:13 -05:00
|
|
|
mod use_system;
|
2022-01-19 14:47:58 -05:00
|
|
|
|
2021-12-24 10:38:44 -05:00
|
|
|
use ::specs::prelude::*;
|
2022-01-20 09:23:13 -05:00
|
|
|
pub use collection_system::ItemCollectionSystem;
|
|
|
|
pub use drop_system::ItemDropSystem;
|
|
|
|
pub use identification_system::ItemIdentificationSystem;
|
|
|
|
pub use remove_system::ItemRemoveSystem;
|
2022-01-20 14:04:47 -05:00
|
|
|
pub use use_equip::ItemEquipOnUse;
|
2022-01-25 11:15:32 -05:00
|
|
|
pub use use_system::{ItemUseSystem, SpellUseSystem};
|
2021-11-03 15:11:19 -04:00
|
|
|
|
2022-01-20 09:23:13 -05:00
|
|
|
use crate::components::{MagicItem, Name, ObfuscatedName};
|
|
|
|
use crate::MasterDungeonMap;
|
2021-12-10 20:16:48 -05:00
|
|
|
|
2022-01-19 14:35:13 -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()
|
|
|
|
}
|
|
|
|
}
|