diff --git a/GainStation13/code/modules/clothing/under/jobs/modcivilian.dm b/GainStation13/code/modules/clothing/under/jobs/modcivilian.dm index 19a0e1bf..cfd5005b 100644 --- a/GainStation13/code/modules/clothing/under/jobs/modcivilian.dm +++ b/GainStation13/code/modules/clothing/under/jobs/modcivilian.dm @@ -70,6 +70,7 @@ desc = "A tasteful grey jumpsuit that reminds you of the good old days. Now adjusts to the match the wearer's size!" //description same as above var/icon_location = 'GainStation13/icons/mob/modclothes/graymodular.dmi' //specify the file path where the modular overlays for those clothes are located + var/icon_stuffed_location = 'GainStation13/icons/mob/modclothes/graymodular_stuffed.dmi' var/mob/living/carbon/U //instance a variable for keeping track of the user /obj/item/clothing/under/color/grey/modular/equipped(mob/user, slot) //whenever the clothes are in someone's inventory the clothes keep track of who that user is @@ -93,16 +94,33 @@ for(O in U.internal_organs) //check the user for the organs they have if(istype(O, /obj/item/organ/genital/belly)) //if that organ is a belly G = O //treat that organ as a genital - if(!adjusted) //check the style, if it needs to be the adjusted variants - if(G.size <= 9) //check that the size is within accepted values, NOTE: these need to be removed later, better to cap organ sizes to begin with - . += mutable_appearance(icon_location, "belly_[G.size]", GENITALS_UNDER_LAYER) //add, from the clothes' icon file the overlay corresponding to that genital at that size and draw it onto the layer - else //if not an expected size value, bigger than the max, default to max size - . += mutable_appearance(icon_location, "belly_9", GENITALS_UNDER_LAYER) - else //use the alternative adjusted sprites - if(G.size <= 9) - . += mutable_appearance(icon_location, "belly_[G.size]_d", GENITALS_UNDER_LAYER) - else - . += mutable_appearance(icon_location, "belly_9_d", GENITALS_UNDER_LAYER) + // Change to visually update sprite depending on fullness. + if(ishuman(O.owner)) + var/mob/living/carbon/human/H = O.owner + var/size = 0 + var/used_icon_location = icon_location + switch(H.fullness) + if(0 to FULLNESS_LEVEL_BLOATED) // Normal + size = G.size + if(FULLNESS_LEVEL_BLOATED to FULLNESS_LEVEL_BEEG) // Take the stuffed sprite of the same size + size = G.size + used_icon_location = icon_stuffed_location + if(FULLNESS_LEVEL_BEEG to FULLNESS_LEVEL_NOMOREPLZ) // Take the stuffed sprite of size + 1 + size = G.size + 1 + used_icon_location = icon_stuffed_location + if(FULLNESS_LEVEL_NOMOREPLZ to INFINITY)// Take the stuffed sprite of size + 2 + size = G.size + 2 + used_icon_location = icon_stuffed_location + if(!adjusted) //check the style, if it needs to be the adjusted variants + if(G.size <= 9+2) //check that the size is within accepted values, NOTE: these need to be removed later, better to cap organ sizes to begin with. Cap is 9 (max fat stage) + 2 (stuffed stages) + . += mutable_appearance(used_icon_location, "belly_[size]", GENITALS_UNDER_LAYER) //add, from the clothes' icon file the overlay corresponding to that genital at that size and draw it onto the layer + else //if not an expected size value, bigger than the max, default to max size + . += mutable_appearance(icon_location, "belly_11", GENITALS_UNDER_LAYER) + else //use the alternative adjusted sprites + if(G.size <= 9+2) + . += mutable_appearance(icon_location, "belly_[size]_d", GENITALS_UNDER_LAYER) + else + . += mutable_appearance(icon_location, "belly_11_d", GENITALS_UNDER_LAYER) if(istype(O, /obj/item/organ/genital/anus)) //if that organ is the butt G = O if(suit_style == DIGITIGRADE_SUIT_STYLE) //check if the suit needs to use sprites for digitigrade characters diff --git a/GainStation13/icons/mob/modclothes/graymodular_stuffed.dmi b/GainStation13/icons/mob/modclothes/graymodular_stuffed.dmi new file mode 100644 index 00000000..99b270ce Binary files /dev/null and b/GainStation13/icons/mob/modclothes/graymodular_stuffed.dmi differ diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index ca373f92..c06a1bfd 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -1727,7 +1727,10 @@ GLOBAL_LIST_EMPTY(roundstart_races) H.throw_alert("fullness", /obj/screen/alert/stuffed) if(FULLNESS_LEVEL_NOMOREPLZ to INFINITY) H.throw_alert("fullness", /obj/screen/alert/beegbelly) - + + // Update here for changing belly to match stuffed-ness + var/obj/item/organ/genital/belly/belly = H.getorganslot("belly") + belly.update() switch(H.fatness) if(FATNESS_LEVEL_BLOB to INFINITY) diff --git a/hyperstation/icons/obj/genitals/belly_stuffed.dmi b/hyperstation/icons/obj/genitals/belly_stuffed.dmi new file mode 100644 index 00000000..23ea708b Binary files /dev/null and b/hyperstation/icons/obj/genitals/belly_stuffed.dmi differ diff --git a/modular_citadel/code/modules/arousal/organs/genitals.dm b/modular_citadel/code/modules/arousal/organs/genitals.dm index 6e37beef..be7cbcb0 100644 --- a/modular_citadel/code/modules/arousal/organs/genitals.dm +++ b/modular_citadel/code/modules/arousal/organs/genitals.dm @@ -474,10 +474,28 @@ colourcode = S.color_src if(G.slot == "belly") // GS13 - genital_overlay.icon = 'hyperstation/icons/obj/genitals/belly.dmi' - genital_overlay.icon_state = "belly_[size]" - genital_overlay.layer = -UNDER_BACK_LAYER - colourcode = "belly_color" + // Change belly sprite and size based on current fullness + switch(H.fullness) + if(0 to FULLNESS_LEVEL_BLOATED) + genital_overlay.icon = 'hyperstation/icons/obj/genitals/belly.dmi' + genital_overlay.icon_state = "belly_[size]" + genital_overlay.layer = -UNDER_BACK_LAYER + colourcode = "belly_color" + if(FULLNESS_LEVEL_BLOATED to FULLNESS_LEVEL_BEEG) + genital_overlay.icon = 'hyperstation/icons/obj/genitals/belly_stuffed.dmi' + genital_overlay.icon_state = "belly_[size]" + genital_overlay.layer = -UNDER_BACK_LAYER + colourcode = "belly_color" + if(FULLNESS_LEVEL_BEEG to FULLNESS_LEVEL_NOMOREPLZ) + genital_overlay.icon = 'hyperstation/icons/obj/genitals/belly_stuffed.dmi' + genital_overlay.icon_state = "belly_[size+1]" + genital_overlay.layer = -UNDER_BACK_LAYER + colourcode = "belly_color" + if(FULLNESS_LEVEL_NOMOREPLZ to INFINITY) + genital_overlay.icon = 'hyperstation/icons/obj/genitals/belly_stuffed.dmi' + genital_overlay.icon_state = "belly_[size+2]" + genital_overlay.layer = -UNDER_BACK_LAYER + colourcode = "belly_color" //sizecheck added to prevent rendering blank icons if(G.slot == "anus" && G.size > 0) // GS13