Fixes and making a message clearer so people don't think it's admins.
This commit is contained in:
@@ -8,7 +8,7 @@
|
||||
attacktext = "raises the hairs on the neck of"
|
||||
response_harm = "disrupts the concentration of"
|
||||
response_disarm = "wafts"
|
||||
friendly = "touches"
|
||||
friendly = "communes with"
|
||||
loot = null
|
||||
maxHealth = 5
|
||||
health = 5
|
||||
@@ -37,5 +37,5 @@
|
||||
if(pseudo_death == FALSE)
|
||||
if(isliving(A))
|
||||
var/message = html_decode(stripped_input(src, "Enter a message to send to [A]", MAX_MESSAGE_LEN))
|
||||
to_chat(A, "<b>[src] speaks into your mind,</b><i> \"[message]\"</i>")
|
||||
to_chat(A, "[src] projects into your mind, <b><i> \"[message].\"</b></i>")
|
||||
log_game("FERMICHEM: [src] has astrally transmitted [message] into [A]")
|
||||
|
||||
@@ -649,13 +649,13 @@
|
||||
|
||||
/obj/item/organ/vocal_cords/velvet/handle_speech(message) //actually say the message
|
||||
owner.say(message, spans = spans, sanitize = FALSE)
|
||||
velvetspeech(message, owner)
|
||||
velvetspeech(message, owner, 1)
|
||||
|
||||
//////////////////////////////////////
|
||||
///////////FermiChem//////////////////
|
||||
//////////////////////////////////////
|
||||
//Removed span_list from input arguments.
|
||||
/proc/velvetspeech(message, mob/living/user, base_multiplier = 1, include_speaker = TRUE, message_admins = FALSE, debug = FALSE)
|
||||
/proc/velvetspeech(message, mob/living/user, base_multiplier = 1, message_admins = FALSE, debug = FALSE)
|
||||
|
||||
if(!user || !user.can_speak() || user.stat)
|
||||
return 0 //no cooldown
|
||||
@@ -668,13 +668,14 @@
|
||||
for(var/mob/living/L in get_hearers_in_view(8, user))
|
||||
if(L.can_hear() && !L.anti_magic_check(FALSE, TRUE) && L.stat != DEAD)
|
||||
if(L.has_status_effect(/datum/status_effect/chem/enthrall))//Check to see if they have the status
|
||||
if(L == user && !include_speaker) //Remove this if I decide to make OD apply to self.
|
||||
var/datum/status_effect/chem/enthrall/E = L.has_status_effect(/datum/status_effect/chem/enthrall)//Check to see if pet is on cooldown from last command and if the master is right
|
||||
if(E.master != user)
|
||||
continue
|
||||
if(ishuman(L))
|
||||
var/mob/living/carbon/human/H = L
|
||||
if(istype(H.ears, /obj/item/clothing/ears/earmuffs))
|
||||
continue
|
||||
var/datum/status_effect/chem/enthrall/E = L.has_status_effect(/datum/status_effect/chem/enthrall)//Check to see if pet is on cooldown from last command
|
||||
|
||||
if (E.cooldown > 0)//If they're on cooldown you can't give them more commands.
|
||||
continue
|
||||
listeners += L
|
||||
@@ -1270,6 +1271,7 @@
|
||||
log_game("FERMICHEM: [H] has been implanted by [user] with [trigger], triggering [trigger2].")
|
||||
E.mental_capacity -= 5
|
||||
addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, H, "<span class='notice'>[(H.client?.prefs.lewdchem?"your [E.enthrallGender]":"[E.master]")] whispers you a new trigger.</span>"), 5)
|
||||
to_chat(user, "<span class='notice'><i>You sucessfully set the trigger word [trigger] in [H]</i></span>")
|
||||
else
|
||||
to_chat(user, "<span class='warning'>Your pet looks at you confused, it seems they don't understand that effect!</b></span>")
|
||||
else
|
||||
@@ -1298,6 +1300,7 @@
|
||||
E.customSpan = trigger2
|
||||
user.SetStun(0)
|
||||
H.SetStun(0)
|
||||
to_chat(user, "<span class='notice'><i>You sucessfully set an echoing phrase in [H]</i></span>")
|
||||
|
||||
//CUSTOM OBJECTIVE
|
||||
else if((findtext(message, objective_words)))
|
||||
@@ -1329,6 +1332,7 @@
|
||||
addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, H, "<span class='notice'>[(H.client?.prefs.lewdchem?"Your [E.enthrallGender]":"[E.master]")] whispers you a new objective.</span>"), 5)
|
||||
brainwash(H, objective)
|
||||
E.mental_capacity -= 200
|
||||
to_chat(user, "<span class='notice'><i>You sucessfully give an objective to [H]</i></span>")
|
||||
else
|
||||
to_chat(user, "<span class='warning'>Your pet looks at you with a vacant blasé expression, you don't think you can program anything else into them</b></span>")
|
||||
user.SetStun(0)
|
||||
@@ -1341,9 +1345,7 @@
|
||||
var/datum/status_effect/chem/enthrall/E = H.has_status_effect(/datum/status_effect/chem/enthrall)
|
||||
if(E.phase == 3 && H.client?.prefs.lewdchem)
|
||||
var/instill = stripped_input(user, "Instill an emotion in your [(user.client?.prefs.lewdchem?"Your pet":"listener")].", MAX_MESSAGE_LEN)
|
||||
var/customSpan = list("Notice", "Warning", "Hypnophrase", "Love", "Velvet")
|
||||
var/instillSpan = input(user, "Pick the style", "Style") in customSpan
|
||||
to_chat(H, "<span class='[instillSpan]'><i>[instill]</i></span>")
|
||||
to_chat(H, "<i>[instill]</i>")
|
||||
to_chat(user, "<span class='notice'><i>You sucessfully instill a feeling in [H]</i></span>")
|
||||
log_game("FERMICHEM: [H] has been instilled by [user] with [instill] via MKUltra.")
|
||||
E.cooldown += 1
|
||||
|
||||
@@ -183,6 +183,7 @@
|
||||
/datum/status_effect/chem/enthrall
|
||||
id = "enthrall"
|
||||
alert_type = null
|
||||
//examine_text TODO
|
||||
var/enthrallTally = 1 //Keeps track of the enthralling process
|
||||
var/resistanceTally = 0 //Keeps track of the resistance
|
||||
var/deltaResist //The total resistance added per resist click
|
||||
@@ -299,7 +300,7 @@
|
||||
if(owner.client?.prefs.lewdchem)
|
||||
to_chat(owner, "<span class='small velvet'><i>[pick("It feels so good to listen to [master].", "You can't keep your eyes off [master].", "[master]'s voice is making you feel so sleepy.", "You feel so comfortable with [master]", "[master] is so dominant, it feels right to obey them.")].</b></span>")
|
||||
if (2) //partially enthralled
|
||||
if(enthrallTally > 200)
|
||||
if(enthrallTally > 200)
|
||||
phase += 1
|
||||
mental_capacity -= resistanceTally//leftover resistance per step is taken away from mental_capacity.
|
||||
enthrallTally = 0
|
||||
@@ -330,7 +331,7 @@
|
||||
resistGrowth = 0
|
||||
to_chat(owner, "<span class='notice'><i>The separation from [(owner.client?.prefs.lewdchem?"your [enthrallGender]":"[master]")] sparks a small flame of resistance in yourself, as your mind slowly starts to return to normal.</i></span>")
|
||||
REMOVE_TRAIT(owner, TRAIT_PACIFISM, "MKUltra")
|
||||
if(prob(2))
|
||||
if(prob(1))
|
||||
if(owner.client?.prefs.lewdchem)
|
||||
to_chat(owner, "<span class='love'><i>[pick("I belong to [enthrallGender].", "[enthrallGender] knows whats best for me.", "Obedence is pleasure.", "I exist to serve [enthrallGender].", "[enthrallGender] is so dominant, it feels right to obey them.")].</i></span>")
|
||||
if (4) //mindbroken
|
||||
@@ -393,7 +394,7 @@
|
||||
if(prob(5))
|
||||
to_chat(owner, "<span class='notice'><i>You're starting to miss [(owner.client?.prefs.lewdchem?"your [enthrallGender]":"[master]")].</i></span>")
|
||||
if(prob(5))
|
||||
owner.adjustBrainLoss(0.5)
|
||||
owner.adjustBrainLoss(0.1)
|
||||
to_chat(owner, "<i>[(owner.client?.prefs.lewdchem?"[enthrallGender]":"[master]")] will surely be back soon</i>") //denial
|
||||
if(36)
|
||||
var/message = "[(owner.client?.prefs.lewdchem?"I feel empty when [enthrallGender]'s not around..":"I miss [master]'s presence")]"
|
||||
@@ -401,7 +402,7 @@
|
||||
if(37 to 65)//barganing
|
||||
if(prob(10))
|
||||
to_chat(owner, "<i>They are coming back, right...?</i>")
|
||||
owner.adjustBrainLoss(1)
|
||||
owner.adjustBrainLoss(0.5)
|
||||
if(prob(10))
|
||||
if(owner.client?.prefs.lewdchem)
|
||||
to_chat(owner, "<i>I just need to be a good pet for [enthrallGender], they'll surely return if I'm a good pet.</i>")
|
||||
@@ -421,7 +422,6 @@
|
||||
to_chat(owner, "<span class='warning'>You are overwhelmed with anger at the lack of [enthrallGender]'s presence and suddenly lash out!</span>")
|
||||
else
|
||||
to_chat(owner, "<span class='warning'>You are overwhelmed with anger and suddenly lash out!</span>")
|
||||
owner.adjustBrainLoss(1)
|
||||
if(90)
|
||||
SEND_SIGNAL(M, COMSIG_CLEAR_MOOD_EVENT, "EnthMissing2")
|
||||
var/message = "[(owner.client?.prefs.lewdchem?"Where are you [enthrallGender]??!":"I need to find [master]!")]"
|
||||
@@ -431,8 +431,8 @@
|
||||
else
|
||||
to_chat(owner, "<span class='warning'><i>You need to find [master] at all costs, you can't hold yourself back anymore!</i></span>")
|
||||
if(91 to 100)//depression
|
||||
if(prob(20))
|
||||
owner.adjustBrainLoss(2.5)
|
||||
if(prob(10))
|
||||
M.gain_trauma_type(BRAIN_TRAUMA_MILD)
|
||||
owner.stuttering += 35
|
||||
owner.jitteriness += 35
|
||||
else if(prob(25))
|
||||
@@ -442,6 +442,7 @@
|
||||
var/message = "[(owner.client?.prefs.lewdchem?"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, "<span class='warning'><i>You can hardly find the strength to continue without [(owner.client?.prefs.lewdchem?"your [enthrallGender]":"[master]")].</i></span>")
|
||||
M.gain_trauma_type(BRAIN_TRAUMA_SEVERE)
|
||||
if(102 to 140) //depression 2, revengeance
|
||||
if(prob(20))
|
||||
owner.Stun(50)
|
||||
@@ -450,22 +451,31 @@
|
||||
to_chat(owner, "<span class='warning'><i>You're unable to hold back your tears, suddenly sobbing as the desire to see your [enthrallGender] oncemore overwhelms you.</i></span>")
|
||||
else
|
||||
to_chat(owner, "<span class='warning'><i>You are overwheled with withdrawl from [master].</i></span>")
|
||||
owner.adjustBrainLoss(4)
|
||||
owner.adjustBrainLoss(1)
|
||||
owner.stuttering += 35
|
||||
owner.jitteriness += 35
|
||||
if(prob(10))//2% chance
|
||||
switch(rand(1,5))//Now let's see what hopefully-not-important part of the brain we cut off
|
||||
if(1 to 3)
|
||||
M.gain_trauma_type(BRAIN_TRAUMA_MILD)
|
||||
if(4)
|
||||
M.gain_trauma_type(BRAIN_TRAUMA_SEVERE)
|
||||
if(5)//0.4% chance
|
||||
M.gain_trauma_type(BRAIN_TRAUMA_SPECIAL)
|
||||
if(prob(5))
|
||||
deltaResist += 5
|
||||
if(140 to INFINITY) //acceptance
|
||||
if(prob(15))
|
||||
deltaResist += 5
|
||||
owner.adjustBrainLoss(-1)
|
||||
if(prob(20))
|
||||
if(owner.client?.prefs.lewdchem)
|
||||
to_chat(owner, "<i><span class='small green'>Maybe you'll be okay without your [enthrallGender].</i></span>")
|
||||
else
|
||||
to_chat(owner, "<i><span class='small green'>You feel your mental functions slowly begin to return.</i></span>")
|
||||
if(prob(5))
|
||||
owner.adjustBrainLoss(2.5)
|
||||
M.hallucination += 10
|
||||
owner.adjustBrainLoss(1)
|
||||
M.hallucination += 30
|
||||
|
||||
withdrawalTick += 0.5//Enough to leave you with a major brain trauma, but not kill you.
|
||||
|
||||
@@ -516,7 +526,7 @@
|
||||
|
||||
//customEcho
|
||||
if(customEcho && withdrawal == FALSE && owner.client?.prefs.lewdchem)
|
||||
if(prob(5))
|
||||
if(prob(2))
|
||||
if(!customSpan) //just in case!
|
||||
customSpan = "notice"
|
||||
to_chat(owner, "<span class='[customSpan]'><i>[customEcho].</i></span>")
|
||||
|
||||
@@ -177,21 +177,19 @@ Creating a chem with a low purity will make you permanently fall in love with so
|
||||
if(!creatorID)
|
||||
//This happens when the reaction explodes.
|
||||
return
|
||||
if(purity < 0.5)//Impure chems don't function as you expect
|
||||
return
|
||||
var/datum/status_effect/chem/enthrall/E = M.has_status_effect(/datum/status_effect/chem/enthrall)
|
||||
if(E)
|
||||
if(E.enthrallID == M.ckey && creatorName != M.real_name)//If you're enthralled to yourself (from OD) and someone else tries to enthrall you, you become thralled to them instantly.
|
||||
if(E.enthrallID == M.ckey && creatorID != M.ckey)//If you're enthralled to yourself (from OD) and someone else tries to enthrall you, you become thralled to them instantly.
|
||||
E.enthrallID = creatorID
|
||||
E.enthrallGender = creatorGender
|
||||
E.master = get_mob_by_key(creatorID)
|
||||
to_chat(M, to_chat(M, "<span class='big love'><i>Your aldled, plastic, mind bends under the chemical influence of a new [(M.client?.prefs.lewdchem?"master":"leader")]. Your highest priority is now to stay by [creatorName]'s side, following and aiding them at all costs.</i></span>")) //THIS SHOULD ONLY EVER APPEAR IF YOU MINDBREAK YOURSELF AND THEN GET INJECTED FROM SOMEONE ELSE.
|
||||
return
|
||||
if(purity < 0.5)//Impure chems don't function as you expect
|
||||
return
|
||||
log_game("FERMICHEM: Narcissist [M] ckey: [M.key] been rebound to [creatorName], ID: [creatorID]")
|
||||
return
|
||||
if((M.ckey == creatorID) && (creatorName == M.real_name)) //same name AND same player - same instance of the player. (should work for clones?)
|
||||
log_game("FERMICHEM: [M] ckey: [M.key] has been given velvetspeech")
|
||||
/*if(M.has_status_effect(STATUS_EFFECT_INLOVE) //Not sure if I need/want this.
|
||||
to_chat(M, "<span class='warning'><i>You are too captivated by your love to think about anything else</i></span>")
|
||||
return*/
|
||||
var/obj/item/organ/vocal_cords/Vc = M.getorganslot(ORGAN_SLOT_VOICE)
|
||||
var/obj/item/organ/vocal_cords/nVc = new /obj/item/organ/vocal_cords/velvet
|
||||
if(Vc)
|
||||
@@ -200,8 +198,6 @@ Creating a chem with a low purity will make you permanently fall in love with so
|
||||
qdel(Vc)
|
||||
to_chat(M, "<span class='notice'><i>You feel your vocal chords tingle as your voice comes out in a more sultry tone.</span>")
|
||||
else
|
||||
if(M.mind.assigned_role == "Captain")
|
||||
return
|
||||
log_game("FERMICHEM: MKUltra: [creatorName], [creatorID], is enthralling [M.name], [M.ckey]")
|
||||
M.apply_status_effect(/datum/status_effect/chem/enthrall)
|
||||
log_game("FERMICHEM: [M] ckey: [M.key] has taken MKUltra")
|
||||
@@ -258,7 +254,8 @@ Creating a chem with a low purity will make you permanently fall in love with so
|
||||
. = ..()
|
||||
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, "<span class='love'><i>You are unable to resist your own charms anymore, and become a full blown narcissist.</i></span>")
|
||||
if (!M.has_status_effect(/datum/status_effect/chem/enthrall))
|
||||
to_chat(M, "<span class='love'><i>You are unable to resist your own charms anymore, and become a full blown narcissist.</i></span>")
|
||||
/*Old way of handling, left in as an option B
|
||||
var/list/seen = viewers(7, get_turf(M))//Sound and sight checkers
|
||||
for(var/mob/living/carbon/victim in seen)
|
||||
@@ -288,7 +285,7 @@ Creating a chem with a low purity will make you permanently fall in love with so
|
||||
if(M.client?.prefs.lewdchem)
|
||||
to_chat(M, "<span class='big love'><i>Your mind shatters under the volume of the mild altering chem inside of you, breaking all will and thought completely. Instead the only force driving you now is the instinctual desire to obey and follow [creatorName]. Your highest priority is now to stay by their side and protect them at all costs.</i></span>")
|
||||
else
|
||||
to_chat(M, "<span class='big warning'><i>The might volume of chemicals in your system overwhelms your mind, and you suddenly agree with what they've been saying. Your highest priority is now to stay by their side and protect them at all costs.</i></span>")
|
||||
to_chat(M, "<span class='big warning'><i>The might volume of chemicals in your system overwhelms your mind, and you suddenly agree with what [creatorName] has been saying. Your highest priority is now to stay by their side and protect them at all costs.</i></span>")
|
||||
log_game("FERMICHEM: [M] ckey: [M.key] has been mindbroken for [creatorName] ckey: [creatorID]")
|
||||
M.slurring = 100
|
||||
M.confused = 100
|
||||
@@ -298,7 +295,7 @@ Creating a chem with a low purity will make you permanently fall in love with so
|
||||
SSblackbox.record_feedback("tally", "fermi_chem", 1, "Thralls mindbroken")
|
||||
|
||||
/datum/reagent/fermi/enthrall/overdose_process(mob/living/carbon/M)
|
||||
M.adjustBrainLoss(0.2)//should be ~40 in total
|
||||
M.adjustBrainLoss(0.2)//should be ~30 in total
|
||||
..()
|
||||
|
||||
//Creates a gas cloud when the reaction blows up, causing everyone in it to fall in love with someone/something while it's in their system.
|
||||
|
||||
Reference in New Issue
Block a user