mirror of
https://github.com/vgstation-coders/vgstation13.git
synced 2025-12-10 10:21:11 +00:00
-Lot of runtime fixes for advance diseases.
-Added two new symptoms, fever and itching. -Changed some stats on existing symptoms. -Emotes sucks so I used visible_message if there was no preset emote. git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5021 316c924e-a436-60f5-8080-3fe189b3f50e
This commit is contained in:
@@ -305,3 +305,8 @@ proc/listclearnulls(list/list)
|
|||||||
r += bit
|
r += bit
|
||||||
|
|
||||||
return r
|
return r
|
||||||
|
|
||||||
|
/proc/safe_pick_list(var/list/L)
|
||||||
|
if(L.len)
|
||||||
|
return pick(L)
|
||||||
|
return null
|
||||||
@@ -17,7 +17,7 @@ to null does not delete the object itself. Thank you.
|
|||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
var/list/diseases = typesof(/datum/disease, /datum/disease/advance) - /datum/disease - /datum/disease/advance
|
var/list/diseases = typesof(/datum/disease) - /datum/disease
|
||||||
|
|
||||||
|
|
||||||
/datum/disease
|
/datum/disease
|
||||||
|
|||||||
@@ -24,11 +24,10 @@ var/list/archive_diseases = list()
|
|||||||
form = "Advance Disease" // Will let med-scanners know that this disease was engineered.
|
form = "Advance Disease" // Will let med-scanners know that this disease was engineered.
|
||||||
agent = "advance microbes"
|
agent = "advance microbes"
|
||||||
max_stages = 5
|
max_stages = 5
|
||||||
|
spread = "Unknown"
|
||||||
|
|
||||||
// NEW VARS
|
// NEW VARS
|
||||||
|
|
||||||
var/alpha_level = 0 // To determine if the advanced disease will overwrite another advance disease.
|
|
||||||
var/list/symptoms = list() // The symptoms of the disease.
|
var/list/symptoms = list() // The symptoms of the disease.
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -37,7 +36,7 @@ var/list/archive_diseases = list()
|
|||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/datum/disease/advance/New(var/process = 1, var/datum/disease/advance/D)
|
/datum/disease/advance/New(var/process = 1, var/datum/disease/advance/D, var/copy = 0)
|
||||||
|
|
||||||
// Setup our dictionary if it hasn't already.
|
// Setup our dictionary if it hasn't already.
|
||||||
if(!dictionary_symptoms.len)
|
if(!dictionary_symptoms.len)
|
||||||
@@ -53,7 +52,8 @@ var/list/archive_diseases = list()
|
|||||||
symptoms = GenerateSymptoms()
|
symptoms = GenerateSymptoms()
|
||||||
else
|
else
|
||||||
symptoms = D.symptoms
|
symptoms = D.symptoms
|
||||||
Refresh() // Refresh our properties and cure.
|
name = D.name
|
||||||
|
Refresh(!copy)
|
||||||
..(process, D)
|
..(process, D)
|
||||||
return
|
return
|
||||||
|
|
||||||
@@ -98,6 +98,12 @@ var/list/archive_diseases = list()
|
|||||||
for(var/datum/symptom/S in possible_symptoms)
|
for(var/datum/symptom/S in possible_symptoms)
|
||||||
AddSymptom(new S.type)
|
AddSymptom(new S.type)
|
||||||
|
|
||||||
|
/datum/disease/advance/proc/HasSymptom(var/datum/symptom/S)
|
||||||
|
for(var/datum/symptom/symp in symptoms)
|
||||||
|
if(symp.id == S.id)
|
||||||
|
return 1
|
||||||
|
return 0
|
||||||
|
|
||||||
// Will generate new unique symptoms, use this if there are none. Returns a list of symptoms that were generated.
|
// Will generate new unique symptoms, use this if there are none. Returns a list of symptoms that were generated.
|
||||||
/datum/disease/advance/proc/GenerateSymptoms(var/type_level_limit = RANDOM_STARTING_LEVEL, var/amount_get = 0)
|
/datum/disease/advance/proc/GenerateSymptoms(var/type_level_limit = RANDOM_STARTING_LEVEL, var/amount_get = 0)
|
||||||
|
|
||||||
@@ -107,28 +113,34 @@ var/list/archive_diseases = list()
|
|||||||
var/list/possible_symptoms = list()
|
var/list/possible_symptoms = list()
|
||||||
for(var/symp in list_symptoms)
|
for(var/symp in list_symptoms)
|
||||||
var/datum/symptom/S = new symp
|
var/datum/symptom/S = new symp
|
||||||
if((S.level <= type_level_limit) && !(S in symptoms))
|
if(S.level <= type_level_limit)
|
||||||
|
if(!HasSymptom(S))
|
||||||
possible_symptoms += S
|
possible_symptoms += S
|
||||||
|
|
||||||
|
if(!possible_symptoms.len)
|
||||||
|
return
|
||||||
|
//error("Advance Disease - We weren't able to get any possible symptoms in GenerateSymptoms([type_level_limit], [amount_get])")
|
||||||
|
|
||||||
// Random chance to get more than one symptom
|
// Random chance to get more than one symptom
|
||||||
var/number_of = amount_get
|
var/number_of = amount_get
|
||||||
if(!amount_get)
|
if(!amount_get)
|
||||||
number_of = 1
|
number_of = 1
|
||||||
while(prob(10))
|
while(prob(20))
|
||||||
number_of += 1
|
number_of += 1
|
||||||
|
|
||||||
for(var/i = 0; number_of >= i; i++)
|
for(var/i = 1; number_of >= i; i++)
|
||||||
var/datum/symptom/S = pick(possible_symptoms)
|
var/datum/symptom/S = pick(possible_symptoms)
|
||||||
generated += S
|
generated += S
|
||||||
possible_symptoms -= S
|
possible_symptoms -= S
|
||||||
|
|
||||||
return generated
|
return generated
|
||||||
|
|
||||||
/datum/disease/advance/proc/Refresh()
|
/datum/disease/advance/proc/Refresh(var/save = 1)
|
||||||
//world << "[src.name] \ref[src] - REFRESH!"
|
//world << "[src.name] \ref[src] - REFRESH!"
|
||||||
var/list/properties = GenerateProperties()
|
var/list/properties = GenerateProperties()
|
||||||
AssignProperties(properties)
|
AssignProperties(properties)
|
||||||
archive_diseases[GetDiseaseID()] = src
|
if(save)
|
||||||
|
archive_diseases[GetDiseaseID()] = new /datum/disease/advance(0, src, 1)
|
||||||
|
|
||||||
//Generate disease properties based on the effects. Returns an associated list.
|
//Generate disease properties based on the effects. Returns an associated list.
|
||||||
/datum/disease/advance/proc/GenerateProperties()
|
/datum/disease/advance/proc/GenerateProperties()
|
||||||
@@ -137,7 +149,7 @@ var/list/archive_diseases = list()
|
|||||||
CRASH("We did not have any symptoms before generating properties.")
|
CRASH("We did not have any symptoms before generating properties.")
|
||||||
return
|
return
|
||||||
|
|
||||||
var/list/properties = list("resistance" = 0, "stealth" = 0, "stage_rate" = 0, "tansmittable" = 0, "severity" = 0)
|
var/list/properties = list("resistance" = 1, "stealth" = 1, "stage_rate" = 1, "tansmittable" = 1, "severity" = 1)
|
||||||
|
|
||||||
for(var/datum/symptom/S in symptoms)
|
for(var/datum/symptom/S in symptoms)
|
||||||
|
|
||||||
@@ -156,30 +168,32 @@ var/list/archive_diseases = list()
|
|||||||
|
|
||||||
hidden = list( (properties["stealth"] > 2), (properties["stealth"] > 3) )
|
hidden = list( (properties["stealth"] > 2), (properties["stealth"] > 3) )
|
||||||
// The more symptoms we have, the less transmittable it is but some symptoms can make up for it.
|
// The more symptoms we have, the less transmittable it is but some symptoms can make up for it.
|
||||||
SetSpread(max(BLOOD, min(properties["tansmittable"] - symptoms.len, AIRBORNE)))
|
SetSpread(max(BLOOD, min(round(properties["tansmittable"] - (symptoms.len / 2)), AIRBORNE)))
|
||||||
permeability_mod = 0.5 * properties["transmittable"]
|
permeability_mod = 0.5 * properties["transmittable"]
|
||||||
stage_prob = max(properties["stage_rate"], 1)
|
stage_prob = max(properties["stage_rate"], 1)
|
||||||
SetSeverity(properties["severity"])
|
SetSeverity(properties["severity"])
|
||||||
GenerateCure(properties)
|
GenerateCure(properties)
|
||||||
|
else
|
||||||
|
CRASH("Our properties were empty or null!")
|
||||||
|
|
||||||
|
|
||||||
// Assign the spread type and give it the correct description.
|
// Assign the spread type and give it the correct description.
|
||||||
/datum/disease/advance/proc/SetSpread(var/spread_id)
|
/datum/disease/advance/proc/SetSpread(var/spread_id)
|
||||||
//world << "Setting spread type to [spread_id]"
|
|
||||||
switch(spread_id)
|
switch(spread_id)
|
||||||
|
|
||||||
if(NON_CONTAGIOUS)
|
if(NON_CONTAGIOUS)
|
||||||
spread = "None"
|
src.spread = "None"
|
||||||
if(SPECIAL)
|
if(SPECIAL)
|
||||||
spread = "None"
|
src.spread = "None"
|
||||||
if(CONTACT_GENERAL, CONTACT_HANDS, CONTACT_FEET)
|
if(CONTACT_GENERAL, CONTACT_HANDS, CONTACT_FEET)
|
||||||
spread = "On contact"
|
src.spread = "On contact"
|
||||||
if(AIRBORNE)
|
if(AIRBORNE)
|
||||||
spread = "Airborne"
|
src.spread = "Airborne"
|
||||||
if(BLOOD)
|
if(BLOOD)
|
||||||
spread = "Blood"
|
src.spread = "Blood"
|
||||||
|
|
||||||
spread_type = spread_id
|
spread_type = spread_id
|
||||||
|
//world << "Setting spread type to [spread_id]/[spread]"
|
||||||
|
|
||||||
/datum/disease/advance/proc/SetSeverity(var/level_sev)
|
/datum/disease/advance/proc/SetSeverity(var/level_sev)
|
||||||
|
|
||||||
@@ -204,9 +218,9 @@ var/list/archive_diseases = list()
|
|||||||
// Will generate a random cure, the less resistance the symptoms have, the harder the cure.
|
// Will generate a random cure, the less resistance the symptoms have, the harder the cure.
|
||||||
/datum/disease/advance/proc/GenerateCure(var/list/properties = list())
|
/datum/disease/advance/proc/GenerateCure(var/list/properties = list())
|
||||||
if(properties && properties.len)
|
if(properties && properties.len)
|
||||||
var/res = max(properties["resistance"] - symptoms.len, 0)
|
var/res = max(properties["resistance"] - (symptoms.len / 2), 0)
|
||||||
//world << "Res = [res]"
|
//world << "Res = [res]"
|
||||||
switch(res)
|
switch(round(res))
|
||||||
// Due to complications, I cannot randomly generate cures or randomly give cures.
|
// Due to complications, I cannot randomly generate cures or randomly give cures.
|
||||||
if(0)
|
if(0)
|
||||||
cure_id = "nutriment"
|
cure_id = "nutriment"
|
||||||
@@ -244,7 +258,9 @@ var/list/archive_diseases = list()
|
|||||||
|
|
||||||
// Randomly generate a symptom, has a chance to lose or gain a symptom.
|
// Randomly generate a symptom, has a chance to lose or gain a symptom.
|
||||||
/datum/disease/advance/proc/Evolve(var/level = 2)
|
/datum/disease/advance/proc/Evolve(var/level = 2)
|
||||||
AddSymptom(pick(GenerateSymptoms(level, 1)))
|
var/s = safe_pick_list(GenerateSymptoms(level, 1))
|
||||||
|
if(s)
|
||||||
|
AddSymptom(s)
|
||||||
Refresh()
|
Refresh()
|
||||||
return
|
return
|
||||||
|
|
||||||
@@ -253,6 +269,7 @@ var/list/archive_diseases = list()
|
|||||||
src.name = name
|
src.name = name
|
||||||
return
|
return
|
||||||
|
|
||||||
|
// Return a unique ID of the disease.
|
||||||
/datum/disease/advance/proc/GetDiseaseID()
|
/datum/disease/advance/proc/GetDiseaseID()
|
||||||
var/list/L = list()
|
var/list/L = list()
|
||||||
for(var/datum/symptom/S in symptoms)
|
for(var/datum/symptom/S in symptoms)
|
||||||
@@ -264,8 +281,7 @@ var/list/archive_diseases = list()
|
|||||||
// we take a random symptom away and add the new one.
|
// we take a random symptom away and add the new one.
|
||||||
/datum/disease/advance/proc/AddSymptom(var/datum/symptom/S)
|
/datum/disease/advance/proc/AddSymptom(var/datum/symptom/S)
|
||||||
|
|
||||||
for(var/datum/symptom/symp in symptoms)
|
if(HasSymptom(S))
|
||||||
if(S.id == symp.id)
|
|
||||||
return
|
return
|
||||||
|
|
||||||
if(symptoms.len < 4 + rand(-1, 1))
|
if(symptoms.len < 4 + rand(-1, 1))
|
||||||
@@ -275,7 +291,7 @@ var/list/archive_diseases = list()
|
|||||||
symptoms += S
|
symptoms += S
|
||||||
return
|
return
|
||||||
|
|
||||||
// Simply removes the symptom at the moment.
|
// Simply removes the symptom and refreshes.
|
||||||
/datum/disease/advance/proc/RemoveSymptom(var/datum/symptom/S)
|
/datum/disease/advance/proc/RemoveSymptom(var/datum/symptom/S)
|
||||||
symptoms -= S
|
symptoms -= S
|
||||||
return
|
return
|
||||||
|
|||||||
32
code/datums/diseases/advance/symptoms/fever.dm
Normal file
32
code/datums/diseases/advance/symptoms/fever.dm
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
/*
|
||||||
|
//////////////////////////////////////
|
||||||
|
|
||||||
|
Fever
|
||||||
|
|
||||||
|
No change to hidden.
|
||||||
|
Increases resistance.
|
||||||
|
Increases stage speed.
|
||||||
|
Low level.
|
||||||
|
|
||||||
|
Bonus
|
||||||
|
Heats up your body.
|
||||||
|
|
||||||
|
//////////////////////////////////////
|
||||||
|
*/
|
||||||
|
|
||||||
|
/datum/symptom/fever
|
||||||
|
|
||||||
|
name = "Fever"
|
||||||
|
stealth = 0
|
||||||
|
resistance = 3
|
||||||
|
stage_speed = 3
|
||||||
|
level = 2
|
||||||
|
|
||||||
|
/datum/symptom/fever/Activate(var/datum/disease/advance/A)
|
||||||
|
..()
|
||||||
|
if(prob(SYMPTOM_ACTIVATION_PROB))
|
||||||
|
var/mob/living/carbon/M = A.affected_mob
|
||||||
|
M << "<span class='notice'>[pick("You feel hot.", "You feel like you're burning.")]</span>"
|
||||||
|
M.bodytemperature += 30 * A.stage
|
||||||
|
|
||||||
|
return
|
||||||
@@ -5,7 +5,7 @@ Headache
|
|||||||
|
|
||||||
Noticable.
|
Noticable.
|
||||||
Highly resistant.
|
Highly resistant.
|
||||||
Doesn't increase stage speed..
|
Increases stage speed..
|
||||||
Low Level.
|
Low Level.
|
||||||
|
|
||||||
BONUS
|
BONUS
|
||||||
@@ -20,7 +20,7 @@ BONUS
|
|||||||
name = "Headache"
|
name = "Headache"
|
||||||
stealth = -1
|
stealth = -1
|
||||||
resistance = 4
|
resistance = 4
|
||||||
stage_speed = 0
|
stage_speed = 2
|
||||||
level = 1
|
level = 1
|
||||||
|
|
||||||
/datum/symptom/cough/Activate(var/datum/disease/advance/A)
|
/datum/symptom/cough/Activate(var/datum/disease/advance/A)
|
||||||
|
|||||||
31
code/datums/diseases/advance/symptoms/itching.dm
Normal file
31
code/datums/diseases/advance/symptoms/itching.dm
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
/*
|
||||||
|
//////////////////////////////////////
|
||||||
|
|
||||||
|
Itching
|
||||||
|
|
||||||
|
Not noticable or unnoticable.
|
||||||
|
Resistant.
|
||||||
|
Increases stage speed..
|
||||||
|
Low Level.
|
||||||
|
|
||||||
|
BONUS
|
||||||
|
Displays an annoying message!
|
||||||
|
Should be used for buffing your disease.
|
||||||
|
|
||||||
|
//////////////////////////////////////
|
||||||
|
*/
|
||||||
|
|
||||||
|
/datum/symptom/itching
|
||||||
|
|
||||||
|
name = "Itching"
|
||||||
|
stealth = 0
|
||||||
|
resistance = 3
|
||||||
|
stage_speed = 3
|
||||||
|
level = 1
|
||||||
|
|
||||||
|
/datum/symptom/itching/Activate(var/datum/disease/advance/A)
|
||||||
|
..()
|
||||||
|
if(prob(SYMPTOM_ACTIVATION_PROB))
|
||||||
|
var/mob/living/M = A.affected_mob
|
||||||
|
M << "<span class='notice'>Your [pick("back", "arm", "leg", "elbow", "head")] itches.</span>"
|
||||||
|
return
|
||||||
@@ -4,7 +4,7 @@
|
|||||||
Sneezing
|
Sneezing
|
||||||
|
|
||||||
Very Noticable.
|
Very Noticable.
|
||||||
Decreases resistance.
|
Increases resistance.
|
||||||
Doesn't increase stage speed.
|
Doesn't increase stage speed.
|
||||||
Low Level.
|
Low Level.
|
||||||
|
|
||||||
@@ -19,17 +19,17 @@ Bonus
|
|||||||
|
|
||||||
name = "Sneezing"
|
name = "Sneezing"
|
||||||
stealth = -2
|
stealth = -2
|
||||||
resistance = -1
|
resistance = 2
|
||||||
stage_speed = 0
|
stage_speed = 0
|
||||||
level = 1
|
level = 1
|
||||||
|
|
||||||
/datum/symptom/sneeze/Activate(var/datum/disease/advance/A)
|
/datum/symptom/sneeze/Activate(var/datum/disease/advance/A)
|
||||||
..()
|
..()
|
||||||
if(prob(SYMPTOM_ACTIVATION_PROB + (A.stage * 2)))
|
if(prob(SYMPTOM_ACTIVATION_PROB))
|
||||||
var/mob/living/M = A.affected_mob
|
var/mob/living/M = A.affected_mob
|
||||||
switch(A.stage)
|
switch(A.stage)
|
||||||
if(1, 2, 3, 4)
|
if(1, 2, 3)
|
||||||
M.emote("sniffs")
|
M.visible_message("<B>[M]</B> sniffs.")
|
||||||
else
|
else
|
||||||
M.emote("sneeze")
|
M.emote("sneeze")
|
||||||
A.spread(A.holder, 5, AIRBORNE)
|
A.spread(A.holder, 5, AIRBORNE)
|
||||||
|
|||||||
@@ -41,7 +41,7 @@ Bonus
|
|||||||
/datum/symptom/vomit/proc/Vomit(var/mob/living/M)
|
/datum/symptom/vomit/proc/Vomit(var/mob/living/M)
|
||||||
|
|
||||||
M.Stun(5)
|
M.Stun(5)
|
||||||
M.emote("vomits on the floor")
|
M.visible_message("<B>[M]</B> vomits on the floor!")
|
||||||
|
|
||||||
M.nutrition -= 20
|
M.nutrition -= 20
|
||||||
M.adjustToxLoss(-3)
|
M.adjustToxLoss(-3)
|
||||||
@@ -79,7 +79,7 @@ Bonus
|
|||||||
/datum/symptom/vomit/blood/Vomit(var/mob/living/M)
|
/datum/symptom/vomit/blood/Vomit(var/mob/living/M)
|
||||||
|
|
||||||
M.Stun(5)
|
M.Stun(5)
|
||||||
M.emote("vomits on the floor")
|
M.visible_message("<B>[M]</B> vomits on the floor!")
|
||||||
|
|
||||||
// They lose blood and health.
|
// They lose blood and health.
|
||||||
var/brute_dam = M.getBruteLoss()
|
var/brute_dam = M.getBruteLoss()
|
||||||
|
|||||||
@@ -503,6 +503,7 @@
|
|||||||
D = archive_diseases[path]
|
D = archive_diseases[path]
|
||||||
vaccine_type = path
|
vaccine_type = path
|
||||||
else
|
else
|
||||||
|
if(vaccine_type in diseases)
|
||||||
D = new vaccine_type(0, null)
|
D = new vaccine_type(0, null)
|
||||||
|
|
||||||
if(D)
|
if(D)
|
||||||
@@ -531,8 +532,10 @@
|
|||||||
var/datum/disease/D = null
|
var/datum/disease/D = null
|
||||||
if(!type)
|
if(!type)
|
||||||
var/datum/disease/advance/A = archive_diseases[href_list["create_virus_culture"]]
|
var/datum/disease/advance/A = archive_diseases[href_list["create_virus_culture"]]
|
||||||
|
if(A)
|
||||||
D = new A.type(0, A)
|
D = new A.type(0, A)
|
||||||
else
|
else
|
||||||
|
if(type in diseases) // Make sure this is a disease
|
||||||
D = new type(0, null)
|
D = new type(0, null)
|
||||||
var/list/data = list("viruses"=list(D))
|
var/list/data = list("viruses"=list(D))
|
||||||
var/name = sanitize(input(usr,"Name:","Name the culture",D.name))
|
var/name = sanitize(input(usr,"Name:","Name the culture",D.name))
|
||||||
@@ -597,6 +600,8 @@
|
|||||||
dat += "The beaker is empty<BR>"
|
dat += "The beaker is empty<BR>"
|
||||||
else if(!Blood)
|
else if(!Blood)
|
||||||
dat += "No blood sample found in beaker"
|
dat += "No blood sample found in beaker"
|
||||||
|
else if(!Blood.data)
|
||||||
|
dat += "No blood data found in beaker."
|
||||||
else
|
else
|
||||||
dat += "<h3>Blood sample data:</h3>"
|
dat += "<h3>Blood sample data:</h3>"
|
||||||
dat += "<b>Blood DNA:</b> [(Blood.data["blood_DNA"]||"none")]<BR>"
|
dat += "<b>Blood DNA:</b> [(Blood.data["blood_DNA"]||"none")]<BR>"
|
||||||
@@ -617,6 +622,9 @@
|
|||||||
D = archive_diseases[A.GetDiseaseID()]
|
D = archive_diseases[A.GetDiseaseID()]
|
||||||
disease_creation = A.GetDiseaseID()
|
disease_creation = A.GetDiseaseID()
|
||||||
|
|
||||||
|
if(!D)
|
||||||
|
CRASH("We weren't able to get the advance disease from the archive.")
|
||||||
|
|
||||||
dat += "<b>Disease Agent:</b> [D?"[D.agent] - <A href='?src=\ref[src];create_virus_culture=[disease_creation]'>Create virus culture bottle</A>":"none"]<BR>"
|
dat += "<b>Disease Agent:</b> [D?"[D.agent] - <A href='?src=\ref[src];create_virus_culture=[disease_creation]'>Create virus culture bottle</A>":"none"]<BR>"
|
||||||
dat += "<b>Common name:</b> [(D.name||"none")]<BR>"
|
dat += "<b>Common name:</b> [(D.name||"none")]<BR>"
|
||||||
dat += "<b>Description: </b> [(D.desc||"none")]<BR>"
|
dat += "<b>Description: </b> [(D.desc||"none")]<BR>"
|
||||||
@@ -658,6 +666,7 @@
|
|||||||
onclose(user, "pandemic")
|
onclose(user, "pandemic")
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|
||||||
/obj/machinery/computer/pandemic/attackby(var/obj/I as obj, var/mob/user as mob)
|
/obj/machinery/computer/pandemic/attackby(var/obj/I as obj, var/mob/user as mob)
|
||||||
if(istype(I, /obj/item/weapon/screwdriver))
|
if(istype(I, /obj/item/weapon/screwdriver))
|
||||||
playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
|
playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
|
||||||
|
|||||||
@@ -459,8 +459,8 @@ datum
|
|||||||
name = "Mix Virus"
|
name = "Mix Virus"
|
||||||
id = "mixvirus"
|
id = "mixvirus"
|
||||||
result = "blood"
|
result = "blood"
|
||||||
required_reagents = list("blood" = 5, "virusfood" = 5)
|
required_reagents = list("blood" = 1, "virusfood" = 5)
|
||||||
result_amount = 5
|
result_amount = 1
|
||||||
var/level = 2
|
var/level = 2
|
||||||
|
|
||||||
on_reaction(var/datum/reagents/holder, var/created_volume)
|
on_reaction(var/datum/reagents/holder, var/created_volume)
|
||||||
|
|||||||
Reference in New Issue
Block a user