Find the planet setups in an exported build
The registry scanned res://PlanetSetups for names ending ".tres". An export does not ship those: text resources are converted to binary and the pack carries "<name>.tres.remap", which ResourceLoader follows when asked for the original path. So the scan found nothing in the web build, every planet drew no setup, and since #211 the setup IS the garrison - every world in the deployed game was deserted, with nothing logged to say why. Confirmed by reading index.pck, which holds rocky_default.tres.remap and no .tres. The suite runs from source, where the bug cannot occur, so the name resolution is its own function and tested against the exact strings the pack contains. Also: the planning centre listed transporters and repair drones but set_vessel_target() still refused anything not fleet-eligible, so both rows had buttons that did nothing - the worst shape a refusal can take. Listing and setting read the same rule now, and a standing order is only offered to a crafter that can actually take it. And two quests close the chain: the tentacle world, which the scanner will not offer until the story hands it over, and the Warden itself. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019AJMdB7iuHuLFZM1aBu3GD
This commit is contained in:
parent
c6f9eb467f
commit
df4d5e35f9
6 changed files with 179 additions and 8 deletions
|
|
@ -93,9 +93,17 @@ func _run() -> void:
|
|||
for definition_id in GameState.SCANNER_SURVEY_TYPES:
|
||||
state.note_planet_visited("scanner:test:%s" % definition_id, definition_id)
|
||||
menu.refresh()
|
||||
# The survey alone is not enough any more: the tentacle world is offered
|
||||
# only once the chain sends the player after it, so a player who has
|
||||
# charted four kinds early cannot stumble into the endgame.
|
||||
if menu.get_node("BossButton").visible:
|
||||
return _fail("the boss signature appeared on the survey alone, before the quest that names it")
|
||||
state.quest_index = QUESTS.index_of("tentacles")
|
||||
menu.refresh()
|
||||
if not menu.get_node("BossButton").visible \
|
||||
or not menu.get_node("BossLabel").visible:
|
||||
return _fail("the fifth scanner option did not appear after four planet types")
|
||||
return _fail("the fifth scanner option did not appear once its quest was live")
|
||||
print("the boss signature waits for BOTH the four-world survey and its own quest")
|
||||
var boss: Dictionary = state.scan_for_planet(PlanetDefinitions.BOSS_ID,
|
||||
Vector2.ZERO)
|
||||
if boss.is_empty() or Vector2i(boss.chunk) != WorldGen.OCTOPUS_BIOME_CENTER:
|
||||
|
|
@ -107,7 +115,7 @@ func _run() -> void:
|
|||
Vector2(boss.world_position) * map_content.WORLD_TO_LOCAL) > 0.01:
|
||||
return _fail("the active scan has no matching destination point on the map")
|
||||
map_content.free()
|
||||
print("researched scanner reveals generated destinations; the fifth option waits for 4/4")
|
||||
print("researched scanner reveals generated destinations")
|
||||
|
||||
# #192: the scanner is taught immediately before the quest that needs it,
|
||||
# and before every later one that does.
|
||||
|
|
|
|||
Loading…
Reference in a new issue