From 174e387bc30dc3211880d43e2a1e354b48173f84 Mon Sep 17 00:00:00 2001 From: forest2001 <41653574+realforest2001@users.noreply.github.com> Date: Sat, 21 Oct 2023 05:18:44 +0100 Subject: [PATCH] JAS Precautionary Charges (#4733) # About the pull request Adds Discretionary Arrest to JAS Moves above to new category, Precautionary Charges. Also moves Insanity and POW to this category. # Explain why it's good for the game Consistency with ML page. # Testing Photographs and Procedure
Screenshots & Videos Put screenshots and videos here with an empty line between the screenshots and the `
` tags.
# Changelog :cl: add: Added Discretionary Arrest to JAS. add: Added a new category to JAS, Precautionary Charges. Moves Insanity and POW to this category. /:cl: --- code/controllers/subsystem/init/law.dm | 22 +++++++++++-------- code/game/machinery/computer/sentencing.dm | 1 + code/modules/law/law.dm | 17 +++++++------- code/modules/law/laws/capital_crime.dm | 8 ------- code/modules/law/laws/precautionary_charge.dm | 18 +++++++++++++++ colonialmarines.dme | 1 + 6 files changed, 42 insertions(+), 25 deletions(-) create mode 100644 code/modules/law/laws/precautionary_charge.dm diff --git a/code/controllers/subsystem/init/law.dm b/code/controllers/subsystem/init/law.dm index 52fbbbeadf5d..c7ade815972c 100644 --- a/code/controllers/subsystem/init/law.dm +++ b/code/controllers/subsystem/init/law.dm @@ -8,20 +8,24 @@ SUBSYSTEM_DEF(law_init) var/list/minor_law = list() var/list/major_law = list() var/list/capital_law = list() + var/list/precautionary_law = list() /datum/controller/subsystem/law_init/Initialize() - for(var/L in subtypesof(/datum/law/optional_law)) - optional_law += new L + for(var/law in subtypesof(/datum/law/optional_law)) + optional_law += new law - for(var/L in subtypesof(/datum/law/minor_law)) - minor_law += new L + for(var/law in subtypesof(/datum/law/minor_law)) + minor_law += new law - for(var/L in subtypesof(/datum/law/major_law)) - major_law += new L + for(var/law in subtypesof(/datum/law/major_law)) + major_law += new law - for(var/L in subtypesof(/datum/law/capital_law)) - capital_law += new L + for(var/law in subtypesof(/datum/law/capital_law)) + capital_law += new law - laws = optional_law + minor_law + major_law + capital_law + for(var/law in subtypesof(/datum/law/precautionary_charge)) + precautionary_law += new law + + laws = optional_law + minor_law + major_law + capital_law + precautionary_law return SS_INIT_SUCCESS diff --git a/code/game/machinery/computer/sentencing.dm b/code/game/machinery/computer/sentencing.dm index 52a4159a2a90..3aa9b5a032a8 100644 --- a/code/game/machinery/computer/sentencing.dm +++ b/code/game/machinery/computer/sentencing.dm @@ -78,6 +78,7 @@ data["laws"] += list(create_law_data("Major Laws", SSlaw_init.major_law)) data["laws"] += list(create_law_data("Capital Laws", SSlaw_init.capital_law)) data["laws"] += list(create_law_data("Optional Laws", SSlaw_init.optional_law)) + data["laws"] += list(create_law_data("Precautionary Laws", SSlaw_init.precautionary_law)) return data diff --git a/code/modules/law/law.dm b/code/modules/law/law.dm index 7d5906047021..20245beda35d 100644 --- a/code/modules/law/law.dm +++ b/code/modules/law/law.dm @@ -13,13 +13,14 @@ var/special_punishment = "" //This is for special punishments //These are bitflags to indicate the type of crime it is. -#define OPTIONAL_CRIME 1 -#define MINOR_CRIME 2 -#define MAJOR_CRIME 4 -#define CAPITAL_CRIME 8 +#define OPTIONAL_CRIME (1<<0) +#define MINOR_CRIME (1<<1) +#define MAJOR_CRIME (1<<2) +#define CAPITAL_CRIME (1<<3) +#define PRECAUTIONARY_CHARGE (1<<4) //These are bitflags for special punishments -#define PERMABRIG 1 -#define DOUBLE_TIME 2 -#define SAME_AS_ACCUSED 4 -#define DEMOTION 8 +#define PERMABRIG (1<<0) +#define DOUBLE_TIME (1<<1) +#define SAME_AS_ACCUSED (1<<2) +#define DEMOTION (1<<3) diff --git a/code/modules/law/laws/capital_crime.dm b/code/modules/law/laws/capital_crime.dm index 8329374e91db..687c483c6593 100644 --- a/code/modules/law/laws/capital_crime.dm +++ b/code/modules/law/laws/capital_crime.dm @@ -10,10 +10,6 @@ name = "Desertion" desc = "Refusing to carry out the duties essential to one’s post or abandoning post unauthorized, without intent to return. (Retreating from the planet when the FOB is breached is not Desertion, refusing to return when ordered is)." -/datum/law/capital_law/insanity - name = "Insanity" - desc = "Acting in such a manner which makes the offender not sound clear of mind. The CMO or Synthetic can declare insanity on a Marine if the Marine is believed to not be of sound mind. The Marine once cleared to be of sound mind may be released from this particular charge." - /datum/law/capital_law/jailbreak_escape name = "Jailbreak/Escape" desc = "To escape, assist in an escape, attempt escape, or be willfully and knowingly broken out." @@ -30,7 +26,3 @@ /datum/law/capital_law/crimes_against_humanity name = "Crimes against Humanity" desc = "To engage in actions that violate human rights or otherwise are heinous acts against humans. Examples are torture, cannibalism and forced infection with Xenomorph larva." - -/datum/law/capital_law/prisoner_of_war - name = "Prisoner of War" - desc = "Being a member of a currently hostile faction to the USCM." diff --git a/code/modules/law/laws/precautionary_charge.dm b/code/modules/law/laws/precautionary_charge.dm new file mode 100644 index 000000000000..c06cd6ca5287 --- /dev/null +++ b/code/modules/law/laws/precautionary_charge.dm @@ -0,0 +1,18 @@ +/datum/law/precautionary_charge + severity = PRECAUTIONARY_CHARGE + brig_time = PERMABRIG_SENTENCE + special_punishment = "Not inclusive for execution criteria." + +/datum/law/precautionary_charge/discretionary_arrest + name = "Discretionary Detainment" + desc = "A discretionary charge used by Commanding Officers to detain personnel for any reason, for the safety and benefit of the operation or security. The duration of this charge is variable and may be pardoned/lifted at any time by the Commanding Officer." + special_punishment = "Not inclusive for execution criteria. May only be appealed to the Acting Commander or Provost/USCM HC." + +/datum/law/precautionary_charge/insanity + name = "Insanity" + desc = "Acting in such a manner which makes the offender not sound clear of mind. The CMO or Synthetic can declare insanity on a Marine if the Marine is believed to not be of sound mind. The Marine once cleared to be of sound mind may be released from this particular charge." + +/datum/law/precautionary_charge/prisoner_of_war + name = "Prisoner of War" + desc = "Being a member of a legitimate and recognised faction currently hostile to the USCM." + special_punishment = "Execution is forbidden barring exceptional circumstances." diff --git a/colonialmarines.dme b/colonialmarines.dme index be463ce8a289..b6967c2df59b 100644 --- a/colonialmarines.dme +++ b/colonialmarines.dme @@ -1748,6 +1748,7 @@ s// DM Environment file for colonialmarines.dme. #include "code\modules\law\laws\major_crime.dm" #include "code\modules\law\laws\minor_crime.dm" #include "code\modules\law\laws\optional.dm" +#include "code\modules\law\laws\precautionary_charge.dm" #include "code\modules\lighting\emissive_blocker.dm" #include "code\modules\lighting\lighting_area.dm" #include "code\modules\lighting\lighting_atom.dm"