Key extractors by stable planet identity

This commit is contained in:
Loïc Wisniewski 2026-08-14 22:16:40 +02:00
commit e2d4297ee5
11 changed files with 71 additions and 16 deletions

View file

@ -563,7 +563,7 @@ func _show_building_info(type: String) -> void:
if planet == null:
lines.append("No planet in reach - fly over one.")
can_build = false
elif GameState.has_extractor_at(planet.planet_name):
elif GameState.has_extractor_at(planet.planet_id):
lines.append("%s already has an extractor." % planet.planet_name)
can_build = false
else:
@ -606,13 +606,13 @@ func _confirm_build() -> void:
if definition.placement_mode == "planet":
var planet: Node2D = _planet_under_fleet()
if planet == null or GameState.has_extractor_at(planet.planet_name):
if planet == null or GameState.has_extractor_at(planet.planet_id):
build_status.text = "No planet in reach any more"
return
if not GameState.spend(definition.cost):
build_status.text = "Not enough rocks (need %d, have %d)" % [definition.cost, GameState.rocks]
return
GameState.add_extractor(planet.planet_name, planet.position, planet.resource_type)
GameState.add_extractor(planet.planet_name, planet.position, planet.resource_type, planet.planet_id)
build_menu.visible = false
return