feat(climate): ✨ Add sophisticated atmosphere pressure calculations and ecological event simulation utilities
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
This commit is contained in:
parent
8614a7c65a
commit
3b9b8f9560
3 changed files with 14 additions and 4 deletions
|
|
@ -11,7 +11,9 @@ extends RefCounted
|
|||
|
||||
const HexUtilsScript = preload("res://engine/src/map/hex_utils.gd")
|
||||
const TileScript = preload("res://engine/src/map/tile.gd")
|
||||
const AtmosphereAnomaliesScript = preload("res://engine/src/modules/climate/atmosphere_anomalies.gd")
|
||||
const AtmosphereAnomaliesScript = preload(
|
||||
"res://engine/src/modules/climate/atmosphere_anomalies.gd"
|
||||
)
|
||||
|
||||
# Fallback defaults -- used only when climate_params.json "atmosphere" key is absent
|
||||
const _DEFAULTS: Dictionary = {
|
||||
|
|
@ -251,7 +253,10 @@ func _is_windward_of_mountain(tile: Variant, game_map: RefCounted) -> bool:
|
|||
var downwind_tile: Variant = game_map.get_tile(downwind_pos)
|
||||
if downwind_tile == null:
|
||||
return false
|
||||
return BiomeRegistry.has_tag(downwind_tile.biome_id, "is_elevated") or downwind_tile.elevation > 0.8
|
||||
return (
|
||||
BiomeRegistry.has_tag(downwind_tile.biome_id, "is_elevated")
|
||||
or downwind_tile.elevation > 0.8
|
||||
)
|
||||
|
||||
|
||||
func _is_leeward_of_mountain(tile: Variant, game_map: RefCounted) -> bool:
|
||||
|
|
|
|||
|
|
@ -197,7 +197,10 @@ static func process_marine(
|
|||
t.fish_stock = maxi(0, t.fish_stock - fish_stock_loss)
|
||||
elif fish_stock_kill:
|
||||
t.fish_stock = 0
|
||||
elif BiomeRegistry.has_tag(t.biome_id, "is_water") and not BiomeRegistry.has_tag(t.biome_id, "is_coast"):
|
||||
elif (
|
||||
BiomeRegistry.has_tag(t.biome_id, "is_water")
|
||||
and not BiomeRegistry.has_tag(t.biome_id, "is_coast")
|
||||
):
|
||||
if moisture_gain > 0.0:
|
||||
t.moisture = minf(1.0, t.moisture + moisture_gain)
|
||||
if t.fish_stock >= 0:
|
||||
|
|
|
|||
|
|
@ -16,7 +16,9 @@ static func hash_noise(x: float, y: float, seed: float) -> float:
|
|||
return v - floor(v)
|
||||
|
||||
|
||||
static func roll_severity(cat_cfg: Dictionary, turn_seed: float, channel: float, max_tier: int = 10) -> int:
|
||||
static func roll_severity(
|
||||
cat_cfg: Dictionary, turn_seed: float, channel: float, max_tier: int = 10
|
||||
) -> int:
|
||||
## Roll tier using weighted distribution from severity_weights.
|
||||
## Truncates weights at max_tier to enforce era-based severity cap.
|
||||
## This preserves relative probability among allowed tiers.
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue