From 56f9fbe5123ebc3f4beb7e2453dc45cd66ccd542 Mon Sep 17 00:00:00 2001 From: Masenod <64508955+Masenod@users.noreply.github.com> Date: Sat, 29 Apr 2023 14:24:33 -0700 Subject: [PATCH] Implement Strong Legs trait and fix capitalization of Weak Legs --- code/__DEFINES/mobs.dm | 1 + code/__DEFINES/traits.dm | 1 + .../controllers/subsystem/processing/quirks.dm | 3 ++- code/datums/traits/good.dm | 18 +++++++++--------- code/datums/traits/neutral.dm | 2 +- .../modules/mob/living/carbon/human/species.dm | 3 +++ 6 files changed, 17 insertions(+), 11 deletions(-) diff --git a/code/__DEFINES/mobs.dm b/code/__DEFINES/mobs.dm index 05fe0e6a..2c35c147 100644 --- a/code/__DEFINES/mobs.dm +++ b/code/__DEFINES/mobs.dm @@ -171,6 +171,7 @@ #define FATNESS_DIVISOR 860 #define FATNESS_MAX_MOVE_PENALTY 4 #define FATNESS_WEAKLEGS_MODIFIER 20 +#define FATNESS_STRONGLEGS_MODIFIER 0.5 //Nutrition levels for humans #define NUTRITION_LEVEL_FULL 550 diff --git a/code/__DEFINES/traits.dm b/code/__DEFINES/traits.dm index b9ddd659..a977e3ad 100644 --- a/code/__DEFINES/traits.dm +++ b/code/__DEFINES/traits.dm @@ -116,6 +116,7 @@ #define TRAIT_JOLLY "jolly" #define TRAIT_HEADPAT_SLUT "headpat_slut" #define TRAIT_WEAKLEGS "weak_legs" +#define TRAIT_STRONGLEGS "strong_legs" #define TRAIT_NOCRITDAMAGE "no_crit" #define TRAIT_NOSLIPWATER "noslip_water" #define TRAIT_NOSLIPALL "noslip_all" diff --git a/code/controllers/subsystem/processing/quirks.dm b/code/controllers/subsystem/processing/quirks.dm index ec8afaa4..fbfc7053 100644 --- a/code/controllers/subsystem/processing/quirks.dm +++ b/code/controllers/subsystem/processing/quirks.dm @@ -32,7 +32,8 @@ PROCESSING_SUBSYSTEM_DEF(quirks) list("Prosthetic Limb","Prosthetic Limb (Right Leg)"), list("Paraplegic","Prosthetic Limb (Left Leg)"), list("Paraplegic","Prosthetic Limb (Right Leg)"), - list("Fat Affinity","Fat Aversion") + list("Fat Affinity","Fat Aversion"), + list("Weak Legs", "Strong Legs") ) return ..() diff --git a/code/datums/traits/good.dm b/code/datums/traits/good.dm index cd581fab..319542c8 100644 --- a/code/datums/traits/good.dm +++ b/code/datums/traits/good.dm @@ -61,15 +61,15 @@ lose_text = "You feel clumsy again." medical_record_text = "Patient scored highly on cardio tests." -// /datum/quirk/strong_legs -// name = "Strong Legs" -// desc = "Your body is able to handle heavier sizes very well." -// mob_trait = TRAIT_STRONGLEGS -// value = 2 -// category = CATEGORY_SEXUAL -// gain_text = "You feel like you can carry more weight." -// lose_text = "Your legs cannot bear heavier loads anymore." -// medical_record_text = "Patient exhibits increased muscle strength in their legs." +/datum/quirk/strong_legs + name = "Strong Legs" + desc = "Your body is able to handle heavier sizes very well." + value = 2 + category = CATEGORY_SEXUAL + mob_trait = TRAIT_STRONGLEGS + gain_text = "You feel like you can carry more weight." + lose_text = "Your legs cannot bear heavier loads anymore." + medical_record_text = "Patient exhibits increased muscle strength in their legs." /datum/quirk/friendly name = "Friendly" diff --git a/code/datums/traits/neutral.dm b/code/datums/traits/neutral.dm index ae6d5d81..ad7615c8 100644 --- a/code/datums/traits/neutral.dm +++ b/code/datums/traits/neutral.dm @@ -154,7 +154,7 @@ medical_record_text = "Patient cares little with or dislikes being touched." /datum/quirk/weak_legs - name = "Weak legs" + name = "Weak Legs" desc = "Your legs can't handle the heaviest of charges. Being too fat will render you unable to move at all." mob_trait = TRAIT_WEAKLEGS value = 0 diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index 7f6d5d37..0387e437 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -1863,6 +1863,9 @@ GLOBAL_LIST_EMPTY(roundstart_races) if(H.fatness < FATNESS_LEVEL_BARELYMOBILE) fatness_delay = fatness_delay - flight + if(HAS_TRAIT(H, TRAIT_STRONGLEGS)) + fatness_delay = fatness_delay * FATNESS_STRONGLEGS_MODIFIER + fatness_delay = min(fatness_delay, FATNESS_MAX_MOVE_PENALTY) if(HAS_TRAIT(H, TRAIT_WEAKLEGS) && (H.fatness > FATNESS_LEVEL_BLOB)) fatness_delay += ((H.fatness - FATNESS_LEVEL_BLOB) * FATNESS_WEAKLEGS_MODIFIER) / FATNESS_DIVISOR