2PlayerGame/detective-game/casegen/motives/oldcrime.js

33 lines
3.2 KiB
JavaScript
Raw Normal View History

function generate(ctx) {
const { r, add, addPuzzle, motiveEvs, victim, killer, herring } = ctx;
const motiveId = 'Старі гріхи';
motiveEvs.push(add({
id: 'mot_confession', side: 'field', at: { type: 'unit', unit: victim.home, slot: 'письмовий стіл' }, needsIdentity: true,
title: 'Незакінчений лист', tag: 'мотив',
detail: 'Лист без адресата, перекреслений і початий заново: «Я більше не можу мовчати про те, що ми зробили у 2019-му. Сторож нас не виказав навіть у лікарні. Якщо не зізнаєшся ти — зізнаюсь я.»',
gives: { motive: true }
}));
motiveEvs.push(add({
id: 'mot_arch2019', side: 'analyst', at: { type: 'sys', sys: 'crim' }, q: { sys: 'crim', kind: 'archive', match: ['2019', 'хвиля'] }, requires: ['mot_confession'],
title: 'Архів: справа 2019 року', tag: 'мотив',
detail: `Крадіжка каси артілі «Хвиля»: сторож дістав травму голови, за рік помер. Підозрювали двох вантажників — недоведено, справу закрито. Прізвища в матеріалах: ${victim.last} і ${killer.last}. Адреса другого збігається з нинішньою: ${killer.home}.`,
gives: { pointsTo: killer.id, motive: true }
}));
motiveEvs.push(add({
id: 'mot_bank_old', side: 'analyst', at: { type: 'sys', sys: 'bank' }, q: { sys: 'bank', match: killer.name }, requires: ['mot_arch2019'],
title: 'Виписки за 2019 рік', tag: 'мотив',
detail: `Архів банку: восени 2019-го на рахунок ${killer.name} тричі заходила готівка — разом близько чверті вкраденої каси. Задекларованих доходів під ці суми немає.`,
gives: { motive: true }
}));
motiveEvs.push(add({
id: 'mot_oldtimer', side: 'field', at: { type: 'person', cid: ctx.witnessFrom(ctx.citizens.filter(c => c.job === 'пенсіонер')).id }, needsIdentity: true,
title: 'Пам\'ять старожила', tag: 'мотив',
detail: `«Ці двоє? Нерозлийвода були, разом вантажниками в артілі. А після тієї історії зі сторожем — ані слова одне одному, роками. Таке буває тільки після грошей або гріха. Або обох`
}));
const recapWhy = `У 2019-му двоє вантажників винесли касу артілі; сторож, що їх упізнав, помер за рік. Жертва вирішила зізнатися — і подзвонила спільнику. Спільник — ${killer.name}${ctx.g(killer, 'вирішив', 'вирішила')} інакше.`;
const herringLead = `«Питаєте про старе? ${herring.name} тоді теж біля артілі ${ctx.g(herring, 'крутився', 'крутилася')}, усі знали. Темна історія.»`;
return { motiveId, recapWhy, herringLead };
}
module.exports = { generate };