Health and speed relative to size

Pikmin nerf, oh no. Health scales with size. And, being big or small nerfs speed a little.
This commit is contained in:
JaySparrow
2020-07-15 23:17:41 -05:00
parent ec9fdff987
commit cbd99e5aaf
+12 -1
View File
@@ -7,6 +7,8 @@ var/const/RESIZE_SMALL = 0.75
var/const/RESIZE_TINY = 0.50
var/const/RESIZE_MICRO = 0.25
#define MOVESPEED_ID_SIZE "SIZECODE"
//averages
var/const/RESIZE_A_MACROHUGE = (RESIZE_MACRO + RESIZE_HUGE) / 2
var/const/RESIZE_A_HUGEBIG = (RESIZE_HUGE + RESIZE_BIG) / 2
@@ -33,9 +35,18 @@ mob/living/get_effective_size()
/mob/living/proc/resize(var/new_size, var/animate = TRUE)
if(size_multiplier == new_size)
return 1
var/oldsize = size_multiplier //Store the old value
size_multiplier = new_size //Change size_multiplier so that other items can interact with them
src.update_transform() //WORK DAMN YOU
//Going to change the health and speed values too
var/inverse_size_multiplier = (1 / size_multiplier) //Get a positive value
src.remove_movespeed_modifier(MOVESPEED_ID_SIZE)
src.add_movespeed_modifier(MOVESPEED_ID_SIZE, multiplicative_slowdown = max(size_multiplier, inverse_size_multiplier))
var/healthmod_old = ((oldsize * 50) - 50) //Get the old value to see what we must change.
var/healthmod_new = ((size_multiplier * 50) - 50) //A size of one would be zero. Big boys get health, small ones lose health.
var/healthchange = healthmod_new - healthmod_old //Get ready to apply the new value, and subtract the old one. (Negative values become positive)
src.maxHealth += healthchange
src.health += healthchange
//handle the big steppy, except nice
/mob/living/proc/handle_micro_bump_helping(var/mob/living/tmob)