From 59e5372abd11461fb9d796b8b470bf61ed92ac5c Mon Sep 17 00:00:00 2001 From: Fermi Date: Sun, 2 Jun 2019 18:40:56 +0100 Subject: [PATCH] Made it so prosthetics can't replace legs. Compiled and tested. --- code/__DEFINES/traits.dm | 1 + code/datums/traits/negative.dm | 7 ++++++- code/modules/vehicles/ridden.dm | 2 +- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/code/__DEFINES/traits.dm b/code/__DEFINES/traits.dm index c0e3e141c7..ff45ac474f 100644 --- a/code/__DEFINES/traits.dm +++ b/code/__DEFINES/traits.dm @@ -78,6 +78,7 @@ #define TRAIT_CROCRIN_IMMUNE "crocin_immune" #define TRAIT_NYMPHO "nymphomania" #define TRAIT_MASO "masochism" +#define TRAIT_PARA "paraplegic" // common trait sources #define TRAIT_GENERIC "generic" diff --git a/code/datums/traits/negative.dm b/code/datums/traits/negative.dm index b7307b10e4..a1a7c16098 100644 --- a/code/datums/traits/negative.dm +++ b/code/datums/traits/negative.dm @@ -191,6 +191,7 @@ name = "Paraplegic" desc = "Your legs do not function. Nothing will ever fix this. But hey, free wheelchair!" value = -3 + mob_trait = TRAIT_PARA human_only = TRUE gain_text = null // Handled by trauma. lose_text = null @@ -242,8 +243,12 @@ var/slot_string = "limb" /datum/quirk/prosthetic_limb/on_spawn() - var/limb_slot = pick(BODY_ZONE_L_ARM, BODY_ZONE_R_ARM, BODY_ZONE_L_LEG, BODY_ZONE_R_LEG) var/mob/living/carbon/human/H = quirk_holder + var/limb_slot + if(H.has_trait("TRAIT_PARA"))//Prevent paraplegic legs being replaced + limb_slot = pick(BODY_ZONE_L_ARM, BODY_ZONE_R_ARM) + else + limb_slot = pick(BODY_ZONE_L_ARM, BODY_ZONE_R_ARM, BODY_ZONE_L_LEG, BODY_ZONE_R_LEG) var/obj/item/bodypart/old_part = H.get_bodypart(limb_slot) var/obj/item/bodypart/prosthetic switch(limb_slot) diff --git a/code/modules/vehicles/ridden.dm b/code/modules/vehicles/ridden.dm index 73e08975ba..72881e314f 100644 --- a/code/modules/vehicles/ridden.dm +++ b/code/modules/vehicles/ridden.dm @@ -60,7 +60,7 @@ if(key_type && !is_key(inserted_key)) to_chat(user, "[src] has no key inserted!") return FALSE - if(canmove && (user.get_num_lehs() < legs_required)) + if(canmove && (user.get_num_legs() < legs_required)) to_chat(user, "You don't have enough legs to operate the pedals!") canmove = FALSE addtimer(VARSET_CALLBACK(src, canmove, TRUE), 20)