// Corporate Ladder — the default content pack for The Ladder. // // A modern office, the mailroom, and two people who have been there longer // than you. Everything the engine needs to run this setting is in this file // and the ones it imports; the engine itself knows nothing about mailrooms. import { characters } from './characters.js'; import { events } from './events/index.js'; export const corporateLadder = { id: 'corporateladder', name: 'Corporate Ladder', version: '0.1.0', turnUnit: 'day', startingStage: 'mailroom', stages: { mailroom: { label: 'Mailroom', title: 'Mail Associate I' }, }, // Money is deliberately tight: the baseline is a slow bleed (see `upkeep`), // so the pressure that eventually forces a hard-times turn comes from doing // nothing about it, and most of the ways out cost standing rather than cash. state: { 'money': { initial: 400, min: -5000, max: 1000000 }, 'debt': { initial: 0, min: 0, max: 1000000 }, 'reputation': { initial: 50, min: 0, max: 100 }, 'skills.negotiation': { initial: 5, min: 0, max: 100 }, 'skills.logistics': { initial: 5, min: 0, max: 100 }, 'flags.took_loan': { initial: false }, 'flags.holds_the_envelope': { initial: false }, 'flags.covered_for_trevor': { initial: false }, // Moments the retrospective reads back. Content decides what is memorable; // the full turn-by-turn record lives in history regardless. 'notable': { initial: [] }, }, // Nobody fears a new hire. Trevor's defaults are lower still — see // characters.js, where he starts two weeks ahead of you and knows it. relationshipStats: { likes_you: { initial: 50, min: 0, max: 100 }, fears_you: { initial: 10, min: 0, max: 100 }, wants_to_help_you: { initial: 40, min: 0, max: 100 }, }, // Applied at the end of every turn, after the player's choice. Net -25 a day // before anything else happens, so a run drifts toward trouble in about // sixteen days if it is left alone. upkeep: [ { label: 'Wages', effects: [{ path: 'money', op: 'add', value: 115 }] }, { label: 'Living costs', effects: [{ path: 'money', op: 'add', value: -140 }] }, // The service charge steps up with the size of the debt, so the spiral // tightens instead of flattening out. A step function in data costs the // engine nothing; a percentage would have needed a multiply operation. { label: 'Loan service charge', requires: [{ path: 'debt', op: '>', value: 0 }], effects: [{ path: 'money', op: 'add', value: -10 }], }, { label: 'Loan service charge (arrears)', requires: [{ path: 'debt', op: '>=', value: 1000 }], effects: [{ path: 'money', op: 'add', value: -15 }], }, { label: 'Loan service charge (collections)', requires: [{ path: 'debt', op: '>=', value: 2000 }], effects: [{ path: 'money', op: 'add', value: -25 }], }, ], characters, events, }; export default corporateLadder;