Natalie
60e941caa5
feat(@projects/@magic-civilization): 🏜️ p3-26 gap 2 — drought category + shared tile-picker
Second natural-event category, ported from GDScript process_drought:
- apply_drought: reduce moisture (min 0) in a hex disk, skipping water tiles
(mc_core::grid::biome_registry::has_tag(.., IsWater)). Returns tiles affected.
- dispatch_drought: resolve tier (radius/moisture_loss) + pick a non-water center.
- Extracted pick_matching_tile (shared deterministic tile selection); refactored
dispatch_wildfire to use it. process_events now dispatches wildfire + drought.
Test: apply_drought_dries_land_skips_water (land moisture drops, ocean untouched).
mc-climate events 8/8. Remaining categories (volcanic/seismic/tsunami/plague/marine/…)
follow the same pattern.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>