mirror of
https://github.com/PolarisSS13/Polaris.git
synced 2025-12-27 18:42:19 +00:00
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@861 316c924e-a436-60f5-8080-3fe189b3f50e
2197 lines
61 KiB
Plaintext
2197 lines
61 KiB
Plaintext
#define SOLID 1
|
|
#define LIQUID 2
|
|
#define GAS 3
|
|
|
|
//The reaction procs must ALWAYS set src = null, this detaches the proc from the object (the reagent)
|
|
//so that it can continue working when the reagent is deleted while the proc is still active.
|
|
|
|
datum
|
|
reagent
|
|
var/name = "Reagent"
|
|
var/id = "reagent"
|
|
var/description = ""
|
|
var/datum/reagents/holder = null
|
|
var/reagent_state = SOLID
|
|
var/data = null
|
|
var/volume = 0
|
|
var/nutriment_factor = 0
|
|
|
|
proc
|
|
reaction_mob(var/mob/M, var/method=TOUCH, var/volume) //By default we have a chance to transfer some
|
|
var/datum/reagent/self = src
|
|
src = null //of the reagent to the mob on TOUCHING it.
|
|
if(method == TOUCH)
|
|
|
|
var/chance = 1
|
|
for(var/obj/item/clothing/C in M.get_equipped_items())
|
|
if(C.permeability_coefficient < chance) chance = C.permeability_coefficient
|
|
chance = chance * 100
|
|
|
|
if(prob(chance))
|
|
if(M.reagents)
|
|
M.reagents.add_reagent(self.id,self.volume/2)
|
|
return
|
|
|
|
reaction_obj(var/obj/O, var/volume) //By default we transfer a small part of the reagent to the object
|
|
src = null //if it can hold reagents. nope!
|
|
//if(O.reagents)
|
|
// O.reagents.add_reagent(id,volume/3)
|
|
return
|
|
|
|
reaction_turf(var/turf/T, var/volume)
|
|
src = null
|
|
return
|
|
|
|
on_mob_life(var/mob/M)
|
|
holder.remove_reagent(src.id, REAGENTS_METABOLISM) //By default it slowly disappears.
|
|
return
|
|
|
|
on_move(var/mob/M)
|
|
return
|
|
|
|
on_update(var/atom/A)
|
|
return
|
|
|
|
metroid
|
|
name = "Metroid Jam"
|
|
id = "metroid"
|
|
description = "A green semi-liquid produced from one of the deadliest lifeforms in existence."
|
|
reagent_state = LIQUID
|
|
on_mob_life(var/mob/M)
|
|
if(prob(10))
|
|
M << "You don't feel too good."
|
|
M.toxloss+=20
|
|
else if(prob(40))
|
|
M.bruteloss-=5
|
|
..()
|
|
|
|
|
|
|
|
blood
|
|
data = new/list("donor"=null,"virus"=null,"blood_DNA"=null,"blood_type"=null,"resistances"=null)
|
|
name = "Blood"
|
|
id = "blood"
|
|
reagent_state = LIQUID
|
|
|
|
reaction_mob(var/mob/M, var/method=TOUCH, var/volume)
|
|
if(M.virus) return //to prevent the healing of some serious shit with common cold injection.
|
|
var/datum/reagent/blood/self = src
|
|
src = null
|
|
if(self.data["virus"])
|
|
var/datum/disease/V = self.data["virus"]
|
|
if(M.resistances.Find(V.type)) return
|
|
if(method == TOUCH)//respect all protective clothing...
|
|
M.contract_disease(V)
|
|
else //injected
|
|
M.contract_disease(V, 1, 0)
|
|
return
|
|
|
|
|
|
reaction_turf(var/turf/T, var/volume)//splash the blood all over the place
|
|
var/datum/reagent/blood/self = src
|
|
src = null
|
|
if(!istype(T, /turf/simulated/)) return
|
|
var/datum/disease/D = self.data["virus"]
|
|
if(istype(self.data["donor"], /mob/living/carbon/human) || !self.data["donor"])
|
|
var/turf/simulated/source2 = T
|
|
var/list/objsonturf = range(0,T)
|
|
var/i
|
|
for(i=1, i<=objsonturf.len, i++)
|
|
if(istype(objsonturf[i],/obj/decal/cleanable/blood))
|
|
return
|
|
var/obj/decal/cleanable/blood/blood_prop = new /obj/decal/cleanable/blood(source2)
|
|
blood_prop.blood_DNA = self.data["blood_DNA"]
|
|
blood_prop.blood_type = self.data["blood_type"]
|
|
if(D)
|
|
blood_prop.virus = new D.type
|
|
blood_prop.virus.holder = blood_prop
|
|
if(istype(T, /turf/simulated/floor) && D)
|
|
blood_prop.virus.spread_type = CONTACT_FEET
|
|
else if (D)
|
|
blood_prop.virus.spread_type = CONTACT_HANDS
|
|
|
|
else if(istype(self.data["donor"], /mob/living/carbon/monkey))
|
|
var/turf/simulated/source1 = T
|
|
var/obj/decal/cleanable/blood/blood_prop = new /obj/decal/cleanable/blood(source1)
|
|
blood_prop.blood_DNA = self.data["blood_DNA"]
|
|
if(D)
|
|
blood_prop.virus = new D.type
|
|
blood_prop.virus.holder = blood_prop
|
|
if(istype(T, /turf/simulated/floor))
|
|
blood_prop.virus.spread_type = CONTACT_FEET
|
|
else
|
|
blood_prop.virus.spread_type = CONTACT_HANDS
|
|
|
|
else if(istype(self.data["donor"], /mob/living/carbon/alien))
|
|
var/turf/simulated/source2 = T
|
|
var/obj/decal/cleanable/xenoblood/blood_prop = new /obj/decal/cleanable/xenoblood(source2)
|
|
if(D)
|
|
blood_prop.virus = new D.type
|
|
blood_prop.virus.holder = blood_prop
|
|
if(istype(T, /turf/simulated/floor))
|
|
blood_prop.virus.spread_type = CONTACT_FEET
|
|
else
|
|
blood_prop.virus.spread_type = CONTACT_HANDS
|
|
return
|
|
|
|
/* Must check the transfering of reagents and their data first. They all can point to one disease datum.
|
|
|
|
Del()
|
|
if(src.data["virus"])
|
|
var/datum/disease/D = src.data["virus"]
|
|
D.cure(0)
|
|
..()
|
|
*/
|
|
vaccine
|
|
//data must contain virus type
|
|
name = "Vaccine"
|
|
id = "vaccine"
|
|
reagent_state = LIQUID
|
|
|
|
reaction_mob(var/mob/M, var/method=TOUCH, var/volume)
|
|
var/datum/reagent/vaccine/self = src
|
|
src = null
|
|
if(self.data&&method == INGEST)
|
|
if(M.virus && M.virus.type == self.data)
|
|
M.virus.cure()
|
|
else if(!(self.data in M.resistances))
|
|
M.resistances += self.data
|
|
return
|
|
|
|
|
|
water
|
|
name = "Water"
|
|
id = "water"
|
|
description = "A ubiquitous chemical substance that is composed of hydrogen and oxygen."
|
|
reagent_state = LIQUID
|
|
|
|
reaction_turf(var/turf/T, var/volume)
|
|
src = null
|
|
if(volume >= 3)
|
|
if(T:wet >= 1) return
|
|
T:wet = 1
|
|
if(T:wet_overlay)
|
|
T:overlays -= T:wet_overlay
|
|
T:wet_overlay = null
|
|
T:wet_overlay = image('water.dmi',T,"wet_floor")
|
|
T:overlays += T:wet_overlay
|
|
|
|
spawn(800)
|
|
if(T:wet >= 2) return
|
|
T:wet = 0
|
|
if(T:wet_overlay)
|
|
T:overlays -= T:wet_overlay
|
|
T:wet_overlay = null
|
|
|
|
var/hotspot = (locate(/obj/hotspot) in T)
|
|
if(hotspot && !istype(T, /turf/space))
|
|
var/datum/gas_mixture/lowertemp = T.remove_air( T:air:total_moles() )
|
|
lowertemp.temperature = max( min(lowertemp.temperature-2000,lowertemp.temperature / 2) ,0)
|
|
lowertemp.react()
|
|
T.assume_air(lowertemp)
|
|
del(hotspot)
|
|
return
|
|
reaction_obj(var/obj/O, var/volume)
|
|
src = null
|
|
var/turf/T = get_turf(O)
|
|
var/hotspot = (locate(/obj/hotspot) in T)
|
|
if(hotspot && !istype(T, /turf/space))
|
|
var/datum/gas_mixture/lowertemp = T.remove_air( T:air:total_moles() )
|
|
lowertemp.temperature = max( min(lowertemp.temperature-2000,lowertemp.temperature / 2) ,0)
|
|
lowertemp.react()
|
|
T.assume_air(lowertemp)
|
|
del(hotspot)
|
|
return
|
|
|
|
lube
|
|
name = "Space Lube"
|
|
id = "lube"
|
|
description = "Lubricant is a substance introduced between two moving surfaces to reduce the friction and wear between them. giggity."
|
|
reagent_state = LIQUID
|
|
|
|
reaction_turf(var/turf/T, var/volume)
|
|
if (!istype(T, /turf/space))
|
|
src = null
|
|
if(T:wet >= 2) return
|
|
T:wet = 2
|
|
spawn(800)
|
|
T:wet = 0
|
|
if(T:wet_overlay)
|
|
T:overlays -= T:wet_overlay
|
|
T:wet_overlay = null
|
|
|
|
return
|
|
|
|
bilk
|
|
name = "Bilk"
|
|
id = "bilk"
|
|
description = "This appears to be beer mixed with milk. Disgusting."
|
|
reagent_state = LIQUID
|
|
|
|
anti_toxin
|
|
name = "Anti-Toxin (Dylovene)"
|
|
id = "anti_toxin"
|
|
description = "Dylovene is a broad-spectrum antitoxin."
|
|
reagent_state = LIQUID
|
|
|
|
on_mob_life(var/mob/M)
|
|
if(!M) M = holder.my_atom
|
|
M:drowsyness = max(M:drowsyness-2, 0)
|
|
if(holder.has_reagent("toxin"))
|
|
holder.remove_reagent("toxin", 2)
|
|
if(holder.has_reagent("stoxin"))
|
|
holder.remove_reagent("stoxin", 2)
|
|
if(holder.has_reagent("plasma"))
|
|
holder.remove_reagent("plasma", 1)
|
|
if(holder.has_reagent("acid"))
|
|
holder.remove_reagent("acid", 1)
|
|
if(holder.has_reagent("cyanide"))
|
|
holder.remove_reagent("cyanide", 1)
|
|
if(holder.has_reagent("amatoxin"))
|
|
holder.remove_reagent("amatoxin", 2)
|
|
if(holder.has_reagent("chloralhydrate"))
|
|
holder.remove_reagent("chloralhydrate", 5)
|
|
if(holder.has_reagent("carpotoxin"))
|
|
holder.remove_reagent("carpotoxin", 1)
|
|
M:toxloss = max(M:toxloss-2,0)
|
|
..()
|
|
return
|
|
|
|
toxin
|
|
name = "Toxin"
|
|
id = "toxin"
|
|
description = "A Toxic chemical."
|
|
reagent_state = LIQUID
|
|
|
|
on_mob_life(var/mob/M)
|
|
if(!M) M = holder.my_atom
|
|
M:toxloss += 1.5
|
|
..()
|
|
return
|
|
|
|
cyanide
|
|
name = "Cyanide"
|
|
id = "cyanide"
|
|
description = "A highly toxic chemical."
|
|
reagent_state = LIQUID
|
|
on_mob_life(var/mob/M)
|
|
if(!M) M = holder.my_atom
|
|
M:toxloss += 3
|
|
M:oxyloss += 3
|
|
..()
|
|
return
|
|
|
|
stoxin
|
|
name = "Sleep Toxin"
|
|
id = "stoxin"
|
|
description = "An effective hypnotic used to treat insomnia."
|
|
reagent_state = LIQUID
|
|
|
|
on_mob_life(var/mob/M)
|
|
if(!M) M = holder.my_atom
|
|
if(!data) data = 1
|
|
switch(data)
|
|
if(1 to 15)
|
|
M.eye_blurry = max(M.eye_blurry, 10)
|
|
if(15 to 25)
|
|
M:drowsyness = max(M:drowsyness, 20)
|
|
if(25 to INFINITY)
|
|
M:paralysis = max(M:paralysis, 20)
|
|
M:drowsyness = max(M:drowsyness, 30)
|
|
data++
|
|
..()
|
|
return
|
|
|
|
inaprovaline
|
|
name = "Inaprovaline"
|
|
id = "inaprovaline"
|
|
description = "Inaprovaline is a synaptic stimulant and cardiostimulant. Commonly used to stabilize patients."
|
|
reagent_state = LIQUID
|
|
|
|
on_mob_life(var/mob/M)
|
|
if(!M) M = holder.my_atom
|
|
if(M.losebreath >= 10)
|
|
M.losebreath = max(10, M.losebreath-5)
|
|
holder.remove_reagent(src.id, 0.2)
|
|
return
|
|
|
|
space_drugs
|
|
name = "Space drugs"
|
|
id = "space_drugs"
|
|
description = "An illegal chemical compound used as drug."
|
|
reagent_state = LIQUID
|
|
on_mob_life(var/mob/M)
|
|
if(!M) M = holder.my_atom
|
|
M.druggy = max(M.druggy, 15)
|
|
if(M.canmove) step(M, pick(cardinal))
|
|
if(prob(7)) M:emote(pick("twitch","drool","moan","giggle"))
|
|
holder.remove_reagent(src.id, 0.2)
|
|
return
|
|
|
|
silicate
|
|
name = "Silicate"
|
|
id = "silicate"
|
|
description = "A compound that can be used to reinforce glass."
|
|
reagent_state = LIQUID
|
|
reaction_obj(var/obj/O, var/volume)
|
|
src = null
|
|
if(istype(O,/obj/window))
|
|
O:health = O:health * 2
|
|
var/icon/I = icon(O.icon,O.icon_state,O.dir)
|
|
I.SetIntensity(1.15,1.50,1.75)
|
|
O.icon = I
|
|
return
|
|
|
|
oxygen
|
|
name = "Oxygen"
|
|
id = "oxygen"
|
|
description = "A colorless, odorless gas."
|
|
reagent_state = GAS
|
|
|
|
copper
|
|
name = "Copper"
|
|
id = "copper"
|
|
description = "A highly ductile metal."
|
|
|
|
nitrogen
|
|
name = "Nitrogen"
|
|
id = "nitrogen"
|
|
description = "A colorless, odorless, tasteless gas."
|
|
reagent_state = GAS
|
|
|
|
hydrogen
|
|
name = "Hydrogen"
|
|
id = "hydrogen"
|
|
description = "A colorless, odorless, nonmetallic, tasteless, highly combustible diatomic gas."
|
|
reagent_state = GAS
|
|
|
|
potassium
|
|
name = "Potassium"
|
|
id = "potassium"
|
|
description = "A soft, low-melting solid that can easily be cut with a knife. Reacts violently with water."
|
|
reagent_state = SOLID
|
|
|
|
mercury
|
|
name = "Mercury"
|
|
id = "mercury"
|
|
description = "A chemical element."
|
|
reagent_state = LIQUID
|
|
|
|
on_mob_life(var/mob/M)
|
|
if(!M) M = holder.my_atom
|
|
if(M.canmove) step(M, pick(cardinal))
|
|
if(prob(5)) M:emote(pick("twitch","drool","moan"))
|
|
..()
|
|
return
|
|
|
|
sulfur
|
|
name = "Sulfur"
|
|
id = "sulfur"
|
|
description = "A chemical element."
|
|
reagent_state = SOLID
|
|
|
|
carbon
|
|
name = "Carbon"
|
|
id = "carbon"
|
|
description = "A chemical element."
|
|
reagent_state = SOLID
|
|
|
|
reaction_turf(var/turf/T, var/volume)
|
|
src = null
|
|
if(!istype(T, /turf/space))
|
|
new /obj/decal/cleanable/dirt(T)
|
|
|
|
chlorine
|
|
name = "Chlorine"
|
|
id = "chlorine"
|
|
description = "A chemical element."
|
|
reagent_state = GAS
|
|
on_mob_life(var/mob/M)
|
|
if(!M) M = holder.my_atom
|
|
M:bruteloss++
|
|
..()
|
|
return
|
|
|
|
fluorine
|
|
name = "Fluorine"
|
|
id = "fluorine"
|
|
description = "A highly-reactive chemical element."
|
|
reagent_state = GAS
|
|
on_mob_life(var/mob.M)
|
|
if(!M) M = holder.my_atom
|
|
M:toxloss++
|
|
..()
|
|
return
|
|
|
|
sodium
|
|
name = "Sodium"
|
|
id = "sodium"
|
|
description = "A chemical element."
|
|
reagent_state = SOLID
|
|
|
|
phosphorus
|
|
name = "Phosphorus"
|
|
id = "phosphorus"
|
|
description = "A chemical element."
|
|
reagent_state = SOLID
|
|
|
|
lithium
|
|
name = "Lithium"
|
|
id = "lithium"
|
|
description = "A chemical element."
|
|
reagent_state = SOLID
|
|
|
|
on_mob_life(var/mob/M)
|
|
if(!M) M = holder.my_atom
|
|
if(M.canmove) step(M, pick(cardinal))
|
|
if(prob(5)) M:emote(pick("twitch","drool","moan"))
|
|
..()
|
|
return
|
|
|
|
sugar
|
|
name = "Sugar"
|
|
id = "sugar"
|
|
description = "The organic compound commonly known as table sugar and sometimes called saccharose. This white, odorless, crystalline powder has a pleasing, sweet taste."
|
|
reagent_state = SOLID
|
|
|
|
acid
|
|
name = "Sulphuric acid"
|
|
id = "acid"
|
|
description = "A strong mineral acid with the molecular formula H2SO4."
|
|
reagent_state = LIQUID
|
|
on_mob_life(var/mob/M)
|
|
if(!M) M = holder.my_atom
|
|
M:toxloss++
|
|
M:fireloss++
|
|
..()
|
|
return
|
|
reaction_mob(var/mob/M, var/method=TOUCH, var/volume)
|
|
if(method == TOUCH)
|
|
if(istype(M, /mob/living/carbon/human))
|
|
if(M:wear_mask)
|
|
del (M:wear_mask)
|
|
M << "\red Your mask melts away but protects you from the acid!"
|
|
return
|
|
if(M:head)
|
|
del (M:head)
|
|
M << "\red Your helmet melts into uselessness but protects you from the acid!"
|
|
return
|
|
|
|
if(prob(75))
|
|
var/datum/organ/external/affecting = M:organs["head"]
|
|
affecting.take_damage(25, 0)
|
|
M:UpdateDamage()
|
|
M:UpdateDamageIcon()
|
|
M:emote("scream")
|
|
M << "\red Your face has become disfigured!"
|
|
M.real_name = "Unknown"
|
|
else
|
|
M:bruteloss += 15
|
|
else
|
|
M:bruteloss += 15
|
|
|
|
reaction_obj(var/obj/O, var/volume)
|
|
if(istype(O,/obj/item) && prob(40))
|
|
var/obj/decal/cleanable/molten_item/I = new/obj/decal/cleanable/molten_item(O.loc)
|
|
I.desc = "Looks like this was \an [O] some time ago."
|
|
for(var/mob/M in viewers(5, O))
|
|
M << "\red \the [O] melts."
|
|
del(O)
|
|
|
|
pacid
|
|
name = "Polytrinic acid"
|
|
id = "pacid"
|
|
description = "Polytrinic acid is a an extremely corrosive chemical substance."
|
|
reagent_state = LIQUID
|
|
on_mob_life(var/mob/M)
|
|
if(!M) M = holder.my_atom
|
|
M:toxloss++
|
|
M:fireloss++
|
|
..()
|
|
return
|
|
reaction_mob(var/mob/M, var/method=TOUCH, var/volume)
|
|
if(method == TOUCH)
|
|
if(istype(M, /mob/living/carbon/human))
|
|
if(M:wear_mask)
|
|
del (M:wear_mask)
|
|
M << "\red Your mask melts away!"
|
|
return
|
|
if(M:head)
|
|
del (M:head)
|
|
M << "\red Your helmet melts into uselessness!"
|
|
return
|
|
var/datum/organ/external/affecting = M:organs["head"]
|
|
affecting.take_damage(75, 0)
|
|
M:UpdateDamage()
|
|
M:UpdateDamageIcon()
|
|
M:emote("scream")
|
|
M << "\red Your face has become disfigured!"
|
|
M.real_name = "Unknown"
|
|
else
|
|
M:bruteloss += 15
|
|
else
|
|
if(istype(M, /mob/living/carbon/human))
|
|
var/datum/organ/external/affecting = M:organs["head"]
|
|
affecting.take_damage(75, 0)
|
|
M:UpdateDamage()
|
|
M:UpdateDamageIcon()
|
|
M:emote("scream")
|
|
M << "\red Your face has become disfigured!"
|
|
M.real_name = "Unknown"
|
|
else
|
|
M:bruteloss += 15
|
|
|
|
reaction_obj(var/obj/O, var/volume)
|
|
if(istype(O,/obj/item))
|
|
var/obj/decal/cleanable/molten_item/I = new/obj/decal/cleanable/molten_item(O.loc)
|
|
I.desc = "Looks like this was \an [O] some time ago."
|
|
for(var/mob/M in viewers(5, O))
|
|
M << "\red \the [O] melts."
|
|
del(O)
|
|
|
|
glycerol
|
|
name = "Glycerol"
|
|
id = "glycerol"
|
|
description = "Glycerol is a simple polyol compound. Glycerol is sweet-tasting and of low toxicity."
|
|
reagent_state = LIQUID
|
|
|
|
nitroglycerin
|
|
name = "Nitroglycerin"
|
|
id = "nitroglycerin"
|
|
description = "Nitroglycerin is a heavy, colorless, oily, explosive liquid obtained by nitrating glycerol."
|
|
reagent_state = LIQUID
|
|
|
|
radium
|
|
name = "Radium"
|
|
id = "radium"
|
|
description = "Radium is an alkaline earth metal. It is extremely radioactive."
|
|
reagent_state = SOLID
|
|
on_mob_life(var/mob/M)
|
|
if(!M) M = holder.my_atom
|
|
M.radiation += 3
|
|
..()
|
|
return
|
|
|
|
|
|
reaction_turf(var/turf/T, var/volume)
|
|
src = null
|
|
if(!istype(T, /turf/space))
|
|
new /obj/decal/cleanable/greenglow(T)
|
|
|
|
|
|
ryetalyn
|
|
name = "Ryetalyn"
|
|
id = "ryetalyn"
|
|
description = "Ryetalyn can cure all genetic abnomalities."
|
|
reagent_state = SOLID
|
|
on_mob_life(var/mob/M)
|
|
if(!M) M = holder.my_atom
|
|
M.mutations = 0
|
|
M.disabilities = 0
|
|
M.sdisabilities = 0
|
|
..()
|
|
return
|
|
|
|
thermite
|
|
name = "Thermite"
|
|
id = "thermite"
|
|
description = "Thermite produces an aluminothermic reaction known as a thermite reaction. Can be used to melt walls."
|
|
reagent_state = SOLID
|
|
reaction_turf(var/turf/T, var/volume)
|
|
src = null
|
|
if(istype(T, /turf/simulated/wall))
|
|
T:thermite = 1
|
|
T.overlays = null
|
|
T.overlays = image('effects.dmi',icon_state = "thermite")
|
|
return
|
|
|
|
mutagen
|
|
name = "Unstable mutagen"
|
|
id = "mutagen"
|
|
description = "Might cause unpredictable mutations. Keep away from children."
|
|
reagent_state = LIQUID
|
|
reaction_mob(var/mob/M, var/method=TOUCH, var/volume)
|
|
src = null
|
|
if ( (method==TOUCH && prob(33)) || method==INGEST)
|
|
randmuti(M)
|
|
if(prob(98))
|
|
randmutb(M)
|
|
else
|
|
randmutg(M)
|
|
domutcheck(M, null)
|
|
updateappearance(M,M.dna.uni_identity)
|
|
return
|
|
on_mob_life(var/mob/M)
|
|
if(!M) M = holder.my_atom
|
|
M.radiation += 3
|
|
..()
|
|
return
|
|
|
|
iron
|
|
name = "Iron"
|
|
id = "iron"
|
|
description = "Pure iron is a metal."
|
|
reagent_state = SOLID
|
|
/*
|
|
on_mob_life(var/mob/M)
|
|
if(!M) M = holder.my_atom
|
|
if((M.virus) && (prob(8) && (M.virus.name=="Magnitis")))
|
|
if(M.virus.spread == "Airborne")
|
|
M.virus.spread = "Remissive"
|
|
M.virus.stage--
|
|
if(M.virus.stage <= 0)
|
|
M.resistances += M.virus.type
|
|
M.virus = null
|
|
holder.remove_reagent(src.id, 0.2)
|
|
return
|
|
*/
|
|
|
|
aluminium
|
|
name = "Aluminium"
|
|
id = "aluminium"
|
|
description = "A silvery white and ductile member of the boron group of chemical elements."
|
|
reagent_state = SOLID
|
|
|
|
silicon
|
|
name = "Silicon"
|
|
id = "silicon"
|
|
description = "A tetravalent metalloid, silicon is less reactive than its chemical analog carbon."
|
|
reagent_state = SOLID
|
|
|
|
fuel
|
|
name = "Welding fuel"
|
|
id = "fuel"
|
|
description = "Required for welders. Flamable."
|
|
reagent_state = LIQUID
|
|
reaction_obj(var/obj/O, var/volume)
|
|
src = null
|
|
var/turf/the_turf = get_turf(O)
|
|
var/datum/gas_mixture/napalm = new
|
|
var/datum/gas/volatile_fuel/fuel = new
|
|
fuel.moles = 15
|
|
napalm.trace_gases += fuel
|
|
the_turf.assume_air(napalm)
|
|
reaction_turf(var/turf/T, var/volume)
|
|
src = null
|
|
var/datum/gas_mixture/napalm = new
|
|
var/datum/gas/volatile_fuel/fuel = new
|
|
fuel.moles = 15
|
|
napalm.trace_gases += fuel
|
|
T.assume_air(napalm)
|
|
return
|
|
|
|
space_cleaner
|
|
name = "Space cleaner"
|
|
id = "cleaner"
|
|
description = "A compound used to clean things. Now with 50% more sodium hypochlorite!"
|
|
reagent_state = LIQUID
|
|
reaction_obj(var/obj/O, var/volume)
|
|
if(istype(O,/obj/decal/cleanable))
|
|
del(O)
|
|
else
|
|
if (O)
|
|
O.clean_blood()
|
|
reaction_turf(var/turf/T, var/volume)
|
|
T.overlays = null
|
|
T.clean_blood()
|
|
for(var/obj/decal/cleanable/C in src)
|
|
del(C)
|
|
reaction_mob(var/mob/M, var/method=TOUCH, var/volume)
|
|
M.clean_blood()
|
|
if(istype(M, /mob/living/carbon))
|
|
var/mob/living/carbon/C = M
|
|
if(C.r_hand)
|
|
C.r_hand.clean_blood()
|
|
if(C.l_hand)
|
|
C.l_hand.clean_blood()
|
|
if(C.wear_mask)
|
|
C.wear_mask.clean_blood()
|
|
if(istype(M, /mob/living/carbon/human))
|
|
if(C:w_uniform)
|
|
C:w_uniform.clean_blood()
|
|
if(C:wear_suit)
|
|
C:wear_suit.clean_blood()
|
|
if(C:shoes)
|
|
C:shoes.clean_blood()
|
|
if(C:gloves)
|
|
C:gloves.clean_blood()
|
|
if(C:head)
|
|
C:head.clean_blood()
|
|
|
|
|
|
plantbgone
|
|
name = "Plant-B-Gone"
|
|
id = "plantbgone"
|
|
description = "A harmful toxic mixture to kill plantlife. Do not ingest!"
|
|
reagent_state = LIQUID
|
|
/* Don't know if this is necessary.
|
|
on_mob_life(var/mob/living/carbon/M)
|
|
if(!M) M = holder.my_atom
|
|
M:toxloss += 3.0
|
|
..()
|
|
return
|
|
*/
|
|
reaction_obj(var/obj/O, var/volume)
|
|
// if(istype(O,/obj/plant/vine/))
|
|
// O:life -= rand(15,35) // Kills vines nicely // Not tested as vines don't work in R41
|
|
if(istype(O,/obj/alien/weeds/))
|
|
O:health -= rand(15,35) // Kills alien weeds pretty fast
|
|
O:healthcheck()
|
|
// Damage that is done to growing plants is separately
|
|
// at code/game/machinery/hydroponics at obj/item/hydroponics
|
|
|
|
reaction_mob(var/mob/M, var/method=TOUCH, var/volume)
|
|
src = null
|
|
if(istype(M, /mob/living/carbon))
|
|
if(!M.wear_mask) // If not wearing a mask
|
|
M:toxloss += 2 // 4 toxic damage per application, doubled for some reason
|
|
//if(prob(10))
|
|
//M.make_dizzy(1) doesn't seem to do anything
|
|
|
|
|
|
plasma
|
|
name = "Plasma"
|
|
id = "plasma"
|
|
description = "Plasma in its liquid form."
|
|
reagent_state = LIQUID
|
|
on_mob_life(var/mob/M)
|
|
if(!M) M = holder.my_atom
|
|
if(holder.has_reagent("inaprovaline"))
|
|
holder.remove_reagent("inaprovaline", 2)
|
|
M:toxloss++
|
|
..()
|
|
return
|
|
reaction_obj(var/obj/O, var/volume)
|
|
src = null
|
|
var/turf/the_turf = get_turf(O)
|
|
var/datum/gas_mixture/napalm = new
|
|
var/datum/gas/volatile_fuel/fuel = new
|
|
fuel.moles = 5
|
|
napalm.trace_gases += fuel
|
|
the_turf.assume_air(napalm)
|
|
reaction_turf(var/turf/T, var/volume)
|
|
src = null
|
|
var/datum/gas_mixture/napalm = new
|
|
var/datum/gas/volatile_fuel/fuel = new
|
|
fuel.moles = 5
|
|
napalm.trace_gases += fuel
|
|
T.assume_air(napalm)
|
|
return
|
|
|
|
leporazine
|
|
name = "Leporazine"
|
|
id = "leporazine"
|
|
description = "Leporazine can be use to stabilize an individuals body temperature."
|
|
reagent_state = LIQUID
|
|
on_mob_life(var/mob/M)
|
|
if(!M) M = holder.my_atom
|
|
if(M.bodytemperature < 310)
|
|
M.bodytemperature = max(310, M.bodytemperature-10)
|
|
else if(M.bodytemperature > 311)
|
|
M.bodytemperature = min(310, M.bodytemperature+10)
|
|
..()
|
|
return
|
|
|
|
cryptobiolin
|
|
name = "Cryptobiolin"
|
|
id = "cryptobiolin"
|
|
description = "Cryptobiolin causes confusion and dizzyness."
|
|
reagent_state = LIQUID
|
|
on_mob_life(var/mob/M)
|
|
if(!M) M = holder.my_atom
|
|
M.make_dizzy(1)
|
|
if(!M.confused) M.confused = 1
|
|
M.confused = max(M.confused, 20)
|
|
holder.remove_reagent(src.id, 0.2)
|
|
..()
|
|
return
|
|
|
|
lexorin
|
|
name = "Lexorin"
|
|
id = "lexorin"
|
|
description = "Lexorin temporarily stops respiration. Causes tissue damage."
|
|
reagent_state = LIQUID
|
|
on_mob_life(var/mob/M)
|
|
if(!M) M = holder.my_atom
|
|
if(prob(33)) M.bruteloss++
|
|
holder.remove_reagent(src.id, 0.3)
|
|
..()
|
|
return
|
|
|
|
kelotane
|
|
name = "Kelotane"
|
|
id = "kelotane"
|
|
description = "Kelotane is a drug used to treat burns."
|
|
reagent_state = LIQUID
|
|
on_mob_life(var/mob/M)
|
|
if(!M) M = holder.my_atom
|
|
M:fireloss = max(M:fireloss-2,0)
|
|
..()
|
|
return
|
|
|
|
dexalin
|
|
name = "Dexalin"
|
|
id = "dexalin"
|
|
description = "Dexalin is used in the treatment of oxygen deprivation."
|
|
reagent_state = LIQUID
|
|
on_mob_life(var/mob/M)
|
|
if(!M) M = holder.my_atom
|
|
M:oxyloss = max(M:oxyloss-2, 0)
|
|
..()
|
|
return
|
|
|
|
dexalinp
|
|
name = "Dexalin Plus"
|
|
id = "dexalinp"
|
|
description = "Dexalin Plus is used in the treatment of oxygen deprivation. Its highly effective."
|
|
reagent_state = LIQUID
|
|
on_mob_life(var/mob/M)
|
|
if(!M) M = holder.my_atom
|
|
M:oxyloss = 0
|
|
..()
|
|
return
|
|
|
|
tricordrazine
|
|
name = "Tricordrazine"
|
|
id = "tricordrazine"
|
|
description = "Tricordrazine is a highly potent stimulant, originally derived from cordrazine. Can be used to treat a wide range of injuries."
|
|
reagent_state = LIQUID
|
|
on_mob_life(var/mob/M)
|
|
if(!M) M = holder.my_atom
|
|
if(M:oxyloss && prob(40)) M:oxyloss--
|
|
if(M:bruteloss && prob(40)) M:bruteloss--
|
|
if(M:fireloss && prob(40)) M:fireloss--
|
|
if(M:toxloss && prob(40)) M:toxloss--
|
|
..()
|
|
return
|
|
|
|
synaptizine
|
|
name = "Synaptizine"
|
|
id = "synaptizine"
|
|
description = "Synaptizine is used to treat neuroleptic shock. Can be used to help remove disabling symptoms such as paralysis."
|
|
reagent_state = LIQUID
|
|
on_mob_life(var/mob/M)
|
|
if(!M) M = holder.my_atom
|
|
M:drowsyness = max(M:drowsyness-5, 0)
|
|
if(M:paralysis) M:paralysis--
|
|
if(M:stunned) M:stunned--
|
|
if(M:weakened) M:weakened--
|
|
..()
|
|
return
|
|
|
|
impedrezene
|
|
name = "Impedrezene"
|
|
id = "impedrezene"
|
|
description = "Impedrezene is a narcotic that impedes one's ability by slowing down the higher brain cell functions."
|
|
reagent_state = LIQUID
|
|
on_mob_life(var/mob/M)
|
|
if(!M) M = holder.my_atom
|
|
M:jitteriness = max(M:jitteriness-5,0)
|
|
if(prob(80)) M:brainloss++
|
|
if(prob(50)) M:drowsyness = max(M:drowsyness, 3)
|
|
if(prob(10)) M:emote("drool")
|
|
..()
|
|
return
|
|
|
|
hyronalin
|
|
name = "Hyronalin"
|
|
id = "hyronalin"
|
|
description = "Hyronalin is a medicinal drug used to counter the effects of radiation poisoning."
|
|
reagent_state = LIQUID
|
|
on_mob_life(var/mob/M)
|
|
if(!M) M = holder.my_atom
|
|
if(M:radiation && prob(80)) M:radiation--
|
|
..()
|
|
return
|
|
|
|
alkysine
|
|
name = "Alkysine"
|
|
id = "alkysine"
|
|
description = "Alkysine is a drug used to lessen the damage to neurological tissue after a catastrophic injury. Can heal brain tissue."
|
|
reagent_state = LIQUID
|
|
on_mob_life(var/mob/M)
|
|
if(!M) M = holder.my_atom
|
|
M:brainloss = max(M:brainloss-3 , 0)
|
|
..()
|
|
return
|
|
|
|
imidazoline
|
|
name = "imidazoline"
|
|
id = "imidazoline"
|
|
description = "Heals eye damage"
|
|
reagent_state = LIQUID
|
|
on_mob_life(var/mob/M)
|
|
if(!M) M = holder.my_atom
|
|
M:eye_blurry = max(M:eye_blurry-5 , 0)
|
|
M:eye_blind = max(M:eye_blind-5 , 0)
|
|
M:sdisabilities &= ~1
|
|
..()
|
|
return
|
|
|
|
arithrazine
|
|
name = "Arithrazine"
|
|
id = "arithrazine"
|
|
description = "Arithrazine is an unstable medication used for the most extreme cases of radiation poisoning."
|
|
reagent_state = LIQUID
|
|
on_mob_life(var/mob/M)
|
|
if(!M) M = holder.my_atom
|
|
M:radiation = max(M:radiation-3,0)
|
|
if(M:toxloss && prob(50)) M:toxloss--
|
|
if(prob(15)) M:bruteloss++
|
|
..()
|
|
return
|
|
|
|
bicaridine
|
|
name = "Bicaridine"
|
|
id = "bicaridine"
|
|
description = "Bicaridine is an analgesic medication and can be used to treat blunt trauma."
|
|
reagent_state = LIQUID
|
|
on_mob_life(var/mob/M)
|
|
if(!M) M = holder.my_atom
|
|
if(M:bruteloss && prob(40)) M:bruteloss--
|
|
..()
|
|
return
|
|
|
|
hyperzine
|
|
name = "Hyperzine"
|
|
id = "hyperzine"
|
|
description = "Hyperzine is a highly effective, long lasting, muscle stimulant."
|
|
reagent_state = LIQUID
|
|
on_mob_life(var/mob/M)
|
|
if(!M) M = holder.my_atom
|
|
if(prob(5)) M:emote(pick("twitch","blink_r","shiver"))
|
|
holder.remove_reagent(src.id, 0.2)
|
|
..()
|
|
return
|
|
|
|
cryoxadone
|
|
name = "Cryoxadone"
|
|
id = "cryoxadone"
|
|
description = "A chemical mixture with almost magical healing powers. Its main limitation is that the targets body temperature must be under 170K for it to metabolise correctly."
|
|
reagent_state = LIQUID
|
|
on_mob_life(var/mob/M)
|
|
if(!M) M = holder.my_atom
|
|
if(M.bodytemperature < 170)
|
|
if(M:oxyloss) M:oxyloss = max(0, M:oxyloss-3)
|
|
if(M:bruteloss) M:bruteloss = max(0, M:bruteloss-3)
|
|
if(M:fireloss) M:fireloss = max(0, M:fireloss-3)
|
|
if(M:toxloss) M:toxloss = max(0, M:toxloss-3)
|
|
..()
|
|
return
|
|
|
|
spaceacillin
|
|
name = "Spaceacillin"
|
|
id = "spaceacillin"
|
|
description = "An all-purpose antiviral agent."
|
|
reagent_state = LIQUID
|
|
|
|
on_mob_life(var/mob/M)//no more mr. panacea
|
|
holder.remove_reagent(src.id, 0.2)
|
|
..()
|
|
return
|
|
|
|
carpotoxin
|
|
name = "Carpotoxin"
|
|
id = "carpotoxin"
|
|
description = "A deadly neurotoxin produced by the dreaded spess carp."
|
|
reagent_state = LIQUID
|
|
|
|
on_mob_life(var/mob/M)
|
|
if(!M) M = holder.my_atom
|
|
M:toxloss += 2
|
|
..()
|
|
return
|
|
|
|
zombiepowder
|
|
name = "Zombie Powder"
|
|
id = "zombiepowder"
|
|
description = "A strong neurotoxin that puts the subject into a death-like state."
|
|
on_mob_life(var/mob/M)
|
|
if(!M) M = holder.my_atom
|
|
M:oxyloss += 0.5
|
|
M:toxloss += 0.5
|
|
M:weakened = max(M:weakened, 10)
|
|
M:silent = max(M:silent, 10)
|
|
..()
|
|
return
|
|
|
|
|
|
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
nanites
|
|
name = "Nanomachines"
|
|
id = "nanites"
|
|
description = "Microscopic construction robots."
|
|
reagent_state = LIQUID
|
|
reaction_mob(var/mob/M, var/method=TOUCH, var/volume)
|
|
src = null
|
|
if( (prob(10) && method==TOUCH) || method==INGEST)
|
|
M.contract_disease(new /datum/disease/robotic_transformation(0),1)
|
|
|
|
xenomicrobes
|
|
name = "Xenomicrobes"
|
|
id = "xenomicrobes"
|
|
description = "Microbes with an entirely alien cellular structure."
|
|
reagent_state = LIQUID
|
|
reaction_mob(var/mob/M, var/method=TOUCH, var/volume)
|
|
src = null
|
|
if( (prob(10) && method==TOUCH) || method==INGEST)
|
|
M.contract_disease(new /datum/disease/xeno_transformation(0),1)
|
|
|
|
//foam precursor
|
|
|
|
fluorosurfactant
|
|
name = "Fluorosurfactant"
|
|
id = "fluorosurfactant"
|
|
description = "A perfluoronated sulfonic acid that forms a foam when mixed with water."
|
|
reagent_state = LIQUID
|
|
|
|
|
|
// metal foaming agent
|
|
// this is lithium hydride. Add other recipies (e.g. LiH + H2O -> LiOH + H2) eventually
|
|
|
|
foaming_agent
|
|
name = "Foaming agent"
|
|
id = "foaming_agent"
|
|
description = "A agent that yields metallic foam when mixed with light metal and a strong acid."
|
|
reagent_state = SOLID
|
|
|
|
nicotine
|
|
name = "Nicotine"
|
|
id = "nicotine"
|
|
description = "A highly addictive stimulant extracted from the tobacco plant."
|
|
reagent_state = LIQUID
|
|
|
|
ethanol
|
|
name = "Ethanol"
|
|
id = "ethanol"
|
|
description = "A well-known alcohol with a variety of applications."
|
|
reagent_state = LIQUID
|
|
on_mob_life(var/mob/M)
|
|
if(!data) data = 1
|
|
data++
|
|
M.make_dizzy(5)
|
|
M:jitteriness = max(M:jitteriness-5,0)
|
|
if(data >= 25)
|
|
if (!M:stuttering) M:stuttering = 1
|
|
M:stuttering += 4
|
|
if(data >= 40 && prob(33))
|
|
if (!M:confused) M:confused = 1
|
|
M:confused += 3
|
|
..()
|
|
return
|
|
|
|
ammonia
|
|
name = "Ammonia"
|
|
id = "ammonia"
|
|
description = "A caustic substance commonly used in fertilizer or household cleaners."
|
|
reagent_state = GAS
|
|
|
|
diethylamine
|
|
name = "Diethylamine"
|
|
id = "diethylamine"
|
|
description = "A secondary amine, mildly corrosive."
|
|
reagent_state = LIQUID
|
|
|
|
ethylredoxrazine // FUCK YOU, ALCOHOL
|
|
name = "Ethylredoxrazine"
|
|
id = "ethylredoxrazine"
|
|
description = "A powerfuld oxidizer that reacts with ethanol."
|
|
reagent_state = SOLID
|
|
on_mob_life(var/mob/M)
|
|
if(!M) M = holder.my_atom
|
|
M.dizziness = 0
|
|
M:drowsyness = 0
|
|
M:stuttering = 0
|
|
M:confused = 0
|
|
..()
|
|
return
|
|
|
|
chloralhydrate //Otherwise known as a "Mickey Finn"
|
|
name = "Chloral Hydrate"
|
|
id = "chloralhydrate"
|
|
description = "A powerful sedative."
|
|
reagent_state = SOLID
|
|
on_mob_life(var/mob/M)
|
|
if(!M) M = holder.my_atom
|
|
if(!data) data = 1
|
|
switch(data)
|
|
if(1)
|
|
M:confused += 2
|
|
M:drowsyness += 2
|
|
if(2 to 50)
|
|
M:sleeping += 1
|
|
if(51 to INFINITY)
|
|
M:sleeping += 1
|
|
M:toxloss += (data - 50)
|
|
data++
|
|
..()
|
|
return
|
|
|
|
beer2 //copypasta of chloral hydrate, disguised as normal beer for use by emagged brobots
|
|
name = "Beer"
|
|
id = "beer2"
|
|
description = "An alcoholic beverage made from malted grains, hops, yeast, and water."
|
|
reagent_state = LIQUID
|
|
on_mob_life(var/mob/M)
|
|
if(!M) M = holder.my_atom
|
|
if(!data) data = 1
|
|
switch(data)
|
|
if(1)
|
|
M:confused += 2
|
|
M:drowsyness += 2
|
|
if(2 to 50)
|
|
M:sleeping += 1
|
|
if(51 to INFINITY)
|
|
M:sleeping += 1
|
|
M:toxloss += (data - 50)
|
|
data++
|
|
..()
|
|
return
|
|
|
|
|
|
/////////////////////////Food Reagents////////////////////////////
|
|
// Part of the food code. Nutriment is used instead of the old "heal_amt" code. Also is where all the food
|
|
// condiments, additives, and such go.
|
|
nutriment
|
|
name = "Nutriment"
|
|
id = "nutriment"
|
|
description = "All the vitamins, minerals, and carbohydrates the body needs in pure form."
|
|
reagent_state = SOLID
|
|
nutriment_factor = 15 * REAGENTS_METABOLISM
|
|
on_mob_life(var/mob/M)
|
|
if(!M) M = holder.my_atom
|
|
if(prob(50)) M:bruteloss--
|
|
M:nutrition += nutriment_factor // For hunger and fatness
|
|
/*
|
|
// If overeaten - vomit and fall down
|
|
// Makes you feel bad but removes reagents and some effects
|
|
// from your body
|
|
if (M.nutrition > 650)
|
|
M.nutrition = rand (250, 400)
|
|
M.weakened += rand(2, 10)
|
|
M.jitteriness += rand(0, 5)
|
|
M.dizziness = max (0, (M.dizziness - rand(0, 15)))
|
|
M.druggy = max (0, (M.druggy - rand(0, 15)))
|
|
M.toxloss = max (0, (M.toxloss - rand(5, 15)))
|
|
M.updatehealth()
|
|
*/
|
|
..()
|
|
return
|
|
|
|
soysauce
|
|
name = "Soysauce"
|
|
id = "soysauce"
|
|
description = "A salty sauce made from the soy plant."
|
|
reagent_state = LIQUID
|
|
nutriment_factor = 2 * REAGENTS_METABOLISM
|
|
|
|
ketchup
|
|
name = "Ketchup"
|
|
id = "ketchup"
|
|
description = "Ketchup, catsup, whatever. It's tomato paste."
|
|
reagent_state = LIQUID
|
|
nutriment_factor = 5 * REAGENTS_METABOLISM
|
|
|
|
capsaicin
|
|
name = "Capsaicin Oil"
|
|
id = "capsaicin"
|
|
description = "This is what makes chilis hot."
|
|
reagent_state = LIQUID
|
|
nutriment_factor = 5 * REAGENTS_METABOLISM
|
|
on_mob_life(var/mob/M)
|
|
if(!M) M = holder.my_atom
|
|
M:bodytemperature += 5
|
|
if(prob(40)) M:fireloss++
|
|
..()
|
|
return
|
|
|
|
frostoil
|
|
name = "Frost Oil"
|
|
id = "frostoil"
|
|
description = "A special oil that noticably chills the body. Extraced from Icepeppers."
|
|
reagent_state = LIQUID
|
|
nutriment_factor = 5 * REAGENTS_METABOLISM
|
|
on_mob_life(var/mob/M)
|
|
if(!M) M = holder.my_atom
|
|
M:bodytemperature -= 5
|
|
if(prob(40)) M:fireloss++
|
|
..()
|
|
return
|
|
|
|
sodiumchloride
|
|
name = "Table Salt"
|
|
id = "sodiumchloride"
|
|
description = "A salt made of sodium chloride. Commonly used to season food."
|
|
reagent_state = SOLID
|
|
nutriment_factor = 1 * REAGENTS_METABOLISM
|
|
|
|
blackpepper
|
|
name = "Black Pepper"
|
|
id = "blackpepper"
|
|
description = "A power ground from peppercorns. *AAAACHOOO*"
|
|
reagent_state = SOLID
|
|
nutriment_factor = 1 * REAGENTS_METABOLISM
|
|
|
|
amatoxin
|
|
name = "Amatoxin"
|
|
id = "amatoxin"
|
|
description = "A powerful poison derived from certain species of mushroom."
|
|
on_mob_life(var/mob/M)
|
|
if(!M) M = holder.my_atom
|
|
M:toxloss++
|
|
..()
|
|
return
|
|
|
|
psilocybin
|
|
name = "Psilocybin"
|
|
id = "psilocybin"
|
|
description = "A strong psycotropic derived from certain species of mushroom."
|
|
on_mob_life(var/mob/M)
|
|
if(!M) M = holder.my_atom
|
|
M.druggy = max(M.druggy, 30)
|
|
if(M.canmove) step(M, pick(cardinal))
|
|
if(prob(14)) M:emote(pick("twitch","drool","moan","giggle"))
|
|
holder.remove_reagent(src.id, 0.2)
|
|
..()
|
|
return
|
|
|
|
sprinkles
|
|
name = "Sprinkles"
|
|
id = "sprinkles"
|
|
description = "Multi-colored little bits of sugar, commonly found on donuts. Loved by cops."
|
|
nutriment_factor = 1 * REAGENTS_METABOLISM
|
|
on_mob_life(var/mob/M)
|
|
M:nutrition += nutriment_factor
|
|
if(istype(M, /mob/living/carbon/human) && M.job in list("Security Officer", "Head of Security", "Detective"))
|
|
if(!M) M = holder.my_atom
|
|
M:bruteloss--
|
|
M:fireloss--
|
|
M:nutrition += nutriment_factor
|
|
..()
|
|
return
|
|
..()
|
|
|
|
cornoil
|
|
name = "Corn Oil"
|
|
id = "cornoil"
|
|
description = "An oil derived from various types of corn."
|
|
reagent_state = LIQUID
|
|
nutriment_factor = 20 * REAGENTS_METABOLISM
|
|
on_mob_life(var/mob/M)
|
|
M:nutrition += nutriment_factor
|
|
..()
|
|
return
|
|
reaction_turf(var/turf/T, var/volume)
|
|
src = null
|
|
if(volume >= 3)
|
|
if(T:wet >= 1) return
|
|
T:wet = 1
|
|
if(T:wet_overlay)
|
|
T:overlays -= T:wet_overlay
|
|
T:wet_overlay = null
|
|
T:wet_overlay = image('water.dmi',T,"wet_floor")
|
|
T:overlays += T:wet_overlay
|
|
|
|
spawn(800)
|
|
if(T:wet >= 2) return
|
|
T:wet = 0
|
|
if(T:wet_overlay)
|
|
T:overlays -= T:wet_overlay
|
|
T:wet_overlay = null
|
|
var/hotspot = (locate(/obj/hotspot) in T)
|
|
if(hotspot)
|
|
var/datum/gas_mixture/lowertemp = T.remove_air( T:air:total_moles() )
|
|
lowertemp.temperature = max( min(lowertemp.temperature-2000,lowertemp.temperature / 2) ,0)
|
|
lowertemp.react()
|
|
T.assume_air(lowertemp)
|
|
del(hotspot)
|
|
|
|
enzyme
|
|
name = "Universal Enzyme"
|
|
id = "enzyme"
|
|
description = "A universal enzyme used in the preperation of certain chemicals and foods."
|
|
reagent_state = LIQUID
|
|
|
|
berryjuice
|
|
name = "Berry Juice"
|
|
id = "berryjuice"
|
|
description = "A delicious blend of several different kinds of berries."
|
|
reagent_state = LIQUID
|
|
nutriment_factor = 1 * REAGENTS_METABOLISM
|
|
on_mob_life(var/mob/M)
|
|
if(!M) M = holder.my_atom
|
|
M:nutrition += nutriment_factor
|
|
..()
|
|
return
|
|
|
|
banana
|
|
name = "Essence of Banana"
|
|
id = "banana"
|
|
description = "The raw essence of a banana. HONK"
|
|
nutriment_factor = 1 * REAGENTS_METABOLISM
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
/////////////////////// DRINKS BELOW, Beer is up there though, along with cola. Cap'n Pete's Cuban Spiced Rum////////////////////////////////
|
|
/////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
milk
|
|
name = "Milk"
|
|
id = "milk"
|
|
description = "An opaque white liquid produced by the mammary glands of mammals."
|
|
reagent_state = LIQUID
|
|
on_mob_life(var/mob/M)
|
|
if(!M) M = holder.my_atom
|
|
if(M:bruteloss && prob(10)) M:bruteloss--
|
|
M:nutrition++
|
|
..()
|
|
return
|
|
|
|
soymilk
|
|
name = "Soy Milk"
|
|
id = "soymilk"
|
|
description = "An opaque white liquid made from soybeans."
|
|
reagent_state = LIQUID
|
|
on_mob_life(var/mob/M)
|
|
if(!M) M = holder.my_atom
|
|
if(M:bruteloss && prob(10)) M:bruteloss--
|
|
M:nutrition++
|
|
..()
|
|
return
|
|
|
|
coffee
|
|
name = "Coffee"
|
|
id = "coffee"
|
|
description = "Coffee is a brewed drink prepared from roasted seeds, commonly called coffee beans, of the coffee plant."
|
|
reagent_state = LIQUID
|
|
on_mob_life(var/mob/M)
|
|
..()
|
|
M.dizziness = max(0,M.dizziness-5)
|
|
M:drowsyness = max(0,M:drowsyness-3)
|
|
M:sleeping = 0
|
|
M.bodytemperature = min(310, M.bodytemperature+5) //310 is the normal bodytemp. 310.055
|
|
M.make_jittery(5)
|
|
..()
|
|
return
|
|
|
|
|
|
space_cola
|
|
name = "Cola"
|
|
id = "cola"
|
|
description = "A refreshing beverage."
|
|
reagent_state = LIQUID
|
|
on_mob_life(var/mob/M)
|
|
M:drowsyness = max(0,M:drowsyness-5)
|
|
M.bodytemperature = max(310, M.bodytemperature-5) //310 is the normal bodytemp. 310.055
|
|
M:nutrition += 5
|
|
..()
|
|
return
|
|
|
|
spacemountainwind
|
|
name = "Space Mountain Wind"
|
|
id = "spacemountainwind"
|
|
description = "Blows right through you like a space wind."
|
|
reagent_state = LIQUID
|
|
on_mob_life(var/mob/M)
|
|
M:drowsyness = max(0,M:drowsyness-7)
|
|
M:sleeping = 0
|
|
M.bodytemperature = max(310, M.bodytemperature-5)
|
|
M.make_jittery(5)
|
|
M:nutrition += 3
|
|
..()
|
|
return
|
|
|
|
thirteenloko
|
|
name = "Thirteen Loko"
|
|
id = "thirteenloko"
|
|
description = "A potent mixture of caffeine and alcohol."
|
|
reagent_state = LIQUID
|
|
on_mob_life(var/mob/M)
|
|
M:drowsyness = max(0,M:drowsyness-7)
|
|
M:sleeping = 0
|
|
M.bodytemperature = max(310, M.bodytemperature-5)
|
|
M.make_jittery(5)
|
|
M:nutrition += 2
|
|
if(!data) data = 1
|
|
data++
|
|
M.dizziness +=4
|
|
if(data >= 45 && data <115)
|
|
if (!M.stuttering) M.stuttering = 1
|
|
M.stuttering += 3
|
|
else if(data >= 125 && prob(33))
|
|
M.confused = max(M:confused+2,0)
|
|
..()
|
|
return
|
|
|
|
dr_gibb
|
|
name = "Dr. Gibb"
|
|
id = "dr_gibb"
|
|
description = "A delicious blend of 42 different flavours"
|
|
reagent_state = LIQUID
|
|
on_mob_life(var/mob/M)
|
|
M:drowsyness = max(0,M:drowsyness-6)
|
|
M.bodytemperature = max(310, M.bodytemperature-5) //310 is the normal bodytemp. 310.055
|
|
M:nutrition += 5
|
|
..()
|
|
return
|
|
|
|
space_up
|
|
name = "Space-Up"
|
|
id = "space_up"
|
|
description = "Tastes like a hull breach in your mouth."
|
|
reagent_state = LIQUID
|
|
on_mob_life(var/mob/M)
|
|
M.bodytemperature = max(310, M.bodytemperature-8) //310 is the normal bodytemp. 310.055
|
|
M:nutrition += 2
|
|
..()
|
|
return
|
|
|
|
beer
|
|
name = "Beer"
|
|
id = "beer"
|
|
description = "An alcoholic beverage made from malted grains, hops, yeast, and water."
|
|
reagent_state = LIQUID
|
|
on_mob_life(var/mob/M)
|
|
if(!data) data = 1
|
|
data++
|
|
M.make_dizzy(3)
|
|
M:jitteriness = max(M:jitteriness-3,0)
|
|
if(data >= 25)
|
|
if (!M:stuttering) M:stuttering = 1
|
|
M:stuttering += 3
|
|
if(data >= 40 && prob(33))
|
|
if (!M:confused) M:confused = 1
|
|
M:confused += 2
|
|
M:nutrition += 2
|
|
..()
|
|
return
|
|
|
|
whiskey
|
|
name = "Whiskey"
|
|
id = "whiskey"
|
|
description = "A superb and well-aged single-malt whiskey. Damn."
|
|
reagent_state = LIQUID
|
|
on_mob_life(var/mob/M)
|
|
if(!data) data = 1
|
|
data++
|
|
M.dizziness +=4
|
|
if(data >= 45 && data <125)
|
|
if (!M.stuttering) M.stuttering = 1
|
|
M.stuttering += 3
|
|
else if(data >= 125 && prob(33))
|
|
M.confused = max(M:confused+2,0)
|
|
..()
|
|
return
|
|
|
|
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."
|
|
reagent_state = LIQUID
|
|
on_mob_life(var/mob/M)
|
|
if(!data) data = 1
|
|
data++
|
|
M.dizziness +=3
|
|
if(data >= 45 && data <125)
|
|
if (!M.stuttering) M.stuttering = 1
|
|
M.stuttering += 3
|
|
else if(data >= 125 && prob(33))
|
|
M.confused = max(M:confused+2,0)
|
|
..()
|
|
return
|
|
|
|
|
|
gin
|
|
name = "Gin"
|
|
id = "gin"
|
|
description = "It's gin. In space. I say, good sir."
|
|
reagent_state = LIQUID
|
|
on_mob_life(var/mob/M)
|
|
if(!data) data = 1
|
|
data++
|
|
M.dizziness +=3
|
|
if(data >= 45 && data <125)
|
|
if (!M.stuttering) M.stuttering = 1
|
|
M.stuttering += 3
|
|
else if(data >= 125 && prob(33))
|
|
M.confused = max(M:confused+2,0)
|
|
..()
|
|
return
|
|
|
|
rum
|
|
name = "Rum"
|
|
id = "rum"
|
|
description = "Yohoho and all that."
|
|
reagent_state = LIQUID
|
|
on_mob_life(var/mob/M)
|
|
if(!data) data = 1
|
|
data++
|
|
M.dizziness +=3
|
|
if(data >= 45 && data <125)
|
|
if (!M.stuttering) M.stuttering = 1
|
|
M.stuttering += 3
|
|
else if(data >= 125 && prob(33))
|
|
M.confused = max(M:confused+2,0)
|
|
..()
|
|
return
|
|
|
|
vodka
|
|
name = "Vodka"
|
|
id = "vodka"
|
|
description = "Number one drink AND fueling choice for Russians worldwide."
|
|
reagent_state = LIQUID
|
|
on_mob_life(var/mob/M)
|
|
if(!data) data = 1
|
|
data++
|
|
M.dizziness +=3
|
|
if(data >= 45 && data <125)
|
|
if (!M.stuttering) M.stuttering = 1
|
|
M.stuttering += 3
|
|
else if(data >= 125 && prob(33))
|
|
M.confused = max(M:confused+2,0)
|
|
..()
|
|
return
|
|
|
|
tequilla
|
|
name = "Tequila"
|
|
id = "tequilla"
|
|
description = "A strong and mildly flavoured, mexican produced spirit. Feeling thirsty hombre?"
|
|
reagent_state = LIQUID
|
|
on_mob_life(var/mob/M)
|
|
if(!data) data = 1
|
|
data++
|
|
M.dizziness +=3
|
|
if(data >= 45 && data <125)
|
|
if (!M.stuttering) M.stuttering = 1
|
|
M.stuttering += 3
|
|
else if(data >= 125 && prob(33))
|
|
M.confused = max(M:confused+2,0)
|
|
..()
|
|
return
|
|
|
|
vermouth
|
|
name = "Vermouth"
|
|
id = "vermouth"
|
|
description = "You suddenly feel a craving for a martini..."
|
|
reagent_state = LIQUID
|
|
on_mob_life(var/mob/M)
|
|
if(!data) data = 1
|
|
data++
|
|
M.dizziness +=3
|
|
if(data >= 45 && data <125)
|
|
if (!M.stuttering) M.stuttering = 1
|
|
M.stuttering += 3
|
|
else if(data >= 125 && prob(33))
|
|
M.confused = max(M:confused+2,0)
|
|
..()
|
|
return
|
|
|
|
wine
|
|
name = "Wine"
|
|
id = "wine"
|
|
description = "An premium alchoholic beverage made from distilled grape juice."
|
|
reagent_state = LIQUID
|
|
on_mob_life(var/mob/M)
|
|
if(!data) data = 1
|
|
data++
|
|
M.dizziness +=2
|
|
if(data >= 65 && data <125)
|
|
if (!M.stuttering) M.stuttering = 1
|
|
M.stuttering += 3
|
|
else if(data >= 145 && prob(33))
|
|
M.confused = max(M:confused+2,0)
|
|
..()
|
|
return
|
|
|
|
tonic
|
|
name = "Tonic Water"
|
|
id = "tonic"
|
|
description = "It tastes strange but at least the quinine keeps the Space Malaria at bay."
|
|
reagent_state = LIQUID
|
|
on_mob_life(var/mob/M)
|
|
M.dizziness = max(0,M.dizziness-5)
|
|
M:drowsyness = max(0,M:drowsyness-3)
|
|
M:sleeping = 0
|
|
M.bodytemperature = min(310, M.bodytemperature-5)
|
|
..()
|
|
return
|
|
|
|
orangejuice
|
|
name = "Orange juice"
|
|
id = "orangejuice"
|
|
description = "Both delicious AND rich in Vitamin C, what more do you need?"
|
|
reagent_state = LIQUID
|
|
on_mob_life(var/mob/M)
|
|
if(!M) M = holder.my_atom
|
|
if(M:oxyloss && prob(30)) M:oxyloss--
|
|
if(M:bruteloss && prob(30)) M:bruteloss--
|
|
if(M:fireloss && prob(30)) M:fireloss--
|
|
if(M:toxloss && prob(30)) M:toxloss--
|
|
M:nutrition++
|
|
..()
|
|
return
|
|
|
|
tomatojuice
|
|
name = "Tomato Juice"
|
|
id = "tomatojuice"
|
|
description = "Tomatoes made into juice. What a waste of big, juicy tomatoes, huh?"
|
|
reagent_state = LIQUID
|
|
on_mob_life(var/mob/M)
|
|
if(!M) M = holder.my_atom
|
|
if(M:oxyloss && prob(20)) M:oxyloss--
|
|
if(M:bruteloss && prob(20)) M:bruteloss--
|
|
if(M:fireloss && prob(20)) M:fireloss--
|
|
if(M:toxloss && prob(20)) M:toxloss--
|
|
M:nutrition++
|
|
..()
|
|
return
|
|
|
|
limejuice
|
|
name = "Lime Juice"
|
|
id = "limejuice"
|
|
description = "The sweet-sour juice of limes."
|
|
reagent_state = LIQUID
|
|
on_mob_life(var/mob/M)
|
|
if(!M) M = holder.my_atom
|
|
if(M:oxyloss && prob(20)) M:oxyloss--
|
|
if(M:bruteloss && prob(20)) M:bruteloss--
|
|
if(M:fireloss && prob(20)) M:fireloss--
|
|
if(M:toxloss && prob(20)) M:toxloss--
|
|
M:nutrition++
|
|
..()
|
|
return
|
|
|
|
|
|
kahlua
|
|
name = "Kahlua"
|
|
id = "kahlua"
|
|
description = "A widely known, Mexican coffee-flavoured liqueur. In production since 1936!"
|
|
reagent_state = LIQUID
|
|
on_mob_life(var/mob/M)
|
|
M.dizziness = max(0,M.dizziness-5)
|
|
M:drowsyness = max(0,M:drowsyness-3)
|
|
M:sleeping = 0//Copy-paste from Coffee, derp
|
|
M.make_jittery(5)
|
|
..()
|
|
return
|
|
|
|
|
|
cognac
|
|
name = "Cognac"
|
|
id = "cognac"
|
|
description = "A sweet and strongly alchoholic drink, made after numerous distillations and years of maturing. Classy as fornication."
|
|
reagent_state = LIQUID
|
|
on_mob_life(var/mob/M)
|
|
if(!data) data = 1
|
|
data++
|
|
M.dizziness +=4
|
|
if(data >= 45 && data <115)
|
|
if (!M.stuttering) M.stuttering = 1
|
|
M.stuttering += 3
|
|
else if(data >= 115 && prob(33))
|
|
M.confused = max(M:confused+2,0)
|
|
..()
|
|
return
|
|
|
|
cream
|
|
name = "Cream"
|
|
id = "cream"
|
|
description = "The fatty, still liquid part of milk. Why don't you mix this with sum scotch, eh?"
|
|
reagent_state = LIQUID
|
|
|
|
hooch
|
|
name = "Hooch"
|
|
id = "hooch"
|
|
description = "Either someone's failure at cocktail making or attempt in alchohol production. In any case, do you really want to drink that?"
|
|
reagent_state = LIQUID
|
|
on_mob_life(var/mob/M)
|
|
if(!data) data = 1
|
|
data++
|
|
M.dizziness +=6
|
|
if(data >= 35 && data <90)
|
|
if (!M.stuttering) M.stuttering = 1
|
|
M.stuttering += 5
|
|
else if(data >= 90 && prob(33))
|
|
M.confused = max(M:confused+2,0)
|
|
..()
|
|
return
|
|
|
|
ale
|
|
name = "Ale"
|
|
id = "ale"
|
|
description = "A dark alchoholic beverage made by malted barley and yeast."
|
|
reagent_state = LIQUID
|
|
on_mob_life(var/mob/M)
|
|
if(!data) data = 1
|
|
data++
|
|
M.dizziness +=3
|
|
if(data >= 45 && data <125)
|
|
if (!M.stuttering) M.stuttering = 1
|
|
M.stuttering += 3
|
|
else if(data >= 125 && prob(33))
|
|
M.confused = max(M:confused+2,0)
|
|
..()
|
|
return
|
|
|
|
sodawater
|
|
name = "Soda Water"
|
|
id = "sodawater"
|
|
description = "A can of club soda. Why not make a scotch and soda?"
|
|
reagent_state = LIQUID
|
|
on_mob_life(var/mob/M)
|
|
M.dizziness = max(0,M.dizziness-5)
|
|
M:drowsyness = max(0,M:drowsyness-3)
|
|
M:sleeping = 0
|
|
M.bodytemperature = min(310, M.bodytemperature-5)
|
|
..()
|
|
return
|
|
|
|
/////////////////////////////////////////////////////////////////cocktail entities//////////////////////////////////////////////
|
|
|
|
|
|
gintonic
|
|
name = "Gin and Tonic"
|
|
id = "gintonic"
|
|
description = "An all time classic, mild cocktail."
|
|
reagent_state = LIQUID
|
|
on_mob_life(var/mob/M)
|
|
if(!data) data = 1
|
|
data++
|
|
M.dizziness +=3
|
|
if(data >= 45 && data <135)
|
|
if (!M.stuttering) M.stuttering = 1
|
|
M.stuttering += 3
|
|
else if(data >= 135 && prob(33))
|
|
M.confused = max(M:confused+2,0)
|
|
..()
|
|
return
|
|
|
|
cuba_libre
|
|
name = "Cuba Libre"
|
|
id = "cubalibre"
|
|
description = "Rum, mixed with cola. Viva la revolution."
|
|
reagent_state = LIQUID
|
|
on_mob_life(var/mob/M)
|
|
if(!data) data = 1
|
|
data++
|
|
M.dizziness +=3
|
|
if(data >= 45 && data <135)
|
|
if (!M.stuttering) M.stuttering = 1
|
|
M.stuttering += 3
|
|
else if(data >= 135 && prob(33))
|
|
M.confused = max(M:confused+2,0)
|
|
..()
|
|
return
|
|
|
|
whiskey_cola
|
|
name = "Whiskey Cola"
|
|
id = "whiskeycola"
|
|
description = "Whiskey, mixed with cola. Surprisingly refreshing."
|
|
reagent_state = LIQUID
|
|
on_mob_life(var/mob/M)
|
|
if(!data) data = 1
|
|
data++
|
|
M.dizziness +=3
|
|
if(data >= 55 && data <125)
|
|
if (!M.stuttering) M.stuttering = 1
|
|
M.stuttering += 3
|
|
else if(data >= 125 && prob(33))
|
|
M.confused = max(M:confused+2,0)
|
|
..()
|
|
return
|
|
|
|
martini
|
|
name = "Classic Martini"
|
|
id = "martini"
|
|
description = "Vermouth with Gin. Not quite how 007 enjoyed it, but still delicious."
|
|
reagent_state = LIQUID
|
|
on_mob_life(var/mob/M)
|
|
if(!data) data = 1
|
|
data++
|
|
M.dizziness +=3
|
|
if(data >= 45 && data <165)
|
|
if (!M.stuttering) M.stuttering = 1
|
|
M.stuttering += 3
|
|
else if(data >= 135 && prob(33))
|
|
M.confused = max(M:confused+2,0)
|
|
..()
|
|
return
|
|
|
|
vodkamartini
|
|
name = "Vodka Martini"
|
|
id = "vodkamartini"
|
|
description = "Vodka with Gin. Not quite how 007 enjoyed it, but still delicious."
|
|
reagent_state = LIQUID
|
|
on_mob_life(var/mob/M)
|
|
if(!data) data = 1
|
|
data++
|
|
M.dizziness +=3
|
|
if(data >= 45 && data <165)
|
|
if (!M.stuttering) M.stuttering = 1
|
|
M.stuttering += 3
|
|
else if(data >= 135 && prob(33))
|
|
M.confused = max(M:confused+2,0)
|
|
..()
|
|
return
|
|
|
|
white_russian
|
|
name = "White Russian"
|
|
id = "whiterussian"
|
|
description = "That's just, like, your opinion, man..."
|
|
reagent_state = LIQUID
|
|
on_mob_life(var/mob/M)
|
|
if(!data) data = 1
|
|
data++
|
|
M.dizziness +=3
|
|
if(data >= 55 && data <165)
|
|
if (!M.stuttering) M.stuttering = 1
|
|
M.stuttering += 3
|
|
else if(data >= 165 && prob(33))
|
|
M.confused = max(M:confused+2,0)
|
|
..()
|
|
return
|
|
|
|
screwdrivercocktail
|
|
name = "Screwdriver"
|
|
id = "screwdrivercocktail"
|
|
description = "Vodka, mixed with plain ol' orange juice. The result is surprisingly delicious."
|
|
reagent_state = LIQUID
|
|
on_mob_life(var/mob/M)
|
|
if(!data) data = 1
|
|
data++
|
|
M.dizziness +=3
|
|
if(data >= 55 && data <165)
|
|
if (!M.stuttering) M.stuttering = 1
|
|
M.stuttering += 3
|
|
else if(data >= 165 && prob(33))
|
|
M.confused = max(M:confused+2,0)
|
|
..()
|
|
return
|
|
|
|
bloody_mary
|
|
name = "Bloody Mary"
|
|
id = "bloodymary"
|
|
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
|
|
on_mob_life(var/mob/M)
|
|
if(!data) data = 1
|
|
data++
|
|
M.dizziness +=3
|
|
if(data >= 55 && data <165)
|
|
if (!M.stuttering) M.stuttering = 1
|
|
M.stuttering += 3
|
|
else if(data >= 165 && prob(33))
|
|
M.confused = max(M:confused+2,0)
|
|
..()
|
|
return
|
|
|
|
gargle_blaster
|
|
name = "Pan-Galactic Gargle Blaster"
|
|
id = "gargleblaster"
|
|
description = "Whoah, this stuff looks volatile!"
|
|
reagent_state = LIQUID
|
|
on_mob_life(var/mob/M)
|
|
if(!data) data = 1
|
|
data++
|
|
M.dizziness +=6
|
|
if(data >= 15 && data <45)
|
|
if (!M.stuttering) M.stuttering = 1
|
|
M.stuttering += 3
|
|
else if(data >= 45 && prob(50) && data <55)
|
|
M.confused = max(M:confused+3,0)
|
|
else if(data >=55)
|
|
M.druggy = max(M.druggy, 55)
|
|
..()
|
|
return
|
|
|
|
brave_bull
|
|
name = "Brave Bull"
|
|
id = "bravebull"
|
|
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
|
|
on_mob_life(var/mob/M)
|
|
if(!data) data = 1
|
|
data++
|
|
M.dizziness +=3
|
|
if(data >= 45 && data <145)
|
|
if (!M.stuttering) M.stuttering = 1
|
|
M.stuttering += 3
|
|
else if(data >= 145 && prob(33))
|
|
M.confused = max(M:confused+2,0)
|
|
..()
|
|
return
|
|
|
|
tequilla_sunrise
|
|
name = "Tequilla Sunrise"
|
|
id = "tequillasunrise"
|
|
description = "Tequilla and orange juice. Much like a Screwdriver, only Mexican~"
|
|
reagent_state = LIQUID
|
|
on_mob_life(var/mob/M)
|
|
if(!data) data = 1
|
|
data++
|
|
M.dizziness +=3
|
|
if(data >= 55 && data <165)
|
|
if (!M.stuttering) M.stuttering = 1
|
|
M.stuttering += 3
|
|
else if(data >= 165 && prob(33))
|
|
M.confused = max(M:confused+2,0)
|
|
..()
|
|
return
|
|
|
|
toxins_special
|
|
name = "Toxins Special"
|
|
id = "toxinsspecial"
|
|
description = "This thing is FLAMING!. CALL THE DAMN SHUTTLE!"
|
|
reagent_state = LIQUID
|
|
on_mob_life(var/mob/M)
|
|
M.bodytemperature = min(330, M.bodytemperature+15) //310 is the normal bodytemp. 310.055
|
|
if(!data) data = 1
|
|
data++
|
|
M.dizziness +=3
|
|
if(data >= 55 && data <165)
|
|
if (!M.stuttering) M.stuttering = 1
|
|
M.stuttering += 3
|
|
else if(data >= 165 && prob(33))
|
|
M.confused = max(M:confused+2,0)
|
|
..()
|
|
return
|
|
|
|
beepsky_smash
|
|
name = "Beepsky Smash"
|
|
id = "beepskysmash"
|
|
description = "Deny drinking this and prepare for THE LAW."
|
|
reagent_state = LIQUID
|
|
on_mob_life(var/mob/M)
|
|
spawn(5)
|
|
M.stunned = 2
|
|
if(!data) data = 1
|
|
data++
|
|
M.dizziness +=3
|
|
if(data >= 55 && data <165)
|
|
if (!M.stuttering) M.stuttering = 1
|
|
M.stuttering += 3
|
|
else if(data >= 165 && prob(33))
|
|
M.confused = max(M:confused+2,0)
|
|
..()
|
|
return
|
|
|
|
doctor_delight
|
|
name = "The Doctor's Delight"
|
|
id = "doctorsdelight"
|
|
description = "A gulp a day keeps the MediBot away. That's probably for the best."
|
|
reagent_state = LIQUID
|
|
on_mob_life(var/mob/M)
|
|
if(!M) M = holder.my_atom
|
|
if(M:oxyloss && prob(50)) M:oxyloss -= 2
|
|
if(M:bruteloss && prob(60)) M:bruteloss -= 2
|
|
if(M:fireloss && prob(50)) M:fireloss -= 2
|
|
if(M:toxloss && prob(50)) M:toxloss -= 2
|
|
if(M.dizziness !=0) M.dizziness = max(0,M.dizziness-15)
|
|
if(M.confused !=0) M.confused = max(0,M.confused - 5)
|
|
..()
|
|
return
|
|
|
|
irish_cream
|
|
name = "Irish Cream"
|
|
id = "irishcream"
|
|
description = "Whiskey-imbued cream, what else would you expect from the Irish."
|
|
reagent_state = LIQUID
|
|
on_mob_life(var/mob/M)
|
|
if(!data) data = 1
|
|
data++
|
|
M.dizziness +=3
|
|
if(data >= 45 && data <145)
|
|
if (!M.stuttering) M.stuttering = 1
|
|
M.stuttering += 3
|
|
else if(data >= 145 && prob(33))
|
|
M.confused = max(M:confused+2,0)
|
|
..()
|
|
return
|
|
|
|
manly_dorf
|
|
name = "The Manly Dorf"
|
|
id = "manlydorf"
|
|
description = "Beer and Ale, brought together in a delicious mix. Intended for true men only."
|
|
reagent_state = LIQUID
|
|
on_mob_life(var/mob/M)
|
|
if(!data) data = 1
|
|
data++
|
|
M.dizziness +=5
|
|
if(data >= 35 && data <115)
|
|
if (!M.stuttering) M.stuttering = 1
|
|
M.stuttering += 3
|
|
else if(data >= 115 && prob(33))
|
|
M.confused = max(M:confused+2,0)
|
|
..()
|
|
return
|
|
|
|
longislandicedtea
|
|
name = "Long Island Iced Tea"
|
|
id = "longislandicedtea"
|
|
description = "The liquor cabinet, brought together in a delicious mix. Intended for middle-aged alcoholic women only."
|
|
reagent_state = LIQUID
|
|
on_mob_life(var/mob/M)
|
|
if(!data) data = 1
|
|
data++
|
|
M.dizziness +=3
|
|
if(data >= 55 && data <165)
|
|
if (!M.stuttering) M.stuttering = 1
|
|
M.stuttering += 3
|
|
else if(data >= 165 && prob(33))
|
|
M.confused = max(M:confused+2,0)
|
|
..()
|
|
return
|
|
|
|
moonshine
|
|
name = "Moonshine"
|
|
id = "moonshine"
|
|
description = "You've really hit rock bottom now... your liver packed its bags and left last night."
|
|
reagent_state = LIQUID
|
|
on_mob_life(var/mob/M)
|
|
if(!data) data = 1
|
|
data++
|
|
M.dizziness +=5
|
|
if(data >= 30 && data <60)
|
|
if (!M.stuttering) M:stuttering = 1
|
|
M.stuttering += 4
|
|
else if(data >= 60 && prob(40))
|
|
M.confused = max(M:confused+5,0)
|
|
..()
|
|
return
|
|
|
|
b52
|
|
name = "B-52"
|
|
id = "b52"
|
|
description = "Coffee, Irish Cream, and congac. You will get bombed."
|
|
reagent_state = LIQUID
|
|
on_mob_life(var/mob/M)
|
|
if(!data) data = 1
|
|
data++
|
|
M.dizziness +=3
|
|
if(data >= 25 && data <90)
|
|
if (!M.stuttering) M.stuttering = 1
|
|
M.stuttering += 3
|
|
else if(data >= 90 && prob(33))
|
|
M.confused = max(M:confused+2,0)
|
|
..()
|
|
return
|
|
|
|
irishcoffee
|
|
name = "Irish Coffee"
|
|
id = "irishcoffee"
|
|
description = "Coffee, and alcohol. More fun than a Mimosa to drink in the morning."
|
|
reagent_state = LIQUID
|
|
on_mob_life(var/mob/M)
|
|
if(!data) data = 1
|
|
data++
|
|
M.dizziness +=3
|
|
if(data >= 55 && data <150)
|
|
if (!M.stuttering) M.stuttering = 1
|
|
M.stuttering += 3
|
|
else if(data >= 150 && prob(33))
|
|
M.confused = max(M:confused+2,0)
|
|
..()
|
|
return
|
|
|
|
margarita
|
|
name = "Margarita"
|
|
id = "margarita"
|
|
description = "On the rocks with salt on the rim. Arriba~!"
|
|
reagent_state = LIQUID
|
|
on_mob_life(var/mob/M)
|
|
if(!data) data = 1
|
|
data++
|
|
M.dizziness +=4
|
|
if(data >= 55 && data <150)
|
|
if (!M.stuttering) M.stuttering = 1
|
|
M.stuttering += 3
|
|
else if(data >= 150 && prob(33))
|
|
M.confused = max(M:confused+2,0)
|
|
..()
|
|
return
|
|
|
|
black_russian
|
|
name = "Black Russian"
|
|
id = "blackrussian"
|
|
description = "For the lactose-intolerant. Still as classy as a White Russian."
|
|
reagent_state = LIQUID
|
|
on_mob_life(var/mob/M)
|
|
if(!data) data = 1
|
|
data++
|
|
M.dizziness +=4
|
|
if(data >= 55 && data <115)
|
|
if (!M.stuttering) M.stuttering = 1
|
|
M.stuttering += 3
|
|
else if(data >= 115 && prob(33))
|
|
M.confused = max(M:confused+2,0)
|
|
..()
|
|
return
|
|
|
|
manhattan
|
|
name = "Manhattan"
|
|
id = "manhattan"
|
|
description = "The Detective's undercover drink of choice. He never could stomach gin..."
|
|
reagent_state = LIQUID
|
|
on_mob_life(var/mob/M)
|
|
if(!data) data = 1
|
|
data++
|
|
M.dizziness +=4
|
|
if(data >= 55 && data <115)
|
|
if (!M.stuttering) M.stuttering = 1
|
|
M.stuttering += 3
|
|
else if(data >= 115 && prob(33))
|
|
M.confused = max(M:confused+2,0)
|
|
..()
|
|
return
|
|
|
|
whiskeysoda
|
|
name = "Whiskey Soda"
|
|
id = "whiskeysoda"
|
|
description = "Ultimate refreshment."
|
|
reagent_state = LIQUID
|
|
on_mob_life(var/mob/M)
|
|
if(!data) data = 1
|
|
data++
|
|
M.dizziness +=4
|
|
if(data >= 55 && data <115)
|
|
if (!M.stuttering) M.stuttering = 1
|
|
M.stuttering += 3
|
|
else if(data >= 115 && prob(33))
|
|
M.confused = max(M:confused+2,0)
|
|
..()
|
|
return
|
|
|
|
vodkatonic
|
|
name = "Vodka and Tonic"
|
|
id = "vodkatonic"
|
|
description = "For when a gin and tonic isn't russian enough."
|
|
reagent_state = LIQUID
|
|
on_mob_life(var/mob/M)
|
|
if(!data) data = 1
|
|
data++
|
|
M.dizziness +=4
|
|
if(data >= 55 && data <115)
|
|
if (!M.stuttering) M.stuttering = 1
|
|
M.stuttering += 3
|
|
else if(data >= 115 && prob(33))
|
|
M.confused = max(M:confused+2,0)
|
|
..()
|
|
return
|
|
|
|
ginfizz
|
|
name = "Gin Fizz"
|
|
id = "ginfizz"
|
|
description = "Refreshingly lemony, deliciously dry."
|
|
reagent_state = LIQUID
|
|
on_mob_life(var/mob/M)
|
|
if(!data) data = 1
|
|
data++
|
|
M.dizziness +=4
|
|
if(data >= 45 && data <125)
|
|
if (!M.stuttering) M.stuttering = 1
|
|
M.stuttering += 3
|
|
else if(data >= 125 && prob(33))
|
|
M.confused = max(M:confused+2,0)
|
|
..()
|
|
return
|