Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

JAS Precautionary Charges #4733

Merged
merged 1 commit into from
Oct 21, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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 @@ -1715,6 +1715,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
Loading