mirror of
https://github.com/PolarisSS13/Polaris.git
synced 2026-08-30 16:47:34 +01:00
Merge pull request #8762 from Spookerton/spkrtn/sys/flagging
violently rearranges some flags and instance vars
This commit is contained in:
@@ -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"
|
||||
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
|
||||
|
||||
@@ -103,6 +103,6 @@
|
||||
#ifdef CARDINAL_INPUT_ONLY
|
||||
|
||||
/// Movement dir of the most recently pressed movement key. Used in cardinal-only movement mode.
|
||||
var/last_move_dir_pressed = NONE
|
||||
var/last_move_dir_pressed = EMPTY_BITFIELD
|
||||
|
||||
#endif
|
||||
#endif
|
||||
|
||||
@@ -356,7 +356,7 @@
|
||||
H.drop_from_inventory(ring) //Remove the ring (or other under-glove item in the hand slot?) so you can put on the gloves.
|
||||
ring.forceMove(src)
|
||||
to_chat(user, "You slip \the [src] on over \the [src.ring].")
|
||||
if(!(flags & THICKMATERIAL))
|
||||
if(!(item_flags & THICKMATERIAL))
|
||||
punch_force += ring.punch_force
|
||||
else
|
||||
ring = null
|
||||
|
||||
@@ -169,7 +169,7 @@ BLIND // can't see anything
|
||||
/obj/item/clothing/glasses/night/vox
|
||||
name = "Alien Optics"
|
||||
species_restricted = list("Vox")
|
||||
flags = PHORONGUARD
|
||||
item_flags = PHORONGUARD
|
||||
|
||||
/obj/item/clothing/glasses/night/Initialize()
|
||||
. = ..()
|
||||
@@ -542,7 +542,7 @@ BLIND // can't see anything
|
||||
item_state_slots = list(slot_r_hand_str = "sunglasses", slot_l_hand_str = "sunglasses")
|
||||
toggleable = 1
|
||||
action_button_name = "Toggle Monocle"
|
||||
flags = null //doesn't protect eyes because it's a monocle, duh
|
||||
atom_flags = EMPTY_BITFIELD
|
||||
|
||||
body_parts_covered = 0
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/obj/item/clothing/glasses/hud
|
||||
name = "HUD"
|
||||
desc = "A heads-up display that provides important info in (almost) real time."
|
||||
flags = 0 //doesn't protect eyes because it's a monocle, duh
|
||||
atom_flags = EMPTY_BITFIELD //doesn't protect eyes because it's a monocle, duh
|
||||
origin_tech = list(TECH_MAGNET = 3, TECH_BIO = 2)
|
||||
|
||||
/obj/item/clothing/glasses/hud/health
|
||||
|
||||
@@ -109,7 +109,7 @@
|
||||
name = "insulated gauntlets"
|
||||
icon_state = "gloves-vox"
|
||||
item_state = "gloves-vox"
|
||||
flags = PHORONGUARD
|
||||
item_flags = PHORONGUARD
|
||||
siemens_coefficient = 0
|
||||
permeability_coefficient = 0.05
|
||||
species_restricted = list("Vox")
|
||||
@@ -127,7 +127,7 @@
|
||||
icon_state = "knuckledusters"
|
||||
matter = list(MAT_STEEL = 500)
|
||||
attack_verb = list("punched", "beaten", "struck")
|
||||
flags = THICKMATERIAL // Stops rings from increasing hit strength
|
||||
item_flags = THICKMATERIAL // Stops rings from increasing hit strength
|
||||
siemens_coefficient = 1
|
||||
fingerprint_chance = 100
|
||||
overgloves = 1
|
||||
@@ -166,4 +166,4 @@
|
||||
glovecolor = "orange"
|
||||
|
||||
/obj/item/clothing/gloves/ranger/yellow
|
||||
glovecolor = "yellow"
|
||||
glovecolor = "yellow"
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
icon_state = "helmet"
|
||||
valid_accessory_slots = (ACCESSORY_SLOT_HELM_C)
|
||||
restricted_accessory_slots = (ACCESSORY_SLOT_HELM_C)
|
||||
flags = THICKMATERIAL
|
||||
item_flags = THICKMATERIAL
|
||||
armor = list(melee = 40, bullet = 30, laser = 30, energy = 10, bomb = 10, bio = 0, rad = 0)
|
||||
flags_inv = HIDEEARS|BLOCKHEADHAIR
|
||||
cold_protection = HEAD
|
||||
@@ -127,7 +127,7 @@
|
||||
name = "explorer hood"
|
||||
desc = "An armoured hood for exploring harsh environments."
|
||||
icon_state = "explorer"
|
||||
flags = THICKMATERIAL
|
||||
item_flags = THICKMATERIAL
|
||||
min_cold_protection_temperature = SPACE_SUIT_MIN_COLD_PROTECTION_TEMPERATURE
|
||||
siemens_coefficient = 0.9
|
||||
armor = list(melee = 30, bullet = 20, laser = 20, energy = 20, bomb = 35, bio = 75, rad = 35)
|
||||
@@ -267,4 +267,3 @@
|
||||
name = "emergency response team medical helmet"
|
||||
desc = "A set of armor worn by medical members of the NanoTrasen Emergency Response Team. Has red and white highlights."
|
||||
icon_state = "erthelmet_med"
|
||||
|
||||
|
||||
@@ -188,7 +188,7 @@
|
||||
name = "explorer hood"
|
||||
desc = "An armoured hood for exploring harsh environments."
|
||||
icon_state = "explorer"
|
||||
flags = THICKMATERIAL
|
||||
item_flags = THICKMATERIAL
|
||||
min_cold_protection_temperature = SPACE_SUIT_MIN_COLD_PROTECTION_TEMPERATURE
|
||||
siemens_coefficient = 0.9
|
||||
armor = list(melee = 30, bullet = 20, laser = 20, energy = 20, bomb = 35, bio = 75, rad = 35)
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
sprite_sheets = list(
|
||||
SPECIES_TESHARI = 'icons/mob/species/teshari/pilot_helmet.dmi'
|
||||
)
|
||||
flags = THICKMATERIAL
|
||||
item_flags = THICKMATERIAL
|
||||
armor = list(melee = 20, bullet = 10, laser = 10, energy = 5, bomb = 10, bio = 0, rad = 0)
|
||||
flags_inv = HIDEEARS
|
||||
cold_protection = HEAD
|
||||
@@ -198,4 +198,4 @@
|
||||
else
|
||||
src.icon_state = initial(icon_state)
|
||||
to_chat(user, "You lower the visor on the pilot helmet.")
|
||||
update_clothing_icon() //so our mob-overlays update
|
||||
update_clothing_icon() //so our mob-overlays update
|
||||
|
||||
@@ -85,8 +85,7 @@
|
||||
/obj/item/clothing/mask/gas/swat/vox
|
||||
name = "alien mask"
|
||||
desc = "Clearly not designed for a human face."
|
||||
flags = PHORONGUARD
|
||||
item_flags = BLOCK_GAS_SMOKE_EFFECT | AIRTIGHT
|
||||
item_flags = BLOCK_GAS_SMOKE_EFFECT | AIRTIGHT | PHORONGUARD
|
||||
species_restricted = list(SPECIES_VOX)
|
||||
filtered_gases = list("oxygen", "phoron", "nitrous_oxide")
|
||||
action_button_name = "Toggle Feeding Port"
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
//Reagent Rings
|
||||
|
||||
/obj/item/clothing/gloves/ring/reagent
|
||||
flags = OPENCONTAINER
|
||||
atom_flags = ATOM_REAGENTS_IS_OPEN
|
||||
origin_tech = list(TECH_MATERIAL = 2, TECH_ILLEGAL = 4)
|
||||
|
||||
/obj/item/clothing/gloves/ring/reagent/Initialize()
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
desc = "Magnetic boots, often used during extravehicular activity to ensure the user remains safely attached to the vehicle. They're large enough to be worn over other footwear."
|
||||
name = "magboots"
|
||||
icon_state = "magboots0"
|
||||
flags = PHORONGUARD
|
||||
item_flags = PHORONGUARD
|
||||
item_state_slots = list(slot_r_hand_str = "magboots", slot_l_hand_str = "magboots")
|
||||
species_restricted = null
|
||||
center_of_mass = list("x" = 17,"y" = 12)
|
||||
@@ -88,7 +88,7 @@
|
||||
name = "vox magclaws"
|
||||
item_state = "boots-vox"
|
||||
icon_state = "boots-vox"
|
||||
flags = PHORONGUARD
|
||||
item_flags = PHORONGUARD
|
||||
species_restricted = list(SPECIES_VOX)
|
||||
|
||||
action_button_name = "Toggle the magclaws"
|
||||
@@ -126,4 +126,4 @@
|
||||
/obj/item/clothing/shoes/magboots/vox/examine(mob/user)
|
||||
. = ..()
|
||||
if(magpulse)
|
||||
. += "It would be hard to take these off without relaxing your grip first." // Theoretically this message should only be seen by the wearer when the claws are equipped.
|
||||
. += "It would be hard to take these off without relaxing your grip first." // Theoretically this message should only be seen by the wearer when the claws are equipped.
|
||||
|
||||
@@ -31,8 +31,7 @@
|
||||
// Can't be equipped by any other species due to bone structure and vox cybernetics.
|
||||
/obj/item/clothing/suit/space/vox
|
||||
w_class = ITEMSIZE_NORMAL
|
||||
flags = PHORONGUARD
|
||||
item_flags = THICKMATERIAL
|
||||
item_flags = THICKMATERIAL | PHORONGUARD
|
||||
allowed = list(/obj/item/gun,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/melee/baton,/obj/item/melee/energy/sword,/obj/item/handcuffs,/obj/item/tank)
|
||||
armor = list(melee = 60, bullet = 50, laser = 40,energy = 15, bomb = 30, bio = 100, rad = 50)
|
||||
siemens_coefficient = 0.2
|
||||
@@ -43,8 +42,7 @@
|
||||
/obj/item/clothing/head/helmet/space/vox
|
||||
armor = list(melee = 60, bullet = 50, laser = 40, energy = 15, bomb = 30, bio = 100, rad = 50)
|
||||
siemens_coefficient = 0.2
|
||||
flags = PHORONGUARD
|
||||
item_flags = THICKMATERIAL | AIRTIGHT
|
||||
item_flags = THICKMATERIAL | AIRTIGHT | PHORONGUARD
|
||||
flags_inv = 0
|
||||
species_restricted = list(SPECIES_VOX)
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
name = "space helmet"
|
||||
icon_state = "capspace"
|
||||
desc = "A special helmet designed for work in a hazardous, low-pressure environment. Only for the most fashionable of military figureheads."
|
||||
item_flags = 0
|
||||
item_flags = EMPTY_BITFIELD
|
||||
flags_inv = HIDEFACE|BLOCKHAIR
|
||||
permeability_coefficient = 0.01
|
||||
armor = list(melee = 65, bullet = 50, laser = 50,energy = 25, bomb = 50, bio = 100, rad = 50)
|
||||
@@ -16,7 +16,7 @@
|
||||
w_class = ITEMSIZE_HUGE
|
||||
gas_transfer_coefficient = 0.01
|
||||
permeability_coefficient = 0.02
|
||||
item_flags = 0
|
||||
item_flags = EMPTY_BITFIELD
|
||||
body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS
|
||||
allowed = list(/obj/item/tank/emergency/oxygen, /obj/item/flashlight,/obj/item/gun/energy, /obj/item/gun/projectile, /obj/item/ammo_magazine, /obj/item/ammo_casing, /obj/item/melee/baton,/obj/item/handcuffs)
|
||||
slowdown = 1.5
|
||||
@@ -46,7 +46,7 @@
|
||||
icon_state = "beret_badge"
|
||||
item_state_slots = list(slot_r_hand_str = "beret", slot_l_hand_str = "beret")
|
||||
armor = list(melee = 65, bullet = 55, laser = 35,energy = 20, bomb = 30, bio = 30, rad = 30)
|
||||
item_flags = 0
|
||||
item_flags = EMPTY_BITFIELD
|
||||
flags_inv = BLOCKHAIR
|
||||
siemens_coefficient = 0.9
|
||||
|
||||
@@ -55,7 +55,7 @@
|
||||
name = "Santa's hat"
|
||||
desc = "Ho ho ho. Merrry X-mas!"
|
||||
icon_state = "santahat"
|
||||
item_flags = 0
|
||||
item_flags = EMPTY_BITFIELD
|
||||
flags_inv = BLOCKHAIR
|
||||
body_parts_covered = HEAD
|
||||
|
||||
@@ -64,7 +64,7 @@
|
||||
desc = "Festive!"
|
||||
icon_state = "santa"
|
||||
slowdown = 0
|
||||
item_flags = 0
|
||||
item_flags = EMPTY_BITFIELD
|
||||
allowed = list(/obj/item) //for stuffing exta special presents
|
||||
|
||||
//Space pirate outfit
|
||||
@@ -73,7 +73,7 @@
|
||||
desc = "Yarr."
|
||||
icon_state = "pirate"
|
||||
armor = list(melee = 60, bullet = 50, laser = 30,energy = 15, bomb = 30, bio = 30, rad = 30)
|
||||
item_flags = 0
|
||||
item_flags = EMPTY_BITFIELD
|
||||
flags_inv = BLOCKHAIR
|
||||
body_parts_covered = 0
|
||||
siemens_coefficient = 0.9
|
||||
@@ -115,4 +115,4 @@
|
||||
desc = "A high-dexterity spacesuit for the civilian extra-vehicular extreme sports market, for when zero-g sports in controlled environments are just too tame."
|
||||
description_fluff = "Ward-Takahashi zero-gravity performance sportswear does not require an EVA certification to purchase, though user manuals do list it as 'recommended' on condition of a 2550 lawsuit."
|
||||
icon_state = "sports_void"
|
||||
slowdown = 0
|
||||
slowdown = 0
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
name = "hardsuit control module"
|
||||
icon = 'icons/obj/rig_modules.dmi'
|
||||
desc = "A back-mounted hardsuit deployment and control mechanism."
|
||||
flags = PHORONGUARD
|
||||
item_flags = PHORONGUARD
|
||||
slot_flags = SLOT_BACK
|
||||
req_one_access = list()
|
||||
req_access = list()
|
||||
|
||||
@@ -23,8 +23,7 @@
|
||||
|
||||
/obj/item/clothing/gloves/gauntlets/rig
|
||||
name = "gauntlets"
|
||||
flags = PHORONGUARD
|
||||
item_flags = THICKMATERIAL
|
||||
item_flags = THICKMATERIAL | PHORONGUARD
|
||||
body_parts_covered = HANDS
|
||||
heat_protection = HANDS
|
||||
cold_protection = HANDS
|
||||
@@ -119,7 +118,7 @@
|
||||
body_parts_covered = HEAD|FACE|EYES
|
||||
heat_protection = HEAD|FACE|EYES
|
||||
cold_protection = HEAD|FACE|EYES
|
||||
flags = THICKMATERIAL|AIRTIGHT
|
||||
item_flags = THICKMATERIAL|AIRTIGHT
|
||||
species_restricted = null
|
||||
|
||||
/obj/item/clothing/suit/lightrig
|
||||
@@ -129,7 +128,7 @@
|
||||
heat_protection = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS
|
||||
cold_protection = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS
|
||||
flags_inv = HIDEJUMPSUIT
|
||||
flags = THICKMATERIAL
|
||||
item_flags = THICKMATERIAL
|
||||
species_restricted = null
|
||||
|
||||
/obj/item/clothing/shoes/lightrig
|
||||
@@ -142,7 +141,7 @@
|
||||
|
||||
/obj/item/clothing/gloves/gauntlets/lightrig
|
||||
name = "gloves"
|
||||
flags = THICKMATERIAL
|
||||
item_flags = THICKMATERIAL
|
||||
body_parts_covered = HANDS
|
||||
heat_protection = HANDS
|
||||
cold_protection = HANDS
|
||||
|
||||
@@ -47,8 +47,7 @@
|
||||
suit_type = "alien"
|
||||
icon_state = "vox_rig"
|
||||
armor = list(melee = 60, bullet = 50, laser = 40, energy = 15, bomb = 30, bio = 100, rad = 50)
|
||||
flags = PHORONGUARD
|
||||
item_flags = THICKMATERIAL
|
||||
item_flags = THICKMATERIAL | PHORONGUARD
|
||||
siemens_coefficient = 0.2
|
||||
offline_slowdown = 2.5
|
||||
allowed = list(
|
||||
@@ -123,4 +122,4 @@
|
||||
/obj/item/rig_module/vision,
|
||||
/obj/item/rig_module/power_sink,
|
||||
/obj/item/rig_module/self_destruct
|
||||
)
|
||||
)
|
||||
|
||||
@@ -80,7 +80,7 @@
|
||||
/obj/item/clothing/shoes/lightrig/hacker
|
||||
siemens_coefficient = 0.4
|
||||
step_volume_mod = 0.3 //Special sneaky cyber-soles, for infiltration.
|
||||
flags = NOSLIP //They're not magboots, so they're not super good for exterior hull walking, BUT for interior infiltration they'll do swell.
|
||||
item_flags = NOSLIP //They're not magboots, so they're not super good for exterior hull walking, BUT for interior infiltration they'll do swell.
|
||||
|
||||
/obj/item/clothing/gloves/gauntlets/rig/light/hacker
|
||||
siemens_coefficient = 0
|
||||
|
||||
@@ -8,8 +8,7 @@
|
||||
desc = "A special helmet designed for work in a hazardous, low-pressure environment."
|
||||
randpixel = 0
|
||||
center_of_mass = null
|
||||
flags = PHORONGUARD
|
||||
item_flags = THICKMATERIAL | AIRTIGHT | ALLOW_SURVIVALFOOD
|
||||
item_flags = THICKMATERIAL | AIRTIGHT | ALLOW_SURVIVALFOOD | PHORONGUARD
|
||||
permeability_coefficient = 0.01
|
||||
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 100, rad = 50)
|
||||
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|BLOCKHAIR
|
||||
@@ -72,8 +71,7 @@
|
||||
w_class = ITEMSIZE_HUGE // So you can't fit this in your bag and be prepared at all times.
|
||||
gas_transfer_coefficient = 0.01
|
||||
permeability_coefficient = 0.02
|
||||
flags = PHORONGUARD
|
||||
item_flags = THICKMATERIAL
|
||||
item_flags = THICKMATERIAL | PHORONGUARD
|
||||
body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS
|
||||
allowed = list(/obj/item/flashlight,/obj/item/tank/emergency/oxygen,/obj/item/suit_cooling_unit)
|
||||
slowdown = 1.5
|
||||
|
||||
@@ -543,7 +543,7 @@
|
||||
name = "explorer suit"
|
||||
desc = "A lightweight explorer plate carrier. It can be equipped with armor plates, but only protects from the cold on it's own."
|
||||
icon_state = "explorer"
|
||||
flags = THICKMATERIAL
|
||||
item_flags = THICKMATERIAL
|
||||
min_cold_protection_temperature = SPACE_SUIT_MIN_COLD_PROTECTION_TEMPERATURE
|
||||
cold_protection = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS
|
||||
|
||||
@@ -639,4 +639,4 @@
|
||||
starting_accessories = list(/obj/item/clothing/accessory/armor/armorplate/bulletproof, /obj/item/clothing/accessory/armor/armguards/bulletproof, /obj/item/clothing/accessory/armor/legguards/bulletproof, /obj/item/clothing/accessory/storage/pouches)
|
||||
|
||||
/obj/item/clothing/suit/armor/pcarrier/riot/full
|
||||
starting_accessories = list(/obj/item/clothing/accessory/armor/armorplate/riot, /obj/item/clothing/accessory/armor/armguards/riot, /obj/item/clothing/accessory/armor/legguards/riot, /obj/item/clothing/accessory/storage/pouches)
|
||||
starting_accessories = list(/obj/item/clothing/accessory/armor/armorplate/riot, /obj/item/clothing/accessory/armor/armguards/riot, /obj/item/clothing/accessory/armor/legguards/riot, /obj/item/clothing/accessory/storage/pouches)
|
||||
|
||||
@@ -10,8 +10,7 @@
|
||||
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|BLOCKHAIR
|
||||
body_parts_covered = HEAD|FACE|EYES
|
||||
siemens_coefficient = 0.9
|
||||
flags = PHORONGUARD
|
||||
item_flags = THICKMATERIAL | ALLOW_SURVIVALFOOD
|
||||
item_flags = THICKMATERIAL | ALLOW_SURVIVALFOOD | PHORONGUARD
|
||||
|
||||
/obj/item/clothing/suit/bio_suit
|
||||
name = "bio suit"
|
||||
@@ -26,8 +25,7 @@
|
||||
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 100, rad = 20)
|
||||
flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT|HIDETAIL|HIDETIE|HIDEHOLSTER
|
||||
siemens_coefficient = 0.9
|
||||
flags = PHORONGUARD
|
||||
item_flags = THICKMATERIAL
|
||||
item_flags = THICKMATERIAL | PHORONGUARD
|
||||
|
||||
//Standard biosuit, orange stripe
|
||||
/obj/item/clothing/head/bio_hood/general
|
||||
@@ -92,4 +90,4 @@
|
||||
desc = "It protected doctors from the Black Death, back then. You bet your arse it's gonna help you against viruses."
|
||||
icon_state = "plaguedoctor"
|
||||
item_state_slots = list(slot_r_hand_str = "bio", slot_l_hand_str = "bio")
|
||||
flags_inv = HIDEGLOVES|HIDEJUMPSUIT|HIDETAIL|HIDETIE|HIDEHOLSTER
|
||||
flags_inv = HIDEGLOVES|HIDEJUMPSUIT|HIDETAIL|HIDETIE|HIDEHOLSTER
|
||||
|
||||
@@ -381,7 +381,7 @@
|
||||
desc = "An armoured suit for exploring harsh environments."
|
||||
icon_state = "explorer"
|
||||
item_state = "explorer"
|
||||
flags = THICKMATERIAL
|
||||
item_flags = THICKMATERIAL
|
||||
body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS
|
||||
min_cold_protection_temperature = SPACE_SUIT_MIN_COLD_PROTECTION_TEMPERATURE
|
||||
cold_protection = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
allowed = list(/obj/item/flashlight,/obj/item/tank/emergency/oxygen,/obj/item/extinguisher)
|
||||
slowdown = 0.8 //Slightly better than a voidsuit
|
||||
flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT|HIDETAIL|HIDETIE|HIDEHOLSTER
|
||||
item_flags = 0
|
||||
item_flags = EMPTY_BITFIELD
|
||||
heat_protection = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS
|
||||
max_heat_protection_temperature = FIRESUIT_MAX_HEAT_PROTECTION_TEMPERATURE
|
||||
cold_protection = UPPER_TORSO | LOWER_TORSO | LEGS | FEET | ARMS | HANDS
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
has_sensor = 0
|
||||
species_restricted = list(SPECIES_VOX)
|
||||
starting_accessories = list(/obj/item/clothing/accessory/storage/vox) // Dont' start with a backback, so free webbing
|
||||
flags = PHORONGUARD
|
||||
item_flags = PHORONGUARD
|
||||
|
||||
/obj/item/clothing/under/vox/vox_utility
|
||||
name = "alien clothing"
|
||||
@@ -22,9 +22,7 @@
|
||||
name = "alien mesh"
|
||||
desc = "An alien mesh. Seems to be made up mostly of pockets and writhing flesh."
|
||||
icon_state = "webbing-vox"
|
||||
|
||||
flags = PHORONGUARD
|
||||
|
||||
item_flags = PHORONGUARD
|
||||
slots = 3
|
||||
|
||||
/obj/item/clothing/accessory/storage/vox/Initialize()
|
||||
|
||||
@@ -23,7 +23,8 @@
|
||||
possible_transfer_amounts = list(5)
|
||||
volume = 10
|
||||
can_be_placed_into = null
|
||||
flags = OPENCONTAINER | NOBLUDGEON
|
||||
atom_flags = ATOM_REAGENTS_IS_OPEN
|
||||
item_flags = NOBLUDGEON
|
||||
unacidable = 0
|
||||
drop_sound = 'sound/items/drop/cloth.ogg'
|
||||
pickup_sound = 'sound/items/pickup/cloth.ogg'
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
var/list/stored = list()
|
||||
w_class = ITEMSIZE_SMALL
|
||||
item_state = "electronic"
|
||||
flags = NOBLUDGEON
|
||||
item_flags = NOBLUDGEON
|
||||
slot_flags = SLOT_BELT
|
||||
|
||||
var/reveal_fingerprints = TRUE
|
||||
|
||||
@@ -3,7 +3,6 @@
|
||||
desc = "Swipe your ID card to make purchases electronically."
|
||||
icon = 'icons/obj/stationobjs.dmi'
|
||||
icon_state = "register_idle"
|
||||
flags = NOBLUDGEON
|
||||
req_access = list(access_heads)
|
||||
anchored = 1
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
pickup_sound = 'sound/items/pickup/device.ogg'
|
||||
drop_sound = 'sound/items/drop/device.ogg'
|
||||
icon_state = "retail_idle"
|
||||
flags = NOBLUDGEON
|
||||
item_flags = NOBLUDGEON
|
||||
slot_flags = SLOT_BELT
|
||||
req_access = list(access_heads)
|
||||
w_class = ITEMSIZE_SMALL
|
||||
@@ -425,4 +425,4 @@
|
||||
account_to_connect = "Cargo"
|
||||
|
||||
/obj/item/retail_scanner/civilian
|
||||
account_to_connect = "Civilian"
|
||||
account_to_connect = "Civilian"
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
if(!(S.z in affecting_z))
|
||||
continue
|
||||
var/area/A = get_area(S)
|
||||
if(!A || A.flags & RAD_SHIELDED) // Rad shielding will protect from ions too
|
||||
if(!A || A.area_flags & RAD_SHIELDED) // Rad shielding will protect from ions too
|
||||
continue
|
||||
to_chat(S, "<span class='warning'>Your integrated sensors detect an ionospheric anomaly. Your systems will be impacted as you begin a partial restart.</span>")
|
||||
var/ionbug = rand(3, 9)
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
var/area/A = get_area(C)
|
||||
if(!A)
|
||||
continue
|
||||
if(A.flags & RAD_SHIELDED)
|
||||
if(A.area_flags & RAD_SHIELDED)
|
||||
continue
|
||||
if(istype(C,/mob/living/carbon/human))
|
||||
var/mob/living/carbon/human/H = C
|
||||
|
||||
@@ -43,7 +43,7 @@
|
||||
|
||||
armor_stats += "\n"
|
||||
|
||||
if(flags & AIRTIGHT)
|
||||
if(item_flags & AIRTIGHT)
|
||||
armor_stats += "It is airtight. \n"
|
||||
|
||||
if(min_pressure_protection == 0)
|
||||
@@ -54,7 +54,7 @@
|
||||
if(max_pressure_protection != null)
|
||||
armor_stats += "Wearing this will protect you from high pressures. \n"
|
||||
|
||||
if(flags & THICKMATERIAL)
|
||||
if(item_flags & THICKMATERIAL)
|
||||
armor_stats += "The material is exceptionally thick. \n"
|
||||
|
||||
if(max_heat_protection_temperature == FIRESUIT_MAX_HEAT_PROTECTION_TEMPERATURE)
|
||||
@@ -80,4 +80,4 @@
|
||||
if(slots.len)
|
||||
armor_stats += "It can be worn on your [english_list(slots)]. \n"
|
||||
|
||||
return armor_stats
|
||||
return armor_stats
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
var/contain_state = "net_full"
|
||||
|
||||
w_class = ITEMSIZE_SMALL
|
||||
flags = NOBLUDGEON
|
||||
item_flags = NOBLUDGEON
|
||||
|
||||
slowdown = 0.5
|
||||
|
||||
|
||||
@@ -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)
|
||||
flags = OPENCONTAINER
|
||||
atom_flags = ATOM_REAGENTS_IS_OPEN
|
||||
|
||||
matter = list("glass" = 60)
|
||||
|
||||
@@ -163,4 +163,4 @@ var/global/const/DRINK_ICON_NOISY = "_noise"
|
||||
if(afterattack(target, user)) //Check to see if harm intent & splash.
|
||||
return
|
||||
else
|
||||
..() //If they're splashed, no need to do anything else.
|
||||
..() //If they're splashed, no need to do anything else.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/obj/item/reagent_containers/food/drinks/cans
|
||||
volume = 40 //just over one and a half cups
|
||||
amount_per_transfer_from_this = 5
|
||||
flags = 0 //starts closed
|
||||
atom_flags = EMPTY_BITFIELD //starts closed
|
||||
drop_sound = 'sound/items/drop/soda.ogg'
|
||||
pickup_sound = 'sound/items/pickup/soda.ogg'
|
||||
|
||||
@@ -371,4 +371,4 @@
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/cans/alecan/Initialize()
|
||||
. = ..()
|
||||
reagents.add_reagent("ale", 30)
|
||||
reagents.add_reagent("ale", 30)
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
desc = "Just your average condiment container."
|
||||
icon = 'icons/obj/food.dmi'
|
||||
icon_state = "emptycondiment"
|
||||
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
|
||||
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,10 +49,10 @@
|
||||
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>")
|
||||
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 && !(flags & NOBLUDGEON) && user.a_intent == I_HURT)
|
||||
if(force && !(item_flags & NOBLUDGEON) && user.a_intent == I_HURT)
|
||||
return ..()
|
||||
|
||||
if(standard_feed_mob(user, M))
|
||||
@@ -124,7 +124,7 @@
|
||||
amount_per_transfer_from_this = 20
|
||||
possible_transfer_amounts = null
|
||||
volume = 150
|
||||
flags = OPENCONTAINER
|
||||
atom_flags = ATOM_REAGENTS_IS_OPEN
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/golden_cup/on_reagent_change()
|
||||
..()
|
||||
@@ -418,4 +418,4 @@
|
||||
desc = "Keeping your drinks at the perfect temperature since 1892."
|
||||
icon_state = "vacuumflask"
|
||||
volume = 60
|
||||
center_of_mass = list("x"=15, "y"=4)
|
||||
center_of_mass = list("x"=15, "y"=4)
|
||||
|
||||
@@ -119,14 +119,14 @@
|
||||
to_chat(user, "<span class='notice'>You stuff [R] into [src].</span>")
|
||||
rag = R
|
||||
rag.forceMove(src)
|
||||
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
|
||||
flags |= (initial(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"
|
||||
flags = NOCONDUCT
|
||||
atom_flags = ATOM_IS_INSULATED
|
||||
attack_verb = list("stabbed", "slashed", "attacked")
|
||||
sharp = 1
|
||||
edge = 0
|
||||
@@ -625,7 +625,7 @@
|
||||
/obj/item/reagent_containers/food/drinks/bottle/small
|
||||
volume = 50
|
||||
smash_duration = 1
|
||||
flags = 0 //starts closed
|
||||
atom_flags = EMPTY_BITFIELD //starts closed
|
||||
rag_underlay = "rag_small"
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/bottle/small/beer
|
||||
@@ -732,4 +732,4 @@
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/bottle/small/dr_gibb/Initialize()
|
||||
. = ..()
|
||||
reagents.add_reagent("dr_gibb", 50)
|
||||
reagents.add_reagent("dr_gibb", 50)
|
||||
|
||||
@@ -1816,7 +1816,7 @@
|
||||
filling_color = "#ADAC7F"
|
||||
center_of_mass = list("x"=16, "y"=14)
|
||||
w_class = ITEMSIZE_TINY
|
||||
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
|
||||
flags |= OPENCONTAINER
|
||||
atom_flags |= ATOM_REAGENTS_IS_OPEN
|
||||
return
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/cube/On_Consume(var/mob/M)
|
||||
@@ -1884,7 +1884,7 @@
|
||||
/obj/item/reagent_containers/food/snacks/cube/monkeycube/wrapped
|
||||
desc = "Still wrapped in some paper."
|
||||
icon_state = "monkeycubewrap"
|
||||
flags = 0
|
||||
atom_flags = EMPTY_BITFIELD
|
||||
wrapped = 1
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/cube/monkeycube/farwacube
|
||||
@@ -6856,7 +6856,7 @@
|
||||
/obj/item/reagent_containers/food/snacks/canned
|
||||
name = "void can"
|
||||
icon = 'icons/obj/food_canned.dmi'
|
||||
flags = 0
|
||||
atom_flags = EMPTY_BITFIELD
|
||||
var/sealed = TRUE
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/canned/Initialize()
|
||||
@@ -6869,7 +6869,7 @@
|
||||
to_chat(user, "It is [sealed ? "" : "un"]sealed.")
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/canned/proc/unseal()
|
||||
flags |= OPENCONTAINER
|
||||
atom_flags |= ATOM_REAGENTS_IS_OPEN
|
||||
sealed = FALSE
|
||||
update_icon()
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
item_state = "atoxinbottle"
|
||||
amount_per_transfer_from_this = 10
|
||||
possible_transfer_amounts = list(5,10,15,25,30,60)
|
||||
flags = 0
|
||||
atom_flags = EMPTY_BITFIELD
|
||||
volume = 60
|
||||
drop_sound = 'sound/items/drop/bottle.ogg'
|
||||
pickup_sound = 'sound/items/pickup/bottle.ogg'
|
||||
|
||||
@@ -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)
|
||||
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
|
||||
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)
|
||||
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
|
||||
flags = OPENCONTAINER | NOREACT
|
||||
atom_flags = ATOM_REAGENTS_IS_OPEN | ATOM_REAGENTS_SKIP_REACTIONS
|
||||
|
||||
var/list/product_types = list()
|
||||
var/dispense_flavour = ICECREAM_VANILLA
|
||||
@@ -193,4 +193,4 @@
|
||||
#undef ICECREAM_STRAWBERRY
|
||||
#undef ICECREAM_BLUE
|
||||
#undef CONE_WAFFLE
|
||||
#undef CONE_CHOC
|
||||
#undef CONE_CHOC
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
active_power_usage = 2000
|
||||
clicksound = "button"
|
||||
clickvol = "30"
|
||||
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.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.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
|
||||
@@ -422,7 +422,7 @@
|
||||
/obj/machinery/microwave/proc/muck_finish()
|
||||
src.visible_message("<span class='warning'>The microwave gets covered in muck!</span>")
|
||||
src.dirty = 100 // Make it dirty so it can't be used util cleaned
|
||||
src.flags = null //So you can't add condiments
|
||||
src.atom_flags = EMPTY_BITFIELD //So you can't add condiments
|
||||
src.icon_state = "mwbloody" // Make it look dirty too
|
||||
src.operating = 0 // Turn it off again aferwards
|
||||
src.updateUsrDialog()
|
||||
@@ -436,7 +436,7 @@
|
||||
src.icon_state = "mwb" // Make it look all busted up and shit
|
||||
src.visible_message("<span class='warning'>The microwave breaks!</span>") //Let them know they're stupid
|
||||
src.broken = 2 // Make it broken so it can't be used util fixed
|
||||
src.flags = null //So you can't add condiments
|
||||
src.atom_flags = EMPTY_BITFIELD //So you can't add condiments
|
||||
src.operating = 0 // Turn it off again aferwards
|
||||
src.updateUsrDialog()
|
||||
soundloop.stop()
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
use_power = USE_POWER_IDLE
|
||||
idle_power_usage = 5
|
||||
active_power_usage = 100
|
||||
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.
|
||||
@@ -234,14 +234,14 @@
|
||||
amount = params["amount"]
|
||||
else
|
||||
amount = input("How many items?", "How many items would you like to take out?", 1) as num|null
|
||||
|
||||
|
||||
if(QDELETED(src) || QDELETED(usr) || !usr.Adjacent(src))
|
||||
return FALSE
|
||||
|
||||
|
||||
var/index = text2num(params["index"])
|
||||
if(index < 1 || index > LAZYLEN(item_records))
|
||||
return TRUE
|
||||
|
||||
|
||||
vend(item_records[index], amount)
|
||||
return TRUE
|
||||
return FALSE
|
||||
|
||||
@@ -201,7 +201,7 @@
|
||||
hit(50)
|
||||
return
|
||||
|
||||
if(W.flags & NOBLUDGEON) return
|
||||
if(W.item_flags & NOBLUDGEON) return
|
||||
|
||||
if(W.is_screwdriver())
|
||||
to_chat(user, "<span class='notice'>It's a holowindow, you can't unfasten it!</span>")
|
||||
@@ -288,7 +288,7 @@
|
||||
throw_range = 5
|
||||
throwforce = 0
|
||||
w_class = ITEMSIZE_SMALL
|
||||
flags = NOBLOODY
|
||||
item_flags = NOBLOODY
|
||||
var/active = 0
|
||||
|
||||
/obj/item/holo/esword/green
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
|
||||
/obj/machinery/station_map/Initialize()
|
||||
. = ..()
|
||||
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."
|
||||
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"
|
||||
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"
|
||||
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
|
||||
flags = OPENCONTAINER
|
||||
atom_flags = ATOM_REAGENTS_IS_OPEN
|
||||
volume = 100
|
||||
|
||||
var/mechanical = 1 // Set to 0 to stop it from drawing the alert lights.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/obj/item/plantspray
|
||||
icon = 'icons/obj/hydroponics_machines.dmi'
|
||||
item_state = "spraycan"
|
||||
flags = NOBLUDGEON
|
||||
item_flags = NOBLUDGEON
|
||||
slot_flags = SLOT_BELT
|
||||
throwforce = 4
|
||||
w_class = ITEMSIZE_SMALL
|
||||
|
||||
@@ -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."
|
||||
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."
|
||||
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."
|
||||
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."
|
||||
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."
|
||||
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."
|
||||
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."
|
||||
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."
|
||||
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."
|
||||
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)
|
||||
@@ -356,6 +356,3 @@
|
||||
source.reagents.trans_id_to(target, G.id, transfer_amount)
|
||||
activate_pin(2)
|
||||
push_data()
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -174,7 +174,7 @@ Book Cart End
|
||||
item_state = "book"
|
||||
throw_speed = 1
|
||||
throw_range = 5
|
||||
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
|
||||
@@ -405,4 +405,4 @@ Book Cart End
|
||||
to_chat(user, "<font color=green>Computer has been associated with this unit.</font>")
|
||||
else
|
||||
to_chat(user, "<font color=red>No associated computer found. Only local scans will function properly.</font>")
|
||||
to_chat(user, "\n")
|
||||
to_chat(user, "\n")
|
||||
|
||||
@@ -43,15 +43,6 @@
|
||||
else
|
||||
light = new /datum/light_source(src, .)
|
||||
|
||||
/atom/Initialize()
|
||||
. = ..()
|
||||
|
||||
if(light_power && light_range)
|
||||
update_light()
|
||||
|
||||
if(opacity && isturf(loc))
|
||||
var/turf/T = loc
|
||||
T.has_opaque_atom = TRUE // No need to recalculate it in this case, it's guranteed to be on afterwards anyways.
|
||||
|
||||
/atom/Destroy()
|
||||
if(light)
|
||||
|
||||
@@ -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)
|
||||
flags |= NOCONDUCT
|
||||
atom_flags |= ATOM_IS_INSULATED
|
||||
|
||||
matter = material.get_matter()
|
||||
update_strings()
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
if(istype(M, /mob/living/carbon/human))
|
||||
var/mob/living/carbon/human/H = user
|
||||
var/obj/item/clothing/gloves/G = H.gloves
|
||||
if(istype(G) && ((G.flags & THICKMATERIAL && prob(70)) || istype(G, /obj/item/clothing/gloves/gauntlets)))
|
||||
if(istype(G) && ((G.item_flags & THICKMATERIAL && prob(70)) || istype(G, /obj/item/clothing/gloves/gauntlets)))
|
||||
burn_user = FALSE
|
||||
|
||||
if(burn_user)
|
||||
@@ -52,4 +52,4 @@
|
||||
qdel(src)
|
||||
return
|
||||
SSradiation.radiate(get_turf(src), amount * 2)
|
||||
..()
|
||||
..()
|
||||
|
||||
@@ -392,7 +392,7 @@ var/global/list/mining_overlay_cache = list()
|
||||
|
||||
/turf/simulated/mineral/proc/UpdateMineral()
|
||||
clear_ore_effects()
|
||||
if(initialized && istype(mineral))
|
||||
if((atom_flags & ATOM_INITIALIZED) && istype(mineral))
|
||||
new /obj/effect/mineral(src, mineral)
|
||||
update_icon()
|
||||
|
||||
@@ -751,7 +751,7 @@ var/global/list/mining_overlay_cache = list()
|
||||
|
||||
if(mineral_name && (mineral_name in GLOB.ore_data))
|
||||
mineral = GLOB.ore_data[mineral_name]
|
||||
if(initialized)
|
||||
if(atom_flags & ATOM_INITIALIZED)
|
||||
UpdateMineral()
|
||||
update_icon()
|
||||
|
||||
@@ -767,7 +767,7 @@ var/global/list/mining_overlay_cache = list()
|
||||
|
||||
if(isnull(T.geologic_data))
|
||||
T.geologic_data = new /datum/geosample(T)
|
||||
|
||||
|
||||
if(isnull(T.finds) || isemptylist(T.finds))
|
||||
T.finds = list()
|
||||
if(prob(50))
|
||||
@@ -792,4 +792,3 @@ var/global/list/mining_overlay_cache = list()
|
||||
T.artifact_find = new()
|
||||
|
||||
T.update_icon()
|
||||
|
||||
|
||||
@@ -125,7 +125,7 @@
|
||||
add_overlay(H.overlays_standing)
|
||||
default_pixel_x = body.default_pixel_x
|
||||
default_pixel_y = body.default_pixel_y
|
||||
if(!T && length(latejoin))
|
||||
if(!T && length(latejoin))
|
||||
T = pick(latejoin) //Safety in case we cannot find the body's position
|
||||
if(T)
|
||||
forceMove(T)
|
||||
@@ -167,10 +167,10 @@
|
||||
I = getFlatIcon(src, defdir = SOUTH, no_anim = TRUE)
|
||||
set_cached_examine_icon(src, I, 200 SECONDS)
|
||||
return I
|
||||
|
||||
|
||||
/mob/observer/dead/examine(mob/user)
|
||||
. = ..()
|
||||
|
||||
|
||||
if(is_admin(user))
|
||||
. += "\t><span class='admin'>[ADMIN_FULLMONTY(src)]</span>"
|
||||
|
||||
@@ -343,7 +343,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
|
||||
for(var/area/A as anything in areas)
|
||||
if(A.z in using_map?.secret_levels)
|
||||
areas -= A
|
||||
return areas
|
||||
return areas
|
||||
|
||||
/mob/observer/dead/proc/jumpable_mobs()
|
||||
var/list/mobs = getmobs()
|
||||
@@ -369,7 +369,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
|
||||
A = input(usr, "Select an area:", "Ghost Teleport") as null|anything in jumpable_areas()
|
||||
if(!A)
|
||||
return
|
||||
|
||||
|
||||
usr.forceMove(pick(get_area_turfs(A)))
|
||||
usr.on_mob_jump()
|
||||
|
||||
@@ -382,7 +382,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
|
||||
input = input(usr, "Select a mob:", "Ghost Follow") as null|anything in jumpable_mobs()
|
||||
if(!input)
|
||||
return
|
||||
|
||||
|
||||
var/target = jumpable_mobs()[input]
|
||||
if(!target) return
|
||||
ManualFollow(target)
|
||||
@@ -524,7 +524,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
|
||||
if(check_rights(R_ADMIN|R_FUN|R_EVENT, 0, src))
|
||||
return 0
|
||||
|
||||
return (T && T.holy) && (is_manifest || (mind in cult.current_antagonists))
|
||||
return (T?.turf_flags & TURF_IS_BLESSED) && (is_manifest || (mind in cult.current_antagonists))
|
||||
|
||||
/mob/observer/dead/verb/jumptomob(input in jumpable_mobs()) //Moves the ghost instead of just changing the ghosts's eye -Nodrak
|
||||
set category = "Ghost"
|
||||
@@ -930,7 +930,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
|
||||
set category = "Ghost"
|
||||
set name = "Blank pAI alert"
|
||||
set desc = "Flash an indicator light on available blank pAI devices for a smidgen of hope."
|
||||
|
||||
|
||||
if(usr.client.prefs?.be_special & BE_PAI)
|
||||
var/count = 0
|
||||
for(var/obj/item/paicard/p in all_pai_cards)
|
||||
|
||||
@@ -415,7 +415,7 @@
|
||||
return 1
|
||||
|
||||
for(var/obj/O in B)
|
||||
if(O.density && !istype(O, /obj/machinery/door) && !(O.flags & ON_BORDER))
|
||||
if(O.density && !istype(O, /obj/machinery/door) && !(O.atom_flags & ATOM_HAS_TRANSITION_PRIORITY))
|
||||
return 1
|
||||
|
||||
return 0
|
||||
|
||||
@@ -308,7 +308,7 @@ emp_act
|
||||
if(!((I.damtype == BRUTE) || (I.damtype == HALLOSS)))
|
||||
return
|
||||
|
||||
if(!(I.flags & NOBLOODY))
|
||||
if(!(I.item_flags & NOBLOODY))
|
||||
I.add_blood(src)
|
||||
|
||||
var/bloody = 0
|
||||
|
||||
@@ -145,7 +145,7 @@ Whatever you did that made the last camera window disappear-- don't do that agai
|
||||
name = ""
|
||||
icon = 'icons/misc/pic_in_pic.dmi'
|
||||
icon_state = "room_background"
|
||||
flags = NOJAUNT
|
||||
turf_flags = TURF_PREVENTS_JAUNT
|
||||
plane = SPACE_PLANE
|
||||
layer = AREA_LAYER + 0.1
|
||||
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
drop_sound = 'sound/items/drop/device.ogg'
|
||||
icon_state = "gripper"
|
||||
|
||||
flags = NOBLUDGEON
|
||||
item_flags = NOBLUDGEON
|
||||
|
||||
//Has a list of items that it can hold.
|
||||
var/list/can_hold = list(
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
name = "grab"
|
||||
icon = 'icons/mob/screen1.dmi'
|
||||
icon_state = "reinforce"
|
||||
flags = 0
|
||||
atom_flags = EMPTY_BITFIELD
|
||||
var/obj/screen/grab/hud = null
|
||||
var/mob/living/affecting = null
|
||||
var/mob/living/carbon/human/assailant = null
|
||||
|
||||
@@ -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 && !(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 && !(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
|
||||
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"
|
||||
flags = SLANDMARK_FLAG_ZERO_G // *Not* AUTOSET, these must be world.turf and world.area for lazy loading to work.
|
||||
landmark_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
|
||||
flags = SLANDMARK_FLAG_AUTOSET | SLANDMARK_FLAG_ZERO_G
|
||||
landmark_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)
|
||||
@@ -207,4 +207,4 @@
|
||||
if(SHIP_STATUS_TRANSIT)
|
||||
return "Maneuvering under secondary thrust."
|
||||
if(SHIP_STATUS_OVERMAP)
|
||||
return "In open space."
|
||||
return "In open space."
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
pixel_x = rand(-9, 9)
|
||||
if(newPaper)
|
||||
internalPaper = newPaper
|
||||
flags = newPaper.flags
|
||||
atom_flags = newPaper.atom_flags
|
||||
color = newPaper.color
|
||||
newPaper.forceMove(src)
|
||||
else
|
||||
|
||||
@@ -116,7 +116,7 @@
|
||||
*/
|
||||
|
||||
/obj/item/pen/reagent
|
||||
flags = OPENCONTAINER
|
||||
atom_flags = ATOM_REAGENTS_IS_OPEN
|
||||
origin_tech = list(TECH_MATERIAL = 2, TECH_ILLEGAL = 5)
|
||||
|
||||
/obj/item/pen/reagent/Initialize()
|
||||
|
||||
@@ -77,7 +77,7 @@
|
||||
if(!T || !(T.z in using_map.station_levels) )
|
||||
return FALSE
|
||||
var/area/A = get_area(T)
|
||||
if(!A || (A.flags & AREA_FLAG_IS_NOT_PERSISTENT))
|
||||
if(!A || (A.area_flags & AREA_FLAG_IS_NOT_PERSISTENT))
|
||||
return FALSE
|
||||
return TRUE
|
||||
|
||||
@@ -104,7 +104,7 @@
|
||||
/datum/persistent/proc/Shutdown()
|
||||
if(fexists(filename))
|
||||
fdel(filename)
|
||||
|
||||
|
||||
var/list/to_store = list()
|
||||
for(var/thing in SSpersistence.tracking_values[type])
|
||||
if(!IsValidEntry(thing))
|
||||
@@ -121,10 +121,10 @@
|
||||
var/list/my_tracks = SSpersistence.tracking_values[type]
|
||||
if(!my_tracks?.len)
|
||||
return
|
||||
|
||||
|
||||
. = list("<tr><td colspan = 4><b>[capitalize(name)]</b></td></tr>")
|
||||
. += "<tr><td colspan = 4><hr></td></tr>"
|
||||
|
||||
|
||||
for(var/thing in my_tracks)
|
||||
. += "<tr>[GetAdminDataStringFor(thing, can_modify, user)]</tr>"
|
||||
. += "<tr><td colspan = 4><hr></td></tr>"
|
||||
@@ -147,4 +147,4 @@
|
||||
if(.)
|
||||
var/mob/user = locate(href_list["caller"])
|
||||
if(user)
|
||||
SSpersistence.show_info(user)
|
||||
SSpersistence.show_info(user)
|
||||
|
||||
@@ -231,7 +231,7 @@ var/global/list/possible_cable_coil_colours = list(
|
||||
shock(user, 5, 0.2)
|
||||
|
||||
else
|
||||
if(!(W.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.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.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()
|
||||
|
||||
@@ -135,7 +135,7 @@
|
||||
var/impact_effect_type = null
|
||||
|
||||
var/list/impacted_mobs = list()
|
||||
|
||||
|
||||
// TGMC Ammo HUD Port
|
||||
var/hud_state = "unknown" // What HUD state we use when we have ammunition.
|
||||
var/hud_state_empty = "unknown" // The empty state. DON'T USE _FLASH IN THE NAME OF THE EMPTY STATE STRING, THAT IS ADDED BY THE CODE.
|
||||
@@ -636,7 +636,7 @@
|
||||
return 1
|
||||
|
||||
/obj/item/projectile/proc/check_fire(atom/target as mob, mob/living/user as mob) //Checks if you can hit them or not.
|
||||
check_trajectory(target, user, pass_flags, flags)
|
||||
check_trajectory(target, user, pass_flags, atom_flags)
|
||||
|
||||
/obj/item/projectile/CanPass()
|
||||
return TRUE
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
// Helper proc to check if you can hit them or not.
|
||||
// Will return a list of hit mobs/objects.
|
||||
/proc/check_trajectory(atom/target as mob|obj, atom/firer as mob|obj, var/pass_flags=PASSTABLE|PASSGLASS|PASSGRILLE, flags=null)
|
||||
/proc/check_trajectory(atom/target as mob|obj, atom/firer as mob|obj, var/pass_flags=PASSTABLE|PASSGLASS|PASSGRILLE, flags=0)
|
||||
if(!istype(target) || !istype(firer))
|
||||
return 0
|
||||
|
||||
@@ -8,13 +8,13 @@
|
||||
|
||||
//Set the flags and pass flags to that of the real projectile...
|
||||
if(!isnull(flags))
|
||||
trace.flags = flags
|
||||
trace.atom_flags = flags
|
||||
trace.pass_flags = pass_flags
|
||||
|
||||
return trace.launch_projectile(target) //Test it!
|
||||
|
||||
/obj/item/projectile/proc/_check_fire(atom/target as mob, var/mob/living/user as mob) //Checks if you can hit them or not.
|
||||
check_trajectory(target, user, pass_flags, flags)
|
||||
check_trajectory(target, user, pass_flags, atom_flags)
|
||||
|
||||
//"Tracing" projectile
|
||||
/obj/item/projectile/test //Used to see if you can hit them.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/datum/reagents/distilling/handle_reactions()
|
||||
if(QDELETED(my_atom))
|
||||
return FALSE
|
||||
if(my_atom.flags & NOREACT)
|
||||
if(my_atom.atom_flags & ATOM_REAGENTS_SKIP_REACTIONS)
|
||||
return FALSE
|
||||
var/reaction_occurred
|
||||
var/list/eligible_reactions = list()
|
||||
@@ -23,4 +23,4 @@
|
||||
for(var/i in effect_reactions)
|
||||
var/decl/chemical_reaction/C = i
|
||||
C.post_reaction(src)
|
||||
update_total()
|
||||
update_total()
|
||||
|
||||
@@ -78,7 +78,7 @@
|
||||
/datum/reagents/proc/handle_reactions()
|
||||
if(QDELETED(my_atom))
|
||||
return FALSE
|
||||
if(my_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
|
||||
flags = OPENCONTAINER
|
||||
atom_flags = ATOM_REAGENTS_IS_OPEN
|
||||
clicksound = "button"
|
||||
|
||||
/obj/machinery/chem_master/Initialize()
|
||||
@@ -495,4 +495,4 @@
|
||||
|
||||
/obj/machinery/chem_master/condimaster
|
||||
name = "CondiMaster 3000"
|
||||
condi = 1
|
||||
condi = 1
|
||||
|
||||
@@ -53,11 +53,11 @@
|
||||
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.flags & OPENCONTAINER))
|
||||
I.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."))
|
||||
analyzing = FALSE
|
||||
update_icon()
|
||||
return
|
||||
return
|
||||
|
||||
@@ -55,10 +55,10 @@
|
||||
..()
|
||||
if (is_open_container())
|
||||
to_chat(usr, "<span class = 'notice'>You put the cap on \the [src].</span>")
|
||||
flags ^= OPENCONTAINER
|
||||
atom_flags ^= ATOM_REAGENTS_IS_OPEN
|
||||
else
|
||||
to_chat(usr, "<span class = 'notice'>You take the cap off \the [src].</span>")
|
||||
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
|
||||
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,14 +74,14 @@
|
||||
..()
|
||||
if(is_open_container())
|
||||
to_chat(usr, "<span class = 'notice'>You put the lid on \the [src].</span>")
|
||||
flags ^= OPENCONTAINER
|
||||
atom_flags ^= ATOM_REAGENTS_IS_OPEN
|
||||
else
|
||||
to_chat(usr, "<span class = 'notice'>You take the lid off \the [src].</span>")
|
||||
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)
|
||||
if(force && !(flags & NOBLUDGEON) && user.a_intent == I_HURT)
|
||||
if(force && !(item_flags & NOBLUDGEON) && user.a_intent == I_HURT)
|
||||
return ..()
|
||||
|
||||
if(standard_feed_mob(user, M))
|
||||
@@ -134,7 +134,7 @@
|
||||
update_name_label()
|
||||
if(istype(W,/obj/item/storage/bag))
|
||||
..()
|
||||
if(W && W.w_class <= w_class && (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)
|
||||
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
|
||||
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)
|
||||
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)
|
||||
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)
|
||||
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
|
||||
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
|
||||
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
|
||||
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.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()
|
||||
. = ..()
|
||||
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.
|
||||
flags &= ~OPENCONTAINER
|
||||
atom_flags &= ~ATOM_REAGENTS_IS_OPEN
|
||||
update_icon()
|
||||
|
||||
/obj/item/reagent_containers/hypospray/autoinjector/update_icon()
|
||||
|
||||
@@ -5,7 +5,8 @@
|
||||
icon_state = "cleaner"
|
||||
item_state = "cleaner"
|
||||
center_of_mass = list("x" = 16,"y" = 10)
|
||||
flags = OPENCONTAINER|NOBLUDGEON
|
||||
atom_flags = ATOM_REAGENTS_IS_OPEN
|
||||
item_flags = NOBLUDGEON
|
||||
matter = list("glass" = 300, MAT_STEEL = 300)
|
||||
slot_flags = SLOT_BELT
|
||||
throwforce = 3
|
||||
|
||||
@@ -7,102 +7,102 @@
|
||||
// The good.
|
||||
/obj/item/reagent_containers/hypospray/autoinjector/bonemed/unidentified
|
||||
init_hide_identity = TRUE
|
||||
flags = 0
|
||||
atom_flags = EMPTY_BITFIELD
|
||||
|
||||
/obj/item/reagent_containers/hypospray/autoinjector/clonemed/unidentified
|
||||
init_hide_identity = TRUE
|
||||
flags = 0
|
||||
atom_flags = EMPTY_BITFIELD
|
||||
|
||||
/obj/item/reagent_containers/hypospray/autoinjector/biginjector/brute/unidentified
|
||||
init_hide_identity = TRUE
|
||||
flags = 0
|
||||
atom_flags = EMPTY_BITFIELD
|
||||
|
||||
/obj/item/reagent_containers/hypospray/autoinjector/biginjector/burn/unidentified
|
||||
init_hide_identity = TRUE
|
||||
flags = 0
|
||||
atom_flags = EMPTY_BITFIELD
|
||||
|
||||
/obj/item/reagent_containers/hypospray/autoinjector/biginjector/toxin/unidentified
|
||||
init_hide_identity = TRUE
|
||||
flags = 0
|
||||
atom_flags = EMPTY_BITFIELD
|
||||
|
||||
/obj/item/reagent_containers/hypospray/autoinjector/biginjector/oxy/unidentified
|
||||
init_hide_identity = TRUE
|
||||
flags = 0
|
||||
atom_flags = EMPTY_BITFIELD
|
||||
|
||||
/obj/item/reagent_containers/hypospray/autoinjector/biginjector/purity/unidentified
|
||||
init_hide_identity = TRUE
|
||||
flags = 0
|
||||
atom_flags = EMPTY_BITFIELD
|
||||
|
||||
/obj/item/reagent_containers/hypospray/autoinjector/biginjector/pain/unidentified
|
||||
init_hide_identity = TRUE
|
||||
flags = 0
|
||||
atom_flags = EMPTY_BITFIELD
|
||||
|
||||
/obj/item/reagent_containers/hypospray/autoinjector/biginjector/organ/unidentified
|
||||
init_hide_identity = TRUE
|
||||
flags = 0
|
||||
atom_flags = EMPTY_BITFIELD
|
||||
|
||||
/obj/item/reagent_containers/hypospray/autoinjector/biginjector/clotting/unidentified
|
||||
init_hide_identity = TRUE
|
||||
flags = 0
|
||||
atom_flags = EMPTY_BITFIELD
|
||||
|
||||
/obj/item/reagent_containers/hypospray/autoinjector/biginjector/combat/unidentified
|
||||
init_hide_identity = TRUE
|
||||
flags = 0
|
||||
atom_flags = EMPTY_BITFIELD
|
||||
|
||||
/obj/item/reagent_containers/hypospray/autoinjector/biginjector/healing_nanites/unidentified
|
||||
init_hide_identity = TRUE
|
||||
flags = 0
|
||||
atom_flags = EMPTY_BITFIELD
|
||||
|
||||
// The somewhat bad.
|
||||
/obj/item/reagent_containers/hypospray/autoinjector/biginjector/stimm/unidentified
|
||||
init_hide_identity = TRUE
|
||||
flags = 0
|
||||
atom_flags = EMPTY_BITFIELD
|
||||
|
||||
/obj/item/reagent_containers/hypospray/autoinjector/biginjector/bliss/unidentified
|
||||
init_hide_identity = TRUE
|
||||
flags = 0
|
||||
atom_flags = EMPTY_BITFIELD
|
||||
|
||||
/obj/item/reagent_containers/hypospray/autoinjector/biginjector/expired/unidentified
|
||||
init_hide_identity = TRUE
|
||||
flags = 0
|
||||
atom_flags = EMPTY_BITFIELD
|
||||
|
||||
/obj/item/reagent_containers/hypospray/autoinjector/biginjector/serotrotium/unidentified
|
||||
init_hide_identity = TRUE
|
||||
flags = 0
|
||||
atom_flags = EMPTY_BITFIELD
|
||||
|
||||
/obj/item/reagent_containers/hypospray/autoinjector/biginjector/cryptobiolin/unidentified
|
||||
init_hide_identity = TRUE
|
||||
flags = 0
|
||||
atom_flags = EMPTY_BITFIELD
|
||||
|
||||
/obj/item/reagent_containers/hypospray/autoinjector/biginjector/mindbreaker/unidentified
|
||||
init_hide_identity = TRUE
|
||||
flags = 0
|
||||
atom_flags = EMPTY_BITFIELD
|
||||
|
||||
/obj/item/reagent_containers/hypospray/autoinjector/biginjector/psilocybin/unidentified
|
||||
init_hide_identity = TRUE
|
||||
flags = 0
|
||||
atom_flags = EMPTY_BITFIELD
|
||||
|
||||
/obj/item/reagent_containers/hypospray/autoinjector/biginjector/soporific/unidentified
|
||||
init_hide_identity = TRUE
|
||||
flags = 0
|
||||
atom_flags = EMPTY_BITFIELD
|
||||
|
||||
// The very bad.
|
||||
/obj/item/reagent_containers/hypospray/autoinjector/biginjector/cyanide/unidentified
|
||||
init_hide_identity = TRUE
|
||||
flags = 0
|
||||
atom_flags = EMPTY_BITFIELD
|
||||
|
||||
/obj/item/reagent_containers/hypospray/autoinjector/biginjector/impedrezene/unidentified
|
||||
init_hide_identity = TRUE
|
||||
flags = 0
|
||||
atom_flags = EMPTY_BITFIELD
|
||||
|
||||
/obj/item/reagent_containers/hypospray/autoinjector/biginjector/mutagen/unidentified
|
||||
init_hide_identity = TRUE
|
||||
flags = 0
|
||||
atom_flags = EMPTY_BITFIELD
|
||||
|
||||
/obj/item/reagent_containers/hypospray/autoinjector/biginjector/defective_nanites/unidentified
|
||||
init_hide_identity = TRUE
|
||||
flags = 0
|
||||
atom_flags = EMPTY_BITFIELD
|
||||
|
||||
/obj/item/reagent_containers/hypospray/autoinjector/biginjector/contaminated/unidentified
|
||||
init_hide_identity = TRUE
|
||||
flags = 0
|
||||
atom_flags = EMPTY_BITFIELD
|
||||
|
||||
@@ -363,7 +363,7 @@
|
||||
/datum/reagent/water/holywater/touch_turf(var/turf/T)
|
||||
..()
|
||||
if(volume >= 5)
|
||||
T.holy = 1
|
||||
T.turf_flags |= TURF_IS_BLESSED
|
||||
return
|
||||
|
||||
/datum/reagent/ammonia
|
||||
|
||||
@@ -6,7 +6,6 @@
|
||||
var/obj/wrapped = null
|
||||
density = 1
|
||||
var/sortTag = null
|
||||
flags = NOBLUDGEON
|
||||
mouse_drag_pointer = MOUSE_ACTIVE_POINTER
|
||||
var/examtext = null
|
||||
var/nameset = 0
|
||||
|
||||
@@ -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"
|
||||
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"
|
||||
flags = OPENCONTAINER
|
||||
atom_flags = ATOM_REAGENTS_IS_OPEN
|
||||
circuit = /obj/item/circuitboard/protolathe
|
||||
use_power = USE_POWER_IDLE
|
||||
idle_power_usage = 30
|
||||
@@ -237,4 +237,4 @@
|
||||
return
|
||||
materials[material] -= ejected * S.perunit
|
||||
if(recursive && materials[material] >= S.perunit)
|
||||
eject_materials(material, -1)
|
||||
eject_materials(material, -1)
|
||||
|
||||
@@ -7,7 +7,8 @@
|
||||
unacidable = 1
|
||||
simulated = 0
|
||||
invisibility = 101
|
||||
flags = SLANDMARK_FLAG_AUTOSET // We generally want to use current area/turf as base.
|
||||
|
||||
var/landmark_flags = LANDMARK_CREATES_SAFE_SITE // We generally want to use current area/turf as base.
|
||||
|
||||
//ID of the landmark
|
||||
var/landmark_tag
|
||||
@@ -30,7 +31,7 @@
|
||||
. = INITIALIZE_HINT_LATELOAD
|
||||
|
||||
// Even if this flag is set, hardcoded values take precedence.
|
||||
if(flags & SLANDMARK_FLAG_AUTOSET)
|
||||
if(landmark_flags & LANDMARK_CREATES_SAFE_SITE)
|
||||
if(ispath(base_area))
|
||||
var/area/A = locate(base_area)
|
||||
if(!istype(A))
|
||||
@@ -123,7 +124,7 @@
|
||||
/obj/effect/shuttle_landmark/automatic
|
||||
name = "Navpoint"
|
||||
landmark_tag = "navpoint"
|
||||
flags = SLANDMARK_FLAG_AUTOSET
|
||||
landmark_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.flags & SLANDMARK_FLAG_ZERO_G)
|
||||
if(destination.landmark_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
|
||||
flags = SLANDMARK_FLAG_ZERO_G|SLANDMARK_FLAG_AUTOSET
|
||||
landmark_flags = LANDMARK_REMOVES_GRAVITY | LANDMARK_CREATES_SAFE_SITE
|
||||
|
||||
@@ -91,7 +91,7 @@
|
||||
/obj/effect/dummy/spell_jaunt/relaymove(var/mob/user, direction)
|
||||
if (!src.canmove || reappearing) return
|
||||
var/turf/newLoc = get_step(src,direction)
|
||||
if(!(newLoc.flags & NOJAUNT))
|
||||
if(!(newLoc.turf_flags & TURF_PREVENTS_JAUNT))
|
||||
loc = newLoc
|
||||
var/turf/T = get_turf(loc)
|
||||
if(!T.contains_dense_objects())
|
||||
@@ -104,4 +104,4 @@
|
||||
/obj/effect/dummy/spell_jaunt/ex_act(blah)
|
||||
return
|
||||
/obj/effect/dummy/spell_jaunt/bullet_act(blah)
|
||||
return
|
||||
return
|
||||
|
||||
@@ -88,7 +88,7 @@
|
||||
layer = ABOVE_MOB_LAYER
|
||||
climbable = 0 //flipping tables allows them to be used as makeshift barriers
|
||||
flipped = 1
|
||||
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)
|
||||
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)
|
||||
@@ -115,4 +115,4 @@
|
||||
update_connections(1)
|
||||
update_icon()
|
||||
|
||||
return 1
|
||||
return 1
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
origin_tech = list(TECH_BIO = 4)
|
||||
var/uses = 1 // uses before it goes inert
|
||||
var/enhanced = FALSE
|
||||
flags = OPENCONTAINER
|
||||
atom_flags = ATOM_REAGENTS_IS_OPEN
|
||||
|
||||
|
||||
/obj/item/slime_extract/Initialize()
|
||||
@@ -986,6 +986,3 @@
|
||||
/decl/chemical_reaction/instant/slime/rainbow_unity/on_reaction(var/datum/reagents/holder)
|
||||
new /obj/item/slimepotion/unity(get_turf(holder.my_atom))
|
||||
..()
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user