diff --git a/code/modules/surgery/organs/vocal_cords.dm b/code/modules/surgery/organs/vocal_cords.dm
index cc37c19b64..ef1658265a 100644
--- a/code/modules/surgery/organs/vocal_cords.dm
+++ b/code/modules/surgery/organs/vocal_cords.dm
@@ -1068,6 +1068,9 @@
else if((findtext(message, forget_words)))
for(var/mob/living/carbon/C in listeners)
var/datum/status_effect/chem/enthrall/E = C.has_status_effect(/datum/status_effect/chem/enthrall)
+ if(E.phase == 4)
+ addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, C, "You're unable to forget about [(C.client?.prefs.lewdchem?"the dominating presence of [E.enthrallGender]":"[E.master]")]!"), 5)
+ continue
addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, C, "You wake up, forgetting everything that just happened. You must've dozed off..? How embarassing!"), 5)
C.Sleeping(50)
switch(E.phase)
@@ -1408,7 +1411,7 @@
L.SetKnockdown(0)
L.SetUnconscious(0) //i said get up i don't care if you're being tased
E.cooldown += 10 //This could be really strong
- addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, L, "You jump to your feel from sheer willpower!"), 5)
+ addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, L, "You jump to your feet from sheer willpower!"), 5)
//PACIFY
else if(findtext(message, pacify_words))
diff --git a/icons/obj/chemical.dmi b/icons/obj/chemical.dmi
index 93daa6149e..b63e9344f1 100644
Binary files a/icons/obj/chemical.dmi and b/icons/obj/chemical.dmi differ
diff --git a/modular_citadel/code/datums/status_effects/chems.dm b/modular_citadel/code/datums/status_effects/chems.dm
index 5f2c8a47cc..b0c16152a2 100644
--- a/modular_citadel/code/datums/status_effects/chems.dm
+++ b/modular_citadel/code/datums/status_effects/chems.dm
@@ -4,33 +4,40 @@
/datum/status_effect/chem/SGDF
id = "SGDF"
var/mob/living/fermi_Clone
+ var/mob/living/original
+ var/datum/mind/originalmind
+ var/status_set = FALSE
alert_type = null
/datum/status_effect/chem/SGDF/on_apply()
log_game("FERMICHEM: SGDF status appied on [owner], ID: [owner.key]")
- var/typepath = owner.type
- fermi_Clone = new typepath(owner.loc)
- var/mob/living/carbon/M = owner
- var/mob/living/carbon/C = fermi_Clone
-
- if(istype(C) && istype(M))
- C.real_name = M.real_name
- M.dna.transfer_identity(C, transfer_SE=1)
- C.updateappearance(mutcolor_update=1)
+ fermi_Clone = owner
return ..()
/datum/status_effect/chem/SGDF/tick()
- if(owner.stat == DEAD)
+ if(!status_set)
+ return ..()
+ if(original.stat == DEAD || original == null || !original)
if((fermi_Clone && fermi_Clone.stat != DEAD) || (fermi_Clone == null))
- if(owner.mind)
+ if(originalmind)
+ owner.remove_status_effect(src)
+ /*
log_game("FERMICHEM: SGDF mind shift applied. [owner] is now playing as their clone and should not have memories after their clone split (look up SGDF status applied). ID: [owner.key]")
owner.mind.transfer_to(fermi_Clone)
to_chat(owner, "Lucidity shoots to your previously blank mind as your mind suddenly finishes the cloning process. You marvel for a moment at yourself, as your mind subconciously recollects all your memories up until the point when you cloned yourself. curiously, you find that you memories are blank after you ingested the sythetic serum, leaving you to wonder where the other you is.")
to_chat(fermi_Clone, "Lucidity shoots to your previously blank mind as your mind suddenly finishes the cloning process. You marvel for a moment at yourself, as your mind subconciously recollects all your memories up until the point when you cloned yourself. curiously, you find that you memories are blank after you ingested the sythetic serum, leaving you to wonder where the other you is.")
fermi_Clone = null
owner.remove_status_effect(src)
+ */
..()
+/datum/status_effect/chem/SGDF/on_remove(mob/living/carbon/M)
+ log_game("FERMICHEM: SGDF mind shift applied. [owner] is now playing as their clone and should not have memories after their clone split (look up SGDF status applied). ID: [owner.key]")
+ originalmind.transfer_to(fermi_Clone)
+ to_chat(owner, "Lucidity shoots to your previously blank mind as your mind suddenly finishes the cloning process. You marvel for a moment at yourself, as your mind subconciously recollects all your memories up until the point when you cloned yourself. curiously, you find that you memories are blank after you ingested the sythetic serum, leaving you to wonder where the other you is.")
+ to_chat(M, "Lucidity shoots to your previously blank mind as your mind suddenly finishes the cloning process. You marvel for a moment at yourself, as your mind subconciously recollects all your memories up until the point when you cloned yourself. curiously, you find that you memories are blank after you ingested the sythetic serum, leaving you to wonder where the other you is.")
+ fermi_Clone = null
+
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/datum/status_effect/chem/breast_enlarger
@@ -247,7 +254,7 @@
var/mob/living/carbon/M = owner
//chem calculations
- if(!owner.reagents.has_reagent("enthrall"))
+ if(!owner.reagents.has_reagent("enthrall") || !owner.reagents.has_reagent("enthrallTest"))
if (phase < 3 && phase != 0)
deltaResist += 3//If you've no chem, then you break out quickly
if(prob(10))
diff --git a/modular_citadel/code/modules/reagents/chemistry/reagents/SDGF.dm b/modular_citadel/code/modules/reagents/chemistry/reagents/SDGF.dm
index b1c4bbffcc..62a78c6567 100644
--- a/modular_citadel/code/modules/reagents/chemistry/reagents/SDGF.dm
+++ b/modular_citadel/code/modules/reagents/chemistry/reagents/SDGF.dm
@@ -161,7 +161,22 @@ IMPORTANT FACTORS TO CONSIDER WHILE BALANCING
M.nutrition = 15//YOU BEST BE EATTING AFTER THIS YOU CUTIE
M.next_move_modifier -= 4
to_chat(M, "Your body splits away from the cell clone of yourself, leaving you with a drained and hollow feeling inside.")
- M.apply_status_effect(/datum/status_effect/chem/SGDF)
+
+ //clone
+ var/typepath = M.type
+ var/mob/living/fermi_Clone = new typepath(M.loc)
+ var/mob/living/carbon/C = fermi_Clone
+
+ if(istype(C) && istype(M))
+ C.real_name = M.real_name
+ M.dna.transfer_identity(C, transfer_SE=1)
+ C.updateappearance(mutcolor_update=1)
+ C.apply_status_effect(/datum/status_effect/chem/SGDF)
+ var/datum/status_effect/chem/SGDF/S = C.has_status_effect(/datum/status_effect/chem/SGDF)
+ S.original = M
+ S.originalmind = M.mind
+ S.status_set = TRUE
+
log_game("FERMICHEM: [M] ckey: [M.key] has created a mindless clone of themselves")
SSblackbox.record_feedback("tally", "fermi_chem", 1, "Braindead clones made")
if(87 to INFINITY)
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 b2ede684a4..6f040ee511 100644
--- a/modular_citadel/code/modules/reagents/chemistry/reagents/fermi_reagents.dm
+++ b/modular_citadel/code/modules/reagents/chemistry/reagents/fermi_reagents.dm
@@ -350,18 +350,19 @@
color = "#fbc314"
pH = 0
can_synth = TRUE
+ addProc = TRUE
//Consumes self on addition and shifts pH
/datum/reagent/fermi/acidic_buffer/on_new(datapH)
data = datapH
if(LAZYLEN(holder.reagent_list) == 1)
return
- holder.pH = ((holder.pH * holder.total_volume)+(pH * (volume*3)))/(holder.total_volume + (volume*3))
+ holder.pH = ((holder.pH * holder.total_volume)+(pH * (volume)))/(holder.total_volume + (volume))
var/list/seen = viewers(5, get_turf(holder))
for(var/mob/M in seen)
to_chat(M, "The beaker fizzes as the pH changes!")
playsound(get_turf(holder.my_atom), 'sound/FermiChem/bufferadd.ogg', 50, 1)
- holder.remove_reagent(id, volume)
+ holder.remove_reagent(id, volume, ignore_pH = TRUE)
..()
/datum/reagent/fermi/basic_buffer
@@ -371,17 +372,18 @@
color = "#3853a4"
pH = 14
can_synth = TRUE
+ addProc = TRUE
/datum/reagent/fermi/basic_buffer/on_new(datapH)
data = datapH
if(LAZYLEN(holder.reagent_list) == 1)
return
- holder.pH = ((holder.pH * holder.total_volume)+(pH * (volume*3)))/(holder.total_volume + (volume*3))
+ holder.pH = ((holder.pH * holder.total_volume)+(pH * (volume)))/(holder.total_volume + (volume))
var/list/seen = viewers(5, get_turf(holder))
for(var/mob/M in seen)
to_chat(M, "The beaker froths as the pH changes!")
playsound(get_turf(holder.my_atom), 'sound/FermiChem/bufferadd.ogg', 50, 1)
- holder.remove_reagent(id, volume)
+ holder.remove_reagent(id, volume, ignore_pH = TRUE)
..()
//Turns you into a cute catto while it's in your system.