Play PAPER HARBOUR with the criminal, and fix R-246
A pier that closed in 1974, a beacon still transmitting, and a probationer recruited out of a city with a caution the department has quietly lost. The generator's gap — somebody uses that agent's name before it is given — landed on him in phase 2, and he held it on Fast Talk 14 against 48 while the Field Lead missed the read. The case turned on a warrant card: the keepers of the ground want relieving by somebody official enough to take the duty on, and every agent carries exactly that. Bargain 27, favourable, rolled 33 — impression -1 to +1. The one unambiguously his moment was the log the first team locked in behind them: 11 against Sleight of Hand 50. R-246: a fumbled greeting cost nothing. contactOutcomes has said fumble/signal -1 since the social pillar was built, and impression was adjusted only inside the `offer` branch — so the -1 was computed on every botched greeting and thrown away. Impression now falls on a fumble at any stage and still only rises on an offer; the narrower fix matters because read's delta counts FACTS LEARNED, not standing, so applying the delta always would have paid the team impression for doing research. Also logged: a probationary criminal is out-sneaked by a career Field Lead (47 to 60) because trade skills use the agency tier bands — defensible, flagged, not changed. And one invented step of my own: I rolled Transposition to get them home after the extraction phase had already put them out. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
b8430c284b
commit
c60485de72
+10
-2
@@ -1946,8 +1946,16 @@ export async function resolveContact(caseFile, groupId, stage, actor, { circumst
|
||||
}
|
||||
}
|
||||
if (stage === "signal" && delta > 0) rec.pidginEstablished = true;
|
||||
if (stage === "offer") {
|
||||
rec.offerMadeThisEncounter = true;
|
||||
if (stage === "offer") rec.offerMadeThisEncounter = true;
|
||||
// Impression rises only on an OFFER — that is the stage that is meant to buy
|
||||
// standing — but it FALLS on a fumble at any stage. The adjustment used to sit
|
||||
// inside the `offer` branch alone, so the table's `fumble: { signal: -1 }` was
|
||||
// computed on every botched greeting and thrown away: you could insult a group in
|
||||
// their own language all afternoon and it cost you nothing.
|
||||
//
|
||||
// Note `read`'s delta counts FACTS LEARNED rather than standing, which is why this
|
||||
// is not simply "apply delta always" — that would pay you impression for research.
|
||||
if (stage === "offer" || delta < 0) {
|
||||
rec.impression = (Number(rec.impression) || 0) + delta;
|
||||
rec.value = Math.max(-3, Math.min(3, Number(rec.impression) || 0));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user