mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-27 05:57:24 +01:00
clean up
This commit is contained in:
@@ -216,11 +216,6 @@
|
||||
if(istype(O,/obj/item/weapon/reagent_containers/food/condiment/enzyme))
|
||||
if(O.reagents.get_reagent_amount("enzyme") < 50)
|
||||
O.reagents.add_reagent("enzyme", 2 * coeff)
|
||||
//Medical
|
||||
if(istype(O,/obj/item/weapon/reagent_containers/glass/bottle/robot))
|
||||
var/obj/item/weapon/reagent_containers/glass/bottle/robot/B = O
|
||||
if(B.reagent && (B.reagents.get_reagent_amount(B.reagent) < B.volume))
|
||||
B.reagents.add_reagent(B.reagent, 2 * coeff)
|
||||
//Janitor
|
||||
if(istype(O, /obj/item/device/lightreplacer))
|
||||
var/obj/item/device/lightreplacer/LR = O
|
||||
|
||||
@@ -49,7 +49,7 @@ var/const/INGEST = 2
|
||||
chemical_reactions_list[id] += D
|
||||
break // Don't bother adding ourselves to other reagent ids, it is redundant.
|
||||
|
||||
/datum/reagents/proc/remove_any(var/amount=1)
|
||||
/datum/reagents/proc/remove_any(amount=1)
|
||||
var/total_transfered = 0
|
||||
var/current_list_element = 1
|
||||
|
||||
@@ -91,7 +91,7 @@ var/const/INGEST = 2
|
||||
|
||||
return the_id
|
||||
|
||||
/datum/reagents/proc/trans_to(var/target, var/amount=1, var/multiplier=1, var/preserve_data=1)//if preserve_data=0, the reagents data will be lost. Usefull if you use data for some strange stuff and don't want it to be transferred.
|
||||
/datum/reagents/proc/trans_to(target, amount=1, multiplier=1, preserve_data=1)//if preserve_data=0, the reagents data will be lost. Usefull if you use data for some strange stuff and don't want it to be transferred.
|
||||
if(!target)
|
||||
return
|
||||
if(src.total_volume <= 0)
|
||||
@@ -135,7 +135,7 @@ var/const/INGEST = 2
|
||||
src.handle_reactions()
|
||||
return amount
|
||||
|
||||
/datum/reagents/proc/copy_to(var/obj/target, var/amount=1, var/multiplier=1, var/preserve_data=1, var/safety = 0)
|
||||
/datum/reagents/proc/copy_to(obj/target, amount=1, multiplier=1, preserve_data=1, safety = 0)
|
||||
if(!target)
|
||||
return
|
||||
if(!target.reagents || src.total_volume<=0)
|
||||
@@ -156,7 +156,7 @@ var/const/INGEST = 2
|
||||
src.handle_reactions()
|
||||
return amount
|
||||
|
||||
/datum/reagents/proc/trans_id_to(var/obj/target, var/reagent, var/amount=1, var/preserve_data=1)//Not sure why this proc didn't exist before. It does now! /N
|
||||
/datum/reagents/proc/trans_id_to(obj/target, reagent, amount=1, preserve_data=1)//Not sure why this proc didn't exist before. It does now! /N
|
||||
if(!target)
|
||||
return
|
||||
if(!target.reagents || src.total_volume<=0 || !src.get_reagent_amount(reagent))
|
||||
@@ -214,12 +214,12 @@ var/const/INGEST = 2
|
||||
*/
|
||||
|
||||
|
||||
/datum/reagents/proc/conditional_update_move(var/atom/A, var/Running = 0)
|
||||
/datum/reagents/proc/conditional_update_move(atom/A, Running = 0)
|
||||
for(var/datum/reagent/R in reagent_list)
|
||||
R.on_move (A, Running)
|
||||
update_total()
|
||||
|
||||
/datum/reagents/proc/conditional_update(var/atom/A, )
|
||||
/datum/reagents/proc/conditional_update(atom/A, )
|
||||
for(var/datum/reagent/R in reagent_list)
|
||||
R.on_update (A)
|
||||
update_total()
|
||||
@@ -323,14 +323,14 @@ var/const/INGEST = 2
|
||||
update_total()
|
||||
return 0
|
||||
|
||||
/datum/reagents/proc/isolate_reagent(var/reagent)
|
||||
/datum/reagents/proc/isolate_reagent(reagent)
|
||||
for(var/A in reagent_list)
|
||||
var/datum/reagent/R = A
|
||||
if(R.id != reagent)
|
||||
del_reagent(R.id)
|
||||
update_total()
|
||||
|
||||
/datum/reagents/proc/del_reagent(var/reagent)
|
||||
/datum/reagents/proc/del_reagent(reagent)
|
||||
for(var/A in reagent_list)
|
||||
var/datum/reagent/R = A
|
||||
if(R.id == reagent)
|
||||
@@ -363,7 +363,7 @@ var/const/INGEST = 2
|
||||
del_reagent(R.id)
|
||||
return 0
|
||||
|
||||
/datum/reagents/proc/reaction_check(var/mob/M, var/datum/reagent/R)
|
||||
/datum/reagents/proc/reaction_check(mob/M, datum/reagent/R)
|
||||
var/can_process = 0
|
||||
if(!istype(M, /mob/living)) //Non-living mobs can't metabolize reagents, so don't bother trying (runtime safety check)
|
||||
return can_process
|
||||
@@ -436,7 +436,7 @@ var/const/INGEST = 2
|
||||
var/amt = list_reagents[r_id]
|
||||
add_reagent(r_id, amt, data)
|
||||
|
||||
/datum/reagents/proc/add_reagent(var/reagent, var/amount, var/list/data=null, var/reagtemp = 300)
|
||||
/datum/reagents/proc/add_reagent(reagent, amount, list/data=null, reagtemp = 300)
|
||||
if(!isnum(amount)) return 1
|
||||
update_total()
|
||||
if(total_volume + amount > maximum_volume) amount = (maximum_volume - total_volume) //Doesnt fit in. Make it disappear. Shouldnt happen. Will happen.
|
||||
@@ -476,7 +476,7 @@ var/const/INGEST = 2
|
||||
|
||||
return 1
|
||||
|
||||
/datum/reagents/proc/remove_reagent(var/reagent, var/amount, var/safety)//Added a safety check for the trans_id_to
|
||||
/datum/reagents/proc/remove_reagent(reagent, amount, safety)//Added a safety check for the trans_id_to
|
||||
|
||||
if(!isnum(amount)) return 1
|
||||
|
||||
@@ -492,7 +492,7 @@ var/const/INGEST = 2
|
||||
|
||||
return 1
|
||||
|
||||
/datum/reagents/proc/has_reagent(var/reagent, var/amount = -1)
|
||||
/datum/reagents/proc/has_reagent(reagent, amount = -1)
|
||||
|
||||
for(var/A in reagent_list)
|
||||
var/datum/reagent/R = A
|
||||
@@ -504,7 +504,7 @@ var/const/INGEST = 2
|
||||
|
||||
return 0
|
||||
|
||||
/datum/reagents/proc/get_reagent_amount(var/reagent)
|
||||
/datum/reagents/proc/get_reagent_amount(reagent)
|
||||
for(var/A in reagent_list)
|
||||
var/datum/reagent/R = A
|
||||
if(R.id == reagent)
|
||||
@@ -520,7 +520,7 @@ var/const/INGEST = 2
|
||||
|
||||
return res
|
||||
|
||||
/datum/reagents/proc/remove_all_type(var/reagent_type, var/amount, var/strict = 0, var/safety = 1) // Removes all reagent of X type. @strict set to 1 determines whether the childs of the type are included.
|
||||
/datum/reagents/proc/remove_all_type(reagent_type, amount, strict = 0, safety = 1) // Removes all reagent of X type. @strict set to 1 determines whether the childs of the type are included.
|
||||
if(!isnum(amount)) return 1
|
||||
|
||||
var/has_removed_reagent = 0
|
||||
@@ -542,7 +542,7 @@ var/const/INGEST = 2
|
||||
return has_removed_reagent
|
||||
|
||||
// Admin logging.
|
||||
/datum/reagents/proc/get_reagent_ids(var/and_amount=0)
|
||||
/datum/reagents/proc/get_reagent_ids(and_amount=0)
|
||||
var/list/stuff = list()
|
||||
for(var/datum/reagent/A in reagent_list)
|
||||
if(and_amount)
|
||||
@@ -552,19 +552,19 @@ var/const/INGEST = 2
|
||||
return english_list(stuff)
|
||||
|
||||
//two helper functions to preserve data across reactions (needed for xenoarch)
|
||||
/datum/reagents/proc/get_data(var/reagent_id)
|
||||
/datum/reagents/proc/get_data(reagent_id)
|
||||
for(var/datum/reagent/D in reagent_list)
|
||||
if(D.id == reagent_id)
|
||||
// to_chat(world, "proffering a data-carrying reagent ([reagent_id])")
|
||||
return D.data
|
||||
|
||||
/datum/reagents/proc/set_data(var/reagent_id, var/new_data)
|
||||
/datum/reagents/proc/set_data(reagent_id, new_data)
|
||||
for(var/datum/reagent/D in reagent_list)
|
||||
if(D.id == reagent_id)
|
||||
// to_chat(world, "reagent data set ([reagent_id])")
|
||||
D.data = new_data
|
||||
|
||||
/datum/reagents/proc/copy_data(var/datum/reagent/current_reagent)
|
||||
/datum/reagents/proc/copy_data(datum/reagent/current_reagent)
|
||||
if(!current_reagent || !current_reagent.data) return null
|
||||
if(!istype(current_reagent.data, /list)) return current_reagent.data
|
||||
|
||||
@@ -588,11 +588,11 @@ var/const/INGEST = 2
|
||||
|
||||
// Convenience proc to create a reagents holder for an atom
|
||||
// Max vol is maximum volume of holder
|
||||
atom/proc/create_reagents(var/max_vol)
|
||||
atom/proc/create_reagents(max_vol)
|
||||
reagents = new/datum/reagents(max_vol)
|
||||
reagents.my_atom = src
|
||||
|
||||
/datum/reagents/proc/get_reagent_from_id(var/id)
|
||||
/datum/reagents/proc/get_reagent_from_id(id)
|
||||
var/datum/reagent/result = null
|
||||
for(var/datum/reagent/R in reagent_list)
|
||||
if(R.id == id)
|
||||
|
||||
@@ -108,7 +108,7 @@
|
||||
* @return nothing
|
||||
*/
|
||||
|
||||
/obj/machinery/chem_dispenser/ui_interact(mob/user, ui_key = "main",var/datum/nanoui/ui = null, var/force_open = 1)
|
||||
/obj/machinery/chem_dispenser/ui_interact(mob/user, ui_key = "main", datum/nanoui/ui = null, force_open = 1)
|
||||
if(broken_requirements.len)
|
||||
to_chat(user, "<span class='warning'>[src] is broken. [broken_requirements[broken_requirements[1]]]</span>")
|
||||
return
|
||||
@@ -197,7 +197,7 @@
|
||||
add_fingerprint(usr)
|
||||
return 1 // update UIs attached to this object
|
||||
|
||||
/obj/machinery/chem_dispenser/attackby(var/obj/item/weapon/reagent_containers/B as obj, var/mob/user as mob, params)
|
||||
/obj/machinery/chem_dispenser/attackby(obj/item/weapon/reagent_containers/B, mob/user, params)
|
||||
if(isrobot(user))
|
||||
return
|
||||
|
||||
@@ -232,7 +232,7 @@
|
||||
overlays += icon_beaker
|
||||
return
|
||||
|
||||
/obj/machinery/chem_dispenser/attackby(var/obj/item/weapon/B as obj, var/mob/user as mob, params)
|
||||
/obj/machinery/chem_dispenser/attackby(obj/item/weapon/B, mob/user, params)
|
||||
..()
|
||||
if(istype(B, /obj/item/device/multitool))
|
||||
if(hackedcheck == 0)
|
||||
@@ -247,13 +247,13 @@
|
||||
hackedcheck = 0
|
||||
return
|
||||
|
||||
/obj/machinery/chem_dispenser/attack_ai(mob/user as mob)
|
||||
/obj/machinery/chem_dispenser/attack_ai(mob/user)
|
||||
return src.attack_hand(user)
|
||||
|
||||
/obj/machinery/chem_dispenser/attack_ghost(mob/user as mob)
|
||||
/obj/machinery/chem_dispenser/attack_ghost(mob/user)
|
||||
return src.attack_hand(user)
|
||||
|
||||
/obj/machinery/chem_dispenser/attack_hand(mob/user as mob)
|
||||
/obj/machinery/chem_dispenser/attack_hand(mob/user)
|
||||
if(stat & BROKEN)
|
||||
return
|
||||
|
||||
@@ -343,7 +343,7 @@
|
||||
for(i=1, i<=M.rating, i++)
|
||||
dispensable_reagents = sortList(dispensable_reagents | special_reagents[i])
|
||||
|
||||
/obj/machinery/chem_dispenser/constructable/attackby(var/obj/item/I, var/mob/user, params)
|
||||
/obj/machinery/chem_dispenser/constructable/attackby(obj/item/I, mob/user, params)
|
||||
if(istype(I, /obj/item/weapon/reagent_containers/glass))
|
||||
if(panel_open)
|
||||
to_chat(user, "<span class='notice'>Close the maintenance panel first.</span>")
|
||||
@@ -426,7 +426,7 @@
|
||||
spawn(rand(0, 15))
|
||||
stat |= NOPOWER
|
||||
|
||||
/obj/machinery/chem_master/attackby(var/obj/item/weapon/B as obj, var/mob/user as mob, params)
|
||||
/obj/machinery/chem_master/attackby(obj/item/weapon/B, mob/user, params)
|
||||
|
||||
if(istype(B, /obj/item/weapon/reagent_containers/glass) || istype(B, /obj/item/weapon/reagent_containers/food/drinks/drinkingglass))
|
||||
|
||||
@@ -692,31 +692,31 @@
|
||||
nanomanager.update_uis(src)
|
||||
return
|
||||
|
||||
/obj/machinery/chem_master/attack_ai(mob/user as mob)
|
||||
/obj/machinery/chem_master/attack_ai(mob/user)
|
||||
return src.attack_hand(user)
|
||||
|
||||
/obj/machinery/chem_master/attack_ghost(mob/user as mob)
|
||||
/obj/machinery/chem_master/attack_ghost(mob/user)
|
||||
return src.attack_hand(user)
|
||||
|
||||
/obj/machinery/chem_master/attack_hand(mob/user as mob)
|
||||
/obj/machinery/chem_master/attack_hand(mob/user)
|
||||
if(..())
|
||||
return 1
|
||||
ui_interact(user)
|
||||
return
|
||||
|
||||
/obj/machinery/chem_master/ui_interact(mob/user, ui_key="main", var/datum/nanoui/ui = null, var/force_open = 1)
|
||||
|
||||
/obj/machinery/chem_master/ui_interact(mob/user, ui_key="main", datum/nanoui/ui = null, force_open = 1)
|
||||
|
||||
var/datum/asset/chem_master/assets = get_asset_datum(/datum/asset/chem_master)
|
||||
assets.send(user)
|
||||
|
||||
|
||||
var/data = list()
|
||||
|
||||
|
||||
data["condi"] = condi
|
||||
data["loaded_pill_bottle"] = (loaded_pill_bottle ? 1 : 0)
|
||||
if(loaded_pill_bottle)
|
||||
data["loaded_pill_bottle_contents_len"] = loaded_pill_bottle.contents.len
|
||||
data["loaded_pill_bottle_storage_slots"] = loaded_pill_bottle.storage_slots
|
||||
|
||||
|
||||
data["beaker"] = (beaker ? 1 : 0)
|
||||
if(beaker)
|
||||
var/list/beaker_reagents_list = list()
|
||||
@@ -727,17 +727,17 @@
|
||||
data["buffer_reagents"] = buffer_reagents_list
|
||||
for(var/datum/reagent/R in reagents.reagent_list)
|
||||
buffer_reagents_list[++buffer_reagents_list.len] = list("name" = R.name, "volume" = R.volume, "id" = R.id, "description" = R.description)
|
||||
|
||||
|
||||
data["pillsprite"] = pillsprite
|
||||
data["mode"] = mode
|
||||
|
||||
|
||||
ui = nanomanager.try_update_ui(user, src, ui_key, ui, data, force_open)
|
||||
if(!ui)
|
||||
ui = new(user, src, ui_key, "chem_master.tmpl", src.name, 575, 400)
|
||||
ui.set_initial_data(data)
|
||||
ui.open()
|
||||
|
||||
/obj/machinery/chem_master/proc/isgoodnumber(var/num)
|
||||
/obj/machinery/chem_master/proc/isgoodnumber(num)
|
||||
if(isnum(num))
|
||||
if(num > 200)
|
||||
num = 200
|
||||
@@ -874,7 +874,7 @@
|
||||
icon_state = "juicer"+num2text(!isnull(beaker))
|
||||
return
|
||||
|
||||
/obj/machinery/reagentgrinder/attackby(var/obj/item/O as obj, var/mob/user as mob, params)
|
||||
/obj/machinery/reagentgrinder/attackby(obj/item/O, mob/user, params)
|
||||
|
||||
if(istype(O,/obj/item/weapon/reagent_containers/glass) || \
|
||||
istype(O,/obj/item/weapon/reagent_containers/food/drinks/drinkingglass) || \
|
||||
@@ -924,14 +924,14 @@
|
||||
src.updateUsrDialog()
|
||||
return 0
|
||||
|
||||
/obj/machinery/reagentgrinder/attack_ai(mob/user as mob)
|
||||
/obj/machinery/reagentgrinder/attack_ai(mob/user)
|
||||
return 0
|
||||
|
||||
/obj/machinery/reagentgrinder/attack_hand(mob/user as mob)
|
||||
/obj/machinery/reagentgrinder/attack_hand(mob/user)
|
||||
user.set_machine(src)
|
||||
interact(user)
|
||||
|
||||
/obj/machinery/reagentgrinder/interact(mob/user as mob) // The microwave Menu
|
||||
/obj/machinery/reagentgrinder/interact(mob/user) // The microwave Menu
|
||||
var/is_chamber_empty = 0
|
||||
var/is_beaker_ready = 0
|
||||
var/processing_chamber = ""
|
||||
@@ -1014,38 +1014,38 @@
|
||||
holdingitems -= O
|
||||
holdingitems = list()
|
||||
|
||||
/obj/machinery/reagentgrinder/proc/is_allowed(var/obj/item/weapon/reagent_containers/O)
|
||||
/obj/machinery/reagentgrinder/proc/is_allowed(obj/item/weapon/reagent_containers/O)
|
||||
for(var/i in blend_items)
|
||||
if(istype(O, i))
|
||||
return 1
|
||||
return 0
|
||||
|
||||
/obj/machinery/reagentgrinder/proc/get_allowed_by_id(var/obj/item/weapon/grown/O)
|
||||
/obj/machinery/reagentgrinder/proc/get_allowed_by_id(obj/item/weapon/grown/O)
|
||||
for(var/i in blend_items)
|
||||
if(istype(O, i))
|
||||
return blend_items[i]
|
||||
|
||||
/obj/machinery/reagentgrinder/proc/get_allowed_snack_by_id(var/obj/item/weapon/reagent_containers/food/snacks/O)
|
||||
/obj/machinery/reagentgrinder/proc/get_allowed_snack_by_id(obj/item/weapon/reagent_containers/food/snacks/O)
|
||||
for(var/i in blend_items)
|
||||
if(istype(O, i))
|
||||
return blend_items[i]
|
||||
|
||||
/obj/machinery/reagentgrinder/proc/get_allowed_juice_by_id(var/obj/item/weapon/reagent_containers/food/snacks/O)
|
||||
/obj/machinery/reagentgrinder/proc/get_allowed_juice_by_id(obj/item/weapon/reagent_containers/food/snacks/O)
|
||||
for(var/i in juice_items)
|
||||
if(istype(O, i))
|
||||
return juice_items[i]
|
||||
|
||||
/obj/machinery/reagentgrinder/proc/get_allowed_snack_by_tag(var/obj/item/weapon/reagent_containers/food/snacks/grown/O)
|
||||
/obj/machinery/reagentgrinder/proc/get_allowed_snack_by_tag(obj/item/weapon/reagent_containers/food/snacks/grown/O)
|
||||
for(var/i in blend_tags)
|
||||
if(O.seed.kitchen_tag == i)
|
||||
return blend_tags[i]
|
||||
|
||||
/obj/machinery/reagentgrinder/proc/get_allowed_juice_by_tag(var/obj/item/weapon/reagent_containers/food/snacks/grown/O)
|
||||
/obj/machinery/reagentgrinder/proc/get_allowed_juice_by_tag(obj/item/weapon/reagent_containers/food/snacks/grown/O)
|
||||
for(var/i in juice_tags)
|
||||
if(O.seed.kitchen_tag == i)
|
||||
return juice_tags[i]
|
||||
|
||||
/obj/machinery/reagentgrinder/proc/get_grownweapon_amount(var/obj/item/weapon/grown/O)
|
||||
/obj/machinery/reagentgrinder/proc/get_grownweapon_amount(obj/item/weapon/grown/O)
|
||||
if(!istype(O))
|
||||
return 5
|
||||
else if(O.potency == -1)
|
||||
@@ -1053,7 +1053,7 @@
|
||||
else
|
||||
return round(O.potency)
|
||||
|
||||
/obj/machinery/reagentgrinder/proc/get_juice_amount(var/obj/item/weapon/reagent_containers/food/snacks/grown/O)
|
||||
/obj/machinery/reagentgrinder/proc/get_juice_amount(obj/item/weapon/reagent_containers/food/snacks/grown/O)
|
||||
if(!istype(O))
|
||||
return 5
|
||||
else if(O.potency == -1)
|
||||
@@ -1061,7 +1061,7 @@
|
||||
else
|
||||
return round(5*sqrt(O.potency))
|
||||
|
||||
/obj/machinery/reagentgrinder/proc/remove_object(var/obj/item/O)
|
||||
/obj/machinery/reagentgrinder/proc/remove_object(obj/item/O)
|
||||
holdingitems -= O
|
||||
qdel(O)
|
||||
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
message = "The blob splashes you with burning oil"
|
||||
message_living = ", and you feel your skin char and melt"
|
||||
|
||||
/datum/reagent/blob/boiling_oil/reaction_mob(var/mob/living/M as mob, var/method=TOUCH, var/volume)
|
||||
/datum/reagent/blob/boiling_oil/reaction_mob(mob/living/M, method=TOUCH, volume)
|
||||
if(method == TOUCH)
|
||||
M.adjust_fire_stacks(round(volume/12))
|
||||
volume = ..()
|
||||
@@ -97,7 +97,7 @@
|
||||
color = "#61407E"
|
||||
message = "You feel a thrum as the blob strikes you, and everything flies at you"
|
||||
|
||||
/datum/reagent/blob/dark_matter/reaction_mob(var/mob/living/M as mob, var/method=TOUCH, var/volume)
|
||||
/datum/reagent/blob/dark_matter/reaction_mob(mob/living/M, method=TOUCH, volume)
|
||||
if(method == TOUCH)
|
||||
reagent_vortex(M, 0, volume)
|
||||
volume = ..()
|
||||
@@ -110,7 +110,7 @@
|
||||
color = "#808000"
|
||||
message = "The blob slams into you, and sends you flying"
|
||||
|
||||
/datum/reagent/blob/b_sorium/reaction_mob(var/mob/living/M as mob, var/method=TOUCH, var/volume)
|
||||
/datum/reagent/blob/b_sorium/reaction_mob(mob/living/M, method=TOUCH, volume)
|
||||
if(method == TOUCH)
|
||||
reagent_vortex(M, 1, volume)
|
||||
volume = ..()
|
||||
@@ -145,7 +145,7 @@
|
||||
if(!step_towards(X, pull))
|
||||
break
|
||||
|
||||
/datum/reagent/blob/proc/send_message(var/mob/living/M as mob)
|
||||
/datum/reagent/blob/proc/send_message(mob/living/M)
|
||||
var/totalmessage = message
|
||||
if(message_living && !issilicon(M))
|
||||
totalmessage += message_living
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
description = "Microscopic construction robots."
|
||||
color = "#535E66" // rgb: 83, 94, 102
|
||||
|
||||
/datum/reagent/nanomachines/on_mob_life(var/mob/living/carbon/M as mob)
|
||||
/datum/reagent/nanomachines/on_mob_life(mob/living/carbon/M)
|
||||
if(!M) M = holder.my_atom
|
||||
if(volume > 1.5)
|
||||
M.ForceContractDisease(new /datum/disease/transformation/robot(0))
|
||||
@@ -32,7 +32,7 @@
|
||||
description = "Microbes with an entirely alien cellular structure."
|
||||
color = "#535E66" // rgb: 83, 94, 102
|
||||
|
||||
/datum/reagent/xenomicrobes/on_mob_life(var/mob/living/carbon/M as mob)
|
||||
/datum/reagent/xenomicrobes/on_mob_life(mob/living/carbon/M)
|
||||
if(!M) M = holder.my_atom
|
||||
if(volume > 1.5)
|
||||
M.ContractDisease(new /datum/disease/transformation/xeno(0))
|
||||
@@ -44,7 +44,7 @@
|
||||
description = "Active fungal spores."
|
||||
color = "#92D17D" // rgb: 146, 209, 125
|
||||
|
||||
/datum/reagent/fungalspores/on_mob_life(var/mob/living/carbon/M as mob)
|
||||
/datum/reagent/fungalspores/on_mob_life(mob/living/carbon/M)
|
||||
if(!M) M = holder.my_atom
|
||||
if(volume > 2.5)
|
||||
M.ForceContractDisease(new /datum/disease/tuberculosis(0))
|
||||
@@ -57,7 +57,7 @@
|
||||
reagent_state = SOLID
|
||||
color = "#FA0000" // rgb: 250, 0, 0
|
||||
|
||||
/datum/reagent/jagged_crystals/on_mob_life(var/mob/living/carbon/M as mob)
|
||||
/datum/reagent/jagged_crystals/on_mob_life(mob/living/carbon/M)
|
||||
if(!M) M = holder.my_atom
|
||||
M.ForceContractDisease(new /datum/disease/berserker(0))
|
||||
..()
|
||||
@@ -69,7 +69,7 @@
|
||||
reagent_state = LIQUID
|
||||
color = "#1E4600"
|
||||
|
||||
/datum/reagent/salmonella/on_mob_life(var/mob/living/carbon/M as mob)
|
||||
/datum/reagent/salmonella/on_mob_life(mob/living/carbon/M)
|
||||
if(!M) M = holder.my_atom
|
||||
M.ForceContractDisease(new /datum/disease/food_poisoning(0))
|
||||
..()
|
||||
@@ -81,7 +81,7 @@
|
||||
reagent_state = LIQUID
|
||||
color = "#FF0000"
|
||||
|
||||
/datum/reagent/gibbis/on_mob_life(var/mob/living/carbon/M as mob)
|
||||
/datum/reagent/gibbis/on_mob_life(mob/living/carbon/M)
|
||||
if(!M) M = holder.my_atom
|
||||
if(volume > 2.5)
|
||||
M.ForceContractDisease(new /datum/disease/gbs/curable(0))
|
||||
@@ -94,7 +94,7 @@
|
||||
reagent_state = LIQUID
|
||||
color = "#FFFFFF"
|
||||
|
||||
/datum/reagent/prions/on_mob_life(var/mob/living/carbon/M as mob)
|
||||
/datum/reagent/prions/on_mob_life(mob/living/carbon/M)
|
||||
if(!M) M = holder.my_atom
|
||||
if(volume > 4.5)
|
||||
M.ForceContractDisease(new /datum/disease/kuru(0))
|
||||
@@ -107,7 +107,7 @@
|
||||
reagent_state = LIQUID
|
||||
color = "#465046"
|
||||
|
||||
/datum/reagent/grave_dust/on_mob_life(var/mob/living/carbon/M as mob)
|
||||
/datum/reagent/grave_dust/on_mob_life(mob/living/carbon/M)
|
||||
if(!M) M = holder.my_atom
|
||||
if(volume > 4.5)
|
||||
M.ForceContractDisease(new /datum/disease/vampire(0))
|
||||
@@ -120,7 +120,7 @@
|
||||
reagent_state = SOLID
|
||||
color = "#925D6C"
|
||||
|
||||
/datum/reagent/heartworms/on_mob_life(var/mob/living/carbon/M as mob)
|
||||
/datum/reagent/heartworms/on_mob_life(mob/living/carbon/M)
|
||||
if(!M) M = holder.my_atom
|
||||
if(volume > 4.5)
|
||||
if(ishuman(M))
|
||||
@@ -140,7 +140,7 @@
|
||||
var/client/blob_client = null
|
||||
var/blob_point_rate = 3
|
||||
|
||||
/datum/reagent/spore/on_mob_life(var/mob/living/M)
|
||||
/datum/reagent/spore/on_mob_life(mob/living/M)
|
||||
if(!M) M = holder.my_atom
|
||||
if(holder.has_reagent("atrazine",45))
|
||||
holder.del_reagent("spore") //apparently this never metabolizes and stays in forever unless you have 45 units of atrazine in you or some stupid thing like that.
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
mix_message = "The drink turns electric blue and starts quivering violently."
|
||||
mix_sound = 'sound/goonstation/misc/drinkfizz.ogg'
|
||||
|
||||
/datum/reagent/ginsonic/on_mob_life(var/mob/living/M as mob)
|
||||
/datum/reagent/ginsonic/on_mob_life(mob/living/M)
|
||||
if(!M) M = holder.my_atom
|
||||
M.drowsyness = max(0, M.drowsyness-5)
|
||||
if(prob(25))
|
||||
@@ -29,7 +29,6 @@
|
||||
else
|
||||
to_chat(M, "<span class='notice'>[sonic_message ]</span>")
|
||||
..()
|
||||
return
|
||||
|
||||
/datum/reagent/ethanol/applejack
|
||||
name = "Applejack"
|
||||
@@ -72,12 +71,12 @@
|
||||
color = "#DC0000"
|
||||
alcohol_perc = 1
|
||||
|
||||
/datum/reagent/ethanol/dragons_breath/reaction_mob(var/mob/living/M, var/method=TOUCH, var/volume)
|
||||
/datum/reagent/ethanol/dragons_breath/reaction_mob(mob/living/M, method=TOUCH, volume)
|
||||
if(method == INGEST && prob(20))
|
||||
if(M.on_fire)
|
||||
M.adjust_fire_stacks(3)
|
||||
|
||||
/datum/reagent/ethanol/dragons_breath/on_mob_life(var/mob/living/M as mob)
|
||||
/datum/reagent/ethanol/dragons_breath/on_mob_life(mob/living/M)
|
||||
if(!M) M = holder.my_atom
|
||||
if(M.reagents.has_reagent("milk"))
|
||||
to_chat(M, "<span class='notice'>The milk stops the burning. Ahhh.</span>")
|
||||
@@ -128,7 +127,7 @@
|
||||
mix_message = "The chemicals mix to create shiny, blue substance."
|
||||
mix_sound = 'sound/goonstation/misc/drinkfizz.ogg'
|
||||
|
||||
/datum/reagent/ethanol/synthanol/on_mob_life(var/mob/living/M as mob, var/alien)
|
||||
/datum/reagent/ethanol/synthanol/on_mob_life(mob/living/M, alien)
|
||||
if(!M.isSynthetic())
|
||||
holder.remove_reagent(id, 3.6) //gets removed from organics very fast
|
||||
if(prob(25))
|
||||
@@ -136,7 +135,7 @@
|
||||
M.fakevomit()
|
||||
..()
|
||||
|
||||
datum/reagent/ethanol/synthanol/reaction_mob(var/mob/M, var/method=TOUCH, var/volume)
|
||||
/datum/reagent/ethanol/synthanol/reaction_mob(mob/M, method=TOUCH, volume)
|
||||
if(!istype(M, /mob/living))
|
||||
return
|
||||
if(M.isSynthetic())
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
overdose_threshold = 35
|
||||
addiction_chance = 70
|
||||
|
||||
/datum/reagent/nicotine/on_mob_life(var/mob/living/M as mob)
|
||||
/datum/reagent/nicotine/on_mob_life(mob/living/M)
|
||||
if(!M) M = holder.my_atom
|
||||
var/smoke_message = pick("You feel relaxed.", "You feel calmed.", "You feel less stressed.", "You feel more placid.", "You feel more undivided.")
|
||||
if(prob(5))
|
||||
@@ -24,9 +24,8 @@
|
||||
M.AdjustWeakened(-1)
|
||||
M.adjustStaminaLoss(-1*REM)
|
||||
..()
|
||||
return
|
||||
|
||||
/datum/reagent/nicotine/overdose_process(var/mob/living/M as mob, severity)
|
||||
/datum/reagent/nicotine/overdose_process(mob/living/M, severity)
|
||||
var/effect = ..()
|
||||
if(severity == 1)
|
||||
if(effect <= 2)
|
||||
@@ -75,7 +74,7 @@
|
||||
overdose_threshold = 20
|
||||
addiction_chance = 50
|
||||
|
||||
/datum/reagent/crank/on_mob_life(var/mob/living/M as mob)
|
||||
/datum/reagent/crank/on_mob_life(mob/living/M)
|
||||
if(!M) M = holder.my_atom
|
||||
M.AdjustParalysis(-2)
|
||||
M.AdjustStunned(-2)
|
||||
@@ -95,9 +94,8 @@
|
||||
M.jitteriness += 30
|
||||
M.emote(pick("groan", "moan"))
|
||||
..()
|
||||
return
|
||||
|
||||
/datum/reagent/crank/overdose_process(var/mob/living/M as mob, severity)
|
||||
/datum/reagent/crank/overdose_process(mob/living/M, severity)
|
||||
var/effect = ..()
|
||||
if(severity == 1)
|
||||
if(effect <= 2)
|
||||
@@ -146,12 +144,11 @@
|
||||
mix_sound = 'sound/goonstation/effects/crystalshatter.ogg'
|
||||
min_temp = 390
|
||||
|
||||
/datum/chemical_reaction/crank/on_reaction(var/datum/reagents/holder, var/created_volume)
|
||||
/datum/chemical_reaction/crank/on_reaction(datum/reagents/holder, created_volume)
|
||||
var/turf/T = get_turf(holder.my_atom)
|
||||
for(var/turf/turf in range(1,T))
|
||||
new /obj/effect/hotspot(turf)
|
||||
explosion(T,0,0,2)
|
||||
return
|
||||
|
||||
/datum/reagent/krokodil
|
||||
name = "Krokodil"
|
||||
@@ -163,7 +160,7 @@
|
||||
addiction_chance = 50
|
||||
|
||||
|
||||
/datum/reagent/krokodil/on_mob_life(var/mob/living/M as mob)
|
||||
/datum/reagent/krokodil/on_mob_life(mob/living/M)
|
||||
if(!M) M = holder.my_atom
|
||||
M.jitteriness -= 40
|
||||
if(prob(25))
|
||||
@@ -185,9 +182,8 @@
|
||||
to_chat(M, "<span class='warning'>Your skin feels all rough and dry.</span>")
|
||||
M.adjustBruteLoss(2)
|
||||
..()
|
||||
return
|
||||
|
||||
/datum/reagent/krokodil/overdose_process(var/mob/living/M as mob, severity)
|
||||
/datum/reagent/krokodil/overdose_process(mob/living/M, severity)
|
||||
var/effect = ..()
|
||||
if(severity == 1)
|
||||
if(effect <= 2)
|
||||
@@ -242,7 +238,7 @@
|
||||
addiction_chance = 60
|
||||
metabolization_rate = 0.6
|
||||
|
||||
/datum/reagent/methamphetamine/on_mob_life(var/mob/living/M as mob)
|
||||
/datum/reagent/methamphetamine/on_mob_life(mob/living/M)
|
||||
if(!M) M = holder.my_atom
|
||||
if(prob(5))
|
||||
M.emote(pick("twitch_s","blink_r","shiver"))
|
||||
@@ -258,9 +254,8 @@
|
||||
if(prob(50))
|
||||
M.adjustBrainLoss(1.0)
|
||||
..()
|
||||
return
|
||||
|
||||
/datum/reagent/methamphetamine/overdose_process(var/mob/living/M as mob, severity)
|
||||
/datum/reagent/methamphetamine/overdose_process(mob/living/M, severity)
|
||||
var/effect = ..()
|
||||
if(severity == 1)
|
||||
if(effect <= 2)
|
||||
@@ -293,7 +288,7 @@
|
||||
result_amount = 4
|
||||
min_temp = 374
|
||||
|
||||
/datum/chemical_reaction/methamphetamine/on_reaction(var/datum/reagents/holder)
|
||||
/datum/chemical_reaction/methamphetamine/on_reaction(datum/reagents/holder)
|
||||
var/turf/T = get_turf(holder.my_atom)
|
||||
T.visible_message("<span class='warning'>The solution generates a strong vapor!</span>")
|
||||
for(var/mob/living/carbon/C in range(T, 1))
|
||||
@@ -328,7 +323,7 @@
|
||||
addiction_chance = 80
|
||||
metabolization_rate = 0.6
|
||||
|
||||
/datum/reagent/bath_salts/on_mob_life(var/mob/living/M as mob)
|
||||
/datum/reagent/bath_salts/on_mob_life(mob/living/M)
|
||||
if(!M) M = holder.my_atom
|
||||
var/check = rand(0,100)
|
||||
if(ishuman(M))
|
||||
@@ -361,7 +356,7 @@
|
||||
to_chat(M, "<span class='userdanger'>THEY'RE GONNA GET YOU!</span>")
|
||||
..()
|
||||
|
||||
/datum/reagent/bath_salts/reaction_mob(var/mob/living/M, var/method=TOUCH, var/volume)
|
||||
/datum/reagent/bath_salts/reaction_mob(mob/living/M, method=TOUCH, volume)
|
||||
if(method == INGEST)
|
||||
to_chat(M, "<span class = 'danger'><font face='[pick("Curlz MT", "Comic Sans MS")]' size='[rand(4,6)]'>You feel FUCKED UP!!!!!!</font></span>")
|
||||
M << 'sound/effects/singlebeat.ogg'
|
||||
@@ -372,7 +367,7 @@
|
||||
else
|
||||
to_chat(M, "<span class='notice'>You feel a bit more salty than usual.</span>")
|
||||
|
||||
/datum/reagent/bath_salts/overdose_process(var/mob/living/M as mob, severity)
|
||||
/datum/reagent/bath_salts/overdose_process(mob/living/M, severity)
|
||||
var/effect = ..()
|
||||
if(severity == 1)
|
||||
if(effect <= 2)
|
||||
@@ -434,7 +429,7 @@
|
||||
mix_message = "The mixture ferments into a filthy morass."
|
||||
mix_sound = 'sound/effects/blobattack.ogg'
|
||||
|
||||
/datum/chemical_reaction/jenkem/on_reaction(var/datum/reagents/holder)
|
||||
/datum/chemical_reaction/jenkem/on_reaction(datum/reagents/holder)
|
||||
var/turf/T = get_turf(holder.my_atom)
|
||||
T.visible_message("<span class='warning'>The solution generates a strong vapor!</span>")
|
||||
for(var/mob/living/carbon/C in range(T, 1))
|
||||
@@ -449,7 +444,7 @@
|
||||
color = "#644600"
|
||||
addiction_chance = 30
|
||||
|
||||
/datum/reagent/jenkem/on_mob_life(var/mob/living/M as mob)
|
||||
/datum/reagent/jenkem/on_mob_life(mob/living/M)
|
||||
if(!M) M = holder.my_atom
|
||||
M.Dizzy(5)
|
||||
if(prob(10))
|
||||
@@ -471,7 +466,7 @@
|
||||
reagent_state = LIQUID
|
||||
color = "#60A584" // rgb: 96, 165, 132
|
||||
|
||||
/datum/reagent/aranesp/on_mob_life(var/mob/living/M as mob)
|
||||
/datum/reagent/aranesp/on_mob_life(mob/living/M)
|
||||
if(!M) M = holder.my_atom
|
||||
M.adjustStaminaLoss(-40)
|
||||
if(prob(90))
|
||||
@@ -487,7 +482,6 @@
|
||||
M.Stun(1)
|
||||
M.losebreath++
|
||||
..()
|
||||
return
|
||||
|
||||
/datum/reagent/thc
|
||||
name = "Tetrahydrocannabinol"
|
||||
@@ -497,7 +491,7 @@
|
||||
color = "#0FBE0F"
|
||||
|
||||
|
||||
/datum/reagent/thc/on_mob_life(var/mob/living/M as mob)
|
||||
/datum/reagent/thc/on_mob_life(mob/living/M)
|
||||
if(!M) M = holder.my_atom
|
||||
M.stuttering += rand(0,2)
|
||||
if(prob(5))
|
||||
@@ -510,7 +504,6 @@
|
||||
if(prob(10))
|
||||
M.drowsyness = max(M.drowsyness, 10)
|
||||
..()
|
||||
return
|
||||
|
||||
/datum/reagent/fliptonium
|
||||
name = "Fliptonium"
|
||||
@@ -531,14 +524,14 @@
|
||||
result_amount = 4
|
||||
mix_message = "The mixture swirls around excitedly!"
|
||||
|
||||
/datum/reagent/fliptonium/reaction_mob(var/mob/M, var/method=TOUCH, var/volume)
|
||||
/datum/reagent/fliptonium/reaction_mob(mob/M, method=TOUCH, volume)
|
||||
if(!istype(M, /mob/living))
|
||||
return
|
||||
if(method == INGEST || method == TOUCH)
|
||||
M.SpinAnimation(speed = 12, loops = -1)
|
||||
..()
|
||||
|
||||
/datum/reagent/fliptonium/on_mob_life(var/mob/living/M as mob)
|
||||
/datum/reagent/fliptonium/on_mob_life(mob/living/M)
|
||||
if(!M) M = holder.my_atom
|
||||
if(current_cycle == 5)
|
||||
M.SpinAnimation(speed = 11, loops = -1)
|
||||
@@ -564,12 +557,11 @@
|
||||
M.adjustStaminaLoss(-1.5)
|
||||
M.SetSleeping(0)
|
||||
..()
|
||||
return
|
||||
|
||||
/datum/reagent/fliptonium/reagent_deleted(var/mob/living/M as mob)
|
||||
/datum/reagent/fliptonium/reagent_deleted(mob/living/M)
|
||||
M.SpinAnimation(speed = 12, loops = -1)
|
||||
|
||||
/datum/reagent/fliptonium/overdose_process(var/mob/living/M as mob, severity)
|
||||
/datum/reagent/fliptonium/overdose_process(mob/living/M, severity)
|
||||
var/effect = ..()
|
||||
if(severity == 1)
|
||||
if(effect <= 2)
|
||||
@@ -619,7 +611,7 @@
|
||||
result_amount = 2
|
||||
mix_message = "The mixture darkens and appears to partially vaporize into a chilling aerosol."
|
||||
|
||||
/datum/reagent/lube/ultra/on_mob_life(var/mob/living/M as mob)
|
||||
/datum/reagent/lube/ultra/on_mob_life(mob/living/M)
|
||||
if(!M) M = holder.my_atom
|
||||
var/high_message = pick("You feel your servos whir!", "You feel like you need to go faster.", "You feel like you were just overclocked!")
|
||||
if(prob(1))
|
||||
@@ -637,9 +629,8 @@
|
||||
if(prob(5))
|
||||
M.emote(pick("twitch", "shiver"))
|
||||
..()
|
||||
return
|
||||
|
||||
/datum/reagent/lube/ultra/overdose_process(var/mob/living/M as mob, severity)
|
||||
/datum/reagent/lube/ultra/overdose_process(mob/living/M, severity)
|
||||
if(prob(20))
|
||||
M.emote("ping")
|
||||
if(prob(33))
|
||||
@@ -647,10 +638,10 @@
|
||||
var/obj/item/I = M.get_active_hand()
|
||||
if(I)
|
||||
M.drop_item()
|
||||
..()
|
||||
if(prob(50))
|
||||
M.adjustFireLoss(10)
|
||||
M.adjustBrainLoss(pick(0.5, 0.6, 0.7, 0.8, 0.9, 1))
|
||||
..()
|
||||
|
||||
//Surge: Krokodil
|
||||
/datum/reagent/surge
|
||||
@@ -665,7 +656,7 @@
|
||||
addiction_chance = 50
|
||||
|
||||
|
||||
/datum/reagent/surge/on_mob_life(var/mob/living/M as mob)
|
||||
/datum/reagent/surge/on_mob_life(mob/living/M)
|
||||
if(!M) M = holder.my_atom
|
||||
M.druggy = max(M.druggy, 15)
|
||||
var/high_message = pick("You feel calm.", "You feel collected.", "You feel like you need to relax.")
|
||||
@@ -675,9 +666,8 @@
|
||||
if(prob(5))
|
||||
to_chat(M, "<span class='notice'>[high_message]</span>")
|
||||
..()
|
||||
return
|
||||
|
||||
/datum/reagent/surge/overdose_process(var/mob/living/M as mob, severity)
|
||||
/datum/reagent/surge/overdose_process(mob/living/M, severity)
|
||||
//Hit them with the same effects as an electrode!
|
||||
M.Stun(5)
|
||||
M.Weaken(5)
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
color = "#63DE63"
|
||||
metabolization_rate = 0.4
|
||||
|
||||
datum/reagent/questionmark/reaction_mob(var/mob/M, var/method=TOUCH, var/volume)
|
||||
/datum/reagent/questionmark/reaction_mob(mob/M, method=TOUCH, volume)
|
||||
if(!istype(M, /mob/living))
|
||||
return
|
||||
if(method == INGEST)
|
||||
@@ -15,23 +15,22 @@ datum/reagent/questionmark/reaction_mob(var/mob/M, var/method=TOUCH, var/volume)
|
||||
to_chat(M, "<span class='danger'>Ugh! Eating that was a terrible idea!</span>")
|
||||
M.ForceContractDisease(new /datum/disease/food_poisoning(0))
|
||||
|
||||
datum/reagent/egg
|
||||
/datum/reagent/egg
|
||||
name = "Egg"
|
||||
id = "egg"
|
||||
description = "A runny and viscous mixture of clear and yellow fluids."
|
||||
reagent_state = LIQUID
|
||||
color = "#F0C814"
|
||||
|
||||
datum/reagent/egg/on_mob_life(var/mob/living/M as mob)
|
||||
/datum/reagent/egg/on_mob_life(mob/living/M)
|
||||
if(!M) M = holder.my_atom
|
||||
if(prob(8))
|
||||
M.emote("fart")
|
||||
if(prob(3))
|
||||
M.reagents.add_reagent("cholesterol", rand(1,2))
|
||||
..()
|
||||
return
|
||||
|
||||
datum/reagent/triple_citrus
|
||||
/datum/reagent/triple_citrus
|
||||
name = "Triple Citrus"
|
||||
id = "triple_citrus"
|
||||
description = "A refreshing mixed drink of orange, lemon and lime juice."
|
||||
@@ -47,13 +46,13 @@ datum/reagent/triple_citrus
|
||||
mix_message = "The citrus juices begin to blend together."
|
||||
mix_sound = 'sound/goonstation/misc/drinkfizz.ogg'
|
||||
|
||||
datum/reagent/triple_citrus/reaction_mob(var/mob/living/carbon/M as mob, var/method=TOUCH, var/volume)
|
||||
/datum/reagent/triple_citrus/reaction_mob(mob/living/carbon/M, method=TOUCH, volume)
|
||||
if(!istype(M, /mob/living/carbon))
|
||||
return
|
||||
if(method == INGEST)
|
||||
M.adjustToxLoss(-rand(1,2))
|
||||
|
||||
datum/reagent/corn_starch
|
||||
/datum/reagent/corn_starch
|
||||
name = "Corn Starch"
|
||||
id = "corn_starch"
|
||||
description = "The powdered starch of maize, derived from the kernel's endosperm. Used as a thickener for gravies and puddings."
|
||||
@@ -69,18 +68,17 @@ datum/reagent/corn_starch
|
||||
min_temp = 374
|
||||
mix_message = "The mixture forms a viscous, clear fluid!"
|
||||
|
||||
datum/reagent/corn_syrup
|
||||
/datum/reagent/corn_syrup
|
||||
name = "Corn Syrup"
|
||||
id = "corn_syrup"
|
||||
description = "A sweet syrup derived from corn starch that has had its starches converted into maltose and other sugars."
|
||||
reagent_state = LIQUID
|
||||
color = "#C8A5DC"
|
||||
|
||||
datum/reagent/corn_syrup/on_mob_life(var/mob/living/M as mob)
|
||||
/datum/reagent/corn_syrup/on_mob_life(mob/living/M)
|
||||
if(!M) M = holder.my_atom
|
||||
M.reagents.add_reagent("sugar", 1.2)
|
||||
..()
|
||||
return
|
||||
|
||||
/datum/chemical_reaction/vhfcs
|
||||
name = "vhfcs"
|
||||
@@ -91,18 +89,17 @@ datum/reagent/corn_syrup/on_mob_life(var/mob/living/M as mob)
|
||||
result_amount = 1
|
||||
mix_message = "The mixture emits a sickly-sweet smell."
|
||||
|
||||
datum/reagent/vhfcs
|
||||
/datum/reagent/vhfcs
|
||||
name = "Very-high-fructose corn syrup"
|
||||
id = "vhfcs"
|
||||
description = "An incredibly sweet syrup, created from corn syrup treated with enzymes to convert its sugars into fructose."
|
||||
reagent_state = LIQUID
|
||||
color = "#C8A5DC"
|
||||
|
||||
datum/reagent/vhfcs/on_mob_life(var/mob/living/M as mob)
|
||||
/datum/reagent/vhfcs/on_mob_life(mob/living/M)
|
||||
if(!M) M = holder.my_atom
|
||||
M.reagents.add_reagent("sugar", 2.4)
|
||||
..()
|
||||
return
|
||||
|
||||
/datum/chemical_reaction/cola
|
||||
name = "cola"
|
||||
@@ -120,14 +117,13 @@ datum/reagent/vhfcs/on_mob_life(var/mob/living/M as mob)
|
||||
reagent_state = LIQUID
|
||||
color = "#d3a308"
|
||||
|
||||
datum/reagent/honey/on_mob_life(var/mob/living/M as mob)
|
||||
/datum/reagent/honey/on_mob_life(mob/living/M)
|
||||
if(!M)
|
||||
M = holder.my_atom
|
||||
M.reagents.add_reagent("sugar", 0.4)
|
||||
if(prob(20))
|
||||
M.heal_organ_damage(3,1)
|
||||
..()
|
||||
return
|
||||
|
||||
/datum/reagent/chocolate
|
||||
name = "Chocolate"
|
||||
@@ -137,18 +133,16 @@ datum/reagent/honey/on_mob_life(var/mob/living/M as mob)
|
||||
nutriment_factor = 5 * REAGENTS_METABOLISM //same as pure cocoa powder, because it makes no sense that chocolate won't fill you up and make you fat
|
||||
color = "#2E2418"
|
||||
|
||||
/datum/reagent/chocolate/on_mob_life(var/mob/living/M as mob)
|
||||
/datum/reagent/chocolate/on_mob_life(mob/living/M)
|
||||
if(!M) M = holder.my_atom
|
||||
M.nutrition += nutriment_factor
|
||||
M.reagents.add_reagent("sugar", 0.8)
|
||||
..()
|
||||
return
|
||||
|
||||
/datum/reagent/chocolate/reaction_turf(var/turf/T, var/volume)
|
||||
/datum/reagent/chocolate/reaction_turf(turf/T, volume)
|
||||
src = null
|
||||
if(volume >= 5)
|
||||
new /obj/item/weapon/reagent_containers/food/snacks/choc_pile(T)
|
||||
return
|
||||
|
||||
/datum/reagent/mugwort
|
||||
name = "Mugwort"
|
||||
@@ -157,7 +151,7 @@ datum/reagent/honey/on_mob_life(var/mob/living/M as mob)
|
||||
reagent_state = LIQUID
|
||||
color = "#21170E"
|
||||
|
||||
datum/reagent/mugwort/on_mob_life(var/mob/living/M as mob)
|
||||
/datum/reagent/mugwort/on_mob_life(mob/living/M)
|
||||
if(!M) M = holder.my_atom
|
||||
if(istype(M, /mob/living/carbon/human) && M.mind)
|
||||
if(M.mind.special_role == "Wizard")
|
||||
@@ -166,7 +160,6 @@ datum/reagent/mugwort/on_mob_life(var/mob/living/M as mob)
|
||||
M.adjustBruteLoss(-1*REM)
|
||||
M.adjustFireLoss(-1*REM)
|
||||
..()
|
||||
return
|
||||
|
||||
/datum/reagent/porktonium
|
||||
name = "Porktonium"
|
||||
@@ -177,7 +170,7 @@ datum/reagent/mugwort/on_mob_life(var/mob/living/M as mob)
|
||||
metabolization_rate = 0.2
|
||||
overdose_threshold = 133
|
||||
|
||||
/datum/reagent/porktonium/overdose_process(var/mob/living/M as mob, severity)
|
||||
/datum/reagent/porktonium/overdose_process(mob/living/M, severity)
|
||||
if(prob(15))
|
||||
M.reagents.add_reagent("cholesterol", rand(1,3))
|
||||
if(prob(8))
|
||||
@@ -191,7 +184,7 @@ datum/reagent/mugwort/on_mob_life(var/mob/living/M as mob)
|
||||
reagent_state = LIQUID
|
||||
color = "#C87D28"
|
||||
|
||||
datum/reagent/fungus/reaction_mob(var/mob/M, var/method=TOUCH, var/volume)
|
||||
/datum/reagent/fungus/reaction_mob(mob/M, method=TOUCH, volume)
|
||||
if(!istype(M, /mob/living))
|
||||
return
|
||||
if(method == INGEST)
|
||||
@@ -213,10 +206,9 @@ datum/reagent/fungus/reaction_mob(var/mob/M, var/method=TOUCH, var/volume)
|
||||
color = "#B4B400"
|
||||
metabolization_rate = 0.2
|
||||
|
||||
/datum/reagent/chicken_soup/on_mob_life(var/mob/living/M as mob)
|
||||
/datum/reagent/chicken_soup/on_mob_life(mob/living/M)
|
||||
M.nutrition += 2
|
||||
..()
|
||||
return
|
||||
|
||||
/datum/reagent/msg
|
||||
name = "Monosodium glutamate"
|
||||
@@ -226,14 +218,14 @@ datum/reagent/fungus/reaction_mob(var/mob/M, var/method=TOUCH, var/volume)
|
||||
color = "#F5F5F5"
|
||||
metabolization_rate = 0.2
|
||||
|
||||
datum/reagent/msg/reaction_mob(var/mob/M, var/method=TOUCH, var/volume)
|
||||
/datum/reagent/msg/reaction_mob(mob/M, method=TOUCH, volume)
|
||||
if(!istype(M, /mob/living))
|
||||
return
|
||||
if(method == INGEST)
|
||||
to_chat(M, "<span class='notice'>That tasted amazing!</span>")
|
||||
|
||||
|
||||
/datum/reagent/msg/on_mob_life(var/mob/living/M as mob)
|
||||
/datum/reagent/msg/on_mob_life(mob/living/M)
|
||||
if(prob(5))
|
||||
if(prob(10))
|
||||
M.adjustToxLoss(rand(2.4))
|
||||
@@ -241,7 +233,6 @@ datum/reagent/msg/reaction_mob(var/mob/M, var/method=TOUCH, var/volume)
|
||||
to_chat(M, "<span class='warning'>A horrible migraine overpowers you.</span>")
|
||||
M.Stun(rand(2,5))
|
||||
..()
|
||||
return
|
||||
|
||||
/datum/reagent/cheese
|
||||
name = "Cheese"
|
||||
@@ -252,16 +243,15 @@ datum/reagent/msg/reaction_mob(var/mob/M, var/method=TOUCH, var/volume)
|
||||
metabolization_rate = 0 //heheheh
|
||||
|
||||
|
||||
/datum/reagent/cheese/on_mob_life(var/mob/living/M as mob)
|
||||
/datum/reagent/cheese/on_mob_life(mob/living/M)
|
||||
if(prob(3))
|
||||
M.reagents.add_reagent("cholesterol", rand(1,2))
|
||||
..()
|
||||
|
||||
datum/reagent/cheese/reaction_turf(var/turf/T, var/volume)
|
||||
/datum/reagent/cheese/reaction_turf(turf/T, volume)
|
||||
src = null
|
||||
if(volume >= 5)
|
||||
new /obj/item/weapon/reagent_containers/food/snacks/cheesewedge(T)
|
||||
return
|
||||
|
||||
/datum/chemical_reaction/cheese
|
||||
name = "cheese"
|
||||
@@ -271,7 +261,7 @@ datum/reagent/cheese/reaction_turf(var/turf/T, var/volume)
|
||||
result_amount = 1
|
||||
mix_message = "The mixture curdles up."
|
||||
|
||||
/datum/chemical_reaction/cheese/on_reaction(var/datum/reagents/holder)
|
||||
/datum/chemical_reaction/cheese/on_reaction(datum/reagents/holder)
|
||||
var/turf/T = get_turf(holder.my_atom)
|
||||
T.visible_message("<span class='notice'>A faint cheesy smell drifts through the air...</span>")
|
||||
|
||||
@@ -283,7 +273,7 @@ datum/reagent/cheese/reaction_turf(var/turf/T, var/volume)
|
||||
color = "#B2B139"
|
||||
overdose_threshold = 50
|
||||
|
||||
/datum/reagent/fake_cheese/overdose_process(var/mob/living/M as mob, severity)
|
||||
/datum/reagent/fake_cheese/overdose_process(mob/living/M, severity)
|
||||
if(prob(8))
|
||||
to_chat(M, "<span class='warning'>You feel something squirming in your stomach. Your thoughts turn to cheese and you begin to sweat.</span>")
|
||||
M.adjustToxLoss(rand(1,2))
|
||||
@@ -297,16 +287,15 @@ datum/reagent/cheese/reaction_turf(var/turf/T, var/volume)
|
||||
metabolization_rate = 0 //heheheh
|
||||
addiction_chance = 5
|
||||
|
||||
/datum/reagent/weird_cheese/on_mob_life(var/mob/living/M as mob)
|
||||
/datum/reagent/weird_cheese/on_mob_life(mob/living/M)
|
||||
if(prob(5))
|
||||
M.reagents.add_reagent("cholesterol", rand(1,3))
|
||||
..()
|
||||
|
||||
datum/reagent/weird_cheese/reaction_turf(var/turf/T, var/volume)
|
||||
/datum/reagent/weird_cheese/reaction_turf(turf/T, volume)
|
||||
src = null
|
||||
if(volume >= 5)
|
||||
new /obj/item/weapon/reagent_containers/food/snacks/weirdcheesewedge(T)
|
||||
return
|
||||
|
||||
/datum/chemical_reaction/weird_cheese
|
||||
name = "Weird cheese"
|
||||
@@ -317,23 +306,22 @@ datum/reagent/weird_cheese/reaction_turf(var/turf/T, var/volume)
|
||||
mix_message = "The disgusting mixture sloughs together horribly, emitting a foul stench."
|
||||
mix_sound = 'sound/goonstation/misc/gurggle.ogg'
|
||||
|
||||
/datum/chemical_reaction/weird_cheese/on_reaction(var/datum/reagents/holder)
|
||||
/datum/chemical_reaction/weird_cheese/on_reaction(datum/reagents/holder)
|
||||
var/turf/T = get_turf(holder.my_atom)
|
||||
T.visible_message("<span class='warning'>A horrible smell assaults your nose! What in space is it?</span>")
|
||||
|
||||
datum/reagent/beans
|
||||
/datum/reagent/beans
|
||||
name = "Refried beans"
|
||||
id = "beans"
|
||||
description = "A dish made of mashed beans cooked with lard."
|
||||
reagent_state = LIQUID
|
||||
color = "#684435"
|
||||
|
||||
datum/reagent/beans/on_mob_life(var/mob/living/M as mob)
|
||||
/datum/reagent/beans/on_mob_life(mob/living/M)
|
||||
if(!M) M = holder.my_atom
|
||||
if(prob(10))
|
||||
M.emote("fart")
|
||||
..()
|
||||
return
|
||||
|
||||
/datum/reagent/bread
|
||||
name = "Bread"
|
||||
@@ -342,11 +330,10 @@ datum/reagent/beans/on_mob_life(var/mob/living/M as mob)
|
||||
reagent_state = SOLID
|
||||
color = "#9C5013"
|
||||
|
||||
datum/reagent/bread/reaction_turf(var/turf/T, var/volume)
|
||||
/datum/reagent/bread/reaction_turf(turf/T, volume)
|
||||
src = null
|
||||
if(volume >= 5)
|
||||
new /obj/item/weapon/reagent_containers/food/snacks/breadslice(T)
|
||||
return
|
||||
|
||||
/datum/reagent/vomit
|
||||
name = "Vomit"
|
||||
@@ -355,12 +342,11 @@ datum/reagent/bread/reaction_turf(var/turf/T, var/volume)
|
||||
reagent_state = LIQUID
|
||||
color = "#FFFF00"
|
||||
|
||||
datum/reagent/vomit/reaction_turf(var/turf/T, var/volume)
|
||||
/datum/reagent/vomit/reaction_turf(turf/T, volume)
|
||||
src = null
|
||||
if(volume >= 5)
|
||||
new /obj/effect/decal/cleanable/vomit(T)
|
||||
playsound(T, 'sound/effects/splat.ogg', 50, 1, -3)
|
||||
return
|
||||
|
||||
/datum/reagent/greenvomit
|
||||
name = "Green vomit"
|
||||
@@ -369,12 +355,11 @@ datum/reagent/vomit/reaction_turf(var/turf/T, var/volume)
|
||||
reagent_state = LIQUID
|
||||
color = "#78FF74"
|
||||
|
||||
datum/reagent/greenvomit/reaction_turf(var/turf/T, var/volume)
|
||||
/datum/reagent/greenvomit/reaction_turf(turf/T, volume)
|
||||
src = null
|
||||
if(volume >= 5)
|
||||
new /obj/effect/decal/cleanable/vomit/green(T)
|
||||
playsound(T, 'sound/effects/splat.ogg', 50, 1, -3)
|
||||
return
|
||||
|
||||
|
||||
/datum/reagent/ectoplasm
|
||||
@@ -385,25 +370,23 @@ datum/reagent/greenvomit/reaction_turf(var/turf/T, var/volume)
|
||||
color = "#8EAE7B"
|
||||
process_flags = ORGANIC | SYNTHETIC //Because apparently ghosts in the shell
|
||||
|
||||
datum/reagent/ectoplasm/reaction_mob(var/mob/M, var/method=TOUCH, var/volume)
|
||||
/datum/reagent/ectoplasm/reaction_mob(mob/M, method=TOUCH, volume)
|
||||
if(!istype(M, /mob/living))
|
||||
return
|
||||
if(method == INGEST)
|
||||
var/spooky_eat = pick("Ugh, why did you eat that? Your mouth feels haunted. Haunted with bad flavors.", "Ugh, why did you eat that? It has the texture of ham aspic. From the 1950s. Left out in the sun.", "Ugh, why did you eat that? It tastes like a ghost fart.", "Ugh, why did you eat that? It tastes like flavor died.")
|
||||
to_chat(M, "<span class='warning'>[spooky_eat]</span>")
|
||||
|
||||
/datum/reagent/ectoplasm/on_mob_life(var/mob/living/M as mob)
|
||||
/datum/reagent/ectoplasm/on_mob_life(mob/living/M)
|
||||
var/spooky_message = pick("You notice something moving out of the corner of your eye, but nothing is there...", "Your eyes twitch, you feel like something you can't see is here...", "You've got the heebie-jeebies.", "You feel uneasy.", "You shudder as if cold...", "You feel something gliding across your back...")
|
||||
if(prob(8))
|
||||
to_chat(M, "<span class='warning'>[spooky_message]</span>")
|
||||
..()
|
||||
return
|
||||
|
||||
datum/reagent/ectoplasm/reaction_turf(var/turf/T, var/volume)
|
||||
/datum/reagent/ectoplasm/reaction_turf(turf/T, volume)
|
||||
src = null
|
||||
if(volume >= 10)
|
||||
new /obj/item/weapon/reagent_containers/food/snacks/ectoplasm(T)
|
||||
return
|
||||
|
||||
/datum/reagent/soybeanoil
|
||||
name = "Space-soybean oil"
|
||||
@@ -412,13 +395,12 @@ datum/reagent/ectoplasm/reaction_turf(var/turf/T, var/volume)
|
||||
reagent_state = LIQUID
|
||||
color = "#B1B0B0"
|
||||
|
||||
/datum/reagent/soybeanoil/on_mob_life(var/mob/living/M as mob)
|
||||
/datum/reagent/soybeanoil/on_mob_life(mob/living/M)
|
||||
if(prob(10))
|
||||
M.reagents.add_reagent("cholesterol", rand(1,3))
|
||||
if(prob(8))
|
||||
M.reagents.add_reagent("porktonium", 5)
|
||||
..()
|
||||
return
|
||||
|
||||
/datum/reagent/hydrogenated_soybeanoil
|
||||
name = "Partially hydrogenated space-soybean oil"
|
||||
@@ -429,7 +411,7 @@ datum/reagent/ectoplasm/reaction_turf(var/turf/T, var/volume)
|
||||
metabolization_rate = 0.2
|
||||
overdose_threshold = 75
|
||||
|
||||
/datum/reagent/hydrogenated_soybeanoil/on_mob_life(var/mob/living/M as mob)
|
||||
/datum/reagent/hydrogenated_soybeanoil/on_mob_life(mob/living/M)
|
||||
if(prob(15))
|
||||
M.reagents.add_reagent("cholesterol", rand(1,3))
|
||||
if(prob(8))
|
||||
@@ -439,9 +421,8 @@ datum/reagent/ectoplasm/reaction_turf(var/turf/T, var/volume)
|
||||
else
|
||||
metabolization_rate = 0.2
|
||||
..()
|
||||
return
|
||||
|
||||
/datum/reagent/hydrogenated_soybeanoil/overdose_process(var/mob/living/M as mob, severity)
|
||||
/datum/reagent/hydrogenated_soybeanoil/overdose_process(mob/living/M, severity)
|
||||
if(prob(33))
|
||||
to_chat(M, "<span class='warning'>You feel horribly weak.</span>")
|
||||
if(prob(10))
|
||||
@@ -469,12 +450,12 @@ datum/reagent/ectoplasm/reaction_turf(var/turf/T, var/volume)
|
||||
reagent_state = LIQUID
|
||||
color = "#EBD7D7"
|
||||
|
||||
/datum/reagent/meatslurry/on_mob_life(var/mob/living/M as mob)
|
||||
/datum/reagent/meatslurry/on_mob_life(mob/living/M)
|
||||
if(prob(4))
|
||||
M.reagents.add_reagent("cholesterol", rand(1,3))
|
||||
..()
|
||||
|
||||
/datum/reagent/meatslurry/reaction_turf(var/turf/T, var/volume)
|
||||
/datum/reagent/meatslurry/reaction_turf(turf/T, volume)
|
||||
src = null
|
||||
if(volume >= 5 && prob(10))
|
||||
new /obj/effect/decal/cleanable/blood/gibs/cleangibs(T)
|
||||
@@ -519,7 +500,7 @@ datum/reagent/ectoplasm/reaction_turf(var/turf/T, var/volume)
|
||||
reagent_state = SOLID
|
||||
color = "#AC7E67"
|
||||
|
||||
/datum/reagent/beff/on_mob_life(var/mob/living/M as mob)
|
||||
/datum/reagent/beff/on_mob_life(mob/living/M)
|
||||
if(prob(5))
|
||||
M.reagents.add_reagent("cholesterol", rand(1,3))
|
||||
if(prob(8))
|
||||
@@ -528,7 +509,6 @@ datum/reagent/ectoplasm/reaction_turf(var/turf/T, var/volume)
|
||||
to_chat(M, "<span class='warning'>[pick("You feel ill.","Your stomach churns.","You feel queasy.","You feel sick.")]</span>")
|
||||
M.emote(pick("groan","moan"))
|
||||
..()
|
||||
return
|
||||
|
||||
/datum/chemical_reaction/beff
|
||||
name = "Beff"
|
||||
@@ -546,7 +526,7 @@ datum/reagent/ectoplasm/reaction_turf(var/turf/T, var/volume)
|
||||
reagent_state = SOLID
|
||||
color = "#AC7E67"
|
||||
|
||||
datum/reagent/pepperoni/reaction_mob(var/mob/living/M, var/method=TOUCH, var/volume)
|
||||
/datum/reagent/pepperoni/reaction_mob(mob/living/M, method=TOUCH, volume)
|
||||
if(method == TOUCH)
|
||||
if(ishuman(M))
|
||||
var/mob/living/carbon/human/H = M
|
||||
@@ -584,7 +564,7 @@ datum/reagent/pepperoni/reaction_mob(var/mob/living/M, var/method=TOUCH, var/vol
|
||||
reagent_state = LIQUID
|
||||
color = "#FFFAC8"
|
||||
|
||||
/datum/reagent/cholesterol/on_mob_life(var/mob/living/M as mob)
|
||||
/datum/reagent/cholesterol/on_mob_life(mob/living/M)
|
||||
if(volume >= 25 && prob(volume*0.15))
|
||||
to_chat(M, "<span class='warning'>Your chest feels [pick("weird","uncomfortable","nasty","gross","odd","unusual","warm")]!</span>")
|
||||
M.adjustToxLoss(rand(1,2))
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
#define REM REAGENTS_EFFECT_MULTIPLIER
|
||||
|
||||
datum/reagent/silver_sulfadiazine
|
||||
/datum/reagent/silver_sulfadiazine
|
||||
name = "Silver Sulfadiazine"
|
||||
id = "silver_sulfadiazine"
|
||||
description = "This antibacterial compound is used to treat burn victims."
|
||||
@@ -12,7 +12,7 @@ datum/reagent/silver_sulfadiazine
|
||||
color = "#F0C814"
|
||||
metabolization_rate = 3
|
||||
|
||||
datum/reagent/silver_sulfadiazine/reaction_mob(var/mob/living/M as mob, var/method=TOUCH, var/volume, var/show_message = 1)
|
||||
/datum/reagent/silver_sulfadiazine/reaction_mob(mob/living/M, method=TOUCH, volume, show_message = 1)
|
||||
if(iscarbon(M))
|
||||
if(method == TOUCH)
|
||||
M.adjustFireLoss(-volume)
|
||||
@@ -23,15 +23,13 @@ datum/reagent/silver_sulfadiazine/reaction_mob(var/mob/living/M as mob, var/meth
|
||||
if(show_message)
|
||||
to_chat(M, "<span class='warning'>You feel sick...</span>")
|
||||
..()
|
||||
return
|
||||
|
||||
datum/reagent/silver_sulfadiazine/on_mob_life(var/mob/living/M as mob)
|
||||
/datum/reagent/silver_sulfadiazine/on_mob_life(mob/living/M)
|
||||
if(!M) M = holder.my_atom
|
||||
M.adjustFireLoss(-2*REM)
|
||||
..()
|
||||
return
|
||||
|
||||
datum/reagent/styptic_powder
|
||||
/datum/reagent/styptic_powder
|
||||
name = "Styptic Powder"
|
||||
id = "styptic_powder"
|
||||
description = "Styptic (aluminium sulfate) powder helps control bleeding and heal physical wounds."
|
||||
@@ -39,7 +37,7 @@ datum/reagent/styptic_powder
|
||||
color = "#C8A5DC"
|
||||
metabolization_rate = 3
|
||||
|
||||
datum/reagent/styptic_powder/reaction_mob(var/mob/living/M as mob, var/method=TOUCH, var/volume, var/show_message = 1)
|
||||
/datum/reagent/styptic_powder/reaction_mob(mob/living/M, method=TOUCH, volume, show_message = 1)
|
||||
if(iscarbon(M))
|
||||
if(method == TOUCH)
|
||||
M.adjustBruteLoss(-volume)
|
||||
@@ -51,13 +49,11 @@ datum/reagent/styptic_powder/reaction_mob(var/mob/living/M as mob, var/method=TO
|
||||
if(show_message)
|
||||
to_chat(M, "<span class='warning'>You feel gross!</span>")
|
||||
..()
|
||||
return
|
||||
|
||||
datum/reagent/styptic_powder/on_mob_life(var/mob/living/M as mob)
|
||||
/datum/reagent/styptic_powder/on_mob_life(mob/living/M)
|
||||
if(!M) M = holder.my_atom
|
||||
M.adjustBruteLoss(-2*REM)
|
||||
..()
|
||||
return
|
||||
|
||||
/datum/reagent/salglu_solution
|
||||
name = "Saline-Glucose Solution"
|
||||
@@ -80,14 +76,14 @@ datum/reagent/styptic_powder/on_mob_life(var/mob/living/M as mob)
|
||||
H.vessel.add_reagent("blood", 1)
|
||||
..()
|
||||
|
||||
datum/reagent/synthflesh
|
||||
/datum/reagent/synthflesh
|
||||
name = "Synthflesh"
|
||||
id = "synthflesh"
|
||||
description = "A resorbable microfibrillar collagen and protein mixture that can rapidly heal injuries when applied topically."
|
||||
reagent_state = LIQUID
|
||||
color = "#FFEBEB"
|
||||
|
||||
datum/reagent/synthflesh/reaction_mob(var/mob/living/M, var/method=TOUCH, var/volume,var/show_message = 1)
|
||||
/datum/reagent/synthflesh/reaction_mob(mob/living/M, method=TOUCH, volume, show_message = 1)
|
||||
if(!M) M = holder.my_atom
|
||||
if(iscarbon(M))
|
||||
if(method == TOUCH)
|
||||
@@ -96,23 +92,21 @@ datum/reagent/synthflesh/reaction_mob(var/mob/living/M, var/method=TOUCH, var/vo
|
||||
if(show_message)
|
||||
to_chat(M, "<span class='notice'>The synthetic flesh integrates itself into your wounds, healing you.</span>")
|
||||
..()
|
||||
return
|
||||
|
||||
datum/reagent/synthflesh/reaction_turf(var/turf/T, var/volume) //let's make a mess!
|
||||
/datum/reagent/synthflesh/reaction_turf(turf/T, volume) //let's make a mess!
|
||||
src = null
|
||||
if(volume >= 5)
|
||||
new /obj/effect/decal/cleanable/blood/gibs/cleangibs(T)
|
||||
playsound(T, 'sound/effects/splat.ogg', 50, 1, -3)
|
||||
return
|
||||
|
||||
datum/reagent/charcoal
|
||||
/datum/reagent/charcoal
|
||||
name = "Charcoal"
|
||||
id = "charcoal"
|
||||
description = "Activated charcoal helps to absorb toxins."
|
||||
reagent_state = LIQUID
|
||||
color = "#000000"
|
||||
|
||||
datum/reagent/charcoal/on_mob_life(var/mob/living/M as mob)
|
||||
/datum/reagent/charcoal/on_mob_life(mob/living/M)
|
||||
if(!M) M = holder.my_atom
|
||||
M.adjustToxLoss(-1.5*REM)
|
||||
if(prob(50))
|
||||
@@ -120,7 +114,6 @@ datum/reagent/charcoal/on_mob_life(var/mob/living/M as mob)
|
||||
if(R != src)
|
||||
M.reagents.remove_reagent(R.id,1)
|
||||
..()
|
||||
return
|
||||
|
||||
/datum/chemical_reaction/charcoal
|
||||
name = "Charcoal"
|
||||
@@ -165,7 +158,7 @@ datum/reagent/charcoal/on_mob_life(var/mob/living/M as mob)
|
||||
result_amount = 4
|
||||
mix_message = "The solution yields an astringent powder."
|
||||
|
||||
datum/reagent/omnizine
|
||||
/datum/reagent/omnizine
|
||||
name = "Omnizine"
|
||||
id = "omnizine"
|
||||
description = "Omnizine is a highly potent healing medication that can be used to treat a wide range of injuries."
|
||||
@@ -175,7 +168,7 @@ datum/reagent/omnizine
|
||||
overdose_threshold = 30
|
||||
addiction_chance = 5
|
||||
|
||||
/datum/reagent/omnizine/on_mob_life(var/mob/living/M as mob)
|
||||
/datum/reagent/omnizine/on_mob_life(mob/living/M)
|
||||
if(!M) M = holder.my_atom
|
||||
M.adjustToxLoss(-1*REM)
|
||||
M.adjustOxyLoss(-1*REM)
|
||||
@@ -184,9 +177,8 @@ datum/reagent/omnizine
|
||||
if(prob(50))
|
||||
M.losebreath -= 1
|
||||
..()
|
||||
return
|
||||
|
||||
/datum/reagent/omnizine/overdose_process(var/mob/living/M as mob, severity)
|
||||
/datum/reagent/omnizine/overdose_process(mob/living/M, severity)
|
||||
var/effect = ..()
|
||||
if(severity == 1) //lesser
|
||||
M.stuttering += 1
|
||||
@@ -220,7 +212,7 @@ datum/reagent/omnizine
|
||||
M.Dizzy(5)
|
||||
M.Weaken(3)
|
||||
|
||||
datum/reagent/calomel
|
||||
/datum/reagent/calomel
|
||||
name = "Calomel"
|
||||
id = "calomel"
|
||||
description = "This potent purgative rids the body of impurities. It is highly toxic however and close supervision is required."
|
||||
@@ -228,7 +220,7 @@ datum/reagent/calomel
|
||||
color = "#22AB35"
|
||||
metabolization_rate = 0.8
|
||||
|
||||
datum/reagent/calomel/on_mob_life(var/mob/living/M as mob)
|
||||
/datum/reagent/calomel/on_mob_life(mob/living/M)
|
||||
if(!M) M = holder.my_atom
|
||||
for(var/datum/reagent/R in M.reagents.reagent_list)
|
||||
if(R != src)
|
||||
@@ -238,7 +230,6 @@ datum/reagent/calomel/on_mob_life(var/mob/living/M as mob)
|
||||
if(prob(6))
|
||||
M.fakevomit()
|
||||
..()
|
||||
return
|
||||
|
||||
/datum/chemical_reaction/calomel
|
||||
name = "Calomel"
|
||||
@@ -249,19 +240,18 @@ datum/reagent/calomel/on_mob_life(var/mob/living/M as mob)
|
||||
min_temp = 374
|
||||
mix_message = "Stinging vapors rise from the solution."
|
||||
|
||||
datum/reagent/potass_iodide
|
||||
/datum/reagent/potass_iodide
|
||||
name = "Potassium Iodide"
|
||||
id = "potass_iodide"
|
||||
description = "Potassium Iodide is a medicinal drug used to counter the effects of radiation poisoning."
|
||||
reagent_state = LIQUID
|
||||
color = "#B4DCBE"
|
||||
|
||||
datum/reagent/potass_iodide/on_mob_life(var/mob/living/M as mob)
|
||||
/datum/reagent/potass_iodide/on_mob_life(mob/living/M)
|
||||
if(!M) M = holder.my_atom
|
||||
if(prob(80))
|
||||
M.radiation = max(0, M.radiation-1)
|
||||
..()
|
||||
return
|
||||
|
||||
/datum/chemical_reaction/potass_iodide
|
||||
name = "Potassium Iodide"
|
||||
@@ -271,14 +261,14 @@ datum/reagent/potass_iodide/on_mob_life(var/mob/living/M as mob)
|
||||
result_amount = 2
|
||||
mix_message = "The solution settles calmly and emits gentle fumes."
|
||||
|
||||
datum/reagent/pen_acid
|
||||
/datum/reagent/pen_acid
|
||||
name = "Pentetic Acid"
|
||||
id = "pen_acid"
|
||||
description = "Pentetic Acid is an aggressive chelation agent. May cause tissue damage. Use with caution."
|
||||
reagent_state = LIQUID
|
||||
color = "#C8A5DC"
|
||||
|
||||
datum/reagent/pen_acid/on_mob_life(var/mob/living/M as mob)
|
||||
/datum/reagent/pen_acid/on_mob_life(mob/living/M)
|
||||
if(!M) M = holder.my_atom
|
||||
for(var/datum/reagent/R in M.reagents.reagent_list)
|
||||
if(R != src)
|
||||
@@ -300,7 +290,7 @@ datum/reagent/pen_acid/on_mob_life(var/mob/living/M as mob)
|
||||
result_amount = 6
|
||||
mix_message = "The substance becomes very still, emitting a curious haze."
|
||||
|
||||
datum/reagent/sal_acid
|
||||
/datum/reagent/sal_acid
|
||||
name = "Salicylic Acid"
|
||||
id = "sal_acid"
|
||||
description = "This is a is a standard salicylate pain reliever and fever reducer."
|
||||
@@ -310,7 +300,7 @@ datum/reagent/sal_acid
|
||||
shock_reduction = 25
|
||||
overdose_threshold = 25
|
||||
|
||||
datum/reagent/sal_acid/on_mob_life(var/mob/living/M as mob)
|
||||
/datum/reagent/sal_acid/on_mob_life(mob/living/M)
|
||||
if(!M) M = holder.my_atom
|
||||
if(prob(55))
|
||||
M.adjustBruteLoss(-2*REM)
|
||||
@@ -319,7 +309,6 @@ datum/reagent/sal_acid/on_mob_life(var/mob/living/M as mob)
|
||||
if(H.traumatic_shock < 100)
|
||||
H.shock_stage = 0
|
||||
..()
|
||||
return
|
||||
|
||||
/datum/chemical_reaction/sal_acid
|
||||
name = "Salicyclic Acid"
|
||||
@@ -330,7 +319,7 @@ datum/reagent/sal_acid/on_mob_life(var/mob/living/M as mob)
|
||||
mix_message = "The mixture crystallizes."
|
||||
mix_sound = 'sound/goonstation/misc/drinkfizz.ogg'
|
||||
|
||||
datum/reagent/salbutamol
|
||||
/datum/reagent/salbutamol
|
||||
name = "Salbutamol"
|
||||
id = "salbutamol"
|
||||
description = "Salbutamol is a common bronchodilation medication for asthmatics. It may help with other breathing problems as well."
|
||||
@@ -338,12 +327,11 @@ datum/reagent/salbutamol
|
||||
color = "#00FFFF"
|
||||
metabolization_rate = 0.2
|
||||
|
||||
datum/reagent/salbutamol/on_mob_life(var/mob/living/M as mob)
|
||||
/datum/reagent/salbutamol/on_mob_life(mob/living/M)
|
||||
if(!M) M = holder.my_atom
|
||||
M.adjustOxyLoss(-6*REM)
|
||||
M.losebreath = max(0, M.losebreath-4)
|
||||
..()
|
||||
return
|
||||
|
||||
/datum/chemical_reaction/salbutamol
|
||||
name = "Salbutamol"
|
||||
@@ -354,7 +342,7 @@ datum/reagent/salbutamol/on_mob_life(var/mob/living/M as mob)
|
||||
mix_message = "The solution bubbles freely, creating a head of bluish foam."
|
||||
mix_sound = 'sound/goonstation/misc/drinkfizz.ogg'
|
||||
|
||||
datum/reagent/perfluorodecalin
|
||||
/datum/reagent/perfluorodecalin
|
||||
name = "Perfluorodecalin"
|
||||
id = "perfluorodecalin"
|
||||
description = "This experimental perfluoronated solvent has applications in liquid breathing and tissue oxygenation. Use with caution."
|
||||
@@ -363,7 +351,7 @@ datum/reagent/perfluorodecalin
|
||||
metabolization_rate = 0.2
|
||||
addiction_chance = 20
|
||||
|
||||
datum/reagent/perfluorodecalin/on_mob_life(var/mob/living/carbon/human/M as mob)
|
||||
/datum/reagent/perfluorodecalin/on_mob_life(mob/living/carbon/human/M)
|
||||
if(!M) M = holder.my_atom
|
||||
M.adjustOxyLoss(-25*REM)
|
||||
if(volume >= 4)
|
||||
@@ -373,7 +361,6 @@ datum/reagent/perfluorodecalin/on_mob_life(var/mob/living/carbon/human/M as mob)
|
||||
M.adjustBruteLoss(-1*REM)
|
||||
M.adjustFireLoss(-1*REM)
|
||||
..()
|
||||
return
|
||||
|
||||
/datum/chemical_reaction/perfluorodecalin
|
||||
name = "Perfluorodecalin"
|
||||
@@ -395,7 +382,7 @@ datum/reagent/perfluorodecalin/on_mob_life(var/mob/living/carbon/human/M as mob)
|
||||
overdose_threshold = 35
|
||||
addiction_chance = 25
|
||||
|
||||
/datum/reagent/ephedrine/on_mob_life(var/mob/living/M as mob)
|
||||
/datum/reagent/ephedrine/on_mob_life(mob/living/M)
|
||||
if(!M) M = holder.my_atom
|
||||
M.drowsyness = max(0, M.drowsyness-5)
|
||||
M.AdjustParalysis(-1)
|
||||
@@ -411,9 +398,8 @@ datum/reagent/perfluorodecalin/on_mob_life(var/mob/living/carbon/human/M as mob)
|
||||
M.adjustBruteLoss(-1)
|
||||
M.adjustFireLoss(-1)
|
||||
..()
|
||||
return
|
||||
|
||||
/datum/reagent/ephedrine/overdose_process(var/mob/living/M as mob, severity)
|
||||
/datum/reagent/ephedrine/overdose_process(mob/living/M, severity)
|
||||
var/effect = ..()
|
||||
if(severity == 1)
|
||||
if(effect <= 1)
|
||||
@@ -442,7 +428,7 @@ datum/reagent/perfluorodecalin/on_mob_life(var/mob/living/carbon/human/M as mob)
|
||||
result_amount = 4
|
||||
mix_message = "The solution fizzes and gives off toxic fumes."
|
||||
|
||||
datum/reagent/diphenhydramine
|
||||
/datum/reagent/diphenhydramine
|
||||
name = "Diphenhydramine"
|
||||
id = "diphenhydramine"
|
||||
description = "Anti-allergy medication. May cause drowsiness, do not operate heavy machinery while using this."
|
||||
@@ -450,7 +436,7 @@ datum/reagent/diphenhydramine
|
||||
color = "#5BCBE1"
|
||||
addiction_chance = 10
|
||||
|
||||
datum/reagent/diphenhydramine/on_mob_life(var/mob/living/M as mob)
|
||||
/datum/reagent/diphenhydramine/on_mob_life(mob/living/M)
|
||||
if(!M) M = holder.my_atom
|
||||
M.jitteriness = max(0, M.jitteriness-20)
|
||||
M.reagents.remove_reagent("histamine",3)
|
||||
@@ -462,7 +448,6 @@ datum/reagent/diphenhydramine/on_mob_life(var/mob/living/M as mob)
|
||||
M.drowsyness += 1
|
||||
M.visible_message("<span class='notice'>[M] looks a bit dazed.</span>")
|
||||
..()
|
||||
return
|
||||
|
||||
/datum/chemical_reaction/diphenhydramine
|
||||
name = "Diphenhydramine"
|
||||
@@ -473,7 +458,7 @@ datum/reagent/diphenhydramine/on_mob_life(var/mob/living/M as mob)
|
||||
mix_message = "The mixture fizzes gently."
|
||||
mix_sound = 'sound/goonstation/misc/drinkfizz.ogg'
|
||||
|
||||
datum/reagent/morphine
|
||||
/datum/reagent/morphine
|
||||
name = "Morphine"
|
||||
id = "morphine"
|
||||
description = "A strong but highly addictive opiate painkiller with sedative side effects."
|
||||
@@ -483,7 +468,7 @@ datum/reagent/morphine
|
||||
addiction_chance = 50
|
||||
shock_reduction = 50
|
||||
|
||||
datum/reagent/morphine/on_mob_life(var/mob/living/M as mob)
|
||||
/datum/reagent/morphine/on_mob_life(mob/living/M)
|
||||
if(!M) M = holder.my_atom
|
||||
M.jitteriness = max(0, M.jitteriness-25)
|
||||
switch(current_cycle)
|
||||
@@ -500,9 +485,8 @@ datum/reagent/morphine/on_mob_life(var/mob/living/M as mob)
|
||||
if(H.traumatic_shock < 100)
|
||||
H.shock_stage = 0
|
||||
..()
|
||||
return
|
||||
|
||||
datum/reagent/oculine/on_mob_life(var/mob/living/M as mob)
|
||||
/datum/reagent/oculine/on_mob_life(mob/living/M)
|
||||
if(!M) M = holder.my_atom
|
||||
if(prob(80))
|
||||
if(ishuman(M))
|
||||
@@ -521,7 +505,6 @@ datum/reagent/oculine/on_mob_life(var/mob/living/M as mob)
|
||||
if(prob(30))
|
||||
M.ear_deaf = 0
|
||||
..()
|
||||
return
|
||||
|
||||
/datum/chemical_reaction/oculine
|
||||
name = "Oculine"
|
||||
@@ -531,7 +514,7 @@ datum/reagent/oculine/on_mob_life(var/mob/living/M as mob)
|
||||
result_amount = 3
|
||||
mix_message = "The mixture settles, becoming a milky white."
|
||||
|
||||
datum/reagent/oculine
|
||||
/datum/reagent/oculine
|
||||
name = "Oculine"
|
||||
id = "oculine"
|
||||
description = "Oculine is a saline eye medication with mydriatic and antibiotic effects."
|
||||
@@ -540,7 +523,7 @@ datum/reagent/oculine
|
||||
metabolization_rate = 0.4
|
||||
var/cycle_amount = 0
|
||||
|
||||
datum/reagent/atropine
|
||||
/datum/reagent/atropine
|
||||
name = "Atropine"
|
||||
id = "atropine"
|
||||
description = "Atropine is a potent cardiac resuscitant but it can causes confusion, dizzyness and hyperthermia."
|
||||
@@ -549,7 +532,7 @@ datum/reagent/atropine
|
||||
metabolization_rate = 0.2
|
||||
overdose_threshold = 25
|
||||
|
||||
datum/reagent/atropine/on_mob_life(var/mob/living/M as mob)
|
||||
/datum/reagent/atropine/on_mob_life(mob/living/M)
|
||||
if(!M) M = holder.my_atom
|
||||
M.dizziness += 1
|
||||
M.confused = max(M.confused, 5)
|
||||
@@ -567,7 +550,6 @@ datum/reagent/atropine/on_mob_life(var/mob/living/M as mob)
|
||||
M.adjustToxLoss(1)
|
||||
M.reagents.remove_reagent("sarin", 20)
|
||||
..()
|
||||
return
|
||||
|
||||
/datum/chemical_reaction/atropine
|
||||
name = "Atropine"
|
||||
@@ -577,7 +559,7 @@ datum/reagent/atropine/on_mob_life(var/mob/living/M as mob)
|
||||
result_amount = 5
|
||||
mix_message = "A horrid smell like something died drifts from the mixture."
|
||||
|
||||
datum/reagent/epinephrine
|
||||
/datum/reagent/epinephrine
|
||||
name = "Epinephrine"
|
||||
id = "epinephrine"
|
||||
description = "Epinephrine is a potent neurotransmitter, used in medical emergencies to halt anaphylactic shock and prevent cardiac arrest."
|
||||
@@ -586,7 +568,7 @@ datum/reagent/epinephrine
|
||||
metabolization_rate = 0.2
|
||||
overdose_threshold = 20
|
||||
|
||||
datum/reagent/epinephrine/on_mob_life(var/mob/living/M as mob)
|
||||
/datum/reagent/epinephrine/on_mob_life(mob/living/M)
|
||||
if(!M) M = holder.my_atom
|
||||
M.drowsyness = max(0, M.drowsyness-5)
|
||||
if(prob(20))
|
||||
@@ -609,9 +591,8 @@ datum/reagent/epinephrine/on_mob_life(var/mob/living/M as mob)
|
||||
M.adjustBruteLoss(-1*REM)
|
||||
M.adjustFireLoss(-1*REM)
|
||||
..()
|
||||
return
|
||||
|
||||
/datum/reagent/epinephrine/overdose_process(var/mob/living/M as mob, severity)
|
||||
/datum/reagent/epinephrine/overdose_process(mob/living/M, severity)
|
||||
var/effect = ..()
|
||||
if(severity == 1)
|
||||
if(effect <= 1)
|
||||
@@ -641,7 +622,7 @@ datum/reagent/epinephrine/on_mob_life(var/mob/living/M as mob)
|
||||
mix_message = "Tiny white crystals precipitate out of the solution."
|
||||
mix_sound = 'sound/goonstation/misc/drinkfizz.ogg'
|
||||
|
||||
datum/reagent/strange_reagent
|
||||
/datum/reagent/strange_reagent
|
||||
name = "Strange Reagent"
|
||||
id = "strange_reagent"
|
||||
description = "A glowing green fluid highly reminiscent of nuclear waste."
|
||||
@@ -649,7 +630,7 @@ datum/reagent/strange_reagent
|
||||
color = "#A0E85E"
|
||||
metabolization_rate = 0.2
|
||||
|
||||
datum/reagent/strange_reagent/reaction_mob(var/mob/living/M as mob, var/method=TOUCH, var/volume)
|
||||
/datum/reagent/strange_reagent/reaction_mob(mob/living/M, method=TOUCH, volume)
|
||||
if(isanimal(M))
|
||||
if(method == TOUCH)
|
||||
var/mob/living/simple_animal/SM = M
|
||||
@@ -680,15 +661,13 @@ datum/reagent/strange_reagent/reaction_mob(var/mob/living/M as mob, var/method=T
|
||||
M.stat = UNCONSCIOUS
|
||||
add_logs(M, M, "revived", object="strange reagent")
|
||||
..()
|
||||
return
|
||||
|
||||
datum/reagent/strange_reagent/on_mob_life(var/mob/living/M as mob)
|
||||
/datum/reagent/strange_reagent/on_mob_life(mob/living/M)
|
||||
if(!M) M = holder.my_atom
|
||||
if(prob(10))
|
||||
M.adjustBruteLoss(2*REM)
|
||||
M.adjustToxLoss(2*REM)
|
||||
..()
|
||||
return
|
||||
|
||||
/datum/chemical_reaction/strange_reagent
|
||||
name = "Strange Reagent"
|
||||
@@ -698,7 +677,7 @@ datum/reagent/strange_reagent/on_mob_life(var/mob/living/M as mob)
|
||||
result_amount = 3
|
||||
mix_message = "The substance begins moving on its own somehow."
|
||||
|
||||
datum/reagent/life
|
||||
/datum/reagent/life
|
||||
name = "Life"
|
||||
id = "life"
|
||||
description = "Can create a life form, however it is not guaranteed to be friendly. May want to have Security on hot standby."
|
||||
@@ -714,13 +693,12 @@ datum/reagent/life
|
||||
result_amount = 3
|
||||
min_temp = 374
|
||||
|
||||
/datum/chemical_reaction/life/on_reaction(var/datum/reagents/holder, var/created_volume)
|
||||
/datum/chemical_reaction/life/on_reaction(datum/reagents/holder, created_volume)
|
||||
chemical_mob_spawn(holder, 1, "Life")
|
||||
|
||||
/datum/reagent/mannitol/on_mob_life(mob/living/M as mob)
|
||||
/datum/reagent/mannitol/on_mob_life(mob/living/M)
|
||||
M.adjustBrainLoss(-3)
|
||||
..()
|
||||
return
|
||||
|
||||
/datum/chemical_reaction/mannitol
|
||||
name = "Mannitol"
|
||||
@@ -736,7 +714,7 @@ datum/reagent/life
|
||||
description = "Mannitol is a sugar alcohol that can help alleviate cranial swelling."
|
||||
color = "#D1D1F1"
|
||||
|
||||
/datum/reagent/mutadone/on_mob_life(var/mob/living/carbon/human/M as mob)
|
||||
/datum/reagent/mutadone/on_mob_life(mob/living/carbon/human/M)
|
||||
M.jitteriness = 0
|
||||
var/needs_update = M.mutations.len > 0 || M.disabilities > 0 || M.sdisabilities > 0
|
||||
|
||||
@@ -753,7 +731,6 @@ datum/reagent/life
|
||||
var/mob/living/carbon/human/H = M
|
||||
H.update_mutations()
|
||||
..()
|
||||
return
|
||||
|
||||
/datum/chemical_reaction/mutadone
|
||||
name = "Mutadone"
|
||||
@@ -770,13 +747,13 @@ datum/reagent/life
|
||||
description = "Mutadone is an experimental bromide that can cure genetic abnomalities."
|
||||
color = "#5096C8"
|
||||
|
||||
datum/reagent/antihol
|
||||
/datum/reagent/antihol
|
||||
name = "Antihol"
|
||||
id = "antihol"
|
||||
description = "A medicine which quickly eliminates alcohol in the body."
|
||||
color = "#009CA8"
|
||||
|
||||
datum/reagent/antihol/on_mob_life(var/mob/living/M as mob)
|
||||
/datum/reagent/antihol/on_mob_life(mob/living/M)
|
||||
M.slurring = 0
|
||||
M.AdjustDrunk(-4)
|
||||
M.reagents.remove_all_type(/datum/reagent/ethanol, 8, 0, 1)
|
||||
@@ -800,7 +777,7 @@ datum/reagent/antihol/on_mob_life(var/mob/living/M as mob)
|
||||
color = "#C8A5DC"
|
||||
metabolization_rate = 0.4
|
||||
|
||||
datum/reagent/stimulants/on_mob_life(var/mob/living/M as mob)
|
||||
/datum/reagent/stimulants/on_mob_life(mob/living/M)
|
||||
if(!M) M = holder.my_atom
|
||||
if(volume > 5)
|
||||
M.adjustOxyLoss(-5*REM)
|
||||
@@ -823,11 +800,10 @@ datum/reagent/stimulants/on_mob_life(var/mob/living/M as mob)
|
||||
M.Stun(3)
|
||||
..()
|
||||
|
||||
datum/reagent/stimulants/reagent_deleted(var/mob/living/M as mob)
|
||||
/datum/reagent/stimulants/reagent_deleted(mob/living/M)
|
||||
if(!M) M = holder.my_atom
|
||||
M.status_flags |= CANSTUN | CANWEAKEN | CANPARALYSE
|
||||
..()
|
||||
return
|
||||
|
||||
/datum/reagent/medicine/stimulative_agent
|
||||
name = "Stimulative Agent"
|
||||
@@ -856,18 +832,17 @@ datum/reagent/stimulants/reagent_deleted(var/mob/living/M as mob)
|
||||
M.adjustToxLoss(1*REM)
|
||||
M.losebreath++
|
||||
|
||||
datum/reagent/insulin
|
||||
/datum/reagent/insulin
|
||||
name = "Insulin"
|
||||
id = "insulin"
|
||||
description = "A hormone generated by the pancreas responsible for metabolizing carbohydrates and fat in the bloodstream."
|
||||
reagent_state = LIQUID
|
||||
color = "#C8A5DC"
|
||||
|
||||
datum/reagent/insulin/on_mob_life(var/mob/living/M as mob)
|
||||
/datum/reagent/insulin/on_mob_life(mob/living/M)
|
||||
if(!M) M = holder.my_atom
|
||||
M.reagents.remove_reagent("sugar", 5)
|
||||
..()
|
||||
return
|
||||
|
||||
|
||||
/datum/reagent/simethicone
|
||||
@@ -884,7 +859,7 @@ datum/reagent/insulin/on_mob_life(var/mob/living/M as mob)
|
||||
result_amount = 4
|
||||
|
||||
|
||||
datum/reagent/teporone
|
||||
/datum/reagent/teporone
|
||||
name = "Teporone"
|
||||
id = "teporone"
|
||||
description = "This experimental plasma-based compound seems to regulate body temperature."
|
||||
@@ -893,7 +868,7 @@ datum/reagent/teporone
|
||||
addiction_chance = 20
|
||||
overdose_threshold = 50
|
||||
|
||||
datum/reagent/teporone/on_mob_life(mob/living/M)
|
||||
/datum/reagent/teporone/on_mob_life(mob/living/M)
|
||||
if(!M) M = holder.my_atom
|
||||
if(M.bodytemperature > 310)
|
||||
M.bodytemperature = max(310, M.bodytemperature - (40 * TEMPERATURE_DAMAGE_COEFFICIENT))
|
||||
@@ -910,14 +885,14 @@ datum/reagent/teporone/on_mob_life(mob/living/M)
|
||||
mix_message = "The mixture turns an odd lavender color."
|
||||
mix_sound = 'sound/goonstation/misc/drinkfizz.ogg'
|
||||
|
||||
datum/reagent/haloperidol
|
||||
/datum/reagent/haloperidol
|
||||
name = "Haloperidol"
|
||||
id = "haloperidol"
|
||||
description = "Haloperidol is a powerful antipsychotic and sedative. Will help control psychiatric problems, but may cause brain damage."
|
||||
reagent_state = LIQUID
|
||||
color = "#FFDCFF"
|
||||
|
||||
datum/reagent/haloperidol/on_mob_life(var/mob/living/M as mob)
|
||||
/datum/reagent/haloperidol/on_mob_life(mob/living/M)
|
||||
if(!M) M = holder.my_atom
|
||||
M.reagents.remove_reagent("crank", 5)
|
||||
M.reagents.remove_reagent("methamphetamine", 5)
|
||||
@@ -939,7 +914,6 @@ datum/reagent/haloperidol/on_mob_life(var/mob/living/M as mob)
|
||||
if(prob(20))
|
||||
M.adjustBrainLoss(1)
|
||||
..()
|
||||
return
|
||||
|
||||
/datum/chemical_reaction/haloperidol
|
||||
name = "Haloperidol"
|
||||
@@ -957,7 +931,7 @@ datum/reagent/haloperidol/on_mob_life(var/mob/living/M as mob)
|
||||
reagent_state = LIQUID
|
||||
color = "#96DEDE"
|
||||
|
||||
/datum/reagent/ether/on_mob_life(var/mob/living/M as mob)
|
||||
/datum/reagent/ether/on_mob_life(mob/living/M)
|
||||
if(!M) M = holder.my_atom
|
||||
M.jitteriness = max(M.jitteriness-25,0)
|
||||
switch(current_cycle)
|
||||
@@ -970,7 +944,6 @@ datum/reagent/haloperidol/on_mob_life(var/mob/living/M as mob)
|
||||
M.Paralyse(15)
|
||||
M.drowsyness = max(M.drowsyness, 20)
|
||||
..()
|
||||
return
|
||||
|
||||
/datum/chemical_reaction/ether
|
||||
name = "Ether"
|
||||
@@ -1000,14 +973,15 @@ datum/reagent/haloperidol/on_mob_life(var/mob/living/M as mob)
|
||||
required_reagents = list("oil" = 1, "sterilizine" = 1)
|
||||
result_amount = 2
|
||||
|
||||
/datum/reagent/degreaser/reaction_turf(var/turf/simulated/T, var/volume)
|
||||
if(!istype(T)) return
|
||||
/datum/reagent/degreaser/reaction_turf(turf/simulated/T, volume)
|
||||
if(!istype(T))
|
||||
return
|
||||
src = null
|
||||
if(volume >= 1)
|
||||
if(istype(T) && T.wet)
|
||||
T.MakeDry(TURF_WET_LUBE)
|
||||
|
||||
/datum/reagent/degreaser/on_mob_life(var/mob/living/M as mob)
|
||||
/datum/reagent/degreaser/on_mob_life(mob/living/M)
|
||||
if(!M) M = holder.my_atom
|
||||
if(prob(50)) //Same effects as coffee, to help purge ill effects like paralysis
|
||||
M.AdjustParalysis(-1)
|
||||
@@ -1022,7 +996,6 @@ datum/reagent/haloperidol/on_mob_life(var/mob/living/M as mob)
|
||||
else
|
||||
M.reagents.remove_reagent(R.id,1)
|
||||
..()
|
||||
return
|
||||
|
||||
//Liquid Solder: Mannitol
|
||||
/datum/reagent/liquid_solder
|
||||
@@ -1033,10 +1006,9 @@ datum/reagent/haloperidol/on_mob_life(var/mob/living/M as mob)
|
||||
color = "#D7B395"
|
||||
process_flags = SYNTHETIC
|
||||
|
||||
/datum/reagent/liquid_solder/on_mob_life(mob/living/M as mob)
|
||||
/datum/reagent/liquid_solder/on_mob_life(mob/living/M)
|
||||
M.adjustBrainLoss(-3)
|
||||
..()
|
||||
return
|
||||
|
||||
/datum/chemical_reaction/liquid_solder
|
||||
name = "Liquid Solder"
|
||||
@@ -1048,19 +1020,18 @@ datum/reagent/haloperidol/on_mob_life(var/mob/living/M as mob)
|
||||
mix_message = "The solution gently swirls with a metallic sheen."
|
||||
|
||||
|
||||
datum/reagent/medicine/syndicate_nanites //Used exclusively by Syndicate medical cyborgs
|
||||
/datum/reagent/medicine/syndicate_nanites //Used exclusively by Syndicate medical cyborgs
|
||||
name = "Restorative Nanites"
|
||||
id = "syndicate_nanites"
|
||||
description = "Miniature medical robots that swiftly restore bodily damage. May begin to attack their host's cells in high amounts."
|
||||
reagent_state = SOLID
|
||||
color = "#555555"
|
||||
|
||||
datum/reagent/medicine/syndicate_nanites/on_mob_life(mob/living/M)
|
||||
/datum/reagent/medicine/syndicate_nanites/on_mob_life(mob/living/M)
|
||||
M.adjustBruteLoss(-5*REM) //A ton of healing - this is a 50 telecrystal investment.
|
||||
M.adjustFireLoss(-5*REM)
|
||||
M.adjustOxyLoss(-15*REM)
|
||||
M.adjustToxLoss(-5*REM)
|
||||
M.adjustBrainLoss(-15*REM)
|
||||
M.adjustCloneLoss(-3*REM)
|
||||
..()
|
||||
return
|
||||
..()
|
||||
@@ -12,7 +12,7 @@
|
||||
var/chem_temp = 300
|
||||
var/list/datum/reagent/addiction_list = new/list()
|
||||
|
||||
/datum/reagents/proc/metabolize(var/mob/M)
|
||||
/datum/reagents/proc/metabolize(mob/M)
|
||||
if(M)
|
||||
if(!istype(M, /mob/living)) //Non-living mobs can't metabolize reagents, so don't bother trying (runtime safety check)
|
||||
return
|
||||
@@ -95,14 +95,14 @@
|
||||
R.on_tick()
|
||||
return
|
||||
|
||||
/datum/reagents/proc/check_gofast(var/mob/M)
|
||||
/datum/reagents/proc/check_gofast(mob/M)
|
||||
if(istype(M, /mob))
|
||||
if(M.reagents.has_reagent("unholywater")||M.reagents.has_reagent("nuka_cola")||M.reagents.has_reagent("stimulative_agent"))
|
||||
return 1
|
||||
else
|
||||
M.status_flags &= ~GOTTAGOFAST
|
||||
|
||||
/datum/reagents/proc/check_goreallyfast(var/mob/M)
|
||||
/datum/reagents/proc/check_goreallyfast(mob/M)
|
||||
if(istype(M, /mob))
|
||||
if(M.reagents.has_reagent("methamphetamine"))
|
||||
return 1
|
||||
@@ -110,27 +110,27 @@
|
||||
M.status_flags &= ~GOTTAGOREALLYFAST
|
||||
|
||||
// Called every time reagent containers process.
|
||||
/datum/reagent/proc/on_tick(var/data)
|
||||
/datum/reagent/proc/on_tick(data)
|
||||
return
|
||||
|
||||
// Called when the reagent container is hit by an explosion
|
||||
/datum/reagent/proc/on_ex_act(var/severity)
|
||||
/datum/reagent/proc/on_ex_act(severity)
|
||||
return
|
||||
|
||||
// Called if the reagent has passed the overdose threshold and is set to be triggering overdose effects
|
||||
/datum/reagent/proc/overdose_process(var/mob/living/M as mob, severity)
|
||||
/datum/reagent/proc/overdose_process(mob/living/M, severity)
|
||||
var/effect = rand(1, 100) - severity
|
||||
if(effect <= 8)
|
||||
M.adjustToxLoss(severity)
|
||||
return effect
|
||||
|
||||
/datum/reagent/proc/overdose_start(var/mob/living/M as mob)
|
||||
/datum/reagent/proc/overdose_start(mob/living/M)
|
||||
return
|
||||
|
||||
/datum/reagent/proc/addiction_act_stage1(var/mob/living/M as mob)
|
||||
/datum/reagent/proc/addiction_act_stage1(mob/living/M)
|
||||
return
|
||||
|
||||
/datum/reagent/proc/addiction_act_stage2(var/mob/living/M as mob)
|
||||
/datum/reagent/proc/addiction_act_stage2(mob/living/M)
|
||||
if(prob(8))
|
||||
M.emote("shiver")
|
||||
if(prob(8))
|
||||
@@ -138,7 +138,7 @@
|
||||
if(prob(4))
|
||||
to_chat(M, "<span class='notice'>You feel a dull headache.</span>")
|
||||
|
||||
/datum/reagent/proc/addiction_act_stage3(var/mob/living/M as mob)
|
||||
/datum/reagent/proc/addiction_act_stage3(mob/living/M)
|
||||
if(prob(8))
|
||||
M.emote("twitch_s")
|
||||
if(prob(8))
|
||||
@@ -146,7 +146,7 @@
|
||||
if(prob(4))
|
||||
to_chat(M, "<span class='warning'>You begin craving [name]!</span>")
|
||||
|
||||
/datum/reagent/proc/addiction_act_stage4(var/mob/living/M as mob)
|
||||
/datum/reagent/proc/addiction_act_stage4(mob/living/M)
|
||||
if(prob(8))
|
||||
M.emote("twitch")
|
||||
if(prob(4))
|
||||
@@ -154,7 +154,7 @@
|
||||
if(prob(4))
|
||||
to_chat(M, "<span class='warning'>You REALLY crave some [name]!</span>")
|
||||
|
||||
/datum/reagent/proc/addiction_act_stage5(var/mob/living/M as mob)
|
||||
/datum/reagent/proc/addiction_act_stage5(mob/living/M)
|
||||
if(prob(8))
|
||||
M.emote("twitch")
|
||||
if(prob(6))
|
||||
|
||||
@@ -5,67 +5,65 @@
|
||||
|
||||
var/list/random_color_list = list("#00aedb","#a200ff","#f47835","#d41243","#d11141","#00b159","#00aedb","#f37735","#ffc425","#008744","#0057e7","#d62d20","#ffa700")
|
||||
|
||||
datum/reagent/oil
|
||||
/datum/reagent/oil
|
||||
name = "Oil"
|
||||
id = "oil"
|
||||
description = "A decent lubricant for machines. High in benzene, naptha and other hydrocarbons."
|
||||
reagent_state = LIQUID
|
||||
color = "#3C3C3C"
|
||||
|
||||
datum/reagent/iodine
|
||||
/datum/reagent/iodine
|
||||
name = "Iodine"
|
||||
id = "iodine"
|
||||
description = "A purple gaseous element."
|
||||
reagent_state = GAS
|
||||
color = "#493062"
|
||||
|
||||
datum/reagent/carpet
|
||||
/datum/reagent/carpet
|
||||
name = "Carpet"
|
||||
id = "carpet"
|
||||
description = "A covering of thick fabric used on floors. This type looks particularly gross."
|
||||
reagent_state = LIQUID
|
||||
color = "#701345"
|
||||
|
||||
/datum/reagent/carpet/reaction_turf(var/turf/simulated/T, var/volume)
|
||||
/datum/reagent/carpet/reaction_turf(turf/simulated/T, volume)
|
||||
if(istype(T, /turf/simulated/floor/plating) || istype(T, /turf/simulated/floor/plasteel))
|
||||
var/turf/simulated/floor/F = T
|
||||
F.ChangeTurf(/turf/simulated/floor/carpet)
|
||||
..()
|
||||
return
|
||||
|
||||
datum/reagent/bromine
|
||||
/datum/reagent/bromine
|
||||
name = "Bromine"
|
||||
id = "bromine"
|
||||
description = "A red-brown liquid element."
|
||||
reagent_state = LIQUID
|
||||
color = "#4E3A3A"
|
||||
|
||||
datum/reagent/phenol
|
||||
/datum/reagent/phenol
|
||||
name = "Phenol"
|
||||
id = "phenol"
|
||||
description = "Also known as carbolic acid, this is a useful building block in organic chemistry."
|
||||
reagent_state = LIQUID
|
||||
color = "#525050"
|
||||
|
||||
datum/reagent/ash
|
||||
/datum/reagent/ash
|
||||
name = "Ash"
|
||||
id = "ash"
|
||||
description = "Ashes to ashes, dust to dust."
|
||||
reagent_state = LIQUID
|
||||
color = "#191919"
|
||||
|
||||
datum/reagent/acetone
|
||||
/datum/reagent/acetone
|
||||
name = "Acetone"
|
||||
id = "acetone"
|
||||
description = "Pure 100% nail polish remover, also works as an industrial solvent."
|
||||
reagent_state = LIQUID
|
||||
color = "#474747"
|
||||
|
||||
/datum/reagent/acetone/on_mob_life(var/mob/living/M as mob)
|
||||
/datum/reagent/acetone/on_mob_life(mob/living/M)
|
||||
if(!M) M = holder.my_atom
|
||||
M.adjustToxLoss(1.5)
|
||||
..()
|
||||
return
|
||||
|
||||
/datum/chemical_reaction/acetone
|
||||
name = "acetone"
|
||||
@@ -111,7 +109,7 @@ datum/reagent/acetone
|
||||
mix_sound = null
|
||||
no_message = 1
|
||||
|
||||
datum/reagent/colorful_reagent
|
||||
/datum/reagent/colorful_reagent
|
||||
name = "Colorful Reagent"
|
||||
id = "colorful_reagent"
|
||||
description = "It's pure liquid colors. That's a thing now."
|
||||
@@ -126,22 +124,20 @@ datum/reagent/colorful_reagent
|
||||
result_amount = 6
|
||||
mix_message = "The substance flashes multiple colors and emits the smell of a pocket protector."
|
||||
|
||||
datum/reagent/colorful_reagent/reaction_mob(var/mob/living/simple_animal/M, var/method=TOUCH, var/volume)
|
||||
/datum/reagent/colorful_reagent/reaction_mob(mob/living/simple_animal/M, method=TOUCH, volume)
|
||||
if(M && istype(M))
|
||||
M.color = pick(random_color_list)
|
||||
..()
|
||||
return
|
||||
|
||||
datum/reagent/colorful_reagent/reaction_obj(var/obj/O, var/volume)
|
||||
/datum/reagent/colorful_reagent/reaction_obj(obj/O, volume)
|
||||
if(O)
|
||||
O.color = pick(random_color_list)
|
||||
..()
|
||||
return
|
||||
datum/reagent/colorful_reagent/reaction_turf(var/turf/T, var/volume)
|
||||
|
||||
/datum/reagent/colorful_reagent/reaction_turf(turf/T, volume)
|
||||
if(T)
|
||||
T.color = pick(random_color_list)
|
||||
..()
|
||||
return
|
||||
|
||||
/datum/chemical_reaction/corgium
|
||||
name = "corgium"
|
||||
@@ -151,19 +147,17 @@ datum/reagent/colorful_reagent/reaction_turf(var/turf/T, var/volume)
|
||||
result_amount = 3
|
||||
min_temp = 374
|
||||
|
||||
datum/reagent/corgium
|
||||
/datum/reagent/corgium
|
||||
name = "Corgium"
|
||||
id = "corgium"
|
||||
description = "Corgi in liquid form. Don't ask."
|
||||
reagent_state = LIQUID
|
||||
color = "#F9A635"
|
||||
|
||||
/datum/chemical_reaction/corgium/on_reaction(var/datum/reagents/holder, var/created_volume)
|
||||
/datum/chemical_reaction/corgium/on_reaction(datum/reagents/holder, created_volume)
|
||||
var/location = get_turf(holder.my_atom)
|
||||
new /mob/living/simple_animal/pet/corgi(location)
|
||||
..()
|
||||
return
|
||||
|
||||
|
||||
/datum/chemical_reaction/flaptonium
|
||||
name = "Flaptonium"
|
||||
@@ -174,14 +168,12 @@ datum/reagent/corgium
|
||||
min_temp = 374
|
||||
mix_message = "The substance turns an airy sky-blue and foams up into a new shape."
|
||||
|
||||
/datum/chemical_reaction/flaptonium/on_reaction(var/datum/reagents/holder, var/created_volume)
|
||||
/datum/chemical_reaction/flaptonium/on_reaction(datum/reagents/holder, created_volume)
|
||||
var/location = get_turf(holder.my_atom)
|
||||
new /mob/living/simple_animal/parrot(location)
|
||||
..()
|
||||
return
|
||||
|
||||
|
||||
datum/reagent/hair_dye
|
||||
/datum/reagent/hair_dye
|
||||
name = "Quantum Hair Dye"
|
||||
id = "hair_dye"
|
||||
description = "A rather tubular and gnarly way of coloring totally bodacious hair. Duuuudddeee."
|
||||
@@ -195,7 +187,7 @@ datum/reagent/hair_dye
|
||||
required_reagents = list("colorful_reagent" = 1, "hairgrownium" = 1)
|
||||
result_amount = 2
|
||||
|
||||
datum/reagent/hair_dye/reaction_mob(var/mob/living/M, var/volume)
|
||||
/datum/reagent/hair_dye/reaction_mob(mob/living/M, volume)
|
||||
if(M && ishuman(M))
|
||||
var/mob/living/carbon/human/H = M
|
||||
var/obj/item/organ/external/head/head_organ = H.get_organ("head")
|
||||
@@ -208,9 +200,8 @@ datum/reagent/hair_dye/reaction_mob(var/mob/living/M, var/volume)
|
||||
H.update_hair()
|
||||
H.update_fhair()
|
||||
..()
|
||||
return
|
||||
|
||||
datum/reagent/hairgrownium
|
||||
/datum/reagent/hairgrownium
|
||||
name = "Hairgrownium"
|
||||
id = "hairgrownium"
|
||||
description = "A mysterious chemical purported to help grow hair. Often found on late-night TV infomercials."
|
||||
@@ -226,7 +217,7 @@ datum/reagent/hairgrownium
|
||||
result_amount = 3
|
||||
mix_message = "The liquid becomes slightly hairy."
|
||||
|
||||
datum/reagent/hairgrownium/reaction_mob(var/mob/living/M, var/volume)
|
||||
/datum/reagent/hairgrownium/reaction_mob(mob/living/M, volume)
|
||||
if(M && ishuman(M))
|
||||
var/mob/living/carbon/human/H = M
|
||||
var/obj/item/organ/external/head/head_organ = H.get_organ("head")
|
||||
@@ -235,9 +226,8 @@ datum/reagent/hairgrownium/reaction_mob(var/mob/living/M, var/volume)
|
||||
H.update_hair()
|
||||
H.update_fhair()
|
||||
..()
|
||||
return
|
||||
|
||||
datum/reagent/super_hairgrownium
|
||||
/datum/reagent/super_hairgrownium
|
||||
name = "Super Hairgrownium"
|
||||
id = "super_hairgrownium"
|
||||
description = "A mysterious and powerful chemical purported to cause rapid hair growth."
|
||||
@@ -254,7 +244,7 @@ datum/reagent/super_hairgrownium
|
||||
result_amount = 3
|
||||
mix_message = "The liquid becomes amazingly furry and smells peculiar."
|
||||
|
||||
datum/reagent/super_hairgrownium/reaction_mob(var/mob/living/M, var/volume)
|
||||
/datum/reagent/super_hairgrownium/reaction_mob(mob/living/M, volume)
|
||||
if(M && ishuman(M))
|
||||
var/mob/living/carbon/human/H = M
|
||||
var/obj/item/organ/external/head/head_organ = H.get_organ("head")
|
||||
@@ -278,9 +268,8 @@ datum/reagent/super_hairgrownium/reaction_mob(var/mob/living/M, var/volume)
|
||||
H.equip_to_slot(fakemoustache, slot_wear_mask)
|
||||
to_chat(H, "<span class='notice'>Hair bursts forth from your every follicle!")
|
||||
..()
|
||||
return
|
||||
|
||||
datum/reagent/fartonium
|
||||
/datum/reagent/fartonium
|
||||
name = "Fartonium"
|
||||
id = "fartonium"
|
||||
description = "Oh god it never ends, IT NEVER STOPS!"
|
||||
@@ -295,7 +284,7 @@ datum/reagent/fartonium
|
||||
result_amount = 2
|
||||
mix_message = "The substance makes a little 'toot' noise and starts to smell pretty bad."
|
||||
|
||||
datum/reagent/fartonium/on_mob_life(var/mob/living/M as mob)
|
||||
/datum/reagent/fartonium/on_mob_life(mob/living/M)
|
||||
if(!M) M = holder.my_atom
|
||||
|
||||
if(prob(66))
|
||||
@@ -312,8 +301,6 @@ datum/reagent/fartonium/on_mob_life(var/mob/living/M as mob)
|
||||
M.emote("scream")
|
||||
M.adjustBruteLoss(4)
|
||||
..()
|
||||
return
|
||||
|
||||
|
||||
/datum/chemical_reaction/soapification
|
||||
name = "Soapification"
|
||||
@@ -327,7 +314,6 @@ datum/reagent/fartonium/on_mob_life(var/mob/living/M as mob)
|
||||
/datum/chemical_reaction/soapification/on_reaction(datum/reagents/holder, created_volume)
|
||||
var/location = get_turf(holder.my_atom)
|
||||
new /obj/item/weapon/soap/homemade(location)
|
||||
return
|
||||
|
||||
/datum/chemical_reaction/candlefication
|
||||
name = "Candlefication"
|
||||
@@ -340,8 +326,6 @@ datum/reagent/fartonium/on_mob_life(var/mob/living/M as mob)
|
||||
/datum/chemical_reaction/candlefication/on_reaction(datum/reagents/holder, created_volume)
|
||||
var/location = get_turf(holder.my_atom)
|
||||
new /obj/item/candle(location)
|
||||
return
|
||||
|
||||
|
||||
/datum/chemical_reaction/meatification
|
||||
name = "Meatification"
|
||||
@@ -353,7 +337,6 @@ datum/reagent/fartonium/on_mob_life(var/mob/living/M as mob)
|
||||
/datum/chemical_reaction/meatification/on_reaction(datum/reagents/holder, created_volume)
|
||||
var/location = get_turf(holder.my_atom)
|
||||
new /obj/item/weapon/reagent_containers/food/snacks/meat/slab/meatproduct(location)
|
||||
return
|
||||
|
||||
/datum/chemical_reaction/lye
|
||||
name = "lye"
|
||||
@@ -376,10 +359,10 @@ datum/reagent/fartonium/on_mob_life(var/mob/living/M as mob)
|
||||
reagent_state = LIQUID
|
||||
color = "#FF83A5"
|
||||
|
||||
/datum/reagent/love/reaction_mob(var/mob/living/M, var/method=TOUCH, var/volume)
|
||||
/datum/reagent/love/reaction_mob(mob/living/M, method=TOUCH, volume)
|
||||
to_chat(M, "<span class='notice'>You feel loved!</span>")
|
||||
|
||||
/datum/reagent/love/on_mob_life(var/mob/living/M as mob)
|
||||
/datum/reagent/love/on_mob_life(mob/living/M)
|
||||
if(!M) M = holder.my_atom
|
||||
|
||||
if(M.a_intent == I_HARM)
|
||||
@@ -410,35 +393,35 @@ datum/reagent/fartonium/on_mob_life(var/mob/living/M as mob)
|
||||
|
||||
///Alchemical Reagents
|
||||
|
||||
datum/reagent/eyenewt
|
||||
/datum/reagent/eyenewt
|
||||
name = "Eye of newt"
|
||||
id = "eyenewt"
|
||||
description = "A potent alchemic ingredient."
|
||||
reagent_state = LIQUID
|
||||
color = "#050519"
|
||||
|
||||
datum/reagent/toefrog
|
||||
/datum/reagent/toefrog
|
||||
name = "Toe of frog"
|
||||
id = "toefrog"
|
||||
description = "A potent alchemic ingredient."
|
||||
reagent_state = LIQUID
|
||||
color = "#092D09"
|
||||
|
||||
datum/reagent/woolbat
|
||||
/datum/reagent/woolbat
|
||||
name = "Wool of bat"
|
||||
id = "woolbat"
|
||||
description = "A potent alchemic ingredient."
|
||||
reagent_state = LIQUID
|
||||
color = "#080808"
|
||||
|
||||
datum/reagent/tonguedog
|
||||
/datum/reagent/tonguedog
|
||||
name = "Tongue of dog"
|
||||
id = "tonguedog"
|
||||
description = "A potent alchemic ingredient."
|
||||
reagent_state = LIQUID
|
||||
color = "#2D0909"
|
||||
|
||||
datum/reagent/triplepiss
|
||||
/datum/reagent/triplepiss
|
||||
name = "Triplepiss"
|
||||
id = "triplepiss"
|
||||
description = "Ewwwwwwwww."
|
||||
|
||||
@@ -36,20 +36,18 @@
|
||||
result_amount = 2
|
||||
min_temp = 424
|
||||
|
||||
/datum/reagent/clf3/on_mob_life(var/mob/living/M as mob)
|
||||
/datum/reagent/clf3/on_mob_life(mob/living/M)
|
||||
if(!M) M = holder.my_atom
|
||||
M.adjust_fire_stacks(4)
|
||||
M.adjustFireLoss(0.35*M.fire_stacks)
|
||||
..()
|
||||
return
|
||||
|
||||
/datum/chemical_reaction/clf3/on_reaction(var/datum/reagents/holder, var/created_volume)
|
||||
/datum/chemical_reaction/clf3/on_reaction(datum/reagents/holder, created_volume)
|
||||
var/turf/T = get_turf(holder.my_atom)
|
||||
for(var/turf/turf in range(1,T))
|
||||
new /obj/effect/hotspot(turf)
|
||||
return
|
||||
|
||||
/datum/reagent/clf3/reaction_turf(var/turf/simulated/T, var/volume)
|
||||
/datum/reagent/clf3/reaction_turf(turf/simulated/T, volume)
|
||||
if(istype(T, /turf/simulated/floor/plating))
|
||||
var/turf/simulated/floor/plating/F = T
|
||||
if(prob(1))
|
||||
@@ -66,14 +64,12 @@
|
||||
W.ChangeTurf(/turf/simulated/floor)
|
||||
if(istype(T, /turf/simulated/shuttle/))
|
||||
new /obj/effect/hotspot(T)
|
||||
return
|
||||
|
||||
/datum/reagent/clf3/reaction_mob(var/mob/living/M, var/method=TOUCH, var/volume)
|
||||
/datum/reagent/clf3/reaction_mob(mob/living/M, method=TOUCH, volume)
|
||||
if(method == TOUCH && isliving(M))
|
||||
M.adjust_fire_stacks(5)
|
||||
M.IgniteMob()
|
||||
M.bodytemperature += 30
|
||||
return
|
||||
|
||||
/datum/reagent/sorium
|
||||
name = "Sorium"
|
||||
@@ -96,11 +92,11 @@
|
||||
required_reagents = list("sorium" = 1)
|
||||
min_temp = 474
|
||||
|
||||
/datum/chemical_reaction/sorium_vortex/on_reaction(var/datum/reagents/holder, var/created_volume)
|
||||
/datum/chemical_reaction/sorium_vortex/on_reaction(datum/reagents/holder, created_volume)
|
||||
var/turf/simulated/T = get_turf(holder.my_atom)
|
||||
goonchem_vortex(T, 1, 5, 6)
|
||||
|
||||
/datum/chemical_reaction/sorium/on_reaction(var/datum/reagents/holder, var/created_volume)
|
||||
/datum/chemical_reaction/sorium/on_reaction(datum/reagents/holder, created_volume)
|
||||
if(holder.has_reagent("stabilizing_agent"))
|
||||
return
|
||||
holder.remove_reagent("sorium", created_volume)
|
||||
@@ -128,19 +124,18 @@
|
||||
required_reagents = list("liquid_dark_matter" = 1)
|
||||
min_temp = 474
|
||||
|
||||
/datum/chemical_reaction/ldm_vortex/on_reaction(var/datum/reagents/holder, var/created_volume)
|
||||
/datum/chemical_reaction/ldm_vortex/on_reaction(datum/reagents/holder, created_volume)
|
||||
var/turf/simulated/T = get_turf(holder.my_atom)
|
||||
goonchem_vortex(T, 0, 5, 6)
|
||||
return
|
||||
/datum/chemical_reaction/liquid_dark_matter/on_reaction(var/datum/reagents/holder, var/created_volume)
|
||||
|
||||
/datum/chemical_reaction/liquid_dark_matter/on_reaction(datum/reagents/holder, created_volume)
|
||||
if(holder.has_reagent("stabilizing_agent"))
|
||||
return
|
||||
holder.remove_reagent("liquid_dark_matter", created_volume)
|
||||
var/turf/simulated/T = get_turf(holder.my_atom)
|
||||
goonchem_vortex(T, 0, 5, 6)
|
||||
return
|
||||
|
||||
/proc/goonchem_vortex(var/turf/simulated/T, var/setting_type, var/range, var/pull_times)
|
||||
/proc/goonchem_vortex(turf/simulated/T, setting_type, range, pull_times)
|
||||
for(var/atom/movable/X in orange(range, T))
|
||||
if(istype(X, /obj/effect))
|
||||
continue //stop pulling smoke and hotspots please
|
||||
@@ -182,21 +177,19 @@
|
||||
no_message = 1
|
||||
mix_sound = null
|
||||
|
||||
datum/reagent/blackpowder/reaction_turf(var/turf/T, var/volume) //oh shit
|
||||
/datum/reagent/blackpowder/reaction_turf(turf/T, volume) //oh shit
|
||||
src = null
|
||||
if(volume >= 5)
|
||||
if(!locate(/obj/effect/decal/cleanable/dirt/blackpowder) in get_turf(T)) //let's not have hundreds of decals of black powder on the same turf
|
||||
new /obj/effect/decal/cleanable/dirt/blackpowder(T)
|
||||
return
|
||||
|
||||
/datum/chemical_reaction/blackpowder_explosion/on_reaction(var/datum/reagents/holder, var/created_volume)
|
||||
/datum/chemical_reaction/blackpowder_explosion/on_reaction(datum/reagents/holder, created_volume)
|
||||
var/location = get_turf(holder.my_atom)
|
||||
var/datum/effect/system/spark_spread/s = new /datum/effect/system/spark_spread
|
||||
s.set_up(2, 1, location)
|
||||
s.start()
|
||||
sleep(rand(20,30))
|
||||
blackpowder_detonate(holder, created_volume)
|
||||
return
|
||||
|
||||
/*
|
||||
/datum/reagent/blackpowder/on_ex_act()
|
||||
@@ -209,7 +202,7 @@ datum/reagent/blackpowder/reaction_turf(var/turf/T, var/volume) //oh shit
|
||||
holder.remove_reagent("blackpowder", volume)
|
||||
return */
|
||||
|
||||
/proc/blackpowder_detonate(var/datum/reagents/holder, var/created_volume)
|
||||
/proc/blackpowder_detonate(datum/reagents/holder, created_volume)
|
||||
var/turf/simulated/T = get_turf(holder.my_atom)
|
||||
var/ex_severe = round(created_volume / 100)
|
||||
var/ex_heavy = round(created_volume / 42)
|
||||
@@ -220,7 +213,6 @@ datum/reagent/blackpowder/reaction_turf(var/turf/T, var/volume) //oh shit
|
||||
if(istype(holder.my_atom, /obj/effect/decal/cleanable/dirt/blackpowder))
|
||||
spawn(0)
|
||||
qdel(holder.my_atom)
|
||||
return
|
||||
|
||||
/datum/reagent/flash_powder
|
||||
name = "Flash Powder"
|
||||
@@ -243,7 +235,7 @@ datum/reagent/blackpowder/reaction_turf(var/turf/T, var/volume) //oh shit
|
||||
required_reagents = list("flash_powder" = 1)
|
||||
min_temp = 374
|
||||
|
||||
/datum/chemical_reaction/flash_powder_flash/on_reaction(var/datum/reagents/holder, var/created_volume)
|
||||
/datum/chemical_reaction/flash_powder_flash/on_reaction(datum/reagents/holder, created_volume)
|
||||
var/location = get_turf(holder.my_atom)
|
||||
var/datum/effect/system/spark_spread/s = new /datum/effect/system/spark_spread
|
||||
s.set_up(2, 1, location)
|
||||
@@ -256,7 +248,7 @@ datum/reagent/blackpowder/reaction_turf(var/turf/T, var/volume) //oh shit
|
||||
C.Stun(5)
|
||||
|
||||
|
||||
/datum/chemical_reaction/flash_powder/on_reaction(var/datum/reagents/holder, var/created_volume)
|
||||
/datum/chemical_reaction/flash_powder/on_reaction(datum/reagents/holder, created_volume)
|
||||
if(holder.has_reagent("stabilizing_agent"))
|
||||
return
|
||||
var/location = get_turf(holder.my_atom)
|
||||
@@ -295,7 +287,7 @@ datum/reagent/blackpowder/reaction_turf(var/turf/T, var/volume) //oh shit
|
||||
mix_message = "The mixture quickly turns into a pall of smoke!"
|
||||
var/forbidden_reagents = list("sugar", "phosphorus", "potassium", "stimulants") //Do not transfer this stuff through smoke.
|
||||
|
||||
/datum/chemical_reaction/smoke/on_reaction(var/datum/reagents/holder, var/created_volume)
|
||||
/datum/chemical_reaction/smoke/on_reaction(datum/reagents/holder, created_volume)
|
||||
for(var/f_reagent in forbidden_reagents)
|
||||
if(holder.has_reagent(f_reagent))
|
||||
holder.remove_reagent(f_reagent, holder.get_reagent_amount(f_reagent))
|
||||
@@ -316,7 +308,6 @@ datum/reagent/blackpowder/reaction_turf(var/turf/T, var/volume) //oh shit
|
||||
S.start(4)
|
||||
if(holder && holder.my_atom)
|
||||
holder.clear_reagents()
|
||||
return
|
||||
|
||||
/datum/chemical_reaction/smoke/smoke_powder
|
||||
name = "smoke_powder_smoke"
|
||||
@@ -350,7 +341,7 @@ datum/reagent/blackpowder/reaction_turf(var/turf/T, var/volume) //oh shit
|
||||
required_reagents = list("sonic_powder" = 1)
|
||||
min_temp = 374
|
||||
|
||||
/datum/chemical_reaction/sonic_powder_deafen/on_reaction(var/datum/reagents/holder, var/created_volume)
|
||||
/datum/chemical_reaction/sonic_powder_deafen/on_reaction(datum/reagents/holder, created_volume)
|
||||
var/location = get_turf(holder.my_atom)
|
||||
playsound(location, 'sound/effects/bang.ogg', 25, 1)
|
||||
for(var/mob/living/M in hearers(5, location))
|
||||
@@ -377,7 +368,7 @@ datum/reagent/blackpowder/reaction_turf(var/turf/T, var/volume) //oh shit
|
||||
if(M.ear_damage >= 5)
|
||||
to_chat(M, "<span class='warning'>Your ears start to ring!</span>")
|
||||
|
||||
/datum/chemical_reaction/sonic_powder/on_reaction(var/datum/reagents/holder, var/created_volume)
|
||||
/datum/chemical_reaction/sonic_powder/on_reaction(datum/reagents/holder, created_volume)
|
||||
if(holder.has_reagent("stabilizing_agent"))
|
||||
return
|
||||
var/location = get_turf(holder.my_atom)
|
||||
@@ -422,21 +413,19 @@ datum/reagent/blackpowder/reaction_turf(var/turf/T, var/volume) //oh shit
|
||||
required_reagents = list("phosphorus" = 1, "sacid" = 1, "plasma" = 1)
|
||||
result_amount = 3
|
||||
|
||||
/datum/chemical_reaction/phlogiston/on_reaction(var/datum/reagents/holder, var/created_volume)
|
||||
/datum/chemical_reaction/phlogiston/on_reaction(datum/reagents/holder, created_volume)
|
||||
if(holder.has_reagent("stabilizing_agent"))
|
||||
return
|
||||
var/turf/simulated/T = get_turf(holder.my_atom)
|
||||
for(var/turf/simulated/turf in range(min(created_volume/10,4),T))
|
||||
new /obj/effect/hotspot(turf)
|
||||
return
|
||||
|
||||
/datum/reagent/phlogiston/on_mob_life(var/mob/living/M as mob)
|
||||
/datum/reagent/phlogiston/on_mob_life(mob/living/M)
|
||||
if(!M) M = holder.my_atom
|
||||
M.adjust_fire_stacks(1)
|
||||
M.IgniteMob()
|
||||
M.adjustFireLoss(0.2*M.fire_stacks)
|
||||
..()
|
||||
return
|
||||
|
||||
/datum/reagent/napalm
|
||||
name = "Napalm"
|
||||
@@ -446,16 +435,14 @@ datum/reagent/blackpowder/reaction_turf(var/turf/T, var/volume) //oh shit
|
||||
color = "#FF9999"
|
||||
process_flags = ORGANIC | SYNTHETIC
|
||||
|
||||
/datum/reagent/napalm/on_mob_life(var/mob/living/M as mob)
|
||||
/datum/reagent/napalm/on_mob_life(mob/living/M)
|
||||
if(!M) M = holder.my_atom
|
||||
M.adjust_fire_stacks(1)
|
||||
..()
|
||||
return
|
||||
|
||||
/datum/reagent/napalm/reaction_mob(var/mob/living/M, var/method=TOUCH, var/volume)
|
||||
/datum/reagent/napalm/reaction_mob(mob/living/M, method=TOUCH, volume)
|
||||
if(method == TOUCH && isliving(M))
|
||||
M.adjust_fire_stacks(7)
|
||||
return
|
||||
|
||||
/datum/chemical_reaction/napalm
|
||||
name = "Napalm"
|
||||
@@ -464,7 +451,7 @@ datum/reagent/blackpowder/reaction_turf(var/turf/T, var/volume) //oh shit
|
||||
required_reagents = list("sugar" = 1, "fuel" = 1, "ethanol" = 1 )
|
||||
result_amount = 1
|
||||
|
||||
datum/reagent/cryostylane
|
||||
/datum/reagent/cryostylane
|
||||
name = "Cryostylane"
|
||||
id = "cryostylane"
|
||||
description = "Comes into existence at 20K. As long as there is sufficient oxygen for it to react with, Cryostylane slowly cools all other reagents in the mob down to 0K."
|
||||
@@ -479,27 +466,25 @@ datum/reagent/cryostylane
|
||||
result_amount = 3
|
||||
mix_sound = 'sound/goonstation/misc/drinkfizz.ogg'
|
||||
|
||||
datum/reagent/cryostylane/on_mob_life(var/mob/living/M as mob) //TODO: code freezing into an ice cube
|
||||
/datum/reagent/cryostylane/on_mob_life(mob/living/M) //TODO: code freezing into an ice cube
|
||||
if(M.reagents.has_reagent("oxygen"))
|
||||
M.reagents.remove_reagent("oxygen", 1)
|
||||
M.bodytemperature -= 30
|
||||
..()
|
||||
return
|
||||
|
||||
datum/reagent/cryostylane/on_tick()
|
||||
/datum/reagent/cryostylane/on_tick()
|
||||
if(holder.has_reagent("oxygen"))
|
||||
holder.remove_reagent("oxygen", 1)
|
||||
holder.chem_temp -= 10
|
||||
holder.handle_reactions()
|
||||
..()
|
||||
return
|
||||
|
||||
datum/reagent/cryostylane/reaction_turf(var/turf/simulated/T, var/volume)
|
||||
/datum/reagent/cryostylane/reaction_turf(turf/simulated/T, volume)
|
||||
if(volume >= 5)
|
||||
for(var/mob/living/carbon/slime/M in T)
|
||||
M.adjustToxLoss(rand(15,30))
|
||||
|
||||
datum/reagent/pyrosium
|
||||
/datum/reagent/pyrosium
|
||||
name = "Pyrosium"
|
||||
id = "pyrosium"
|
||||
description = "Comes into existence at 20K. As long as there is sufficient oxygen for it to react with, Pyrosium slowly cools all other reagents in the mob down to 0K."
|
||||
@@ -513,20 +498,18 @@ datum/reagent/pyrosium
|
||||
required_reagents = list("plasma" = 1, "radium" = 1, "phosphorus" = 1)
|
||||
result_amount = 3
|
||||
|
||||
datum/reagent/pyrosium/on_mob_life(var/mob/living/M as mob)
|
||||
/datum/reagent/pyrosium/on_mob_life(mob/living/M)
|
||||
if(M.reagents.has_reagent("oxygen"))
|
||||
M.reagents.remove_reagent("oxygen", 1)
|
||||
M.bodytemperature += 30
|
||||
..()
|
||||
return
|
||||
|
||||
datum/reagent/pyrosium/on_tick()
|
||||
/datum/reagent/pyrosium/on_tick()
|
||||
if(holder.has_reagent("oxygen"))
|
||||
holder.remove_reagent("oxygen", 1)
|
||||
holder.chem_temp += 10
|
||||
holder.handle_reactions()
|
||||
..()
|
||||
return
|
||||
|
||||
/datum/chemical_reaction/azide
|
||||
name = "azide"
|
||||
@@ -537,12 +520,11 @@ datum/reagent/pyrosium/on_tick()
|
||||
mix_message = "The substance violently detonates!"
|
||||
mix_sound = 'sound/effects/bang.ogg'
|
||||
|
||||
/datum/chemical_reaction/azide/on_reaction(var/datum/reagents/holder, var/created_volume)
|
||||
/datum/chemical_reaction/azide/on_reaction(datum/reagents/holder, created_volume)
|
||||
var/location = get_turf(holder.my_atom)
|
||||
explosion(location,0,1,4)
|
||||
return
|
||||
explosion(location, 0, 1, 4)
|
||||
|
||||
datum/reagent/firefighting_foam
|
||||
/datum/reagent/firefighting_foam
|
||||
name = "Firefighting foam"
|
||||
id = "firefighting_foam"
|
||||
description = "Carbon Tetrachloride is a foam used for fire suppression."
|
||||
@@ -559,7 +541,7 @@ datum/reagent/firefighting_foam
|
||||
mix_message = "The mixture bubbles gently."
|
||||
mix_sound = 'sound/goonstation/misc/drinkfizz.ogg'
|
||||
|
||||
datum/reagent/firefighting_foam/reaction_mob(var/mob/living/M, var/method=TOUCH, var/volume)
|
||||
/datum/reagent/firefighting_foam/reaction_mob(mob/living/M, method=TOUCH, volume)
|
||||
if(!istype(M, /mob/living))
|
||||
return
|
||||
|
||||
@@ -568,10 +550,10 @@ datum/reagent/firefighting_foam/reaction_mob(var/mob/living/M, var/method=TOUCH,
|
||||
M.adjust_fire_stacks(-(volume / 5)) // more effective than water
|
||||
if(M.fire_stacks <= 0)
|
||||
M.ExtinguishMob()
|
||||
return
|
||||
|
||||
datum/reagent/firefighting_foam/reaction_turf(var/turf/simulated/T, var/volume)
|
||||
if(!istype(T)) return
|
||||
/datum/reagent/firefighting_foam/reaction_turf(turf/simulated/T, volume)
|
||||
if(!istype(T))
|
||||
return
|
||||
var/CT = cooling_temperature
|
||||
src = null
|
||||
if(!istype(T, /turf/space))
|
||||
@@ -583,9 +565,8 @@ datum/reagent/firefighting_foam/reaction_turf(var/turf/simulated/T, var/volume)
|
||||
lowertemp.react()
|
||||
T.assume_air(lowertemp)
|
||||
qdel(hotspot)
|
||||
return
|
||||
|
||||
datum/reagent/firefighting_foam/reaction_obj(var/obj/O, var/volume)
|
||||
/datum/reagent/firefighting_foam/reaction_obj(obj/O, volume)
|
||||
src = null
|
||||
var/turf/T = get_turf(O)
|
||||
var/hotspot = (locate(/obj/effect/hotspot) in T)
|
||||
@@ -595,7 +576,6 @@ datum/reagent/firefighting_foam/reaction_obj(var/obj/O, var/volume)
|
||||
lowertemp.react()
|
||||
T.assume_air(lowertemp)
|
||||
qdel(hotspot)
|
||||
return
|
||||
|
||||
/datum/chemical_reaction/clf3_firefighting
|
||||
name = "clf3_firefighting"
|
||||
@@ -606,10 +586,9 @@ datum/reagent/firefighting_foam/reaction_obj(var/obj/O, var/volume)
|
||||
mix_message = "The substance violently detonates!"
|
||||
mix_sound = 'sound/effects/bang.ogg'
|
||||
|
||||
/datum/chemical_reaction/clf3_firefighting/on_reaction(var/datum/reagents/holder, var/created_volume)
|
||||
/datum/chemical_reaction/clf3_firefighting/on_reaction(datum/reagents/holder, created_volume)
|
||||
var/location = get_turf(holder.my_atom)
|
||||
explosion(location,-1,0,2)
|
||||
return
|
||||
explosion(location, -1, 0, 2)
|
||||
|
||||
/datum/chemical_reaction/shock_explosion
|
||||
name = "shock_explosion"
|
||||
@@ -620,14 +599,13 @@ datum/reagent/firefighting_foam/reaction_obj(var/obj/O, var/volume)
|
||||
mix_message = "<span class='danger'>The reaction releases an electrical blast!</span>"
|
||||
mix_sound = 'sound/magic/lightningbolt.ogg'
|
||||
|
||||
/datum/chemical_reaction/shock_explosion/on_reaction(var/datum/reagents/holder, var/created_volume)
|
||||
/datum/chemical_reaction/shock_explosion/on_reaction(datum/reagents/holder, created_volume)
|
||||
var/turf/T = get_turf(holder.my_atom)
|
||||
for(var/mob/living/carbon/C in view(6, T))
|
||||
C.Beam(T,icon_state="lightning[rand(1,12)]",icon='icons/effects/effects.dmi',time=5) //What? Why are we beaming from the mob to the turf? Turf to mob generates really odd results.
|
||||
C.electrocute_act(3.5, "electrical blast")
|
||||
holder.del_reagent("teslium") //Clear all remaining Teslium and Uranium, but leave all other reagents untouched.
|
||||
holder.del_reagent("uranium")
|
||||
return
|
||||
|
||||
/datum/reagent/plasma_dust
|
||||
name = "Plasma Dust"
|
||||
|
||||
@@ -13,11 +13,10 @@
|
||||
metabolization_rate = 0.1
|
||||
penetrates_skin = 1
|
||||
|
||||
/datum/reagent/polonium/on_mob_life(var/mob/living/M as mob)
|
||||
/datum/reagent/polonium/on_mob_life(mob/living/M)
|
||||
if(!M) M = holder.my_atom
|
||||
M.apply_effect(8, IRRADIATE, negate_armor = 1)
|
||||
..()
|
||||
return
|
||||
|
||||
|
||||
/datum/reagent/histamine
|
||||
@@ -29,7 +28,7 @@
|
||||
metabolization_rate = 0.2
|
||||
overdose_threshold = 40
|
||||
|
||||
/datum/reagent/histamine/reaction_mob(var/mob/living/M as mob, var/method=TOUCH, var/volume) //dumping histamine on someone is VERY mean.
|
||||
/datum/reagent/histamine/reaction_mob(mob/living/M, method=TOUCH, volume) //dumping histamine on someone is VERY mean.
|
||||
if(iscarbon(M))
|
||||
if(method == TOUCH)
|
||||
M.reagents.add_reagent("histamine",10)
|
||||
@@ -37,7 +36,7 @@
|
||||
to_chat(M, "<span class='danger'>You feel a burning sensation in your throat...</span>")
|
||||
M.emote("drool")
|
||||
|
||||
/datum/reagent/histamine/on_mob_life(var/mob/living/M as mob)
|
||||
/datum/reagent/histamine/on_mob_life(mob/living/M)
|
||||
if(!M) M = holder.my_atom
|
||||
if(prob(20))
|
||||
M.emote(pick("twitch", "grumble", "sneeze", "cough"))
|
||||
@@ -53,9 +52,8 @@
|
||||
to_chat(M, "<span class='danger'>You're getting a rash!</span>")
|
||||
M.adjustBruteLoss(2)
|
||||
..()
|
||||
return
|
||||
|
||||
/datum/reagent/histamine/overdose_process(var/mob/living/M as mob, severity)
|
||||
/datum/reagent/histamine/overdose_process(mob/living/M, severity)
|
||||
var/effect = ..()
|
||||
if(severity == 1)
|
||||
if(effect <= 2)
|
||||
@@ -103,13 +101,12 @@
|
||||
color = "#DED6D0"
|
||||
penetrates_skin = 1
|
||||
|
||||
/datum/reagent/formaldehyde/on_mob_life(var/mob/living/M as mob)
|
||||
/datum/reagent/formaldehyde/on_mob_life(mob/living/M)
|
||||
if(!M) M = holder.my_atom
|
||||
M.adjustToxLoss(1*REM)
|
||||
if(prob(10))
|
||||
M.reagents.add_reagent("histamine",rand(5,15))
|
||||
..()
|
||||
return
|
||||
|
||||
/datum/chemical_reaction/formaldehyde
|
||||
name = "formaldehyde"
|
||||
@@ -129,7 +126,7 @@
|
||||
metabolization_rate = 0.2
|
||||
overdose_threshold = 40
|
||||
|
||||
/datum/reagent/venom/on_mob_life(var/mob/living/M as mob)
|
||||
/datum/reagent/venom/on_mob_life(mob/living/M)
|
||||
if(!M) M = holder.my_atom
|
||||
if(prob(25))
|
||||
M.reagents.add_reagent("histamine",rand(5,10))
|
||||
@@ -142,9 +139,8 @@
|
||||
M.adjustToxLoss(2)
|
||||
M.adjustBruteLoss(2)
|
||||
..()
|
||||
return
|
||||
|
||||
/datum/reagent/venom/overdose_process(var/mob/living/M as mob)
|
||||
/datum/reagent/venom/overdose_process(mob/living/M)
|
||||
if(volume >= 40)
|
||||
if(prob(4))
|
||||
M.visible_message("<span class='danger'><B>[M]</B> starts convulsing violently!</span>", "You feel as if your body is tearing itself apart!")
|
||||
@@ -161,7 +157,7 @@
|
||||
color = "#60A584"
|
||||
metabolization_rate = 1
|
||||
|
||||
/datum/reagent/neurotoxin2/on_mob_life(var/mob/living/M as mob)
|
||||
/datum/reagent/neurotoxin2/on_mob_life(mob/living/M)
|
||||
switch(current_cycle)
|
||||
if(1 to 4)
|
||||
current_cycle++
|
||||
@@ -189,7 +185,6 @@
|
||||
M.emote("drool")
|
||||
M.adjustToxLoss(1)
|
||||
..()
|
||||
return
|
||||
|
||||
/datum/chemical_reaction/neurotoxin2
|
||||
name = "neurotoxin2"
|
||||
@@ -210,7 +205,7 @@
|
||||
metabolization_rate = 0.1
|
||||
penetrates_skin = 1
|
||||
|
||||
/datum/reagent/cyanide/on_mob_life(var/mob/living/M as mob)
|
||||
/datum/reagent/cyanide/on_mob_life(mob/living/M)
|
||||
if(!M) M = holder.my_atom
|
||||
M.adjustToxLoss(1.5*REM)
|
||||
if(prob(5))
|
||||
@@ -224,7 +219,6 @@
|
||||
M.Stun(2)
|
||||
M.adjustToxLoss(2)
|
||||
..()
|
||||
return
|
||||
|
||||
/datum/chemical_reaction/cyanide
|
||||
name = "Cyanide"
|
||||
@@ -236,7 +230,7 @@
|
||||
mix_message = "The mixture gives off a faint scent of almonds."
|
||||
mix_sound = 'sound/goonstation/misc/drinkfizz.ogg'
|
||||
|
||||
/datum/chemical_reaction/cyanide/on_reaction(var/datum/reagents/holder)
|
||||
/datum/chemical_reaction/cyanide/on_reaction(datum/reagents/holder)
|
||||
var/turf/T = get_turf(holder.my_atom)
|
||||
T.visible_message("<span class='warning'>The solution generates a strong vapor!</span>")
|
||||
for(var/mob/living/carbon/C in range(T, 1))
|
||||
@@ -252,7 +246,7 @@
|
||||
metabolization_rate = 0.3
|
||||
penetrates_skin = 1
|
||||
|
||||
/datum/reagent/itching_powder/on_mob_life(var/mob/living/M as mob)
|
||||
/datum/reagent/itching_powder/on_mob_life(mob/living/M)
|
||||
if(!M) M = holder.my_atom
|
||||
if(prob(25))
|
||||
M.emote(pick("twitch", "laugh", "sneeze", "cry"))
|
||||
@@ -277,7 +271,6 @@
|
||||
M.visible_message("<span class='danger'>[M] falls to the floor, scratching themselves violently!</span>")
|
||||
M.emote("scream")
|
||||
..()
|
||||
return
|
||||
|
||||
/datum/chemical_reaction/itching_powder
|
||||
name = "Itching Powder"
|
||||
@@ -288,12 +281,11 @@
|
||||
mix_message = "The mixture congeals and dries up, leaving behind an abrasive powder."
|
||||
mix_sound = 'sound/effects/blobattack.ogg'
|
||||
|
||||
/datum/reagent/facid/on_mob_life(var/mob/living/M as mob)
|
||||
/datum/reagent/facid/on_mob_life(mob/living/M)
|
||||
if(!M) M = holder.my_atom
|
||||
M.adjustToxLoss(1*REM)
|
||||
M.adjustFireLoss(1)
|
||||
..()
|
||||
return
|
||||
|
||||
/datum/reagent/facid
|
||||
name = "Fluorosulfuric Acid"
|
||||
@@ -303,7 +295,7 @@
|
||||
color = "#4141D2"
|
||||
process_flags = ORGANIC | SYNTHETIC
|
||||
|
||||
/datum/reagent/facid/reaction_mob(var/mob/living/M, var/method=TOUCH, var/volume)
|
||||
/datum/reagent/facid/reaction_mob(mob/living/M, method=TOUCH, volume)
|
||||
if(!istype(M, /mob/living))
|
||||
return //wooo more runtime fixin
|
||||
if(method == TOUCH || method == INGEST)
|
||||
@@ -347,7 +339,7 @@
|
||||
H.emote("scream")
|
||||
H.status_flags |= DISFIGURED
|
||||
|
||||
/datum/reagent/facid/reaction_obj(var/obj/O, var/volume)
|
||||
/datum/reagent/facid/reaction_obj(obj/O, volume)
|
||||
if((istype(O,/obj/item) || istype(O,/obj/effect/glowshroom)))
|
||||
if(!O.unacidable)
|
||||
var/obj/effect/decal/cleanable/molten_item/I = new/obj/effect/decal/cleanable/molten_item(O.loc)
|
||||
@@ -373,7 +365,7 @@
|
||||
color = "#7F10C0"
|
||||
metabolization_rate = 0.4
|
||||
|
||||
/datum/reagent/initropidril/on_mob_life(var/mob/living/M as mob)
|
||||
/datum/reagent/initropidril/on_mob_life(mob/living/M)
|
||||
if(!M) M = holder.my_atom
|
||||
if(prob(33))
|
||||
M.adjustToxLoss(rand(5,25))
|
||||
@@ -395,7 +387,6 @@
|
||||
if(!H.heart_attack)
|
||||
H.heart_attack = 1 // rip in pepperoni
|
||||
..()
|
||||
return
|
||||
|
||||
/datum/chemical_reaction/initropidril
|
||||
name = "Initropidril"
|
||||
@@ -414,7 +405,7 @@
|
||||
color = "#AB1CCF"
|
||||
metabolization_rate = 0.4
|
||||
|
||||
/datum/reagent/concentrated_initro/on_mob_life(var/mob/living/M as mob)
|
||||
/datum/reagent/concentrated_initro/on_mob_life(mob/living/M)
|
||||
if(!M) M = holder.my_atom
|
||||
if(volume >=5)
|
||||
if(ishuman(M))
|
||||
@@ -430,7 +421,7 @@
|
||||
color = "#1E4664"
|
||||
metabolization_rate = 0.2
|
||||
|
||||
/datum/reagent/pancuronium/on_mob_life(var/mob/living/M as mob)
|
||||
/datum/reagent/pancuronium/on_mob_life(mob/living/M)
|
||||
if(!M) M = holder.my_atom
|
||||
switch(current_cycle)
|
||||
if(1 to 5)
|
||||
@@ -454,7 +445,6 @@
|
||||
to_chat(M, "<span class='danger'>You can't breathe!</span>")
|
||||
M.losebreath += 3
|
||||
..()
|
||||
return
|
||||
|
||||
/datum/reagent/sodium_thiopental
|
||||
name = "Sodium Thiopental"
|
||||
@@ -464,7 +454,7 @@
|
||||
color = "#5F8BE1"
|
||||
metabolization_rate = 0.7
|
||||
|
||||
/datum/reagent/sodium_thiopental/on_mob_life(var/mob/living/M as mob)
|
||||
/datum/reagent/sodium_thiopental/on_mob_life(mob/living/M)
|
||||
if(!M) M = holder.my_atom
|
||||
switch(current_cycle)
|
||||
if(1)
|
||||
@@ -482,7 +472,6 @@
|
||||
M.emote("drool")
|
||||
M.adjustBrainLoss(1)
|
||||
..()
|
||||
return
|
||||
|
||||
/datum/reagent/ketamine
|
||||
name = "Ketamine"
|
||||
@@ -493,7 +482,7 @@
|
||||
metabolization_rate = 0.8
|
||||
penetrates_skin = 1
|
||||
|
||||
/datum/reagent/ketamine/on_mob_life(var/mob/living/M as mob)
|
||||
/datum/reagent/ketamine/on_mob_life(mob/living/M)
|
||||
if(!M) M = holder.my_atom
|
||||
switch(current_cycle)
|
||||
if(1 to 5)
|
||||
@@ -509,7 +498,6 @@
|
||||
if(11 to INFINITY)
|
||||
M.Paralyse(25)
|
||||
..()
|
||||
return
|
||||
|
||||
/datum/reagent/sulfonal
|
||||
name = "Sulfonal"
|
||||
@@ -528,7 +516,7 @@
|
||||
mix_message = "The mixture gives off quite a stench."
|
||||
mix_sound = 'sound/goonstation/misc/drinkfizz.ogg'
|
||||
|
||||
/datum/reagent/sulfonal/on_mob_life(var/mob/living/M as mob)
|
||||
/datum/reagent/sulfonal/on_mob_life(mob/living/M)
|
||||
if(!M) M = holder.my_atom
|
||||
M.jitteriness = max(0, M.jitteriness-30)
|
||||
switch(current_cycle)
|
||||
@@ -546,7 +534,6 @@
|
||||
M.drowsyness = max(M.drowsyness, 20)
|
||||
M.adjustToxLoss(1)
|
||||
..()
|
||||
return
|
||||
|
||||
/datum/reagent/amanitin
|
||||
name = "Amanitin"
|
||||
@@ -555,16 +542,10 @@
|
||||
reagent_state = LIQUID
|
||||
color = "#D9D9D9"
|
||||
|
||||
/datum/reagent/amanitin/on_mob_life(var/mob/living/M as mob)
|
||||
if(!M) M = holder.my_atom
|
||||
..()
|
||||
return
|
||||
|
||||
/datum/reagent/amanitin/reagent_deleted(var/mob/living/M as mob)
|
||||
/datum/reagent/amanitin/reagent_deleted(mob/living/M)
|
||||
if(!M) M = holder.my_atom
|
||||
M.adjustToxLoss(current_cycle*rand(2,4))
|
||||
..()
|
||||
return
|
||||
|
||||
/datum/reagent/lipolicide
|
||||
name = "Lipolicide"
|
||||
@@ -581,7 +562,7 @@
|
||||
required_reagents = list("mercury" = 1, "diethylamine" = 1, "ephedrine" = 1)
|
||||
result_amount = 3
|
||||
|
||||
/datum/reagent/lipolicide/on_mob_life(var/mob/living/M as mob)
|
||||
/datum/reagent/lipolicide/on_mob_life(mob/living/M)
|
||||
if(!M) M = holder.my_atom
|
||||
if(!M.nutrition)
|
||||
switch(rand(1,3))
|
||||
@@ -596,7 +577,6 @@
|
||||
M.nutrition = max(0, M.nutrition-fat_to_burn)
|
||||
M.overeatduration = 0
|
||||
..()
|
||||
return
|
||||
|
||||
/datum/reagent/coniine
|
||||
name = "Coniine"
|
||||
@@ -606,12 +586,11 @@
|
||||
color = "#C2D8CD"
|
||||
metabolization_rate = 0.05
|
||||
|
||||
/datum/reagent/coniine/on_mob_life(var/mob/living/M as mob)
|
||||
/datum/reagent/coniine/on_mob_life(mob/living/M)
|
||||
if(!M) M = holder.my_atom
|
||||
M.adjustToxLoss(2)
|
||||
M.losebreath += 5
|
||||
..()
|
||||
return
|
||||
|
||||
/datum/reagent/curare
|
||||
name = "Curare"
|
||||
@@ -622,7 +601,7 @@
|
||||
metabolization_rate = 0.1
|
||||
penetrates_skin = 1
|
||||
|
||||
/datum/reagent/curare/on_mob_life(var/mob/living/M as mob)
|
||||
/datum/reagent/curare/on_mob_life(mob/living/M)
|
||||
if(!M) M = holder.my_atom
|
||||
M.adjustToxLoss(1)
|
||||
M.adjustOxyLoss(1)
|
||||
@@ -646,7 +625,6 @@
|
||||
to_chat(M, "<span class='danger'>You can't [pick("breathe", "move", "feel your legs", "feel your face", "feel anything")]!</span>")
|
||||
M.losebreath++
|
||||
..()
|
||||
return
|
||||
|
||||
/datum/reagent/sarin
|
||||
name = "Sarin"
|
||||
@@ -668,14 +646,14 @@
|
||||
min_temp = 374
|
||||
mix_sound = 'sound/goonstation/misc/drinkfizz.ogg'
|
||||
|
||||
/datum/chemical_reaction/sarin/on_reaction(var/datum/reagents/holder)
|
||||
/datum/chemical_reaction/sarin/on_reaction(datum/reagents/holder)
|
||||
var/turf/T = get_turf(holder.my_atom)
|
||||
T.visible_message("<span class='warning'>The solution generates a strong vapor!</span>")
|
||||
for(var/mob/living/carbon/C in range(T, 2))
|
||||
if(!(C.wear_mask && (C.internals != null || C.wear_mask.flags & BLOCK_GAS_SMOKE_EFFECT)))
|
||||
C.reagents.add_reagent("sarin",4)
|
||||
|
||||
/datum/reagent/sarin/on_mob_life(var/mob/living/M as mob)
|
||||
/datum/reagent/sarin/on_mob_life(mob/living/M)
|
||||
if(!M) M = holder.my_atom
|
||||
switch(current_cycle)
|
||||
if(1 to 15)
|
||||
@@ -721,7 +699,6 @@
|
||||
M.adjustBrainLoss(1)
|
||||
M.adjustFireLoss(1)
|
||||
..()
|
||||
return
|
||||
|
||||
/datum/reagent/atrazine
|
||||
name = "Atrazine"
|
||||
@@ -730,14 +707,13 @@
|
||||
reagent_state = LIQUID
|
||||
color = "#17002D"
|
||||
|
||||
/datum/reagent/atrazine/on_mob_life(var/mob/living/M as mob)
|
||||
/datum/reagent/atrazine/on_mob_life(mob/living/M)
|
||||
if(!M) M = holder.my_atom
|
||||
M.adjustToxLoss(2)
|
||||
..()
|
||||
return
|
||||
|
||||
// Clear off wallrot fungi
|
||||
/datum/reagent/atrazine/reaction_turf(var/turf/T, var/volume)
|
||||
/datum/reagent/atrazine/reaction_turf(turf/T, volume)
|
||||
if(istype(T, /turf/simulated/wall))
|
||||
var/turf/simulated/wall/W = T
|
||||
if(W.rotting)
|
||||
@@ -749,7 +725,7 @@
|
||||
for(var/mob/O in viewers(W, null))
|
||||
O.show_message(text("\blue The fungi are completely dissolved by the solution!"), 1)
|
||||
|
||||
/datum/reagent/atrazine/reaction_obj(var/obj/O, var/volume)
|
||||
/datum/reagent/atrazine/reaction_obj(obj/O, volume)
|
||||
if(istype(O,/obj/structure/alien/weeds/))
|
||||
var/obj/structure/alien/weeds/alien_weeds = O
|
||||
alien_weeds.health -= rand(15,35) // Kills alien weeds pretty fast
|
||||
@@ -760,7 +736,7 @@
|
||||
if(prob(50)) qdel(O) //Kills kudzu too.
|
||||
// Damage that is done to growing plants is separately at code/game/machinery/hydroponics at obj/item/hydroponics
|
||||
|
||||
/datum/reagent/atrazine/reaction_mob(var/mob/living/M, var/method=TOUCH, var/volume)
|
||||
/datum/reagent/atrazine/reaction_mob(mob/living/M, method=TOUCH, volume)
|
||||
src = null
|
||||
if(iscarbon(M))
|
||||
var/mob/living/carbon/C = M
|
||||
@@ -772,12 +748,10 @@
|
||||
if(H.species.flags & IS_PLANT) //plantmen take a LOT of damage
|
||||
H.adjustToxLoss(50)
|
||||
..()
|
||||
return
|
||||
else if(istype(M,/mob/living/simple_animal/diona)) //plantmen monkeys (diona) take EVEN MORE damage
|
||||
var/mob/living/simple_animal/diona/D = M
|
||||
D.adjustToxLoss(100)
|
||||
D.adjustHealth(100)
|
||||
..()
|
||||
return
|
||||
|
||||
/datum/chemical_reaction/atrazine
|
||||
name = "atrazine"
|
||||
@@ -802,7 +776,7 @@
|
||||
result_amount = 1
|
||||
mix_message = "The smell of death wafts up from the solution."
|
||||
|
||||
/datum/reagent/capulettium/on_mob_life(var/mob/living/M as mob)
|
||||
/datum/reagent/capulettium/on_mob_life(mob/living/M)
|
||||
if(!M) M = holder.my_atom
|
||||
switch(current_cycle)
|
||||
if(1 to 5)
|
||||
@@ -817,7 +791,6 @@
|
||||
if(61 to INFINITY)
|
||||
M.eye_blurry += 10
|
||||
..()
|
||||
return
|
||||
|
||||
/datum/reagent/capulettium_plus
|
||||
name = "Capulettium Plus"
|
||||
@@ -834,11 +807,10 @@
|
||||
result_amount = 3
|
||||
mix_message = "The solution begins to slosh about violently by itself."
|
||||
|
||||
/datum/reagent/capulettium_plus/on_mob_life(var/mob/living/M as mob)
|
||||
/datum/reagent/capulettium_plus/on_mob_life(mob/living/M)
|
||||
if(!M) M = holder.my_atom
|
||||
M.silent = max(M.silent, 2)
|
||||
..()
|
||||
return
|
||||
|
||||
/datum/reagent/toxic_slurry
|
||||
name = "Toxic Slurry"
|
||||
@@ -847,7 +819,7 @@
|
||||
reagent_state = LIQUID
|
||||
color = "#00C81E"
|
||||
|
||||
/datum/reagent/toxic_slurry/on_mob_life(var/mob/living/M as mob)
|
||||
/datum/reagent/toxic_slurry/on_mob_life(mob/living/M)
|
||||
if(!M) M = holder.my_atom
|
||||
if(prob(10))
|
||||
M.adjustToxLoss(rand(2.4))
|
||||
@@ -857,7 +829,6 @@
|
||||
if(prob(7))
|
||||
M.fakevomit(1)
|
||||
..()
|
||||
return
|
||||
|
||||
/datum/reagent/glowing_slurry
|
||||
name = "Glowing Slurry"
|
||||
@@ -866,7 +837,7 @@
|
||||
reagent_state = LIQUID
|
||||
color = "#00FD00"
|
||||
|
||||
/datum/reagent/glowing_slurry/reaction_mob(var/mob/M, var/method=TOUCH, var/volume) //same as mutagen
|
||||
/datum/reagent/glowing_slurry/reaction_mob(mob/M, method=TOUCH, volume) //same as mutagen
|
||||
if(!..()) return
|
||||
if(!M.dna) return //No robots, AIs, aliens, Ians or other mobs should be affected by this.
|
||||
src = null
|
||||
@@ -874,9 +845,8 @@
|
||||
randmutb(M)
|
||||
domutcheck(M, null)
|
||||
M.UpdateAppearance()
|
||||
return
|
||||
|
||||
/datum/reagent/glowing_slurry/on_mob_life(var/mob/living/M as mob)
|
||||
/datum/reagent/glowing_slurry/on_mob_life(mob/living/M)
|
||||
if(!M) M = holder.my_atom
|
||||
M.apply_effect(2, IRRADIATE, 0, negate_armor = 1)
|
||||
if(prob(15))
|
||||
@@ -886,7 +856,6 @@
|
||||
domutcheck(M, null)
|
||||
M.UpdateAppearance()
|
||||
..()
|
||||
return
|
||||
|
||||
/datum/reagent/ants
|
||||
name = "Ants"
|
||||
@@ -896,7 +865,7 @@
|
||||
color = "#993333"
|
||||
process_flags = ORGANIC | SYNTHETIC
|
||||
|
||||
/datum/reagent/ants/reaction_mob(var/mob/living/M as mob, var/method=TOUCH, var/volume) //NOT THE ANTS
|
||||
/datum/reagent/ants/reaction_mob(mob/living/M, method=TOUCH, volume) //NOT THE ANTS
|
||||
if(iscarbon(M))
|
||||
if(method == TOUCH || method==INGEST)
|
||||
to_chat(M, "<span class='warning'>OH SHIT ANTS!!!!</span>")
|
||||
@@ -904,11 +873,10 @@
|
||||
M.adjustBruteLoss(4)
|
||||
|
||||
|
||||
/datum/reagent/ants/on_mob_life(var/mob/living/M as mob)
|
||||
/datum/reagent/ants/on_mob_life(mob/living/M)
|
||||
if(!M) M = holder.my_atom
|
||||
M.adjustBruteLoss(2)
|
||||
..()
|
||||
return
|
||||
|
||||
/datum/reagent/teslium //Teslium. Causes periodic shocks, and makes shocks against the target much more effective.
|
||||
name = "Teslium"
|
||||
@@ -938,9 +906,8 @@
|
||||
min_temp = 400
|
||||
mix_sound = null
|
||||
|
||||
/datum/chemical_reaction/teslium/on_reaction(var/datum/reagents/holder, var/created_volume)
|
||||
/datum/chemical_reaction/teslium/on_reaction(datum/reagents/holder, created_volume)
|
||||
var/location = get_turf(holder.my_atom)
|
||||
var/datum/effect/system/spark_spread/s = new /datum/effect/system/spark_spread
|
||||
s.set_up(6, 1, location)
|
||||
s.start()
|
||||
return
|
||||
s.start()
|
||||
@@ -19,5 +19,5 @@
|
||||
var/mix_sound = 'sound/effects/bubbles.ogg'
|
||||
var/no_message = 0
|
||||
|
||||
/datum/chemical_reaction/proc/on_reaction(var/datum/reagents/holder, var/created_volume)
|
||||
/datum/chemical_reaction/proc/on_reaction(datum/reagents/holder, created_volume)
|
||||
return
|
||||
@@ -7,11 +7,10 @@
|
||||
required_catalysts = list("enzyme" = 5)
|
||||
result_amount = 1
|
||||
|
||||
/datum/chemical_reaction/tofu/on_reaction(var/datum/reagents/holder, var/created_volume)
|
||||
/datum/chemical_reaction/tofu/on_reaction(datum/reagents/holder, created_volume)
|
||||
var/location = get_turf(holder.my_atom)
|
||||
for(var/i = 1, i <= created_volume, i++)
|
||||
new /obj/item/weapon/reagent_containers/food/snacks/tofu(location)
|
||||
return
|
||||
|
||||
/datum/chemical_reaction/chocolate_bar
|
||||
name = "Chocolate Bar"
|
||||
@@ -20,11 +19,10 @@
|
||||
required_reagents = list("soymilk" = 2, "cocoa" = 2, "sugar" = 2)
|
||||
result_amount = 1
|
||||
|
||||
/datum/chemical_reaction/chocolate_bar/on_reaction(var/datum/reagents/holder, var/created_volume)
|
||||
/datum/chemical_reaction/chocolate_bar/on_reaction(datum/reagents/holder, created_volume)
|
||||
var/location = get_turf(holder.my_atom)
|
||||
for(var/i = 1, i <= created_volume, i++)
|
||||
new /obj/item/weapon/reagent_containers/food/snacks/chocolatebar(location)
|
||||
return
|
||||
|
||||
/datum/chemical_reaction/chocolate_bar2
|
||||
name = "Chocolate Bar"
|
||||
@@ -33,11 +31,10 @@
|
||||
required_reagents = list("milk" = 2, "cocoa" = 2, "sugar" = 2)
|
||||
result_amount = 1
|
||||
|
||||
/datum/chemical_reaction/chocolate_bar2/on_reaction(var/datum/reagents/holder, var/created_volume)
|
||||
/datum/chemical_reaction/chocolate_bar2/on_reaction(datum/reagents/holder, created_volume)
|
||||
var/location = get_turf(holder.my_atom)
|
||||
for(var/i = 1, i <= created_volume, i++)
|
||||
new /obj/item/weapon/reagent_containers/food/snacks/chocolatebar(location)
|
||||
return
|
||||
|
||||
/datum/chemical_reaction/soysauce
|
||||
name = "Soy Sauce"
|
||||
@@ -54,10 +51,10 @@
|
||||
required_catalysts = list("enzyme" = 5)
|
||||
result_amount = 1
|
||||
|
||||
/datum/chemical_reaction/cheesewheel/on_reaction(var/datum/reagents/holder, var/created_volume)
|
||||
/datum/chemical_reaction/cheesewheel/on_reaction(datum/reagents/holder, created_volume)
|
||||
var/location = get_turf(holder.my_atom)
|
||||
new /obj/item/weapon/reagent_containers/food/snacks/sliceable/cheesewheel(location)
|
||||
return
|
||||
for(var/i = 1, i <= created_volume, i++)
|
||||
new /obj/item/weapon/reagent_containers/food/snacks/sliceable/cheesewheel(location)
|
||||
|
||||
/datum/chemical_reaction/syntiflesh
|
||||
name = "Syntiflesh"
|
||||
@@ -66,10 +63,10 @@
|
||||
required_reagents = list("blood" = 5, "cryoxadone" = 1)
|
||||
result_amount = 1
|
||||
|
||||
/datum/chemical_reaction/syntiflesh/on_reaction(var/datum/reagents/holder, var/created_volume)
|
||||
/datum/chemical_reaction/syntiflesh/on_reaction(datum/reagents/holder, created_volume)
|
||||
var/location = get_turf(holder.my_atom)
|
||||
new /obj/item/weapon/reagent_containers/food/snacks/meat/syntiflesh(location)
|
||||
return
|
||||
for(var/i = 1, i <= created_volume, i++)
|
||||
new /obj/item/weapon/reagent_containers/food/snacks/meat/syntiflesh(location)
|
||||
|
||||
/datum/chemical_reaction/hot_ramen
|
||||
name = "Hot Ramen"
|
||||
@@ -131,5 +128,4 @@
|
||||
/datum/chemical_reaction/dough/on_reaction(datum/reagents/holder, created_volume)
|
||||
var/location = get_turf(holder.my_atom)
|
||||
for(var/i = 1, i <= created_volume, i++)
|
||||
new /obj/item/weapon/reagent_containers/food/snacks/dough(location)
|
||||
return
|
||||
new /obj/item/weapon/reagent_containers/food/snacks/dough(location)
|
||||
@@ -7,12 +7,11 @@
|
||||
result_amount = 2
|
||||
mix_message = "The mixture explodes!"
|
||||
|
||||
/datum/chemical_reaction/explosion_potassium/on_reaction(var/datum/reagents/holder, var/created_volume)
|
||||
/datum/chemical_reaction/explosion_potassium/on_reaction(datum/reagents/holder, created_volume)
|
||||
var/datum/effect/system/reagents_explosion/e = new()
|
||||
e.set_up(round (created_volume/10, 1), holder.my_atom, 0, 0)
|
||||
e.start()
|
||||
holder.clear_reagents()
|
||||
return
|
||||
|
||||
/datum/chemical_reaction/emp_pulse
|
||||
name = "EMP Pulse"
|
||||
@@ -21,13 +20,12 @@
|
||||
required_reagents = list("uranium" = 1, "iron" = 1) // Yes, laugh, it's the best recipe I could think of that makes a little bit of sense
|
||||
result_amount = 2
|
||||
|
||||
/datum/chemical_reaction/emp_pulse/on_reaction(var/datum/reagents/holder, var/created_volume)
|
||||
/datum/chemical_reaction/emp_pulse/on_reaction(datum/reagents/holder, created_volume)
|
||||
var/location = get_turf(holder.my_atom)
|
||||
// 100 created volume = 4 heavy range & 7 light range. A few tiles smaller than traitor EMP grandes.
|
||||
// 200 created volume = 8 heavy range & 14 light range. 4 tiles larger than traitor EMP grenades.
|
||||
empulse(location, round(created_volume / 24), round(created_volume / 14), 1)
|
||||
holder.clear_reagents()
|
||||
return
|
||||
|
||||
/datum/chemical_reaction/mutagen
|
||||
name = "Unstable mutagen"
|
||||
@@ -58,13 +56,11 @@
|
||||
required_reagents = list("glycerol" = 1, "facid" = 1, "sacid" = 1)
|
||||
result_amount = 2
|
||||
|
||||
/datum/chemical_reaction/nitroglycerin/on_reaction(var/datum/reagents/holder, var/created_volume)
|
||||
/datum/chemical_reaction/nitroglycerin/on_reaction(datum/reagents/holder, created_volume)
|
||||
var/datum/effect/system/reagents_explosion/e = new()
|
||||
e.set_up(round(created_volume/2, 1), holder.my_atom, 0, 0)
|
||||
e.start()
|
||||
|
||||
holder.clear_reagents()
|
||||
return
|
||||
|
||||
/datum/chemical_reaction/condensedcapsaicin
|
||||
name = "Condensed Capsaicin"
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
required_reagents = list("fluorosurfactant" = 1, "water" = 1)
|
||||
result_amount = 2
|
||||
|
||||
/datum/chemical_reaction/foam/on_reaction(var/datum/reagents/holder, var/created_volume)
|
||||
/datum/chemical_reaction/foam/on_reaction(datum/reagents/holder, created_volume)
|
||||
var/location = get_turf(holder.my_atom)
|
||||
holder.my_atom.visible_message("<span class='warning'>The solution spews out foam!</span>")
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
required_reagents = list("aluminum" = 3, "fluorosurfactant" = 1, "sacid" = 1)
|
||||
result_amount = 5
|
||||
|
||||
/datum/chemical_reaction/metalfoam/on_reaction(var/datum/reagents/holder, var/created_volume)
|
||||
/datum/chemical_reaction/metalfoam/on_reaction(datum/reagents/holder, created_volume)
|
||||
var/location = get_turf(holder.my_atom)
|
||||
|
||||
holder.my_atom.visible_message("<span class='warning'>The solution spews out a metalic foam!</span>")
|
||||
@@ -49,7 +49,7 @@
|
||||
required_reagents = list("iron" = 3, "fluorosurfactant" = 1, "sacid" = 1)
|
||||
result_amount = 5
|
||||
|
||||
/datum/chemical_reaction/ironfoam/on_reaction(var/datum/reagents/holder, var/created_volume)
|
||||
/datum/chemical_reaction/ironfoam/on_reaction(datum/reagents/holder, created_volume)
|
||||
var/location = get_turf(holder.my_atom)
|
||||
|
||||
holder.my_atom.visible_message("<span class='warning>The solution spews out a metalic foam!</span>")
|
||||
@@ -100,7 +100,7 @@
|
||||
required_reagents = list("facid" = 10, "plasticide" = 20)
|
||||
result_amount = 1
|
||||
|
||||
/datum/chemical_reaction/plastication/on_reaction(var/datum/reagents/holder)
|
||||
/datum/chemical_reaction/plastication/on_reaction(datum/reagents/holder)
|
||||
var/obj/item/stack/sheet/metal/M = new /obj/item/stack/sheet/mineral/plastic
|
||||
M.amount = 10
|
||||
M.forceMove(get_turf(holder.my_atom))
|
||||
|
||||
@@ -19,7 +19,8 @@
|
||||
var/admin_only = 0
|
||||
|
||||
/datum/reagent/proc/reaction_mob(mob/M, method=TOUCH, volume) //Some reagents transfer on touch, others don't; dependent on if they penetrate the skin or not.
|
||||
if(!istype(M, /mob/living)) return 0
|
||||
if(!istype(M, /mob/living))
|
||||
return 0
|
||||
var/datum/reagent/self = src
|
||||
src = null
|
||||
|
||||
|
||||
@@ -622,11 +622,11 @@
|
||||
description = "A strong neurotoxin that puts the subject into a death-like state."
|
||||
reagent_state = LIQUID
|
||||
color = "#2E2E61" // rgb: 46, 46, 97
|
||||
dizzy_adj = 6
|
||||
alcohol_perc = 0.7
|
||||
|
||||
/datum/reagent/ethanol/neurotoxin/on_mob_life(mob/living/M)
|
||||
M.weakened = max(M.weakened, 3)
|
||||
dizzy_adj = 6
|
||||
if(current_cycle >=55)
|
||||
M.druggy = max(M.druggy, 55)
|
||||
if(current_cycle >=200)
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
nutriment_factor = 15 * REAGENTS_METABOLISM
|
||||
color = "#664330" // rgb: 102, 67, 48
|
||||
|
||||
/datum/reagent/protein/on_mob_life(var/mob/living/M as mob)
|
||||
/datum/reagent/protein/on_mob_life(mob/living/M)
|
||||
if(!M) M = holder.my_atom
|
||||
if(!(M.mind in ticker.mode.vampires))
|
||||
if(ishuman(M))
|
||||
@@ -176,7 +176,6 @@
|
||||
M.adjustBrainLoss(1)
|
||||
..()
|
||||
|
||||
|
||||
/datum/reagent/blackpepper
|
||||
name = "Black Pepper"
|
||||
id = "blackpepper"
|
||||
@@ -375,7 +374,6 @@
|
||||
M.nutrition += nutriment_factor
|
||||
..()
|
||||
|
||||
|
||||
/datum/reagent/toxin/coffeepowder
|
||||
name = "Coffee Grounds"
|
||||
id = "coffeepowder"
|
||||
@@ -396,7 +394,6 @@
|
||||
id = "fertilizer"
|
||||
description = "A chemical mix good for growing plants with."
|
||||
reagent_state = LIQUID
|
||||
// toxpwr = 0.2 //It's not THAT poisonous.
|
||||
color = "#664330" // rgb: 102, 67, 48
|
||||
|
||||
/datum/reagent/toxin/fertilizer/eznutrient
|
||||
|
||||
@@ -89,7 +89,7 @@
|
||||
reagent_state = LIQUID
|
||||
color = "#13BC5E" // rgb: 19, 188, 94
|
||||
|
||||
/datum/reagent/aslimetoxin/reaction_mob(mob/M, method=TOUCH, reac_volume)
|
||||
/datum/reagent/aslimetoxin/reaction_mob(mob/M, method=TOUCH, volume)
|
||||
if(method != TOUCH)
|
||||
M.ForceContractDisease(new /datum/disease/transformation/slime(0))
|
||||
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
var/cooling_temperature = 2
|
||||
process_flags = ORGANIC | SYNTHETIC
|
||||
|
||||
/datum/reagent/water/reaction_mob(var/mob/living/M, var/method=TOUCH, var/volume)
|
||||
/datum/reagent/water/reaction_mob(mob/living/M, method=TOUCH, volume)
|
||||
if(!istype(M, /mob/living))
|
||||
return
|
||||
|
||||
@@ -27,8 +27,9 @@
|
||||
M.ExtinguishMob()
|
||||
return
|
||||
|
||||
/datum/reagent/water/reaction_turf(var/turf/simulated/T, var/volume)
|
||||
if(!istype(T)) return
|
||||
/datum/reagent/water/reaction_turf(turf/simulated/T, volume)
|
||||
if(!istype(T))
|
||||
return
|
||||
src = null
|
||||
if(volume >= 3)
|
||||
T.MakeSlippery()
|
||||
@@ -43,9 +44,8 @@
|
||||
lowertemp.react()
|
||||
T.assume_air(lowertemp)
|
||||
qdel(hotspot)
|
||||
return
|
||||
|
||||
/datum/reagent/water/reaction_obj(var/obj/O, var/volume)
|
||||
/datum/reagent/water/reaction_obj(obj/O, volume)
|
||||
src = null
|
||||
var/turf/T = get_turf(O)
|
||||
var/hotspot = (locate(/obj/effect/hotspot) in T)
|
||||
@@ -73,7 +73,7 @@
|
||||
reagent_state = LIQUID
|
||||
color = "#1BB1AB"
|
||||
|
||||
/datum/reagent/lube/reaction_turf(var/turf/simulated/T, var/volume)
|
||||
/datum/reagent/lube/reaction_turf(turf/simulated/T, volume)
|
||||
if(!istype(T)) return
|
||||
src = null
|
||||
if(volume >= 1)
|
||||
@@ -87,7 +87,7 @@
|
||||
reagent_state = LIQUID
|
||||
color = "#61C2C2"
|
||||
|
||||
/datum/reagent/space_cleaner/reaction_obj(var/obj/O, var/volume)
|
||||
/datum/reagent/space_cleaner/reaction_obj(obj/O, volume)
|
||||
if(O && !istype(O, /atom/movable/lighting_overlay))
|
||||
O.color = initial(O.color)
|
||||
if(istype(O,/obj/effect/decal/cleanable))
|
||||
@@ -96,7 +96,7 @@
|
||||
if(O)
|
||||
O.clean_blood()
|
||||
|
||||
/datum/reagent/space_cleaner/reaction_turf(var/turf/T, var/volume)
|
||||
/datum/reagent/space_cleaner/reaction_turf(turf/T, volume)
|
||||
if(volume >= 1)
|
||||
if(T)
|
||||
T.color = initial(T.color)
|
||||
@@ -110,7 +110,7 @@
|
||||
var/turf/simulated/S = T
|
||||
S.dirt = 0
|
||||
|
||||
/datum/reagent/space_cleaner/reaction_mob(var/mob/M, var/method=TOUCH, var/volume)
|
||||
/datum/reagent/space_cleaner/reaction_mob(mob/M, method=TOUCH, volume)
|
||||
if(iscarbon(M))
|
||||
var/mob/living/carbon/C = M
|
||||
if(istype(M,/mob/living/carbon/human))
|
||||
@@ -151,7 +151,7 @@
|
||||
reagent_state = LIQUID
|
||||
color = "#C80000" // rgb: 200, 0, 0
|
||||
|
||||
/datum/reagent/blood/reaction_mob(mob/M, method=TOUCH, reac_volume)
|
||||
/datum/reagent/blood/reaction_mob(mob/M, method=TOUCH, volume)
|
||||
if(data && data["viruses"])
|
||||
for(var/datum/disease/D in data["viruses"])
|
||||
|
||||
@@ -194,15 +194,15 @@
|
||||
color = mix_data["blood_colour"]
|
||||
return 1
|
||||
|
||||
/datum/reagent/blood/on_update(var/atom/A)
|
||||
/datum/reagent/blood/on_update(atom/A)
|
||||
if(data["blood_colour"])
|
||||
color = data["blood_colour"]
|
||||
return ..()
|
||||
|
||||
/datum/reagent/blood/reaction_turf(turf/simulated/T, reac_volume)//splash the blood all over the place
|
||||
/datum/reagent/blood/reaction_turf(turf/simulated/T, volume)//splash the blood all over the place
|
||||
if(!istype(T))
|
||||
return
|
||||
if(reac_volume < 3)
|
||||
if(volume < 3)
|
||||
return
|
||||
if(!data["donor"] || istype(data["donor"], /mob/living/carbon/human))
|
||||
var/obj/effect/decal/cleanable/blood/blood_prop = locate() in T //find some blood here
|
||||
@@ -232,7 +232,7 @@
|
||||
id = "vaccine"
|
||||
color = "#C81040" // rgb: 200, 16, 64
|
||||
|
||||
/datum/reagent/vaccine/reaction_mob(mob/M, method=TOUCH, reac_volume)
|
||||
/datum/reagent/vaccine/reaction_mob(mob/M, method=TOUCH, volume)
|
||||
if(islist(data) && (method == INGEST))
|
||||
for(var/datum/disease/D in M.viruses)
|
||||
if(D.GetDiseaseID() in data)
|
||||
@@ -250,13 +250,13 @@
|
||||
reagent_state = LIQUID
|
||||
color = "#757547"
|
||||
|
||||
/datum/reagent/fishwater/reaction_mob(var/mob/M, var/method=TOUCH, var/volume)
|
||||
/datum/reagent/fishwater/reaction_mob(mob/M, method=TOUCH, volume)
|
||||
if(!istype(M, /mob/living))
|
||||
return
|
||||
if(method == INGEST)
|
||||
to_chat(M, "Oh god, why did you drink that?")
|
||||
|
||||
/datum/reagent/fishwater/on_mob_life(var/mob/living/M as mob)
|
||||
/datum/reagent/fishwater/on_mob_life(mob/living/M)
|
||||
if(!M) M = holder.my_atom
|
||||
if(prob(30)) // Nasty, you drank this stuff? 30% chance of the fakevomit (non-stunning version)
|
||||
if(prob(50)) // 50/50 chance of green vomit vs normal vomit
|
||||
@@ -264,7 +264,6 @@
|
||||
else
|
||||
M.fakevomit(0)
|
||||
..()
|
||||
return
|
||||
|
||||
/datum/reagent/fishwater/toiletwater
|
||||
name = "Toilet Water"
|
||||
@@ -273,7 +272,7 @@
|
||||
reagent_state = LIQUID
|
||||
color = "#757547"
|
||||
|
||||
/datum/reagent/fishwater/toiletwater/reaction_mob(var/mob/M, var/method=TOUCH, var/volume) //For shennanigans
|
||||
/datum/reagent/fishwater/toiletwater/reaction_mob(mob/M, method=TOUCH, volume) //For shennanigans
|
||||
return
|
||||
|
||||
/datum/reagent/holywater
|
||||
@@ -284,7 +283,7 @@
|
||||
color = "#0064C8" // rgb: 0, 100, 200
|
||||
process_flags = ORGANIC | SYNTHETIC
|
||||
|
||||
/datum/reagent/holywater/on_mob_life(var/mob/living/M as mob)
|
||||
/datum/reagent/holywater/on_mob_life(mob/living/M)
|
||||
if(!data) data = 1
|
||||
data++
|
||||
M.jitteriness = max(M.jitteriness-5,0)
|
||||
@@ -331,7 +330,7 @@
|
||||
..()
|
||||
|
||||
|
||||
/datum/reagent/holywater/reaction_mob(var/mob/living/M, var/method=TOUCH, var/volume)
|
||||
/datum/reagent/holywater/reaction_mob(mob/living/M, method=TOUCH, volume)
|
||||
// Vampires have their powers weakened by holy water applied to the skin.
|
||||
if(ishuman(M) && M.mind && M.mind.vampire && !M.mind.vampire.get_ability(/datum/vampire_passive/full))
|
||||
var/mob/living/carbon/human/H=M
|
||||
@@ -347,7 +346,7 @@
|
||||
M.mind.vampire.nullified = max(5, M.mind.vampire.nullified + 2)
|
||||
|
||||
|
||||
/datum/reagent/holywater/reaction_turf(var/turf/simulated/T, var/volume)
|
||||
/datum/reagent/holywater/reaction_turf(turf/simulated/T, volume)
|
||||
..()
|
||||
if(!istype(T)) return
|
||||
if(volume>=10)
|
||||
@@ -363,7 +362,7 @@
|
||||
description = "You don't even want to think about what's in here."
|
||||
reagent_state = LIQUID
|
||||
|
||||
/datum/reagent/liquidgibs/reaction_turf(var/turf/T, var/volume) //yes i took it from synthflesh...
|
||||
/datum/reagent/liquidgibs/reaction_turf(turf/T, volume) //yes i took it from synthflesh...
|
||||
src = null
|
||||
if(volume >= 5)
|
||||
new /obj/effect/decal/cleanable/blood/gibs/cleangibs(T)
|
||||
@@ -386,11 +385,11 @@
|
||||
reagent_state = LIQUID
|
||||
color = "#A70FFF"
|
||||
|
||||
/datum/reagent/drying_agent/reaction_turf(turf/simulated/T, reac_volume)
|
||||
/datum/reagent/drying_agent/reaction_turf(turf/simulated/T, volume)
|
||||
if(istype(T) && T.wet)
|
||||
T.MakeDry(TURF_WET_WATER)
|
||||
|
||||
/datum/reagent/drying_agent/reaction_obj(obj/O, reac_volume)
|
||||
/datum/reagent/drying_agent/reaction_obj(obj/O, volume)
|
||||
if(istype(O, /obj/item/clothing/shoes/galoshes))
|
||||
var/t_loc = get_turf(O)
|
||||
qdel(O)
|
||||
|
||||
@@ -56,7 +56,7 @@
|
||||
reagents.handle_reactions()
|
||||
..()
|
||||
|
||||
/obj/item/weapon/reagent_containers/attack_self(mob/user as mob)
|
||||
/obj/item/weapon/reagent_containers/attack_self(mob/user)
|
||||
return
|
||||
|
||||
// this prevented pills, food, and other things from being picked up by bags.
|
||||
@@ -69,7 +69,7 @@
|
||||
/obj/item/weapon/reagent_containers/afterattack(obj/target, mob/user , flag)
|
||||
return
|
||||
|
||||
/obj/item/weapon/reagent_containers/proc/reagentlist(var/obj/item/weapon/reagent_containers/snack) //Attack logs for regents in pills
|
||||
/obj/item/weapon/reagent_containers/proc/reagentlist(obj/item/weapon/reagent_containers/snack) //Attack logs for regents in pills
|
||||
var/data
|
||||
if(snack && snack.reagents && snack.reagents.reagent_list && snack.reagents.reagent_list.len) //find a reagent list if there is and check if it has entries
|
||||
for(var/datum/reagent/R in snack.reagents.reagent_list) //no reagents will be left behind
|
||||
|
||||
@@ -7,22 +7,25 @@
|
||||
|
||||
var/blood_type = null
|
||||
|
||||
New()
|
||||
..()
|
||||
if(blood_type != null)
|
||||
name = "BloodPack [blood_type]"
|
||||
reagents.add_reagent("blood", 200, list("donor"=null,"viruses"=null,"blood_DNA"=null,"blood_type"=blood_type,"resistances"=null,"trace_chem"=null))
|
||||
update_icon()
|
||||
|
||||
on_reagent_change()
|
||||
/obj/item/weapon/reagent_containers/blood/New()
|
||||
..()
|
||||
if(blood_type != null)
|
||||
name = "BloodPack [blood_type]"
|
||||
reagents.add_reagent("blood", 200, list("donor"=null,"viruses"=null,"blood_DNA"=null,"blood_type"=blood_type,"resistances"=null,"trace_chem"=null))
|
||||
update_icon()
|
||||
|
||||
/obj/item/weapon/reagent_containers/blood/on_reagent_change()
|
||||
update_icon()
|
||||
var/percent = round((reagents.total_volume / volume) * 100)
|
||||
switch(percent)
|
||||
if(0 to 9) icon_state = "empty"
|
||||
if(10 to 50) icon_state = "half"
|
||||
if(51 to INFINITY) icon_state = "full"
|
||||
|
||||
/obj/item/weapon/reagent_containers/blood/update_icon()
|
||||
var/percent = round((reagents.total_volume / volume) * 100)
|
||||
switch(percent)
|
||||
if(0 to 9)
|
||||
icon_state = "empty"
|
||||
if(10 to 50)
|
||||
icon_state = "half"
|
||||
if(51 to INFINITY)
|
||||
icon_state = "full"
|
||||
|
||||
/obj/item/weapon/reagent_containers/blood/random/New()
|
||||
blood_type = pick("A+", "A-", "B+", "B-", "O+", "O-")
|
||||
|
||||
@@ -60,7 +60,7 @@
|
||||
return 1
|
||||
|
||||
// Use this to add more chemicals for the borghypo to produce.
|
||||
/obj/item/weapon/reagent_containers/borghypo/proc/add_reagent(var/reagent)
|
||||
/obj/item/weapon/reagent_containers/borghypo/proc/add_reagent(reagent)
|
||||
reagent_ids |= reagent
|
||||
var/datum/reagents/RG = new(30)
|
||||
RG.my_atom = src
|
||||
@@ -69,7 +69,7 @@
|
||||
var/datum/reagents/R = reagent_list[reagent_list.len]
|
||||
R.add_reagent(reagent, 30)
|
||||
|
||||
/obj/item/weapon/reagent_containers/borghypo/attack(mob/living/M as mob, mob/user as mob)
|
||||
/obj/item/weapon/reagent_containers/borghypo/attack(mob/living/M, mob/user)
|
||||
var/datum/reagents/R = reagent_list[mode]
|
||||
if(!R.total_volume)
|
||||
to_chat(user, "<span class='warning'>The injector is empty.</span>")
|
||||
@@ -94,7 +94,7 @@
|
||||
to_chat(user, "<span class='notice'>[trans] units injected. [R.total_volume] units remaining.</span>")
|
||||
return
|
||||
|
||||
/obj/item/weapon/reagent_containers/borghypo/attack_self(mob/user as mob)
|
||||
/obj/item/weapon/reagent_containers/borghypo/attack_self(mob/user)
|
||||
playsound(src.loc, 'sound/effects/pop.ogg', 50, 0) //Change the mode
|
||||
mode++
|
||||
if(mode > reagent_list.len)
|
||||
|
||||
@@ -11,111 +11,110 @@
|
||||
volume = 5
|
||||
var/filled = 0
|
||||
|
||||
afterattack(obj/target, mob/user , flag)
|
||||
if(!target.reagents) return
|
||||
|
||||
if(filled)
|
||||
|
||||
if(target.reagents.total_volume >= target.reagents.maximum_volume)
|
||||
to_chat(user, "\red [target] is full.")
|
||||
return
|
||||
|
||||
if(!target.is_open_container() && !ismob(target) && !istype(target,/obj/item/weapon/reagent_containers/food) && !istype(target, /obj/item/clothing/mask/cigarette)) //You can inject humans and food but you cant remove the shit.
|
||||
to_chat(user, "\red You cannot directly fill this object.")
|
||||
return
|
||||
|
||||
var/trans = 0
|
||||
|
||||
if(ismob(target))
|
||||
if(istype(target , /mob/living/carbon/human))
|
||||
var/mob/living/carbon/human/victim = target
|
||||
|
||||
var/obj/item/safe_thing = null
|
||||
if( victim.wear_mask )
|
||||
if( victim.wear_mask.flags & MASKCOVERSEYES )
|
||||
safe_thing = victim.wear_mask
|
||||
if( victim.head )
|
||||
if( victim.head.flags & MASKCOVERSEYES )
|
||||
safe_thing = victim.head
|
||||
if(victim.glasses)
|
||||
if( !safe_thing )
|
||||
safe_thing = victim.glasses
|
||||
|
||||
if(safe_thing)
|
||||
if(!safe_thing.reagents)
|
||||
safe_thing.create_reagents(100)
|
||||
trans = src.reagents.trans_to(safe_thing, amount_per_transfer_from_this)
|
||||
|
||||
for(var/mob/O in viewers(world.view, user))
|
||||
O.show_message(text("\red <B>[] tries to squirt something into []'s eyes, but fails!</B>", user, target), 1)
|
||||
spawn(5)
|
||||
src.reagents.reaction(safe_thing, TOUCH)
|
||||
|
||||
|
||||
|
||||
to_chat(user, "\blue You transfer [trans] units of the solution.")
|
||||
if(src.reagents.total_volume<=0)
|
||||
filled = 0
|
||||
icon_state = "[initial(icon_state)]"
|
||||
return
|
||||
|
||||
|
||||
for(var/mob/O in viewers(world.view, user))
|
||||
O.show_message(text("\red <B>[] squirts something into []'s eyes!</B>", user, target), 1)
|
||||
src.reagents.reaction(target, TOUCH)
|
||||
|
||||
var/mob/living/M = target
|
||||
|
||||
var/list/injected = list()
|
||||
for(var/datum/reagent/R in src.reagents.reagent_list)
|
||||
injected += R.name
|
||||
var/contained = english_list(injected)
|
||||
M.attack_log += text("\[[time_stamp()]\] <font color='orange'>Has been squirted with [src.name] by [key_name(user)]. Reagents: [contained]</font>")
|
||||
user.attack_log += text("\[[time_stamp()]\] <font color='red'>Used the [src.name] to squirt [key_name(M)]. Reagents: [contained]</font>")
|
||||
if(M.ckey)
|
||||
msg_admin_attack("[key_name_admin(user)] squirted [key_name_admin(M)] with [src.name]. Reagents: [contained] (INTENT: [uppertext(user.a_intent)])")
|
||||
if(!iscarbon(user))
|
||||
M.LAssailant = null
|
||||
else
|
||||
M.LAssailant = user
|
||||
|
||||
// /vg/: Logging transfers of bad things
|
||||
if(isobj(target))
|
||||
if(target.reagents_to_log.len)
|
||||
var/list/badshit=list()
|
||||
for(var/bad_reagent in target.reagents_to_log)
|
||||
if(reagents.has_reagent(bad_reagent))
|
||||
badshit += reagents_to_log[bad_reagent]
|
||||
if(badshit.len)
|
||||
var/hl = "<span class='danger'>([english_list(badshit)])</span>"
|
||||
message_admins("[key_name_admin(user)] added [reagents.get_reagent_ids(1)] to \a [target] with [src].[hl]")
|
||||
log_game("[key_name(user)] added [reagents.get_reagent_ids(1)] to \a [target] with [src].")
|
||||
|
||||
trans = src.reagents.trans_to(target, amount_per_transfer_from_this)
|
||||
to_chat(user, "\blue You transfer [trans] units of the solution.")
|
||||
if(src.reagents.total_volume<=0)
|
||||
filled = 0
|
||||
icon_state = "[initial(icon_state)]"
|
||||
|
||||
else
|
||||
|
||||
if(!target.is_open_container() && !istype(target,/obj/structure/reagent_dispensers))
|
||||
to_chat(user, "\red You cannot directly remove reagents from [target].")
|
||||
return
|
||||
|
||||
if(!target.reagents.total_volume)
|
||||
to_chat(user, "\red [target] is empty.")
|
||||
return
|
||||
|
||||
var/trans = target.reagents.trans_to(src, amount_per_transfer_from_this)
|
||||
|
||||
to_chat(user, "\blue You fill the [src] with [trans] units of the solution.")
|
||||
|
||||
filled = 1
|
||||
icon_state = "[initial(icon_state)][filled]"
|
||||
|
||||
/obj/item/weapon/reagent_containers/dropper/afterattack(obj/target, mob/user , flag)
|
||||
if(!target.reagents)
|
||||
return
|
||||
|
||||
if(filled)
|
||||
|
||||
if(target.reagents.total_volume >= target.reagents.maximum_volume)
|
||||
to_chat(user, "\red [target] is full.")
|
||||
return
|
||||
|
||||
if(!target.is_open_container() && !ismob(target) && !istype(target,/obj/item/weapon/reagent_containers/food) && !istype(target, /obj/item/clothing/mask/cigarette)) //You can inject humans and food but you cant remove the shit.
|
||||
to_chat(user, "\red You cannot directly fill this object.")
|
||||
return
|
||||
|
||||
var/trans = 0
|
||||
|
||||
if(ismob(target))
|
||||
if(istype(target , /mob/living/carbon/human))
|
||||
var/mob/living/carbon/human/victim = target
|
||||
|
||||
var/obj/item/safe_thing = null
|
||||
if( victim.wear_mask )
|
||||
if( victim.wear_mask.flags & MASKCOVERSEYES )
|
||||
safe_thing = victim.wear_mask
|
||||
if( victim.head )
|
||||
if( victim.head.flags & MASKCOVERSEYES )
|
||||
safe_thing = victim.head
|
||||
if(victim.glasses)
|
||||
if( !safe_thing )
|
||||
safe_thing = victim.glasses
|
||||
|
||||
if(safe_thing)
|
||||
if(!safe_thing.reagents)
|
||||
safe_thing.create_reagents(100)
|
||||
trans = src.reagents.trans_to(safe_thing, amount_per_transfer_from_this)
|
||||
|
||||
for(var/mob/O in viewers(world.view, user))
|
||||
O.show_message(text("\red <B>[] tries to squirt something into []'s eyes, but fails!</B>", user, target), 1)
|
||||
spawn(5)
|
||||
src.reagents.reaction(safe_thing, TOUCH)
|
||||
|
||||
|
||||
|
||||
to_chat(user, "\blue You transfer [trans] units of the solution.")
|
||||
if(src.reagents.total_volume<=0)
|
||||
filled = 0
|
||||
icon_state = "[initial(icon_state)]"
|
||||
return
|
||||
|
||||
|
||||
for(var/mob/O in viewers(world.view, user))
|
||||
O.show_message(text("\red <B>[] squirts something into []'s eyes!</B>", user, target), 1)
|
||||
src.reagents.reaction(target, TOUCH)
|
||||
|
||||
var/mob/living/M = target
|
||||
|
||||
var/list/injected = list()
|
||||
for(var/datum/reagent/R in src.reagents.reagent_list)
|
||||
injected += R.name
|
||||
var/contained = english_list(injected)
|
||||
M.attack_log += text("\[[time_stamp()]\] <font color='orange'>Has been squirted with [src.name] by [key_name(user)]. Reagents: [contained]</font>")
|
||||
user.attack_log += text("\[[time_stamp()]\] <font color='red'>Used the [src.name] to squirt [key_name(M)]. Reagents: [contained]</font>")
|
||||
if(M.ckey)
|
||||
msg_admin_attack("[key_name_admin(user)] squirted [key_name_admin(M)] with [src.name]. Reagents: [contained] (INTENT: [uppertext(user.a_intent)])")
|
||||
if(!iscarbon(user))
|
||||
M.LAssailant = null
|
||||
else
|
||||
M.LAssailant = user
|
||||
|
||||
// /vg/: Logging transfers of bad things
|
||||
if(isobj(target))
|
||||
if(target.reagents_to_log.len)
|
||||
var/list/badshit=list()
|
||||
for(var/bad_reagent in target.reagents_to_log)
|
||||
if(reagents.has_reagent(bad_reagent))
|
||||
badshit += reagents_to_log[bad_reagent]
|
||||
if(badshit.len)
|
||||
var/hl = "<span class='danger'>([english_list(badshit)])</span>"
|
||||
message_admins("[key_name_admin(user)] added [reagents.get_reagent_ids(1)] to \a [target] with [src].[hl]")
|
||||
log_game("[key_name(user)] added [reagents.get_reagent_ids(1)] to \a [target] with [src].")
|
||||
|
||||
trans = src.reagents.trans_to(target, amount_per_transfer_from_this)
|
||||
to_chat(user, "\blue You transfer [trans] units of the solution.")
|
||||
if(src.reagents.total_volume<=0)
|
||||
filled = 0
|
||||
icon_state = "[initial(icon_state)]"
|
||||
|
||||
else
|
||||
|
||||
if(!target.is_open_container() && !istype(target,/obj/structure/reagent_dispensers))
|
||||
to_chat(user, "\red You cannot directly remove reagents from [target].")
|
||||
return
|
||||
|
||||
if(!target.reagents.total_volume)
|
||||
to_chat(user, "\red [target] is empty.")
|
||||
return
|
||||
|
||||
var/trans = target.reagents.trans_to(src, amount_per_transfer_from_this)
|
||||
|
||||
to_chat(user, "\blue You fill the [src] with [trans] units of the solution.")
|
||||
|
||||
filled = 1
|
||||
icon_state = "[initial(icon_state)][filled]"
|
||||
|
||||
/obj/item/weapon/reagent_containers/dropper/cyborg
|
||||
name = "Industrial Dropper"
|
||||
desc = "A larger dropper. Transfers 10 units."
|
||||
|
||||
@@ -12,80 +12,81 @@
|
||||
|
||||
var/label_text = ""
|
||||
|
||||
New()
|
||||
..()
|
||||
src.pixel_x = rand(-10.0, 10) //Randomizes postion
|
||||
src.pixel_y = rand(-10.0, 10)
|
||||
base_name = name
|
||||
/obj/item/weapon/reagent_containers/drugs/New()
|
||||
..()
|
||||
src.pixel_x = rand(-10.0, 10) //Randomizes postion
|
||||
src.pixel_y = rand(-10.0, 10)
|
||||
base_name = name
|
||||
|
||||
afterattack(obj/target, mob/user, proximity)
|
||||
if(!proximity) return
|
||||
/obj/item/weapon/reagent_containers/drugs/afterattack(obj/target, mob/user, proximity)
|
||||
if(!proximity)
|
||||
return
|
||||
|
||||
if(istype(target, /obj/structure/reagent_dispensers)) //A dispenser. Transfer FROM it TO us.
|
||||
if(istype(target, /obj/structure/reagent_dispensers)) //A dispenser. Transfer FROM it TO us.
|
||||
|
||||
if(!target.reagents.total_volume && target.reagents)
|
||||
to_chat(user, "\red [target] is empty.")
|
||||
return
|
||||
|
||||
if(reagents.total_volume >= reagents.maximum_volume)
|
||||
to_chat(user, "\red [src] is full.")
|
||||
return
|
||||
|
||||
for(var/datum/reagent/A in target.reagents.reagent_list)
|
||||
if(A.reagent_state != 1)
|
||||
to_chat(user, "\red You can only put powders in [src].")
|
||||
return
|
||||
|
||||
var/trans = target.reagents.trans_to(src, target:amount_per_transfer_from_this)
|
||||
to_chat(user, "\blue You fill [src] with [trans] units of the contents of [target].")
|
||||
|
||||
else if(target.is_open_container() && target.reagents) //Something like a glass. Player probably wants to transfer TO it.
|
||||
if(!reagents.total_volume)
|
||||
to_chat(user, "\red [src] is empty.")
|
||||
return
|
||||
|
||||
if(target.reagents.total_volume >= target.reagents.maximum_volume)
|
||||
to_chat(user, "\red [target] is full.")
|
||||
return
|
||||
|
||||
// /vg/: Logging transfers of bad things
|
||||
if(target.reagents_to_log.len)
|
||||
var/list/badshit=list()
|
||||
for(var/bad_reagent in target.reagents_to_log)
|
||||
if(reagents.has_reagent(bad_reagent))
|
||||
badshit += reagents_to_log[bad_reagent]
|
||||
if(badshit.len)
|
||||
var/hl = "<span class='danger'>([english_list(badshit)])</span>"
|
||||
message_admins("[key_name_admin(user)] added [reagents.get_reagent_ids(1)] to \a [target] with [src].[hl]")
|
||||
log_game("[key_name(user)] added [reagents.get_reagent_ids(1)] to \a [target] with [src].")
|
||||
|
||||
var/trans = src.reagents.trans_to(target, amount_per_transfer_from_this)
|
||||
to_chat(user, "\blue You transfer [trans] units of the solution to [target].")
|
||||
|
||||
//Safety for dumping stuff into a ninja suit. It handles everything through attackby() and this is unnecessary.
|
||||
|
||||
/*else if(istype(target, /obj/machinery/bunsen_burner))
|
||||
if(!target.reagents.total_volume && target.reagents)
|
||||
to_chat(user, "\red [target] is empty.")
|
||||
return
|
||||
|
||||
else if(istype(target, /obj/machinery/radiocarbon_spectrometer))
|
||||
return*/
|
||||
if(reagents.total_volume >= reagents.maximum_volume)
|
||||
to_chat(user, "\red [src] is full.")
|
||||
return
|
||||
|
||||
for(var/datum/reagent/A in target.reagents.reagent_list)
|
||||
if(A.reagent_state != 1)
|
||||
to_chat(user, "\red You can only put powders in [src].")
|
||||
return
|
||||
|
||||
var/trans = target.reagents.trans_to(src, target:amount_per_transfer_from_this)
|
||||
to_chat(user, "\blue You fill [src] with [trans] units of the contents of [target].")
|
||||
|
||||
else if(target.is_open_container() && target.reagents) //Something like a glass. Player probably wants to transfer TO it.
|
||||
if(!reagents.total_volume)
|
||||
to_chat(user, "\red [src] is empty.")
|
||||
return
|
||||
|
||||
if(target.reagents.total_volume >= target.reagents.maximum_volume)
|
||||
to_chat(user, "\red [target] is full.")
|
||||
return
|
||||
|
||||
// /vg/: Logging transfers of bad things
|
||||
if(target.reagents_to_log.len)
|
||||
var/list/badshit=list()
|
||||
for(var/bad_reagent in target.reagents_to_log)
|
||||
if(reagents.has_reagent(bad_reagent))
|
||||
badshit += reagents_to_log[bad_reagent]
|
||||
if(badshit.len)
|
||||
var/hl = "<span class='danger'>([english_list(badshit)])</span>"
|
||||
message_admins("[key_name_admin(user)] added [reagents.get_reagent_ids(1)] to \a [target] with [src].[hl]")
|
||||
log_game("[key_name(user)] added [reagents.get_reagent_ids(1)] to \a [target] with [src].")
|
||||
|
||||
var/trans = src.reagents.trans_to(target, amount_per_transfer_from_this)
|
||||
to_chat(user, "\blue You transfer [trans] units of the solution to [target].")
|
||||
|
||||
//Safety for dumping stuff into a ninja suit. It handles everything through attackby() and this is unnecessary.
|
||||
|
||||
/*else if(istype(target, /obj/machinery/bunsen_burner))
|
||||
return
|
||||
|
||||
else if(istype(target, /obj/machinery/radiocarbon_spectrometer))
|
||||
return*/
|
||||
|
||||
|
||||
attackby(obj/item/weapon/W as obj, mob/user as mob, params)
|
||||
if(istype(W, /obj/item/weapon/pen) || istype(W, /obj/item/device/flashlight/pen))
|
||||
var/tmp_label = sanitize(input(user, "Enter a label for [src.name]","Label",src.label_text))
|
||||
if(length(tmp_label) > 10)
|
||||
to_chat(user, "\red The label can be at most 10 characters long.")
|
||||
else
|
||||
to_chat(user, "\blue You set the label to \"[tmp_label]\".")
|
||||
src.label_text = tmp_label
|
||||
src.update_name_label()
|
||||
|
||||
proc/update_name_label()
|
||||
if(src.label_text == "")
|
||||
src.name = src.base_name
|
||||
/obj/item/weapon/reagent_containers/drugs/attackby(obj/item/weapon/W, mob/user, params)
|
||||
if(istype(W, /obj/item/weapon/pen) || istype(W, /obj/item/device/flashlight/pen))
|
||||
var/tmp_label = sanitize(input(user, "Enter a label for [src.name]","Label",src.label_text))
|
||||
if(length(tmp_label) > 10)
|
||||
to_chat(user, "\red The label can be at most 10 characters long.")
|
||||
else
|
||||
src.name = "[src.base_name] ([src.label_text])"
|
||||
to_chat(user, "\blue You set the label to \"[tmp_label]\".")
|
||||
src.label_text = tmp_label
|
||||
src.update_name_label()
|
||||
|
||||
/obj/item/weapon/reagent_containers/drugs/proc/update_name_label()
|
||||
if(src.label_text == "")
|
||||
src.name = src.base_name
|
||||
else
|
||||
src.name = "[src.base_name] ([src.label_text])"
|
||||
|
||||
/obj/item/weapon/reagent_containers/drugs/baggie
|
||||
name = "baggie"
|
||||
@@ -94,39 +95,45 @@
|
||||
icon_state = "baggie"
|
||||
item_state = "beaker"
|
||||
|
||||
on_reagent_change()
|
||||
update_icon()
|
||||
|
||||
pickup(mob/user)
|
||||
..()
|
||||
update_icon()
|
||||
|
||||
dropped(mob/user)
|
||||
..()
|
||||
update_icon()
|
||||
|
||||
attack_hand()
|
||||
..()
|
||||
update_icon()
|
||||
|
||||
/obj/item/weapon/reagent_containers/drugs/on_reagent_change()
|
||||
update_icon()
|
||||
overlays.Cut()
|
||||
|
||||
if(reagents.total_volume)
|
||||
var/image/filling = image('icons/obj/reagentfillings.dmi', src, "[icon_state]2")
|
||||
/obj/item/weapon/reagent_containers/drugs/pickup(mob/user)
|
||||
..()
|
||||
update_icon()
|
||||
|
||||
switch(reagents.total_volume)
|
||||
if(0 to 2) filling.icon_state = "[icon_state]2"
|
||||
if(3 to 4) filling.icon_state = "[icon_state]4"
|
||||
if(5 to 6) filling.icon_state = "[icon_state]6"
|
||||
if(7 to 8) filling.icon_state = "[icon_state]8"
|
||||
if(9 to 10) filling.icon_state = "[icon_state]10"
|
||||
/obj/item/weapon/reagent_containers/drugs/dropped(mob/user)
|
||||
..()
|
||||
update_icon()
|
||||
|
||||
/obj/item/weapon/reagent_containers/drugs/attack_hand()
|
||||
..()
|
||||
update_icon()
|
||||
|
||||
/obj/item/weapon/reagent_containers/drugs/update_icon()
|
||||
overlays.Cut()
|
||||
|
||||
if(reagents.total_volume)
|
||||
var/image/filling = image('icons/obj/reagentfillings.dmi', src, "[icon_state]2")
|
||||
|
||||
switch(reagents.total_volume)
|
||||
if(0 to 2)
|
||||
filling.icon_state = "[icon_state]2"
|
||||
if(3 to 4)
|
||||
filling.icon_state = "[icon_state]4"
|
||||
if(5 to 6)
|
||||
filling.icon_state = "[icon_state]6"
|
||||
if(7 to 8)
|
||||
filling.icon_state = "[icon_state]8"
|
||||
if(9 to 10)
|
||||
filling.icon_state = "[icon_state]10"
|
||||
|
||||
|
||||
filling.icon += mix_color_from_reagents(reagents.reagent_list)
|
||||
overlays += filling
|
||||
filling.icon += mix_color_from_reagents(reagents.reagent_list)
|
||||
overlays += filling
|
||||
|
||||
/obj/item/weapon/reagent_containers/drugs/baggie/meth
|
||||
New()
|
||||
..()
|
||||
reagents.add_reagent("methamphetamine", 10)
|
||||
|
||||
/obj/item/weapon/reagent_containers/drugs/New()
|
||||
..()
|
||||
reagents.add_reagent("methamphetamine", 10)
|
||||
@@ -13,6 +13,6 @@
|
||||
var/instant_application = 0 //if we want to bypass the forcedfeed delay
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/New()
|
||||
..()
|
||||
src.pixel_x = rand(-10.0, 10) //Randomizes postion
|
||||
src.pixel_y = rand(-10.0, 10)
|
||||
..()
|
||||
pixel_x = rand(-10, 10) //Randomizes postion
|
||||
pixel_y = rand(-10, 10)
|
||||
@@ -12,190 +12,158 @@
|
||||
flags = OPENCONTAINER
|
||||
volume = 30
|
||||
|
||||
New()
|
||||
..()
|
||||
if(!icon_state)
|
||||
icon_state = "bottle[rand(1,20)]"
|
||||
/obj/item/weapon/reagent_containers/glass/bottle/New()
|
||||
..()
|
||||
if(!icon_state)
|
||||
icon_state = "bottle[rand(1,20)]"
|
||||
|
||||
|
||||
//Copypasta from /obj/item/weapon/reagent_containers/glass/beaker
|
||||
on_reagent_change()
|
||||
update_icon()
|
||||
|
||||
pickup(mob/user)
|
||||
..()
|
||||
update_icon()
|
||||
|
||||
dropped(mob/user)
|
||||
..()
|
||||
update_icon()
|
||||
|
||||
attack_hand()
|
||||
..()
|
||||
update_icon()
|
||||
|
||||
/obj/item/weapon/reagent_containers/glass/bottle/on_reagent_change()
|
||||
update_icon()
|
||||
overlays.Cut()
|
||||
|
||||
if(reagents.total_volume)
|
||||
var/image/filling = image('icons/obj/reagentfillings.dmi', src, "[icon_state]10")
|
||||
/obj/item/weapon/reagent_containers/glass/bottle/pickup(mob/user)
|
||||
..()
|
||||
update_icon()
|
||||
|
||||
var/percent = round((reagents.total_volume / volume) * 100)
|
||||
switch(percent)
|
||||
if(0 to 24) filling.icon_state = "[icon_state]10"
|
||||
if(25 to 49) filling.icon_state = "[icon_state]25"
|
||||
if(50 to 74) filling.icon_state = "[icon_state]50"
|
||||
if(75 to 90) filling.icon_state = "[icon_state]75"
|
||||
if(91 to INFINITY) filling.icon_state = "[icon_state]100"
|
||||
/obj/item/weapon/reagent_containers/glass/bottle/dropped(mob/user)
|
||||
..()
|
||||
update_icon()
|
||||
|
||||
filling.icon += mix_color_from_reagents(reagents.reagent_list)
|
||||
overlays += filling
|
||||
/obj/item/weapon/reagent_containers/glass/bottle/attack_hand()
|
||||
..()
|
||||
update_icon()
|
||||
|
||||
if(!is_open_container())
|
||||
var/image/lid = image(icon, src, "lid_bottle")
|
||||
overlays += lid
|
||||
/obj/item/weapon/reagent_containers/glass/bottle/update_icon()
|
||||
overlays.Cut()
|
||||
|
||||
if(reagents.total_volume)
|
||||
var/image/filling = image('icons/obj/reagentfillings.dmi', src, "[icon_state]10")
|
||||
|
||||
var/percent = round((reagents.total_volume / volume) * 100)
|
||||
switch(percent)
|
||||
if(0 to 24)
|
||||
filling.icon_state = "[icon_state]10"
|
||||
if(25 to 49)
|
||||
filling.icon_state = "[icon_state]25"
|
||||
if(50 to 74)
|
||||
filling.icon_state = "[icon_state]50"
|
||||
if(75 to 90)
|
||||
filling.icon_state = "[icon_state]75"
|
||||
if(91 to INFINITY)
|
||||
filling.icon_state = "[icon_state]100"
|
||||
|
||||
filling.icon += mix_color_from_reagents(reagents.reagent_list)
|
||||
overlays += filling
|
||||
|
||||
if(!is_open_container())
|
||||
var/image/lid = image(icon, src, "lid_bottle")
|
||||
overlays += lid
|
||||
|
||||
/obj/item/weapon/reagent_containers/glass/bottle/toxin
|
||||
name = "toxin bottle"
|
||||
desc = "A small bottle of toxins. Do not drink, it is poisonous."
|
||||
icon = 'icons/obj/chemical.dmi'
|
||||
icon_state = "bottle12"
|
||||
|
||||
New()
|
||||
..()
|
||||
reagents.add_reagent("toxin", 30)
|
||||
list_reagents = list("toxin" = 30)
|
||||
|
||||
/obj/item/weapon/reagent_containers/glass/bottle/cyanide
|
||||
name = "cyanide bottle"
|
||||
desc = "A small bottle of cyanide. Bitter almonds?"
|
||||
icon = 'icons/obj/chemical.dmi'
|
||||
icon_state = "bottle12"
|
||||
|
||||
New()
|
||||
..()
|
||||
reagents.add_reagent("cyanide", 30)
|
||||
list_reagents = list("cyanide" = 30)
|
||||
|
||||
/obj/item/weapon/reagent_containers/glass/bottle/mutagen
|
||||
name = "unstable mutagen bottle"
|
||||
desc = "A small bottle of unstable mutagen. Randomly changes the DNA structure of whoever comes in contact."
|
||||
icon = 'icons/obj/chemical.dmi'
|
||||
icon_state = "bottle20"
|
||||
|
||||
New()
|
||||
..()
|
||||
reagents.add_reagent("mutagen", 30)
|
||||
list_reagents = list("mutagen" = 30)
|
||||
|
||||
/obj/item/weapon/reagent_containers/glass/bottle/ammonia
|
||||
name = "ammonia bottle"
|
||||
desc = "A small bottle."
|
||||
icon = 'icons/obj/chemical.dmi'
|
||||
icon_state = "bottle20"
|
||||
|
||||
New()
|
||||
..()
|
||||
reagents.add_reagent("ammonia", 30)
|
||||
list_reagents = list("ammonia" = 30)
|
||||
|
||||
/obj/item/weapon/reagent_containers/glass/bottle/diethylamine
|
||||
name = "diethylamine bottle"
|
||||
desc = "A small bottle."
|
||||
icon = 'icons/obj/chemical.dmi'
|
||||
icon_state = "bottle17"
|
||||
|
||||
New()
|
||||
..()
|
||||
reagents.add_reagent("diethylamine", 30)
|
||||
list_reagents = list("diethylamine" = 30)
|
||||
|
||||
/obj/item/weapon/reagent_containers/glass/bottle/facid
|
||||
name = "Fluorosulfuric Acid Bottle"
|
||||
desc = "A small bottle. Contains a small amount of Fluorosulfuric Acid"
|
||||
icon = 'icons/obj/chemical.dmi'
|
||||
icon_state = "bottle17"
|
||||
New()
|
||||
..()
|
||||
reagents.add_reagent("facid", 30)
|
||||
list_reagents = list("facid" = 30)
|
||||
|
||||
/obj/item/weapon/reagent_containers/glass/bottle/adminordrazine
|
||||
name = "Adminordrazine Bottle"
|
||||
desc = "A small bottle. Contains the liquid essence of the gods."
|
||||
icon = 'icons/obj/drinks.dmi'
|
||||
icon_state = "holyflask"
|
||||
New()
|
||||
..()
|
||||
reagents.add_reagent("adminordrazine", 30)
|
||||
list_reagents = list("adminordrazine" = 30)
|
||||
|
||||
/obj/item/weapon/reagent_containers/glass/bottle/capsaicin
|
||||
name = "Capsaicin Bottle"
|
||||
desc = "A small bottle. Contains hot sauce."
|
||||
icon = 'icons/obj/chemical.dmi'
|
||||
icon_state = "bottle3"
|
||||
New()
|
||||
..()
|
||||
reagents.add_reagent("capsaicin", 30)
|
||||
list_reagents = list("capsaicin" = 30)
|
||||
|
||||
/obj/item/weapon/reagent_containers/glass/bottle/frostoil
|
||||
name = "Frost Oil Bottle"
|
||||
desc = "A small bottle. Contains cold sauce."
|
||||
icon = 'icons/obj/chemical.dmi'
|
||||
icon_state = "bottle17"
|
||||
New()
|
||||
..()
|
||||
reagents.add_reagent("frostoil", 30)
|
||||
list_reagents = list("frostoil" = 30)
|
||||
|
||||
/obj/item/weapon/reagent_containers/glass/bottle/morphine
|
||||
name = "Morphine Bottle"
|
||||
desc = "A small bottle. Contains morphine."
|
||||
icon = 'icons/obj/chemical.dmi'
|
||||
icon_state = "bottle17"
|
||||
New()
|
||||
..()
|
||||
reagents.add_reagent("morphine", 30)
|
||||
list_reagents = list("morphine" = 30)
|
||||
|
||||
/obj/item/weapon/reagent_containers/glass/bottle/ether
|
||||
name = "Ether Bottle"
|
||||
desc = "A small bottle. Contains ether."
|
||||
icon = 'icons/obj/chemical.dmi'
|
||||
icon_state = "bottle17"
|
||||
New()
|
||||
..()
|
||||
reagents.add_reagent("ether", 30)
|
||||
list_reagents = list("ether" = 30)
|
||||
|
||||
/obj/item/weapon/reagent_containers/glass/bottle/charcoal
|
||||
name = "Charcoal Bottle"
|
||||
desc = "A small bottle. Contains charcoal."
|
||||
icon = 'icons/obj/chemical.dmi'
|
||||
icon_state = "bottle17"
|
||||
New()
|
||||
..()
|
||||
reagents.add_reagent("charcoal", 30)
|
||||
list_reagents = list("charcoal" = 30)
|
||||
|
||||
/obj/item/weapon/reagent_containers/glass/bottle/epinephrine
|
||||
name = "Epinephrine Bottle"
|
||||
desc = "A small bottle. Contains epinephrine."
|
||||
icon = 'icons/obj/chemical.dmi'
|
||||
icon_state = "bottle17"
|
||||
New()
|
||||
..()
|
||||
reagents.add_reagent("epinephrine", 30)
|
||||
list_reagents = list("epinephrine" = 30)
|
||||
|
||||
/obj/item/weapon/reagent_containers/glass/bottle/pancuronium
|
||||
name = "Pancuronium Bottle"
|
||||
desc = "A small bottle of pancuronium."
|
||||
icon = 'icons/obj/chemical.dmi'
|
||||
icon_state = "bottle14"
|
||||
|
||||
New()
|
||||
..()
|
||||
reagents.add_reagent("pancuronium", 30)
|
||||
list_reagents = list("pancuronium" = 30)
|
||||
|
||||
/obj/item/weapon/reagent_containers/glass/bottle/sulfonal
|
||||
name = "Sulfonal Bottle"
|
||||
desc = "A small bottle of Sulfonal."
|
||||
icon = 'icons/obj/chemical.dmi'
|
||||
icon_state = "bottle19"
|
||||
|
||||
New()
|
||||
..()
|
||||
reagents.add_reagent("sulfonal", 30)
|
||||
list_reagents = list("sulfonal" = 30)
|
||||
|
||||
//Reagent bottles
|
||||
|
||||
@@ -209,86 +177,64 @@
|
||||
name = "Oil Bottle"
|
||||
desc = "A reagent bottle. Contains oil."
|
||||
icon_state = "rbottle1"
|
||||
New()
|
||||
..()
|
||||
reagents.add_reagent("oil", 50)
|
||||
list_reagents = list("oil" = 50)
|
||||
|
||||
/obj/item/weapon/reagent_containers/glass/bottle/reagent/phenol
|
||||
name = "Phenol Bottle"
|
||||
desc = "A reagent bottle. Contains phenol."
|
||||
icon_state = "rbottle2"
|
||||
New()
|
||||
..()
|
||||
reagents.add_reagent("phenol", 50)
|
||||
list_reagents = list("phenol" = 50)
|
||||
|
||||
/obj/item/weapon/reagent_containers/glass/bottle/reagent/acetone
|
||||
name = "Acetone Bottle"
|
||||
desc = "A reagent bottle. Contains acetone."
|
||||
icon_state = "rbottle3"
|
||||
New()
|
||||
..()
|
||||
reagents.add_reagent("acetone", 50)
|
||||
list_reagents = list("acetone" = 50)
|
||||
|
||||
/obj/item/weapon/reagent_containers/glass/bottle/reagent/ammonia
|
||||
name = "Ammonia Bottle"
|
||||
desc = "A reagent bottle. Contains ammonia."
|
||||
icon_state = "rbottle4"
|
||||
New()
|
||||
..()
|
||||
reagents.add_reagent("ammonia", 50)
|
||||
list_reagents = list("ammonia" = 50)
|
||||
|
||||
/obj/item/weapon/reagent_containers/glass/bottle/reagent/diethylamine
|
||||
name = "Diethylamine Bottle"
|
||||
desc = "A reagent bottle. Contains diethylamine."
|
||||
icon_state = "rbottle5"
|
||||
New()
|
||||
..()
|
||||
reagents.add_reagent("diethylamine", 50)
|
||||
list_reagents = list("diethylamine" = 50)
|
||||
|
||||
/obj/item/weapon/reagent_containers/glass/bottle/reagent/acid
|
||||
name = "Acid Bottle"
|
||||
desc = "A reagent bottle. Contains sulfuric acid."
|
||||
icon_state = "rbottle6"
|
||||
New()
|
||||
..()
|
||||
reagents.add_reagent("sacid", 50)
|
||||
list_reagents = list("diethylamine" = 50)
|
||||
|
||||
/obj/item/weapon/reagent_containers/glass/bottle/reagent/formaldehyde
|
||||
name = "Formaldehyde Bottle"
|
||||
desc = "A reagent bottle. Contains formaldehyde."
|
||||
icon_state = "rbottle"
|
||||
New()
|
||||
..()
|
||||
reagents.add_reagent("formaldehyde", 50)
|
||||
list_reagents = list("formaldehyde" = 50)
|
||||
|
||||
/obj/item/weapon/reagent_containers/glass/bottle/reagent/morphine
|
||||
name = "Morphine Bottle"
|
||||
desc = "A reagent bottle. Contains morphine."
|
||||
New()
|
||||
..()
|
||||
reagents.add_reagent("morphine", 50)
|
||||
list_reagents = list("morphine" = 50)
|
||||
|
||||
/obj/item/weapon/reagent_containers/glass/bottle/reagent/insulin
|
||||
name = "Insulin Bottle"
|
||||
desc = "A reagent bottle. Contains insulin."
|
||||
New()
|
||||
..()
|
||||
reagents.add_reagent("insulin", 50)
|
||||
list_reagents = list("insulin" = 50)
|
||||
|
||||
|
||||
/obj/item/weapon/reagent_containers/glass/bottle/reagent/hairgrownium
|
||||
name = "Hair Grow Gel"
|
||||
desc = "A bottle full of a stimulative hair growth formula"
|
||||
New()
|
||||
..()
|
||||
reagents.add_reagent("hairgrownium", 50)
|
||||
list_reagents = list("hairgrownium" = 50)
|
||||
|
||||
/obj/item/weapon/reagent_containers/glass/bottle/reagent/hair_dye
|
||||
name = "Quantum Hair Dye Bottle"
|
||||
desc = "A bottle of the ever-changing quantum hair dye."
|
||||
New()
|
||||
..()
|
||||
reagents.add_reagent("hair_dye", 50)
|
||||
list_reagents = list("hair_dye" = 50)
|
||||
|
||||
////////////////////Traitor Poison Bottle//////////////////////////////
|
||||
|
||||
@@ -297,9 +243,9 @@
|
||||
possible_transfer_amounts = list(5,10,15,25,30,40)
|
||||
volume = 40
|
||||
|
||||
New()
|
||||
..()
|
||||
reagents.add_reagent(pick_list("chemistry_tools.json", "traitor_poison_bottle"), 40)
|
||||
/obj/item/weapon/reagent_containers/glass/bottle/traitor/New()
|
||||
..()
|
||||
reagents.add_reagent(pick_list("chemistry_tools.json", "traitor_poison_bottle"), 40)
|
||||
|
||||
/obj/item/weapon/reagent_containers/glass/bottle/plasma
|
||||
name = "plasma dust bottle"
|
||||
|
||||
@@ -1,32 +0,0 @@
|
||||
|
||||
/obj/item/weapon/reagent_containers/glass/bottle/robot
|
||||
amount_per_transfer_from_this = 10
|
||||
possible_transfer_amounts = list(5,10,15,25,30,50,100)
|
||||
flags = OPENCONTAINER
|
||||
volume = 60
|
||||
var/reagent = ""
|
||||
|
||||
|
||||
/obj/item/weapon/reagent_containers/glass/bottle/robot/epinephrine
|
||||
name = "internal epinephrine bottle"
|
||||
desc = "A small bottle. Contains epinephrine - used to stabilize patients."
|
||||
icon = 'icons/obj/chemical.dmi'
|
||||
icon_state = "bottle16"
|
||||
reagent = "epinephrine"
|
||||
|
||||
/obj/item/weapon/reagent_containers/glass/bottle/robot/epinephrine/New()
|
||||
..()
|
||||
reagents.add_reagent("epinephrine", 60)
|
||||
return
|
||||
|
||||
/obj/item/weapon/reagent_containers/glass/bottle/robot/charcoal
|
||||
name = "internal charcoal bottle"
|
||||
desc = "A small bottle of charcoal. Counters poisons and repairs damage."
|
||||
icon = 'icons/obj/chemical.dmi'
|
||||
icon_state = "bottle17"
|
||||
reagent = "charcoal"
|
||||
|
||||
/obj/item/weapon/reagent_containers/glass/bottle/robot/charcoal/New()
|
||||
..()
|
||||
reagents.add_reagent("charcoal", 60)
|
||||
return
|
||||
@@ -268,7 +268,7 @@
|
||||
if(assembly)
|
||||
assembly.Crossed(AM)
|
||||
|
||||
/obj/item/weapon/reagent_containers/glass/beaker/on_found(mob/finder as mob) //for mousetraps
|
||||
/obj/item/weapon/reagent_containers/glass/beaker/on_found(mob/finder) //for mousetraps
|
||||
if(assembly)
|
||||
assembly.on_found(finder)
|
||||
|
||||
@@ -319,20 +319,14 @@
|
||||
possible_transfer_amounts = list(5,10,15,25,30,50,100,300)
|
||||
flags = OPENCONTAINER
|
||||
|
||||
/obj/item/weapon/reagent_containers/glass/beaker/cryoxadone/New()
|
||||
..()
|
||||
reagents.add_reagent("cryoxadone", 30)
|
||||
update_icon()
|
||||
/obj/item/weapon/reagent_containers/glass/beaker/cryoxadone
|
||||
list_reagents = list("cryoxadone" = 30)
|
||||
|
||||
/obj/item/weapon/reagent_containers/glass/beaker/sulphuric/New()
|
||||
..()
|
||||
reagents.add_reagent("sacid", 50)
|
||||
update_icon()
|
||||
/obj/item/weapon/reagent_containers/glass/beaker/sulphuric
|
||||
list_reagents = list("sacid" = 50)
|
||||
|
||||
/obj/item/weapon/reagent_containers/glass/beaker/slime/New()
|
||||
..()
|
||||
reagents.add_reagent("slimejelly", 50)
|
||||
update_icon()
|
||||
/obj/item/weapon/reagent_containers/glass/beaker/slime
|
||||
list_reagents = list("slimejelly" = 50)
|
||||
|
||||
/obj/item/weapon/reagent_containers/glass/bucket
|
||||
desc = "It's a bucket."
|
||||
@@ -347,7 +341,7 @@
|
||||
volume = 120
|
||||
flags = OPENCONTAINER
|
||||
|
||||
/obj/item/weapon/reagent_containers/glass/bucket/attackby(var/obj/D, mob/user as mob, params)
|
||||
/obj/item/weapon/reagent_containers/glass/bucket/attackby(obj/D, mob/user, params)
|
||||
if(isprox(D))
|
||||
to_chat(user, "You add [D] to [src].")
|
||||
qdel(D)
|
||||
@@ -365,52 +359,4 @@
|
||||
volume = 15
|
||||
amount_per_transfer_from_this = 5
|
||||
possible_transfer_amounts = list(1,5,15)
|
||||
flags = OPENCONTAINER
|
||||
|
||||
/*
|
||||
/obj/item/weapon/reagent_containers/glass/blender_jug
|
||||
name = "Blender Jug"
|
||||
desc = "A blender jug, part of a blender."
|
||||
icon = 'icons/obj/kitchen.dmi'
|
||||
icon_state = "blender_jug_e"
|
||||
volume = 100
|
||||
|
||||
on_reagent_change()
|
||||
switch(src.reagents.total_volume)
|
||||
if(0)
|
||||
icon_state = "blender_jug_e"
|
||||
if(1 to 75)
|
||||
icon_state = "blender_jug_h"
|
||||
if(76 to 100)
|
||||
icon_state = "blender_jug_f"
|
||||
|
||||
/obj/item/weapon/reagent_containers/glass/canister //not used apparantly
|
||||
desc = "It's a canister. Mainly used for transporting fuel."
|
||||
name = "canister"
|
||||
icon = 'icons/obj/tank.dmi'
|
||||
icon_state = "canister"
|
||||
item_state = "canister"
|
||||
materials = list(MAT_METAL=300)
|
||||
w_class = 4
|
||||
|
||||
amount_per_transfer_from_this = 20
|
||||
possible_transfer_amounts = list(10,20,30,60)
|
||||
volume = 120
|
||||
|
||||
/obj/item/weapon/reagent_containers/glass/dispenser
|
||||
name = "reagent glass"
|
||||
desc = "A reagent glass."
|
||||
icon = 'icons/obj/chemical.dmi'
|
||||
icon_state = "beaker0"
|
||||
amount_per_transfer_from_this = 10
|
||||
flags = OPENCONTAINER
|
||||
|
||||
/obj/item/weapon/reagent_containers/glass/dispenser/surfactant
|
||||
name = "reagent glass (surfactant)"
|
||||
icon_state = "liquid"
|
||||
|
||||
New()
|
||||
..()
|
||||
reagents.add_reagent("fluorosurfactant", 20)
|
||||
|
||||
*/
|
||||
flags = OPENCONTAINER
|
||||
@@ -43,11 +43,8 @@
|
||||
var/trans = reagents.trans_to(M, amount_per_transfer_from_this)
|
||||
to_chat(user, "\blue [trans] units injected. [reagents.total_volume] units remaining in [src].")
|
||||
|
||||
return
|
||||
|
||||
/obj/item/weapon/reagent_containers/hypospray/CMO/New()
|
||||
..()
|
||||
reagents.add_reagent("omnizine", 30)
|
||||
/obj/item/weapon/reagent_containers/hypospray/CMO
|
||||
list_reagents = list("omnizine" = 30)
|
||||
|
||||
/obj/item/weapon/reagent_containers/hypospray/combat
|
||||
name = "combat stimulant injector"
|
||||
@@ -55,21 +52,14 @@
|
||||
amount_per_transfer_from_this = 10
|
||||
possible_transfer_amounts = list(10)
|
||||
icon_state = "combat_hypo"
|
||||
volume = 60
|
||||
volume = 75
|
||||
ignore_flags = 1 // So they can heal their comrades.
|
||||
|
||||
/obj/item/weapon/reagent_containers/hypospray/combat/New()
|
||||
..()
|
||||
reagents.add_reagent("synaptizine", 30)
|
||||
list_reagents = list("epinephrine" = 30, "omnizine" = 30, "teporone" = 15)
|
||||
|
||||
/obj/item/weapon/reagent_containers/hypospray/combat/nanites
|
||||
name = "combat stimulant injector"
|
||||
desc = "A modified air-needle autoinjector filled with expensive regeneration nanites."
|
||||
desc = "A modified air-needle autoinjector for use in combat situations. Prefilled with expensive medical nanites for rapid healing."
|
||||
volume = 100
|
||||
|
||||
/obj/item/weapon/reagent_containers/hypospray/combat/nanites/New()
|
||||
..()
|
||||
reagents.add_reagent("nanites", 70)
|
||||
list_reagents = list("nanites" = 100)
|
||||
|
||||
/obj/item/weapon/reagent_containers/hypospray/autoinjector
|
||||
name = "emergency autoinjector"
|
||||
@@ -81,56 +71,41 @@
|
||||
volume = 10
|
||||
ignore_flags = 1 //so you can medipen through hardsuits
|
||||
flags = null
|
||||
list_reagents = list("epinephrine" = 10)
|
||||
|
||||
/obj/item/weapon/reagent_containers/hypospray/autoinjector/New()
|
||||
..()
|
||||
reagents.add_reagent("epinephrine", 10)
|
||||
update_icon()
|
||||
return
|
||||
|
||||
/obj/item/weapon/reagent_containers/hypospray/autoinjector/attack(mob/M as mob, mob/user as mob)
|
||||
/obj/item/weapon/reagent_containers/hypospray/autoinjector/attack(mob/M, mob/user)
|
||||
if(!reagents.total_volume)
|
||||
to_chat(user, "<span class='warning'>[src] is empty!</span>")
|
||||
return
|
||||
..()
|
||||
update_icon()
|
||||
return
|
||||
|
||||
/obj/item/weapon/reagent_containers/hypospray/autoinjector/update_icon()
|
||||
if(reagents.total_volume > 0)
|
||||
icon_state = "[initial(icon_state)]1"
|
||||
icon_state = initial(icon_state)
|
||||
else
|
||||
icon_state = "[initial(icon_state)]0"
|
||||
|
||||
/obj/item/weapon/reagent_containers/hypospray/autoinjector/examine(mob/user)
|
||||
..(user)
|
||||
/obj/item/weapon/reagent_containers/hypospray/autoinjector/examine()
|
||||
..()
|
||||
if(reagents && reagents.reagent_list.len)
|
||||
to_chat(user, "\blue It is currently loaded.")
|
||||
to_chat(usr, "<span class='notice'>It is currently loaded.</span>")
|
||||
else
|
||||
to_chat(user, "\blue It is spent.")
|
||||
to_chat(usr, "<span class='notice'>It is spent.</span>")
|
||||
|
||||
/obj/item/weapon/reagent_containers/hypospray/autoinjector/teporone //basilisks
|
||||
name = "teporone autoinjector"
|
||||
desc = "A rapid way to regulate your body's temperature in the event of a hardsuit malfunction at the cost of some shortness of breath."
|
||||
desc = "A rapid way to regulate your body's temperature in the event of a hardsuit malfunction."
|
||||
icon_state = "lepopen"
|
||||
|
||||
/obj/item/weapon/reagent_containers/hypospray/autoinjector/teporone/New()
|
||||
..()
|
||||
reagents.remove_reagent("epinephrine", 10)
|
||||
reagents.add_reagent("teporone", 9)
|
||||
reagents.add_reagent("lexorin", 1)
|
||||
update_icon()
|
||||
return
|
||||
list_reagents = list("teporone" = 10)
|
||||
|
||||
/obj/item/weapon/reagent_containers/hypospray/autoinjector/stimpack //goliath kiting
|
||||
name = "stimpack autoinjector"
|
||||
desc = "A rapid way to stimulate your body's adrenaline, allowing for freer movement in restrictive armor at the cost of some shortness of breath."
|
||||
desc = "A rapid way to stimulate your body's adrenaline, allowing for freer movement in restrictive armor."
|
||||
icon_state = "stimpen"
|
||||
|
||||
/obj/item/weapon/reagent_containers/hypospray/autoinjector/stimpack/New()
|
||||
..()
|
||||
reagents.remove_reagent("epinephrine", 10)
|
||||
reagents.add_reagent("methamphetamine", 9)
|
||||
reagents.add_reagent("lexorin", 1)
|
||||
update_icon()
|
||||
return
|
||||
volume = 20
|
||||
amount_per_transfer_from_this = 20
|
||||
list_reagents = list("methamphetamine" = 10, "coffee" = 10)
|
||||
|
||||
/obj/item/weapon/reagent_containers/hypospray/autoinjector/stimulants
|
||||
name = "Stimulants autoinjector"
|
||||
@@ -139,10 +114,4 @@
|
||||
amount_per_transfer_from_this = 50
|
||||
possible_transfer_amounts = list(50)
|
||||
volume = 50
|
||||
|
||||
/obj/item/weapon/reagent_containers/hypospray/autoinjector/stimulants/New()
|
||||
..()
|
||||
reagents.remove_reagent("epinephrine", 10)
|
||||
reagents.add_reagent("stimulants", 50)
|
||||
update_icon()
|
||||
return
|
||||
list_reagents = list("stimulants" = 50)
|
||||
@@ -11,14 +11,15 @@
|
||||
volume = 50
|
||||
consume_sound = null
|
||||
|
||||
New()
|
||||
..()
|
||||
if(!icon_state)
|
||||
icon_state = "pill[rand(1,20)]"
|
||||
/obj/item/weapon/reagent_containers/food/pill/New()
|
||||
..()
|
||||
if(!icon_state)
|
||||
icon_state = "pill[rand(1,20)]"
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/pill/attack_self(mob/user as mob)
|
||||
/obj/item/weapon/reagent_containers/food/pill/attack_self(mob/user)
|
||||
return
|
||||
/obj/item/weapon/reagent_containers/food/pill/attack(var/mob/living/carbon/M, mob/user as mob, def_zone)
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/pill/attack(mob/living/carbon/M, mob/user, def_zone)
|
||||
if(!istype(M))
|
||||
return 0
|
||||
bitesize = reagents.total_volume
|
||||
@@ -29,7 +30,8 @@
|
||||
return 0
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/pill/afterattack(obj/target, mob/user, proximity)
|
||||
if(!proximity) return
|
||||
if(!proximity)
|
||||
return
|
||||
|
||||
if(target.is_open_container() != 0 && target.reagents)
|
||||
if(!target.reagents.total_volume)
|
||||
@@ -65,89 +67,64 @@
|
||||
name = "Toxins pill"
|
||||
desc = "Highly toxic."
|
||||
icon_state = "pill5"
|
||||
New()
|
||||
..()
|
||||
reagents.add_reagent("toxin", 50)
|
||||
list_reagents = list("toxin" = 50)
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/pill/initropidril
|
||||
name = "initropidril pill"
|
||||
desc = "Don't swallow this."
|
||||
icon_state = "pill5"
|
||||
New()
|
||||
..()
|
||||
reagents.add_reagent("initropidril", 50)
|
||||
list_reagents = list("initropidril" = 50)
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/pill/adminordrazine
|
||||
name = "Adminordrazine pill"
|
||||
desc = "It's magic. We don't have to explain it."
|
||||
icon_state = "pill16"
|
||||
New()
|
||||
..()
|
||||
reagents.add_reagent("adminordrazine", 50)
|
||||
list_reagents = list("adminordrazine" = 50)
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/pill/methamphetamine
|
||||
name = "Methamphetamine pill"
|
||||
desc = "Helps improve the ability to concentrate."
|
||||
icon_state = "pill8"
|
||||
New()
|
||||
..()
|
||||
reagents.add_reagent("methamphetamine", 5)
|
||||
list_reagents = list("methamphetamine" = 5)
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/pill/haloperidol
|
||||
name = "Haloperidol pill"
|
||||
desc = "Haloperidol is an anti-psychotic use to treat psychiatric problems."
|
||||
icon_state = "pill8"
|
||||
New()
|
||||
..()
|
||||
reagents.add_reagent("haloperidol", 15)
|
||||
list_reagents = list("haloperidol" = 15)
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/pill/paroxetine
|
||||
name = "Paroxetine pill"
|
||||
desc = "Heavy anti-depressant."
|
||||
icon_state = "pill8"
|
||||
New()
|
||||
..()
|
||||
reagents.add_reagent("paroxetine", 15)
|
||||
|
||||
list_reagents = list("paroxetine" = 15)
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/pill/happy
|
||||
name = "Happy pill"
|
||||
desc = "Happy happy joy joy!"
|
||||
icon_state = "pill18"
|
||||
New()
|
||||
..()
|
||||
reagents.add_reagent("space_drugs", 15)
|
||||
reagents.add_reagent("sugar", 15)
|
||||
list_reagents = list("space_drugs" = 15, "sugar" = 15)
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/pill/zoom
|
||||
name = "Zoom pill"
|
||||
desc = "Zoooom!"
|
||||
icon_state = "pill18"
|
||||
New()
|
||||
..()
|
||||
reagents.add_reagent("synaptizine", 5)
|
||||
reagents.add_reagent("methamphetamine", 5)
|
||||
list_reagents = list("synaptizine" = 5, "methamphetamine" = 5)
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/pill/charcoal
|
||||
name = "Charcoal pill"
|
||||
desc = "Neutralizes many common toxins."
|
||||
icon_state = "pill17"
|
||||
New()
|
||||
..()
|
||||
reagents.add_reagent("charcoal", 25)
|
||||
list_reagents = list("charcoal" = 25)
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/pill/salicylic
|
||||
name = "Salicylic Acid pill"
|
||||
desc = "Commonly used to treat moderate pain and fevers."
|
||||
icon_state = "pill4"
|
||||
New()
|
||||
..()
|
||||
reagents.add_reagent("sal_acid", 20)
|
||||
list_reagents = list("sal_acid" = 20)
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/pill/salbutamol
|
||||
name = "Salbutamol pill"
|
||||
desc = "Used to treat respiratory distress."
|
||||
icon_state = "pill8"
|
||||
New()
|
||||
..()
|
||||
reagents.add_reagent("salbutamol", 20)
|
||||
list_reagents = list("salbutamol" = 20)
|
||||
@@ -17,7 +17,7 @@
|
||||
possible_transfer_amounts = null
|
||||
|
||||
|
||||
/obj/item/weapon/reagent_containers/spray/afterattack(atom/A as mob|obj, mob/user as mob)
|
||||
/obj/item/weapon/reagent_containers/spray/afterattack(atom/A, mob/user)
|
||||
if(istype(A, /obj/item/weapon/storage) || istype(A, /obj/structure/table) || istype(A, /obj/structure/rack) || istype(A, /obj/structure/closet) \
|
||||
|| istype(A, /obj/item/weapon/reagent_containers) || istype(A, /obj/structure/sink) || istype(A, /obj/structure/janitorialcart) || istype(A, /obj/machinery/portable_atmospherics/hydroponics))
|
||||
return
|
||||
@@ -103,20 +103,13 @@
|
||||
/obj/item/weapon/reagent_containers/spray/cleaner
|
||||
name = "space cleaner"
|
||||
desc = "BLAM!-brand non-foaming space cleaner!"
|
||||
|
||||
|
||||
/obj/item/weapon/reagent_containers/spray/cleaner/New()
|
||||
..()
|
||||
reagents.add_reagent("cleaner", 250)
|
||||
list_reagents = list("cleaner" = 250)
|
||||
|
||||
/obj/item/weapon/reagent_containers/spray/cleaner/drone
|
||||
name = "space cleaner"
|
||||
desc = "BLAM!-brand non-foaming space cleaner!"
|
||||
volume = 50
|
||||
|
||||
/obj/item/weapon/reagent_containers/spray/cleaner/New()
|
||||
..()
|
||||
reagents.add_reagent("cleaner", src.volume)
|
||||
list_reagents = list("cleaner" = 50)
|
||||
|
||||
//pepperspray
|
||||
/obj/item/weapon/reagent_containers/spray/pepper
|
||||
@@ -128,11 +121,7 @@
|
||||
volume = 40
|
||||
spray_maxrange = 4
|
||||
amount_per_transfer_from_this = 5
|
||||
|
||||
|
||||
/obj/item/weapon/reagent_containers/spray/pepper/New()
|
||||
..()
|
||||
reagents.add_reagent("condensedcapsaicin", 40)
|
||||
list_reagents = list("condensedcapsaicin" = 50)
|
||||
|
||||
//water flower
|
||||
/obj/item/weapon/reagent_containers/spray/waterflower
|
||||
@@ -143,12 +132,9 @@
|
||||
item_state = "sunflower"
|
||||
amount_per_transfer_from_this = 1
|
||||
volume = 10
|
||||
list_reagents = list("water" = 10)
|
||||
|
||||
/obj/item/weapon/reagent_containers/spray/waterflower/New()
|
||||
..()
|
||||
reagents.add_reagent("water", 10)
|
||||
|
||||
/obj/item/weapon/reagent_containers/spray/waterflower/attack_self(var/mob/user) //Don't allow changing how much the flower sprays
|
||||
/obj/item/weapon/reagent_containers/spray/waterflower/attack_self(mob/user) //Don't allow changing how much the flower sprays
|
||||
return
|
||||
|
||||
//chemsprayer
|
||||
@@ -218,14 +204,10 @@
|
||||
icon_state = "plantbgone"
|
||||
item_state = "plantbgone"
|
||||
volume = 100
|
||||
list_reagents = list("atrazine" = 100)
|
||||
|
||||
|
||||
/obj/item/weapon/reagent_containers/spray/plantbgone/New()
|
||||
..()
|
||||
reagents.add_reagent("atrazine", 100)
|
||||
|
||||
|
||||
/obj/item/weapon/reagent_containers/spray/plantbgone/afterattack(atom/A as mob|obj, mob/user as mob, proximity)
|
||||
/obj/item/weapon/reagent_containers/spray/plantbgone/afterattack(atom/A, mob/user, proximity)
|
||||
if(!proximity) return
|
||||
|
||||
if(istype(A, /obj/machinery/portable_atmospherics/hydroponics)) // We are targeting hydrotray
|
||||
|
||||
@@ -19,6 +19,12 @@
|
||||
var/mode = SYRINGE_DRAW
|
||||
var/projectile_type = /obj/item/projectile/bullet/dart/syringe
|
||||
|
||||
/obj/item/weapon/reagent_containers/syringe/New()
|
||||
..()
|
||||
if(list_reagents) //syringe starts in inject mode if its already got something inside
|
||||
mode = SYRINGE_INJECT
|
||||
update_icon()
|
||||
|
||||
/obj/item/weapon/reagent_containers/syringe/on_reagent_change()
|
||||
update_icon()
|
||||
|
||||
@@ -30,8 +36,7 @@
|
||||
..()
|
||||
update_icon()
|
||||
|
||||
/obj/item/weapon/reagent_containers/syringe/attack_self(mob/user as mob)
|
||||
|
||||
/obj/item/weapon/reagent_containers/syringe/attack_self(mob/user)
|
||||
switch(mode)
|
||||
if(SYRINGE_DRAW)
|
||||
mode = SYRINGE_INJECT
|
||||
@@ -45,10 +50,10 @@
|
||||
..()
|
||||
update_icon()
|
||||
|
||||
/obj/item/weapon/reagent_containers/syringe/attack(mob/living/M as mob, mob/living/user as mob, def_zone)
|
||||
/obj/item/weapon/reagent_containers/syringe/attack(mob/living/M, mob/living/user, def_zone)
|
||||
return
|
||||
|
||||
/obj/item/weapon/reagent_containers/syringe/attackby(obj/item/I as obj, mob/user as mob, params)
|
||||
/obj/item/weapon/reagent_containers/syringe/attackby(obj/item/I, mob/user, params)
|
||||
if(istype(I,/obj/item/weapon/storage/bag))
|
||||
..()
|
||||
return
|
||||
@@ -66,13 +71,6 @@
|
||||
to_chat(user, "\red This syringe is broken!")
|
||||
return
|
||||
|
||||
/* if(user.a_intent == I_HARM && ismob(target))
|
||||
if((CLUMSY in user.mutations) && prob(50))
|
||||
target = user
|
||||
syringestab(target, user)
|
||||
return */
|
||||
|
||||
|
||||
switch(mode)
|
||||
if(SYRINGE_DRAW)
|
||||
|
||||
@@ -286,60 +284,6 @@
|
||||
filling.icon += mix_color_from_reagents(reagents.reagent_list)
|
||||
overlays += filling
|
||||
|
||||
|
||||
/obj/item/weapon/reagent_containers/syringe/proc/syringestab(mob/living/carbon/target as mob, mob/living/carbon/user as mob)
|
||||
|
||||
user.attack_log += "\[[time_stamp()]\]<font color='red'> Attacked [target.name] ([target.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)])</font>"
|
||||
target.attack_log += "\[[time_stamp()]\]<font color='orange'> Attacked by [user.name] ([user.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)])</font>"
|
||||
if(target.ckey)
|
||||
msg_admin_attack("[key_name_admin(user)] attacked [key_name_admin(target)] with [src.name] (INTENT: [uppertext(user.a_intent)])")
|
||||
if(!iscarbon(user))
|
||||
target.LAssailant = null
|
||||
else
|
||||
target.LAssailant = user
|
||||
|
||||
if(istype(target, /mob/living/carbon/human))
|
||||
|
||||
var/target_zone = ran_zone(check_zone(user.zone_sel.selecting, target))
|
||||
var/obj/item/organ/external/affecting = target:get_organ(target_zone)
|
||||
|
||||
if(!affecting || (affecting.status & ORGAN_DESTROYED) || affecting.is_stump())
|
||||
to_chat(user, "<span class='danger'>They are missing that limb!</span>")
|
||||
return
|
||||
var/hit_area = affecting.name
|
||||
|
||||
var/mob/living/carbon/human/H = target
|
||||
if((user != target) && H.check_shields(7, "the [src.name]"))
|
||||
return
|
||||
|
||||
if(target != user && target.getarmor(target_zone, "melee") > 5 && prob(50))
|
||||
for(var/mob/O in viewers(world.view, user))
|
||||
O.show_message(text("\red <B>[user] tries to stab [target] in \the [hit_area] with [src.name], but the attack is deflected by armor!</B>"), 1)
|
||||
user.unEquip(src)
|
||||
qdel(src)
|
||||
return
|
||||
|
||||
for(var/mob/O in viewers(world.view, user))
|
||||
O.show_message(text("\red <B>[user] stabs [target] in \the [hit_area] with [src.name]!</B>"), 1)
|
||||
|
||||
if(affecting.take_damage(3))
|
||||
target:UpdateDamageIcon()
|
||||
|
||||
else
|
||||
for(var/mob/O in viewers(world.view, user))
|
||||
O.show_message(text("\red <B>[user] stabs [target] with [src.name]!</B>"), 1)
|
||||
target.take_organ_damage(3)// 7 is the same as crowbar punch
|
||||
|
||||
src.reagents.reaction(target, INGEST)
|
||||
var/syringestab_amount_transferred = rand(0, (reagents.total_volume - 5)) //nerfed by popular demand
|
||||
src.reagents.trans_to(target, syringestab_amount_transferred)
|
||||
src.desc += " It is broken."
|
||||
src.mode = SYRINGE_BROKEN
|
||||
src.add_blood(target)
|
||||
src.add_fingerprint(usr)
|
||||
src.update_icon()
|
||||
|
||||
|
||||
/obj/item/weapon/reagent_containers/ld50_syringe
|
||||
name = "Lethal Injection Syringe"
|
||||
desc = "A syringe used for lethal injections."
|
||||
@@ -351,104 +295,101 @@
|
||||
volume = 50
|
||||
var/mode = SYRINGE_DRAW
|
||||
|
||||
on_reagent_change()
|
||||
update_icon()
|
||||
/obj/item/weapon/reagent_containers/ld50_syringe/on_reagent_change()
|
||||
update_icon()
|
||||
|
||||
pickup(mob/user)
|
||||
..()
|
||||
update_icon()
|
||||
/obj/item/weapon/reagent_containers/ld50_syringe/pickup(mob/user)
|
||||
..()
|
||||
update_icon()
|
||||
|
||||
dropped(mob/user)
|
||||
..()
|
||||
update_icon()
|
||||
/obj/item/weapon/reagent_containers/ld50_syringe/dropped(mob/user)
|
||||
..()
|
||||
update_icon()
|
||||
|
||||
attack_self(mob/user as mob)
|
||||
mode = !mode
|
||||
update_icon()
|
||||
/obj/item/weapon/reagent_containers/ld50_syringe/attack_self(mob/user)
|
||||
mode = !mode
|
||||
update_icon()
|
||||
|
||||
attack_hand()
|
||||
..()
|
||||
update_icon()
|
||||
/obj/item/weapon/reagent_containers/ld50_syringe/attack_hand()
|
||||
..()
|
||||
update_icon()
|
||||
|
||||
/obj/item/weapon/reagent_containers/ld50_syringe/attackby(obj/item/I, mob/user)
|
||||
return
|
||||
|
||||
attackby(obj/item/I as obj, mob/user as mob)
|
||||
|
||||
/obj/item/weapon/reagent_containers/ld50_syringe/afterattack(obj/target, mob/user , flag)
|
||||
if(!target.reagents)
|
||||
return
|
||||
|
||||
afterattack(obj/target, mob/user , flag)
|
||||
if(!target.reagents) return
|
||||
switch(mode)
|
||||
if(SYRINGE_DRAW)
|
||||
|
||||
switch(mode)
|
||||
if(SYRINGE_DRAW)
|
||||
if(reagents.total_volume >= reagents.maximum_volume)
|
||||
to_chat(user, "\red The syringe is full.")
|
||||
return
|
||||
|
||||
if(reagents.total_volume >= reagents.maximum_volume)
|
||||
to_chat(user, "\red The syringe is full.")
|
||||
if(ismob(target))
|
||||
if(istype(target, /mob/living/carbon))//I Do not want it to suck 50 units out of people
|
||||
to_chat(usr, "This needle isn't designed for drawing blood.")
|
||||
return
|
||||
else //if not mob
|
||||
if(!target.reagents.total_volume)
|
||||
to_chat(user, "\red [target] is empty.")
|
||||
return
|
||||
|
||||
if(ismob(target))
|
||||
if(istype(target, /mob/living/carbon))//I Do not want it to suck 50 units out of people
|
||||
to_chat(usr, "This needle isn't designed for drawing blood.")
|
||||
return
|
||||
else //if not mob
|
||||
if(!target.reagents.total_volume)
|
||||
to_chat(user, "\red [target] is empty.")
|
||||
return
|
||||
if(!target.is_open_container() && !istype(target,/obj/structure/reagent_dispensers))
|
||||
to_chat(user, "\red You cannot directly remove reagents from this object.")
|
||||
return
|
||||
|
||||
if(!target.is_open_container() && !istype(target,/obj/structure/reagent_dispensers))
|
||||
to_chat(user, "\red You cannot directly remove reagents from this object.")
|
||||
return
|
||||
var/trans = target.reagents.trans_to(src, amount_per_transfer_from_this) // transfer from, transfer to - who cares?
|
||||
|
||||
var/trans = target.reagents.trans_to(src, amount_per_transfer_from_this) // transfer from, transfer to - who cares?
|
||||
to_chat(user, "\blue You fill the syringe with [trans] units of the solution.")
|
||||
if(reagents.total_volume >= reagents.maximum_volume)
|
||||
mode=!mode
|
||||
update_icon()
|
||||
|
||||
to_chat(user, "\blue You fill the syringe with [trans] units of the solution.")
|
||||
if(reagents.total_volume >= reagents.maximum_volume)
|
||||
mode=!mode
|
||||
if(SYRINGE_INJECT)
|
||||
if(!reagents.total_volume)
|
||||
to_chat(user, "\red The Syringe is empty.")
|
||||
return
|
||||
if(istype(target, /obj/item/weapon/implantcase/chem))
|
||||
return
|
||||
if(!target.is_open_container() && !ismob(target) && !istype(target, /obj/item/weapon/reagent_containers/food))
|
||||
to_chat(user, "\red You cannot directly fill this object.")
|
||||
return
|
||||
if(target.reagents.total_volume >= target.reagents.maximum_volume)
|
||||
to_chat(user, "\red [target] is full.")
|
||||
return
|
||||
|
||||
if(ismob(target) && target != user)
|
||||
for(var/mob/O in viewers(world.view, user))
|
||||
O.show_message(text("\red <B>[] is trying to inject [] with a giant syringe!</B>", user, target), 1)
|
||||
if(!do_mob(user, target, 300)) return
|
||||
for(var/mob/O in viewers(world.view, user))
|
||||
O.show_message(text("\red [] injects [] with a giant syringe!", user, target), 1)
|
||||
src.reagents.reaction(target, INGEST)
|
||||
if(ismob(target) && target == user)
|
||||
src.reagents.reaction(target, INGEST)
|
||||
spawn(5)
|
||||
var/trans = src.reagents.trans_to(target, amount_per_transfer_from_this)
|
||||
to_chat(user, "\blue You inject [trans] units of the solution. The syringe now contains [src.reagents.total_volume] units.")
|
||||
if(reagents.total_volume >= reagents.maximum_volume && mode==SYRINGE_INJECT)
|
||||
mode = SYRINGE_DRAW
|
||||
update_icon()
|
||||
|
||||
/obj/item/weapon/reagent_containers/ld50_syringe/update_icon()
|
||||
var/rounded_vol = round(reagents.total_volume,50)
|
||||
if(ismob(loc))
|
||||
var/mode_t
|
||||
switch(mode)
|
||||
if(SYRINGE_DRAW)
|
||||
mode_t = "d"
|
||||
if(SYRINGE_INJECT)
|
||||
if(!reagents.total_volume)
|
||||
to_chat(user, "\red The Syringe is empty.")
|
||||
return
|
||||
if(istype(target, /obj/item/weapon/implantcase/chem))
|
||||
return
|
||||
if(!target.is_open_container() && !ismob(target) && !istype(target, /obj/item/weapon/reagent_containers/food))
|
||||
to_chat(user, "\red You cannot directly fill this object.")
|
||||
return
|
||||
if(target.reagents.total_volume >= target.reagents.maximum_volume)
|
||||
to_chat(user, "\red [target] is full.")
|
||||
return
|
||||
|
||||
if(ismob(target) && target != user)
|
||||
for(var/mob/O in viewers(world.view, user))
|
||||
O.show_message(text("\red <B>[] is trying to inject [] with a giant syringe!</B>", user, target), 1)
|
||||
if(!do_mob(user, target, 300)) return
|
||||
for(var/mob/O in viewers(world.view, user))
|
||||
O.show_message(text("\red [] injects [] with a giant syringe!", user, target), 1)
|
||||
src.reagents.reaction(target, INGEST)
|
||||
if(ismob(target) && target == user)
|
||||
src.reagents.reaction(target, INGEST)
|
||||
spawn(5)
|
||||
var/trans = src.reagents.trans_to(target, amount_per_transfer_from_this)
|
||||
to_chat(user, "\blue You inject [trans] units of the solution. The syringe now contains [src.reagents.total_volume] units.")
|
||||
if(reagents.total_volume >= reagents.maximum_volume && mode==SYRINGE_INJECT)
|
||||
mode = SYRINGE_DRAW
|
||||
update_icon()
|
||||
return
|
||||
|
||||
|
||||
update_icon()
|
||||
var/rounded_vol = round(reagents.total_volume,50)
|
||||
if(ismob(loc))
|
||||
var/mode_t
|
||||
switch(mode)
|
||||
if(SYRINGE_DRAW)
|
||||
mode_t = "d"
|
||||
if(SYRINGE_INJECT)
|
||||
mode_t = "i"
|
||||
icon_state = "[mode_t][rounded_vol]"
|
||||
else
|
||||
icon_state = "[rounded_vol]"
|
||||
item_state = "syringe_[rounded_vol]"
|
||||
mode_t = "i"
|
||||
icon_state = "[mode_t][rounded_vol]"
|
||||
else
|
||||
icon_state = "[rounded_vol]"
|
||||
item_state = "syringe_[rounded_vol]"
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
@@ -459,85 +400,27 @@
|
||||
/obj/item/weapon/reagent_containers/syringe/antiviral
|
||||
name = "Syringe (spaceacillin)"
|
||||
desc = "Contains antiviral agents."
|
||||
New()
|
||||
..()
|
||||
reagents.add_reagent("spaceacillin", 15)
|
||||
mode = SYRINGE_INJECT
|
||||
update_icon()
|
||||
list_reagents = list("spaceacillin" = 15)
|
||||
|
||||
/obj/item/weapon/reagent_containers/ld50_syringe/lethal
|
||||
New()
|
||||
..()
|
||||
reagents.add_reagent("cyanide", 10)
|
||||
reagents.add_reagent("neurotoxin2", 40)
|
||||
mode = SYRINGE_INJECT
|
||||
update_icon()
|
||||
|
||||
|
||||
//Robot syringes
|
||||
//Not special in any way, code wise. They don't have added variables or procs.
|
||||
/obj/item/weapon/reagent_containers/syringe/robot/charcoal
|
||||
name = "Syringe (charcoal)"
|
||||
desc = "Contains charcoal."
|
||||
New()
|
||||
..()
|
||||
reagents.add_reagent("charcoal", 15)
|
||||
mode = SYRINGE_INJECT
|
||||
update_icon()
|
||||
|
||||
/obj/item/weapon/reagent_containers/syringe/robot/epinephrine
|
||||
name = "Syringe (Epinephrine)"
|
||||
desc = "Contains epinephrine - used to stabilize patients."
|
||||
New()
|
||||
..()
|
||||
reagents.add_reagent("epinephrine", 15)
|
||||
mode = SYRINGE_INJECT
|
||||
update_icon()
|
||||
|
||||
/obj/item/weapon/reagent_containers/syringe/robot/mixed
|
||||
name = "Syringe (mixed)"
|
||||
desc = "Contains epinephrine & charcoal."
|
||||
New()
|
||||
..()
|
||||
reagents.add_reagent("epinephrine", 7)
|
||||
reagents.add_reagent("charcoal", 8)
|
||||
mode = SYRINGE_INJECT
|
||||
update_icon()
|
||||
list_reagents = list("cyanide" = 10, "neurotoxin2" = 40)
|
||||
|
||||
/obj/item/weapon/reagent_containers/syringe/charcoal
|
||||
name = "Syringe (charcoal)"
|
||||
desc = "Contains charcoal - used to treat toxins and damage from toxins."
|
||||
New()
|
||||
..()
|
||||
reagents.add_reagent("charcoal", 15)
|
||||
mode = SYRINGE_INJECT
|
||||
update_icon()
|
||||
list_reagents = list("charcoal" = 15)
|
||||
|
||||
/obj/item/weapon/reagent_containers/syringe/epinephrine
|
||||
name = "Syringe (Epinephrine)"
|
||||
desc = "Contains epinephrine - used to stabilize patients."
|
||||
New()
|
||||
..()
|
||||
reagents.add_reagent("epinephrine", 15)
|
||||
mode = SYRINGE_INJECT
|
||||
update_icon()
|
||||
list_reagents = list("epinephrine" = 15)
|
||||
|
||||
/obj/item/weapon/reagent_containers/syringe/insulin
|
||||
name = "Syringe (insulin)"
|
||||
desc = "Contains insulin - used to treat diabetes."
|
||||
New()
|
||||
..()
|
||||
reagents.add_reagent("insulin", 15)
|
||||
mode = SYRINGE_INJECT
|
||||
update_icon()
|
||||
list_reagents = list("insulin" = 15)
|
||||
|
||||
/obj/item/weapon/reagent_containers/syringe/bioterror
|
||||
name = "bioterror syringe"
|
||||
desc = "Contains several paralyzing reagents."
|
||||
New()
|
||||
..()
|
||||
reagents.add_reagent("neurotoxin", 5)
|
||||
reagents.add_reagent("capulettium_plus", 5)
|
||||
reagents.add_reagent("sodium_thiopental", 5)
|
||||
mode = SYRINGE_INJECT
|
||||
update_icon()
|
||||
list_reagents = list("neurotoxin" = 5, "capulettium_plus" = 5, "sodium_thiopental" = 5)
|
||||
@@ -12,7 +12,7 @@
|
||||
var/amount_per_transfer_from_this = 10
|
||||
var/possible_transfer_amounts = list(10,25,50,100)
|
||||
|
||||
/obj/structure/reagent_dispensers/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
|
||||
/obj/structure/reagent_dispensers/attackby(obj/item/weapon/W, mob/user, params)
|
||||
return
|
||||
|
||||
/obj/structure/reagent_dispensers/New()
|
||||
@@ -139,7 +139,7 @@
|
||||
rig = null
|
||||
overlays = new/list()
|
||||
|
||||
/obj/structure/reagent_dispensers/fueltank/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
|
||||
/obj/structure/reagent_dispensers/fueltank/attackby(obj/item/weapon/W, mob/user, params)
|
||||
if(istype(W,/obj/item/device/assembly_holder) && accepts_rig)
|
||||
if(rig)
|
||||
to_chat(user, "\red There is another device in the way.")
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 3.8 KiB After Width: | Height: | Size: 3.8 KiB |
@@ -1872,12 +1872,10 @@
|
||||
#include "code\modules\reagents\reagent_containers\food\drinks\drinkingglass.dm"
|
||||
#include "code\modules\reagents\reagent_containers\food\drinks\jar.dm"
|
||||
#include "code\modules\reagents\reagent_containers\food\drinks\shotglass.dm"
|
||||
#include "code\modules\reagents\reagent_containers\food\drinks\bottle\robot.dm"
|
||||
#include "code\modules\reagents\reagent_containers\food\snacks\candy.dm"
|
||||
#include "code\modules\reagents\reagent_containers\food\snacks\meat.dm"
|
||||
#include "code\modules\reagents\reagent_containers\food\snacks\seafood.dm"
|
||||
#include "code\modules\reagents\reagent_containers\glass\bottle.dm"
|
||||
#include "code\modules\reagents\reagent_containers\glass\bottle\robot.dm"
|
||||
#include "code\modules\recycling\conveyor2.dm"
|
||||
#include "code\modules\recycling\disposal-construction.dm"
|
||||
#include "code\modules\recycling\disposal.dm"
|
||||
|
||||
Reference in New Issue
Block a user