diff --git a/Assemblies/Contraband.dll b/Assemblies/Contraband.dll index 7a0a872..b662493 100644 Binary files a/Assemblies/Contraband.dll and b/Assemblies/Contraband.dll differ diff --git a/Assemblies/Institution.dll b/Assemblies/Institution.dll index 6bd9b98..05e286c 100644 Binary files a/Assemblies/Institution.dll and b/Assemblies/Institution.dll differ diff --git a/Assemblies/InstitutionCore.dll b/Assemblies/InstitutionCore.dll index 0448473..e9fa63e 100644 Binary files a/Assemblies/InstitutionCore.dll and b/Assemblies/InstitutionCore.dll differ diff --git a/Assemblies/InstitutionCorrections.dll b/Assemblies/InstitutionCorrections.dll new file mode 100644 index 0000000..3c7bd50 Binary files /dev/null and b/Assemblies/InstitutionCorrections.dll differ diff --git a/Assemblies/InstitutionGangs.dll b/Assemblies/InstitutionGangs.dll index 7a184c1..bb39324 100644 Binary files a/Assemblies/InstitutionGangs.dll and b/Assemblies/InstitutionGangs.dll differ diff --git a/Assemblies/InstitutionJustice.dll b/Assemblies/InstitutionJustice.dll deleted file mode 100644 index 3953f60..0000000 Binary files a/Assemblies/InstitutionJustice.dll and /dev/null differ diff --git a/Assemblies/InstitutionPolicing.dll b/Assemblies/InstitutionPolicing.dll new file mode 100644 index 0000000..973996b Binary files /dev/null and b/Assemblies/InstitutionPolicing.dll differ diff --git a/Assemblies/Ward.dll b/Assemblies/Ward.dll index bfeeea5..6b4f4c5 100644 Binary files a/Assemblies/Ward.dll and b/Assemblies/Ward.dll differ diff --git a/Source/Institution/InstitutionMod.cs b/Source/Institution/InstitutionMod.cs index bdc7a8d..cd96217 100644 --- a/Source/Institution/InstitutionMod.cs +++ b/Source/Institution/InstitutionMod.cs @@ -35,17 +35,17 @@ namespace InstitutionSuite ref settings.contraband, "Concealment and intake, improvised shivs, Prison-Architect tunnels, warden search, and warden corruption."); l.Gap(); - l.CheckboxLabeled("Justice", - ref settings.justice, - "Classification, the deterrence feedback loop, discipline and reform, parole, and prisoner recreation (Regime)."); + l.CheckboxLabeled("Corrections", + ref settings.corrections, + "Classification, discipline and reform, parole, and prisoner recreation (Regime)."); l.Gap(); l.CheckboxLabeled("Gangs", ref settings.gangs, - "Gangs as contraband economies: joining by disposition, smuggling networks, rivalry, and fights-as-crime. Leans on Contraband and Justice."); + "Gangs as contraband economies: joining by disposition, smuggling networks, rivalry, and fights-as-crime. Leans on Contraband and Corrections."); l.Gap(); 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."); + "The enforcement and order 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. Also owns the deterrence feedback loop and prison riots. A big behavioural change; turn it off to run the rest of the suite without colony crime."); l.Gap(); l.CheckboxLabeled("Ward (psychiatric care)", ref settings.ward, @@ -58,7 +58,7 @@ namespace InstitutionSuite public class InstitutionModSettings : ModSettings { public bool contraband = true; - public bool justice = true; + public bool corrections = true; public bool gangs = true; public bool policing = true; public bool ward = true; @@ -67,7 +67,7 @@ namespace InstitutionSuite public void Apply() { Contraband.InstitutionSettings.contraband = contraband; - Contraband.InstitutionSettings.justice = justice; + Contraband.InstitutionSettings.corrections = corrections; Contraband.InstitutionSettings.gangs = gangs; Contraband.InstitutionSettings.policing = policing; Contraband.InstitutionSettings.ward = ward; @@ -76,7 +76,7 @@ namespace InstitutionSuite public override void ExposeData() { Scribe_Values.Look(ref contraband, "contraband", true); - Scribe_Values.Look(ref justice, "justice", true); + Scribe_Values.Look(ref corrections, "corrections", true); Scribe_Values.Look(ref gangs, "gangs", true); Scribe_Values.Look(ref policing, "policing", true); Scribe_Values.Look(ref ward, "ward", true); diff --git a/Tools/package.sh b/Tools/package.sh index e1a86e2..0d8d6fa 100755 --- a/Tools/package.sh +++ b/Tools/package.sh @@ -1,8 +1,8 @@ #!/usr/bin/env bash # Assemble the shippable, drop-in "Institution" mod into this repo. # -# The Institution suite's code lives in SEPARATE sibling repos (rimworld-core, -contraband, -justice, -# -gangs, -ward) as independent projects/DLLs -- that is what keeps it modular and splittable. For DISTRIBUTION +# The Institution suite's code lives in SEPARATE sibling repos (rimworld-core, -contraband, -policing, +# -corrections, -gangs, -ward) as independent projects/DLLs -- that is what keeps it modular and splittable. For DISTRIBUTION # they are vendored into ONE mod folder (this repo) with one About.xml and a settings shim that toggles # each layer. This script rebuilds the sibling DLLs clean (no self-test) and copies them + Contraband's # Defs in here, so the repo is a complete installable mod. @@ -17,43 +17,49 @@ HERE="$(cd "$(dirname "$0")/.." && pwd)" SIB="$(dirname "$HERE")" CORE="$SIB/rimworld-core" CB="$SIB/rimworld-contraband" -JUST="$SIB/rimworld-justice" +POL="$SIB/rimworld-policing" +COR="$SIB/rimworld-corrections" GANGS="$SIB/rimworld-gangs" WARD="$SIB/rimworld-ward" command -v dotnet >/dev/null || { echo "dotnet not on PATH" >&2; exit 1; } echo "==> building the engine + feature DLLs (clean, no self-test)" -dotnet build "$CORE/Source/Core/Core.csproj" -c Release -v q --nologo -dotnet build "$JUST/Source/Justice/Justice.csproj" -c Release -v q --nologo -dotnet build "$CB/Source/Contraband/Contraband.csproj" -c Release -v q --nologo -dotnet build "$GANGS/Source/Gangs/Gangs.csproj" -c Release -v q --nologo -dotnet build "$WARD/Source/Ward/Ward.csproj" -c Release -v q --nologo +dotnet build "$CORE/Source/Core/Core.csproj" -c Release -v q --nologo +dotnet build "$POL/Source/Policing/Policing.csproj" -c Release -v q --nologo +dotnet build "$COR/Source/Corrections/Corrections.csproj" -c Release -v q --nologo +dotnet build "$CB/Source/Contraband/Contraband.csproj" -c Release -v q --nologo +dotnet build "$GANGS/Source/Gangs/Gangs.csproj" -c Release -v q --nologo +dotnet build "$WARD/Source/Ward/Ward.csproj" -c Release -v q --nologo echo "==> vendoring DLLs into Assemblies/" mkdir -p "$HERE/Assemblies" rm -f "$HERE/Assemblies/"*.dll # clear old layout dotnet build "$HERE/Source/Institution/Institution.csproj" -c Release -v q --nologo # (re-)emit Institution.dll here -cp "$CORE/Assemblies/InstitutionCore.dll" "$HERE/Assemblies/" -cp "$CB/Assemblies/Contraband.dll" "$HERE/Assemblies/" -cp "$JUST/Assemblies/InstitutionJustice.dll" "$HERE/Assemblies/" -cp "$GANGS/Assemblies/InstitutionGangs.dll" "$HERE/Assemblies/" -cp "$WARD/Assemblies/Ward.dll" "$HERE/Assemblies/" +cp "$CORE/Assemblies/InstitutionCore.dll" "$HERE/Assemblies/" +cp "$CB/Assemblies/Contraband.dll" "$HERE/Assemblies/" +cp "$POL/Assemblies/InstitutionPolicing.dll" "$HERE/Assemblies/" +cp "$COR/Assemblies/InstitutionCorrections.dll" "$HERE/Assemblies/" +cp "$GANGS/Assemblies/InstitutionGangs.dll" "$HERE/Assemblies/" +cp "$WARD/Assemblies/Ward.dll" "$HERE/Assemblies/" echo "==> vendoring the feature content" for d in Defs Patches Languages Textures; do rm -rf "$HERE/$d" [[ -e "$CB/$d" ]] && cp -r "$CB/$d" "$HERE/$d" done -# Justice ships defs of its own (crime thoughts, etc.); merge them into the same Defs/ tree. -if [[ -e "$JUST/Defs" ]]; then - mkdir -p "$HERE/Defs" - cp -r "$JUST/Defs/." "$HERE/Defs/" -fi -# Justice now also ships a texture (the security marker); vendor it so the aggregate isn't magenta. -if [[ -e "$JUST/Textures" ]]; then +# Policing + Corrections ship defs of their own (crime thoughts; corrections hediffs/jobs/interaction +# modes/thoughts/regime/marker); merge them into the same Defs/ tree. +for M in "$POL" "$COR"; do + if [[ -e "$M/Defs" ]]; then + mkdir -p "$HERE/Defs" + cp -r "$M/Defs/." "$HERE/Defs/" + fi +done +# Corrections ships a texture (the security marker); vendor it so the aggregate isn't magenta. +if [[ -e "$COR/Textures" ]]; then mkdir -p "$HERE/Textures" - cp -r "$JUST/Textures/." "$HERE/Textures/" + cp -r "$COR/Textures/." "$HERE/Textures/" fi # Ward ships defs (interaction mode, hediffs, treatment station, room role), its own textures, AND a # Patches/ dir -- the Rim Disorders integration that marks disorders treatable (conditional, so it