use crate::models::item::Scavtype; use super::{possession_type::PossessionType, room::melbs::street_scavtable}; use std::collections::BTreeMap; use once_cell::sync::OnceCell; use serde::{Deserialize, Serialize}; pub struct Scavinfo { pub possession_type: PossessionType, pub p_present: f64, // probability it is there. pub difficulty_mean: f64, pub difficulty_stdev: f64, pub scavtype: Scavtype, } #[derive(Serialize, Deserialize, Clone, Debug, Ord, PartialOrd, Eq, PartialEq)] pub enum ScavtableType { Nothing, CityStreet, } pub fn scavtable_map() -> &'static BTreeMap> { static MAP: OnceCell>> = OnceCell::new(); MAP.get_or_init(|| { vec![ (ScavtableType::Nothing, vec![]), (ScavtableType::CityStreet, street_scavtable()), ] .into_iter() .collect() }) }