(Non-Modular) Growth Serum Size Caps (#3126)

## About The Pull Request
Caps the maximum size you can get from growth serum to be at the same
size as you would be with the oversized quirk. Additionally makes it so
oversized people cannot be affected by growth serum. Growth serum works
as it did previously when in dorms.
## Why It's Good For The Game
Prevents something like this from theoretically occurring 

![image](https://github.com/user-attachments/assets/71b7dfe4-548e-432b-bb70-8622b41182a6)




## Proof Of Testing
It compiled, ran, and worked on a local test.


https://github.com/user-attachments/assets/4d4e38dd-4db4-4a8e-bf18-2bcc12a61bd5

## Changelog
🆑
balance: oversized characters can no longer use growth serum outside of
dorms
balance: growth serum is now capped at the same size as you would be if
you took the oversized quirk unless in dorms
/🆑
This commit is contained in:
Alexis
2025-03-17 10:56:05 -04:00
committed by GitHub
parent a939bb871b
commit 6393fc4a35
3 changed files with 34 additions and 21 deletions

View File

@@ -30,3 +30,11 @@
#define BREAST_SIZE_O "O"
#define BREAST_SIZE_P "P"
#define BREAST_SIZE_BEYOND_MEASUREMENT "beyond measurement"
//ERP Size Areas
#define SIZE_WHITELISTED_AREAS list(\
/area/centcom/interlink/dorm_rooms,\
/area/centcom/holding/cafe/dorms,\
/area/misc/hilbertshotel,\
/area/station/commons/dorms,\
)

View File

@@ -2566,6 +2566,9 @@
/datum/reagent/growthserum/on_mob_life(mob/living/carbon/affected_mob, seconds_per_tick, times_fired)
. = ..()
var/newsize = current_size
//BUBBER EDIT ADDITION START - CAPPING GROWTH SERUM
var/valid_area = is_type_in_list(get_area(affected_mob), SIZE_WHITELISTED_AREAS)
if(valid_area)
switch(volume)
if(0 to 19)
newsize = 1.25*RESIZE_DEFAULT_SIZE
@@ -2577,7 +2580,18 @@
newsize = 2.5*RESIZE_DEFAULT_SIZE
if(200 to INFINITY)
newsize = 3.5*RESIZE_DEFAULT_SIZE
else
if(affected_mob.has_quirk(/datum/quirk/oversized))
newsize = RESIZE_DEFAULT_SIZE
else
switch(volume)
if(0 to 19)
newsize = 1.25*RESIZE_DEFAULT_SIZE
if(20 to 49)
newsize = 1.5*RESIZE_DEFAULT_SIZE
if(50 to INFINITY)
newsize = 2*RESIZE_DEFAULT_SIZE
//BUBBER EDIT ADDITION END - CAPPING GROWTH SERUM
affected_mob.update_transform(newsize/current_size)
current_size = newsize

View File

@@ -1,10 +1,3 @@
/// What areas are we allowed to use size items in?
#define SIZE_WHITELISTED_AREAS list(\
/area/centcom/interlink/dorm_rooms,\
/area/centcom/holding/cafe/dorms,\
/area/misc/hilbertshotel,\
)
/obj/item/clothing/neck/size_collar
name = "size collar"
desc = "A shiny black collar embeded with technology that allows the user to change their own size."
@@ -133,5 +126,3 @@
UnregisterSignal(parent, COMSIG_ENTER_AREA)
return ..()
#undef SIZE_WHITELISTED_AREAS