diff --git a/code/__DEFINES/genetics_defines.dm b/code/__DEFINES/genetics_defines.dm
index d437121dbbb6..b04336f6c4a3 100644
--- a/code/__DEFINES/genetics_defines.dm
+++ b/code/__DEFINES/genetics_defines.dm
@@ -18,6 +18,7 @@
#define DISABILITY_FLAG_DIZZY (1<<9)
#define DISABILITY_FLAG_CHAV (1<<10)
#define DISABILITY_FLAG_DEAF (1<<11)
+#define DISABILITY_FLAG_PARAPLEGIC (1<<12)
///////////////////////////////////////
// MUTATIONS
diff --git a/code/__HELPERS/trait_helpers.dm b/code/__HELPERS/trait_helpers.dm
index efecfbbce5e5..d3e325ef7527 100644
--- a/code/__HELPERS/trait_helpers.dm
+++ b/code/__HELPERS/trait_helpers.dm
@@ -139,6 +139,7 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai
#define TRAIT_RESPAWNABLE "can_respawn_as_ghost_roles"
#define TRAIT_BEING_OFFERED "offered"
#define TRAIT_BLIND "blind"
+#define TRAIT_PARAPLEGIC "paraplegic"
#define TRAIT_MUTE "mute"
#define TRAIT_DEAF "deaf"
#define TRAIT_NEARSIGHT "nearsighted"
diff --git a/code/_globalvars/genetics.dm b/code/_globalvars/genetics.dm
index 716ecf9d6152..8625b66ba270 100644
--- a/code/_globalvars/genetics.dm
+++ b/code/_globalvars/genetics.dm
@@ -1,5 +1,6 @@
///////////
GLOBAL_VAR_INIT(blindblock, 0)
+GLOBAL_VAR_INIT(paraplegicblock, 0)
GLOBAL_VAR_INIT(colourblindblock, 0)
GLOBAL_VAR_INIT(deafblock, 0)
GLOBAL_VAR_INIT(hulkblock, 0)
diff --git a/code/_globalvars/traits.dm b/code/_globalvars/traits.dm
index 1211797e7674..1485e84fb549 100644
--- a/code/_globalvars/traits.dm
+++ b/code/_globalvars/traits.dm
@@ -7,6 +7,7 @@ GLOBAL_LIST_INIT(traits_by_type, list(
/mob = list(
"TRAIT_BEING_OFFERED" = TRAIT_BEING_OFFERED,
"TRAIT_BLIND" = TRAIT_BLIND,
+ "TRAIT_PARAPLEGIC" = TRAIT_PARAPLEGIC,
"TRAIT_MUTE" = TRAIT_MUTE,
"TRAIT_DEAF" = TRAIT_DEAF,
"TRAIT_NEARSIGHT" = TRAIT_NEARSIGHT,
diff --git a/code/datums/components/zombie_regen.dm b/code/datums/components/zombie_regen.dm
index da04e6fc21c8..689aa036bd6c 100644
--- a/code/datums/components/zombie_regen.dm
+++ b/code/datums/components/zombie_regen.dm
@@ -68,6 +68,7 @@
zomboid.CureMute()
zomboid.CureDeaf()
zomboid.CureEpilepsy()
+ zomboid.CureParaplegia()
zomboid.CureCoughing()
zomboid.CureNervous()
zomboid.SetEyeBlind(0)
diff --git a/code/game/dna/mutations/disabilities.dm b/code/game/dna/mutations/disabilities.dm
index b27f573ef01f..0d064e8f24c3 100644
--- a/code/game/dna/mutations/disabilities.dm
+++ b/code/game/dna/mutations/disabilities.dm
@@ -100,7 +100,6 @@
..()
M.update_blind_effects()
-
/datum/mutation/disability/colourblindness
name = "Colourblindness"
activation_messages = list("You feel a peculiar prickling in your eyes while your perception of colour changes.")
@@ -228,6 +227,18 @@
/datum/mutation/disability/mute/on_say(mob/M, message)
return ""
+/datum/mutation/disability/paraplegic
+ name = "Paraplegic"
+ desc = "Your legs don't work, even with prosthetics."
+ activation_messages = list("MY LEG!")
+ deactivation_messages = list("You can feel your legs again.")
+ instability = -GENE_INSTABILITY_MAJOR
+ traits_to_add = list(TRAIT_PARAPLEGIC)
+
+/datum/mutation/disability/paraplegic/New()
+ ..()
+ block = GLOB.paraplegicblock
+
////////////////////////////////////////
// MARK: Harmful to everyone
////////////////////////////////////////
diff --git a/code/game/gamemodes/setupgame.dm b/code/game/gamemodes/setupgame.dm
index e4944cadef8f..5139a33ad013 100644
--- a/code/game/gamemodes/setupgame.dm
+++ b/code/game/gamemodes/setupgame.dm
@@ -64,6 +64,7 @@
// Disabilities
GLOB.lispblock = getAssignedBlock("LISP", numsToAssign)
GLOB.muteblock = getAssignedBlock("MUTE", numsToAssign)
+ GLOB.paraplegicblock= getAssignedBlock("PARAPLEGIC", numsToAssign)
GLOB.radblock = getAssignedBlock("RAD", numsToAssign)
GLOB.fatblock = getAssignedBlock("FAT", numsToAssign)
GLOB.chavblock = getAssignedBlock("CHAV", numsToAssign)
diff --git a/code/game/jobs/job/engineering_jobs.dm b/code/game/jobs/job/engineering_jobs.dm
index 93b5bc5d2cb7..d5db8c18b782 100644
--- a/code/game/jobs/job/engineering_jobs.dm
+++ b/code/game/jobs/job/engineering_jobs.dm
@@ -32,7 +32,7 @@
)
minimal_player_age = 21
exp_map = list(EXP_TYPE_ENGINEERING = 1200)
- blacklisted_disabilities = list(DISABILITY_FLAG_BLIND, DISABILITY_FLAG_DEAF, DISABILITY_FLAG_MUTE, DISABILITY_FLAG_DIZZY, DISABILITY_FLAG_NERVOUS, DISABILITY_FLAG_LISP)
+ blacklisted_disabilities = list(DISABILITY_FLAG_BLIND, DISABILITY_FLAG_DEAF, DISABILITY_FLAG_MUTE, DISABILITY_FLAG_DIZZY, DISABILITY_FLAG_NERVOUS, DISABILITY_FLAG_LISP, DISABILITY_FLAG_PARAPLEGIC)
missing_limbs_allowed = FALSE
outfit = /datum/outfit/job/chief_engineer
important_information = "This role requires you to coordinate a department. You are required to be familiar with Standard Operating Procedure (Engineering), basic job duties, and act professionally (roleplay)."
diff --git a/code/game/jobs/job/security_jobs.dm b/code/game/jobs/job/security_jobs.dm
index 87393d49d43f..bd7bedd7e488 100644
--- a/code/game/jobs/job/security_jobs.dm
+++ b/code/game/jobs/job/security_jobs.dm
@@ -39,7 +39,7 @@
)
minimal_player_age = 21
exp_map = list(EXP_TYPE_SECURITY = 1200)
- blacklisted_disabilities = list(DISABILITY_FLAG_BLIND, DISABILITY_FLAG_DEAF, DISABILITY_FLAG_MUTE, DISABILITY_FLAG_DIZZY, DISABILITY_FLAG_NERVOUS, DISABILITY_FLAG_LISP)
+ blacklisted_disabilities = list(DISABILITY_FLAG_BLIND, DISABILITY_FLAG_DEAF, DISABILITY_FLAG_MUTE, DISABILITY_FLAG_DIZZY, DISABILITY_FLAG_NERVOUS, DISABILITY_FLAG_LISP, DISABILITY_FLAG_PARAPLEGIC)
missing_limbs_allowed = FALSE
outfit = /datum/outfit/job/hos
important_information = "This role requires you to coordinate a department. You are required to be familiar with Standard Operating Procedure (Security), Space Law, basic job duties, and act professionally (roleplay)."
@@ -90,7 +90,7 @@
)
minimal_player_age = 21
exp_map = list(EXP_TYPE_SECURITY = 600)
- blacklisted_disabilities = list(DISABILITY_FLAG_BLIND, DISABILITY_FLAG_DEAF, DISABILITY_FLAG_MUTE, DISABILITY_FLAG_DIZZY, DISABILITY_FLAG_NERVOUS, DISABILITY_FLAG_LISP)
+ blacklisted_disabilities = list(DISABILITY_FLAG_BLIND, DISABILITY_FLAG_DEAF, DISABILITY_FLAG_MUTE, DISABILITY_FLAG_DIZZY, DISABILITY_FLAG_NERVOUS, DISABILITY_FLAG_LISP, DISABILITY_FLAG_PARAPLEGIC)
missing_limbs_allowed = FALSE
outfit = /datum/outfit/job/warden
@@ -142,7 +142,7 @@
)
minimal_player_age = 14
exp_map = list(EXP_TYPE_CREW = 600)
- blacklisted_disabilities = list(DISABILITY_FLAG_BLIND, DISABILITY_FLAG_DEAF, DISABILITY_FLAG_MUTE, DISABILITY_FLAG_DIZZY)
+ blacklisted_disabilities = list(DISABILITY_FLAG_BLIND, DISABILITY_FLAG_DEAF, DISABILITY_FLAG_MUTE, DISABILITY_FLAG_DIZZY, DISABILITY_FLAG_PARAPLEGIC)
missing_limbs_allowed = FALSE
outfit = /datum/outfit/job/detective
important_information = "Track, investigate, and look cool while doing it."
@@ -206,7 +206,7 @@
)
minimal_player_age = 14
exp_map = list(EXP_TYPE_CREW = 600)
- blacklisted_disabilities = list(DISABILITY_FLAG_BLIND, DISABILITY_FLAG_DEAF, DISABILITY_FLAG_MUTE, DISABILITY_FLAG_DIZZY)
+ blacklisted_disabilities = list(DISABILITY_FLAG_BLIND, DISABILITY_FLAG_DEAF, DISABILITY_FLAG_MUTE, DISABILITY_FLAG_DIZZY, DISABILITY_FLAG_PARAPLEGIC)
missing_limbs_allowed = FALSE
outfit = /datum/outfit/job/officer
important_information = "Space Law is the law, not a suggestion."
diff --git a/code/game/jobs/job/supervisor.dm b/code/game/jobs/job/supervisor.dm
index 2b41c27a9e18..abe6d0bd9628 100644
--- a/code/game/jobs/job/supervisor.dm
+++ b/code/game/jobs/job/supervisor.dm
@@ -228,7 +228,7 @@
ACCESS_SEC_DOORS,
ACCESS_WEAPONS
)
- blacklisted_disabilities = list(DISABILITY_FLAG_BLIND, DISABILITY_FLAG_DEAF, DISABILITY_FLAG_MUTE, DISABILITY_FLAG_DIZZY, DISABILITY_FLAG_NERVOUS, DISABILITY_FLAG_LISP)
+ blacklisted_disabilities = list(DISABILITY_FLAG_BLIND, DISABILITY_FLAG_DEAF, DISABILITY_FLAG_MUTE, DISABILITY_FLAG_DIZZY, DISABILITY_FLAG_NERVOUS, DISABILITY_FLAG_LISP, DISABILITY_FLAG_PARAPLEGIC)
missing_limbs_allowed = FALSE
outfit = /datum/outfit/job/blueshield
important_information = "This role requires you to ensure the safety of the Heads of Staff, not the general crew. You may perform arrests only if the combatant is directly threatening a member of Command, the Nanotrasen Representative, or the Magistrate."
diff --git a/code/game/machinery/adv_med.dm b/code/game/machinery/adv_med.dm
index 68f2fb07dde9..250b77b87c86 100644
--- a/code/game/machinery/adv_med.dm
+++ b/code/game/machinery/adv_med.dm
@@ -364,6 +364,7 @@
occupantData["blind"] = HAS_TRAIT(occupant, TRAIT_BLIND)
occupantData["colourblind"] = HAS_TRAIT(occupant, TRAIT_COLORBLIND)
occupantData["nearsighted"] = HAS_TRAIT(occupant, TRAIT_NEARSIGHT)
+ occupantData["paraplegic"] = HAS_TRAIT(occupant, TRAIT_PARAPLEGIC)
data["occupant"] = occupantData
return data
@@ -453,6 +454,8 @@
dat += "Photoreceptor abnormalities detected.
"
if(HAS_TRAIT(occupant, TRAIT_NEARSIGHT))
dat += "Retinal misalignment detected.
"
+ if(HAS_TRAIT(occupant, TRAIT_PARAPLEGIC))
+ dat += "Lumbar nerves damaged.
"
dat += "