mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-20 03:25:49 +01:00
Merge branch 'master' into buttbots2
Conflicts: code/defines/procs/AStar.dm code/modules/mob/living/simple_animal/bot/cleanbot.dm code/modules/mob/living/simple_animal/bot/medbot.dm paradise.dme
This commit is contained in:
@@ -12,7 +12,7 @@
|
||||
var/vol_temp
|
||||
// see libs/IconProcs/IconProcs.dm
|
||||
for(var/datum/reagent/reagent in reagent_list)
|
||||
if(reagent.id == "blood" && reagent.data["blood_colour"])
|
||||
if(reagent.id == "blood" && reagent.data && reagent.data["blood_colour"])
|
||||
reagent_color = reagent.data["blood_colour"]
|
||||
else
|
||||
reagent_color = reagent.color
|
||||
|
||||
@@ -304,13 +304,6 @@ var/const/INGEST = 2
|
||||
if(!C.no_message)
|
||||
M << "\blue \icon[my_atom] [C.mix_message]"
|
||||
|
||||
/* if(istype(my_atom, /obj/item/slime_core))
|
||||
var/obj/item/slime_core/ME = my_atom
|
||||
ME.Uses--
|
||||
if(ME.Uses <= 0) // give the notification that the slime core is dead
|
||||
for(var/mob/M in viewers(4, get_turf(my_atom)) )
|
||||
M << "\blue \icon[my_atom] The innards begin to boil!"
|
||||
*/
|
||||
if(istype(my_atom, /obj/item/slime_extract))
|
||||
var/obj/item/slime_extract/ME2 = my_atom
|
||||
ME2.Uses--
|
||||
@@ -435,6 +428,11 @@ var/const/INGEST = 2
|
||||
else R.reaction_obj(A, R.volume+volume_modifier)
|
||||
return
|
||||
|
||||
/datum/reagents/proc/add_reagent_list(list/list_reagents, list/data=null) // Like add_reagent but you can enter a list. Format it like this: list("toxin" = 10, "beer" = 15)
|
||||
for(var/r_id in list_reagents)
|
||||
var/amt = list_reagents[r_id]
|
||||
add_reagent(r_id, amt, data)
|
||||
|
||||
/datum/reagents/proc/add_reagent(var/reagent, var/amount, var/list/data=null, var/reagtemp = 300)
|
||||
if(!isnum(amount)) return 1
|
||||
update_total()
|
||||
@@ -449,33 +447,7 @@ var/const/INGEST = 2
|
||||
R.volume += amount
|
||||
update_total()
|
||||
my_atom.on_reagent_change()
|
||||
/*
|
||||
// mix dem viruses
|
||||
if(R.id == "blood" && reagent == "blood")
|
||||
if(R.data && data)
|
||||
|
||||
if(R.data["viruses"] || data["viruses"])
|
||||
|
||||
var/list/mix1 = R.data["viruses"]
|
||||
var/list/mix2 = data["viruses"]
|
||||
|
||||
// Stop issues with the list changing during mixing.
|
||||
var/list/to_mix = list()
|
||||
|
||||
for(var/datum/disease/advance/AD in mix1)
|
||||
to_mix += AD
|
||||
for(var/datum/disease/advance/AD in mix2)
|
||||
to_mix += AD
|
||||
|
||||
var/datum/disease/advance/AD = Advance_Mix(to_mix)
|
||||
if(AD)
|
||||
var/list/preserve = list(AD)
|
||||
for(var/D in R.data["viruses"])
|
||||
if(!istype(D, /datum/disease/advance))
|
||||
preserve += D
|
||||
R.data["viruses"] = preserve
|
||||
*/
|
||||
|
||||
R.on_merge(data)
|
||||
handle_reactions()
|
||||
return 0
|
||||
|
||||
@@ -486,13 +458,10 @@ var/const/INGEST = 2
|
||||
reagent_list += R
|
||||
R.holder = src
|
||||
R.volume = amount
|
||||
// SetViruses(R, data) // Includes setting data
|
||||
if(data) R.data = data
|
||||
//debug
|
||||
//world << "Adding data"
|
||||
//for(var/D in R.data)
|
||||
// world << "Container data: [D] = [R.data[D]]"
|
||||
//debug
|
||||
if(data)
|
||||
R.data = data
|
||||
R.on_new(data)
|
||||
|
||||
update_total()
|
||||
my_atom.on_reagent_change()
|
||||
handle_reactions()
|
||||
@@ -605,9 +574,9 @@ var/const/INGEST = 2
|
||||
// Technically we should probably copy all data lists, but
|
||||
// that could possibly eat up a lot of memory needlessly
|
||||
// if most data lists are read-only.
|
||||
if (trans_data["virus2"])
|
||||
var/list/v = trans_data["virus2"]
|
||||
trans_data["virus2"] = v.Copy()
|
||||
if(trans_data["viruses"])
|
||||
var/list/v = trans_data["viruses"]
|
||||
trans_data["viruses"] = v.Copy()
|
||||
|
||||
return trans_data
|
||||
|
||||
|
||||
@@ -5,10 +5,188 @@
|
||||
reagent_state = SOLID
|
||||
color = "#FFFFFF"
|
||||
|
||||
/datum/reagent/spider_eggs/on_mob_life(var/mob/living/M as mob)
|
||||
if(!M) M = holder.my_atom
|
||||
/datum/reagent/spider_eggs/on_mob_life(mob/living/M)
|
||||
if(volume > 2.5)
|
||||
if(iscarbon(M))
|
||||
if(!M.get_int_organ(/obj/item/organ/internal/body_egg))
|
||||
new/obj/item/organ/internal/body_egg/spider_eggs(M) //Yes, even Xenos can fall victim to the plague that is spider infestation.
|
||||
..()
|
||||
..()
|
||||
|
||||
|
||||
//virus food
|
||||
/datum/reagent/virus_food
|
||||
name = "Virus Food"
|
||||
id = "virusfood"
|
||||
description = "A mixture of water, milk, and oxygen. Virus cells can use this mixture to reproduce."
|
||||
reagent_state = LIQUID
|
||||
nutriment_factor = 2 * REAGENTS_METABOLISM
|
||||
color = "#899613" // rgb: 137, 150, 19
|
||||
|
||||
/datum/reagent/virus_food/on_mob_life(mob/living/M)
|
||||
M.nutrition += nutriment_factor * REAGENTS_EFFECT_MULTIPLIER
|
||||
..()
|
||||
|
||||
/datum/reagent/mutagen/mutagenvirusfood
|
||||
name = "mutagenic agar"
|
||||
id = "mutagenvirusfood"
|
||||
description = "mutates blood"
|
||||
color = "#A3C00F" // rgb: 163,192,15
|
||||
|
||||
/datum/reagent/mutagen/mutagenvirusfood/sugar
|
||||
name = "sucrose agar"
|
||||
id = "sugarvirusfood"
|
||||
color = "#41B0C0" // rgb: 65,176,192
|
||||
|
||||
/datum/reagent/diphenhydramine/diphenhydraminevirusfood
|
||||
name = "virus rations"
|
||||
id = "diphenhydraminevirusfood"
|
||||
description = "mutates blood"
|
||||
color = "#D18AA5" // rgb: 209,138,165
|
||||
|
||||
/datum/reagent/plasma/plasmavirusfood
|
||||
name = "virus plasma"
|
||||
id = "plasmavirusfood"
|
||||
description = "mutates blood"
|
||||
color = "#A69DA9" // rgb: 166,157,169
|
||||
|
||||
/datum/reagent/plasma/plasmavirusfood/weak
|
||||
name = "weakened virus plasma"
|
||||
id = "weakplasmavirusfood"
|
||||
color = "#CEC3C6" // rgb: 206,195,198
|
||||
|
||||
//reactions
|
||||
/datum/chemical_reaction/virus_food
|
||||
name = "Virus Food"
|
||||
id = "virusfood"
|
||||
result = "virusfood"
|
||||
required_reagents = list("water" = 1, "milk" = 1, "oxygen" = 1)
|
||||
result_amount = 3
|
||||
|
||||
/datum/chemical_reaction/virus_food_mutagen
|
||||
name = "mutagenic agar"
|
||||
id = "mutagenvirusfood"
|
||||
result = "mutagenvirusfood"
|
||||
required_reagents = list("mutagen" = 1, "virusfood" = 1)
|
||||
result_amount = 1
|
||||
|
||||
/datum/chemical_reaction/virus_food_diphenhydramine
|
||||
name = "virus rations"
|
||||
id = "diphenhydraminevirusfood"
|
||||
result = "diphenhydraminevirusfood"
|
||||
required_reagents = list("diphenhydramine" = 1, "virusfood" = 1)
|
||||
result_amount = 1
|
||||
|
||||
/datum/chemical_reaction/virus_food_plasma
|
||||
name = "virus plasma"
|
||||
id = "plasmavirusfood"
|
||||
result = "plasmavirusfood"
|
||||
required_reagents = list("plasma" = 1, "virusfood" = 1)
|
||||
result_amount = 1
|
||||
|
||||
/datum/chemical_reaction/virus_food_plasma_diphenhydramine
|
||||
name = "weakened virus plasma"
|
||||
id = "weakplasmavirusfood"
|
||||
result = "weakplasmavirusfood"
|
||||
required_reagents = list("diphenhydramine" = 1, "plasmavirusfood" = 1)
|
||||
result_amount = 2
|
||||
|
||||
/datum/chemical_reaction/virus_food_mutagen_sugar
|
||||
name = "sucrose agar"
|
||||
id = "sugarvirusfood"
|
||||
result = "sugarvirusfood"
|
||||
required_reagents = list("sugar" = 1, "mutagenvirusfood" = 1)
|
||||
result_amount = 2
|
||||
|
||||
/datum/chemical_reaction/virus_food_mutagen_salineglucose
|
||||
name = "sucrose agar"
|
||||
id = "salineglucosevirusfood"
|
||||
result = "sugarvirusfood"
|
||||
required_reagents = list("salglu_solution" = 1, "mutagenvirusfood" = 1)
|
||||
result_amount = 2
|
||||
|
||||
|
||||
//mix virus
|
||||
/datum/chemical_reaction/mix_virus
|
||||
name = "Mix Virus"
|
||||
id = "mixvirus"
|
||||
required_reagents = list("virusfood" = 1)
|
||||
required_catalysts = list("blood" = 1)
|
||||
var/level_min = 0
|
||||
var/level_max = 2
|
||||
|
||||
/datum/chemical_reaction/mix_virus/on_reaction(datum/reagents/holder, created_volume)
|
||||
var/datum/reagent/blood/B = locate(/datum/reagent/blood) in holder.reagent_list
|
||||
if(B && B.data)
|
||||
var/datum/disease/advance/D = locate(/datum/disease/advance) in B.data["viruses"]
|
||||
if(D)
|
||||
D.Evolve(level_min, level_max)
|
||||
|
||||
|
||||
/datum/chemical_reaction/mix_virus/mix_virus_2
|
||||
name = "Mix Virus 2"
|
||||
id = "mixvirus2"
|
||||
required_reagents = list("mutagen" = 1)
|
||||
level_min = 2
|
||||
level_max = 4
|
||||
|
||||
/datum/chemical_reaction/mix_virus/mix_virus_3
|
||||
name = "Mix Virus 3"
|
||||
id = "mixvirus3"
|
||||
required_reagents = list("plasma" = 1)
|
||||
level_min = 4
|
||||
level_max = 6
|
||||
|
||||
/datum/chemical_reaction/mix_virus/mix_virus_4
|
||||
name = "Mix Virus 4"
|
||||
id = "mixvirus4"
|
||||
required_reagents = list("uranium" = 1)
|
||||
level_min = 5
|
||||
level_max = 6
|
||||
|
||||
/datum/chemical_reaction/mix_virus/mix_virus_5
|
||||
name = "Mix Virus 5"
|
||||
id = "mixvirus5"
|
||||
required_reagents = list("mutagenvirusfood" = 1)
|
||||
level_min = 3
|
||||
level_max = 3
|
||||
|
||||
/datum/chemical_reaction/mix_virus/mix_virus_6
|
||||
name = "Mix Virus 6"
|
||||
id = "mixvirus6"
|
||||
required_reagents = list("sugarvirusfood" = 1)
|
||||
level_min = 4
|
||||
level_max = 4
|
||||
|
||||
/datum/chemical_reaction/mix_virus/mix_virus_7
|
||||
name = "Mix Virus 7"
|
||||
id = "mixvirus7"
|
||||
required_reagents = list("weakplasmavirusfood" = 1)
|
||||
level_min = 5
|
||||
level_max = 5
|
||||
|
||||
/datum/chemical_reaction/mix_virus/mix_virus_8
|
||||
name = "Mix Virus 8"
|
||||
id = "mixvirus8"
|
||||
required_reagents = list("plasmavirusfood" = 1)
|
||||
level_min = 6
|
||||
level_max = 6
|
||||
|
||||
/datum/chemical_reaction/mix_virus/mix_virus_9
|
||||
name = "Mix Virus 9"
|
||||
id = "mixvirus9"
|
||||
required_reagents = list("diphenhydraminevirusfood" = 1)
|
||||
level_min = 1
|
||||
level_max = 1
|
||||
|
||||
/datum/chemical_reaction/mix_virus/rem_virus
|
||||
name = "Devolve Virus"
|
||||
id = "remvirus"
|
||||
required_reagents = list("diphenhydramine" = 1)
|
||||
required_catalysts = list("blood" = 1)
|
||||
|
||||
/datum/chemical_reaction/mix_virus/rem_virus/on_reaction(datum/reagents/holder, created_volume)
|
||||
var/datum/reagent/blood/B = locate(/datum/reagent/blood) in holder.reagent_list
|
||||
if(B && B.data)
|
||||
var/datum/disease/advance/D = locate(/datum/disease/advance) in B.data["viruses"]
|
||||
if(D)
|
||||
D.Devolve()
|
||||
@@ -39,6 +39,7 @@
|
||||
slur_start = 30
|
||||
brawl_start = 40
|
||||
confused_start = 100
|
||||
alcohol_perc = 0.4
|
||||
|
||||
/datum/chemical_reaction/applejack
|
||||
name = "applejack"
|
||||
@@ -55,6 +56,7 @@
|
||||
id = "jackrose"
|
||||
description = "A classic cocktail that had fallen out of fashion, but never out of taste,"
|
||||
color = "#664300"
|
||||
alcohol_perc = 0.4
|
||||
|
||||
/datum/chemical_reaction/jackrose
|
||||
name = "jackrose"
|
||||
@@ -79,12 +81,13 @@
|
||||
metabolization_rate = 0.4
|
||||
vomit_start = INFINITY //
|
||||
blur_start = INFINITY //
|
||||
pass_out = INFINITY //INFINITY, so that IPCs don't puke and stuff
|
||||
pass_out = INFINITY //INFINITY, so that IPCs don't puke and stuff
|
||||
var/spark_start = 50 //amount absorbed after which mob starts sparking
|
||||
var/collapse_start = 150 //amount absorbed after wich mob starts sparking and collapsing (DOUBLE THE SPARKS, DOUBLE THE FUN)
|
||||
var/collapse_start = 80 //amount absorbed after wich mob starts sparking and collapsing (DOUBLE THE SPARKS, DOUBLE THE FUN)
|
||||
var/braindamage_start = 250 //amount absorbed after which mob starts taking a small amount of brain damage
|
||||
|
||||
|
||||
|
||||
/datum/chemical_reaction/synthanol
|
||||
name = "Synthanol"
|
||||
id = "synthanol"
|
||||
@@ -96,7 +99,11 @@
|
||||
|
||||
/datum/reagent/ethanol/synthanol/on_mob_life(var/mob/living/M as mob, var/alien)
|
||||
|
||||
var/d = data
|
||||
var/d = 0
|
||||
// make all the beverages work together
|
||||
for(var/datum/reagent/ethanol/synthanol/A in holder.reagent_list)
|
||||
if(isnum(A.current_cycle)) d += A.current_cycle * A.alcohol_perc
|
||||
|
||||
if(M.isSynthetic()) //works normally on synthetics
|
||||
if(d >= spark_start && prob(25))
|
||||
var/datum/effect/system/spark_spread/s = new /datum/effect/system/spark_spread
|
||||
@@ -107,7 +114,7 @@
|
||||
var/datum/effect/system/spark_spread/s = new /datum/effect/system/spark_spread
|
||||
s.set_up(3, 1, M)
|
||||
s.start()
|
||||
if(d >= braindamage_start && prob(33))
|
||||
if(d >= braindamage_start && prob(10))
|
||||
M.adjustBrainLoss(1)
|
||||
|
||||
else
|
||||
@@ -131,6 +138,7 @@ datum/reagent/ethanol/synthanol/reaction_mob(var/mob/M, var/method=TOUCH, var/vo
|
||||
description = "An oily substance that an IPC could technically consider a 'drink'."
|
||||
reagent_state = LIQUID
|
||||
color = "#363636"
|
||||
alcohol_perc = 0.5
|
||||
|
||||
/datum/chemical_reaction/synthanol/robottears
|
||||
name = "Robot Tears"
|
||||
@@ -146,6 +154,7 @@ datum/reagent/ethanol/synthanol/reaction_mob(var/mob/M, var/method=TOUCH, var/vo
|
||||
description = "A fruit drink meant only for synthetics, however that works."
|
||||
reagent_state = LIQUID
|
||||
color = "#adb21f"
|
||||
alcohol_perc = 0.3
|
||||
|
||||
/datum/chemical_reaction/synthanol/trinary
|
||||
name = "Trinary"
|
||||
@@ -161,6 +170,7 @@ datum/reagent/ethanol/synthanol/reaction_mob(var/mob/M, var/method=TOUCH, var/vo
|
||||
description = "A drink containing some organic ingredients, but meant only for synthetics."
|
||||
reagent_state = LIQUID
|
||||
color = "#5b3210"
|
||||
alcohol_perc = 0.5
|
||||
|
||||
/datum/chemical_reaction/synthanol/servo
|
||||
name = "Servo"
|
||||
@@ -176,6 +186,7 @@ datum/reagent/ethanol/synthanol/reaction_mob(var/mob/M, var/method=TOUCH, var/vo
|
||||
description = "A potent mix of alcohol and synthanol. Will only work on synthetics."
|
||||
reagent_state = LIQUID
|
||||
color = "#e7ae04"
|
||||
alcohol_perc = 0.2
|
||||
|
||||
/datum/chemical_reaction/synthanol/uplink
|
||||
name = "Uplink"
|
||||
@@ -190,6 +201,7 @@ datum/reagent/ethanol/synthanol/reaction_mob(var/mob/M, var/method=TOUCH, var/vo
|
||||
description = "The classic drink adjusted for a robot's tastes."
|
||||
reagent_state = LIQUID
|
||||
color = "#7204e7"
|
||||
alcohol_perc = 0.5
|
||||
|
||||
/datum/chemical_reaction/synthanol/synthnsoda
|
||||
name = "Synth 'n Soda"
|
||||
@@ -204,6 +216,7 @@ datum/reagent/ethanol/synthanol/reaction_mob(var/mob/M, var/method=TOUCH, var/vo
|
||||
description = "Someone mixed wine and alcohol for robots. Hope you're proud of yourself."
|
||||
reagent_state = LIQUID
|
||||
color = "#d004e7"
|
||||
alcohol_perc = 0.5
|
||||
|
||||
/datum/chemical_reaction/synthanol/synthignon
|
||||
name = "Synthignon"
|
||||
|
||||
@@ -1,20 +1,18 @@
|
||||
/datum/chemical_reaction/
|
||||
|
||||
hydrocodone
|
||||
/datum/chemical_reaction/hydrocodone
|
||||
name = "Hydrocodone"
|
||||
id = "hydrocodone"
|
||||
result = "hydrocodone"
|
||||
required_reagents = list("morphine" = 1, "sacid" = 1, "water" = 1, "oil" = 1)
|
||||
result_amount = 2
|
||||
|
||||
mitocholide
|
||||
/datum/chemical_reaction/mitocholide
|
||||
name = "mitocholide"
|
||||
id = "mitocholide"
|
||||
result = "mitocholide"
|
||||
required_reagents = list("synthflesh" = 1, "cryoxadone" = 1, "plasma" = 1)
|
||||
result_amount = 3
|
||||
|
||||
cryoxadone
|
||||
/datum/chemical_reaction/cryoxadone
|
||||
name = "Cryoxadone"
|
||||
id = "cryoxadone"
|
||||
result = "cryoxadone"
|
||||
@@ -23,7 +21,7 @@
|
||||
mix_message = "The solution bubbles softly."
|
||||
mix_sound = 'sound/goonstation/misc/drinkfizz.ogg'
|
||||
|
||||
spaceacillin
|
||||
/datum/chemical_reaction/spaceacillin
|
||||
name = "Spaceacillin"
|
||||
id = "spaceacillin"
|
||||
result = "spaceacillin"
|
||||
@@ -31,62 +29,16 @@
|
||||
result_amount = 2
|
||||
mix_message = "The solvent extracts an antibiotic compound from the fungus."
|
||||
|
||||
rezadone
|
||||
/datum/chemical_reaction/rezadone
|
||||
name = "Rezadone"
|
||||
id = "rezadone"
|
||||
result = "rezadone"
|
||||
required_reagents = list("carpotoxin" = 1, "spaceacillin" = 1, "copper" = 1)
|
||||
result_amount = 3
|
||||
|
||||
virus_food
|
||||
name = "Virus Food"
|
||||
id = "virusfood"
|
||||
result = "virusfood"
|
||||
required_reagents = list("water" = 1, "milk" = 1, "oxygen" = 1)
|
||||
result_amount = 3
|
||||
/*
|
||||
mix_virus
|
||||
name = "Mix Virus"
|
||||
id = "mixvirus"
|
||||
result = "blood"
|
||||
required_reagents = list("virusfood" = 5)
|
||||
required_catalysts = list("blood")
|
||||
var/level = 2
|
||||
|
||||
on_reaction(var/datum/reagents/holder, var/created_volume)
|
||||
|
||||
var/datum/reagent/blood/B = locate(/datum/reagent/blood) in holder.reagent_list
|
||||
if(B && B.data)
|
||||
var/datum/disease/advance/D = locate(/datum/disease/advance) in B.data["viruses"]
|
||||
if(D)
|
||||
D.Evolve(level - rand(0, 1))
|
||||
|
||||
|
||||
mix_virus_2
|
||||
|
||||
name = "Mix Virus 2"
|
||||
id = "mixvirus2"
|
||||
required_reagents = list("mutagen" = 5)
|
||||
level = 4
|
||||
|
||||
rem_virus
|
||||
|
||||
name = "Devolve Virus"
|
||||
id = "remvirus"
|
||||
required_reagents = list("synaptizine" = 5)
|
||||
|
||||
on_reaction(var/datum/reagents/holder, var/created_volume)
|
||||
|
||||
var/datum/reagent/blood/B = locate(/datum/reagent/blood) in holder.reagent_list
|
||||
if(B && B.data)
|
||||
var/datum/disease/advance/D = locate(/datum/disease/advance) in B.data["viruses"]
|
||||
if(D)
|
||||
D.Devolve()
|
||||
*/
|
||||
|
||||
sterilizine
|
||||
/datum/chemical_reaction/sterilizine
|
||||
name = "Sterilizine"
|
||||
id = "sterilizine"
|
||||
result = "sterilizine"
|
||||
required_reagents = list("antihol" = 2, "chlorine" = 1)
|
||||
result_amount = 3
|
||||
result_amount = 3
|
||||
|
||||
@@ -1,207 +1,147 @@
|
||||
/datum/chemical_reaction/
|
||||
// foam and foam precursor
|
||||
|
||||
surfactant
|
||||
name = "Foam surfactant"
|
||||
id = "foam surfactant"
|
||||
result = "fluorosurfactant"
|
||||
required_reagents = list("fluorine" = 2, "carbon" = 2, "sacid" = 1)
|
||||
result_amount = 5
|
||||
mix_message = "A head of foam results from the mixture's constant fizzing."
|
||||
/datum/chemical_reaction/surfactant
|
||||
name = "Foam surfactant"
|
||||
id = "foam surfactant"
|
||||
result = "fluorosurfactant"
|
||||
required_reagents = list("fluorine" = 2, "carbon" = 2, "sacid" = 1)
|
||||
result_amount = 5
|
||||
mix_message = "A head of foam results from the mixture's constant fizzing."
|
||||
|
||||
/datum/chemical_reaction/foam
|
||||
name = "Foam"
|
||||
id = "foam"
|
||||
result = null
|
||||
required_reagents = list("fluorosurfactant" = 1, "water" = 1)
|
||||
result_amount = 2
|
||||
|
||||
/datum/chemical_reaction/foam/on_reaction(var/datum/reagents/holder, var/created_volume)
|
||||
var/location = get_turf(holder.my_atom)
|
||||
holder.my_atom.visible_message("<span class='warning'>The solution spews out foam!</span>")
|
||||
|
||||
var/datum/effect/system/foam_spread/s = new()
|
||||
s.set_up(created_volume, location, holder, 0)
|
||||
s.start()
|
||||
holder.clear_reagents()
|
||||
|
||||
|
||||
foam
|
||||
name = "Foam"
|
||||
id = "foam"
|
||||
result = null
|
||||
required_reagents = list("fluorosurfactant" = 1, "water" = 1)
|
||||
result_amount = 2
|
||||
/datum/chemical_reaction/metalfoam
|
||||
name = "Metal Foam"
|
||||
id = "metalfoam"
|
||||
result = null
|
||||
required_reagents = list("aluminum" = 3, "fluorosurfactant" = 1, "sacid" = 1)
|
||||
result_amount = 5
|
||||
|
||||
on_reaction(var/datum/reagents/holder, var/created_volume)
|
||||
/datum/chemical_reaction/metalfoam/on_reaction(var/datum/reagents/holder, var/created_volume)
|
||||
var/location = get_turf(holder.my_atom)
|
||||
|
||||
holder.my_atom.visible_message("<span class='warning'>The solution spews out a metalic foam!</span>")
|
||||
|
||||
var/datum/effect/system/foam_spread/s = new()
|
||||
s.set_up(created_volume, location, holder, MFOAM_ALUMINUM)
|
||||
s.start()
|
||||
|
||||
|
||||
var/location = get_turf(holder.my_atom)
|
||||
for(var/mob/M in viewers(5, location))
|
||||
M << "\red The solution violently bubbles!"
|
||||
/datum/chemical_reaction/ironfoam
|
||||
name = "Iron Foam"
|
||||
id = "ironlfoam"
|
||||
result = null
|
||||
required_reagents = list("iron" = 3, "fluorosurfactant" = 1, "sacid" = 1)
|
||||
result_amount = 5
|
||||
|
||||
location = get_turf(holder.my_atom)
|
||||
/datum/chemical_reaction/ironfoam/on_reaction(var/datum/reagents/holder, var/created_volume)
|
||||
var/location = get_turf(holder.my_atom)
|
||||
|
||||
for(var/mob/M in viewers(5, location))
|
||||
M << "\red The solution spews out foam!"
|
||||
holder.my_atom.visible_message("<span class='warning>The solution spews out a metalic foam!</span>")
|
||||
|
||||
//world << "Holder volume is [holder.total_volume]"
|
||||
//for(var/datum/reagent/R in holder.reagent_list)
|
||||
// world << "[R.name] = [R.volume]"
|
||||
var/datum/effect/system/foam_spread/s = new()
|
||||
s.set_up(created_volume, location, holder, MFOAM_IRON)
|
||||
s.start()
|
||||
|
||||
var/datum/effect/system/foam_spread/s = new()
|
||||
s.set_up(created_volume, location, holder, 0)
|
||||
s.start()
|
||||
holder.clear_reagents()
|
||||
return
|
||||
|
||||
metalfoam
|
||||
name = "Metal Foam"
|
||||
id = "metalfoam"
|
||||
result = null
|
||||
required_reagents = list("aluminum" = 3, "fluorosurfactant" = 1, "sacid" = 1)
|
||||
result_amount = 5
|
||||
|
||||
on_reaction(var/datum/reagents/holder, var/created_volume)
|
||||
|
||||
|
||||
var/location = get_turf(holder.my_atom)
|
||||
|
||||
for(var/mob/M in viewers(5, location))
|
||||
M << "\red The solution spews out a metalic foam!"
|
||||
|
||||
var/datum/effect/system/foam_spread/s = new()
|
||||
s.set_up(created_volume, location, holder, 1)
|
||||
s.start()
|
||||
return
|
||||
|
||||
ironfoam
|
||||
name = "Iron Foam"
|
||||
id = "ironlfoam"
|
||||
result = null
|
||||
required_reagents = list("iron" = 3, "fluorosurfactant" = 1, "sacid" = 1)
|
||||
result_amount = 5
|
||||
|
||||
on_reaction(var/datum/reagents/holder, var/created_volume)
|
||||
|
||||
|
||||
var/location = get_turf(holder.my_atom)
|
||||
|
||||
for(var/mob/M in viewers(5, location))
|
||||
M << "\red The solution spews out a metalic foam!"
|
||||
|
||||
var/datum/effect/system/foam_spread/s = new()
|
||||
s.set_up(created_volume, location, holder, 2)
|
||||
s.start()
|
||||
return
|
||||
|
||||
// Synthesizing these three chemicals is pretty complex in real life, but fuck it, it's just a game!
|
||||
ammonia
|
||||
name = "Ammonia"
|
||||
id = "ammonia"
|
||||
result = "ammonia"
|
||||
required_reagents = list("hydrogen" = 3, "nitrogen" = 1)
|
||||
result_amount = 3
|
||||
mix_message = "The mixture bubbles, emitting an acrid reek."
|
||||
/datum/chemical_reaction/ammonia
|
||||
name = "Ammonia"
|
||||
id = "ammonia"
|
||||
result = "ammonia"
|
||||
required_reagents = list("hydrogen" = 3, "nitrogen" = 1)
|
||||
result_amount = 3
|
||||
mix_message = "The mixture bubbles, emitting an acrid reek."
|
||||
|
||||
diethylamine
|
||||
name = "Diethylamine"
|
||||
id = "diethylamine"
|
||||
result = "diethylamine"
|
||||
required_reagents = list ("ammonia" = 1, "ethanol" = 1)
|
||||
result_amount = 2
|
||||
min_temp = 374
|
||||
mix_message = "A horrible smell pours forth from the mixture."
|
||||
/datum/chemical_reaction/diethylamine
|
||||
name = "Diethylamine"
|
||||
id = "diethylamine"
|
||||
result = "diethylamine"
|
||||
required_reagents = list ("ammonia" = 1, "ethanol" = 1)
|
||||
result_amount = 2
|
||||
min_temp = 374
|
||||
mix_message = "A horrible smell pours forth from the mixture."
|
||||
|
||||
space_cleaner
|
||||
name = "Space cleaner"
|
||||
id = "cleaner"
|
||||
result = "cleaner"
|
||||
required_reagents = list("ammonia" = 1, "water" = 1, "ethanol" = 1)
|
||||
result_amount = 3
|
||||
mix_message = "Ick, this stuff really stinks. Sure does make the container sparkle though!"
|
||||
/datum/chemical_reaction/space_cleaner
|
||||
name = "Space cleaner"
|
||||
id = "cleaner"
|
||||
result = "cleaner"
|
||||
required_reagents = list("ammonia" = 1, "water" = 1, "ethanol" = 1)
|
||||
result_amount = 3
|
||||
mix_message = "Ick, this stuff really stinks. Sure does make the container sparkle though!"
|
||||
|
||||
sulfuric_acid
|
||||
name = "Sulfuric Acid"
|
||||
id = "sacid"
|
||||
result = "sacid"
|
||||
required_reagents = list("sulfur" = 1, "oxygen" = 1, "hydrogen" = 1)
|
||||
result_amount = 2
|
||||
mix_message = "The mixture gives off a sharp acidic tang."
|
||||
/datum/chemical_reaction/sulfuric_acid
|
||||
name = "Sulfuric Acid"
|
||||
id = "sacid"
|
||||
result = "sacid"
|
||||
required_reagents = list("sulfur" = 1, "oxygen" = 1, "hydrogen" = 1)
|
||||
result_amount = 2
|
||||
mix_message = "The mixture gives off a sharp acidic tang."
|
||||
|
||||
///////Changeling Blood Test/////////////
|
||||
/*
|
||||
changeling_test
|
||||
name = "Changeling blood test"
|
||||
id = "changelingblood"
|
||||
result = "blood"
|
||||
required_reagents = list("blood" = 5)
|
||||
required_catalysts = list("fuel")
|
||||
result_amount = 1 //Needs this in order to check the donor, as the data var in the reacted blood gets transferred.
|
||||
on_reaction(var/datum/reagents/holder, var/created_volume)
|
||||
if(!holder.reagent_list) //reagent_list is not null
|
||||
return
|
||||
var/datum/reagent/blood/B = locate() in holder.reagent_list
|
||||
if(!B) //B is not null
|
||||
return
|
||||
var/mob/living/carbon/human/H = B.data["donor"]
|
||||
if(!H) //H is not null.
|
||||
return
|
||||
if(H.mind && H.mind.changeling) //Checks if H, the blood donor is a ling.
|
||||
for(var/mob/M in viewers(get_turf(holder.my_atom), null))
|
||||
M.show_message( "<span class='danger'>The blood writhes and wriggles and sizzles away from the container!</span>", 1, "<span class='warning'>You hear bubbling and sizzling.</span>", 2)
|
||||
else
|
||||
for(var/mob/M in viewers(get_turf(holder.my_atom), null))
|
||||
M.show_message( "<span class ='notice'>The blood seems to break apart in the fuel.</span>", 1)
|
||||
holder.del_reagent("blood")
|
||||
return
|
||||
*/
|
||||
/datum/chemical_reaction/plastication
|
||||
name = "Plastic"
|
||||
id = "solidplastic"
|
||||
result = null
|
||||
required_reagents = list("facid" = 10, "plasticide" = 20)
|
||||
result_amount = 1
|
||||
|
||||
plastication
|
||||
name = "Plastic"
|
||||
id = "solidplastic"
|
||||
result = null
|
||||
required_reagents = list("facid" = 10, "plasticide" = 20)
|
||||
result_amount = 1
|
||||
on_reaction(var/datum/reagents/holder)
|
||||
var/obj/item/stack/sheet/metal/M = new /obj/item/stack/sheet/mineral/plastic
|
||||
M.amount = 10
|
||||
M.loc = get_turf(holder.my_atom)
|
||||
return
|
||||
/datum/chemical_reaction/plastication/on_reaction(var/datum/reagents/holder)
|
||||
var/obj/item/stack/sheet/metal/M = new /obj/item/stack/sheet/mineral/plastic
|
||||
M.amount = 10
|
||||
M.forceMove(get_turf(holder.my_atom))
|
||||
|
||||
|
||||
/datum/chemical_reaction/space_drugs
|
||||
name = "Space Drugs"
|
||||
id = "space_drugs"
|
||||
result = "space_drugs"
|
||||
required_reagents = list("mercury" = 1, "sugar" = 1, "lithium" = 1)
|
||||
result_amount = 3
|
||||
mix_message = "Slightly dizzying fumes drift from the solution."
|
||||
mix_sound = 'sound/goonstation/misc/drinkfizz.ogg'
|
||||
|
||||
//Not really misc chems, but not enough to deserve their own file
|
||||
/*
|
||||
silicate
|
||||
name = "Silicate"
|
||||
id = "silicate"
|
||||
result = "silicate"
|
||||
required_reagents = list("aluminum" = 1, "silicon" = 1, "oxygen" = 1)
|
||||
result_amount = 3
|
||||
*/
|
||||
/datum/chemical_reaction/lube
|
||||
name = "Space Lube"
|
||||
id = "lube"
|
||||
result = "lube"
|
||||
required_reagents = list("water" = 1, "silicon" = 1, "oxygen" = 1)
|
||||
result_amount = 3
|
||||
mix_message = "The substance turns a striking cyan and becomes oily."
|
||||
|
||||
space_drugs
|
||||
name = "Space Drugs"
|
||||
id = "space_drugs"
|
||||
result = "space_drugs"
|
||||
required_reagents = list("mercury" = 1, "sugar" = 1, "lithium" = 1)
|
||||
result_amount = 3
|
||||
mix_message = "Slightly dizzying fumes drift from the solution."
|
||||
mix_sound = 'sound/goonstation/misc/drinkfizz.ogg'
|
||||
/datum/chemical_reaction/holy_water
|
||||
name = "Holy Water"
|
||||
id = "holywater"
|
||||
result = "holywater"
|
||||
required_reagents = list("water" = 1, "mercury" = 1, "wine" = 1)
|
||||
result_amount = 3
|
||||
mix_message = "The water somehow seems purified. Or maybe defiled."
|
||||
|
||||
lube
|
||||
name = "Space Lube"
|
||||
id = "lube"
|
||||
result = "lube"
|
||||
required_reagents = list("water" = 1, "silicon" = 1, "oxygen" = 1)
|
||||
result_amount = 3
|
||||
mix_message = "The substance turns a striking cyan and becomes oily."
|
||||
/datum/chemical_reaction/lsd
|
||||
name = "Lysergic acid diethylamide"
|
||||
id = "lsd"
|
||||
result = "lsd"
|
||||
required_reagents = list("diethylamine" = 1, "fungus" = 1)
|
||||
result_amount = 3
|
||||
mix_message = "The mixture turns a rather unassuming color and settles."
|
||||
|
||||
holy_water
|
||||
name = "Holy Water"
|
||||
id = "holywater"
|
||||
result = "holywater"
|
||||
required_reagents = list("water" = 1, "mercury" = 1, "wine" = 1)
|
||||
result_amount = 3
|
||||
mix_message = "The water somehow seems purified. Or maybe defiled."
|
||||
|
||||
|
||||
lsd
|
||||
name = "Lysergic acid diethylamide"
|
||||
id = "lsd"
|
||||
result = "lsd"
|
||||
required_reagents = list("diethylamine" = 1, "fungus" = 1)
|
||||
result_amount = 3
|
||||
mix_message = "The mixture turns a rather unassuming color and settles."
|
||||
|
||||
drying_agent
|
||||
name = "Drying agent"
|
||||
id = "drying_agent"
|
||||
result = "drying_agent"
|
||||
required_reagents = list("plasma" = 2, "ethanol" = 1, "sodium" = 1)
|
||||
result_amount = 3
|
||||
/datum/chemical_reaction/drying_agent
|
||||
name = "Drying agent"
|
||||
id = "drying_agent"
|
||||
result = "drying_agent"
|
||||
required_reagents = list("plasma" = 2, "ethanol" = 1, "sodium" = 1)
|
||||
result_amount = 3
|
||||
@@ -492,6 +492,20 @@
|
||||
feedback_add_details("slime_cores_used","[replacetext(name," ","_")]")
|
||||
var/obj/item/weapon/slimesteroid2/P = new /obj/item/weapon/slimesteroid2
|
||||
P.loc = get_turf(holder.my_atom)
|
||||
|
||||
slime_territory
|
||||
name = "Slime Territory"
|
||||
id = "s_territory"
|
||||
result = null
|
||||
required_reagents = list("blood" = 1)
|
||||
result_amount = 1
|
||||
required_container = /obj/item/slime_extract/cerulean
|
||||
required_other = 1
|
||||
on_reaction(datum/reagents/holder)
|
||||
feedback_add_details("slime_cores_used","[type]")
|
||||
var/obj/item/areaeditor/blueprints/slime/P = new /obj/item/areaeditor/blueprints/slime
|
||||
P.forceMove(get_turf(holder.my_atom))
|
||||
|
||||
//Sepia
|
||||
slimestop
|
||||
name = "Slime Stop"
|
||||
|
||||
@@ -81,6 +81,10 @@
|
||||
/datum/reagent/proc/on_update(var/atom/A)
|
||||
return
|
||||
|
||||
// Called after add_reagents creates a new reagent.
|
||||
/datum/reagent/proc/on_new(data)
|
||||
return
|
||||
|
||||
/datum/reagent/Destroy()
|
||||
. = ..()
|
||||
holder = null
|
||||
@@ -11,31 +11,29 @@
|
||||
var/dizzy_adj = 3
|
||||
var/slurr_adj = 3
|
||||
var/confused_adj = 2
|
||||
var/slur_start = 65 //amount absorbed after which mob starts slurring
|
||||
var/brawl_start = 75 //amount absorbed after which mob switches to drunken brawling as a fighting style
|
||||
var/confused_start = 130 //amount absorbed after which mob starts confusing directions
|
||||
var/vomit_start = 180 //amount absorbed after which mob starts vomitting
|
||||
var/blur_start = 260 //amount absorbed after which mob starts getting blurred vision
|
||||
var/pass_out = 325 //amount absorbed after which mob starts passing out
|
||||
var/slur_start = 20 //amount absorbed after which mob starts slurring
|
||||
var/brawl_start = 25 //amount absorbed after which mob switches to drunken brawling as a fighting style
|
||||
var/confused_start = 30 //amount absorbed after which mob starts confusing directions
|
||||
var/vomit_start = 45 //amount absorbed after which mob starts vomitting
|
||||
var/blur_start = 70 //amount absorbed after which mob starts getting blurred vision
|
||||
var/pass_out = 90 //amount absorbed after which mob starts passing out
|
||||
var/alcohol_perc = 1 //percentage of ethanol in a beverage 0.0 - 1.0
|
||||
|
||||
/datum/reagent/ethanol/on_mob_life(var/mob/living/M as mob, var/alien)
|
||||
// Sobering multiplier.
|
||||
// Sober block makes it more difficult to get drunk
|
||||
var/sober_str=!(SOBER in M.mutations)?1:2
|
||||
M.nutrition += nutriment_factor
|
||||
if(!src.data) data = 1
|
||||
src.data++
|
||||
|
||||
var/d = data
|
||||
|
||||
var/d = 0
|
||||
// make all the beverages work together
|
||||
for(var/datum/reagent/ethanol/A in holder.reagent_list)
|
||||
if(isnum(A.data)) d += A.data
|
||||
if(isnum(A.current_cycle)) d += A.current_cycle * A.alcohol_perc
|
||||
|
||||
d/=sober_str
|
||||
|
||||
var/obj/item/organ/internal/liver/L
|
||||
if(ishuman(M))
|
||||
if(ishuman(M) && !M.isSynthetic())
|
||||
var/mob/living/carbon/human/H = M
|
||||
L = H.get_int_organ(/obj/item/organ/internal/liver)
|
||||
if(!L || (istype(L) && L.dna.species in list("Skrell", "Neara")))
|
||||
@@ -71,6 +69,7 @@
|
||||
..()
|
||||
return
|
||||
|
||||
|
||||
/datum/reagent/ethanol/reaction_obj(var/obj/O, var/volume)
|
||||
if(istype(O,/obj/item/weapon/paper))
|
||||
var/obj/item/weapon/paper/paperaffected = O
|
||||
@@ -93,12 +92,13 @@
|
||||
return
|
||||
|
||||
|
||||
/datum/reagent/ethanol/beer //It's really much more stronger than other drinks.
|
||||
/datum/reagent/ethanol/beer
|
||||
name = "Beer"
|
||||
id = "beer"
|
||||
description = "An alcoholic beverage made from malted grains, hops, yeast, and water."
|
||||
nutriment_factor = 2 * FOOD_METABOLISM
|
||||
color = "#664300" // rgb: 102, 67, 0
|
||||
alcohol_perc = 0.1
|
||||
|
||||
/datum/reagent/ethanol/beer/on_mob_life(var/mob/living/M as mob)
|
||||
..()
|
||||
@@ -110,6 +110,7 @@
|
||||
id = "cider"
|
||||
description = "An alcoholic beverage derived from apples."
|
||||
color = "#174116"
|
||||
alcohol_perc = 0.1
|
||||
|
||||
/datum/reagent/ethanol/whiskey
|
||||
name = "Whiskey"
|
||||
@@ -117,14 +118,14 @@
|
||||
description = "A superb and well-aged single-malt whiskey. Damn."
|
||||
color = "#664300" // rgb: 102, 67, 0
|
||||
dizzy_adj = 4
|
||||
alcohol_perc = 0.4
|
||||
|
||||
/datum/reagent/ethanol/specialwhiskey
|
||||
name = "Special Blend Whiskey"
|
||||
id = "specialwhiskey"
|
||||
description = "Just when you thought regular station whiskey was good... This silky, amber goodness has to come along and ruin everything."
|
||||
color = "#664300" // rgb: 102, 67, 0
|
||||
slur_start = 30 //amount absorbed after which mob starts slurring
|
||||
brawl_start = 40
|
||||
alcohol_perc = 0.5
|
||||
|
||||
/datum/reagent/ethanol/gin
|
||||
name = "Gin"
|
||||
@@ -132,6 +133,7 @@
|
||||
description = "It's gin. In space. I say, good sir."
|
||||
color = "#664300" // rgb: 102, 67, 0
|
||||
dizzy_adj = 3
|
||||
alcohol_perc = 0.5
|
||||
|
||||
/datum/reagent/ethanol/absinthe
|
||||
name = "Absinthe"
|
||||
@@ -140,15 +142,11 @@
|
||||
color = "#33EE00" // rgb: lots, ??, ??
|
||||
overdose_threshold = 30
|
||||
dizzy_adj = 5
|
||||
slur_start = 25
|
||||
brawl_start = 40
|
||||
confused_start = 100
|
||||
alcohol_perc = 0.7
|
||||
|
||||
//copy paste from LSD... shoot me
|
||||
/datum/reagent/ethanol/absinthe/on_mob_life(var/mob/living/M)
|
||||
if(!M) M = holder.my_atom
|
||||
if(!data) data = 1
|
||||
data++
|
||||
M.hallucination += 5
|
||||
..()
|
||||
return
|
||||
@@ -164,6 +162,7 @@
|
||||
description = "Popular with the sailors. Not very popular with everyone else."
|
||||
color = "#664300" // rgb: 102, 67, 0
|
||||
overdose_threshold = 30
|
||||
alcohol_perc = 0.4
|
||||
|
||||
/datum/reagent/ethanol/rum/on_mob_life(var/mob/living/M as mob)
|
||||
..()
|
||||
@@ -180,30 +179,35 @@
|
||||
id = "mojito"
|
||||
description = "If it's good enough for Spesscuba, it's good enough for you."
|
||||
color = "#664300" // rgb: 102, 67, 0
|
||||
alcohol_perc = 0.1
|
||||
|
||||
/datum/reagent/ethanol/vodka
|
||||
name = "Vodka"
|
||||
id = "vodka"
|
||||
description = "Number one drink AND fueling choice for Russians worldwide."
|
||||
color = "#664300" // rgb: 102, 67, 0
|
||||
alcohol_perc = 0.4
|
||||
|
||||
/datum/reagent/ethanol/sake
|
||||
name = "Sake"
|
||||
id = "sake"
|
||||
description = "Anime's favorite drink."
|
||||
color = "#664300" // rgb: 102, 67, 0
|
||||
alcohol_perc = 0.2
|
||||
|
||||
/datum/reagent/ethanol/tequilla
|
||||
name = "Tequila"
|
||||
id = "tequilla"
|
||||
description = "A strong and mildly flavoured, mexican produced spirit. Feeling thirsty hombre?"
|
||||
color = "#A8B0B7" // rgb: 168, 176, 183
|
||||
alcohol_perc = 0.4
|
||||
|
||||
/datum/reagent/ethanol/vermouth
|
||||
name = "Vermouth"
|
||||
id = "vermouth"
|
||||
description = "You suddenly feel a craving for a martini..."
|
||||
color = "#664300" // rgb: 102, 67, 0
|
||||
alcohol_perc = 0.2
|
||||
|
||||
/datum/reagent/ethanol/wine
|
||||
name = "Wine"
|
||||
@@ -211,8 +215,7 @@
|
||||
description = "An premium alchoholic beverage made from distilled grape juice."
|
||||
color = "#7E4043" // rgb: 126, 64, 67
|
||||
dizzy_adj = 2
|
||||
slur_start = 65 //amount absorbed after which mob starts slurring
|
||||
confused_start = 145 //amount absorbed after which mob starts confusing directions
|
||||
alcohol_perc = 0.2
|
||||
|
||||
/datum/reagent/ethanol/cognac
|
||||
name = "Cognac"
|
||||
@@ -220,7 +223,7 @@
|
||||
description = "A sweet and strongly alchoholic drink, made after numerous distillations and years of maturing. Classy as fornication."
|
||||
color = "#664300" // rgb: 102, 67, 0
|
||||
dizzy_adj = 4
|
||||
confused_start = 115 //amount absorbed after which mob starts confusing directions
|
||||
alcohol_perc = 0.4
|
||||
|
||||
/datum/reagent/ethanol/suicider //otherwise known as "I want to get so smashed my liver gives out and I die from alcohol poisoning".
|
||||
name = "Suicider"
|
||||
@@ -230,17 +233,14 @@
|
||||
dizzy_adj = 20
|
||||
slurr_adj = 20
|
||||
confused_adj = 3
|
||||
slur_start = 15
|
||||
brawl_start = 25
|
||||
confused_start = 40
|
||||
blur_start = 60
|
||||
pass_out = 80
|
||||
alcohol_perc = 1 //because that's a thing it's supposed to do, I guess
|
||||
|
||||
/datum/reagent/ethanol/ale
|
||||
name = "Ale"
|
||||
id = "ale"
|
||||
description = "A dark alchoholic beverage made by malted barley and yeast."
|
||||
color = "#664300" // rgb: 102, 67, 0
|
||||
alcohol_perc = 0.1
|
||||
|
||||
/datum/reagent/ethanol/thirteenloko
|
||||
name = "Thirteen Loko"
|
||||
@@ -248,6 +248,7 @@
|
||||
description = "A potent mixture of caffeine and alcohol."
|
||||
reagent_state = LIQUID
|
||||
color = "#102000" // rgb: 16, 32, 0
|
||||
alcohol_perc = 0.3
|
||||
|
||||
/datum/reagent/ethanol/thirteenloko/on_mob_life(var/mob/living/M as mob)
|
||||
..()
|
||||
@@ -269,6 +270,7 @@
|
||||
description = "This appears to be beer mixed with milk. Disgusting."
|
||||
reagent_state = LIQUID
|
||||
color = "#895C4C" // rgb: 137, 92, 76
|
||||
alcohol_perc = 0.1
|
||||
|
||||
/datum/reagent/ethanol/atomicbomb
|
||||
name = "Atomic Bomb"
|
||||
@@ -276,6 +278,7 @@
|
||||
description = "Nuclear proliferation never tasted so good."
|
||||
reagent_state = LIQUID
|
||||
color = "#666300" // rgb: 102, 99, 0
|
||||
alcohol_perc = 0.2
|
||||
|
||||
/datum/reagent/ethanol/threemileisland
|
||||
name = "THree Mile Island Iced Tea"
|
||||
@@ -283,6 +286,7 @@
|
||||
description = "Made for a woman, strong enough for a man."
|
||||
reagent_state = LIQUID
|
||||
color = "#666340" // rgb: 102, 99, 64
|
||||
alcohol_perc = 0.2
|
||||
|
||||
/datum/reagent/ethanol/goldschlager
|
||||
name = "Goldschlager"
|
||||
@@ -290,6 +294,7 @@
|
||||
description = "100 proof cinnamon schnapps, made for alcoholic teen girls on spring break."
|
||||
reagent_state = LIQUID
|
||||
color = "#664300" // rgb: 102, 67, 0
|
||||
alcohol_perc = 0.4
|
||||
|
||||
/datum/reagent/ethanol/patron
|
||||
name = "Patron"
|
||||
@@ -297,6 +302,7 @@
|
||||
description = "Tequila with silver in it, a favorite of alcoholic women in the club scene."
|
||||
reagent_state = LIQUID
|
||||
color = "#585840" // rgb: 88, 88, 64
|
||||
alcohol_perc = 0.4
|
||||
|
||||
/datum/reagent/ethanol/gintonic
|
||||
name = "Gin and Tonic"
|
||||
@@ -304,6 +310,7 @@
|
||||
description = "An all time classic, mild cocktail."
|
||||
reagent_state = LIQUID
|
||||
color = "#664300" // rgb: 102, 67, 0
|
||||
alcohol_perc = 0.4
|
||||
|
||||
/datum/reagent/ethanol/cuba_libre
|
||||
name = "Cuba Libre"
|
||||
@@ -311,6 +318,7 @@
|
||||
description = "Rum, mixed with cola. Viva la revolution."
|
||||
reagent_state = LIQUID
|
||||
color = "#3E1B00" // rgb: 62, 27, 0
|
||||
alcohol_perc = 0.2
|
||||
|
||||
/datum/reagent/ethanol/whiskey_cola
|
||||
name = "Whiskey Cola"
|
||||
@@ -318,6 +326,7 @@
|
||||
description = "Whiskey, mixed with cola. Surprisingly refreshing."
|
||||
reagent_state = LIQUID
|
||||
color = "#3E1B00" // rgb: 62, 27, 0
|
||||
alcohol_perc = 0.3
|
||||
|
||||
/datum/reagent/ethanol/martini
|
||||
name = "Classic Martini"
|
||||
@@ -325,6 +334,7 @@
|
||||
description = "Vermouth with Gin. Not quite how 007 enjoyed it, but still delicious."
|
||||
reagent_state = LIQUID
|
||||
color = "#664300" // rgb: 102, 67, 0
|
||||
alcohol_perc = 0.5
|
||||
|
||||
/datum/reagent/ethanol/vodkamartini
|
||||
name = "Vodka Martini"
|
||||
@@ -332,6 +342,7 @@
|
||||
description = "Vodka with Gin. Not quite how 007 enjoyed it, but still delicious."
|
||||
reagent_state = LIQUID
|
||||
color = "#664300" // rgb: 102, 67, 0
|
||||
alcohol_perc = 0.4
|
||||
|
||||
/datum/reagent/ethanol/white_russian
|
||||
name = "White Russian"
|
||||
@@ -339,6 +350,7 @@
|
||||
description = "That's just, like, your opinion, man..."
|
||||
reagent_state = LIQUID
|
||||
color = "#A68340" // rgb: 166, 131, 64
|
||||
alcohol_perc = 0.3
|
||||
|
||||
/datum/reagent/ethanol/screwdrivercocktail
|
||||
name = "Screwdriver"
|
||||
@@ -346,6 +358,7 @@
|
||||
description = "Vodka, mixed with plain ol' orange juice. The result is surprisingly delicious."
|
||||
reagent_state = LIQUID
|
||||
color = "#A68310" // rgb: 166, 131, 16
|
||||
alcohol_perc = 0.3
|
||||
|
||||
/datum/reagent/ethanol/booger
|
||||
name = "Booger"
|
||||
@@ -353,6 +366,7 @@
|
||||
description = "Ewww..."
|
||||
reagent_state = LIQUID
|
||||
color = "#A68310" // rgb: 166, 131, 16
|
||||
alcohol_perc = 0.2
|
||||
|
||||
/datum/reagent/ethanol/bloody_mary
|
||||
name = "Bloody Mary"
|
||||
@@ -360,6 +374,7 @@
|
||||
description = "A strange yet pleasurable mixture made of vodka, tomato and lime juice. Or at least you THINK the red stuff is tomato juice."
|
||||
reagent_state = LIQUID
|
||||
color = "#664300" // rgb: 102, 67, 0
|
||||
alcohol_perc = 0.2
|
||||
|
||||
/datum/reagent/ethanol/gargle_blaster
|
||||
name = "Pan-Galactic Gargle Blaster"
|
||||
@@ -367,6 +382,7 @@
|
||||
description = "Whoah, this stuff looks volatile!"
|
||||
reagent_state = LIQUID
|
||||
color = "#664300" // rgb: 102, 67, 0
|
||||
alcohol_perc = 0.7 //ouch
|
||||
|
||||
/datum/reagent/ethanol/brave_bull
|
||||
name = "Brave Bull"
|
||||
@@ -374,6 +390,7 @@
|
||||
description = "A strange yet pleasurable mixture made of vodka, tomato and lime juice. Or at least you THINK the red stuff is tomato juice."
|
||||
reagent_state = LIQUID
|
||||
color = "#664300" // rgb: 102, 67, 0
|
||||
alcohol_perc = 0.3
|
||||
|
||||
/datum/reagent/ethanol/tequilla_sunrise
|
||||
name = "Tequila Sunrise"
|
||||
@@ -381,6 +398,7 @@
|
||||
description = "Tequila and orange juice. Much like a Screwdriver, only Mexican~"
|
||||
reagent_state = LIQUID
|
||||
color = "#664300" // rgb: 102, 67, 0
|
||||
alcohol_perc = 0.3
|
||||
|
||||
/datum/reagent/ethanol/toxins_special
|
||||
name = "Toxins Special"
|
||||
@@ -388,6 +406,7 @@
|
||||
description = "This thing is FLAMING!. CALL THE DAMN SHUTTLE!"
|
||||
reagent_state = LIQUID
|
||||
color = "#664300" // rgb: 102, 67, 0
|
||||
alcohol_perc = 0.5
|
||||
|
||||
/datum/reagent/ethanol/beepsky_smash
|
||||
name = "Beepsky Smash"
|
||||
@@ -395,24 +414,19 @@
|
||||
description = "Deny drinking this and prepare for THE LAW."
|
||||
reagent_state = LIQUID
|
||||
color = "#664300" // rgb: 102, 67, 0
|
||||
alcohol_perc = 0.5
|
||||
|
||||
/datum/reagent/ethanol/beepsky_smash/on_mob_life(mob/living/M)
|
||||
M.Stun(1)
|
||||
..()
|
||||
|
||||
/datum/reagent/ethanol/changelingsting
|
||||
name = "Changeling Sting"
|
||||
id = "changelingsting"
|
||||
description = "You take a tiny sip and feel a burning sensation..."
|
||||
reagent_state = LIQUID
|
||||
color = "#2E6671" // rgb: 46, 102, 113
|
||||
|
||||
/datum/reagent/ethanol/irish_cream
|
||||
name = "Irish Cream"
|
||||
id = "irishcream"
|
||||
description = "Whiskey-imbued cream, what else would you expect from the Irish."
|
||||
reagent_state = LIQUID
|
||||
color = "#664300" // rgb: 102, 67, 0
|
||||
alcohol_perc = 0.3
|
||||
|
||||
/datum/reagent/ethanol/manly_dorf
|
||||
name = "The Manly Dorf"
|
||||
@@ -420,6 +434,7 @@
|
||||
description = "Beer and Ale, brought together in a delicious mix. Intended for true men only."
|
||||
reagent_state = LIQUID
|
||||
color = "#664300" // rgb: 102, 67, 0
|
||||
alcohol_perc = 0.1
|
||||
|
||||
/datum/reagent/ethanol/longislandicedtea
|
||||
name = "Long Island Iced Tea"
|
||||
@@ -427,6 +442,7 @@
|
||||
description = "The liquor cabinet, brought together in a delicious mix. Intended for middle-aged alcoholic women only."
|
||||
reagent_state = LIQUID
|
||||
color = "#664300" // rgb: 102, 67, 0
|
||||
alcohol_perc = 0.5
|
||||
|
||||
/datum/reagent/ethanol/moonshine
|
||||
name = "Moonshine"
|
||||
@@ -434,6 +450,7 @@
|
||||
description = "You've really hit rock bottom now... your liver packed its bags and left last night."
|
||||
reagent_state = LIQUID
|
||||
color = "#664300" // rgb: 102, 67, 0
|
||||
alcohol_perc = 0.8 //yeeehaw
|
||||
|
||||
/datum/reagent/ethanol/b52
|
||||
name = "B-52"
|
||||
@@ -441,6 +458,7 @@
|
||||
description = "Coffee, Irish Cream, and congac. You will get bombed."
|
||||
reagent_state = LIQUID
|
||||
color = "#664300" // rgb: 102, 67, 0
|
||||
alcohol_perc = 0.3
|
||||
|
||||
/datum/reagent/ethanol/irishcoffee
|
||||
name = "Irish Coffee"
|
||||
@@ -448,6 +466,7 @@
|
||||
description = "Coffee, and alcohol. More fun than a Mimosa to drink in the morning."
|
||||
reagent_state = LIQUID
|
||||
color = "#664300" // rgb: 102, 67, 0
|
||||
alcohol_perc = 0.2
|
||||
|
||||
/datum/reagent/ethanol/margarita
|
||||
name = "Margarita"
|
||||
@@ -455,6 +474,7 @@
|
||||
description = "On the rocks with salt on the rim. Arriba~!"
|
||||
reagent_state = LIQUID
|
||||
color = "#664300" // rgb: 102, 67, 0
|
||||
alcohol_perc = 0.3
|
||||
|
||||
/datum/reagent/ethanol/black_russian
|
||||
name = "Black Russian"
|
||||
@@ -462,6 +482,7 @@
|
||||
description = "For the lactose-intolerant. Still as classy as a White Russian."
|
||||
reagent_state = LIQUID
|
||||
color = "#360000" // rgb: 54, 0, 0
|
||||
alcohol_perc = 0.4
|
||||
|
||||
/datum/reagent/ethanol/manhattan
|
||||
name = "Manhattan"
|
||||
@@ -469,6 +490,7 @@
|
||||
description = "The Detective's undercover drink of choice. He never could stomach gin..."
|
||||
reagent_state = LIQUID
|
||||
color = "#664300" // rgb: 102, 67, 0
|
||||
alcohol_perc = 0.4
|
||||
|
||||
/datum/reagent/ethanol/manhattan_proj
|
||||
name = "Manhattan Project"
|
||||
@@ -476,6 +498,7 @@
|
||||
description = "A scienitst's drink of choice, for pondering ways to blow up the station."
|
||||
reagent_state = LIQUID
|
||||
color = "#664300" // rgb: 102, 67, 0
|
||||
alcohol_perc = 0.4
|
||||
|
||||
/datum/reagent/ethanol/whiskeysoda
|
||||
name = "Whiskey Soda"
|
||||
@@ -483,6 +506,7 @@
|
||||
description = "Ultimate refreshment."
|
||||
reagent_state = LIQUID
|
||||
color = "#664300" // rgb: 102, 67, 0
|
||||
alcohol_perc = 0.3
|
||||
|
||||
/datum/reagent/ethanol/antifreeze
|
||||
name = "Anti-freeze"
|
||||
@@ -490,6 +514,7 @@
|
||||
description = "Ultimate refreshment."
|
||||
reagent_state = LIQUID
|
||||
color = "#664300" // rgb: 102, 67, 0
|
||||
alcohol_perc = 0.2
|
||||
|
||||
/datum/reagent/ethanol/barefoot
|
||||
name = "Barefoot"
|
||||
@@ -497,6 +522,7 @@
|
||||
description = "Barefoot and pregnant"
|
||||
reagent_state = LIQUID
|
||||
color = "#664300" // rgb: 102, 67, 0
|
||||
alcohol_perc = 0.1
|
||||
|
||||
/datum/reagent/ethanol/snowwhite
|
||||
name = "Snow White"
|
||||
@@ -504,6 +530,7 @@
|
||||
description = "A cold refreshment"
|
||||
reagent_state = LIQUID
|
||||
color = "#664300" // rgb: 102, 67, 0
|
||||
alcohol_perc = 0.1
|
||||
|
||||
/datum/reagent/ethanol/demonsblood
|
||||
name = "Demons Blood"
|
||||
@@ -513,6 +540,7 @@
|
||||
color = "#664300" // rgb: 102, 67, 0
|
||||
dizzy_adj = 10
|
||||
slurr_adj = 10
|
||||
alcohol_perc = 0.4
|
||||
|
||||
/datum/reagent/ethanol/vodkatonic
|
||||
name = "Vodka and Tonic"
|
||||
@@ -522,6 +550,7 @@
|
||||
color = "#664300" // rgb: 102, 67, 0
|
||||
dizzy_adj = 4
|
||||
slurr_adj = 3
|
||||
alcohol_perc = 0.3
|
||||
|
||||
/datum/reagent/ethanol/ginfizz
|
||||
name = "Gin Fizz"
|
||||
@@ -531,6 +560,7 @@
|
||||
color = "#664300" // rgb: 102, 67, 0
|
||||
dizzy_adj = 4
|
||||
slurr_adj = 3
|
||||
alcohol_perc = 0.4
|
||||
|
||||
/datum/reagent/ethanol/bahama_mama
|
||||
name = "Bahama mama"
|
||||
@@ -538,6 +568,7 @@
|
||||
description = "Tropic cocktail."
|
||||
reagent_state = LIQUID
|
||||
color = "#664300" // rgb: 102, 67, 0
|
||||
alcohol_perc = 0.1
|
||||
|
||||
/datum/reagent/ethanol/singulo
|
||||
name = "Singulo"
|
||||
@@ -547,6 +578,7 @@
|
||||
color = "#2E6671" // rgb: 46, 102, 113
|
||||
dizzy_adj = 15
|
||||
slurr_adj = 15
|
||||
alcohol_perc = 0.7
|
||||
|
||||
/datum/reagent/ethanol/sbiten
|
||||
name = "Sbiten"
|
||||
@@ -554,6 +586,7 @@
|
||||
description = "A spicy Vodka! Might be a little hot for the little guys!"
|
||||
reagent_state = LIQUID
|
||||
color = "#664300" // rgb: 102, 67, 0
|
||||
alcohol_perc = 0.4
|
||||
|
||||
/datum/reagent/ethanol/sbiten/on_mob_life(var/mob/living/M as mob)
|
||||
..()
|
||||
@@ -567,6 +600,7 @@
|
||||
description = "Creepy time!"
|
||||
reagent_state = LIQUID
|
||||
color = "#A68310" // rgb: 166, 131, 16
|
||||
alcohol_perc = 0.3
|
||||
|
||||
/datum/reagent/ethanol/red_mead
|
||||
name = "Red Mead"
|
||||
@@ -574,6 +608,7 @@
|
||||
description = "The true Viking drink! Even though it has a strange red color."
|
||||
reagent_state = LIQUID
|
||||
color = "#664300" // rgb: 102, 67, 0
|
||||
alcohol_perc = 0.1
|
||||
|
||||
/datum/reagent/ethanol/mead
|
||||
name = "Mead"
|
||||
@@ -581,6 +616,7 @@
|
||||
description = "A Vikings drink, though a cheap one."
|
||||
reagent_state = LIQUID
|
||||
color = "#664300" // rgb: 102, 67, 0
|
||||
alcohol_perc = 0.1
|
||||
|
||||
/datum/reagent/ethanol/iced_beer
|
||||
name = "Iced Beer"
|
||||
@@ -588,6 +624,7 @@
|
||||
description = "A beer which is so cold the air around it freezes."
|
||||
reagent_state = LIQUID
|
||||
color = "#664300" // rgb: 102, 67, 0
|
||||
alcohol_perc = 0.1
|
||||
|
||||
/datum/reagent/ethanol/iced_beer/on_mob_life(var/mob/living/M as mob)
|
||||
..()
|
||||
@@ -601,6 +638,7 @@
|
||||
description = "Watered down rum, Nanotrasen approves!"
|
||||
reagent_state = LIQUID
|
||||
color = "#664300" // rgb: 102, 67, 0
|
||||
alcohol_perc = 0.2
|
||||
|
||||
/datum/reagent/ethanol/aloe
|
||||
name = "Aloe"
|
||||
@@ -608,6 +646,7 @@
|
||||
description = "So very, very, very good."
|
||||
reagent_state = LIQUID
|
||||
color = "#664300" // rgb: 102, 67, 0
|
||||
alcohol_perc = 0.2
|
||||
|
||||
/datum/reagent/ethanol/andalusia
|
||||
name = "Andalusia"
|
||||
@@ -615,6 +654,7 @@
|
||||
description = "A nice, strange named drink."
|
||||
reagent_state = LIQUID
|
||||
color = "#664300" // rgb: 102, 67, 0
|
||||
alcohol_perc = 0.4
|
||||
|
||||
/datum/reagent/ethanol/alliescocktail
|
||||
name = "Allies Cocktail"
|
||||
@@ -622,6 +662,7 @@
|
||||
description = "A drink made from your allies."
|
||||
reagent_state = LIQUID
|
||||
color = "#664300" // rgb: 102, 67, 0
|
||||
alcohol_perc = 0.5
|
||||
|
||||
/datum/reagent/ethanol/acid_spit
|
||||
name = "Acid Spit"
|
||||
@@ -629,6 +670,7 @@
|
||||
description = "A drink by Nanotrasen. Made from live aliens."
|
||||
reagent_state = LIQUID
|
||||
color = "#365000" // rgb: 54, 80, 0
|
||||
alcohol_perc = 0.3
|
||||
|
||||
/datum/reagent/ethanol/amasec
|
||||
name = "Amasec"
|
||||
@@ -636,7 +678,7 @@
|
||||
description = "Official drink of the Imperium."
|
||||
reagent_state = LIQUID
|
||||
color = "#664300" // rgb: 102, 67, 0
|
||||
|
||||
alcohol_perc = 0.3
|
||||
|
||||
/datum/reagent/ethanol/neurotoxin
|
||||
name = "Neuro-toxin"
|
||||
@@ -644,22 +686,20 @@
|
||||
description = "A strong neurotoxin that puts the subject into a death-like state."
|
||||
reagent_state = LIQUID
|
||||
color = "#2E2E61" // rgb: 46, 46, 97
|
||||
alcohol_perc = 0.7
|
||||
|
||||
/datum/reagent/ethanol/neurotoxin/on_mob_life(var/mob/living/M as mob)
|
||||
M.weakened = max(M.weakened, 3)
|
||||
if(!data)
|
||||
data = 1
|
||||
data++
|
||||
M.dizziness +=6
|
||||
if(data >= 15 && data <45)
|
||||
if(current_cycle >= 15 && current_cycle <45)
|
||||
if (!M.slurring)
|
||||
M.slurring = 1
|
||||
M.slurring += 3
|
||||
else if(data >= 45 && prob(50) && data <55)
|
||||
else if(current_cycle >= 45 && prob(50) && current_cycle <55)
|
||||
M.confused = max(M.confused+3,0)
|
||||
else if(data >=55)
|
||||
else if(current_cycle >=55)
|
||||
M.druggy = max(M.druggy, 55)
|
||||
else if(data >=200)
|
||||
else if(current_cycle >=200)
|
||||
M.adjustToxLoss(2)
|
||||
..()
|
||||
return
|
||||
@@ -670,6 +710,7 @@
|
||||
description = "A stingy drink."
|
||||
reagent_state = LIQUID
|
||||
color = "#2E6671" // rgb: 46, 102, 113
|
||||
alcohol_perc = 0.7
|
||||
|
||||
/datum/reagent/ethanol/changelingsting/on_mob_life(var/mob/living/M as mob)
|
||||
..()
|
||||
@@ -682,6 +723,7 @@
|
||||
description = "Mmm, tastes like chocolate cake..."
|
||||
reagent_state = LIQUID
|
||||
color = "#2E6671" // rgb: 46, 102, 113
|
||||
alcohol_perc = 0.3
|
||||
|
||||
/datum/reagent/ethanol/irishcarbomb/on_mob_life(var/mob/living/M as mob)
|
||||
..()
|
||||
@@ -694,6 +736,7 @@
|
||||
description = "A Syndicate bomb"
|
||||
reagent_state = LIQUID
|
||||
color = "#2E6671" // rgb: 46, 102, 113
|
||||
alcohol_perc = 0.2
|
||||
|
||||
/datum/reagent/ethanol/erikasurprise
|
||||
name = "Erika Surprise"
|
||||
@@ -701,6 +744,7 @@
|
||||
description = "The surprise is, it's green!"
|
||||
reagent_state = LIQUID
|
||||
color = "#2E6671" // rgb: 46, 102, 113
|
||||
alcohol_perc = 0.1
|
||||
|
||||
/datum/reagent/ethanol/driestmartini
|
||||
name = "Driest Martini"
|
||||
@@ -708,15 +752,14 @@
|
||||
description = "Only for the experienced. You think you see sand floating in the glass."
|
||||
nutriment_factor = 1 * FOOD_METABOLISM
|
||||
color = "#2E6671" // rgb: 46, 102, 113
|
||||
alcohol_perc = 0.5
|
||||
|
||||
/datum/reagent/ethanol/driestmartini/on_mob_life(var/mob/living/M as mob)
|
||||
if(!data) data = 1
|
||||
data++
|
||||
M.dizziness +=10
|
||||
if(data >= 55 && data <115)
|
||||
if(current_cycle >= 55 && current_cycle <115)
|
||||
if (!M.stuttering) M.stuttering = 1
|
||||
M.stuttering += 10
|
||||
else if(data >= 115 && prob(33))
|
||||
else if(current_cycle >= 115 && prob(33))
|
||||
M.confused = max(M.confused+15,15)
|
||||
..()
|
||||
|
||||
@@ -727,6 +770,7 @@
|
||||
id = "kahlua"
|
||||
description = "A widely known, Mexican coffee-flavoured liqueur. In production since 1936!"
|
||||
color = "#664300" // rgb: 102, 67, 0
|
||||
alcohol_perc = 0.2
|
||||
|
||||
/datum/reagent/ethanol/kahlua/on_mob_life(var/mob/living/M as mob)
|
||||
M.dizziness = max(0,M.dizziness-5)
|
||||
|
||||
@@ -42,13 +42,9 @@
|
||||
M.jitteriness = 0
|
||||
if(istype(M,/mob/living/carbon)) // make sure to only use it on carbon mobs
|
||||
var/mob/living/carbon/C = M
|
||||
if(C.virus2.len)
|
||||
for (var/ID in C.virus2)
|
||||
var/datum/disease2/disease/V = C.virus2[ID]
|
||||
C.antibodies |= V.antigen
|
||||
for(var/datum/disease/D in C.viruses)
|
||||
D.cure(0)
|
||||
..()
|
||||
return
|
||||
|
||||
|
||||
/datum/reagent/adminordrazine/nanites
|
||||
name = "Nanites"
|
||||
|
||||
@@ -16,20 +16,6 @@
|
||||
..()
|
||||
return
|
||||
|
||||
/datum/reagent/virus_food
|
||||
name = "Virus Food"
|
||||
id = "virusfood"
|
||||
description = "A mixture of water, milk, and oxygen. Virus cells can use this mixture to reproduce."
|
||||
reagent_state = LIQUID
|
||||
nutriment_factor = 2 * REAGENTS_METABOLISM
|
||||
color = "#899613" // rgb: 137, 150, 19
|
||||
|
||||
/datum/reagent/virus_food/on_mob_life(var/mob/living/M as mob)
|
||||
if(!M) M = holder.my_atom
|
||||
M.nutrition += nutriment_factor*REM
|
||||
..()
|
||||
return
|
||||
|
||||
/datum/reagent/sterilizine
|
||||
name = "Sterilizine"
|
||||
id = "sterilizine"
|
||||
|
||||
@@ -98,33 +98,9 @@
|
||||
reagent_state = LIQUID
|
||||
color = "#13BC5E" // rgb: 19, 188, 94
|
||||
|
||||
/datum/reagent/aslimetoxin/on_mob_life(var/mob/living/M as mob)
|
||||
if(!M) M = holder.my_atom
|
||||
if(istype(M, /mob/living/carbon) && M.stat != DEAD)
|
||||
M << "\red Your flesh rapidly mutates!"
|
||||
if(M.notransform) return
|
||||
M.notransform = 1
|
||||
M.canmove = 0
|
||||
M.icon = null
|
||||
M.overlays.Cut()
|
||||
M.invisibility = 101
|
||||
for(var/obj/item/W in M)
|
||||
if(istype(W, /obj/item/weapon/implant)) //TODO: Carn. give implants a dropped() or something
|
||||
qdel(W)
|
||||
continue
|
||||
W.layer = initial(W.layer)
|
||||
W.loc = M.loc
|
||||
W.dropped(M)
|
||||
var/mob/living/carbon/slime/new_mob = new /mob/living/carbon/slime(M.loc)
|
||||
new_mob.a_intent = I_HARM
|
||||
new_mob.universal_speak = 1
|
||||
if(M.mind)
|
||||
M.mind.transfer_to(new_mob)
|
||||
else
|
||||
new_mob.key = M.key
|
||||
qdel(M)
|
||||
..()
|
||||
return
|
||||
/datum/reagent/aslimetoxin/reaction_mob(mob/M, method=TOUCH, reac_volume)
|
||||
if(method != TOUCH)
|
||||
M.ForceContractDisease(new /datum/disease/transformation/slime(0))
|
||||
|
||||
|
||||
/datum/reagent/mercury
|
||||
@@ -189,19 +165,7 @@
|
||||
if(!M) M = holder.my_atom
|
||||
if(M.radiation < 80)
|
||||
M.apply_effect(4, IRRADIATE, negate_armor = 1)
|
||||
// radium may increase your chances to cure a disease
|
||||
if(istype(M,/mob/living/carbon)) // make sure to only use it on carbon mobs
|
||||
var/mob/living/carbon/C = M
|
||||
if(C.virus2.len)
|
||||
for (var/ID in C.virus2)
|
||||
var/datum/disease2/disease/V = C.virus2[ID]
|
||||
if(prob(5))
|
||||
if(prob(50))
|
||||
M.apply_effect(50, IRRADIATE, negate_armor = 1) // curing it that way may kill you instead
|
||||
M.adjustToxLoss(100)
|
||||
C.antibodies |= V.antigen
|
||||
..()
|
||||
return
|
||||
|
||||
/datum/reagent/radium/reaction_turf(var/turf/T, var/volume)
|
||||
src = null
|
||||
|
||||
@@ -145,65 +145,103 @@
|
||||
|
||||
|
||||
/datum/reagent/blood
|
||||
data = new/list("donor"=null,"viruses"=null,"blood_DNA"=null,"blood_type"=null,"blood_colour"= "#A10808","resistances"=null,"trace_chem"=null, "antibodies" = null)
|
||||
data = list("donor"=null,"viruses"=null,"blood_DNA"=null,"blood_type"=null,"blood_colour"="#A10808","resistances"=null,"trace_chem"=null, "antibodies" = null)
|
||||
name = "Blood"
|
||||
id = "blood"
|
||||
reagent_state = LIQUID
|
||||
color = "#C80000" // rgb: 200, 0, 0
|
||||
|
||||
/datum/reagent/blood/reaction_mob(var/mob/M, var/method=TOUCH, var/volume)
|
||||
var/datum/reagent/blood/self = src
|
||||
src = null
|
||||
if(self.data && self.data["virus2"] && istype(M, /mob/living/carbon))//infecting...
|
||||
var/list/vlist = self.data["virus2"]
|
||||
if (vlist.len)
|
||||
for (var/ID in vlist)
|
||||
var/datum/disease2/disease/V = vlist[ID]
|
||||
/datum/reagent/blood/reaction_mob(mob/M, method=TOUCH, reac_volume)
|
||||
if(data && data["viruses"])
|
||||
for(var/datum/disease/D in data["viruses"])
|
||||
|
||||
if(method == TOUCH)
|
||||
infect_virus2(M,V.getcopy())
|
||||
else
|
||||
infect_virus2(M,V.getcopy(),1) //injected, force infection!
|
||||
if(self.data && self.data["antibodies"] && istype(M, /mob/living/carbon))//... and curing
|
||||
var/mob/living/carbon/C = M
|
||||
C.antibodies |= self.data["antibodies"]
|
||||
if(D.spread_flags & SPECIAL || D.spread_flags & NON_CONTAGIOUS)
|
||||
continue
|
||||
|
||||
/datum/reagent/blood/on_merge(var/data)
|
||||
if(data["blood_colour"])
|
||||
color = data["blood_colour"]
|
||||
return ..()
|
||||
if(method == TOUCH)
|
||||
M.ContractDisease(D)
|
||||
else //ingest, patch or inject
|
||||
M.ForceContractDisease(D)
|
||||
|
||||
/datum/reagent/blood/on_new(list/data)
|
||||
if(istype(data))
|
||||
SetViruses(src, data)
|
||||
|
||||
/datum/reagent/blood/on_merge(list/mix_data)
|
||||
if(data && mix_data)
|
||||
if(data["viruses"] || mix_data["viruses"])
|
||||
|
||||
var/list/mix1 = data["viruses"]
|
||||
var/list/mix2 = mix_data["viruses"]
|
||||
|
||||
// Stop issues with the list changing during mixing.
|
||||
var/list/to_mix = list()
|
||||
|
||||
for(var/datum/disease/advance/AD in mix1)
|
||||
to_mix += AD
|
||||
for(var/datum/disease/advance/AD in mix2)
|
||||
to_mix += AD
|
||||
|
||||
var/datum/disease/advance/AD = Advance_Mix(to_mix)
|
||||
if(AD)
|
||||
var/list/preserve = list(AD)
|
||||
for(var/D in data["viruses"])
|
||||
if(!istype(D, /datum/disease/advance))
|
||||
preserve += D
|
||||
data["viruses"] = preserve
|
||||
|
||||
if(mix_data["blood_colour"])
|
||||
color = mix_data["blood_colour"]
|
||||
return 1
|
||||
|
||||
/datum/reagent/blood/on_update(var/atom/A)
|
||||
if(data["blood_colour"])
|
||||
color = data["blood_colour"]
|
||||
return ..()
|
||||
|
||||
|
||||
|
||||
/datum/reagent/blood/reaction_turf(var/turf/simulated/T, var/volume)//splash the blood all over the place
|
||||
if(!istype(T)) return
|
||||
var/datum/reagent/blood/self = src
|
||||
src = null
|
||||
var/big_splash = 1
|
||||
if(volume < 3)
|
||||
big_splash = 0
|
||||
//var/datum/disease/D = self.data["virus"]
|
||||
if(!self.data["donor"] || istype(self.data["donor"], /mob/living/carbon/human))
|
||||
blood_splatter(T, src, big_splash)
|
||||
/datum/reagent/blood/reaction_turf(turf/simulated/T, reac_volume)//splash the blood all over the place
|
||||
if(!istype(T))
|
||||
return
|
||||
if(reac_volume < 3)
|
||||
return
|
||||
if(!data["donor"] || istype(data["donor"], /mob/living/carbon/human))
|
||||
var/obj/effect/decal/cleanable/blood/blood_prop = locate() in T //find some blood here
|
||||
if(!blood_prop) //first blood!
|
||||
blood_prop = new(T)
|
||||
blood_prop.blood_DNA[data["blood_DNA"]] = data["blood_type"]
|
||||
|
||||
if(blood_prop)
|
||||
blood_prop.blood_DNA[self.data["blood_DNA"]] = self.data["blood_type"]
|
||||
if(self.data["virus2"])
|
||||
blood_prop.virus2 = virus_copylist(self.data["virus2"])
|
||||
for(var/datum/disease/D in data["viruses"])
|
||||
var/datum/disease/newVirus = D.Copy(1)
|
||||
blood_prop.viruses += newVirus
|
||||
newVirus.holder = blood_prop
|
||||
|
||||
else if(istype(self.data["donor"], /mob/living/carbon/alien))
|
||||
else if(istype(data["donor"], /mob/living/carbon/alien))
|
||||
var/obj/effect/decal/cleanable/blood/xeno/blood_prop = locate() in T
|
||||
if(!blood_prop)
|
||||
blood_prop = new(T)
|
||||
blood_prop.blood_DNA["UNKNOWN DNA STRUCTURE"] = "X*"
|
||||
return
|
||||
|
||||
for(var/datum/disease/D in data["viruses"])
|
||||
var/datum/disease/newVirus = D.Copy(1)
|
||||
blood_prop.viruses += newVirus
|
||||
newVirus.holder = blood_prop
|
||||
|
||||
/datum/reagent/vaccine
|
||||
//data must contain virus type
|
||||
name = "Vaccine"
|
||||
id = "vaccine"
|
||||
color = "#C81040" // rgb: 200, 16, 64
|
||||
|
||||
/datum/reagent/vaccine/reaction_mob(mob/M, method=TOUCH, reac_volume)
|
||||
if(islist(data) && (method == INGEST))
|
||||
for(var/datum/disease/D in M.viruses)
|
||||
if(D.GetDiseaseID() in data)
|
||||
D.cure()
|
||||
M.resistances |= data
|
||||
|
||||
/datum/reagent/vaccine/on_merge(list/data)
|
||||
if(istype(data))
|
||||
src.data |= data.Copy()
|
||||
|
||||
/datum/reagent/fishwater
|
||||
name = "Fish Water"
|
||||
@@ -350,28 +388,3 @@
|
||||
var/t_loc = get_turf(O)
|
||||
qdel(O)
|
||||
new /obj/item/clothing/shoes/galoshes/dry(t_loc)
|
||||
|
||||
/*
|
||||
/datum/reagent/vaccine
|
||||
//data must contain virus type
|
||||
name = "Vaccine"
|
||||
id = "vaccine"
|
||||
reagent_state = LIQUID
|
||||
color = "#C81040" // rgb: 200, 16, 64
|
||||
|
||||
/datum/reagent/vaccine/reaction_mob(var/mob/M, var/method=TOUCH, var/volume)
|
||||
var/datum/reagent/vaccine/self = src
|
||||
src = null
|
||||
if(self.data&&method == INGEST)
|
||||
for(var/datum/disease/D in M.viruses)
|
||||
if(istype(D, /datum/disease/advance))
|
||||
var/datum/disease/advance/A = D
|
||||
if(A.GetDiseaseID() == self.data)
|
||||
D.cure()
|
||||
else
|
||||
if(D.type == self.data)
|
||||
D.cure()
|
||||
|
||||
M.resistances += self.data
|
||||
return
|
||||
*/
|
||||
@@ -0,0 +1,295 @@
|
||||
/obj/machinery/computer/pandemic
|
||||
name = "PanD.E.M.I.C 2200"
|
||||
desc = "Used to work with viruses."
|
||||
density = 1
|
||||
anchored = 1
|
||||
icon = 'icons/obj/chemical.dmi'
|
||||
icon_state = "mixer0"
|
||||
circuit = /obj/item/weapon/circuitboard/pandemic
|
||||
use_power = 1
|
||||
idle_power_usage = 20
|
||||
var/temp_html = ""
|
||||
var/wait = null
|
||||
var/obj/item/weapon/reagent_containers/beaker = null
|
||||
|
||||
/obj/machinery/computer/pandemic/New()
|
||||
..()
|
||||
update_icon()
|
||||
|
||||
/obj/machinery/computer/pandemic/set_broken()
|
||||
icon_state = (beaker ? "mixer1_b" : "mixer0_b")
|
||||
overlays.Cut()
|
||||
stat |= BROKEN
|
||||
|
||||
/obj/machinery/computer/pandemic/proc/GetVirusByIndex(index)
|
||||
if(beaker && beaker.reagents)
|
||||
if(beaker.reagents.reagent_list.len)
|
||||
var/datum/reagent/blood/BL = locate() in beaker.reagents.reagent_list
|
||||
if(BL)
|
||||
if(BL.data && BL.data["viruses"])
|
||||
var/list/viruses = BL.data["viruses"]
|
||||
return viruses[index]
|
||||
return null
|
||||
|
||||
/obj/machinery/computer/pandemic/proc/GetResistancesByIndex(index)
|
||||
if(beaker && beaker.reagents)
|
||||
if(beaker.reagents.reagent_list.len)
|
||||
var/datum/reagent/blood/BL = locate() in beaker.reagents.reagent_list
|
||||
if(BL)
|
||||
if(BL.data && BL.data["resistances"])
|
||||
var/list/resistances = BL.data["resistances"]
|
||||
return resistances[index]
|
||||
return null
|
||||
|
||||
/obj/machinery/computer/pandemic/proc/GetVirusTypeByIndex(index)
|
||||
var/datum/disease/D = GetVirusByIndex(index)
|
||||
if(D)
|
||||
return D.GetDiseaseID()
|
||||
return null
|
||||
|
||||
/obj/machinery/computer/pandemic/proc/replicator_cooldown(waittime)
|
||||
wait = 1
|
||||
update_icon()
|
||||
spawn(waittime)
|
||||
src.wait = null
|
||||
update_icon()
|
||||
playsound(src.loc, 'sound/machines/ping.ogg', 30, 1)
|
||||
|
||||
/obj/machinery/computer/pandemic/update_icon()
|
||||
if(stat & BROKEN)
|
||||
icon_state = (beaker ? "mixer1_b" : "mixer0_b")
|
||||
return
|
||||
|
||||
icon_state = "mixer[(beaker)?"1":"0"][(powered()) ? "" : "_nopower"]"
|
||||
|
||||
if(wait)
|
||||
overlays.Cut()
|
||||
else
|
||||
overlays += "waitlight"
|
||||
|
||||
/obj/machinery/computer/pandemic/Topic(href, href_list)
|
||||
if(..())
|
||||
return
|
||||
|
||||
usr.set_machine(src)
|
||||
if(!beaker) return
|
||||
|
||||
if (href_list["create_vaccine"])
|
||||
if(!src.wait)
|
||||
var/obj/item/weapon/reagent_containers/glass/bottle/B = new/obj/item/weapon/reagent_containers/glass/bottle(src.loc)
|
||||
if(B)
|
||||
B.pixel_x = rand(-3, 3)
|
||||
B.pixel_y = rand(-3, 3)
|
||||
var/path = GetResistancesByIndex(text2num(href_list["create_vaccine"]))
|
||||
var/vaccine_type = path
|
||||
var/vaccine_name = "Unknown"
|
||||
|
||||
if(!ispath(vaccine_type))
|
||||
if(archive_diseases[path])
|
||||
var/datum/disease/D = archive_diseases[path]
|
||||
if(D)
|
||||
vaccine_name = D.name
|
||||
vaccine_type = path
|
||||
else if(vaccine_type)
|
||||
var/datum/disease/D = new vaccine_type(0, null)
|
||||
if(D)
|
||||
vaccine_name = D.name
|
||||
|
||||
if(vaccine_type)
|
||||
|
||||
B.name = "[vaccine_name] vaccine bottle"
|
||||
B.reagents.add_reagent("vaccine", 15, list(vaccine_type))
|
||||
replicator_cooldown(200)
|
||||
else
|
||||
src.temp_html = "The replicator is not ready yet."
|
||||
src.updateUsrDialog()
|
||||
return
|
||||
else if (href_list["create_virus_culture"])
|
||||
if(!wait)
|
||||
var/type = GetVirusTypeByIndex(text2num(href_list["create_virus_culture"]))//the path is received as string - converting
|
||||
var/datum/disease/D = null
|
||||
if(!ispath(type))
|
||||
D = GetVirusByIndex(text2num(href_list["create_virus_culture"]))
|
||||
var/datum/disease/advance/A = archive_diseases[D.GetDiseaseID()]
|
||||
if(A)
|
||||
D = new A.type(0, A)
|
||||
else if(type)
|
||||
if(type in diseases) // Make sure this is a disease
|
||||
D = new type(0, null)
|
||||
if(!D)
|
||||
return
|
||||
var/name = stripped_input(usr,"Name:","Name the culture",D.name,MAX_NAME_LEN)
|
||||
if(name == null || wait)
|
||||
return
|
||||
var/obj/item/weapon/reagent_containers/glass/bottle/B = new/obj/item/weapon/reagent_containers/glass/bottle(src.loc)
|
||||
B.icon_state = "bottle3"
|
||||
B.pixel_x = rand(-3, 3)
|
||||
B.pixel_y = rand(-3, 3)
|
||||
replicator_cooldown(50)
|
||||
var/list/data = list("viruses"=list(D))
|
||||
B.name = "[name] culture bottle"
|
||||
B.desc = "A small bottle. Contains [D.agent] culture in synthblood medium."
|
||||
B.reagents.add_reagent("blood",20,data)
|
||||
src.updateUsrDialog()
|
||||
else
|
||||
src.temp_html = "The replicator is not ready yet."
|
||||
src.updateUsrDialog()
|
||||
return
|
||||
else if (href_list["empty_beaker"])
|
||||
beaker.reagents.clear_reagents()
|
||||
src.updateUsrDialog()
|
||||
return
|
||||
else if (href_list["eject"])
|
||||
beaker:loc = src.loc
|
||||
beaker = null
|
||||
icon_state = "mixer0"
|
||||
src.updateUsrDialog()
|
||||
return
|
||||
else if(href_list["clear"])
|
||||
src.temp_html = ""
|
||||
src.updateUsrDialog()
|
||||
return
|
||||
else if(href_list["name_disease"])
|
||||
var/new_name = stripped_input(usr, "Name the Disease", "New Name", "", MAX_NAME_LEN)
|
||||
if(!new_name)
|
||||
return
|
||||
if(..())
|
||||
return
|
||||
var/id = GetVirusTypeByIndex(text2num(href_list["name_disease"]))
|
||||
if(archive_diseases[id])
|
||||
var/datum/disease/advance/A = archive_diseases[id]
|
||||
A.AssignName(new_name)
|
||||
for(var/datum/disease/advance/AD in disease_master.processing)
|
||||
AD.Refresh()
|
||||
src.updateUsrDialog()
|
||||
|
||||
|
||||
else
|
||||
usr << browse(null, "window=pandemic")
|
||||
src.updateUsrDialog()
|
||||
return
|
||||
|
||||
src.add_fingerprint(usr)
|
||||
return
|
||||
|
||||
/obj/machinery/computer/pandemic/attack_hand(mob/user)
|
||||
if(..())
|
||||
return
|
||||
user.set_machine(src)
|
||||
var/dat = ""
|
||||
if(src.temp_html)
|
||||
dat = "[src.temp_html]<BR><BR><A href='?src=\ref[src];clear=1'>Main Menu</A>"
|
||||
else if(!beaker)
|
||||
dat += "Please insert beaker.<BR>"
|
||||
dat += "<A href='?src=\ref[user];mach_close=pandemic'>Close</A>"
|
||||
else
|
||||
var/datum/reagents/R = beaker.reagents
|
||||
var/datum/reagent/blood/Blood = null
|
||||
for(var/datum/reagent/blood/B in R.reagent_list)
|
||||
if(B)
|
||||
Blood = B
|
||||
break
|
||||
if(!R.total_volume||!R.reagent_list.len)
|
||||
dat += "The beaker is empty<BR>"
|
||||
else if(!Blood)
|
||||
dat += "No blood sample found in beaker."
|
||||
else if(!Blood.data)
|
||||
dat += "No blood data found in beaker."
|
||||
else
|
||||
dat += "<h3>Blood sample data:</h3>"
|
||||
dat += "<b>Blood DNA:</b> [(Blood.data["blood_DNA"]||"none")]<BR>"
|
||||
dat += "<b>Blood Type:</b> [(Blood.data["blood_type"]||"none")]<BR>"
|
||||
|
||||
|
||||
if(Blood.data["viruses"])
|
||||
var/list/vir = Blood.data["viruses"]
|
||||
if(vir.len)
|
||||
var/i = 0
|
||||
for(var/datum/disease/D in Blood.data["viruses"])
|
||||
i++
|
||||
if(!(D.visibility_flags & HIDDEN_PANDEMIC))
|
||||
|
||||
if(istype(D, /datum/disease/advance))
|
||||
|
||||
var/datum/disease/advance/A = D
|
||||
D = archive_diseases[A.GetDiseaseID()]
|
||||
if(D && D.name == "Unknown")
|
||||
dat += "<b><a href='?src=\ref[src];name_disease=[i]'>Name Disease</a></b><BR>"
|
||||
|
||||
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=[i]'>Create virus culture bottle</A>":"none"]<BR>"
|
||||
dat += "<b>Common name:</b> [(D.name||"none")]<BR>"
|
||||
dat += "<b>Description: </b> [(D.desc||"none")]<BR>"
|
||||
dat += "<b>Spread:</b> [(D.spread_text||"none")]<BR>"
|
||||
dat += "<b>Possible cure:</b> [(D.cure_text||"none")]<BR><BR>"
|
||||
|
||||
if(istype(D, /datum/disease/advance))
|
||||
var/datum/disease/advance/A = D
|
||||
dat += "<b>Symptoms:</b> "
|
||||
var/english_symptoms = list()
|
||||
for(var/datum/symptom/S in A.symptoms)
|
||||
english_symptoms += S.name
|
||||
dat += english_list(english_symptoms)
|
||||
|
||||
else
|
||||
dat += "No detectable virus in the sample."
|
||||
else
|
||||
dat += "No detectable virus in the sample."
|
||||
|
||||
dat += "<BR><b>Contains antibodies to:</b> "
|
||||
if(Blood.data["resistances"])
|
||||
var/list/res = Blood.data["resistances"]
|
||||
if(res.len)
|
||||
dat += "<ul>"
|
||||
var/i = 0
|
||||
for(var/type in Blood.data["resistances"])
|
||||
i++
|
||||
var/disease_name = "Unknown"
|
||||
|
||||
if(!ispath(type))
|
||||
var/datum/disease/advance/A = archive_diseases[type]
|
||||
if(A)
|
||||
disease_name = A.name
|
||||
else
|
||||
var/datum/disease/D = new type(0, null)
|
||||
disease_name = D.name
|
||||
|
||||
dat += "<li>[disease_name] - <A href='?src=\ref[src];create_vaccine=[i]'>Create vaccine bottle</A></li>"
|
||||
dat += "</ul><BR>"
|
||||
else
|
||||
dat += "nothing<BR>"
|
||||
else
|
||||
dat += "nothing<BR>"
|
||||
dat += "<BR><A href='?src=\ref[src];eject=1'>Eject beaker</A>[((R.total_volume&&R.reagent_list.len) ? "-- <A href='?src=\ref[src];empty_beaker=1'>Empty beaker</A>":"")]<BR>"
|
||||
dat += "<A href='?src=\ref[user];mach_close=pandemic'>Close</A>"
|
||||
|
||||
user << browse("<TITLE>[src.name]</TITLE><BR>[dat]", "window=pandemic;size=575x400")
|
||||
onclose(user, "pandemic")
|
||||
return
|
||||
|
||||
|
||||
/obj/machinery/computer/pandemic/attackby(obj/item/I, mob/user, params)
|
||||
if(istype(I, /obj/item/weapon/reagent_containers) && (I.flags & OPENCONTAINER))
|
||||
if(stat & (NOPOWER|BROKEN)) return
|
||||
if(beaker)
|
||||
user << "<span class='warning'>A beaker is already loaded into the machine!</span>"
|
||||
return
|
||||
if(!user.drop_item())
|
||||
return
|
||||
|
||||
beaker = I
|
||||
beaker.loc = src
|
||||
user << "<span class='notice'>You add the beaker to the machine.</span>"
|
||||
src.updateUsrDialog()
|
||||
icon_state = "mixer1"
|
||||
|
||||
else if(istype(I, /obj/item/weapon/screwdriver))
|
||||
if(src.beaker)
|
||||
beaker.loc = get_turf(src)
|
||||
..()
|
||||
return
|
||||
else
|
||||
..()
|
||||
return
|
||||
@@ -7,6 +7,9 @@
|
||||
var/amount_per_transfer_from_this = 5
|
||||
var/possible_transfer_amounts = list(5,10,15,25,30)
|
||||
var/volume = 30
|
||||
var/list/list_reagents = null
|
||||
var/spawned_disease = null
|
||||
var/disease_amount = 20
|
||||
|
||||
/obj/item/weapon/reagent_containers/verb/set_APTFT() //set amount_per_transfer_from_this
|
||||
set name = "Set transfer amount"
|
||||
@@ -30,6 +33,12 @@
|
||||
reagents = R
|
||||
R.my_atom = src
|
||||
processing_objects.Add(src)
|
||||
if(spawned_disease)
|
||||
var/datum/disease/F = new spawned_disease(0)
|
||||
var/list/data = list("viruses" = list(F), "blood_colour" = "#A10808")
|
||||
reagents.add_reagent("blood", disease_amount, data)
|
||||
if(list_reagents)
|
||||
reagents.add_reagent_list(list_reagents)
|
||||
|
||||
/obj/item/weapon/reagent_containers/process()
|
||||
if(reagents)
|
||||
|
||||
@@ -1597,6 +1597,12 @@
|
||||
user.drop_item()
|
||||
forceMove(get_turf(O))
|
||||
return Expand()
|
||||
if(istype(O, /obj/machinery/computer/camera_advanced/xenobio))
|
||||
var/obj/machinery/computer/camera_advanced/xenobio/X = O
|
||||
X.monkeys++
|
||||
user << "<span class='notice'>You feed [src] to the [X]. It now has [X.monkeys] monkey cubes stored.</span>"
|
||||
qdel(src)
|
||||
return
|
||||
..()
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/monkeycube/attack_self(mob/user)
|
||||
|
||||
@@ -299,4 +299,120 @@
|
||||
|
||||
New()
|
||||
..()
|
||||
reagents.add_reagent(pick("polonium","initropidril","concentrated_initro","pancuronium","sodium_thiopental","ketamine","sulfonal","amanitin","coniine","curare","sarin","histamine","venom","cyanide","spidereggs"), 40)
|
||||
reagents.add_reagent(pick("polonium","initropidril","concentrated_initro","pancuronium","sodium_thiopental","ketamine","sulfonal","amanitin","coniine","curare","sarin","histamine","venom","cyanide","spidereggs"), 40)
|
||||
|
||||
|
||||
/obj/item/weapon/reagent_containers/glass/bottle/plasma
|
||||
name = "liquid plasma bottle"
|
||||
desc = "A small bottle of liquid plasma. Extremely toxic and reacts with micro-organisms inside blood."
|
||||
icon_state = "bottle8"
|
||||
list_reagents = list("plasma" = 30)
|
||||
|
||||
/obj/item/weapon/reagent_containers/glass/bottle/diphenhydramine
|
||||
name = "diphenhydramine bottle"
|
||||
desc = "A small bottle of diphenhydramine."
|
||||
icon_state = "bottle20"
|
||||
list_reagents = list("diphenhydramine" = 30)
|
||||
|
||||
/obj/item/weapon/reagent_containers/glass/bottle/flu_virion
|
||||
name = "Flu virion culture bottle"
|
||||
desc = "A small bottle. Contains H13N1 flu virion culture in synthblood medium."
|
||||
icon_state = "bottle3"
|
||||
spawned_disease = /datum/disease/advance/flu
|
||||
|
||||
/obj/item/weapon/reagent_containers/glass/bottle/epiglottis_virion
|
||||
name = "Epiglottis virion culture bottle"
|
||||
desc = "A small bottle. Contains Epiglottis virion culture in synthblood medium."
|
||||
icon_state = "bottle3"
|
||||
spawned_disease = /datum/disease/advance/voice_change
|
||||
|
||||
/obj/item/weapon/reagent_containers/glass/bottle/liver_enhance_virion
|
||||
name = "Liver enhancement virion culture bottle"
|
||||
desc = "A small bottle. Contains liver enhancement virion culture in synthblood medium."
|
||||
icon_state = "bottle3"
|
||||
spawned_disease = /datum/disease/advance/heal
|
||||
|
||||
/obj/item/weapon/reagent_containers/glass/bottle/hullucigen_virion
|
||||
name = "Hullucigen virion culture bottle"
|
||||
desc = "A small bottle. Contains hullucigen virion culture in synthblood medium."
|
||||
icon_state = "bottle3"
|
||||
spawned_disease = /datum/disease/advance/hullucigen
|
||||
|
||||
/obj/item/weapon/reagent_containers/glass/bottle/pierrot_throat
|
||||
name = "Pierrot's Throat culture bottle"
|
||||
desc = "A small bottle. Contains H0NI<42 virion culture in synthblood medium."
|
||||
icon_state = "bottle3"
|
||||
spawned_disease = /datum/disease/pierrot_throat
|
||||
|
||||
/obj/item/weapon/reagent_containers/glass/bottle/cold
|
||||
name = "Rhinovirus culture bottle"
|
||||
desc = "A small bottle. Contains XY-rhinovirus culture in synthblood medium."
|
||||
icon_state = "bottle3"
|
||||
spawned_disease = /datum/disease/advance/cold
|
||||
|
||||
/obj/item/weapon/reagent_containers/glass/bottle/retrovirus
|
||||
name = "Retrovirus culture bottle"
|
||||
desc = "A small bottle. Contains a retrovirus culture in a synthblood medium."
|
||||
icon_state = "bottle3"
|
||||
spawned_disease = /datum/disease/dna_retrovirus
|
||||
|
||||
/obj/item/weapon/reagent_containers/glass/bottle/gbs
|
||||
name = "GBS culture bottle"
|
||||
desc = "A small bottle. Contains Gravitokinetic Bipotential SADS+ culture in synthblood medium."//Or simply - General BullShit
|
||||
icon_state = "bottle3"
|
||||
amount_per_transfer_from_this = 5
|
||||
spawned_disease = /datum/disease/gbs
|
||||
|
||||
/obj/item/weapon/reagent_containers/glass/bottle/fake_gbs
|
||||
name = "GBS culture bottle"
|
||||
desc = "A small bottle. Contains Gravitokinetic Bipotential SADS- culture in synthblood medium."//Or simply - General BullShit
|
||||
icon_state = "bottle3"
|
||||
spawned_disease = /datum/disease/fake_gbs
|
||||
|
||||
/obj/item/weapon/reagent_containers/glass/bottle/brainrot
|
||||
name = "Brainrot culture bottle"
|
||||
desc = "A small bottle. Contains Cryptococcus Cosmosis culture in synthblood medium."
|
||||
icon_state = "bottle3"
|
||||
spawned_disease = /datum/disease/brainrot
|
||||
|
||||
/obj/item/weapon/reagent_containers/glass/bottle/magnitis
|
||||
name = "Magnitis culture bottle"
|
||||
desc = "A small bottle. Contains a small dosage of Fukkos Miracos."
|
||||
icon_state = "bottle3"
|
||||
spawned_disease = /datum/disease/magnitis
|
||||
|
||||
/obj/item/weapon/reagent_containers/glass/bottle/wizarditis
|
||||
name = "Wizarditis culture bottle"
|
||||
desc = "A small bottle. Contains a sample of Rincewindus Vulgaris."
|
||||
icon_state = "bottle3"
|
||||
spawned_disease = /datum/disease/wizarditis
|
||||
|
||||
/obj/item/weapon/reagent_containers/glass/bottle/anxiety
|
||||
name = "Severe Anxiety culture bottle"
|
||||
desc = "A small bottle. Contains a sample of Lepidopticides."
|
||||
icon_state = "bottle3"
|
||||
spawned_disease = /datum/disease/anxiety
|
||||
|
||||
/obj/item/weapon/reagent_containers/glass/bottle/beesease
|
||||
name = "Beesease culture bottle"
|
||||
desc = "A small bottle. Contains a sample of invasive Apidae."
|
||||
icon_state = "bottle3"
|
||||
spawned_disease = /datum/disease/beesease
|
||||
|
||||
/obj/item/weapon/reagent_containers/glass/bottle/fluspanish
|
||||
name = "Spanish flu culture bottle"
|
||||
desc = "A small bottle. Contains a sample of Inquisitius."
|
||||
icon_state = "bottle3"
|
||||
spawned_disease = /datum/disease/fluspanish
|
||||
|
||||
/obj/item/weapon/reagent_containers/glass/bottle/tuberculosis
|
||||
name = "Fungal Tuberculosis culture bottle"
|
||||
desc = "A small bottle. Contains a sample of Fungal Tubercle bacillus."
|
||||
icon_state = "bottle3"
|
||||
spawned_disease = /datum/disease/tuberculosis
|
||||
|
||||
/obj/item/weapon/reagent_containers/glass/bottle/tuberculosiscure
|
||||
name = "BVAK bottle"
|
||||
desc = "A small bottle containing Bio Virus Antidote Kit."
|
||||
icon_state = "bottle5"
|
||||
list_reagents = list("atropine" = 5, "epinephrine" = 5, "salbutamol" = 10, "spaceacillin" = 10)
|
||||
|
||||
@@ -31,12 +31,11 @@
|
||||
/mob/living/simple_animal/bot/medbot,
|
||||
/obj/item/weapon/storage/secure/safe,
|
||||
/obj/machinery/iv_drip,
|
||||
/obj/machinery/disease2/incubator,
|
||||
/obj/machinery/computer/pandemic,
|
||||
/obj/machinery/disposal,
|
||||
/obj/machinery/apiary,
|
||||
/mob/living/simple_animal/cow,
|
||||
/mob/living/simple_animal/hostile/retaliate/goat,
|
||||
/obj/machinery/computer/centrifuge,
|
||||
/obj/machinery/sleeper,
|
||||
/obj/machinery/smartfridge/,
|
||||
/obj/machinery/biogenerator,
|
||||
|
||||
Reference in New Issue
Block a user