1
0
Fork 0
roguelike-game/src/rng.rs

25 lines
646 B
Rust
Raw Normal View History

2022-02-10 11:54:57 -05:00
//! The random number generator, using a mutex to share the instance
2022-02-03 12:01:17 -05:00
use std::sync::Mutex;
use ::bracket_lib::prelude::*;
2022-02-10 11:54:57 -05:00
use ::lazy_static::lazy_static;
2022-02-03 12:01:17 -05:00
lazy_static! {
static ref RNG: Mutex<RandomNumberGenerator> = Mutex::new(RandomNumberGenerator::new());
}
#[allow(dead_code)]
2022-02-03 12:01:17 -05:00
pub fn reseed(seed: u64) {
*RNG.lock().unwrap() = RandomNumberGenerator::seeded(seed);
}
2022-02-10 11:54:57 -05:00
/// Rolls `n` dice, with `die_type` sides
2022-02-03 12:01:17 -05:00
pub fn roll_dice(n: i32, die_type: i32) -> i32 {
RNG.lock().unwrap().roll_dice(n, die_type)
}
2022-02-10 11:54:57 -05:00
/// Returns a number in the range given
2022-02-03 12:01:17 -05:00
pub fn range(min: i32, max: i32) -> i32 {
RNG.lock().unwrap().range(min, max)
}