Paraplegics can choose to not have legs. (#85716)

## About The Pull Request

This is a bounty that was made by ophaq, and claimed by me.

Gives paraplegic the option to be an amputee, and appear on station
without their legs. They are still paralyzed, so no amount of mechanical
legs is gonna let them walk again.

## Why It's Good For The Game

Character customization is a good thing and lets people make their
little characters suffer in new ways, this one in specific *actively
lowers your max HP*, which is gonna certainly be fun.

## Changelog

🆑
qol: Paraplegics can now opt into appearing on the shift without their
legs.
/🆑

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
This commit is contained in:
DATAxPUNGED
2024-08-15 12:02:29 +01:00
committed by GitHub
co-authored by MrMelbert
parent c2216c4cb0
commit 34aa2bc50e
5 changed files with 48 additions and 0 deletions
+6
View File
@@ -92,3 +92,9 @@ GLOBAL_LIST_INIT(organ_choice, list(
"Liver" = ORGAN_SLOT_LIVER,
"Stomach" = ORGAN_SLOT_STOMACH,
))
///Paraplegic Quirk
GLOBAL_LIST_INIT(paraplegic_choice, list(
"Default" = FALSE,
"Amputee" = TRUE,
))
@@ -9,6 +9,10 @@
hardcore_value = 15
mail_goodies = list(/obj/vehicle/ridden/wheelchair/motorized) //yes a fullsized unfolded motorized wheelchair does fit
/datum/quirk_constant_data/paraplegic
associated_typepath = /datum/quirk/paraplegic
customization_options = list(/datum/preference/choiced/paraplegic)
/datum/quirk/paraplegic/add_unique(client/client_source)
if(quirk_holder.buckled) // Handle late joins being buckled to arrival shuttle chairs.
quirk_holder.buckled.unbuckle_mob(quirk_holder)
@@ -32,6 +36,16 @@
if(dropped_item.fingerprintslast == quirk_holder.ckey)
quirk_holder.put_in_hands(dropped_item)
// Finally, removes their legs if they have opted as such, deleting the shoes
var/amputee = GLOB.paraplegic_choice[client_source?.prefs?.read_preference(/datum/preference/choiced/paraplegic)]
if(amputee)
delete_legs(quirk_holder)
/datum/quirk/paraplegic/proc/delete_legs(mob/living/carbon/human/human_holder)
qdel(human_holder.get_item_by_slot(ITEM_SLOT_FEET))
qdel(human_holder.get_bodypart(BODY_ZONE_L_LEG))
qdel(human_holder.get_bodypart(BODY_ZONE_R_LEG))
/datum/quirk/paraplegic/add(client/client_source)
var/mob/living/carbon/human/human_holder = quirk_holder
human_holder.gain_trauma(/datum/brain_trauma/severe/paralysis/paraplegic, TRAUMA_RESILIENCE_ABSOLUTE)
@@ -0,0 +1,20 @@
/datum/preference/choiced/paraplegic
category = PREFERENCE_CATEGORY_MANUALLY_RENDERED
savefile_key = "paraplegic"
savefile_identifier = PREFERENCE_CHARACTER
/datum/preference/choiced/paraplegic/init_possible_values()
return GLOB.paraplegic_choice
/datum/preference/choiced/paraplegic/create_default_value()
return "Default"
/datum/preference/choiced/paraplegic/is_accessible(datum/preferences/preferences)
. = ..()
if (!.)
return FALSE
return "Paraplegic" in preferences.all_quirks
/datum/preference/choiced/paraplegic/apply_to_human(mob/living/carbon/human/target, value)
return
+1
View File
@@ -3778,6 +3778,7 @@
#include "code\modules\client\preferences\operative_species.dm"
#include "code\modules\client\preferences\paint_color.dm"
#include "code\modules\client\preferences\parallax.dm"
#include "code\modules\client\preferences\paraplegic.dm"
#include "code\modules\client\preferences\pda.dm"
#include "code\modules\client\preferences\persistent_scars.dm"
#include "code\modules\client\preferences\phobia.dm"
@@ -0,0 +1,7 @@
import { FeatureChoiced } from '../base';
import { FeatureDropdownInput } from '../dropdowns';
export const paraplegic: FeatureChoiced = {
name: 'Paraplegic',
component: FeatureDropdownInput,
};