// A deliberately small pack that exercises every engine feature: gates, // once-only events, cooldowns, weighted draws, a conditional branch and a // clamped stat. Engine tests run against this, never against real content, so // tuning the game cannot break the test suite. export const testPack = { id: 'testpack', name: 'Test Pack', version: '1.0.0', turnUnit: 'day', startingStage: 'floor', state: { 'money': { initial: 100, min: -500, max: 10000 }, 'skills.talking': { initial: 1, min: 0, max: 10 }, 'flags.in_debt': { initial: false }, 'notable': { initial: [] }, }, relationshipStats: { likes_you: { initial: 50, min: 0, max: 100 }, fears_you: { initial: 50, min: 0, max: 100 }, }, characters: [ { id: 'chief', name: 'The Chief', role_type: 'boss', description: 'Tall, tired.' }, { id: 'pat', name: 'Pat', role_type: 'rival', description: 'Smiles too much.' }, ], events: [ { id: 'routine', stage: 'floor', weight: 100, description: 'Another ordinary shift.', options: [ { id: 'work', label: 'Put your head down and work.', effects: [ { path: 'money', op: 'add', value: 10 }, { path: 'relationships.chief.likes_you', op: 'add', value: 2 }, ], }, { id: 'charm', label: 'Talk your way into an easier job.', requires: [{ path: 'skills.talking', op: '>=', value: 3 }], effects: [{ path: 'skills.talking', op: 'add', value: 1 }], }, { id: 'practice', label: 'Chat with Pat all afternoon.', effects: [ { path: 'skills.talking', op: 'add', value: 1 }, { path: 'money', op: 'add', value: -5 }, { path: 'relationships.pat.likes_you', op: 'add', value: 3 }, ], }, ], }, { id: 'first_day', stage: 'floor', weight: 1000, once: true, description: 'Your first day.', options: [ { id: 'arrive', label: 'Arrive on time.', effects: [{ path: 'notable', op: 'push', value: 'Showed up on time, once.' }], }, ], }, { id: 'hard_times', stage: 'floor', weight: 1000, requires: [{ path: 'money', op: '<', value: 0 }], description: 'Rent is due and you do not have it.', options: [ { id: 'loan', label: 'Take the loan.', effects: [ { path: 'money', op: 'add', value: 200 }, { path: 'flags.in_debt', op: 'set', value: true }, ], }, { id: 'beg', label: 'Ask Pat for help.', effects: [ { path: 'money', op: 'add', value: 50 }, { path: 'relationships.pat.fears_you', op: 'add', value: -10 }, ], }, ], }, { id: 'audit', stage: 'floor', weight: 5, cooldown: 10, description: 'An auditor is wandering the floor.', options: [{ id: 'nod', label: 'Nod politely.', effects: [] }], }, ], }; export default testPack;