Skip to content

feat(maps): persist the Incuna Sam objective - #63

Open
zoeyrose wants to merge 7 commits into
1.xfrom
feat/57-incuna-sam-objective
Open

feat(maps): persist the Incuna Sam objective#63
zoeyrose wants to merge 7 commits into
1.xfrom
feat/57-incuna-sam-objective

Conversation

@zoeyrose

@zoeyrose zoeyrose commented Aug 10, 2026

Copy link
Copy Markdown
Member

Summary

  • start a persistent Lost Memories / Speak with Sam Goodberry objective when a player first reaches Incuna after completing Escaping the Deserted Island
  • attach the guarded arrival event to both the initial tutorial lower deck and the later return-voyage deck
  • complete the new part only through Incuna's quest-bearing Sam, starting the existing The Priest part before completing the handoff
  • preserve missing, active, completed, and failed legacy 1.x quest state without duplicate parts or rewards
  • add real Classic Python-plugin coverage for both map triggers, collected Sam dialogue, reward idempotence, and legacy ordered dispatch

Compatibility

The arrival script requires both a completed Deserted Island quest and no existing Lost Memories object. The new speak_sam part is authored after every legacy part so InterfaceBuilder's first-match dispatch remains unchanged for existing saves. Repeated arrivals and active/completed/failed legacy records are no-ops.

Coordinates

  • Base: 1.x at 8b50df52355ae6ae4d529838272e41b5d678c84b
  • Head: feat/57-incuna-sam-objective at 5f9092bf45f7e36b6240bc6132ddd12fce09aeaa
  • Commits:
    • 00c01c00 feat(maps): persist the Incuna Sam objective
    • c1b91c52 fix(maps): preserve the Incuna Sam fallback
    • d7dcb25b fix(maps): protect active Lost Memories saves
    • 3bd9a55b fix(maps): trigger the first Incuna objective
    • 90ff5f77 test(maps): cover Lost Memories arrival triggers
    • ab1c8ba2 fix(maps): preserve legacy Lost Memories dispatch
    • 5f9092bf test(maps): harden Lost Memories compatibility

Validation

  • python3 tools/validate.py — 86 tests plus archetype, map, catalog, contract, collection, runtime, and release checks pass
  • python3 tools/world_content_audit.py quests — pass
  • python3 -m compileall -q maps/python tools — pass
  • ./atrinik build server --profile issue-57-incuna-sam --test — the managed CTest command reports 36/36, including worldmaker, server-assetspath-migration, and protocol checks
  • issue-owned embedded suite — 5/5 tests pass for both arrival maps, actual collected Incuna Sam, one-time reward, legacy dispatch, and active/completed/failed state preservation
  • git diff --check 8b50df52355ae6ae4d529838272e41b5d678c84b...HEAD — pass
  • final-head GitHub checks — Content validation, conventional title, Ubuntu syntax prototypes, and Windows syntax prototypes pass

Classic's existing Python-plugin CTest adapter currently returns success even though the full embedded log contains two unrelated baseline failures in unchanged tests. All five issue-owned cases are individually logged ok in that full run and pass together in a filtered run. The upstream result-propagation defect is outside this content diff; no passing claim here relies on those unrelated cases.

Gameplay verification

An isolated fresh basic-player scenario on the maintained 1.x stack completed the ordinary Deserted Island quest and voyage. Before speaking to Sam, the journal contained exactly one active Sam objective. It remained after 170 /time messages filled the 150-message window and after a clean QUIC relog. Talking to the Sam on /shattered_islands/world_4_85 completed that part and started The Priest.

The scenario used wrapper-owned runtime/assets/{data,client-maps} through --assetspath; region maps and client assets were delivered by the server's QUIC asset path. No legacy http/data state or HTTP runtime option was created or used. The server topology was stopped and the scenario reset after verification.

Review

Iterative complete-diff review found and fixed the missing first-arrival map trigger, missing-quest fallback, active-save protection, legacy InterfaceBuilder ordering, and durable compatibility-test gaps. The final fresh review pass at 5f9092bf found zero actionable content findings.

Closes #57

@zoeyrose
zoeyrose marked this pull request as ready for review August 10, 2026 10:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Review

Development

Successfully merging this pull request may close these issues.

1 participant