From d728e9baf6a7cda22746b72582b2f905dffde4ce Mon Sep 17 00:00:00 2001 From: Pinta <124479862+deertools@users.noreply.github.com> Date: Wed, 22 Feb 2023 22:52:47 -0500 Subject: [PATCH 1/2] refactor --- code/__DEFINES/mobs.dm | 5 ++++ .../mob/living/carbon/human/species.dm | 30 ++++++++----------- code/modules/mob/mob_movement.dm | 2 -- 3 files changed, 17 insertions(+), 20 deletions(-) diff --git a/code/__DEFINES/mobs.dm b/code/__DEFINES/mobs.dm index 09b0618c..4b0d1e39 100644 --- a/code/__DEFINES/mobs.dm +++ b/code/__DEFINES/mobs.dm @@ -167,6 +167,11 @@ #define FATNESS_LEVEL_FATTER 250 #define FATNESS_LEVEL_FAT 170 +//Math stuff for fatness movement speed +#define FATNESS_DIVISOR 860 +#define FATNESS_MAX_MOVE_PENALTY 4 +#define FATNESS_WEAKLEGS_MODIFIER 10 + //Nutrition levels for humans #define NUTRITION_LEVEL_FULL 550 #define NUTRITION_LEVEL_WELL_FED 450 diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index a4fa219b..d5b97ab1 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -1818,26 +1818,20 @@ GLOBAL_LIST_EMPTY(roundstart_races) . += (BODYTEMP_COLD_DAMAGE_LIMIT - H.bodytemperature) / COLD_SLOWDOWN_FACTOR return . */ - if(HAS_TRAIT(H, TRAIT_FAT)) - . += (1 - flight) - if(HAS_TRAIT(H, TRAIT_FATTER)) - . += (1.1 - flight) - if(HAS_TRAIT(H, TRAIT_VERYFAT)) - . += (1.25 - flight) - if(HAS_TRAIT(H, TRAIT_OBESE))//GS13 fat levels move speed decrease - . += (1.5 - flight) - if(HAS_TRAIT(H, TRAIT_MORBIDLYOBESE)) - . += (2 - flight) - if(HAS_TRAIT(H, TRAIT_EXTREMELYOBESE)) - . += (2.5 - flight) - if(HAS_TRAIT(H, TRAIT_BARELYMOBILE)) - . += 2.7 - if(HAS_TRAIT(H, TRAIT_IMMOBILE)) - . += 3 // No wings are going to lift that much off the ground - if(HAS_TRAIT(H, TRAIT_BLOB)) - . += 4 + if(H.fatness) + var/fatness_delay = (H.fatness / FATNESS_DIVISOR) + if(H.fatness < FATNESS_LEVEL_BARELYMOBILE) + fatness_delay = fatness_delay - flight + + 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 + + . += fatness_delay + if(H.bodytemperature < BODYTEMP_COLD_DAMAGE_LIMIT && !HAS_TRAIT(H, TRAIT_RESISTCOLD)) . += (BODYTEMP_COLD_DAMAGE_LIMIT - H.bodytemperature) / COLD_SLOWDOWN_FACTOR + return . ////////////////// // ATTACK PROCS // diff --git a/code/modules/mob/mob_movement.dm b/code/modules/mob/mob_movement.dm index 0c83178a..c1a85768 100644 --- a/code/modules/mob/mob_movement.dm +++ b/code/modules/mob/mob_movement.dm @@ -85,8 +85,6 @@ if(!mob.Process_Spacemove(direct)) return FALSE - if(HAS_TRAIT(mob,TRAIT_BLOB) && HAS_TRAIT(mob,TRAIT_WEAKLEGS)) // GS13 are we too fat to move? - return FALSE //We are now going to move var/add_delay = mob.movement_delay() mob.set_glide_size(DELAY_TO_GLIDE_SIZE(add_delay * (((direct & 3) && (direct & 12)) ? 2 : 1))) // set it now in case of pulled objects From 9b7b0754023acaaadf732133462e73d05f1a6f5d Mon Sep 17 00:00:00 2001 From: Pinta <124479862+deertools@users.noreply.github.com> Date: Wed, 22 Feb 2023 22:54:58 -0500 Subject: [PATCH 2/2] Update mobs.dm --- code/__DEFINES/mobs.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/__DEFINES/mobs.dm b/code/__DEFINES/mobs.dm index 4b0d1e39..05fe0e6a 100644 --- a/code/__DEFINES/mobs.dm +++ b/code/__DEFINES/mobs.dm @@ -170,7 +170,7 @@ //Math stuff for fatness movement speed #define FATNESS_DIVISOR 860 #define FATNESS_MAX_MOVE_PENALTY 4 -#define FATNESS_WEAKLEGS_MODIFIER 10 +#define FATNESS_WEAKLEGS_MODIFIER 20 //Nutrition levels for humans #define NUTRITION_LEVEL_FULL 550