mirror of
https://github.com/PolarisSS13/Polaris.git
synced 2025-12-13 19:52:13 +00:00
rename a bunch of atom flags
This commit is contained in:
@@ -17,13 +17,26 @@
|
||||
/// The atom has been initialized.
|
||||
#define ATOM_INITIALIZED (1<<0)
|
||||
|
||||
#define NOCONDUCT (1<<1) // Conducts electricity. (metal etc.)
|
||||
#define ON_BORDER (1<<2) // Item has priority to check when entering or leaving.
|
||||
#define OPENCONTAINER (1<<3) // Is an open container for chemistry purposes.
|
||||
#define NOREACT (1<<4) // Reagents don't react inside this container.
|
||||
#define OVERLAY_QUEUED (1<<5) // Atom is queued for an overlay update
|
||||
#define SLANDMARK_FLAG_AUTOSET (1<<6) // If set, will set base area and turf type to same as where it was spawned at
|
||||
#define SLANDMARK_FLAG_ZERO_G (1<<7) // Zero-G shuttles moved here will lose gravity unless the area has ambient gravity.
|
||||
/// The atom does not conduct electricity.
|
||||
#define ATOM_IS_INSULATED (1<<1)
|
||||
|
||||
/// The atom should be considered ahead of others when changing turfs.
|
||||
#define ATOM_HAS_TRANSITION_PRIORITY (1<<2)
|
||||
|
||||
/// For the purpose of reagents transfer, this atom can be interacted with syringes etc.
|
||||
#define ATOM_REAGENTS_IS_OPEN (1<<3)
|
||||
|
||||
/// Reagents do not react inside this atom, regardless of recipes.
|
||||
#define ATOM_REAGENTS_SKIP_REACTIONS (1<<4)
|
||||
|
||||
/// This atom is queued for an overlay update.
|
||||
#define ATOM_AWAITING_OVERLAY_UPDATE (1<<5)
|
||||
|
||||
/// This atom is a shuttle landmark that should create its own landing point.
|
||||
#define LANDMARK_CREATES_SAFE_SITE (1<<6)
|
||||
|
||||
/// This atom is a shuttle landmark that causes arriving shuttles to have no gravity.
|
||||
#define LANDMARK_REMOVES_GRAVITY (1<<7)
|
||||
|
||||
|
||||
/* -- /turf/var/turf_flags -- */
|
||||
|
||||
@@ -183,7 +183,7 @@
|
||||
//Used for border objects. This returns true if this atom is on the border between the two specified turfs
|
||||
//This assumes that the atom is located inside the target turf
|
||||
/atom/proc/is_between_turfs(var/turf/origin, var/turf/target)
|
||||
if (atom_flags & ON_BORDER)
|
||||
if (atom_flags & ATOM_HAS_TRANSITION_PRIORITY)
|
||||
var/testdir = get_dir(target, origin)
|
||||
return (dir & testdir)
|
||||
return TRUE
|
||||
|
||||
@@ -114,14 +114,14 @@ Quick adjacency (to turf):
|
||||
|
||||
/*
|
||||
This checks if you there is uninterrupted airspace between that turf and this one.
|
||||
This is defined as any dense ON_BORDER object, or any dense object without throwpass.
|
||||
This is defined as any dense ATOM_HAS_TRANSITION_PRIORITY object, or any dense object without throwpass.
|
||||
The border_only flag allows you to not objects (for source and destination squares)
|
||||
*/
|
||||
/turf/proc/ClickCross(var/target_dir, var/border_only, var/target_atom = null)
|
||||
for(var/obj/O in src)
|
||||
if( !O.density || O == target_atom || O.throwpass) continue // throwpass is used for anything you can click through
|
||||
|
||||
if( O.atom_flags&ON_BORDER) // windows have throwpass but are on border, check them first
|
||||
if( O.atom_flags&ATOM_HAS_TRANSITION_PRIORITY) // windows have throwpass but are on border, check them first
|
||||
if( O.dir & target_dir || O.dir&(O.dir-1) ) // full tile windows are just diagonals mechanically
|
||||
var/obj/structure/window/W = target_atom
|
||||
if(istype(W))
|
||||
|
||||
@@ -24,7 +24,7 @@ SUBSYSTEM_DEF(overlays)
|
||||
icon_cache.Cut()
|
||||
cache_size = 0
|
||||
for (var/atom/atom)
|
||||
atom.atom_flags &= ~OVERLAY_QUEUED
|
||||
atom.atom_flags &= ~ATOM_AWAITING_OVERLAY_UPDATE
|
||||
CHECK_TICK
|
||||
|
||||
|
||||
@@ -85,7 +85,7 @@ SUBSYSTEM_DEF(overlays)
|
||||
result += GetIconAppearance(entry)
|
||||
else
|
||||
if (isloc(entry))
|
||||
if (entry.atom_flags & OVERLAY_QUEUED)
|
||||
if (entry.atom_flags & ATOM_AWAITING_OVERLAY_UPDATE)
|
||||
entry.ImmediateOverlayUpdate()
|
||||
if (!ispath(entry))
|
||||
result += entry.appearance
|
||||
@@ -97,10 +97,10 @@ SUBSYSTEM_DEF(overlays)
|
||||
|
||||
/// Enqueues the atom for an overlay update if not already queued
|
||||
/atom/proc/QueueOverlayUpdate()
|
||||
if (atom_flags & OVERLAY_QUEUED)
|
||||
if (atom_flags & ATOM_AWAITING_OVERLAY_UPDATE)
|
||||
return
|
||||
SSoverlays.queue += src
|
||||
atom_flags |= OVERLAY_QUEUED
|
||||
atom_flags |= ATOM_AWAITING_OVERLAY_UPDATE
|
||||
|
||||
|
||||
/// Builds the atom's overlay state from caches
|
||||
@@ -109,7 +109,7 @@ SUBSYSTEM_DEF(overlays)
|
||||
if (length(overlays))
|
||||
overlays.Cut()
|
||||
return
|
||||
atom_flags &= ~OVERLAY_QUEUED
|
||||
atom_flags &= ~ATOM_AWAITING_OVERLAY_UPDATE
|
||||
if (length(priority_overlays))
|
||||
if (length(our_overlays))
|
||||
overlays = priority_overlays + our_overlays
|
||||
|
||||
@@ -33,7 +33,7 @@
|
||||
gender = PLURAL
|
||||
icon = 'icons/obj/soap.dmi'
|
||||
icon_state = "soap"
|
||||
atom_flags = NOCONDUCT
|
||||
atom_flags = ATOM_IS_INSULATED
|
||||
w_class = ITEMSIZE_SMALL
|
||||
slot_flags = SLOT_HOLSTER
|
||||
throwforce = 0
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
var/datum/reagents/reagents = null
|
||||
|
||||
//var/chem_is_open_container = 0
|
||||
// replaced by OPENCONTAINER flags and atom/proc/is_open_container()
|
||||
// replaced by ATOM_REAGENTS_IS_OPEN flags and atom/proc/is_open_container()
|
||||
///Chemistry.
|
||||
|
||||
// Overlays
|
||||
@@ -129,7 +129,7 @@ var/global/list/pre_init_created_atoms // atom creation ordering means some stuf
|
||||
// returns true if open
|
||||
// false if closed
|
||||
/atom/proc/is_open_container()
|
||||
return atom_flags & OPENCONTAINER
|
||||
return atom_flags & ATOM_REAGENTS_IS_OPEN
|
||||
|
||||
/*//Convenience proc to see whether a container can be accessed in a certain way.
|
||||
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
health = 150
|
||||
visible = 0.0
|
||||
use_power = USE_POWER_OFF
|
||||
atom_flags = ON_BORDER
|
||||
atom_flags = ATOM_HAS_TRANSITION_PRIORITY
|
||||
opacity = 0
|
||||
var/obj/item/airlock_electronics/electronics = null
|
||||
explosion_resistance = 5
|
||||
|
||||
@@ -167,7 +167,7 @@
|
||||
center = locate(x+center_x, y+center_y, z)
|
||||
if(center)
|
||||
for(var/obj/M in orange(magnetic_field, center))
|
||||
if(!M.anchored && !(M.atom_flags & NOCONDUCT))
|
||||
if(!M.anchored && !(M.atom_flags & ATOM_IS_INSULATED))
|
||||
step_towards(M, center)
|
||||
|
||||
for(var/mob/living/silicon/S in orange(magnetic_field, center))
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
|
||||
/obj/item/mecha_parts/mecha_equipment/tool/syringe_gun/Initialize()
|
||||
. = ..()
|
||||
atom_flags |= NOREACT
|
||||
atom_flags |= ATOM_REAGENTS_SKIP_REACTIONS
|
||||
syringes = new
|
||||
known_reagents = list("inaprovaline"="Inaprovaline","anti_toxin"="Dylovene")
|
||||
processed_reagents = new
|
||||
@@ -31,7 +31,7 @@
|
||||
|
||||
/obj/item/mecha_parts/mecha_equipment/tool/syringe_gun/critfail()
|
||||
..()
|
||||
atom_flags &= ~NOREACT
|
||||
atom_flags &= ~ATOM_REAGENTS_SKIP_REACTIONS
|
||||
return
|
||||
|
||||
/obj/item/mecha_parts/mecha_equipment/tool/syringe_gun/get_equip_info()
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
/obj/item/reagent_containers/glass/beaker/vial/random/Initialize()
|
||||
. = ..()
|
||||
if(is_open_container())
|
||||
atom_flags ^= OPENCONTAINER
|
||||
atom_flags ^= ATOM_REAGENTS_IS_OPEN
|
||||
var/list/picked_reagents = pickweight(random_reagent_list)
|
||||
for(var/reagent in picked_reagents)
|
||||
reagents.add_reagent(reagent, picked_reagents[reagent])
|
||||
|
||||
@@ -381,7 +381,7 @@ HALOGEN COUNTER - Radcount on mobs
|
||||
drop_sound = 'sound/items/drop/device.ogg'
|
||||
icon_state = "spectrometer"
|
||||
w_class = ITEMSIZE_SMALL
|
||||
atom_flags = OPENCONTAINER
|
||||
atom_flags = ATOM_REAGENTS_IS_OPEN
|
||||
slot_flags = SLOT_BELT
|
||||
throwforce = 5
|
||||
throw_speed = 4
|
||||
@@ -463,7 +463,7 @@ HALOGEN COUNTER - Radcount on mobs
|
||||
return
|
||||
|
||||
if(!isnull(O.reagents))
|
||||
if(!(O.atom_flags & OPENCONTAINER)) // The idea is that the scanner has to touch the reagents somehow. This is done to prevent cheesing unidentified autoinjectors.
|
||||
if(!(O.atom_flags & ATOM_REAGENTS_IS_OPEN)) // The idea is that the scanner has to touch the reagents somehow. This is done to prevent cheesing unidentified autoinjectors.
|
||||
to_chat(user, span("warning", "\The [O] is sealed, and cannot be scanned by \the [src] until unsealed."))
|
||||
return
|
||||
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
|
||||
/obj/item/clothing/mask/chewable/Initialize()
|
||||
. = ..()
|
||||
atom_flags |= NOREACT // so it doesn't react until you light it
|
||||
atom_flags |= ATOM_REAGENTS_SKIP_REACTIONS // so it doesn't react until you light it
|
||||
create_reagents(chem_volume) // making the cigarrete a chemical holder with a maximum volume of 15
|
||||
for(var/R in filling)
|
||||
reagents.add_reagent(R, filling[R])
|
||||
|
||||
@@ -105,7 +105,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
|
||||
|
||||
/obj/item/clothing/mask/smokable/Initialize()
|
||||
. = ..()
|
||||
atom_flags |= NOREACT // so it doesn't react until you light it
|
||||
atom_flags |= ATOM_REAGENTS_SKIP_REACTIONS // so it doesn't react until you light it
|
||||
create_reagents(chem_volume) // making the cigarrete a chemical holder with a maximum volume of 15
|
||||
if(smoketime && !max_smoketime)
|
||||
max_smoketime = smoketime
|
||||
@@ -183,7 +183,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
|
||||
e.start()
|
||||
qdel(src)
|
||||
return
|
||||
atom_flags &= ~NOREACT // allowing reagents to react after being lit
|
||||
atom_flags &= ~ATOM_REAGENTS_SKIP_REACTIONS // allowing reagents to react after being lit
|
||||
reagents.handle_reactions()
|
||||
var/turf/T = get_turf(src)
|
||||
T.visible_message(flavor_text)
|
||||
|
||||
@@ -153,7 +153,7 @@
|
||||
icon_state = "ecartridge"
|
||||
matter = list("metal" = 50, "glass" = 10)
|
||||
volume = 20
|
||||
atom_flags = OPENCONTAINER
|
||||
atom_flags = ATOM_REAGENTS_IS_OPEN
|
||||
|
||||
/obj/item/reagent_containers/ecig_cartridge/Initialize()
|
||||
. = ..()
|
||||
|
||||
@@ -44,7 +44,7 @@
|
||||
matter[material_type] *= force_divisor // May require a new var instead.
|
||||
|
||||
if(!(material.conductive))
|
||||
atom_flags |= NOCONDUCT
|
||||
atom_flags |= ATOM_IS_INSULATED
|
||||
|
||||
/obj/item/material/get_material()
|
||||
return material
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
sharp = 0
|
||||
edge = 0
|
||||
armor_penetration = 50
|
||||
atom_flags = NOCONDUCT
|
||||
atom_flags = ATOM_IS_INSULATED
|
||||
item_flags = NOBLOODY
|
||||
var/lrange = 2
|
||||
var/lpower = 2
|
||||
|
||||
@@ -10,7 +10,7 @@ GLOBAL_LIST_BOILERPLATE(all_mops, /obj/item/mop)
|
||||
throw_speed = 5
|
||||
throw_range = 10
|
||||
w_class = ITEMSIZE_NORMAL
|
||||
atom_flags = NOCONDUCT
|
||||
atom_flags = ATOM_IS_INSULATED
|
||||
attack_verb = list("mopped", "bashed", "bludgeoned", "whacked")
|
||||
var/mopping = 0
|
||||
var/mopcount = 0
|
||||
|
||||
@@ -15,7 +15,7 @@ var/global/list/cached_icons = list()
|
||||
possible_transfer_amounts = list(10,20,30,60)
|
||||
volume = 60
|
||||
unacidable = 0
|
||||
atom_flags = OPENCONTAINER
|
||||
atom_flags = ATOM_REAGENTS_IS_OPEN
|
||||
var/paint_type = "red"
|
||||
|
||||
/obj/item/reagent_containers/glass/paint/afterattack(turf/simulated/target, mob/user, proximity)
|
||||
|
||||
@@ -118,7 +118,7 @@
|
||||
icon_state = "eshield"
|
||||
item_state = "eshield"
|
||||
slot_flags = SLOT_EARS
|
||||
atom_flags = NOCONDUCT
|
||||
atom_flags = ATOM_IS_INSULATED
|
||||
force = 3.0
|
||||
throwforce = 5.0
|
||||
throw_speed = 1
|
||||
|
||||
@@ -219,9 +219,9 @@
|
||||
|
||||
/obj/item/storage/fancy/cigarettes/Initialize()
|
||||
. = ..()
|
||||
atom_flags |= NOREACT
|
||||
atom_flags |= ATOM_REAGENTS_SKIP_REACTIONS
|
||||
create_reagents(15 * storage_slots)//so people can inject cigarettes without opening a packet, now with being able to inject the whole one
|
||||
atom_flags |= OPENCONTAINER
|
||||
atom_flags |= ATOM_REAGENTS_IS_OPEN
|
||||
if(brand)
|
||||
for(var/obj/item/clothing/mask/smokable/cigarette/C in src)
|
||||
C.brand = brand
|
||||
@@ -333,7 +333,7 @@
|
||||
|
||||
/obj/item/storage/fancy/cigar/Initialize()
|
||||
. = ..()
|
||||
atom_flags |= NOREACT
|
||||
atom_flags |= ATOM_REAGENTS_SKIP_REACTIONS
|
||||
create_reagents(15 * storage_slots)
|
||||
|
||||
/obj/item/storage/fancy/cigar/update_icon()
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
sharp = 0
|
||||
edge = 0
|
||||
throwforce = 7
|
||||
atom_flags = NOCONDUCT
|
||||
atom_flags = ATOM_IS_INSULATED
|
||||
w_class = ITEMSIZE_NORMAL
|
||||
drop_sound = 'sound/items/drop/metalweapon.ogg'
|
||||
pickup_sound = 'sound/items/pickup/metalweapon.ogg'
|
||||
|
||||
@@ -237,7 +237,7 @@
|
||||
if(!istype(W))
|
||||
return
|
||||
|
||||
if((W.atom_flags & NOCONDUCT) || !shock(user, 70, pick(BP_L_HAND, BP_R_HAND)))
|
||||
if((W.atom_flags & ATOM_IS_INSULATED) || !shock(user, 70, pick(BP_L_HAND, BP_R_HAND)))
|
||||
user.setClickCooldown(user.get_attack_speed(W))
|
||||
user.do_attack_animation(src)
|
||||
playsound(src, 'sound/effects/grillehit.ogg', 40, 1)
|
||||
|
||||
@@ -93,7 +93,7 @@
|
||||
if(istype(O,/obj/structure))
|
||||
var/obj/structure/S = O
|
||||
if(S.climbable) continue
|
||||
if(O && O.density && !(O.atom_flags & ON_BORDER)) //ON_BORDER structures are handled by the Adjacent() check.
|
||||
if(O && O.density && !(O.atom_flags & ATOM_HAS_TRANSITION_PRIORITY)) //ATOM_HAS_TRANSITION_PRIORITY structures are handled by the Adjacent() check.
|
||||
return O
|
||||
return 0
|
||||
|
||||
|
||||
@@ -150,7 +150,7 @@
|
||||
return
|
||||
//window placing end
|
||||
|
||||
else if((W.atom_flags & NOCONDUCT) || !shock(user, 70))
|
||||
else if((W.atom_flags & ATOM_IS_INSULATED) || !shock(user, 70))
|
||||
user.setClickCooldown(user.get_attack_speed(W))
|
||||
user.do_attack_animation(src)
|
||||
playsound(src, 'sound/effects/grillehit.ogg', 80, 1)
|
||||
|
||||
@@ -8,7 +8,7 @@ GLOBAL_LIST_BOILERPLATE(all_janitorial_carts, /obj/structure/janitorialcart)
|
||||
icon_state = "cart"
|
||||
anchored = 0
|
||||
density = 1
|
||||
atom_flags = OPENCONTAINER
|
||||
atom_flags = ATOM_REAGENTS_IS_OPEN
|
||||
climbable = TRUE
|
||||
//copypaste sorry
|
||||
var/amount_per_transfer_from_this = 5 //shit I dunno, adding this so syringes stop runtime erroring. --NeoFite
|
||||
@@ -304,7 +304,7 @@ GLOBAL_LIST_BOILERPLATE(all_janitorial_carts, /obj/structure/janitorialcart)
|
||||
icon_state = "pussywagon"
|
||||
anchored = 1
|
||||
density = 1
|
||||
atom_flags = OPENCONTAINER
|
||||
atom_flags = ATOM_REAGENTS_IS_OPEN
|
||||
//copypaste sorry
|
||||
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
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
climbable = 1
|
||||
anchored = 1
|
||||
var/solidledge = 1
|
||||
atom_flags = ON_BORDER
|
||||
atom_flags = ATOM_HAS_TRANSITION_PRIORITY
|
||||
layer = STAIRS_LAYER
|
||||
icon_state = "ledge"
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
climbable = 1
|
||||
w_class = ITEMSIZE_NORMAL
|
||||
pressure_resistance = 5
|
||||
atom_flags = OPENCONTAINER
|
||||
atom_flags = ATOM_REAGENTS_IS_OPEN
|
||||
var/amount_per_transfer_from_this = 5 //shit I dunno, adding this so syringes stop runtime erroring. --NeoFite
|
||||
|
||||
GLOBAL_LIST_BOILERPLATE(all_mopbuckets, /obj/structure/mopbucket)
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
climbable = 1
|
||||
layer = WINDOW_LAYER
|
||||
anchored = 1
|
||||
atom_flags = ON_BORDER
|
||||
atom_flags = ATOM_HAS_TRANSITION_PRIORITY
|
||||
icon_state = "railing0"
|
||||
var/broken = FALSE
|
||||
var/health = 70
|
||||
@@ -326,5 +326,5 @@
|
||||
if(istype(O,/obj/structure))
|
||||
var/obj/structure/S = O
|
||||
if(S.climbable) continue
|
||||
if(O && O.density && !(O.atom_flags & ON_BORDER && !(turn(O.dir, 180) & dir)))
|
||||
if(O && O.density && !(O.atom_flags & ATOM_HAS_TRANSITION_PRIORITY && !(turn(O.dir, 180) & dir)))
|
||||
return O
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
layer = WINDOW_LAYER
|
||||
pressure_resistance = 4*ONE_ATMOSPHERE
|
||||
anchored = 1.0
|
||||
atom_flags = ON_BORDER
|
||||
atom_flags = ATOM_HAS_TRANSITION_PRIORITY
|
||||
var/maxhealth = 14.0
|
||||
var/maximal_heat = T0C + 100 // Maximal heat before this window begins taking damage from fire
|
||||
var/damage_per_fire_tick = 2.0 // Amount of damage per fire tick. Regular windows are not fireproof so they might as well break quickly.
|
||||
|
||||
@@ -197,7 +197,7 @@
|
||||
mover.Bump(thing)
|
||||
continue
|
||||
else
|
||||
if(!firstbump || ((thing.layer > firstbump.layer || thing.atom_flags & ON_BORDER) && !(firstbump.atom_flags & ON_BORDER)))
|
||||
if(!firstbump || ((thing.layer > firstbump.layer || thing.atom_flags & ATOM_HAS_TRANSITION_PRIORITY) && !(firstbump.atom_flags & ATOM_HAS_TRANSITION_PRIORITY)))
|
||||
firstbump = thing
|
||||
if(QDELETED(mover)) //Mover deleted from Cross/CanPass/Bump, do not proceed.
|
||||
return FALSE
|
||||
@@ -217,7 +217,7 @@
|
||||
continue
|
||||
var/atom/movable/thing = i
|
||||
if(!thing.Uncross(mover, newloc))
|
||||
if(thing.atom_flags & ON_BORDER)
|
||||
if(thing.atom_flags & ATOM_HAS_TRANSITION_PRIORITY)
|
||||
mover.Bump(thing)
|
||||
if(!CHECK_BITFIELD(mover.movement_type, UNSTOPPABLE))
|
||||
return FALSE
|
||||
@@ -272,7 +272,7 @@
|
||||
if(density)
|
||||
return 1
|
||||
for(var/atom/A in src)
|
||||
if(A.density && !(A.atom_flags & ON_BORDER))
|
||||
if(A.density && !(A.atom_flags & ATOM_HAS_TRANSITION_PRIORITY))
|
||||
return 1
|
||||
return 0
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
description_info = "Some blob types will have core effects when the chunk is used in-hand, toggled with an alt click, or constantly active."
|
||||
icon = 'icons/mob/blob.dmi'
|
||||
icon_state = "blobcore"
|
||||
atom_flags = OPENCONTAINER
|
||||
atom_flags = ATOM_REAGENTS_IS_OPEN
|
||||
var/datum/blob_type/blob_type // The blob type this dropped from.
|
||||
|
||||
var/active_ability_cooldown = 20 SECONDS
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
//Reagent Rings
|
||||
|
||||
/obj/item/clothing/gloves/ring/reagent
|
||||
atom_flags = OPENCONTAINER
|
||||
atom_flags = ATOM_REAGENTS_IS_OPEN
|
||||
origin_tech = list(TECH_MATERIAL = 2, TECH_ILLEGAL = 4)
|
||||
|
||||
/obj/item/clothing/gloves/ring/reagent/Initialize()
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
possible_transfer_amounts = list(5)
|
||||
volume = 10
|
||||
can_be_placed_into = null
|
||||
atom_flags = OPENCONTAINER
|
||||
atom_flags = ATOM_REAGENTS_IS_OPEN
|
||||
item_flags = NOBLUDGEON
|
||||
unacidable = 0
|
||||
drop_sound = 'sound/items/drop/cloth.ogg'
|
||||
|
||||
@@ -23,7 +23,7 @@ var/global/const/DRINK_ICON_NOISY = "_noise"
|
||||
|
||||
amount_per_transfer_from_this = 5
|
||||
possible_transfer_amounts = list(5,10,15,30)
|
||||
atom_flags = OPENCONTAINER
|
||||
atom_flags = ATOM_REAGENTS_IS_OPEN
|
||||
|
||||
matter = list("glass" = 60)
|
||||
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
desc = "Just your average condiment container."
|
||||
icon = 'icons/obj/food.dmi'
|
||||
icon_state = "emptycondiment"
|
||||
atom_flags = OPENCONTAINER
|
||||
atom_flags = ATOM_REAGENTS_IS_OPEN
|
||||
possible_transfer_amounts = list(1,5,10)
|
||||
center_of_mass = list("x"=16, "y"=6)
|
||||
volume = 50
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
drop_sound = 'sound/items/drop/drinkglass.ogg'
|
||||
pickup_sound = 'sound/items/pickup/drinkglass.ogg'
|
||||
icon_state = null
|
||||
atom_flags = OPENCONTAINER
|
||||
atom_flags = ATOM_REAGENTS_IS_OPEN
|
||||
amount_per_transfer_from_this = 5
|
||||
possible_transfer_amounts = list(5,10,15,25,30)
|
||||
volume = 50
|
||||
@@ -49,7 +49,7 @@
|
||||
playsound(src,"canopen", rand(10,50), 1)
|
||||
GLOB.cans_opened_roundstat++
|
||||
to_chat(user, "<span class='notice'>You open [src] with an audible pop!</span>")
|
||||
atom_flags |= OPENCONTAINER
|
||||
atom_flags |= ATOM_REAGENTS_IS_OPEN
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/attack(mob/M as mob, mob/user as mob, def_zone)
|
||||
if(force && !(item_flags & NOBLUDGEON) && user.a_intent == I_HURT)
|
||||
@@ -124,7 +124,7 @@
|
||||
amount_per_transfer_from_this = 20
|
||||
possible_transfer_amounts = null
|
||||
volume = 150
|
||||
atom_flags = OPENCONTAINER
|
||||
atom_flags = ATOM_REAGENTS_IS_OPEN
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/golden_cup/on_reagent_change()
|
||||
..()
|
||||
|
||||
@@ -119,14 +119,14 @@
|
||||
to_chat(user, "<span class='notice'>You stuff [R] into [src].</span>")
|
||||
rag = R
|
||||
rag.forceMove(src)
|
||||
atom_flags &= ~OPENCONTAINER
|
||||
atom_flags &= ~ATOM_REAGENTS_IS_OPEN
|
||||
update_icon()
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/bottle/proc/remove_rag(mob/user)
|
||||
if(!rag) return
|
||||
user.put_in_hands(rag)
|
||||
rag = null
|
||||
atom_flags |= (initial(atom_flags) & OPENCONTAINER)
|
||||
atom_flags |= (initial(atom_flags) & ATOM_REAGENTS_IS_OPEN)
|
||||
update_icon()
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/bottle/open(mob/user)
|
||||
@@ -182,7 +182,7 @@
|
||||
throw_speed = 3
|
||||
throw_range = 5
|
||||
item_state = "beer"
|
||||
atom_flags = NOCONDUCT
|
||||
atom_flags = ATOM_IS_INSULATED
|
||||
attack_verb = list("stabbed", "slashed", "attacked")
|
||||
sharp = 1
|
||||
edge = 0
|
||||
|
||||
@@ -1816,7 +1816,7 @@
|
||||
filling_color = "#ADAC7F"
|
||||
center_of_mass = list("x"=16, "y"=14)
|
||||
w_class = ITEMSIZE_TINY
|
||||
atom_flags = OPENCONTAINER
|
||||
atom_flags = ATOM_REAGENTS_IS_OPEN
|
||||
var/wrapped = 0
|
||||
var/contents_type = "item"
|
||||
var/monkey_type = "Monkey"
|
||||
@@ -1849,7 +1849,7 @@
|
||||
desc = "Just add water!"
|
||||
to_chat(user, "You unwrap the cube.")
|
||||
wrapped = 0
|
||||
atom_flags |= OPENCONTAINER
|
||||
atom_flags |= ATOM_REAGENTS_IS_OPEN
|
||||
return
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/cube/On_Consume(var/mob/M)
|
||||
@@ -6869,7 +6869,7 @@
|
||||
to_chat(user, "It is [sealed ? "" : "un"]sealed.")
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/canned/proc/unseal()
|
||||
atom_flags |= OPENCONTAINER
|
||||
atom_flags |= ATOM_REAGENTS_IS_OPEN
|
||||
sealed = FALSE
|
||||
update_icon()
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
/obj/item/reagent_containers/glass/bottle/robot
|
||||
amount_per_transfer_from_this = 10
|
||||
possible_transfer_amounts = list(5,10,15,25,30,50,100)
|
||||
atom_flags = OPENCONTAINER
|
||||
atom_flags = ATOM_REAGENTS_IS_OPEN
|
||||
volume = 60
|
||||
var/reagent = ""
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
var/max_space = 20//Maximum sum of w-classes of foods in this container at once
|
||||
var/max_reagents = 80//Maximum units of reagents
|
||||
var/food_items = 0 // Used for icon updates
|
||||
atom_flags = OPENCONTAINER | NOREACT
|
||||
atom_flags = ATOM_REAGENTS_IS_OPEN | ATOM_REAGENTS_SKIP_REACTIONS
|
||||
var/list/insertable = list(
|
||||
/obj/item/reagent_containers/food/snacks,
|
||||
/obj/item/holder,
|
||||
@@ -22,7 +22,7 @@
|
||||
/obj/item/reagent_containers/cooking_container/Initialize()
|
||||
. = ..()
|
||||
create_reagents(max_reagents)
|
||||
atom_flags |= OPENCONTAINER | NOREACT
|
||||
atom_flags |= ATOM_REAGENTS_IS_OPEN | ATOM_REAGENTS_SKIP_REACTIONS
|
||||
|
||||
|
||||
/obj/item/reagent_containers/cooking_container/examine(var/mob/user)
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
density = 1
|
||||
anchored = 0
|
||||
use_power = USE_POWER_OFF
|
||||
atom_flags = OPENCONTAINER | NOREACT
|
||||
atom_flags = ATOM_REAGENTS_IS_OPEN | ATOM_REAGENTS_SKIP_REACTIONS
|
||||
|
||||
var/list/product_types = list()
|
||||
var/dispense_flavour = ICECREAM_VANILLA
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
active_power_usage = 2000
|
||||
clicksound = "button"
|
||||
clickvol = "30"
|
||||
atom_flags = OPENCONTAINER | NOREACT
|
||||
atom_flags = ATOM_REAGENTS_IS_OPEN | ATOM_REAGENTS_SKIP_REACTIONS
|
||||
circuit = /obj/item/circuitboard/microwave
|
||||
var/operating = 0 // Is it on?
|
||||
var/dirty = 0 // = {0..100} Does it need cleaning?
|
||||
@@ -100,7 +100,7 @@
|
||||
src.icon_state = "mw"
|
||||
src.broken = 0 // Fix it!
|
||||
src.dirty = 0 // just to be sure
|
||||
src.atom_flags = OPENCONTAINER | NOREACT
|
||||
src.atom_flags = ATOM_REAGENTS_IS_OPEN | ATOM_REAGENTS_SKIP_REACTIONS
|
||||
else
|
||||
to_chat(user, "<span class='warning'>It's broken!</span>")
|
||||
return 1
|
||||
@@ -119,7 +119,7 @@
|
||||
src.dirty = 0 // It's clean!
|
||||
src.broken = 0 // just to be sure
|
||||
src.icon_state = "mw"
|
||||
src.atom_flags = OPENCONTAINER | NOREACT
|
||||
src.atom_flags = ATOM_REAGENTS_IS_OPEN | ATOM_REAGENTS_SKIP_REACTIONS
|
||||
else //Otherwise bad luck!!
|
||||
to_chat(user, "<span class='warning'>It's dirty!</span>")
|
||||
return 1
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
use_power = USE_POWER_IDLE
|
||||
idle_power_usage = 5
|
||||
active_power_usage = 100
|
||||
atom_flags = NOREACT
|
||||
atom_flags = ATOM_REAGENTS_SKIP_REACTIONS
|
||||
var/max_n_of_items = 999 // Sorry but the BYOND infinite loop detector doesn't look things over 1000.
|
||||
var/list/item_records = list()
|
||||
var/datum/stored_item/currently_vending = null //What we're putting out of the machine.
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
|
||||
/obj/machinery/station_map/Initialize()
|
||||
. = ..()
|
||||
atom_flags |= ON_BORDER // Why? It doesn't help if its not density
|
||||
atom_flags |= ATOM_HAS_TRANSITION_PRIORITY // Why? It doesn't help if its not density
|
||||
|
||||
/obj/machinery/station_map/Initialize()
|
||||
. = ..()
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
icon = 'icons/obj/hydroponics_products.dmi'
|
||||
icon_state = "blank"
|
||||
desc = "Nutritious! Probably."
|
||||
atom_flags = NOCONDUCT
|
||||
atom_flags = ATOM_IS_INSULATED
|
||||
slot_flags = SLOT_HOLSTER
|
||||
drop_sound = 'sound/items/drop/herb.ogg'
|
||||
pickup_sound = 'sound/items/pickup/herb.ogg'
|
||||
|
||||
@@ -35,7 +35,7 @@
|
||||
desc = "A reminder of meals gone by."
|
||||
icon = 'icons/obj/trash.dmi'
|
||||
icon_state = "corncob"
|
||||
atom_flags = NOCONDUCT
|
||||
atom_flags = ATOM_IS_INSULATED
|
||||
w_class = ITEMSIZE_SMALL
|
||||
throwforce = 0
|
||||
throw_speed = 4
|
||||
@@ -54,7 +54,7 @@
|
||||
desc = "A peel from a banana."
|
||||
icon = 'icons/obj/items.dmi'
|
||||
icon_state = "banana_peel"
|
||||
atom_flags = NOCONDUCT
|
||||
atom_flags = ATOM_IS_INSULATED
|
||||
w_class = ITEMSIZE_SMALL
|
||||
throwforce = 0
|
||||
throw_speed = 4
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
icon_state = "hydrotray3"
|
||||
density = 1
|
||||
anchored = 1
|
||||
atom_flags = OPENCONTAINER
|
||||
atom_flags = ATOM_REAGENTS_IS_OPEN
|
||||
volume = 100
|
||||
|
||||
var/mechanical = 1 // Set to 0 to stop it from drawing the alert lights.
|
||||
|
||||
@@ -110,7 +110,7 @@
|
||||
icon_state = "chemical_cell"
|
||||
extended_desc = "This is effectively an internal beaker. It will consume and produce power from phoron, slime jelly, welding fuel, carbon,\
|
||||
ethanol, nutriments and blood, in order of decreasing efficiency. It will consume fuel only if the battery can take more energy."
|
||||
atom_flags = OPENCONTAINER
|
||||
atom_flags = ATOM_REAGENTS_IS_OPEN
|
||||
complexity = 4
|
||||
inputs = list()
|
||||
outputs = list("volume used" = IC_PINTYPE_NUMBER,"self reference" = IC_PINTYPE_REF)
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
icon_state = "smoke"
|
||||
extended_desc = "This smoke generator creates clouds of smoke on command. It can also hold liquids inside, which will go \
|
||||
into the smoke clouds when activated. The reagents are consumed when smoke is made."
|
||||
atom_flags = OPENCONTAINER
|
||||
atom_flags = ATOM_REAGENTS_IS_OPEN
|
||||
complexity = 20
|
||||
cooldown_per_use = 30 SECONDS
|
||||
inputs = list()
|
||||
@@ -52,7 +52,7 @@
|
||||
icon_state = "injector"
|
||||
extended_desc = "This autoinjector can push reagents into another container or someone else outside of the machine. The target \
|
||||
must be adjacent to the machine, and if it is a person, they cannot be wearing thick clothing. A negative amount makes the injector draw out reagents."
|
||||
atom_flags = OPENCONTAINER
|
||||
atom_flags = ATOM_REAGENTS_IS_OPEN
|
||||
complexity = 20
|
||||
cooldown_per_use = 6 SECONDS
|
||||
inputs = list("target" = IC_PINTYPE_REF, "injection amount" = IC_PINTYPE_NUMBER)
|
||||
@@ -186,7 +186,7 @@
|
||||
extended_desc = "This is a pump, which will move liquids from the source ref to the target ref. The third pin determines \
|
||||
how much liquid is moved per pulse, between 0 and 50. The pump can move reagents to any open container inside the machine, or \
|
||||
outside the machine if it is next to the machine. Note that this cannot be used on entities."
|
||||
atom_flags = OPENCONTAINER
|
||||
atom_flags = ATOM_REAGENTS_IS_OPEN
|
||||
complexity = 8
|
||||
inputs = list("source" = IC_PINTYPE_REF, "target" = IC_PINTYPE_REF, "injection amount" = IC_PINTYPE_NUMBER)
|
||||
inputs_default = list("3" = 5)
|
||||
@@ -240,7 +240,7 @@
|
||||
desc = "Stores liquid inside, and away from electrical components. Can store up to 60u."
|
||||
icon_state = "reagent_storage"
|
||||
extended_desc = "This is effectively an internal beaker."
|
||||
atom_flags = OPENCONTAINER
|
||||
atom_flags = ATOM_REAGENTS_IS_OPEN
|
||||
complexity = 4
|
||||
inputs = list()
|
||||
outputs = list("volume used" = IC_PINTYPE_NUMBER,"self reference" = IC_PINTYPE_REF)
|
||||
@@ -264,7 +264,7 @@
|
||||
desc = "Stores liquid inside, and away from electrical components. Can store up to 60u. This will also suppress reactions."
|
||||
icon_state = "reagent_storage_cryo"
|
||||
extended_desc = "This is effectively an internal cryo beaker."
|
||||
atom_flags = OPENCONTAINER | NOREACT
|
||||
atom_flags = ATOM_REAGENTS_IS_OPEN | ATOM_REAGENTS_SKIP_REACTIONS
|
||||
complexity = 8
|
||||
spawn_flags = IC_SPAWN_RESEARCH
|
||||
origin_tech = list(TECH_MATERIAL = 4, TECH_ENGINEERING = 2, TECH_DATA = 2, TECH_BIO = 2)
|
||||
@@ -274,7 +274,7 @@
|
||||
desc = "Stores liquid inside, and away from electrical components. Can store up to 180u."
|
||||
icon_state = "reagent_storage_big"
|
||||
extended_desc = "This is effectively an internal beaker."
|
||||
atom_flags = OPENCONTAINER
|
||||
atom_flags = ATOM_REAGENTS_IS_OPEN
|
||||
complexity = 16
|
||||
volume = 180
|
||||
spawn_flags = IC_SPAWN_RESEARCH
|
||||
@@ -285,7 +285,7 @@
|
||||
desc = "Stores liquid inside, and away from electrical components. Can store up to 60u. On pulse this beaker will send list of contained reagents."
|
||||
icon_state = "reagent_scan"
|
||||
extended_desc = "Mostly useful for reagent filter."
|
||||
atom_flags = OPENCONTAINER
|
||||
atom_flags = ATOM_REAGENTS_IS_OPEN
|
||||
complexity = 8
|
||||
outputs = list("volume used" = IC_PINTYPE_NUMBER,"self reference" = IC_PINTYPE_REF,"list of reagents" = IC_PINTYPE_LIST)
|
||||
activators = list("scan" = IC_PINTYPE_PULSE_IN)
|
||||
@@ -308,7 +308,7 @@
|
||||
It will move all reagents, except list, given in fourth pin if amount value is positive.\
|
||||
Or it will move only desired reagents if amount is negative, The third pin determines \
|
||||
how much reagent is moved per pulse, between 0 and 50. Amount is given for each separate reagent."
|
||||
atom_flags = OPENCONTAINER
|
||||
atom_flags = ATOM_REAGENTS_IS_OPEN
|
||||
complexity = 8
|
||||
inputs = list("source" = IC_PINTYPE_REF, "target" = IC_PINTYPE_REF, "injection amount" = IC_PINTYPE_NUMBER, "list of reagents" = IC_PINTYPE_LIST)
|
||||
inputs_default = list("3" = 5)
|
||||
|
||||
@@ -174,7 +174,7 @@ Book Cart End
|
||||
item_state = "book"
|
||||
throw_speed = 1
|
||||
throw_range = 5
|
||||
atom_flags = NOCONDUCT
|
||||
atom_flags = ATOM_IS_INSULATED
|
||||
w_class = ITEMSIZE_NORMAL //upped to three because books are, y'know, pretty big. (and you could hide them inside eachother recursively forever)
|
||||
attack_verb = list("bashed", "whacked", "educated")
|
||||
var/dat // Actual page content
|
||||
|
||||
@@ -109,7 +109,7 @@ var/global/list/name_to_material
|
||||
var/explosion_resistance = 5 // Only used by walls currently.
|
||||
var/negation = 0 // Objects that respect this will randomly absorb impacts with this var as the percent chance.
|
||||
var/spatial_instability = 0 // Objects that have trouble staying in the same physical space by sheer laws of nature have this. Percent for respecting items to cause teleportation.
|
||||
var/conductive = 1 // Objects without this var add NOCONDUCT to flags on spawn.
|
||||
var/conductive = 1 // Objects without this var add ATOM_IS_INSULATED to flags on spawn.
|
||||
var/conductivity = null // How conductive the material is. Iron acts as the baseline, at 10.
|
||||
var/list/composite_material // If set, object matter var will be a list containing these values.
|
||||
var/luminescence
|
||||
@@ -284,4 +284,4 @@ var/global/list/name_to_material
|
||||
)
|
||||
|
||||
/datum/material/proc/get_wall_texture()
|
||||
return
|
||||
return
|
||||
|
||||
@@ -41,7 +41,7 @@
|
||||
color = material.icon_colour
|
||||
|
||||
if(!material.conductive)
|
||||
atom_flags |= NOCONDUCT
|
||||
atom_flags |= ATOM_IS_INSULATED
|
||||
|
||||
matter = material.get_matter()
|
||||
update_strings()
|
||||
|
||||
@@ -415,7 +415,7 @@
|
||||
return 1
|
||||
|
||||
for(var/obj/O in B)
|
||||
if(O.density && !istype(O, /obj/machinery/door) && !(O.atom_flags & ON_BORDER))
|
||||
if(O.density && !istype(O, /obj/machinery/door) && !(O.atom_flags & ATOM_HAS_TRANSITION_PRIORITY))
|
||||
return 1
|
||||
|
||||
return 0
|
||||
|
||||
@@ -268,7 +268,7 @@
|
||||
// Things that prevent objects standing on them from falling into turf below
|
||||
/obj/structure/catwalk/CanFallThru(atom/movable/mover as mob|obj, turf/target as turf)
|
||||
if((target.z < z) && !hatch_open)
|
||||
return FALSE // TODO - Technically should be density = 1 and flags |= ON_BORDER
|
||||
return FALSE // TODO - Technically should be density = 1 and flags |= ATOM_HAS_TRANSITION_PRIORITY
|
||||
if(!isturf(mover.loc))
|
||||
return FALSE // Only let loose floor items fall. No more snatching things off people's hands.
|
||||
else
|
||||
@@ -297,7 +297,7 @@
|
||||
if(!isturf(mover.loc))
|
||||
return FALSE // Only let loose floor items fall. No more snatching things off people's hands.
|
||||
else
|
||||
return FALSE // TODO - Technically should be density = 1 and flags |= ON_BORDER
|
||||
return FALSE // TODO - Technically should be density = 1 and flags |= ATOM_HAS_TRANSITION_PRIORITY
|
||||
|
||||
// So you'll slam when falling onto a grille
|
||||
/obj/structure/lattice/CheckFall(var/atom/movable/falling_atom)
|
||||
@@ -357,14 +357,14 @@
|
||||
|
||||
// Called on everything that falling_atom might hit. Return TRUE if you're handling it so find_fall_target() will stop checking.
|
||||
/atom/proc/CheckFall(var/atom/movable/falling_atom)
|
||||
if(density && !(atom_flags & ON_BORDER))
|
||||
if(density && !(atom_flags & ATOM_HAS_TRANSITION_PRIORITY))
|
||||
return TRUE
|
||||
|
||||
// If you are hit: how is it handled.
|
||||
// Return TRUE if the generic fall_impact should be called
|
||||
// Return FALSE if you handled it yourself or if there's no effect from hitting you
|
||||
/atom/proc/check_impact(var/atom/movable/falling_atom)
|
||||
if(density && !(atom_flags & ON_BORDER))
|
||||
if(density && !(atom_flags & ATOM_HAS_TRANSITION_PRIORITY))
|
||||
return TRUE
|
||||
|
||||
// By default all turfs are gonna let you hit them regardless of density.
|
||||
|
||||
@@ -181,7 +181,7 @@ GLOBAL_LIST_BOILERPLATE(all_brain_organs, /obj/item/organ/internal/brain)
|
||||
decays = FALSE
|
||||
parent_organ = BP_TORSO
|
||||
clone_source = TRUE
|
||||
atom_flags = OPENCONTAINER
|
||||
atom_flags = ATOM_REAGENTS_IS_OPEN
|
||||
var/list/owner_flavor_text = list()
|
||||
|
||||
/obj/item/organ/internal/brain/slime/is_open_container()
|
||||
|
||||
@@ -84,7 +84,7 @@
|
||||
/obj/effect/shuttle_landmark/ship
|
||||
name = "Open Space"
|
||||
landmark_tag = "ship"
|
||||
atom_flags = SLANDMARK_FLAG_ZERO_G // *Not* AUTOSET, these must be world.turf and world.area for lazy loading to work.
|
||||
atom_flags = LANDMARK_REMOVES_GRAVITY // *Not* AUTOSET, these must be world.turf and world.area for lazy loading to work.
|
||||
var/shuttle_name
|
||||
var/list/visitors // landmark -> visiting shuttle stationed there
|
||||
|
||||
@@ -117,7 +117,7 @@
|
||||
//
|
||||
|
||||
/obj/effect/shuttle_landmark/visiting_shuttle
|
||||
atom_flags = SLANDMARK_FLAG_AUTOSET | SLANDMARK_FLAG_ZERO_G
|
||||
atom_flags = LANDMARK_CREATES_SAFE_SITE | LANDMARK_REMOVES_GRAVITY
|
||||
var/obj/effect/shuttle_landmark/ship/core_landmark
|
||||
|
||||
/obj/effect/shuttle_landmark/visiting_shuttle/Initialize(mapload, obj/effect/shuttle_landmark/ship/master, _name)
|
||||
|
||||
@@ -116,7 +116,7 @@
|
||||
*/
|
||||
|
||||
/obj/item/pen/reagent
|
||||
atom_flags = OPENCONTAINER
|
||||
atom_flags = ATOM_REAGENTS_IS_OPEN
|
||||
origin_tech = list(TECH_MATERIAL = 2, TECH_ILLEGAL = 5)
|
||||
|
||||
/obj/item/pen/reagent/Initialize()
|
||||
|
||||
@@ -231,7 +231,7 @@ var/global/list/possible_cable_coil_colours = list(
|
||||
shock(user, 5, 0.2)
|
||||
|
||||
else
|
||||
if(!(W.atom_flags & NOCONDUCT))
|
||||
if(!(W.atom_flags & ATOM_IS_INSULATED))
|
||||
shock(user, 50, 0.7)
|
||||
|
||||
src.add_fingerprint(user)
|
||||
|
||||
@@ -550,7 +550,7 @@ var/global/list/light_type_cache = list()
|
||||
if(M == user)
|
||||
continue
|
||||
M.show_message("[user.name] smashed the light!", 3, "You hear a tinkle of breaking glass", 2)
|
||||
if(on && !(W.atom_flags & NOCONDUCT))
|
||||
if(on && !(W.atom_flags & ATOM_IS_INSULATED))
|
||||
//if(!user.mutations & COLD_RESISTANCE)
|
||||
if (prob(12))
|
||||
electrocute_mob(user, get_area(src), src, 0.3)
|
||||
@@ -570,7 +570,7 @@ var/global/list/light_type_cache = list()
|
||||
return
|
||||
|
||||
to_chat(user, "You stick \the [W] into the light socket!")
|
||||
if(has_power() && !(W.atom_flags & NOCONDUCT))
|
||||
if(has_power() && !(W.atom_flags & ATOM_IS_INSULATED))
|
||||
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
|
||||
s.set_up(3, 1, src)
|
||||
s.start()
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/datum/reagents/distilling/handle_reactions()
|
||||
if(QDELETED(my_atom))
|
||||
return FALSE
|
||||
if(my_atom.atom_flags & NOREACT)
|
||||
if(my_atom.atom_flags & ATOM_REAGENTS_SKIP_REACTIONS)
|
||||
return FALSE
|
||||
var/reaction_occurred
|
||||
var/list/eligible_reactions = list()
|
||||
|
||||
@@ -78,7 +78,7 @@
|
||||
/datum/reagents/proc/handle_reactions()
|
||||
if(QDELETED(my_atom))
|
||||
return FALSE
|
||||
if(my_atom.atom_flags & NOREACT)
|
||||
if(my_atom.atom_flags & ATOM_REAGENTS_SKIP_REACTIONS)
|
||||
return FALSE
|
||||
var/reaction_occurred
|
||||
var/list/eligible_reactions = list()
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
var/pillsprite = 1
|
||||
var/max_pill_count = 20
|
||||
var/printing = FALSE
|
||||
atom_flags = OPENCONTAINER
|
||||
atom_flags = ATOM_REAGENTS_IS_OPEN
|
||||
clicksound = "button"
|
||||
|
||||
/obj/machinery/chem_master/Initialize()
|
||||
|
||||
@@ -53,8 +53,8 @@
|
||||
to_chat(user, span("notice", "Contains [R.volume]u of <b>[R.name]</b>.<br>[R.description]<br>"))
|
||||
|
||||
// Last, unseal it if it's an autoinjector.
|
||||
if(istype(I,/obj/item/reagent_containers/hypospray/autoinjector/biginjector) && !(I.atom_flags & OPENCONTAINER))
|
||||
I.atom_flags |= OPENCONTAINER
|
||||
if(istype(I,/obj/item/reagent_containers/hypospray/autoinjector/biginjector) && !(I.atom_flags & ATOM_REAGENTS_IS_OPEN))
|
||||
I.atom_flags |= ATOM_REAGENTS_IS_OPEN
|
||||
to_chat(user, span("notice", "Sample container unsealed.<br>"))
|
||||
|
||||
to_chat(user, span("notice", "Scanning of \the [I] complete."))
|
||||
|
||||
@@ -55,10 +55,10 @@
|
||||
..()
|
||||
if (is_open_container())
|
||||
to_chat(usr, "<span class = 'notice'>You put the cap on \the [src].</span>")
|
||||
atom_flags ^= OPENCONTAINER
|
||||
atom_flags ^= ATOM_REAGENTS_IS_OPEN
|
||||
else
|
||||
to_chat(usr, "<span class = 'notice'>You take the cap off \the [src].</span>")
|
||||
atom_flags |= OPENCONTAINER
|
||||
atom_flags |= ATOM_REAGENTS_IS_OPEN
|
||||
|
||||
/obj/item/reagent_containers/chem_disp_cartridge/afterattack(obj/target, mob/user , flag)
|
||||
if (!is_open_container() || !flag)
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
possible_transfer_amounts = list(5,10,15,25,30,60)
|
||||
volume = 60
|
||||
w_class = ITEMSIZE_SMALL
|
||||
atom_flags = OPENCONTAINER | NOCONDUCT
|
||||
atom_flags = ATOM_REAGENTS_IS_OPEN | ATOM_IS_INSULATED
|
||||
unacidable = 1 //glass doesn't dissolve in acid
|
||||
drop_sound = 'sound/items/drop/bottle.ogg'
|
||||
pickup_sound = 'sound/items/pickup/bottle.ogg'
|
||||
@@ -74,10 +74,10 @@
|
||||
..()
|
||||
if(is_open_container())
|
||||
to_chat(usr, "<span class = 'notice'>You put the lid on \the [src].</span>")
|
||||
atom_flags ^= OPENCONTAINER
|
||||
atom_flags ^= ATOM_REAGENTS_IS_OPEN
|
||||
else
|
||||
to_chat(usr, "<span class = 'notice'>You take the lid off \the [src].</span>")
|
||||
atom_flags |= OPENCONTAINER
|
||||
atom_flags |= ATOM_REAGENTS_IS_OPEN
|
||||
update_icon()
|
||||
|
||||
/obj/item/reagent_containers/glass/attack(mob/M as mob, mob/user as mob, def_zone)
|
||||
@@ -134,7 +134,7 @@
|
||||
update_name_label()
|
||||
if(istype(W,/obj/item/storage/bag))
|
||||
..()
|
||||
if(W && W.w_class <= w_class && (atom_flags & OPENCONTAINER) && user.a_intent != I_HELP)
|
||||
if(W && W.w_class <= w_class && (atom_flags & ATOM_REAGENTS_IS_OPEN) && user.a_intent != I_HELP)
|
||||
to_chat(user, "<span class='notice'>You dip \the [W] into \the [src].</span>")
|
||||
reagents.touch_obj(W, reagents.total_volume)
|
||||
|
||||
@@ -209,7 +209,7 @@
|
||||
volume = 120
|
||||
amount_per_transfer_from_this = 10
|
||||
possible_transfer_amounts = list(5,10,15,25,30,60,120)
|
||||
atom_flags = OPENCONTAINER
|
||||
atom_flags = ATOM_REAGENTS_IS_OPEN
|
||||
|
||||
/obj/item/reagent_containers/glass/beaker/noreact
|
||||
name = "cryostasis beaker"
|
||||
@@ -219,7 +219,7 @@
|
||||
matter = list("glass" = 500)
|
||||
volume = 60
|
||||
amount_per_transfer_from_this = 10
|
||||
atom_flags = OPENCONTAINER | NOREACT
|
||||
atom_flags = ATOM_REAGENTS_IS_OPEN | ATOM_REAGENTS_SKIP_REACTIONS
|
||||
|
||||
/obj/item/reagent_containers/glass/beaker/bluespace
|
||||
name = "bluespace beaker"
|
||||
@@ -230,7 +230,7 @@
|
||||
volume = 300
|
||||
amount_per_transfer_from_this = 10
|
||||
possible_transfer_amounts = list(5,10,15,25,30,60,120,300)
|
||||
atom_flags = OPENCONTAINER
|
||||
atom_flags = ATOM_REAGENTS_IS_OPEN
|
||||
|
||||
/obj/item/reagent_containers/glass/beaker/vial
|
||||
name = "vial"
|
||||
@@ -242,7 +242,7 @@
|
||||
w_class = ITEMSIZE_TINY
|
||||
amount_per_transfer_from_this = 10
|
||||
possible_transfer_amounts = list(5,10,15,30)
|
||||
atom_flags = OPENCONTAINER
|
||||
atom_flags = ATOM_REAGENTS_IS_OPEN
|
||||
|
||||
/obj/item/reagent_containers/glass/beaker/cryoxadone
|
||||
name = "beaker (cryoxadone)"
|
||||
@@ -259,7 +259,7 @@
|
||||
volume = 120
|
||||
amount_per_transfer_from_this = 10
|
||||
possible_transfer_amounts = list(5,10,15,25,30,60,120)
|
||||
atom_flags = OPENCONTAINER
|
||||
atom_flags = ATOM_REAGENTS_IS_OPEN
|
||||
|
||||
/obj/item/reagent_containers/glass/bucket
|
||||
desc = "It's a bucket."
|
||||
@@ -273,7 +273,7 @@
|
||||
amount_per_transfer_from_this = 20
|
||||
possible_transfer_amounts = list(10,20,30,60,120)
|
||||
volume = 120
|
||||
atom_flags = OPENCONTAINER
|
||||
atom_flags = ATOM_REAGENTS_IS_OPEN
|
||||
unacidable = 0
|
||||
drop_sound = 'sound/items/drop/helm.ogg'
|
||||
pickup_sound = 'sound/items/pickup/helm.ogg'
|
||||
@@ -331,7 +331,7 @@
|
||||
amount_per_transfer_from_this = 20
|
||||
possible_transfer_amounts = list(10,20,30,60,120)
|
||||
volume = 120
|
||||
atom_flags = OPENCONTAINER
|
||||
atom_flags = ATOM_REAGENTS_IS_OPEN
|
||||
unacidable = 0
|
||||
drop_sound = 'sound/items/drop/wooden.ogg'
|
||||
pickup_sound = 'sound/items/pickup/wooden.ogg'
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
unacidable = 1
|
||||
volume = 30
|
||||
possible_transfer_amounts = null
|
||||
atom_flags = OPENCONTAINER
|
||||
atom_flags = ATOM_REAGENTS_IS_OPEN
|
||||
slot_flags = SLOT_BELT
|
||||
drop_sound = 'sound/items/drop/gun.ogg'
|
||||
pickup_sound = 'sound/items/pickup/gun.ogg'
|
||||
@@ -115,7 +115,7 @@
|
||||
if(!do_after(user,30) || loaded_vial || !(W in user))
|
||||
return 0
|
||||
if(W.is_open_container())
|
||||
W.atom_flags ^= OPENCONTAINER
|
||||
W.atom_flags ^= ATOM_REAGENTS_IS_OPEN
|
||||
W.update_icon()
|
||||
user.drop_item()
|
||||
W.loc = src
|
||||
@@ -152,13 +152,13 @@
|
||||
|
||||
/obj/item/reagent_containers/hypospray/autoinjector/used/Initialize()
|
||||
. = ..()
|
||||
atom_flags &= ~OPENCONTAINER
|
||||
atom_flags &= ~ATOM_REAGENTS_IS_OPEN
|
||||
icon_state = "[initial(icon_state)]0"
|
||||
|
||||
/obj/item/reagent_containers/hypospray/autoinjector/do_injection(mob/living/carbon/human/H, mob/living/user)
|
||||
. = ..()
|
||||
if(.) // Will occur if successfully injected.
|
||||
atom_flags &= ~OPENCONTAINER
|
||||
atom_flags &= ~ATOM_REAGENTS_IS_OPEN
|
||||
update_icon()
|
||||
|
||||
/obj/item/reagent_containers/hypospray/autoinjector/update_icon()
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
icon_state = "cleaner"
|
||||
item_state = "cleaner"
|
||||
center_of_mass = list("x" = 16,"y" = 10)
|
||||
atom_flags = OPENCONTAINER
|
||||
atom_flags = ATOM_REAGENTS_IS_OPEN
|
||||
item_flags = NOBLUDGEON
|
||||
matter = list("glass" = 300, MAT_STEEL = 300)
|
||||
slot_flags = SLOT_BELT
|
||||
|
||||
@@ -7,7 +7,7 @@ using metal and glass, it uses glass and reagents (usually sulphuric acid).
|
||||
/obj/machinery/r_n_d/circuit_imprinter
|
||||
name = "Circuit Imprinter"
|
||||
icon_state = "circuit_imprinter"
|
||||
atom_flags = OPENCONTAINER
|
||||
atom_flags = ATOM_REAGENTS_IS_OPEN
|
||||
circuit = /obj/item/circuitboard/circuit_imprinter
|
||||
var/list/datum/design/queue = list()
|
||||
var/progress = 0
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/obj/machinery/r_n_d/protolathe
|
||||
name = "Protolathe"
|
||||
icon_state = "protolathe"
|
||||
atom_flags = OPENCONTAINER
|
||||
atom_flags = ATOM_REAGENTS_IS_OPEN
|
||||
circuit = /obj/item/circuitboard/protolathe
|
||||
use_power = USE_POWER_IDLE
|
||||
idle_power_usage = 30
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
unacidable = 1
|
||||
simulated = 0
|
||||
invisibility = 101
|
||||
atom_flags = SLANDMARK_FLAG_AUTOSET // We generally want to use current area/turf as base.
|
||||
atom_flags = LANDMARK_CREATES_SAFE_SITE // We generally want to use current area/turf as base.
|
||||
|
||||
//ID of the landmark
|
||||
var/landmark_tag
|
||||
@@ -30,7 +30,7 @@
|
||||
. = INITIALIZE_HINT_LATELOAD
|
||||
|
||||
// Even if this flag is set, hardcoded values take precedence.
|
||||
if(atom_flags & SLANDMARK_FLAG_AUTOSET)
|
||||
if(atom_flags & LANDMARK_CREATES_SAFE_SITE)
|
||||
if(ispath(base_area))
|
||||
var/area/A = locate(base_area)
|
||||
if(!istype(A))
|
||||
@@ -123,7 +123,7 @@
|
||||
/obj/effect/shuttle_landmark/automatic
|
||||
name = "Navpoint"
|
||||
landmark_tag = "navpoint"
|
||||
atom_flags = SLANDMARK_FLAG_AUTOSET
|
||||
atom_flags = LANDMARK_CREATES_SAFE_SITE
|
||||
|
||||
/obj/effect/shuttle_landmark/automatic/Initialize()
|
||||
landmark_tag += "-[x]-[y]-[z]-[random_id("landmarks",1,9999)]"
|
||||
|
||||
@@ -290,7 +290,7 @@
|
||||
// If shuttle has no internal gravity, update our gravity with destination gravity
|
||||
if((flags & SHUTTLE_FLAGS_ZERO_G))
|
||||
var/new_grav = 1
|
||||
if(destination.atom_flags & SLANDMARK_FLAG_ZERO_G)
|
||||
if(destination.atom_flags & LANDMARK_REMOVES_GRAVITY)
|
||||
var/area/new_area = get_area(destination)
|
||||
new_grav = new_area.has_gravity
|
||||
for(var/area/our_area in shuttle_area)
|
||||
|
||||
@@ -215,4 +215,4 @@
|
||||
return //do nothing for now
|
||||
|
||||
/obj/effect/shuttle_landmark/transit
|
||||
atom_flags = SLANDMARK_FLAG_ZERO_G|SLANDMARK_FLAG_AUTOSET
|
||||
atom_flags = LANDMARK_REMOVES_GRAVITY|LANDMARK_CREATES_SAFE_SITE
|
||||
|
||||
@@ -88,7 +88,7 @@
|
||||
layer = ABOVE_MOB_LAYER
|
||||
climbable = 0 //flipping tables allows them to be used as makeshift barriers
|
||||
flipped = 1
|
||||
atom_flags |= ON_BORDER
|
||||
atom_flags |= ATOM_HAS_TRANSITION_PRIORITY
|
||||
for(var/D in list(turn(direction, 90), turn(direction, -90)))
|
||||
var/obj/structure/table/T = locate() in get_step(src,D)
|
||||
if(T && T.flipped == 0 && material && T.material && T.material.name == material.name)
|
||||
@@ -106,7 +106,7 @@
|
||||
reset_plane_and_layer()
|
||||
flipped = 0
|
||||
climbable = initial(climbable)
|
||||
atom_flags &= ~ON_BORDER
|
||||
atom_flags &= ~ATOM_HAS_TRANSITION_PRIORITY
|
||||
for(var/D in list(turn(dir, 90), turn(dir, -90)))
|
||||
var/obj/structure/table/T = locate() in get_step(src.loc,D)
|
||||
if(T && T.flipped == 1 && T.dir == src.dir && material && T.material&& T.material.name == material.name)
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
origin_tech = list(TECH_BIO = 4)
|
||||
var/uses = 1 // uses before it goes inert
|
||||
var/enhanced = FALSE
|
||||
atom_flags = OPENCONTAINER
|
||||
atom_flags = ATOM_REAGENTS_IS_OPEN
|
||||
|
||||
|
||||
/obj/item/slime_extract/Initialize()
|
||||
|
||||
@@ -316,7 +316,7 @@
|
||||
} \
|
||||
/obj/effect/shuttle_landmark/cynosure/escape_pod##NUMBER/transit { \
|
||||
landmark_tag = "escape_pod_"+ #NUMBER +"_transit"; \
|
||||
atom_flags = SLANDMARK_FLAG_AUTOSET; \
|
||||
atom_flags = LANDMARK_CREATES_SAFE_SITE; \
|
||||
}
|
||||
|
||||
ESCAPE_POD(1)
|
||||
@@ -349,7 +349,7 @@ ESCAPE_POD(1)
|
||||
|
||||
/obj/effect/shuttle_landmark/cynosure/large_escape_pod1/transit
|
||||
landmark_tag = "large_escape_pod1_transit"
|
||||
atom_flags = SLANDMARK_FLAG_AUTOSET
|
||||
atom_flags = LANDMARK_CREATES_SAFE_SITE
|
||||
|
||||
// Large Escape Pod 2
|
||||
/datum/shuttle/autodock/ferry/escape_pod/large_escape_pod2
|
||||
@@ -377,7 +377,7 @@ ESCAPE_POD(1)
|
||||
|
||||
/obj/effect/shuttle_landmark/cynosure/large_escape_pod2/transit
|
||||
landmark_tag = "large_escape_pod2_transit"
|
||||
atom_flags = SLANDMARK_FLAG_AUTOSET
|
||||
atom_flags = LANDMARK_CREATES_SAFE_SITE
|
||||
|
||||
//Cynosure Station Docks
|
||||
|
||||
|
||||
@@ -234,7 +234,7 @@
|
||||
} \
|
||||
/obj/effect/shuttle_landmark/southern_cross/escape_pod##NUMBER/transit { \
|
||||
landmark_tag = "escape_pod_"+ #NUMBER +"_transit"; \
|
||||
flags = SLANDMARK_FLAG_AUTOSET; \
|
||||
flags = LANDMARK_CREATES_SAFE_SITE; \
|
||||
}
|
||||
|
||||
ESCAPE_POD(1)
|
||||
@@ -274,7 +274,7 @@ ESCAPE_POD(8)
|
||||
|
||||
/obj/effect/shuttle_landmark/southern_cross/cryostorage_transit
|
||||
landmark_tag = "cryostorage_transit"
|
||||
flags = SLANDMARK_FLAG_AUTOSET
|
||||
flags = LANDMARK_CREATES_SAFE_SITE
|
||||
|
||||
// Large Escape Pod 1
|
||||
/datum/shuttle/autodock/ferry/escape_pod/large_escape_pod1
|
||||
@@ -302,7 +302,7 @@ ESCAPE_POD(8)
|
||||
|
||||
/obj/effect/shuttle_landmark/southern_cross/large_escape_pod1/transit
|
||||
landmark_tag = "large_escape_pod1_transit"
|
||||
flags = SLANDMARK_FLAG_AUTOSET
|
||||
flags = LANDMARK_CREATES_SAFE_SITE
|
||||
|
||||
// Large Escape Pod 2
|
||||
/datum/shuttle/autodock/ferry/escape_pod/large_escape_pod2
|
||||
@@ -330,7 +330,7 @@ ESCAPE_POD(8)
|
||||
|
||||
/obj/effect/shuttle_landmark/southern_cross/large_escape_pod2/transit
|
||||
landmark_tag = "large_escape_pod2_transit"
|
||||
flags = SLANDMARK_FLAG_AUTOSET
|
||||
flags = LANDMARK_CREATES_SAFE_SITE
|
||||
|
||||
|
||||
// Destination datums
|
||||
@@ -367,5 +367,3 @@ ESCAPE_POD(8)
|
||||
|
||||
|
||||
// Heist shuttle
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user