warfactoryracine/gameData/WorldGeneration/Regular_world.json
StillHammer fd1ec4f503 Implement complete world generation system with geological simulation and resource distribution
## World Generation Pipeline
- Add comprehensive 7-phase geological simulation (4.6 billion years)
- Implement WindRegions-based climate system with ITCZ zones
- Create 18 biome types with scientific classification parameters
- Establish Phase 7 budget assignment and natural feature placement

## Resource System Architecture
- Add 70+ natural features across 8 categories (geological, water, forest, volcanic, etc.)
- Implement complete resource-to-feature mapping for all game materials
- Create individual resource files for metals (iron, copper, gold, uranium, etc.)
- Add comprehensive cross-referencing between features and game resources

## Biome Integration System
- Design scalable blacklist + frequent biomes compatibility system
- Implement mass-based feature selection with geological strength requirements
- Add 5 spatial distribution patterns (concentrated, uniform, ring, clustered, gradient)
- Create region-based feature placement with biome-aware filtering

## Documentation and Architecture
- Add detailed geological and climate simulation system documentation
- Update project overview with world generation achievements
- Establish JSON-driven configuration system for all generation parameters
- Create comprehensive system for Phase 8 integration readiness

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-29 17:19:01 +08:00

889 lines
35 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
"geological_simulation": {
"description": "Complete planetary formation simulation over 4.65 billion years",
"total_duration_years": 4650000000,
"phases": [
// ===== PHASE 1: PLANETARY ACCRETION (30 cycles × 100M years = 3.0 Ga) =====
{
"name": "planetary_accretion",
"description": "Initial planetary formation through meteorite bombardment",
"duration_cycles": 30,
"years_per_cycle": 100000000,
"initial_conditions": {
"surface_temperature_celsius": -100,
"surface_elevation_meters": -30000,
"planetary_core": {
"core_mass": 0,
"core_temperature_celsius": -100,
"max_core_capacity": 1000000,
"composition": {}
}
},
"steps": [
{
"name": "meteorite_impact_generation",
"process_type": "generate_meteorite_impacts",
"parameters": {
"impacts_per_wave": {"min": 100, "max": 500},
"meteorite_source": "meteorites.json",
"size_bias": "larger",
"type_weights": {
"chondrite_ordinary": 60,
"carbonaceous_chondrite": 15,
"stony_iron": 12,
"iron_meteorite": 8,
"ice_comet_fragment": 3,
"platinum_rich_rare": 2,
"bubble_meteorite": 1,
"magnetic_anomaly": 0.8,
"crystal_meteorite": 0.5,
"glass_meteorite": 0.3,
"diamond_meteorite": 0.2,
"radioactive_anomaly": 0.1
}
}
},
{
"name": "impact_effects_application",
"process_type": "apply_impact_effects",
"parameters": {
"kinetic_energy_to_heat_ratio": 2000,
"crater_formation_factor": 1.0,
"surface_metal_deposit_ratio": 0.3
}
},
{
"name": "planetary_differentiation",
"process_type": "heavy_metal_sinking",
"parameters": {
"sinking_rate_per_cycle": 0.7,
"heavy_metal_threshold_density": 5.0
}
},
{
"name": "volcanic_redistribution",
"process_type": "core_driven_volcanism",
"parameters": {
"core_pressure_threshold": 0.8,
"volcanic_overflow_rate": 0.2,
"core_to_surface_redistribution": 0.1
}
},
{
"name": "cooling_phase",
"process_type": "gradual_cooling",
"parameters": {
"surface_cooling_rate_per_cycle": 50,
"core_cooling_rate_per_cycle": 30
}
},
{
"name": "universal_region_fusion",
"process_type": "manage_all_region_fusion",
"parameters": {
"enabled": true,
"radius_calculation": "natural_logarithm",
"base_radius": 1.5,
"mass_reference": 5.0,
"fusion_threshold_percentage": 0.3,
"use_largest_radius_for_threshold": true,
"weighted_position_update": true,
"mass_combination": "additive",
"applies_to_all_region_types": true
}
}
]
},
// ===== PHASE 2: TECTONIC FORMATION (25 cycles × 100M years = 2.5 Ga) =====
{
"name": "tectonic_formation",
"description": "Formation of tectonic plates and crustal thickening",
"duration_cycles": 25,
"years_per_cycle": 100000000,
"steps": [
{
"name": "reduced_meteorite_bombardment",
"process_type": "generate_meteorite_impacts",
"parameters": {
"impacts_per_wave": {"min": 10, "max": 50},
"meteorite_source": "meteorites.json",
"impact_probability_per_cycle": 0.3,
"size_bias": "smaller",
"type_weights": {
"chondrite_ordinary": 35,
"carbonaceous_chondrite": 20,
"ice_comet_fragment": 15,
"stony_iron": 8,
"iron_meteorite": 5,
"crystal_meteorite": 4,
"magnetic_anomaly": 4,
"bubble_meteorite": 3,
"glass_meteorite": 2,
"platinum_rich_rare": 2,
"diamond_meteorite": 1.5,
"radioactive_anomaly": 0.5
}
}
},
{
"name": "initial_tectonic_region_creation",
"process_type": "create_tectonic_regions",
"parameters": {
"target_region_count": {"min": 15, "max": 25},
"region_types": ["oceanic", "continental", "volcanic"],
"initial_type_distribution": {
"oceanic": 0.6,
"continental": 0.35,
"volcanic": 0.05
},
"initial_radius_range": {"min": 50, "max": 200},
"random_placement": true
}
},
{
"name": "tectonic_physics_simulation",
"process_type": "tectonic_physics_engine",
"parameters": {
"repulsion_constant": 0.8,
"velocity_damping": 0.95,
"max_velocity": 5.0,
"collision_detection": true,
"force_calculation": "overlap_squared"
}
},
{
"name": "region_evolution",
"process_type": "tectonic_region_evolution",
"parameters": {
"split_probability_per_cycle": 0.01,
"growth_rate_range": {"min": -0.5, "max": 1.0},
"stability_factor": 0.8,
"minimum_region_radius": 20,
"maximum_region_radius": 500
}
},
{
"name": "collision_effects",
"process_type": "tectonic_collision_processing",
"parameters": {
"mountain_formation_threshold": 1.0,
"mountain_height_multiplier": 2000,
"rift_valley_depth": 500,
"volcanic_zone_creation": true,
"volcanic_zone_lifetime_cycles": 10
}
},
{
"name": "universal_region_fusion",
"process_type": "manage_all_region_fusion",
"parameters": {
"enabled": true,
"radius_calculation": "natural_logarithm",
"base_radius": 1.8,
"mass_reference": 8.0,
"fusion_threshold_percentage": 0.25,
"use_largest_radius_for_threshold": true,
"weighted_position_update": true,
"mass_combination": "additive",
"applies_to_all_region_types": true
}
}
]
},
// ===== PHASE 3: GEOLOGICAL PREPARATION (25 cycles × 20M years = 0.5 Ga) =====
{
"name": "geological_preparation",
"description": "Sea level rise and geological basin formation (preparation for future hydrology)",
"duration_cycles": 25,
"years_per_cycle": 20000000,
"steps": [
{
"name": "tectonic_movement_slowdown",
"process_type": "tectonic_physics_engine",
"parameters": {
"velocity_reduction_factor": 0.8,
"repulsion_constant": 0.64,
"velocity_damping": 0.95,
"max_velocity": 4.0,
"collision_detection": true,
"force_calculation": "overlap_squared"
}
},
{
"name": "residual_meteorite_impacts",
"process_type": "generate_meteorite_impacts",
"parameters": {
"impacts_per_wave": {"min": 1, "max": 5},
"meteorite_source": "meteorites.json",
"impact_probability_per_cycle": 0.1,
"size_bias": "smaller",
"type_weights": {
"chondrite_ordinary": 20,
"carbonaceous_chondrite": 15,
"ice_comet_fragment": 25,
"crystal_meteorite": 10,
"magnetic_anomaly": 10,
"glass_meteorite": 8,
"bubble_meteorite": 7,
"diamond_meteorite": 3,
"platinum_rich_rare": 2
}
}
},
{
"name": "residual_volcanism",
"process_type": "core_driven_volcanism",
"parameters": {
"volcanic_activity_reduction": 0.1,
"core_overflow_rate": 0.05,
"eruption_probability_per_cycle": 0.2,
"eruption_intensity_factor": 0.3,
"core_pressure_threshold": 0.4
}
},
{
"name": "sea_level_elevation",
"process_type": "elevate_sea_level",
"parameters": {
"initial_sea_level_meters": -5000,
"target_sea_level_meters": 0,
"elevation_rate_per_cycle": 200,
"ice_volume_effect": true,
"thermal_expansion_effect": true
}
},
{
"name": "tectonic_erosion",
"process_type": "apply_tectonic_erosion",
"parameters": {
"erosion_rate_factor": 1.0,
"elevation_erosion_threshold": 1000,
"mass_to_core_transfer": true,
"mountain_erosion_rate": 5.0,
"weathering_rate": 0.1
}
},
{
"name": "geological_basin_formation",
"process_type": "form_geological_basins",
"parameters": {
"basin_formation_probability": 0.05,
"valley_carving_intensity": 2.0,
"depression_depth_factor": 1.5,
"future_drainage_preparation": true
}
},
{
"name": "basic_climate_stabilization",
"process_type": "stabilize_basic_climate",
"parameters": {
"temperature_stabilization_rate": 0.1,
"co2_equilibrium_target": 350,
"volcanic_co2_reduction": 0.05,
"weathering_co2_absorption": 0.02
}
},
{
"name": "coastal_zone_preparation",
"process_type": "prepare_coastal_zones",
"parameters": {
"shallow_water_threshold": 50,
"deep_water_threshold": 200,
"coastal_shelf_formation": true,
"sediment_accumulation_zones": true
}
},
{
"name": "universal_region_fusion",
"process_type": "manage_all_region_fusion",
"parameters": {
"enabled": true,
"radius_calculation": "natural_logarithm",
"base_radius": 1.9,
"mass_reference": 9.0,
"fusion_threshold_percentage": 0.22,
"use_largest_radius_for_threshold": true,
"weighted_position_update": true,
"mass_combination": "additive",
"applies_to_all_region_types": true
}
}
]
},
// ===== PHASE 4: CARBONIFEROUS PERIOD (35 cycles × 10M years = 0.35 Ga) =====
{
"name": "carboniferous_period",
"description": "Dynamic forest evolution and coal formation through geological cycles",
"duration_cycles": 35,
"years_per_cycle": 10000000,
"steps": [
{
"name": "tectonic_movement_continued",
"process_type": "tectonic_physics_engine",
"parameters": {
"velocity_reduction_factor": 0.6,
"repulsion_constant": 0.48,
"velocity_damping": 0.96,
"max_velocity": 3.0,
"collision_detection": true,
"force_calculation": "overlap_squared",
"carbon_region_attachment_update": true
}
},
{
"name": "dynamic_forest_seeding",
"process_type": "seed_new_forests",
"parameters": {
"base_forest_seed_rate": 0.001,
"temperature_optimal_range": {"min": 15.0, "max": 35.0},
"temperature_bonus": 2.0,
"humidity_threshold": 0.4,
"humidity_bonus": 1.5,
"elevation_max": 2000.0,
"elevation_bonus": 1.2
}
},
{
"name": "forest_expansion",
"process_type": "expand_existing_forests",
"parameters": {
"forest_expansion_rate": 0.05,
"neighbor_viability_check": true,
"expansion_distance": 1,
"density_growth_factor": 1.1
}
},
{
"name": "carbon_region_formation",
"process_type": "create_carbon_regions",
"parameters": {
"minimum_forest_density": 0.3,
"carbon_mass_base": 100.0,
"region_radius_factor": 8.0,
"tectonic_attachment_strength": 0.9,
"carbon_type_initial": "COAL"
}
},
{
"name": "carbon_region_movement",
"process_type": "update_carbon_regions",
"parameters": {
"attachment_strength": 0.9,
"merge_distance_factor": 0.8
}
},
{
"name": "coal_to_oil_conversion",
"process_type": "convert_carbon_deposits",
"parameters": {
"conversion_rate_per_cycle": 0.01,
"underwater_cycles_required": 3,
"minimum_conversion_threshold": 1.0,
"underwater_depth_minimum": 50.0,
"surface_based_conversion": true,
"create_separate_oil_regions": true,
"oil_position_calculation": "underwater_center_of_mass",
"natural_gas_generation": false
}
},
{
"name": "universal_region_fusion",
"process_type": "manage_all_region_fusion",
"parameters": {
"enabled": true,
"radius_calculation": "natural_logarithm",
"base_radius": 2.0,
"mass_reference": 10.0,
"fusion_threshold_percentage": 0.2,
"use_largest_radius_for_threshold": true,
"weighted_position_update": true,
"mass_combination": "additive",
"applies_to_all_region_types": true
}
},
{
"name": "geological_forest_destruction",
"process_type": "destroy_forests_by_events",
"parameters": {
"volcanic_destruction_radius": 10.0,
"flood_destruction_threshold": 100,
"erosion_destruction_threshold": 5.0,
"temperature_destruction_min": -10.0,
"temperature_destruction_max": 50.0
}
}
]
},
// ===== PHASE 5: PRE-FAUNAL STABILIZATION (15 cycles × 10M years = 0.15 Ga) =====
{
"name": "pre_faunal_stabilization",
"description": "Final geological maturation and climate stabilization",
"duration_cycles": 15,
"years_per_cycle": 10000000,
"steps": [
{
"name": "tectonic_movement_final_slowdown",
"process_type": "tectonic_physics_engine",
"parameters": {
"velocity_reduction_factor": 0.48,
"repulsion_constant": 0.38,
"velocity_damping": 0.97,
"max_velocity": 2.4,
"collision_detection": true,
"force_calculation": "overlap_squared"
}
},
{
"name": "reduced_carbon_formation",
"process_type": "create_carbon_regions",
"parameters": {
"no_new_forests": true,
"existing_forest_to_carbon_only": true,
"carbon_mass_base": 50.0,
"region_radius_factor": 8.0,
"tectonic_attachment_strength": 0.9,
"carbon_type_initial": "COAL"
}
},
{
"name": "hydrocarbon_maturation_continued",
"process_type": "convert_carbon_deposits",
"parameters": {
"conversion_rate_per_cycle": 0.01
}
},
{
"name": "universal_region_fusion",
"process_type": "manage_all_region_fusion",
"parameters": {
"enabled": true,
"radius_calculation": "natural_logarithm",
"base_radius": 2.2,
"mass_reference": 15.0,
"fusion_threshold_percentage": 0.2,
"use_largest_radius_for_threshold": true,
"weighted_position_update": true,
"mass_combination": "additive",
"applies_to_all_region_types": true
}
},
{
"name": "petroleum_migration_to_traps",
"process_type": "migrate_petroleum_to_geological_traps",
"parameters": {
"trap_identification": true,
"anticline_formation_factor": 1.0,
"fault_trap_creation": true,
"salt_dome_probability": 0.05,
"migration_efficiency": 0.3,
"trap_capacity_factor": 50.0
}
},
{
"name": "final_erosion_phase",
"process_type": "apply_final_erosion",
"parameters": {
"erosion_rate_reduction": 0.5,
"coal_seam_exposure": true,
"river_valley_carving": true,
"coastal_feature_formation": true,
"erosion_depth_threshold": 50.0
}
},
{
"name": "soil_development",
"process_type": "develop_soil_layers",
"parameters": {
"soil_types": ["clay", "sand", "loam", "peat", "rocky", "alluvial"],
"soil_depth_factor": 0.1,
"climate_soil_correlation": true,
"river_alluvial_bonus": true,
"elevation_soil_effects": true
}
},
{
"name": "final_climate_stabilization",
"process_type": "stabilize_final_climate",
"parameters": {
"volcanic_activity_reduction": 0.8,
"climate_stability_increase": 0.1,
"climate_zone_establishment": true,
"temperature_variance_reduction": 0.9
}
}
]
},
// ===== PHASE 6A: LANDMASS ANALYSIS & ITCZ PREPARATION (1 cycle × 1M years) =====
{
"name": "landmass_analysis_and_itcz_preparation",
"description": "Analyze continental masses from existing TectonicRegions and create Inter-Tropical Convergence Zones",
"duration_cycles": 1,
"years_per_cycle": 1000000,
"steps": [
{
"name": "continental_mass_analysis",
"process_type": "analyze_continental_masses",
"parameters": {
"_comment": "Uses existing TectonicRegions to identify continental masses for ITCZ placement",
"continental_grouping": {
"proximity_threshold": 100,
"minimum_region_count": 2,
"mass_calculation_method": "area_weighted",
"continental_type_filter": ["continental", "volcanic"]
},
"landmass_requirements": {
"minimum_total_area": 5000,
"minimum_individual_region_area": 1000,
"connectivity_analysis": true
},
"equatorial_filtering": {
"latitude_band": [0.40, 0.60],
"strict_equatorial_requirement": false,
"latitude_scoring_weight": 0.7
}
}
},
{
"name": "ocean_basin_detection",
"process_type": "detect_ocean_basins",
"parameters": {
"_comment": "Inverse analysis to identify ocean masses from continental positions",
"ocean_detection_method": "inverse_continental_analysis",
"minimum_ocean_size": 5000,
"coastal_connectivity_check": true,
"ocean_temperature_estimation": {
"latitude_based": true,
"equator_temp": 28.0,
"pole_temp": 2.0,
"thermal_gradient": "cosine_distribution"
},
"evaporation_potential_calculation": {
"temperature_factor": true,
"surface_area_factor": true,
"wind_exposure_factor": true
}
}
},
{
"name": "itcz_zone_creation",
"process_type": "create_itcz_convergence_zones",
"parameters": {
"_comment": "Create ITCZ zones on qualifying equatorial landmasses",
"itcz_requirements": {
"latitude_band": [0.45, 0.55],
"min_landmass_size": 10000,
"max_ocean_distance": 800,
"continental_heating_threshold": 5000
},
"itcz_zone_properties": {
"center_calculation": "continental_center_of_mass",
"gravitational_range_formula": "sqrt(landmass_area) * 50",
"mass_calculation": "landmass_total_area",
"amplification_factor": 3.0,
"intensity_falloff": "inverse_square_law"
},
"multiple_itcz_handling": {
"allow_multiple_zones": true,
"minimum_separation_distance": 500,
"interaction_between_zones": false
}
}
},
{
"name": "climate_infrastructure_preparation",
"process_type": "prepare_climate_simulation_infrastructure",
"parameters": {
"_comment": "Clean slate preparation for WindRegion-based simulation",
"data_cleanup": {
"clear_legacy_wind_data": true,
"clear_legacy_humidity_data": true,
"preserve_temperature_gradients": true,
"preserve_elevation_data": true
},
"token_system_initialization": {
"initialize_token_counters": true,
"token_types": ["wind", "rain", "highWind", "flood", "hurricane"],
"reset_all_tokens": true
},
"performance_optimization": {
"pre_allocate_wind_region_pool": true,
"max_concurrent_wind_regions": 200,
"spatial_indexing_setup": true
}
}
}
]
},
// ===== PHASE 6B: CLIMATE SIMULATION & BIOME GENERATION (300 cycles × 100K years = 30M years) =====
{
"name": "climate_simulation_and_biome_generation",
"description": "Advanced climate simulation using mobile WindRegions and ITCZ zones for realistic weather patterns",
"duration_cycles": 300,
"years_per_cycle": 100000,
"steps": [
{
"name": "wind_region_spawning_system",
"process_type": "spawn_mobile_wind_regions",
"parameters": {
"_comment": "Mobile WindRegions spawn from ocean masses with biased distribution",
"spawn_system": {
"spawn_locations": "ocean_masses_only",
"spawn_frequency_formula": "water_mass_size / 1000",
"spawn_distribution": "random_within_water_region_biased_toward_center",
"max_concurrent_regions": 200,
"initial_strength_formula": "water_temperature * evaporation_factor"
},
"wind_region_properties": {
"initial_wind_strength": 1.0,
"initial_wetness": 0.0,
"wind_tokens": 100,
"rain_tokens": 0,
"decay_per_move": 0.02,
"decay_per_tile": 0.01,
"minimum_survival_threshold": 0.1
},
"ocean_moisture_gain": {
"ocean_moisture_rate": 0.1,
"temperature_factor": true,
"evaporation_efficiency": 1.0
}
}
},
{
"name": "planetary_circulation_and_movement",
"process_type": "apply_planetary_circulation",
"parameters": {
"_comment": "Planetary rotation bands based on real atmospheric data",
"planetary_circulation_bands": {
"polar_jet_north": {
"latitude_range": [0.10, 0.25],
"direction": "west_to_east",
"strength": 1.8
},
"calm_transition_1": {
"latitude_range": [0.25, 0.40],
"movement": "chaos_plus_procedural"
},
"equatorial_trades": {
"latitude_range": [0.40, 0.60],
"direction": "east_to_west",
"strength": 1.5
},
"calm_transition_2": {
"latitude_range": [0.60, 0.75],
"movement": "chaos_plus_procedural"
},
"polar_jet_south": {
"latitude_range": [0.75, 0.95],
"direction": "west_to_east",
"strength": 1.8
}
},
"movement_calculation": {
"planetary_circulation_weight": 0.6,
"equator_to_pole_bias_weight": 0.2,
"terrain_deflection_weight": 0.1,
"random_variation_weight": 0.1
},
"movement_physics": {
"velocity_damping": 0.95,
"terrain_interaction": true,
"boundary_wrapping": "spherical_world"
}
}
},
{
"name": "wind_region_evolution_and_interactions",
"process_type": "evolve_wind_regions",
"parameters": {
"_comment": "WindRegion interactions including repulsion system and ITCZ effects",
"repulsion_system": {
"enabled": true,
"repulsion_calculation": "spatial_competition_proxy",
"acceleration_factor": 1.0,
"maximum_interaction_distance": 50.0,
"_design_note": "Prevents region stacking while creating realistic dispersion patterns",
"_alternative_algorithms": {
"density_based_drift": false,
"no_interaction": false,
"collision_division": false
}
},
"itcz_gravitational_effects": {
"enabled": true,
"attraction_formula": "itcz.mass / (distance * distance)",
"gravitational_metaphor": "influence_strength_not_literal_physics",
"amplification_calculation": {
"proximity_factor": "(itcz.range - distance) / itcz.range",
"max_amplification": 3.0,
"wind_strength_multiplier": true,
"wetness_multiplier": true
}
},
"regional_evolution": {
"wind_strength_decay": true,
"moisture_accumulation": true,
"death_threshold": 0.1,
"lifecycle_management": true
}
}
},
{
"name": "token_distribution_and_climate_zones",
"process_type": "distribute_climate_tokens",
"parameters": {
"_comment": "Token-based climate zone classification system",
"basic_token_distribution": {
"wind_token_factor": 10,
"rain_token_factor": 10,
"tokens_per_tile_visit": true,
"accumulation_system": true
},
"climate_zone_thresholds": {
"high_wind_threshold": 2.0,
"flood_threshold": 1.5,
"hurricane_wind_threshold": 2.5,
"hurricane_rain_threshold": 2.0
},
"special_climate_tokens": {
"high_wind_tokens": {
"description": "Hostile to forests",
"biome_effect": "prevents_forest_growth",
"token_value": 1
},
"flood_tokens": {
"description": "Forces wetlands/marshes",
"biome_effect": "mandatory_wetlands",
"token_value": 1
},
"hurricane_tokens": {
"description": "Specialized hurricane biome",
"biome_effect": "storm_resistant_vegetation",
"token_value": 1
}
},
"token_persistence": {
"accumulation_method": "additive",
"decay_rate": 0.0,
"permanent_climate_record": true
}
}
},
{
"name": "biome_classification_from_tokens",
"process_type": "classify_biomes_from_climate_tokens",
"parameters": {
"_comment": "Load biome system from external definitions - all rules and modifiers defined in biome files",
"biome_system_source": "gameData/Biomes/biome_index.json",
"load_all_biome_definitions": true,
"use_external_classification_rules": true,
"use_external_resource_modifiers": true,
"fallback_biome": "scrubland"
}
},
{
"name": "temporal_token_dissipation",
"process_type": "apply_token_dissipation",
"parameters": {
"_comment": "Random token dissipation - high for normal tokens (variation), low for catastrophe tokens (preserve special zones)",
"rain_tokens": {
"dissipation_range": [5, 25],
"dissipation_frequency": 0.12
},
"wind_tokens": {
"dissipation_range": [3, 15],
"dissipation_frequency": 0.10
},
"highWind_tokens": {
"dissipation_range": [2, 8],
"dissipation_frequency": 0.08
},
"flood_tokens": {
"dissipation_range": [1, 2],
"dissipation_frequency": 0.02
},
"hurricane_tokens": {
"dissipation_range": [1, 2],
"dissipation_frequency": 0.015
}
}
}
]
},
// ===== PHASE 7: BUDGET ASSIGNMENT =====
{
"name": "budget_assignment",
"description": "Random budget score distribution for economic gameplay",
"duration_cycles": 1,
"years_per_cycle": 1000000,
"steps": [
{
"name": "assign_budget_scores",
"process_type": "random_budget_assignment",
"parameters": {
"distribution": "normal",
"mean": 0.0,
"std_dev": 3.0,
"range": [-10, 10]
}
}
]
},
// ===== PHASE 7: BUDGET & FEATURES =====
{
"name": "budget_and_features",
"description": "Random budget assignment and biome-appropriate natural features placement",
"duration_cycles": 1,
"years_per_cycle": 1000000,
"steps": [
{
"name": "assign_budget_scores",
"process_type": "random_budget_assignment",
"parameters": {
"distribution": "normal",
"mean": 0.0,
"std_dev": 3.0,
"range": [-10, 10]
}
},
{
"name": "place_natural_features",
"process_type": "biome_based_feature_placement",
"parameters": {
"chance": 0.05,
"feature_sources": [
"gameData/MapFeatures/geological_formations.json",
"gameData/MapFeatures/natural_landmarks.json",
"gameData/MapFeatures/water_features.json",
"gameData/MapFeatures/volcanic_features.json",
"gameData/MapFeatures/underground_features.json",
"gameData/MapFeatures/forest_features.json",
"gameData/MapFeatures/coastal_features.json"
],
"biome_compatibility": {
"tropical_rainforest": ["giant_tree", "ancient_grove", "bamboo_grove", "fruit_orchard", "carboniferous_forest", "underground_river"],
"hot_desert": ["canyon", "cliff", "sinkhole", "oasis", "volcano", "lava_field", "obsidian_field"],
"temperate_forest": ["forest_clearing", "ancient_grove", "medicinal_grove", "mushroom_grove", "carboniferous_forest", "underground_lake"],
"grassland": ["plateau", "natural_bridge", "sinkhole", "lake", "spring"],
"tundra": ["geyser", "sinkhole", "cliff", "lake", "crater", "fumarole", "deep_cavern"],
"alpine": ["canyon", "cliff", "gorge", "volcano", "caldera", "crystal_cavern", "volcanic_vent"],
"cold_desert": ["canyon", "cliff", "sinkhole", "hoodoo", "crater", "obsidian_field"],
"hills": ["cave", "spring", "plateau", "gorge", "cave_network", "bat_cave"],
"rocky_plateau": ["canyon", "cliff", "natural_bridge", "mesa", "rock_spire", "monolith"],
"hurricane_zone": ["cave", "gorge", "marsh", "central_hill_swamp", "bat_cave"],
"wetlands": ["central_hill_swamp", "islands_swamp", "hilly_swampy", "underground_lake", "delta"],
"storm_prairie": ["plateau", "sinkhole", "natural_bridge", "hoodoo", "monolith"],
"badlands": ["canyon", "cliff", "gorge", "mesa", "sinkhole", "lava_field"],
"coastal_plain": ["delta", "pond", "marsh", "estuary", "natural_harbor"],
"cliffs": ["sea_cave", "cliff", "natural_arch", "blowhole", "sea_stack"],
"sandy_coast": ["beach_dunes", "delta", "natural_harbor", "tidal_pool", "estuary"],
"rocky_shore": ["sea_cave", "tidal_pool", "sea_stack", "blowhole", "coral_reef"],
"scrubland": ["cave", "plateau", "spring", "sinkhole", "canyon", "monolith", "rock_spire"]
}
}
}
]
}
]
}
}