Aggregate the whole suite wiki onto the Institution page
Wiki/Home.md is the suite's front door; every layer's wiki now mirrors here under Wiki/<layer>/ (core, contraband, justice, gangs, ward), so the whole suite reads in one place with the index linking to the local pages. The layer repos stay canonical -- Tools/sync-wiki.sh refreshes the aggregated copy on demand. The README's main page points to it.
This commit is contained in:
@@ -0,0 +1,141 @@
|
||||
# Corruption
|
||||
|
||||
*A search is only as thorough as the warden running it, and a warden is a person with their own
|
||||
diligence and their own price.*
|
||||
|
||||
The counter to contraband is the [warden search](Warden-Search.md) — but a search is not a machine.
|
||||
It is a human being with traits and a mood, and Contraband models that human being on **two axes,
|
||||
both read off the same vanilla traits, mood, and relationships — no new stat to maintain**:
|
||||
|
||||
| Axis | Question | Effect on a search |
|
||||
|---|---|---|
|
||||
| **Diligence** | How hard do they look? | multiplies the find chance |
|
||||
| **Corruption** | How bent are they? | a flat chance to look away — and a route *into* the prison |
|
||||
|
||||
This is *"what turns 'the game vs the player' into 'the player's own guards, each with an angle.'"*
|
||||
The prisoner you can control. The guard you assigned to watch them, you cannot.
|
||||
|
||||
## Diligence — how hard they look
|
||||
|
||||
`WardenDisposition.Diligence(warden)` returns 0..1 and multiplies the whole find chance in
|
||||
`JobDriver_SearchPawn`. A lax or miserable warden misses things a dutiful one would turn up.
|
||||
|
||||
```
|
||||
d = 0.55 // baseline
|
||||
d += 0.1 × degreeOf(Industriousness) // Lazy lowers, Industrious raises (per degree)
|
||||
d += 0.15 if Abrasive // no qualms turning a cell over
|
||||
d -= 0.20 if Kind // a gentle hand
|
||||
d += 0.10 if Psychopath // does not care how it feels
|
||||
d ×= Lerp(0.6, 1.1, mood) // a miserable warden phones it in
|
||||
d = clamp01(d)
|
||||
```
|
||||
|
||||
| Trait / factor | Δ Diligence | Reasoning |
|
||||
|---|---|---|
|
||||
| Industrious | +0.1 per degree | a hard worker searches hard |
|
||||
| Lazy | −0.1 per degree | a lazy one frisks gently |
|
||||
| Abrasive | +0.15 | happy to toss a cell |
|
||||
| Psychopath | +0.10 | thoroughness without squeamishness |
|
||||
| Kind | −0.20 | reluctant to be rough |
|
||||
| Mood | ×0.6 (miserable) .. ×1.1 (content) | morale is thoroughness |
|
||||
|
||||
## Corruption — their price
|
||||
|
||||
`WardenDisposition.Corruption(warden)` returns 0..1. In a search, a bent warden gets a flat chance
|
||||
to **look away** on each item they would otherwise have a shot at finding:
|
||||
|
||||
```
|
||||
lookAwayChance = Corruption(warden) × 0.6 // rolled per hidden item, before the find roll
|
||||
```
|
||||
|
||||
```
|
||||
c = 0.04 // baseline — most guards are mostly honest
|
||||
c += 0.40 if Greedy // has a price
|
||||
c += 0.15 if Kind // bends the rules out of sympathy
|
||||
c -= 0.10 if Ascetic // wants nothing, cannot be bought
|
||||
c -= 0.05 if Abrasive
|
||||
c ×= Lerp(1.6, 0.7, mood) // a desperate, miserable warden is more temptable
|
||||
c = clamp01(c)
|
||||
```
|
||||
|
||||
| Trait / factor | Δ Corruption | Reasoning |
|
||||
|---|---|---|
|
||||
| Greedy | +0.40 | the classic bent guard — everyone has a number |
|
||||
| Kind | +0.15 | looks the other way out of sympathy, not money |
|
||||
| Ascetic | −0.10 | wants nothing, so cannot be bought |
|
||||
| Abrasive | −0.05 | too surly to do anyone a favour |
|
||||
| Mood | ×1.6 (miserable) .. ×0.7 (content) | a happy guard is harder to tempt |
|
||||
|
||||
## The Kind warden is a double liability
|
||||
|
||||
Read the two formulas together and one trait jumps out. **Kind** *lowers* Diligence (−0.20) **and**
|
||||
*raises* Corruption (+0.15). The gentle guard both frisks softly and bends the rules out of pity —
|
||||
the worst warden you can put on a contraband detail, and the least obvious one, because "kind" reads
|
||||
as a virtue everywhere else in the game. Meanwhile **mood** cuts the same way on both axes: a
|
||||
miserable warden looks *less* hard and is *more* temptable. A depressed guard is a sieve at both
|
||||
ends.
|
||||
|
||||
## Worked examples
|
||||
|
||||
Find chance for a hidden item is `baseFind × Diligence`, with a separate `lookAway = Corruption ×
|
||||
0.6` chance to ignore it entirely. Assume a mid-skill warden whose raw find chance on a shiv is
|
||||
around 0.30 before disposition:
|
||||
|
||||
| Warden | Diligence | Corruption | Look-away/item | Net on a 0.30 shiv |
|
||||
|---|---|---|---|---|
|
||||
| Neutral, content | ~0.61 | ~0.03 | ~2% | thorough-ish: ~0.18 find |
|
||||
| Abrasive + Psychopath, content | ~0.88 | ~0.02 | ~1% | a nightmare for prisoners: ~0.26 find |
|
||||
| Greedy, content | ~0.61 | ~0.31 | ~18% | looks capable, pockets bribes |
|
||||
| Greedy, **miserable** | ~0.37 | ~0.62 | ~37% | ignores contraband over a third of the time |
|
||||
| Kind + **miserable** | ~0.25 | ~0.27 | ~16% | a sieve at both ends: ~0.07 find |
|
||||
|
||||
(Numbers rounded; mood taken as content ≈ 100% or miserable ≈ 20%.) The takeaway is that **who you
|
||||
assign to search matters as much as whether you search at all.** A greedy, miserable warden is not a
|
||||
guard — he is a supply line you are paying to pretend otherwise.
|
||||
|
||||
## The bent warden as a supply route *in*
|
||||
|
||||
Corruption is not only "looks away." The `Corruption.Smuggle` primitive is the reaching-*in* half — a
|
||||
guard who slips a prisoner contraband through the very same `Conceal` door a smuggler or a gangmate
|
||||
uses:
|
||||
|
||||
```csharp
|
||||
ThingDef Corruption.Smuggle(warden, prisoner, tracker)
|
||||
// picks a random OnBody-hideable contraband and Conceal()s it onto the prisoner; returns the def
|
||||
```
|
||||
|
||||
Only what can ride on a body gets slipped across a handshake (`OnBody`). The method is the **act
|
||||
itself**; the caller decides *who* and *when*, gated on `WardenDisposition.Corruption`. In Contraband
|
||||
on its own, this primitive is exposed but not yet wired to an in-game trigger — it is the seam
|
||||
**Institution: Gangs** drives when a gang's outside members pay a bent warden to make a delivery, and
|
||||
the thing a planned secure-zone checkpoint that frisks *guards* is meant to catch. Search-side
|
||||
corruption (looking away) is fully live today; reach-in corruption is the hook the rest of the suite
|
||||
plugs into. See [Compatibility](Compatibility.md).
|
||||
|
||||
## How to play with it
|
||||
|
||||
- **Vet your wardens.** A Greedy or Kind pawn on prison duty is a liability the trait tooltip won't
|
||||
warn you about. Ascetic and Industrious make the best searchers; Psychopath and Abrasive are
|
||||
brutally effective if you can stomach them.
|
||||
- **Watch mood.** A prison-duty warden in a slump is failing at both jobs — searching *and* not
|
||||
smuggling. Keep your guards content or rotate them out.
|
||||
- **Redundancy beats brilliance.** Because each search is one shot per prisoner per day and even a
|
||||
good warden misses a well-hidden shiv, a *second* diligent warden over time matters more than a
|
||||
single perfect search.
|
||||
|
||||
## Quick reference
|
||||
|
||||
| Constant | Value | Meaning |
|
||||
|---|---|---|
|
||||
| Diligence baseline | 0.55 | before traits and mood |
|
||||
| Corruption baseline | 0.04 | most guards are mostly honest |
|
||||
| Diligence mood scale | ×0.6 .. ×1.1 | miserable → content |
|
||||
| Corruption mood scale | ×1.6 .. ×0.7 | miserable → content |
|
||||
| Look-away multiplier | ×0.6 | applied to Corruption, per item |
|
||||
| Smuggle payload | `OnBody` contraband only | what fits in a handshake |
|
||||
|
||||
---
|
||||
|
||||
*Part of the **Institution** suite — Core · Contraband · Justice · Gangs, alongside Foul Play and
|
||||
Ward. Each stands alone; together they interlock.*
|
||||
*Developed with substantial assistance from Claude (Anthropic).*
|
||||
Reference in New Issue
Block a user