diff --git a/code/modules/mob/living/blood.dm b/code/modules/mob/living/blood.dm index dcdbeb13ad..8acaa4e00c 100644 --- a/code/modules/mob/living/blood.dm +++ b/code/modules/mob/living/blood.dm @@ -300,3 +300,22 @@ var/obj/effect/decal/cleanable/oil/B = locate() in T.contents if(!B) B = new(T) + +//I think I had a plan, but it went out the window. +/mob/living/proc/IncreaseBloodVol(var/value) + blood_ratio += value + return + +/mob/living/proc/DecreaseBloodVol(var/value) + blood_ratio -= value + +/mob/living/proc/ResetBloodVol() + if(ishuman(src)) + if src.has_quirk(/datum/quirk/BloodPressure) + blood_ratio = 1.2 + blood_ratio = 1 + +/mob/living/proc/AdjustBloodVol(var/value) + if(blood_ratio == value) + return + blood_ratio = value diff --git a/code/modules/reagents/chemistry/holder.dm b/code/modules/reagents/chemistry/holder.dm index 30219cc2c2..e9ef720616 100644 --- a/code/modules/reagents/chemistry/holder.dm +++ b/code/modules/reagents/chemistry/holder.dm @@ -886,7 +886,7 @@ im for (var/datum/reagent/reagentgas in reagent_list) R.add_reagent(reagentgas, amount/5) remove_reagent(reagentgas, amount/5) - s.set_up(R, CLAMP(amount/10, 0, 1), T) + s.set_up(R, CLAMP(amount/10, 0, 2), T) s.start() return FALSE diff --git a/code/modules/surgery/organs/vocal_cords.dm b/code/modules/surgery/organs/vocal_cords.dm index f333372283..aca74359fc 100644 --- a/code/modules/surgery/organs/vocal_cords.dm +++ b/code/modules/surgery/organs/vocal_cords.dm @@ -884,13 +884,12 @@ descmessage += " And yet, it feels good..!" E.enthrallTally += power_multiplier E.resistanceTally -= power_multiplier - E.cooldown += 1 */ else addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, L, "I've failed [E.master]..."), 5) + E.resistanceTally += power_multiplier + E.enthrallTally += power_multiplier E.cooldown += 1 - E.resistanceTally += power_multiplier - E.enthrallTally += power_multiplier SEND_SIGNAL(L, COMSIG_ADD_MOOD_EVENT, "enthrallscold", /datum/mood_event/enthrallscold, descmessage) E.cooldown += 1 @@ -1126,6 +1125,7 @@ return else user.emote(user, 1, "puts their hands upon [H.name]'s head and looks deep into their eyes, whispering something to them.'") + user.SetStun(1000)//Hands are handy, so you have to stay still H.SetStun(1000) if (E.mental_capacity >= 10) var/trigger = stripped_input(user, "Enter the trigger phrase", MAX_MESSAGE_LEN) @@ -1145,6 +1145,7 @@ to_chat(user, "Your pet looks at you confused, it seems they don't understand that effect!") else to_chat(user, "Your pet looks at you with a vacant blase expression, you don't think you can program anything else into them") + user.SetStun(0) H.SetStun(0) //CUSTOM OBJECTIVE @@ -1158,6 +1159,7 @@ return else user.emote(user, 1, "puts their hands upon [H.name]'s head and looks deep into their eyes, whispering something to them.'") + user.SetStun(1000)//So you can't run away! H.SetStun(1000) if (E.mental_capacity >= 250 || message == "objective") var/datum/objective/brainwashing/objective = stripped_input(user, "Add an objective to give your pet.", MAX_MESSAGE_LEN) @@ -1177,6 +1179,7 @@ //else if (E.mental_capacity >= 150) else to_chat(user, "Your pet looks at you with a vacant blasé expression, you don't think you can program anything else into them") + user.SetStun(0) H.SetStun(0) diff --git a/modular_citadel/code/datums/status_effects/chems.dm b/modular_citadel/code/datums/status_effects/chems.dm index 19ee869c25..1e7d6696de 100644 --- a/modular_citadel/code/datums/status_effects/chems.dm +++ b/modular_citadel/code/datums/status_effects/chems.dm @@ -140,9 +140,8 @@ bloodCalc = 1+((round(P.length) - 21)/10) //effects how much blood you need (I didn' bother adding an arousal check because I'm spending too much time on this organ already.) if(!P) o.remove_movespeed_modifier("hugedick") - o.blood_ratio /= bloodCalc //If someone else uses blood_ratio, turn this into a multiplier(I should make a handler huh) + o.ResetBloodVol() owner.remove_status_effect(src) - message_admins("PElarge tick!") var/items = o.get_contents() for(var/obj/item/W in items) if(W == o.w_uniform || W == o.wear_suit) @@ -151,20 +150,19 @@ to_chat(owner, "Your enormous package is way to large to fit anything over!") switch(round(P.cached_length)) if(21) - if (P.prev_size > P.size) - to_chat(o, "Your rascally willy has become a more managable size, liberating your movements.") - o.remove_movespeed_modifier("hugedick") - o.blood_ratio /= bloodCalc + to_chat(o, "Your rascally willy has become a more managable size, liberating your movements.") + o.remove_movespeed_modifier("hugedick") + o.AdjustBloodVol(bloodCalc) if(22 to INFINITY) - if (!(P.prev_size == P.size)) - to_chat(o, "Your indulgent johnson is so substantial, it's taking all your blood and affecting your movements!") + if(prob(2)) + to_chat(o, "Your indulgent johnson is so substantial, it's taking all your blood and affecting your movements!") o.add_movespeed_modifier("hugedick", TRUE, 100, NONE, override = TRUE, multiplicative_slowdown = moveCalc) - o.blood_ratio *= bloodCalc + o.AdjustBloodVol(bloodCalc) ..() /datum/status_effect/chem/PElarger/on_remove(mob/living/carbon/human/o) owner.remove_movespeed_modifier("hugedick") - o.blood_ratio /= bloodCalc + o.ResetBloodVol() /*////////////////////////////////////////// diff --git a/modular_citadel/code/modules/arousal/organs/breasts.dm b/modular_citadel/code/modules/arousal/organs/breasts.dm index b526312b1a..17eb332485 100644 --- a/modular_citadel/code/modules/arousal/organs/breasts.dm +++ b/modular_citadel/code/modules/arousal/organs/breasts.dm @@ -92,31 +92,25 @@ //var/mob/living/carbon/human/o = owner //var/obj/item/organ/genital/breasts/B = o.getorganslot("breasts") //message_admins("Breast size at start: [size], [cached_size], [owner]") - if(!isnum(cached_size)) - cached_size = breast_values[cached_size] if(cached_size < 0)//I don't actually know what round() does to negative numbers, so to be safe!!(Why does this runtime??) to_chat(owner, "You feel your breasts shrinking away from your body as your chest flattens out.") src.Remove(owner) switch(round(cached_size)) if(0) //If flatchested size = "flat" - if(statuscheck == TRUE) - message_admins("Attempting to remove.") + if(owner.has_status_effect(/datum/status_effect/chem/BElarger)) owner.remove_status_effect(/datum/status_effect/chem/BElarger) statuscheck = FALSE if(1 to 8) //If modest size size = breast_sizes[round(cached_size)] - if(statuscheck == TRUE) - message_admins("Attempting to remove.") + if(owner.has_status_effect(/datum/status_effect/chem/BElarger)) owner.remove_status_effect(/datum/status_effect/chem/BElarger) statuscheck = FALSE if(9 to 15) //If massive size = breast_sizes[round(cached_size)] - if(statuscheck == FALSE) - message_admins("Attempting to apply.") + if(!owner.has_status_effect(/datum/status_effect/chem/BElarger)) owner.apply_status_effect(/datum/status_effect/chem/BElarger) statuscheck = TRUE - if(16 to INFINITY) //if Rediculous size = cached_size //message_admins("1. [breast_values[size]] vs [breast_values[prev_size]] || [size] vs [prev_size]") diff --git a/modular_citadel/code/modules/arousal/organs/genitals.dm b/modular_citadel/code/modules/arousal/organs/genitals.dm index 47fc332d91..4b54ea38f0 100644 --- a/modular_citadel/code/modules/arousal/organs/genitals.dm +++ b/modular_citadel/code/modules/arousal/organs/genitals.dm @@ -168,6 +168,8 @@ P.length = dna.features["cock_length"] P.girth_ratio = dna.features["cock_girth_ratio"] P.shape = dna.features["cock_shape"] + P.prev_size = P.length + P.cached_length = P.length P.update() /mob/living/carbon/human/proc/give_balls() @@ -205,6 +207,8 @@ else B.color = "#[dna.features["breasts_color"]]" B.size = dna.features["breasts_size"] + B.prev_size = B.size + B.cached_size = B.breast_values[B.size] B.shape = dna.features["breasts_shape"] B.fluid_id = dna.features["breasts_fluid"] B.update() @@ -271,17 +275,8 @@ //fermichem procs /mob/living/carbon/human/proc/Force_update_genitals(mob/living/carbon/human/H) //called in fermiChem - var/obj/item/organ/genital/breasts/B = M.getorganslot("breasts") - - if (cached_size == null) //MOVE THIS TO FORCE UPDATE I have to do this because Pooj's latest commit broke everthing. I give up and I hate genitals. - prev_size = size - cached_size = breast_values[size] - if(!isnum(cached_size)) - cached_size = breast_values[cached_size] - dna.species.handle_genitals(src) + dna.species.handle_genitals(src)//should work. //dna.species.handle_breasts(src) - //H.update_body() -//species_traits = list(NOTRANSSTING,NOGENITALS) /mob/living/carbon/human/proc/emergent_genital_call() var/organCheck = FALSE diff --git a/modular_citadel/code/modules/arousal/organs/penis.dm b/modular_citadel/code/modules/arousal/organs/penis.dm index 409d27aace..fb5f7739f0 100644 --- a/modular_citadel/code/modules/arousal/organs/penis.dm +++ b/modular_citadel/code/modules/arousal/organs/penis.dm @@ -18,23 +18,14 @@ var/knot_girth_ratio = KNOT_GIRTH_RATIO_DEF var/list/dickflags = list() var/list/knotted_types = list("knotted", "barbed, knotted") - var/statuscheck = FALSE var/prev_size = 6 //really should be renamed to prev_length /obj/item/organ/genital/penis/Initialize() . = ..() - /* I hate genitals. - var/mob/living/carbon/human/o = owner - length = o.dna.features["cock_length"] //for whatever reason, this doesn't set up correctly. - prev_size = length - cached_length = length - */ + /* I hate genitals.*/ /obj/item/organ/genital/penis/update_size() var/mob/living/carbon/human/o = owner - if(!cached_length) - prev_size = length - cached_length = length if(cached_length < 0)//I don't actually know what round() does to negative numbers, so to be safe!! var/obj/item/organ/genital/penis/P = o.getorganslot("penis") to_chat(o, "You feel your tallywacker shrinking away from your body as your groin flattens out!") @@ -43,59 +34,41 @@ if(0 to 4) //If modest size length = cached_length size = 1 - if(statuscheck == TRUE) - //message_admins("Attempting to remove.") + if(owner.has_status_effect(/datum/status_effect/chem/PElarger)) o.remove_status_effect(/datum/status_effect/chem/PElarger) - statuscheck = FALSE if(5 to 10) //If modest size length = cached_length size = 2 - if(statuscheck == TRUE) - //message_admins("Attempting to remove.") + if(owner.has_status_effect(/datum/status_effect/chem/PElarger)) o.remove_status_effect(/datum/status_effect/chem/PElarger) - statuscheck = FALSE if(11 to 20) //If massive length = cached_length - size = 3 - if(statuscheck == FALSE) - //message_admins("Attempting to apply.") + size = 3 + if(owner.has_status_effect(/datum/status_effect/chem/PElarger)) o.remove_status_effect(/datum/status_effect/chem/PElarger) - statuscheck = TRUE - if(21 to 29) + if(21 to 29) //If massive and due for large effects length = cached_length size = 3 - if(statuscheck == FALSE) - //message_admins("Attempting to apply.") + if(!owner.has_status_effect(/datum/status_effect/chem/PElarger)) o.apply_status_effect(/datum/status_effect/chem/PElarger) - statuscheck = TRUE - if(30 to INFINITY) + if(30 to INFINITY) //If comical length = cached_length size = 4 //no new sprites for anything larger yet - if(statuscheck == FALSE) - //message_admins("Attempting to apply.") + if(!owner.has_status_effect(/datum/status_effect/chem/PElarger)) o.apply_status_effect(/datum/status_effect/chem/PElarger) - statuscheck = TRUE - //message_admins("Pinas size: [length], [cached_length], [o]") - //message_admins("2. size vs prev_size") + if (round(length) > round(prev_size)) to_chat(o, "Your [pick("phallus", "willy", "dick", "prick", "member", "tool", "gentleman's organ", "cock", "wang", "knob", "dong", "joystick", "pecker", "johnson", "Chase Redtail", "weenie", "tadger", "schlong", "thirsty ferret", "baloney pony", "schlanger")] [pick("swells up to", "flourishes into", "expands into", "bursts forth into", "grows eagerly into", "amplifys into")] a [uppertext(round(length))] inch penis.") else if (round(length) < round(prev_size)) to_chat(o, "Your [pick("phallus", "willy", "dick", "prick", "member", "tool", "gentleman's organ", "cock", "wang", "knob", "dong", "joystick", "pecker", "johnson", "Chase Redtail", "weenie", "tadger", "schlong", "thirsty ferret", "baloney pony", "schlanger")] [pick("shrinks down to", "decreases into", "diminishes into", "deflates into", "shrivels regretfully into", "contracts into")] a [uppertext(round(length))] inch penis.") prev_size = length icon_state = sanitize_text("penis_[shape]_[size]") - //update_body() - //P.update_icon() //Either of these don't work, why??? girth = (length * girth_ratio)//Is it just me or is this ludicous, why not make it exponentially decay? - //var/mob/living/carbon/human/H = owner - //H.update_genitals() - //owner.update_genitals() //I have no idea on how to update sprites and I hate it /obj/item/organ/genital/penis/update_appearance() - //var/mob/living/carbon/o = owner - var/string = "penis_[GLOB.cock_shapes_icons[shape]]_[size]" - icon_state = sanitize_text(string) + var/string var/lowershape = lowertext(shape) desc = "You see [aroused_state ? "an erect" : "a flaccid"] [lowershape] penis. You estimate it's about [round(length, 0.25)] inch[round(length, 0.25) != 1 ? "es" : ""] long and [round(girth, 0.25)] inch[round(girth, 0.25) != 1 ? "es" : ""] in girth." @@ -104,9 +77,15 @@ 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)]" + string = "penis_[GLOB.cock_shapes_icons[shape]]_[size]-s" else color = "#[owner.dna.features["cock_color"]]" - //owner.update_body() + string = "penis_[GLOB.cock_shapes_icons[shape]]_[size]" + if(ishuman(owner)) + var/mob/living/carbon/human/H = owner + H.update_genitals() + + icon_state = sanitize_text(string) /obj/item/organ/genital/penis/update_link() if(owner) diff --git a/modular_citadel/code/modules/reagents/chemistry/reagents/fermi_reagents.dm b/modular_citadel/code/modules/reagents/chemistry/reagents/fermi_reagents.dm index 249190cfd7..759232327e 100644 --- a/modular_citadel/code/modules/reagents/chemistry/reagents/fermi_reagents.dm +++ b/modular_citadel/code/modules/reagents/chemistry/reagents/fermi_reagents.dm @@ -572,7 +572,7 @@ IMPORTANT FACTORS TO CONSIDER WHILE BALANCING ZI.real_name = M.real_name//Give your offspring a big old kiss. ZI.name = M.real_name ZI.desc = "[M]'s clone, gone horribly wrong." - ZI.zombiejob = null + ZI.zombiejob = FALSE //ZI.updateappearance(mutcolor_update=1) M.reagents.remove_reagent(src.id, 20) else//easier to deal with @@ -1086,17 +1086,14 @@ And as stated earlier, this chem is hard to make, and is punishing on failure. Y color = "#2C051A" // rgb: , 0, 255 taste_description = "synthetic chocolate, a base tone of alcohol, and high notes of roses" overdose_threshold = 100 //If this is too easy to get 100u of this, then double it please. - InverseChemVal = 0.5 - InverseChem = "enthrallInverse" //At really impure vols, it just becomes 100% inverse - //DoNotSplit = TRUE + DoNotSplit = TRUE data = list("creatorID" = null, "creatorGender" = null, "creatorName" = null) var/creatorID //ckey var/creatorGender var/creatorName var/mob/living/creator pH = 10 - DoNotSplit = TRUE - //OnMobMergeCheck = TRUE //Procs on_mob_add when merging into a human + OnMobMergeCheck = TRUE //Procs on_mob_add when merging into a human /datum/reagent/fermi/enthrall/test name = "MKUltraTest" @@ -1111,6 +1108,7 @@ And as stated earlier, this chem is hard to make, and is punishing on failure. Y creatorGender = "Mistress" creatorName = "Fermis Yakumo" purity = 1 + DoNotSplit = TRUE /datum/reagent/fermi/enthrall/test/on_new() id = "enthrall" @@ -1166,6 +1164,29 @@ And as stated earlier, this chem is hard to make, and is punishing on failure. Y /datum/reagent/fermi/enthrall/on_mob_life(mob/living/carbon/M) + if(purity < 0.5)//DO NOT SPLIT INTO DIFFERENT CHEM: This relies on DoNotSplit - has to be done this way. + if (M.ckey == creatorID && creatorName == M.real_name)//If the creator drinks it, they fall in love randomly. If someone else drinks it, the creator falls in love with them. + if(M.has_status_effect(STATUS_EFFECT_INLOVE)) + return + var/list/seen = viewers(7, get_turf(M))//Sound and sight checkers + for(var/victim in seen) + if((victim == /mob/living/simple_animal/pet/) || (victim == M)) + seen = seen - victim + if(!seen) + return + M.reagents.remove_reagent(src.id, src.volume) + FallInLove(M, pick(seen)) + return + else // If someone else drinks it, the creator falls in love with them! + var/mob/living/carbon/C = get_mob_by_key(creatorID) + if(C.has_status_effect(STATUS_EFFECT_INLOVE)) + return + if(C in viewers(7, get_turf(M))) + M.reagents.remove_reagent(src.id, src.volume) + FallInLove(C, M) + return + if(volume < 1)//You don't get to escape that easily + FallInLove(pick(GLOB.player_list), M) if (M.ckey == creatorID && creatorName == M.real_name)//If you yourself drink it, it does nothing. return if(!M.client) @@ -1180,7 +1201,7 @@ And as stated earlier, this chem is hard to make, and is punishing on failure. Y message_admins("No enthrall status found in [M]!") else E.enthrallTally += 1 - if(prob(50)) + if(prob(25)) M.adjustBrainLoss(0.1)//Honestly this could be removed, in testing it made everyone brain damaged, but on the other hand, we were chugging tons of it. ..() @@ -1204,8 +1225,8 @@ And as stated earlier, this chem is hard to make, and is punishing on failure. Y M.add_trait(TRAIT_PACIFISM, "MKUltra") var/datum/status_effect/chem/enthrall/E if (!M.has_status_effect(/datum/status_effect/chem/enthrall)) - E = M.has_status_effect(/datum/status_effect/chem/enthrall) M.apply_status_effect(/datum/status_effect/chem/enthrall) + E = M.has_status_effect(/datum/status_effect/chem/enthrall) E.enthrallID = creatorID E.enthrallGender = creatorGender E.master = creator @@ -1222,39 +1243,6 @@ And as stated earlier, this chem is hard to make, and is punishing on failure. Y M.adjustBrainLoss(0.1)//should be 15 in total ..() -/datum/reagent/fermi/enthrall/Inverse - name = "MKUltra" - id = "enthrall" - description = "A forbidden deep red mixture that overwhelms a foreign body with waves of pleasure, intoxicating them into servitude. When taken by the creator, it will enhance the draw of their voice to those affected by it." - color = "#2C051A" // rgb: , 0, 255 - taste_description = "synthetic chocolate, a base tone of alcohol, and high notes of roses" - DoNotSplit = TRUE - -/datum/reagent/fermi/enthrall/Inverse/on_mob_life(mob/living/carbon/M) - if(purity < 0.5)//Placeholder for now. I'd like to get this done. - if (M.ckey == creatorID && creatorName == M.real_name)//If the creator drinks it, they fall in love randomly. If someone else drinks it, the creator falls in love with them. - if(M.has_status_effect(STATUS_EFFECT_INLOVE)) - return - var/list/seen = viewers(7, get_turf(M))//Sound and sight checkers - for(var/victim in seen) - if((victim == /mob/living/simple_animal/pet/) || (victim == M)) - seen = seen - victim - if(!seen) - return - M.reagents.remove_reagent(src.id, src.volume) - FallInLove(M, pick(seen)) - return - else // If someone else drinks it, the creator falls in love with them! - var/mob/living/carbon/C = get_mob_by_key(creatorID) - if(C.has_status_effect(STATUS_EFFECT_INLOVE)) - return - if(C in viewers(7, get_turf(M))) - M.reagents.remove_reagent(src.id, src.volume) - FallInLove(C, M) - return - if(volume < 1)//You don't get to escape that easily - FallInLove(pick(GLOB.player_list), M) - //Creates a gas cloud when the reaction blows up, causing everyone in it to fall in love with someone/something while it's in their system. /datum/reagent/fermi/enthrallExplo//Created in a gas cloud when it explodes name = "MKUltra" @@ -1291,7 +1279,7 @@ And as stated earlier, this chem is hard to make, and is punishing on failure. Y if(prob(10)) M.Stun(10) M.emote("whimper")//does this exist? - to_chat(M, "You're overcome with a desire to see [love].") + to_chat(M, " You're overcome with a desire to see [love].") M.adjustBrainLoss(5) ..() @@ -1299,6 +1287,7 @@ And as stated earlier, this chem is hard to make, and is punishing on failure. Y M.remove_status_effect(STATUS_EFFECT_INLOVE) SEND_SIGNAL(M, COMSIG_CLEAR_MOOD_EVENT, "InLove") SEND_SIGNAL(M, COMSIG_CLEAR_MOOD_EVENT, "MissingLove") + to_chat(M, "Your feelings for [love] suddenly vanish!") ..() /datum/reagent/fermi/proc/FallInLove(mob/living/carbon/Lover, mob/living/carbon/Love) @@ -1445,24 +1434,24 @@ And as stated earlier, this chem is hard to make, and is punishing on failure. Y //var/component/nanites/N = M.GetComponent(/datum/component/nanites) GET_COMPONENT_FROM(N, /datum/component/nanites, C) if(isnull(N)) - return + return ..() N.regen_rate = -0.25//This seems really high ..() /datum/reagent/fermi/naninte_b_gone/overdose_process(mob/living/carbon/C) //var/component/nanites/N = M.GetComponent(/datum/component/nanites) GET_COMPONENT_FROM(N, /datum/component/nanites, C) - if(isnull(N)) - return - N.regen_rate = -1//12.5 seems crazy high? if(prob(20)) to_chat(C, "The residual voltage from the nanites causes you to seize up!") C.electrocute_act(10, (get_turf(C)), 1, FALSE, FALSE, FALSE, TRUE) if(prob(10)) //empulse((get_turf(C)), 3, 2)//So the nanites randomize - var/T = get_turf(C) + var/atom/T = C T.emp_act(EMP_HEAVY) to_chat(C, "The nanintes short circuit within your system!") + if(isnull(N)) + return ..() + N.regen_rate = -1//12.5 seems crazy high? ..() //Unobtainable, used if SDGF is impure but not too impure @@ -1479,7 +1468,7 @@ And as stated earlier, this chem is hard to make, and is punishing on failure. Y C.electrocute_act(10, (get_turf(C)), 1, FALSE, FALSE, FALSE, TRUE) if(prob(10)) //empulse((get_turf(C)), 2, 1, 1)//So the nanites randomize - var/T = get_turf(C) + var/atom/T = C T.emp_act(EMP_HEAVY) to_chat(C, "You feel your hair stand on end as you glow brightly for a moment!") ..() @@ -1565,6 +1554,7 @@ And as stated earlier, this chem is hard to make, and is punishing on failure. Y name = ""//defined on setup id = "fermiTox" description = "You should be really careful with this...! Also, how did you get this?" + data = "merge" /datum/reagent/fermi/fermiTox/on_mob_life(mob/living/carbon/C, method) if(C.dna && istype(C.dna.species, /datum/species/jelly)) @@ -1578,12 +1568,11 @@ And as stated earlier, this chem is hard to make, and is punishing on failure. Y id = "fermiABuffer" description = "This reagent will consume itself and move the pH of a beaker towards 3 when added to another." taste_description = "an acidy sort of taste, blech." + color = "#fbc314" addProc = FALSE pH = 3 /datum/reagent/fermi/fermiABuffer/on_new() - if(addProc == FALSE)//This is so it doesn't react when made. - addProc = TRUE if(LAZYLEN(holder.reagent_list) == 1) return pH = ((holder.pH * holder.total_volume)+(3 * src.volume))/(holder.total_volume + src.volume) @@ -1595,12 +1584,11 @@ And as stated earlier, this chem is hard to make, and is punishing on failure. Y id = "fermiBBuffer" description = "This reagent will consume itself and move the pH of a beaker towards 11 when added to another." taste_description = "an soapy sort of taste, blech." + color = "#3853a4" addProc = FALSE pH = 11 /datum/reagent/fermi/fermiBBuffer/on_new() - if(addProc == FALSE)//This is so it doesn't react when made. - addProc = TRUE if(LAZYLEN(holder.reagent_list) == 1) return pH = ((holder.pH * holder.total_volume)+(11 * src.volume))/(holder.total_volume + src.volume) diff --git a/modular_citadel/code/modules/reagents/chemistry/recipes/fermi.dm b/modular_citadel/code/modules/reagents/chemistry/recipes/fermi.dm index 89379617b3..b6d888ef88 100644 --- a/modular_citadel/code/modules/reagents/chemistry/recipes/fermi.dm +++ b/modular_citadel/code/modules/reagents/chemistry/recipes/fermi.dm @@ -14,7 +14,6 @@ //Called when temperature is above a certain threshold //....Is this too much? /datum/chemical_reaction/fermi/proc/FermiExplode(datum/reagents, var/atom/my_atom, volume, temp, pH, Exploding = FALSE) //You can get holder by reagents.holder WHY DID I LEARN THIS NOW??? - message_admins("Fermi explosion at [T], with a temperature of [temp], pH of [pH], Impurity tot of [ImpureTot], containing [my_atom.reagents.reagent_list]") if (Exploding == TRUE) return if(!pH)//Dunno how things got here without a pH. @@ -22,7 +21,7 @@ var/ImpureTot = 0 var/pHmod = 1 var/turf/T = get_turf(my_atom) - + message_admins("Fermi explosion at [T], with a temperature of [temp], pH of [pH], Impurity tot of [ImpureTot], containing [my_atom.reagents.reagent_list]") var/datum/reagents/R = new/datum/reagents(3000)//Hey, just in case. var/datum/effect_system/smoke_spread/chem/s = new() if(pH < 4) //if acidic, make acid spray @@ -377,7 +376,9 @@ RateUpLim = 20 FermiChem = TRUE -//datum/chemical_reaction/fermi/fermiABuffer/FermiFinish(datum/reagents/holder, var/atom/my_atom) //might need this +/datum/chemical_reaction/fermi/fermiABuffer/FermiFinish(datum/reagents/holder, var/atom/my_atom) //might need this + var/datum/reagent/fermi/fermiABuffer/Fa = locate(/datum/reagent/fermi/fermiABuffer) in my_atom.reagents.reagent_list + Fa.data = "merge" /datum/chemical_reaction/fermi/fermiBBuffer//done test name = "Ethyl Ethanoate buffer" @@ -400,4 +401,6 @@ RateUpLim = 20 FermiChem = TRUE -///datum/chemical_reaction/fermi/fermiBBuffer/FermiFinish(datum/reagents/holder, var/atom/my_atom) //might need this +/datum/chemical_reaction/fermi/fermiBBuffer/FermiFinish(datum/reagents/holder, var/atom/my_atom) //might need this + var/datum/reagent/fermi/fermiBBuffer/Fb = locate(/datum/reagent/fermi/fermiBBuffer) in my_atom.reagents.reagent_list + Fb.data = "merge" diff --git a/modular_citadel/icons/obj/genitals/breasts.dmi b/modular_citadel/icons/obj/genitals/breasts.dmi index c02a230bdb..86eac3196a 100644 Binary files a/modular_citadel/icons/obj/genitals/breasts.dmi and b/modular_citadel/icons/obj/genitals/breasts.dmi differ diff --git a/modular_citadel/icons/obj/genitals/penis.dmi b/modular_citadel/icons/obj/genitals/penis.dmi index cb9ce6535f..e33d3ad24c 100644 Binary files a/modular_citadel/icons/obj/genitals/penis.dmi and b/modular_citadel/icons/obj/genitals/penis.dmi differ diff --git a/modular_citadel/icons/obj/genitals/penis_onmob.dmi b/modular_citadel/icons/obj/genitals/penis_onmob.dmi index 733e0a08da..2457759b73 100644 Binary files a/modular_citadel/icons/obj/genitals/penis_onmob.dmi and b/modular_citadel/icons/obj/genitals/penis_onmob.dmi differ diff --git a/modular_citadel/icons/obj/genitals/vagina.dmi b/modular_citadel/icons/obj/genitals/vagina.dmi index a57392868f..00891888a4 100644 Binary files a/modular_citadel/icons/obj/genitals/vagina.dmi and b/modular_citadel/icons/obj/genitals/vagina.dmi differ diff --git a/modular_citadel/icons/obj/genitals/vagina_onmob.dmi b/modular_citadel/icons/obj/genitals/vagina_onmob.dmi index 41bc818719..c22c12ded3 100644 Binary files a/modular_citadel/icons/obj/genitals/vagina_onmob.dmi and b/modular_citadel/icons/obj/genitals/vagina_onmob.dmi differ