Ramping up to logging and a few more fixes.
This commit is contained in:
@@ -16,6 +16,7 @@
|
|||||||
#define INVESTIGATE_EXONET "exonet"
|
#define INVESTIGATE_EXONET "exonet"
|
||||||
#define INVESTIGATE_NANITES "nanites"
|
#define INVESTIGATE_NANITES "nanites"
|
||||||
#define INVESTIGATE_CIRCUIT "circuit"
|
#define INVESTIGATE_CIRCUIT "circuit"
|
||||||
|
#define INVESTIGATE_FERMICHEM "fermichem"
|
||||||
|
|
||||||
// Logging types for log_message()
|
// Logging types for log_message()
|
||||||
#define LOG_ATTACK (1 << 0)
|
#define LOG_ATTACK (1 << 0)
|
||||||
|
|||||||
@@ -35,7 +35,7 @@
|
|||||||
//FermiChem - How to check pH of a beaker without a meter/pH paper.
|
//FermiChem - How to check pH of a beaker without a meter/pH paper.
|
||||||
//Basically checks the pH of the holder and burns your poor tongue if it's too acidic!
|
//Basically checks the pH of the holder and burns your poor tongue if it's too acidic!
|
||||||
//TRAIT_AGEUSIA players can't taste, unless it's burning them.
|
//TRAIT_AGEUSIA players can't taste, unless it's burning them.
|
||||||
//10 sips of a strongly acidic substance will burn your tongue.
|
//taking sips of a strongly acidic/alkaline substance will burn your tongue.
|
||||||
/mob/living/carbon/taste(datum/reagents/from)
|
/mob/living/carbon/taste(datum/reagents/from)
|
||||||
var/obj/item/organ/tongue/T = getorganslot("tongue")
|
var/obj/item/organ/tongue/T = getorganslot("tongue")
|
||||||
if (!T)
|
if (!T)
|
||||||
|
|||||||
@@ -1230,7 +1230,7 @@
|
|||||||
if(message_admins)
|
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].")
|
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].")
|
log_game("[key_name(user)] has said '[log_message]' with a Velvet Voice, affecting [english_list(listeners)], with a power multiplier of [power_multiplier].")
|
||||||
investigate_log("[key_name(user)] has said '[log_message]' with a Velvet Voice, affecting [english_list(listeners)], with a power multiplier of [power_multiplier].")
|
investigate_log("[key_name(user)] has said '[log_message]' with a Velvet Voice, affecting [english_list(listeners)], with a power multiplier of [power_multiplier].", INVESTIGATE_FERMICHEM)
|
||||||
//SSblackbox.record_feedback("tally", "Velvet_voice", 1, log_message) If this is on, it fills the thing up and OOFs the server
|
//SSblackbox.record_feedback("tally", "Velvet_voice", 1, log_message) If this is on, it fills the thing up and OOFs the server
|
||||||
|
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
alert_type = null
|
alert_type = null
|
||||||
|
|
||||||
/datum/status_effect/chem/SGDF/on_apply()
|
/datum/status_effect/chem/SGDF/on_apply()
|
||||||
investigate_log("SGDF status appied on [owner], ID: [owner.id]")
|
investigate_log("SGDF status appied on [owner], ID: [owner.key]", INVESTIGATE_FERMICHEM)
|
||||||
var/typepath = owner.type
|
var/typepath = owner.type
|
||||||
fermi_Clone = new typepath(owner.loc)
|
fermi_Clone = new typepath(owner.loc)
|
||||||
var/mob/living/carbon/M = owner
|
var/mob/living/carbon/M = owner
|
||||||
@@ -20,7 +20,7 @@
|
|||||||
if(owner.stat == DEAD)
|
if(owner.stat == DEAD)
|
||||||
if((fermi_Clone && fermi_Clone.stat != DEAD) || (fermi_Clone == null))
|
if((fermi_Clone && fermi_Clone.stat != DEAD) || (fermi_Clone == null))
|
||||||
if(owner.mind)
|
if(owner.mind)
|
||||||
investigate_log("SGDF mind shift applied. [owner] is now playing as their clone and should not have memories after their clone split (look up SGDF status applied). ID: [owner.id]")
|
investigate_log("SGDF mind shift applied. [owner] is now playing as their clone and should not have memories after their clone split (look up SGDF status applied). ID: [owner.key]", INVESTIGATE_FERMICHEM)
|
||||||
owner.mind.transfer_to(fermi_Clone)
|
owner.mind.transfer_to(fermi_Clone)
|
||||||
to_chat(owner, "<span class='warning'>Lucidity shoots to your previously blank mind as your mind suddenly finishes the cloning process. You marvel for a moment at yourself, as your mind subconciously recollects all your memories up until the point when you cloned yourself. curiously, you find that you memories are blank after you ingested the sythetic serum, leaving you to wonder where the other you is.</span>")
|
to_chat(owner, "<span class='warning'>Lucidity shoots to your previously blank mind as your mind suddenly finishes the cloning process. You marvel for a moment at yourself, as your mind subconciously recollects all your memories up until the point when you cloned yourself. curiously, you find that you memories are blank after you ingested the sythetic serum, leaving you to wonder where the other you is.</span>")
|
||||||
to_chat(fermi_Clone, "<span class='warning'>Lucidity shoots to your previously blank mind as your mind suddenly finishes the cloning process. You marvel for a moment at yourself, as your mind subconciously recollects all your memories up until the point when you cloned yourself. curiously, you find that you memories are blank after you ingested the sythetic serum, leaving you to wonder where the other you is.</span>")
|
to_chat(fermi_Clone, "<span class='warning'>Lucidity shoots to your previously blank mind as your mind suddenly finishes the cloning process. You marvel for a moment at yourself, as your mind subconciously recollects all your memories up until the point when you cloned yourself. curiously, you find that you memories are blank after you ingested the sythetic serum, leaving you to wonder where the other you is.</span>")
|
||||||
@@ -37,7 +37,7 @@
|
|||||||
var/cachedmoveCalc = 1
|
var/cachedmoveCalc = 1
|
||||||
|
|
||||||
/datum/status_effect/chem/breast_enlarger/on_apply(mob/living/carbon/human/H)//Removes clothes, they're too small to contain you. You belong to space now.
|
/datum/status_effect/chem/breast_enlarger/on_apply(mob/living/carbon/human/H)//Removes clothes, they're too small to contain you. You belong to space now.
|
||||||
investigate_log("[owner]'s breasts has reached comical sizes. ID: [owner.id]")
|
investigate_log("[owner]'s breasts has reached comical sizes. ID: [owner.key]", INVESTIGATE_FERMICHEM)
|
||||||
var/mob/living/carbon/human/o = owner
|
var/mob/living/carbon/human/o = owner
|
||||||
var/items = o.get_contents()
|
var/items = o.get_contents()
|
||||||
for(var/obj/item/W in items)
|
for(var/obj/item/W in items)
|
||||||
@@ -92,7 +92,7 @@
|
|||||||
..()
|
..()
|
||||||
|
|
||||||
/datum/status_effect/chem/breast_enlarger/on_remove(mob/living/carbon/M)
|
/datum/status_effect/chem/breast_enlarger/on_remove(mob/living/carbon/M)
|
||||||
investigate_log("[owner]'s breasts has reduced to an acceptable size. ID: [owner.id]")
|
investigate_log("[owner]'s breasts has reduced to an acceptable size. ID: [owner.key]", INVESTIGATE_FERMICHEM)
|
||||||
owner.remove_movespeed_modifier("megamilk")
|
owner.remove_movespeed_modifier("megamilk")
|
||||||
sizeMoveMod(1)
|
sizeMoveMod(1)
|
||||||
|
|
||||||
@@ -112,7 +112,7 @@
|
|||||||
var/moveCalc
|
var/moveCalc
|
||||||
|
|
||||||
/datum/status_effect/chem/penis_enlarger/on_apply(mob/living/carbon/human/H)//Removes clothes, they're too small to contain you. You belong to space now.
|
/datum/status_effect/chem/penis_enlarger/on_apply(mob/living/carbon/human/H)//Removes clothes, they're too small to contain you. You belong to space now.
|
||||||
investigate_log("[owner]'s dick has reached comical sizes. ID: [owner.id]")
|
investigate_log("[owner]'s dick has reached comical sizes. ID: [owner.key]", INVESTIGATE_FERMICHEM)
|
||||||
var/mob/living/carbon/human/o = owner
|
var/mob/living/carbon/human/o = owner
|
||||||
var/items = o.get_contents()
|
var/items = o.get_contents()
|
||||||
if(o.w_uniform || o.wear_suit)
|
if(o.w_uniform || o.wear_suit)
|
||||||
@@ -155,7 +155,7 @@
|
|||||||
..()
|
..()
|
||||||
|
|
||||||
/datum/status_effect/chem/penis_enlarger/on_remove(mob/living/carbon/human/o)
|
/datum/status_effect/chem/penis_enlarger/on_remove(mob/living/carbon/human/o)
|
||||||
investigate_log("[owner]'s dick has reduced to an acceptable size. ID: [owner.id]")
|
investigate_log("[owner]'s dick has reduced to an acceptable size. ID: [owner.key]", INVESTIGATE_FERMICHEM)
|
||||||
owner.remove_movespeed_modifier("hugedick")
|
owner.remove_movespeed_modifier("hugedick")
|
||||||
owner.ResetBloodVol()
|
owner.ResetBloodVol()
|
||||||
|
|
||||||
@@ -231,7 +231,7 @@
|
|||||||
var/message = "[(owner.lewd?"I am a good pet for [enthrallGender].":"[master] is a really inspirational person!")]"
|
var/message = "[(owner.lewd?"I am a good pet for [enthrallGender].":"[master] is a really inspirational person!")]"
|
||||||
SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "enthrall", /datum/mood_event/enthrall, message)
|
SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "enthrall", /datum/mood_event/enthrall, message)
|
||||||
to_chat(owner, "<span class='[(owner.lewd?"big love":"big warning")]'><b>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 resist their effects by repeatedly resisting as much as you can!</b></span>")
|
to_chat(owner, "<span class='[(owner.lewd?"big love":"big warning")]'><b>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 resist their effects by repeatedly resisting as much as you can!</b></span>")
|
||||||
investigate_log("MKULTRA: Status applied on [owner] ckey: [owner.id] with a master of [master] ckey: [enthrallID].")
|
investigate_log("MKULTRA: Status applied on [owner] ckey: [owner.key] with a master of [master] ckey: [enthrallID].", INVESTIGATE_FERMICHEM)
|
||||||
return ..()
|
return ..()
|
||||||
|
|
||||||
/datum/status_effect/chem/enthrall/tick()
|
/datum/status_effect/chem/enthrall/tick()
|
||||||
@@ -265,7 +265,7 @@
|
|||||||
if(-1)//fully removed
|
if(-1)//fully removed
|
||||||
SEND_SIGNAL(M, COMSIG_CLEAR_MOOD_EVENT, "enthrall")
|
SEND_SIGNAL(M, COMSIG_CLEAR_MOOD_EVENT, "enthrall")
|
||||||
owner.remove_status_effect(src)
|
owner.remove_status_effect(src)
|
||||||
investigate_log("MKULTRA: Status REMOVED from [owner] ckey: [owner.id] with a master of [master] ckey: [enthrallID].")
|
investigate_log("MKULTRA: Status REMOVED from [owner] ckey: [owner.key] with a master of [master] ckey: [enthrallID].", INVESTIGATE_FERMICHEM)
|
||||||
if(0)// sleeper agent
|
if(0)// sleeper agent
|
||||||
if (cooldown > 0)
|
if (cooldown > 0)
|
||||||
cooldown -= 1
|
cooldown -= 1
|
||||||
@@ -301,7 +301,7 @@
|
|||||||
else
|
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>")
|
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") //IMPORTANT
|
owner.add_trait(TRAIT_PACIFISM, "MKUltra") //IMPORTANT
|
||||||
investigate_log("MKULTRA: Status on [owner] ckey: [owner.id] has been fully entrhalled (state 3) with a master of [master] ckey: [enthrallID].")
|
investigate_log("MKULTRA: Status on [owner] ckey: [owner.key] has been fully entrhalled (state 3) with a master of [master] ckey: [enthrallID].", INVESTIGATE_FERMICHEM)
|
||||||
else if (resistanceTally > 200)
|
else if (resistanceTally > 200)
|
||||||
enthrallTally *= 0.5
|
enthrallTally *= 0.5
|
||||||
phase -= 1
|
phase -= 1
|
||||||
@@ -540,7 +540,7 @@
|
|||||||
var/cached_trigger = lowertext(trigger)
|
var/cached_trigger = lowertext(trigger)
|
||||||
if (findtext(raw_message, cached_trigger))//if trigger1 is the message
|
if (findtext(raw_message, cached_trigger))//if trigger1 is the message
|
||||||
cTriggered = TRUE
|
cTriggered = TRUE
|
||||||
investigate_log("MKULTRA: [owner] ckey: [owner.id] has been triggered with [cached_trigger] from [speaker] saying: \"[message]\". (their master being [master] ckey: [enthrallID].)")
|
investigate_log("MKULTRA: [owner] ckey: [owner.key] has been triggered with [cached_trigger] from [speaker] saying: \"[message]\". (their master being [master] ckey: [enthrallID].)", INVESTIGATE_FERMICHEM)
|
||||||
|
|
||||||
//Speak (Forces player to talk) works
|
//Speak (Forces player to talk) works
|
||||||
if (lowertext(customTriggers[trigger][1]) == "speak")//trigger2
|
if (lowertext(customTriggers[trigger][1]) == "speak")//trigger2
|
||||||
@@ -549,14 +549,14 @@
|
|||||||
saytext += " You find yourself fully believing in the validity of what you just said and don't think to question it."
|
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>")
|
to_chat(C, "<span class='notice'><i>[saytext]</i></span>")
|
||||||
(C.say(customTriggers[trigger][2]))//trigger3
|
(C.say(customTriggers[trigger][2]))//trigger3
|
||||||
investigate_log("MKULTRA: [owner] ckey: [owner.id] has been forced to say: \"[customTriggers[trigger][2]]\" from previous trigger.")
|
investigate_log("MKULTRA: [owner] ckey: [owner.key] has been forced to say: \"[customTriggers[trigger][2]]\" from previous trigger.", INVESTIGATE_FERMICHEM)
|
||||||
|
|
||||||
|
|
||||||
//Echo (repeats message!) works
|
//Echo (repeats message!)
|
||||||
else if (lowertext(customTriggers[trigger][1]) == "echo")//trigger2
|
else if (lowertext(customTriggers[trigger][1]) == "echo")//trigger2
|
||||||
(to_chat(owner, "<span class='hypnophrase'><i>[customTriggers[trigger][2]]</i></span>"))//trigger3
|
(to_chat(owner, "<span class='hypnophrase'><i>[customTriggers[trigger][2]]</i></span>"))//trigger3
|
||||||
|
|
||||||
//Shocking truth! works
|
//Shocking truth!
|
||||||
else if (lowertext(customTriggers[trigger]) == "shock")
|
else if (lowertext(customTriggers[trigger]) == "shock")
|
||||||
if (C.canbearoused)
|
if (C.canbearoused)
|
||||||
C.electrocute_act(10, src, 1, FALSE, FALSE, FALSE, TRUE)//I've no idea how strong this is
|
C.electrocute_act(10, src, 1, FALSE, FALSE, FALSE, TRUE)//I've no idea how strong this is
|
||||||
@@ -595,7 +595,7 @@
|
|||||||
var/mob/living/carbon/human/o = owner
|
var/mob/living/carbon/human/o = owner
|
||||||
o.apply_status_effect(/datum/status_effect/trance, 200, TRUE)
|
o.apply_status_effect(/datum/status_effect/trance, 200, TRUE)
|
||||||
tranceTime = 50
|
tranceTime = 50
|
||||||
investigate_log("MKULTRA: [owner] ckey: [owner.id] has been tranced from previous trigger.")
|
investigate_log("MKULTRA: [owner] ckey: [owner.key] has been tranced from previous trigger.", INVESTIGATE_FERMICHEM)
|
||||||
|
|
||||||
|
|
||||||
cTriggered = FALSE
|
cTriggered = FALSE
|
||||||
|
|||||||
@@ -1235,31 +1235,30 @@ Creating a chem with a low purity will make you permanently fall in love with so
|
|||||||
/datum/reagent/fermi/hatmium //for hatterhat
|
/datum/reagent/fermi/hatmium //for hatterhat
|
||||||
name = "Hat growth serium"
|
name = "Hat growth serium"
|
||||||
id = "hatmium"
|
id = "hatmium"
|
||||||
description = "A strange substance that draws in a hat from the hat dimention, "
|
description = "A strange substance that draws in a hat from the hat dimention."
|
||||||
color = "#A080H4" // rgb: , 0, 255
|
color = "#A080H4" // rgb: , 0, 255
|
||||||
taste_description = "like jerky, whiskey and an off aftertaste of a crypt"
|
taste_description = "like jerky, whiskey and an off aftertaste of a crypt."
|
||||||
overdose_threshold = 25
|
overdose_threshold = 25
|
||||||
var/obj/item/clothing/head/hattip/hat
|
|
||||||
DoNotSplit = TRUE
|
DoNotSplit = TRUE
|
||||||
pH = 4
|
pH = 4
|
||||||
|
|
||||||
|
|
||||||
/datum/reagent/fermi/hatmium/on_mob_add(mob/living/carbon/human/M)
|
/datum/reagent/fermi/hatmium/on_mob_add(mob/living/carbon/human/M)
|
||||||
. = ..()
|
. = ..()
|
||||||
var/items = M.get_contents()
|
if(M.head)
|
||||||
for(var/obj/item/W in items)
|
var/obj/item/W = M.head
|
||||||
if(W == M.head)
|
if(W == /obj/item/clothing/head/hattip)
|
||||||
if(W == /obj/item/clothing/head/hattip)
|
qdel(W)
|
||||||
qdel(W)
|
else
|
||||||
else
|
M.dropItemToGround(W, TRUE)
|
||||||
M.dropItemToGround(W, TRUE)
|
|
||||||
hat = new /obj/item/clothing/head/hattip()
|
hat = new /obj/item/clothing/head/hattip()
|
||||||
M.equip_to_slot(hat, SLOT_HEAD, 1, 1)
|
M.equip_to_slot(hat, SLOT_HEAD, 1, 1)
|
||||||
|
|
||||||
|
|
||||||
/datum/reagent/fermi/hatmium/on_mob_life(mob/living/carbon/human/M)
|
/datum/reagent/fermi/hatmium/on_mob_life(mob/living/carbon/human/M)
|
||||||
//hat.armor = list("melee" = (1+(current_cycle/20)), "bullet" = (1+(current_cycle/20)), "laser" = (1+(current_cycle/20)), "energy" = (1+(current_cycle/20)), "bomb" = (1+(current_cycle/20)), "bio" = (1+(current_cycle/20)), "rad" = (1+(current_cycle/20)), "fire" = (1+(current_cycle/20)), "acid" = (1+(current_cycle/20)))
|
M.head
|
||||||
var/hatArmor = (1+(current_cycle/30))*purity
|
var/hatArmor = (1+(current_cycle/30))*purity
|
||||||
|
for(var/datum/armor in )
|
||||||
if(!overdosed)
|
if(!overdosed)
|
||||||
hat.armor = list("melee" = hatArmor, "bullet" = hatArmor, "laser" = hatArmor, "energy" = hatArmor, "bomb" = hatArmor, "bio" = hatArmor, "rad" = hatArmor, "fire" = hatArmor)
|
hat.armor = list("melee" = hatArmor, "bullet" = hatArmor, "laser" = hatArmor, "energy" = hatArmor, "bomb" = hatArmor, "bio" = hatArmor, "rad" = hatArmor, "fire" = hatArmor)
|
||||||
else
|
else
|
||||||
@@ -1341,19 +1340,19 @@ Creating a chem with a low purity will make you permanently fall in love with so
|
|||||||
//Nanite removal
|
//Nanite removal
|
||||||
//Writen by Trilby!! Embellsished a little by me.
|
//Writen by Trilby!! Embellsished a little by me.
|
||||||
|
|
||||||
/datum/reagent/fermi/naninte_b_gone
|
/datum/reagent/fermi/nanite_b_gone
|
||||||
name = "Naninte bain"
|
name = "Naninte bain"
|
||||||
id = "naninte_b_gone"
|
id = "nanite_b_gone"
|
||||||
description = "A rather simple toxin to small nano machines that will kill them off at a rapid rate well in system."
|
description = "A rather simple toxin to small nano machines that will kill them off at a rapid rate well in system."
|
||||||
color = "#5a7267" // rgb: 90, 114, 103
|
color = "#5a7267" // rgb: 90, 114, 103
|
||||||
overdose_threshold = 15
|
overdose_threshold = 15
|
||||||
ImpureChem = "naninte_b_goneTox" //If you make an inpure chem, it stalls growth
|
ImpureChem = "nanite_b_goneTox" //If you make an inpure chem, it stalls growth
|
||||||
InverseChemVal = 0.25
|
InverseChemVal = 0.25
|
||||||
InverseChem = "naninte_b_goneTox" //At really impure vols, it just becomes 100% inverse
|
InverseChem = "nanite_b_goneTox" //At really impure vols, it just becomes 100% inverse
|
||||||
taste_description = "what can only be described as licking a battery."
|
taste_description = "what can only be described as licking a battery."
|
||||||
pH = 9
|
pH = 9
|
||||||
|
|
||||||
/datum/reagent/fermi/naninte_b_gone/on_mob_life(mob/living/carbon/C)
|
/datum/reagent/fermi/nanite_b_gone/on_mob_life(mob/living/carbon/C)
|
||||||
//var/component/nanites/N = M.GetComponent(/datum/component/nanites)
|
//var/component/nanites/N = M.GetComponent(/datum/component/nanites)
|
||||||
GET_COMPONENT_FROM(N, /datum/component/nanites, C)
|
GET_COMPONENT_FROM(N, /datum/component/nanites, C)
|
||||||
if(isnull(N))
|
if(isnull(N))
|
||||||
@@ -1361,7 +1360,7 @@ Creating a chem with a low purity will make you permanently fall in love with so
|
|||||||
N.nanite_volume = -0.55//0.5 seems to be the default to me, so it'll neuter them.
|
N.nanite_volume = -0.55//0.5 seems to be the default to me, so it'll neuter them.
|
||||||
..()
|
..()
|
||||||
|
|
||||||
/datum/reagent/fermi/naninte_b_gone/overdose_process(mob/living/carbon/C)
|
/datum/reagent/fermi/nanite_b_gone/overdose_process(mob/living/carbon/C)
|
||||||
//var/component/nanites/N = M.GetComponent(/datum/component/nanites)
|
//var/component/nanites/N = M.GetComponent(/datum/component/nanites)
|
||||||
GET_COMPONENT_FROM(N, /datum/component/nanites, C)
|
GET_COMPONENT_FROM(N, /datum/component/nanites, C)
|
||||||
if(prob(5))
|
if(prob(5))
|
||||||
@@ -1371,21 +1370,21 @@ Creating a chem with a low purity will make you permanently fall in love with so
|
|||||||
//empulse((get_turf(C)), 3, 2)//So the nanites randomize
|
//empulse((get_turf(C)), 3, 2)//So the nanites randomize
|
||||||
var/atom/T = C
|
var/atom/T = C
|
||||||
T.emp_act(EMP_HEAVY)
|
T.emp_act(EMP_HEAVY)
|
||||||
to_chat(C, "<span class='warning'>The nanintes short circuit within your system!</b></span>")
|
to_chat(C, "<span class='warning'>The nanites short circuit within your system!</b></span>")
|
||||||
if(isnull(N))
|
if(isnull(N))
|
||||||
return ..()
|
return ..()
|
||||||
N.nanite_volume = -2//12.5 seems crazy high?
|
N.nanite_volume = -2//12.5 seems crazy high?
|
||||||
..()
|
..()
|
||||||
|
|
||||||
//Unobtainable, used if SDGF is impure but not too impure
|
//Unobtainable, used if SDGF is impure but not too impure
|
||||||
/datum/reagent/fermi/naninte_b_goneTox
|
/datum/reagent/fermi/nanite_b_goneTox
|
||||||
name = "Naninte bain"
|
name = "Naninte bain"
|
||||||
id = "naninte_b_goneTox"
|
id = "nanite_b_goneTox"
|
||||||
description = "Poorly made, and shocks you!"
|
description = "Poorly made, and shocks you!"
|
||||||
metabolization_rate = 1
|
metabolization_rate = 1
|
||||||
|
|
||||||
//Increases shock events.
|
//Increases shock events.
|
||||||
/datum/reagent/fermi/naninte_b_goneTox/on_mob_life(mob/living/carbon/C)//Damages the taker if their purity is low. Extended use of impure chemicals will make the original die. (thus can't be spammed unless you've very good)
|
/datum/reagent/fermi/nanite_b_goneTox/on_mob_life(mob/living/carbon/C)//Damages the taker if their purity is low. Extended use of impure chemicals will make the original die. (thus can't be spammed unless you've very good)
|
||||||
if(prob(15))
|
if(prob(15))
|
||||||
to_chat(C, "<span class='warning'>The residual voltage in your system causes you to seize up!</b></span>")
|
to_chat(C, "<span class='warning'>The residual voltage in your system causes you to seize up!</b></span>")
|
||||||
C.electrocute_act(10, (get_turf(C)), 1, FALSE, FALSE, FALSE, TRUE)
|
C.electrocute_act(10, (get_turf(C)), 1, FALSE, FALSE, FALSE, TRUE)
|
||||||
@@ -1548,19 +1547,10 @@ Creating a chem with a low purity will make you permanently fall in love with so
|
|||||||
/datum/reagent/fermi/secretcatchem/on_mob_add(mob/living/carbon/human/H)
|
/datum/reagent/fermi/secretcatchem/on_mob_add(mob/living/carbon/human/H)
|
||||||
. = ..()
|
. = ..()
|
||||||
var/current_species = H.dna.species.type
|
var/current_species = H.dna.species.type
|
||||||
var/datum/species/mutation = /datum/species/human/felinid
|
|
||||||
if((mutation != current_species) && (purity >= 0.8))//ONLY if purity is high, and given the stuff is random. It's very unlikely to get this to 1. It already requires felind too, so no new functionality there.
|
if((mutation != current_species) && (purity >= 0.8))//ONLY if purity is high, and given the stuff is random. It's very unlikely to get this to 1. It already requires felind too, so no new functionality there.
|
||||||
H.set_species(mutation)
|
|
||||||
H.gender = FEMALE
|
|
||||||
//exception(al) handler:
|
//exception(al) handler:
|
||||||
H.dna.features["mam_tail"] = "Cat"
|
|
||||||
H.dna.features["tail_human"] = "Cat"
|
|
||||||
H.dna.features["ears"] = "Cat"
|
H.dna.features["ears"] = "Cat"
|
||||||
H.dna.features["mam_ears"] = "Cat"
|
H.dna.features["mam_ears"] = "Cat"
|
||||||
H.dna.features["tail_lizard"] = "Cat"
|
|
||||||
H.dna.features["mam_tail"] = "Cat"
|
|
||||||
H.dna.features["mam_tail_animated"] = "Cat"
|
|
||||||
H.facial_hair_style = "Shaved"
|
|
||||||
H.verb_say = "mewls"
|
H.verb_say = "mewls"
|
||||||
catshift = TRUE
|
catshift = TRUE
|
||||||
playsound(get_turf(H), 'modular_citadel/sound/voice/merowr.ogg', 50, 1, -1)
|
playsound(get_turf(H), 'modular_citadel/sound/voice/merowr.ogg', 50, 1, -1)
|
||||||
@@ -1583,7 +1573,7 @@ Creating a chem with a low purity will make you permanently fall in love with so
|
|||||||
H.forceMove(catto.loc)
|
H.forceMove(catto.loc)
|
||||||
catto.mind.transfer_to(H)
|
catto.mind.transfer_to(H)
|
||||||
if(catshift == TRUE)
|
if(catshift == TRUE)
|
||||||
words += " ...But wait, are those ears and a tail?"
|
words += " ...But wait, are those cat ears?"
|
||||||
H.say("*wag")//force update sprites.
|
H.say("*wag")//force update sprites.
|
||||||
to_chat(H, "<span class='notice'>[words]</span>")
|
to_chat(H, "<span class='notice'>[words]</span>")
|
||||||
qdel(catto)
|
qdel(catto)
|
||||||
|
|||||||
@@ -1,22 +1,20 @@
|
|||||||
//TO TWEAK:
|
|
||||||
|
|
||||||
/datum/chemical_reaction/fermi
|
/datum/chemical_reaction/fermi
|
||||||
mix_sound = 'sound/effects/bubbles.ogg'
|
mix_sound = 'sound/effects/bubbles.ogg'
|
||||||
|
|
||||||
//Called for every reaction step
|
//Called for every reaction step
|
||||||
/datum/chemical_reaction/fermi/proc/FermiCreate(holder) //You can get holder by reagents.holder WHY DID I LEARN THIS NOW???
|
/datum/chemical_reaction/fermi/proc/FermiCreate(holder)
|
||||||
return
|
return
|
||||||
|
|
||||||
//Called when reaction STOP_PROCESSING
|
//Called when reaction STOP_PROCESSING
|
||||||
/datum/chemical_reaction/fermi/proc/FermiFinish(datum/reagents/holder, multipler) //You can get holder by reagents.holder WHY DID I LEARN THIS NOW???
|
/datum/chemical_reaction/fermi/proc/FermiFinish(datum/reagents/holder, multipler)
|
||||||
return
|
return
|
||||||
|
|
||||||
//Called when temperature is above a certain threshold, or if purity is too low.
|
//Called when temperature is above a certain threshold, or if purity is too low.
|
||||||
/datum/chemical_reaction/fermi/proc/FermiExplode(datum/reagents, var/atom/my_atom, volume, temp, pH, Exploding = FALSE) //You can get holder by reagents.holder WHY DID I LEARN THIS NOW???
|
/datum/chemical_reaction/fermi/proc/FermiExplode(datum/reagents, var/atom/my_atom, volume, temp, pH, Exploding = FALSE)
|
||||||
if (Exploding == TRUE)
|
if (Exploding == TRUE)
|
||||||
return
|
return
|
||||||
|
|
||||||
if(!pH)//Dunno how things got here without a pH.
|
if(!pH)//Dunno how things got here without a pH, but just in case
|
||||||
pH = 7
|
pH = 7
|
||||||
var/ImpureTot = 0
|
var/ImpureTot = 0
|
||||||
//var/pHmod = 1
|
//var/pHmod = 1
|
||||||
@@ -66,27 +64,27 @@
|
|||||||
my_atom.reagents.clear_reagents() //just in case
|
my_atom.reagents.clear_reagents() //just in case
|
||||||
return
|
return
|
||||||
|
|
||||||
/datum/chemical_reaction/fermi/eigenstate//done
|
/datum/chemical_reaction/fermi/eigenstate
|
||||||
name = "Eigenstasium"
|
name = "Eigenstasium"
|
||||||
id = "eigenstate"
|
id = "eigenstate"
|
||||||
results = list("eigenstate" = 0.1)
|
results = list("eigenstate" = 0.1)
|
||||||
required_reagents = list("bluespace" = 0.1, "stable_plasma" = 0.1, "sugar" = 0.1)
|
required_reagents = list("bluespace" = 0.1, "stable_plasma" = 0.1, "sugar" = 0.1)
|
||||||
mix_message = "the reaction zaps suddenly!"
|
mix_message = "the reaction zaps suddenly!"
|
||||||
//FermiChem vars:
|
//FermiChem vars:
|
||||||
OptimalTempMin = 350 // Lower area of bell curve for determining heat based rate reactions
|
OptimalTempMin = 350 // Lower area of bell curve for determining heat based rate reactions
|
||||||
OptimalTempMax = 600 // Upper end for above
|
OptimalTempMax = 600 // Upper end for above
|
||||||
ExplodeTemp = 750 //Temperature at which reaction explodes
|
ExplodeTemp = 750 //Temperature at which reaction explodes
|
||||||
OptimalpHMin = 6 // Lowest value of pH determining pH a 1 value for pH based rate reactions (Plateu phase)
|
OptimalpHMin = 6 // Lowest value of pH determining pH a 1 value for pH based rate reactions (Plateu phase)
|
||||||
OptimalpHMax = 8 // Higest value for above
|
OptimalpHMax = 8 // Higest value for above
|
||||||
ReactpHLim = 4 // How far out pH wil react, giving impurity place (Exponential phase)
|
ReactpHLim = 4 // How far out pH wil react, giving impurity place (Exponential phase)
|
||||||
CatalystFact = 0 // How much the catalyst affects the reaction (0 = no catalyst)
|
CatalystFact = 0 // How much the catalyst affects the reaction (0 = no catalyst)
|
||||||
CurveSharpT = 0.6 // How sharp the temperature exponential curve is (to the power of value)
|
CurveSharpT = 0.6 // How sharp the temperature exponential curve is (to the power of value)
|
||||||
CurveSharppH = 2 // How sharp the pH exponential curve is (to the power of value)
|
CurveSharppH = 2 // How sharp the pH exponential curve is (to the power of value)
|
||||||
ThermicConstant = 5 //Temperature change per 1u produced
|
ThermicConstant = 5 //Temperature change per 1u produced
|
||||||
HIonRelease = -0.05 //pH change per 1u reaction
|
HIonRelease = -0.05 //pH change per 1u reaction
|
||||||
RateUpLim = 5 //Optimal/max rate possible if all conditions are perfect
|
RateUpLim = 5 //Optimal/max rate possible if all conditions are perfect
|
||||||
FermiChem = TRUE//If the chemical uses the Fermichem reaction mechanics
|
FermiChem = TRUE//If the chemical uses the Fermichem reaction mechanics
|
||||||
FermiExplode = FALSE //If the chemical explodes in a special way
|
FermiExplode = FALSE //If the chemical explodes in a special way
|
||||||
|
|
||||||
/datum/chemical_reaction/fermi/eigenstate/FermiFinish(datum/reagents/holder, var/atom/my_atom)//Strange how this doesn't work but the other does.
|
/datum/chemical_reaction/fermi/eigenstate/FermiFinish(datum/reagents/holder, var/atom/my_atom)//Strange how this doesn't work but the other does.
|
||||||
var/turf/open/location = get_turf(my_atom)
|
var/turf/open/location = get_turf(my_atom)
|
||||||
@@ -95,7 +93,7 @@
|
|||||||
|
|
||||||
|
|
||||||
//serum
|
//serum
|
||||||
/datum/chemical_reaction/fermi/SDGF //DONE
|
/datum/chemical_reaction/fermi/SDGF
|
||||||
name = "Synthetic-derived growth factor"
|
name = "Synthetic-derived growth factor"
|
||||||
id = "SDGF"
|
id = "SDGF"
|
||||||
results = list("SDGF" = 0.3)
|
results = list("SDGF" = 0.3)
|
||||||
@@ -118,7 +116,7 @@
|
|||||||
FermiExplode = TRUE // If the chemical explodes in a special way
|
FermiExplode = TRUE // If the chemical explodes in a special way
|
||||||
PurityMin = 0.2
|
PurityMin = 0.2
|
||||||
|
|
||||||
/datum/chemical_reaction/fermi/SDGF/FermiExplode(datum/reagents, var/atom/my_atom, volume, temp, pH)//Spawns an angery teratoma!! Spooky..! be careful!! TODO: Add teratoma slime subspecies
|
/datum/chemical_reaction/fermi/SDGF/FermiExplode(datum/reagents, var/atom/my_atom, volume, temp, pH)//Spawns an angery teratoma!
|
||||||
var/turf/T = get_turf(my_atom)
|
var/turf/T = get_turf(my_atom)
|
||||||
var/mob/living/simple_animal/slime/S = new(T,"grey")
|
var/mob/living/simple_animal/slime/S = new(T,"grey")
|
||||||
S.damage_coeff = list(BRUTE = 0.9 , BURN = 2, TOX = 1, CLONE = 1, STAMINA = 0, OXY = 1)
|
S.damage_coeff = list(BRUTE = 0.9 , BURN = 2, TOX = 1, CLONE = 1, STAMINA = 0, OXY = 1)
|
||||||
@@ -158,7 +156,7 @@
|
|||||||
var/obj/item/organ/genital/breasts/B = new /obj/item/organ/genital/breasts(get_turf(my_atom))
|
var/obj/item/organ/genital/breasts/B = new /obj/item/organ/genital/breasts(get_turf(my_atom))
|
||||||
var/list/seen = viewers(8, get_turf(my_atom))
|
var/list/seen = viewers(8, get_turf(my_atom))
|
||||||
for(var/mob/M in seen)
|
for(var/mob/M in seen)
|
||||||
to_chat(M, "<span class='warning'>The reaction suddenly condenses, creating a pair of breasts!</b></span>")//OwO
|
to_chat(M, "<span class='warning'>The reaction suddenly condenses, creating a pair of breasts!</b></span>")
|
||||||
var/datum/reagent/fermi/breast_enlarger/BE = locate(/datum/reagent/fermi/breast_enlarger) in my_atom.reagents.reagent_list
|
var/datum/reagent/fermi/breast_enlarger/BE = locate(/datum/reagent/fermi/breast_enlarger) in my_atom.reagents.reagent_list
|
||||||
B.size = ((BE.volume * BE.purity) / 10) //half as effective.
|
B.size = ((BE.volume * BE.purity) / 10) //half as effective.
|
||||||
my_atom.reagents.clear_reagents()
|
my_atom.reagents.clear_reagents()
|
||||||
@@ -190,7 +188,7 @@
|
|||||||
var/obj/item/organ/genital/penis/P = new /obj/item/organ/genital/penis(get_turf(my_atom))
|
var/obj/item/organ/genital/penis/P = new /obj/item/organ/genital/penis(get_turf(my_atom))
|
||||||
var/list/seen = viewers(8, get_turf(my_atom))
|
var/list/seen = viewers(8, get_turf(my_atom))
|
||||||
for(var/mob/M in seen)
|
for(var/mob/M in seen)
|
||||||
to_chat(M, "<span class='warning'>The reaction suddenly condenses, creating a penis!</b></span>")//OwO
|
to_chat(M, "<span class='warning'>The reaction suddenly condenses, creating a penis!</b></span>")
|
||||||
var/datum/reagent/fermi/penis_enlarger/PE = locate(/datum/reagent/fermi/penis_enlarger) in my_atom.reagents.reagent_list
|
var/datum/reagent/fermi/penis_enlarger/PE = locate(/datum/reagent/fermi/penis_enlarger) in my_atom.reagents.reagent_list
|
||||||
P.length = ((PE.volume * PE.purity) / 10)//half as effective.
|
P.length = ((PE.volume * PE.purity) / 10)//half as effective.
|
||||||
my_atom.reagents.clear_reagents()
|
my_atom.reagents.clear_reagents()
|
||||||
@@ -249,7 +247,7 @@
|
|||||||
if(!B.data)
|
if(!B.data)
|
||||||
var/list/seen = viewers(5, get_turf(my_atom))
|
var/list/seen = viewers(5, get_turf(my_atom))
|
||||||
for(var/mob/M in seen)
|
for(var/mob/M in seen)
|
||||||
to_chat(M, "<span class='warning'>The reaction splutters and fails to react.</span>") //if this appears, WHAT?!
|
to_chat(M, "<span class='warning'>The reaction splutters and fails to react.</span>") //Just in case
|
||||||
E.purity = 0
|
E.purity = 0
|
||||||
if (B.data.["gender"] == "female")
|
if (B.data.["gender"] == "female")
|
||||||
E.data.["creatorGender"] = "Mistress"
|
E.data.["creatorGender"] = "Mistress"
|
||||||
@@ -272,7 +270,7 @@
|
|||||||
if(!B.data)
|
if(!B.data)
|
||||||
var/list/seen = viewers(5, get_turf(my_atom))
|
var/list/seen = viewers(5, get_turf(my_atom))
|
||||||
for(var/mob/M in seen)
|
for(var/mob/M in seen)
|
||||||
to_chat(M, "<span class='warning'>The reaction splutters and fails to react.</span>") //if this appears, WHAT?!
|
to_chat(M, "<span class='warning'>The reaction splutters and fails to react.</span>") //Just in case
|
||||||
E.purity = 0
|
E.purity = 0
|
||||||
if (B.data.["gender"] == "female")
|
if (B.data.["gender"] == "female")
|
||||||
E.data.["creatorGender"] = "Mistress"
|
E.data.["creatorGender"] = "Mistress"
|
||||||
@@ -351,10 +349,10 @@
|
|||||||
//There's a weird rounding error or something ugh.
|
//There's a weird rounding error or something ugh.
|
||||||
|
|
||||||
//Nano-b-gone
|
//Nano-b-gone
|
||||||
/datum/chemical_reaction/fermi/naninte_b_gone//done test
|
/datum/chemical_reaction/fermi/nanite_b_gone//done test
|
||||||
name = "Naninte bain"
|
name = "Naninte bain"
|
||||||
id = "naninte_b_gone"
|
id = "nanite_b_gone"
|
||||||
results = list("naninte_b_gone" = 4)
|
results = list("nanite_b_gone" = 4)
|
||||||
required_reagents = list("synthflesh" = 1, "uranium" = 1, "iron" = 1, "salglu_solution" = 1)
|
required_reagents = list("synthflesh" = 1, "uranium" = 1, "iron" = 1, "salglu_solution" = 1)
|
||||||
mix_message = "the reaction gurgles, encapsulating the reagents in flesh before the emp can be set off."
|
mix_message = "the reaction gurgles, encapsulating the reagents in flesh before the emp can be set off."
|
||||||
required_temp = 499//To force fermireactions before EMP.
|
required_temp = 499//To force fermireactions before EMP.
|
||||||
|
|||||||
Reference in New Issue
Block a user