From d67c8b4b112ca0ca20456013bca13b02317dbdd7 Mon Sep 17 00:00:00 2001
From: WenlockTheBritishHobo
<168675688+WenlockTheBritishHobo@users.noreply.github.com>
Date: Sat, 9 Nov 2024 21:25:31 +0000
Subject: [PATCH] Adds Mimestrogen! (#27028)
* Mimestrogen start
* Removes some clown bits from Mimestrogen
* Forgot to use M instead of C when copying a line
* Fixes the emote.
Hadn't realised it calls an emote instead doing a custom one.
* Uses mind.miming instead of the mute trait
* Makes the screen greyscale, some comments in the code
* Fixed perma greyscale
* Changed a mime_message.
* Removes an unneeded variable
The variable was already commented out anyway.
* Forgot something in a comment
* Fixed the description and added a drink description
* Recipes for Mimestrogen
* Stops Vox from taking damage that's for IPC
* Moved a comment one space
* Wrong variable for the pasted check
* Remove proposed recipe 1, add a comment space
* Change check method for damage dealing
Instead of relying on syntheticness, it's better to check if the individual is affected by Toxin damage or not.
Also removes some unneeded comments.
* Just so I don't have to deal with a conflict.
* Make the tox_mod check work better
Makes it so people can't heal from a negative tox mod.
* Accidentally had a line to remove
Signed-off-by: WenlockTheBritishHobo <168675688+WenlockTheBritishHobo@users.noreply.github.com>
* makes mind.miming switch make more sense
Signed-off-by: WenlockTheBritishHobo <168675688+WenlockTheBritishHobo@users.noreply.github.com>
* Apply suggestions from code review
Co-authored-by: Luc <89928798+lewcc@users.noreply.github.com>
Signed-off-by: WenlockTheBritishHobo <168675688+WenlockTheBritishHobo@users.noreply.github.com>
* Applying suggestion from code review
I don't know why there needs to be a line between client.color and update_client_colour so I've just done an if else with the trait removal in both.
Signed-off-by: WenlockTheBritishHobo <168675688+WenlockTheBritishHobo@users.noreply.github.com>
* Apply suggestions from code review
Co-authored-by: Henri215 <77684085+Henri215@users.noreply.github.com>
Signed-off-by: WenlockTheBritishHobo <168675688+WenlockTheBritishHobo@users.noreply.github.com>
* funny -> entertaining
Signed-off-by: WenlockTheBritishHobo <168675688+WenlockTheBritishHobo@users.noreply.github.com>
* Apply suggestions from code review
Co-authored-by: Henri215 <77684085+Henri215@users.noreply.github.com>
Signed-off-by: WenlockTheBritishHobo <168675688+WenlockTheBritishHobo@users.noreply.github.com>
* Better formatting in message list
Signed-off-by: WenlockTheBritishHobo <168675688+WenlockTheBritishHobo@users.noreply.github.com>
---------
Signed-off-by: WenlockTheBritishHobo <168675688+WenlockTheBritishHobo@users.noreply.github.com>
Co-authored-by: Luc <89928798+lewcc@users.noreply.github.com>
Co-authored-by: Henri215 <77684085+Henri215@users.noreply.github.com>
---
.../chemistry/reagents/misc_reagents.dm | 75 ++++++++++++++++++-
.../reagents/chemistry/recipes/others.dm | 9 +++
2 files changed, 83 insertions(+), 1 deletion(-)
diff --git a/code/modules/reagents/chemistry/reagents/misc_reagents.dm b/code/modules/reagents/chemistry/reagents/misc_reagents.dm
index 3c64adf2b7e..8f0d5a5b480 100644
--- a/code/modules/reagents/chemistry/reagents/misc_reagents.dm
+++ b/code/modules/reagents/chemistry/reagents/misc_reagents.dm
@@ -514,8 +514,81 @@
if(M.mind?.assigned_role != "Clown")
REMOVE_TRAIT(M, TRAIT_COMIC_SANS, id)
M.RemoveElement(/datum/element/waddling)
+ M.DeleteComponent(/datum/component/squeak)
- M.DeleteComponent(/datum/component/squeak)
+/datum/reagent/mimestrogen
+ name = "Mimestrogen"
+ id = "mimestrogen"
+ description = "Mimestrogen is an odd chemical compound that induces a variety of annoying side-effects in the average person. It also causes mild intoxication, and is toxic to clowns."
+ color = "#353535" // Should be dark grey, there are already a fair number of white chemicals
+ process_flags = ORGANIC | SYNTHETIC
+ drink_desc = "The color of the glass' surroundings seem to drain as you look at it."
+ taste_description = "an entertaining flavour"
+
+/datum/reagent/mimestrogen/on_new()
+ ..()
+ var/mob/living/carbon/C = holder.my_atom
+ if(!istype(C))
+ return
+ if(C.mind)
+ if(C.mind.assigned_role == "Mime")
+ to_chat(C, "Whatever that was, it feels great!")
+ else if(C.mind.assigned_role == "Clown")
+ to_chat(C, "You feel nauseous.")
+ C.AdjustDizzy(volume STATUS_EFFECT_CONSTANT)
+ C.mind.miming = TRUE
+ ADD_TRAIT(C, TRAIT_COLORBLIND, id)
+ else
+ to_chat(C, "Something doesn't feel right...")
+ C.AdjustDizzy(volume STATUS_EFFECT_CONSTANT)
+ C.mind.miming = TRUE // Jestosterone gives comic sans which makes one more clown-like, comic sans also unlocks clown healing, minus Jestoserone. So, mind.miming makes one more like a mime and unlocks mime healing, minus Mimestrogen.
+ ADD_TRAIT(C, TRAIT_COLORBLIND, id)
+
+/datum/reagent/mimestrogen/on_mob_life(mob/living/carbon/human/M)
+ var/update_flags = STATUS_UPDATE_NONE
+ if(prob(10))
+ M.emote("giggle")
+ if(!M.mind)
+ return ..() | update_flags
+ if(M.mind.assigned_role == "Mime")
+ update_flags |= M.adjustBruteLoss(-1.5 * REAGENTS_EFFECT_MULTIPLIER, robotic = TRUE)
+ else
+ M.AdjustDizzy(20 SECONDS, 0, 100 SECONDS)
+ if(M.client)
+ M.client.color = MATRIX_GREYSCALE
+ M.update_client_colour() // TRAIT_COLORBLIND only makes you colourblind for the wires, this fully makes it greyscale
+ if(prob(10))
+ M.EyeBlurry(10 SECONDS)
+ if(prob(6))
+ var/static/list/mime_message = list("You feel light-headed.",
+ "You can't see straight.",
+ "You feel about as entertaining as the station mime.",
+ "Muted colors and berets cloud your vision.",
+ "Your voice box feels numb.",
+ "What was that?!",
+ "You can hear silence in the distance, somehow.",
+ "You feel like miming.",
+ "Silence permeates your ears.",
+ "...",
+ "You feel like miming a performance.")
+ to_chat(M, "[pick(mime_message)]")
+ if(M.mind.assigned_role == "Clown")
+ if(M.dna.species.tox_mod <= 0) // If they can't take tox damage, make them take burn damage
+ update_flags |= M.adjustFireLoss(1.5 * REAGENTS_EFFECT_MULTIPLIER, robotic = TRUE)
+ else
+ update_flags |= M.adjustToxLoss(1.5 * REAGENTS_EFFECT_MULTIPLIER)
+ return ..() | update_flags
+
+/datum/reagent/mimestrogen/on_mob_delete(mob/living/M)
+ ..()
+ if(M.mind?.assigned_role != "Mime")
+ M.mind.miming = FALSE
+ if(M.client)
+ M.client.color = null
+ REMOVE_TRAIT(M, TRAIT_COLORBLIND, id)
+ M.update_client_colour() // You get stuck with permanent greyscale if it's not separated from client.color by at least one line
+ else
+ REMOVE_TRAIT(M, TRAIT_COLORBLIND, id)
/datum/reagent/royal_bee_jelly
name = "Royal bee jelly"
diff --git a/code/modules/reagents/chemistry/recipes/others.dm b/code/modules/reagents/chemistry/recipes/others.dm
index 50c817a6d89..1ef49b5c1ed 100644
--- a/code/modules/reagents/chemistry/recipes/others.dm
+++ b/code/modules/reagents/chemistry/recipes/others.dm
@@ -289,6 +289,15 @@
/datum/chemical_reaction/jestosterone/on_reaction(datum/reagents/holder, created_volume)
playsound(get_turf(holder.my_atom), 'sound/items/bikehorn.ogg', 50, 1)
+/datum/chemical_reaction/mimestrogen
+ name = "Mimestrogen"
+ id = "mimestrogen"
+ result = "mimestrogen"
+ required_reagents = list("blood" = 1, "sodiumchloride" = 1, "nothing" = 1, "capulettium_plus" = 1) // Or one freshly-squeezed mime
+ min_temp = T0C + 100
+ result_amount = 5
+ mix_message = "The mixture seems to drain of color before stopping at a dark grey."
+
/datum/chemical_reaction/royal_bee_jelly
name = "royal bee jelly"
id = "royal_bee_jelly"