[codex] Allow Timeline advance to reveal obtained epochs - #93
Open
CompleteDotTech wants to merge 1 commit into
Open
[codex] Allow Timeline advance to reveal obtained epochs#93CompleteDotTech wants to merge 1 commit into
CompleteDotTech wants to merge 1 commit into
Conversation
Contributor
Author
|
@codex review @gemini-code-assist review The romgenie review PR feedback has been addressed and its review threads are resolved. Please review the upstream PR against the final branch state. |
Owner
|
I'm kinda tempted to merge your pull request without my own testing cuz I have no timeline unlocks at hand xD I will test everything out before releasing. Need a bit more time for that. |
Contributor
Author
|
This functionality isn't great, I believe I solved it before (I should look at my previous solution). |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Fixes #92.
This PR resolves the remaining Timeline automation gap after the earlier Timeline safety guard. The main-menu
timelineaction still refuses to enter unsafe pending-unlock states, but once the game is already onmenu_screen: "timeline",menu_selectwithoption: "advance"can now complete the safe reveal flow for visible obtained epoch slots.Problem
Current behavior can strand agents after an epoch unlock:
{ "state_type": "menu", "menu_screen": "timeline", "options": [ { "name": "advance", "enabled": true }, { "name": "back", "enabled": true } ], "obtained_unrevealed_count": 1 }Before this change, calling:
{ "action": "menu_select", "option": "advance" }could still return
manual_action_required: trueand leave the agent stuck even though the normal Timeline UI had a visible revealable epoch slot.What Changed
TryRevealVisibleTimelineEpochfor the already-open Timelineadvancepath.NEpochSlotcontrols whose state isEpochSlotState.Obtainedand whose model id matches a pendingObtainedepoch.ForceClick()on the slot, preserving the game's ownNEpochSlot.OnRelease()path:SaveManager.Instance.RevealEpoch(model.Id)retry: truewhile no matching visible slot has spawned yet.ObtainedfromObtainedNoSlotso no-slot epochs do not retry forever.ObtainedNoSlotwithout a queued expansion or visible slot returnsmanual_action_required: trueanddone: true.Documentation
Updated:
docs/raw-full.mddocs/raw-simplified.mdmcp/server.pytool docstringThe docs now describe:
advancebehavior on an already-open Timeline screenObtainedNoSlotmanual-action limitReview Flow
A review PR was opened first on the fork as requested:
Automated review feedback was addressed before opening this upstream PR:
slot.model?.Idcheck before matching pending epoch ids.ObtainedNoSlothandling out of visible-slot automation to avoid indefinite retry responses.Validation
Build validation on the upstream-based branch:
Release build/install validation:
Live game validation against STS2 v0.103.2:
Initial Timeline state after entering via the manual gate:
{ "state_type": "menu", "menu_screen": "timeline", "obtained_unrevealed_count": 1, "epochs": [ { "id": "IRONCLAD5_EPOCH", "state": "Obtained" } ] }Reveal action:
{ "action": "menu_select", "option": "advance" }Response:
{ "status": "ok", "message": "Revealing timeline epoch IRONCLAD5_EPOCH", "pending_epoch_ids": ["IRONCLAD5_EPOCH"], "revealed_epoch_id": "IRONCLAD5_EPOCH" }Follow-up state:
{ "state_type": "menu", "menu_screen": "timeline", "obtained_unrevealed_count": 0, "revealed_count": 7, "epochs": [ { "id": "IRONCLAD5_EPOCH", "state": "Revealed" } ] }Full Timeline completion was also verified instead of stopping at the state flip:
{ "status": "ok", "message": "Closed epoch inspect screen" }then:
{ "status": "ok", "message": "No more epochs to advance", "done": true }Final Timeline state remained
obtained_unrevealed_count: 0.Risk
The risky main-menu path remains blocked. The new automation only acts after Timeline is already open and only clicks spawned visible obtained slots that match pending
Obtainedprogress entries. States that cannot produce a visible slot return a non-retry manual-action response.