Re-package with the corrections layer bundled; sync the wiki (Rehabilitation page, loop update)
This commit is contained in:
@@ -0,0 +1,36 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Defs>
|
||||
|
||||
<!--
|
||||
The visible reform track, on Core's shared treatment engine (the same one Ward's recovery rides).
|
||||
A rehab session advances it; it decays without sustained sessions, so rehabilitation has to be
|
||||
kept up. It is a readout and a pressure, not the parole gate itself: parole keys off the reform
|
||||
SCORE and the security grade, and the "Ready for parole" alert fires from that.
|
||||
-->
|
||||
<HediffDef>
|
||||
<defName>Institution_Reforming</defName>
|
||||
<label>reforming</label>
|
||||
<description>This prisoner is being rehabilitated — worked with toward turning a corner. Progress decays without sustained sessions. When they have reformed enough and their security grade is low enough, they can be paroled back into the colony.</description>
|
||||
<hediffClass>HediffWithComps</hediffClass>
|
||||
<defaultLabelColor>(0.55, 0.85, 0.65)</defaultLabelColor>
|
||||
<scenarioCanAdd>false</scenarioCanAdd>
|
||||
<maxSeverity>1.0</maxSeverity>
|
||||
<isBad>false</isBad>
|
||||
<comps>
|
||||
<li Class="HediffCompProperties_SeverityPerDay">
|
||||
<severityPerDay>-0.08</severityPerDay>
|
||||
</li>
|
||||
</comps>
|
||||
<stages>
|
||||
<li>
|
||||
<minSeverity>0</minSeverity>
|
||||
<label>reforming</label>
|
||||
</li>
|
||||
<li>
|
||||
<minSeverity>0.999</minSeverity>
|
||||
<label>reformed</label>
|
||||
</li>
|
||||
</stages>
|
||||
</HediffDef>
|
||||
|
||||
</Defs>
|
||||
@@ -0,0 +1,20 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Defs>
|
||||
|
||||
<!-- Distinct defNames from the interaction modes: [DefOf] binds by name, so a job and a mode that
|
||||
shared one name could not both be reached. -->
|
||||
<JobDef>
|
||||
<defName>Institution_RehabilitateJob</defName>
|
||||
<driverClass>Contraband.JobDriver_Rehabilitate</driverClass>
|
||||
<reportString>rehabilitating TargetA.</reportString>
|
||||
<casualInterruptible>false</casualInterruptible>
|
||||
</JobDef>
|
||||
|
||||
<JobDef>
|
||||
<defName>Institution_ParoleJob</defName>
|
||||
<driverClass>Contraband.JobDriver_Parole</driverClass>
|
||||
<reportString>paroling TargetA.</reportString>
|
||||
<casualInterruptible>false</casualInterruptible>
|
||||
</JobDef>
|
||||
|
||||
</Defs>
|
||||
@@ -0,0 +1,30 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Defs>
|
||||
|
||||
<!--
|
||||
Two non-exclusive prisoner modes, exactly the shape Ward's psychiatric-care mode uses (and Prison
|
||||
Labor's seven). Non-exclusive so they STACK: set Rehabilitate to run the reform programme, and
|
||||
Parole so a warden releases them the moment they are eligible; or set Rehabilitate alone and
|
||||
parole by hand when the alert fires.
|
||||
-->
|
||||
<PrisonerInteractionModeDef>
|
||||
<defName>Institution_Rehabilitate</defName>
|
||||
<label>rehabilitate</label>
|
||||
<listOrder>120</listOrder>
|
||||
<isNonExclusiveInteraction>true</isNonExclusiveInteraction>
|
||||
<mustBeAwake>false</mustBeAwake>
|
||||
<allowOnWildMan>false</allowOnWildMan>
|
||||
<allowInClassicIdeoMode>true</allowInClassicIdeoMode>
|
||||
</PrisonerInteractionModeDef>
|
||||
|
||||
<PrisonerInteractionModeDef>
|
||||
<defName>Institution_Parole</defName>
|
||||
<label>parole when reformed</label>
|
||||
<listOrder>210</listOrder>
|
||||
<isNonExclusiveInteraction>true</isNonExclusiveInteraction>
|
||||
<mustBeAwake>false</mustBeAwake>
|
||||
<allowOnWildMan>false</allowOnWildMan>
|
||||
<allowInClassicIdeoMode>true</allowInClassicIdeoMode>
|
||||
</PrisonerInteractionModeDef>
|
||||
|
||||
</Defs>
|
||||
@@ -0,0 +1,46 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Defs>
|
||||
|
||||
<ThoughtDef>
|
||||
<defName>Institution_Rehabilitated</defName>
|
||||
<thoughtClass>Thought_Memory</thoughtClass>
|
||||
<durationDays>2</durationDays>
|
||||
<stackLimit>3</stackLimit>
|
||||
<stages>
|
||||
<li>
|
||||
<label>counselled</label>
|
||||
<description>Someone sat with me and talked it through. Maybe I can turn this around.</description>
|
||||
<baseMoodEffect>5</baseMoodEffect>
|
||||
</li>
|
||||
</stages>
|
||||
</ThoughtDef>
|
||||
|
||||
<ThoughtDef>
|
||||
<defName>Institution_Paroled</defName>
|
||||
<thoughtClass>Thought_Memory</thoughtClass>
|
||||
<durationDays>8</durationDays>
|
||||
<stackLimit>1</stackLimit>
|
||||
<stages>
|
||||
<li>
|
||||
<label>paroled</label>
|
||||
<description>They gave me a second chance and let me back in. I mean to earn it.</description>
|
||||
<baseMoodEffect>12</baseMoodEffect>
|
||||
</li>
|
||||
</stages>
|
||||
</ThoughtDef>
|
||||
|
||||
<ThoughtDef>
|
||||
<defName>Institution_ReformNeglected</defName>
|
||||
<thoughtClass>Thought_Memory</thoughtClass>
|
||||
<durationDays>3</durationDays>
|
||||
<stackLimit>4</stackLimit>
|
||||
<stages>
|
||||
<li>
|
||||
<label>left to rot</label>
|
||||
<description>They said they would help me change, then forgot I exist. Why should I bother?</description>
|
||||
<baseMoodEffect>-6</baseMoodEffect>
|
||||
</li>
|
||||
</stages>
|
||||
</ThoughtDef>
|
||||
|
||||
</Defs>
|
||||
@@ -0,0 +1,36 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Defs>
|
||||
|
||||
<!--
|
||||
New WorkGiver subclasses, not patches: they inherit WorkGiver_Warden.ShouldSkip (so they respect
|
||||
Prison Commons areas for free) and are invisible to Custom Prisoner Interactions, which only
|
||||
patches the named vanilla warden givers.
|
||||
-->
|
||||
<WorkGiverDef>
|
||||
<defName>Institution_WardenRehabilitate</defName>
|
||||
<label>rehabilitate prisoner</label>
|
||||
<giverClass>Contraband.WorkGiver_Warden_Rehabilitate</giverClass>
|
||||
<workType>Warden</workType>
|
||||
<verb>rehabilitate</verb>
|
||||
<gerund>rehabilitating</gerund>
|
||||
<priorityInType>65</priorityInType>
|
||||
<requiredCapacities>
|
||||
<li>Talking</li>
|
||||
<li>Hearing</li>
|
||||
</requiredCapacities>
|
||||
</WorkGiverDef>
|
||||
|
||||
<WorkGiverDef>
|
||||
<defName>Institution_WardenParole</defName>
|
||||
<label>parole prisoner</label>
|
||||
<giverClass>Contraband.WorkGiver_Warden_Parole</giverClass>
|
||||
<workType>Warden</workType>
|
||||
<verb>parole</verb>
|
||||
<gerund>paroling</gerund>
|
||||
<priorityInType>85</priorityInType>
|
||||
<requiredCapacities>
|
||||
<li>Talking</li>
|
||||
</requiredCapacities>
|
||||
</WorkGiverDef>
|
||||
|
||||
</Defs>
|
||||
Reference in New Issue
Block a user