From 310344e828bb191ed2d9786086a22e906aaaa16f Mon Sep 17 00:00:00 2001 From: Fermi Date: Thu, 23 May 2019 20:21:52 +0100 Subject: [PATCH] EVERYTHING BROKE AAAAAAAAAAAAAAAAAA --- .../mob/living/carbon/human/human_defines.dm | 1 + .../code/datums/traits/negative.dm | 2 +- .../code/modules/arousal/organs/breasts.dm | 9 +++++- .../code/modules/arousal/organs/genitals.dm | 31 ++++++++++++------- 4 files changed, 30 insertions(+), 13 deletions(-) diff --git a/code/modules/mob/living/carbon/human/human_defines.dm b/code/modules/mob/living/carbon/human/human_defines.dm index d1ec7f3e4b..d94b2a8b6e 100644 --- a/code/modules/mob/living/carbon/human/human_defines.dm +++ b/code/modules/mob/living/carbon/human/human_defines.dm @@ -44,6 +44,7 @@ var/bleedsuppress = 0 //for stopping bloodloss, eventually this will be limb-based like bleeding var/name_override //For temporary visible name changes + var/genital_override = FALSE //Force genitals on things incase of chems var/nameless = FALSE //For drones of both the insectoid and robotic kind. And other types of nameless critters. diff --git a/modular_citadel/code/datums/traits/negative.dm b/modular_citadel/code/datums/traits/negative.dm index 5a224ffa84..d999f719a0 100644 --- a/modular_citadel/code/datums/traits/negative.dm +++ b/modular_citadel/code/datums/traits/negative.dm @@ -10,7 +10,7 @@ /datum/quirk/Hypno/add() //You caught me, it's not actually based off a trigger, stop spoiling the effect! Code diving ruins the magic! - addtimer(CALLBACK(quirk_holder, /datum/quirk/Hypno/proc/triggered, quirk_holder), rand(12000, 36000)) + addtimer(CALLBACK(src, /datum/quirk/Hypno.proc/triggered, quirk_holder), rand(1200, 3600))//increase by 10, it's lower so I can test it. /datum/quirk/Hypno/proc/triggered(quirk_holder)//I figured I might as well make a trait of code I added. var/mob/living/carbon/human/H = quirk_holder diff --git a/modular_citadel/code/modules/arousal/organs/breasts.dm b/modular_citadel/code/modules/arousal/organs/breasts.dm index 90c59ec749..8d940897d2 100644 --- a/modular_citadel/code/modules/arousal/organs/breasts.dm +++ b/modular_citadel/code/modules/arousal/organs/breasts.dm @@ -19,7 +19,7 @@ can_masturbate_with = TRUE masturbation_verb = "massage" can_climax = TRUE - fluid_transfer_factor =0.5 + fluid_transfer_factor = 0.5 /obj/item/organ/genital/breasts/Initialize() . = ..() @@ -60,6 +60,7 @@ desc += " They're very small and flatchested, however." else desc += " You estimate that they're [uppertext(size)]-cups." + string = "breasts_[lowertext(shape)]_[size]-s" if(producing && aroused_state) desc += " They're leaking [fluid_id]." @@ -70,6 +71,12 @@ color = "#[skintone2hex(H.skin_tone)]" else color = "#[owner.dna.features["breasts_color"]]" + string = "breasts_[lowertext(shape)]_[size]" + if(ishuman(owner)) + var/mob/living/carbon/human/H = owner + H.update_genitals() + + icon_state = sanitize_text(string) //Allows breasts to grow and change size, with sprite changes too. diff --git a/modular_citadel/code/modules/arousal/organs/genitals.dm b/modular_citadel/code/modules/arousal/organs/genitals.dm index 2daaeb1502..e3e35d4d23 100644 --- a/modular_citadel/code/modules/arousal/organs/genitals.dm +++ b/modular_citadel/code/modules/arousal/organs/genitals.dm @@ -130,7 +130,7 @@ //proc to give a player their genitals and stuff when they log in /mob/living/carbon/human/proc/give_genitals(clean=0)//clean will remove all pre-existing genitals. proc will then give them any genitals that are enabled in their DNA - if (NOGENITALS in dna.species.species_traits) + if ((NOGENITALS in dna.species.species_traits) && (genital_override = FALSE)) return if(clean) var/obj/item/organ/genital/GtoClean @@ -155,7 +155,7 @@ /mob/living/carbon/human/proc/give_penis() if(!dna) return FALSE - if(NOGENITALS in dna.species.species_traits) + if((NOGENITALS in dna.species.species_traits) && (genital_override = FALSE)) return FALSE if(!getorganslot("penis")) var/obj/item/organ/genital/penis/P = new @@ -173,7 +173,7 @@ /mob/living/carbon/human/proc/give_balls() if(!dna) return FALSE - if(NOGENITALS in dna.species.species_traits) + if((NOGENITALS in dna.species.species_traits) && (genital_override = FALSE)) return FALSE if(!getorganslot("testicles")) var/obj/item/organ/genital/testicles/T = new @@ -194,7 +194,7 @@ /mob/living/carbon/human/proc/give_breasts() if(!dna) return FALSE - if(NOGENITALS in dna.species.species_traits) + if((NOGENITALS in dna.species.species_traits) && (genital_override = FALSE)) return FALSE if(!getorganslot("breasts")) var/obj/item/organ/genital/breasts/B = new @@ -211,11 +211,13 @@ /mob/living/carbon/human/proc/give_ovipositor() + return /mob/living/carbon/human/proc/give_eggsack() + return /mob/living/carbon/human/proc/give_vagina() if(!dna) return FALSE - if(NOGENITALS in dna.species.species_traits) + if((NOGENITALS in dna.species.species_traits) && (genital_override = FALSE)) return FALSE if(!getorganslot("vagina")) var/obj/item/organ/genital/vagina/V = new @@ -231,7 +233,7 @@ /mob/living/carbon/human/proc/give_womb() if(!dna) return FALSE - if(NOGENITALS in dna.species.species_traits) + if((NOGENITALS in dna.species.species_traits) && (genital_override = FALSE)) return FALSE if(!getorganslot("womb")) var/obj/item/organ/genital/womb/W = new @@ -267,10 +269,12 @@ if(src && !QDELETED(src)) dna.species.handle_genitals(src) -/mob/living/carbon/human/proc/Force_update_genitals(mob/living/carbon/human/H) - dna.species.handle_genitals(src) +/mob/living/carbon/human/proc/Force_update_genitals(mob/living/carbon/human/H) //called in fermiChem + dna.species.handle_genitals(src, ignoreGenitalFlags = TRUE) //dna.species.handle_breasts(src) //H.update_body() +//species_traits = list(NOTRANSSTING,NOGENITALS) + /datum/species/proc/handle_genitals(mob/living/carbon/human/H) //message_admins("attempting to update sprite") @@ -278,14 +282,15 @@ CRASH("H = null") if(!LAZYLEN(H.internal_organs))//if they have no organs, we're done return - if(NOGENITALS in species_traits)//golems and such + if((NOGENITALS in species_traits) && (H.genital_override = FALSE))//golems and such - things that shouldn't return if(H.has_trait(TRAIT_HUSK)) return var/list/genitals_to_add = list() var/list/relevant_layers = list(GENITALS_BEHIND_LAYER, GENITALS_ADJ_LAYER, GENITALS_FRONT_LAYER) var/list/standing = list() - var/size = null + var/size + var/aroused_state for(var/L in relevant_layers) //Less hardcode H.remove_overlay(L) //start scanning for genitals @@ -302,6 +307,7 @@ for(var/obj/item/organ/genital/G in genitals_to_add) var/datum/sprite_accessory/S size = G.size + aroused_state = G.aroused_state switch(G.type) if(/obj/item/organ/genital/penis) S = GLOB.cock_shapes_list[G.shape] @@ -313,13 +319,14 @@ if(!S || S.icon_state == "none") continue var/mutable_appearance/genital_overlay = mutable_appearance(S.icon, layer = -layer) - genital_overlay.icon_state = "[G.slot]_[S.icon_state]_[size]_[G.aroused_state]_[layertext]" + genital_overlay.icon_state = "[G.slot]_[S.icon_state]_[size]_[aroused_state]_[layertext]" if(S.center) genital_overlay = center_image(genital_overlay, S.dimension_x, S.dimension_y) if(use_skintones && H.dna.features["genitals_use_skintone"]) genital_overlay.color = "#[skintone2hex(H.skin_tone)]" + genital_overlay.icon_state = "[G.slot]_[S.icon_state]_[size]-s_[aroused_state]_[layertext]" else switch(S.color_src) if("cock_color") @@ -328,6 +335,7 @@ genital_overlay.color = "#[H.dna.features["breasts_color"]]" if("vag_color") genital_overlay.color = "#[H.dna.features["vag_color"]]" + /* This was removed for some reason? if(MUTCOLORS) if(fixed_mut_color) genital_overlay.color = "#[fixed_mut_color]" @@ -343,6 +351,7 @@ genital_overlay.color = "#[fixed_mut_color3]" else genital_overlay.color = "#[H.dna.features["mcolor3"]]" + */ standing += genital_overlay if(LAZYLEN(standing)) H.overlays_standing[layer] = standing.Copy()