Add research lab planets and research points (#63)
This commit is contained in:
parent
651f8b787e
commit
3f3a22227d
43 changed files with 459 additions and 30 deletions
|
|
@ -22,6 +22,10 @@ const GAS_GIANT_THRESHOLD: float = 0.55
|
|||
# chance independent of biome - not a second smooth region to tune against
|
||||
# the first.
|
||||
const BLACK_HOLE_CHANCE: float = 0.05
|
||||
# #63: findable without excessive exploration - research points gate mid/
|
||||
# late skill-tree nodes and vessel research, so a player needs to run into
|
||||
# one of these reasonably often, not just as a rare curiosity.
|
||||
const RESEARCH_LAB_CHANCE: float = 0.08
|
||||
|
||||
# A predictable early gas source for play-testing. The origin chunk is
|
||||
# deterministically normal space. Its explicit in-chunk position puts it
|
||||
|
|
@ -95,6 +99,8 @@ static func planet_data_at_chunk(chunk: Vector2i) -> Dictionary:
|
|||
# roll doesn't shift which random values any LATER draw (planet_name,
|
||||
# below) consumes for chunks that would have existed before it.
|
||||
var black_hole_roll: float = rng.randf()
|
||||
# Same principle, its own independent roll (#63).
|
||||
var research_lab_roll: float = rng.randf()
|
||||
# A stable per-chunk roll makes gas giants persistent landmarks rather
|
||||
# than a different resource whenever the scene reloads.
|
||||
var gas_giant: bool = guaranteed_nearby_giant or biome_at_chunk(chunk) == Biome.SPACE
|
||||
|
|
@ -104,6 +110,8 @@ static func planet_data_at_chunk(chunk: Vector2i) -> Dictionary:
|
|||
# that chunk's whole purpose is to always be the same reachable source.
|
||||
if not guaranteed_nearby_giant and black_hole_roll < BLACK_HOLE_CHANCE:
|
||||
definition_id = PLANET_DEFINITIONS.BLACK_HOLE_ID
|
||||
elif not guaranteed_nearby_giant and research_lab_roll < RESEARCH_LAB_CHANCE:
|
||||
definition_id = PLANET_DEFINITIONS.RESEARCH_LAB_ID
|
||||
var definition: Resource = PLANET_DEFINITIONS.get_definition(definition_id)
|
||||
var names: PackedStringArray = definition.names
|
||||
var planet_name: String = names[rng.randi() % names.size()]
|
||||
|
|
|
|||
Loading…
Reference in a new issue