orbit/data/systems.json

142 lines
5.8 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.

{
"_comment": "System archetypes. Each type is themable (theme) and has attributes that steer the SystemGenerator: star classes, binary chance, planet class weights, moon/belt chances, habitability, hazard, and free-space settlement odds (settlements: deepSpaceStation / waypoint). objectCount is a GLOBAL rule, not per-type: the starting system is exempt (it always holds exactly two generated planets — gas giant + rocky — beside the home world, plus at most one free-space station). Every other system rolls its TOTAL object count — planets + free-space stations together — from this table: `barren` of systems hold ZERO objects (a jump-gate-only system — star and gates, nothing else), the rest hold `objects` counts. The split is resolved by rolling the free-space stations first (per-type odds in attributes.settlements × the core→rim gradient, at most two — deepSpaceStation + waypoint), then planets = N stations. Every planet is settled by rule (data/settlements.json → allPlanetsSettled + settledKindByClass). distribution.weight sets how common the type is; distribution.radiusBand ([inner, outer] as a fraction of galaxy radius) is the first proximity rule — richer distribution rules slot into galaxy.json `distribution.rules` later.",
"objectCount": {
"barren": 0.10,
"objects": { "2": 0.15, "3": 0.30, "4": 0.30, "5": 0.15 }
},
"types": {
"main": {
"label": "Main Sequence",
"description": "An ordinary star and its worlds — the galaxy's working majority.",
"theme": { "color": "#9fb4e8" },
"distribution": { "weight": 34, "radiusBand": null },
"attributes": {
"star": {
"classes": { "G": 30, "K": 40, "M": 30 },
"mass": { "G": [0.8, 1.4], "K": [0.5, 0.8], "M": [0.1, 0.5] }
},
"binaryChance": 0.05,
"planetClasses": { "rocky": 45, "gas": 25, "ice": 18, "lava": 12 },
"moonChance": 0.3,
"beltChance": 0.35,
"habitability": 0.1,
"hazard": 0.1,
"settlements": {
"deepSpaceStation": { "chance": 0.25 },
"waypoint": { "chance": 0.35 }
}
}
},
"redDwarf": {
"label": "Red Dwarf",
"description": "A small, long-lived M star with close-in, moon-rich worlds.",
"theme": { "color": "#e8927c" },
"distribution": { "weight": 26, "radiusBand": [0.0, 0.6] },
"attributes": {
"star": {
"classes": { "M": 85, "K": 15 },
"mass": { "M": [0.08, 0.35], "K": [0.5, 0.8] }
},
"binaryChance": 0.12,
"planetClasses": { "rocky": 50, "gas": 15, "ice": 28, "lava": 7 },
"moonChance": 0.45,
"beltChance": 0.3,
"habitability": 0.22,
"hazard": 0.12,
"settlements": {
"deepSpaceStation": { "chance": 0.2 },
"waypoint": { "chance": 0.3 }
}
}
},
"binary": {
"label": "Binary",
"description": "Two stars, one system. Tangled orbits, wide spacings, rich debris.",
"theme": { "color": "#c9a7ff" },
"distribution": { "weight": 10, "radiusBand": [0.15, 0.95] },
"attributes": {
"star": {
"classes": { "F": 25, "G": 40, "K": 35 },
"mass": { "F": [1.0, 1.6], "G": [0.8, 1.4], "K": [0.5, 0.8] }
},
"binaryChance": 1.0,
"planetClasses": { "rocky": 30, "gas": 40, "ice": 20, "lava": 10 },
"moonChance": 0.5,
"beltChance": 0.6,
"habitability": 0.06,
"hazard": 0.18,
"settlements": {
"deepSpaceStation": { "chance": 0.3 },
"waypoint": { "chance": 0.3 }
}
}
},
"habitable": {
"label": "Habitable",
"description": "Temperate, well-lit, and quietly crowded with life. Rare.",
"theme": { "color": "#7ce8a4" },
"distribution": { "weight": 10, "radiusBand": [0.2, 0.75] },
"attributes": {
"star": {
"classes": { "G": 70, "K": 30 },
"mass": { "G": [0.85, 1.3], "K": [0.6, 0.85] }
},
"binaryChance": 0.03,
"planetClasses": { "rocky": 62, "gas": 18, "ice": 14, "lava": 6 },
"moonChance": 0.35,
"beltChance": 0.25,
"habitability": 0.5,
"hazard": 0.05,
"settlements": {
"deepSpaceStation": { "chance": 0.25 },
"waypoint": { "chance": 0.4 }
}
}
},
"nebula": {
"label": "Nebula",
"description": "Young, bright, and still messy — debris where planets should be.",
"theme": { "color": "#5fd4d0" },
"distribution": { "weight": 12, "radiusBand": [0.4, 1.0] },
"attributes": {
"star": {
"classes": { "A": 20, "F": 30, "G": 50 },
"mass": { "A": [1.4, 2.1], "F": [1.0, 1.6], "G": [0.8, 1.4] }
},
"binaryChance": 0.1,
"planetClasses": { "rocky": 20, "gas": 25, "ice": 15, "lava": 40 },
"moonChance": 0.2,
"beltChance": 0.8,
"habitability": 0.02,
"hazard": 0.35,
"settlements": {
"deepSpaceStation": { "chance": 0.2 },
"waypoint": { "chance": 0.45 }
}
}
},
"void": {
"label": "Void",
"description": "Old, cold, and mostly empty. The rim's quiet dead ends.",
"theme": { "color": "#7d88a8" },
"distribution": { "weight": 8, "radiusBand": [0.7, 1.0] },
"attributes": {
"star": {
"classes": { "M": 90, "K": 10 },
"mass": { "M": [0.08, 0.3], "K": [0.4, 0.6] }
},
"binaryChance": 0.08,
"planetClasses": { "rocky": 20, "gas": 10, "ice": 55, "lava": 15 },
"moonChance": 0.1,
"beltChance": 0.2,
"habitability": 0.02,
"hazard": 0.5,
"settlements": {
"deepSpaceStation": { "chance": 0.15 },
"waypoint": { "chance": 0.25 }
}
}
}
}
}