diff --git a/GainStation13/code/modules/hud/alert.dm b/GainStation13/code/modules/hud/alert.dm index 693ffbd65c..de470d13cb 100644 --- a/GainStation13/code/modules/hud/alert.dm +++ b/GainStation13/code/modules/hud/alert.dm @@ -1,3 +1,6 @@ +/atom/movable/screen/alert/gs13 + icon = 'GainStation13/icons/mob/screen_alert.dmi' + /atom/movable/screen/alert/gs13/blob name = "Fatty Blob" desc = "Every last piece of your corpulent body is now plush and bloated with vast rolls of blubber. Your corpulence is such that you are akin to a gigantic, towering wad of dough." diff --git a/GainStation13/code/modules/mob/living/belly.dm b/GainStation13/code/modules/mob/living/belly.dm index b85cbd9960..6b9a7c4237 100644 --- a/GainStation13/code/modules/mob/living/belly.dm +++ b/GainStation13/code/modules/mob/living/belly.dm @@ -15,12 +15,6 @@ var/size_cached = 0 var/prev_size = 0 -/obj/item/organ/genital/belly/on_life() - if(QDELETED(src)) - return - if(!owner) - return - /obj/item/organ/genital/belly/modify_size(modifier, min = BELLY_SIZE_DEF, max = BELLY_SIZE_MAX) var/new_value = clamp(size_cached + modifier, min, max) if(new_value == size_cached) @@ -32,20 +26,16 @@ ..() /obj/item/organ/genital/belly/update_appearance() - var/string + icon_state = "belly_[shape]_[size]" if(owner) if(owner.dna.species.use_skintones && owner.dna.features["genitals_use_skintone"]) - if(ishuman(owner)) - var/mob/living/carbon/human/H = owner - color = "#[SKINTONE2HEX(H.skin_tone)]" + if(ishuman(owner)) // Check before recasting type, although someone fucked up if you're not human AND have use_skintones somehow... + var/mob/living/carbon/human/H = owner // only human mobs have skin_tone, which we need. + color = SKINTONE2HEX(H.skin_tone) + if(!H.dna.skin_tone_override) + icon_state += "_s" else color = "#[owner.dna.features["belly_color"]]" - if(ishuman(owner)) - var/mob/living/carbon/human/H = owner - icon_state = sanitize_text(string) - H.update_genitals() - - icon_state = sanitize_text(string) /obj/item/organ/genital/belly/get_features(mob/living/carbon/human/H) var/datum/dna/D = H.dna diff --git a/GainStation13/code/modules/mob/living/species.dm b/GainStation13/code/modules/mob/living/species.dm index 28c8cb450b..10af3bf2ed 100644 --- a/GainStation13/code/modules/mob/living/species.dm +++ b/GainStation13/code/modules/mob/living/species.dm @@ -1,34 +1,23 @@ /datum/species/proc/update_body_size(mob/living/carbon/human/H, size_change) - if (!H) + if(!istype(H)) return - var/obj/item/organ/genital/butt/anus = H.getorganslot(ORGAN_SLOT_BUTT) - var/obj/item/organ/genital/belly/belly = H.getorganslot("belly") + var/obj/item/organ/genital/butt/butt = H.getorganslot(ORGAN_SLOT_BUTT) + var/obj/item/organ/genital/belly/belly = H.getorganslot(ORGAN_SLOT_BELLY) var/obj/item/organ/genital/breasts/breasts = H.getorganslot(ORGAN_SLOT_BREASTS) - update_genital_size(anus, size_change) - update_genital_size(belly, size_change) - update_breasts_size(breasts, size_change) + if(butt) + butt.modify_size(size_change) + if(belly) + belly.modify_size(size_change) + if(breasts) + breasts.modify_size(size_change) H.genital_override = TRUE H.update_body() H.update_inv_w_uniform() H.update_inv_wear_suit() -/datum/species/proc/update_genital_size(obj/item/organ/genital/G, size_change) - if (!G) - return - - G.size = G.size + size_change - G.update() - -/datum/species/proc/update_breasts_size(obj/item/organ/genital/breasts/G, size_change) - if (!G) - return - - G.cached_size = G.cached_size + size_change - G.update() - /datum/species/proc/handle_fatness_trait(mob/living/carbon/human/H, trait, trait_lose, trait_gain, fatness_lose, fatness_gain, chat_lose, chat_gain) if(H.fatness < fatness_lose) if (chat_lose) diff --git a/GainStation13/icons/mob/screen_alert.dmi b/GainStation13/icons/mob/screen_alert.dmi new file mode 100644 index 0000000000..2d7cf3e239 Binary files /dev/null and b/GainStation13/icons/mob/screen_alert.dmi differ