local function is_winter(turn) local season = get_season(turn) return season == "calendar::winter" end local function is_spring(turn) local season = get_season(turn) return season == "calendar::spring" end local function freeze(r, chance) for i, rn in ipairs(r.adj) do -- each region has a chance to freeze if rn.terrain=="ocean" and (chance>=100 or math.fmod(rng_int(), 100)<chance) then rn.terrain = "packice" end end end local function thaw(r, chance) if chance>=100 or math.fmod(rng_int(), 100)<chance then r.terrain = "ocean" for s in r.ships do s.coast = nil end end end local frost = {} function frost.update() local turn = get_turn() if is_winter(turn) then for r in regions() do if r.terrain=="glacier" then freeze(r, 20) end end elseif is_spring(turn) then for r in regions() do if r.terrain=="packice" then thaw(r, 20) end end elseif is_spring(turn-1) then for r in regions() do if r.terrain=="packice" then thaw(r, 100) end end end end return frost