MK, SDGF, Astrogen, Eigen, BE, furranium, hattmium tweaks and fixes.
This commit is contained in:
@@ -769,10 +769,10 @@
|
||||
var/static/regex/awoo_words = regex("howl|awoo|bark")
|
||||
var/static/regex/nya_words = regex("nya|meow|mewl")
|
||||
var/static/regex/sleep_words = regex("sleep|slumber|rest")
|
||||
var/static/regex/strip_words = regex("strip|derobe|nude")
|
||||
var/static/regex/strip_words = regex("strip|derobe|nude|at east|suit off")
|
||||
var/static/regex/walk_words = regex("slow down|walk")
|
||||
var/static/regex/run_words = regex("run|speed up")
|
||||
var/static/regex/liedown_words = regex("lie down")
|
||||
var/static/regex/liedown_words = regex("lie down")
|
||||
var/static/regex/knockdown_words = regex("drop|fall|trip|knockdown|kneel")
|
||||
//phase 3
|
||||
var/static/regex/statecustom_words = regex("state triggers|state your triggers")
|
||||
@@ -782,7 +782,7 @@
|
||||
var/static/regex/instill_words = regex("feel|entice|overwhel")
|
||||
var/static/regex/recognise_words = regex("recognise me|did you miss me?")
|
||||
var/static/regex/objective_words = regex("new objective|obey this command|unable to resist|compulsed|word from HQ")
|
||||
var/static/regex/heal_words = regex("live|heal|survive|mend|life|pets never die")
|
||||
var/static/regex/heal_words = regex("live|heal|survive|mend|life|pets never die|heroes never die")
|
||||
var/static/regex/stun_words = regex("stop|wait|stand still|hold on|halt")
|
||||
var/static/regex/hallucinate_words = regex("get high|hallucinate|trip balls")
|
||||
var/static/regex/hot_words = regex("heat|hot|hell")
|
||||
@@ -1014,7 +1014,7 @@
|
||||
speaktrigger += "I'm really, really horny, "
|
||||
|
||||
//collar
|
||||
if(istype(H.wear_neck, /obj/item/clothing/neck/petcollar))
|
||||
if(istype(H.wear_neck, /obj/item/clothing/neck/petcollar) && H.client?.prefs.lewdchem)
|
||||
speaktrigger += "I love the collar you gave me, "
|
||||
//End
|
||||
if(H.client?.prefs.lewdchem)
|
||||
@@ -1250,6 +1250,9 @@
|
||||
if (get_dist(user, H) > 1)//Requires user to be next to their pet.
|
||||
to_chat(user, "<span class='warning'>You need to be next to your pet to give them a new trigger!</b></span>")
|
||||
continue
|
||||
if(H.client?.prefs.lewdchem)
|
||||
to_chat(user, "<span class='warning'>[H] seems incapable of being implanted with triggers.</b></span>")
|
||||
continue
|
||||
else
|
||||
user.emote("me", 1, "puts their hands upon [H.name]'s head and looks deep into their eyes, whispering something to them.")
|
||||
user.SetStun(1000)//Hands are handy, so you have to stay still
|
||||
@@ -1288,6 +1291,9 @@
|
||||
if (get_dist(user, H) > 1)//Requires user to be next to their pet.
|
||||
to_chat(user, "<span class='warning'>You need to be next to your pet to give them a new echophrase!</b></span>")
|
||||
continue
|
||||
if(H.client?.prefs.lewdchem)
|
||||
to_chat(user, "<span class='warning'>[H] seems incapable of being implanted with an echoing phrase.</b></span>")
|
||||
continue
|
||||
else
|
||||
user.emote("me", 1, "puts their hands upon [H.name]'s head and looks deep into their eyes, whispering something to them.")
|
||||
user.SetStun(1000)//Hands are handy, so you have to stay still
|
||||
@@ -1344,7 +1350,7 @@
|
||||
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 == 3 && H.client?.prefs.lewdchem)
|
||||
var/instill = stripped_input(user, "Instill an emotion in your [(user.client?.prefs.lewdchem?"Your pet":"listener")].", MAX_MESSAGE_LEN)
|
||||
var/instill = stripped_input(user, "Instill an emotion in [H].", MAX_MESSAGE_LEN)
|
||||
to_chat(H, "<i>[instill]</i>")
|
||||
to_chat(user, "<span class='notice'><i>You sucessfully instill a feeling in [H]</i></span>")
|
||||
log_game("FERMICHEM: [H] has been instilled by [user] with [instill] via MKUltra.")
|
||||
|
||||
@@ -161,9 +161,33 @@
|
||||
owner.remove_movespeed_modifier(DICK_MOVEMENT_SPEED)
|
||||
owner.ResetBloodVol()
|
||||
|
||||
///////////////////////////////////////////////
|
||||
// Astral INSURANCE
|
||||
///////////////////////////////////////////////
|
||||
//Makes sure people can't get trapped in each other's bodies if lag causes a deync between proc calls.
|
||||
|
||||
|
||||
/datum/status_effect/chem/astral_insurance
|
||||
id = "astral_insurance"
|
||||
var/mob/living/original
|
||||
var/datum/mind/originalmind
|
||||
|
||||
/datum/status_effect/chem/astral_insurance/tick(mob/living/carbon/M)
|
||||
. = ..()
|
||||
if(M.has_reagent("astral"))
|
||||
return
|
||||
if(M.mind == originalmind) //If they're home, let the chem deal with deletion.
|
||||
return
|
||||
if(M.mind)
|
||||
var/mob/living/simple_animal/astral/G = new(get_turf(M.loc))
|
||||
M.mind.transfer_to(G)//Just in case someone else is inside of you, it makes them a ghost and should hopefully bring them home at the end.
|
||||
to_chat(G, "<span class='warning'>[M]'s conciousness snaps back to them as their astrogen runs out, kicking your projected mind out!'</b></span>")
|
||||
log_game("FERMICHEM: [M]'s possesser has been booted out into a astral ghost!")
|
||||
originalmind.transfer_to(original)
|
||||
|
||||
|
||||
/*//////////////////////////////////////////
|
||||
Mind control functions
|
||||
Political functions!
|
||||
///////////////////////////////////////////
|
||||
*/
|
||||
|
||||
|
||||
@@ -41,9 +41,16 @@
|
||||
/obj/item/organ/genital/breasts/proc/generate_milk()
|
||||
if(owner.stat == DEAD)
|
||||
return FALSE
|
||||
consider_size()
|
||||
reagents.isolate_reagent(fluid_id)
|
||||
reagents.add_reagent(fluid_id, (fluid_mult * fluid_rate))
|
||||
|
||||
/obj/item/organ/genital/breasts/proc/consider_size()
|
||||
if(!cached_size || cached_size < 1)
|
||||
return
|
||||
fluid_max_volume = cached_size*5
|
||||
fluid_rate = cached_size*0.1
|
||||
|
||||
/obj/item/organ/genital/breasts/update_appearance()
|
||||
var/lowershape = lowertext(shape)
|
||||
switch(lowershape)
|
||||
|
||||
@@ -131,7 +131,7 @@ Creating a chem with a low purity will make you permanently fall in love with so
|
||||
|
||||
/datum/reagent/fermi/enthrall
|
||||
name = "enthrall"
|
||||
id = "enthrall"
|
||||
id = "enthrall_base"
|
||||
description = "A forbidden deep purple mixture that aids the political influence of creator upon the subject. When taken by the creator, it will enhance the power of their words to those affected by it."
|
||||
color = "#660055"
|
||||
taste_description = "politics"
|
||||
@@ -189,8 +189,8 @@ Creating a chem with a low purity will make you permanently fall in love with so
|
||||
..()
|
||||
|
||||
/datum/reagent/fermi/enthrall/politi
|
||||
name = "Politi-aid"
|
||||
id = "politi-aid"
|
||||
name = "Politic-aid"
|
||||
id = "politic-aid"
|
||||
|
||||
/datum/reagent/fermi/enthrall/on_mob_add(mob/living/carbon/M)
|
||||
. = ..()
|
||||
|
||||
@@ -47,10 +47,7 @@ IMPORTANT FACTORS TO CONSIDER WHILE BALANCING
|
||||
metabolization_rate = 0.5 * REAGENTS_METABOLISM
|
||||
taste_description = "a weird chemical fleshy flavour"
|
||||
var/list/candies = list()
|
||||
var/list/result = list()
|
||||
var/list/group = null
|
||||
var/pollStarted = FALSE
|
||||
var/location_created
|
||||
var/startHunger
|
||||
ImpureChem = "SDGFtox"
|
||||
InverseChemVal = 0.5
|
||||
|
||||
@@ -8,7 +8,7 @@ This ghost moves pretty quickly and is mostly invisible, but is still visible fo
|
||||
When it's out of your system, you return back to yourself. It doesn't last long and metabolism of the chem is exponential.
|
||||
Addiction is particularlly brutal, it slowly turns you invisible with flavour text, then kills you at a low enough alpha. (i've also added something to prevent geneticists speeding this up)
|
||||
There's afairly major catch regarding the death though. I'm not gonna say here, go read the code, it explains it and puts my comments on it in context. I know that anyone reading it without understanding it is going to freak out so, this is my attempt to get you to read it and understand it.
|
||||
I'd like to point out from my calculations it'll take about 60-80 minutes to die this way too. Plenty of time to visit me and ask for some pills to quench your addiction.
|
||||
I'd like to point out from my calculations it'll take about 60-80 minutes to die this way too. Plenty of time to visit chem and ask for some pills to quench your addiction.
|
||||
*/
|
||||
|
||||
|
||||
@@ -67,6 +67,12 @@ I'd like to point out from my calculations it'll take about 60-80 minutes to die
|
||||
if(M.mind)
|
||||
M.mind.transfer_to(G)
|
||||
SSblackbox.record_feedback("tally", "fermi_chem", 1, "Astral projections")
|
||||
//INSURANCE
|
||||
C.apply_status_effect(/datum/status_effect/chem/astral_insurance)
|
||||
var/datum/status_effect/chem/astral_insurance/AI = C.has_status_effect(/datum/status_effect/chem/astral_insurance)
|
||||
AI.original = M
|
||||
AI.originalmind = M.mind
|
||||
|
||||
if(overdosed)
|
||||
if(prob(50))
|
||||
to_chat(G, "<span class='warning'>The high conentration of Astrogen in your blood causes you to lapse your concentration for a moment, bringing your projection back to yourself!</b></span>")
|
||||
@@ -98,6 +104,7 @@ I'd like to point out from my calculations it'll take about 60-80 minutes to die
|
||||
if(G)//just in case
|
||||
qdel(G)
|
||||
log_game("FERMICHEM: [M] has astrally returned to their body!")
|
||||
M.remove_status_effect(/datum/status_effect/chem/astral_insurance)
|
||||
..()
|
||||
|
||||
//Okay so, this might seem a bit too good, but my counterargument is that it'll likely take all round to eventually kill you this way, then you have to be revived without a body. It takes approximately 50-80 minutes to die from this.
|
||||
@@ -105,7 +112,7 @@ I'd like to point out from my calculations it'll take about 60-80 minutes to die
|
||||
if(addiction_stage < 2)
|
||||
antiGenetics = 255
|
||||
M.alpha = 255 //Antigenetics is to do with stopping geneticists from turning people invisible to kill them.
|
||||
if(prob(70))
|
||||
if(prob(75))
|
||||
M.alpha--
|
||||
antiGenetics--
|
||||
switch(antiGenetics)
|
||||
|
||||
@@ -104,10 +104,10 @@
|
||||
return ..()
|
||||
var/hatArmor = 0
|
||||
if(!overdosed)
|
||||
hatArmor = (cached_purity/10)
|
||||
hatArmor = 10+((cached_purity/10)*current_cycle)
|
||||
else
|
||||
hatArmor = - (cached_purity/10)
|
||||
if(hatArmor > 90)
|
||||
hatArmor = -10+((cached_purity/10)*current_cycle)
|
||||
if(hatArmor > 100)
|
||||
return ..()
|
||||
var/obj/item/W = M.head
|
||||
W.armor = W.armor.modifyAllRatings(hatArmor)
|
||||
@@ -195,7 +195,7 @@
|
||||
..()
|
||||
|
||||
/datum/reagent/fermi/furranium/on_mob_delete(mob/living/carbon/M)
|
||||
if(purity < 1)//Only permanent if you're a good chemist.
|
||||
if(cached_purity < 0.95)//Only permanent if you're a good chemist.
|
||||
nT = M.getorganslot(ORGAN_SLOT_TONGUE)
|
||||
nT.Remove(M)
|
||||
qdel(nT)
|
||||
@@ -227,7 +227,7 @@
|
||||
GET_COMPONENT_FROM(N, /datum/component/nanites, C)
|
||||
if(isnull(N))
|
||||
return ..()
|
||||
N.nanite_volume = -cached_purity*2//0.5 seems to be the default to me, so it'll neuter them.
|
||||
N.nanite_volume += -cached_purity*2//0.5 seems to be the default to me, so it'll neuter them.
|
||||
..()
|
||||
|
||||
/datum/reagent/fermi/nanite_b_gone/overdose_process(mob/living/carbon/C)
|
||||
@@ -242,7 +242,7 @@
|
||||
to_chat(C, "<span class='warning'>The nanites short circuit within your system!</b></span>")
|
||||
if(isnull(N))
|
||||
return ..()
|
||||
N.nanite_volume = -4*cached_purity
|
||||
N.nanite_volume += -4*cached_purity
|
||||
..()
|
||||
|
||||
/datum/reagent/fermi/nanite_b_gone/reaction_obj(obj/O, reac_volume)
|
||||
|
||||
@@ -254,9 +254,7 @@
|
||||
name = "MKUltra"
|
||||
id = "enthrall"
|
||||
results = list("enthrall" = 0.5)
|
||||
//required_reagents = list("iron" = 1, "iodine" = 1) Test vars
|
||||
//required_reagents = list("cocoa" = 0.1, "astral" = 0.1, "mindbreaker" = 0.1, "psicodine" = 0.1, "happiness" = 0.1)
|
||||
required_reagents = list("cocoa" = 0.1, "bluespace" = 0.1, "mindbreaker" = 0.1, "psicodine" = 0.1, "happiness" = 0.1) //TEMPORARY UNTIL HEADMINS GIVE THE OKAY FOR MK USE.
|
||||
required_reagents = list("cocoa" = 0.1, "neurine" = 0.1, "mindbreaker" = 0.1, "psicodine" = 0.1, "happiness" = 0.1)
|
||||
required_catalysts = list("blood" = 1)
|
||||
mix_message = "the reaction gives off a burgundy plume of smoke!"
|
||||
//FermiChem vars:
|
||||
@@ -297,10 +295,23 @@
|
||||
E.data.["creatorID"] = B.data.["ckey"]
|
||||
E.creatorID = B.data.["ckey"]
|
||||
|
||||
//Politic-aid split
|
||||
/datum/chemical_reaction/fermi/enthrall/politi
|
||||
name = "Politic-aid"
|
||||
id = "politic-aid"
|
||||
required_reagents = list("cocoa" = 0.1, "astral" = 0.1, "mindbreaker" = 0.1, "psicodine" = 0.1, "happiness" = 0.1)
|
||||
results = list("politic-aid" = 0.5)
|
||||
|
||||
//So slimes can play too.
|
||||
/datum/chemical_reaction/fermi/enthrall/slime
|
||||
required_catalysts = list("slimejelly" = 1)
|
||||
|
||||
/datum/chemical_reaction/fermi/enthrall/slime/politi
|
||||
name = "Politic-aid"
|
||||
id = "politic-aid"
|
||||
required_reagents = list("cocoa" = 0.1, "astral" = 0.1, "mindbreaker" = 0.1, "psicodine" = 0.1, "happiness" = 0.1)
|
||||
results = list("politic-aid" = 0.5)
|
||||
|
||||
/datum/chemical_reaction/fermi/enthrall/slime/FermiFinish(datum/reagents/holder, var/atom/my_atom)
|
||||
var/datum/reagent/toxin/slimejelly/B = locate(/datum/reagent/toxin/slimejelly) in my_atom.reagents.reagent_list//The one line change.
|
||||
var/datum/reagent/fermi/enthrall/E = locate(/datum/reagent/fermi/enthrall) in my_atom.reagents.reagent_list
|
||||
|
||||
Reference in New Issue
Block a user