const { estRange } = require('../rng'); function generate(ctx) { const { r, add, addPuzzle, motiveEvs, victim, killer, herring } = ctx; const motiveId = 'Одержимість'; motiveEvs.push(add({ id: 'mot_letters', side: 'field', at: { type: 'unit', unit: victim.home, slot: 'шафа' }, needsIdentity: true, title: 'Пачка листів без підпису', tag: 'мотив', detail: `Перев'язана шпагатом пачка — десятки листів, однаковий почерк, без підпису: «я бачу тебе щодня», «ти всміхаєшся не мені», «я вмію чекати». Найстаріший — дворічної давності. Останній закінчується інакше: «чекати я більше не буду».`, gives: { motive: true } })); motiveEvs.push(add({ id: 'mot_complaint', side: 'analyst', at: { type: 'sys', sys: 'crim' }, q: { sys: 'crim', kind: 'archive', match: [victim.last, victim.name] }, needsIdentity: true, title: 'Торішня заява жертви', tag: 'мотив', detail: `Заява про переслідування, торік, руху не дали: «невідома особа стежить, лишає квіти під дверима». Прикмети з заяви: ${killer.coat}, зріст приблизно ${estRange(r, killer.height)} см.`, gives: { filter: { attr: 'coat', val: killer.coat }, motive: true } })); motiveEvs.push(add({ id: 'mot_flowers', side: 'field', at: { type: 'person', cid: ctx.witnessFrom(ctx.citizens.filter(c => c.workplace === 'shop')).id }, requires: ['mot_complaint'], title: 'Свідчення з мінімаркету', tag: 'мотив', detail: `«Три гвоздики щоп'ятниці, завжди готівкою, завжди мовчки. Хто? Та ${killer.name} же. От, думаю собі, людина постійна.»`, gives: { pointsTo: killer.id } })); motiveEvs.push(add({ id: 'mot_shrine', side: 'field', at: { type: 'unit', unit: killer.home, slot: 'шафа' }, title: 'Стіна фотографій', tag: 'мотив', detail: 'На внутрішньому боці дверцят шафи — десятки фото жертви, знятих здалеку: біля дому, на набережній, крізь вітрину. Дати на звороті — два роки спостережень.', gives: { motive: true } })); const recapWhy = `Два роки листів без відповіді, квіти під дверима, фото здалеку. Автор листів — ${killer.name}. Одержимість скінчилась там, де закінчилось «я вмію чекати».`; const herringLead = `«Хочете про дивних? ${herring.name} вічно сидить біля вікна з біноклем. Каже — «за птахами». Ага, за птахами.»`; return { motiveId, recapWhy, herringLead }; } module.exports = { generate };