deadhead-space-freight-tycoon/memory-bank/change-requests/CR-013-veterans-clipper.md

7.4 KiB
Raw Blame History

Change Request CR-013 — The Veteran's Clipper

Numbering note (added when implemented): this request arrived titled "CR-010 — The Veteran's Clipper" for "Phase 10J", applying to "CR-001 through CR-009". CR-010 to CR-012 and Phases 10J–10L already existed, so it is stored as CR-013 and done as Phase 10M: every "10J.n" below means 10M.n. Its decisions 0.5.64 and 0.5.65 are recorded as 0.5.82 The veteran's Clipper and 0.5.83 Deal loan; its amended "0.5.52 Veteran skill" is this plan's 0.5.70 Veteran pilot. Its "CR-007" (veteran pilot, steps 10G.n) is this repo's CR-010 (steps 10J.n); its "CR-009" (new ships and range, step 10I.11) is CR-012 (step 10L.11). The loan decision "CR-001 0.5.24" is plan §0.5.32.

Project: Deadhead: Space Freight Tycoon Applies to: a build with Phases 1–10 and CR-001 through CR-009 complete Do this: as Phase 10J, after Phase 10I and before Phase 11 Related docs: change-request-faster-start.md (CR-001), change-request-veteran-pilot.md (CR-007), change-request-new-ships-and-range.md (CR-009), implementation-plan.md, game-design-document.md, DECISIONS.md


1. Why

The player takes over the retiring owner's business, and CR-007 gave them his veteran pilot. Now that the Clipper exists (CR-009), the veteran brings the ship they fly. After the deal, the player has two crewed ships at Earth: the Courier flown by the avatar and the Clipper flown by the veteran.

This also changes a few things that assumed the player starts with one ship:

  • The veteran's skill becomes Expensive Cargo 1. The Clipper's small hold can't carry most Heavy goods, but it suits small, valuable cargo (Medical Supplies, Electronics, Low-G Pharmaceuticals) flown fast.
  • The Clipper is part of the loan: the player is buying the whole business. A free Mars-capable ship would be too big a shortcut.
  • Two first-session goals and one timing target change, because "buy a second ship" and "fly with the veteran" no longer make sense.
  • The first real buying decision becomes Lighter or Freighter.

2. The deal after this change

Item Before After
Ships Courier (avatar) Courier (avatar) and Clipper (veteran), both at Earth
Veteran Unassigned at Earth, level 2, Heavy Cargo 1 Crewing the Clipper at Earth, level 2, Expensive Cargo 1
HQ Earth bay Earth bay (unchanged)
Loan Courier + Earth bay lease Courier + Clipper + Earth bay lease

The veteran remains a normal hired pilot in every other respect: profit-share pay (CR-007), duty and rest (CR-004), and assigning or unassigning only at a bay.

3. Rules for this change

  • All rules in implementation-plan.md §0.1 apply: steps in order, one commit per step, each step's test must pass, packages/sim stays pure, all numbers and names live in packages/content.
  • Resetting the dev and test databases is fine.
  • Update existing tests whose expectations change. Update progress.md after every step.
  • Stop for the user's review at the end of Phase 10J.

4. Decisions

Record these in DECISIONS.md and implementation-plan.md §0.5.

  • 0.5.64 The veteran's Clipper. Accepting the deal also creates an owned Clipper at Earth with the veteran assigned to it.
  • 0.5.52 (amended) Veteran skill. The veteran starts at level 2 with Expensive Cargo 1 (was Heavy Cargo 1).
  • 0.5.65 Deal loan. The deal loan amount is Courier price + Clipper price + Earth bay lease.
  • CR-001 goals (amended). Goal 3 "Buy a second ship" becomes "Buy a ship from the Market". Goal 4 "Fly a contract with [veteran]" (CR-007) becomes "Complete a Priority contract".
  • CR-001 timing targets (amended). "Buy a second ship: 30–45 minutes" (CR-007) becomes "Buy a ship from the Market: 45–75 minutes". "First discovery: under 90 minutes" stays. Add: the loan is paid off within roughly the first two sessions of play (target: under 4 hours of active play).

5. Steps — Phase 10J

Step 10J.1 — Content: veteran skill and loan

  • Change the veteran's starting skill to Expensive Cargo 1.
  • Set the deal loan amount to Courier + Clipper + Earth bay lease (computed from content prices, not hard-coded).
  • Test: The veteran's starting skill allocation is Expensive Cargo 1 and still fits a level-2 pilot's skill points. The deal loan amount equals the sum of the Courier price, Clipper price, and Earth bay lease, and changes automatically if any of those prices change.

Step 10J.2 — Sim: goal changes

  • Goal 3 completes when the player buys any ship from the Market (ships received in the deal don't count).
  • Goal 4 completes when a Priority contract resolves, flown by any pilot.
  • Test: Accepting the deal does not complete goal 3; buying a Lighter does. Resolving a non-Priority contract does not complete goal 4; resolving a Priority contract does.

Step 10J.3 — Server: deal creates the Clipper

  • In the accept-deal transaction (CR-001 Step 10A.8, CR-007 Step 10G.4), also create an owned Clipper at Earth and assign the veteran to it. The veteran is no longer left unassigned.
  • Test: After accepting the deal, state has exactly two owned ships at Earth (Courier crewed by the avatar, Clipper crewed by the veteran), one Earth bay, the new loan amount, and the veteran at level 2 with Expensive Cargo 1. Both ships can be dispatched immediately. A failed or repeated accept creates no extra ships.

Step 10J.4 — Client: deal modal

  • The deal modal lists both ships and the veteran, for example: "Old Halvorsen is retiring. He'll sell you his Courier, his Clipper, and his Earth bay — and Rosa Kell, who's flown that Clipper for twelve years. Pay him back out of every job." Names come from content. Show the new loan amount.
  • Test: Component test: the modal shows both ships, the veteran's name and bio, and a loan amount matching state.

Step 10J.5 — Plan amendments and regression

  • Apply the amendments in §6.
  • Run the full suite.
  • Test: CI is green. The balance script (once it exists) meets the amended timing targets, including the loan payoff target, and runs two policies for the first Market purchase, Lighter-first and Freighter-first; both reach "own four ships" within 25% of each other's time. Manual check: accept the deal on a fresh account, dispatch the Courier and the Clipper at the same time, and complete a Priority contract with the Clipper to unlock goal 4.

6. Amendments

Where Change
Plan 0.5 Add 0.5.64 and 0.5.65; amend 0.5.52.
CR-001 10A.5 Goal 3 text and condition changed (10J.2).
CR-001 10A.8, 10A.13 Deal also includes the Clipper; larger loan; modal text (10J.3, 10J.4).
CR-001 §2 targets First Market purchase target 45–75 minutes; loan payoff target added.
CR-007 10G.1 Veteran's starting skill is Expensive Cargo 1 (10J.1).
CR-007 10G.3 Goal 4 is now "Complete a Priority contract" (10J.2).
CR-007 10G.4 Veteran starts crewing the Clipper, not unassigned (10J.3).
CR-007 10G.7 manual check Replace the rest-and-swap walkthrough with the 10J.5 manual check.
CR-009 10I.11 The second-ship balance check (Lighter-first vs Clipper-first) is replaced by the first-purchase check in 10J.5.
Plan 12.1 Re-check all timing targets with the larger loan and two starting ships.

7. Out of scope

Choosing which ship comes with the deal, starting with more than two ships, changing the Courier's role, and anything else in implementation-plan.md §0.3.