Re-package the aggregate: bundle Ward + ship the policing layer

Fold Ward into the single Institution install as its psychiatric-care
layer. package.sh now builds Ward clean and vendors Ward.dll plus its
defs and textures alongside the other layers, and the settings shim
gains a Ward (psychiatric care) checkbox that writes the shared
InstitutionSettings.ward flag.

Re-assembling also carries in Justice's now-shipping policing defs (the
constable work type and crime thoughts), so the aggregate finally
bundles colony crime and the weighed arrest as well. README updated to
five layers over one Core with policing shipped and Ward folded in;
adds the changelog, the Workshop preview, and the preview generator.
This commit is contained in:
flan
2026-07-15 20:10:56 +00:00
parent bd96c2c516
commit 2d46fef192
21 changed files with 1135 additions and 6 deletions
+8 -1
View File
@@ -5,7 +5,7 @@ namespace InstitutionSuite
{
/// <summary>
/// The single player-facing mod. It bundles the Institution feature layers -- Contraband,
/// Justice, Gangs -- into one install with a checkbox per layer, and it owns NO gameplay code of
/// Justice, Gangs, Ward -- into one install with a checkbox per layer, and it owns NO gameplay code of
/// its own. All it does is read the player's choices and write them into Core's shared
/// <see cref="Contraband.InstitutionSettings"/>, which the feature assemblies (shipped alongside
/// in this same mod) read at their entry points.
@@ -46,6 +46,10 @@ namespace InstitutionSuite
l.CheckboxLabeled("Policing (colony crime)",
ref settings.policing,
"The pre-arrest layer: your own colonists commit crimes on a spectrum (rarer in small, tight colonies), witnesses and a constable's work name the culprit, and a weighed arrest can end in a cell -- or a resisted breakout. A big behavioural change; turn it off to keep the rest of Justice without colony crime.");
l.Gap();
l.CheckboxLabeled("Ward (psychiatric care)",
ref settings.ward,
"Commit a prisoner for treatment instead of punishment: sustained counselling in a proper ward reduces the disorder that broke them and builds a recovery track toward discharge. Neglect a committed patient and they deteriorate. Uses Harmony.");
l.End();
settings.Apply(); // live: a toggle takes effect immediately for the gated behaviour
}
@@ -57,6 +61,7 @@ namespace InstitutionSuite
public bool justice = true;
public bool gangs = true;
public bool policing = true;
public bool ward = true;
/// <summary>Mirror the choices into Core's shared flags that every feature reads.</summary>
public void Apply()
@@ -65,6 +70,7 @@ namespace InstitutionSuite
Contraband.InstitutionSettings.justice = justice;
Contraband.InstitutionSettings.gangs = gangs;
Contraband.InstitutionSettings.policing = policing;
Contraband.InstitutionSettings.ward = ward;
}
public override void ExposeData()
@@ -73,6 +79,7 @@ namespace InstitutionSuite
Scribe_Values.Look(ref justice, "justice", true);
Scribe_Values.Look(ref gangs, "gangs", true);
Scribe_Values.Look(ref policing, "policing", true);
Scribe_Values.Look(ref ward, "ward", true);
base.ExposeData();
}
}