mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-21 20:20:33 +01:00
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:
@@ -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
|
||||
@@ -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"
|
||||
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
import { FeatureChoiced } from '../base';
|
||||
import { FeatureDropdownInput } from '../dropdowns';
|
||||
|
||||
export const paraplegic: FeatureChoiced = {
|
||||
name: 'Paraplegic',
|
||||
component: FeatureDropdownInput,
|
||||
};
|
||||
Reference in New Issue
Block a user