// Leaving the mailroom. // // The offer is an ordinary event whose effects happen to include // `{ path: 'stage', op: 'set', value: 'dispatch' }` — the engine has no notion // of a promotion, only of a stage that determines which events are in the pool. // // Declining is a real option, not a soft no. It comes back after a cooldown, // and the brainstorm is explicit that staying lower to build skills or // relationships should be a strategy rather than a mistake. export const promotion = [ { id: 'dispatch_offer', stage: 'mailroom', weight: 800, cooldown: 12, // Deliberately a long way in. The mailroom is where most of this pack // lives, and a promotion at turn 25 would skip it — the offer should read // as the end of a career there, not an early exit from it. requires: [ { path: 'reputation', op: '>=', value: 72 }, { path: 'turn', op: '>=', value: 40 }, // Two ways to be in the room: somebody upstairs wants to help you, or // you have got good enough at asking. { any: [ { path: 'relationships.marlene.wants_to_help_you', op: '>=', value: 68 }, { path: 'skills.negotiation', op: '>=', value: 42 }, ], }, ], description: 'The Dispatch post is real, it is open, and Marlene has put your name on ' + 'a list of one. She says the coordinator job is mostly the same work with ' + 'a different phone. She does not say it is more money, because she assumes ' + 'you can read.', options: [ { id: 'accept', label: 'Take it.', result: 'You are given a desk with a window in it. Trevor helps you carry ' + 'your things up and does not say anything the whole way.', effects: [ { path: 'stage', op: 'set', value: 'dispatch' }, { path: 'flags.promoted', op: 'set', value: true }, { path: 'reputation', op: 'add', value: 5 }, { path: 'relationships.trevor.likes_you', op: 'add', value: -12 }, { path: 'relationships.trevor.fears_you', op: 'add', value: 6 }, { path: 'notable', op: 'push', value: 'Took the Dispatch post.' }, ], }, { id: 'accept_and_recommend', label: 'Take it, and put Trevor up for the mailroom.', requires: [{ path: 'relationships.trevor.likes_you', op: '>=', value: 50 }], result: 'Marlene raises an eyebrow and writes his name down. Trevor finds out ' + 'from the notice board and is unbearable about it for a week.', effects: [ { path: 'stage', op: 'set', value: 'dispatch' }, { path: 'flags.promoted', op: 'set', value: true }, { path: 'flags.recommended_trevor', op: 'set', value: true }, { path: 'reputation', op: 'add', value: 3 }, { path: 'relationships.trevor.likes_you', op: 'add', value: 12 }, { path: 'relationships.trevor.wants_to_help_you', op: 'add', value: 8 }, { path: 'notable', op: 'push', value: 'Took Dispatch, and put Trevor up for the mailroom.' }, ], }, { id: 'decline', label: 'Not yet.', result: 'Marlene takes the list back. She has been on a list of one before ' + 'and does not ask why.', effects: [ { path: 'skills.negotiation', op: 'add', value: 2 }, { path: 'reputation', op: 'add', value: -2 }, { path: 'relationships.marlene.wants_to_help_you', op: 'add', value: -6 }, { path: 'notable', op: 'push', value: 'Turned down Dispatch.' }, ], }, ], }, ]; export default promotion;