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,203 @@
|
||||
# Improvised Weapons
|
||||
|
||||
*The acquisition route you cannot deny — because you are obliged to furnish the cell, and the
|
||||
furniture is the raw material.*
|
||||
|
||||
You have to give a prisoner a bed. RimWorld will nag you until you do. That bed is a frame of wood,
|
||||
or steel, or — if you built a nice prison — plasteel. Give a disposed prisoner a season of
|
||||
unsupervised time with it and they will file a blade off it. **The prison's own furnishings are the
|
||||
arsenal, and better furniture is worse.**
|
||||
|
||||
## The shiv
|
||||
|
||||
`CB_Shiv` is a crude stabbing weapon: *"A blade filed off a bed frame and wrapped in cloth for a
|
||||
grip. Barely a weapon — but a barely-a-weapon in a cell you thought was empty is a dead guard."*
|
||||
|
||||
| Stat | Value |
|
||||
|---|---|
|
||||
| Tech level | Neolithic |
|
||||
| Mass | 0.4 kg |
|
||||
| `concealability` | **0.75** (hides very well — it rides on the body) |
|
||||
| `hideIn` | `OnBody \| InCell` |
|
||||
| Point (Stab) | power 7, cooldown 1.5 s |
|
||||
| Handle (Blunt) | power 5, cooldown 1.6 s |
|
||||
| `acquireWorker` | `AcquireWorker_Improvise` |
|
||||
| `useWorker` | none — an armed prisoner *is* the payload |
|
||||
|
||||
It is **stuffable** (`stuffCategories`: Metallic, Woody, Stony), which is the entire point of the
|
||||
harvest mechanic: a shiv's stats come from its material for free. A wood shiv is feeble; a plasteel
|
||||
one is vicious. You never furnished a cell thinking of it as an armoury, but that is what it is.
|
||||
|
||||
## Who whittles: the disposition gate
|
||||
|
||||
`AcquireWorker_Improvise.CanAcquire` is not "any prisoner." Three things must all be true:
|
||||
|
||||
1. **Held.** The pawn is a prisoner, slave, or ward patient (`IsHeld`). Free colonists do not whittle
|
||||
shivs in the commons — *yet* (the concealment layer already tracks them; only the authority to act
|
||||
on them is missing).
|
||||
2. **Disposed.** A seeded propensity roll:
|
||||
|
||||
```
|
||||
Propensity.Would(pawn, 0.10, SaltImprovise)
|
||||
```
|
||||
|
||||
Base chance **0.10**, scaled by Core's nature × nurture. It is seeded per pawn, so it is a *fixed
|
||||
fact* about them — the mistreated, high-propensity lifer chews his bed apart; the frightened cook
|
||||
never does, and never would have, no matter how many times you reload.
|
||||
3. **Material in reach.** There is a workable source (see below).
|
||||
|
||||
The base is deliberately low. Most prisoners are not making weapons. When one is, that is a fact
|
||||
about *who they are and how you keep them*, and the tell it leaves is meant to point you at exactly
|
||||
that pawn.
|
||||
|
||||
## The source: what counts as raw material
|
||||
|
||||
`FindSource` looks for the nearest reachable, damageable, usefully-stuffed piece of furniture:
|
||||
|
||||
- **Their own assigned bed first** — it is right there in the cell.
|
||||
- Otherwise the **closest artificial building within 12 tiles** that qualifies.
|
||||
|
||||
`IsWorkableSource` requires all of:
|
||||
|
||||
| Requirement | Why |
|
||||
|---|---|
|
||||
| Made of `Stuff` | you cannot whittle a blade out of nothing |
|
||||
| `useHitPoints` | it has to be damageable |
|
||||
| Stuff category is **Metallic, Woody, or Stony** | cloth and leather cannot be filed into a blade |
|
||||
| Reachable at `Touch` through `Danger.Deadly` | they have to get to it |
|
||||
|
||||
This is also the counter-play. A cell furnished only in cloth and hydroponics offers nothing to file.
|
||||
A steel bed offers a steel shiv. **What you build the cell out of decides whether it can become a
|
||||
weapon, and how nasty that weapon is.**
|
||||
|
||||
## Harvest by damage: the tell *is* the mechanic
|
||||
|
||||
Each poll the pawn makes progress, `OnHarvestTick` chips at the source:
|
||||
|
||||
```
|
||||
damage = max(1, round(source.MaxHitPoints × 0.012)) // Blunt, ~1.2% of max HP per worked poll
|
||||
```
|
||||
|
||||
The damage is not a side effect — it is the point. A gnawed bed is **probable cause**. The same
|
||||
poll that advances the shiv damages the furniture, and that visible wear is what
|
||||
[Warden Search](Warden-Search.md) reads to send a guard to the *right* prisoner first: a badly
|
||||
damaged bed shoots a prisoner to the top of the search priority list. Whittling a shiv is loud, in
|
||||
the only sense that matters — it leaves a mark you can act on.
|
||||
|
||||
Because the source takes real damage, a determined prisoner can **reduce a piece of furniture to
|
||||
wreckage and move on to the next**: if the source is destroyed before the shiv is finished,
|
||||
`FindSource` looks for another, and if there is none, the route **stalls** (progress is kept, not
|
||||
lost). A materially poor cell is a real defence — the prisoner cannot make progress with nothing to
|
||||
file.
|
||||
|
||||
## How long, and the material it becomes
|
||||
|
||||
Progress uses the default rate — roughly **1.5 unsupervised days** of active work — jittered ±25%
|
||||
each poll so no two shivs finish on the same schedule:
|
||||
|
||||
```
|
||||
progressPerPoll = 250 / (1.5 × 60000) × Rand.Range(0.75, 1.25)
|
||||
```
|
||||
|
||||
When progress reaches 1, the shiv is finished, **silently** — the player is told nothing. Two things
|
||||
happen:
|
||||
|
||||
- **Material carry-through.** `item.stuff = source.Stuff`. A wood bed yields a wood shiv, a plasteel
|
||||
bunk a plasteel one. When the shiv is later redeemed into a real `Thing`, it is made of exactly
|
||||
that material, and its combat stats follow.
|
||||
- **The record.** `CriminalRecord.contrabandMade` is incremented (Core's record). That number feeds
|
||||
the warden's future suspicion of this pawn and, if you run **Institution: Justice**, their security
|
||||
classification.
|
||||
|
||||
## The shiv comes out in a break — and who reaches for it
|
||||
|
||||
A hidden shiv is inert until a breakout. When a prisoner enters the `PrisonerEscape` or
|
||||
`PrisonerAssaultColony` duty, `JobGiver_UseContraband` offers to materialise what they are hiding —
|
||||
but a **weapon** only comes out for someone who would actually use it. That test is
|
||||
`Disposition.WouldArmSelf`, and it is the same gate `JobGiver_ArmSelf` uses to decide whether an
|
||||
escapee even bothers to pick a weapon off the floor.
|
||||
|
||||
This matters because **vanilla escapees never arm themselves at all.**
|
||||
`JobGiver_PickUpOpportunisticWeapon` exists and is simply absent from the escape duty tree, so a
|
||||
base-game prisoner walks out unarmed, always. Arming is genuinely new behaviour, so it is kept rare
|
||||
enough that when it happens you recognise *who* did it.
|
||||
|
||||
### `WouldArmSelf`
|
||||
|
||||
First a **hard gate**: a pawn who `WorkTagIsDisabled(Violent)` never arms, ever — a pacifist who
|
||||
picks up a rifle is not a rare event, it is a bug. Otherwise:
|
||||
|
||||
```
|
||||
chance = ArmDisposition(pawn) × ArmCircumstance(pawn)
|
||||
armed = WouldSeeded(pawn, min(chance, 0.85), SaltArm) // seeded — a fixed fact per pawn
|
||||
```
|
||||
|
||||
**Disposition** — who they are, fixed, nothing about today changes it:
|
||||
|
||||
```
|
||||
ArmDisposition = 0.10 (base) × trait × skill
|
||||
```
|
||||
|
||||
| Factor | Value |
|
||||
|---|---|
|
||||
| Bloodlust | ×2.5 (highest applicable trait only — not a stack) |
|
||||
| Psychopath | ×2.0 |
|
||||
| Brawler | ×1.8 |
|
||||
| Wimp | ×0.3 |
|
||||
| Kind | ×0.4 |
|
||||
| skill | `0.5 + max(Shooting, Melee)/20 × 1.5` → range **0.5 .. 2.0** |
|
||||
|
||||
*Being captured in a raid does not make someone a fighter* — plenty of prisoners are cooks and
|
||||
conscripts. A weapon is only worth grabbing if you know what to do with it, hence the skill term.
|
||||
|
||||
**Circumstance** — what is happening right now, live, not seeded:
|
||||
|
||||
| Condition | Effect | Reasoning |
|
||||
|---|---|---|
|
||||
| Health < 50% | ×0.4 | badly hurt people run or crawl; they don't seek a fight |
|
||||
| ≥ 2 other prisoners escaping within 12 tiles | ×2.0 | a crowd emboldens; one man slips out, six men riot |
|
||||
| An armed colonist within 20 tiles | ×1.8 | now a weapon is not bravado, it's the plan |
|
||||
|
||||
### Which weapon they reach for
|
||||
|
||||
`JobGiver_ArmSelf` prefers, in order:
|
||||
|
||||
1. **Their own dropped weapon** — the gun they carried when you downed them, still lying where it
|
||||
fell within 45 tiles. Vanilla remembers it in `Pawn_MindState.droppedWeapon` and then never uses
|
||||
the field for prisoners. *"A man walking back to the spot where his own rifle fell is a better
|
||||
story than a man rummaging through your stockpile."* A prisoner does not care that you marked it
|
||||
forbidden.
|
||||
2. **Anything to hand** within 18 tiles — but only for a pawn over a higher disposition floor
|
||||
(`WouldSeeded(pawn, 0.35, …)`). Rummaging a stockpile is a further step than grabbing your own gun
|
||||
back.
|
||||
|
||||
A concealed shiv slots into this the natural way: a prisoner who has been sitting on a blade and who
|
||||
is the sort to use it does not leave it in his pocket. `JobGiver_UseContraband` redeems it and moves
|
||||
it straight from inventory into the equipment slot. The pawn who would *not* arm keeps it hidden and
|
||||
runs — and the shiv survives to be found in a later search, or used in a later break.
|
||||
|
||||
## Not only shivs: the crude pick
|
||||
|
||||
`AcquireWorker_Improvise` is shared. The **crude pick** (`CB_DiggingTool`) is filed off furniture
|
||||
exactly the same way — same disposition gate, same damage tell — but it carries an `escapeWorker`
|
||||
instead of weapon stats, and its purpose is a tunnel rather than a fight. See [Tunnels](Tunnels.md).
|
||||
|
||||
## Quick reference
|
||||
|
||||
| Constant | Value | Meaning |
|
||||
|---|---|---|
|
||||
| Improvise base chance | 0.10 | before nature × nurture; seeded per pawn |
|
||||
| Damage per worked poll | ~1.2% of source max HP | Blunt; the visible tell |
|
||||
| Source search radius | 12 tiles | own bed first, then nearest workable furniture |
|
||||
| Time to finish a shiv | ~1.5 active days | jittered ±25% per poll |
|
||||
| Workable stuff | Metallic / Woody / Stony | cloth and leather cannot be whittled |
|
||||
| Shiv `concealability` | 0.75 | hard to find on the body |
|
||||
| Arm chance cap | 0.85 | after disposition × circumstance |
|
||||
| Own-weapon reach | 45 tiles | their dropped weapon |
|
||||
| Any-weapon reach | 18 tiles | scavenge floor 0.35 disposition |
|
||||
|
||||
---
|
||||
|
||||
*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