NotQuiteParadise2

Source code for nqp.core.rng

from __future__ import annotations

import logging
import random
import time
from typing import TYPE_CHECKING

from nqp.core.debug import Timer

if TYPE_CHECKING:
    from nqp.core.game import Game


__all__ = ["RNG"]


[docs]class RNG(random.Random):
[docs] def __init__(self, game: Game): with Timer("RNG: initialised"): super().__init__() self.current_seed = 0
[docs] def set_seed(self, seed: int): """ Set the seed for randomness. """ self.seed(seed) self.current_seed = seed logging.info(f"Seed set to {seed}.")
[docs] def roll(self, min_value: int = 0, max_value: int = 99) -> int: """ Roll for a number between min and max. Can handle negative numbers. """ return self.randint(min_value, max_value)