Four gameplay parameters are now driven by the selected difficulty,
following the existing 'hard = harder for the player' philosophy:
param easy normal hard
gas_spread_speed 40 50 90 (higher = slower gas)
weapon_refill_multiplier 1.3 1.0 0.6 (less ammo on hard)
max_babies 2 3 5 (more pups on hard)
mate_stop_male / female 120/240 100/200 60/120 (shorter stop on hard)
Implementation:
- engine/config.py: new keys on each DIFFICULTY_OPTIONS entry.
- rats.py: _apply_difficulty() loads them onto the game (with __init__
defaults for safety); normal keeps the previous hardcoded values.
- units/gas.py: Gas.speed reads game.gas_spread_speed (fallback 50).
- engine/unit_manager.py: refill_ammo() scales per-frame refill chances
by game.weapon_refill_multiplier (fallback 1.0).
- units/rat.py: Male.fuck() uses game.mate_stop_male/mate_stop_female
and random.randint(1, game.max_babies) (fallbacks to old values).
All reads use getattr with the previous constant as fallback, so older
configs / saved state keep working.