MidFix - compile unsafe.
This commit is contained in:
@@ -854,10 +854,10 @@
|
||||
if (L.canbearoused)
|
||||
//E.resistanceTally -= 1
|
||||
L.adjustArousalLoss(1*power_multiplier)
|
||||
addtimer(CALLBACK(L, .proc.to_chat, "<span class='nicegreen'>[E.enthrallGender] has praised me!!</b></span>"), 5)
|
||||
addtimer(CALLBACK(L, L.to_chat, "<span class='nicegreen'>[E.enthrallGender] has praised me!!</b></span>"), 5)
|
||||
else
|
||||
E.resistanceTally /= 2*power_multiplier
|
||||
addtimer(CALLBACK(L, .proc.to_chat, "<span class='nicegreen'>I've been praised for doing a good job!</b></span>"), 5)
|
||||
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)
|
||||
E.cooldown += 1
|
||||
|
||||
@@ -871,10 +871,10 @@
|
||||
if (L.canbearoused)
|
||||
E.resistanceTally /= 1*power_multiplier
|
||||
L.adjustArousalLoss(-2*power_multiplier)
|
||||
addtimer(CALLBACK(L, .proc.to_chat, "<span class='warning'>I've let [E.enthrallGender] down...</b></span>"), 5)
|
||||
addtimer(CALLBACK(L, L.to_chat, "<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, .proc.to_chat, "<span class='warning'>I've failed [E.master]...</b></span>"), 5)
|
||||
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)
|
||||
E.cooldown += 1
|
||||
|
||||
@@ -900,9 +900,9 @@
|
||||
E.phase = 3
|
||||
E.status = null
|
||||
if(L.canbearoused)
|
||||
addtimer(CALLBACK(L, .proc.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)
|
||||
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)
|
||||
else
|
||||
addtimer(CALLBACK(L, .proc.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(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)
|
||||
//to_chat(L, )
|
||||
|
||||
|
||||
@@ -956,9 +956,9 @@
|
||||
E.phase = 0
|
||||
E.cooldown = 0
|
||||
if(C.canbearoused)
|
||||
addtimer(CALLBACK(C, .proc.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)
|
||||
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)
|
||||
else
|
||||
addtimer(CALLBACK(C, .proc.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(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)
|
||||
|
||||
//ATTRACT
|
||||
else if((findtext(message, attract_words)))
|
||||
@@ -1093,6 +1093,7 @@
|
||||
to_chat(user, "<span class='warning'>You need to be next to your pet to give them a new trigger!</b></span>")
|
||||
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 >= 10)
|
||||
var/trigger = stripped_input(user, "Enter the trigger phrase", MAX_MESSAGE_LEN)
|
||||
var/trigger2 = stripped_input(user, "Enter the effect.", MAX_MESSAGE_LEN)
|
||||
@@ -1118,7 +1119,7 @@
|
||||
to_chat(user, "<span class='warning'>You need to be next to your pet to give them a new objective!</b></span>")
|
||||
return
|
||||
else
|
||||
user.emote(user, "puts their hands upon [H.name]'s head and looks deep into their eyes, whispering something to them.'")
|
||||
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")
|
||||
var/datum/objective/brainwashing/objective = stripped_input(user, "Add an objective to give your pet.", MAX_MESSAGE_LEN)
|
||||
if(!LAZYLEN(objective))
|
||||
@@ -1145,15 +1146,12 @@
|
||||
if(E.phase > 1)
|
||||
if(user.ckey == E.enthrallID && user.real_name == E.master.real_name)
|
||||
E.master = user
|
||||
if(H.canbearoused)
|
||||
addtimer(CALLBACK(H, .proc.to_chat, "<span class='nicegreen'>You hear the words of your [E.enthrallID] again!! They're back!!</b></span>"), 5)
|
||||
else
|
||||
addtimer(CALLBACK(H, .proc.to_chat, "<span class='nicegreen'>You recognise the words of [user], and comply with their orders oncemore.</b></span>"), 5)//It's a bit like a job, It's a living.
|
||||
addtimer(CALLBACK(C, C.to_chat, "<span class='nicegreen'>You hear the words of your [E.enthrallGender] again!! They're back!!</b></span>"), 5)
|
||||
|
||||
//I dunno how to do state objectives without them revealing they're an antag
|
||||
|
||||
//HEAL (maybe make this nap instead?)
|
||||
else if((findtext(message, heal_words)))
|
||||
else if(findtext(message, heal_words))
|
||||
for(var/V in listeners)
|
||||
var/mob/living/L = V
|
||||
var/datum/status_effect/chem/enthrall/E = L.has_status_effect(/datum/status_effect/chem/enthrall)
|
||||
@@ -1174,7 +1172,7 @@
|
||||
E.cooldown += 8
|
||||
|
||||
//HALLUCINATE
|
||||
else if((findtext(message, hallucinate_words)))
|
||||
else if(findtext(message, hallucinate_words))
|
||||
for(var/V in listeners)
|
||||
var/mob/living/carbon/C = V
|
||||
var/datum/status_effect/chem/enthrall/E = C.has_status_effect(/datum/status_effect/chem/enthrall)
|
||||
@@ -1183,7 +1181,7 @@
|
||||
new /datum/hallucination/delusion(C, TRUE, null,150 * power_multiplier,0)
|
||||
|
||||
//HOT
|
||||
else if((findtext(message, hot_words)))
|
||||
else if(findtext(message, hot_words))
|
||||
for(var/V in listeners)
|
||||
var/mob/living/L = V
|
||||
var/datum/status_effect/chem/enthrall/E = L.has_status_effect(/datum/status_effect/chem/enthrall)
|
||||
@@ -1193,7 +1191,7 @@
|
||||
to_chat(L, "<span class='warning'>You feel your metabolism speed up!</b></span>")
|
||||
|
||||
//COLD
|
||||
else if((findtext(message, cold_words)))
|
||||
else if(findtext(message, cold_words))
|
||||
for(var/V in listeners)
|
||||
var/mob/living/L = V
|
||||
var/datum/status_effect/chem/enthrall/E = L.has_status_effect(/datum/status_effect/chem/enthrall)
|
||||
@@ -1204,7 +1202,7 @@
|
||||
|
||||
|
||||
//GET UP
|
||||
else if((findtext(message, getup_words)))
|
||||
else if(findtext(message, getup_words))
|
||||
for(var/V in listeners)
|
||||
var/mob/living/L = V
|
||||
var/datum/status_effect/chem/enthrall/E = L.has_status_effect(/datum/status_effect/chem/enthrall)
|
||||
@@ -1218,7 +1216,7 @@
|
||||
E.cooldown += 10 //This could be really strong
|
||||
|
||||
//PACIFY
|
||||
else if((findtext(message, pacify_words)))
|
||||
else if(findtext(message, pacify_words))
|
||||
for(var/V in listeners)
|
||||
var/mob/living/L = V
|
||||
var/datum/status_effect/chem/enthrall/E = L.has_status_effect(/datum/status_effect/chem/enthrall)
|
||||
@@ -1228,7 +1226,7 @@
|
||||
E.cooldown += 10
|
||||
|
||||
//CHARGE
|
||||
else if((findtext(message, charge_words)))
|
||||
else if(findtext(message, charge_words))
|
||||
for(var/V in listeners)
|
||||
var/mob/living/L = V
|
||||
var/datum/status_effect/chem/enthrall/E = L.has_status_effect(/datum/status_effect/chem/enthrall)
|
||||
|
||||
@@ -158,6 +158,17 @@
|
||||
///////////////////////////////////////////
|
||||
*/
|
||||
|
||||
//Preamble
|
||||
/datum/mob/living/carbon/
|
||||
var/lewd = TRUE //Maybe false?
|
||||
|
||||
/mob/living/carbon/verb/toggle_lewd()
|
||||
set category = "IC"
|
||||
set name = "toggle lewdchem"
|
||||
set desc = "Allows you to toggle if you'd like lewd flavour messages."
|
||||
lewd = !(lewd)
|
||||
to_chat(usr, "You [(lewd?"will":"no longer")] receive lewdchem messages.")
|
||||
|
||||
/datum/status_effect/chem/enthrall
|
||||
id = "enthrall"
|
||||
alert_type = null
|
||||
@@ -190,6 +201,8 @@
|
||||
/datum/status_effect/chem/enthrall/on_apply()
|
||||
var/mob/living/carbon/M = owner
|
||||
var/datum/reagent/fermi/enthrall/E = locate(/datum/reagent/fermi/enthrall) in M.reagents.reagent_list
|
||||
if(!E.creatorID)
|
||||
message_admins("WARNING: FermiChem No master found in thrall, this makes me max sad.")
|
||||
enthrallID = E.creatorID
|
||||
enthrallGender = E.creatorGender
|
||||
master = get_mob_by_key(enthrallID)
|
||||
@@ -259,7 +272,7 @@
|
||||
to_chat(owner, "<span class='big redtext'><i>You're now free of [master]'s influence, and fully independant oncemore.'</i></span>")
|
||||
owner.remove_status_effect(src) //If resisted in phase 1, effect is removed.
|
||||
if(prob(10))
|
||||
if(owner.canbearoused)
|
||||
if(owner.lewd)
|
||||
to_chat(owner, "<span class='small hypnophrase'><i>[pick("It feels so good to listen to [master].", "You can't keep your eyes off [master].", "[master]'s voice is making you feel so sleepy.", "You feel so comfortable with [master]", "[master] is so dominant, it feels right to obey them.")].</i></span>")
|
||||
if (2) //partially enthralled
|
||||
if (enthrallTally > 150)
|
||||
@@ -276,16 +289,16 @@
|
||||
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>")
|
||||
//owner.remove_status_effect(src) //If resisted in phase 1, effect is removed. Not at the moment,
|
||||
if(prob(10))
|
||||
if(owner.canbearoused)
|
||||
if(owner.lewd)
|
||||
to_chat(owner, "<span class='hypnophrase'><i>[pick("It feels so good to listen to [enthrallGender].", "You can't keep your eyes off [enthrallGender].", "[enthrallGender]'s voice is making you feel so sleepy.", "You feel so comfortable with [enthrallGender]", "[enthrallGender] is so dominant, it feels right to obey them.")].</i></span>")
|
||||
if (3)//fully entranced
|
||||
if (resistanceTally >= 200 && withdrawalTick >= 150)
|
||||
if ((resistanceTally >= 200 && withdrawalTick >= 150) || (M.has_trait(TRAIT_MINDSHIELD) && resistanceTally >= 100))
|
||||
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>")
|
||||
if(prob(2))
|
||||
if(owner.canbearoused)
|
||||
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"))
|
||||
@@ -446,7 +459,7 @@
|
||||
SEND_SIGNAL(M, COMSIG_CLEAR_MOOD_EVENT, "EnthMissing1")
|
||||
SEND_SIGNAL(M, COMSIG_CLEAR_MOOD_EVENT, "EnthMissing2")
|
||||
SEND_SIGNAL(M, COMSIG_CLEAR_MOOD_EVENT, "EnthMissing3")
|
||||
SEND_SIGNAL(M, COMSIG_CLEAR_MOOD_EVENT, "EnthMissing3")
|
||||
SEND_SIGNAL(M, COMSIG_CLEAR_MOOD_EVENT, "EnthMissing4")
|
||||
qdel(redirect_component.resolve())
|
||||
redirect_component = null
|
||||
//qdel(redirect_component2.resolve())
|
||||
|
||||
@@ -84,7 +84,7 @@
|
||||
prev_size = size
|
||||
return
|
||||
//message_admins("Breast size at start: [size], [cached_size], [owner]")
|
||||
if(cached_size < 0)//I don't actually know what round() does to negative numbers, so to be safe!!
|
||||
if(cached_size < 0)//I don't actually know what round() does to negative numbers, so to be safe!!(Why does this runtime??)
|
||||
to_chat(owner, "<span class='warning'>You feel your breasts shrinking away from your body as your chest flattens out.</b></span>")
|
||||
src.Remove(owner)
|
||||
switch(round(cached_size))
|
||||
|
||||
@@ -57,10 +57,10 @@
|
||||
return
|
||||
|
||||
//When merging two fermichems
|
||||
/datum/reagent/fermi/on_merge(data, amount, mob/living/carbon/M, purity)
|
||||
/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(!M)
|
||||
if(!istype(M, datum/mob/living/carbon/M))
|
||||
return
|
||||
message_admins("purity of chem is [purity]")
|
||||
if (purity < 0)
|
||||
@@ -187,6 +187,8 @@
|
||||
M.Stun(40)
|
||||
|
||||
var/items = M.get_contents()
|
||||
if(!LAZYLEN(items))
|
||||
return ..()//This'll work, right?
|
||||
var/obj/item/I = pick(items)
|
||||
M.dropItemToGround(I, TRUE)
|
||||
do_sparks(5,FALSE,I)
|
||||
@@ -1158,9 +1160,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
|
||||
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.
|
||||
@@ -1476,7 +1480,7 @@ And as stated earlier, this chem is hard to make, and is punishing on failure. Y
|
||||
if(LAZYLEN(holder.reagent_list) == 1)
|
||||
return
|
||||
else
|
||||
holder.remove_reagent(src.id, 1000)//Avoiding recurrsion
|
||||
holder.remove_reagent("fermiTest", 1000)//Avoiding recurrsion
|
||||
message_admins("FermiTest addition!")
|
||||
var/location = get_turf(holder.my_atom)
|
||||
if(purity < 0.34 || purity == 1)
|
||||
@@ -1499,7 +1503,7 @@ And as stated earlier, this chem is hard to make, and is punishing on failure. Y
|
||||
to_chat(M, "<span class='danger'>The solution reacts dramatically, with a meow!</span>")
|
||||
playsound(get_turf(M), 'modular_citadel/sound/voice/merowr.ogg', 50, 1, -1)
|
||||
holder.clear_reagents()
|
||||
|
||||
/*
|
||||
/datum/reagent/fermi/fermiTest/on_merge()
|
||||
..()
|
||||
message_admins("FermiTest addition!")
|
||||
@@ -1524,3 +1528,4 @@ And as stated earlier, this chem is hard to make, and is punishing on failure. Y
|
||||
to_chat(M, "<span class='danger'>The solution reacts dramatically, with a meow!</span>")
|
||||
playsound(get_turf(M), 'modular_citadel/sound/voice/merowr.ogg', 50, 1, -1)
|
||||
holder.clear_reagents()
|
||||
*/
|
||||
|
||||
@@ -247,6 +247,11 @@
|
||||
message_admins("On finish for enthral proc'd")
|
||||
var/datum/reagent/blood/B = locate(/datum/reagent/blood) in my_atom.reagents.reagent_list
|
||||
var/datum/reagent/fermi/enthrall/E = locate(/datum/reagent/fermi/enthrall) in my_atom.reagents.reagent_list
|
||||
if(!B.data)
|
||||
var/list/seen = viewers(5, get_turf(holder.my_atom))
|
||||
for(var/mob/M in seen)
|
||||
to_chat(M, "<span class='warning'>The reaction splutters and fails to react.</span>")
|
||||
E.purity = 0
|
||||
if (B.data.["gender"] == "female")
|
||||
E.data.["creatorGender"] = "Mistress"
|
||||
E.creatorGender = "Mistress"
|
||||
|
||||
Reference in New Issue
Block a user