diff --git a/code/__DEFINES/mobs.dm b/code/__DEFINES/mobs.dm index 48962d2c..1669f4f9 100644 --- a/code/__DEFINES/mobs.dm +++ b/code/__DEFINES/mobs.dm @@ -173,7 +173,7 @@ //Math stuff for fatness movement speed #define FATNESS_DIVISOR 860 #define FATNESS_MAX_MOVE_PENALTY 4 -#define FATNESS_WEAKLEGS_MODIFIER 20 +#define FATNESS_WEAKLEGS_MODIFIER 35 #define FATNESS_STRONGLEGS_MODIFIER 0.5 //Nutrition levels for humans diff --git a/code/datums/traits/negative.dm b/code/datums/traits/negative.dm index f3006c37..dc13d40d 100644 --- a/code/datums/traits/negative.dm +++ b/code/datums/traits/negative.dm @@ -517,3 +517,11 @@ GLOBAL_LIST_EMPTY(family_heirlooms) /datum/quirk/flimsy/remove() //how do admins even remove traits? if(quirk_holder) quirk_holder.maxHealth += healthchange + +/datum/quirk/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 = -1 + category = CATEGORY_SEXUAL + medical_record_text = "Patient's legs seem to lack strength" diff --git a/code/datums/traits/neutral.dm b/code/datums/traits/neutral.dm index ad7615c8..a5cdf67b 100644 --- a/code/datums/traits/neutral.dm +++ b/code/datums/traits/neutral.dm @@ -153,14 +153,6 @@ category = CATEGORY_SEXUAL //Any better place to put it? Doesn't really affect gameplay medical_record_text = "Patient cares little with or dislikes being touched." -/datum/quirk/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 - category = CATEGORY_SEXUAL - medical_record_text = "Patient's legs seem to lack strength" - /datum/quirk/SpawnWithWheelchair name = "Mobility Assistance" desc = "After your last failed fitness test, you were advised to start using a hoverchair" diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index 0387e437..2cc03c19 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -1867,8 +1867,12 @@ GLOBAL_LIST_EMPTY(roundstart_races) 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 + if(HAS_TRAIT(H, TRAIT_WEAKLEGS)) + if(H.fatness <= FATNESS_LEVEL_IMMOBILE) + fatness_delay += fatness_delay * FATNESS_WEAKLEGS_MODIFIER / 100 + if(H.fatness > FATNESS_LEVEL_IMMOBILE) + fatness_delay += (H.fatness / FATNESS_LEVEL_IMMOBILE) * FATNESS_WEAKLEGS_MODIFIER + fatness_delay = min(fatness_delay, 60) . += fatness_delay