Merge pull request #8762 from Spookerton/spkrtn/sys/flagging

violently rearranges some flags and instance vars
This commit is contained in:
Atermonera
2022-10-20 20:57:52 -08:00
committed by GitHub
165 changed files with 497 additions and 490 deletions
+1 -1
View File
@@ -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
+2 -2
View File
@@ -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
+1 -1
View File
@@ -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
+2 -2
View File
@@ -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 -1
View File
@@ -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"
+2 -3
View File
@@ -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"
+1 -1
View File
@@ -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)
+2 -2
View File
@@ -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
+1 -2
View File
@@ -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"
+1 -1
View File
@@ -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()
+3 -3
View File
@@ -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.
+2 -4
View File
@@ -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
+1 -1
View File
@@ -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
+2 -2
View File
@@ -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)
+3 -5
View File
@@ -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
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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 -4
View File
@@ -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()
+2 -1
View File
@@ -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'
+1 -1
View File
@@ -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
-1
View File
@@ -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
+2 -2
View File
@@ -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"
+1 -1
View File
@@ -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)
+1 -1
View File
@@ -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
+3 -3
View File
@@ -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
+1 -1
View File
@@ -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.
+2 -2
View File
@@ -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)
+1 -1
View File
@@ -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
+5 -5
View File
@@ -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)
+5 -5
View File
@@ -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)
+5 -5
View File
@@ -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()
+1 -1
View File
@@ -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'
+1 -1
View File
@@ -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)
+2 -2
View File
@@ -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
+5 -5
View File
@@ -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
+2 -2
View File
@@ -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
+1 -1
View File
@@ -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()
. = ..()
+1 -1
View File
@@ -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'
+2 -2
View File
@@ -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
+1 -1
View File
@@ -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()
+2 -2
View File
@@ -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")
-9
View File
@@ -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
+1 -1
View File
@@ -41,7 +41,7 @@
color = material.icon_colour
if(!material.conductive)
flags |= NOCONDUCT
atom_flags |= ATOM_IS_INSULATED
matter = material.get_matter()
update_strings()
+2 -2
View File
@@ -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)
..()
..()
+3 -4
View File
@@ -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()
+8 -8
View File
@@ -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)
+1 -1
View File
@@ -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(
+1 -1
View File
@@ -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
+4 -4
View File
@@ -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.
+1 -1
View File
@@ -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()
+3 -3
View File
@@ -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."
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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)
+1 -1
View File
@@ -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)
+2 -2
View File
@@ -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()
+2 -2
View File
@@ -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
+3 -3
View File
@@ -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.
+2 -2
View File
@@ -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()
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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
+2 -2
View File
@@ -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)
+4 -3
View File
@@ -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)]"
+1 -1
View File
@@ -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)
+1 -1
View File
@@ -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
+3 -3
View File
@@ -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
+1 -4
View File
@@ -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))
..()