2PlayerGame/detective-game/casegen/motives/oldcrime.js
2026-08-15 14:07:39 +03:00

32 lines
3.2 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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 };