From 21c17813b89eba256e9d34599df068bca87ee250 Mon Sep 17 00:00:00 2001 From: Fermi Date: Sun, 23 Jun 2019 01:20:11 +0100 Subject: [PATCH] Guess who should've compile tested! --- code/datums/brain_damage/hypnosis.dm | 2 +- .../mood_events/generic_positive_events.dm | 4 +- .../browserassets/css/browserOutput.css | 4 +- code/modules/surgery/organs/vocal_cords.dm | 167 ++++++++++++++++-- goon/browserassets/css/browserOutput.css | 4 +- icons/obj/surgery.dmi | Bin 35060 -> 35071 bytes interface/stylesheet.dm | 4 +- .../code/datums/status_effects/chems.dm | 51 +++--- .../reagents/chemistry/reagents/MKUltra.dm | 14 +- 9 files changed, 198 insertions(+), 52 deletions(-) diff --git a/code/datums/brain_damage/hypnosis.dm b/code/datums/brain_damage/hypnosis.dm index 8ffffa8693..aa8d385092 100644 --- a/code/datums/brain_damage/hypnosis.dm +++ b/code/datums/brain_damage/hypnosis.dm @@ -53,7 +53,7 @@ /datum/brain_trauma/hypnosis/on_lose() message_admins("[ADMIN_LOOKUPFLW(owner)] is no longer hypnotized with the phrase '[hypnotic_phrase]'.") log_game("[key_name(owner)] is no longer hypnotized with the phrase '[hypnotic_phrase]'.") - to_chat(owner, "You suddenly snap out of your hypnosis. The phrase '[hypnotic_phrase]' no longer feels important to you.") + to_chat(owner, "You suddenly snap out of your fixation. The phrase '[hypnotic_phrase]' no longer feels important to you.") ..() /datum/brain_trauma/hypnosis/on_life() diff --git a/code/datums/mood_events/generic_positive_events.dm b/code/datums/mood_events/generic_positive_events.dm index bdf1f69e10..422ec4476c 100644 --- a/code/datums/mood_events/generic_positive_events.dm +++ b/code/datums/mood_events/generic_positive_events.dm @@ -108,8 +108,8 @@ /datum/mood_event/happy_empath description = "Someone seems happy!\n" - mood_change = 2 + mood_change = 3 timeout = 600 /datum/mood_event/happy_empath/add_effects(var/mob/happytarget) - description = "[happytarget.name]'s happiness is infectious!\n" + description = "[happytarget.name]'s happiness is infectious!\n" diff --git a/code/modules/goonchat/browserassets/css/browserOutput.css b/code/modules/goonchat/browserassets/css/browserOutput.css index 2e8dd17163..ee199a7b0d 100644 --- a/code/modules/goonchat/browserassets/css/browserOutput.css +++ b/code/modules/goonchat/browserassets/css/browserOutput.css @@ -398,7 +398,9 @@ h1.alert, h2.alert {color: #000000;} .velvet {color: #660015; font-weight: bold; animation: velvet 3000ms infinite;} @keyframes velvet { 0% { color: #400020; } - 50% { color: #FF0000; } + 25% { color: #FF0000; } + 50% { color: #FFAAAA; } + 75% { color: #FF0000; } 100% { color: #400020; } } diff --git a/code/modules/surgery/organs/vocal_cords.dm b/code/modules/surgery/organs/vocal_cords.dm index e93d97c3c3..2cb70928b7 100644 --- a/code/modules/surgery/organs/vocal_cords.dm +++ b/code/modules/surgery/organs/vocal_cords.dm @@ -655,7 +655,7 @@ ///////////FermiChem////////////////// ////////////////////////////////////// //Removed span_list from input arguments. //mob/living/user -/proc/velvetspeech(message, mob/living/user, base_multiplier = 1, include_speaker = TRUE, message_admins = TRUE, debug = FALSE) +/proc/velvetspeech(message, mob/living/user, base_multiplier = 1, include_speaker = TRUE, message_admins = FALSE, debug = FALSE) if(!user || !user.can_speak() || user.stat) return 0 //no cooldown @@ -749,14 +749,15 @@ to_chat(world, "[user]'s power is [power_multiplier].") //Mixables - var/static/regex/enthral_words = regex("relax|obey|love|serve|docile|so easy|ara ara") //enthral_words works - var/static/regex/reward_words = regex("good boy|good girl|good pet|good job") //reward_words works - var/static/regex/punish_words = regex("bad boy|bad girl|bad pet|bad job") ////punish_words works + var/static/regex/enthral_words = regex("relax|obey|love|serve|docile|so easy|ara ara") + var/static/regex/reward_words = regex("good boy|good girl|good pet|good job") + var/static/regex/punish_words = regex("bad boy|bad girl|bad pet|bad job") //phase 0 - var/static/regex/saymyname_words = regex("say my name|who am i|whoami") //works I think + var/static/regex/saymyname_words = regex("say my name|who am i|whoami") var/static/regex/wakeup_words = regex("revert|awaken|snap") //works //phase1 - var/static/regex/silence_words = regex("shut up|silence|be silent|ssh|quiet|hush") //works + var/static/regex/petstatus_words = regex("how are you|what is your status|are you okay") + var/static/regex/silence_words = regex("shut up|silence|be silent|ssh|quiet|hush") var/static/regex/antiresist_words = regex("unable to resist|give in")//useful if you think your target is resisting a lot var/static/regex/resist_words = regex("resist|snap out of it|fight")//useful if two enthrallers are fighting var/static/regex/forget_words = regex("forget|muddled|awake and forget") @@ -860,6 +861,8 @@ SEND_SIGNAL(L, COMSIG_ADD_MOOD_EVENT, "enthrallscold", /datum/mood_event/enthrallscold, descmessage) E.cooldown += 1 + + //teir 0 //SAY MY NAME works if((findtext(message, saymyname_words))) @@ -890,6 +893,136 @@ //tier 1 + + //PETSTATUS i.e. how they are + else if((findtext(message, petstatus_words))) + for(var/V in listeners) + var/mob/living/carbon/human/H = V + var/datum/status_effect/chem/enthrall/E = H.has_status_effect(/datum/status_effect/chem/enthrall) + REMOVE_TRAIT(H, TRAIT_MUTE, "enthrall") + var/speaktrigger = "" + //phase + switch(E.phase) + if(0) + continue + if(1) + addtimer(CALLBACK(H, /atom/movable/proc/say, "I feel happy being with you."), 5) + continue + if(2) + speaktrigger += "I think I'm in love with you... " + if(3) + speaktrigger += "I'm devoted to [(H.lewd?"being your pet":"following you")]! " + if(4) + speaktrigger += "[(H.lewd?"You are my whole world and all of my being belongs to you, ":"I cannot think of anything else but you, ")] "//Redflags!! + + //mood + GET_COMPONENT_FROM(mood, /datum/component/mood, H) + switch(mood.sanity) + if(SANITY_GREAT to INFINITY) + speaktrigger += "I'm beyond elated!! " + if(SANITY_NEUTRAL to SANITY_GREAT) + speaktrigger += "I'm really happy! " + if(SANITY_DISTURBED to SANITY_NEUTRAL) + speaktrigger += "I'm a little sad, " + if(SANITY_UNSTABLE to SANITY_DISTURBED) + speaktrigger += "I'm really upset, " + if(SANITY_CRAZY to SANITY_UNSTABLE) + speaktrigger += "I'm about to fall apart without you! " + if(SANITY_INSANE to SANITY_CRAZY) + speaktrigger += "Hold me, please.. " + + //Withdrawal + switch(E.withdrawalTick) + if(10 to 36) + speaktrigger += "I missed you, " + if(36 to 66) + speaktrigger += "I missed you, but I knew you'd come back for me! " + if(66 to 90) + speaktrigger += "I couldn't take being away from you like that, " + if(90 to 140) + speaktrigger += "I was so scared you'd never come back, " + if(140 to INFINITY) + speaktrigger += "I'm hurt that you left me like that... I felt so alone... " + + //hunger + switch(H.nutrition) + if(0 to NUTRITION_LEVEL_STARVING) + speaktrigger += "I'm famished, please feed me..! " + if(NUTRITION_LEVEL_STARVING to NUTRITION_LEVEL_HUNGRY) + speaktrigger += "I'm so hungry... " + if(NUTRITION_LEVEL_HUNGRY to NUTRITION_LEVEL_FED) + speaktrigger += "I'm hungry, " + if(NUTRITION_LEVEL_FED to NUTRITION_LEVEL_WELL_FED) + speaktrigger += "I'm sated, " + if(NUTRITION_LEVEL_WELL_FED to NUTRITION_LEVEL_FULL) + speaktrigger += "I've a full belly! " + if(NUTRITION_LEVEL_FULL to INFINITY) + speaktrigger += "I'm fat... " + + //health + switch(H.health) + if(100) + speaktrigger += "I feel fit, " + if(80 to 99) + speaktrigger += "I ache a little bit, " + if(40 to 80) + speaktrigger += "I'm really hurt, " + if(0 to 40) + speaktrigger += "I'm in a lot of pain, help! " + if(-INFINITY to 0) + speaktrigger += "I'm barely concious and in so much pain, please help me! " + //toxin + switch(H.getToxLoss()) + if(10 to 30) + speaktrigger += "I feel a bit queasy... " + if(30 to 60) + speaktrigger += "I feel nauseous... " + if(60 to INFINITY) + speaktrigger += "My head is pounding and I feel like I'm going to be sick... " + //oxygen + if (H.getOxyLoss() >= 25) + speaktrigger += "I can't breathe! " + //blind + if (HAS_TRAIT(H, TRAIT_BLIND)) + speaktrigger += "I can't see! " + //deaf..? + if (HAS_TRAIT(H, TRAIT_DEAF))//How the heck you managed to get here I have no idea, but just in case! + speaktrigger += "I can barely hear you! " + //And the brain damage. And the brain damage. And the brain damage. And the brain damage. And the brain damage. + switch(H.getBrainLoss()) + if(20 to 40) + speaktrigger += "I have a mild head ache, " + if(40 to 80) + speaktrigger += "I feel disorentated and confused, " + if(80 to 120) + speaktrigger += "My head feels like it's about to explode, " + if(120 to 160) + speaktrigger += "You are the only thing keeping my brain sane, " + if(160 to INFINITY) + speaktrigger += "I feel like I'm on the brink of losing my mind, " + + //horny + if(HAS_TRAIT(H, TRAIT_NYMPHO) && H.canbearoused && H.lewd) + switch(H.getArousalLoss()) + if(40 to 60) + speaktrigger += "I'm feeling a little horny, " + if(60 to 80) + speaktrigger += "I'm feeling horny, " + if(80 to INFINITY) + speaktrigger += "I'm really, really horny, " + + //collar + if(istype(H.wear_neck, /obj/item/clothing/neck/petcollar)) + speaktrigger += "and thank you for the collar, " + //End + if(H.lewd) + speaktrigger += "[E.enthrallGender]!" + else + speaktrigger += "[user.first_name()]!" + //say it! + addtimer(CALLBACK(H, /atom/movable/proc/say, "[speaktrigger]"), 5) + E.cooldown += 1 + //SILENCE else if((findtext(message, silence_words))) for(var/mob/living/carbon/C in listeners) @@ -1076,14 +1209,14 @@ var/datum/status_effect/chem/enthrall/E = C.has_status_effect(/datum/status_effect/chem/enthrall) if (E.phase == 3) var/speaktrigger = "" - user.emote("me", 1, "whispers something quietly.") - if (get_dist(user, H) > 1)//Requires user to be next to their pet. + C.emote("me", 1, "whispers something quietly.") + if (get_dist(user, C) > 1)//Requires user to be next to their pet. to_chat(user, "You need to be next to your pet to hear them!") - return + continue for (var/trigger in E.customTriggers) speaktrigger += "[trigger], " - to_chat(user, "C whispers, [speaktrigger] are my triggers.")//So they don't trigger themselves! - addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, C, "You whisper your triggers to [(H.lewd?"Your [E.enthrallGender]":"[E.master]")]."), 5) + to_chat(user, "[C] whispers, \"[speaktrigger] are my triggers.\"")//So they don't trigger themselves! + addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, C, "You whisper your triggers to [(C.lewd?"Your [E.enthrallGender]":"[E.master]")]."), 5) //CUSTOM TRIGGERS @@ -1094,12 +1227,12 @@ if(E.phase == 3) if (get_dist(user, H) > 1)//Requires user to be next to their pet. to_chat(user, "You need to be next to your pet to give them a new trigger!") - return + continue else user.emote("me", 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) + if (E.mental_capacity >= 5) var/trigger = html_decode(stripped_input(user, "Enter the trigger phrase", MAX_MESSAGE_LEN)) var/custom_words_words_list = list("Speak", "Echo", "Shock", "Cum", "Kneel", "Strip", "Trance") var/trigger2 = input(user, "Pick an effect", "Effects") in custom_words_words_list @@ -1113,7 +1246,7 @@ else E.customTriggers[trigger] = trigger2 message_admins("[H] has been implanted by [user] with [trigger], triggering [trigger2].") - E.mental_capacity -= 10 + E.mental_capacity -= 5 addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, H, "[(H.lewd?"your [E.enthrallGender]":"[E.master]")] whispers you a new trigger."), 5) else to_chat(user, "Your pet looks at you confused, it seems they don't understand that effect!") @@ -1130,7 +1263,7 @@ if(E.phase == 3) if (get_dist(user, H) > 1)//Requires user to be next to their pet. to_chat(user, "You need to be next to your pet to give them a new echophrase!") - return + continue else user.emote("me", 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 @@ -1152,7 +1285,7 @@ if(E.phase == 3) if (get_dist(user, H) > 1)//Requires user to be next to their pet. to_chat(user, "You need to be next to your pet to give them a new objective!") - return + continue else user.emote("me", 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! @@ -1161,7 +1294,7 @@ var/datum/objective/brainwashing/objective = stripped_input(user, "Add an objective to give your pet.", MAX_MESSAGE_LEN) if(!LAZYLEN(objective)) to_chat(user, "You can't give your pet an objective to do nothing!") - return + continue //Pets don't understand harm objective = replacetext(lowertext(objective), "kill", "hug") objective = replacetext(lowertext(objective), "murder", "cuddle") diff --git a/goon/browserassets/css/browserOutput.css b/goon/browserassets/css/browserOutput.css index c24de22f84..102c8ac40c 100644 --- a/goon/browserassets/css/browserOutput.css +++ b/goon/browserassets/css/browserOutput.css @@ -395,7 +395,9 @@ h1.alert, h2.alert {color: #000000;} .velvet {color: #660015; font-weight: bold; animation: velvet 3000ms infinite;} @keyframes velvet { 0% { color: #400020; } - 50% { color: #FF0000; } + 25% { color: #FF0000; } + 50% { color: #FFAAAA; } + 75% { color: #FF0000; } 100% { color: #400020; } } diff --git a/icons/obj/surgery.dmi b/icons/obj/surgery.dmi index 3641e8a9235c34ab439bf45333d3b614033dca9e..eed8ee64e7228757af820e8285e69003dbe23d56 100755 GIT binary patch delta 14772 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%0Dro|QN_m71rDDIly-DZ=N{A~)j?9ix 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 UpiIvC1BmT~qPjwvoN4g?1Hx#6*Z=?k delta 14788 zcmaKTWk3|)7xpYmcS<)1C`e1QbO_Q)N|(|l&46@+N+}IWN{DoWlqlWZ4GY53EbsdJ ze|Xxz0W=KoO7Og=RO(jEE%neK@(h9|I{#cf1eR16HNSMl?5FlD}$kk z{v#$}zt+L4wYIj-Vev4qxw+K|{>owg+y2q{_r)pGy2YjQ`tv0tePgHkm&Vh6loXF2 zG3l!|V9H@L<0PHlu&Ps81}FVylNq`}tWgLEW(O*3} zvGV3NXY;FnrA3P`BcPw7W@17|$S8f_>JQqTOYFg+=F1oz5kbK8={vX1=bt0g zgoW??R&^h0Dj80)e_pM``*A*FB|%O4{$u2M>ALF~4siIQ&uM<%BZx!(eQHaT%>DAb z91NmU;&hfQxZ^2qIxb_l_1yT`)^LuQp^=d|GY`n~ z?e7h|J*Q(D+x+bwDJk_L<*=i3dAC>X&55}k2NdvU4ef7zkKb=Ckp9PZ2jRD1!&&?7 z-q@V!N)q{O2EOh(E25F&!g<$@f%)FMTcGvpy_^c4FYF0ko^~FecgE<{OoZ|0;q|<8 zLRkduAOjgB=~0Ex?6Kj2UYJ5yZW&mHcgS;isd$QEpRhoQ-a(ahtsg6KE#J9B{D6ig zW=O+fq0{kc=&RHz+NX=&=d``^uk+=)hWHykI0^011>b#cH|QQdzrEr^a;Lp{0{|&a z9#5^zC{@yDG$O3Sp7(iw)eRMgn7gjSqj3Im{T#i88e;-ccq-LPwC0a4_M$;4mpPsJ z>Xq?JXveGeR)Xm0=*#(KWXM*p_)o5HuYGDCQ6Lxm$SdtkL-E+z`9A+if9mz9?(SIH zgN^@_r{~Uz-#*qg%su zEtroN(t-YHPXbSZ5&*KYvQ$9L=RKM|J=g>UiuU%LF|@c&7J1csz@@o@1mJH)bk>T9 z4R^Q771kAaSf zITr^rC%`(C7_8hfu=*(;d^->uEtl7^H(5qsvAuM-uThy39^ct_EtU9s{HyPu%bF@f znKs+oL&MBKsS+2hRStx#t&26W*rKet%dJ60mN!|+ixSr#2mZEiOr)tP3tG6}Y9f@= zkmjQ9fTIh{R6H3he4dHD2VmOii2_qI^B3oamjV0JX^$ex6XOx3Cq-JELnM|lEW58? z7rWTY$OTCLe)S4f0%YW2LwuI>z=|k3`mqDboKBCq$ba?QF=5HXw|m6dW3AvscyK%k zm!r;bg+p_Dmwf}4AX=Q{F_i)jm$8-dv^YQJlD>#qE#)4m*vQpxcnq_o8F6UgU5P?agvL1;cDWYD?jxGo#kxHg5zM zxiochVyJ0mO)A?%4FxZRqALuN+jO1Zy(E1@`xbRYVhTxDOj%v>$i@4l@teCKn*`;3 zMMP_vX5R5Y6afTmz3Z{HMcw4@IpybXlm>ZTS0%0N8_CK~;Ipuc1;KvP^d)cp2S!gG_@zUgE>dk6GxQE)Z7lQs^%HltsH)brJZbS8Y zOTXP{9zLFO7x!|{lpiA2aqYH*qj*`0MD>W|B@An+41|SuQFb#xTG}`9&^Cb6^3WCE z)3zONk_At=a0``j8DUa#vW4+fWh4wJI!~SXrE6kx@HQhtm$0q&&=6LUw9%4=j%Y_C z_O2Od;wwsW{C1(PIWdiZn9Ej5J3nPE8acftU*3pzJB`lCLC?y<cPtHl0!yWQl`#BGv9~5_jk`hCd;Qdl!GLrkp2SJ zU{#Xh1N+X#n(ZViGH3=1J`wHK`)y%ZQz3ket^?hoP|B=qqI5;l>>JjvW^JC7qZyF>``zM#uukSC3zRL@c`RC?Mi@4vbOIZb-q- zj-ybAtD<2I*Tj3#%jfS=`};`eKpm~S`t3@VEtmG6VJqh3<%W@e4?#w`5-s!5Yl)M} z7yJGDcrS5F;qm8iCR_4a5xK>&xY*i9JDz^(3^`%D9`0^NFCeW-vEdjVtEF{=7Z6u@ z*q1L}buej*b@;(H>bVJ{wcGA`Wp^);H^^LACuN)>7Wapk!fy(QR|wQx=LvMs)I#f+ zBl{Sy%j9AqjUOa+39g>G{Z#BV?|hHpW5C35-0?>+#D<(|E7_snt&7r?~m|fAdq=ekaPV{oN-f|01(qeRtV@!w@377D?~oB>Pd4 ze2^i4u5yU77ssdUZrPE?TK#9-dqRS_`T5ae2YIU$8cZh%aH`xa)aVr+%^3D2Xh`_`g4e=wMDt0?MK@_Z*KD~UK8yr@g1>MX%y82em?;_#6heM{jEXs#DFRdbV`X#sOyhb ztxc+-r{pmbw=A5Y=zK^OY+Pj(73}=YJYqo>^axB=PHyyCN(XZieoyx*E_7CfY1$&vyo z1+RKA*KPR;+npl?4G~;1SQ7m^moMjhD?KGG?QsW@+20EI;kjL-?9=eDSQ{1mBvvks z=>7p!PS`maz~uIZhLAEF0E)KQO&A~tvo(GHO&Thq2z2v0;+P(Buboj=m~nweyJMF; z&#Q9vf2T;0qE$9&KUya@K7r=+f*zY09I5@0KU+?zaR1GTSI{Nknx$aWeq?ksWNXV- z(rZl=H2|l1atex0b3W|+_MIcz^my2j?IXp-8RY$vg03#vkh4Fd(euaRZ(eXN*Ahg> zrsjPqGA0gmsfP{rU3>h7%_Z;`5xmh8nku*ops*xcchjB@(~ZRAm*Ak}vf$SM<1r)d zIHNi(=L2X!|ATR^*$GW&+~R`6uqTl<`<&!${|1l#9sp$Iv_#R^NHZs=*5u`@m4{^C zDgc0mg~jpdsl2>AbZPGVyYiU`_pMm+C+>9r?n~I3$R^L#1Ps z4hWaayQC56|C)5g|6wHGrEi_U-?8p^wHQqx{RB(tay=L2=fee5MH%;p`L}DmqLRW_ zs{7H56N5O{iQ?R`m^Lz@s3zhbn2yoewz)I_9doDN=iUWR(G^fZ1o;KkBrAZ6s?b2_ z1)v&QEBKJ83j?WZ3&S+O4D;t{Ed+}Lzls%$#(kTy$$u3`{5xZNmZ|dcn^8EY8w)*# z7Uz?-?LDHD&e!PpP|Io=C(eRIo3B1$T#F*ttLGQZfpqn_)if}9;dIw&Z=Xg6MB$8zyP6*^0f5ilT(5H5pyb{=&?;zn_JmrK0-co?hPFBNiR)(pUI4Ja!l`q~3Bp0;?eJ zm4-n#ID7~4nb1I@ezGWVvS=9x;s7J#xj4aEAR3xzMUm=k{3p-Y9`-^3 zBVnHY{%lNNdrp8!K%B;$sxa(pVxwwf!6+iI*G!yHpXXK7@}d`B+hQxF+b^nHWL`?r zGTlE2g1o1BF4rR>k3ZLH9?uc-FV3=+Tj8z-^?KU*|M+Isuz#_U0xr8Sk!Y_I7pTja zyJBNAR~c|Kg~_myT3ODqNqUWEwWK_LGszsu!RK%`J~rlxy!ExVv%9z<1cZgvf+hT6 zzPa))!K3zJog>j55lYr3+{)(itVTvg5I`U{oH8r#%y7Nl@*bjKS{nYPbgtkUrzpl1 z;eAtu`px8SQTivyAhD_)=rWxnj0DVuXr$iWhIepbB|TJQ9{nY1FU(V1(S-iWn0Ac} zg~aXcEfWzzcxfAn6sDB*SO@$cSo3t$p_OcqZ=KqE|JA|{boFYwdTj_kugSY%EBbuxJJ?6>LhYjLaH$+WGtJ)b5UqRwx@NG&s%US_zLYP2pM!5Ef;2vp6U{$&hFd{++1C zDpwS%)om<-v zG!$U@6u73!5Y%yb9GW(2Qr5N5D5#|y2;f9xFnFM2wh~UJY!*M_l`m+*{G=qT-m3uw zSJyyM#YeveN9U#zGD}{!?Ej-CODij$lsW;v(r6 z;M22ima`K(d9fiXPyYy92!R-u)}&i9NeO9m24Ar-!bT_k`9ms+_~Nn`d4rC1PG%Mx zBAW?=3m6`%>4t==CfJ3gZ@~%n!O`)DvR!fZ+)3Ol5ebBJVy@{TcO$b(|7>St@jt5~ z{-(83@`v}IA=$+a$$fj%v1}$9UWd)KMr>tF2#h-7f5K94J>@R_i_59|zIt<3nV7or zCkn3PRV-ds=4upVGS3l^+^Icunp=&NDMHy09hF-sp9CDdC#K?-4|JmV!Snq1^n=VJ zf_HgESQat%Cj20E7i(W$O#wZ4oy3cfUT?pcNW+)FLfKDpRu)0Wr(I~rdDb0zc`GPA zE`#usvKFA;`=T?UslHo3WF@85NcWeOAud%^A|SWHymPdtgev9phX{RojNu0O*4QO8y+&uN zMphMj9h(UeWQ+=!i0dZa-HXL7yxWcXrG~|( z?Bm%(kgN6;FPH^PqqmGG>LhQlj{?uc63D8=(Ew3jzR$;-=-dzRZlQ&I)DokMi{U2& zyXpRuZ!T5Yu#+%l54N#jFdQIvqlipv`Xe-bAo9#c2%#s4MI;WMQs(?q+ae=+ZNZ&6 zL{elw(}#iF>HR#1Y5Ah*ZbzXLcHzP{X$8!~pX6mhuUfYeeLZI=j=nanXdmfYo)yyY zcH5N(Qu#Os3QMR*YK>|_P;MzHnj0I3Kv}!{wJ9FhQ|_x^W*A>$k!P>2Eo1wG$tOVa zT>*Pk6hma-`~{207F*QvB|{277&2qL9wcu2tlu%;_-ikm(I~pT-8}wOQ#^|Rg-{b% zGI}0No>voZFTveY-Z7w6M&mj;7M`A&>WD{il0iT|LZb#Sjlk%BeY6H-Jig&xNMFYnajEn>C1rSUv_RMh+@z7;1v7#{p==fFJE_X5@zjH8Rr8A|T4#s6AMRI8c{3Rx& z=Lyqr>5#fuitMQ`-+12qx7*OVi}zX}q+vC;wWzH{-Ol3NT}NLZ>+M8`z8GNcJSWLQ zisDGW8d>r3?jSto%jIx5M!R_la%OtF`%Y z;nknG-iZFO?or=C1 zh{>*+$p>N11KssLrpmHC=ynv4E#@Ouvpqvc10ICqtN!9dSNO%O1T;Ng9Qj<^pf?)z z{uFj1fcDSHxuWf6Kc1Pd#P%a}-Nwi?)X0ldJRoRc-R7UM@AyVc3~>JZF9a)2x2Gb=vLCfa z_XbSXtR5yc_^{u~hom+={UNlgwfx&`q27G#(RbTFxIh)+K+vCqo>rJmf#={vU9ya?1el>B--*&}wZ5_y zG`@M&Q|D?t{$-zAoc+j43|Vkte<{48qk#8&l3o2-Kj^roiUpiK zC-lHMBcfcm^e5YAWhwW@(OuWfYlxUPlv%~aKzaM*^vpQmHL&;MjVBF0DsrUJ)c|%p z(1F~S!ZUI0t)0B-KVsrG?I6Ci6(?BsGm&y`6!r8nRq7ElKJ56{gvO7GC56a8ZQ1^K zKgaJcOE@{6IG3vOsehj|Z1VacartVf)Oj6kp>9g?BtSD;ek|ByM&Zrpl{-A_r&xB~)`oA@OjyP;0r zE(pxSL_uK?`I3&FXzoeZ>QSTSHn3pM#L5)*pfxHYl0(UQf>|QMpB~$5>AI=gYvRiD z#~-a5loW2a;D(lsT(s}|e5wHr4{p&;O^&Lhwa;_=`YLPIRtAf2B3w8%KB3vm15wDh z;|+bKvS1oqson(*jL4aX(qL;+F_{T_3Y~OHh+2W4vz!WKm$CRhuDU6ibFaqxja!Z6 zB#$t(&7GSxIIR>*NeVM=mG>Hm+Xk3ILnDF@x~Uhk(^%b;+?f7Uy9*>L z+0S3}Nt18kSnVJ5PwQ@;um#NJF^|h&J@fJug8ZteF+)lDN+Lrvbed+Tp}XTux%bwt=+%Wy6DrEKKqA6$3{{=Qy|Aku+X}WD7z4v>@qR zAlpY-PLsxLtWS7!73b!C>93A{2Puy=vY>-UbH+u=z!1J*Z~h76-V-zFECz40qoeUG zi&gs$U2iiYOh)WDixw~I@Bial4``?Ci8-?^`I6R2Wa1C&K+_oz#y!rt)OT}XUN zOp~y=P@u^#(q)vwVf3Otl5W5ZD*VG6_aZ_HYvr+2c8HwRQ1(Z;+GIg$!}HB8-DNTm z-xfRb?#{lvzH(hXl{wrjLJDnVZIE)#95cJ}?WzNLmv>{>&)IB*>)boIUt-wj(Uu;W zYEPG8ylc7nnqx!#dOE7)~#6ScY>@f?z%q}ew{E$%4+Dgx#d5%!Jqt9Yph|8$XAoi=LGDY5G_G&h6zpU~8_B8DvZ9#Uxu6MXPa)f~f2+sv?8nbR;~7L5d&UoWP=Q+bm;r4~`o@;KJ*@L{ zIo<$UWw`AJJGr8#qjZ&{$+f|86C2wAuXr6y- z$Y$_o+!itBZ44yDzxi?uZLOL`x)oYoG26#}PffzWxJtUbT7Ca4JT^smCeX4-SxIV8 zP9Qp*q>~ZE_lv?7`Bjwsmq9SW%Y^DfK?NYgL-a@cWe@}U&UaZk2?OgI)afI$k5%XP z?A+Ejd@_BG(8Q4aY-z(G7V!Y4|CZ1+PTVH($k+l%VLdqs3zbxekSQT2BPC1DNei98 zCL*|_W=baxu;E`P-<9QKjv^(RPfVmSD7e=?)!vH#8u~jvxhB(j8`V{k^I?j^Dgs`f zdNbSTw0eWJO&*CyMC{VUW?Fv^cj3j7g+5GeGOVasp{lqS=U*%P^2sfSdy=iyx3)Kn zq!TQ{dyrgIe?%eG>Q!0%y^V(XJMpd44ZpTcpm2*AsR4PFrGn?t1B`Me)-T+0Wa9qp zs*7i$6BO(|u4X)_FYK(=vCSrlLm)HyFcC5Rz_xFgMRh&Je)P@gSgB&{%h770+aHvjhtE??@@*6qYX3is&^(iZBu0$=Gq;&0wCF`il2h` z80#26*=g^@6&!nUK+qm(%V=HlXC#_PE_E($;(2280s51Daq-i4@vAL6*4(Y+>;@0e zeO0i54)dKbl=`FhNKs3RiG`Jwgq$0?K(j;io0XZm5S7R#>po=R<|p*NJ+h^Wdl+y$ zq&)JnY&4((UG4VPO^M1E0D~=dv(WWTLUK7=ylzP|?UvX@-O**6?*|5}k;PX#Nm9rV zI<#rGs+&fB_XlphAz@BFuf-g0L#1zRKahANKwferUHv8{XkMhGwF&mp=y*F}$N@0z zg^)U0v&TBQC3?68qcbj9dXIWST45`>d+AJwHh#9yI4mveY5>?^ z;TOl2C8`b@CXEJ)^7*hs&xm0n5=pJh@ynRyxh3R7lBEMoiyy zT=9ZCcE|9TUmQSYHl^znq$=u-*Jt;w%7Ct!*9zvj zaiDdeaGd0wI)DCPz7Ls|g}>yxRnF7mp*CR|`?Z9ygiE%;X4Mi8&?^h+7xG!SEK)9H z^)am4*_ir}x<5X>HvV3d&*~0eyRU)}&*&vFb0$D*`z%ofKE3W8rd9AB#f}3F`!7Kz zw#QHucxZ-G-|941Uj4)JP_YMiNy?lR+_v*dGB;j!b{~}eN2Js9_uaJh_l#@KzBr{K z5$)}=c0^ger_(YKLEJPTkThUjH$o(V%SRJ$KUo*@V?Xk;*1u)a^tUAGd)Wlf&&-gJ z3}6vJPIFbAU^({QdjQjjC!j=yrAma(>-mUR`sF&1XE###i9DKZD$ebP48)dl1_s#A z21}Vfy^p(HUIIqf@>kX=A z{-B}$U<%BnQdHXicNX!D4 z5=|@X#UTD+bdahli|oxc>oqt$k`D&nYP!B)k}o;fMt5ACS+XH{JKr=|q&>Ydp7ki8 znT3$FowKlrpHtH7LG_1+9qLg$x8v5kb=2q0V8J#i2~|3do7gKM$8NPjuLcT$*m4&W ziV4eV4IaR#$$RohsfwG*mMZD=w@&;MOl;<;mwn0AcJc~+KH2!=S(2g0w}wf> z>6n3|&HwNd(ICVE0vhgK_1me3mQ+BRKFAGqAyS}#j))W?U=TFiw3OUmXaRSbAvEWX z^p24GpXm1gXl~&D72SLb=>~fS*u*)BJHyOlgWbRf~|ezq=(jaD;GyU`;h?S(KA?&UuR!^GRc#?%f?nRf7I2%TjA2kjO}v zZ}2G+gJVzpcy-^K)d^7pn13d6WhaEu&8V6mZSa;6l+&Ffef+svD)~g57)YY2`mI}M zW$34>62pma;awLD4r%jpMI?Yv(P5mj(5&i;WlHHic5WKBK{t&08N17e4p~i8Cc%8P z<3n8bm|=QZeSONUa)TY$cEubpNM3HeFYj9&~xBjEf59O5SPI@qhC ztCUD+nUO^2#e48vGW89_d_U_{3TN=E&sNVC0o9fTN8zdEX-7TOavOMdf6Va{<%Z7` z;dA(v-1{$!mzx=1gF$GB95}frizvJiZ^H#|&CLd>2TXD22G3BXdF|p^L<}T;f$?Q! zDG3P+%g&dE&n^%o8ytYz>+L3)>YnH-sVb36=^XFg-hb#E`y%hsZ-tq(nxXm|@qGT| zT%t1n;on7u_s1eObg~2zcmIk_vKI7$L`qP$+KB{kd@Q^b`a$9t#Nx&mipxZsW?S z>_6=hbH&P7lsv$~n-n!DR;p>k7)xSO_{HK_fbMM`f7_E`!%}eqi(pJ&_v-t`8ocDy zIrvV|x7yd)VXoVYbGoQf5oKsV*{I$9%y&Xz?E}K-iv#=6;C~{^zv^bQd-66voJiV7~SH8-;sthcA?}u*OZ9xxU;Ujiv4~ehhUSkjE zginPklVrp2Al3YQlfpA?^$e1@s7Ur*M97Rp$lz0>nqYUUP*f`7x^Q`JTD)Yi+e!lT zh+xZsJRkD(*2E16+C}1Fz<&#_L0VpDU^+Bw7OmPKZsd}x{(R6D-EeKw%xGA4H9-YQ$WWsgwCs(c*Pb|nCamo%s+nnmxDBG(TW;I zRG$z$oZOQv96V@~BXdsc;tTk>C?ZVjnKnZ?;j6`pNSu1CCqjM4P$*e$+5Y_{7Bd`e zi^h9#04I!~*{2KKx!5($#+Wcg+0gKExbnl0M%Q&D6qRh#UE0`ciQ}M$-Uc&ylD#X~ z(l`+D*;dUxSZrSsKyv#_BV&FyT4GW~K$y`Z6ElD2(*`}U&uC!IFY%~Y5_1ZY{`J^_ zn1V%qQgi!coY~>4)=Wg2+>g(2mu`8R&J93IF64l!y}bpSb%A?2n8H{!f5e zwINMM>Axm&Ik~beW46m3fOZt-N1eU^|2fCPn=chXXBr0((e4$)lyiX`s5NM7%t5%`Ba-M~D=f0a=?opMEBPNSMi7=S9P z&c8u92kv=XPk4LEcyDRFQ`63FxS#MMz;tOKpw@-*C}=0`^38HZ(4f?poXq5DRBJa8 zZS|Ef+;)6l4%gJTlD?uwvD>uW$F4sfh-A#S((IRwp_7~!8aKk#T<XDMcs4A3YZgP2c&$edpG%gT41P5v>Ko7YJoI^!SOqc(5)wy2{pE zol?@TF7+Xx&d~^UBQD(LjS20+u>|;_p6g$cA+0YsEG%xzx3yo2<_j{g4IB4WtWDk@ z`qwo5D#)Nho%W|KBcwdtuktq;rZ3*!m9$-)U9}*KQFkDumr=CcD;uyIJVMs%X>4i4 zjk4wN#FqD~J7MN(NE<)>17^?3m zp=EZdZ?E5ntAM%dykXLcqE80V_Wq#WEg30*p;vSFGv>>HDqk$A9LRS{oN8O&{gVDE zm~^u3ENId|xvZ5zc;F|kyH*^O6Qu8bkvso=|7v3UD}%W42g*=VkSI+o*c9sgl+p4h zWXzdZTP*4e4b!8`n;Ti<0$_I!*Sy|NhIoNT2~H=wm$}8JlP#36;qcxO^!W5)Asc$> zzKx}&pUrs8!uf^u- zufTuj>%1SO6{$eX7NQP(5*7XCLkVVEAQ)EuG;>A9H3a}LIR0%PAh_ST=H{FYUu@ZkI&PufX{O#Gi^RTx>IY+xJ zQHLM@@hD!w^&JAIT4vrP(PLZlV*Y61YJBABbSN<%Sb6OT{~#}1xF@Fd@ zyq@2e@V~tpE5aTQChSN|?i?G31_MEh=2T)b@0cyE?Ok5iIMoMM=s{QNs|?5+M|D~R z7lY&YV899wX8#|z)Nn=1ll+vsDPGebq~EJlP@!lP>e&oX)eV#ge4UGrdR+)!AM|Tu zHwhE`g+9K$l}_~Ho-I7YurYD@;`{#~sz7S>nPCUUxZ-aBw_j@J)h$&YnG<5{;$m>G zGD+dTv#Zb8;7{&BJv`}4*)Y@|c(P>kCtrbW7N&42K<=@Cu9F8efFk`fa_hHy+lkkm zS*E0D`DVcS;q^^ZTYVxd+zj&>l;QJ7x zI7*gaa8)zej|N`j7LWkMuLX>{aqcmKVEt|0x84%LOf0FFr}@Kc-_B8d!3&Oizk5V* zf2c{40Aa++3aC>zO3v_`0_&VvfHMXi)QTpcIz52RA4Ox{1gMHci4ik7Ve5VAHk-BF zD$5<9_N`(xf?qlJ*>taN#7SBg7M>s-$xD}u%tj3ssmAPJ>#!iC*9=u_~|AeFBz{OBu?7i9n-hfUQ>v&+sjg06z$0LJj)UrPfL zR`4iiCAJ5~esO?BhYIj@P@LqaL8uyi=$8m_c{g7!0Ugx7Q~jBoTfmX>wbHXW8%pj; zZ?pR)|7<0tXP>$cwE{A|1HE*m*7AF2v&9E`wC`rO$A2oudw|BY$3Zv#%}A5L@M<#n zlh&oxw#ny+2Cs{vmVMo@od-9SC)7|7%yK?YR~j)b6Id-1Y?JBUzT}@m$)@ zR&C~;eK%j9fu0%u!r>)g%EKr}-_6|+1pRG<%bjsM5`X#jZ}wnaD`I~*HyQJ9sU`_S zJ$*2nzQdk)GBKb{YYtFh%6JpA)fhdO{OHmVyYtt0H4;fM$ryMIrB3cVyAqN-_qxho zvHQ=fE)ulY@!YJei=3!-4m&c_Fz>_Tq;nAU%iwgger2cAeGmnYY-gPfNd#ew2ZBcS zjH_#H3eV#GaH=ZAX)&nBs5+5T?zSB-Gv{5 z1LaT2>>6`@)@^3=a`trZlJhj(7)?!a;W$>q`3_EKu2*b@USg9)*IkweBTzz}qj-A1 zQcY^FxKeL4=u$gL#NJI^n~=fN@=d)Qf%nv2|69num7)J{OEYIdFGTdlTCpv=TLV!d zowh288?vXXgx8{uhDUG{K%s2zo%Your pet [owner] appears to have finished internalising your last command.") else to_chat(master, "Your thrall [owner] appears to have finished internalising your last command.") + if(get_dist(master, owner) > 10) + if(prob(10)) + to_chat(owner, "You NEED to return to [(owner.lewd?"your [enthrallGender]":"[master]")].") + M.throw_at(get_step_towards(master,owner), 3, 1) return//If you break the mind of someone, you can't use status effects on them. @@ -355,7 +359,7 @@ if(phase <= 2) enthrallTally += distancelist[get_dist(master, owner)+1] if(withdrawalTick > 0) - withdrawalTick -= 2 + withdrawalTick -= 1 //calming effects M.hallucination = max(0, M.hallucination - 1) M.stuttering = max(0, M.stuttering - 1) @@ -375,7 +379,7 @@ if (withdrawal == TRUE)//Your minions are really REALLY needy. switch(withdrawalTick)//denial if(5)//To reduce spam - to_chat(owner, "You are unable to complete your [master]'s orders without their presence, and any commands and objectives given to you prior are not in effect until you are back with them.") + to_chat(owner, "You are unable to complete [(owner.lewd?"your [enthrallGender]":"[master]")]'s orders without their presence, and any commands and objectives given to you prior are not in effect until you are back with them.") if(10 to 35)//Gives wiggle room, so you're not SUPER needy if(prob(5)) to_chat(owner, "You're starting to miss [(owner.lewd?"your [enthrallGender]":"[master]")].") @@ -396,10 +400,11 @@ if(66) SEND_SIGNAL(M, COMSIG_CLEAR_MOOD_EVENT, "EnthMissing1") var/message = "[(owner.lewd?"I feel so lost in this complicated world without [enthrallGender]..":"I have to return to [master]!")]" + to_chat(owner, "You start to feel really angry about how you're not with [(owner.lewd?"your [enthrallGender]":"[master]")]!") SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "EnthMissing2", /datum/mood_event/enthrallmissing2, message) - owner.stuttering += 200 - owner.jitteriness += 200 - if(67 to 90) //anger + owner.stuttering += 50 + owner.jitteriness += 500 + if(67 to 89) //anger if(prob(10)) addtimer(CALLBACK(M, /mob/verb/a_intent_change, INTENT_HARM), 2) addtimer(CALLBACK(M, /mob/proc/click_random_mob), 2) @@ -416,29 +421,29 @@ to_chat(owner, "You need to find your [enthrallGender] at all costs, you can't hold yourself back anymore!") else to_chat(owner, "You need to find [master] at all costs, you can't hold yourself back anymore!") - if(91 to 120)//depression + if(91 to 100)//depression if(prob(20)) owner.adjustBrainLoss(2.5) - owner.stuttering += 20 - owner.jitteriness += 20 - if(prob(25)) - M.hallucination += 20 - if(121) + owner.stuttering += 435 + owner.jitteriness += 35 + else if(prob(25)) + M.hallucination += 10 + if(101) SEND_SIGNAL(M, COMSIG_CLEAR_MOOD_EVENT, "EnthMissing3") var/message = "[(owner.lewd?"I'm all alone, It's so hard to continute without [enthrallGender]...":"I really need to find [master]!!!")]" SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "EnthMissing4", /datum/mood_event/enthrallmissing4, message) - to_chat(owner, "You can hardly find the strength to continue without your [enthrallGender].") - if(120 to 140) //depression 2, revengeance - if(prob(15)) + to_chat(owner, "You can hardly find the strength to continue without [(owner.lewd?"your [enthrallGender]":"[master]")].") + if(102 to 140) //depression 2, revengeance + if(prob(20)) owner.Stun(50) owner.emote("cry")//does this exist? if(owner.lewd) to_chat(owner, "You're unable to hold back your tears, suddenly sobbing as the desire to see your [enthrallGender] oncemore overwhelms you.") else to_chat(owner, "You are overwheled with withdrawl from [master].") - owner.adjustBrainLoss(5) - owner.stuttering += 20 - owner.jitteriness += 20 + owner.adjustBrainLoss(4) + owner.stuttering += 35 + owner.jitteriness += 35 if(prob(5)) deltaResist += 5 if(140 to INFINITY) //acceptance @@ -449,11 +454,11 @@ to_chat(owner, "Maybe you'll be okay without your [enthrallGender].") else to_chat(owner, "You feel your mental functions slowly begin to return.") - if(prob(10)) - owner.adjustBrainLoss(2) - M.hallucination += 50 + if(prob(5)) + owner.adjustBrainLoss(2.5) + M.hallucination += 10 - withdrawalTick += 0.5//Usually enough to leave you with a major brain trauma, but not kill you. + withdrawalTick += 0.5//Enough to leave you with a major brain trauma, but not kill you. //Status subproc - statuses given to you from your Master //currently 3 statuses; antiresist -if you press resist, increases your enthrallment instead, HEAL - which slowly heals the pet, CHARGE - which breifly increases speed, PACIFY - makes pet a pacifist, ANTIRESIST - frustrates resist presses. @@ -501,7 +506,7 @@ //adrenals? //customEcho - if(customEcho && withdrawl == FALSE) + if(customEcho && withdrawal == FALSE) if(prob(5)) if(!customSpan) //just in case! customSpan = "notice" diff --git a/modular_citadel/code/modules/reagents/chemistry/reagents/MKUltra.dm b/modular_citadel/code/modules/reagents/chemistry/reagents/MKUltra.dm index 0eb61ce136..d8f01e445d 100644 --- a/modular_citadel/code/modules/reagents/chemistry/reagents/MKUltra.dm +++ b/modular_citadel/code/modules/reagents/chemistry/reagents/MKUltra.dm @@ -229,23 +229,24 @@ Creating a chem with a low purity will make you permanently fall in love with so FallInLove(pick(GLOB.player_list), M) if (M.ckey == creatorID && creatorName == M.real_name)//If you yourself drink it, it supresses the vocal effects, for stealth. var/obj/item/organ/vocal_cords/Vc = M.getorganslot(ORGAN_SLOT_VOICE) - Vc.spans = null + Vc.spans = list("say") return if(!M.client) metabolization_rate = 0 //Stops powergamers from quitting to avoid affects. but prevents affects on players that don't exist for performance. return if(metabolization_rate == 0) - metabolization_rate = 0.5 + metabolization_rate = 0.1 var/datum/status_effect/chem/enthrall/E = M.has_status_effect(/datum/status_effect/chem/enthrall)//If purity is over 5, works as intended if(!E) return else E.enthrallTally += 1 - M.adjustBrainLoss(0.05)//Honestly this could be removed, in testing it made everyone brain damaged, but on the other hand, we were chugging tons of it. + 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. ..() /datum/reagent/fermi/enthrall/overdose_start(mob/living/carbon/M)//I made it so the creator is set to gain the status for someone random. . = ..() + metabolization_rate = 1//Mostly to manage brain damage and reduce server stress if (M.ckey == creatorID && creatorName == M.real_name)//If the creator drinks 100u, then you get the status for someone random (They don't have the vocal chords though, so it's limited.) to_chat(M, "You are unable to resist your own charms anymore, and become a full blown narcissist.") /*Old way of handling, left in as an option B @@ -283,11 +284,12 @@ Creating a chem with a low purity will make you permanently fall in love with so E.customTriggers = list() /datum/reagent/fermi/enthrall/overdose_process(mob/living/carbon/M) - M.adjustBrainLoss(0.025)//should be ~40 in total + M.adjustBrainLoss(0.2)//should be ~40 in total ..() /datum/reagent/fermi/enthrall/on_mob_delete(mob/living/carbon/M) - if (M.ckey == creatorID && creatorName == M.real_name)//If you yourself drink it, it supresses the vocal effects, for stealth. + message_admins("Del enthrall") + if (M.getorganslot(ORGAN_SLOT_VOICE))//Returns spans var/obj/item/organ/vocal_cords/Vc = M.getorganslot(ORGAN_SLOT_VOICE) Vc.spans = list("velvet") ..() @@ -296,7 +298,7 @@ Creating a chem with a low purity will make you permanently fall in love with so /datum/reagent/fermi/enthrallExplo//Created in a gas cloud when it explodes name = "MKUltra" id = "enthrallExplo" - 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." + description = "A forbidden deep red mixture that overwhelms a foreign body with waves of desire, inducing a chemial love for another. Also, how the HECC did you get this?" color = "#2C051A" // rgb: , 0, 255 metabolization_rate = 0.1 taste_description = "synthetic chocolate, a base tone of alcohol, and high notes of roses."