diff --git a/code/modules/reagents/chemistry/holder.dm b/code/modules/reagents/chemistry/holder.dm
index a32ea45a01..75caca79ea 100644
--- a/code/modules/reagents/chemistry/holder.dm
+++ b/code/modules/reagents/chemistry/holder.dm
@@ -524,6 +524,7 @@
fermiIsReacting = FALSE
reactedVol = 0
targetVol = 0
+ holder.pH_check()
C.FermiFinish(src, my_atom, multiplier)
handle_reactions()
update_total()
@@ -549,6 +550,7 @@
fermiIsReacting = FALSE
reactedVol = 0
targetVol = 0
+ holder.pH_check()
C.FermiFinish(src, my_atom, multiplier)
handle_reactions()
update_total()
@@ -564,6 +566,7 @@
fermiIsReacting = FALSE
reactedVol = 0
targetVol = 0
+ holder.pH_check()
C.FermiFinish(src, my_atom, multiplier)
handle_reactions()
update_total()
diff --git a/code/modules/reagents/reagent_containers/glass.dm b/code/modules/reagents/reagent_containers/glass.dm
index 709a73d1ba..28fc36e080 100644
--- a/code/modules/reagents/reagent_containers/glass.dm
+++ b/code/modules/reagents/reagent_containers/glass.dm
@@ -178,6 +178,7 @@
/obj/item/reagent_containers/glass/beaker/plastic/Initialize()
beaker_weakness_bitflag &= ~PH_WEAK
beaker_weakness_bitflag |= TEMP_WEAK
+ . = ..()
/obj/item/reagent_containers/glass/beaker/plastic/update_icon()
icon_state = "beakerlarge" // hack to lets us reuse the large beaker reagent fill states
@@ -195,6 +196,7 @@
/obj/item/reagent_containers/glass/beaker/meta/Initialize()
beaker_weakness_bitflag &= ~PH_WEAK
+ . = ..()
/obj/item/reagent_containers/glass/beaker/noreact
name = "cryostasis beaker"
@@ -279,6 +281,7 @@
/obj/item/reagent_containers/glass/bucket/Initialize()
beaker_weakness_bitflag |= TEMP_WEAK
+ . = ..()
/obj/item/reagent_containers/glass/bucket/attackby(obj/O, mob/user, params)
if(istype(O, /obj/item/mop))
diff --git a/code/modules/surgery/organs/vocal_cords.dm b/code/modules/surgery/organs/vocal_cords.dm
index d5f8700f6c..6c40f2f4ca 100644
--- a/code/modules/surgery/organs/vocal_cords.dm
+++ b/code/modules/surgery/organs/vocal_cords.dm
@@ -620,7 +620,15 @@
var/next_command = 0
var/cooldown_mod = 1
var/base_multiplier = 1
- //spans = list("say","yell")
+
+/datum/action/item_action/organ_action/velvet/Trigger()
+ . = ..()
+ var/command = input(owner, "Speak with the Voice of God", "Command")
+ if(QDELETED(src) || QDELETED(owner))
+ return
+ if(!command)
+ return
+ owner.say(".x[command]")
/obj/item/organ/vocal_cords/velvet/handle_speech(message) //actually say the message
owner.say(message, spans = spans, sanitize = FALSE)
diff --git a/modular_citadel/code/datums/status_effects/chems.dm b/modular_citadel/code/datums/status_effects/chems.dm
index b201f394cc..abba911bf2 100644
--- a/modular_citadel/code/datums/status_effects/chems.dm
+++ b/modular_citadel/code/datums/status_effects/chems.dm
@@ -280,7 +280,7 @@
resistanceTally /= 2
enthrallTally = 0
if(owner.lewd)
- to_chat(owner, "Your conciousness slips, as you sink deeper into trance and servitude.")
+ to_chat(owner, "Your conciousness slips, as you sink deeper into trance and servitude.")
else
else if (resistanceTally > 150)
@@ -512,6 +512,7 @@
if (tranceTime > 0) //custom trances only last 50 ticks.
tranceTime -= 1
else if (!tranceTime == null) //remove trance after.
+ M.cure_trauma_type(/datum/brain_trauma/hypnosis, TRAUMA_RESILIENCE_SURGERY)
M.remove_status_effect(/datum/status_effect/trance)
tranceTime = null
//..()
diff --git a/modular_citadel/code/modules/reagents/chemistry/reagents/eigentstasium.dm b/modular_citadel/code/modules/reagents/chemistry/reagents/eigentstasium.dm
index e2a71a3759..6292a54d3b 100644
--- a/modular_citadel/code/modules/reagents/chemistry/reagents/eigentstasium.dm
+++ b/modular_citadel/code/modules/reagents/chemistry/reagents/eigentstasium.dm
@@ -34,7 +34,7 @@
if(current_cycle == 0)
location_return = get_turf(M) //sets up return point
to_chat(M, "You feel your wavefunction split!")
- if(purity > 0.75) //Teleports you home if it's pure enough
+ if(purity > 0.8 && location_created) //Teleports you home if it's pure enough
log_game("FERMICHEM: [M] ckey: [M.key] returned to [location_created] using eigenstasium")
var/turf/open/creation = location_created
do_sparks(5,FALSE,M)
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 d0c25cfb86..19b3842000 100644
--- a/modular_citadel/code/modules/reagents/chemistry/reagents/fermi_reagents.dm
+++ b/modular_citadel/code/modules/reagents/chemistry/reagents/fermi_reagents.dm
@@ -94,12 +94,12 @@
/datum/reagent/fermi/hatmium/on_mob_life(mob/living/carbon/human/M)
if(!M.head == /obj/item/clothing/head/hattip)
return ..()
- var/hatArmor = (1+(current_cycle/30))*purity
- for(var/datum/armor/i in M.head)
- if(!overdosed)
- i = hatArmor
- else
- i = -hatArmor
+ if(!overdosed)
+ var/hatArmor = purity
+ else
+ var/hatArmor = - purity
+ var/obj/item/W = M.head
+ W.modifyAllRatings(hatArmor)
..()
////////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/modular_citadel/code/modules/reagents/objects/fermiclothes.dm b/modular_citadel/code/modules/reagents/objects/clothes.dm
similarity index 81%
rename from modular_citadel/code/modules/reagents/objects/fermiclothes.dm
rename to modular_citadel/code/modules/reagents/objects/clothes.dm
index 4a601d4d67..df878da544 100644
--- a/modular_citadel/code/modules/reagents/objects/fermiclothes.dm
+++ b/modular_citadel/code/modules/reagents/objects/clothes.dm
@@ -19,18 +19,27 @@
user.emote("me",1,"admires such a spiffy hat.",TRUE)
return ..()
+/obj/item/clothing/head/foilhat/MouseDrop(atom/over_object)
+ //You sure do love tipping your hat.
+ if(usr)
+ var/mob/living/carbon/C = usr
+ if(src == C.head)
+ C.emote("me",1,"tips their hat.",TRUE)
+ return
+ ..()
+
/obj/item/clothing/head/hattip/speechModification(message, /mob/living/carbon/C)
..()
var/mob/living/carbon/C = get_wearer()//user
var/obj/item/organ/tongue/T = C.getorganslot(ORGAN_SLOT_TONGUE)
if (T.name == "fluffy tongue")
if(prob(0.01))
- message += "\" and tips their hat. \"swpy's sappin' my swentwy uwu!!"
+ message += "\" and tips their hat. \"swpy's sappin' my chem dispwencer uwu!!"
return message
message += "\" and tips their hat. \"[pick("weehaw!", "bwoy howdy.", "dawn tuutin'.", "weww don't that beat aww.", "whoooowee, wouwd ya wook at that!", "whoooowee! makin' bwacon!", "cweam gwavy!", "yippekeeyah-heeyapeeah-kwayoh!", "mwove 'em uut!", "gwiddy up!")]"
return message
if(prob(0.01))
- message += "\" and tips their hat. \"Spy's sappin' my Sentry!"
+ message += "\" and tips their hat. \"Spy's sappin' my chem dispenser!"//How did I not think of this earlier
message_admins("I really appreciate all the hard work you put into adminning citadel, I hope you're all having a good day and I hope this hidden and rare message admins brightens up your day.")
return message
message += "\" and tips their hat. \"[pick("Yeehaw!", "Boy howdy.", "Darn tootin'.", "Well don't that beat all.", "Whoooowee, would ya look at that!", "Whoooowee! Makin' bacon!", "Cream Gravy!", "Yippekeeyah-heeyapeeah-kayoh!", "Move 'em out!", "Giddy up!")]"
diff --git a/modular_citadel/code/modules/reagents/objects/items.dm b/modular_citadel/code/modules/reagents/objects/items.dm
index fb84db7d39..795b18fedc 100644
--- a/modular_citadel/code/modules/reagents/objects/items.dm
+++ b/modular_citadel/code/modules/reagents/objects/items.dm
@@ -10,7 +10,7 @@
//A little janky with pockets
/obj/item/FermiChem/pHbooklet/attack_hand(mob/user)
- if(user.get_held_index_of_item(src))
+ if(user.get_held_index_of_item(src))//Does this check pockets too..?
if(numberOfPages >= 1)
var/obj/item/FermiChem/pHpaper/P = new /obj/item/FermiChem/pHpaper
P.add_fingerprint(user)
@@ -34,6 +34,28 @@
if(!I)
user.put_in_active_hand(src)
+/obj/item/FermiChem/pHbooklet/MouseDrop(atom/over_object)
+ if(user.get_held_index_of_item(src))
+ user.put_in_active_hand(src)
+ else
+ if(numberOfPages >= 1)
+ var/obj/item/FermiChem/pHpaper/P = new /obj/item/FermiChem/pHpaper
+ P.add_fingerprint(user)
+ P.forceMove(user.loc)
+ user.put_in_active_hand(P)
+ to_chat(user, "You take [P] out of \the [src].")
+ numberOfPages--
+ playsound(user.loc, 'sound/items/poster_ripped.ogg', 50, 1)
+ add_fingerprint(user)
+ if(numberOfPages == 0)
+ icon_state = "pHbookletEmpty"
+ return
+ else
+ to_chat(user, "[src] is empty!")
+ add_fingerprint(user)
+ return
+ ..()
+
/obj/item/FermiChem/pHpaper
name = "pH indicator strip"
desc = "A piece of paper that will change colour depending on the pH of a solution."
@@ -51,7 +73,7 @@
if(used == TRUE)
to_chat(user, "[user] has already been used!")
return
- if(LAZYLEN(cont.reagents.reagent_list))
+ if(!LAZYLEN(cont.reagents.reagent_list))
return
switch(round(cont.reagents.pH, 1))
if(14 to INFINITY)