mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2025-12-13 19:22:20 +00:00
Merge pull request #41997 from coiax/removes-container-type
Refactors `container_type` into `reagents.flags`
This commit is contained in:
@@ -60,9 +60,6 @@ GLOBAL_LIST_INIT(bitflags, list(1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 204
|
|||||||
#define FLOATING (1<<3)
|
#define FLOATING (1<<3)
|
||||||
#define UNSTOPPABLE (1<<4) //When moving, will Bump()/Cross()/Uncross() everything, but won't be stopped.
|
#define UNSTOPPABLE (1<<4) //When moving, will Bump()/Cross()/Uncross() everything, but won't be stopped.
|
||||||
|
|
||||||
// Flags for reagents
|
|
||||||
#define REAGENT_NOREACT (1<<0)
|
|
||||||
|
|
||||||
//Fire and Acid stuff, for resistance_flags
|
//Fire and Acid stuff, for resistance_flags
|
||||||
#define LAVA_PROOF (1<<0)
|
#define LAVA_PROOF (1<<0)
|
||||||
#define FIRE_PROOF (1<<1) //100% immune to fire damage (but not necessarily to lava or heat)
|
#define FIRE_PROOF (1<<1) //100% immune to fire damage (but not necessarily to lava or heat)
|
||||||
|
|||||||
@@ -2,7 +2,6 @@
|
|||||||
#define LIQUID 2
|
#define LIQUID 2
|
||||||
#define GAS 3
|
#define GAS 3
|
||||||
|
|
||||||
// container_type defines
|
|
||||||
#define INJECTABLE (1<<0) // Makes it possible to add reagents through droppers and syringes.
|
#define INJECTABLE (1<<0) // Makes it possible to add reagents through droppers and syringes.
|
||||||
#define DRAWABLE (1<<1) // Makes it possible to remove reagents through syringes.
|
#define DRAWABLE (1<<1) // Makes it possible to remove reagents through syringes.
|
||||||
|
|
||||||
@@ -11,6 +10,7 @@
|
|||||||
|
|
||||||
#define TRANSPARENT (1<<4) // Used on containers which you want to be able to see the reagents off.
|
#define TRANSPARENT (1<<4) // Used on containers which you want to be able to see the reagents off.
|
||||||
#define AMOUNT_VISIBLE (1<<5) // For non-transparent containers that still have the general amount of reagents in them visible.
|
#define AMOUNT_VISIBLE (1<<5) // For non-transparent containers that still have the general amount of reagents in them visible.
|
||||||
|
#define NO_REACT (1<<6) // Applied to a reagent holder, the contents will not react with each other.
|
||||||
|
|
||||||
// Is an open container for all intents and purposes.
|
// Is an open container for all intents and purposes.
|
||||||
#define OPENCONTAINER (REFILLABLE | DRAINABLE | TRANSPARENT)
|
#define OPENCONTAINER (REFILLABLE | DRAINABLE | TRANSPARENT)
|
||||||
|
|||||||
@@ -113,9 +113,6 @@ GLOBAL_LIST_INIT(bitfields, list(
|
|||||||
"INDESTRUCTIBLE" = INDESTRUCTIBLE,
|
"INDESTRUCTIBLE" = INDESTRUCTIBLE,
|
||||||
"FREEZE_PROOF" = FREEZE_PROOF
|
"FREEZE_PROOF" = FREEZE_PROOF
|
||||||
),
|
),
|
||||||
"reagents_holder_flags" = list(
|
|
||||||
"REAGENT_NOREACT" = REAGENT_NOREACT
|
|
||||||
),
|
|
||||||
"flags_1" = list(
|
"flags_1" = list(
|
||||||
"NOJAUNT_1" = NOJAUNT_1,
|
"NOJAUNT_1" = NOJAUNT_1,
|
||||||
"UNUSED_RESERVATION_TURF_1" = UNUSED_RESERVATION_TURF_1,
|
"UNUSED_RESERVATION_TURF_1" = UNUSED_RESERVATION_TURF_1,
|
||||||
@@ -156,14 +153,6 @@ GLOBAL_LIST_INIT(bitfields, list(
|
|||||||
"SMOOTH_BORDER" = SMOOTH_BORDER,
|
"SMOOTH_BORDER" = SMOOTH_BORDER,
|
||||||
"SMOOTH_QUEUED" = SMOOTH_QUEUED,
|
"SMOOTH_QUEUED" = SMOOTH_QUEUED,
|
||||||
),
|
),
|
||||||
"container_type" = list(
|
|
||||||
"INJECTABLE" = INJECTABLE,
|
|
||||||
"DRAWABLE" = DRAWABLE,
|
|
||||||
"REFILLABLE" = REFILLABLE,
|
|
||||||
"DRAINABLE" = DRAINABLE,
|
|
||||||
"TRANSPARENT" = TRANSPARENT,
|
|
||||||
"AMOUNT_VISIBLE" = AMOUNT_VISIBLE,
|
|
||||||
),
|
|
||||||
"car_traits" = list(
|
"car_traits" = list(
|
||||||
"CAN_KIDNAP" = CAN_KIDNAP,
|
"CAN_KIDNAP" = CAN_KIDNAP,
|
||||||
),
|
),
|
||||||
|
|||||||
@@ -6,7 +6,6 @@
|
|||||||
|
|
||||||
var/flags_1 = NONE
|
var/flags_1 = NONE
|
||||||
var/interaction_flags_atom = NONE
|
var/interaction_flags_atom = NONE
|
||||||
var/container_type = NONE
|
|
||||||
var/datum/reagents/reagents = null
|
var/datum/reagents/reagents = null
|
||||||
|
|
||||||
//This atom's HUD (med/sec, etc) images. Associative list.
|
//This atom's HUD (med/sec, etc) images. Associative list.
|
||||||
@@ -214,16 +213,16 @@
|
|||||||
return is_refillable() && is_drainable()
|
return is_refillable() && is_drainable()
|
||||||
|
|
||||||
/atom/proc/is_injectable(mob/user, allowmobs = TRUE)
|
/atom/proc/is_injectable(mob/user, allowmobs = TRUE)
|
||||||
return reagents && (container_type & (INJECTABLE | REFILLABLE))
|
return reagents && (reagents.flags & (INJECTABLE | REFILLABLE))
|
||||||
|
|
||||||
/atom/proc/is_drawable(mob/user, allowmobs = TRUE)
|
/atom/proc/is_drawable(mob/user, allowmobs = TRUE)
|
||||||
return reagents && (container_type & (DRAWABLE | DRAINABLE))
|
return reagents && (reagents.flags & (DRAWABLE | DRAINABLE))
|
||||||
|
|
||||||
/atom/proc/is_refillable()
|
/atom/proc/is_refillable()
|
||||||
return reagents && (container_type & REFILLABLE)
|
return reagents && (reagents.flags & REFILLABLE)
|
||||||
|
|
||||||
/atom/proc/is_drainable()
|
/atom/proc/is_drainable()
|
||||||
return reagents && (container_type & DRAINABLE)
|
return reagents && (reagents.flags & DRAINABLE)
|
||||||
|
|
||||||
|
|
||||||
/atom/proc/AllowDrop()
|
/atom/proc/AllowDrop()
|
||||||
@@ -272,7 +271,7 @@
|
|||||||
to_chat(user, desc)
|
to_chat(user, desc)
|
||||||
|
|
||||||
if(reagents)
|
if(reagents)
|
||||||
if(container_type & TRANSPARENT)
|
if(reagents.flags & TRANSPARENT)
|
||||||
to_chat(user, "It contains:")
|
to_chat(user, "It contains:")
|
||||||
if(reagents.reagent_list.len)
|
if(reagents.reagent_list.len)
|
||||||
if(user.can_see_reagents()) //Show each individual reagent
|
if(user.can_see_reagents()) //Show each individual reagent
|
||||||
@@ -285,7 +284,7 @@
|
|||||||
to_chat(user, "[total_volume] units of various reagents")
|
to_chat(user, "[total_volume] units of various reagents")
|
||||||
else
|
else
|
||||||
to_chat(user, "Nothing.")
|
to_chat(user, "Nothing.")
|
||||||
else if(container_type & AMOUNT_VISIBLE)
|
else if(reagents.flags & AMOUNT_VISIBLE)
|
||||||
if(reagents.total_volume)
|
if(reagents.total_volume)
|
||||||
to_chat(user, "<span class='notice'>It has [reagents.total_volume] unit\s left.</span>")
|
to_chat(user, "<span class='notice'>It has [reagents.total_volume] unit\s left.</span>")
|
||||||
else
|
else
|
||||||
|
|||||||
@@ -10,7 +10,6 @@
|
|||||||
icon = 'icons/obj/machines/limbgrower.dmi'
|
icon = 'icons/obj/machines/limbgrower.dmi'
|
||||||
icon_state = "limbgrower_idleoff"
|
icon_state = "limbgrower_idleoff"
|
||||||
density = TRUE
|
density = TRUE
|
||||||
container_type = OPENCONTAINER
|
|
||||||
use_power = IDLE_POWER_USE
|
use_power = IDLE_POWER_USE
|
||||||
idle_power_usage = 10
|
idle_power_usage = 10
|
||||||
active_power_usage = 100
|
active_power_usage = 100
|
||||||
@@ -34,7 +33,7 @@
|
|||||||
)
|
)
|
||||||
|
|
||||||
/obj/machinery/limbgrower/Initialize()
|
/obj/machinery/limbgrower/Initialize()
|
||||||
create_reagents(100)
|
create_reagents(100, OPENCONTAINER)
|
||||||
stored_research = new /datum/techweb/specialized/autounlocking/limbgrower
|
stored_research = new /datum/techweb/specialized/autounlocking/limbgrower
|
||||||
. = ..()
|
. = ..()
|
||||||
|
|
||||||
|
|||||||
@@ -259,8 +259,7 @@
|
|||||||
|
|
||||||
/obj/item/mecha_parts/mecha_equipment/medical/syringe_gun/Initialize()
|
/obj/item/mecha_parts/mecha_equipment/medical/syringe_gun/Initialize()
|
||||||
. = ..()
|
. = ..()
|
||||||
create_reagents(max_volume)
|
create_reagents(max_volume, NO_REACT)
|
||||||
reagents.set_reacting(FALSE)
|
|
||||||
syringes = new
|
syringes = new
|
||||||
known_reagents = list("epinephrine"="Epinephrine","charcoal"="Charcoal")
|
known_reagents = list("epinephrine"="Epinephrine","charcoal"="Charcoal")
|
||||||
processed_reagents = new
|
processed_reagents = new
|
||||||
@@ -276,7 +275,7 @@
|
|||||||
/obj/item/mecha_parts/mecha_equipment/medical/syringe_gun/critfail()
|
/obj/item/mecha_parts/mecha_equipment/medical/syringe_gun/critfail()
|
||||||
..()
|
..()
|
||||||
if(reagents)
|
if(reagents)
|
||||||
reagents.set_reacting(TRUE)
|
DISABLE_BITFIELD(reagents.flags, NO_REACT)
|
||||||
|
|
||||||
/obj/item/mecha_parts/mecha_equipment/medical/syringe_gun/can_attach(obj/mecha/medical/M)
|
/obj/item/mecha_parts/mecha_equipment/medical/syringe_gun/can_attach(obj/mecha/medical/M)
|
||||||
if(..())
|
if(..())
|
||||||
|
|||||||
@@ -102,7 +102,6 @@ CIGARETTE PACKETS ARE IN FANCY.DM
|
|||||||
icon_state = "cigoff"
|
icon_state = "cigoff"
|
||||||
throw_speed = 0.5
|
throw_speed = 0.5
|
||||||
item_state = "cigoff"
|
item_state = "cigoff"
|
||||||
container_type = INJECTABLE
|
|
||||||
w_class = WEIGHT_CLASS_TINY
|
w_class = WEIGHT_CLASS_TINY
|
||||||
body_parts_covered = null
|
body_parts_covered = null
|
||||||
grind_results = list()
|
grind_results = list()
|
||||||
@@ -125,8 +124,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
|
|||||||
|
|
||||||
/obj/item/clothing/mask/cigarette/Initialize()
|
/obj/item/clothing/mask/cigarette/Initialize()
|
||||||
. = ..()
|
. = ..()
|
||||||
create_reagents(chem_volume)
|
create_reagents(chem_volume, INJECTABLE | NO_REACT)
|
||||||
reagents.set_reacting(FALSE) // so it doesn't react until you light it
|
|
||||||
if(list_reagents)
|
if(list_reagents)
|
||||||
reagents.add_reagent_list(list_reagents)
|
reagents.add_reagent_list(list_reagents)
|
||||||
if(starts_lit)
|
if(starts_lit)
|
||||||
@@ -186,7 +184,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
|
|||||||
qdel(src)
|
qdel(src)
|
||||||
return
|
return
|
||||||
// allowing reagents to react after being lit
|
// allowing reagents to react after being lit
|
||||||
reagents.set_reacting(TRUE)
|
DISABLE_BITFIELD(reagents.flags, NO_REACT)
|
||||||
reagents.handle_reactions()
|
reagents.handle_reactions()
|
||||||
icon_state = icon_on
|
icon_state = icon_on
|
||||||
item_state = icon_on
|
item_state = icon_on
|
||||||
@@ -729,8 +727,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
|
|||||||
|
|
||||||
/obj/item/clothing/mask/vape/Initialize(mapload, param_color)
|
/obj/item/clothing/mask/vape/Initialize(mapload, param_color)
|
||||||
. = ..()
|
. = ..()
|
||||||
create_reagents(chem_volume)
|
create_reagents(chem_volume, NO_REACT)
|
||||||
reagents.set_reacting(FALSE) // so it doesn't react until you light it
|
|
||||||
reagents.add_reagent("nicotine", 50)
|
reagents.add_reagent("nicotine", 50)
|
||||||
if(!icon_state)
|
if(!icon_state)
|
||||||
if(!param_color)
|
if(!param_color)
|
||||||
@@ -799,13 +796,12 @@ CIGARETTE PACKETS ARE IN FANCY.DM
|
|||||||
if(reagents.total_volume > 0)
|
if(reagents.total_volume > 0)
|
||||||
to_chat(user, "<span class='notice'>You empty [src] of all reagents.</span>")
|
to_chat(user, "<span class='notice'>You empty [src] of all reagents.</span>")
|
||||||
reagents.clear_reagents()
|
reagents.clear_reagents()
|
||||||
return
|
|
||||||
|
|
||||||
/obj/item/clothing/mask/vape/equipped(mob/user, slot)
|
/obj/item/clothing/mask/vape/equipped(mob/user, slot)
|
||||||
if(slot == SLOT_WEAR_MASK)
|
if(slot == SLOT_WEAR_MASK)
|
||||||
if(!screw)
|
if(!screw)
|
||||||
to_chat(user, "<span class='notice'>You start puffing on the vape.</span>")
|
to_chat(user, "<span class='notice'>You start puffing on the vape.</span>")
|
||||||
reagents.set_reacting(TRUE)
|
DISABLE_BITFIELD(reagents.flags, NO_REACT)
|
||||||
START_PROCESSING(SSobj, src)
|
START_PROCESSING(SSobj, src)
|
||||||
else //it will not start if the vape is opened.
|
else //it will not start if the vape is opened.
|
||||||
to_chat(user, "<span class='warning'>You need to close the cap first!</span>")
|
to_chat(user, "<span class='warning'>You need to close the cap first!</span>")
|
||||||
@@ -813,7 +809,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
|
|||||||
/obj/item/clothing/mask/vape/dropped(mob/user)
|
/obj/item/clothing/mask/vape/dropped(mob/user)
|
||||||
var/mob/living/carbon/C = user
|
var/mob/living/carbon/C = user
|
||||||
if(C.get_item_by_slot(SLOT_WEAR_MASK) == src)
|
if(C.get_item_by_slot(SLOT_WEAR_MASK) == src)
|
||||||
reagents.set_reacting(FALSE)
|
ENABLE_BITFIELD(reagents.flags, NO_REACT)
|
||||||
STOP_PROCESSING(SSobj, src)
|
STOP_PROCESSING(SSobj, src)
|
||||||
|
|
||||||
/obj/item/clothing/mask/vape/proc/hand_reagents()//had to rename to avoid duplicate error
|
/obj/item/clothing/mask/vape/proc/hand_reagents()//had to rename to avoid duplicate error
|
||||||
|
|||||||
@@ -15,7 +15,6 @@
|
|||||||
attack_verb = list("slammed", "whacked", "bashed", "thunked", "battered", "bludgeoned", "thrashed")
|
attack_verb = list("slammed", "whacked", "bashed", "thunked", "battered", "bludgeoned", "thrashed")
|
||||||
dog_fashion = /datum/dog_fashion/back
|
dog_fashion = /datum/dog_fashion/back
|
||||||
resistance_flags = FIRE_PROOF
|
resistance_flags = FIRE_PROOF
|
||||||
container_type = AMOUNT_VISIBLE
|
|
||||||
var/max_water = 50
|
var/max_water = 50
|
||||||
var/last_use = 1
|
var/last_use = 1
|
||||||
var/chem = "water"
|
var/chem = "water"
|
||||||
@@ -44,7 +43,7 @@
|
|||||||
|
|
||||||
/obj/item/extinguisher/Initialize()
|
/obj/item/extinguisher/Initialize()
|
||||||
. = ..()
|
. = ..()
|
||||||
create_reagents(max_water)
|
create_reagents(max_water, AMOUNT_VISIBLE)
|
||||||
reagents.add_reagent(chem, max_water)
|
reagents.add_reagent(chem, max_water)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,6 @@
|
|||||||
name = "chem implant"
|
name = "chem implant"
|
||||||
desc = "Injects things."
|
desc = "Injects things."
|
||||||
icon_state = "reagents"
|
icon_state = "reagents"
|
||||||
container_type = OPENCONTAINER
|
|
||||||
activated = FALSE
|
activated = FALSE
|
||||||
|
|
||||||
/obj/item/implant/chem/get_data()
|
/obj/item/implant/chem/get_data()
|
||||||
@@ -23,7 +22,7 @@
|
|||||||
|
|
||||||
/obj/item/implant/chem/Initialize()
|
/obj/item/implant/chem/Initialize()
|
||||||
. = ..()
|
. = ..()
|
||||||
create_reagents(50)
|
create_reagents(50, OPENCONTAINER)
|
||||||
GLOB.tracked_chem_implants += src
|
GLOB.tracked_chem_implants += src
|
||||||
|
|
||||||
/obj/item/implant/chem/Destroy()
|
/obj/item/implant/chem/Destroy()
|
||||||
|
|||||||
@@ -18,7 +18,7 @@
|
|||||||
|
|
||||||
/obj/item/watertank/Initialize()
|
/obj/item/watertank/Initialize()
|
||||||
. = ..()
|
. = ..()
|
||||||
create_reagents(volume)
|
create_reagents(volume, OPENCONTAINER)
|
||||||
noz = make_noz()
|
noz = make_noz()
|
||||||
|
|
||||||
/obj/item/watertank/ui_action_click(mob/user)
|
/obj/item/watertank/ui_action_click(mob/user)
|
||||||
@@ -113,7 +113,6 @@
|
|||||||
possible_transfer_amounts = list(25,50,100)
|
possible_transfer_amounts = list(25,50,100)
|
||||||
volume = 500
|
volume = 500
|
||||||
item_flags = NOBLUDGEON | ABSTRACT // don't put in storage
|
item_flags = NOBLUDGEON | ABSTRACT // don't put in storage
|
||||||
container_type = OPENCONTAINER
|
|
||||||
slot_flags = 0
|
slot_flags = 0
|
||||||
|
|
||||||
var/obj/item/watertank/tank
|
var/obj/item/watertank/tank
|
||||||
@@ -336,7 +335,7 @@
|
|||||||
var/usage_ratio = 5 //5 unit added per 1 removed
|
var/usage_ratio = 5 //5 unit added per 1 removed
|
||||||
var/injection_amount = 1
|
var/injection_amount = 1
|
||||||
amount_per_transfer_from_this = 5
|
amount_per_transfer_from_this = 5
|
||||||
container_type = OPENCONTAINER
|
reagent_flags = OPENCONTAINER
|
||||||
spillable = FALSE
|
spillable = FALSE
|
||||||
possible_transfer_amounts = list(5,10,15)
|
possible_transfer_amounts = list(5,10,15)
|
||||||
|
|
||||||
|
|||||||
@@ -266,10 +266,10 @@
|
|||||||
status = !status
|
status = !status
|
||||||
if(status)
|
if(status)
|
||||||
to_chat(user, "<span class='notice'>You resecure [src] and close the fuel tank.</span>")
|
to_chat(user, "<span class='notice'>You resecure [src] and close the fuel tank.</span>")
|
||||||
container_type = NONE
|
DISABLE_BITFIELD(reagents.flags, OPENCONTAINER)
|
||||||
else
|
else
|
||||||
to_chat(user, "<span class='notice'>[src] can now be attached, modified, and refuelled.</span>")
|
to_chat(user, "<span class='notice'>[src] can now be attached, modified, and refuelled.</span>")
|
||||||
container_type = OPENCONTAINER
|
ENABLE_BITFIELD(reagents.flags, OPENCONTAINER)
|
||||||
add_fingerprint(user)
|
add_fingerprint(user)
|
||||||
|
|
||||||
/obj/item/weldingtool/proc/flamethrower_rods(obj/item/I, mob/user)
|
/obj/item/weldingtool/proc/flamethrower_rods(obj/item/I, mob/user)
|
||||||
|
|||||||
@@ -5,7 +5,6 @@
|
|||||||
icon_state = "cart"
|
icon_state = "cart"
|
||||||
anchored = FALSE
|
anchored = FALSE
|
||||||
density = TRUE
|
density = TRUE
|
||||||
container_type = OPENCONTAINER
|
|
||||||
//copypaste sorry
|
//copypaste sorry
|
||||||
var/amount_per_transfer_from_this = 5 //shit I dunno, adding this so syringes stop runtime erroring. --NeoFite
|
var/amount_per_transfer_from_this = 5 //shit I dunno, adding this so syringes stop runtime erroring. --NeoFite
|
||||||
var/obj/item/storage/bag/trash/mybag = null
|
var/obj/item/storage/bag/trash/mybag = null
|
||||||
@@ -18,7 +17,7 @@
|
|||||||
|
|
||||||
/obj/structure/janitorialcart/Initialize()
|
/obj/structure/janitorialcart/Initialize()
|
||||||
. = ..()
|
. = ..()
|
||||||
create_reagents(100)
|
create_reagents(100, OPENCONTAINER)
|
||||||
|
|
||||||
/obj/structure/janitorialcart/proc/wet_mop(obj/item/mop, mob/user)
|
/obj/structure/janitorialcart/proc/wet_mop(obj/item/mop, mob/user)
|
||||||
if(reagents.total_volume < 1)
|
if(reagents.total_volume < 1)
|
||||||
|
|||||||
@@ -4,13 +4,12 @@
|
|||||||
icon = 'icons/obj/janitor.dmi'
|
icon = 'icons/obj/janitor.dmi'
|
||||||
icon_state = "mopbucket"
|
icon_state = "mopbucket"
|
||||||
density = TRUE
|
density = TRUE
|
||||||
container_type = OPENCONTAINER
|
|
||||||
var/amount_per_transfer_from_this = 5 //shit I dunno, adding this so syringes stop runtime erroring. --NeoFite
|
var/amount_per_transfer_from_this = 5 //shit I dunno, adding this so syringes stop runtime erroring. --NeoFite
|
||||||
|
|
||||||
|
|
||||||
/obj/structure/mopbucket/Initialize()
|
/obj/structure/mopbucket/Initialize()
|
||||||
. = ..()
|
. = ..()
|
||||||
create_reagents(100)
|
create_reagents(100, OPENCONTAINER)
|
||||||
|
|
||||||
/obj/structure/mopbucket/attackby(obj/item/I, mob/user, params)
|
/obj/structure/mopbucket/attackby(obj/item/I, mob/user, params)
|
||||||
if(istype(I, /obj/item/mop))
|
if(istype(I, /obj/item/mop))
|
||||||
@@ -27,4 +26,4 @@
|
|||||||
/obj/structure/mopbucket/update_icon()
|
/obj/structure/mopbucket/update_icon()
|
||||||
cut_overlays()
|
cut_overlays()
|
||||||
if(reagents.total_volume > 0)
|
if(reagents.total_volume > 0)
|
||||||
add_overlay("mopbucket_water")
|
add_overlay("mopbucket_water")
|
||||||
|
|||||||
@@ -13,7 +13,7 @@
|
|||||||
icon = 'icons/obj/toy.dmi'
|
icon = 'icons/obj/toy.dmi'
|
||||||
icon_state = "rag"
|
icon_state = "rag"
|
||||||
item_flags = NOBLUDGEON
|
item_flags = NOBLUDGEON
|
||||||
container_type = OPENCONTAINER
|
reagent_flags = OPENCONTAINER
|
||||||
amount_per_transfer_from_this = 5
|
amount_per_transfer_from_this = 5
|
||||||
possible_transfer_amounts = list()
|
possible_transfer_amounts = list()
|
||||||
volume = 5
|
volume = 5
|
||||||
@@ -47,4 +47,3 @@
|
|||||||
if(do_after(user,30, target = A))
|
if(do_after(user,30, target = A))
|
||||||
user.visible_message("[user] finishes wiping off [A]!", "<span class='notice'>You finish wiping off [A].</span>")
|
user.visible_message("[user] finishes wiping off [A]!", "<span class='notice'>You finish wiping off [A].</span>")
|
||||||
SEND_SIGNAL(A, COMSIG_COMPONENT_CLEAN_ACT, CLEAN_MEDIUM)
|
SEND_SIGNAL(A, COMSIG_COMPONENT_CLEAN_ACT, CLEAN_MEDIUM)
|
||||||
return
|
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
icon_state = null
|
icon_state = null
|
||||||
lefthand_file = 'icons/mob/inhands/misc/food_lefthand.dmi'
|
lefthand_file = 'icons/mob/inhands/misc/food_lefthand.dmi'
|
||||||
righthand_file = 'icons/mob/inhands/misc/food_righthand.dmi'
|
righthand_file = 'icons/mob/inhands/misc/food_righthand.dmi'
|
||||||
container_type = OPENCONTAINER
|
reagent_flags = OPENCONTAINER
|
||||||
var/gulp_size = 5 //This is now officially broken ... need to think of a nice way to fix it.
|
var/gulp_size = 5 //This is now officially broken ... need to think of a nice way to fix it.
|
||||||
possible_transfer_amounts = list(5,10,15,20,25,30,50)
|
possible_transfer_amounts = list(5,10,15,20,25,30,50)
|
||||||
volume = 50
|
volume = 50
|
||||||
@@ -148,7 +148,6 @@
|
|||||||
possible_transfer_amounts = list()
|
possible_transfer_amounts = list()
|
||||||
volume = 5
|
volume = 5
|
||||||
flags_1 = CONDUCT_1
|
flags_1 = CONDUCT_1
|
||||||
container_type = OPENCONTAINER
|
|
||||||
spillable = TRUE
|
spillable = TRUE
|
||||||
resistance_flags = FIRE_PROOF
|
resistance_flags = FIRE_PROOF
|
||||||
isGlass = FALSE
|
isGlass = FALSE
|
||||||
@@ -398,7 +397,7 @@
|
|||||||
name = "soda can"
|
name = "soda can"
|
||||||
lefthand_file = 'icons/mob/inhands/misc/food_lefthand.dmi'
|
lefthand_file = 'icons/mob/inhands/misc/food_lefthand.dmi'
|
||||||
righthand_file = 'icons/mob/inhands/misc/food_righthand.dmi'
|
righthand_file = 'icons/mob/inhands/misc/food_righthand.dmi'
|
||||||
container_type = NONE
|
reagent_flags = NONE
|
||||||
spillable = FALSE
|
spillable = FALSE
|
||||||
isGlass = FALSE
|
isGlass = FALSE
|
||||||
custom_price = 10
|
custom_price = 10
|
||||||
@@ -435,10 +434,9 @@
|
|||||||
|
|
||||||
/obj/item/reagent_containers/food/drinks/soda_cans/proc/open_soda(mob/user)
|
/obj/item/reagent_containers/food/drinks/soda_cans/proc/open_soda(mob/user)
|
||||||
to_chat(user, "You pull back the tab of \the [src] with a satisfying pop.") //Ahhhhhhhh
|
to_chat(user, "You pull back the tab of \the [src] with a satisfying pop.") //Ahhhhhhhh
|
||||||
container_type = OPENCONTAINER
|
ENABLE_BITFIELD(reagents.flags, OPENCONTAINER)
|
||||||
playsound(src, "can_open", 50, 1)
|
playsound(src, "can_open", 50, 1)
|
||||||
spillable = TRUE
|
spillable = TRUE
|
||||||
return
|
|
||||||
|
|
||||||
/obj/item/reagent_containers/food/drinks/soda_cans/attack_self(mob/user)
|
/obj/item/reagent_containers/food/drinks/soda_cans/attack_self(mob/user)
|
||||||
if(!is_drainable())
|
if(!is_drainable())
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
/obj/item/reagent_containers/food
|
/obj/item/reagent_containers/food
|
||||||
possible_transfer_amounts = list()
|
possible_transfer_amounts = list()
|
||||||
volume = 50 //Sets the default container amount for all food items.
|
volume = 50 //Sets the default container amount for all food items.
|
||||||
container_type = INJECTABLE
|
reagent_flags = INJECTABLE
|
||||||
resistance_flags = FLAMMABLE
|
resistance_flags = FLAMMABLE
|
||||||
var/foodtype = NONE
|
var/foodtype = NONE
|
||||||
var/last_check_time
|
var/last_check_time
|
||||||
@@ -36,4 +36,4 @@
|
|||||||
if(foodtype & H.dna.species.toxic_food)
|
if(foodtype & H.dna.species.toxic_food)
|
||||||
to_chat(H, "<span class='warning'>You don't feel so good...</span>")
|
to_chat(H, "<span class='warning'>You don't feel so good...</span>")
|
||||||
H.adjust_disgust(25 + 30 * fraction)
|
H.adjust_disgust(25 + 30 * fraction)
|
||||||
last_check_time = world.time
|
last_check_time = world.time
|
||||||
|
|||||||
@@ -10,7 +10,7 @@
|
|||||||
desc = "Just your average condiment container."
|
desc = "Just your average condiment container."
|
||||||
icon = 'icons/obj/food/containers.dmi'
|
icon = 'icons/obj/food/containers.dmi'
|
||||||
icon_state = "emptycondiment"
|
icon_state = "emptycondiment"
|
||||||
container_type = OPENCONTAINER
|
reagent_flags = OPENCONTAINER
|
||||||
possible_transfer_amounts = list(1, 5, 10, 15, 20, 25, 30, 50)
|
possible_transfer_amounts = list(1, 5, 10, 15, 20, 25, 30, 50)
|
||||||
volume = 50
|
volume = 50
|
||||||
//Possible_states has the reagent id as key and a list of, in order, the icon_state, the name and the desc as values. Used in the on_reagent_change(changetype) to change names, descs and sprites.
|
//Possible_states has the reagent id as key and a list of, in order, the icon_state, the name and the desc as values. Used in the on_reagent_change(changetype) to change names, descs and sprites.
|
||||||
|
|||||||
@@ -290,7 +290,7 @@
|
|||||||
desc = "A simple bowl, used for soups and salads."
|
desc = "A simple bowl, used for soups and salads."
|
||||||
icon = 'icons/obj/food/soupsalad.dmi'
|
icon = 'icons/obj/food/soupsalad.dmi'
|
||||||
icon_state = "bowl"
|
icon_state = "bowl"
|
||||||
container_type = OPENCONTAINER
|
reagent_flags = OPENCONTAINER
|
||||||
materials = list(MAT_GLASS = 500)
|
materials = list(MAT_GLASS = 500)
|
||||||
w_class = WEIGHT_CLASS_NORMAL
|
w_class = WEIGHT_CLASS_NORMAL
|
||||||
|
|
||||||
|
|||||||
@@ -28,7 +28,6 @@ God bless America.
|
|||||||
density = TRUE
|
density = TRUE
|
||||||
use_power = IDLE_POWER_USE
|
use_power = IDLE_POWER_USE
|
||||||
idle_power_usage = 5
|
idle_power_usage = 5
|
||||||
container_type = OPENCONTAINER
|
|
||||||
layer = BELOW_OBJ_LAYER
|
layer = BELOW_OBJ_LAYER
|
||||||
var/obj/item/reagent_containers/food/snacks/deepfryholder/frying //What's being fried RIGHT NOW?
|
var/obj/item/reagent_containers/food/snacks/deepfryholder/frying //What's being fried RIGHT NOW?
|
||||||
var/cook_time = 0
|
var/cook_time = 0
|
||||||
@@ -53,7 +52,7 @@ God bless America.
|
|||||||
|
|
||||||
/obj/machinery/deepfryer/Initialize()
|
/obj/machinery/deepfryer/Initialize()
|
||||||
. = ..()
|
. = ..()
|
||||||
create_reagents(50)
|
create_reagents(50, OPENCONTAINER)
|
||||||
reagents.add_reagent("cooking_oil", 25)
|
reagents.add_reagent("cooking_oil", 25)
|
||||||
component_parts = list()
|
component_parts = list()
|
||||||
component_parts += new /obj/item/circuitboard/machine/deep_fryer(null)
|
component_parts += new /obj/item/circuitboard/machine/deep_fryer(null)
|
||||||
|
|||||||
@@ -15,13 +15,11 @@
|
|||||||
var/portion = 10
|
var/portion = 10
|
||||||
var/selected_drink
|
var/selected_drink
|
||||||
var/list/stored_food = list()
|
var/list/stored_food = list()
|
||||||
container_type = OPENCONTAINER
|
|
||||||
var/obj/item/reagent_containers/mixer
|
var/obj/item/reagent_containers/mixer
|
||||||
|
|
||||||
/obj/machinery/food_cart/Initialize()
|
/obj/machinery/food_cart/Initialize()
|
||||||
. = ..()
|
. = ..()
|
||||||
create_reagents(LIQUID_CAPACIY)
|
create_reagents(LIQUID_CAPACIY, OPENCONTAINER | NO_REACT)
|
||||||
reagents.set_reacting(FALSE)
|
|
||||||
mixer = new /obj/item/reagent_containers(src, MIXER_CAPACITY)
|
mixer = new /obj/item/reagent_containers(src, MIXER_CAPACITY)
|
||||||
mixer.name = "Mixer"
|
mixer.name = "Mixer"
|
||||||
|
|
||||||
|
|||||||
@@ -14,7 +14,6 @@
|
|||||||
anchored = FALSE
|
anchored = FALSE
|
||||||
use_power = NO_POWER_USE
|
use_power = NO_POWER_USE
|
||||||
layer = BELOW_OBJ_LAYER
|
layer = BELOW_OBJ_LAYER
|
||||||
container_type = OPENCONTAINER
|
|
||||||
max_integrity = 300
|
max_integrity = 300
|
||||||
var/list/product_types = list()
|
var/list/product_types = list()
|
||||||
var/dispense_flavour = ICECREAM_VANILLA
|
var/dispense_flavour = ICECREAM_VANILLA
|
||||||
@@ -65,8 +64,7 @@
|
|||||||
. = ..()
|
. = ..()
|
||||||
while(product_types.len < 6)
|
while(product_types.len < 6)
|
||||||
product_types.Add(5)
|
product_types.Add(5)
|
||||||
create_reagents()
|
create_reagents(100, NO_REACT | OPENCONTAINER)
|
||||||
reagents.set_reacting(FALSE)
|
|
||||||
for(var/reagent in icecream_vat_reagents)
|
for(var/reagent in icecream_vat_reagents)
|
||||||
reagents.add_reagent(reagent, icecream_vat_reagents[reagent])
|
reagents.add_reagent(reagent, icecream_vat_reagents[reagent])
|
||||||
|
|
||||||
|
|||||||
@@ -95,7 +95,6 @@
|
|||||||
if(O.use_tool(src, user, 20))
|
if(O.use_tool(src, user, 20))
|
||||||
user.visible_message("[user] fixes \the [src].", "<span class='notice'>You fix \the [src].</span>")
|
user.visible_message("[user] fixes \the [src].", "<span class='notice'>You fix \the [src].</span>")
|
||||||
broken = 0
|
broken = 0
|
||||||
container_type = OPENCONTAINER
|
|
||||||
update_icon()
|
update_icon()
|
||||||
return FALSE //to use some fuel
|
return FALSE //to use some fuel
|
||||||
else
|
else
|
||||||
@@ -111,7 +110,6 @@
|
|||||||
playsound(loc, 'sound/effects/spray3.ogg', 50, 1, -6)
|
playsound(loc, 'sound/effects/spray3.ogg', 50, 1, -6)
|
||||||
user.visible_message("[user] has cleaned \the [src].", "<span class='notice'>You clean \the [src].</span>")
|
user.visible_message("[user] has cleaned \the [src].", "<span class='notice'>You clean \the [src].</span>")
|
||||||
dirty = 0
|
dirty = 0
|
||||||
container_type = OPENCONTAINER
|
|
||||||
update_icon()
|
update_icon()
|
||||||
updateUsrDialog()
|
updateUsrDialog()
|
||||||
else
|
else
|
||||||
@@ -124,7 +122,6 @@
|
|||||||
if(do_after(user, P.cleanspeed, target = src))
|
if(do_after(user, P.cleanspeed, target = src))
|
||||||
user.visible_message("[user] has cleaned \the [src].", "<span class='notice'>You clean \the [src].</span>")
|
user.visible_message("[user] has cleaned \the [src].", "<span class='notice'>You clean \the [src].</span>")
|
||||||
dirty = 0
|
dirty = 0
|
||||||
container_type = OPENCONTAINER
|
|
||||||
update_icon()
|
update_icon()
|
||||||
return TRUE
|
return TRUE
|
||||||
|
|
||||||
|
|||||||
@@ -18,8 +18,7 @@
|
|||||||
|
|
||||||
/obj/machinery/smartfridge/Initialize()
|
/obj/machinery/smartfridge/Initialize()
|
||||||
. = ..()
|
. = ..()
|
||||||
create_reagents()
|
create_reagents(100, NO_REACT)
|
||||||
reagents.set_reacting(FALSE)
|
|
||||||
|
|
||||||
if(islist(initial_contents))
|
if(islist(initial_contents))
|
||||||
for(var/typekey in initial_contents)
|
for(var/typekey in initial_contents)
|
||||||
|
|||||||
@@ -5,14 +5,14 @@
|
|||||||
icon_state = "barrel"
|
icon_state = "barrel"
|
||||||
density = TRUE
|
density = TRUE
|
||||||
anchored = FALSE
|
anchored = FALSE
|
||||||
container_type = DRAINABLE | AMOUNT_VISIBLE
|
|
||||||
pressure_resistance = 2 * ONE_ATMOSPHERE
|
pressure_resistance = 2 * ONE_ATMOSPHERE
|
||||||
max_integrity = 300
|
max_integrity = 300
|
||||||
var/open = FALSE
|
var/open = FALSE
|
||||||
var/speed_multiplier = 1 //How fast it distills. Defaults to 100% (1.0). Lower is better.
|
var/speed_multiplier = 1 //How fast it distills. Defaults to 100% (1.0). Lower is better.
|
||||||
|
|
||||||
/obj/structure/fermenting_barrel/Initialize()
|
/obj/structure/fermenting_barrel/Initialize()
|
||||||
create_reagents(300) //Bluespace beakers, but without the portability or efficiency in circuits.
|
// Bluespace beakers, but without the portability or efficiency in circuits.
|
||||||
|
create_reagents(300, DRAINABLE | AMOUNT_VISIBLE)
|
||||||
. = ..()
|
. = ..()
|
||||||
|
|
||||||
/obj/structure/fermenting_barrel/examine(mob/user)
|
/obj/structure/fermenting_barrel/examine(mob/user)
|
||||||
@@ -56,10 +56,12 @@
|
|||||||
/obj/structure/fermenting_barrel/attack_hand(mob/user)
|
/obj/structure/fermenting_barrel/attack_hand(mob/user)
|
||||||
open = !open
|
open = !open
|
||||||
if(open)
|
if(open)
|
||||||
container_type = REFILLABLE | AMOUNT_VISIBLE
|
DISABLE_BITFIELD(reagents.flags, DRAINABLE)
|
||||||
|
ENABLE_BITFIELD(reagents.flags, REFILLABLE)
|
||||||
to_chat(user, "<span class='notice'>You open [src], letting you fill it.</span>")
|
to_chat(user, "<span class='notice'>You open [src], letting you fill it.</span>")
|
||||||
else
|
else
|
||||||
container_type = DRAINABLE | AMOUNT_VISIBLE
|
ENABLE_BITFIELD(reagents.flags, DRAINABLE)
|
||||||
|
DISABLE_BITFIELD(reagents.flags, REFILLABLE)
|
||||||
to_chat(user, "<span class='notice'>You close [src], letting you draw from its tap.</span>")
|
to_chat(user, "<span class='notice'>You close [src], letting you draw from its tap.</span>")
|
||||||
update_icon()
|
update_icon()
|
||||||
|
|
||||||
|
|||||||
@@ -7,7 +7,6 @@
|
|||||||
species = "replicapod"
|
species = "replicapod"
|
||||||
plantname = "Replica Pod"
|
plantname = "Replica Pod"
|
||||||
product = /mob/living/carbon/human //verrry special -- Urist
|
product = /mob/living/carbon/human //verrry special -- Urist
|
||||||
container_type = INJECTABLE|DRAWABLE
|
|
||||||
lifespan = 50
|
lifespan = 50
|
||||||
endurance = 8
|
endurance = 8
|
||||||
maturation = 10
|
maturation = 10
|
||||||
@@ -28,7 +27,7 @@
|
|||||||
/obj/item/seeds/replicapod/Initialize()
|
/obj/item/seeds/replicapod/Initialize()
|
||||||
. = ..()
|
. = ..()
|
||||||
|
|
||||||
create_reagents(volume)
|
create_reagents(volume, INJECTABLE|DRAWABLE)
|
||||||
|
|
||||||
/obj/item/seeds/replicapod/on_reagent_change(changetype)
|
/obj/item/seeds/replicapod/on_reagent_change(changetype)
|
||||||
if(changetype == ADD_REAGENT)
|
if(changetype == ADD_REAGENT)
|
||||||
|
|||||||
@@ -310,10 +310,10 @@
|
|||||||
|
|
||||||
/datum/plant_gene/trait/noreact/on_new(obj/item/reagent_containers/food/snacks/grown/G, newloc)
|
/datum/plant_gene/trait/noreact/on_new(obj/item/reagent_containers/food/snacks/grown/G, newloc)
|
||||||
..()
|
..()
|
||||||
G.reagents.set_reacting(FALSE)
|
ENABLE_BITFIELD(G.reagents, NO_REACT)
|
||||||
|
|
||||||
/datum/plant_gene/trait/noreact/on_squash(obj/item/reagent_containers/food/snacks/grown/G, atom/target)
|
/datum/plant_gene/trait/noreact/on_squash(obj/item/reagent_containers/food/snacks/grown/G, atom/target)
|
||||||
G.reagents.set_reacting(TRUE)
|
DISABLE_BITFIELD(G.reagents, NO_REACT)
|
||||||
G.reagents.handle_reactions()
|
G.reagents.handle_reactions()
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -150,9 +150,6 @@
|
|||||||
/*
|
/*
|
||||||
* Sleepypens
|
* Sleepypens
|
||||||
*/
|
*/
|
||||||
/obj/item/pen/sleepy
|
|
||||||
container_type = OPENCONTAINER
|
|
||||||
|
|
||||||
|
|
||||||
/obj/item/pen/sleepy/attack(mob/living/M, mob/user)
|
/obj/item/pen/sleepy/attack(mob/living/M, mob/user)
|
||||||
if(!istype(M))
|
if(!istype(M))
|
||||||
@@ -167,7 +164,7 @@
|
|||||||
|
|
||||||
/obj/item/pen/sleepy/Initialize()
|
/obj/item/pen/sleepy/Initialize()
|
||||||
. = ..()
|
. = ..()
|
||||||
create_reagents(45)
|
create_reagents(45, OPENCONTAINER)
|
||||||
reagents.add_reagent("chloralhydratedelayed", 20)
|
reagents.add_reagent("chloralhydratedelayed", 20)
|
||||||
reagents.add_reagent("mutetoxin", 15)
|
reagents.add_reagent("mutetoxin", 15)
|
||||||
reagents.add_reagent("tirizene", 10)
|
reagents.add_reagent("tirizene", 10)
|
||||||
|
|||||||
@@ -20,7 +20,6 @@
|
|||||||
var/self_recharge = 0 //does it self recharge, over time, or not?
|
var/self_recharge = 0 //does it self recharge, over time, or not?
|
||||||
var/ratingdesc = TRUE
|
var/ratingdesc = TRUE
|
||||||
var/grown_battery = FALSE // If it's a grown that acts as a battery, add a wire overlay to it.
|
var/grown_battery = FALSE // If it's a grown that acts as a battery, add a wire overlay to it.
|
||||||
container_type = INJECTABLE|DRAINABLE
|
|
||||||
|
|
||||||
/obj/item/stock_parts/cell/get_cell()
|
/obj/item/stock_parts/cell/get_cell()
|
||||||
return src
|
return src
|
||||||
@@ -28,7 +27,7 @@
|
|||||||
/obj/item/stock_parts/cell/Initialize(mapload, override_maxcharge)
|
/obj/item/stock_parts/cell/Initialize(mapload, override_maxcharge)
|
||||||
. = ..()
|
. = ..()
|
||||||
START_PROCESSING(SSobj, src)
|
START_PROCESSING(SSobj, src)
|
||||||
create_reagents(5)
|
create_reagents(5, INJECTABLE | DRAINABLE)
|
||||||
if (override_maxcharge)
|
if (override_maxcharge)
|
||||||
maxcharge = override_maxcharge
|
maxcharge = override_maxcharge
|
||||||
charge = maxcharge
|
charge = maxcharge
|
||||||
|
|||||||
@@ -111,23 +111,23 @@
|
|||||||
icon_state = "cshell"
|
icon_state = "cshell"
|
||||||
projectile_type = /obj/item/projectile/bullet/dart
|
projectile_type = /obj/item/projectile/bullet/dart
|
||||||
var/reagent_amount = 30
|
var/reagent_amount = 30
|
||||||
var/reagent_react = TRUE
|
|
||||||
|
/obj/item/ammo_casing/shotgun/dart/Initialize()
|
||||||
|
. = ..()
|
||||||
|
create_reagents(reagent_amount, OPENCONTAINER)
|
||||||
|
|
||||||
|
/obj/item/ammo_casing/shotgun/dart/attackby()
|
||||||
|
return
|
||||||
|
|
||||||
/obj/item/ammo_casing/shotgun/dart/noreact
|
/obj/item/ammo_casing/shotgun/dart/noreact
|
||||||
name = "cryostasis shotgun dart"
|
name = "cryostasis shotgun dart"
|
||||||
desc = "A dart for use in shotguns, using similar technology as cryostatis beakers to keep internal reagents from reacting. Can be injected with up to 10 units of any chemical."
|
desc = "A dart for use in shotguns, using similar technology as cryostatis beakers to keep internal reagents from reacting. Can be injected with up to 10 units of any chemical."
|
||||||
icon_state = "cnrshell"
|
icon_state = "cnrshell"
|
||||||
reagent_amount = 10
|
reagent_amount = 10
|
||||||
reagent_react = FALSE
|
|
||||||
|
|
||||||
/obj/item/ammo_casing/shotgun/dart/Initialize()
|
/obj/item/ammo_casing/shotgun/dart/noreact/Initialize()
|
||||||
. = ..()
|
. = ..()
|
||||||
container_type |= OPENCONTAINER
|
ENABLE_BITFIELD(reagents.flags, NO_REACT)
|
||||||
create_reagents(reagent_amount)
|
|
||||||
reagents.set_reacting(reagent_react)
|
|
||||||
|
|
||||||
/obj/item/ammo_casing/shotgun/dart/attackby()
|
|
||||||
return
|
|
||||||
|
|
||||||
/obj/item/ammo_casing/shotgun/dart/bioterror
|
/obj/item/ammo_casing/shotgun/dart/bioterror
|
||||||
desc = "A shotgun dart filled with deadly toxins."
|
desc = "A shotgun dart filled with deadly toxins."
|
||||||
|
|||||||
@@ -12,7 +12,6 @@
|
|||||||
materials = list(MAT_METAL=2000)
|
materials = list(MAT_METAL=2000)
|
||||||
clumsy_check = FALSE
|
clumsy_check = FALSE
|
||||||
fire_sound = 'sound/items/syringeproj.ogg'
|
fire_sound = 'sound/items/syringeproj.ogg'
|
||||||
container_type = OPENCONTAINER
|
|
||||||
var/time_per_syringe = 250
|
var/time_per_syringe = 250
|
||||||
var/syringes_left = 4
|
var/syringes_left = 4
|
||||||
var/max_syringes = 4
|
var/max_syringes = 4
|
||||||
@@ -22,7 +21,7 @@
|
|||||||
. = ..()
|
. = ..()
|
||||||
chambered = new /obj/item/ammo_casing/chemgun(src)
|
chambered = new /obj/item/ammo_casing/chemgun(src)
|
||||||
START_PROCESSING(SSobj, src)
|
START_PROCESSING(SSobj, src)
|
||||||
create_reagents(100)
|
create_reagents(100, OPENCONTAINER)
|
||||||
|
|
||||||
/obj/item/gun/chem/Destroy()
|
/obj/item/gun/chem/Destroy()
|
||||||
. = ..()
|
. = ..()
|
||||||
@@ -44,4 +43,4 @@
|
|||||||
syringes_left++
|
syringes_left++
|
||||||
if(chambered && !chambered.BB)
|
if(chambered && !chambered.BB)
|
||||||
chambered.newshot()
|
chambered.newshot()
|
||||||
last_synth = world.time
|
last_synth = world.time
|
||||||
|
|||||||
@@ -6,8 +6,7 @@
|
|||||||
|
|
||||||
/obj/item/projectile/bullet/dart/Initialize()
|
/obj/item/projectile/bullet/dart/Initialize()
|
||||||
. = ..()
|
. = ..()
|
||||||
create_reagents(50)
|
create_reagents(50, NO_REACT)
|
||||||
reagents.set_reacting(FALSE)
|
|
||||||
|
|
||||||
/obj/item/projectile/bullet/dart/on_hit(atom/target, blocked = FALSE)
|
/obj/item/projectile/bullet/dart/on_hit(atom/target, blocked = FALSE)
|
||||||
if(iscarbon(target))
|
if(iscarbon(target))
|
||||||
@@ -24,7 +23,7 @@
|
|||||||
"<span class='userdanger'>You were protected against \the [src]!</span>")
|
"<span class='userdanger'>You were protected against \the [src]!</span>")
|
||||||
|
|
||||||
..(target, blocked)
|
..(target, blocked)
|
||||||
reagents.set_reacting(TRUE)
|
DISABLE_BITFIELD(reagents.flags, NO_REACT)
|
||||||
reagents.handle_reactions()
|
reagents.handle_reactions()
|
||||||
return TRUE
|
return TRUE
|
||||||
|
|
||||||
|
|||||||
@@ -51,9 +51,9 @@
|
|||||||
var/last_tick = 1
|
var/last_tick = 1
|
||||||
var/addiction_tick = 1
|
var/addiction_tick = 1
|
||||||
var/list/datum/reagent/addiction_list = new/list()
|
var/list/datum/reagent/addiction_list = new/list()
|
||||||
var/reagents_holder_flags
|
var/flags
|
||||||
|
|
||||||
/datum/reagents/New(maximum=100)
|
/datum/reagents/New(maximum=100, new_flags=0)
|
||||||
maximum_volume = maximum
|
maximum_volume = maximum
|
||||||
|
|
||||||
//I dislike having these here but map-objects are initialised before world/New() is called. >_>
|
//I dislike having these here but map-objects are initialised before world/New() is called. >_>
|
||||||
@@ -62,6 +62,8 @@
|
|||||||
if(!GLOB.chemical_reactions_list)
|
if(!GLOB.chemical_reactions_list)
|
||||||
build_chemical_reactions_list()
|
build_chemical_reactions_list()
|
||||||
|
|
||||||
|
flags = new_flags
|
||||||
|
|
||||||
/datum/reagents/Destroy()
|
/datum/reagents/Destroy()
|
||||||
. = ..()
|
. = ..()
|
||||||
var/list/cached_reagents = reagent_list
|
var/list/cached_reagents = reagent_list
|
||||||
@@ -321,13 +323,6 @@
|
|||||||
C.update_stamina()
|
C.update_stamina()
|
||||||
update_total()
|
update_total()
|
||||||
|
|
||||||
|
|
||||||
/datum/reagents/proc/set_reacting(react = TRUE)
|
|
||||||
if(react)
|
|
||||||
reagents_holder_flags &= ~(REAGENT_NOREACT)
|
|
||||||
else
|
|
||||||
reagents_holder_flags |= REAGENT_NOREACT
|
|
||||||
|
|
||||||
/datum/reagents/proc/conditional_update_move(atom/A, Running = 0)
|
/datum/reagents/proc/conditional_update_move(atom/A, Running = 0)
|
||||||
var/list/cached_reagents = reagent_list
|
var/list/cached_reagents = reagent_list
|
||||||
for(var/reagent in cached_reagents)
|
for(var/reagent in cached_reagents)
|
||||||
@@ -343,11 +338,12 @@
|
|||||||
update_total()
|
update_total()
|
||||||
|
|
||||||
/datum/reagents/proc/handle_reactions()
|
/datum/reagents/proc/handle_reactions()
|
||||||
|
if(flags & NO_REACT)
|
||||||
|
return //Yup, no reactions here. No siree.
|
||||||
|
|
||||||
var/list/cached_reagents = reagent_list
|
var/list/cached_reagents = reagent_list
|
||||||
var/list/cached_reactions = GLOB.chemical_reactions_list
|
var/list/cached_reactions = GLOB.chemical_reactions_list
|
||||||
var/datum/cached_my_atom = my_atom
|
var/datum/cached_my_atom = my_atom
|
||||||
if(reagents_holder_flags & REAGENT_NOREACT)
|
|
||||||
return //Yup, no reactions here. No siree.
|
|
||||||
|
|
||||||
var/reaction_occurred = 0
|
var/reaction_occurred = 0
|
||||||
do
|
do
|
||||||
@@ -804,10 +800,10 @@
|
|||||||
|
|
||||||
// Convenience proc to create a reagents holder for an atom
|
// Convenience proc to create a reagents holder for an atom
|
||||||
// Max vol is maximum volume of holder
|
// Max vol is maximum volume of holder
|
||||||
/atom/proc/create_reagents(max_vol)
|
/atom/proc/create_reagents(max_vol, flags)
|
||||||
if(reagents)
|
if(reagents)
|
||||||
qdel(reagents)
|
qdel(reagents)
|
||||||
reagents = new/datum/reagents(max_vol)
|
reagents = new /datum/reagents(max_vol, flags)
|
||||||
reagents.my_atom = src
|
reagents.my_atom = src
|
||||||
|
|
||||||
/proc/get_random_reagent_id() // Returns a random reagent ID minus blacklisted reagents
|
/proc/get_random_reagent_id() // Returns a random reagent ID minus blacklisted reagents
|
||||||
|
|||||||
@@ -230,7 +230,7 @@ By default, all atom have a reagents var - but its empty. if you want to use an
|
|||||||
'pouring' our reagents into something else.
|
'pouring' our reagents into something else.
|
||||||
|
|
||||||
atom/proc/is_open_container()
|
atom/proc/is_open_container()
|
||||||
Checks obj/var/container_type & OPENCONTAINER.
|
Checks atom/var/reagents.flags & OPENCONTAINER.
|
||||||
If this returns 1 , you can use syringes, beakers etc
|
If this returns 1 , you can use syringes, beakers etc
|
||||||
to manipulate the contents of this object.
|
to manipulate the contents of this object.
|
||||||
If it's 0, you'll need to write your own custom reagent
|
If it's 0, you'll need to write your own custom reagent
|
||||||
|
|||||||
@@ -7,6 +7,7 @@
|
|||||||
var/amount_per_transfer_from_this = 5
|
var/amount_per_transfer_from_this = 5
|
||||||
var/list/possible_transfer_amounts = list(5,10,15,20,25,30)
|
var/list/possible_transfer_amounts = list(5,10,15,20,25,30)
|
||||||
var/volume = 30
|
var/volume = 30
|
||||||
|
var/reagent_flags
|
||||||
var/list/list_reagents = null
|
var/list/list_reagents = null
|
||||||
var/spawned_disease = null
|
var/spawned_disease = null
|
||||||
var/disease_amount = 20
|
var/disease_amount = 20
|
||||||
@@ -16,7 +17,7 @@
|
|||||||
. = ..()
|
. = ..()
|
||||||
if(isnum(vol) && vol > 0)
|
if(isnum(vol) && vol > 0)
|
||||||
volume = vol
|
volume = vol
|
||||||
create_reagents(volume)
|
create_reagents(volume, reagent_flags)
|
||||||
if(spawned_disease)
|
if(spawned_disease)
|
||||||
var/datum/disease/F = new spawned_disease()
|
var/datum/disease/F = new spawned_disease()
|
||||||
var/list/data = list("viruses"= list(F))
|
var/list/data = list("viruses"= list(F))
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
amount_per_transfer_from_this = 5
|
amount_per_transfer_from_this = 5
|
||||||
possible_transfer_amounts = list(1, 2, 3, 4, 5)
|
possible_transfer_amounts = list(1, 2, 3, 4, 5)
|
||||||
volume = 5
|
volume = 5
|
||||||
container_type = TRANSPARENT
|
reagent_flags = TRANSPARENT
|
||||||
|
|
||||||
/obj/item/reagent_containers/dropper/afterattack(obj/target, mob/user , proximity)
|
/obj/item/reagent_containers/dropper/afterattack(obj/target, mob/user , proximity)
|
||||||
. = ..()
|
. = ..()
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
amount_per_transfer_from_this = 10
|
amount_per_transfer_from_this = 10
|
||||||
possible_transfer_amounts = list(5, 10, 15, 20, 25, 30, 50)
|
possible_transfer_amounts = list(5, 10, 15, 20, 25, 30, 50)
|
||||||
volume = 50
|
volume = 50
|
||||||
container_type = OPENCONTAINER
|
reagent_flags = OPENCONTAINER
|
||||||
spillable = TRUE
|
spillable = TRUE
|
||||||
resistance_flags = ACID_PROOF
|
resistance_flags = ACID_PROOF
|
||||||
|
|
||||||
@@ -197,13 +197,10 @@
|
|||||||
reactions. Can hold up to 50 units."
|
reactions. Can hold up to 50 units."
|
||||||
icon_state = "beakernoreact"
|
icon_state = "beakernoreact"
|
||||||
materials = list(MAT_METAL=3000)
|
materials = list(MAT_METAL=3000)
|
||||||
|
reagent_flags = OPENCONTAINER | NO_REACT
|
||||||
volume = 50
|
volume = 50
|
||||||
amount_per_transfer_from_this = 10
|
amount_per_transfer_from_this = 10
|
||||||
|
|
||||||
/obj/item/reagent_containers/glass/beaker/noreact/Initialize()
|
|
||||||
. = ..()
|
|
||||||
reagents.set_reacting(FALSE)
|
|
||||||
|
|
||||||
/obj/item/reagent_containers/glass/beaker/bluespace
|
/obj/item/reagent_containers/glass/beaker/bluespace
|
||||||
name = "bluespace beaker"
|
name = "bluespace beaker"
|
||||||
desc = "A bluespace beaker, powered by experimental bluespace technology \
|
desc = "A bluespace beaker, powered by experimental bluespace technology \
|
||||||
@@ -294,11 +291,11 @@
|
|||||||
to_chat(user, "<span class='userdanger'>[src]'s contents spill all over you!</span>")
|
to_chat(user, "<span class='userdanger'>[src]'s contents spill all over you!</span>")
|
||||||
reagents.reaction(user, TOUCH)
|
reagents.reaction(user, TOUCH)
|
||||||
reagents.clear_reagents()
|
reagents.clear_reagents()
|
||||||
container_type = NONE
|
reagents.flags = NONE
|
||||||
|
|
||||||
/obj/item/reagent_containers/glass/bucket/dropped(mob/user)
|
/obj/item/reagent_containers/glass/bucket/dropped(mob/user)
|
||||||
. = ..()
|
. = ..()
|
||||||
container_type = initial(container_type)
|
reagents.flags = initial(reagent_flags)
|
||||||
|
|
||||||
/obj/item/reagent_containers/glass/bucket/equip_to_best_slot(var/mob/M)
|
/obj/item/reagent_containers/glass/bucket/equip_to_best_slot(var/mob/M)
|
||||||
if(reagents.total_volume) //If there is water in a bucket, don't quick equip it to the head
|
if(reagents.total_volume) //If there is water in a bucket, don't quick equip it to the head
|
||||||
|
|||||||
@@ -10,7 +10,7 @@
|
|||||||
volume = 30
|
volume = 30
|
||||||
possible_transfer_amounts = list()
|
possible_transfer_amounts = list()
|
||||||
resistance_flags = ACID_PROOF
|
resistance_flags = ACID_PROOF
|
||||||
container_type = OPENCONTAINER
|
reagent_flags = OPENCONTAINER
|
||||||
slot_flags = ITEM_SLOT_BELT
|
slot_flags = ITEM_SLOT_BELT
|
||||||
var/ignore_flags = 0
|
var/ignore_flags = 0
|
||||||
var/infinite = FALSE
|
var/infinite = FALSE
|
||||||
@@ -73,7 +73,7 @@
|
|||||||
desc = "A modified air-needle autoinjector with a small single-use reservoir. It contains an experimental serum."
|
desc = "A modified air-needle autoinjector with a small single-use reservoir. It contains an experimental serum."
|
||||||
icon_state = "combat_hypo"
|
icon_state = "combat_hypo"
|
||||||
volume = 5
|
volume = 5
|
||||||
container_type = NONE
|
reagent_flags = NONE
|
||||||
list_reagents = list("magillitis" = 5)
|
list_reagents = list("magillitis" = 5)
|
||||||
|
|
||||||
//MediPens
|
//MediPens
|
||||||
@@ -88,7 +88,7 @@
|
|||||||
amount_per_transfer_from_this = 10
|
amount_per_transfer_from_this = 10
|
||||||
volume = 10
|
volume = 10
|
||||||
ignore_flags = 1 //so you can medipen through hardsuits
|
ignore_flags = 1 //so you can medipen through hardsuits
|
||||||
container_type = DRAWABLE
|
reagent_flags = DRAWABLE
|
||||||
flags_1 = null
|
flags_1 = null
|
||||||
list_reagents = list("epinephrine" = 10)
|
list_reagents = list("epinephrine" = 10)
|
||||||
custom_price = 40
|
custom_price = 40
|
||||||
@@ -104,7 +104,7 @@
|
|||||||
..()
|
..()
|
||||||
if(!iscyborg(user))
|
if(!iscyborg(user))
|
||||||
reagents.maximum_volume = 0 //Makes them useless afterwards
|
reagents.maximum_volume = 0 //Makes them useless afterwards
|
||||||
container_type = NONE
|
reagents.flags = NONE
|
||||||
update_icon()
|
update_icon()
|
||||||
addtimer(CALLBACK(src, .proc/cyborg_recharge, user), 80)
|
addtimer(CALLBACK(src, .proc/cyborg_recharge, user), 80)
|
||||||
|
|
||||||
@@ -179,4 +179,4 @@
|
|||||||
/obj/item/reagent_containers/hypospray/medipen/atropine
|
/obj/item/reagent_containers/hypospray/medipen/atropine
|
||||||
name = "atropine autoinjector"
|
name = "atropine autoinjector"
|
||||||
desc = "A rapid way to save a person from a critical injury state!"
|
desc = "A rapid way to save a person from a critical injury state!"
|
||||||
list_reagents = list("atropine" = 10)
|
list_reagents = list("atropine" = 10)
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
righthand_file = 'icons/mob/inhands/equipment/hydroponics_righthand.dmi'
|
righthand_file = 'icons/mob/inhands/equipment/hydroponics_righthand.dmi'
|
||||||
item_flags = NOBLUDGEON
|
item_flags = NOBLUDGEON
|
||||||
obj_flags = UNIQUE_RENAME
|
obj_flags = UNIQUE_RENAME
|
||||||
container_type = OPENCONTAINER
|
reagent_flags = OPENCONTAINER
|
||||||
slot_flags = ITEM_SLOT_BELT
|
slot_flags = ITEM_SLOT_BELT
|
||||||
throwforce = 0
|
throwforce = 0
|
||||||
w_class = WEIGHT_CLASS_SMALL
|
w_class = WEIGHT_CLASS_SMALL
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
lefthand_file = 'icons/mob/inhands/equipment/custodial_lefthand.dmi'
|
lefthand_file = 'icons/mob/inhands/equipment/custodial_lefthand.dmi'
|
||||||
righthand_file = 'icons/mob/inhands/equipment/custodial_righthand.dmi'
|
righthand_file = 'icons/mob/inhands/equipment/custodial_righthand.dmi'
|
||||||
item_flags = NOBLUDGEON
|
item_flags = NOBLUDGEON
|
||||||
container_type = OPENCONTAINER
|
reagent_flags = OPENCONTAINER
|
||||||
slot_flags = ITEM_SLOT_BELT
|
slot_flags = ITEM_SLOT_BELT
|
||||||
throwforce = 0
|
throwforce = 0
|
||||||
w_class = WEIGHT_CLASS_SMALL
|
w_class = WEIGHT_CLASS_SMALL
|
||||||
@@ -231,7 +231,7 @@
|
|||||||
return
|
return
|
||||||
|
|
||||||
/obj/item/reagent_containers/spray/waterflower/cyborg
|
/obj/item/reagent_containers/spray/waterflower/cyborg
|
||||||
container_type = NONE
|
reagent_flags = NONE
|
||||||
volume = 100
|
volume = 100
|
||||||
list_reagents = list("water" = 100)
|
list_reagents = list("water" = 100)
|
||||||
var/generate_amount = 5
|
var/generate_amount = 5
|
||||||
|
|||||||
@@ -13,7 +13,7 @@
|
|||||||
var/busy = FALSE // needed for delayed drawing of blood
|
var/busy = FALSE // needed for delayed drawing of blood
|
||||||
var/proj_piercing = 0 //does it pierce through thick clothes when shot with syringe gun
|
var/proj_piercing = 0 //does it pierce through thick clothes when shot with syringe gun
|
||||||
materials = list(MAT_METAL=10, MAT_GLASS=20)
|
materials = list(MAT_METAL=10, MAT_GLASS=20)
|
||||||
container_type = TRANSPARENT
|
reagent_flags = TRANSPARENT
|
||||||
|
|
||||||
/obj/item/reagent_containers/syringe/Initialize()
|
/obj/item/reagent_containers/syringe/Initialize()
|
||||||
. = ..()
|
. = ..()
|
||||||
@@ -249,10 +249,7 @@
|
|||||||
name = "cryo syringe"
|
name = "cryo syringe"
|
||||||
desc = "An advanced syringe that stops reagents inside from reacting. It can hold up to 20 units."
|
desc = "An advanced syringe that stops reagents inside from reacting. It can hold up to 20 units."
|
||||||
volume = 20
|
volume = 20
|
||||||
|
reagent_flags = TRANSPARENT | NO_REACT
|
||||||
/obj/item/reagent_containers/syringe/noreact/Initialize()
|
|
||||||
. = ..()
|
|
||||||
reagents.set_reacting(FALSE)
|
|
||||||
|
|
||||||
/obj/item/reagent_containers/syringe/piercing
|
/obj/item/reagent_containers/syringe/piercing
|
||||||
name = "piercing syringe"
|
name = "piercing syringe"
|
||||||
|
|||||||
@@ -5,7 +5,6 @@
|
|||||||
icon_state = "water"
|
icon_state = "water"
|
||||||
density = TRUE
|
density = TRUE
|
||||||
anchored = FALSE
|
anchored = FALSE
|
||||||
container_type = DRAINABLE | AMOUNT_VISIBLE
|
|
||||||
pressure_resistance = 2*ONE_ATMOSPHERE
|
pressure_resistance = 2*ONE_ATMOSPHERE
|
||||||
max_integrity = 300
|
max_integrity = 300
|
||||||
var/tank_volume = 1000 //In units, how much the dispenser can hold
|
var/tank_volume = 1000 //In units, how much the dispenser can hold
|
||||||
@@ -24,7 +23,7 @@
|
|||||||
return ..()
|
return ..()
|
||||||
|
|
||||||
/obj/structure/reagent_dispensers/Initialize()
|
/obj/structure/reagent_dispensers/Initialize()
|
||||||
create_reagents(tank_volume)
|
create_reagents(tank_volume, DRAINABLE | AMOUNT_VISIBLE)
|
||||||
reagents.add_reagent(reagent_id, tank_volume)
|
reagents.add_reagent(reagent_id, tank_volume)
|
||||||
. = ..()
|
. = ..()
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
/obj/machinery/rnd/production
|
/obj/machinery/rnd/production
|
||||||
name = "technology fabricator"
|
name = "technology fabricator"
|
||||||
desc = "Makes researched and prototype items with materials and energy."
|
desc = "Makes researched and prototype items with materials and energy."
|
||||||
container_type = OPENCONTAINER
|
|
||||||
layer = BELOW_OBJ_LAYER
|
layer = BELOW_OBJ_LAYER
|
||||||
var/consoleless_interface = FALSE //Whether it can be used without a console.
|
var/consoleless_interface = FALSE //Whether it can be used without a console.
|
||||||
var/efficiency_coeff = 1 //Materials needed / coeff = actual.
|
var/efficiency_coeff = 1 //Materials needed / coeff = actual.
|
||||||
@@ -21,7 +20,7 @@
|
|||||||
|
|
||||||
/obj/machinery/rnd/production/Initialize(mapload)
|
/obj/machinery/rnd/production/Initialize(mapload)
|
||||||
. = ..()
|
. = ..()
|
||||||
create_reagents(0)
|
create_reagents(0, OPENCONTAINER)
|
||||||
matching_designs = list()
|
matching_designs = list()
|
||||||
cached_designs = list()
|
cached_designs = list()
|
||||||
stored_research = new
|
stored_research = new
|
||||||
|
|||||||
@@ -2,7 +2,6 @@
|
|||||||
name = "circuit imprinter"
|
name = "circuit imprinter"
|
||||||
desc = "Manufactures circuit boards for the construction of machines."
|
desc = "Manufactures circuit boards for the construction of machines."
|
||||||
icon_state = "circuit_imprinter"
|
icon_state = "circuit_imprinter"
|
||||||
container_type = OPENCONTAINER
|
|
||||||
circuit = /obj/item/circuitboard/machine/circuit_imprinter
|
circuit = /obj/item/circuitboard/machine/circuit_imprinter
|
||||||
categories = list(
|
categories = list(
|
||||||
"AI Modules",
|
"AI Modules",
|
||||||
|
|||||||
@@ -2,7 +2,6 @@
|
|||||||
name = "department circuit imprinter"
|
name = "department circuit imprinter"
|
||||||
desc = "A special circuit imprinter with a built in interface meant for departmental usage, with built in ExoSync receivers allowing it to print designs researched that match its ROM-encoded department type."
|
desc = "A special circuit imprinter with a built in interface meant for departmental usage, with built in ExoSync receivers allowing it to print designs researched that match its ROM-encoded department type."
|
||||||
icon_state = "circuit_imprinter"
|
icon_state = "circuit_imprinter"
|
||||||
container_type = OPENCONTAINER
|
|
||||||
circuit = /obj/item/circuitboard/machine/circuit_imprinter/department
|
circuit = /obj/item/circuitboard/machine/circuit_imprinter/department
|
||||||
requires_console = FALSE
|
requires_console = FALSE
|
||||||
consoleless_interface = TRUE
|
consoleless_interface = TRUE
|
||||||
@@ -11,4 +10,4 @@
|
|||||||
name = "department circuit imprinter (Science)"
|
name = "department circuit imprinter (Science)"
|
||||||
circuit = /obj/item/circuitboard/machine/circuit_imprinter/department/science
|
circuit = /obj/item/circuitboard/machine/circuit_imprinter/department/science
|
||||||
allowed_department_flags = DEPARTMENTAL_FLAG_ALL|DEPARTMENTAL_FLAG_SCIENCE
|
allowed_department_flags = DEPARTMENTAL_FLAG_ALL|DEPARTMENTAL_FLAG_SCIENCE
|
||||||
department_tag = "Science"
|
department_tag = "Science"
|
||||||
|
|||||||
@@ -2,7 +2,6 @@
|
|||||||
name = "department protolathe"
|
name = "department protolathe"
|
||||||
desc = "A special protolathe with a built in interface meant for departmental usage, with built in ExoSync receivers allowing it to print designs researched that match its ROM-encoded department type."
|
desc = "A special protolathe with a built in interface meant for departmental usage, with built in ExoSync receivers allowing it to print designs researched that match its ROM-encoded department type."
|
||||||
icon_state = "protolathe"
|
icon_state = "protolathe"
|
||||||
container_type = OPENCONTAINER
|
|
||||||
circuit = /obj/item/circuitboard/machine/protolathe/department
|
circuit = /obj/item/circuitboard/machine/protolathe/department
|
||||||
requires_console = FALSE
|
requires_console = FALSE
|
||||||
consoleless_interface = TRUE
|
consoleless_interface = TRUE
|
||||||
@@ -41,4 +40,4 @@
|
|||||||
name = "department protolathe (Security)"
|
name = "department protolathe (Security)"
|
||||||
allowed_department_flags = DEPARTMENTAL_FLAG_ALL|DEPARTMENTAL_FLAG_SECURITY
|
allowed_department_flags = DEPARTMENTAL_FLAG_ALL|DEPARTMENTAL_FLAG_SECURITY
|
||||||
department_tag = "Security"
|
department_tag = "Security"
|
||||||
circuit = /obj/item/circuitboard/machine/protolathe/department/security
|
circuit = /obj/item/circuitboard/machine/protolathe/department/security
|
||||||
|
|||||||
@@ -2,7 +2,6 @@
|
|||||||
name = "department techfab"
|
name = "department techfab"
|
||||||
desc = "An advanced fabricator designed to print out the latest prototypes and circuits researched from Science. Contains hardware to sync to research networks. This one is department-locked and only possesses a limited set of decryption keys."
|
desc = "An advanced fabricator designed to print out the latest prototypes and circuits researched from Science. Contains hardware to sync to research networks. This one is department-locked and only possesses a limited set of decryption keys."
|
||||||
icon_state = "protolathe"
|
icon_state = "protolathe"
|
||||||
container_type = OPENCONTAINER
|
|
||||||
circuit = /obj/item/circuitboard/machine/techfab/department
|
circuit = /obj/item/circuitboard/machine/techfab/department
|
||||||
|
|
||||||
/obj/machinery/rnd/production/techfab/department/engineering
|
/obj/machinery/rnd/production/techfab/department/engineering
|
||||||
@@ -39,4 +38,4 @@
|
|||||||
name = "department techfab (Security)"
|
name = "department techfab (Security)"
|
||||||
allowed_department_flags = DEPARTMENTAL_FLAG_ALL|DEPARTMENTAL_FLAG_SECURITY
|
allowed_department_flags = DEPARTMENTAL_FLAG_ALL|DEPARTMENTAL_FLAG_SECURITY
|
||||||
department_tag = "Security"
|
department_tag = "Security"
|
||||||
circuit = /obj/item/circuitboard/machine/techfab/department/security
|
circuit = /obj/item/circuitboard/machine/techfab/department/security
|
||||||
|
|||||||
@@ -2,7 +2,6 @@
|
|||||||
name = "protolathe"
|
name = "protolathe"
|
||||||
desc = "Converts raw materials into useful objects."
|
desc = "Converts raw materials into useful objects."
|
||||||
icon_state = "protolathe"
|
icon_state = "protolathe"
|
||||||
container_type = OPENCONTAINER
|
|
||||||
circuit = /obj/item/circuitboard/machine/protolathe
|
circuit = /obj/item/circuitboard/machine/protolathe
|
||||||
categories = list(
|
categories = list(
|
||||||
"Power Designs",
|
"Power Designs",
|
||||||
@@ -23,4 +22,4 @@
|
|||||||
|
|
||||||
/obj/machinery/rnd/production/protolathe/disconnect_console()
|
/obj/machinery/rnd/production/protolathe/disconnect_console()
|
||||||
linked_console.linked_lathe = null
|
linked_console.linked_lathe = null
|
||||||
..()
|
..()
|
||||||
|
|||||||
@@ -2,7 +2,6 @@
|
|||||||
name = "technology fabricator"
|
name = "technology fabricator"
|
||||||
desc = "Produces researched prototypes with raw materials and energy."
|
desc = "Produces researched prototypes with raw materials and energy."
|
||||||
icon_state = "protolathe"
|
icon_state = "protolathe"
|
||||||
container_type = OPENCONTAINER
|
|
||||||
circuit = /obj/item/circuitboard/machine/techfab
|
circuit = /obj/item/circuitboard/machine/techfab
|
||||||
categories = list(
|
categories = list(
|
||||||
"Power Designs",
|
"Power Designs",
|
||||||
@@ -33,4 +32,4 @@
|
|||||||
production_animation = "protolathe_n"
|
production_animation = "protolathe_n"
|
||||||
requires_console = FALSE
|
requires_console = FALSE
|
||||||
consoleless_interface = TRUE
|
consoleless_interface = TRUE
|
||||||
allowed_buildtypes = PROTOLATHE | IMPRINTER
|
allowed_buildtypes = PROTOLATHE | IMPRINTER
|
||||||
|
|||||||
@@ -90,12 +90,11 @@ To add a crossbreed:
|
|||||||
icon = 'icons/obj/slimecrossing.dmi'
|
icon = 'icons/obj/slimecrossing.dmi'
|
||||||
icon_state = "base"
|
icon_state = "base"
|
||||||
var/del_on_empty = TRUE
|
var/del_on_empty = TRUE
|
||||||
container_type = INJECTABLE | DRAWABLE
|
|
||||||
var/list/list_reagents
|
var/list/list_reagents
|
||||||
|
|
||||||
/obj/item/slimecrossbeaker/Initialize()
|
/obj/item/slimecrossbeaker/Initialize()
|
||||||
. = ..()
|
. = ..()
|
||||||
create_reagents(50)
|
create_reagents(50, INJECTABLE | DRAWABLE)
|
||||||
if(list_reagents)
|
if(list_reagents)
|
||||||
for(var/reagent in list_reagents)
|
for(var/reagent in list_reagents)
|
||||||
reagents.add_reagent(reagent, list_reagents[reagent])
|
reagents.add_reagent(reagent, list_reagents[reagent])
|
||||||
@@ -130,10 +129,13 @@ To add a crossbreed:
|
|||||||
list_reagents = list("omnizine" = 15)
|
list_reagents = list("omnizine" = 15)
|
||||||
|
|
||||||
/obj/item/slimecrossbeaker/autoinjector //As with the above, but automatically injects whomever it is used on with contents.
|
/obj/item/slimecrossbeaker/autoinjector //As with the above, but automatically injects whomever it is used on with contents.
|
||||||
container_type = DRAWABLE //Cannot be refilled, since it's basically an autoinjector!
|
|
||||||
var/ignore_flags = FALSE
|
var/ignore_flags = FALSE
|
||||||
var/self_use_only = FALSE
|
var/self_use_only = FALSE
|
||||||
|
|
||||||
|
/obj/item/slimecrossbeaker/autoinjector/Initialize()
|
||||||
|
. = ..()
|
||||||
|
reagents.flags = DRAWABLE // Cannot be refilled, since it's basically an autoinjector!
|
||||||
|
|
||||||
/obj/item/slimecrossbeaker/autoinjector/attack(mob/living/M, mob/user)
|
/obj/item/slimecrossbeaker/autoinjector/attack(mob/living/M, mob/user)
|
||||||
if(!reagents.total_volume)
|
if(!reagents.total_volume)
|
||||||
to_chat(user, "<span class='warning'>[src] is empty!</span>")
|
to_chat(user, "<span class='warning'>[src] is empty!</span>")
|
||||||
@@ -169,12 +171,15 @@ To add a crossbreed:
|
|||||||
list_reagents = list("slimejelly" = 50)
|
list_reagents = list("slimejelly" = 50)
|
||||||
|
|
||||||
/obj/item/slimecrossbeaker/autoinjector/peaceandlove
|
/obj/item/slimecrossbeaker/autoinjector/peaceandlove
|
||||||
container_type = null //It won't be *that* easy to get your hands on pax.
|
|
||||||
name = "peaceful distillation"
|
name = "peaceful distillation"
|
||||||
desc = "A light pink gooey sphere. Simply touching it makes you a little dizzy."
|
desc = "A light pink gooey sphere. Simply touching it makes you a little dizzy."
|
||||||
color = "#DDAAAA"
|
color = "#DDAAAA"
|
||||||
list_reagents = list("synthpax" = 10, "space_drugs" = 15) //Peace, dudes
|
list_reagents = list("synthpax" = 10, "space_drugs" = 15) //Peace, dudes
|
||||||
|
|
||||||
|
/obj/item/slimecrossbeaker/autoinjector/peaceandlove/Initialize()
|
||||||
|
. = ..()
|
||||||
|
reagents.flags = NONE // It won't be *that* easy to get your hands on pax.
|
||||||
|
|
||||||
/obj/item/slimecrossbeaker/autoinjector/slimestimulant
|
/obj/item/slimecrossbeaker/autoinjector/slimestimulant
|
||||||
name = "invigorating gel"
|
name = "invigorating gel"
|
||||||
desc = "A bubbling purple mixture, designed to heal and boost movement."
|
desc = "A bubbling purple mixture, designed to heal and boost movement."
|
||||||
|
|||||||
@@ -7,12 +7,11 @@ Burning extracts:
|
|||||||
name = "burning extract"
|
name = "burning extract"
|
||||||
desc = "It's boiling over with barely-contained energy."
|
desc = "It's boiling over with barely-contained energy."
|
||||||
effect = "burning"
|
effect = "burning"
|
||||||
container_type = INJECTABLE | DRAWABLE
|
|
||||||
icon_state = "burning"
|
icon_state = "burning"
|
||||||
|
|
||||||
/obj/item/slimecross/burning/Initialize()
|
/obj/item/slimecross/burning/Initialize()
|
||||||
. = ..()
|
. = ..()
|
||||||
create_reagents(10)
|
create_reagents(10, INJECTABLE | DRAWABLE)
|
||||||
|
|
||||||
/obj/item/slimecross/burning/attack_self(mob/user)
|
/obj/item/slimecross/burning/attack_self(mob/user)
|
||||||
if(!reagents.has_reagent("plasma",10))
|
if(!reagents.has_reagent("plasma",10))
|
||||||
|
|||||||
@@ -8,12 +8,11 @@ Charged extracts:
|
|||||||
name = "charged extract"
|
name = "charged extract"
|
||||||
desc = "It sparks with electric power."
|
desc = "It sparks with electric power."
|
||||||
effect = "charged"
|
effect = "charged"
|
||||||
container_type = INJECTABLE | DRAWABLE
|
|
||||||
icon_state = "charged"
|
icon_state = "charged"
|
||||||
|
|
||||||
/obj/item/slimecross/charged/Initialize()
|
/obj/item/slimecross/charged/Initialize()
|
||||||
. = ..()
|
. = ..()
|
||||||
create_reagents(10)
|
create_reagents(10, INJECTABLE | DRAWABLE)
|
||||||
|
|
||||||
/obj/item/slimecross/charged/attack_self(mob/user)
|
/obj/item/slimecross/charged/attack_self(mob/user)
|
||||||
if(!reagents.has_reagent("plasma",10))
|
if(!reagents.has_reagent("plasma",10))
|
||||||
|
|||||||
@@ -7,11 +7,11 @@ Chilling extracts:
|
|||||||
name = "chilling extract"
|
name = "chilling extract"
|
||||||
desc = "It's cold to the touch, as if frozen solid."
|
desc = "It's cold to the touch, as if frozen solid."
|
||||||
effect = "chilling"
|
effect = "chilling"
|
||||||
container_type = INJECTABLE | DRAWABLE
|
|
||||||
icon_state = "chilling"
|
icon_state = "chilling"
|
||||||
|
|
||||||
/obj/item/slimecross/chilling/Initialize()
|
/obj/item/slimecross/chilling/Initialize()
|
||||||
. = ..()
|
. = ..()
|
||||||
create_reagents(10)
|
create_reagents(10, INJECTABLE | DRAWABLE)
|
||||||
|
|
||||||
/obj/item/slimecross/chilling/attack_self(mob/user)
|
/obj/item/slimecross/chilling/attack_self(mob/user)
|
||||||
if(!reagents.has_reagent("plasma",10))
|
if(!reagents.has_reagent("plasma",10))
|
||||||
|
|||||||
@@ -5,7 +5,6 @@ Industrial extracts:
|
|||||||
/obj/item/slimecross/industrial
|
/obj/item/slimecross/industrial
|
||||||
name = "industrial extract"
|
name = "industrial extract"
|
||||||
desc = "A gel-like, sturdy extract, fond of plasma and industry."
|
desc = "A gel-like, sturdy extract, fond of plasma and industry."
|
||||||
container_type = INJECTABLE | DRAWABLE
|
|
||||||
effect = "industrial"
|
effect = "industrial"
|
||||||
icon_state = "industrial_still"
|
icon_state = "industrial_still"
|
||||||
var/plasmarequired = 2 //Units of plasma required to be consumed to produce item.
|
var/plasmarequired = 2 //Units of plasma required to be consumed to produce item.
|
||||||
@@ -22,7 +21,7 @@ Industrial extracts:
|
|||||||
|
|
||||||
/obj/item/slimecross/industrial/Initialize()
|
/obj/item/slimecross/industrial/Initialize()
|
||||||
. = ..()
|
. = ..()
|
||||||
create_reagents(100)
|
create_reagents(100, INJECTABLE | DRAWABLE)
|
||||||
START_PROCESSING(SSobj,src)
|
START_PROCESSING(SSobj,src)
|
||||||
|
|
||||||
/obj/item/slimecross/industrial/Destroy()
|
/obj/item/slimecross/industrial/Destroy()
|
||||||
|
|||||||
@@ -10,7 +10,6 @@
|
|||||||
throwforce = 0
|
throwforce = 0
|
||||||
throw_speed = 3
|
throw_speed = 3
|
||||||
throw_range = 6
|
throw_range = 6
|
||||||
container_type = INJECTABLE | DRAWABLE
|
|
||||||
grind_results = list()
|
grind_results = list()
|
||||||
var/Uses = 1 // uses before it goes inert
|
var/Uses = 1 // uses before it goes inert
|
||||||
var/qdel_timer = null // deletion timer, for delayed reactions
|
var/qdel_timer = null // deletion timer, for delayed reactions
|
||||||
@@ -39,7 +38,7 @@
|
|||||||
|
|
||||||
/obj/item/slime_extract/Initialize()
|
/obj/item/slime_extract/Initialize()
|
||||||
. = ..()
|
. = ..()
|
||||||
create_reagents(100)
|
create_reagents(100, INJECTABLE | DRAWABLE)
|
||||||
|
|
||||||
/obj/item/slime_extract/on_grind()
|
/obj/item/slime_extract/on_grind()
|
||||||
if(Uses)
|
if(Uses)
|
||||||
|
|||||||
Reference in New Issue
Block a user