diff --git a/code/modules/reagents/reagent_containers.dm b/code/modules/reagents/reagent_containers.dm index 03bbd6f6a8..1fb1759865 100644 --- a/code/modules/reagents/reagent_containers.dm +++ b/code/modules/reagents/reagent_containers.dm @@ -44,7 +44,7 @@ /obj/item/reagent_containers/attack(mob/M, mob/user, def_zone) if(user.a_intent == INTENT_HARM) return ..() - +/*Checking to see if I can delete this /obj/item/reagent_containers/attack(obj/item/W, mob/user, params) ..() if(!istype(W, /obj/item/pHpaper)) @@ -85,7 +85,7 @@ if(-INFINITY to 1) P.color = "#ef1d26" P.used = TRUE - +*/ /obj/item/reagent_containers/proc/canconsume(mob/eater, mob/user) diff --git a/code/modules/surgery/organs/lungs.dm b/code/modules/surgery/organs/lungs.dm index cc33188a26..f93e1d8236 100644 --- a/code/modules/surgery/organs/lungs.dm +++ b/code/modules/surgery/organs/lungs.dm @@ -88,6 +88,7 @@ /obj/item/organ/lungs/proc/check_breath(datum/gas_mixture/breath, mob/living/carbon/human/H) //TODO: add lung damage = less oxygen gains + var/breathModifier = (5-(5*(damage/maxHealth)/2)) //range 2.5 - 5 if((H.status_flags & GODMODE)) return if(H.has_trait(TRAIT_NOBREATH)) @@ -158,7 +159,7 @@ else H.failed_last_breath = FALSE if(H.health >= H.crit_threshold) - H.adjustOxyLoss(-5) //More damaged lungs = slower oxy rate up to a factor of half + H.adjustOxyLoss(breathModifier) //More damaged lungs = slower oxy rate up to a factor of half gas_breathed = breath_gases[/datum/gas/oxygen][MOLES] H.clear_alert("not_enough_oxy") @@ -187,7 +188,7 @@ else H.failed_last_breath = FALSE if(H.health >= H.crit_threshold) - H.adjustOxyLoss(-5) + H.adjustOxyLoss(breathModifier) gas_breathed = breath_gases[/datum/gas/nitrogen][MOLES] H.clear_alert("nitro") @@ -224,7 +225,7 @@ else H.failed_last_breath = FALSE if(H.health >= H.crit_threshold) - H.adjustOxyLoss(-5) + H.adjustOxyLoss(breathModifier) gas_breathed = breath_gases[/datum/gas/carbon_dioxide][MOLES] H.clear_alert("not_enough_co2") @@ -254,7 +255,7 @@ else H.failed_last_breath = FALSE if(H.health >= H.crit_threshold) - H.adjustOxyLoss(-5) + H.adjustOxyLoss(breathModifier) gas_breathed = breath_gases[/datum/gas/plasma][MOLES] H.clear_alert("not_enough_tox") diff --git a/code/modules/surgery/organs/vocal_cords.dm b/code/modules/surgery/organs/vocal_cords.dm index a668fdea6d..30ccf16c7e 100644 --- a/code/modules/surgery/organs/vocal_cords.dm +++ b/code/modules/surgery/organs/vocal_cords.dm @@ -671,8 +671,7 @@ ////////////////////////////////////// //Removed span_list from input arguments. //mob/living/user /proc/velvetspeech(message, mob/living/user, base_multiplier = 1, include_speaker = FALSE, message_admins = TRUE, debug = FALSE) - message_admins("Velvet speech proc'd on [user]") - var/cooldown = 0 + //message_admins("Velvet speech proc'd on [user]") if(!user || !user.can_speak() || user.stat) return 0 //no cooldown @@ -708,8 +707,7 @@ listeners += L if(!listeners.len) - cooldown = 0 - return cooldown + return 0 //POWER CALCULATIONS @@ -768,7 +766,7 @@ if(specific_listeners.len) listeners = specific_listeners //power_multiplier *= (1 + (1/specific_listeners.len)) //Put this is if it becomes OP, power is judged internally on a thrall, so shouldn't be nessicary. - message = copytext(message, 0, 1)+copytext(message, 1 + length(found_string), length(message) + 1) + message = copytext(message, 0, 1)+copytext(message, 1 + length(found_string), length(message) + 1)//I have no idea what this does var/obj/item/organ/tongue/T = user.getorganslot(ORGAN_SLOT_TONGUE) if (T.name == "fluffy tongue") //If you sound hillarious, it's hard to take you seriously. This is a way for other players to combat/reduce their effectiveness. @@ -841,7 +839,8 @@ else E.enthrallTally += power_multiplier*1.25 if(L.canbearoused) - addtimer(CALLBACK(L, .proc.to_chat, "[E.master] is so nice to listen to."), 5) + if(L.lewd) + addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, L, "[E.master] is so nice to listen to."), 5) E.cooldown += 1 //REWARD mixable works @@ -851,14 +850,16 @@ var/datum/status_effect/chem/enthrall/E = L.has_status_effect(/datum/status_effect/chem/enthrall) power_multiplier *= distancelist[get_dist(user, V)+1] //power_multiplier += (get_dist(V, user)**-2)*2 //2, 2, 0.5, 0.2, 0.125, 0.05, 0.04, 0.03, alternatively make a list and use the return as index values - if (L.canbearoused) - //E.resistanceTally -= 1 - L.adjustArousalLoss(1*power_multiplier) - addtimer(CALLBACK(L, L.to_chat, "[E.enthrallGender] has praised me!!"), 5) + if (L.lewd) + addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, L, "[E.enthrallGender] has praised me!!"), 5) + if(L.has_trait(TRAIT_NYMPHO)) + L.adjustArousalLoss(2*power_multiplier) else - E.resistanceTally /= 2*power_multiplier - addtimer(CALLBACK(L, L.to_chat, "I've been praised for doing a good job!"), 5) - SEND_SIGNAL(L, COMSIG_ADD_MOOD_EVENT, "enthrallpraise", /datum/mood_event/enthrallpraise) + addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, L, "I've been praised for doing a good job!"), 5) + E.resistanceTally -= power_multiplier + E.enthrallTally += 1 + var/descmessage = "[(L.lewd?"I feel so happy! I'm a good pet who [E.enthrallGender] loves!":"I did a good job!")]" + SEND_SIGNAL(L, COMSIG_ADD_MOOD_EVENT, "enthrallpraise", /datum/mood_event/enthrallpraise, descmessage) E.cooldown += 1 //PUNISH mixable works @@ -868,14 +869,16 @@ var/datum/status_effect/chem/enthrall/E = L.has_status_effect(/datum/status_effect/chem/enthrall) power_multiplier *= distancelist[get_dist(user, V)+1] //power_multiplier += (get_dist(V, user)**-2)*2 //2, 2, 0.5, 0.2, 0.125, 0.05, 0.04, 0.03, alternatively make a list and use the return as index values - if (L.canbearoused) + if (L.lewd) E.resistanceTally /= 1*power_multiplier - L.adjustArousalLoss(-2*power_multiplier) - addtimer(CALLBACK(L, L.to_chat, "I've let [E.enthrallGender] down..."), 5) + addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, L, "I've let [E.enthrallGender] down..."), 5) else - E.resistanceTally /= 3*power_multiplier //asexuals are masochists apparently (not seriously) - addtimer(CALLBACK(L, L.to_chat, "I've failed [E.master]..."), 5) - SEND_SIGNAL(L, COMSIG_ADD_MOOD_EVENT, "enthrallscold", /datum/mood_event/enthrallscold) + addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, L, "I've failed [E.master]..."), 5) + + var/descmessage = "[(L.lewd?"I've failed [E.enthrallGender]... What a bad, bad pet!":"I did a bad job...")]" + SEND_SIGNAL(L, COMSIG_ADD_MOOD_EVENT, "enthrallscold", /datum/mood_event/enthrallscold, descmessage) + E.resistanceTally += 1 + E.enthrallTally += power_multiplier E.cooldown += 1 //teir 0 @@ -885,10 +888,11 @@ var/mob/living/carbon/C = V var/datum/status_effect/chem/enthrall/E = C.has_status_effect(/datum/status_effect/chem/enthrall) C.remove_trait(TRAIT_MUTE, "enthrall") - if(C.canbearoused) + if(C.lewd) addtimer(CALLBACK(C, /atom/movable/proc/say, "[E.enthrallGender]"), 5) else - addtimer(CALLBACK(C, /atom/movable/proc/say, "My director."), 5) + addtimer(CALLBACK(C, /atom/movable/proc/say, "[E.master]"), 5)//The least lewdest I could think of + //WAKE UP else if((findtext(message, wakeup_words))) for(var/V in listeners) @@ -899,10 +903,11 @@ if(0) E.phase = 3 E.status = null - if(L.canbearoused) - addtimer(CALLBACK(L, L.to_chat, "The snapping of your [E.enthrallGender]'s fingers brings you back to your enthralled state, obedient and ready to serve."), 5) + user.emote("snap") + if(L.lewd) + addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, L, "The snapping of your [E.enthrallGender]'s fingers brings you back to your enthralled state, obedient and ready to serve."), 5) else - addtimer(CALLBACK(L, L.to_chat, "The snapping of [E.master]'s fingers brings you back to being under their command."), 5) + addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, L, "The snapping of [E.master]'s fingers brings you back to being under their command."), 5) //to_chat(L, ) @@ -922,9 +927,10 @@ else if((findtext(message, silence_words))) for(var/mob/living/carbon/C in listeners) var/datum/status_effect/chem/enthrall/E = C.has_status_effect(/datum/status_effect/chem/enthrall) - C.remove_trait(TRAIT_MUTE, TRAUMA_TRAIT) + C.remove_trait(TRAIT_MUTE, "enthrall") E.cooldown += 3 + //Antiresist else if((findtext(message, antiresist_words))) for(var/V in listeners) @@ -940,25 +946,27 @@ var/datum/status_effect/chem/enthrall/E = C.has_status_effect(/datum/status_effect/chem/enthrall) power_multiplier *= distancelist[get_dist(user, C)+1] E.deltaResist += (power_multiplier) + E.owner_resist() E.cooldown += 2 + addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, C, "You are spurred into resisting from [user]'s words!'"), 5) //FORGET (A way to cancel the process) else if((findtext(message, forget_words))) for(var/mob/living/carbon/C in listeners) var/datum/status_effect/chem/enthrall/E = C.has_status_effect(/datum/status_effect/chem/enthrall) - to_chat(C, "You wake up, forgetting everything that just happened. You must've dozed off..? How embarassing!") + addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, C, "You wake up, forgetting everything that just happened. You must've dozed off..? How embarassing!"), 5) C.Sleeping(50) switch(E.phase) if(1 to 2) E.phase = -1 - to_chat(C, "You have no recollection of being enthralled by [E.master]") + to_chat(C, "You have no recollection of being enthralled by [E.master]!") if(3) E.phase = 0 E.cooldown = 0 - if(C.canbearoused) - addtimer(CALLBACK(C, C.to_chat, "You revert to yourself before being enthralled by your [E.enthrallGender], with no memory of what happened."), 5) + if(C.lewd) + addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, C, "You revert to yourself before being enthralled by your [E.enthrallGender], with no memory of what happened."), 5) else - addtimer(CALLBACK(C, C.to_chat, "You revert to who you were before, with no memory of what happened with [E.master]."), 5) + addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, C, "You revert to who you were before, with no memory of what happened with [E.master]."), 5) //ATTRACT else if((findtext(message, attract_words))) @@ -967,6 +975,7 @@ var/datum/status_effect/chem/enthrall/E = L.has_status_effect(/datum/status_effect/chem/enthrall) L.throw_at(get_step_towards(user,L), 3 * power_multiplier, 1 * power_multiplier) E.cooldown += 3 + addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, L, "You are drawn towards [user]!"), 5) //teir 2 @@ -978,16 +987,12 @@ var/mob/living/carbon/human/H = V var/datum/status_effect/chem/enthrall/E = H.has_status_effect(/datum/status_effect/chem/enthrall) if(E.phase > 1) - if(H.canbearoused) // probably a redundant check but for good measure + if(H.has_trait(TRAIT_NYMPHO) && H.canbearoused) // probably a redundant check but for good measure H.mob_climax(forced_climax=TRUE) H.setArousalLoss(H.min_arousal) E.resistanceTally = 0 //makes resistance 0, but resets arousal, resistance buildup is faster unaroused (massively so). E.enthrallTally += power_multiplier - else - E.resistanceTally = 0 //makes resistance 0, but resets arousal, resistance buildup is faster unaroused (massively so). - E.enthrallTally += power_multiplier*1.1 - to_chat(H, "Your Masters command whites out your mind in bliss!") - E.cooldown += 6 + E.cooldown += 6 //awoo @@ -1007,9 +1012,8 @@ var/datum/status_effect/chem/enthrall/E = H.has_status_effect(/datum/status_effect/chem/enthrall) switch(E.phase) if(2 to INFINITY) - var/mob/living/M = V - playsound(get_turf(M), pick('sound/effects/meow1.ogg', 'modular_citadel/sound/voice/nya.ogg'), 50, 1, -1) - M.emote(M, 1, "lets out a nya!") + playsound(get_turf(H), pick('sound/effects/meow1.ogg', 'modular_citadel/sound/voice/nya.ogg'), 50, 1, -1) + H.emote("me", 1, "lets out a nya!") E.cooldown += 1 //SLEEP @@ -1018,7 +1022,7 @@ var/datum/status_effect/chem/enthrall/E = C.has_status_effect(/datum/status_effect/chem/enthrall) switch(E.phase) if(2 to INFINITY) - C.Sleeping(20 * power_multiplier) + C.Sleeping(30 * power_multiplier) E.cooldown += 10 //STRIP @@ -1030,9 +1034,10 @@ if(2 to INFINITY)//Tier 2 only E.phase = 1 var/items = H.get_contents() - for(var/I in items) - H.dropItemToGround(I, TRUE) - to_chat(H, "Before you can even think about it, you quickly remove your clothes in response to your Master's command.") + for(var/obj/item/W in items) + if(W == H.w_uniform || W == H.wear_suit) + H.dropItemToGround(W, TRUE) + addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, H, "Before you can even think about it, you quickly remove your clothes in response to [(H.lewd?"your [E.enthrallGender]'s command'":"[E.master]'s directive'")]."), 5) E.cooldown += 10 //WALK doesn't work? @@ -1066,6 +1071,7 @@ if(3 to INFINITY)//Tier 2 only L.Knockdown(30 * power_multiplier * E.phase) E.cooldown += 8 + addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, L, "You suddenly drop to the ground!'"), 5) //tier3 @@ -1074,13 +1080,13 @@ for(var/V in listeners) var/speaktrigger = "" var/mob/living/carbon/C = V - var/datum/status_effect/chem/enthrall/E = C.has_status_effect(/datum/status_effect/chem/enthrall)//i.e. if it's not empty - for (var/trigger in E.customTriggers) - speaktrigger += "[trigger], " - if(!speaktrigger == "") - C.add_trait(TRAIT_DEAF, "Triggers") //So you don't trigger yourself! - addtimer(CALLBACK(C, /atom/movable/proc/say, "[speaktrigger]"), 5) - C.remove_trait(TRAIT_DEAF, "Triggers") + var/datum/status_effect/chem/enthrall/E = C.has_status_effect(/datum/status_effect/chem/enthrall) + if (E.phase > 3) + for (var/trigger in E.customTriggers) + speaktrigger += "[trigger], " + C.add_trait(TRAIT_DEAF, "Triggers") //So you don't trigger yourself! + addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, C, /atom/movable/proc/say, "[speaktrigger]"), 5) + C.remove_trait(TRAIT_DEAF, "Triggers") //CUSTOM TRIGGERS @@ -1097,6 +1103,7 @@ if (E.mental_capacity >= 10) var/trigger = stripped_input(user, "Enter the trigger phrase", MAX_MESSAGE_LEN) var/trigger2 = stripped_input(user, "Enter the effect.", MAX_MESSAGE_LEN) + trigger2 = lowertext(trigger2) if ((findtext(trigger2, custom_words_words))) if (trigger2 == "speak" || trigger2 == "echo") var/trigger3 = stripped_input(user, "Enter the phrase spoken.", MAX_MESSAGE_LEN) @@ -1104,6 +1111,7 @@ else E.customTriggers[trigger] = trigger2 E.mental_capacity -= 10 + 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!") else @@ -1120,7 +1128,7 @@ return else user.emote(user, 1, "puts their hands upon [H.name]'s head and looks deep into their eyes, whispering something to them.'") - if (E.mental_capacity >= 150 || message == "objective") + if (E.mental_capacity >= 250 || message == "objective") var/datum/objective/brainwashing/objective = stripped_input(user, "Add an objective to give your pet.", MAX_MESSAGE_LEN) if(!LAZYLEN(objective)) return @@ -1130,9 +1138,9 @@ objective = replacetext(lowertext(objective), "harm", "snuggle") objective = replacetext(lowertext(objective), "decapitate", "headpat") objective = replacetext(lowertext(objective), "strangle", "meow at") - to_chat(H, "Your master whispers you a new objective.") + addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, H, "[(H.lewd?"your [E.enthrallGender]":"[E.master]")] whispers you a new objective."), 5) brainwash(H, objective) - E.mental_capacity -= 150 + E.mental_capacity -= 250 //else if (E.mental_capacity >= 150) else to_chat(user, "Your pet looks at you with a vacant blasé expression, you don't think you can program anything else into them") @@ -1146,7 +1154,7 @@ if(E.phase > 1) if(user.ckey == E.enthrallID && user.real_name == E.master.real_name) E.master = user - addtimer(CALLBACK(C, C.to_chat, "You hear the words of your [E.enthrallGender] again!! They're back!!"), 5) + addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, H, "[(H.lewd?"You hear the words of your [E.enthrallGender] again!! They're back!!":"You recognise the voice of [E.master].")]"), 5) //I dunno how to do state objectives without them revealing they're an antag @@ -1160,6 +1168,8 @@ E.status = "heal" E.statusStrength = (5 * power_multiplier) E.cooldown += 5 + addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, L, "You begin to lick your wounds."), 5) + L.Stun(40) //STUN else if(findtext(message, stun_words)) @@ -1168,8 +1178,9 @@ var/datum/status_effect/chem/enthrall/E = L.has_status_effect(/datum/status_effect/chem/enthrall) switch(E.phase) if(3 to INFINITY)//Tier 3 only - L.Stun(30 * power_multiplier) + L.Stun(40 * power_multiplier) E.cooldown += 8 + addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, L, "You freeze up!"), 5) //HALLUCINATE else if(findtext(message, hallucinate_words)) @@ -1188,7 +1199,7 @@ switch(E.phase) if(3 to INFINITY)//Tier 3 only L.adjust_bodytemperature(10 * power_multiplier)//This seems nuts, reduced it - to_chat(L, "You feel your metabolism speed up!") + addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, L, "You feel your metabolism speed up!"), 5) //COLD else if(findtext(message, cold_words)) @@ -1198,7 +1209,7 @@ switch(E.phase) if(3 to INFINITY)//Tier 3 only L.adjust_bodytemperature(-10 * power_multiplier)//This - to_chat(L, "You feel your metabolism slow down!") + addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, L, "You feel your metabolism slow down!"), 5) //GET UP @@ -1214,6 +1225,7 @@ L.SetKnockdown(0) L.SetUnconscious(0) //i said get up i don't care if you're being tased E.cooldown += 10 //This could be really strong + addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, L, "You jump to your feel from sheer willpower!"), 5) //PACIFY else if(findtext(message, pacify_words)) @@ -1331,7 +1343,7 @@ if(message_admins) message_admins("[ADMIN_LOOKUPFLW(user)] has said '[log_message]' with a Velvet Voice, affecting [english_list(listeners)], with a power multiplier of [power_multiplier].") log_game("[key_name(user)] has said '[log_message]' with a Velvet Voice, affecting [english_list(listeners)], with a power multiplier of [power_multiplier].") - SSblackbox.record_feedback("tally", "Velvet_voice", 1, log_message) + //SSblackbox.record_feedback("tally", "Velvet_voice", 1, log_message) If this is on, it fills the thing up and OOFs the server return diff --git a/modular_citadel/code/datums/mood_events/chem_events.dm b/modular_citadel/code/datums/mood_events/chem_events.dm index c194605e9f..4e1be8d67f 100644 --- a/modular_citadel/code/datums/mood_events/chem_events.dm +++ b/modular_citadel/code/datums/mood_events/chem_events.dm @@ -1,41 +1,55 @@ /datum/mood_event/eigenstate - mood_change = -1 + mood_change = -3 description = "Where the hell am I? Is this an alternative dimension ?\n" /datum/mood_event/enthrall - mood_change = 5 - description = "I am a good pet for Master.\n" + mood_change = 5 + +/datum/mood_event/enthrall/add_effects(message) + description = "[message]\n" /datum/mood_event/enthrallpraise - mood_change = 12 - description = "I feel so happy! I'm a good pet who Master loves!\n" - timeout = 600 + mood_change = 10 + timeout = 600 + +/datum/mood_event/enthrallpraise/add_effects(message) + description = "[message]\n" /datum/mood_event/enthrallscold - mood_change = -12 - description = "I've failed Master... What a bad, bad pet!\n"//aaa I'm not kinky enough for this - timeout = 600 + mood_change = -10 + timeout = 600 + +/datum/mood_event/enthrallscold/add_effects(message) + description = "[message]\n"//aaa I'm not kinky enough for this /datum/mood_event/enthrallmissing1 - mood_change = -5 - description = "I feel empty when Master's not around..\n" + mood_change = -5 + +/datum/mood_event/enthrallmissing1/add_effects(message) + description = "[message]\n" /datum/mood_event/enthrallmissing2 - mood_change = -10 - description = "I feel so lost in this complicated world without Master, where are they?!\n" + mood_change = -10 + +/datum/mood_event/enthrallmissing2/add_effects(message) + description = "[message]\n" /datum/mood_event/enthrallmissing3 - mood_change = -15 - description = "Where are you Master??!\n" + mood_change = -15 + +/datum/mood_event/enthrallmissing3/add_effects(message) + description = "[message]\n" /datum/mood_event/enthrallmissing4 - mood_change = -25 - description = "I'm all alone, It's so hard to continute without Master...\n" + mood_change = -25 + +/datum/mood_event/enthrallmissing4/add_effects(message) + description = "[message]\n" /datum/mood_event/InLove - mood_change = 10 - description = "I'm in love!!\n" + mood_change = 10 + description = "I'm in love!!\n" /datum/mood_event/MissingLove - mood_change = -20 - description = "I can't keep my crush off my mind, I need to see them again!\n" + mood_change = -20 + description = "I can't keep my crush off my mind, I need to see them again!\n" diff --git a/modular_citadel/code/datums/status_effects/chems.dm b/modular_citadel/code/datums/status_effects/chems.dm index 8e88cead93..3a0a11ddf5 100644 --- a/modular_citadel/code/datums/status_effects/chems.dm +++ b/modular_citadel/code/datums/status_effects/chems.dm @@ -159,10 +159,10 @@ */ //Preamble -/datum/mob/living/carbon/ +/mob/living var/lewd = TRUE //Maybe false? -/mob/living/carbon/verb/toggle_lewd() +/mob/living/verb/toggle_lewd() set category = "IC" set name = "toggle lewdchem" set desc = "Allows you to toggle if you'd like lewd flavour messages." @@ -197,6 +197,7 @@ var/list/customTriggers = list() //the list of custom triggers (maybe have to split into two) var/cooldown = 0 var/cooldownMsg = TRUE + var/cTriggered = FALSE /datum/status_effect/chem/enthrall/on_apply() var/mob/living/carbon/M = owner @@ -215,12 +216,14 @@ redirect_component = WEAKREF(owner.AddComponent(/datum/component/redirect, list(COMSIG_LIVING_RESIST = CALLBACK(src, .proc/owner_resist)))) //Do resistance calc if resist is pressed# //redirect_component2 = WEAKREF(owner.AddComponent(/datum/component/redirect, list(COMSIG_LIVING_SAY = CALLBACK(src, .proc/owner_say)))) //Do resistance calc if resist is pressed //redirect_component3 = WEAKREF(owner.AddComponent(/datum/component/redirect, list(COMSIG_MOVABLE_HEAR = CALLBACK(src, .proc/owner_hear)))) //Do resistance calc if resist is pressed - RegisterSignal(owner, COMSIG_GLOB_LIVING_SAY_SPECIAL, .proc/owner_say) + //RegisterSignal(owner, COMSIG_GLOB_LIVING_SAY_SPECIAL, .proc/owner_say) RegisterSignal(owner, COMSIG_MOVABLE_HEAR, .proc/owner_hear) //Might need to add redirect component for listening too. var/obj/item/organ/brain/B = M.getorganslot(ORGAN_SLOT_BRAIN) //It's their brain! mental_capacity = 500 - B.get_brain_damage() - SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "enthrall", /datum/mood_event/enthrall) + var/message = "[(owner.lewd?"I am a good pet for [enthrallGender].":"I find enjoyment in fulfilling the requests of [master] and I am appreciative of being in this position currently with no desire for this to change.")]" + SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "enthrall", /datum/mood_event/enthrall, message) + to_chat(owner, "You feel inexplicably drawn towards [master], their words having a demonstrable effect on you. It seems the closer you are to them, the stronger the effect is. However you aren't fully swayed yet and can still repeatedly resist their effects! (Mash resist to fight back!!)") return ..() /datum/status_effect/chem/enthrall/tick() @@ -263,7 +266,10 @@ mental_capacity -= resistanceTally//leftover resistance per step is taken away from mental_capacity. resistanceTally /= 2 enthrallTally = 0 - to_chat(owner, "Your conciousness slips, as you sink deeper into trance and servitude.") + if(owner.lewd) + to_chat(owner, "Your conciousness slips, as you sink deeper into trance and servitude.") + else + else if (resistanceTally > 100) enthrallTally *= 0.5 phase = -1 @@ -280,13 +286,17 @@ mental_capacity -= resistanceTally//leftover resistance per step is taken away from mental_capacity. enthrallTally = 0 resistanceTally /= 2 - to_chat(owner, "Your mind gives, eagerly obeying and serving [master].") - to_chat(owner, "You are now fully enthralled to [master], and eager to follow their commands. However you find that in your intoxicated state you are much less likely to resort to violence, unless it is to defend your [enthrallGender]. Equally you are unable to commit suicide, even if ordered to, as you cannot serve your [enthrallGender] in death. ")//If people start using this as an excuse to be violent I'll just make them all pacifists so it's not OP. + if(owner.lewd) + to_chat(owner, "Your mind gives, eagerly obeying and serving [master].") + to_chat(owner, "You are now fully enthralled to [master], and eager to follow their commands. However you find that in your intoxicated state you are unable to resort to violence. Equally you are unable to commit suicide, even if ordered to, as you cannot serve your [enthrallGender] in death. ")//If people start using this as an excuse to be violent I'll just make them all pacifists so it's not OP. + else + to_chat(owner, "You are unable to put up a resistance any longer, and now are under the control of [master]. However you find that in your intoxicated state you are unable to resort to violence. Equally you are unable to commit suicide, even if ordered to, as you cannot serve your [master] in death. ") + owner.add_trait(TRAIT_PACIFISM, "MKUltra") else if (resistanceTally > 150) enthrallTally *= 0.5 phase -= 1 resistanceTally = 0 - to_chat(owner, "You manage to shake some of the entrancement from your addled mind, however you can still feel yourself drawn towards [master].") + to_chat(owner, "You manage to shake some of the effects from your addled mind, however you can still feel yourself drawn towards [master].") //owner.remove_status_effect(src) //If resisted in phase 1, effect is removed. Not at the moment, if(prob(10)) if(owner.lewd) @@ -296,12 +306,13 @@ enthrallTally = 0 phase -= 1 resistanceTally = 0 - to_chat(owner, "The separation from you [enthrallGender] sparks a small flame of resistance in yourself, as your mind slowly starts to return to normal.") + to_chat(owner, "The separation from [(owner.lewd?"your [enthrallGender]":"[master]")] sparks a small flame of resistance in yourself, as your mind slowly starts to return to normal.") + owner.remove_trait(TRAIT_PACIFISM, "MKUltra") if(prob(2)) if(owner.lewd) to_chat(owner, "[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.")].") if (4) //mindbroken - if (mental_capacity >= 499 || owner.getBrainLoss() >=20 || !owner.reagents.has_reagent("MKUltra")) + if (mental_capacity >= 499 && (owner.getBrainLoss() >=20 || M.has_trait(TRAIT_MINDSHIELD)) && !owner.reagents.has_reagent("MKUltra")) phase = 2 mental_capacity = 500 customTriggers = list() @@ -333,36 +344,48 @@ //Withdrawal subproc: 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 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 your [enthrallGender].") + to_chat(owner, "You're starting to miss [(owner.lewd?"your [enthrallGender]":"[master]")].") if(prob(5)) owner.adjustBrainLoss(0.5) - to_chat(owner, "Master will surely be back soon") //denial + to_chat(owner, "[(owner.lewd?"[enthrallGender]":"[master]")] will surely be back soon") //denial if(36) - SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "EnthMissing1", /datum/mood_event/enthrallmissing1) + var/message = "[(owner.lewd?"I feel empty when [enthrallGender]'s not around..":"I miss [master]'s presence")]" + SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "EnthMissing1", /datum/mood_event/enthrallmissing1, message) if(37 to 65)//barganing if(prob(10)) to_chat(owner, "They are coming back, right...?") owner.adjustBrainLoss(1) if(prob(10)) - to_chat(owner, "I just need to be a good pet for [enthrallGender], they'll surely return if I'm a good pet.") + if(owner.lewd) + to_chat(owner, "I just need to be a good pet for [enthrallGender], they'll surely return if I'm a good pet.") owner.adjustBrainLoss(-1) if(66) - SEND_SIGNAL(M, COMSIG_CLEAR_MOOD_EVENT, "EnthMissing1") //Why does this not work? - SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "EnthMissing2", /datum/mood_event/enthrallmissing2) + 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]!")]" + SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "EnthMissing2", /datum/mood_event/enthrallmissing2, message) owner.stuttering += 200 owner.jitteriness += 200 if(67 to 90) //anger if(prob(10)) addtimer(CALLBACK(M, /mob/verb/a_intent_change, INTENT_HARM), 2) addtimer(CALLBACK(M, /mob/proc/click_random_mob), 2) - to_chat(owner, "You are overwhelmed with anger at the lack of [enthrallGender]'s presence and suddenly lash out!") + if(owner.lewd) + to_chat(owner, "You are overwhelmed with anger at the lack of [enthrallGender]'s presence and suddenly lash out!") + else + to_chat(owner, "You are overwhelmed with anger and suddenly lash out!") owner.adjustBrainLoss(1) if(90) - SEND_SIGNAL(M, COMSIG_CLEAR_MOOD_EVENT, "EnthMissing2") //Why does this not work? - SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "EnthMissing3", /datum/mood_event/enthrallmissing3) - to_chat(owner, "You need to find your [enthrallGender] at all costs, you can't hold yourself back anymore.") + SEND_SIGNAL(M, COMSIG_CLEAR_MOOD_EVENT, "EnthMissing2") + var/message = "[(owner.lewd?"Where are you [enthrallGender]??!":"I need to find [master]!")]" + SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "EnthMissing3", /datum/mood_event/enthrallmissing3, message) + if(owner.lewd) + 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(prob(20)) owner.adjustBrainLoss(2.5) @@ -372,13 +395,17 @@ M.hallucination += 20 if(121) SEND_SIGNAL(M, COMSIG_CLEAR_MOOD_EVENT, "EnthMissing3") - SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "EnthMissing4", /datum/mood_event/enthrallmissing4) + 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 if(prob(15)) owner.Stun(50) owner.emote("cry")//does this exist? - to_chat(owner, "You're unable to hold back your tears, suddenly sobbing as the desire to see your [enthrallGender] oncemore overwhelms you.") + 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 @@ -388,7 +415,10 @@ if(prob(15)) deltaResist += 5 if(prob(20)) - to_chat(owner, "Maybe you'll be okay without your [enthrallGender].") + if(owner.lewd) + 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 @@ -402,7 +432,7 @@ if(status == "Antiresist") if (statusStrength < 0) status = null - to_chat(owner, "You feel able to resist oncemore.") + to_chat(owner, "Your mind feels able to resist oncemore.") else statusStrength -= 1 @@ -418,20 +448,23 @@ else if(status == "charge") owner.add_trait(TRAIT_GOTTAGOFAST, "MKUltra") status = "charged" - to_chat(owner, "Your [enthrallGender]'s order fills you with a burst of speed!") + if(master.lewd) + to_chat(owner, "Your [enthrallGender]'s order fills you with a burst of speed!") + else + to_chat(owner, "[master]'s command fills you with a burst of speed!") else if (status == "charged") if (statusStrength < 0) status = null owner.remove_trait(TRAIT_GOTTAGOFAST, "MKUltra") - owner.Knockdown(30) + owner.Knockdown(50) to_chat(owner, "Your body gives out as the adrenaline in your system runs out.") else statusStrength -= 1 cooldown += 1 //Cooldown doesn't process till status is done else if (status == "pacify") - owner.add_trait(TRAIT_PACIFISM, "MKUltra") + owner.add_trait(TRAIT_PACIFISM, "MKUltraStatus") status = null //Truth serum? @@ -443,14 +476,18 @@ resistanceTally += deltaResist deltaResist = 0 if (cooldown > 0) - cooldown -= (1 + (mental_capacity/1000 )) + cooldown -= (1 + (mental_capacity/1000)) cooldownMsg = FALSE else if (cooldownMsg == FALSE) - to_chat(master, "Your pet [owner] appears to have finished internalising your last command.") + if(master.lewd) + to_chat(master, "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.") cooldownMsg = TRUE cooldown = 0 //..() +//Remove all stuff /datum/status_effect/chem/enthrall/on_remove() var/mob/living/carbon/M = owner SEND_SIGNAL(M, COMSIG_CLEAR_MOOD_EVENT, "enthrall") @@ -462,12 +499,9 @@ SEND_SIGNAL(M, COMSIG_CLEAR_MOOD_EVENT, "EnthMissing4") qdel(redirect_component.resolve()) redirect_component = null - //qdel(redirect_component2.resolve()) - //redirect_component2 = null UnregisterSignal(owner, COMSIG_MOVABLE_HEAR) - UnregisterSignal(owner, COMSIG_GLOB_LIVING_SAY_SPECIAL) - //qdel(redirect_component3.resolve()) - //redirect_component3 = null + owner.remove_trait(TRAIT_PACIFISM, "MKUltra") + //UnregisterSignal(owner, COMSIG_GLOB_LIVING_SAY_SPECIAL) /* /datum/status_effect/chem/enthrall/mob/say(message, bubble_type, var/list/spans = list(), sanitize = TRUE, datum/language/language = null, ignore_spam = FALSE, forced = null) @@ -479,7 +513,8 @@ //WORKS!! AAAAA /datum/status_effect/chem/enthrall/proc/owner_hear(var/hearer, message, atom/movable/speaker, message_language, raw_message, radio_freq, list/spans, message_mode) - //message_admins("post: hear:[hearer], msg:[message], spk:[speaker], lng:[message_language], raw:[raw_message], freq:[radio_freq], spen:[spans], mod:[message_mode]") + if (cTriggered == TRUE) + return var/mob/living/carbon/C = owner //message_admins("[C] heard something!") raw_message = lowertext(raw_message) @@ -488,10 +523,14 @@ //message_admins("[C] heard something: [message] vs [trigger] vs [raw_message]") if (findtext(raw_message, cached_trigger))//if trigger1 is the message message_admins("[C] has been triggered with [trigger]!") + cTriggered = TRUE //Speak (Forces player to talk) works if (lowertext(customTriggers[trigger][1]) == "speak")//trigger2 - to_chat(C, "Your body moves on it's own before you can even catch it. You find yourself fully believing in the validity of what you just said and don't think to question it.") + var/saytext = "Your mouth moves on it's own before you can even catch it." + if(M.has_trait(TRAIT_NYMPHO)) + saytext += " You find yourself fully believing in the validity of what you just said and don't think to question it." + to_chat(C, "[saytext]") (C.say(customTriggers[trigger][2]))//trigger3 @@ -510,7 +549,7 @@ //wah intensifies wah-rks else if (lowertext(customTriggers[trigger]) == "cum")//aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa - if (C.canbearoused) + if (M.has_trait(TRAIT_NYMPHO)) if (C.getArousalLoss() > 80) C.mob_climax(forced_climax=TRUE) else @@ -520,11 +559,12 @@ //kneel (knockdown) else if (lowertext(customTriggers[trigger]) == "kneel")//as close to kneeling as you can get, I suppose. + to_chat(owner, "You drop to the ground unsurreptitiously.") C.resting = 1 C.lying = 1 //strip (some) clothes - else if (lowertext(customTriggers[trigger]) == "strip")//This wasn't meant to just be a lewd thing oops + else if (lowertext(customTriggers[trigger]) == "strip")//This wasn't meant to just be a lewd thing oops, is this pref breaking? var/mob/living/carbon/human/o = owner var/items = o.get_contents() for(var/obj/item/W in items) @@ -533,13 +573,13 @@ to_chat(owner,"You feel compelled to strip your clothes.") //trance - else if (lowertext(customTriggers[trigger]) == "trance") + else if (lowertext(customTriggers[trigger]) == "trance")//Maaaybe too strong. var/mob/living/carbon/human/o = owner o.apply_status_effect(/datum/status_effect/trance, 200, TRUE) //add more fun stuff! - + cTriggered = FALSE return /* /datum/status_effect/chem/enthrall/proc/owner_withdrawal(mob/living/carbon/M) @@ -547,19 +587,29 @@ */ /datum/status_effect/chem/enthrall/proc/owner_resist() var/mob/living/carbon/M = owner + to_chat(owner, "You attempt to fight against against [(owner.lewd?"[enthrallGender]":"[master]")]'s influence!'") message_admins("Enthrall processing for [M]: enthrallTally: [enthrallTally], resistanceTally: [resistanceTally]") - message_admins("[M] is trying to resist!") + //message_admins("[M] is trying to resist!") if (status == "Sleeper" || phase == 0) return else if (phase == 4) - to_chat(owner, "Your mind is too far gone to even entertain the thought of resisting.") + if(owner.lewd) + to_chat(owner, "Your mind is too far gone to even entertain the thought of resisting. Unless you can fix the brain damage, you won't be able to break free of your [enthrallGender]'s control.") + else + to_chat(owner, "Your brain is too overwhelmed with from the high volume of chemicals in your system, rendering you unable to resist, unless you can fix the brain damage.") return else if (phase == 3 && withdrawal == FALSE) - to_chat(owner, "The presence of your [enthrallGender] fully captures the horizon of your mind, removing any thoughts of resistance.") + if(owner.lewd) + to_chat(owner, "The presence of your [enthrallGender] fully captures the horizon of your mind, removing any thoughts of resistance. Try getting away from them.") + else + to_chat(owner, "You are unable to resist [master] in your current state. Try getting away from them.") return else if (status == "Antiresist")//If ordered to not resist; resisting while ordered to not makes it last longer, and increases the rate in which you are enthralled. if (statusStrength > 0) - to_chat(owner, "The order from your [enthrallGender] to give in is conflicting with your attempt to resist, drawing you deeper into trance.") + if(owner.lewd) + to_chat(owner, "The order from your [enthrallGender] to give in is conflicting with your attempt to resist, drawing you deeper into trance! You'll have to wait a bit before attemping again, lest your attempts become frustrated again.") + else + to_chat(owner, "The order from your [master] to give in is conflicting with your attempt to resist. You'll have to wait a bit before attemping again, lest your attempts become frustrated again.") statusStrength += 1 enthrallTally += 1 return @@ -576,10 +626,10 @@ deltaResist *= 1.5 to_chat(owner, "You attempt to shake the mental cobwebs from your mind!") //base resistance - if (M.canbearoused) + if (M.canbearoused && M.has_trait(TRAIT_NYMPHO))//I'm okay with this being removed. deltaResist*= ((100 - M.arousalloss/100)/100)//more aroused you are, the weaker resistance you can give - else - deltaResist *= 0.5 + //else + // deltaResist *= 0.5 //chemical resistance, brain and annaphros are the key to undoing, but the subject has to to be willing to resist. if (owner.reagents.has_reagent("mannitol")) deltaResist *= 1.25 @@ -598,12 +648,12 @@ //Antag resistance //cultists are already brainwashed by their god if(iscultist(owner)) - deltaResist *= 2 + deltaResist *= 1.5 else if (is_servant_of_ratvar(owner)) - deltaResist *= 2 + deltaResist *= 1.5 //antags should be able to resist, so they can do their other objectives. This chem does frustrate them, but they've all the tools to break free when an oportunity presents itself. else if (owner.mind.assigned_role in GLOB.antagonists) - deltaResist *= 1.8 + deltaResist *= 1.4 //role resistance //Chaplains are already brainwashed by their god @@ -623,23 +673,23 @@ deltaResist += (250-owner.nutrition)/100 if(owner.health < 100)//Harming your thrall will make them rebel harder. deltaResist *= ((120-owner.health)/100)+1 + //if() //Add cold/hot, oxygen, sanity, happiness? (happiness might be moot, since the mood effects are so strong) //Mental health could play a role too in the other direction - //If master gives you a collar, you get a sense of pride + //If you've a collar, you get a sense of pride if(istype(M.wear_neck, /obj/item/clothing/neck/petcollar)) deltaResist *= 0.5 if(M.has_trait(TRAIT_MINDSHIELD)) - deltaResist += 1 - - if(owner.has_trait(TRAIT_CROCRIN_IMMUNE) || !owner.canbearoused) - deltaResist *= 0.75//Immune/asexual players are immune to the arousal based multiplier, this is to offset that so they can still be affected. Their unfamiliarty with desire makes it more on them. + deltaResist += 5//even faster! if (deltaResist>0)//just in case deltaResist /= phase//later phases require more resistance message_admins("[M] is trying to resist with a delta of [deltaResist]!") return +//I think this can be left out, but I'll leave the code incase anyone wants to add to it. +/* /datum/status_effect/chem/enthrall/proc/owner_say(mob/speaker, message) //I can only hope this works //var/datum/status_effect/chem/enthrall/E = owner.has_status_effect(/datum/status_effect/chem/enthrall) @@ -649,35 +699,4 @@ if(findtext(message, owner_words)) message = replacetext(lowertext(message), lowertext(master), "[enthrallGender]") return message - -/* -/datum/status_effect/chem/OwO - id = "OwO" - -/datum/status_effect/chem/PElarger/tick(message) - if(copytext(message, 1, 2) != "*") - message = replacetext(message, "ne", "nye") - message = replacetext(message, "nu", "nyu") - message = replacetext(message, "na", "nya") - message = replacetext(message, "no", "nyo") - message = replacetext(message, "ove", "uv") - message = replacetext(message, "ove", "uv") - message = replacetext(message, "th", "ff") - message = replacetext(message, "l", "w") - message = replacetext(message, "r", "w") - if(prob(20)) - message = replacetext(message, ".", "OwO.") - else if(prob(30)) - message = replacetext(message, ".", "uwu.") - message = lowertext(message) -*/ -/*Doesn't work -/datum/status_effect/chem/SDGF/candidates - id = "SGDFCandi" - var/mob/living/fermi_Clone - var/list/candies = list() - -/datum/status_effect/chem/SDGF/candidates/on_apply() - candies = pollGhostCandidates("Do you want to play as a clone and do you agree to respect their character and act in a similar manner to them? I swear to god if you diddle them I will be very disapointed in you. ", "FermiClone", null, ROLE_SENTIENCE, 300) // see poll_ignore.dm, should allow admins to ban greifers or bullies - return ..() */ diff --git a/modular_citadel/code/modules/arousal/organs/breasts.dm b/modular_citadel/code/modules/arousal/organs/breasts.dm index d8aaf3afab..90c59ec749 100644 --- a/modular_citadel/code/modules/arousal/organs/breasts.dm +++ b/modular_citadel/code/modules/arousal/organs/breasts.dm @@ -26,6 +26,8 @@ reagents.add_reagent(fluid_id, fluid_max_volume) prev_size = size cached_size = breast_values[size] + if (cached_size == "c")//fix for a weird bug that has something to do with how they're set up on the character create screen. + cached_size = 3 /obj/item/organ/genital/breasts/on_life() if(QDELETED(src)) 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 4853b75f2e..4b762ef253 100644 --- a/modular_citadel/code/modules/reagents/chemistry/reagents/fermi_reagents.dm +++ b/modular_citadel/code/modules/reagents/chemistry/reagents/fermi_reagents.dm @@ -12,7 +12,7 @@ /datum/reagent/fermi name = "Fermi" //Why did I putthis here? id = "fermi" //It's meeee - taste_description = "If affection had a taste, this would be it." + taste_description = "affection and love!" var/ImpureChem = "toxin" // What chemical is metabolised with an inpure reaction var/InverseChemVal = 0.25 // If the impurity is below 0.5, replace ALL of the chem with InverseChem upon metabolising var/InverseChem = "toxin" // What chem is metabolised when purity is below InverseChemVal, this shouldn't be made, but if it does, well, I guess I'll know about it. @@ -24,10 +24,7 @@ //return ..() //Called when reaction stops. #STOP_PROCESSING -/* -/datum/reagent/fermi/proc/FermiFinish(datum/reagents/holder, multipler) //You can get holder by reagents.holder WHY DID I LEARN THIS NOW??? - return -*/ + //Called when added to a beaker without any of the reagent present. #add_reagent /datum/reagent/fermi/proc/FermiNew(holder) //You can get holder by reagents.holder WHY DID I LEARN THIS NOW??? return @@ -60,7 +57,7 @@ /datum/reagent/fermi/on_merge(data, amount, mob/living/carbon/M, purity)//basically on_mob_add but for merging . = ..() message_admins("purity of chem is [purity]") - if(!istype(M, datum/mob/living/carbon/M)) + if(M.istype(/mob/living/carbon/M)) return message_admins("purity of chem is [purity]") if (purity < 0) @@ -253,7 +250,7 @@ if(prob(20)) do_sparks(5,FALSE,M) src.addictCyc4++ - + SEND_SIGNAL(M, COMSIG_CLEAR_MOOD_EVENT, "[src.id]_overdose")//holdover until above fix works ..() //. = 1 @@ -1160,12 +1157,11 @@ And as stated earlier, this chem is hard to make, and is punishing on failure. Y return 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) - E = null M.reagents.remove_reagent(src.id, 10) M.apply_status_effect(/datum/status_effect/chem/enthrall) message_admins("No enthrall status found in [M]!") - var/datum/status_effect/chem/enthrall/E = M.has_status_effect(/datum/status_effect/chem/enthrall) - E.enthrallTally += 1 + else + E.enthrallTally += 1 if(prob(50)) 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. ..()