Fix repayments that overcharged, and act on the first Frontier playtest
A debt repayment took its whole instalment even when less was owed: four dollars owed at the store cost twenty. Content could not express "pay what is owed", so an add effect's amount may now be read from state, with a cap. Five repayments across both packs use it, and a conformance test holds every pack to it. The turn record now says which options were hidden, so the analyser stops counting doors nobody saw, and it reads only feedback logs. From the same session: wages are labelled as wages, a clamped change says where it stopped, two unreadable option labels are rewritten, the sale barn no longer offers what the player already owns, Ward hints at what the promotion waits for, and the office has five more events. DECISIONS #38-40. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01C6UDQ9o6L6Ey173U7XVou6
This commit is contained in:
co-authored by
Claude Opus 5
parent
d84ae495f4
commit
112e558dbb
@@ -98,14 +98,17 @@ export const hardTimes = [
|
||||
'A man from the lender calls the mailroom phone. Marlene answers it. She ' +
|
||||
'hands it to you without expression and then, notably, without leaving.',
|
||||
options: [
|
||||
// Both take what is owed up to their size, never more — the same defect
|
||||
// a real Frontier session found at the store, present here unplayed.
|
||||
// Money first, because both effects read `debt` before it moves. See #38.
|
||||
{
|
||||
id: 'pay_chunk',
|
||||
label: 'Pay a real chunk of it down.',
|
||||
label: 'Pay a real chunk of it down, up to $350.',
|
||||
requires: [{ path: 'money', op: '>=', value: 350 }],
|
||||
result: 'He is audibly disappointed.',
|
||||
effects: [
|
||||
{ path: 'money', op: 'add', value: -350 },
|
||||
{ path: 'debt', op: 'add', value: -350 },
|
||||
{ path: 'money', op: 'add', value: { from: 'debt', times: -1, cap: 350 } },
|
||||
{ path: 'debt', op: 'add', value: { from: 'debt', times: -1, cap: 350 } },
|
||||
{ path: 'reputation', op: 'add', value: 1 },
|
||||
],
|
||||
},
|
||||
@@ -113,10 +116,11 @@ export const hardTimes = [
|
||||
id: 'pay_minimum',
|
||||
label: 'Pay what you can.',
|
||||
requires: [{ path: 'money', op: '>=', value: 60 }],
|
||||
result: 'Sixty dollars, fifty of which is the loan.',
|
||||
result: 'Up to fifty against the loan, and ten for the privilege of the call.',
|
||||
effects: [
|
||||
{ path: 'money', op: 'add', value: -60 },
|
||||
{ path: 'debt', op: 'add', value: -50 },
|
||||
{ path: 'money', op: 'add', value: -10 },
|
||||
{ path: 'money', op: 'add', value: { from: 'debt', times: -1, cap: 50 } },
|
||||
{ path: 'debt', op: 'add', value: { from: 'debt', times: -1, cap: 50 } },
|
||||
],
|
||||
},
|
||||
{
|
||||
|
||||
@@ -15,7 +15,7 @@ export const corporateLadder = {
|
||||
blurb:
|
||||
'A modern office and a mailroom, two people who have been here longer ' +
|
||||
'than you, and a laminated org chart with your name not on it.',
|
||||
version: '0.1.0',
|
||||
version: '0.1.1',
|
||||
turnUnit: 'day',
|
||||
startingStage: 'mailroom',
|
||||
// What the interface calls the panel of people. The UI used to hardcode
|
||||
|
||||
Reference in New Issue
Block a user