Teach the crews and the berths the game now asks the player to keep
#216 and #219 turned two things into player work without saying so anywhere: transporters are built and assigned by hand, and a berth in the fleet is a structure that has to be supplied. Five quests now teach both. For the hub: build a transporter at a crafter, then assign it. Two steps, because they happen in different places and one quest covering both strands whoever misses the second in front of a hub that does nothing. The closing line warns that they wear out, since the alternative is finding out when a route quietly stops. For the fleet: research Berth Authority, build an office, PUT ORE IN IT, and only then crew the berth. The stocking step comes before the vessel on purpose - the other way to learn it is to watch a vessel you paid for be destroyed. And a campaign-breaking bug of my own: #219 moved capacity onto the office, so "fly two vessels at once" - sixth in the chain, six quests before anything that could hold a second - could not be finished at all. It sits after the office now, and a new rule in the chain test refuses any quest that asks for more hulls than the player can yet hold. Verified by putting the bug back: it fails, naming both steps. Also: the conquest quest still said "take every capture point", which #211 deleted from the game. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019AJMdB7iuHuLFZM1aBu3GD
This commit is contained in:
parent
296b49c8b8
commit
aca04ad4cf
3 changed files with 136 additions and 12 deletions
|
|
@ -247,6 +247,34 @@ func _catalogue_cases() -> bool:
|
|||
print("a second hull at %d and banking at %d, both before anything costing more than one %d-unit hold" \
|
||||
% [grew_fleet, taught_banking, one_hold])
|
||||
|
||||
# --- T. a fleet the player cannot yet hold ---------------------------
|
||||
# #219 moved fleet capacity onto the Fleet Office, and the chain went on
|
||||
# asking for a second hull six quests before anything that could hold one
|
||||
# - an unfinishable quest that stalls the whole campaign. Rule S already
|
||||
# says a second hull comes before expensive structures; this says it
|
||||
# comes AFTER the one that makes it possible at all.
|
||||
var capacity_at: int = -1
|
||||
for i in range(QUESTS.count()):
|
||||
var goal_t: Dictionary = QUESTS.at(i).goal
|
||||
if String(goal_t.kind) == QUESTS.GOAL_BUILDING \
|
||||
and String(goal_t.building) == GameState.BUILDING_FLEET_OFFICE:
|
||||
capacity_at = i
|
||||
break
|
||||
if capacity_at < 0:
|
||||
return _fail("no quest ever builds a Fleet Office, so the fleet can never grow past %d" \
|
||||
% GameState.BASE_FLEET_SIZE)
|
||||
for i in range(QUESTS.count()):
|
||||
var goal_v: Dictionary = QUESTS.at(i).goal
|
||||
if String(goal_v.kind) != QUESTS.GOAL_FLEET_VESSEL:
|
||||
continue
|
||||
if int(goal_v.get("count", 1)) <= GameState.BASE_FLEET_SIZE:
|
||||
continue
|
||||
if i < capacity_at:
|
||||
return _fail("quest %s wants %d vessels at step %d, but the fleet cannot hold more than %d until step %d builds a Fleet Office" \
|
||||
% [QUESTS.at(i).id, int(goal_v.count), i, GameState.BASE_FLEET_SIZE, capacity_at])
|
||||
print("the fleet is grown at %d, before any quest asks for more than %d vessels" \
|
||||
% [capacity_at, GameState.BASE_FLEET_SIZE])
|
||||
|
||||
# --- Q. #141: research is taught before it is assumed ----------------
|
||||
# The first structure in the chain that needs a doctrine must have that
|
||||
# doctrine as a quest of its own first. Only the FIRST one: once the
|
||||
|
|
|
|||
Loading…
Reference in a new issue