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