Skip to content

Commit

Permalink
JAS Precautionary Charges (#4733)
Browse files Browse the repository at this point in the history
# About the pull request
Adds Discretionary Arrest to JAS
Moves above to new category, Precautionary Charges. Also moves Insanity
and POW to this category.
<!-- Remove this text and explain what the purpose of your PR is.

Mention if you have tested your changes. If you changed a map, make sure
you used the mapmerge tool.
If this is an Issue Correction, you can type "Fixes Issue #169420" to
link the PR to the corresponding Issue number #169420.

Remember: something that is self-evident to you might not be to others.
Explain your rationale fully, even if you feel it goes without saying.
-->

# Explain why it's good for the game
Consistency with ML page.
# Testing Photographs and Procedure
<details>
<summary>Screenshots & Videos</summary>

Put screenshots and videos here with an empty line between the
screenshots and the `<details>` tags.

</details>


# 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:
  • Loading branch information
realforest2001 authored Oct 21, 2023
1 parent 6628559 commit 174e387
Show file tree
Hide file tree
Showing 6 changed files with 42 additions and 25 deletions.
22 changes: 13 additions & 9 deletions code/controllers/subsystem/init/law.dm
Original file line number Diff line number Diff line change
Expand Up @@ -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
1 change: 1 addition & 0 deletions code/game/machinery/computer/sentencing.dm
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
17 changes: 9 additions & 8 deletions code/modules/law/law.dm
Original file line number Diff line number Diff line change
Expand Up @@ -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)
8 changes: 0 additions & 8 deletions code/modules/law/laws/capital_crime.dm
Original file line number Diff line number Diff line change
Expand Up @@ -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."
Expand All @@ -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."
18 changes: 18 additions & 0 deletions code/modules/law/laws/precautionary_charge.dm
Original file line number Diff line number Diff line change
@@ -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."
1 change: 1 addition & 0 deletions colonialmarines.dme
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down

0 comments on commit 174e387

Please sign in to comment.