module things, jfc
This commit is contained in:
@@ -550,8 +550,8 @@
|
||||
if(!D)
|
||||
WARNING("[my_atom] attempted to add a reagent called '[reagent]' which doesn't exist. ([usr])")
|
||||
return FALSE
|
||||
|
||||
update_total()
|
||||
|
||||
update_total()
|
||||
var/cached_total = total_volume
|
||||
if(cached_total + amount > maximum_volume)
|
||||
amount = (maximum_volume - cached_total) //Doesnt fit in. Make it disappear. Shouldnt happen. Will happen.
|
||||
@@ -594,14 +594,14 @@
|
||||
if(data)
|
||||
R.data = data
|
||||
R.on_new(data)
|
||||
|
||||
|
||||
if(isliving(my_atom))
|
||||
R.on_mob_add(my_atom) //Must occur befor it could posibly run on_mob_delete
|
||||
update_total()
|
||||
if(my_atom)
|
||||
my_atom.on_reagent_change(ADD_REAGENT)
|
||||
if(!no_react)
|
||||
handle_reactions()
|
||||
if(isliving(my_atom))
|
||||
R.on_mob_add(my_atom)
|
||||
return TRUE
|
||||
|
||||
/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)
|
||||
|
||||
@@ -139,7 +139,7 @@
|
||||
datum/tgui/master_ui = null, datum/ui_state/state = GLOB.default_state)
|
||||
ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open)
|
||||
if(!ui)
|
||||
ui = new(user, src, ui_key, "chem_dispenser", name, 550, 550, master_ui, state)
|
||||
ui = new(user, src, ui_key, "chem_dispenser", name, 565, 550, master_ui, state)
|
||||
if(user.hallucinating())
|
||||
ui.set_autoupdate(FALSE) //to not ruin the immersion by constantly changing the fake chemicals
|
||||
ui.open()
|
||||
@@ -278,7 +278,7 @@
|
||||
var/chemid = reagent[1]
|
||||
visible_message("<span class='warning'>[src] buzzes.</span>", "<span class='italics'>You hear a faint buzz.</span>")
|
||||
to_chat(usr, "<span class ='danger'>[src] cannot find Chemical ID: <b>[chemid]</b>!</span>")
|
||||
playsound(src, "sound/machines/buzz-two.ogg", 50, 1)
|
||||
playsound(src, 'sound/machines/buzz-two.ogg', 50, 1)
|
||||
return
|
||||
if (resmismatch && alert("[src] is not yet capable of replicating this recipe with the precision it needs, do you want to save it anyway?",, "Yes","No") == "No")
|
||||
return
|
||||
@@ -384,6 +384,16 @@
|
||||
final_list += list(avoid_assoc_duplicate_keys(fuck[1],key_list) = text2num(fuck[2]))
|
||||
return final_list
|
||||
|
||||
/obj/machinery/chem_dispenser/drinks/Initialize()
|
||||
. = ..()
|
||||
AddComponent(/datum/component/simple_rotation, ROTATION_ALTCLICK | ROTATION_CLOCKWISE)
|
||||
|
||||
/obj/machinery/chem_dispenser/drinks/setDir()
|
||||
var/old = dir
|
||||
. = ..()
|
||||
if(dir != old)
|
||||
update_icon() // the beaker needs to be re-positioned if we rotate
|
||||
|
||||
/obj/machinery/chem_dispenser/drinks/display_beaker()
|
||||
var/mutable_appearance/b_o = beaker_overlay || mutable_appearance(icon, "disp_beaker")
|
||||
switch(dir)
|
||||
@@ -413,6 +423,7 @@
|
||||
circuit = /obj/item/circuitboard/machine/chem_dispenser/drinks
|
||||
working_state = null
|
||||
nopower_state = null
|
||||
pass_flags = PASSTABLE
|
||||
dispensable_reagents = list(
|
||||
"water",
|
||||
"ice",
|
||||
@@ -444,6 +455,24 @@
|
||||
"tirizene"
|
||||
)
|
||||
|
||||
/obj/machinery/chem_dispenser/drinks/fullupgrade //fully ugpraded stock parts, emagged
|
||||
desc = "Contains a large reservoir of soft drinks. This model has had its safeties shorted out."
|
||||
obj_flags = CAN_BE_HIT | EMAGGED
|
||||
flags_1 = NODECONSTRUCT_1
|
||||
|
||||
/obj/machinery/chem_dispenser/drinks/fullupgrade/Initialize()
|
||||
. = ..()
|
||||
dispensable_reagents |= emagged_reagents //adds emagged reagents
|
||||
component_parts = list()
|
||||
component_parts += new /obj/item/circuitboard/machine/chem_dispenser/drinks(null)
|
||||
component_parts += new /obj/item/stock_parts/matter_bin/bluespace(null)
|
||||
component_parts += new /obj/item/stock_parts/matter_bin/bluespace(null)
|
||||
component_parts += new /obj/item/stock_parts/capacitor/quadratic(null)
|
||||
component_parts += new /obj/item/stock_parts/manipulator/femto(null)
|
||||
component_parts += new /obj/item/stack/sheet/glass(null)
|
||||
component_parts += new /obj/item/stock_parts/cell/bluespace(null)
|
||||
RefreshParts()
|
||||
|
||||
/obj/machinery/chem_dispenser/drinks/beer
|
||||
name = "booze dispenser"
|
||||
desc = "Contains a large reservoir of the good stuff."
|
||||
@@ -477,6 +506,23 @@
|
||||
"fernet"
|
||||
)
|
||||
|
||||
/obj/machinery/chem_dispenser/drinks/beer/fullupgrade //fully ugpraded stock parts, emagged
|
||||
desc = "Contains a large reservoir of the good stuff. This model has had its safeties shorted out."
|
||||
obj_flags = CAN_BE_HIT | EMAGGED
|
||||
flags_1 = NODECONSTRUCT_1
|
||||
|
||||
/obj/machinery/chem_dispenser/drinks/beer/fullupgrade/Initialize()
|
||||
. = ..()
|
||||
dispensable_reagents |= emagged_reagents //adds emagged reagents
|
||||
component_parts = list()
|
||||
component_parts += new /obj/item/circuitboard/machine/chem_dispenser/drinks/beer(null)
|
||||
component_parts += new /obj/item/stock_parts/matter_bin/bluespace(null)
|
||||
component_parts += new /obj/item/stock_parts/matter_bin/bluespace(null)
|
||||
component_parts += new /obj/item/stock_parts/capacitor/quadratic(null)
|
||||
component_parts += new /obj/item/stock_parts/manipulator/femto(null)
|
||||
component_parts += new /obj/item/stack/sheet/glass(null)
|
||||
component_parts += new /obj/item/stock_parts/cell/bluespace(null)
|
||||
RefreshParts()
|
||||
|
||||
/obj/machinery/chem_dispenser/mutagen
|
||||
name = "mutagen dispenser"
|
||||
@@ -488,6 +534,8 @@
|
||||
/obj/machinery/chem_dispenser/mutagensaltpeter
|
||||
name = "botanical chemical dispenser"
|
||||
desc = "Creates and dispenses chemicals useful for botany."
|
||||
flags_1 = NODECONSTRUCT_1
|
||||
|
||||
dispensable_reagents = list(
|
||||
"mutagen",
|
||||
"saltpetre",
|
||||
@@ -502,10 +550,8 @@
|
||||
"ammonia",
|
||||
"ash",
|
||||
"diethylamine")
|
||||
|
||||
/obj/machinery/chem_dispenser/fullupgrade //fully upgraded stock parts
|
||||
|
||||
/obj/machinery/chem_dispenser/fullupgrade/Initialize()
|
||||
|
||||
/obj/machinery/chem_dispenser/mutagensaltpeter/Initialize()
|
||||
. = ..()
|
||||
component_parts = list()
|
||||
component_parts += new /obj/item/circuitboard/machine/chem_dispenser(null)
|
||||
@@ -516,3 +562,21 @@
|
||||
component_parts += new /obj/item/stack/sheet/glass(null)
|
||||
component_parts += new /obj/item/stock_parts/cell/bluespace(null)
|
||||
RefreshParts()
|
||||
|
||||
/obj/machinery/chem_dispenser/fullupgrade //fully ugpraded stock parts, emagged
|
||||
desc = "Creates and dispenses chemicals. This model has had its safeties shorted out."
|
||||
obj_flags = CAN_BE_HIT | EMAGGED
|
||||
flags_1 = NODECONSTRUCT_1
|
||||
|
||||
/obj/machinery/chem_dispenser/fullupgrade/Initialize()
|
||||
. = ..()
|
||||
dispensable_reagents |= emagged_reagents //adds emagged reagents
|
||||
component_parts = list()
|
||||
component_parts += new /obj/item/circuitboard/machine/chem_dispenser(null)
|
||||
component_parts += new /obj/item/stock_parts/matter_bin/bluespace(null)
|
||||
component_parts += new /obj/item/stock_parts/matter_bin/bluespace(null)
|
||||
component_parts += new /obj/item/stock_parts/capacitor/quadratic(null)
|
||||
component_parts += new /obj/item/stock_parts/manipulator/femto(null)
|
||||
component_parts += new /obj/item/stack/sheet/glass(null)
|
||||
component_parts += new /obj/item/stock_parts/cell/bluespace(null)
|
||||
RefreshParts()
|
||||
|
||||
@@ -190,7 +190,7 @@
|
||||
if("create_culture_bottle")
|
||||
var/id = get_virus_id_by_index(text2num(params["index"]))
|
||||
var/datum/disease/advance/A = SSdisease.archive_diseases[id]
|
||||
if(!A.mutable)
|
||||
if(!istype(A) || !A.mutable)
|
||||
to_chat(usr, "<span class='warning'>ERROR: Cannot replicate virus strain.</span>")
|
||||
return
|
||||
A = A.Copy()
|
||||
|
||||
@@ -85,7 +85,7 @@
|
||||
var/units = RC.reagents.trans_to(src, RC.amount_per_transfer_from_this)
|
||||
if(units)
|
||||
to_chat(user, "<span class='notice'>You transfer [units] units of the solution to [src].</span>")
|
||||
add_logs(usr, src, "has added [english_list(RC.reagents.reagent_list)] to [src]")
|
||||
log_combat(usr, src, "has added [english_list(RC.reagents.reagent_list)] to [src]")
|
||||
return
|
||||
if(default_unfasten_wrench(user, I, 40))
|
||||
on = FALSE
|
||||
@@ -144,7 +144,7 @@
|
||||
if(on)
|
||||
message_admins("[ADMIN_LOOKUPFLW(usr)] activated a smoke machine that contains [english_list(reagents.reagent_list)] at [ADMIN_VERBOSEJMP(src)].")
|
||||
log_game("[key_name(usr)] activated a smoke machine that contains [english_list(reagents.reagent_list)] at [AREACOORD(src)].")
|
||||
add_logs(usr, src, "has activated [src] which contains [english_list(reagents.reagent_list)] at [AREACOORD(src)].")
|
||||
log_combat(usr, src, "has activated [src] which contains [english_list(reagents.reagent_list)] at [AREACOORD(src)].")
|
||||
if("goScreen")
|
||||
screen = params["screen"]
|
||||
. = TRUE
|
||||
|
||||
@@ -88,29 +88,29 @@
|
||||
|
||||
/datum/reagent/proc/overdose_start(mob/living/M)
|
||||
to_chat(M, "<span class='userdanger'>You feel like you took too much of [name]!</span>")
|
||||
SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "[id]_overdose", /datum/mood_event/drugs/overdose, name)
|
||||
SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "[id]_overdose", /datum/mood_event/overdose, name)
|
||||
return
|
||||
|
||||
/datum/reagent/proc/addiction_act_stage1(mob/living/M)
|
||||
SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "[id]_overdose", /datum/mood_event/drugs/withdrawal_light, name)
|
||||
SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "[id]_overdose", /datum/mood_event/withdrawal_light, name)
|
||||
if(prob(30))
|
||||
to_chat(M, "<span class='notice'>You feel like having some [name] right about now.</span>")
|
||||
return
|
||||
|
||||
/datum/reagent/proc/addiction_act_stage2(mob/living/M)
|
||||
SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "[id]_overdose", /datum/mood_event/drugs/withdrawal_medium, name)
|
||||
SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "[id]_overdose", /datum/mood_event/withdrawal_medium, name)
|
||||
if(prob(30))
|
||||
to_chat(M, "<span class='notice'>You feel like you need [name]. You just can't get enough.</span>")
|
||||
return
|
||||
|
||||
/datum/reagent/proc/addiction_act_stage3(mob/living/M)
|
||||
SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "[id]_overdose", /datum/mood_event/drugs/withdrawal_severe, name)
|
||||
SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "[id]_overdose", /datum/mood_event/withdrawal_severe, name)
|
||||
if(prob(30))
|
||||
to_chat(M, "<span class='danger'>You have an intense craving for [name].</span>")
|
||||
return
|
||||
|
||||
/datum/reagent/proc/addiction_act_stage4(mob/living/M)
|
||||
SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "[id]_overdose", /datum/mood_event/drugs/withdrawal_critical, name)
|
||||
SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "[id]_overdose", /datum/mood_event/withdrawal_critical, name)
|
||||
if(prob(30))
|
||||
to_chat(M, "<span class='boldannounce'>You're not feeling good at all! You really need some [name].</span>")
|
||||
return
|
||||
|
||||
@@ -153,6 +153,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
color = "#102000" // rgb: 16, 32, 0
|
||||
nutriment_factor = 1 * REAGENTS_METABOLISM
|
||||
boozepwr = 80
|
||||
quality = DRINK_GOOD
|
||||
overdose_threshold = 60
|
||||
addiction_threshold = 30
|
||||
taste_description = "jitters and death"
|
||||
@@ -249,6 +250,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
description = "Made for a woman, strong enough for a man."
|
||||
color = "#666340" // rgb: 102, 99, 64
|
||||
boozepwr = 10
|
||||
quality = DRINK_FANTASTIC
|
||||
taste_description = "dryness"
|
||||
glass_icon_state = "threemileislandglass"
|
||||
glass_name = "Three Mile Island Ice Tea"
|
||||
@@ -323,6 +325,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
description = "An alcoholic beverage from Space China, made by infusing lizard tails in ethanol."
|
||||
color = "#7E4043" // rgb: 126, 64, 67
|
||||
boozepwr = 45
|
||||
quality = DRINK_FANTASTIC
|
||||
taste_description = "scaley sweetness"
|
||||
|
||||
/datum/reagent/consumable/ethanol/grappa
|
||||
@@ -394,6 +397,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
description = "100 proof cinnamon schnapps, made for alcoholic teen girls on spring break."
|
||||
color = "#FFFF91" // rgb: 255, 255, 145
|
||||
boozepwr = 25
|
||||
quality = DRINK_VERYGOOD
|
||||
taste_description = "burning cinnamon"
|
||||
glass_icon_state = "goldschlagerglass"
|
||||
glass_name = "glass of goldschlager"
|
||||
@@ -406,6 +410,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
description = "Tequila with silver in it, a favorite of alcoholic women in the club scene."
|
||||
color = "#585840" // rgb: 88, 88, 64
|
||||
boozepwr = 60
|
||||
quality = DRINK_VERYGOOD
|
||||
taste_description = "metallic and expensive"
|
||||
glass_icon_state = "patronglass"
|
||||
glass_name = "glass of patron"
|
||||
@@ -418,6 +423,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
description = "An all time classic, mild cocktail."
|
||||
color = "#664300" // rgb: 102, 67, 0
|
||||
boozepwr = 25
|
||||
quality = DRINK_NICE
|
||||
taste_description = "mild and tart"
|
||||
glass_icon_state = "gintonicglass"
|
||||
glass_name = "Gin and Tonic"
|
||||
@@ -429,6 +435,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
description = "Rum, mixed with cola."
|
||||
taste_description = "cola"
|
||||
boozepwr = 40
|
||||
quality = DRINK_NICE
|
||||
color = "#3E1B00"
|
||||
glass_icon_state = "whiskeycolaglass"
|
||||
glass_name = "Rum and Coke"
|
||||
@@ -440,6 +447,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
description = "Viva la Revolucion! Viva Cuba Libre!"
|
||||
color = "#3E1B00" // rgb: 62, 27, 0
|
||||
boozepwr = 50
|
||||
quality = DRINK_GOOD
|
||||
taste_description = "a refreshing marriage of citrus and rum"
|
||||
glass_icon_state = "cubalibreglass"
|
||||
glass_name = "Cuba Libre"
|
||||
@@ -460,17 +468,20 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
description = "Whiskey, mixed with cola. Surprisingly refreshing."
|
||||
color = "#3E1B00" // rgb: 62, 27, 0
|
||||
boozepwr = 70
|
||||
quality = DRINK_NICE
|
||||
taste_description = "cola"
|
||||
glass_icon_state = "whiskeycolaglass"
|
||||
glass_name = "whiskey cola"
|
||||
glass_desc = "An innocent-looking mixture of cola and Whiskey. Delicious."
|
||||
|
||||
|
||||
/datum/reagent/consumable/ethanol/martini
|
||||
name = "Classic Martini"
|
||||
id = "martini"
|
||||
description = "Vermouth with Gin. Not quite how 007 enjoyed it, but still delicious."
|
||||
color = "#664300" // rgb: 102, 67, 0
|
||||
boozepwr = 60
|
||||
quality = DRINK_NICE
|
||||
taste_description = "dry class"
|
||||
glass_icon_state = "martiniglass"
|
||||
glass_name = "Classic Martini"
|
||||
@@ -482,6 +493,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
description = "Vodka with Gin. Not quite how 007 enjoyed it, but still delicious."
|
||||
color = "#664300" // rgb: 102, 67, 0
|
||||
boozepwr = 65
|
||||
quality = DRINK_NICE
|
||||
taste_description = "shaken, not stirred"
|
||||
glass_icon_state = "martiniglass"
|
||||
glass_name = "Vodka martini"
|
||||
@@ -493,6 +505,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
description = "That's just, like, your opinion, man..."
|
||||
color = "#A68340" // rgb: 166, 131, 64
|
||||
boozepwr = 50
|
||||
quality = DRINK_GOOD
|
||||
taste_description = "bitter cream"
|
||||
glass_icon_state = "whiterussianglass"
|
||||
glass_name = "White Russian"
|
||||
@@ -504,6 +517,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
description = "Vodka, mixed with plain ol' orange juice. The result is surprisingly delicious."
|
||||
color = "#A68310" // rgb: 166, 131, 16
|
||||
boozepwr = 55
|
||||
quality = DRINK_NICE
|
||||
taste_description = "oranges"
|
||||
glass_icon_state = "screwdriverglass"
|
||||
glass_name = "Screwdriver"
|
||||
@@ -531,6 +545,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
description = "A strange yet pleasurable mixture made of vodka, tomato and lime juice. Or at least you THINK the red stuff is tomato juice."
|
||||
color = "#664300" // rgb: 102, 67, 0
|
||||
boozepwr = 55
|
||||
quality = DRINK_GOOD
|
||||
taste_description = "tomatoes with a hint of lime"
|
||||
glass_icon_state = "bloodymaryglass"
|
||||
glass_name = "Bloody Mary"
|
||||
@@ -547,6 +562,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
description = "It's just as effective as Dutch-Courage!"
|
||||
color = "#664300" // rgb: 102, 67, 0
|
||||
boozepwr = 80
|
||||
quality = DRINK_NICE
|
||||
taste_description = "alcoholic bravery"
|
||||
glass_icon_state = "bravebullglass"
|
||||
glass_name = "Brave Bull"
|
||||
@@ -570,6 +586,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
description = "Tequila, Grenadine, and Orange Juice."
|
||||
color = "#FFE48C" // rgb: 255, 228, 140
|
||||
boozepwr = 45
|
||||
quality = DRINK_GOOD
|
||||
taste_description = "oranges with a hint of pomegranate"
|
||||
glass_icon_state = "tequilasunriseglass"
|
||||
glass_name = "tequila Sunrise"
|
||||
@@ -598,6 +615,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
description = "This thing is ON FIRE! CALL THE DAMN SHUTTLE!"
|
||||
color = "#664300" // rgb: 102, 67, 0
|
||||
boozepwr = 25
|
||||
quality = DRINK_VERYGOOD
|
||||
taste_description = "spicy toxins"
|
||||
glass_icon_state = "toxinsspecialglass"
|
||||
glass_name = "Toxins Special"
|
||||
@@ -614,6 +632,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
description = "Drink this and prepare for the LAW."
|
||||
color = "#664300" // rgb: 102, 67, 0
|
||||
boozepwr = 90 //THE FIST OF THE LAW IS STRONG AND HARD
|
||||
quality = DRINK_GOOD
|
||||
metabolization_rate = 0.8
|
||||
taste_description = "JUSTICE"
|
||||
glass_icon_state = "beepskysmashglass"
|
||||
@@ -633,6 +652,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
description = "Whiskey-imbued cream, what else would you expect from the Irish?"
|
||||
color = "#664300" // rgb: 102, 67, 0
|
||||
boozepwr = 70
|
||||
quality = DRINK_NICE
|
||||
taste_description = "creamy alcohol"
|
||||
glass_icon_state = "irishcreamglass"
|
||||
glass_name = "Irish Cream"
|
||||
@@ -644,6 +664,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
description = "Beer and Ale, brought together in a delicious mix. Intended for true men only."
|
||||
color = "#664300" // rgb: 102, 67, 0
|
||||
boozepwr = 100 //For the manly only
|
||||
quality = DRINK_NICE
|
||||
taste_description = "hair on your chest and your chin"
|
||||
glass_icon_state = "manlydorfglass"
|
||||
glass_name = "The Manly Dorf"
|
||||
@@ -670,6 +691,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
description = "The liquor cabinet, brought together in a delicious mix. Intended for middle-aged alcoholic women only."
|
||||
color = "#664300" // rgb: 102, 67, 0
|
||||
boozepwr = 35
|
||||
quality = DRINK_VERYGOOD
|
||||
taste_description = "a mixture of cola and alcohol"
|
||||
glass_icon_state = "longislandicedteaglass"
|
||||
glass_name = "Long Island Iced Tea"
|
||||
@@ -693,6 +715,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
description = "Coffee, Irish Cream, and cognac. You will get bombed."
|
||||
color = "#664300" // rgb: 102, 67, 0
|
||||
boozepwr = 85
|
||||
quality = DRINK_GOOD
|
||||
taste_description = "angry and irish"
|
||||
glass_icon_state = "b52glass"
|
||||
glass_name = "B-52"
|
||||
@@ -708,6 +731,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
description = "Coffee, and alcohol. More fun than a Mimosa to drink in the morning."
|
||||
color = "#664300" // rgb: 102, 67, 0
|
||||
boozepwr = 35
|
||||
quality = DRINK_NICE
|
||||
taste_description = "giving up on the day"
|
||||
glass_icon_state = "irishcoffeeglass"
|
||||
glass_name = "Irish Coffee"
|
||||
@@ -719,6 +743,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
description = "On the rocks with salt on the rim. Arriba~!"
|
||||
color = "#8CFF8C" // rgb: 140, 255, 140
|
||||
boozepwr = 35
|
||||
quality = DRINK_NICE
|
||||
taste_description = "dry and salty"
|
||||
glass_icon_state = "margaritaglass"
|
||||
glass_name = "Margarita"
|
||||
@@ -730,6 +755,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
description = "For the lactose-intolerant. Still as classy as a White Russian."
|
||||
color = "#360000" // rgb: 54, 0, 0
|
||||
boozepwr = 70
|
||||
quality = DRINK_NICE
|
||||
taste_description = "bitterness"
|
||||
glass_icon_state = "blackrussianglass"
|
||||
glass_name = "Black Russian"
|
||||
@@ -742,6 +768,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
description = "The Detective's undercover drink of choice. He never could stomach gin..."
|
||||
color = "#664300" // rgb: 102, 67, 0
|
||||
boozepwr = 30
|
||||
quality = DRINK_NICE
|
||||
taste_description = "mild dryness"
|
||||
glass_icon_state = "manhattanglass"
|
||||
glass_name = "Manhattan"
|
||||
@@ -754,6 +781,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
description = "A scientist's drink of choice, for pondering ways to blow up the station."
|
||||
color = "#664300" // rgb: 102, 67, 0
|
||||
boozepwr = 45
|
||||
quality = DRINK_VERYGOOD
|
||||
taste_description = "death, the destroyer of worlds"
|
||||
glass_icon_state = "proj_manhattanglass"
|
||||
glass_name = "Manhattan Project"
|
||||
@@ -770,6 +798,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
description = "For the more refined griffon."
|
||||
color = "#664300" // rgb: 102, 67, 0
|
||||
boozepwr = 70
|
||||
quality = DRINK_NICE
|
||||
taste_description = "soda"
|
||||
glass_icon_state = "whiskeysodaglass2"
|
||||
glass_name = "whiskey soda"
|
||||
@@ -781,6 +810,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
description = "The ultimate refreshment. Not what it sounds like."
|
||||
color = "#664300" // rgb: 102, 67, 0
|
||||
boozepwr = 35
|
||||
quality = DRINK_NICE
|
||||
taste_description = "Jack Frost's piss"
|
||||
glass_icon_state = "antifreeze"
|
||||
glass_name = "Anti-freeze"
|
||||
@@ -796,6 +826,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
description = "Barefoot and pregnant."
|
||||
color = "#664300" // rgb: 102, 67, 0
|
||||
boozepwr = 45
|
||||
quality = DRINK_VERYGOOD
|
||||
taste_description = "creamy berries"
|
||||
glass_icon_state = "b&p"
|
||||
glass_name = "Barefoot"
|
||||
@@ -815,6 +846,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
description = "A cold refreshment."
|
||||
color = "#FFFFFF" // rgb: 255, 255, 255
|
||||
boozepwr = 35
|
||||
quality = DRINK_NICE
|
||||
taste_description = "refreshing cold"
|
||||
glass_icon_state = "snowwhite"
|
||||
glass_name = "Snow White"
|
||||
@@ -826,6 +858,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
description = "AHHHH!!!!"
|
||||
color = "#820000" // rgb: 130, 0, 0
|
||||
boozepwr = 75
|
||||
quality = DRINK_VERYGOOD
|
||||
taste_description = "sweet tasting iron"
|
||||
glass_icon_state = "demonsblood"
|
||||
glass_name = "Demons Blood"
|
||||
@@ -837,6 +870,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
description = "Creepy time!"
|
||||
color = "#A68310" // rgb: 166, 131, 16
|
||||
boozepwr = 70
|
||||
quality = DRINK_VERYGOOD
|
||||
taste_description = "bitter iron"
|
||||
glass_icon_state = "devilskiss"
|
||||
glass_name = "Devils Kiss"
|
||||
@@ -848,6 +882,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
description = "For when a gin and tonic isn't Russian enough."
|
||||
color = "#0064C8" // rgb: 0, 100, 200
|
||||
boozepwr = 70
|
||||
quality = DRINK_NICE
|
||||
taste_description = "tart bitterness"
|
||||
glass_icon_state = "vodkatonicglass"
|
||||
glass_name = "vodka and tonic"
|
||||
@@ -860,6 +895,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
description = "Refreshingly lemony, deliciously dry."
|
||||
color = "#664300" // rgb: 102, 67, 0
|
||||
boozepwr = 45
|
||||
quality = DRINK_GOOD
|
||||
taste_description = "dry, tart lemons"
|
||||
glass_icon_state = "ginfizzglass"
|
||||
glass_name = "gin fizz"
|
||||
@@ -872,6 +908,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
description = "Tropical cocktail."
|
||||
color = "#FF7F3B" // rgb: 255, 127, 59
|
||||
boozepwr = 35
|
||||
quality = DRINK_GOOD
|
||||
taste_description = "lime and orange"
|
||||
glass_icon_state = "bahama_mama"
|
||||
glass_name = "Bahama Mama"
|
||||
@@ -883,6 +920,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
description = "A blue-space beverage!"
|
||||
color = "#2E6671" // rgb: 46, 102, 113
|
||||
boozepwr = 35
|
||||
quality = DRINK_VERYGOOD
|
||||
taste_description = "concentrated matter"
|
||||
glass_icon_state = "singulo"
|
||||
glass_name = "Singulo"
|
||||
@@ -894,6 +932,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
description = "A spicy Vodka! Might be a little hot for the little guys!"
|
||||
color = "#664300" // rgb: 102, 67, 0
|
||||
boozepwr = 70
|
||||
quality = DRINK_GOOD
|
||||
taste_description = "hot and spice"
|
||||
glass_icon_state = "sbitenglass"
|
||||
glass_name = "Sbiten"
|
||||
@@ -909,6 +948,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
description = "The true Viking drink! Even though it has a strange red color."
|
||||
color = "#C73C00" // rgb: 199, 60, 0
|
||||
boozepwr = 51 //Red drinks are stronger
|
||||
quality = DRINK_GOOD
|
||||
taste_description = "sweet and salty alcohol"
|
||||
glass_icon_state = "red_meadglass"
|
||||
glass_name = "Red Mead"
|
||||
@@ -921,6 +961,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
color = "#664300" // rgb: 102, 67, 0
|
||||
nutriment_factor = 1 * REAGENTS_METABOLISM
|
||||
boozepwr = 50
|
||||
quality = DRINK_NICE
|
||||
taste_description = "sweet, sweet alcohol"
|
||||
glass_icon_state = "meadglass"
|
||||
glass_name = "Mead"
|
||||
@@ -959,6 +1000,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
description = "So very, very, very good."
|
||||
color = "#664300" // rgb: 102, 67, 0
|
||||
boozepwr = 35
|
||||
quality = DRINK_VERYGOOD
|
||||
taste_description = "sweet 'n creamy"
|
||||
glass_icon_state = "aloe"
|
||||
glass_name = "Aloe"
|
||||
@@ -970,6 +1012,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
description = "A nice, strangely named drink."
|
||||
color = "#664300" // rgb: 102, 67, 0
|
||||
boozepwr = 40
|
||||
quality = DRINK_GOOD
|
||||
taste_description = "lemons"
|
||||
glass_icon_state = "andalusia"
|
||||
glass_name = "Andalusia"
|
||||
@@ -981,6 +1024,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
description = "A drink made from your allies. Not as sweet as those made from your enemies."
|
||||
color = "#664300" // rgb: 102, 67, 0
|
||||
boozepwr = 45
|
||||
quality = DRINK_NICE
|
||||
taste_description = "bitter yet free"
|
||||
glass_icon_state = "alliescocktail"
|
||||
glass_name = "Allies cocktail"
|
||||
@@ -992,6 +1036,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
description = "A drink for the daring, can be deadly if incorrectly prepared!"
|
||||
color = "#365000" // rgb: 54, 80, 0
|
||||
boozepwr = 80
|
||||
quality = DRINK_VERYGOOD
|
||||
taste_description = "stomach acid"
|
||||
glass_icon_state = "acidspitglass"
|
||||
glass_name = "Acid Spit"
|
||||
@@ -1003,6 +1048,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
description = "Official drink of the Nanotrasen Gun-Club!"
|
||||
color = "#664300" // rgb: 102, 67, 0
|
||||
boozepwr = 35
|
||||
quality = DRINK_GOOD
|
||||
taste_description = "dark and metallic"
|
||||
glass_icon_state = "amasecglass"
|
||||
glass_name = "Amasec"
|
||||
@@ -1014,6 +1060,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
description = "You take a tiny sip and feel a burning sensation..."
|
||||
color = "#2E6671" // rgb: 46, 102, 113
|
||||
boozepwr = 95
|
||||
quality = DRINK_GOOD
|
||||
taste_description = "your brain coming out your nose"
|
||||
glass_icon_state = "changelingsting"
|
||||
glass_name = "Changeling Sting"
|
||||
@@ -1033,6 +1080,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
description = "Mmm, tastes like chocolate cake..."
|
||||
color = "#2E6671" // rgb: 46, 102, 113
|
||||
boozepwr = 25
|
||||
quality = DRINK_GOOD
|
||||
taste_description = "delicious anger"
|
||||
glass_icon_state = "irishcarbomb"
|
||||
glass_name = "Irish Car Bomb"
|
||||
@@ -1044,6 +1092,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
description = "Tastes like terrorism!"
|
||||
color = "#2E6671" // rgb: 46, 102, 113
|
||||
boozepwr = 90
|
||||
quality = DRINK_GOOD
|
||||
taste_description = "purified antagonism"
|
||||
glass_icon_state = "syndicatebomb"
|
||||
glass_name = "Syndicate Bomb"
|
||||
@@ -1060,6 +1109,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
description = "The surprise is, it's green!"
|
||||
color = "#2E6671" // rgb: 46, 102, 113
|
||||
boozepwr = 35
|
||||
quality = DRINK_VERYGOOD
|
||||
taste_description = "tartness and bananas"
|
||||
glass_icon_state = "erikasurprise"
|
||||
glass_name = "Erika Surprise"
|
||||
@@ -1072,6 +1122,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
nutriment_factor = 1 * REAGENTS_METABOLISM
|
||||
color = "#2E6671" // rgb: 46, 102, 113
|
||||
boozepwr = 65
|
||||
quality = DRINK_GOOD
|
||||
taste_description = "a beach"
|
||||
glass_icon_state = "driestmartiniglass"
|
||||
glass_name = "Driest Martini"
|
||||
@@ -1084,6 +1135,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
nutriment_factor = 1 * REAGENTS_METABOLISM
|
||||
color = "#FFFF91" // rgb: 255, 255, 140
|
||||
boozepwr = 60
|
||||
quality = DRINK_GOOD
|
||||
taste_description = "a bad joke"
|
||||
glass_icon_state = "bananahonkglass"
|
||||
glass_name = "Banana Honk"
|
||||
@@ -1102,6 +1154,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
nutriment_factor = 1 * REAGENTS_METABOLISM
|
||||
color = "#664300" // rgb: 102, 67, 0
|
||||
boozepwr = 59 //Proof that clowns are better than mimes right here
|
||||
quality = DRINK_GOOD
|
||||
taste_description = "a pencil eraser"
|
||||
glass_icon_state = "silencerglass"
|
||||
glass_name = "Silencer"
|
||||
@@ -1119,6 +1172,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
description = "A weird mix of whiskey and blumpkin juice."
|
||||
color = "#1EA0FF" // rgb: 102, 67, 0
|
||||
boozepwr = 50
|
||||
quality = DRINK_VERYGOOD
|
||||
taste_description = "molasses and a mouthful of pool water"
|
||||
glass_icon_state = "drunkenblumpkin"
|
||||
glass_name = "Drunken Blumpkin"
|
||||
@@ -1130,6 +1184,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
description = "Lemon juice/whiskey/sugar mixture. Moderate alcohol content."
|
||||
color = rgb(255, 201, 49)
|
||||
boozepwr = 35
|
||||
quality = DRINK_GOOD
|
||||
taste_description = "sour lemons"
|
||||
glass_icon_state = "whiskey_sour"
|
||||
glass_name = "whiskey sour"
|
||||
@@ -1155,6 +1210,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
description = "Whiskey sour/iron/uranium mixture resulting in a highly magnetic slurry. Mild alcohol content." //Requires no alcohol to make but has alcohol anyway because ~magic~
|
||||
color = rgb(255, 91, 15)
|
||||
boozepwr = 10
|
||||
quality = DRINK_VERYGOOD
|
||||
metabolization_rate = 0.1 * REAGENTS_METABOLISM
|
||||
taste_description = "charged metal" // the same as teslium, honk honk.
|
||||
glass_icon_state = "fetching_fizz"
|
||||
@@ -1174,6 +1230,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
description = "Brave bull/syndicate bomb/absinthe mixture resulting in an energizing beverage. Mild alcohol content."
|
||||
color = rgb(140, 0, 0)
|
||||
boozepwr = 90
|
||||
quality = DRINK_VERYGOOD
|
||||
metabolization_rate = 0.4 * REAGENTS_METABOLISM
|
||||
taste_description = "bravado in the face of disaster"
|
||||
glass_icon_state = "hearty_punch"
|
||||
@@ -1209,6 +1266,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
description = "Nuclear proliferation never tasted so good."
|
||||
color = "#666300" // rgb: 102, 99, 0
|
||||
boozepwr = 0 //custom drunk effect
|
||||
quality = DRINK_FANTASTIC
|
||||
taste_description = "da bomb"
|
||||
glass_icon_state = "atomicbombglass"
|
||||
glass_name = "Atomic Bomb"
|
||||
@@ -1238,6 +1296,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
description = "Whoah, this stuff looks volatile!"
|
||||
color = "#664300" // rgb: 102, 67, 0
|
||||
boozepwr = 0 //custom drunk effect
|
||||
quality = DRINK_GOOD
|
||||
taste_description = "your brains smashed out by a lemon wrapped around a gold brick"
|
||||
glass_icon_state = "gargleblasterglass"
|
||||
glass_name = "Pan-Galactic Gargle Blaster"
|
||||
@@ -1266,6 +1325,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
description = "A strong neurotoxin that puts the subject into a death-like state."
|
||||
color = "#2E2E61" // rgb: 46, 46, 97
|
||||
boozepwr = 0 //custom drunk effect
|
||||
quality = DRINK_VERYGOOD
|
||||
taste_description = "a numbing sensation"
|
||||
glass_icon_state = "neurotoxinglass"
|
||||
glass_name = "Neurotoxin"
|
||||
@@ -1296,6 +1356,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
color = "#664300" // rgb: 102, 67, 0
|
||||
nutriment_factor = 0
|
||||
boozepwr = 0 //custom drunk effect
|
||||
quality = DRINK_FANTASTIC
|
||||
metabolization_rate = 0.2 * REAGENTS_METABOLISM
|
||||
taste_description = "giving peace a chance"
|
||||
glass_icon_state = "hippiesdelightglass"
|
||||
@@ -1341,6 +1402,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
color = "#fcfdc6" // rgb: 252, 253, 198
|
||||
nutriment_factor = 2 * REAGENTS_METABOLISM
|
||||
boozepwr = 1
|
||||
quality = DRINK_VERYGOOD
|
||||
taste_description = "custard and alcohol"
|
||||
glass_icon_state = "glass_yellow"
|
||||
glass_name = "eggnog"
|
||||
@@ -1353,6 +1415,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
description = "Side effects include self-mutilation and hoarding plasteel."
|
||||
color = RUNE_COLOR_DARKRED
|
||||
boozepwr = 10
|
||||
quality = DRINK_FANTASTIC
|
||||
taste_description = "bloody"
|
||||
glass_icon_state = "narsour"
|
||||
glass_name = "Nar'Sour"
|
||||
@@ -1402,6 +1465,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
description = "Kicks just as hard as licking the powercell on a baton, but tastier."
|
||||
color = "#cc0000"
|
||||
boozepwr = 35
|
||||
quality = DRINK_GOOD
|
||||
taste_description = "an invigorating bitter freshness which suffuses your being; no enemy of the station will go unrobusted this day"
|
||||
glass_icon_state = "quadruple_sec"
|
||||
glass_name = "Quadruple Sec"
|
||||
@@ -1420,6 +1484,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
description = "Law, Order, Alcohol, and Police Brutality distilled into one single elixir of JUSTICE."
|
||||
color = "#ff3300"
|
||||
boozepwr = 80
|
||||
quality = DRINK_FANTASTIC
|
||||
taste_description = "THE LAW"
|
||||
glass_icon_state = "quintuple_sec"
|
||||
glass_name = "Quintuple Sec"
|
||||
@@ -1441,6 +1506,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
description = "A fresh and sweet dessert shooter. Difficult to look manly while drinking this."
|
||||
color = "00ff00"
|
||||
boozepwr = 25
|
||||
quality = DRINK_GOOD
|
||||
taste_description = "chocolate and mint dancing around your mouth"
|
||||
glass_icon_state = "grasshopper"
|
||||
glass_name = "Grasshopper"
|
||||
@@ -1452,6 +1518,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
description = "A snappy way to end the day."
|
||||
color = "ccff99"
|
||||
boozepwr = 25
|
||||
quality = DRINK_NICE
|
||||
taste_description = "a slap on the face in the best possible way"
|
||||
glass_icon_state = "stinger"
|
||||
glass_name = "Stinger"
|
||||
@@ -1463,6 +1530,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
description = "Soothing hot herbal brew with restorative properties. Hints of citrus and berry flavors."
|
||||
color = "#00FFFF"
|
||||
boozepwr = 30
|
||||
quality = DRINK_FANTASTIC
|
||||
taste_description = "hot herbal brew with a hint of fruit"
|
||||
metabolization_rate = 2 * REAGENTS_METABOLISM //0.8u per tick
|
||||
glass_icon_state = "bastion_bourbon"
|
||||
@@ -1518,6 +1586,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
description = "Bubbly, classy, and undoubtedly strong - a Glitch City classic."
|
||||
color = "#FFEAC4"
|
||||
boozepwr = 90 //classy hooch, essentially, but lower pwr to make up for slightly easier access
|
||||
quality = DRINK_GOOD
|
||||
taste_description = "ethylic alcohol with a hint of sugar"
|
||||
glass_icon_state = "fringe_weaver"
|
||||
glass_name = "Fringe Weaver"
|
||||
@@ -1529,6 +1598,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
description = "Sweet, light, and fruity - as girly as it gets."
|
||||
color = "#FF226C"
|
||||
boozepwr = 10
|
||||
quality = DRINK_GOOD
|
||||
taste_description = "your arteries clogging with sugar"
|
||||
nutriment_factor = 2 * REAGENTS_METABOLISM
|
||||
glass_icon_state = "sugar_rush"
|
||||
@@ -1546,6 +1616,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
description = "Sour, bitter, and smashingly sobering."
|
||||
color = "#5BD231"
|
||||
boozepwr = -10 //sobers you up - ideally, one would drink to get hit with brute damage now to avoid alcohol problems later
|
||||
quality = DRINK_VERYGOOD
|
||||
taste_description = "a bitter SPIKE with a sour aftertaste"
|
||||
glass_icon_state = "crevice_spike"
|
||||
glass_name = "Crevice Spike"
|
||||
@@ -1572,6 +1643,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
color = "#45ca7a"
|
||||
taste_description = "mint and chocolate"
|
||||
boozepwr = 25
|
||||
quality = DRINK_GOOD
|
||||
glass_icon_state = "peppermint_patty"
|
||||
glass_name = "Peppermint Patty"
|
||||
glass_desc = "A boozy minty hot cocoa that warms your belly on a cold night."
|
||||
@@ -1586,6 +1658,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
description = "Named after a Greek hero, this mix is said to embolden a user's shield as if they were in a phalanx."
|
||||
color = "#F5E9D3"
|
||||
boozepwr = 80
|
||||
quality = DRINK_GOOD
|
||||
taste_description = "bitter, creamy cacao"
|
||||
glass_icon_state = "alexander"
|
||||
glass_name = "Alexander"
|
||||
@@ -1618,6 +1691,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
description = "The one ride you'll gladly give up the wheel for."
|
||||
color = "#FFC55B"
|
||||
boozepwr = 80
|
||||
quality = DRINK_GOOD
|
||||
taste_description = "delicious freedom"
|
||||
glass_icon_state = "sidecar"
|
||||
glass_name = "Sidecar"
|
||||
@@ -1629,6 +1703,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
description = "A provocatively named classic. Funny enough, doctors recommend drinking it before taking a nap."
|
||||
color = "#F4C35A"
|
||||
boozepwr = 80
|
||||
quality = DRINK_GOOD
|
||||
taste_description = "seduction"
|
||||
glass_icon_state = "between_the_sheets"
|
||||
glass_name = "Between the Sheets"
|
||||
@@ -1653,6 +1728,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
description = "Divinely windy."
|
||||
color = "#EEF191"
|
||||
boozepwr = 60
|
||||
quality = DRINK_GOOD
|
||||
taste_description = "divine windiness"
|
||||
glass_icon_state = "kamikaze"
|
||||
glass_name = "Kamikaze"
|
||||
@@ -1664,6 +1740,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
description = "A drink that looks as refreshing as it tastes."
|
||||
color = "#DFFAD9"
|
||||
boozepwr = 30
|
||||
quality = DRINK_GOOD
|
||||
taste_description = "refreshing mint"
|
||||
glass_icon_state = "mojito"
|
||||
glass_name = "Mojito"
|
||||
@@ -1692,12 +1769,13 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
description = "A very popular and bittersweet digestif, ideal after a heavy meal. Best served on a sawed-off cola bottle as per tradition."
|
||||
color = "#390600" // rgb: 57, 6, 0
|
||||
boozepwr = 25
|
||||
quality = DRINK_NICE
|
||||
taste_description = "sweet relief"
|
||||
glass_icon_state = "godlyblend"
|
||||
glass_name = "glass of fernet cola"
|
||||
glass_desc = "A sawed-off cola bottle filled with Fernet Cola. Nothing better after eating like a lardass."
|
||||
|
||||
/datum/reagent/consumable/ethanol/fernetcola/on_mob_life(mob/living/carbon/M)
|
||||
/datum/reagent/consumable/ethanol/fernet_cola/on_mob_life(mob/living/carbon/M)
|
||||
if(M.nutrition <= NUTRITION_LEVEL_STARVING)
|
||||
M.adjustToxLoss(0.5*REM, 0)
|
||||
M.nutrition = max(M.nutrition - 3, 0)
|
||||
@@ -1711,6 +1789,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
description = "What if the Manhattan coctail ACTUALLY used a bitter herb liquour? Helps you sobers up." //also causes a bit of stamina damage to symbolize the afterdrink lazyness
|
||||
color = "#CA933F" // rgb: 202, 147, 63
|
||||
boozepwr = -10
|
||||
quality = DRINK_NICE
|
||||
taste_description = "a sweet sobering mix"
|
||||
glass_icon_state = "fanciulli"
|
||||
glass_name = "glass of fanciulli"
|
||||
@@ -1734,6 +1813,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
description = "A refreshing mixture of bitter Fernet with mint creme liquour."
|
||||
color = "#4B5746" // rgb: 75, 87, 70
|
||||
boozepwr = 35
|
||||
quality = DRINK_GOOD
|
||||
taste_description = "a bitter freshness"
|
||||
glass_icon_state= "minted_fernet"
|
||||
glass_name = "glass of branca menta"
|
||||
@@ -1749,3 +1829,108 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
M.adjustStaminaLoss(35)
|
||||
. = TRUE
|
||||
..()
|
||||
|
||||
/datum/reagent/consumable/ethanol/fruit_wine
|
||||
name = "Fruit Wine"
|
||||
id = "fruit_wine"
|
||||
description = "A wine made from grown plants."
|
||||
color = "#FFFFFF"
|
||||
boozepwr = 35
|
||||
quality = DRINK_GOOD
|
||||
taste_description = "bad coding"
|
||||
can_synth = FALSE
|
||||
var/list/names = list("null fruit" = 1) //Names of the fruits used. Associative list where name is key, value is the percentage of that fruit.
|
||||
var/list/tastes = list("bad coding" = 1) //List of tastes. See above.
|
||||
|
||||
/datum/reagent/consumable/ethanol/fruit_wine/on_new(list/data)
|
||||
names = data["names"]
|
||||
tastes = data["tastes"]
|
||||
boozepwr = data["boozepwr"]
|
||||
color = data["color"]
|
||||
generate_data_info(data)
|
||||
|
||||
/datum/reagent/consumable/ethanol/fruit_wine/on_merge(list/data, amount)
|
||||
var/diff = (amount/volume)
|
||||
if(diff < 1)
|
||||
color = BlendRGB(color, data["color"], diff/2) //The percentage difference over two, so that they take average if equal.
|
||||
else
|
||||
color = BlendRGB(color, data["color"], (1/diff)/2) //Adjust so it's always blending properly.
|
||||
var/oldvolume = volume-amount
|
||||
|
||||
var/list/cachednames = data["names"]
|
||||
for(var/name in names | cachednames)
|
||||
names[name] = ((names[name] * oldvolume) + (cachednames[name] * amount)) / volume
|
||||
|
||||
var/list/cachedtastes = data["tastes"]
|
||||
for(var/taste in tastes | cachedtastes)
|
||||
tastes[taste] = ((tastes[taste] * oldvolume) + (cachedtastes[taste] * amount)) / volume
|
||||
|
||||
boozepwr *= oldvolume
|
||||
var/newzepwr = data["boozepwr"] * amount
|
||||
boozepwr += newzepwr
|
||||
boozepwr /= volume //Blending boozepwr to volume.
|
||||
generate_data_info(data)
|
||||
|
||||
/datum/reagent/consumable/ethanol/fruit_wine/proc/generate_data_info(list/data)
|
||||
var/minimum_percent = 0.15 //Percentages measured between 0 and 1.
|
||||
var/list/primary_tastes = list()
|
||||
var/list/secondary_tastes = list()
|
||||
glass_name = "glass of [name]"
|
||||
glass_desc = description
|
||||
for(var/taste in tastes)
|
||||
switch(tastes[taste])
|
||||
if(minimum_percent*2 to INFINITY)
|
||||
primary_tastes += taste
|
||||
if(minimum_percent to minimum_percent*2)
|
||||
secondary_tastes += taste
|
||||
|
||||
var/minimum_name_percent = 0.35
|
||||
name = ""
|
||||
var/list/names_in_order = sortTim(names, /proc/cmp_numeric_dsc, TRUE)
|
||||
var/named = FALSE
|
||||
for(var/fruit_name in names)
|
||||
if(names[fruit_name] >= minimum_name_percent)
|
||||
name += "[fruit_name] "
|
||||
named = TRUE
|
||||
if(named)
|
||||
name += "wine"
|
||||
else
|
||||
name = "mixed [names_in_order[1]] wine"
|
||||
|
||||
var/alcohol_description
|
||||
switch(boozepwr)
|
||||
if(120 to INFINITY)
|
||||
alcohol_description = "suicidally strong"
|
||||
if(90 to 120)
|
||||
alcohol_description = "rather strong"
|
||||
if(70 to 90)
|
||||
alcohol_description = "strong"
|
||||
if(40 to 70)
|
||||
alcohol_description = "rich"
|
||||
if(20 to 40)
|
||||
alcohol_description = "mild"
|
||||
if(0 to 20)
|
||||
alcohol_description = "sweet"
|
||||
else
|
||||
alcohol_description = "watery" //How the hell did you get negative boozepwr?
|
||||
|
||||
var/list/fruits = list()
|
||||
if(names_in_order.len <= 3)
|
||||
fruits = names_in_order
|
||||
else
|
||||
for(var/i in 1 to 3)
|
||||
fruits += names_in_order[i]
|
||||
fruits += "other plants"
|
||||
var/fruit_list = english_list(fruits)
|
||||
description = "A [alcohol_description] wine brewed from [fruit_list]."
|
||||
|
||||
var/flavor = ""
|
||||
if(!primary_tastes.len)
|
||||
primary_tastes = list("[alcohol_description] alcohol")
|
||||
flavor += english_list(primary_tastes)
|
||||
if(secondary_tastes.len)
|
||||
flavor += ", with a hint of "
|
||||
flavor += english_list(secondary_tastes)
|
||||
taste_description = flavor
|
||||
if(holder.my_atom)
|
||||
holder.my_atom.on_reagent_change()
|
||||
|
||||
@@ -310,6 +310,7 @@
|
||||
id = "arnold_palmer"
|
||||
description = "Encourages the patient to go golfing."
|
||||
color = "#FFB766"
|
||||
quality = DRINK_NICE
|
||||
nutriment_factor = 2
|
||||
taste_description = "bitter tea"
|
||||
glass_icon_state = "arnold_palmer"
|
||||
@@ -383,6 +384,7 @@
|
||||
id = "nuka_cola"
|
||||
description = "Cola, cola never changes."
|
||||
color = "#100800" // rgb: 16, 8, 0
|
||||
quality = DRINK_VERYGOOD
|
||||
taste_description = "the future"
|
||||
glass_icon_state = "nuka_colaglass"
|
||||
glass_name = "glass of Nuka Cola"
|
||||
@@ -550,6 +552,7 @@
|
||||
id = "soy_latte"
|
||||
description = "A nice and tasty beverage while you are reading your hippie books."
|
||||
color = "#664300" // rgb: 102, 67, 0
|
||||
quality = DRINK_NICE
|
||||
taste_description = "creamy coffee"
|
||||
glass_icon_state = "soy_latte"
|
||||
glass_name = "soy latte"
|
||||
@@ -571,6 +574,7 @@
|
||||
id = "cafe_latte"
|
||||
description = "A nice, strong and tasty beverage while you are reading."
|
||||
color = "#664300" // rgb: 102, 67, 0
|
||||
quality = DRINK_NICE
|
||||
taste_description = "bitter cream"
|
||||
glass_icon_state = "cafe_latte"
|
||||
glass_name = "cafe latte"
|
||||
@@ -592,6 +596,7 @@
|
||||
id = "doctorsdelight"
|
||||
description = "A gulp a day keeps the Medibot away! A mixture of juices that heals most damage types fairly quickly at the cost of hunger."
|
||||
color = "#FF8CFF" // rgb: 255, 140, 255
|
||||
quality = DRINK_VERYGOOD
|
||||
taste_description = "homely fruit"
|
||||
glass_icon_state = "doctorsdelightglass"
|
||||
glass_name = "Doctor's Delight"
|
||||
@@ -613,6 +618,7 @@
|
||||
id = "chocolatepudding"
|
||||
description = "A great dessert for chocolate lovers."
|
||||
color = "#800000"
|
||||
quality = DRINK_VERYGOOD
|
||||
nutriment_factor = 4 * REAGENTS_METABOLISM
|
||||
taste_description = "sweet chocolate"
|
||||
glass_icon_state = "chocolatepudding"
|
||||
@@ -624,6 +630,7 @@
|
||||
id = "vanillapudding"
|
||||
description = "A great dessert for vanilla lovers."
|
||||
color = "#FAFAD2"
|
||||
quality = DRINK_VERYGOOD
|
||||
nutriment_factor = 4 * REAGENTS_METABOLISM
|
||||
taste_description = "sweet vanilla"
|
||||
glass_icon_state = "vanillapudding"
|
||||
@@ -635,6 +642,7 @@
|
||||
id = "cherryshake"
|
||||
description = "A cherry flavored milkshake."
|
||||
color = "#FFB6C1"
|
||||
quality = DRINK_VERYGOOD
|
||||
nutriment_factor = 4 * REAGENTS_METABOLISM
|
||||
taste_description = "creamy cherry"
|
||||
glass_icon_state = "cherryshake"
|
||||
@@ -646,6 +654,7 @@
|
||||
id = "bluecherryshake"
|
||||
description = "An exotic milkshake."
|
||||
color = "#00F1FF"
|
||||
quality = DRINK_VERYGOOD
|
||||
nutriment_factor = 4 * REAGENTS_METABOLISM
|
||||
taste_description = "creamy blue cherry"
|
||||
glass_icon_state = "bluecherryshake"
|
||||
@@ -657,6 +666,7 @@
|
||||
id = "pumpkin_latte"
|
||||
description = "A mix of pumpkin juice and coffee."
|
||||
color = "#F4A460"
|
||||
quality = DRINK_VERYGOOD
|
||||
nutriment_factor = 3 * REAGENTS_METABOLISM
|
||||
taste_description = "creamy pumpkin"
|
||||
glass_icon_state = "pumpkin_latte"
|
||||
@@ -668,6 +678,7 @@
|
||||
id = "gibbfloats"
|
||||
description = "Ice cream on top of a Dr. Gibb glass."
|
||||
color = "#B22222"
|
||||
quality = DRINK_NICE
|
||||
nutriment_factor = 3 * REAGENTS_METABOLISM
|
||||
taste_description = "creamy cherry"
|
||||
glass_icon_state = "gibbfloats"
|
||||
@@ -693,6 +704,7 @@
|
||||
id = "triple_citrus"
|
||||
description = "A solution."
|
||||
color = "#C8A5DC"
|
||||
quality = DRINK_NICE
|
||||
taste_description = "extreme bitterness"
|
||||
glass_icon_state = "triplecitrus" //needs own sprite mine are trash
|
||||
glass_name = "glass of triple citrus"
|
||||
@@ -712,6 +724,7 @@
|
||||
id = "chocolate_milk"
|
||||
description = "Milk for cool kids."
|
||||
color = "#7D4E29"
|
||||
quality = DRINK_NICE
|
||||
taste_description = "chocolate milk"
|
||||
|
||||
/datum/reagent/consumable/menthol
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
|
||||
/datum/reagent/drug/space_drugs/overdose_start(mob/living/M)
|
||||
to_chat(M, "<span class='userdanger'>You start tripping hard!</span>")
|
||||
SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "[id]_overdose", /datum/mood_event/drugs/overdose, name)
|
||||
SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "[id]_overdose", /datum/mood_event/overdose, name)
|
||||
|
||||
/datum/reagent/drug/space_drugs/overdose_process(mob/living/M)
|
||||
if(M.hallucination < volume && prob(20))
|
||||
@@ -49,7 +49,7 @@
|
||||
if(prob(1))
|
||||
var/smoke_message = pick("You feel relaxed.", "You feel calmed.","You feel alert.","You feel rugged.")
|
||||
to_chat(M, "<span class='notice'>[smoke_message]</span>")
|
||||
SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "smoked", /datum/mood_event/drugs/smoked, name)
|
||||
SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "smoked", /datum/mood_event/smoked, name)
|
||||
M.AdjustStun(-20, 0)
|
||||
M.AdjustKnockdown(-20, 0)
|
||||
M.AdjustUnconscious(-20, 0)
|
||||
@@ -132,7 +132,7 @@
|
||||
..()
|
||||
. = 1
|
||||
|
||||
/datum/reagent/krokodil/addiction_act_stage2(mob/living/M)
|
||||
/datum/reagent/drug/krokodil/addiction_act_stage2(mob/living/M)
|
||||
if(prob(25))
|
||||
to_chat(M, "<span class='danger'>Your skin feels loose...</span>")
|
||||
..()
|
||||
|
||||
@@ -13,12 +13,27 @@
|
||||
taste_description = "generic food"
|
||||
taste_mult = 4
|
||||
var/nutriment_factor = 1 * REAGENTS_METABOLISM
|
||||
var/quality = 0 //affects mood, typically higher for mixed drinks with more complex recipes
|
||||
|
||||
/datum/reagent/consumable/on_mob_life(mob/living/carbon/M)
|
||||
current_cycle++
|
||||
M.nutrition += nutriment_factor
|
||||
holder.remove_reagent(src.id, metabolization_rate)
|
||||
|
||||
/datum/reagent/consumable/reaction_mob(mob/living/M, method=TOUCH, reac_volume)
|
||||
if(method == INGEST)
|
||||
if (quality && !M.has_trait(TRAIT_AGEUSIA))
|
||||
switch(quality)
|
||||
if (DRINK_NICE)
|
||||
SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "quality_drink", /datum/mood_event/quality_nice)
|
||||
if (DRINK_GOOD)
|
||||
SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "quality_drink", /datum/mood_event/quality_good)
|
||||
if (DRINK_VERYGOOD)
|
||||
SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "quality_drink", /datum/mood_event/quality_verygood)
|
||||
if (DRINK_FANTASTIC)
|
||||
SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "quality_drink", /datum/mood_event/quality_fantastic)
|
||||
return ..()
|
||||
|
||||
/datum/reagent/consumable/nutriment
|
||||
name = "Nutriment"
|
||||
id = "nutriment"
|
||||
@@ -491,8 +506,10 @@
|
||||
|
||||
/datum/reagent/consumable/flour/reaction_turf(turf/T, reac_volume)
|
||||
if(!isspaceturf(T))
|
||||
var/obj/effect/decal/cleanable/reagentdecal = new/obj/effect/decal/cleanable/flour(T)
|
||||
reagentdecal.reagents.add_reagent("flour", reac_volume)
|
||||
var/obj/effect/decal/cleanable/flour/reagentdecal = new/obj/effect/decal/cleanable/flour(T)
|
||||
reagentdecal = locate() in T //Might have merged with flour already there.
|
||||
if(reagentdecal)
|
||||
reagentdecal.reagents.add_reagent("flour", reac_volume)
|
||||
|
||||
/datum/reagent/consumable/cherryjelly
|
||||
name = "Cherry Jelly"
|
||||
@@ -575,7 +592,7 @@
|
||||
if(iscarbon(M) && (method in list(TOUCH, VAPOR, PATCH)))
|
||||
var/mob/living/carbon/C = M
|
||||
for(var/s in C.surgeries)
|
||||
var/datum/surgery/S = s
|
||||
var/datum/surgery/S = s
|
||||
S.success_multiplier = max(0.6, S.success_multiplier) // +60% success probability on each step, compared to bacchus' blessing's ~46%
|
||||
..()
|
||||
|
||||
|
||||
@@ -803,7 +803,7 @@
|
||||
M.updatehealth()
|
||||
if(M.revive())
|
||||
M.emote("gasp")
|
||||
add_logs(M, M, "revived", src)
|
||||
log_combat(M, M, "revived", src)
|
||||
..()
|
||||
|
||||
/datum/reagent/medicine/strange_reagent/on_mob_life(mob/living/carbon/M)
|
||||
@@ -1174,6 +1174,14 @@
|
||||
color = "#F5F5F5"
|
||||
self_consuming = TRUE
|
||||
|
||||
/datum/reagent/medicine/corazone/on_mob_add(mob/living/M)
|
||||
..()
|
||||
M.add_trait(TRAIT_STABLEHEART, id)
|
||||
|
||||
/datum/reagent/medicine/corazone/on_mob_delete(mob/living/M)
|
||||
M.remove_trait(TRAIT_STABLEHEART, id)
|
||||
..()
|
||||
|
||||
/datum/reagent/medicine/muscle_stimulant
|
||||
name = "Muscle Stimulant"
|
||||
id = "muscle_stimulant"
|
||||
|
||||
@@ -218,9 +218,9 @@
|
||||
M.stuttering = 1
|
||||
M.stuttering = min(M.stuttering+4, 10)
|
||||
M.Dizzy(5)
|
||||
if(iscultist(M) && prob(8))
|
||||
M.say(pick("Av'te Nar'sie","Pa'lid Mors","INO INO ORA ANA","SAT ANA!","Daim'niodeis Arc'iai Le'eones","R'ge Na'sie","Diabo us Vo'iscum","Eld' Mon Nobis"))
|
||||
if(prob(20))
|
||||
if(iscultist(M) && prob(20))
|
||||
M.say(pick("Av'te Nar'Sie","Pa'lid Mors","INO INO ORA ANA","SAT ANA!","Daim'niodeis Arc'iai Le'eones","R'ge Na'sie","Diabo us Vo'iscum","Eld' Mon Nobis"), forced = "holy water")
|
||||
if(prob(10))
|
||||
M.visible_message("<span class='danger'>[M] starts having a seizure!</span>", "<span class='userdanger'>You have a seizure!</span>")
|
||||
M.Unconscious(120)
|
||||
to_chat(M, "<span class='cultlarge'>[pick("Your blood is your bond - you are nothing without it", "Do not forget your place", \
|
||||
@@ -231,7 +231,7 @@
|
||||
clockwork_say(M, "...[text2ratvar(pick("Engine... your light grows dark...", "Where are you, master?", "He lies rusting in Error...", "Purge all untruths and... and... something..."))]")
|
||||
if("message")
|
||||
to_chat(M, "<span class='boldwarning'>[pick("Ratvar's illumination of your mind has begun to flicker", "He lies rusting in Reebe, derelict and forgotten. And there he shall stay", \
|
||||
"You can't save him. Nothing can save him now", "It seems that Nar-Sie will triumph after all")].</span>")
|
||||
"You can't save him. Nothing can save him now", "It seems that Nar'Sie will triumph after all")].</span>")
|
||||
if("emote")
|
||||
M.visible_message("<span class='warning'>[M] [pick("whimpers quietly", "shivers as though cold", "glances around in paranoia")].</span>")
|
||||
if(data >= 60) // 30 units, 135 seconds
|
||||
@@ -414,7 +414,7 @@
|
||||
else
|
||||
M.visible_message("<b>[M]</b> flexes [M.p_their()] arms.")
|
||||
if(prob(10))
|
||||
M.say(pick("Shit was SO cash.", "You are everything bad in the world.", "What sports do you play, other than 'jack off to naked drawn Japanese people?'", "Don’t be a stranger. Just hit me with your best shot.", "My name is John and I hate every single one of you."))
|
||||
M.say(pick("Shit was SO cash.", "You are everything bad in the world.", "What sports do you play, other than 'jack off to naked drawn Japanese people?'", "Don’t be a stranger. Just hit me with your best shot.", "My name is John and I hate every single one of you."), forced = "spraytan")
|
||||
..()
|
||||
return
|
||||
|
||||
@@ -457,6 +457,13 @@
|
||||
race = /datum/species/jelly/slime
|
||||
mutationtext = "<span class='danger'>The pain subsides. Your whole body feels like slime.</span>"
|
||||
|
||||
/datum/reagent/mutationtoxin/felinid
|
||||
name = "Felinid Mutation Toxin"
|
||||
id = "felinidmutationtoxin"
|
||||
color = "#5EFF3B" //RGB: 94, 255, 59
|
||||
race = /datum/species/human/felinid
|
||||
mutationtext = "<span class='danger'>The pain subsides. You feel... like a degenerate.</span>"
|
||||
|
||||
/datum/reagent/mutationtoxin/lizard
|
||||
name = "Lizard Mutation Toxin"
|
||||
id = "lizardmutationtoxin"
|
||||
@@ -1230,17 +1237,16 @@
|
||||
|
||||
/datum/reagent/stimulum/on_mob_add(mob/living/L)
|
||||
..()
|
||||
L.add_trait(TRAIT_GOTTAGOFAST, id)
|
||||
L.add_trait(TRAIT_STUNIMMUNE, id)
|
||||
L.add_trait(TRAIT_SLEEPIMMUNE, id)
|
||||
|
||||
/datum/reagent/stimulum/on_mob_delete(mob/living/L)
|
||||
L.remove_trait(TRAIT_GOTTAGOFAST, id)
|
||||
L.remove_trait(TRAIT_STUNIMMUNE, id)
|
||||
L.remove_trait(TRAIT_SLEEPIMMUNE, id)
|
||||
..()
|
||||
|
||||
/datum/reagent/stimulum/on_mob_life(mob/living/carbon/M) // Has a speedup, and the anti-stun effects of nicotine.
|
||||
M.AdjustStun(-20, 0)
|
||||
M.AdjustKnockdown(-20, 0)
|
||||
M.AdjustUnconscious(-20, 0)
|
||||
M.adjustStaminaLoss(-0.5*REM, 0)
|
||||
/datum/reagent/stimulum/on_mob_life(mob/living/carbon/M)
|
||||
M.adjustStaminaLoss(-2*REM, 0)
|
||||
current_cycle++
|
||||
holder.remove_reagent(id, 0.99) //Gives time for the next tick of life().
|
||||
. = TRUE //Update status effects.
|
||||
@@ -1643,7 +1649,7 @@
|
||||
|
||||
/datum/reagent/royal_bee_jelly/on_mob_life(mob/living/carbon/M)
|
||||
if(prob(2))
|
||||
M.say(pick("Bzzz...","BZZ BZZ","Bzzzzzzzzzzz..."))
|
||||
M.say(pick("Bzzz...","BZZ BZZ","Bzzzzzzzzzzz..."), forced = "royal bee jelly")
|
||||
..()
|
||||
|
||||
//Misc reagents
|
||||
@@ -1665,7 +1671,7 @@
|
||||
/datum/reagent/romerol/reaction_mob(mob/living/carbon/human/H, method=TOUCH, reac_volume)
|
||||
// Silently add the zombie infection organ to be activated upon death
|
||||
if(!H.getorganslot(ORGAN_SLOT_ZOMBIE))
|
||||
var/obj/item/organ/zombie_infection/ZI = new()
|
||||
var/obj/item/organ/zombie_infection/nodamage/ZI = new()
|
||||
ZI.Insert(H)
|
||||
..()
|
||||
|
||||
@@ -1829,3 +1835,15 @@
|
||||
if(prob(30))
|
||||
to_chat(M, "You should sit down and take a rest...")
|
||||
..()
|
||||
|
||||
/datum/reagent/tranquility
|
||||
name = "Tranquility"
|
||||
id = "tranquility"
|
||||
description = "A highly mutative liquid of unknown origin."
|
||||
color = "#9A6750" //RGB: 154, 103, 80
|
||||
taste_description = "inner peace"
|
||||
can_synth = FALSE
|
||||
|
||||
/datum/reagent/tranquility/reaction_mob(mob/living/L, method=TOUCH, reac_volume, show_message = 1, touch_protection = 0)
|
||||
if(method==PATCH || method==INGEST || method==INJECT || (method == VAPOR && prob(min(reac_volume,100)*(1 - touch_protection))))
|
||||
L.ForceContractDisease(new /datum/disease/transformation/gondola(), FALSE, TRUE)
|
||||
|
||||
@@ -169,6 +169,28 @@
|
||||
..()
|
||||
. = 1
|
||||
|
||||
/datum/reagent/toxin/ghoulpowder
|
||||
name = "Ghoul Powder"
|
||||
id = "ghoulpowder"
|
||||
description = "A strong neurotoxin that slows metabolism to a death-like state, while keeping the patient fully active. Causes toxin buildup if used too long."
|
||||
reagent_state = SOLID
|
||||
color = "#664700" // rgb: 102, 71, 0
|
||||
toxpwr = 0.8
|
||||
taste_description = "death"
|
||||
|
||||
/datum/reagent/toxin/ghoulpowder/on_mob_add(mob/living/L)
|
||||
..()
|
||||
L.add_trait(TRAIT_FAKEDEATH, id)
|
||||
|
||||
/datum/reagent/toxin/ghoulpowder/on_mob_delete(mob/living/L)
|
||||
L.remove_trait(TRAIT_FAKEDEATH, id)
|
||||
..()
|
||||
|
||||
/datum/reagent/toxin/ghoulpowder/on_mob_life(mob/living/carbon/M)
|
||||
M.adjustOxyLoss(1*REM, 0)
|
||||
..()
|
||||
. = 1
|
||||
|
||||
/datum/reagent/toxin/mindbreaker
|
||||
name = "Mindbreaker Toxin"
|
||||
id = "mindbreaker"
|
||||
@@ -405,7 +427,7 @@
|
||||
/datum/reagent/toxin/formaldehyde
|
||||
name = "Formaldehyde"
|
||||
id = "formaldehyde"
|
||||
description = "Formaldehyde, on its own, is a fairly weak toxin. It contains trace amounts of Histamine, very rarely making it decay into Histamine.."
|
||||
description = "Formaldehyde, on its own, is a fairly weak toxin. It contains trace amounts of Histamine, very rarely making it decay into Histamine."
|
||||
reagent_state = LIQUID
|
||||
color = "#B4004B"
|
||||
metabolization_rate = 0.5 * REAGENTS_METABOLISM
|
||||
@@ -605,7 +627,7 @@
|
||||
|
||||
/datum/reagent/toxin/amanitin/on_mob_delete(mob/living/M)
|
||||
var/toxdamage = current_cycle*3*REM
|
||||
M.log_message("has taken [toxdamage] toxin damage from amanitin toxin", INDIVIDUAL_ATTACK_LOG)
|
||||
M.log_message("has taken [toxdamage] toxin damage from amanitin toxin", LOG_ATTACK)
|
||||
M.adjustToxLoss(toxdamage)
|
||||
..()
|
||||
|
||||
|
||||
@@ -584,7 +584,7 @@
|
||||
|
||||
/datum/chemical_reaction/plastic_polymers/on_reaction(datum/reagents/holder, created_volume)
|
||||
var/location = get_turf(holder.my_atom)
|
||||
for(var/i in 1 to 10)
|
||||
for(var/i in 1 to created_volume)
|
||||
new /obj/item/stack/sheet/plastic(location)
|
||||
|
||||
/datum/chemical_reaction/pax
|
||||
|
||||
@@ -116,6 +116,31 @@
|
||||
empulse(location, round(created_volume / 12), round(created_volume / 7), 1)
|
||||
holder.clear_reagents()
|
||||
|
||||
|
||||
/datum/chemical_reaction/beesplosion
|
||||
name = "Bee Explosion"
|
||||
id = "beesplosion"
|
||||
required_reagents = list("honey" = 1, "strange_reagent" = 1, "radium" = 1)
|
||||
|
||||
/datum/chemical_reaction/beesplosion/on_reaction(datum/reagents/holder, created_volume)
|
||||
var/location = holder.my_atom.drop_location()
|
||||
if(created_volume < 5)
|
||||
playsound(location,'sound/effects/sparks1.ogg', 100, TRUE)
|
||||
else
|
||||
playsound(location,'sound/creatures/bee.ogg', 100, TRUE)
|
||||
var/list/beeagents = list()
|
||||
for(var/X in holder.reagent_list)
|
||||
var/datum/reagent/R = X
|
||||
if(required_reagents[R.id])
|
||||
continue
|
||||
beeagents += R
|
||||
var/bee_amount = round(created_volume * 0.2)
|
||||
for(var/i in 1 to bee_amount)
|
||||
var/mob/living/simple_animal/hostile/poison/bees/short/new_bee = new(location)
|
||||
if(LAZYLEN(beeagents))
|
||||
new_bee.assign_reagent(pick(beeagents))
|
||||
|
||||
|
||||
/datum/chemical_reaction/stabilizing_agent
|
||||
name = "stabilizing_agent"
|
||||
id = "stabilizing_agent"
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
id = "m_spawn"
|
||||
required_reagents = list("plasma" = 1)
|
||||
required_container = /obj/item/slime_extract/grey
|
||||
required_other = 1
|
||||
required_other = TRUE
|
||||
|
||||
/datum/chemical_reaction/slime/slimespawn/on_reaction(datum/reagents/holder)
|
||||
var/mob/living/simple_animal/slime/S = new(get_turf(holder.my_atom), "grey")
|
||||
@@ -30,7 +30,7 @@
|
||||
id = "m_inaprov"
|
||||
results = list("epinephrine" = 3)
|
||||
required_reagents = list("water" = 5)
|
||||
required_other = 1
|
||||
required_other = TRUE
|
||||
required_container = /obj/item/slime_extract/grey
|
||||
|
||||
/datum/chemical_reaction/slime/slimemonkey
|
||||
@@ -38,7 +38,7 @@
|
||||
id = "m_monkey"
|
||||
required_reagents = list("blood" = 1)
|
||||
required_container = /obj/item/slime_extract/grey
|
||||
required_other = 1
|
||||
required_other = TRUE
|
||||
|
||||
/datum/chemical_reaction/slime/slimemonkey/on_reaction(datum/reagents/holder)
|
||||
for(var/i in 1 to 3)
|
||||
@@ -51,7 +51,7 @@
|
||||
id = "slimetoxin"
|
||||
results = list("slime_toxin" = 1)
|
||||
required_reagents = list("plasma" = 1)
|
||||
required_other = 1
|
||||
required_other = TRUE
|
||||
required_container = /obj/item/slime_extract/green
|
||||
|
||||
/datum/chemical_reaction/slime/slimehuman
|
||||
@@ -59,7 +59,7 @@
|
||||
id = "humanmuttoxin"
|
||||
results = list("stablemutationtoxin" = 1)
|
||||
required_reagents = list("blood" = 1)
|
||||
required_other = 1
|
||||
required_other = TRUE
|
||||
required_container = /obj/item/slime_extract/green
|
||||
|
||||
/datum/chemical_reaction/slime/slimelizard
|
||||
@@ -67,7 +67,7 @@
|
||||
id = "lizardmuttoxin"
|
||||
results = list("lizardmutationtoxin" = 1)
|
||||
required_reagents = list("radium" = 1)
|
||||
required_other = 1
|
||||
required_other = TRUE
|
||||
required_container = /obj/item/slime_extract/green
|
||||
|
||||
//Metal
|
||||
@@ -76,7 +76,7 @@
|
||||
id = "m_metal"
|
||||
required_reagents = list("plasma" = 1)
|
||||
required_container = /obj/item/slime_extract/metal
|
||||
required_other = 1
|
||||
required_other = TRUE
|
||||
|
||||
/datum/chemical_reaction/slime/slimemetal/on_reaction(datum/reagents/holder)
|
||||
var/turf/location = get_turf(holder.my_atom)
|
||||
@@ -89,7 +89,7 @@
|
||||
id = "m_glass"
|
||||
required_reagents = list("water" = 1)
|
||||
required_container = /obj/item/slime_extract/metal
|
||||
required_other = 1
|
||||
required_other = TRUE
|
||||
|
||||
/datum/chemical_reaction/slime/slimeglass/on_reaction(datum/reagents/holder)
|
||||
var/turf/location = get_turf(holder.my_atom)
|
||||
@@ -103,7 +103,7 @@
|
||||
id = "m_tele"
|
||||
required_reagents = list("plasma" = 1)
|
||||
required_container = /obj/item/slime_extract/gold
|
||||
required_other = 1
|
||||
required_other = TRUE
|
||||
deletes_extract = FALSE //we do delete, but we don't do so instantly
|
||||
|
||||
/datum/chemical_reaction/slime/slimemobspawn/on_reaction(datum/reagents/holder)
|
||||
@@ -142,7 +142,7 @@
|
||||
id = "m_tele2"
|
||||
required_reagents = list("plasma" = 1)
|
||||
required_container = /obj/item/slime_extract/silver
|
||||
required_other = 1
|
||||
required_other = TRUE
|
||||
|
||||
/datum/chemical_reaction/slime/slimebork/on_reaction(datum/reagents/holder)
|
||||
//BORK BORK BORK
|
||||
@@ -184,14 +184,14 @@
|
||||
results = list("frostoil" = 10)
|
||||
required_reagents = list("plasma" = 1)
|
||||
required_container = /obj/item/slime_extract/blue
|
||||
required_other = 1
|
||||
required_other = TRUE
|
||||
|
||||
/datum/chemical_reaction/slime/slimestabilizer
|
||||
name = "Slime Stabilizer"
|
||||
id = "m_slimestabilizer"
|
||||
required_reagents = list("blood" = 1)
|
||||
required_container = /obj/item/slime_extract/blue
|
||||
required_other = 1
|
||||
required_other = TRUE
|
||||
|
||||
/datum/chemical_reaction/slime/slimestabilizer/on_reaction(datum/reagents/holder)
|
||||
new /obj/item/slimepotion/slime/stabilizer(get_turf(holder.my_atom))
|
||||
@@ -203,7 +203,7 @@
|
||||
results = list("fluorosurfactant" = 20, "water" = 20)
|
||||
required_reagents = list("water" = 5)
|
||||
required_container = /obj/item/slime_extract/blue
|
||||
required_other = 1
|
||||
required_other = TRUE
|
||||
|
||||
//Dark Blue
|
||||
/datum/chemical_reaction/slime/slimefreeze
|
||||
@@ -211,7 +211,7 @@
|
||||
id = "m_freeze"
|
||||
required_reagents = list("plasma" = 1)
|
||||
required_container = /obj/item/slime_extract/darkblue
|
||||
required_other = 1
|
||||
required_other = TRUE
|
||||
deletes_extract = FALSE
|
||||
|
||||
/datum/chemical_reaction/slime/slimefreeze/on_reaction(datum/reagents/holder)
|
||||
@@ -234,7 +234,7 @@
|
||||
id = "m_fireproof"
|
||||
required_reagents = list("water" = 1)
|
||||
required_container = /obj/item/slime_extract/darkblue
|
||||
required_other = 1
|
||||
required_other = TRUE
|
||||
|
||||
/datum/chemical_reaction/slime/slimefireproof/on_reaction(datum/reagents/holder)
|
||||
new /obj/item/slimepotion/fireproof(get_turf(holder.my_atom))
|
||||
@@ -247,14 +247,14 @@
|
||||
results = list("capsaicin" = 10)
|
||||
required_reagents = list("blood" = 1)
|
||||
required_container = /obj/item/slime_extract/orange
|
||||
required_other = 1
|
||||
required_other = TRUE
|
||||
|
||||
/datum/chemical_reaction/slime/slimefire
|
||||
name = "Slime fire"
|
||||
id = "m_fire"
|
||||
required_reagents = list("plasma" = 1)
|
||||
required_container = /obj/item/slime_extract/orange
|
||||
required_other = 1
|
||||
required_other = TRUE
|
||||
deletes_extract = FALSE
|
||||
|
||||
/datum/chemical_reaction/slime/slimefire/on_reaction(datum/reagents/holder)
|
||||
@@ -279,7 +279,7 @@
|
||||
results = list("phosphorus" = 10, "potassium" = 10, "sugar" = 10)
|
||||
required_reagents = list("water" = 5)
|
||||
required_container = /obj/item/slime_extract/orange
|
||||
required_other = 1
|
||||
required_other = TRUE
|
||||
|
||||
//Yellow
|
||||
/datum/chemical_reaction/slime/slimeoverload
|
||||
@@ -287,7 +287,7 @@
|
||||
id = "m_emp"
|
||||
required_reagents = list("blood" = 1)
|
||||
required_container = /obj/item/slime_extract/yellow
|
||||
required_other = 1
|
||||
required_other = TRUE
|
||||
|
||||
/datum/chemical_reaction/slime/slimeoverload/on_reaction(datum/reagents/holder, created_volume)
|
||||
empulse(get_turf(holder.my_atom), 3, 7)
|
||||
@@ -298,7 +298,7 @@
|
||||
id = "m_cell"
|
||||
required_reagents = list("plasma" = 1)
|
||||
required_container = /obj/item/slime_extract/yellow
|
||||
required_other = 1
|
||||
required_other = TRUE
|
||||
|
||||
/datum/chemical_reaction/slime/slimecell/on_reaction(datum/reagents/holder, created_volume)
|
||||
new /obj/item/stock_parts/cell/high/slime(get_turf(holder.my_atom))
|
||||
@@ -309,7 +309,7 @@
|
||||
id = "m_glow"
|
||||
required_reagents = list("water" = 1)
|
||||
required_container = /obj/item/slime_extract/yellow
|
||||
required_other = 1
|
||||
required_other = TRUE
|
||||
|
||||
/datum/chemical_reaction/slime/slimeglow/on_reaction(datum/reagents/holder)
|
||||
var/turf/T = get_turf(holder.my_atom)
|
||||
@@ -323,7 +323,7 @@
|
||||
id = "m_steroid"
|
||||
required_reagents = list("plasma" = 1)
|
||||
required_container = /obj/item/slime_extract/purple
|
||||
required_other = 1
|
||||
required_other = TRUE
|
||||
|
||||
/datum/chemical_reaction/slime/slimepsteroid/on_reaction(datum/reagents/holder)
|
||||
new /obj/item/slimepotion/slime/steroid(get_turf(holder.my_atom))
|
||||
@@ -335,7 +335,7 @@
|
||||
results = list("regen_jelly" = 5)
|
||||
required_reagents = list("blood" = 1)
|
||||
required_container = /obj/item/slime_extract/purple
|
||||
required_other = 1
|
||||
required_other = TRUE
|
||||
|
||||
//Dark Purple
|
||||
/datum/chemical_reaction/slime/slimeplasma
|
||||
@@ -343,7 +343,7 @@
|
||||
id = "m_plasma"
|
||||
required_reagents = list("plasma" = 1)
|
||||
required_container = /obj/item/slime_extract/darkpurple
|
||||
required_other = 1
|
||||
required_other = TRUE
|
||||
|
||||
/datum/chemical_reaction/slime/slimeplasma/on_reaction(datum/reagents/holder)
|
||||
new /obj/item/stack/sheet/mineral/plasma(get_turf(holder.my_atom), 3)
|
||||
@@ -355,7 +355,7 @@
|
||||
id = "m_slimemutator"
|
||||
required_reagents = list("plasma" = 1)
|
||||
required_container = /obj/item/slime_extract/red
|
||||
required_other = 1
|
||||
required_other = TRUE
|
||||
|
||||
/datum/chemical_reaction/slime/slimemutator/on_reaction(datum/reagents/holder)
|
||||
new /obj/item/slimepotion/slime/mutator(get_turf(holder.my_atom))
|
||||
@@ -366,7 +366,7 @@
|
||||
id = "m_bloodlust"
|
||||
required_reagents = list("blood" = 1)
|
||||
required_container = /obj/item/slime_extract/red
|
||||
required_other = 1
|
||||
required_other = TRUE
|
||||
|
||||
/datum/chemical_reaction/slime/slimebloodlust/on_reaction(datum/reagents/holder)
|
||||
for(var/mob/living/simple_animal/slime/slime in viewers(get_turf(holder.my_atom), null))
|
||||
@@ -379,7 +379,7 @@
|
||||
id = "m_speed"
|
||||
required_reagents = list("water" = 1)
|
||||
required_container = /obj/item/slime_extract/red
|
||||
required_other = 1
|
||||
required_other = TRUE
|
||||
|
||||
/datum/chemical_reaction/slime/slimespeed/on_reaction(datum/reagents/holder)
|
||||
new /obj/item/slimepotion/speed(get_turf(holder.my_atom))
|
||||
@@ -391,7 +391,7 @@
|
||||
id = "m_potion"
|
||||
required_reagents = list("plasma" = 1)
|
||||
required_container = /obj/item/slime_extract/pink
|
||||
required_other = 1
|
||||
required_other = TRUE
|
||||
|
||||
/datum/chemical_reaction/slime/docility/on_reaction(datum/reagents/holder)
|
||||
new /obj/item/slimepotion/slime/docility(get_turf(holder.my_atom))
|
||||
@@ -402,7 +402,7 @@
|
||||
id = "m_gender"
|
||||
required_reagents = list("blood" = 1)
|
||||
required_container = /obj/item/slime_extract/pink
|
||||
required_other = 1
|
||||
required_other = TRUE
|
||||
|
||||
/datum/chemical_reaction/slime/gender/on_reaction(datum/reagents/holder)
|
||||
new /obj/item/slimepotion/genderchange(get_turf(holder.my_atom))
|
||||
@@ -414,7 +414,7 @@
|
||||
id = "mutationtoxin2"
|
||||
results = list("amutationtoxin" = 1)
|
||||
required_reagents = list("plasma" = 1)
|
||||
required_other = 1
|
||||
required_other = TRUE
|
||||
required_container = /obj/item/slime_extract/black
|
||||
|
||||
//Oil
|
||||
@@ -423,7 +423,7 @@
|
||||
id = "m_explosion"
|
||||
required_reagents = list("plasma" = 1)
|
||||
required_container = /obj/item/slime_extract/oil
|
||||
required_other = 1
|
||||
required_other = TRUE
|
||||
deletes_extract = FALSE
|
||||
|
||||
/datum/chemical_reaction/slime/slimeexplosion/on_reaction(datum/reagents/holder)
|
||||
@@ -453,7 +453,7 @@
|
||||
results = list("cornoil" = 10)
|
||||
required_reagents = list("blood" = 1)
|
||||
required_container = /obj/item/slime_extract/oil
|
||||
required_other = 1
|
||||
required_other = TRUE
|
||||
|
||||
//Light Pink
|
||||
/datum/chemical_reaction/slime/slimepotion2
|
||||
@@ -461,19 +461,31 @@
|
||||
id = "m_potion2"
|
||||
required_container = /obj/item/slime_extract/lightpink
|
||||
required_reagents = list("plasma" = 1)
|
||||
required_other = 1
|
||||
required_other = TRUE
|
||||
|
||||
/datum/chemical_reaction/slime/slimepotion2/on_reaction(datum/reagents/holder)
|
||||
new /obj/item/slimepotion/slime/sentience(get_turf(holder.my_atom))
|
||||
..()
|
||||
|
||||
/datum/chemical_reaction/slime/renaming
|
||||
name = "Renaming Potion"
|
||||
id = "m_renaming_potion"
|
||||
required_container = /obj/item/slime_extract/lightpink
|
||||
required_reagents = list("water" = 1)
|
||||
required_other = TRUE
|
||||
|
||||
/datum/chemical_reaction/slime/renaming/on_reaction(datum/reagents/holder)
|
||||
new /obj/item/slimepotion/slime/renaming(holder.my_atom.drop_location())
|
||||
..()
|
||||
|
||||
|
||||
//Adamantine
|
||||
/datum/chemical_reaction/slime/adamantine
|
||||
name = "Adamantine"
|
||||
id = "adamantine"
|
||||
required_reagents = list("plasma" = 1)
|
||||
required_container = /obj/item/slime_extract/adamantine
|
||||
required_other = 1
|
||||
required_other = TRUE
|
||||
|
||||
/datum/chemical_reaction/slime/adamantine/on_reaction(datum/reagents/holder)
|
||||
new /obj/item/stack/sheet/mineral/adamantine(get_turf(holder.my_atom))
|
||||
@@ -485,7 +497,7 @@
|
||||
id = "m_floor2"
|
||||
required_reagents = list("blood" = 1)
|
||||
required_container = /obj/item/slime_extract/bluespace
|
||||
required_other = 1
|
||||
required_other = TRUE
|
||||
|
||||
/datum/chemical_reaction/slime/slimefloor2/on_reaction(datum/reagents/holder, created_volume)
|
||||
new /obj/item/stack/tile/bluespace(get_turf(holder.my_atom), 25)
|
||||
@@ -497,7 +509,7 @@
|
||||
id = "m_crystal"
|
||||
required_reagents = list("plasma" = 1)
|
||||
required_container = /obj/item/slime_extract/bluespace
|
||||
required_other = 1
|
||||
required_other = TRUE
|
||||
|
||||
/datum/chemical_reaction/slime/slimecrystal/on_reaction(datum/reagents/holder, created_volume)
|
||||
var/obj/item/stack/ore/bluespace_crystal/BC = new (get_turf(holder.my_atom))
|
||||
@@ -509,7 +521,7 @@
|
||||
id = "m_radio"
|
||||
required_reagents = list("water" = 1)
|
||||
required_container = /obj/item/slime_extract/bluespace
|
||||
required_other = 1
|
||||
required_other = TRUE
|
||||
|
||||
/datum/chemical_reaction/slime/slimeradio/on_reaction(datum/reagents/holder, created_volume)
|
||||
new /obj/item/slimepotion/slime/slimeradio(get_turf(holder.my_atom))
|
||||
@@ -521,7 +533,7 @@
|
||||
id = "m_steroid2"
|
||||
required_reagents = list("plasma" = 1)
|
||||
required_container = /obj/item/slime_extract/cerulean
|
||||
required_other = 1
|
||||
required_other = TRUE
|
||||
|
||||
/datum/chemical_reaction/slime/slimepsteroid2/on_reaction(datum/reagents/holder)
|
||||
new /obj/item/slimepotion/enhancer(get_turf(holder.my_atom))
|
||||
@@ -532,7 +544,7 @@
|
||||
id = "s_territory"
|
||||
required_reagents = list("blood" = 1)
|
||||
required_container = /obj/item/slime_extract/cerulean
|
||||
required_other = 1
|
||||
required_other = TRUE
|
||||
|
||||
/datum/chemical_reaction/slime/slime_territory/on_reaction(datum/reagents/holder)
|
||||
new /obj/item/areaeditor/blueprints/slime(get_turf(holder.my_atom))
|
||||
@@ -544,7 +556,7 @@
|
||||
id = "m_stop"
|
||||
required_reagents = list("plasma" = 1)
|
||||
required_container = /obj/item/slime_extract/sepia
|
||||
required_other = 1
|
||||
required_other = TRUE
|
||||
|
||||
/datum/chemical_reaction/slime/slimestop/on_reaction(datum/reagents/holder)
|
||||
var/turf/T = get_turf(holder.my_atom)
|
||||
@@ -557,7 +569,7 @@
|
||||
id = "m_camera"
|
||||
required_reagents = list("water" = 1)
|
||||
required_container = /obj/item/slime_extract/sepia
|
||||
required_other = 1
|
||||
required_other = TRUE
|
||||
|
||||
/datum/chemical_reaction/slime/slimecamera/on_reaction(datum/reagents/holder)
|
||||
new /obj/item/camera(get_turf(holder.my_atom))
|
||||
@@ -569,7 +581,7 @@
|
||||
id = "m_floor"
|
||||
required_reagents = list("blood" = 1)
|
||||
required_container = /obj/item/slime_extract/sepia
|
||||
required_other = 1
|
||||
required_other = TRUE
|
||||
|
||||
/datum/chemical_reaction/slime/slimefloor/on_reaction(datum/reagents/holder)
|
||||
new /obj/item/stack/tile/sepia(get_turf(holder.my_atom), 25)
|
||||
@@ -581,7 +593,7 @@
|
||||
id = "s_paint"
|
||||
required_reagents = list("plasma" = 1)
|
||||
required_container = /obj/item/slime_extract/pyrite
|
||||
required_other = 1
|
||||
required_other = TRUE
|
||||
|
||||
/datum/chemical_reaction/slime/slimepaint/on_reaction(datum/reagents/holder)
|
||||
var/chosen = pick(subtypesof(/obj/item/paint))
|
||||
@@ -593,7 +605,7 @@
|
||||
id = "s_crayon"
|
||||
required_reagents = list("blood" = 1)
|
||||
required_container = /obj/item/slime_extract/pyrite
|
||||
required_other = 1
|
||||
required_other = TRUE
|
||||
|
||||
/datum/chemical_reaction/slime/slimecrayon/on_reaction(datum/reagents/holder)
|
||||
var/chosen = pick(difflist(subtypesof(/obj/item/toy/crayon),typesof(/obj/item/toy/crayon/spraycan)))
|
||||
@@ -605,7 +617,7 @@
|
||||
name = "Random Core"
|
||||
id = "slimerng"
|
||||
required_reagents = list("plasma" = 1)
|
||||
required_other = 1
|
||||
required_other = TRUE
|
||||
required_container = /obj/item/slime_extract/rainbow
|
||||
|
||||
/datum/chemical_reaction/slime/slimeRNG/on_reaction(datum/reagents/holder, created_volume)
|
||||
@@ -625,7 +637,7 @@
|
||||
name = "Clusterblorble"
|
||||
id = "slimebomb"
|
||||
required_reagents = list("slimejelly" = 1)
|
||||
required_other = 1
|
||||
required_other = TRUE
|
||||
required_container = /obj/item/slime_extract/rainbow
|
||||
|
||||
/datum/chemical_reaction/slime/slimebomb/on_reaction(datum/reagents/holder, created_volume)
|
||||
@@ -641,7 +653,7 @@
|
||||
name = "Transfer Potion"
|
||||
id = "slimetransfer"
|
||||
required_reagents = list("blood" = 1)
|
||||
required_other = 1
|
||||
required_other = TRUE
|
||||
required_container = /obj/item/slime_extract/rainbow
|
||||
|
||||
/datum/chemical_reaction/slime/slime_transfer/on_reaction(datum/reagents/holder)
|
||||
@@ -652,7 +664,7 @@
|
||||
name = "Flight Potion"
|
||||
id = "flightpotion"
|
||||
required_reagents = list("holywater" = 5, "uranium" = 5)
|
||||
required_other = 1
|
||||
required_other = TRUE
|
||||
required_container = /obj/item/slime_extract/rainbow
|
||||
|
||||
/datum/chemical_reaction/slime/flight_potion/on_reaction(datum/reagents/holder)
|
||||
|
||||
@@ -74,6 +74,12 @@
|
||||
id = "zombiepowder"
|
||||
results = list("zombiepowder" = 2)
|
||||
required_reagents = list("carpotoxin" = 5, "morphine" = 5, "copper" = 5)
|
||||
|
||||
/datum/chemical_reaction/ghoulpowder
|
||||
name = "Ghoul Powder"
|
||||
id = "ghoulpowder"
|
||||
results = list("ghoulpowder" = 2)
|
||||
required_reagents = list("zombiepowder" = 1, "epinephrine" = 1)
|
||||
|
||||
/datum/chemical_reaction/mindbreaker
|
||||
name = "Mindbreaker Toxin"
|
||||
|
||||
@@ -45,9 +45,6 @@
|
||||
if(user.a_intent == INTENT_HARM)
|
||||
return ..()
|
||||
|
||||
/obj/item/reagent_containers/afterattack(obj/target, mob/user , flag)
|
||||
return
|
||||
|
||||
/obj/item/reagent_containers/proc/canconsume(mob/eater, mob/user)
|
||||
if(!iscarbon(eater))
|
||||
return 0
|
||||
@@ -101,7 +98,7 @@
|
||||
R += num2text(A.volume) + "),"
|
||||
|
||||
if(thrownby)
|
||||
add_logs(thrownby, M, "splashed", R)
|
||||
log_combat(thrownby, M, "splashed", R)
|
||||
reagents.reaction(target, TOUCH)
|
||||
|
||||
else if(bartender_check(target) && thrown)
|
||||
@@ -110,7 +107,7 @@
|
||||
|
||||
else
|
||||
if(isturf(target) && reagents.reagent_list.len && thrownby)
|
||||
add_logs(thrownby, target, "splashed (thrown) [english_list(reagents.reagent_list)]", "in [AREACOORD(target)]")
|
||||
log_combat(thrownby, target, "splashed (thrown) [english_list(reagents.reagent_list)]", "in [AREACOORD(target)]")
|
||||
log_game("[key_name(thrownby)] splashed (thrown) [english_list(reagents.reagent_list)] on [target] in [AREACOORD(target)].")
|
||||
message_admins("[ADMIN_LOOKUPFLW(thrownby)] splashed (thrown) [english_list(reagents.reagent_list)] on [target] in [ADMIN_VERBOSEJMP(target)].")
|
||||
visible_message("<span class='notice'>[src] spills its contents all over [target].</span>")
|
||||
|
||||
@@ -111,7 +111,7 @@ Borg Hypospray
|
||||
var/list/injected = list()
|
||||
for(var/datum/reagent/RG in R.reagent_list)
|
||||
injected += RG.name
|
||||
add_logs(user, M, "injected", src, "(CHEMICALS: [english_list(injected)])")
|
||||
log_combat(user, M, "injected", src, "(CHEMICALS: [english_list(injected)])")
|
||||
|
||||
/obj/item/reagent_containers/borghypo/attack_self(mob/user)
|
||||
var/chosen_reagent = modes[input(user, "What reagent do you want to dispense?") as null|anything in reagent_ids]
|
||||
@@ -197,6 +197,7 @@ Borg Shaker
|
||||
RG.add_reagent(reagent_ids[valueofi], 5)
|
||||
|
||||
/obj/item/reagent_containers/borghypo/borgshaker/afterattack(obj/target, mob/user, proximity)
|
||||
. = ..()
|
||||
if(!proximity)
|
||||
return
|
||||
|
||||
@@ -251,6 +252,6 @@ Borg Shaker
|
||||
|
||||
/obj/item/reagent_containers/borghypo/epi
|
||||
name = "epinephrine injector"
|
||||
desc = "An advanced chemical synthesizer and injection system, designed to stabilize patients.."
|
||||
desc = "An advanced chemical synthesizer and injection system, designed to stabilize patients."
|
||||
reagent_ids = list("epinephrine")
|
||||
accepts_reagent_upgrades = FALSE
|
||||
|
||||
@@ -302,3 +302,105 @@
|
||||
name = "BVAK bottle"
|
||||
desc = "A small bottle containing Bio Virus Antidote Kit."
|
||||
list_reagents = list("atropine" = 5, "epinephrine" = 5, "salbutamol" = 10, "spaceacillin" = 10)
|
||||
|
||||
//Oldstation.dmm chemical storage bottles
|
||||
|
||||
/obj/item/reagent_containers/glass/bottle/hydrogen
|
||||
name = "hydrogen bottle"
|
||||
list_reagents = list("hydrogen" = 30)
|
||||
|
||||
/obj/item/reagent_containers/glass/bottle/lithium
|
||||
name = "lithium bottle"
|
||||
list_reagents = list("lithium" = 30)
|
||||
|
||||
/obj/item/reagent_containers/glass/bottle/carbon
|
||||
name = "carbon bottle"
|
||||
list_reagents = list("carbon" = 30)
|
||||
|
||||
/obj/item/reagent_containers/glass/bottle/nitrogen
|
||||
name = "nitrogen bottle"
|
||||
list_reagents = list("nitrogen" = 30)
|
||||
|
||||
/obj/item/reagent_containers/glass/bottle/oxygen
|
||||
name = "oxygen bottle"
|
||||
list_reagents = list("oxygen" = 30)
|
||||
|
||||
/obj/item/reagent_containers/glass/bottle/fluorine
|
||||
name = "fluorine bottle"
|
||||
list_reagents = list("fluorine" = 30)
|
||||
|
||||
/obj/item/reagent_containers/glass/bottle/sodium
|
||||
name = "sodium bottle"
|
||||
list_reagents = list("sodium" = 30)
|
||||
|
||||
/obj/item/reagent_containers/glass/bottle/aluminium
|
||||
name = "aluminium bottle"
|
||||
list_reagents = list("aluminium" = 30)
|
||||
|
||||
/obj/item/reagent_containers/glass/bottle/silicon
|
||||
name = "silicon bottle"
|
||||
list_reagents = list("silicon" = 30)
|
||||
|
||||
/obj/item/reagent_containers/glass/bottle/phosphorus
|
||||
name = "phosphorus bottle"
|
||||
list_reagents = list("phosphorus" = 30)
|
||||
|
||||
/obj/item/reagent_containers/glass/bottle/sulfur
|
||||
name = "sulfur bottle"
|
||||
list_reagents = list("sulfur" = 30)
|
||||
|
||||
/obj/item/reagent_containers/glass/bottle/chlorine
|
||||
name = "chlorine bottle"
|
||||
list_reagents = list("chlorine" = 30)
|
||||
|
||||
/obj/item/reagent_containers/glass/bottle/potassium
|
||||
name = "potassium bottle"
|
||||
list_reagents = list("potassium" = 30)
|
||||
|
||||
/obj/item/reagent_containers/glass/bottle/iron
|
||||
name = "iron bottle"
|
||||
list_reagents = list("iron" = 30)
|
||||
|
||||
/obj/item/reagent_containers/glass/bottle/copper
|
||||
name = "copper bottle"
|
||||
list_reagents = list("copper" = 30)
|
||||
|
||||
/obj/item/reagent_containers/glass/bottle/mercury
|
||||
name = "mercury bottle"
|
||||
list_reagents = list("mercury" = 30)
|
||||
|
||||
/obj/item/reagent_containers/glass/bottle/radium
|
||||
name = "radium bottle"
|
||||
list_reagents = list("radium" = 30)
|
||||
|
||||
/obj/item/reagent_containers/glass/bottle/water
|
||||
name = "water bottle"
|
||||
list_reagents = list("water" = 30)
|
||||
|
||||
/obj/item/reagent_containers/glass/bottle/ethanol
|
||||
name = "ethanol bottle"
|
||||
list_reagents = list("ethanol" = 30)
|
||||
|
||||
/obj/item/reagent_containers/glass/bottle/sugar
|
||||
name = "sugar bottle"
|
||||
list_reagents = list("sugar" = 30)
|
||||
|
||||
/obj/item/reagent_containers/glass/bottle/sacid
|
||||
name = "sulphuric acid bottle"
|
||||
list_reagents = list("sacid" = 30)
|
||||
|
||||
/obj/item/reagent_containers/glass/bottle/welding_fuel
|
||||
name = "welding fuel bottle"
|
||||
list_reagents = list("welding_fuel" = 30)
|
||||
|
||||
/obj/item/reagent_containers/glass/bottle/silver
|
||||
name = "silver bottle"
|
||||
list_reagents = list("silver" = 30)
|
||||
|
||||
/obj/item/reagent_containers/glass/bottle/iodine
|
||||
name = "iodine bottle"
|
||||
list_reagents = list("iodine" = 30)
|
||||
|
||||
/obj/item/reagent_containers/glass/bottle/bromine
|
||||
name = "bromine bottle"
|
||||
list_reagents = list("bromine" = 30)
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
container_type = TRANSPARENT
|
||||
|
||||
/obj/item/reagent_containers/dropper/afterattack(obj/target, mob/user , proximity)
|
||||
. = ..()
|
||||
if(!proximity)
|
||||
return
|
||||
if(!target.reagents)
|
||||
@@ -68,7 +69,7 @@
|
||||
for(var/datum/reagent/A in src.reagents.reagent_list)
|
||||
R += A.id + " ("
|
||||
R += num2text(A.volume) + "),"
|
||||
add_logs(user, M, "squirted", R)
|
||||
log_combat(user, M, "squirted", R)
|
||||
|
||||
trans = src.reagents.trans_to(target, amount_per_transfer_from_this)
|
||||
to_chat(user, "<span class='notice'>You transfer [trans] unit\s of the solution.</span>")
|
||||
|
||||
@@ -29,11 +29,10 @@
|
||||
R += A.id + " ("
|
||||
R += num2text(A.volume) + "),"
|
||||
if(isturf(target) && reagents.reagent_list.len && thrownby)
|
||||
add_logs(thrownby, target, "splashed (thrown) [english_list(reagents.reagent_list)]", "in [AREACOORD(target)]")
|
||||
log_game("[key_name(thrownby)] splashed (thrown) [english_list(reagents.reagent_list)] on [target] in [AREACOORD(target)].")
|
||||
log_combat(thrownby, target, "splashed (thrown) [english_list(reagents.reagent_list)]")
|
||||
message_admins("[ADMIN_LOOKUPFLW(thrownby)] splashed (thrown) [english_list(reagents.reagent_list)] on [target] at [ADMIN_VERBOSEJMP(target)].")
|
||||
reagents.reaction(M, TOUCH)
|
||||
add_logs(user, M, "splashed", R)
|
||||
log_combat(user, M, "splashed", R)
|
||||
reagents.clear_reagents()
|
||||
else
|
||||
if(M != user)
|
||||
@@ -44,7 +43,7 @@
|
||||
if(!reagents || !reagents.total_volume)
|
||||
return // The drink might be empty after the delay, such as by spam-feeding
|
||||
M.visible_message("<span class='danger'>[user] feeds something to [M].</span>", "<span class='userdanger'>[user] feeds something to you.</span>")
|
||||
add_logs(user, M, "fed", reagents.log_list())
|
||||
log_combat(user, M, "fed", reagents.log_list())
|
||||
else
|
||||
to_chat(user, "<span class='notice'>You swallow a gulp of [src].</span>")
|
||||
var/fraction = min(5/reagents.total_volume, 1)
|
||||
@@ -53,6 +52,7 @@
|
||||
playsound(M.loc,'sound/items/drink.ogg', rand(10,50), 1)
|
||||
|
||||
/obj/item/reagent_containers/glass/afterattack(obj/target, mob/user, proximity)
|
||||
. = ..()
|
||||
if((!proximity) || !check_allowed_items(target,target_self=1))
|
||||
return
|
||||
|
||||
@@ -172,7 +172,7 @@
|
||||
materials = list(MAT_GLASS=2500, MAT_PLASTIC=3000)
|
||||
volume = 120
|
||||
amount_per_transfer_from_this = 10
|
||||
possible_transfer_amounts = list(10,15,20,25,30,60,120)
|
||||
possible_transfer_amounts = list(5,10,15,20,25,30,60,120)
|
||||
|
||||
/obj/item/reagent_containers/glass/beaker/plastic/update_icon()
|
||||
icon_state = "beakerlarge" // hack to lets us reuse the large beaker reagent fill states
|
||||
@@ -186,7 +186,7 @@
|
||||
materials = list(MAT_GLASS=2500, MAT_PLASTIC=3000, MAT_GOLD=1000, MAT_TITANIUM=1000)
|
||||
volume = 180
|
||||
amount_per_transfer_from_this = 10
|
||||
possible_transfer_amounts = list(10,15,20,25,30,60,120,180)
|
||||
possible_transfer_amounts = list(5,10,15,20,25,30,60,120,180)
|
||||
|
||||
/obj/item/reagent_containers/glass/beaker/noreact
|
||||
name = "cryostasis beaker"
|
||||
@@ -251,7 +251,7 @@
|
||||
materials = list(MAT_METAL=200)
|
||||
w_class = WEIGHT_CLASS_NORMAL
|
||||
amount_per_transfer_from_this = 20
|
||||
possible_transfer_amounts = list(10,15,20,25,30,50,70)
|
||||
possible_transfer_amounts = list(5,10,15,20,25,30,50,70)
|
||||
volume = 70
|
||||
flags_inv = HIDEHAIR
|
||||
slot_flags = ITEM_SLOT_HEAD
|
||||
@@ -330,103 +330,3 @@
|
||||
|
||||
/obj/item/reagent_containers/glass/beaker/waterbottle/large/empty
|
||||
list_reagents = list()
|
||||
|
||||
/obj/item/reagent_containers/glass/beaker/large/hydrogen
|
||||
name = "hydrogen beaker"
|
||||
list_reagents = list("hydrogen" = 50)
|
||||
|
||||
/obj/item/reagent_containers/glass/beaker/large/lithium
|
||||
name = "lithium beaker"
|
||||
list_reagents = list("lithium" = 50)
|
||||
|
||||
/obj/item/reagent_containers/glass/beaker/large/carbon
|
||||
name = "carbon beaker"
|
||||
list_reagents = list("carbon" = 50)
|
||||
|
||||
/obj/item/reagent_containers/glass/beaker/large/nitrogen
|
||||
name = "nitrogen beaker"
|
||||
list_reagents = list("nitrogen" = 50)
|
||||
|
||||
/obj/item/reagent_containers/glass/beaker/large/oxygen
|
||||
name = "oxygen beaker"
|
||||
list_reagents = list("oxygen" = 50)
|
||||
|
||||
/obj/item/reagent_containers/glass/beaker/large/fluorine
|
||||
name = "fluorine beaker"
|
||||
list_reagents = list("fluorine" = 50)
|
||||
|
||||
/obj/item/reagent_containers/glass/beaker/large/sodium
|
||||
name = "sodium beaker"
|
||||
list_reagents = list("sodium" = 50)
|
||||
|
||||
/obj/item/reagent_containers/glass/beaker/large/aluminium
|
||||
name = "aluminium beaker"
|
||||
list_reagents = list("aluminium" = 50)
|
||||
|
||||
/obj/item/reagent_containers/glass/beaker/large/silicon
|
||||
name = "silicon beaker"
|
||||
list_reagents = list("silicon" = 50)
|
||||
|
||||
/obj/item/reagent_containers/glass/beaker/large/phosphorus
|
||||
name = "phosphorus beaker"
|
||||
list_reagents = list("phosphorus" = 50)
|
||||
|
||||
/obj/item/reagent_containers/glass/beaker/large/sulfur
|
||||
name = "sulfur beaker"
|
||||
list_reagents = list("sulfur" = 50)
|
||||
|
||||
/obj/item/reagent_containers/glass/beaker/large/chlorine
|
||||
name = "chlorine beaker"
|
||||
list_reagents = list("chlorine" = 50)
|
||||
|
||||
/obj/item/reagent_containers/glass/beaker/large/potassium
|
||||
name = "potassium beaker"
|
||||
list_reagents = list("potassium" = 50)
|
||||
|
||||
/obj/item/reagent_containers/glass/beaker/large/iron
|
||||
name = "iron beaker"
|
||||
list_reagents = list("iron" = 50)
|
||||
|
||||
/obj/item/reagent_containers/glass/beaker/large/copper
|
||||
name = "copper beaker"
|
||||
list_reagents = list("copper" = 50)
|
||||
|
||||
/obj/item/reagent_containers/glass/beaker/large/mercury
|
||||
name = "mercury beaker"
|
||||
list_reagents = list("mercury" = 50)
|
||||
|
||||
/obj/item/reagent_containers/glass/beaker/large/radium
|
||||
name = "radium beaker"
|
||||
list_reagents = list("radium" = 50)
|
||||
|
||||
/obj/item/reagent_containers/glass/beaker/large/water
|
||||
name = "water beaker"
|
||||
list_reagents = list("water" = 50)
|
||||
|
||||
/obj/item/reagent_containers/glass/beaker/large/ethanol
|
||||
name = "ethanol beaker"
|
||||
list_reagents = list("ethanol" = 50)
|
||||
|
||||
/obj/item/reagent_containers/glass/beaker/large/sugar
|
||||
name = "sugar beaker"
|
||||
list_reagents = list("sugar" = 50)
|
||||
|
||||
/obj/item/reagent_containers/glass/beaker/large/sacid
|
||||
name = "sulphuric acid beaker"
|
||||
list_reagents = list("sacid" = 50)
|
||||
|
||||
/obj/item/reagent_containers/glass/beaker/large/welding_fuel
|
||||
name = "welding fuel beaker"
|
||||
list_reagents = list("welding_fuel" = 50)
|
||||
|
||||
/obj/item/reagent_containers/glass/beaker/large/silver
|
||||
name = "silver beaker"
|
||||
list_reagents = list("silver" = 50)
|
||||
|
||||
/obj/item/reagent_containers/glass/beaker/large/iodine
|
||||
name = "iodine beaker"
|
||||
list_reagents = list("iodine" = 50)
|
||||
|
||||
/obj/item/reagent_containers/glass/beaker/large/bromine
|
||||
name = "bromine beaker"
|
||||
list_reagents = list("bromine" = 50)
|
||||
|
||||
@@ -30,7 +30,7 @@
|
||||
for(var/datum/reagent/R in reagents.reagent_list)
|
||||
injected += R.name
|
||||
var/contained = english_list(injected)
|
||||
add_logs(user, M, "attempted to inject", src, "([contained])")
|
||||
log_combat(user, M, "attempted to inject", src, "([contained])")
|
||||
|
||||
if(reagents.total_volume && (ignore_flags || M.can_inject(user, 1))) // Ignore flag should be checked first or there will be an error message.
|
||||
to_chat(M, "<span class='warning'>You feel a tiny prick!</span>")
|
||||
@@ -48,7 +48,7 @@
|
||||
to_chat(user, "<span class='notice'>[trans] unit\s injected. [reagents.total_volume] unit\s remaining in [src].</span>")
|
||||
|
||||
|
||||
add_logs(user, M, "injected", src, "([contained])")
|
||||
log_combat(user, M, "injected", src, "([contained])")
|
||||
|
||||
/obj/item/reagent_containers/hypospray/CMO
|
||||
list_reagents = list("omnizine" = 30)
|
||||
|
||||
@@ -46,7 +46,7 @@
|
||||
to_chat(M, "<span class='notice'>You [apply_method] yourself with [src].</span>")
|
||||
|
||||
else
|
||||
add_logs(user, M, "attempted to apply", src, reagents.log_list())
|
||||
log_combat(user, M, "attempted to apply", src, reagents.log_list())
|
||||
M.visible_message("<span class='danger'>[user] attempts to [apply_method] [src] on [M].</span>", \
|
||||
"<span class='userdanger'>[user] attempts to [apply_method] [src] on [M].</span>")
|
||||
if(!do_mob(user, M))
|
||||
@@ -60,7 +60,7 @@
|
||||
return
|
||||
|
||||
else
|
||||
add_logs(user, M, "applied", src, reagents.log_list())
|
||||
log_combat(user, M, "applied", src, reagents.log_list())
|
||||
playsound(src, 'sound/effects/spray2.ogg', 50, 1, -6)
|
||||
var/fraction = min(amount_per_transfer_from_this/reagents.total_volume, 1)
|
||||
reagents.reaction(M, apply_type, fraction)
|
||||
|
||||
@@ -9,9 +9,7 @@
|
||||
apply_type = PATCH
|
||||
apply_method = "apply"
|
||||
self_delay = 30 // three seconds
|
||||
|
||||
/obj/item/reagent_containers/pill/patch/afterattack(obj/target, mob/user , proximity)
|
||||
return // thanks inheritance again
|
||||
dissolvable = FALSE
|
||||
|
||||
/obj/item/reagent_containers/pill/patch/attack(mob/living/L, mob/user)
|
||||
if(ishuman(L))
|
||||
|
||||
@@ -13,6 +13,7 @@
|
||||
var/apply_method = "swallow"
|
||||
var/roundstart = 0
|
||||
var/self_delay = 0 //pills are instant, this is because patches inheret their aplication from pills
|
||||
var/dissolvable = TRUE
|
||||
|
||||
/obj/item/reagent_containers/pill/Initialize()
|
||||
. = ..()
|
||||
@@ -46,7 +47,7 @@
|
||||
"<span class='userdanger'>[user] forces [M] to [apply_method] [src].</span>")
|
||||
|
||||
|
||||
add_logs(user, M, "fed", reagents.log_list())
|
||||
log_combat(user, M, "fed", reagents.log_list())
|
||||
if(reagents.total_volume)
|
||||
reagents.reaction(M, apply_type)
|
||||
reagents.trans_to(M, reagents.total_volume)
|
||||
@@ -55,22 +56,24 @@
|
||||
|
||||
|
||||
/obj/item/reagent_containers/pill/afterattack(obj/target, mob/user , proximity)
|
||||
. = ..()
|
||||
if(!proximity)
|
||||
return
|
||||
if(target.is_refillable())
|
||||
if(target.is_drainable() && !target.reagents.total_volume)
|
||||
to_chat(user, "<span class='warning'>[target] is empty! There's nothing to dissolve [src] in.</span>")
|
||||
return
|
||||
if(!dissolvable || !target.is_refillable())
|
||||
return
|
||||
if(target.is_drainable() && !target.reagents.total_volume)
|
||||
to_chat(user, "<span class='warning'>[target] is empty! There's nothing to dissolve [src] in.</span>")
|
||||
return
|
||||
|
||||
if(target.reagents.holder_full())
|
||||
to_chat(user, "<span class='warning'>[target] is full.</span>")
|
||||
return
|
||||
if(target.reagents.holder_full())
|
||||
to_chat(user, "<span class='warning'>[target] is full.</span>")
|
||||
return
|
||||
|
||||
to_chat(user, "<span class='notice'>You dissolve [src] in [target].</span>")
|
||||
for(var/mob/O in viewers(2, user)) //viewers is necessary here because of the small radius
|
||||
to_chat(O, "<span class='warning'>[user] slips something into [target]!</span>")
|
||||
reagents.trans_to(target, reagents.total_volume)
|
||||
qdel(src)
|
||||
to_chat(user, "<span class='notice'>You dissolve [src] in [target].</span>")
|
||||
for(var/mob/O in viewers(2, user)) //viewers is necessary here because of the small radius
|
||||
to_chat(O, "<span class='warning'>[user] slips something into [target]!</span>")
|
||||
reagents.trans_to(target, reagents.total_volume)
|
||||
qdel(src)
|
||||
|
||||
/obj/item/reagent_containers/pill/tox
|
||||
name = "toxins pill"
|
||||
@@ -151,7 +154,7 @@
|
||||
icon_state = "pill18"
|
||||
list_reagents = list("insulin" = 50)
|
||||
roundstart = 1
|
||||
///////////////////////////////////////// this pill is used only in a legion mob drop
|
||||
///////////////////////////////////////// this pill is used only in a legion mob drop
|
||||
/obj/item/reagent_containers/pill/shadowtoxin
|
||||
name = "black pill"
|
||||
desc = "I wouldn't eat this if I were you."
|
||||
@@ -178,5 +181,18 @@
|
||||
name = "speedy pill"
|
||||
list_reagents = list("aranesp" = 10)
|
||||
|
||||
/obj/item/reagent_containers/pill/floorpill
|
||||
name = "floorpill"
|
||||
desc = "A strange pill found in the depths of maintenance"
|
||||
icon_state = "pill21"
|
||||
var/static/list/names = list("maintenance pill","floorpill","mystery pill","suspicious pill","strange pill")
|
||||
var/static/list/descs = list("Your feeling is telling you no, but...","Drugs are expensive, you can't afford not to eat any pills that you find."\
|
||||
, "Surely, there's no way this could go bad.")
|
||||
|
||||
/obj/item/reagent_containers/pill/floorpill/Initialize()
|
||||
list_reagents = list(get_random_reagent_id() = rand(10,50))
|
||||
. = ..()
|
||||
name = pick(names)
|
||||
if(prob(20))
|
||||
desc = pick(descs)
|
||||
|
||||
|
||||
@@ -24,6 +24,7 @@
|
||||
possible_transfer_amounts = list(5,10,15,20,25,30,50,100)
|
||||
|
||||
/obj/item/reagent_containers/spray/afterattack(atom/A, mob/user)
|
||||
. = ..()
|
||||
if(istype(A, /obj/structure/sink) || istype(A, /obj/structure/janitorialcart) || istype(A, /obj/machinery/hydroponics))
|
||||
return
|
||||
|
||||
@@ -195,7 +196,7 @@
|
||||
/obj/item/reagent_containers/spray/pepper/afterattack(atom/A as mob|obj, mob/user)
|
||||
if (A.loc == user)
|
||||
return
|
||||
..()
|
||||
. = ..()
|
||||
|
||||
//water flower
|
||||
/obj/item/reagent_containers/spray/waterflower
|
||||
@@ -273,7 +274,7 @@
|
||||
// Make it so the bioterror spray doesn't spray yourself when you click your inventory items
|
||||
if (A.loc == user)
|
||||
return
|
||||
..()
|
||||
. = ..()
|
||||
|
||||
/obj/item/reagent_containers/spray/chemsprayer/spray(atom/A)
|
||||
var/direction = get_dir(src, A)
|
||||
|
||||
@@ -48,6 +48,7 @@
|
||||
return
|
||||
|
||||
/obj/item/reagent_containers/syringe/afterattack(atom/target, mob/user , proximity)
|
||||
. = ..()
|
||||
if(busy)
|
||||
return
|
||||
if(!proximity)
|
||||
@@ -110,7 +111,7 @@
|
||||
if(SYRINGE_INJECT)
|
||||
// Always log attemped injections for admins
|
||||
var/contained = reagents.log_list()
|
||||
add_logs(user, L, "attemped to inject", src, addition="which had [contained]")
|
||||
log_combat(user, target, "attempted to inject", src, addition="which had [contained]")
|
||||
|
||||
if(!reagents.total_volume)
|
||||
to_chat(user, "<span class='notice'>[src] is empty.</span>")
|
||||
@@ -140,11 +141,9 @@
|
||||
"<span class='userdanger'>[user] injects [L] with the syringe!</span>")
|
||||
|
||||
if(L != user)
|
||||
add_logs(user, L, "injected", src, addition="which had [contained]")
|
||||
log_combat(user, L, "injected", src, addition="which had [contained]")
|
||||
else
|
||||
log_attack("<font color='red'>[key_name(user)] injected [key_name(L)] with [src.name], which had [contained] (INTENT: [uppertext(user.a_intent)])</font>")
|
||||
L.log_message("<font color='orange'>Injected themselves ([contained]) with [src.name].</font>", INDIVIDUAL_ATTACK_LOG)
|
||||
|
||||
L.log_message("injected themselves ([contained]) with [src.name]", LOG_ATTACK, color="orange")
|
||||
var/fraction = min(amount_per_transfer_from_this/reagents.total_volume, 1)
|
||||
reagents.reaction(L, INJECT, fraction)
|
||||
reagents.trans_to(target, amount_per_transfer_from_this)
|
||||
@@ -224,7 +223,7 @@
|
||||
list_reagents = list("chloralhydrate" = 50)
|
||||
|
||||
/obj/item/reagent_containers/syringe/lethal/execution
|
||||
list_reagents = list("amatoxin" = 15, "formaldehyde" = 15, "cyanide" = 10, "facid" = 10)
|
||||
list_reagents = list("plasma" = 15, "formaldehyde" = 15, "cyanide" = 10, "facid" = 10)
|
||||
|
||||
/obj/item/reagent_containers/syringe/mulligan
|
||||
name = "Mulligan"
|
||||
@@ -260,10 +259,3 @@
|
||||
desc = "A diamond-tipped syringe that pierces armor when launched at high velocity. It can hold up to 10 units."
|
||||
volume = 10
|
||||
proj_piercing = 1
|
||||
|
||||
/obj/item/reagent_containers/syringe/alien
|
||||
name = "Hive's Blessing"
|
||||
desc = "A syringe filled with a strange viscous liquid. It might be best to leave it alone."
|
||||
amount_per_transfer_from_this = 1
|
||||
volume = 1
|
||||
list_reagents = list("xenomicrobes" = 1)
|
||||
@@ -88,9 +88,7 @@
|
||||
var/boom_message = "[ADMIN_LOOKUPFLW(P.firer)] triggered a fueltank explosion via projectile."
|
||||
GLOB.bombers += boom_message
|
||||
message_admins(boom_message)
|
||||
var/log_message = "triggered a fueltank explosion via projectile."
|
||||
P.firer.log_message(log_message, INDIVIDUAL_ATTACK_LOG)
|
||||
log_attack("[key_name(P.firer)] [log_message]")
|
||||
P.firer.log_message("triggered a fueltank explosion via projectile.", LOG_ATTACK)
|
||||
boom()
|
||||
|
||||
/obj/structure/reagent_dispensers/fueltank/attackby(obj/item/I, mob/living/user, params)
|
||||
@@ -110,13 +108,12 @@
|
||||
else
|
||||
var/turf/T = get_turf(src)
|
||||
user.visible_message("<span class='warning'>[user] catastrophically fails at refilling [user.p_their()] [W.name]!</span>", "<span class='userdanger'>That was stupid of you.</span>")
|
||||
|
||||
var/message_admins = "[ADMIN_LOOKUPFLW(user)] triggered a fueltank explosion via welding tool at [ADMIN_VERBOSEJMP(T)]."
|
||||
GLOB.bombers += message_admins
|
||||
message_admins(message_admins)
|
||||
var/message_log = "triggered a fueltank explosion via welding tool at [AREACOORD(T)]."
|
||||
user.log_message(message_log, INDIVIDUAL_ATTACK_LOG)
|
||||
log_game("[key_name(user)] [message_log]")
|
||||
log_attack("[key_name(user)] [message_log]")
|
||||
|
||||
user.log_message("triggered a fueltank explosion via welding tool.", LOG_ATTACK)
|
||||
boom()
|
||||
return
|
||||
return ..()
|
||||
|
||||
Reference in New Issue
Block a user