34 lines
924 B
Rust
34 lines
924 B
Rust
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<ScavtableType, Vec<Scavinfo>> {
|
|
static MAP: OnceCell<BTreeMap<ScavtableType, Vec<Scavinfo>>> = OnceCell::new();
|
|
MAP.get_or_init(|| {
|
|
vec![
|
|
(ScavtableType::Nothing, vec![]),
|
|
(ScavtableType::CityStreet, street_scavtable()),
|
|
]
|
|
.into_iter()
|
|
.collect()
|
|
})
|
|
}
|