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"