Lower Earth launch cost to 2.1 so both deal ships can fly at once
CI / check (push) Successful in 5m26s Details

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
fireshaper 2026-10-05 13:41:16 -04:00
parent 60069b14f6
commit 6b56af7d1e
4 changed files with 11 additions and 3 deletions

View File

@ -1234,3 +1234,9 @@ Implementation decisions not spelled out in `memory-bank/implementation-plan.md`
- **Open balance issue, not changed here (needs a design call):** right after the deal a fresh player has ~890 cr, but fuelling both ships from Earth to the Moon costs ~921 cr (Courier 0.384 × 200 × 3 = 230; Clipper 0.384 × 600 × 3 = 691). So "dispatch the Courier and the Clipper at the same time" isn't possible on a fresh account without first earning more. The scripted check used a 1,000 cr developer top-up. Candidate fixes: more cash with the deal, a lower Clipper fuel rate, or a smaller Earth launch multiplier. - **Open balance issue, not changed here (needs a design call):** right after the deal a fresh player has ~890 cr, but fuelling both ships from Earth to the Moon costs ~921 cr (Courier 0.384 × 200 × 3 = 230; Clipper 0.384 × 600 × 3 = 691). So "dispatch the Courier and the Clipper at the same time" isn't possible on a fresh account without first earning more. The scripted check used a 1,000 cr developer top-up. Candidate fixes: more cash with the deal, a lower Clipper fuel rate, or a smaller Earth launch multiplier.
- **Short Clipper hops can lose money:** in the check, a Priority Mail job to the Moon paid 373 cr against 691 cr of fuel (pilot share 0). Another run (Medical Supplies) paid 1,083. The Clipper's 600 cr/M km fuel with Earth's ×3 launch cost makes Earth→Moon marginal; its payoff is long, fast legs. Left for the balance pass (Step 12.1). - **Short Clipper hops can lose money:** in the check, a Priority Mail job to the Moon paid 373 cr against 691 cr of fuel (pilot share 0). Another run (Medical Supplies) paid 1,083. The Clipper's 600 cr/M km fuel with Earth's ×3 launch cost makes Earth→Moon marginal; its payoff is long, fast legs. Left for the balance pass (Step 12.1).
- **The balance-script checks wait for the script** (Step 12.1), where the amended targets and the Lighter-first / Freighter-first policies are recorded. - **The balance-script checks wait for the script** (Step 12.1), where the amended targets and the Lighter-first / Freighter-first policies are recorded.
## Earth launch cost 3 → 2.1 (after Phase 10M, user decision)
- **Why:** after the deal a fresh player couldn't fuel the Courier and the Clipper from Earth at once (~921 cr against ~890). At 2.1 the pair costs ~645 cr (Courier 161, Clipper 484), and the scripted fresh-account check now flies both together with no top-up.
- **2.1, not 2:** Jupiter Cloud Platform is 2, and Earth must stay the most expensive launch (GDD §launch cost, `locations.test.ts`). Only Earth's value changed.
- **Effects:** every departure from Earth costs 30 % less fuel; payouts don't use the multiplier, so the difference is profit, and the deal loan is paid off sooner. Moon launches (0.5) stay 4.2× cheaper than Earth. The Step 3.x fuel hand calculation now uses 2.1.

View File

@ -294,3 +294,5 @@ Spec: `memory-bank/change-requests/CR-013-veterans-clipper.md` (received as "CR-
- [x] **Step 10M.5 — Plan amendments and regression.** CR-013 §6 applied: CR-001 §2 targets (first Market purchase 45–75 min, loan payoff under 4 h) and Steps 10A.5, 10A.8, 10A.13; CR-010 Steps 10G.1, 10G.3, 10G.4, 10G.7 (manual check replaced); CR-012 Step 10I.11 (balance policies replaced); plan Step 12.1 (re-check targets with two ships and the larger loan; Lighter-first vs Freighter-first to "own four ships"). Full suite 941 passing. Scripted manual check on a fresh account: deal gives Courier (avatar) + Clipper (Rosa Kell, Expensive Cargo 1) and a 66,600 cr loan; goals 3 and 4 incomplete; Courier and Clipper in flight at the same time (Clipper on a Priority Mail job to the Moon); on delivery goal 4 is ready. **Needed a 1,000 cr developer top-up:** after the deal the player has ~890 cr, and fuel for both ships Earth→Moon is ~921 cr (Courier 230 + Clipper 691). - [x] **Step 10M.5 — Plan amendments and regression.** CR-013 §6 applied: CR-001 §2 targets (first Market purchase 45–75 min, loan payoff under 4 h) and Steps 10A.5, 10A.8, 10A.13; CR-010 Steps 10G.1, 10G.3, 10G.4, 10G.7 (manual check replaced); CR-012 Step 10I.11 (balance policies replaced); plan Step 12.1 (re-check targets with two ships and the larger loan; Lighter-first vs Freighter-first to "own four ships"). Full suite 941 passing. Scripted manual check on a fresh account: deal gives Courier (avatar) + Clipper (Rosa Kell, Expensive Cargo 1) and a 66,600 cr loan; goals 3 and 4 incomplete; Courier and Clipper in flight at the same time (Clipper on a Priority Mail job to the Moon); on delivery goal 4 is ready. **Needed a 1,000 cr developer top-up:** after the deal the player has ~890 cr, and fuel for both ships Earth→Moon is ~921 cr (Courier 230 + Clipper 691).
**Phase 10M complete — waiting for review.** **Phase 10M complete — waiting for review.**
- [x] **Follow-up: Earth launch cost 3 → 2.1** (user decision). Fixes the post-deal fuel shortfall: the fresh-account check (deal, Courier and Clipper in flight together, Clipper Priority delivery unlocking goal 4) passes with no developer top-up. Fuel hand-calculation test updated.

View File

@ -16,7 +16,7 @@ export const locations: Location[] = [
landingRequirement: "atmospheric", landingRequirement: "atmospheric",
body: "earth", body: "earth",
sprite: "body-earth", sprite: "body-earth",
launchCostMultiplier: 3, launchCostMultiplier: 2.1,
launchRangeFactor: 1, launchRangeFactor: 1,
startsDiscovered: true, startsDiscovered: true,
bayLeasePrice: 1000, bayLeasePrice: 1000,

View File

@ -19,7 +19,7 @@ describe("fuel cost", () => {
}); });
it("matches a hand calculation", () => { it("matches a hand calculation", () => {
// 0.5M km × 200 credits/M km × Earth multiplier 3. // 0.5M km × 200 credits/M km × Earth multiplier 2.1.
expect(fuelCost(courier, earth, 0.5)).toBe(300); expect(fuelCost(courier, earth, 0.5)).toBeCloseTo(210);
}); });
}); });