Two gaps between the first quests, both of the same kind: a step the chain assumed rather than asked for. #142 - "collect 5 ore" was followed straight by "build the mothership", which costs twenty. The first thing the chain ever asked for was four times what it had just taught, with nothing in between saying so. A stockpile quest sits between them now. #141 - the crafter quest's brief said "spend ore on the Shipyards doctrine, then put a ship crafter down", which is two unrelated things off one line: open a menu the player has never opened, and place a structure. Researching Shipyards is its own quest now, and it is the one that says where the research tree lives. Every later quest that needs a doctrine still only mentions it in passing - once is enough. That needed a goal kind for researching a doctrine, which the model did not have. Both are pinned as properties rather than as positions in a list. The chain must ask for at least as much ore as the first structure it wants costs; and the first structure that is gated behind a doctrine must have that doctrine as a quest of its own. Only the first - demanding one per building would double the chain for no teaching. One thing that fell out of writing those: the pile is exactly the starting fleet's hold. An interceptor carries 20 and the mothership costs 20, and before the mothership exists there is nowhere to bank anything, so the hold is the only store there is. It fits with no slack at all, so there is now an assertion saying so - a pile larger than the hold would be a quest that cannot be finished, and nothing else would have caught it.
This commit is contained in:
parent
970eafc1de
commit
90c34f6c74
3 changed files with 138 additions and 7 deletions
|
|
@ -3039,6 +3039,8 @@ func quest_progress(quest: Dictionary) -> Vector2i:
|
|||
need), need)
|
||||
QUESTS.GOAL_VESSEL_UNLOCKED:
|
||||
return Vector2i(1 if vessel_is_unlocked(String(goal.get("vessel", ""))) else 0, 1)
|
||||
QUESTS.GOAL_RESEARCH:
|
||||
return Vector2i(1 if is_unlocked(String(goal.get("node", ""))) else 0, 1)
|
||||
QUESTS.GOAL_EXPLORE:
|
||||
var sectors: int = int(goal.get("sectors", 1))
|
||||
return Vector2i(mini(explored_chunks.size(), sectors), sectors)
|
||||
|
|
|
|||
Loading…
Reference in a new issue