Update of master required.

This commit is contained in:
Fermi
2019-05-22 16:50:53 +01:00
parent e86585935f
commit 7cb7f5de73
7 changed files with 225 additions and 181 deletions
+2 -2
View File
@@ -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)
+5 -4
View File
@@ -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")
+70 -58
View File
@@ -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, "<span class='nicegreen'>[E.master] is so nice to listen to.</b></span>"), 5)
if(L.lewd)
addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, L, "<span class='nicegreen'>[E.master] is so nice to listen to.</b></span>"), 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, "<span class='nicegreen'>[E.enthrallGender] has praised me!!</b></span>"), 5)
if (L.lewd)
addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, L, "<span class='nicegreen'>[E.enthrallGender] has praised me!!</b></span>"), 5)
if(L.has_trait(TRAIT_NYMPHO))
L.adjustArousalLoss(2*power_multiplier)
else
E.resistanceTally /= 2*power_multiplier
addtimer(CALLBACK(L, L.to_chat, "<span class='nicegreen'>I've been praised for doing a good job!</b></span>"), 5)
SEND_SIGNAL(L, COMSIG_ADD_MOOD_EVENT, "enthrallpraise", /datum/mood_event/enthrallpraise)
addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, L, "<span class='nicegreen'>I've been praised for doing a good job!</b></span>"), 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, "<span class='warning'>I've let [E.enthrallGender] down...</b></span>"), 5)
addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, L, "<span class='warning'>I've let [E.enthrallGender] down...</b></span>"), 5)
else
E.resistanceTally /= 3*power_multiplier //asexuals are masochists apparently (not seriously)
addtimer(CALLBACK(L, L.to_chat, "<span class='warning'>I've failed [E.master]...</b></span>"), 5)
SEND_SIGNAL(L, COMSIG_ADD_MOOD_EVENT, "enthrallscold", /datum/mood_event/enthrallscold)
addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, L, "<span class='warning'>I've failed [E.master]...</b></span>"), 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, "<span class='big warning'>The snapping of your [E.enthrallGender]'s fingers brings you back to your enthralled state, obedient and ready to serve.</b></span>"), 5)
user.emote("snap")
if(L.lewd)
addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, L, "<span class='big warning'>The snapping of your [E.enthrallGender]'s fingers brings you back to your enthralled state, obedient and ready to serve.</b></span>"), 5)
else
addtimer(CALLBACK(L, L.to_chat, "<span class='big warning'>The snapping of [E.master]'s fingers brings you back to being under their command.</b></span>"), 5)
addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, L, "<span class='big warning'>The snapping of [E.master]'s fingers brings you back to being under their command.</b></span>"), 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, "<span class='notice'>You are spurred into resisting from [user]'s words!'</b></span>"), 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, "<span class='warning'>You wake up, forgetting everything that just happened. You must've dozed off..? How embarassing!</b></span>")
addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, C, "<span class='warning'>You wake up, forgetting everything that just happened. You must've dozed off..? How embarassing!</b></span>"), 5)
C.Sleeping(50)
switch(E.phase)
if(1 to 2)
E.phase = -1
to_chat(C, "<span class='big warning'>You have no recollection of being enthralled by [E.master]</b></span>")
to_chat(C, "<span class='big warning'>You have no recollection of being enthralled by [E.master]!</b></span>")
if(3)
E.phase = 0
E.cooldown = 0
if(C.canbearoused)
addtimer(CALLBACK(C, C.to_chat, "<span class='big warning'>You revert to yourself before being enthralled by your [E.enthrallGender], with no memory of what happened.</b></span>"), 5)
if(C.lewd)
addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, C, "<span class='big warning'>You revert to yourself before being enthralled by your [E.enthrallGender], with no memory of what happened.</b></span>"), 5)
else
addtimer(CALLBACK(C, C.to_chat, "<span class='big warning'>You revert to who you were before, with no memory of what happened with [E.master].</b></span>"), 5)
addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, C, "<span class='big warning'>You revert to who you were before, with no memory of what happened with [E.master].</b></span>"), 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, "<span class='notice'>You are drawn towards [user]!</b></span>"), 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, "<span class='warning'>Your Masters command whites out your mind in bliss!</b></span>")
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, "<span class='warning'>Before you can even think about it, you quickly remove your clothes in response to your Master's command.</b></span>")
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, "<span class='warning'>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'")].</b></span>"), 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, "<span class='notice'>You suddenly drop to the ground!'</b></span>"), 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, "<span class='notice'>[(H.lewd?"your [E.enthrallGender]":"[E.master]")] whispers you a new trigger.</span>"), 5)
else
to_chat(user, "<span class='warning'>Your pet looks at you confused, it seems they don't understand that effect!</b></span>")
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, "<span class='warning'>Your master whispers you a new objective.</span>")
addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, H, "<span class='notice'>[(H.lewd?"your [E.enthrallGender]":"[E.master]")] whispers you a new objective.</span>"), 5)
brainwash(H, objective)
E.mental_capacity -= 150
E.mental_capacity -= 250
//else if (E.mental_capacity >= 150)
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>")
@@ -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, "<span class='nicegreen'>You hear the words of your [E.enthrallGender] again!! They're back!!</b></span>"), 5)
addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, H, "<span class='nicegreen'>[(H.lewd?"You hear the words of your [E.enthrallGender] again!! They're back!!":"You recognise the voice of [E.master].")]</b></span>"), 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, "<span class='notice'>You begin to lick your wounds.</b></span>"), 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, "<span class='notice'>You freeze up!</b></span>"), 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, "<span class='warning'>You feel your metabolism speed up!</b></span>")
addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, L, "<span class='notice'>You feel your metabolism speed up!</b></span>"), 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, "<span class='warning'>You feel your metabolism slow down!</b></span>")
addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, L, "<span class='notice'>You feel your metabolism slow down!</b></span>"), 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, "<span class='notice'>You jump to your feel from sheer willpower!</b></span>"), 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
@@ -1,41 +1,55 @@
/datum/mood_event/eigenstate
mood_change = -1
mood_change = -3
description = "<span class='warning'>Where the hell am I? Is this an alternative dimension ?</span>\n"
/datum/mood_event/enthrall
mood_change = 5
description = "<span class='nicegreen'>I am a good pet for Master.</span>\n"
mood_change = 5
/datum/mood_event/enthrall/add_effects(message)
description = "<span class='nicegreen'>[message]</span>\n"
/datum/mood_event/enthrallpraise
mood_change = 12
description = "<span class='nicegreen'>I feel so happy! I'm a good pet who Master loves!</span>\n"
timeout = 600
mood_change = 10
timeout = 600
/datum/mood_event/enthrallpraise/add_effects(message)
description = "<span class='nicegreen'>[message]</span>\n"
/datum/mood_event/enthrallscold
mood_change = -12
description = "<span class='warning'>I've failed Master... What a bad, bad pet!</span>\n"//aaa I'm not kinky enough for this
timeout = 600
mood_change = -10
timeout = 600
/datum/mood_event/enthrallscold/add_effects(message)
description = "<span class='warning'>[message]</span>\n"//aaa I'm not kinky enough for this
/datum/mood_event/enthrallmissing1
mood_change = -5
description = "<span class='warning'>I feel empty when Master's not around..</span>\n"
mood_change = -5
/datum/mood_event/enthrallmissing1/add_effects(message)
description = "<span class='warning'>[message]</span>\n"
/datum/mood_event/enthrallmissing2
mood_change = -10
description = "<span class='warning'>I feel so lost in this complicated world without Master, where are they?!</span>\n"
mood_change = -10
/datum/mood_event/enthrallmissing2/add_effects(message)
description = "<span class='warning'>[message]</span>\n"
/datum/mood_event/enthrallmissing3
mood_change = -15
description = "<span class='warning'>Where are you Master??!</span>\n"
mood_change = -15
/datum/mood_event/enthrallmissing3/add_effects(message)
description = "<span class='warning'>[message]</span>\n"
/datum/mood_event/enthrallmissing4
mood_change = -25
description = "<span class='warning'>I'm all alone, It's so hard to continute without Master...</span>\n"
mood_change = -25
/datum/mood_event/enthrallmissing4/add_effects(message)
description = "<span class='warning'>[message]</span>\n"
/datum/mood_event/InLove
mood_change = 10
description = "<span class='nicegreen'>I'm in love!!</span>\n"
mood_change = 10
description = "<span class='nicegreen'>I'm in love!!</span>\n"
/datum/mood_event/MissingLove
mood_change = -20
description = "<span class='warning'>I can't keep my crush off my mind, I need to see them again!</span>\n"
mood_change = -20
description = "<span class='warning'>I can't keep my crush off my mind, I need to see them again!</span>\n"
@@ -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, "<span class='big warning'><i>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!!)</i></span>")
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, "<span class='hypnophrase'><i>Your conciousness slips, as you sink deeper into trance and servitude.</i></span>")
if(owner.lewd)
to_chat(owner, "<span class='hypnophrase'><i>Your conciousness slips, as you sink deeper into trance and servitude.</i></span>")
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, "<span class='notice'><i>Your mind gives, eagerly obeying and serving [master].</i></span>")
to_chat(owner, "<span class='big nicegreen'><i>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. </i></span>")//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, "<span class='notice'><i>Your mind gives, eagerly obeying and serving [master].</i></span>")
to_chat(owner, "<span class='big nicegreen'><i>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. </i></span>")//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, "<span class='big nicegreen'><i>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. </i></span>")
owner.add_trait(TRAIT_PACIFISM, "MKUltra")
else if (resistanceTally > 150)
enthrallTally *= 0.5
phase -= 1
resistanceTally = 0
to_chat(owner, "<span class='notice'><i>You manage to shake some of the entrancement from your addled mind, however you can still feel yourself drawn towards [master].</i></span>")
to_chat(owner, "<span class='notice'><i>You manage to shake some of the effects from your addled mind, however you can still feel yourself drawn towards [master].</i></span>")
//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, "<span class='notice'><i>The separation from you [enthrallGender] sparks a small flame of resistance in yourself, as your mind slowly starts to return to normal.</i></span>")
to_chat(owner, "<span class='notice'><i>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.</i></span>")
owner.remove_trait(TRAIT_PACIFISM, "MKUltra")
if(prob(2))
if(owner.lewd)
to_chat(owner, "<span class='notice'><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
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, "<span class='big warning'><i>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.</i></span>")
if(10 to 35)//Gives wiggle room, so you're not SUPER needy
if(prob(5))
to_chat(owner, "<span class='notice'><i>You're starting to miss your [enthrallGender].</i></span>")
to_chat(owner, "<span class='notice'><i>You're starting to miss [(owner.lewd?"your [enthrallGender]":"[master]")].</i></span>")
if(prob(5))
owner.adjustBrainLoss(0.5)
to_chat(owner, "<i>Master will surely be back soon</i>") //denial
to_chat(owner, "<i>[(owner.lewd?"[enthrallGender]":"[master]")] will surely be back soon</i>") //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, "<i>They are coming back, right...?</i>")
owner.adjustBrainLoss(1)
if(prob(10))
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>")
if(owner.lewd)
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>")
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, "<span class='warning'>You are overwhelmed with anger at the lack of [enthrallGender]'s presence and suddenly lash out!</span>")
if(owner.lewd)
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") //Why does this not work?
SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "EnthMissing3", /datum/mood_event/enthrallmissing3)
to_chat(owner, "<span class='warning'><i>You need to find your [enthrallGender] at all costs, you can't hold yourself back anymore.</i></span>")
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, "<span class='warning'><i>You need to find your [enthrallGender] at all costs, you can't hold yourself back anymore!</i></span>")
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 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, "<span class='warning'><i>You can hardly find the strength to continue without your [enthrallGender].</i></span>")
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, "<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(5)
owner.stuttering += 20
owner.jitteriness += 20
@@ -388,7 +415,10 @@
if(prob(15))
deltaResist += 5
if(prob(20))
to_chat(owner, "<i><span class='small green'>Maybe you'll be okay without your [enthrallGender].</i></span>")
if(owner.lewd)
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(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, "<span class='notice'><i>Your pet [owner] appears to have finished internalising your last command.</i></span>")
if(master.lewd)
to_chat(master, "<span class='notice'><i>Your pet [owner] appears to have finished internalising your last command.</i></span>")
else
to_chat(master, "<span class='notice'><i>Your thrall [owner] appears to have finished internalising your last command.</i></span>")
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, "<span class='notice'><i>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.</i></span>")
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, "<span class='notice'><i>[saytext]</i></span>")
(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, "<span class='notice'><i>You drop to the ground unsurreptitiously.</i></span>")
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,"<span class='notice'><i>You feel compelled to strip your clothes.</i></span>")
//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, "<span class='notice'><i>You attempt to fight against against [(owner.lewd?"[enthrallGender]":"[master]")]'s influence!'</i></span>")
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, "<span class='hypnophrase'><i>Your mind is too far gone to even entertain the thought of resisting.</i></span>")
if(owner.lewd)
to_chat(owner, "<span class='warning'><i>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.</i></span>")
else
to_chat(owner, "<span class='warning'><i>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.</i></span>")
return
else if (phase == 3 && withdrawal == FALSE)
to_chat(owner, "<span class='hypnophrase'><i>The presence of your [enthrallGender] fully captures the horizon of your mind, removing any thoughts of resistance.</i></span>")
if(owner.lewd)
to_chat(owner, "<span class='hypnophrase'><i>The presence of your [enthrallGender] fully captures the horizon of your mind, removing any thoughts of resistance. Try getting away from them.</i></span>")
else
to_chat(owner, "<span class='hypnophrase'><i>You are unable to resist [master] in your current state. Try getting away from them.</i></span>")
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, "<span class='warning'><i>The order from your [enthrallGender] to give in is conflicting with your attempt to resist, drawing you deeper into trance.</i></span>")
if(owner.lewd)
to_chat(owner, "<span class='warning'><i>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.</i></span>")
else
to_chat(owner, "<span class='warning'><i>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.</i></span>")
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 ..()
*/
@@ -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))
@@ -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.
..()