what is this

This commit is contained in:
Fermi
2019-09-03 20:30:21 +01:00
parent 60bd6bf387
commit 7890ad08d5
1140 changed files with 4619 additions and 1884 deletions
@@ -66,7 +66,7 @@ IMPORTANT FACTORS TO CONSIDER WHILE BALANCING
startHunger = M.nutrition
if(pollStarted == FALSE)
pollStarted = TRUE
candies = pollGhostCandidates("Do you want to play as a clone of [M], 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 and it will likely earn you a bwoink.")
candies = pollGhostCandidates("Do you want to play as a clone of [M], and do you agree to respect their character and act in a similar manner to them? Do not engage in ERP as them unless you have LOOC permission from them, and ensure it is permission from the original, not a clone.")
log_game("FERMICHEM: [M] ckey: [M.key] has taken SDGF, and ghosts have been polled.")
if(20 to INFINITY)
if(LAZYLEN(candies) && playerClone == FALSE) //If there's candidates, clone the person and put them in there!
@@ -80,7 +80,7 @@ IMPORTANT FACTORS TO CONSIDER WHILE BALANCING
M.dna.transfer_identity(SM)
SM.updateappearance(mutcolor_update=1)
var/mob/dead/observer/C = pick(candies)
message_admins("Ghost candidate found! [C] is becoming a clone of [M] (They agreed to respect the character they're becoming. If they don't, then they agreed to a a bwoinking.) (Hee~!! Exciting!!)")
message_admins("Ghost candidate found! [C] key [C.key] is becoming a clone of [M] key: [M.key] (They agreed to respect the character they're becoming, and agreed to not ERP without express permission from the original.)")
SM.key = C.key
SM.mind.enslave_mind_to_creator(M)
@@ -92,10 +92,10 @@ IMPORTANT FACTORS TO CONSIDER WHILE BALANCING
ZI.Insert(SM)
log_game("FERMICHEM: [M] ckey: [M.key]'s zombie_infection has been transferred to their clone")
to_chat(SM, "<span class='warning'>You feel a strange sensation building in your mind as you realise there's two of you, before you get a chance to think about it, you suddenly split from your old body, and find yourself face to face with yourself, or rather, your original self.</span>")
to_chat(SM, "<span class='warning'>You feel a strange sensation building in your mind as you realise there's two of you, before you get a chance to think about it, you suddenly split from your old body, and find yourself face to face with your original, a perfect clone of your origin.</span>")
if(prob(50))
to_chat(SM, "<span class='userdanger'>While you find your newfound existence strange, you share the same memories as [M.real_name]. However, You find yourself indifferent to the goals you previously had, and take more interest in your newfound independence, but still have an indescribable care for the safety of your original</span>")
to_chat(SM, "<span class='userdanger'>While you find your newfound existence strange, you share the same memories as [M.real_name]. However, You find yourself indifferent to the goals you previously had, and take more interest in your newfound independence, but still have an indescribable care for the safety of your original.</span>")
log_game("FERMICHEM: [SM] ckey: [SM.key]'s is not bound by [M] ckey [M.key]'s will, and is free to determine their own goals, while respecting and acting as their origin.")
else
to_chat(SM, "<span class='userdanger'>While you find your newfound existence strange, you share the same memories as [M.real_name]. Your mind has not deviated from the tasks you set out to do, and now that there's two of you the tasks should be much easier.</span>")
@@ -208,6 +208,64 @@ IMPORTANT FACTORS TO CONSIDER WHILE BALANCING
if (M.nutrition < 1500)
M.nutrition += 500
/datum/reagent/fermi/SDGF/reaction_mob(mob/living/carbon/human/M, method=TOUCH, reac_volume)
if(volume<5)
M.visible_message("<span class='warning'>The growth factor froths upon [M]'s body, failing to do anything of note.</span>")
return
if(M.stat == DEAD)
if(M.suiciding || (HAS_TRAIT(M, TRAIT_NOCLONE)) || M.hellbound)
M.visible_message("<span class='warning'>The growth factor inertly sticks to [M]'s body, failing to do anything of note.</span>")
return
if(!M.mind)
M.visible_message("<span class='warning'>The growth factor shudders, merging with [M]'s body, but is unable to replicate properly.</span>")
var/bodydamage = (M.getBruteLoss() + M.getFireLoss())
var/typepath = M.type
volume =- 5
var/mob/living/carbon/human/fermi_Gclone = new typepath(M.loc)
var/mob/living/carbon/human/SM = fermi_Gclone
if(istype(SM) && istype(M))
SM.real_name = M.real_name
M.dna.transfer_identity(SM)
SM.updateappearance(mutcolor_update=1)
M.mind.transfer_to(SM)
M.visible_message("<span class='warning'>[M]'s body shudders, the growth factor rapidly splitting into a new clone of [M].</span>")
if(bodydamage>50)
SM.adjustOxyLoss(-(bodydamage/10), 0)
SM.adjustToxLoss(-(bodydamage/10), 0)
SM.blood_volume = (BLOOD_VOLUME_NORMAL*SM.blood_ratio)/1.5
SM.adjustCloneLoss((bodydamage/10), 0)
SM.setBrainLoss((bodydamage/10))
SM.nutrition = 400
if(bodydamage>200)
SM.gain_trauma_type(BRAIN_TRAUMA_MILD)
if(bodydamage>300)
var/obj/item/bodypart/l_arm = SM.get_bodypart(BODY_ZONE_L_ARM) //We get the body parts we want this way.
var/obj/item/bodypart/r_arm = SM.get_bodypart(BODY_ZONE_R_ARM)
l_arm.drop_limb()
r_arm.drop_limb()
if(bodydamage>400)
var/obj/item/bodypart/l_leg = SM.get_bodypart(BODY_ZONE_L_LEG) //We get the body parts we want this way.
var/obj/item/bodypart/r_leg = SM.get_bodypart(BODY_ZONE_R_LEG)
l_leg.drop_limb()
r_leg.drop_limb()
if(bodydamage>500)
SM.gain_trauma_type(BRAIN_TRAUMA_SEVERE)
if(bodydamage>600)
var/datum/species/mutation = pick(subtypesof(/datum/species))
SM.set_species(mutation)
//Transfer remaining reagent to clone. I think around 30u will make a healthy clone, otherwise they'll have clone damage, blood loss, brain damage and hunger.
SM.reagents.add_reagent("SDGFheal", volume)
M.reagents.remove_reagent(id, volume)
SM.updatehealth()
SM.emote("gasp")
log_combat(M, M, "SDGF clone-vived", src)
..()
//Unobtainable, used in clone spawn.
/datum/reagent/fermi/SDGFheal
name = "synthetic-derived growth factor"
@@ -271,7 +329,7 @@ IMPORTANT FACTORS TO CONSIDER WHILE BALANCING
if(86)//mean clone time!
if (!M.reagents.has_reagent("pen_acid"))//Counterplay is pent.)
message_admins("(non-infectious) Zombie spawned at [M.loc], produced by impure chem, wah!")
message_admins("(non-infectious) SDZF: Zombie spawned at [M] [COORD(M)]!")
M.nutrition = startHunger - 500//YOU BEST BE RUNNING AWAY AFTER THIS YOU BADDIE
M.next_move_modifier = 1
to_chat(M, "<span class='warning'>Your body splits away from the cell clone of yourself, your attempted clone birthing itself violently from you as it begins to shamble around, a terrifying abomination of science.</span>")
@@ -52,10 +52,10 @@ I'd like to point out from my calculations it'll take about 60-80 minutes to die
qdel(O)
/datum/reagent/fermi/astral/on_mob_life(mob/living/M) // Gives you the ability to astral project for a moment!
/datum/reagent/fermi/astral/on_mob_life(mob/living/carbon/M) // Gives you the ability to astral project for a moment!
M.alpha = 255
originalmind = M.mind
if(current_cycle == 0)
originalmind = M.mind
log_game("FERMICHEM: [M] ckey: [M.key] became an astral ghost")
origin = M
if (G == null)
@@ -64,7 +64,8 @@ I'd like to point out from my calculations it'll take about 60-80 minutes to die
var/datum/action/chem/astral/AS = new(G)
AS.origin = M
AS.ghost = G
M.mind.transfer_to(G)
if(M.mind)
M.mind.transfer_to(G)
SSblackbox.record_feedback("tally", "fermi_chem", 1, "Astral projections")
if(overdosed)
if(prob(50))
@@ -77,23 +78,26 @@ I'd like to point out from my calculations it'll take about 60-80 minutes to die
if(G.stat == DEAD || G.pseudo_death == TRUE)
G.mind.transfer_to(M)
qdel(G)
else
M.Sleeping(20, 0)
M.reagents.remove_reagent(id, 2, FALSE)
..()
/datum/reagent/fermi/astral/on_mob_delete(mob/living/carbon/M)
if(!G)
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(M)
else if(G.mind)
G.mind.transfer_to(origin)
qdel(G)
if(overdosed)
to_chat(M, "<span class='warning'>The high volume of Astrogren you just took causes you to black out momentarily as your mind snaps back to your body.</b></span>")
to_chat(M, "<span class='warning'>The high volume of astrogen you just took causes you to black out momentarily as your mind snaps back to your body.</b></span>")
M.Sleeping(sleepytime, 0)
antiGenetics = 255
if(G)//just in case
qdel(G)
log_game("FERMICHEM: [M] has astrally returned to their body!")
..()
//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.
@@ -119,6 +123,7 @@ I'd like to point out from my calculations it'll take about 60-80 minutes to die
M.alpha--
antiGenetics--
ADD_TRAIT(M, TRAIT_NOCLONE, "astral") //So you can't scan yourself, then die, to metacomm. You can only use your memories if you come back as something else.
M.hellbound = TRUE
if(180)
to_chat(M, "<span class='notice'>You feel fear build up in yourself as more and more of your body and consciousness begins to fade.</b></span>")
M.alpha--
@@ -135,7 +140,7 @@ I'd like to point out from my calculations it'll take about 60-80 minutes to die
to_chat(M, "<span class='warning'>The last vestiges of your mind eagerly await your imminent annihilation.</b></span>")
M.alpha--
antiGenetics--
if(0 to 30)
if(-INFINITY to 30)
to_chat(M, "<span class='warning'>Your body disperses from existence, as you become one with the universe.</b></span>")
to_chat(M, "<span class='userdanger'>As your body disappears, your consciousness doesn't. Should you find a way back into the mortal coil, your memories of your previous life remain with you. (At the cost of staying in character while dead. Failure to do this may get you banned from this chem. You are still obligated to follow your directives if you play a midround antag, you do not remember the afterlife IC)</span>")//Legalised IC OOK? I have a suspicion this won't make it past the review. At least it'll be presented as a neat idea! If this is unacceptable how about the player can retain living memories across lives if they die in this way only.
deadchat_broadcast("<span class='warning'>[M] has become one with the universe, meaning that their IC conciousness is continuous in a new life. If they find a way back to life, they are allowed to remember their previous life. Be careful what you say. If they abuse this, bwoink the FUCK outta them.</span>")
@@ -171,4 +171,33 @@
SEND_SIGNAL(M, COMSIG_CLEAR_MOOD_EVENT, "[id]_overdose")//holdover until above fix works
..()
/datum/reagent/fermi/eigenstate/reaction_turf(turf/T, reac_volume)
//if(cached_purity < 0.99) To add with next batch of fixes and tweaks.
var/obj/structure/closet/First
var/obj/structure/closet/Previous
for(var/obj/structure/closet/C in T.contents)
if(C.eigen_teleport == TRUE)
C.visible_message("[C] fizzes, it's already linked to something else!")
continue
if(!Previous)
First = C
Previous = C
continue
C.eigen_teleport = TRUE
C.eigen_target = Previous
C.color = "#9999FF" //Tint the locker slightly.
C.alpha = 200
do_sparks(5,FALSE,C)
Previous = C
if(!First)
return
if(Previous == First)
return
First.eigen_teleport = TRUE
First.eigen_target = Previous
First.color = "#9999FF"
First.alpha = 200
do_sparks(5,FALSE,First)
First.visible_message("The lockers' eigenstates spilt and merge, linking each of their contents together.")
//eigenstate END
@@ -71,8 +71,12 @@
//If they have Acute hepatic pharmacokinesis, then route processing though liver.
if(HAS_TRAIT(M, TRAIT_PHARMA))
var/obj/item/organ/liver/L = M.getorganslot("liver")
L.swelling+= 0.05
return..()
if(L)
L.swelling+= 0.05
return..()
else
M.adjustToxLoss(1)
return..()
//otherwise proceed as normal
var/obj/item/organ/genital/breasts/nB = new
@@ -169,12 +173,14 @@
/datum/reagent/fermi/BEsmaller_hypo/on_mob_add(mob/living/carbon/M)
. = ..()
if(M.dna.features["has_vag"])
var/obj/item/organ/genital/vagina/nV = new
nV.Insert(M)
if(M.dna.features["has_womb"])
var/obj/item/organ/genital/womb/nW = new
nW.Insert(M)
if(!M.getorganslot("vagina"))
if(M.dna.features["has_vag"])
var/obj/item/organ/genital/vagina/nV = new
nV.Insert(M)
if(!M.getorganslot("womb"))
if(M.dna.features["has_womb"])
var/obj/item/organ/genital/womb/nW = new
nW.Insert(M)
/datum/reagent/fermi/BEsmaller_hypo/on_mob_life(mob/living/carbon/M)
var/obj/item/organ/genital/breasts/B = M.getorganslot("breasts")
@@ -245,8 +251,12 @@
//If they have Acute hepatic pharmacokinesis, then route processing though liver.
if(HAS_TRAIT(M, TRAIT_PHARMA))
var/obj/item/organ/liver/L = M.getorganslot("liver")
L.swelling+= 0.05
return..()
if(L)
L.swelling+= 0.05
return..()
else
M.adjustToxLoss(1)
return..()
//otherwise proceed as normal
var/obj/item/organ/genital/penis/nP = new
@@ -334,15 +344,16 @@
/datum/reagent/fermi/PEsmaller_hypo/on_mob_add(mob/living/carbon/M)
. = ..()
if(M.dna.features["has_balls"])
var/obj/item/organ/genital/testicles/nT = new
nT.Insert(M)
if(!M.getorganslot("testicles"))
if(M.dna.features["has_balls"])
var/obj/item/organ/genital/testicles/nT = new
nT.Insert(M)
/datum/reagent/fermi/PEsmaller_hypo/on_mob_life(mob/living/carbon/M)
var/obj/item/organ/genital/penis/P = M.getorganslot("penis")
if(!P)
return ..()
if(!M.dna.features["has_penis"])//Fast fix for those who don't want it.
if(!M.dna.features["has_cock"])//Fast fix for those who don't want it.
P.cached_length = P.cached_length - 0.2
P.update()
else if(P.cached_length > (M.dna.features["cock_length"]+0.1))
@@ -134,6 +134,23 @@
var/obj/item/organ/tongue/T
can_synth = TRUE
/datum/reagent/fermi/furranium/reaction_mob(mob/living/carbon/human/M, method=INJECT, reac_volume)
if(method == INJECT)
var/turf/T = get_turf(M)
M.adjustOxyLoss(15)
M.Knockdown(50)
M.Stun(50)
M.emote("cough")
var/obj/item/toy/plush/P = pick(subtypesof(/obj/item/toy/plush))
new P(T)
to_chat(M, "<span class='warning'>You feel a lump form in your throat, as you suddenly cough up what seems to be a hairball?</b></span>")
var/list/seen = viewers(8, T)
for(var/mob/S in seen)
to_chat(S, "<span class='warning'>[M] suddenly coughs up a [P.name]!</b></span>")
var/T2 = get_random_station_turf()
P.throw_at(T2, 8, 1)
..()
/datum/reagent/fermi/furranium/on_mob_life(mob/living/carbon/M)
switch(current_cycle)
@@ -160,15 +177,15 @@
T.Remove(M)
nT.Insert(M)
T.moveToNullspace()//To valhalla
to_chat(M, "<span class='notice'>Youw tongue feews... weally fwuffy!!</span>")
to_chat(M, "<span class='big warning'>Your tongue feels... weally fwuffy!!</span>")
if(17 to INFINITY)
if(prob(10))
if(prob(5))
to_chat(M, "You find yourself unable to supress the desire to meow!")
M.emote("nya")
if(prob(10))
if(prob(5))
to_chat(M, "You find yourself unable to supress the desire to howl!")
M.emote("awoo")
if(prob(20))
if(prob(5))
var/list/seen = viewers(5, get_turf(M))//Sound and sight checkers
for(var/victim in seen)
if((istype(victim, /mob/living/simple_animal/pet/)) || (victim == M) || (!isliving(victim)))
@@ -178,7 +195,7 @@
..()
/datum/reagent/fermi/furranium/on_mob_delete(mob/living/carbon/M)
if(purity < 0.9)//Only permanent if you're a good chemist.
if(purity < 1)//Only permanent if you're a good chemist.
nT = M.getorganslot(ORGAN_SLOT_TONGUE)
nT.Remove(M)
qdel(nT)
@@ -188,6 +205,7 @@
else
log_game("FERMICHEM: [M] ckey: [M.key]'s tongue has been made permanent")
///////////////////////////////////////////////////////////////////////////////////////////////
//Nanite removal
//Writen by Trilby!! Embellsished a little by me.
@@ -7,7 +7,7 @@
pH = 8.6
overdose_threshold = 35
ImpureChem = "yamerol_tox"
InverseChemVal = 0.3
InverseChemVal = 0.4
InverseChem = "yamerol_tox"
can_synth = TRUE
@@ -16,17 +16,31 @@
var/obj/item/organ/lungs/L = C.getorganslot(ORGAN_SLOT_LUNGS)
if(T)
T.adjustTongueLoss(C, -2)
T.adjustTongueLoss(C, -2)//Fix the inputs me!
if(L)
L.adjustLungLoss(-5, C)
C.adjustOxyLoss(-2)
else
C.adjustOxyLoss(-10)
if(T)
if(T.name == "fluffy tongue")
var/obj/item/organ/tongue/nT
if(C.dna && C.dna.species && C.dna.species.mutanttongue)
nT = new C.dna.species.mutanttongue()
else
nT = new()
T.Remove(C)
qdel(T)
nT.Insert(C)
to_chat(C, "<span class='notice'>You feel your tongue.... unfluffify...?</span>")
holder.remove_reagent(src.id, "10")
..()
/datum/reagent/fermi/yamerol/overdose_process(mob/living/carbon/C)
var/obj/item/organ/tongue/oT = C.getorganslot(ORGAN_SLOT_TONGUE)
if(current_cycle == 1)
to_chat(C, "<span class='notice'>You feel the Yamerol sooth your tongue and lungs.</span>")
if(current_cycle > 10)
if(!C.getorganslot(ORGAN_SLOT_TONGUE))
var/obj/item/organ/tongue/T
@@ -40,7 +54,6 @@
else
if((oT.name == "fluffy tongue") && (purity == 1))
var/obj/item/organ/tongue/T
if(C.dna && C.dna.species && C.dna.species.mutanttongue)
T = new C.dna.species.mutanttongue()
else
@@ -57,6 +70,10 @@
to_chat(C, "<span class='notice'>You feel your lungs reform in your chest.</span>")
holder.remove_reagent(src.id, "10")
<<<<<<< HEAD
=======
C.adjustOxyLoss(-3)
>>>>>>> upstream/master
..()
/datum/reagent/fermi/yamerol/reaction_mob(var/mob/living/L)
@@ -87,7 +104,7 @@
T.adjustTongueLoss(C, 1)
if(L)
L.adjustLungLoss(4, C)
C.adjustOxyLoss(2)
C.adjustOxyLoss(3)
else
C.adjustOxyLoss(10)
..()
@@ -29,10 +29,22 @@
for(var/turf/turf in range(2,T))
new /obj/effect/hotspot(turf)
if (1101 to INFINITY) //If you're crafty
if (1101 to 1500) //If you're crafty
for(var/turf/turf in range(3,T))
new /obj/effect/hotspot(turf)
if (1501 to 2500) //requested
for(var/turf/turf in range(4,T))
new /obj/effect/hotspot(turf)
if (2501 to 5000)
for(var/turf/turf in range(5,T))
new /obj/effect/hotspot(turf)
if (5001 to INFINITY)
for(var/turf/turf in range(6,T))
new /obj/effect/hotspot(turf)
message_admins("Fermi explosion at [T], with a temperature of [temp], pH of [pH], Impurity tot of [ImpureTot].")
log_game("Fermi explosion at [T], with a temperature of [temp], pH of [pH], Impurity tot of [ImpureTot].")
@@ -512,7 +524,7 @@
name = "Yamerol"
id = "yamerol"
results = list("yamerol" = 1.5)
required_reagents = list("perfluorodecalin" = 0.5, "furranium" = 0.5, "water" = 0.5)
required_reagents = list("perfluorodecalin" = 0.5, "salbutamol" = 0.5, "water" = 0.5)
//FermiChem vars:
OptimalTempMin = 300
OptimalTempMax = 500
@@ -64,42 +64,6 @@
else
message += "\" and tips their hat. \"[pick("Yeehaw!", "Boy howdy.", "Darn tootin'.", "Well don't that beat all.", "Whoooowee, would ya look at that!", "Whoooowee! Makin' bacon!", "Cream Gravy!", "Yippekeeyah-heeyapeeah-kayoh!", "Move 'em out!", "Giddy up!")]"
speech_args[SPEECH_MESSAGE] = trim(message)
/*
if(message[1] != "*")
message = " [message]"
var/list/french_words = strings("french_replacement.json", "french")
for(var/key in french_words)
var/value = french_words[key]
if(islist(value))
value = pick(value)
message = replacetextEx(message, " [uppertext(key)]", " [uppertext(value)]")
message = replacetextEx(message, " [capitalize(key)]", " [capitalize(value)]")
message = replacetextEx(message, " [key]", " [value]")
if(prob(3))
message += pick(" Honh honh honh!"," Honh!"," Zut Alors!")
speech_args[SPEECH_MESSAGE] = trim(message)
*/
/*
/obj/item/clothing/head/hattip/speechModification(message, /mob/living/carbon/C)
..()
var/mob/living/carbon/C = get_wearer()//user
var/obj/item/organ/tongue/T = C.getorganslot(ORGAN_SLOT_TONGUE)
if (T.name == "fluffy tongue")
if(prob(0.01))
message += "\" and tips their hat. \"swpy's sappin' my chem dispwencer uwu!!"
return message
message += "\" and tips their hat. \"[pick("weehaw!", "bwoy howdy.", "dawn tuutin'.", "weww don't that beat aww.", "whoooowee, wouwd ya wook at that!", "whoooowee! makin' bwacon!", "cweam gwavy!", "yippekeeyah-heeyapeeah-kwayoh!", "mwove 'em uut!", "gwiddy up!")]"
return message
if(prob(0.01))
message += "\" and tips their hat. \"Spy's sappin' my chem dispenser!"//How did I not think of this earlier
message_admins("I really appreciate all the hard work you put into adminning citadel, I hope you're all having a good day and I hope this hidden and rare message admins brightens up your day.")
return message
message += "\" and tips their hat. \"[pick("Yeehaw!", "Boy howdy.", "Darn tootin'.", "Well don't that beat all.", "Whoooowee, would ya look at that!", "Whoooowee! Makin' bacon!", "Cream Gravy!", "Yippekeeyah-heeyapeeah-kayoh!", "Move 'em out!", "Giddy up!")]"
return message
*/
/obj/item/clothing/head/hattip/proc/get_wearer()
return loc
@@ -11,6 +11,8 @@
//A little janky with pockets
/obj/item/fermichem/pHbooklet/attack_hand(mob/user)
if(user.get_held_index_of_item(src))//Does this check pockets too..?
if(numberOfPages == 50)
icon_state = "pHbookletOpen"
if(numberOfPages >= 1)
var/obj/item/fermichem/pHpaper/P = new /obj/item/fermichem/pHpaper
P.add_fingerprint(user)
@@ -141,12 +141,18 @@
// Gunna allow this for now, still really don't approve - Pooj
/obj/item/hypospray/mkii/emag_act(mob/user)
. = ..()
if(obj_flags & EMAGGED)
to_chat(user, "[src] happens to be already overcharged.")
return
inject_wait = COMBAT_WAIT_INJECT
spray_wait = COMBAT_WAIT_SPRAY
spray_self = COMBAT_SELF_INJECT
inject_self = COMBAT_SELF_SPRAY
penetrates = TRUE
to_chat(user, "You overcharge [src]'s control circuit.")
obj_flags |= EMAGGED
return TRUE
/obj/item/hypospray/mkii/attack_hand(mob/user)
. = ..() //Don't bother changing this or removing it from containers will break.
@@ -8,6 +8,7 @@
data = list("donor"=null,"viruses"=null,"donor_DNA"=null,"blood_type"=null,"resistances"=null,"trace_chem"=null,"mind"=null,"ckey"=null,"gender"=null,"real_name"=null)
reagent_state = LIQUID
color = "#FFFFFF" // rgb: 255, 255, 255
can_synth = FALSE
nutriment_factor = 0.5 * REAGENTS_METABOLISM
/datum/reagent/consumable/semen/reaction_turf(turf/T, reac_volume)
@@ -19,7 +20,6 @@
var/obj/effect/decal/cleanable/semen/S = locate() in T
if(!S)
S = new(T)
S.reagents.add_reagent("semen", reac_volume)
if(data["blood_DNA"])
S.add_blood_DNA(list(data["blood_DNA"] = data["blood_type"]))
@@ -50,6 +50,7 @@
data = list("donor"=null,"viruses"=null,"donor_DNA"=null,"blood_type"=null,"resistances"=null,"trace_chem"=null,"mind"=null,"ckey"=null,"gender"=null,"real_name"=null)
reagent_state = LIQUID
color = "#AAAAAA77"
can_synth = FALSE
nutriment_factor = 0.5 * REAGENTS_METABOLISM
/obj/effect/decal/cleanable/femcum
@@ -82,7 +83,6 @@
var/obj/effect/decal/cleanable/femcum/S = locate() in T
if(!S)
S = new(T)
S.reagents.add_reagent("femcum", reac_volume)
if(data["blood_DNA"])
S.add_blood_DNA(list(data["blood_DNA"] = data["blood_type"]))