From b3a0c9a97502d9f85d134f94aaa6bd725f5ab093 Mon Sep 17 00:00:00 2001 From: DZD Date: Tue, 10 Feb 2015 17:41:37 -0500 Subject: [PATCH 01/60] Removes TABLEPASS and FPRINT flags - Also adds ABSTRACT and NODROP flags in preparation for removal of canremove and abstract vars. - Sorts some of the setup.dm flags so they're in order. - Replaces 'flags & 2' in policetape.dm with pass_flags & PASSTABLE, should have the same effect. --- code/ATMOSPHERICS/chiller.dm | 10 ++-- code/defines/obj.dm | 2 +- code/defines/obj/weapon.dm | 30 +++++----- code/game/atoms.dm | 4 +- code/game/gamemodes/cult/cult_items.dm | 7 +-- code/game/gamemodes/cult/ritual.dm | 5 +- .../gamemodes/events/holidays/Christmas.dm | 1 - .../mutiny/emergency_authentication_device.dm | 1 - code/game/gamemodes/nuclear/nuclearbomb.dm | 25 ++++---- code/game/gamemodes/nuclear/pinpointer.dm | 6 +- code/game/gamemodes/wizard/artefact.dm | 3 - code/game/gamemodes/wizard/soulstone.dm | 2 - code/game/gamemodes/wizard/spellbook.dm | 1 - code/game/machinery/alarm.dm | 26 ++++----- code/game/machinery/atmoalter/canister.dm | 1 - code/game/machinery/bees_items.dm | 1 - .../machinery/computer/HolodeckControl.dm | 2 +- code/game/machinery/pipe/construction.dm | 10 ++-- code/game/machinery/shieldgen.dm | 2 +- code/game/machinery/spaceheater.dm | 1 - code/game/mecha/mecha_parts.dm | 6 +- code/game/objects/effects/effect_system.dm | 2 - code/game/objects/items.dm | 1 - code/game/objects/items/apc_frame.dm | 2 +- code/game/objects/items/devices/PDA/PDA.dm | 9 ++- code/game/objects/items/devices/aicard.dm | 3 +- code/game/objects/items/devices/autopsy.dm | 2 +- .../objects/items/devices/chameleonproj.dm | 2 +- code/game/objects/items/devices/debugger.dm | 2 +- code/game/objects/items/devices/flash.dm | 2 +- code/game/objects/items/devices/flashlight.dm | 6 +- .../objects/items/devices/laserpointer.dm | 2 +- .../objects/items/devices/lightreplacer.dm | 2 +- code/game/objects/items/devices/megaphone.dm | 2 +- code/game/objects/items/devices/multitool.dm | 2 +- code/game/objects/items/devices/paicard.dm | 1 - code/game/objects/items/devices/powersink.dm | 2 +- .../items/devices/radio/electropack.dm | 2 +- .../objects/items/devices/radio/intercom.dm | 2 +- .../game/objects/items/devices/radio/radio.dm | 2 +- code/game/objects/items/devices/scanners.dm | 9 ++- .../objects/items/devices/suit_cooling.dm | 50 ++++++++-------- .../objects/items/devices/taperecorder.dm | 2 +- .../objects/items/devices/traitordevices.dm | 4 +- code/game/objects/items/devices/whistle.dm | 2 +- code/game/objects/items/policetape.dm | 7 +-- code/game/objects/items/robot/robot_parts.dm | 2 +- code/game/objects/items/stacks/rods.dm | 4 +- .../game/objects/items/stacks/sheets/light.dm | 2 +- .../items/stacks/sheets/sheet_types.dm | 7 +-- .../objects/items/stacks/sheets/sheets.dm | 1 - code/game/objects/items/stacks/tiles/light.dm | 2 +- .../objects/items/stacks/tiles/plasteel.dm | 2 +- .../objects/items/stacks/tiles/tile_types.dm | 6 +- code/game/objects/items/toys.dm | 17 ++---- code/game/objects/items/weapons/AI_modules.dm | 2 +- code/game/objects/items/weapons/RCD.dm | 2 +- code/game/objects/items/weapons/RSF.dm | 1 - .../objects/items/weapons/alien_specific.dm | 2 +- .../objects/items/weapons/cigs_lighters.dm | 2 +- code/game/objects/items/weapons/cosmetics.dm | 3 +- .../objects/items/weapons/extinguisher.dm | 3 +- .../objects/items/weapons/flamethrower.dm | 2 +- .../items/weapons/grenades/ghettobomb.dm | 2 +- .../objects/items/weapons/grenades/grenade.dm | 2 +- .../items/weapons/grenades/smokebomb.dm | 1 - code/game/objects/items/weapons/handcuffs.dm | 2 +- .../game/objects/items/weapons/hydroponics.dm | 1 - code/game/objects/items/weapons/kitchen.dm | 8 +-- .../objects/items/weapons/melee/energy.dm | 6 +- code/game/objects/items/weapons/melee/misc.dm | 2 +- code/game/objects/items/weapons/mop.dm | 1 - .../objects/items/weapons/ninja_manuscript.dm | 1 - code/game/objects/items/weapons/paint.dm | 2 +- .../game/objects/items/weapons/power_cells.dm | 1 - code/game/objects/items/weapons/scrolls.dm | 1 - code/game/objects/items/weapons/shields.dm | 6 +- .../objects/items/weapons/storage/backpack.dm | 1 - .../objects/items/weapons/storage/bags.dm | 3 +- .../objects/items/weapons/storage/belt.dm | 4 +- .../objects/items/weapons/storage/bible.dm | 1 - .../objects/items/weapons/storage/boxes.dm | 1 - .../items/weapons/storage/briefcase.dm | 2 +- .../objects/items/weapons/storage/fancy.dm | 2 - .../objects/items/weapons/storage/secure.dm | 2 - .../objects/items/weapons/storage/toolbox.dm | 2 +- code/game/objects/items/weapons/stunbaton.dm | 1 - .../objects/items/weapons/surgery_tools.dm | 12 ++-- .../objects/items/weapons/swords_axes_etc.dm | 2 - .../objects/items/weapons/tanks/tank_types.dm | 4 +- .../game/objects/items/weapons/tanks/tanks.dm | 2 +- .../objects/items/weapons/teleportation.dm | 2 +- code/game/objects/items/weapons/tools.dm | 12 ++-- code/game/objects/items/weapons/twohanded.dm | 4 +- code/game/objects/items/weapons/weaponry.dm | 9 +-- .../structures/crates_lockers/closets.dm | 1 - .../crates_lockers/closets/statue.dm | 1 - .../structures/crates_lockers/largecrate.dm | 1 - code/game/objects/structures/grille.dm | 2 +- code/game/objects/structures/mop_bucket.dm | 2 +- code/game/objects/structures/noticeboard.dm | 1 - .../structures/stool_bed_chair_nest/stools.dm | 1 - code/game/objects/structures/tables_racks.dm | 1 - code/game/vehicles/spacepods/parts.dm | 2 +- .../DetectiveWork/footprints_and_rag.dm | 2 +- code/modules/DetectiveWork/scanner.dm | 2 +- code/modules/assembly/assembly.dm | 2 +- code/modules/assembly/bomb.dm | 2 +- code/modules/assembly/holder.dm | 2 +- code/modules/assembly/shock_kit.dm | 2 +- code/modules/clothing/clothing.dm | 6 +- code/modules/clothing/head/hardhat.dm | 7 +-- code/modules/clothing/head/helmet.dm | 14 ++--- code/modules/clothing/head/jobs.dm | 15 +---- code/modules/clothing/head/misc.dm | 45 +++++---------- code/modules/clothing/head/misc_special.dm | 8 +-- code/modules/clothing/head/soft_caps.dm | 1 - code/modules/clothing/masks/boxing.dm | 4 +- code/modules/clothing/masks/breath.dm | 2 +- code/modules/clothing/masks/gasmask.dm | 8 +-- code/modules/clothing/masks/miscellaneous.dm | 19 +++---- code/modules/clothing/spacesuits/alien.dm | 4 +- code/modules/clothing/spacesuits/captain.dm | 4 +- .../clothing/spacesuits/miscellaneous.dm | 6 +- code/modules/clothing/spacesuits/rig.dm | 2 +- code/modules/clothing/suits/armor.dm | 8 +-- code/modules/clothing/suits/bio.dm | 4 +- code/modules/clothing/suits/jobs.dm | 4 +- code/modules/clothing/suits/miscellaneous.dm | 20 ++----- code/modules/clothing/suits/utility.dm | 7 +-- code/modules/clothing/under/color.dm | 29 +++++----- code/modules/clothing/under/jobs/civilian.dm | 31 +++++----- .../clothing/under/jobs/engineering.dm | 8 +-- code/modules/clothing/under/jobs/medsci.dm | 42 +++++++------- code/modules/clothing/under/jobs/security.dm | 14 ++--- code/modules/clothing/under/miscellaneous.dm | 11 +--- code/modules/clothing/under/shorts.dm | 1 - code/modules/customitems/item_defines.dm | 12 +--- code/modules/hydroponics/grown_inedible.dm | 4 -- code/modules/hydroponics/hydro_tools.dm | 14 ++--- code/modules/hydroponics/seeds.dm | 1 - code/modules/library/lib_items.dm | 2 - code/modules/mining/mine_items.dm | 4 +- code/modules/mining/money_bag.dm | 2 +- .../mob/living/carbon/brain/brain_item.dm | 1 - .../mob/living/carbon/metroid/metroid.dm | 5 +- .../mob/living/silicon/robot/component.dm | 2 +- .../mob/living/silicon/robot/robot_modules.dm | 2 +- code/modules/paperwork/clipboard.dm | 19 +++---- code/modules/paperwork/pen.dm | 5 +- code/modules/paperwork/photography.dm | 6 +- code/modules/paperwork/stamps.dm | 1 - code/modules/power/antimatter/shielding.dm | 2 +- code/modules/power/cable.dm | 2 +- code/modules/power/lighting.dm | 5 +- code/modules/power/switch.dm | 1 - code/modules/projectiles/ammunition.dm | 4 +- code/modules/projectiles/gun.dm | 6 +- code/modules/projectiles/guns/energy/laser.dm | 2 +- .../projectiles/guns/energy/special.dm | 2 +- code/modules/projectiles/guns/magic.dm | 2 +- .../projectiles/guns/projectile/crossbow.dm | 1 - .../guns/projectile/grenade launcher.dm | 2 +- .../projectiles/guns/projectile/pneumatic.dm | 2 +- .../projectiles/guns/projectile/rocket.dm | 2 +- .../projectiles/guns/projectile/shotgun.dm | 4 +- code/modules/projectiles/projectile.dm | 1 - .../reagents/reagent_containers/borghydro.dm | 1 - .../reagents/reagent_containers/drugs.dm | 2 +- .../reagent_containers/food/condiment.dm | 3 +- .../reagent_containers/food/drinks.dm | 4 +- .../reagents/reagent_containers/glass.dm | 17 +++--- .../reagent_containers/glass/bottle.dm | 2 +- .../reagent_containers/glass/bottle/robot.dm | 2 +- .../reagents/reagent_containers/hypospray.dm | 2 +- .../reagents/reagent_containers/spray.dm | 2 +- code/modules/reagents/reagent_dispenser.dm | 1 - code/modules/recycling/sortingmachinery.dm | 5 +- .../research/xenoarchaeology/chemistry.dm | 2 +- .../xenoarchaeology/tools/tools_anoscanner.dm | 1 - .../tools/tools_coresampler.dm | 1 - .../tools/tools_depthscanner.dm | 1 - code/modules/virus2/helpers.dm | 1 - code/modules/virus2/items_devices.dm | 2 +- code/setup.dm | 57 +++++++++---------- 185 files changed, 415 insertions(+), 587 deletions(-) diff --git a/code/ATMOSPHERICS/chiller.dm b/code/ATMOSPHERICS/chiller.dm index b83d30e2045..717a2304ffc 100644 --- a/code/ATMOSPHERICS/chiller.dm +++ b/code/ATMOSPHERICS/chiller.dm @@ -9,8 +9,6 @@ set_temperature = 20 // in celcius, add T0C for kelvin var/cooling_power = 40000 - flags = FPRINT - /obj/machinery/space_heater/air_conditioner/New() ..() @@ -96,11 +94,11 @@ // AUTOFIXED BY fix_string_idiocy.py // C:\Users\Rob\Documents\Projects\vgstation13\code\ATMOSPHERICS\chiller.dm:95: dat += "Power Level: [cell ? round(cell.percent(),1) : 0]%

" dat += {"Power Level: [cell ? round(cell.percent(),1) : 0]%

- Set Temperature: - - + Set Temperature: + - - - [temp]°C - + + [temp]°C + + +
"} // END AUTOFIX user.set_machine(src) diff --git a/code/defines/obj.dm b/code/defines/obj.dm index aff00b487eb..9df9521f6bb 100644 --- a/code/defines/obj.dm +++ b/code/defines/obj.dm @@ -380,7 +380,7 @@ var/global/list/PDA_Manifest = list() throwforce = 0.0 throw_speed = 1 throw_range = 20 - flags = FPRINT | TABLEPASS | CONDUCT + flags = CONDUCT /obj/effect/stop diff --git a/code/defines/obj/weapon.dm b/code/defines/obj/weapon.dm index c5c01751482..fc90cf47134 100644 --- a/code/defines/obj/weapon.dm +++ b/code/defines/obj/weapon.dm @@ -3,7 +3,7 @@ desc = "Should anything ever go wrong..." icon = 'icons/obj/items.dmi' icon_state = "red_phone" - flags = FPRINT | TABLEPASS | CONDUCT + flags = CONDUCT force = 3.0 throwforce = 2.0 throw_speed = 1 @@ -22,7 +22,6 @@ anchored = 0.0 var/matter = 0 var/mode = 1 - flags = TABLEPASS w_class = 3.0 /obj/item/weapon/bananapeel @@ -108,7 +107,7 @@ icon = 'icons/obj/weapons.dmi' icon_state = "cane" item_state = "stick" - flags = FPRINT | TABLEPASS| CONDUCT + flags = CONDUCT force = 5.0 throwforce = 7.0 w_class = 2.0 @@ -160,7 +159,7 @@ gender = PLURAL icon = 'icons/obj/items.dmi' icon_state = "handcuff" - flags = FPRINT | TABLEPASS | CONDUCT + flags = CONDUCT throwforce = 0 w_class = 3.0 origin_tech = "materials=1" @@ -272,7 +271,6 @@ throw_speed = 1 throw_range = 5 w_class = 2.0 - flags = FPRINT | TABLEPASS attack_verb = list("warned", "cautioned", "smashed") proximity_sign @@ -335,7 +333,7 @@ desc = "Parts of a rack." icon = 'icons/obj/items.dmi' icon_state = "rack_parts" - flags = FPRINT | TABLEPASS| CONDUCT + flags = CONDUCT m_amt = 3750 /*/obj/item/weapon/syndicate_uplink @@ -349,7 +347,7 @@ var/traitor_frequency = 0.0 var/mob/currentUser = null var/obj/item/device/radio/origradio = null - flags = FPRINT | TABLEPASS | CONDUCT | ONBELT + flags = CONDUCT | ONBELT w_class = 2.0 item_state = "radio" throw_speed = 4 @@ -367,7 +365,7 @@ var/selfdestruct = 0.0 var/traitor_frequency = 0.0 var/obj/item/device/radio/origradio = null - flags = FPRINT | TABLEPASS| CONDUCT + flags = CONDUCT slot_flags = SLOT_BELT item_state = "radio" throwforce = 5 @@ -387,7 +385,7 @@ throw_speed = 1 throw_range = 5 w_class = 2.0 - flags = FPRINT | TABLEPASS | NOSHIELD + flags = NOSHIELD attack_verb = list("bludgeoned", "whacked", "disciplined") /obj/item/weapon/staff/broom @@ -407,7 +405,7 @@ throw_speed = 1 throw_range = 5 w_class = 2.0 - flags = FPRINT | TABLEPASS | NOSHIELD + flags = NOSHIELD /obj/item/weapon/table_parts name = "table parts" @@ -416,7 +414,7 @@ icon = 'icons/obj/items.dmi' icon_state = "table_parts" m_amt = 3750 - flags = FPRINT | TABLEPASS| CONDUCT + flags = CONDUCT attack_verb = list("slammed", "bashed", "battered", "bludgeoned", "thrashed", "whacked") /obj/item/weapon/table_parts/reinforced @@ -425,7 +423,7 @@ icon = 'icons/obj/items.dmi' icon_state = "reinf_tableparts" m_amt = 7500 - flags = FPRINT | TABLEPASS| CONDUCT + flags = CONDUCT /obj/item/weapon/table_parts/wood name = "wooden table parts" @@ -453,7 +451,7 @@ icon_state = "std_module" w_class = 2.0 item_state = "electronic" - flags = FPRINT|TABLEPASS|CONDUCT + flags = CONDUCT var/mtype = 1 // 1=electronic 2=hardware /obj/item/weapon/module/card_reader @@ -522,7 +520,7 @@ desc = "A very sharp axe blade upon a short fibremetal handle. It has a long history of chopping things, but now it is used for chopping wood." icon = 'icons/obj/weapons.dmi' icon_state = "hatchet" - flags = FPRINT | TABLEPASS | CONDUCT + flags = CONDUCT force = 12.0 sharp = 1 edge = 1 @@ -553,7 +551,7 @@ throw_speed = 2 throw_range = 3 w_class = 4.0 - flags = FPRINT | TABLEPASS | NOSHIELD + flags = NOSHIELD slot_flags = SLOT_BACK origin_tech = "materials=2;combat=2" attack_verb = list("chopped", "sliced", "cut", "reaped") @@ -577,7 +575,7 @@ w_class = 1 throwforce = 2 var/cigarcount = 6 - flags = ONBELT | TABLEPASS */ + flags = ONBELT */ /obj/item/weapon/pai_cable desc = "A flexible coated cable with a universal jack on one end." diff --git a/code/game/atoms.dm b/code/game/atoms.dm index 6dec5fed5c8..9688d242dc2 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -1,7 +1,7 @@ /atom layer = 2 var/level = 2 - var/flags = FPRINT + var/flags = 0 var/list/fingerprints var/list/fingerprintshidden var/fingerprintslast = null @@ -378,8 +378,6 @@ its easier to just keep the beam vertical. M.dna = new /datum/dna(null) M.dna.real_name = M.real_name M.check_dna() - if (!( src.flags ) & FPRINT) - return 0 if(!blood_DNA || !istype(blood_DNA, /list)) //if our list of DNA doesn't exist yet (or isn't a list) initialise it. blood_DNA = list() diff --git a/code/game/gamemodes/cult/cult_items.dm b/code/game/gamemodes/cult/cult_items.dm index 81c3b5f19d7..be1e71c6bb4 100644 --- a/code/game/gamemodes/cult/cult_items.dm +++ b/code/game/gamemodes/cult/cult_items.dm @@ -3,7 +3,6 @@ desc = "An arcane weapon wielded by the followers of Nar-Sie" icon_state = "cultblade" item_state = "cultblade" - flags = FPRINT | TABLEPASS w_class = 4 force = 30 throwforce = 10 @@ -34,7 +33,7 @@ icon_state = "culthood" desc = "A hood worn by the followers of Nar-Sie." flags_inv = HIDEFACE - flags = FPRINT|TABLEPASS|HEADCOVERSEYES + flags = HEADCOVERSEYES armor = list(melee = 30, bullet = 10, laser = 5,energy = 5, bomb = 0, bio = 0, rad = 0) cold_protection = HEAD min_cold_protection_temperature = SPACE_HELMET_MIN_COLD_PROTECTION_TEMPERATURE @@ -55,7 +54,6 @@ desc = "A set of armored robes worn by the followers of Nar-Sie" icon_state = "cultrobes" item_state = "cultrobes" - flags = FPRINT | TABLEPASS body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS allowed = list(/obj/item/weapon/tome,/obj/item/weapon/melee/cultblade) armor = list(melee = 50, bullet = 30, laser = 50,energy = 20, bomb = 25, bio = 10, rad = 0) @@ -68,7 +66,7 @@ item_state = "magus" desc = "A helm worn by the followers of Nar-Sie." flags_inv = HIDEFACE - flags = FPRINT|TABLEPASS|HEADCOVERSEYES|HEADCOVERSMOUTH|BLOCKHAIR + flags = HEADCOVERSEYES | HEADCOVERSMOUTH | BLOCKHAIR armor = list(melee = 30, bullet = 30, laser = 30,energy = 20, bomb = 0, bio = 0, rad = 0) siemens_coefficient = 0 loose = 6 // mostly one size fits all @@ -78,7 +76,6 @@ desc = "A set of armored robes worn by the followers of Nar-Sie" icon_state = "magusred" item_state = "magusred" - flags = FPRINT | TABLEPASS body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS allowed = list(/obj/item/weapon/tome,/obj/item/weapon/melee/cultblade) armor = list(melee = 50, bullet = 30, laser = 50,energy = 20, bomb = 25, bio = 10, rad = 0) diff --git a/code/game/gamemodes/cult/ritual.dm b/code/game/gamemodes/cult/ritual.dm index 02e20eb7a2f..713a76c048e 100644 --- a/code/game/gamemodes/cult/ritual.dm +++ b/code/game/gamemodes/cult/ritual.dm @@ -114,7 +114,7 @@ var/engwords = list("travel", "blood", "join", "hell", "destroy", "technology", return "itemport" return "[rune_to_english[word1]]_[rune_to_english[word2]]_[rune_to_english[word3]]" - + /obj/effect/rune var/list/effect_dictionary = list( "teleport"=/obj/effect/rune/proc/teleportRune, "itemport"=/obj/effect/rune/proc/itemportRune, @@ -152,7 +152,7 @@ var/engwords = list("travel", "blood", "join", "hell", "destroy", "technology", user << "You are unable to speak at all! You cannot say the words of the rune." if(!word1 || !word2 || !word3 || prob(user.getBrainLoss())) return fizzle() - + var/word_string = get_word_string() if (word_string in effect_dictionary) cult_log("of type [effect_dictionary[word_string]] activated by [key_name_admin(user)].") @@ -178,7 +178,6 @@ var/engwords = list("travel", "blood", "join", "hell", "destroy", "technology", throw_speed = 1 throw_range = 5 w_class = 2.0 - flags = FPRINT | TABLEPASS var/notedat = "" var/tomedat = "" var/list/words = list("ire" = "ire", "ego" = "ego", "nahlizet" = "nahlizet", "certum" = "certum", "veri" = "veri", "jatkaa" = "jatkaa", "balaq" = "balaq", "mgar" = "mgar", "karazet" = "karazet", "geeri" = "geeri") diff --git a/code/game/gamemodes/events/holidays/Christmas.dm b/code/game/gamemodes/events/holidays/Christmas.dm index 2ee79e7c65b..562c34dfec8 100644 --- a/code/game/gamemodes/events/holidays/Christmas.dm +++ b/code/game/gamemodes/events/holidays/Christmas.dm @@ -58,6 +58,5 @@ icon_state = "xmashat" desc = "A crappy paper hat that you are REQUIRED to wear." flags_inv = 0 - flags = FPRINT|TABLEPASS armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0) diff --git a/code/game/gamemodes/mutiny/emergency_authentication_device.dm b/code/game/gamemodes/mutiny/emergency_authentication_device.dm index 8ddcaf47516..6896294c438 100644 --- a/code/game/gamemodes/mutiny/emergency_authentication_device.dm +++ b/code/game/gamemodes/mutiny/emergency_authentication_device.dm @@ -11,7 +11,6 @@ var/secondary_key var/activated = 0 - flags = FPRINT use_power = 0 New(loc, mode) diff --git a/code/game/gamemodes/nuclear/nuclearbomb.dm b/code/game/gamemodes/nuclear/nuclearbomb.dm index 8cfa326239b..5834e1aab2b 100644 --- a/code/game/gamemodes/nuclear/nuclearbomb.dm +++ b/code/game/gamemodes/nuclear/nuclearbomb.dm @@ -23,11 +23,10 @@ var/bomb_set var/timing_wire var/removal_stage = 0 // 0 is no removal, 1 is covers removed, 2 is covers open, 3 is sealant open, 4 is unwrenched, 5 is removed from bolts. var/lastentered - var/data[0] + var/data[0] var/uiwidth var/uiheight var/uititle - flags = FPRINT use_power = 0 unacidable = 1 @@ -85,7 +84,7 @@ var/bomb_set if (istype(O, /obj/item/device/multitool) || istype(O, /obj/item/weapon/wirecutters)) ui_interact(user) - + if (src.extended) if (istype(O, /obj/item/weapon/disk/nuclear)) usr.drop_item() @@ -187,7 +186,7 @@ var/bomb_set obj/machinery/nuclearbomb/proc/nukehack_win(mob/user as mob) ui_interact(user) - + /obj/machinery/nuclearbomb/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1) if(!src.opened) data["hacking"] = 0 @@ -198,12 +197,12 @@ obj/machinery/nuclearbomb/proc/nukehack_win(mob/user as mob) else data["authstatus"] = "Auth. S2" else - if (src.timing) + if (src.timing) data["authstatus"] = "Set" else data["authstatus"] = "Auth. S1" - data["safe"] = src.safety ? "Safe" : "Engaged" - data["time"] = src.timeleft + data["safe"] = src.safety ? "Safe" : "Engaged" + data["time"] = src.timeleft data["timer"] = src.timing data["safety"] = src.safety data["anchored"] = src.anchored @@ -218,7 +217,7 @@ obj/machinery/nuclearbomb/proc/nukehack_win(mob/user as mob) uititle = "Nuke Control Panel" else data["hacking"] = 1 - var/list/tempwires[0] + var/list/tempwires[0] for(var/wire in src.wires) tempwires.Add(list(list("name" = wire, "cut" = src.wires[wire]))) data["wires"] = tempwires @@ -228,10 +227,10 @@ obj/machinery/nuclearbomb/proc/nukehack_win(mob/user as mob) uiwidth = 420 uiheight = 440 uititle = "Nuclear Bomb Defusion" - ui = nanomanager.try_update_ui(user, src, ui_key, ui, data, force_open) + ui = nanomanager.try_update_ui(user, src, ui_key, ui, data, force_open) if (!ui) ui = new(user, src, ui_key, "nuclear_bomb.tmpl", uititle, uiwidth, uiheight) - ui.set_initial_data(data) + ui.set_initial_data(data) ui.open() /obj/machinery/nuclearbomb/verb/make_deployable() @@ -338,8 +337,8 @@ obj/machinery/nuclearbomb/proc/nukehack_win(mob/user as mob) if (src.timing == -1.0) return if (src.safety) - usr << "\red The safety is still on." - nanomanager.update_uis(src) + usr << "\red The safety is still on." + nanomanager.update_uis(src) return src.timing = !( src.timing ) if (src.timing) @@ -427,7 +426,7 @@ obj/machinery/nuclearbomb/proc/nukehack_win(mob/user as mob) if(ticker.mode.name == "nuclear emergency") ticker.mode:nukes_left -- else if(off_station == 1) - world << "A nuclear device was set off, but the explosion was out of reach of the station!" + world << "A nuclear device was set off, but the explosion was out of reach of the station!" else if(off_station == 2) world << "A nuclear device was set off, but the device was not on the station!" else diff --git a/code/game/gamemodes/nuclear/pinpointer.dm b/code/game/gamemodes/nuclear/pinpointer.dm index a0b777d75dd..8d3a4fe1c17 100644 --- a/code/game/gamemodes/nuclear/pinpointer.dm +++ b/code/game/gamemodes/nuclear/pinpointer.dm @@ -2,7 +2,7 @@ name = "pinpointer" icon = 'icons/obj/device.dmi' icon_state = "pinoff" - flags = FPRINT | TABLEPASS| CONDUCT + flags = CONDUCT slot_flags = SLOT_BELT w_class = 2.0 item_state = "electronic" @@ -344,7 +344,7 @@ icon_state = "pinonfar" spawn(5) .() - + /obj/item/weapon/pinpointer/operative name = "operative pinpointer" icon = 'icons/obj/device.dmi' @@ -379,7 +379,7 @@ user << "Nearest operative: [nearest_op]." if(nearest_op == null && active) user << "No operatives detected within scanning range." - + /obj/item/weapon/pinpointer/operative/proc/point_at(atom/target, spawnself = 1) if(!active) return diff --git a/code/game/gamemodes/wizard/artefact.dm b/code/game/gamemodes/wizard/artefact.dm index dc215129748..f720ad96267 100644 --- a/code/game/gamemodes/wizard/artefact.dm +++ b/code/game/gamemodes/wizard/artefact.dm @@ -9,7 +9,6 @@ throw_range = 5 w_class = 1.0 var/used = 0 - flags = FPRINT | TABLEPASS /obj/item/weapon/contract/attack_self(mob/user as mob) @@ -116,7 +115,6 @@ icon = 'icons/obj/wizard.dmi' icon_state = "render" item_state = "render" - flags = FPRINT | TABLEPASS force = 15 throwforce = 10 w_class = 3 @@ -197,7 +195,6 @@ throwforce = 15 damtype = BURN force = 15 - flags = FPRINT | TABLEPASS hitsound = 'sound/items/welder2.ogg' /obj/item/weapon/scrying/attack_self(mob/user as mob) diff --git a/code/game/gamemodes/wizard/soulstone.dm b/code/game/gamemodes/wizard/soulstone.dm index ef596e5d5ad..20cf7da809f 100644 --- a/code/game/gamemodes/wizard/soulstone.dm +++ b/code/game/gamemodes/wizard/soulstone.dm @@ -5,7 +5,6 @@ item_state = "electronic" desc = "A fragment of the legendary treasure known simply as the 'Soul Stone'. The shard still flickers with a fraction of the full artefacts power." w_class = 1.0 - flags = FPRINT | TABLEPASS slot_flags = SLOT_BELT origin_tech = "bluespace=4;materials=4" var/imprinted = "empty" @@ -90,7 +89,6 @@ icon = 'icons/obj/wizard.dmi' icon_state = "construct" desc = "A wicked machine used by those skilled in magical arts. It is inactive" - flags = FPRINT | TABLEPASS /obj/structure/constructshell/attackby(obj/item/O as obj, mob/user as mob) if(istype(O, /obj/item/device/soulstone)) diff --git a/code/game/gamemodes/wizard/spellbook.dm b/code/game/gamemodes/wizard/spellbook.dm index d546970870d..a88ddcc1bc7 100644 --- a/code/game/gamemodes/wizard/spellbook.dm +++ b/code/game/gamemodes/wizard/spellbook.dm @@ -6,7 +6,6 @@ throw_speed = 1 throw_range = 5 w_class = 1.0 - flags = FPRINT | TABLEPASS var/uses = 5 var/temp = null var/max_uses = 5 diff --git a/code/game/machinery/alarm.dm b/code/game/machinery/alarm.dm index 1424886eae7..7dbc03dc37b 100644 --- a/code/game/machinery/alarm.dm +++ b/code/game/machinery/alarm.dm @@ -727,15 +727,15 @@ wires.Interact(user) if(!shorted) ui_interact(user) - + /obj/machinery/alarm/proc/can_use(mob/user as mob) if (user.stat && !isobserver(user)) user << "\red You must be conscious to use this [src]!" return 0 - + if(stat & (NOPOWER|BROKEN)) return 0 - + if(buildstage != 2) return 0 @@ -747,7 +747,7 @@ return 0 return 1 - + /obj/machinery/alarm/proc/is_authenticated(mob/user as mob) if(isAI(user) || isrobot(user)) return 1 @@ -757,7 +757,7 @@ /obj/machinery/alarm/Topic(href, href_list) if(..()) return 1 - + if(!can_use(usr)) return 1 @@ -781,7 +781,7 @@ if(href_list["command"]) if(!is_authenticated(usr)) return - + var/device_id = href_list["id_tag"] switch(href_list["command"]) if( "power", @@ -869,7 +869,7 @@ if(href_list["screen"]) if(!is_authenticated(usr)) return - + screen = text2num(href_list["screen"]) ui_interact(usr) return 1 @@ -877,7 +877,7 @@ if(href_list["atmos_alarm"]) if(!is_authenticated(usr)) return - + alarmActivated=1 alarm_area.updateDangerLevel() update_icon() @@ -887,7 +887,7 @@ if(href_list["atmos_reset"]) if(!is_authenticated(usr)) return - + alarmActivated=0 alarm_area.updateDangerLevel() update_icon() @@ -897,7 +897,7 @@ if(href_list["mode"]) if(!is_authenticated(usr)) return - + mode = text2num(href_list["mode"]) apply_mode() ui_interact(usr) @@ -906,7 +906,7 @@ if(href_list["preset"]) if(!is_authenticated(usr)) return - + preset = text2num(href_list["preset"]) apply_preset() ui_interact(usr) @@ -1059,7 +1059,7 @@ Code shamelessly copied from apc_frame desc = "Used for building Air Alarms" icon = 'icons/obj/monitors.dmi' icon_state = "alarm_bitem" - flags = FPRINT | TABLEPASS| CONDUCT + flags = CONDUCT /obj/item/alarm_frame/attackby(obj/item/weapon/W as obj, mob/user as mob) if (istype(W, /obj/item/weapon/wrench)) @@ -1395,7 +1395,7 @@ Code shamelessly copied from apc_frame desc = "Used for building Fire Alarms" icon = 'icons/obj/monitors.dmi' icon_state = "fire_bitem" - flags = FPRINT | TABLEPASS| CONDUCT + flags = CONDUCT /obj/item/firealarm_frame/attackby(obj/item/weapon/W as obj, mob/user as mob) if (istype(W, /obj/item/weapon/wrench)) diff --git a/code/game/machinery/atmoalter/canister.dm b/code/game/machinery/atmoalter/canister.dm index 580783b6df1..1b7dd28dfc6 100644 --- a/code/game/machinery/atmoalter/canister.dm +++ b/code/game/machinery/atmoalter/canister.dm @@ -4,7 +4,6 @@ icon_state = "yellow" density = 1 var/health = 100.0 - flags = FPRINT | CONDUCT var/valve_open = 0 var/release_pressure = ONE_ATMOSPHERE diff --git a/code/game/machinery/bees_items.dm b/code/game/machinery/bees_items.dm index 01ed5bfa407..01e5d96ac02 100644 --- a/code/game/machinery/bees_items.dm +++ b/code/game/machinery/bees_items.dm @@ -65,7 +65,6 @@ name = "bottle of BeezEez" icon = 'icons/obj/chemical.dmi' icon_state = "bottle17" - flags = FPRINT | TABLEPASS New() src.pixel_x = rand(-5.0, 5) src.pixel_y = rand(-5.0, 5) diff --git a/code/game/machinery/computer/HolodeckControl.dm b/code/game/machinery/computer/HolodeckControl.dm index cd78210b41f..98f91fecc61 100644 --- a/code/game/machinery/computer/HolodeckControl.dm +++ b/code/game/machinery/computer/HolodeckControl.dm @@ -489,7 +489,7 @@ throw_range = 5 throwforce = 0 w_class = 2.0 - flags = FPRINT | TABLEPASS | NOSHIELD + flags = NOSHIELD var/active = 0 /obj/item/weapon/holo/esword/green diff --git a/code/game/machinery/pipe/construction.dm b/code/game/machinery/pipe/construction.dm index c1cbc65c297..84ec1966a1c 100644 --- a/code/game/machinery/pipe/construction.dm +++ b/code/game/machinery/pipe/construction.dm @@ -56,7 +56,6 @@ Buildable meters icon = 'icons/obj/pipe-item.dmi' icon_state = "simple" item_state = "buildpipe" - flags = TABLEPASS|FPRINT w_class = 3 level = 2 @@ -432,7 +431,7 @@ Buildable meters if (P.node2) P.node2.initialize() P.node2.build_network() - + if(PIPE_SUPPLY_STRAIGHT, PIPE_SUPPLY_BENT) var/obj/machinery/atmospherics/pipe/simple/hidden/supply/P = new( src.loc ) P.color = color @@ -546,7 +545,7 @@ Buildable meters if (M.node3) M.node3.initialize() M.node3.build_network() - + if(PIPE_SUPPLY_MANIFOLD) //manifold var/obj/machinery/atmospherics/pipe/manifold/hidden/supply/M = new( src.loc ) M.color = color @@ -618,7 +617,7 @@ Buildable meters if (M.node4) M.node4.initialize() M.node4.build_network() - + if(PIPE_SUPPLY_MANIFOLD4W) //4-way manifold var/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply/M = new( src.loc ) M.color = color @@ -904,7 +903,7 @@ Buildable meters if(C.node) C.node.initialize() C.node.build_network() - + if(PIPE_SUPPLY_CAP) var/obj/machinery/atmospherics/pipe/cap/hidden/supply/C = new(src.loc) C.dir = dir @@ -1039,7 +1038,6 @@ Buildable meters icon = 'icons/obj/pipe-item.dmi' icon_state = "meter" item_state = "buildpipe" - flags = TABLEPASS|FPRINT w_class = 4 /obj/item/pipe_meter/attackby(var/obj/item/weapon/W as obj, var/mob/user as mob) diff --git a/code/game/machinery/shieldgen.dm b/code/game/machinery/shieldgen.dm index e6225f648d7..364abbfaf64 100644 --- a/code/game/machinery/shieldgen.dm +++ b/code/game/machinery/shieldgen.dm @@ -335,7 +335,7 @@ // var/maxshieldload = 200 var/obj/structure/cable/attached // the attached cable var/storedpower = 0 - flags = FPRINT | CONDUCT + flags = CONDUCT use_power = 0 /obj/machinery/shieldwallgen/proc/power() diff --git a/code/game/machinery/spaceheater.dm b/code/game/machinery/spaceheater.dm index de3cf6964d6..fd90622de14 100644 --- a/code/game/machinery/spaceheater.dm +++ b/code/game/machinery/spaceheater.dm @@ -11,7 +11,6 @@ var/set_temperature = 50 // in celcius, add T0C for kelvin var/heating_power = 40000 - flags = FPRINT New() diff --git a/code/game/mecha/mecha_parts.dm b/code/game/mecha/mecha_parts.dm index 58b2d2215ce..f89390139b6 100644 --- a/code/game/mecha/mecha_parts.dm +++ b/code/game/mecha/mecha_parts.dm @@ -7,7 +7,7 @@ icon = 'icons/mecha/mech_construct.dmi' icon_state = "blank" w_class = 6 - flags = FPRINT | TABLEPASS | CONDUCT + flags = CONDUCT origin_tech = "programming=2;materials=2" var/construction_time = 100 var/list/construction_cost = list("metal"=20000,"glass"=5000) @@ -18,7 +18,7 @@ icon_state = "backbone" var/datum/construction/construct construction_cost = list("metal"=20000) - flags = FPRINT | CONDUCT + flags = CONDUCT attackby(obj/item/W as obj, mob/user as mob) if(!construct || !construct.action(W, user)) @@ -409,7 +409,7 @@ icon_state = "std_mod" item_state = "electronic" board_type = "other" - flags = FPRINT | TABLEPASS | CONDUCT + flags = CONDUCT force = 5.0 w_class = 2.0 throwforce = 5.0 diff --git a/code/game/objects/effects/effect_system.dm b/code/game/objects/effects/effect_system.dm index 27db5475d94..76ec87bb26c 100644 --- a/code/game/objects/effects/effect_system.dm +++ b/code/game/objects/effects/effect_system.dm @@ -11,14 +11,12 @@ would spawn and follow the beaker, even if it is carried or thrown. icon = 'icons/effects/effects.dmi' mouse_opacity = 0 unacidable = 1//So effect are not targeted by alien acid. - flags = TABLEPASS /obj/effect/effect/water name = "water" icon = 'icons/effects/effects.dmi' icon_state = "extinguish" var/life = 15.0 - flags = TABLEPASS mouse_opacity = 0 /obj/effect/effect/smoke diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index 21179bd93dd..4a17dadcabc 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -11,7 +11,6 @@ var/health = null var/hitsound = null var/w_class = 3.0 - flags = FPRINT | TABLEPASS var/slot_flags = 0 //This is used to determine on which slots an item can fit. pass_flags = PASSTABLE pressure_resistance = 5 diff --git a/code/game/objects/items/apc_frame.dm b/code/game/objects/items/apc_frame.dm index f2e760a34a5..b81a80a5f65 100644 --- a/code/game/objects/items/apc_frame.dm +++ b/code/game/objects/items/apc_frame.dm @@ -5,7 +5,7 @@ desc = "Used for repairing or building APCs" icon = 'icons/obj/apc_repair.dmi' icon_state = "apc_frame" - flags = FPRINT | TABLEPASS| CONDUCT + flags = CONDUCT /obj/item/apc_frame/attackby(obj/item/weapon/W as obj, mob/user as mob) ..() diff --git a/code/game/objects/items/devices/PDA/PDA.dm b/code/game/objects/items/devices/PDA/PDA.dm index 826de6fd4c4..7fc662558d1 100755 --- a/code/game/objects/items/devices/PDA/PDA.dm +++ b/code/game/objects/items/devices/PDA/PDA.dm @@ -11,7 +11,6 @@ var/global/list/obj/item/device/pda/PDAs = list() icon_state = "pda" item_state = "electronic" w_class = 1.0 - flags = FPRINT | TABLEPASS slot_flags = SLOT_PDA | SLOT_BELT //Main variables @@ -129,15 +128,15 @@ var/global/list/obj/item/device/pda/PDAs = list() icon_state = "pda-captain" detonate = 0 //toff = 1 - + /obj/item/device/pda/heads/ntrep default_cartridge = /obj/item/weapon/cartridge/supervisor icon_state = "pda-h" - + /obj/item/device/pda/heads/magistrate default_cartridge = /obj/item/weapon/cartridge/supervisor icon_state = "pda-h" - + /obj/item/device/pda/heads/blueshield default_cartridge = /obj/item/weapon/cartridge/hos icon_state = "pda-h" @@ -204,7 +203,7 @@ var/global/list/obj/item/device/pda/PDAs = list() /obj/item/device/pda/geneticist default_cartridge = /obj/item/weapon/cartridge/medical icon_state = "pda-genetics" - + /obj/item/device/pda/centcom default_cartridge = /obj/item/weapon/cartridge/centcom icon_state = "pda-h" diff --git a/code/game/objects/items/devices/aicard.dm b/code/game/objects/items/devices/aicard.dm index 7816473110e..144b920631c 100644 --- a/code/game/objects/items/devices/aicard.dm +++ b/code/game/objects/items/devices/aicard.dm @@ -4,7 +4,6 @@ icon_state = "aicard" // aicard-full item_state = "electronic" w_class = 2.0 - flags = FPRINT | TABLEPASS slot_flags = SLOT_BELT var/flush = null origin_tech = "programming=4;materials=4" @@ -137,4 +136,4 @@ if(2.0) if(prob(50)) del(src) if(3.0) - if(prob(25)) del(src) + if(prob(25)) del(src) diff --git a/code/game/objects/items/devices/autopsy.dm b/code/game/objects/items/devices/autopsy.dm index 8c5fbf7661e..67a424a309f 100644 --- a/code/game/objects/items/devices/autopsy.dm +++ b/code/game/objects/items/devices/autopsy.dm @@ -7,7 +7,7 @@ desc = "Extracts information on wounds." icon = 'icons/obj/autopsy_scanner.dmi' icon_state = "" - flags = FPRINT | TABLEPASS | CONDUCT + flags = CONDUCT w_class = 1.0 origin_tech = "materials=1;biotech=1" var/list/datum/autopsy_data_scanner/wdata = list() diff --git a/code/game/objects/items/devices/chameleonproj.dm b/code/game/objects/items/devices/chameleonproj.dm index 008a469dff9..de79a855768 100644 --- a/code/game/objects/items/devices/chameleonproj.dm +++ b/code/game/objects/items/devices/chameleonproj.dm @@ -1,7 +1,7 @@ /obj/item/device/chameleon name = "chameleon-projector" icon_state = "shield0" - flags = FPRINT | TABLEPASS| CONDUCT + flags = CONDUCT slot_flags = SLOT_BELT item_state = "electronic" throwforce = 5.0 diff --git a/code/game/objects/items/devices/debugger.dm b/code/game/objects/items/devices/debugger.dm index 7a05fc696a9..1b9d5e13344 100644 --- a/code/game/objects/items/devices/debugger.dm +++ b/code/game/objects/items/devices/debugger.dm @@ -9,7 +9,7 @@ name = "debugger" desc = "Used to debug electronic equipment." icon_state = "hacktool-g" - flags = FPRINT | TABLEPASS| CONDUCT + flags = CONDUCT force = 5.0 w_class = 2.0 throwforce = 5.0 diff --git a/code/game/objects/items/devices/flash.dm b/code/game/objects/items/devices/flash.dm index 9c17c585b39..09b5201fdb0 100644 --- a/code/game/objects/items/devices/flash.dm +++ b/code/game/objects/items/devices/flash.dm @@ -7,7 +7,7 @@ w_class = 1 throw_speed = 3 throw_range = 7 - flags = FPRINT | TABLEPASS | CONDUCT + flags = CONDUCT origin_tech = "magnets=2;combat=1" var/times_used = 0 //Number of times it's been used. diff --git a/code/game/objects/items/devices/flashlight.dm b/code/game/objects/items/devices/flashlight.dm index 5c4201e2bc0..10c31d54773 100644 --- a/code/game/objects/items/devices/flashlight.dm +++ b/code/game/objects/items/devices/flashlight.dm @@ -5,7 +5,7 @@ icon_state = "flashlight" item_state = "flashlight" w_class = 2 - flags = FPRINT | TABLEPASS | CONDUCT + flags = CONDUCT slot_flags = SLOT_BELT m_amt = 50 g_amt = 20 @@ -107,7 +107,7 @@ item_state = "" w_class = 1 slot_flags = SLOT_BELT | SLOT_EARS - flags = FPRINT | TABLEPASS | CONDUCT + flags = CONDUCT brightness_on = 2 /obj/item/device/flashlight/seclite @@ -125,7 +125,7 @@ desc = "A miniature lamp, that might be used by small robots." icon_state = "penlight" item_state = "" - flags = FPRINT | TABLEPASS | CONDUCT + flags = CONDUCT brightness_on = 2 w_class = 1 diff --git a/code/game/objects/items/devices/laserpointer.dm b/code/game/objects/items/devices/laserpointer.dm index 9c8f766714f..d3ba41ca58c 100644 --- a/code/game/objects/items/devices/laserpointer.dm +++ b/code/game/objects/items/devices/laserpointer.dm @@ -5,7 +5,7 @@ icon_state = "pointer" item_state = "pen" var/pointer_icon_state - flags = FPRINT | TABLEPASS | CONDUCT | USEDELAY + flags = CONDUCT | USEDELAY slot_flags = SLOT_BELT m_amt = 500 g_amt = 500 diff --git a/code/game/objects/items/devices/lightreplacer.dm b/code/game/objects/items/devices/lightreplacer.dm index 63836e9ecc6..6a8e7d7a2c2 100644 --- a/code/game/objects/items/devices/lightreplacer.dm +++ b/code/game/objects/items/devices/lightreplacer.dm @@ -47,7 +47,7 @@ icon_state = "lightreplacer0" item_state = "electronic" - flags = FPRINT | CONDUCT + flags = CONDUCT slot_flags = SLOT_BELT origin_tech = "magnets=3;materials=2" diff --git a/code/game/objects/items/devices/megaphone.dm b/code/game/objects/items/devices/megaphone.dm index 0d12f8262b6..90a8f3fc1a2 100644 --- a/code/game/objects/items/devices/megaphone.dm +++ b/code/game/objects/items/devices/megaphone.dm @@ -4,7 +4,7 @@ icon_state = "megaphone" item_state = "radio" w_class = 1.0 - flags = FPRINT | TABLEPASS | CONDUCT + flags = CONDUCT var/spamcheck = 0 var/emagged = 0 diff --git a/code/game/objects/items/devices/multitool.dm b/code/game/objects/items/devices/multitool.dm index 85a30681b1a..21bd2c49ddf 100644 --- a/code/game/objects/items/devices/multitool.dm +++ b/code/game/objects/items/devices/multitool.dm @@ -8,7 +8,7 @@ name = "multitool" desc = "Used for pulsing wires to test which to cut. Not recommended by doctors." icon_state = "multitool" - flags = FPRINT | TABLEPASS| CONDUCT + flags = CONDUCT force = 5.0 w_class = 2.0 throwforce = 5.0 diff --git a/code/game/objects/items/devices/paicard.dm b/code/game/objects/items/devices/paicard.dm index cb7dea3371d..cdd866e41c6 100644 --- a/code/game/objects/items/devices/paicard.dm +++ b/code/game/objects/items/devices/paicard.dm @@ -4,7 +4,6 @@ icon_state = "pai" item_state = "electronic" w_class = 2.0 - flags = FPRINT | TABLEPASS slot_flags = SLOT_BELT origin_tech = "programming=2" var/obj/item/device/radio/radio diff --git a/code/game/objects/items/devices/powersink.dm b/code/game/objects/items/devices/powersink.dm index 088a51574ab..6fb0a998d0b 100644 --- a/code/game/objects/items/devices/powersink.dm +++ b/code/game/objects/items/devices/powersink.dm @@ -6,7 +6,7 @@ icon_state = "powersink0" item_state = "electronic" w_class = 4.0 - flags = FPRINT | TABLEPASS | CONDUCT + flags = CONDUCT throwforce = 5 throw_speed = 1 throw_range = 2 diff --git a/code/game/objects/items/devices/radio/electropack.dm b/code/game/objects/items/devices/radio/electropack.dm index ccdc3a9bce4..686fd4e3ae1 100644 --- a/code/game/objects/items/devices/radio/electropack.dm +++ b/code/game/objects/items/devices/radio/electropack.dm @@ -4,7 +4,7 @@ icon_state = "electropack0" item_state = "electropack" frequency = 1449 - flags = FPRINT | CONDUCT | TABLEPASS + flags = CONDUCT slot_flags = SLOT_BACK w_class = 5.0 g_amt = 2500 diff --git a/code/game/objects/items/devices/radio/intercom.dm b/code/game/objects/items/devices/radio/intercom.dm index 3f30f0c03e7..0f5f9f64ac1 100644 --- a/code/game/objects/items/devices/radio/intercom.dm +++ b/code/game/objects/items/devices/radio/intercom.dm @@ -5,7 +5,7 @@ anchored = 1 w_class = 4.0 canhear_range = 5 - flags = FPRINT | CONDUCT | TABLEPASS | NOBLOODY + flags = CONDUCT | NOBLOODY var/number = 0 var/anyai = 1 var/mob/living/silicon/ai/ai = list() diff --git a/code/game/objects/items/devices/radio/radio.dm b/code/game/objects/items/devices/radio/radio.dm index 9f177bdf642..28fdc835308 100644 --- a/code/game/objects/items/devices/radio/radio.dm +++ b/code/game/objects/items/devices/radio/radio.dm @@ -26,7 +26,7 @@ var/GLOBAL_RADIO_TYPE = 1 // radio type to use var/syndie = 0//Holder to see if it's a syndicate encrypted radio var/maxf = 1499 // "Example" = FREQ_LISTENING|FREQ_BROADCASTING - flags = FPRINT | CONDUCT | TABLEPASS + flags = CONDUCT slot_flags = SLOT_BELT throw_speed = 2 throw_range = 9 diff --git a/code/game/objects/items/devices/scanners.dm b/code/game/objects/items/devices/scanners.dm index fd084bab1a9..097c60d57df 100644 --- a/code/game/objects/items/devices/scanners.dm +++ b/code/game/objects/items/devices/scanners.dm @@ -13,7 +13,6 @@ REAGENT SCANNER desc = "A terahertz-ray emitter and scanner used to detect underfloor objects such as cables and pipes." icon_state = "t-ray0" var/on = 0 - flags = FPRINT | TABLEPASS slot_flags = SLOT_BELT w_class = 2 item_state = "electronic" @@ -99,7 +98,7 @@ REAGENT SCANNER item_state = "healthanalyzer" icon_override = 'icons/mob/in-hand/tools.dmi' desc = "A hand-held body scanner able to distinguish vital signs of the subject." - flags = FPRINT | TABLEPASS | CONDUCT + flags = CONDUCT slot_flags = SLOT_BELT throwforce = 3 w_class = 1.0 @@ -260,7 +259,7 @@ REAGENT SCANNER icon_state = "atmos" item_state = "analyzer" w_class = 2.0 - flags = FPRINT | TABLEPASS| CONDUCT + flags = CONDUCT slot_flags = SLOT_BELT throwforce = 5 throw_speed = 4 @@ -330,7 +329,7 @@ REAGENT SCANNER icon_state = "spectrometer" item_state = "analyzer" w_class = 2.0 - flags = FPRINT | TABLEPASS| CONDUCT | OPENCONTAINER + flags = CONDUCT | OPENCONTAINER slot_flags = SLOT_BELT throwforce = 5 throw_speed = 4 @@ -403,7 +402,7 @@ REAGENT SCANNER icon_state = "spectrometer" item_state = "analyzer" w_class = 2.0 - flags = FPRINT | TABLEPASS | CONDUCT + flags = CONDUCT slot_flags = SLOT_BELT throwforce = 5 throw_speed = 4 diff --git a/code/game/objects/items/devices/suit_cooling.dm b/code/game/objects/items/devices/suit_cooling.dm index f4dfd0bf245..9c98165239e 100644 --- a/code/game/objects/items/devices/suit_cooling.dm +++ b/code/game/objects/items/devices/suit_cooling.dm @@ -5,23 +5,23 @@ icon = 'icons/obj/device.dmi' icon_state = "suitcooler0" slot_flags = SLOT_BACK //you can carry it on your back if you want, but it won't do anything unless attached to suit storage - + //copied from tank.dm - flags = FPRINT | TABLEPASS | CONDUCT + flags = CONDUCT force = 5.0 throwforce = 10.0 throw_speed = 1 throw_range = 4 - + origin_tech = "magnets=2;materials=2" - + var/on = 0 //is it turned on? var/cover_open = 0 //is the cover open? var/obj/item/weapon/stock_parts/cell/cell var/max_cooling = 12 //in degrees per second - probably don't need to mess with heat capacity here var/charge_consumption = 16.6 //charge per second at max_cooling var/thermostat = T20C - + //TODO: make it heat up the surroundings when not in space /obj/item/device/suit_cooling_unit/New() @@ -30,26 +30,26 @@ /obj/item/device/suit_cooling_unit/proc/cool_mob(mob/M) if (!on || !cell) return - + //make sure they have a suit and we are attached to it if (!attached_to_suit(M)) return - + var/mob/living/carbon/human/H = M - + var/efficiency = H.get_pressure_protection() //you need to have a good seal for effective cooling var/env_temp = get_environment_temperature() //wont save you from a fire var/temp_adj = min(H.bodytemperature - max(thermostat, env_temp), max_cooling) - + if (temp_adj < 0) //only cools, doesn't heat return - + var/charge_usage = (temp_adj/max_cooling)*charge_consumption - + H.bodytemperature -= temp_adj*efficiency - + cell.use(charge_usage) - + if(cell.charge <= 0) turn_off() @@ -65,22 +65,22 @@ var/turf/T = get_turf(src) if(istype(T, /turf/space)) return 0 //space has no temperature, this just makes sure the cooling unit works in space - + var/datum/gas_mixture/environment = T.return_air() if (!environment) return 0 - + return environment.temperature /obj/item/device/suit_cooling_unit/proc/attached_to_suit(mob/M) - if (!ishuman(M)) + if (!ishuman(M)) return 0 - + var/mob/living/carbon/human/H = M - + if (!H.wear_suit || H.s_store != src) return 0 - + return 1 /obj/item/device/suit_cooling_unit/proc/turn_on() @@ -88,7 +88,7 @@ return if(cell.charge <= 0) return - + on = 1 updateicon() @@ -143,7 +143,7 @@ user << "You insert the [cell]." updateicon() return - + return ..() /obj/item/device/suit_cooling_unit/proc/updateicon() @@ -157,9 +157,9 @@ /obj/item/device/suit_cooling_unit/examine() set src in view(1) - + ..() - + if (on) if (attached_to_suit(src.loc)) usr << "It's switched on and running." @@ -167,13 +167,13 @@ usr << "It's switched on, but not attached to anything." else usr << "It is switched off." - + if (cover_open) if(cell) usr << "The panel is open, exposing the [cell]." else usr << "The panel is open." - + if (cell) usr << "The charge meter reads [round(cell.percent())]%." else diff --git a/code/game/objects/items/devices/taperecorder.dm b/code/game/objects/items/devices/taperecorder.dm index 555dbe1caea..ef39a621019 100644 --- a/code/game/objects/items/devices/taperecorder.dm +++ b/code/game/objects/items/devices/taperecorder.dm @@ -14,7 +14,7 @@ var/list/storedinfo = new/list() var/list/timestamp = new/list() var/canprint = 1 - flags = FPRINT | TABLEPASS| CONDUCT + flags = CONDUCT throwforce = 2 throw_speed = 4 throw_range = 20 diff --git a/code/game/objects/items/devices/traitordevices.dm b/code/game/objects/items/devices/traitordevices.dm index b80f89f2295..d49b8e19b4c 100644 --- a/code/game/objects/items/devices/traitordevices.dm +++ b/code/game/objects/items/devices/traitordevices.dm @@ -22,7 +22,7 @@ effective or pretty fucking useless. w_class = 1.0 throw_speed = 4 throw_range = 10 - flags = FPRINT | TABLEPASS| CONDUCT + flags = CONDUCT item_state = "electronic" origin_tech = "magnets=3;combat=3;syndicate=3" @@ -78,7 +78,7 @@ effective or pretty fucking useless. item_state = "healthanalyzer" icon_override = 'icons/mob/in-hand/tools.dmi' desc = "A hand-held body scanner able to distinguish vital signs of the subject. A strange microlaser is hooked on to the scanning end." - flags = FPRINT | TABLEPASS | CONDUCT + flags = CONDUCT slot_flags = SLOT_BELT discrete = 1 // Makes the item not give an attack log message for viewers. throwforce = 3 diff --git a/code/game/objects/items/devices/whistle.dm b/code/game/objects/items/devices/whistle.dm index 3b26c943acb..53bd2ea6b38 100644 --- a/code/game/objects/items/devices/whistle.dm +++ b/code/game/objects/items/devices/whistle.dm @@ -4,7 +4,7 @@ icon_state = "voice0" item_state = "flashbang" //looks exactly like a flash (and nothing like a flashbang) w_class = 1.0 - flags = FPRINT | TABLEPASS | CONDUCT + flags = CONDUCT var/spamcheck = 0 var/emagged = 0 diff --git a/code/game/objects/items/policetape.dm b/code/game/objects/items/policetape.dm index 8a1cc09c7ec..1c4c17e1cfd 100644 --- a/code/game/objects/items/policetape.dm +++ b/code/game/objects/items/policetape.dm @@ -3,7 +3,6 @@ name = "tape roll" icon = 'icons/policetape.dmi' icon_state = "rollstart" - flags = FPRINT w_class = 1.0 var/turf/start var/turf/end @@ -115,7 +114,7 @@ if(!density) return 1 if(air_group || (height==0)) return 1 - if ((mover.flags & 2 || istype(mover, /obj/effect/meteor) || mover.throwing == 1) ) + if ((mover.pass_flags & PASSTABLE || istype(mover, /obj/effect/meteor) || mover.throwing == 1) ) return 1 else return 0 @@ -134,9 +133,9 @@ /obj/item/tape/attack_paw(mob/user as mob) breaktape(/obj/item/weapon/wirecutters,user) - + /obj/item/tape/attack_alien(mob/user as mob) - breaktape(/obj/item/weapon/wirecutters,user) + breaktape(/obj/item/weapon/wirecutters,user) /obj/item/tape/proc/breaktape(obj/item/weapon/W as obj, mob/user as mob) if(user.a_intent == "help" && ((!can_puncture(W) && src.allowed(user)))) diff --git a/code/game/objects/items/robot/robot_parts.dm b/code/game/objects/items/robot/robot_parts.dm index b1f5a1570fd..07475fcba43 100644 --- a/code/game/objects/items/robot/robot_parts.dm +++ b/code/game/objects/items/robot/robot_parts.dm @@ -3,7 +3,7 @@ icon = 'icons/obj/robot_parts.dmi' item_state = "buildpipe" icon_state = "blank" - flags = FPRINT | TABLEPASS | CONDUCT + flags = CONDUCT slot_flags = SLOT_BELT var/construction_time = 100 var/list/construction_cost = list("metal"=20000,"glass"=5000) diff --git a/code/game/objects/items/stacks/rods.dm b/code/game/objects/items/stacks/rods.dm index 4414c3d8694..0bdbfe90647 100644 --- a/code/game/objects/items/stacks/rods.dm +++ b/code/game/objects/items/stacks/rods.dm @@ -3,7 +3,7 @@ desc = "Some rods. Can be used for building, or something." singular_name = "metal rod" icon_state = "rods" - flags = FPRINT | TABLEPASS| CONDUCT + flags = CONDUCT w_class = 3.0 force = 9.0 throwforce = 15.0 @@ -65,4 +65,4 @@ usr << "\blue You assemble a grille" F.add_fingerprint(usr) use(2) - return + return diff --git a/code/game/objects/items/stacks/sheets/light.dm b/code/game/objects/items/stacks/sheets/light.dm index faacdf59df8..a43dda1323e 100644 --- a/code/game/objects/items/stacks/sheets/light.dm +++ b/code/game/objects/items/stacks/sheets/light.dm @@ -8,7 +8,7 @@ throwforce = 5.0 throw_speed = 5 throw_range = 20 - flags = FPRINT | TABLEPASS | CONDUCT + flags = CONDUCT max_amount = 60 /obj/item/stack/light_w/attackby(var/obj/item/O as obj, var/mob/user as mob) diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm index 1cc1ac1695e..b510d6be4f6 100644 --- a/code/game/objects/items/stacks/sheets/sheet_types.dm +++ b/code/game/objects/items/stacks/sheets/sheet_types.dm @@ -79,7 +79,7 @@ var/global/list/datum/stack_recipe/metal_recipes = list ( \ icon_state = "sheet-metal" m_amt = 3750 throwforce = 14.0 - flags = FPRINT | TABLEPASS | CONDUCT + flags = CONDUCT origin_tech = "materials=1" /obj/item/stack/sheet/metal/cyborg @@ -89,7 +89,7 @@ var/global/list/datum/stack_recipe/metal_recipes = list ( \ icon_state = "sheet-metal" m_amt = 0 throwforce = 14.0 - flags = FPRINT | TABLEPASS | CONDUCT + flags = CONDUCT /obj/item/stack/sheet/metal/New(var/loc, var/amount=null) recipes = metal_recipes @@ -116,7 +116,7 @@ var/global/list/datum/stack_recipe/plasteel_recipes = list ( \ item_state = "sheet-metal" m_amt = 7500 throwforce = 15.0 - flags = FPRINT | TABLEPASS | CONDUCT + flags = CONDUCT origin_tech = "materials=2" /obj/item/stack/sheet/plasteel/New(var/loc, var/amount=null) @@ -186,7 +186,6 @@ var/global/list/datum/stack_recipe/cardboard_recipes = list ( \ desc = "Large sheets of card, like boxes folded flat." singular_name = "cardboard sheet" icon_state = "sheet-card" - flags = FPRINT | TABLEPASS origin_tech = "materials=1" /obj/item/stack/sheet/cardboard/New(var/loc, var/amount=null) diff --git a/code/game/objects/items/stacks/sheets/sheets.dm b/code/game/objects/items/stacks/sheets/sheets.dm index 0d612f9fd8b..74ebf59b11e 100644 --- a/code/game/objects/items/stacks/sheets/sheets.dm +++ b/code/game/objects/items/stacks/sheets/sheets.dm @@ -1,6 +1,5 @@ /obj/item/stack/sheet name = "sheet" - flags = FPRINT | TABLEPASS w_class = 3.0 force = 5 throwforce = 5 diff --git a/code/game/objects/items/stacks/tiles/light.dm b/code/game/objects/items/stacks/tiles/light.dm index 8fdcd7a5618..9693e536847 100644 --- a/code/game/objects/items/stacks/tiles/light.dm +++ b/code/game/objects/items/stacks/tiles/light.dm @@ -8,7 +8,7 @@ throwforce = 5.0 throw_speed = 5 throw_range = 20 - flags = FPRINT | TABLEPASS | CONDUCT + flags = CONDUCT max_amount = 60 attack_verb = list("bashed", "battered", "bludgeoned", "thrashed", "smashed") var/on = 1 diff --git a/code/game/objects/items/stacks/tiles/plasteel.dm b/code/game/objects/items/stacks/tiles/plasteel.dm index cbbf1811cc5..80c0a6919d1 100644 --- a/code/game/objects/items/stacks/tiles/plasteel.dm +++ b/code/game/objects/items/stacks/tiles/plasteel.dm @@ -9,7 +9,7 @@ throwforce = 15.0 throw_speed = 5 throw_range = 20 - flags = FPRINT | TABLEPASS | CONDUCT + flags = CONDUCT max_amount = 60 /obj/item/stack/tile/plasteel/New(var/loc, var/amount=null) diff --git a/code/game/objects/items/stacks/tiles/tile_types.dm b/code/game/objects/items/stacks/tiles/tile_types.dm index 1e10932b9d1..b6ae03aa271 100644 --- a/code/game/objects/items/stacks/tiles/tile_types.dm +++ b/code/game/objects/items/stacks/tiles/tile_types.dm @@ -18,7 +18,7 @@ throwforce = 1.0 throw_speed = 5 throw_range = 20 - flags = FPRINT | TABLEPASS | CONDUCT + flags = CONDUCT max_amount = 60 origin_tech = "biotech=1" @@ -35,7 +35,7 @@ throwforce = 1.0 throw_speed = 5 throw_range = 20 - flags = FPRINT | TABLEPASS | CONDUCT + flags = CONDUCT max_amount = 60 /* @@ -51,5 +51,5 @@ throwforce = 1.0 throw_speed = 5 throw_range = 20 - flags = FPRINT | TABLEPASS | CONDUCT + flags = CONDUCT max_amount = 60 \ No newline at end of file diff --git a/code/game/objects/items/toys.dm b/code/game/objects/items/toys.dm index 33858980b99..b49e23724b9 100644 --- a/code/game/objects/items/toys.dm +++ b/code/game/objects/items/toys.dm @@ -133,7 +133,7 @@ icon = 'icons/obj/gun.dmi' icon_state = "revolver" item_state = "gun" - flags = FPRINT | TABLEPASS | CONDUCT + flags = CONDUCT slot_flags = SLOT_BELT w_class = 3.0 g_amt = 10 @@ -190,7 +190,7 @@ desc = "There are 7 caps left! Make sure to recyle the box in an autolathe when it gets empty." icon = 'icons/obj/ammo.dmi' icon_state = "357-7" - flags = FPRINT | TABLEPASS| CONDUCT + flags = CONDUCT w_class = 1.0 g_amt = 10 m_amt = 10 @@ -211,7 +211,6 @@ icon = 'icons/obj/gun.dmi' icon_state = "crossbow" item_state = "crossbow" - flags = FPRINT | TABLEPASS w_class = 2.0 attack_verb = list("attacked", "struck", "hit") var/bullets = 5 @@ -306,7 +305,6 @@ desc = "Its nerf or nothing! Ages 8 and up." icon = 'icons/obj/toy.dmi' icon_state = "foamdart" - flags = FPRINT | TABLEPASS w_class = 1.0 /obj/effect/foam_dart_dummy @@ -327,7 +325,7 @@ desc = "Looks almost like the real thing! Great for practicing Drive-bys" icon_state = "tommy" item_state = "tommy" - flags = FPRINT | TABLEPASS| CONDUCT + flags = CONDUCT w_class = 1.0 attack_verb = list("struck", "hammered", "hit", "bashed") bullets = 20.0 @@ -353,7 +351,7 @@ item_state = "sword0" var/active = 0.0 w_class = 2.0 - flags = FPRINT | TABLEPASS | NOSHIELD + flags = NOSHIELD attack_verb = list("attacked", "struck", "hit") attack_self(mob/user as mob) @@ -419,7 +417,7 @@ icon = 'icons/obj/weapons.dmi' icon_state = "katana" item_state = "katana" - flags = FPRINT | TABLEPASS | CONDUCT + flags = CONDUCT slot_flags = SLOT_BELT | SLOT_BACK force = 5 throwforce = 5 @@ -604,7 +602,7 @@ icon = 'icons/obj/weapons.dmi' icon_state = "katana" item_state = "katana" - flags = FPRINT | TABLEPASS | CONDUCT + flags = CONDUCT slot_flags = SLOT_BELT | SLOT_BACK force = 5 throwforce = 5 @@ -1066,7 +1064,6 @@ obj/item/toy/cards/deck/syndicate/black desc = "No bother to sink or swim when you can just float!" icon_state = "inflatable" item_state = "inflatable" - flags = FPRINT | TABLEPASS icon = 'icons/obj/clothing/belts.dmi' slot_flags = SLOT_BELT @@ -1079,7 +1076,6 @@ obj/item/toy/cards/deck/syndicate/black desc = "Relive the excitement of a meteor shower! SweetMeat-eor. Co is not responsible for any injuries, headaches or hearing loss caused by Mini-Meteor™" icon = 'icons/obj/toy.dmi' icon_state = "minimeteor" - flags = FPRINT | TABLEPASS w_class = 2.0 /obj/item/toy/minimeteor/throw_impact(atom/hit_atom) @@ -1100,7 +1096,6 @@ obj/item/toy/cards/deck/syndicate/black icon = 'icons/obj/toy.dmi' icon_state = "carpplushie" w_class = 2.0 - flags = FPRINT | TABLEPASS /* * Toy big red button diff --git a/code/game/objects/items/weapons/AI_modules.dm b/code/game/objects/items/weapons/AI_modules.dm index c30f2e1ab1d..6162e9cfe09 100755 --- a/code/game/objects/items/weapons/AI_modules.dm +++ b/code/game/objects/items/weapons/AI_modules.dm @@ -12,7 +12,7 @@ AI MODULES icon_state = "std_mod" item_state = "electronic" desc = "An AI Module for transmitting encrypted instructions to the AI." - flags = FPRINT | TABLEPASS| CONDUCT + flags = CONDUCT force = 5.0 w_class = 2.0 throwforce = 5.0 diff --git a/code/game/objects/items/weapons/RCD.dm b/code/game/objects/items/weapons/RCD.dm index fc6ad2b6093..1cb3dbcd718 100644 --- a/code/game/objects/items/weapons/RCD.dm +++ b/code/game/objects/items/weapons/RCD.dm @@ -12,7 +12,7 @@ RCD opacity = 0 density = 0 anchored = 0.0 - flags = FPRINT | TABLEPASS| CONDUCT + flags = CONDUCT force = 10.0 throwforce = 10.0 throw_speed = 3 diff --git a/code/game/objects/items/weapons/RSF.dm b/code/game/objects/items/weapons/RSF.dm index fa55fc8e624..1712f52d6f2 100644 --- a/code/game/objects/items/weapons/RSF.dm +++ b/code/game/objects/items/weapons/RSF.dm @@ -13,7 +13,6 @@ RSF anchored = 0.0 var/matter = 0 var/mode = 1 - flags = TABLEPASS w_class = 3.0 /obj/item/weapon/rsf/New() diff --git a/code/game/objects/items/weapons/alien_specific.dm b/code/game/objects/items/weapons/alien_specific.dm index ba914f4f8ce..7170e1c9019 100644 --- a/code/game/objects/items/weapons/alien_specific.dm +++ b/code/game/objects/items/weapons/alien_specific.dm @@ -11,7 +11,7 @@ throw_speed = 1 throw_range = 5 w_class = 2.0 - flags = FPRINT | TABLEPASS | NOSHIELD + flags = NOSHIELD attack_verb = list("attacked", "slashed", "gored", "sliced", "torn", "ripped", "butchered", "cut") //Bottles for borg liquid squirters. PSSH PSSH diff --git a/code/game/objects/items/weapons/cigs_lighters.dm b/code/game/objects/items/weapons/cigs_lighters.dm index b5ad7cae55f..ccc23bdddf1 100644 --- a/code/game/objects/items/weapons/cigs_lighters.dm +++ b/code/game/objects/items/weapons/cigs_lighters.dm @@ -385,7 +385,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM var/icon_off = "lighter-g" w_class = 1 throwforce = 4 - flags = TABLEPASS | CONDUCT + flags = CONDUCT slot_flags = SLOT_BELT attack_verb = list("burnt", "singed") var/lit = 0 diff --git a/code/game/objects/items/weapons/cosmetics.dm b/code/game/objects/items/weapons/cosmetics.dm index 1adcbc06172..5ebe282547f 100644 --- a/code/game/objects/items/weapons/cosmetics.dm +++ b/code/game/objects/items/weapons/cosmetics.dm @@ -3,7 +3,6 @@ desc = "A generic brand of lipstick." icon = 'icons/obj/items.dmi' icon_state = "lipstick" - flags = FPRINT | TABLEPASS w_class = 1.0 var/colour = "red" var/open = 0 @@ -91,7 +90,7 @@ desc = "The latest and greatest power razor born from the science of shaving." icon = 'icons/obj/items.dmi' icon_state = "razor" - flags = FPRINT | TABLEPASS| CONDUCT + flags = CONDUCT w_class = 1.0 /obj/item/weapon/razor/attack(mob/living/carbon/M as mob, mob/user as mob) diff --git a/code/game/objects/items/weapons/extinguisher.dm b/code/game/objects/items/weapons/extinguisher.dm index a11db2d4dcd..760bef9c2e2 100644 --- a/code/game/objects/items/weapons/extinguisher.dm +++ b/code/game/objects/items/weapons/extinguisher.dm @@ -6,7 +6,7 @@ icon_state = "fire_extinguisher0" item_state = "fire_extinguisher" hitsound = 'sound/weapons/smash.ogg' - flags = FPRINT | TABLEPASS | CONDUCT + flags = CONDUCT throwforce = 10 w_class = 3.0 throw_speed = 2 @@ -31,7 +31,6 @@ icon_state = "miniFE0" item_state = "miniFE" hitsound = null //it is much lighter, after all. - flags = FPRINT | TABLEPASS throwforce = 2 w_class = 2.0 force = 3.0 diff --git a/code/game/objects/items/weapons/flamethrower.dm b/code/game/objects/items/weapons/flamethrower.dm index fd203a258c1..7a8bdb8a69c 100644 --- a/code/game/objects/items/weapons/flamethrower.dm +++ b/code/game/objects/items/weapons/flamethrower.dm @@ -4,7 +4,7 @@ icon = 'icons/obj/flamethrower.dmi' icon_state = "flamethrowerbase" item_state = "flamethrower_0" - flags = FPRINT | TABLEPASS| CONDUCT + flags = CONDUCT force = 3.0 throwforce = 10.0 throw_speed = 1 diff --git a/code/game/objects/items/weapons/grenades/ghettobomb.dm b/code/game/objects/items/weapons/grenades/ghettobomb.dm index e1240629ed2..8997b016e4d 100644 --- a/code/game/objects/items/weapons/grenades/ghettobomb.dm +++ b/code/game/objects/items/weapons/grenades/ghettobomb.dm @@ -23,7 +23,7 @@ item_state = "flashbang" throw_speed = 4 throw_range = 20 - flags = FPRINT | TABLEPASS | CONDUCT + flags = CONDUCT slot_flags = SLOT_BELT var/assembled = 0 active = 1 diff --git a/code/game/objects/items/weapons/grenades/grenade.dm b/code/game/objects/items/weapons/grenades/grenade.dm index 909dff136e2..5f0274f6fd7 100644 --- a/code/game/objects/items/weapons/grenades/grenade.dm +++ b/code/game/objects/items/weapons/grenades/grenade.dm @@ -7,7 +7,7 @@ item_state = "flashbang" throw_speed = 4 throw_range = 20 - flags = FPRINT | CONDUCT + flags = CONDUCT slot_flags = SLOT_BELT var/active = 0 var/det_time = 50 diff --git a/code/game/objects/items/weapons/grenades/smokebomb.dm b/code/game/objects/items/weapons/grenades/smokebomb.dm index 27a2d0580e2..afc4ea61176 100644 --- a/code/game/objects/items/weapons/grenades/smokebomb.dm +++ b/code/game/objects/items/weapons/grenades/smokebomb.dm @@ -5,7 +5,6 @@ icon_state = "flashbang" det_time = 20 item_state = "flashbang" - flags = FPRINT | TABLEPASS slot_flags = SLOT_BELT var/datum/effect/effect/system/bad_smoke_spread/smoke diff --git a/code/game/objects/items/weapons/handcuffs.dm b/code/game/objects/items/weapons/handcuffs.dm index 813e9fd4517..f8358122e00 100644 --- a/code/game/objects/items/weapons/handcuffs.dm +++ b/code/game/objects/items/weapons/handcuffs.dm @@ -4,7 +4,7 @@ gender = PLURAL icon = 'icons/obj/items.dmi' icon_state = "handcuff" - flags = FPRINT | TABLEPASS | CONDUCT + flags = CONDUCT slot_flags = SLOT_BELT throwforce = 5 w_class = 2.0 diff --git a/code/game/objects/items/weapons/hydroponics.dm b/code/game/objects/items/weapons/hydroponics.dm index 8fe56d6bd70..19193fdf4ea 100644 --- a/code/game/objects/items/weapons/hydroponics.dm +++ b/code/game/objects/items/weapons/hydroponics.dm @@ -20,7 +20,6 @@ desc = "A small satchel made for organizing seeds." var/mode = 1; //0 = pick one at a time, 1 = pick all on tile var/capacity = 500; //the number of seeds it can carry. - flags = FPRINT | TABLEPASS slot_flags = SLOT_BELT w_class = 1 var/list/item_quants = list() diff --git a/code/game/objects/items/weapons/kitchen.dm b/code/game/objects/items/weapons/kitchen.dm index ae5d8a170c3..bce6b1d02d8 100644 --- a/code/game/objects/items/weapons/kitchen.dm +++ b/code/game/objects/items/weapons/kitchen.dm @@ -22,7 +22,7 @@ throwforce = 0.0 throw_speed = 3 throw_range = 5 - flags = FPRINT | TABLEPASS | CONDUCT + flags = CONDUCT origin_tech = "materials=1" attack_verb = list("attacked", "stabbed", "poked") sharp = 0 @@ -133,7 +133,7 @@ icon = 'icons/obj/kitchen.dmi' icon_state = "knife" desc = "A general purpose Chef's Knife made by SpaceCook Incorporated. Guaranteed to stay sharp for years to come." - flags = FPRINT | TABLEPASS | CONDUCT + flags = CONDUCT sharp = 1 edge = 1 force = 10.0 @@ -176,7 +176,7 @@ icon = 'icons/obj/kitchen.dmi' icon_state = "butch" desc = "A huge thing used for chopping and chopping up meat. This includes clowns and clown-by-products." - flags = FPRINT | TABLEPASS | CONDUCT + flags = CONDUCT force = 15.0 w_class = 2.0 throwforce = 8.0 @@ -266,7 +266,7 @@ throw_speed = 3 throw_range = 5 w_class = 4.0 - flags = FPRINT | TABLEPASS | CONDUCT + flags = CONDUCT m_amt = 3000 /* // NOPE var/food_total= 0 diff --git a/code/game/objects/items/weapons/melee/energy.dm b/code/game/objects/items/weapons/melee/energy.dm index 2c68041fb16..e117cbaf0f2 100644 --- a/code/game/objects/items/weapons/melee/energy.dm +++ b/code/game/objects/items/weapons/melee/energy.dm @@ -18,7 +18,7 @@ throw_range = 5 w_class = 3.0 hitsound = "swing_hit" - flags = FPRINT | CONDUCT | NOSHIELD | TABLEPASS + flags = CONDUCT | NOSHIELD origin_tech = "combat=3" attack_verb = list("attacked", "chopped", "cleaved", "torn", "cut") sharp = 1 @@ -43,7 +43,7 @@ throw_range = 5 w_class = 2.0 hitsound = "swing_hit" - flags = FPRINT | TABLEPASS | NOSHIELD + flags = NOSHIELD origin_tech = "magnets=3;syndicate=4" attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut") sharp = 1 @@ -79,6 +79,6 @@ throw_speed = 1 throw_range = 1 w_class = 4.0//So you can't hide it in your pocket or some such. - flags = FPRINT | TABLEPASS | NOSHIELD + flags = NOSHIELD attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut") var/datum/effect/effect/system/spark_spread/spark_system diff --git a/code/game/objects/items/weapons/melee/misc.dm b/code/game/objects/items/weapons/melee/misc.dm index 6b80edd6fd0..e63dde9b9aa 100644 --- a/code/game/objects/items/weapons/melee/misc.dm +++ b/code/game/objects/items/weapons/melee/misc.dm @@ -3,7 +3,7 @@ desc = "A tool used by great men to placate the frothing masses." icon_state = "chain" item_state = "chain" - flags = FPRINT | TABLEPASS | CONDUCT + flags = CONDUCT slot_flags = SLOT_BELT force = 10 throwforce = 7 diff --git a/code/game/objects/items/weapons/mop.dm b/code/game/objects/items/weapons/mop.dm index b1c37f7cc47..7b7a7c7a829 100644 --- a/code/game/objects/items/weapons/mop.dm +++ b/code/game/objects/items/weapons/mop.dm @@ -8,7 +8,6 @@ throw_speed = 3 throw_range = 7 w_class = 3.0 - flags = FPRINT | TABLEPASS attack_verb = list("mopped", "bashed", "bludgeoned", "whacked") var/mopping = 0 var/mopcount = 0 diff --git a/code/game/objects/items/weapons/ninja_manuscript.dm b/code/game/objects/items/weapons/ninja_manuscript.dm index 8c8674a42c7..75c07a2c3f5 100644 --- a/code/game/objects/items/weapons/ninja_manuscript.dm +++ b/code/game/objects/items/weapons/ninja_manuscript.dm @@ -6,7 +6,6 @@ throw_speed = 1 throw_range = 5 w_class = 3 - flags = TABLEPASS attack_verb = list("bashed", "whacked", "educated") var/charges = 1 diff --git a/code/game/objects/items/weapons/paint.dm b/code/game/objects/items/weapons/paint.dm index 9802b76018d..d35714f2111 100644 --- a/code/game/objects/items/weapons/paint.dm +++ b/code/game/objects/items/weapons/paint.dm @@ -14,7 +14,7 @@ var/global/list/cached_icons = list() amount_per_transfer_from_this = 10 possible_transfer_amounts = list(10,20,30,50,70) volume = 70 - flags = FPRINT | OPENCONTAINER + flags = OPENCONTAINER var/paint_type = "" afterattack(turf/simulated/target, mob/user, proximity) diff --git a/code/game/objects/items/weapons/power_cells.dm b/code/game/objects/items/weapons/power_cells.dm index 5a4b7a98d9d..cbaa53c0b54 100644 --- a/code/game/objects/items/weapons/power_cells.dm +++ b/code/game/objects/items/weapons/power_cells.dm @@ -5,7 +5,6 @@ icon_state = "cell" item_state = "cell" origin_tech = "powerstorage=1" - flags = FPRINT|TABLEPASS force = 5.0 throwforce = 5.0 throw_speed = 3 diff --git a/code/game/objects/items/weapons/scrolls.dm b/code/game/objects/items/weapons/scrolls.dm index 6ca0f327e20..e7a9272aa6d 100644 --- a/code/game/objects/items/weapons/scrolls.dm +++ b/code/game/objects/items/weapons/scrolls.dm @@ -4,7 +4,6 @@ icon = 'icons/obj/wizard.dmi' icon_state = "scroll" var/uses = 4.0 - flags = FPRINT | TABLEPASS w_class = 2.0 item_state = "paper" throw_speed = 4 diff --git a/code/game/objects/items/weapons/shields.dm b/code/game/objects/items/weapons/shields.dm index 774f097ca5f..eb4f6236c76 100644 --- a/code/game/objects/items/weapons/shields.dm +++ b/code/game/objects/items/weapons/shields.dm @@ -6,7 +6,7 @@ desc = "A shield adept at blocking blunt objects from connecting with the torso of the shield wielder." icon = 'icons/obj/weapons.dmi' icon_state = "riot" - flags = FPRINT | TABLEPASS| CONDUCT + flags = CONDUCT slot_flags = SLOT_BACK force = 5.0 throwforce = 5.0 @@ -42,7 +42,7 @@ desc = "A shield capable of stopping most melee attacks. Protects user from almost all energy projectiles. It can be retracted, expanded, and stored anywhere." icon = 'icons/obj/weapons.dmi' icon_state = "eshield0" // eshield1 for expanded - flags = FPRINT | TABLEPASS| CONDUCT + flags = CONDUCT force = 3.0 throwforce = 5.0 throw_speed = 1 @@ -58,7 +58,7 @@ icon = 'icons/obj/device.dmi' icon_state = "shield0" var/active = 0.0 - flags = FPRINT | TABLEPASS| CONDUCT + flags = CONDUCT item_state = "electronic" throwforce = 10.0 throw_speed = 2 diff --git a/code/game/objects/items/weapons/storage/backpack.dm b/code/game/objects/items/weapons/storage/backpack.dm index 25cb47ef3e8..49de496abe6 100644 --- a/code/game/objects/items/weapons/storage/backpack.dm +++ b/code/game/objects/items/weapons/storage/backpack.dm @@ -9,7 +9,6 @@ icon_state = "backpack" item_state = "backpack" w_class = 4.0 - flags = FPRINT|TABLEPASS slot_flags = SLOT_BACK //ERROOOOO max_w_class = 3 max_combined_w_class = 21 diff --git a/code/game/objects/items/weapons/storage/bags.dm b/code/game/objects/items/weapons/storage/bags.dm index 3fa71922efd..f96883c6146 100644 --- a/code/game/objects/items/weapons/storage/bags.dm +++ b/code/game/objects/items/weapons/storage/bags.dm @@ -21,7 +21,6 @@ display_contents_with_number = 0 // UNStABLE AS FuCK, turn on when it stops crashing clients use_to_pickup = 1 slot_flags = SLOT_BELT - flags = FPRINT | TABLEPASS // ----------------------------- // Trash bag @@ -308,7 +307,7 @@ w_class = 1 can_hold = list("/obj/item/weapon/coin","/obj/item/weapon/spacecash") - + // ----------------------------- // Book bag // ----------------------------- diff --git a/code/game/objects/items/weapons/storage/belt.dm b/code/game/objects/items/weapons/storage/belt.dm index eb7bc3fb8d6..9dd0b121b9f 100644 --- a/code/game/objects/items/weapons/storage/belt.dm +++ b/code/game/objects/items/weapons/storage/belt.dm @@ -4,7 +4,6 @@ icon = 'icons/obj/clothing/belts.dmi' icon_state = "utilitybelt" item_state = "utility" - flags = FPRINT | TABLEPASS slot_flags = SLOT_BELT attack_verb = list("whipped", "lashed", "disciplined") @@ -291,7 +290,7 @@ name = "yellow fannypack" icon_state = "fannypack_yellow" item_state = "fannypack_yellow" - + // ------------------------------------- // Bluespace Belt // ------------------------------------- @@ -444,4 +443,3 @@ new /obj/item/device/analyzer(src) new /obj/item/device/healthanalyzer(src) - \ No newline at end of file diff --git a/code/game/objects/items/weapons/storage/bible.dm b/code/game/objects/items/weapons/storage/bible.dm index f521c369f88..d4efe740192 100644 --- a/code/game/objects/items/weapons/storage/bible.dm +++ b/code/game/objects/items/weapons/storage/bible.dm @@ -5,7 +5,6 @@ throw_speed = 1 throw_range = 5 w_class = 3.0 - flags = FPRINT | TABLEPASS var/mob/affecting = null var/deity_name = "Christ" diff --git a/code/game/objects/items/weapons/storage/boxes.dm b/code/game/objects/items/weapons/storage/boxes.dm index 628d287e7c5..124c2d4f0fd 100644 --- a/code/game/objects/items/weapons/storage/boxes.dm +++ b/code/game/objects/items/weapons/storage/boxes.dm @@ -512,7 +512,6 @@ item_state = "zippo" storage_slots = 10 w_class = 1 - flags = TABLEPASS slot_flags = SLOT_BELT New() diff --git a/code/game/objects/items/weapons/storage/briefcase.dm b/code/game/objects/items/weapons/storage/briefcase.dm index d6d288c5734..1a2faf6b1a7 100644 --- a/code/game/objects/items/weapons/storage/briefcase.dm +++ b/code/game/objects/items/weapons/storage/briefcase.dm @@ -3,7 +3,7 @@ desc = "It's made of AUTHENTIC faux-leather and has a price-tag still attached. Its owner must be a real professional." icon_state = "briefcase" item_state = "briefcase" - flags = FPRINT | TABLEPASS| CONDUCT + flags = CONDUCT hitsound = "swing_hit" force = 8.0 throw_speed = 2 diff --git a/code/game/objects/items/weapons/storage/fancy.dm b/code/game/objects/items/weapons/storage/fancy.dm index 37735cab0d8..2ff671074ef 100644 --- a/code/game/objects/items/weapons/storage/fancy.dm +++ b/code/game/objects/items/weapons/storage/fancy.dm @@ -88,7 +88,6 @@ item_state = "candlebox5" storage_slots = 5 throwforce = 2 - flags = TABLEPASS slot_flags = SLOT_BELT @@ -152,7 +151,6 @@ item_state = "cigpacket" w_class = 1 throwforce = 2 - flags = TABLEPASS slot_flags = SLOT_BELT storage_slots = 6 can_hold = list("/obj/item/clothing/mask/cigarette") diff --git a/code/game/objects/items/weapons/storage/secure.dm b/code/game/objects/items/weapons/storage/secure.dm index 2a4d03b8f0a..15a046e3371 100644 --- a/code/game/objects/items/weapons/storage/secure.dm +++ b/code/game/objects/items/weapons/storage/secure.dm @@ -146,7 +146,6 @@ icon_state = "secure" item_state = "sec-case" desc = "A large briefcase with a digital locking system." - flags = FPRINT | TABLEPASS force = 8.0 throw_speed = 1 throw_range = 4 @@ -221,7 +220,6 @@ icon_opened = "safe0" icon_locking = "safeb" icon_sparking = "safespark" - flags = FPRINT | TABLEPASS force = 8.0 w_class = 8.0 max_w_class = 8 diff --git a/code/game/objects/items/weapons/storage/toolbox.dm b/code/game/objects/items/weapons/storage/toolbox.dm index 4c7ea0617a0..cb04eeaccd3 100644 --- a/code/game/objects/items/weapons/storage/toolbox.dm +++ b/code/game/objects/items/weapons/storage/toolbox.dm @@ -4,7 +4,7 @@ icon = 'icons/obj/storage.dmi' icon_state = "red" item_state = "toolbox_red" - flags = FPRINT | TABLEPASS| CONDUCT + flags = CONDUCT force = 10.0 throwforce = 10.0 throw_speed = 2 diff --git a/code/game/objects/items/weapons/stunbaton.dm b/code/game/objects/items/weapons/stunbaton.dm index 8a33f542f4c..ae0509b00fa 100644 --- a/code/game/objects/items/weapons/stunbaton.dm +++ b/code/game/objects/items/weapons/stunbaton.dm @@ -4,7 +4,6 @@ icon_state = "stunbaton" item_state = "baton" slot_flags = SLOT_BELT - flags = FPRINT | TABLEPASS force = 10 throwforce = 7 w_class = 3 diff --git a/code/game/objects/items/weapons/surgery_tools.dm b/code/game/objects/items/weapons/surgery_tools.dm index dab630f188a..33cff224752 100644 --- a/code/game/objects/items/weapons/surgery_tools.dm +++ b/code/game/objects/items/weapons/surgery_tools.dm @@ -18,7 +18,7 @@ icon_state = "retractor" m_amt = 10000 g_amt = 5000 - flags = FPRINT | TABLEPASS | CONDUCT + flags = CONDUCT w_class = 2.0 origin_tech = "materials=1;biotech=1" @@ -132,7 +132,7 @@ LOOK FOR SURGERY.DM*/ icon_state = "hemostat" m_amt = 5000 g_amt = 2500 - flags = FPRINT | TABLEPASS | CONDUCT + flags = CONDUCT w_class = 2.0 origin_tech = "materials=1;biotech=1" attack_verb = list("attacked", "pinched") @@ -267,7 +267,7 @@ LOOK FOR SURGERY.DM*/ icon_state = "cautery" m_amt = 5000 g_amt = 2500 - flags = FPRINT | TABLEPASS | CONDUCT + flags = CONDUCT w_class = 2.0 origin_tech = "materials=1;biotech=1" attack_verb = list("burnt") @@ -358,7 +358,7 @@ LOOK FOR SURGERY.DM*/ hitsound = 'sound/weapons/circsawhit.ogg' m_amt = 15000 g_amt = 10000 - flags = FPRINT | TABLEPASS | CONDUCT + flags = CONDUCT force = 15.0 w_class = 2.0 origin_tech = "materials=1;biotech=1" @@ -377,7 +377,7 @@ LOOK FOR SURGERY.DM*/ desc = "Cut, cut, and once more cut." icon = 'icons/obj/surgery.dmi' icon_state = "scalpel" - flags = FPRINT | TABLEPASS | CONDUCT + flags = CONDUCT force = 10.0 sharp = 1 edge = 1 @@ -631,7 +631,7 @@ LOOK FOR SURGERY.DM*/ icon = 'icons/obj/surgery.dmi' icon_state = "saw3" hitsound = 'sound/weapons/circsawhit.ogg' - flags = FPRINT | TABLEPASS | CONDUCT + flags = CONDUCT force = 15.0 w_class = 2.0 throwforce = 9.0 diff --git a/code/game/objects/items/weapons/swords_axes_etc.dm b/code/game/objects/items/weapons/swords_axes_etc.dm index 375f07f05a6..9cf1cee7846 100644 --- a/code/game/objects/items/weapons/swords_axes_etc.dm +++ b/code/game/objects/items/weapons/swords_axes_etc.dm @@ -101,7 +101,6 @@ icon = 'icons/obj/weapons.dmi' icon_state = "baton" item_state = "classic_baton" - flags = FPRINT | TABLEPASS slot_flags = SLOT_BELT force = 10 @@ -157,7 +156,6 @@ icon = 'icons/obj/weapons.dmi' icon_state = "telebaton_0" item_state = "telebaton_0" - flags = FPRINT | TABLEPASS slot_flags = SLOT_BELT w_class = 2 force = 3 diff --git a/code/game/objects/items/weapons/tanks/tank_types.dm b/code/game/objects/items/weapons/tanks/tank_types.dm index b5fa8e36b95..e41e57c2ac7 100644 --- a/code/game/objects/items/weapons/tanks/tank_types.dm +++ b/code/game/objects/items/weapons/tanks/tank_types.dm @@ -98,7 +98,7 @@ name = "plasma tank" desc = "Contains dangerous plasma. Do not inhale. Warning: extremely flammable." icon_state = "plasma" - flags = FPRINT | TABLEPASS | CONDUCT + flags = CONDUCT slot_flags = null //they have no straps! @@ -140,7 +140,7 @@ name = "emergency oxygen tank" desc = "Used for emergencies. Contains very little oxygen, so try to conserve it until you actually need it." icon_state = "emergency" - flags = FPRINT | TABLEPASS | CONDUCT + flags = CONDUCT slot_flags = SLOT_BELT w_class = 2.0 force = 4.0 diff --git a/code/game/objects/items/weapons/tanks/tanks.dm b/code/game/objects/items/weapons/tanks/tanks.dm index d4a0cb0c972..f12b27f5de2 100644 --- a/code/game/objects/items/weapons/tanks/tanks.dm +++ b/code/game/objects/items/weapons/tanks/tanks.dm @@ -4,7 +4,7 @@ /obj/item/weapon/tank name = "tank" icon = 'icons/obj/tank.dmi' - flags = FPRINT | TABLEPASS | CONDUCT + flags = CONDUCT slot_flags = SLOT_BACK hitsound = 'sound/weapons/smash.ogg' w_class = 3 diff --git a/code/game/objects/items/weapons/teleportation.dm b/code/game/objects/items/weapons/teleportation.dm index 88bb08b7ae8..29c568fe15b 100644 --- a/code/game/objects/items/weapons/teleportation.dm +++ b/code/game/objects/items/weapons/teleportation.dm @@ -16,7 +16,7 @@ var/frequency = 1451 var/broadcasting = null var/listening = 1.0 - flags = FPRINT | TABLEPASS| CONDUCT + flags = CONDUCT w_class = 2.0 item_state = "electronic" throw_speed = 4 diff --git a/code/game/objects/items/weapons/tools.dm b/code/game/objects/items/weapons/tools.dm index 9691f3213ba..f19fd9cfc27 100644 --- a/code/game/objects/items/weapons/tools.dm +++ b/code/game/objects/items/weapons/tools.dm @@ -20,7 +20,7 @@ desc = "A wrench with common uses. Can be found in your hand." icon = 'icons/obj/items.dmi' icon_state = "wrench" - flags = FPRINT | TABLEPASS| CONDUCT + flags = CONDUCT slot_flags = SLOT_BELT force = 5.0 throwforce = 7.0 @@ -38,7 +38,7 @@ desc = "You can be totally screwwy with this." icon = 'icons/obj/items.dmi' icon_state = "screwdriver" - flags = FPRINT | TABLEPASS| CONDUCT + flags = CONDUCT slot_flags = SLOT_BELT force = 5.0 w_class = 1.0 @@ -99,7 +99,7 @@ desc = "This cuts wires." icon = 'icons/obj/items.dmi' icon_state = "cutters" - flags = FPRINT | TABLEPASS| CONDUCT + flags = CONDUCT slot_flags = SLOT_BELT force = 6.0 throw_speed = 3 @@ -135,7 +135,7 @@ name = "welding tool" icon = 'icons/obj/items.dmi' icon_state = "welder" - flags = FPRINT | TABLEPASS| CONDUCT + flags = CONDUCT slot_flags = SLOT_BELT //Amount of OUCH when it's thrown @@ -447,7 +447,7 @@ desc = "A small crowbar. This handy tool is useful for lots of things, such as prying floor tiles or opening unpowered doors." icon = 'icons/obj/items.dmi' icon_state = "crowbar" - flags = FPRINT | TABLEPASS| CONDUCT + flags = CONDUCT slot_flags = SLOT_BELT force = 5.0 throwforce = 7.0 @@ -514,7 +514,7 @@ desc = "A professional conversion kit used to convert any knock off revolver into the real deal capable of shooting lethal .357 rounds without the possibility of catastrophic failure" icon = 'icons/obj/weapons.dmi' icon_state = "kit" - flags = FPRINT | TABLEPASS | CONDUCT + flags = CONDUCT w_class = 2.0 origin_tech = "combat=2" var/open = 0 diff --git a/code/game/objects/items/weapons/twohanded.dm b/code/game/objects/items/weapons/twohanded.dm index f38c9b477f3..ac051ebd63d 100644 --- a/code/game/objects/items/weapons/twohanded.dm +++ b/code/game/objects/items/weapons/twohanded.dm @@ -207,7 +207,7 @@ obj/item/weapon/twohanded/ force_wielded = 34 wieldsound = 'sound/weapons/saberon.ogg' unwieldsound = 'sound/weapons/saberoff.ogg' - flags = FPRINT | TABLEPASS | NOSHIELD + flags = NOSHIELD origin_tech = "magnets=3;syndicate=4" attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut") sharp = 1 @@ -291,7 +291,7 @@ obj/item/weapon/twohanded/ force_wielded = 18 // Was 13, Buffed - RR throwforce = 20 throw_speed = 3 - flags = FPRINT | TABLEPASS | NOSHIELD + flags = NOSHIELD attack_verb = list("attacked", "poked", "jabbed", "torn", "gored") /obj/item/weapon/twohanded/spear/update_icon() diff --git a/code/game/objects/items/weapons/weaponry.dm b/code/game/objects/items/weapons/weaponry.dm index 43618e46b73..f5e7459f135 100644 --- a/code/game/objects/items/weapons/weaponry.dm +++ b/code/game/objects/items/weapons/weaponry.dm @@ -3,7 +3,6 @@ name = "banhammer" icon = 'icons/obj/items.dmi' icon_state = "toyhammer" - flags = FPRINT | TABLEPASS slot_flags = SLOT_BELT throwforce = 0 w_class = 1.0 @@ -21,7 +20,6 @@ desc = "A rod of pure obsidian, its very presence disrupts and dampens the powers of paranormal phenomenae." icon_state = "nullrod" item_state = "nullrod" - flags = FPRINT | TABLEPASS slot_flags = SLOT_BELT force = 15 throw_speed = 1 @@ -74,7 +72,6 @@ desc = "This thing is so unspeakably shitty you are having a hard time even holding it." icon_state = "sord" item_state = "sord" - flags = FPRINT | TABLEPASS slot_flags = SLOT_BELT force = 2 throwforce = 1 @@ -96,7 +93,7 @@ desc = "What are you standing around staring at this for? Get to killing!" icon_state = "claymore" item_state = "claymore" - flags = FPRINT | TABLEPASS | CONDUCT + flags = CONDUCT hitsound = 'sound/weapons/bladeslice.ogg' slot_flags = SLOT_BELT force = 40 @@ -118,7 +115,7 @@ desc = "Woefully underpowered in D20" icon_state = "katana" item_state = "katana" - flags = FPRINT | TABLEPASS | CONDUCT + flags = CONDUCT slot_flags = SLOT_BELT | SLOT_BACK force = 40 throwforce = 10 @@ -156,7 +153,7 @@ obj/item/weapon/wirerod desc = "A rod with some wire wrapped around the top. It'd be easy to attach something to the top bit." icon_state = "wiredrod" item_state = "rods" - flags = FPRINT | TABLEPASS | CONDUCT + flags = CONDUCT force = 9 throwforce = 10 w_class = 3 diff --git a/code/game/objects/structures/crates_lockers/closets.dm b/code/game/objects/structures/crates_lockers/closets.dm index 7f2ed7e1b3e..b52033b180e 100644 --- a/code/game/objects/structures/crates_lockers/closets.dm +++ b/code/game/objects/structures/crates_lockers/closets.dm @@ -4,7 +4,6 @@ icon = 'icons/obj/closet.dmi' icon_state = "closed" density = 1 - flags = FPRINT var/icon_closed = "closed" var/icon_opened = "open" var/opened = 0 diff --git a/code/game/objects/structures/crates_lockers/closets/statue.dm b/code/game/objects/structures/crates_lockers/closets/statue.dm index e089c4448f0..b8177c9b4a1 100644 --- a/code/game/objects/structures/crates_lockers/closets/statue.dm +++ b/code/game/objects/structures/crates_lockers/closets/statue.dm @@ -5,7 +5,6 @@ icon_state = "human_male" density = 1 anchored = 1 - flags = FPRINT health = 0 //destroying the statue kills the mob within var/intialTox = 0 //these are here to keep the mob from taking damage from things that logically wouldn't affect a rock var/intialFire = 0 //it's a little sloppy I know but it was this or the GODMODE flag. Lesser of two evils. diff --git a/code/game/objects/structures/crates_lockers/largecrate.dm b/code/game/objects/structures/crates_lockers/largecrate.dm index 96ed8ef9169..62d77768e2a 100644 --- a/code/game/objects/structures/crates_lockers/largecrate.dm +++ b/code/game/objects/structures/crates_lockers/largecrate.dm @@ -4,7 +4,6 @@ icon = 'icons/obj/storage.dmi' icon_state = "densecrate" density = 1 - flags = FPRINT /obj/structure/largecrate/attack_hand(mob/user as mob) user << "You need a crowbar to pry this open!" diff --git a/code/game/objects/structures/grille.dm b/code/game/objects/structures/grille.dm index b02fb0f0c86..2475ee9eeed 100644 --- a/code/game/objects/structures/grille.dm +++ b/code/game/objects/structures/grille.dm @@ -5,7 +5,7 @@ icon_state = "grille" density = 1 anchored = 1 - flags = FPRINT | CONDUCT + flags = CONDUCT pressure_resistance = 5*ONE_ATMOSPHERE layer = 2.9 explosion_resistance = 5 diff --git a/code/game/objects/structures/mop_bucket.dm b/code/game/objects/structures/mop_bucket.dm index b27f8853904..d7304c9cc57 100644 --- a/code/game/objects/structures/mop_bucket.dm +++ b/code/game/objects/structures/mop_bucket.dm @@ -5,7 +5,7 @@ icon_state = "mopbucket" density = 1 pressure_resistance = 5 - flags = FPRINT | TABLEPASS | OPENCONTAINER + flags = OPENCONTAINER var/amount_per_transfer_from_this = 5 //shit I dunno, adding this so syringes stop runtime erroring. --NeoFite /obj/structure/mopbucket/New() diff --git a/code/game/objects/structures/noticeboard.dm b/code/game/objects/structures/noticeboard.dm index 1f23e10411d..a5ad84c20eb 100644 --- a/code/game/objects/structures/noticeboard.dm +++ b/code/game/objects/structures/noticeboard.dm @@ -3,7 +3,6 @@ desc = "A board for pinning important notices upon." icon = 'icons/obj/stationobjs.dmi' icon_state = "nboard00" - flags = FPRINT density = 0 anchored = 1 var/notices = 0 diff --git a/code/game/objects/structures/stool_bed_chair_nest/stools.dm b/code/game/objects/structures/stool_bed_chair_nest/stools.dm index 78320f38581..25b2a393331 100644 --- a/code/game/objects/structures/stool_bed_chair_nest/stools.dm +++ b/code/game/objects/structures/stool_bed_chair_nest/stools.dm @@ -4,7 +4,6 @@ icon = 'icons/obj/objects.dmi' icon_state = "stool" anchored = 1.0 - flags = FPRINT pressure_resistance = 15 /obj/structure/stool/ex_act(severity) diff --git a/code/game/objects/structures/tables_racks.dm b/code/game/objects/structures/tables_racks.dm index cd76aef88bb..e71653136f2 100644 --- a/code/game/objects/structures/tables_racks.dm +++ b/code/game/objects/structures/tables_racks.dm @@ -692,7 +692,6 @@ icon = 'icons/obj/objects.dmi' icon_state = "rack" density = 1 - flags = FPRINT anchored = 1.0 throwpass = 1 //You can throw objects over this, despite it's density. var/parts = /obj/item/weapon/rack_parts diff --git a/code/game/vehicles/spacepods/parts.dm b/code/game/vehicles/spacepods/parts.dm index d682ef5240c..02624769364 100644 --- a/code/game/vehicles/spacepods/parts.dm +++ b/code/game/vehicles/spacepods/parts.dm @@ -6,5 +6,5 @@ name="Space Pod Core" icon_state = "core" construction_cost = list("iron"=5000,"uranium"=1000,"plasma"=5000) - flags = FPRINT | CONDUCT + flags = CONDUCT origin_tech = "programming=2;materials=3;bluespace=2;engineering=3" \ No newline at end of file diff --git a/code/modules/DetectiveWork/footprints_and_rag.dm b/code/modules/DetectiveWork/footprints_and_rag.dm index 04df3a507e6..8b0cbcbe305 100644 --- a/code/modules/DetectiveWork/footprints_and_rag.dm +++ b/code/modules/DetectiveWork/footprints_and_rag.dm @@ -25,7 +25,7 @@ possible_transfer_amounts = list(5) volume = 5 can_be_placed_into = null - flags = FPRINT | TABLEPASS | OPENCONTAINER | NOBLUDGEON + flags = OPENCONTAINER | NOBLUDGEON /obj/item/weapon/reagent_containers/glass/rag/attack(atom/target as obj|turf|area, mob/user as mob , flag) if(ismob(target) && target.reagents && reagents.total_volume) diff --git a/code/modules/DetectiveWork/scanner.dm b/code/modules/DetectiveWork/scanner.dm index 38c65445bb0..d694e4c1645 100644 --- a/code/modules/DetectiveWork/scanner.dm +++ b/code/modules/DetectiveWork/scanner.dm @@ -8,7 +8,7 @@ icon_state = "forensic1" w_class = 3.0 item_state = "electronic" - flags = FPRINT | TABLEPASS | CONDUCT | NOBLUDGEON + flags = CONDUCT | NOBLUDGEON slot_flags = SLOT_BELT var/scanning = 0 var/list/log = list() diff --git a/code/modules/assembly/assembly.dm b/code/modules/assembly/assembly.dm index 06fe8d4be65..5e7cc3461ba 100644 --- a/code/modules/assembly/assembly.dm +++ b/code/modules/assembly/assembly.dm @@ -3,7 +3,7 @@ desc = "A small electronic device that should never exist." icon = 'icons/obj/assemblies/new_assemblies.dmi' icon_state = "" - flags = FPRINT | CONDUCT + flags = CONDUCT w_class = 2.0 m_amt = 100 g_amt = 0 diff --git a/code/modules/assembly/bomb.dm b/code/modules/assembly/bomb.dm index c8d2c29e92c..fb7906e925c 100644 --- a/code/modules/assembly/bomb.dm +++ b/code/modules/assembly/bomb.dm @@ -6,7 +6,7 @@ w_class = 3.0 throw_speed = 2 throw_range = 4 - flags = FPRINT | CONDUCT //Copied this from old code, so this may or may not be necessary + flags = CONDUCT //Copied this from old code, so this may or may not be necessary var/status = 0 //0 - not readied //1 - bomb finished with welder var/obj/item/device/assembly_holder/bombassembly = null //The first part of the bomb is an assembly holder, holding an igniter+some device var/obj/item/weapon/tank/bombtank = null //the second part of the bomb is a plasma tank diff --git a/code/modules/assembly/holder.dm b/code/modules/assembly/holder.dm index c8a2b81facd..a39cd4dc97b 100644 --- a/code/modules/assembly/holder.dm +++ b/code/modules/assembly/holder.dm @@ -3,7 +3,7 @@ icon = 'icons/obj/assemblies/new_assemblies.dmi' icon_state = "holder" item_state = "assembly" - flags = FPRINT | CONDUCT + flags = CONDUCT throwforce = 5 w_class = 2.0 throw_speed = 3 diff --git a/code/modules/assembly/shock_kit.dm b/code/modules/assembly/shock_kit.dm index 6b34017704c..20a606113b2 100644 --- a/code/modules/assembly/shock_kit.dm +++ b/code/modules/assembly/shock_kit.dm @@ -7,7 +7,7 @@ var/obj/item/device/radio/electropack/part2 = null var/status = 0 w_class = 5.0 - flags = FPRINT | CONDUCT + flags = CONDUCT /obj/item/assembly/shock_kit/Destroy() del(part1) diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm index 6574a027f3e..c6eb3a0365d 100644 --- a/code/modules/clothing/clothing.dm +++ b/code/modules/clothing/clothing.dm @@ -267,7 +267,6 @@ BLIND // can't see anything icon = 'icons/obj/clothing/suits.dmi' name = "suit" var/fire_resist = T0C+100 - flags = FPRINT | TABLEPASS allowed = list(/obj/item/weapon/tank/emergency_oxygen) armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0) slot_flags = SLOT_OCLOTHING @@ -281,7 +280,7 @@ BLIND // can't see anything name = "Space helmet" icon_state = "space" desc = "A special helmet designed for work in a hazardous, low-pressure environment." - flags = FPRINT | TABLEPASS | HEADCOVERSEYES | BLOCKHAIR | HEADCOVERSMOUTH | STOPSPRESSUREDMAGE + flags = HEADCOVERSEYES | BLOCKHAIR | HEADCOVERSMOUTH | STOPSPRESSUREDMAGE item_state = "s_helmet" permeability_coefficient = 0.01 armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 100, rad = 50) @@ -302,7 +301,7 @@ BLIND // can't see anything w_class = 4//bulky item gas_transfer_coefficient = 0.01 permeability_coefficient = 0.02 - flags = FPRINT | TABLEPASS | STOPSPRESSUREDMAGE + flags = STOPSPRESSUREDMAGE body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank,/obj/item/device/suit_cooling_unit) slowdown = 2 @@ -321,7 +320,6 @@ BLIND // can't see anything name = "under" body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS permeability_coefficient = 0.90 - flags = FPRINT | TABLEPASS slot_flags = SLOT_ICLOTHING armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0) var/has_sensor = 1//For the crew computer 2 = unable to change mode diff --git a/code/modules/clothing/head/hardhat.dm b/code/modules/clothing/head/hardhat.dm index 0ecd6fee1cf..42b985289a7 100644 --- a/code/modules/clothing/head/hardhat.dm +++ b/code/modules/clothing/head/hardhat.dm @@ -3,7 +3,6 @@ name = "hard hat" desc = "A piece of headgear used in dangerous working conditions to protect the head. Comes with a built-in flashlight." icon_state = "hardhat0_yellow" - flags = FPRINT | TABLEPASS item_state = "hardhat0_yellow" var/brightness_on = 4 //luminosity when on var/on = 0 @@ -48,7 +47,7 @@ item_state = "hardhat0_red" _color = "red" name = "firefighter helmet" - flags = FPRINT | TABLEPASS | STOPSPRESSUREDMAGE + flags = STOPSPRESSUREDMAGE heat_protection = HEAD max_heat_protection_temperature = FIRE_HELMET_MAX_HEAT_PROTECTION_TEMPERATURE cold_protection = HEAD @@ -58,7 +57,7 @@ icon_state = "hardhat0_white" item_state = "hardhat0_white" _color = "white" - flags = FPRINT | TABLEPASS | STOPSPRESSUREDMAGE + flags = STOPSPRESSUREDMAGE heat_protection = HEAD max_heat_protection_temperature = FIRE_HELMET_MAX_HEAT_PROTECTION_TEMPERATURE cold_protection = HEAD @@ -76,7 +75,7 @@ _color = "atmos" name = "atmospheric technician's firefighting helmet" desc = "A firefighter's helmet, able to keep the user cool in any situation." - flags = FPRINT | TABLEPASS | STOPSPRESSUREDMAGE + flags = STOPSPRESSUREDMAGE flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE heat_protection = HEAD max_heat_protection_temperature = FIRE_IMMUNITY_HELM_MAX_TEMP_PROTECT diff --git a/code/modules/clothing/head/helmet.dm b/code/modules/clothing/head/helmet.dm index 31c58f8a943..c8d1f5d32c5 100644 --- a/code/modules/clothing/head/helmet.dm +++ b/code/modules/clothing/head/helmet.dm @@ -2,7 +2,7 @@ name = "helmet" desc = "Standard Security gear. Protects the head from impacts." icon_state = "helmet" - flags = FPRINT | TABLEPASS | HEADCOVERSEYES | HEADBANGPROTECT + flags = HEADCOVERSEYES | HEADBANGPROTECT item_state = "helmet" armor = list(melee = 50, bullet = 15, laser = 50,energy = 10, bomb = 25, bio = 0, rad = 0) flags_inv = HIDEEARS|HIDEEYES @@ -25,7 +25,7 @@ desc = "It's a helmet specifically designed to protect against close range attacks." icon_state = "riot" item_state = "helmet" - flags = FPRINT|TABLEPASS|HEADCOVERSEYES|HEADCOVERSMOUTH|HEADBANGPROTECT + flags = HEADCOVERSEYES | HEADCOVERSMOUTH | HEADBANGPROTECT armor = list(melee = 82, bullet = 15, laser = 5,energy = 5, bomb = 5, bio = 2, rad = 0) flags_inv = HIDEEARS siemens_coefficient = 0.7 @@ -34,7 +34,7 @@ name = "\improper SWAT helmet" desc = "They're often used by highly trained Swat Members." icon_state = "swat" - flags = FPRINT | TABLEPASS | HEADCOVERSEYES + flags = HEADCOVERSEYES item_state = "swat" armor = list(melee = 80, bullet = 60, laser = 50,energy = 25, bomb = 50, bio = 10, rad = 0) flags_inv = HIDEEARS|HIDEEYES @@ -54,7 +54,7 @@ name = "\improper Thunderdome helmet" desc = "'Let the battle commence!'" icon_state = "thunderdome" - flags = FPRINT | TABLEPASS | HEADCOVERSEYES + flags = HEADCOVERSEYES item_state = "thunderdome" armor = list(melee = 80, bullet = 60, laser = 50,energy = 10, bomb = 25, bio = 10, rad = 0) cold_protection = HEAD @@ -81,7 +81,7 @@ name = "gladiator helmet" desc = "Ave, Imperator, morituri te salutant." icon_state = "gladiator" - flags = FPRINT|TABLEPASS|HEADCOVERSEYES|BLOCKHAIR + flags = HEADCOVERSEYES | BLOCKHAIR item_state = "gladiator" flags_inv = HIDEMASK|HIDEEARS|HIDEEYES siemens_coefficient = 1 @@ -91,7 +91,7 @@ obj/item/clothing/head/helmet/redtaghelm name = "red laser tag helmet" desc = "They have chosen their own end." icon_state = "redtaghelm" - flags = FPRINT|TABLEPASS|HEADCOVERSEYES + flags = HEADCOVERSEYES item_state = "redtaghelm" armor = list(melee = 30, bullet = 10, laser = 20,energy = 10, bomb = 20, bio = 0, rad = 0) // Offer about the same protection as a hardhat. @@ -101,7 +101,7 @@ obj/item/clothing/head/helmet/bluetaghelm name = "blue laser tag helmet" desc = "They'll need more men." icon_state = "bluetaghelm" - flags = FPRINT|TABLEPASS|HEADCOVERSEYES + flags = HEADCOVERSEYES item_state = "bluetaghelm" armor = list(melee = 30, bullet = 10, laser = 20,energy = 10, bomb = 20, bio = 0, rad = 0) // Offer about the same protection as a hardhat. diff --git a/code/modules/clothing/head/jobs.dm b/code/modules/clothing/head/jobs.dm index e45e2556c7c..2908b473709 100644 --- a/code/modules/clothing/head/jobs.dm +++ b/code/modules/clothing/head/jobs.dm @@ -6,7 +6,6 @@ icon_state = "chef" item_state = "chef" desc = "The commander in chef's head wear." - flags = FPRINT | TABLEPASS siemens_coefficient = 0.9 loose = 35 // why-a do people always push-a me over @@ -15,7 +14,6 @@ name = "captain's hat" icon_state = "captain" desc = "It's good being the king." - flags = FPRINT|TABLEPASS item_state = "caphat" siemens_coefficient = 0.9 armor = list(melee = 50, bullet = 15, laser = 50, energy = 10, bomb = 25, bio = 0, rad = 0) @@ -32,7 +30,6 @@ name = "head of personnel's cap" icon_state = "hopcap" desc = "The symbol of true bureaucratic micromanagement." - flags = FPRINT|TABLEPASS siemens_coefficient = 0.9 armor = list(melee = 50, bullet = 15, laser = 50, energy = 10, bomb = 25, bio = 0, rad = 0) loose = 43 // not the answer @@ -42,7 +39,7 @@ name = "chaplain's hood" desc = "It's hood that covers the head. It keeps you warm during the space winters." icon_state = "chaplain_hood" - flags = FPRINT|TABLEPASS|HEADCOVERSEYES|BLOCKHAIR + flags = HEADCOVERSEYES | BLOCKHAIR siemens_coefficient = 0.9 loose = 2 @@ -51,7 +48,7 @@ name = "nun hood" desc = "Maximum piety in this star system." icon_state = "nun_hood" - flags = FPRINT|TABLEPASS|HEADCOVERSEYES|BLOCKHAIR + flags = HEADCOVERSEYES | BLOCKHAIR siemens_coefficient = 0.9 loose = 2 @@ -68,7 +65,6 @@ name = "beret" desc = "A beret, an artists favorite headwear." icon_state = "beret" - flags = FPRINT | TABLEPASS siemens_coefficient = 0.9 loose = 16 @@ -77,7 +73,6 @@ name = "head of security cap" desc = "The robust standard-issue cap of the Head of Security. For showing the officers who's in charge." icon_state = "hoscap" - flags = FPRINT | TABLEPASS armor = list(melee = 80, bullet = 60, laser = 50, energy = 10, bomb = 25, bio = 10, rad = 0) /obj/item/clothing/head/HoS/beret @@ -89,7 +84,6 @@ name = "warden's police hat" desc = "It's a special armored hat issued to the Warden of a security force. Protects the head from impacts." icon_state = "policehelm" - flags = FPRINT | TABLEPASS armor = list(melee = 60, bullet = 5, laser = 25, energy = 10, bomb = 25, bio = 0, rad = 0) /obj/item/clothing/head/customs @@ -98,14 +92,12 @@ icon_state = "customshelm" item_state = "customshelm" armor = list(melee = 30, bullet = 25, laser = 25, energy = 10, bomb = 0, bio = 0, rad = 0) - flags = FPRINT | TABLEPASS /obj/item/clothing/head/beret/sec name = "security beret" desc = "A beret with the security insignia emblazoned on it. For officers that are more inclined towards style than safety." icon_state = "beret_badge" armor = list(melee = 30, bullet = 25, laser = 25, energy = 10, bomb = 0, bio = 0, rad = 0) - flags = FPRINT | TABLEPASS /obj/item/clothing/head/beret/sec/warden name = "warden's beret" @@ -117,14 +109,13 @@ name = "engineering beret" desc = "A beret with the engineering insignia emblazoned on it. For engineers that are more inclined towards style than safety." icon_state = "e_beret_badge" - flags = FPRINT | TABLEPASS //Medical /obj/item/clothing/head/surgery name = "surgical cap" desc = "A cap surgeons wear during operations. Keeps their hair from tickling your internal organs." icon_state = "surgcap_blue" - flags = FPRINT | TABLEPASS | BLOCKHEADHAIR + flags = BLOCKHEADHAIR loose = 13 /obj/item/clothing/head/surgery/purple diff --git a/code/modules/clothing/head/misc.dm b/code/modules/clothing/head/misc.dm index 4f07b12eb37..8f9138259a3 100644 --- a/code/modules/clothing/head/misc.dm +++ b/code/modules/clothing/head/misc.dm @@ -4,7 +4,6 @@ name = "\improper CentComm. hat" icon_state = "centcom" desc = "It's good to be emperor." - flags = FPRINT|TABLEPASS item_state = "centhat" armor = list(melee = 50, bullet = 15, laser = 50, energy = 10, bomb = 25, bio = 0, rad = 0) siemens_coefficient = 0.9 @@ -14,7 +13,6 @@ icon_state = "hairflower" desc = "Smells nice." item_state = "hairflower" - flags = FPRINT|TABLEPASS /obj/item/clothing/head/hairflower/purple icon_state = "hairflowerp" @@ -34,7 +32,6 @@ desc = "It's an amish looking hat." icon_state = "tophat" item_state = "that" - flags = FPRINT|TABLEPASS siemens_coefficient = 0.9 loose = 70 @@ -42,21 +39,18 @@ name = "redcoat's hat" icon_state = "redcoat" desc = "'I guess it's a redhead.'" - flags = FPRINT | TABLEPASS loose = 45 /obj/item/clothing/head/mailman name = "mailman's hat" icon_state = "mailman" desc = "'Right-on-time' mail service head wear." - flags = FPRINT | TABLEPASS loose = 65 /obj/item/clothing/head/plaguedoctorhat name = "plague doctor's hat" desc = "These were once used by Plague doctors. They're pretty much useless." icon_state = "plaguedoctor" - flags = FPRINT | TABLEPASS permeability_coefficient = 0.01 siemens_coefficient = 0.9 loose = 30 @@ -65,14 +59,13 @@ name = "hastur's hood" desc = "It's unspeakably stylish" icon_state = "hasturhood" - flags = FPRINT|TABLEPASS|HEADCOVERSEYES|BLOCKHAIR + flags = HEADCOVERSEYES | BLOCKHAIR loose = 1 /obj/item/clothing/head/nursehat name = "nurse's hat" desc = "It allows quick identification of trained medical personnel." icon_state = "nursehat" - flags = FPRINT|TABLEPASS siemens_coefficient = 0.9 loose = 80 // allowing for awkward come-ons when he/she drops his/her hat and you get it for him/her. @@ -81,7 +74,7 @@ icon_state = "syndicate-helm-black-red" item_state = "syndicate-helm-black-red" desc = "A plastic replica of a syndicate agent's space helmet, you'll look just like a real murderous syndicate agent in this! This is a toy, it is not made for use in space!" - flags = FPRINT | TABLEPASS | BLOCKHAIR + flags = BLOCKHAIR flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE siemens_coefficient = 2.0 loose = 15 // not a very good replica @@ -90,7 +83,7 @@ name = "cueball helmet" desc = "A large, featureless white orb mean to be worn on your head. How do you even see out of this thing?" icon_state = "cueball" - flags = FPRINT|TABLEPASS|HEADCOVERSEYES|HEADCOVERSMOUTH|BLOCKHAIR + flags = HEADCOVERSEYES | HEADCOVERSMOUTH | BLOCKHAIR item_state="cueball" flags_inv = 0 loose = 0 @@ -100,7 +93,6 @@ desc = "It's an amish looking armored top hat." icon_state = "tophat" item_state = "that" - flags = FPRINT|TABLEPASS flags_inv = 0 loose = 70 @@ -110,7 +102,6 @@ desc = "It's a green bandana with some fine nanotech lining." icon_state = "greenbandana" item_state = "greenbandana" - flags = FPRINT|TABLEPASS flags_inv = 0 loose = 1 @@ -119,7 +110,7 @@ desc = "A helmet made out of a box." icon_state = "cardborg_h" item_state = "cardborg_h" - flags = FPRINT | TABLEPASS | HEADCOVERSEYES | HEADCOVERSMOUTH + flags = HEADCOVERSEYES | HEADCOVERSMOUTH flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE loose = 20 @@ -128,7 +119,7 @@ desc = "fight for what's righteous!" icon_state = "justicered" item_state = "justicered" - flags = FPRINT|TABLEPASS|HEADCOVERSEYES|HEADCOVERSMOUTH|BLOCKHAIR + flags = HEADCOVERSEYES | HEADCOVERSMOUTH | BLOCKHAIR loose = 0 /obj/item/clothing/head/justice/blue @@ -151,7 +142,6 @@ name = "rabbit ears" desc = "Wearing these makes you looks useless, and only good for your sex appeal." icon_state = "bunny" - flags = FPRINT | TABLEPASS loose = 4 /obj/item/clothing/head/flatcap @@ -190,28 +180,24 @@ icon_state = "bowler_hat" item_state = "bowler_hat" desc = "For that industrial age look." - flags = FPRINT|TABLEPASS /obj/item/clothing/head/beaverhat name = "beaver hat" icon_state = "beaver_hat" item_state = "beaver_hat" desc = "Like a top hat, but made of beavers." - flags = FPRINT|TABLEPASS /obj/item/clothing/head/boaterhat name = "boater hat" icon_state = "boater_hat" item_state = "boater_hat" desc = "Goes well with celery." - flags = FPRINT|TABLEPASS /obj/item/clothing/head/fedora name = "\improper fedora" icon_state = "fedora" item_state = "fedora" desc = "A great hat ruined by being within fifty yards of you." - flags = FPRINT|TABLEPASS //TIPS FEDORA /obj/item/clothing/head/fedora/verb/tip_fedora() @@ -226,7 +212,6 @@ icon_state = "fez" item_state = "fez" desc = "Put it on your monkey, make lots of cash money." - flags = FPRINT|TABLEPASS //end bs12 hats @@ -235,7 +220,7 @@ desc = "Eeeee~heheheheheheh!" icon_state = "witch" item_state = "witch" - flags = FPRINT | TABLEPASS | BLOCKHAIR + flags = BLOCKHAIR siemens_coefficient = 2.0 loose = 1 @@ -244,7 +229,7 @@ desc = "Bkaw!" icon_state = "chickenhead" item_state = "chickensuit" - flags = FPRINT | TABLEPASS | BLOCKHAIR + flags = BLOCKHAIR siemens_coefficient = 2.0 /obj/item/clothing/head/corgi @@ -252,7 +237,7 @@ desc = "Woof!" icon_state = "corgihead" item_state = "chickensuit" - flags = FPRINT | TABLEPASS | BLOCKHAIR + flags = BLOCKHAIR siemens_coefficient = 2.0 /obj/item/clothing/head/bearpelt @@ -260,7 +245,7 @@ desc = "Fuzzy." icon_state = "bearpelt" item_state = "bearpelt" - flags = FPRINT | TABLEPASS | BLOCKHAIR + flags = BLOCKHAIR siemens_coefficient = 2.0 loose = 0 // grrrr @@ -269,7 +254,7 @@ icon_state = "xenos" item_state = "xenos_helm" desc = "A helmet made out of chitinous alien hide." - flags = FPRINT | TABLEPASS | BLOCKHAIR + flags = BLOCKHAIR flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE siemens_coefficient = 2.0 @@ -278,7 +263,6 @@ icon_state = "crown" item_state = "crown" desc = "A gliterring bananium crown with spessjewels in it. Swaggy." - flags = FPRINT | TABLEPASS /obj/item/clothing/head/fedora @@ -300,7 +284,7 @@ desc = "The typical clown soldier's helmet." icon_state = "stalhelm" item_state = "stalhelm" - flags = FPRINT | TABLEPASS | BLOCKHAIR + flags = BLOCKHAIR flags_inv = HIDEEARS /obj/item/clothing/head/panzer @@ -308,14 +292,14 @@ desc = "The softcap worn by HONK Mech pilots." icon_state = "panzercap" item_state = "panzercap" - flags = FPRINT | TABLEPASS | BLOCKHAIR + flags = BLOCKHAIR /obj/item/clothing/head/naziofficer name = "Clown Officer Cap" desc = "The peaked clown officer's cap, disturbingly similar to the warden's." icon_state = "officercap" item_state = "officercap" - flags = FPRINT | TABLEPASS | BLOCKHAIR + flags = BLOCKHAIR flags_inv = HIDEEARS /obj/item/clothing/head/beret/purple @@ -323,19 +307,16 @@ desc = " A purple beret, with a small golden crescent moon sewn onto it." icon_state = "purpleberet" item_state = "purpleberet" - flags = FPRINT | TABLEPASS /obj/item/clothing/head/beret/centcom/officer name = "officers beret" desc = "A black beret adorned with the shield—a silver kite shield with an engraved sword—of the Nanotrasen security forces, announcing to the world that the wearer is a defender of Nanotrasen." icon_state = "centcomofficerberet" - flags = FPRINT | TABLEPASS /obj/item/clothing/head/beret/centcom/captain name = "captains beret" desc = "A white beret adorned with the shield—a cobalt kite shield with an engraved sword—of the Nanotrasen security forces, worn only by those captaining a vessel of the Nanotrasen Navy." icon_state = "centcomcaptain" - flags = FPRINT | TABLEPASS /obj/item/clothing/head/sombrero name = "sombrero" diff --git a/code/modules/clothing/head/misc_special.dm b/code/modules/clothing/head/misc_special.dm index 80f321c4faf..92d71afc888 100644 --- a/code/modules/clothing/head/misc_special.dm +++ b/code/modules/clothing/head/misc_special.dm @@ -15,7 +15,7 @@ name = "welding helmet" desc = "A head-mounted face cover designed to protect the wearer completely from space-arc eye." icon_state = "welding" - flags = (FPRINT | TABLEPASS | HEADCOVERSEYES | HEADCOVERSMOUTH) + flags = HEADCOVERSEYES | HEADCOVERSMOUTH item_state = "welding" m_amt = 1750 g_amt = 400 @@ -60,7 +60,7 @@ name = "cake-hat" desc = "It's tasty looking!" icon_state = "cake0" - flags = FPRINT|TABLEPASS|HEADCOVERSEYES + flags = HEADCOVERSEYES var/onfire = 0.0 var/status = 0 var/fire_resist = T0C+1300 //this is the max temp it can stand before you start to cook. although it might not burn away, you take damage @@ -128,7 +128,7 @@ icon_state = "hardhat0_pumpkin"//Could stand to be renamed item_state = "hardhat0_pumpkin" _color = "pumpkin" - flags = FPRINT | TABLEPASS | HEADCOVERSEYES | HEADCOVERSMOUTH | BLOCKHAIR + flags = HEADCOVERSEYES | HEADCOVERSMOUTH | BLOCKHAIR flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE action_button_name = "Toggle Pumpkin Light" @@ -143,7 +143,6 @@ icon_state = "hardhat0_reindeer" item_state = "hardhat0_reindeer" _color = "reindeer" - flags = FPRINT | TABLEPASS flags_inv = 0 action_button_name = "Toggle Nose Light" armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0) @@ -157,7 +156,6 @@ name = "kitty ears" desc = "A pair of kitty ears. Meow!" icon_state = "kitty" - flags = FPRINT | TABLEPASS var/icon/mob siemens_coefficient = 1.5 loose = 33 diff --git a/code/modules/clothing/head/soft_caps.dm b/code/modules/clothing/head/soft_caps.dm index 1020f95c79c..1f88aaa231c 100644 --- a/code/modules/clothing/head/soft_caps.dm +++ b/code/modules/clothing/head/soft_caps.dm @@ -2,7 +2,6 @@ name = "cargo cap" desc = "It's a baseball hat in a tasteless yellow colour." icon_state = "cargosoft" - flags = FPRINT|TABLEPASS item_state = "helmet" _color = "cargo" var/flipped = 0 diff --git a/code/modules/clothing/masks/boxing.dm b/code/modules/clothing/masks/boxing.dm index 1c84e97df5d..169722cac1e 100644 --- a/code/modules/clothing/masks/boxing.dm +++ b/code/modules/clothing/masks/boxing.dm @@ -3,7 +3,7 @@ desc = "LOADSAMONEY" icon_state = "balaclava" item_state = "balaclava" - flags = FPRINT|TABLEPASS|BLOCKHAIR + flags = BLOCKHAIR flags_inv = HIDEFACE w_class = 2 species_fit = list("Vox") @@ -15,7 +15,7 @@ desc = "Worn by robust fighters, flying high to defeat their foes!" icon_state = "luchag" item_state = "luchag" - flags = FPRINT|TABLEPASS|BLOCKHAIR + flags = BLOCKHAIR flags_inv = HIDEFACE w_class = 2 siemens_coefficient = 3.0 diff --git a/code/modules/clothing/masks/breath.dm b/code/modules/clothing/masks/breath.dm index 25aff648f63..1dc78de5017 100644 --- a/code/modules/clothing/masks/breath.dm +++ b/code/modules/clothing/masks/breath.dm @@ -3,7 +3,7 @@ name = "breath mask" icon_state = "breath" item_state = "breath" - flags = FPRINT | TABLEPASS | MASKCOVERSMOUTH | MASKINTERNALS + flags = MASKCOVERSMOUTH | MASKINTERNALS w_class = 2 gas_transfer_coefficient = 0.10 permeability_coefficient = 0.50 diff --git a/code/modules/clothing/masks/gasmask.dm b/code/modules/clothing/masks/gasmask.dm index 2ad9f030cf2..c728f0d88bb 100644 --- a/code/modules/clothing/masks/gasmask.dm +++ b/code/modules/clothing/masks/gasmask.dm @@ -2,7 +2,7 @@ name = "gas mask" desc = "A face-covering mask that can be connected to an air supply." icon_state = "gas_alt" - flags = FPRINT | TABLEPASS | MASKCOVERSMOUTH | MASKCOVERSEYES | BLOCK_GAS_SMOKE_EFFECT | MASKINTERNALS + flags = MASKCOVERSMOUTH | MASKCOVERSEYES | BLOCK_GAS_SMOKE_EFFECT | MASKINTERNALS flags_inv = HIDEEARS|HIDEEYES|HIDEFACE w_class = 3.0 item_state = "gas_alt" @@ -19,7 +19,7 @@ name = "bane mask" desc = "Only when the station is in flames, do you have my permission to robust." icon_state = "bane_mask" - flags = FPRINT | TABLEPASS | MASKCOVERSMOUTH | MASKCOVERSEYES | BLOCK_GAS_SMOKE_EFFECT | MASKINTERNALS + flags = MASKCOVERSMOUTH | MASKCOVERSEYES | BLOCK_GAS_SMOKE_EFFECT | MASKINTERNALS flags_inv = HIDEEARS|HIDEEYES|HIDEFACE w_class = 3.0 item_state = "bane_mask" @@ -95,7 +95,7 @@ icon_state = "clown" item_state = "clown_hat" species_fit = list("Vox") - flags = FPRINT | TABLEPASS | MASKCOVERSMOUTH | MASKCOVERSEYES | BLOCK_GAS_SMOKE_EFFECT | MASKINTERNALS | BLOCKHAIR + flags = MASKCOVERSMOUTH | MASKCOVERSEYES | BLOCK_GAS_SMOKE_EFFECT | MASKINTERNALS | BLOCKHAIR /obj/item/clothing/mask/gas/clown_hat/attack_self(mob/user) @@ -118,7 +118,7 @@ desc = "Some pranksters are truly magical." icon_state = "wizzclown" item_state = "wizzclown" - flags = FPRINT | TABLEPASS | MASKCOVERSMOUTH | MASKCOVERSEYES | BLOCK_GAS_SMOKE_EFFECT | MASKINTERNALS | BLOCKHAIR + flags = MASKCOVERSMOUTH | MASKCOVERSEYES | BLOCK_GAS_SMOKE_EFFECT | MASKINTERNALS | BLOCKHAIR /obj/item/clothing/mask/gas/virusclown_hat name = "clown wig and mask" diff --git a/code/modules/clothing/masks/miscellaneous.dm b/code/modules/clothing/masks/miscellaneous.dm index b1f7ba41c3b..632b6bddd81 100644 --- a/code/modules/clothing/masks/miscellaneous.dm +++ b/code/modules/clothing/masks/miscellaneous.dm @@ -3,7 +3,7 @@ desc = "To stop that awful noise." icon_state = "muzzle" item_state = "muzzle" - flags = FPRINT|TABLEPASS|MASKCOVERSMOUTH + flags = MASKCOVERSMOUTH w_class = 2 gas_transfer_coefficient = 0.90 species_fit = list("Vox") @@ -31,7 +31,7 @@ icon_state = "sterile" item_state = "sterile" w_class = 1 - flags = FPRINT|TABLEPASS|MASKCOVERSMOUTH + flags = MASKCOVERSMOUTH gas_transfer_coefficient = 0.90 permeability_coefficient = 0.01 armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 25, rad = 0) @@ -43,7 +43,6 @@ name = "fake moustache" desc = "Warning: moustache is fake." icon_state = "fake-moustache" - flags = FPRINT|TABLEPASS flags_inv = HIDEFACE //scarves (fit in in mask slot) @@ -53,7 +52,7 @@ desc = "A blue neck scarf." icon_state = "blueneckscarf" item_state = "blueneckscarf" - flags = FPRINT|TABLEPASS|MASKCOVERSMOUTH + flags = MASKCOVERSMOUTH w_class = 2 gas_transfer_coefficient = 0.90 @@ -62,7 +61,7 @@ desc = "A red and white checkered neck scarf." icon_state = "redwhite_scarf" item_state = "redwhite_scarf" - flags = FPRINT|TABLEPASS|MASKCOVERSMOUTH + flags = MASKCOVERSMOUTH w_class = 2 gas_transfer_coefficient = 0.90 @@ -71,7 +70,7 @@ desc = "A green neck scarf." icon_state = "green_scarf" item_state = "green_scarf" - flags = FPRINT|TABLEPASS|MASKCOVERSMOUTH + flags = MASKCOVERSMOUTH w_class = 2 gas_transfer_coefficient = 0.90 @@ -80,7 +79,7 @@ desc = "A stealthy, dark scarf." icon_state = "ninja_scarf" item_state = "ninja_scarf" - flags = FPRINT|TABLEPASS|MASKCOVERSMOUTH + flags = MASKCOVERSMOUTH w_class = 2 gas_transfer_coefficient = 0.90 siemens_coefficient = 0 @@ -90,7 +89,7 @@ desc = "A rubber pig mask." icon_state = "pig" item_state = "pig" - flags = FPRINT|TABLEPASS|BLOCKHAIR + flags = BLOCKHAIR flags_inv = HIDEFACE w_class = 2 siemens_coefficient = 0.9 @@ -101,7 +100,7 @@ desc = "A mask made of soft vinyl and latex, representing the head of a horse." icon_state = "horsehead" item_state = "horsehead" - flags = FPRINT|TABLEPASS|BLOCKHAIR + flags = BLOCKHAIR flags_inv = HIDEFACE w_class = 2 siemens_coefficient = 0.9 @@ -150,4 +149,4 @@ icon_state = "pennywise_mask" item_state = "pennywise_mask" species_fit = list("Vox") - flags = FPRINT | TABLEPASS | MASKCOVERSMOUTH | MASKCOVERSEYES | BLOCK_GAS_SMOKE_EFFECT | MASKINTERNALS | BLOCKHAIR + flags = MASKCOVERSMOUTH | MASKCOVERSEYES | BLOCK_GAS_SMOKE_EFFECT | MASKINTERNALS | BLOCKHAIR diff --git a/code/modules/clothing/spacesuits/alien.dm b/code/modules/clothing/spacesuits/alien.dm index d1d9962393b..ea777bc90a1 100644 --- a/code/modules/clothing/spacesuits/alien.dm +++ b/code/modules/clothing/spacesuits/alien.dm @@ -267,13 +267,13 @@ flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT max_heat_protection_temperature = SPACE_SUIT_MAX_HEAT_PROTECTION_TEMPERATURE species_restricted = list("Plasmaman") - flags = FPRINT | TABLEPASS | STOPSPRESSUREDMAGE | PLASMAGUARD + flags = STOPSPRESSUREDMAGE | PLASMAGUARD icon_state = "plasmaman_suit" item_state = "plasmaman_suit" /obj/item/clothing/head/helmet/space/plasmaman - flags = FPRINT | TABLEPASS | HEADCOVERSEYES | BLOCKHAIR | STOPSPRESSUREDMAGE | PLASMAGUARD + flags = HEADCOVERSEYES | BLOCKHAIR | STOPSPRESSUREDMAGE | PLASMAGUARD species_restricted = list("Plasmaman") icon_state = "plasmaman_helmet0" diff --git a/code/modules/clothing/spacesuits/captain.dm b/code/modules/clothing/spacesuits/captain.dm index 62d21b3688d..823957ac4b5 100644 --- a/code/modules/clothing/spacesuits/captain.dm +++ b/code/modules/clothing/spacesuits/captain.dm @@ -4,7 +4,7 @@ icon_state = "capspace" item_state = "capspacehelmet" desc = "A special helmet designed for work in a hazardous, low-pressure environment. Only for the most fashionable of military figureheads." - flags = FPRINT | TABLEPASS | HEADCOVERSEYES | BLOCKHAIR | STOPSPRESSUREDMAGE|HEADCOVERSMOUTH + flags = HEADCOVERSEYES | BLOCKHAIR | STOPSPRESSUREDMAGE|HEADCOVERSMOUTH flags_inv = HIDEFACE permeability_coefficient = 0.01 armor = list(melee = 65, bullet = 50, laser = 50,energy = 25, bomb = 50, bio = 100, rad = 50) @@ -18,7 +18,7 @@ w_class = 4 gas_transfer_coefficient = 0.01 permeability_coefficient = 0.02 - flags = FPRINT | TABLEPASS | STOPSPRESSUREDMAGE | ONESIZEFITSALL + flags = STOPSPRESSUREDMAGE | ONESIZEFITSALL body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS allowed = list(/obj/item/weapon/tank/emergency_oxygen, /obj/item/device/flashlight,/obj/item/weapon/gun/energy, /obj/item/weapon/gun/projectile, /obj/item/ammo_box, /obj/item/ammo_casing, /obj/item/weapon/melee/baton,/obj/item/weapon/handcuffs) slowdown = 1.5 diff --git a/code/modules/clothing/spacesuits/miscellaneous.dm b/code/modules/clothing/spacesuits/miscellaneous.dm index b47cca56802..de523d76bd6 100644 --- a/code/modules/clothing/spacesuits/miscellaneous.dm +++ b/code/modules/clothing/spacesuits/miscellaneous.dm @@ -64,7 +64,7 @@ name = "Santa's hat" desc = "Ho ho ho. Merrry X-mas!" icon_state = "santahat" - flags = FPRINT | TABLEPASS | HEADCOVERSEYES | BLOCKHAIR | STOPSPRESSUREDMAGE + flags = HEADCOVERSEYES | BLOCKHAIR | STOPSPRESSUREDMAGE /obj/item/clothing/suit/space/santa name = "Santa's suit" @@ -72,7 +72,7 @@ icon_state = "santa" item_state = "santa" slowdown = 0 - flags = FPRINT | TABLEPASS | ONESIZEFITSALL | STOPSPRESSUREDMAGE + flags = ONESIZEFITSALL | STOPSPRESSUREDMAGE allowed = list(/obj/item) //for stuffing exta special presents @@ -83,7 +83,7 @@ icon_state = "pirate" item_state = "pirate" armor = list(melee = 60, bullet = 50, laser = 30,energy = 15, bomb = 30, bio = 30, rad = 30) - flags = FPRINT | TABLEPASS | HEADCOVERSEYES | BLOCKHAIR | STOPSPRESSUREDMAGE + flags = HEADCOVERSEYES | BLOCKHAIR | STOPSPRESSUREDMAGE siemens_coefficient = 0.9 /obj/item/clothing/suit/space/pirate diff --git a/code/modules/clothing/spacesuits/rig.dm b/code/modules/clothing/spacesuits/rig.dm index ce7e86c94ca..23ed6f1f9ef 100644 --- a/code/modules/clothing/spacesuits/rig.dm +++ b/code/modules/clothing/spacesuits/rig.dm @@ -508,5 +508,5 @@ name = "singuloth knight's armor" desc = "This is a ceremonial armor from the chapter of the Singuloth Knights. It's made of pure forged adamantium." item_state = "singuloth_hardsuit" - flags = FPRINT | TABLEPASS | STOPSPRESSUREDMAGE + flags = STOPSPRESSUREDMAGE armor = list(melee = 40, bullet = 5, laser = 20,energy = 5, bomb = 25, bio = 100, rad = 100) diff --git a/code/modules/clothing/suits/armor.dm b/code/modules/clothing/suits/armor.dm index d92dabb8535..3c7cc8abaa3 100644 --- a/code/modules/clothing/suits/armor.dm +++ b/code/modules/clothing/suits/armor.dm @@ -2,7 +2,6 @@ /obj/item/clothing/suit/armor allowed = list(/obj/item/weapon/gun/energy,/obj/item/weapon/reagent_containers/spray/pepper,/obj/item/weapon/gun/projectile,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/handcuffs,/obj/item/device/flashlight/seclite,/obj/item/weapon/melee/telebaton) body_parts_covered = UPPER_TORSO|LOWER_TORSO - flags = FPRINT | TABLEPASS cold_protection = UPPER_TORSO|LOWER_TORSO min_cold_protection_temperature = ARMOR_MIN_COLD_PROTECTION_TEMPERATURE heat_protection = UPPER_TORSO|LOWER_TORSO @@ -16,7 +15,7 @@ icon_state = "armor" item_state = "armor" blood_overlay_type = "armor" - flags = FPRINT | TABLEPASS | ONESIZEFITSALL + flags = ONESIZEFITSALL armor = list(melee = 50, bullet = 15, laser = 50, energy = 10, bomb = 25, bio = 0, rad = 0) /obj/item/clothing/suit/armor/vest/combat @@ -25,7 +24,7 @@ icon_state = "armor-combat" item_state = "bulletproof" blood_overlay_type = "armor" - flags = FPRINT | TABLEPASS | ONESIZEFITSALL + flags = ONESIZEFITSALL armor = list(melee = 50, bullet = 15, laser = 50, energy = 10, bomb = 25, bio = 0, rad = 0) /obj/item/clothing/suit/armor/vest/security @@ -146,7 +145,7 @@ icon_state = "detective-armor" item_state = "armor" blood_overlay_type = "armor" - flags = FPRINT | TABLEPASS | ONESIZEFITSALL + flags = ONESIZEFITSALL allowed = list(/obj/item/weapon/tank/emergency_oxygen,/obj/item/weapon/reagent_containers/spray/pepper,/obj/item/device/flashlight,/obj/item/weapon/gun,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/handcuffs,/obj/item/weapon/storage/fancy/cigarettes,/obj/item/weapon/lighter,/obj/item/device/detective_scanner,/obj/item/device/taperecorder) @@ -160,7 +159,6 @@ item_state = "reactiveoff" blood_overlay_type = "armor" slowdown = 1 - flags = FPRINT | TABLEPASS icon_action_button = "reactiveoff" armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0) diff --git a/code/modules/clothing/suits/bio.dm b/code/modules/clothing/suits/bio.dm index 18025e077e4..4527c6395c2 100644 --- a/code/modules/clothing/suits/bio.dm +++ b/code/modules/clothing/suits/bio.dm @@ -4,7 +4,7 @@ icon_state = "bio" desc = "A hood that protects the head and face from biological comtaminants." permeability_coefficient = 0.01 - flags = FPRINT|TABLEPASS|HEADCOVERSEYES|HEADCOVERSMOUTH|BLOCKHAIR + flags = HEADCOVERSEYES | HEADCOVERSMOUTH | BLOCKHAIR armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 100, rad = 20) flags_inv = HIDEMASK|HIDEEARS|HIDEEYES siemens_coefficient = 0.9 @@ -18,7 +18,7 @@ w_class = 4//bulky item gas_transfer_coefficient = 0.01 permeability_coefficient = 0.01 - flags = FPRINT | TABLEPASS | ONESIZEFITSALL + flags = ONESIZEFITSALL body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS slowdown = 1.0 allowed = list(/obj/item/weapon/tank/emergency_oxygen,/obj/item/weapon/pen,/obj/item/device/flashlight/pen) diff --git a/code/modules/clothing/suits/jobs.dm b/code/modules/clothing/suits/jobs.dm index 7f4b11ef8b2..a6990003f73 100644 --- a/code/modules/clothing/suits/jobs.dm +++ b/code/modules/clothing/suits/jobs.dm @@ -48,7 +48,7 @@ item_state = "bio_suit" body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS flags_inv = HIDEJUMPSUIT - flags = FPRINT | TABLEPASS | ONESIZEFITSALL + flags = ONESIZEFITSALL allowed = list(/obj/item/weapon/disk, /obj/item/weapon/stamp, /obj/item/weapon/reagent_containers/food/drinks/flask, /obj/item/weapon/melee, /obj/item/weapon/storage/lockbox/medal, /obj/item/device/flash, /obj/item/weapon/storage/box/matches, /obj/item/weapon/lighter, /obj/item/clothing/mask/cigarette, /obj/item/weapon/storage/fancy/cigarettes, /obj/item/weapon/tank/emergency_oxygen) species_fit = list("Vox") sprite_sheets = list( @@ -136,7 +136,7 @@ armor = list(melee = 50, bullet = 10, laser = 25, energy = 10, bomb = 0, bio = 0, rad = 0) cold_protection = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS heat_protection = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS - flags = FPRINT | TABLEPASS | ONESIZEFITSALL + flags = ONESIZEFITSALL species_fit = list("Vox") sprite_sheets = list( "Vox" = 'icons/mob/species/vox/suit.dmi' diff --git a/code/modules/clothing/suits/miscellaneous.dm b/code/modules/clothing/suits/miscellaneous.dm index f2c6ab9eb88..397733ef7de 100644 --- a/code/modules/clothing/suits/miscellaneous.dm +++ b/code/modules/clothing/suits/miscellaneous.dm @@ -36,14 +36,12 @@ desc = "Yarr." icon_state = "pirate_old" item_state = "pirate_old" - flags = FPRINT | TABLEPASS /obj/item/clothing/suit/pirate_black name = "black pirate coat" desc = "Yarr." icon_state = "pirate" item_state = "pirate" - flags = FPRINT | TABLEPASS /obj/item/clothing/suit/hgpirate @@ -51,7 +49,6 @@ desc = "Yarr." icon_state = "hgpirate" item_state = "hgpirate" - flags = FPRINT | TABLEPASS flags_inv = HIDEJUMPSUIT @@ -60,7 +57,7 @@ desc = "Suit for a cyborg costume." icon_state = "death" item_state = "death" - flags = FPRINT | TABLEPASS | CONDUCT + flags = CONDUCT fire_resist = T0C+5200 flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT @@ -70,7 +67,6 @@ desc = "A Nazi great coat" icon_state = "nazi" item_state = "nazi" - flags = FPRINT | TABLEPASS /obj/item/clothing/suit/johnny_coat @@ -78,7 +74,6 @@ desc = "Johnny~~" icon_state = "johnny" item_state = "johnny" - flags = FPRINT | TABLEPASS /obj/item/clothing/suit/justice @@ -86,7 +81,6 @@ desc = "this pretty much looks ridiculous" icon_state = "justice" item_state = "justice" - flags = FPRINT | TABLEPASS flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT @@ -95,7 +89,6 @@ desc = "This robe commands authority." icon_state = "judge" item_state = "judge" - flags = FPRINT | TABLEPASS body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS allowed = list(/obj/item/weapon/storage/fancy/cigarettes,/obj/item/weapon/spacecash) flags_inv = HIDEJUMPSUIT @@ -124,7 +117,6 @@ item_state = "syndicate-black-red" desc = "A plastic replica of the syndicate space suit, you'll look just like a real murderous syndicate agent in this! This is a toy, it is not made for use in space!" w_class = 3 - flags = FPRINT | TABLEPASS allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/emergency_oxygen,/obj/item/toy) flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT @@ -228,7 +220,7 @@ item_state = "straight_jacket" body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS|HANDS flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT|HIDETAIL - flags = FPRINT | TABLEPASS | ONESIZEFITSALL + flags = ONESIZEFITSALL /obj/item/clothing/suit/ianshirt name = "worn shirt" @@ -282,21 +274,18 @@ desc = "A long, thick black leather coat." icon_state = "leathercoat" item_state = "leathercoat" - flags = FPRINT | TABLEPASS /obj/item/clothing/suit/browncoat name = "brown leather coat" desc = "A long, brown leather coat." icon_state = "browncoat" item_state = "browncoat" - flags = FPRINT | TABLEPASS /obj/item/clothing/suit/neocoat name = "black coat" desc = "A flowing, black coat." icon_state = "neocoat" item_state = "neocoat" - flags = FPRINT | TABLEPASS /obj/item/clothing/suit/browntrenchcoat name = "brown trench coat" @@ -318,7 +307,6 @@ desc = "A cream coloured, genteel suit." icon_state = "creamsuit" item_state = "creamsuit" - flags = FPRINT | TABLEPASS //stripper @@ -412,7 +400,7 @@ w_class = 4//bulky item gas_transfer_coefficient = 0.01 permeability_coefficient = 0.01 - flags = FPRINT | TABLEPASS | ONESIZEFITSALL + flags = ONESIZEFITSALL body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS allowed = list(/obj/item/weapon/tank/emergency_oxygen,/obj/item/weapon/pen,/obj/item/device/flashlight/pen) armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 100, rad = 20) @@ -425,7 +413,7 @@ icon_state = "mercy_hood" item_state = "mercy_hood" permeability_coefficient = 0.01 - flags = FPRINT|TABLEPASS|HEADCOVERSEYES|HEADCOVERSMOUTH|BLOCKHAIR + flags = HEADCOVERSEYES | HEADCOVERSMOUTH | BLOCKHAIR armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 100, rad = 20) flags_inv = HIDEMASK|HIDEEARS|HIDEEYES siemens_coefficient = 0.9 diff --git a/code/modules/clothing/suits/utility.dm b/code/modules/clothing/suits/utility.dm index 4896840ab1e..b23bae05eee 100644 --- a/code/modules/clothing/suits/utility.dm +++ b/code/modules/clothing/suits/utility.dm @@ -21,7 +21,7 @@ allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/emergency_oxygen,/obj/item/weapon/extinguisher) slowdown = 1.0 flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT|HIDETAIL - flags = FPRINT | TABLEPASS | STOPSPRESSUREDMAGE + flags = STOPSPRESSUREDMAGE 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 @@ -55,7 +55,7 @@ name = "bomb hood" desc = "Use in case of bomb." icon_state = "bombsuit" - flags = FPRINT|TABLEPASS|HEADCOVERSEYES|HEADCOVERSMOUTH|BLOCKHAIR + flags = HEADCOVERSEYES | HEADCOVERSMOUTH | BLOCKHAIR armor = list(melee = 40, bullet = 0, laser = 20,energy = 10, bomb = 100, bio = 0, rad = 0) flags_inv = HIDEMASK|HIDEEARS|HIDEEYES cold_protection = HEAD @@ -74,7 +74,6 @@ w_class = 4//bulky item gas_transfer_coefficient = 0.01 permeability_coefficient = 0.01 - flags = FPRINT | TABLEPASS body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS slowdown = 2 armor = list(melee = 40, bullet = 0, laser = 20,energy = 10, bomb = 100, bio = 0, rad = 0) @@ -103,7 +102,7 @@ name = "Radiation Hood" icon_state = "rad" desc = "A hood with radiation protective properties. Label: Made with lead, do not eat insulation" - flags = FPRINT|TABLEPASS|HEADCOVERSEYES|HEADCOVERSMOUTH|BLOCKHAIR + flags = HEADCOVERSEYES|HEADCOVERSMOUTH|BLOCKHAIR armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 60, rad = 100) loose = 8 diff --git a/code/modules/clothing/under/color.dm b/code/modules/clothing/under/color.dm index dc292acf7e3..2a361840b50 100644 --- a/code/modules/clothing/under/color.dm +++ b/code/modules/clothing/under/color.dm @@ -15,7 +15,7 @@ icon_state = "black" item_state = "bl_suit" _color = "black" - flags = FPRINT | TABLEPASS | ONESIZEFITSALL + flags = ONESIZEFITSALL /obj/item/clothing/under/color/blackf name = "feminine black jumpsuit" @@ -29,7 +29,7 @@ icon_state = "blue" item_state = "b_suit" _color = "blue" - flags = FPRINT | TABLEPASS | ONESIZEFITSALL + flags = ONESIZEFITSALL /obj/item/clothing/under/color/blue/dodgeball canremove = 0 @@ -39,7 +39,7 @@ icon_state = "green" item_state = "g_suit" _color = "green" - flags = FPRINT | TABLEPASS | ONESIZEFITSALL + flags = ONESIZEFITSALL /obj/item/clothing/under/color/grey name = "grey jumpsuit" @@ -47,7 +47,7 @@ icon_state = "grey" item_state = "gy_suit" _color = "grey" - flags = FPRINT | TABLEPASS | ONESIZEFITSALL + flags = ONESIZEFITSALL species_fit = list("Vox") /obj/item/clothing/under/color/orange @@ -56,7 +56,7 @@ icon_state = "orange" item_state = "o_suit" _color = "orange" - flags = FPRINT | TABLEPASS | ONESIZEFITSALL + flags = ONESIZEFITSALL /obj/item/clothing/under/color/orange/prison name = "orange jumpsuit" @@ -66,7 +66,7 @@ _color = "orange" has_sensor = 2 sensor_mode = 3 - flags = FPRINT | TABLEPASS | ONESIZEFITSALL + flags = ONESIZEFITSALL /obj/item/clothing/under/color/pink name = "pink jumpsuit" @@ -74,14 +74,14 @@ icon_state = "pink" item_state = "p_suit" _color = "pink" - flags = FPRINT | TABLEPASS | ONESIZEFITSALL + flags = ONESIZEFITSALL /obj/item/clothing/under/color/red name = "red jumpsuit" icon_state = "red" item_state = "r_suit" _color = "red" - flags = FPRINT | TABLEPASS | ONESIZEFITSALL + flags = ONESIZEFITSALL /obj/item/clothing/under/color/red/dodgeball canremove = 0 @@ -91,14 +91,14 @@ icon_state = "white" item_state = "w_suit" _color = "white" - flags = FPRINT | TABLEPASS | ONESIZEFITSALL + flags = ONESIZEFITSALL /obj/item/clothing/under/color/yellow name = "yellow jumpsuit" icon_state = "yellow" item_state = "y_suit" _color = "yellow" - flags = FPRINT | TABLEPASS | ONESIZEFITSALL + flags = ONESIZEFITSALL /obj/item/clothing/under/psyche name = "psychedelic jumpsuit" @@ -115,7 +115,7 @@ name = "aqua jumpsuit" icon_state = "aqua" _color = "aqua" - flags = FPRINT | TABLEPASS | ONESIZEFITSALL + flags = ONESIZEFITSALL /obj/item/clothing/under/color/purple name = "purple jumpsuit" @@ -142,13 +142,12 @@ name = "light brown jumpsuit" icon_state = "lightbrown" _color = "lightbrown" - flags = FPRINT | TABLEPASS | ONESIZEFITSALL + flags = ONESIZEFITSALL /obj/item/clothing/under/color/brown name = "brown jumpsuit" icon_state = "brown" _color = "brown" - flags = FPRINT | TABLEPASS /obj/item/clothing/under/color/yellowgreen name = "yellow green jumpsuit" @@ -159,7 +158,7 @@ name = "dark blue jumpsuit" icon_state = "darkblue" _color = "darkblue" - flags = FPRINT | TABLEPASS | ONESIZEFITSALL + flags = ONESIZEFITSALL /obj/item/clothing/under/color/lightred name = "light red jumpsuit" @@ -170,4 +169,4 @@ name = "dark red jumpsuit" icon_state = "darkred" _color = "darkred" - flags = FPRINT | TABLEPASS | ONESIZEFITSALL + flags = ONESIZEFITSALL diff --git a/code/modules/clothing/under/jobs/civilian.dm b/code/modules/clothing/under/jobs/civilian.dm index 48085322d6f..6510fff5094 100644 --- a/code/modules/clothing/under/jobs/civilian.dm +++ b/code/modules/clothing/under/jobs/civilian.dm @@ -6,7 +6,7 @@ icon_state = "ba_suit" item_state = "ba_suit" _color = "ba_suit" - flags = FPRINT | TABLEPASS | ONESIZEFITSALL + flags = ONESIZEFITSALL species_fit = list("Vox") sprite_sheets = list( "Vox" = 'icons/mob/species/vox/uniform.dmi' @@ -18,7 +18,7 @@ icon_state = "captain" item_state = "caparmor" _color = "captain" - flags = FPRINT | TABLEPASS | ONESIZEFITSALL + flags = ONESIZEFITSALL species_fit = list("Vox") sprite_sheets = list( "Vox" = 'icons/mob/species/vox/uniform.dmi' @@ -31,7 +31,7 @@ icon_state = "qm" item_state = "lb_suit" _color = "qm" - flags = FPRINT | TABLEPASS | ONESIZEFITSALL + flags = ONESIZEFITSALL species_fit = list("Vox") sprite_sheets = list( "Vox" = 'icons/mob/species/vox/uniform.dmi' @@ -44,7 +44,7 @@ icon_state = "cargotech" item_state = "lb_suit" _color = "cargo" - flags = FPRINT | TABLEPASS | ONESIZEFITSALL + flags = ONESIZEFITSALL species_fit = list("Vox") sprite_sheets = list( "Vox" = 'icons/mob/species/vox/uniform.dmi' @@ -57,7 +57,7 @@ icon_state = "chaplain" item_state = "bl_suit" _color = "chapblack" - flags = FPRINT | TABLEPASS | ONESIZEFITSALL + flags = ONESIZEFITSALL species_fit = list("Vox") sprite_sheets = list( "Vox" = 'icons/mob/species/vox/uniform.dmi' @@ -69,7 +69,7 @@ name = "chef's uniform" icon_state = "chef" _color = "chef" - flags = FPRINT | TABLEPASS | ONESIZEFITSALL + flags = ONESIZEFITSALL species_fit = list("Vox") sprite_sheets = list( "Vox" = 'icons/mob/species/vox/uniform.dmi' @@ -82,7 +82,7 @@ icon_state = "clown" item_state = "clown" _color = "clown" - flags = FPRINT | TABLEPASS | ONESIZEFITSALL + flags = ONESIZEFITSALL /obj/item/clothing/under/rank/head_of_personnel @@ -91,7 +91,7 @@ icon_state = "hop" item_state = "b_suit" _color = "hop" - flags = FPRINT | TABLEPASS | ONESIZEFITSALL + flags = ONESIZEFITSALL species_fit = list("Vox") sprite_sheets = list( "Vox" = 'icons/mob/species/vox/uniform.dmi' @@ -103,7 +103,6 @@ icon_state = "hopwhimsy" item_state = "hopwhimsy" _color = "hopwhimsy" - flags = FPRINT | TABLEPASS /obj/item/clothing/under/rank/hydroponics @@ -113,7 +112,7 @@ item_state = "g_suit" _color = "hydroponics" permeability_coefficient = 0.50 - flags = FPRINT | TABLEPASS | ONESIZEFITSALL + flags = ONESIZEFITSALL species_fit = list("Vox") sprite_sheets = list( "Vox" = 'icons/mob/species/vox/uniform.dmi' @@ -126,7 +125,7 @@ icon_state = "internalaffairs" item_state = "internalaffairs" _color = "internalaffairs" - flags = FPRINT | TABLEPASS | ONESIZEFITSALL + flags = ONESIZEFITSALL species_fit = list("Vox") sprite_sheets = list( "Vox" = 'icons/mob/species/vox/uniform.dmi' @@ -139,7 +138,7 @@ icon_state = "janitor" _color = "janitor" armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0) - flags = FPRINT | TABLEPASS | ONESIZEFITSALL + flags = ONESIZEFITSALL species_fit = list("Vox") sprite_sheets = list( "Vox" = 'icons/mob/species/vox/uniform.dmi' @@ -149,7 +148,7 @@ /obj/item/clothing/under/lawyer desc = "Slick threads." name = "Lawyer suit" - flags = FPRINT | TABLEPASS | ONESIZEFITSALL + flags = ONESIZEFITSALL /obj/item/clothing/under/lawyer/black icon_state = "lawyer_black" @@ -226,7 +225,7 @@ icon_state = "red_suit" item_state = "red_suit" _color = "red_suit" - flags = FPRINT | TABLEPASS | ONESIZEFITSALL + flags = ONESIZEFITSALL species_fit = list("Vox") sprite_sheets = list( "Vox" = 'icons/mob/species/vox/uniform.dmi' @@ -239,7 +238,7 @@ icon_state = "mime" item_state = "mime" _color = "mime" - flags = FPRINT | TABLEPASS | ONESIZEFITSALL + flags = ONESIZEFITSALL /obj/item/clothing/under/rank/miner @@ -248,7 +247,7 @@ icon_state = "miner" item_state = "miner" _color = "miner" - flags = FPRINT | TABLEPASS | ONESIZEFITSALL + flags = ONESIZEFITSALL species_fit = list("Vox") sprite_sheets = list( "Vox" = 'icons/mob/species/vox/uniform.dmi' diff --git a/code/modules/clothing/under/jobs/engineering.dm b/code/modules/clothing/under/jobs/engineering.dm index a0539901c5d..75e8f01d7e9 100644 --- a/code/modules/clothing/under/jobs/engineering.dm +++ b/code/modules/clothing/under/jobs/engineering.dm @@ -6,7 +6,7 @@ item_state = "g_suit" _color = "chief" armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 10) - flags = FPRINT | TABLEPASS | ONESIZEFITSALL + flags = ONESIZEFITSALL species_fit = list("Vox") sprite_sheets = list( "Vox" = 'icons/mob/species/vox/uniform.dmi' @@ -18,7 +18,7 @@ icon_state = "atmos" item_state = "atmos_suit" _color = "atmos" - flags = FPRINT | TABLEPASS | ONESIZEFITSALL + flags = ONESIZEFITSALL species_fit = list("Vox") sprite_sheets = list( "Vox" = 'icons/mob/species/vox/uniform.dmi' @@ -31,7 +31,7 @@ item_state = "engi_suit" _color = "engine" armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 10) - flags = FPRINT | TABLEPASS | ONESIZEFITSALL + flags = ONESIZEFITSALL species_fit = list("Vox") sprite_sheets = list( "Vox" = 'icons/mob/species/vox/uniform.dmi' @@ -43,7 +43,7 @@ icon_state = "robotics" item_state = "robotics" _color = "robotics" - flags = FPRINT | TABLEPASS | ONESIZEFITSALL + flags = ONESIZEFITSALL species_fit = list("Vox") sprite_sheets = list( "Vox" = 'icons/mob/species/vox/uniform.dmi' diff --git a/code/modules/clothing/under/jobs/medsci.dm b/code/modules/clothing/under/jobs/medsci.dm index 1332f80c6eb..93baad2f1a4 100644 --- a/code/modules/clothing/under/jobs/medsci.dm +++ b/code/modules/clothing/under/jobs/medsci.dm @@ -8,7 +8,7 @@ item_state = "g_suit" _color = "director" armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 10, bio = 10, rad = 0) - flags = FPRINT | TABLEPASS | ONESIZEFITSALL + flags = ONESIZEFITSALL species_fit = list("Vox") sprite_sheets = list( "Vox" = 'icons/mob/species/vox/uniform.dmi' @@ -22,7 +22,7 @@ _color = "toxinswhite" permeability_coefficient = 0.50 armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 10, bio = 0, rad = 0) - flags = FPRINT | TABLEPASS | ONESIZEFITSALL + flags = ONESIZEFITSALL species_fit = list("Vox") sprite_sheets = list( "Vox" = 'icons/mob/species/vox/uniform.dmi' @@ -36,7 +36,7 @@ _color = "chemistrywhite" permeability_coefficient = 0.50 armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0) - flags = FPRINT | TABLEPASS | ONESIZEFITSALL + flags = ONESIZEFITSALL species_fit = list("Vox") sprite_sheets = list( "Vox" = 'icons/mob/species/vox/uniform.dmi' @@ -53,7 +53,7 @@ _color = "cmo" permeability_coefficient = 0.50 armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0) - flags = FPRINT | TABLEPASS | ONESIZEFITSALL + flags = ONESIZEFITSALL species_fit = list("Vox") sprite_sheets = list( "Vox" = 'icons/mob/species/vox/uniform.dmi' @@ -67,7 +67,7 @@ _color = "geneticswhite" permeability_coefficient = 0.50 armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0) - flags = FPRINT | TABLEPASS | ONESIZEFITSALL + flags = ONESIZEFITSALL species_fit = list("Vox") sprite_sheets = list( "Vox" = 'icons/mob/species/vox/uniform.dmi' @@ -81,7 +81,7 @@ _color = "virologywhite" permeability_coefficient = 0.50 armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0) - flags = FPRINT | TABLEPASS | ONESIZEFITSALL + flags = ONESIZEFITSALL species_fit = list("Vox") sprite_sheets = list( "Vox" = 'icons/mob/species/vox/uniform.dmi' @@ -95,7 +95,7 @@ _color = "nursesuit" permeability_coefficient = 0.50 armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0) - flags = FPRINT | TABLEPASS | ONESIZEFITSALL + flags = ONESIZEFITSALL species_fit = list("Vox") sprite_sheets = list( "Vox" = 'icons/mob/species/vox/uniform.dmi' @@ -109,7 +109,7 @@ _color = "nurse" permeability_coefficient = 0.50 armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0) - flags = FPRINT | TABLEPASS | ONESIZEFITSALL + flags = ONESIZEFITSALL species_fit = list("Vox") sprite_sheets = list( "Vox" = 'icons/mob/species/vox/uniform.dmi' @@ -123,7 +123,7 @@ _color = "orderly" permeability_coefficient = 0.50 armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0) - flags = FPRINT | TABLEPASS | ONESIZEFITSALL + flags = ONESIZEFITSALL species_fit = list("Vox") sprite_sheets = list( "Vox" = 'icons/mob/species/vox/uniform.dmi' @@ -137,7 +137,7 @@ _color = "medical" permeability_coefficient = 0.50 armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0) - flags = FPRINT | TABLEPASS | ONESIZEFITSALL + flags = ONESIZEFITSALL species_fit = list("Vox") sprite_sheets = list( "Vox" = 'icons/mob/species/vox/uniform.dmi' @@ -148,7 +148,7 @@ desc = "It's made of a special fiber that provides minor protection against biohazards. This one is in baby blue." icon_state = "scrubsblue" _color = "scrubsblue" - flags = FPRINT | TABLEPASS | ONESIZEFITSALL + flags = ONESIZEFITSALL species_fit = list("Vox") sprite_sheets = list( "Vox" = 'icons/mob/species/vox/uniform.dmi' @@ -159,7 +159,7 @@ desc = "It's made of a special fiber that provides minor protection against biohazards. This one is in dark green." icon_state = "scrubsgreen" _color = "scrubsgreen" - flags = FPRINT | TABLEPASS | ONESIZEFITSALL + flags = ONESIZEFITSALL species_fit = list("Vox") sprite_sheets = list( "Vox" = 'icons/mob/species/vox/uniform.dmi' @@ -170,7 +170,7 @@ desc = "It's made of a special fiber that provides minor protection against biohazards. This one is in deep purple." icon_state = "scrubspurple" _color = "scrubspurple" - flags = FPRINT | TABLEPASS | ONESIZEFITSALL + flags = ONESIZEFITSALL species_fit = list("Vox") sprite_sheets = list( "Vox" = 'icons/mob/species/vox/uniform.dmi' @@ -181,7 +181,7 @@ desc = "It's made of a special fiber that provides minor protection against biohazards. This one is as dark as an emo's poetry." icon_state = "scrubsblack" _color = "scrubsblack" - flags = FPRINT | TABLEPASS | ONESIZEFITSALL + flags = ONESIZEFITSALL species_fit = list("Vox") sprite_sheets = list( "Vox" = 'icons/mob/species/vox/uniform.dmi' @@ -196,7 +196,7 @@ _color = "paramedic" permeability_coefficient = 0.50 armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 10) - flags = FPRINT | TABLEPASS | ONESIZEFITSALL + flags = ONESIZEFITSALL species_fit = list("Vox") sprite_sheets = list( "Vox" = 'icons/mob/species/vox/uniform.dmi' @@ -208,7 +208,7 @@ icon_state = "psych" item_state = "w_suit" _color = "psych" - flags = FPRINT | TABLEPASS | ONESIZEFITSALL + flags = ONESIZEFITSALL /obj/item/clothing/under/rank/psych/turtleneck desc = "A turqouise turtleneck and a pair of dark blue slacks, belonging to a psychologist." @@ -216,7 +216,7 @@ icon_state = "psychturtle" item_state = "b_suit" _color = "psychturtle" - flags = FPRINT | TABLEPASS | ONESIZEFITSALL + flags = ONESIZEFITSALL /* @@ -230,7 +230,7 @@ _color = "genetics_new" permeability_coefficient = 0.50 armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0) - flags = FPRINT | TABLEPASS | ONESIZEFITSALL + flags = ONESIZEFITSALL /obj/item/clothing/under/rank/chemist_new desc = "It's made of a special fiber which provides minor protection against biohazards." @@ -240,7 +240,7 @@ _color = "chemist_new" permeability_coefficient = 0.50 armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0) - flags = FPRINT | TABLEPASS | ONESIZEFITSALL + flags = ONESIZEFITSALL /obj/item/clothing/under/rank/scientist_new desc = "Made of a special fiber that gives special protection against biohazards and small explosions." @@ -250,7 +250,7 @@ _color = "scientist_new" permeability_coefficient = 0.50 armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 10, bio = 0, rad = 0) - flags = FPRINT | TABLEPASS | ONESIZEFITSALL + flags = ONESIZEFITSALL /obj/item/clothing/under/rank/virologist_new desc = "Made of a special fiber that gives increased protection against biohazards." @@ -260,4 +260,4 @@ _color = "virologist_new" permeability_coefficient = 0.50 armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0) - flags = FPRINT | TABLEPASS | ONESIZEFITSALL + flags = ONESIZEFITSALL diff --git a/code/modules/clothing/under/jobs/security.dm b/code/modules/clothing/under/jobs/security.dm index 807f5322056..a0f6d97ad14 100644 --- a/code/modules/clothing/under/jobs/security.dm +++ b/code/modules/clothing/under/jobs/security.dm @@ -15,7 +15,7 @@ item_state = "r_suit" _color = "warden" armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0) - flags = FPRINT | TABLEPASS | ONESIZEFITSALL + flags = ONESIZEFITSALL siemens_coefficient = 0.9 /obj/item/clothing/under/rank/security @@ -25,7 +25,7 @@ item_state = "r_suit" _color = "secred" armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0) - flags = FPRINT | TABLEPASS | ONESIZEFITSALL + flags = ONESIZEFITSALL siemens_coefficient = 0.9 /obj/item/clothing/under/rank/dispatch @@ -35,7 +35,7 @@ item_state = "dispatch" _color = "dispatch" armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0) - flags = FPRINT | TABLEPASS | ONESIZEFITSALL + flags = ONESIZEFITSALL siemens_coefficient = 0.9 /obj/item/clothing/under/rank/security2 @@ -45,7 +45,7 @@ item_state = "r_suit" _color = "redshirt2" armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0) - flags = FPRINT | TABLEPASS | ONESIZEFITSALL + flags = ONESIZEFITSALL siemens_coefficient = 0.9 /obj/item/clothing/under/rank/security/corp @@ -68,7 +68,7 @@ item_state = "det" _color = "detective" armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0) - flags = FPRINT | TABLEPASS | ONESIZEFITSALL + flags = ONESIZEFITSALL siemens_coefficient = 0.9 /* @@ -81,7 +81,7 @@ item_state = "r_suit" _color = "hosred" armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0) - flags = FPRINT | TABLEPASS | ONESIZEFITSALL + flags = ONESIZEFITSALL siemens_coefficient = 0.8 /obj/item/clothing/under/rank/head_of_security/corp @@ -97,7 +97,7 @@ item_state = "jensen" _color = "jensen" siemens_coefficient = 0.6 - flags = FPRINT | TABLEPASS | ONESIZEFITSALL + flags = ONESIZEFITSALL //Paradise Station diff --git a/code/modules/clothing/under/miscellaneous.dm b/code/modules/clothing/under/miscellaneous.dm index 84ac2feac52..dd97fc858d3 100644 --- a/code/modules/clothing/under/miscellaneous.dm +++ b/code/modules/clothing/under/miscellaneous.dm @@ -31,7 +31,6 @@ name = "amish suit" icon_state = "sl_suit" _color = "sl_suit" - flags = FPRINT | TABLEPASS /obj/item/clothing/under/waiter name = "waiter's outfit" @@ -39,7 +38,6 @@ icon_state = "waiter" item_state = "waiter" _color = "waiter" - flags = FPRINT | TABLEPASS /obj/item/clothing/under/rank/mailman name = "mailman's jumpsuit" @@ -83,7 +81,7 @@ item_state = "g_suit" _color = "officer" displays_id = 0 - flags = FPRINT | TABLEPASS | ONESIZEFITSALL + flags = ONESIZEFITSALL /obj/item/clothing/under/rank/centcom/captain desc = "Gold trim on space-black cloth, this uniform displays the rank of \"Captain\" and bears \"N.C.V. Fearless CV-286\" on the left shounder." @@ -100,7 +98,7 @@ item_state = "g_suit" _color = "officer" displays_id = 0 - flags = FPRINT | TABLEPASS | ONESIZEFITSALL + flags = ONESIZEFITSALL /obj/item/clothing/under/rank/centcom/representative desc = "Gold trim on space-black cloth, this uniform displays the rank of \"Ensign\" and bears \"N.S.S. Cyberiad\" on the left shounder." @@ -109,7 +107,7 @@ item_state = "g_suit" _color = "officer" displays_id = 0 - flags = FPRINT | TABLEPASS | ONESIZEFITSALL + flags = ONESIZEFITSALL /obj/item/clothing/under/space name = "\improper NASA jumpsuit" @@ -120,7 +118,6 @@ w_class = 4//bulky item gas_transfer_coefficient = 0.01 permeability_coefficient = 0.02 - flags = FPRINT | TABLEPASS body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS cold_protection = UPPER_TORSO | LOWER_TORSO | LEGS | ARMS //Needs gloves and shoes with cold protection to be fully protected. min_cold_protection_temperature = SPACE_SUIT_MIN_COLD_PROTECTION_TEMPERATURE @@ -135,7 +132,6 @@ desc = "it's a cybernetically enhanced jumpsuit used for administrative duties." gas_transfer_coefficient = 0.01 permeability_coefficient = 0.01 - flags = FPRINT | TABLEPASS body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS armor = list(melee = 100, bullet = 100, laser = 100,energy = 100, bomb = 100, bio = 100, rad = 100) cold_protection = UPPER_TORSO | LOWER_TORSO | LEGS | FEET | ARMS | HANDS @@ -149,7 +145,6 @@ desc = "A jumpsuit with owl wings. Photorealistic owl feathers! Twooooo!" icon_state = "owl" _color = "owl" - flags = FPRINT | TABLEPASS /obj/item/clothing/under/johnny name = "johnny~~ jumpsuit" diff --git a/code/modules/clothing/under/shorts.dm b/code/modules/clothing/under/shorts.dm index 92fc9f3f131..f5280399838 100644 --- a/code/modules/clothing/under/shorts.dm +++ b/code/modules/clothing/under/shorts.dm @@ -2,7 +2,6 @@ name = "athletic shorts" desc = "95% Polyester, 5% Spandex!" gender = PLURAL - flags = FPRINT | TABLEPASS body_parts_covered = LOWER_TORSO /obj/item/clothing/under/shorts/red diff --git a/code/modules/customitems/item_defines.dm b/code/modules/customitems/item_defines.dm index 07eb3da5f3f..590e90d9231 100644 --- a/code/modules/customitems/item_defines.dm +++ b/code/modules/customitems/item_defines.dm @@ -18,7 +18,6 @@ icon= 'icons/obj/clothing/hats.dmi' icon_state = "hairflowerp" item_state = "hairflowerp" - flags = FPRINT|TABLEPASS /obj/item/clothing/under/fluff/WornTurtleneck // DaveTheHeadcrab: Makkota Atani name = "Worn Combat Turtleneck" @@ -46,7 +45,6 @@ name = "royal marines commando beret" desc = "Dark Green beret with an old insignia on it." icon_state = "sparkyninja_beret" - flags = FPRINT | TABLEPASS ////////////////////////////////// ////////// Fluff Items /////////// @@ -413,7 +411,6 @@ item_state = "ciglit" w_class = 1 body_parts_covered = null - flags = FPRINT|TABLEPASS //Strange penlight, Nerezza: Asher Spock @@ -777,7 +774,6 @@ _color = "jane_sid_suit" has_sensor = 2 sensor_mode = 3 - flags = FPRINT | TABLEPASS //Suit roll-down toggle. /obj/item/clothing/under/fluff/jane_sidsuit/verb/toggle_zipper() @@ -818,7 +814,7 @@ icon = 'icons/obj/custom_items.dmi' icon_state = "flagmask" item_state = "flagmask" - flags = FPRINT|TABLEPASS|MASKCOVERSMOUTH + flags = MASKCOVERSMOUTH w_class = 2 gas_transfer_coefficient = 0.90 */ @@ -828,7 +824,6 @@ desc = "A silver and emerald shamrock pendant. It has the initials \"M.K.\" engraved on the back." icon = 'icons/obj/custom_items.dmi' icon_state = "mara_kilpatrick_1" - flags = FPRINT|TABLEPASS w_class = 1 ////// Small locket - Altair An-Nasaqan - Serithi @@ -841,7 +836,6 @@ item_state = "altair_locket" _color = "altair_locket" slot_flags = 0 - flags = FPRINT|TABLEPASS w_class = 1 slot_flags = SLOT_MASK @@ -855,7 +849,6 @@ item_state = "konaahirano" _color = "konaahirano" slot_flags = 0 - flags = FPRINT|TABLEPASS w_class = 1 slot_flags = SLOT_MASK var/obj/item/held //Item inside locket. @@ -885,7 +878,6 @@ desc = "This silvered medallion bears the symbol of the Hadii Clan of the Tajaran." icon = 'icons/obj/custom_items.dmi' icon_state = "nasir_khayyam_1" - flags = FPRINT|TABLEPASS w_class = 1 slot_flags = SLOT_MASK @@ -897,7 +889,6 @@ desc = "A shiny black medallion made of something that looks like the Earth's obsidian, but it is harder than anything ever seen yet. On the front there seems to be a standing unathi chiseled in it, on the back the name of Lin Chang with the title of the Assassin Archmage." icon = 'icons/obj/custom_items.dmi' icon_state = "nasir_khayyam_1" - flags = FPRINT|TABLEPASS w_class = 1 slot_flags = SLOT_MASK @@ -908,7 +899,6 @@ desc = "A brass necklace with a green emerald placed at the end. It has a small inscription on the top of the chain, saying \'Foster\'" icon = 'icons/obj/custom_items.dmi' icon_state = "ty_foster" - flags = FPRINT|TABLEPASS w_class = 1 //////////// Shoes //////////// diff --git a/code/modules/hydroponics/grown_inedible.dm b/code/modules/hydroponics/grown_inedible.dm index 7db850670f1..868b4b6c5e6 100644 --- a/code/modules/hydroponics/grown_inedible.dm +++ b/code/modules/hydroponics/grown_inedible.dm @@ -43,7 +43,6 @@ icon = 'icons/obj/harvest.dmi' icon_state = "logs" force = 5 - flags = TABLEPASS throwforce = 5 w_class = 3.0 throw_speed = 3 @@ -74,7 +73,6 @@ icon_state = "sunflower" damtype = "fire" force = 0 - flags = TABLEPASS throwforce = 1 w_class = 1.0 throw_speed = 1 @@ -92,7 +90,6 @@ icon_state = "nettle" damtype = "fire" force = 15 - flags = TABLEPASS throwforce = 1 w_class = 2.0 throw_speed = 1 @@ -135,7 +132,6 @@ icon_state = "deathnettle" damtype = "fire" force = 30 - flags = TABLEPASS throwforce = 1 w_class = 2.0 throw_speed = 1 diff --git a/code/modules/hydroponics/hydro_tools.dm b/code/modules/hydroponics/hydro_tools.dm index be2158fee39..70cf1f9cf4b 100644 --- a/code/modules/hydroponics/hydro_tools.dm +++ b/code/modules/hydroponics/hydro_tools.dm @@ -203,7 +203,7 @@ /obj/item/weapon/plantspray icon = 'icons/obj/hydroponics.dmi' item_state = "spray" - flags = TABLEPASS | OPENCONTAINER | FPRINT | NOBLUDGEON + flags = OPENCONTAINER | NOBLUDGEON slot_flags = SLOT_BELT throwforce = 4 w_class = 2.0 @@ -255,7 +255,7 @@ icon = 'icons/obj/weapons.dmi' icon_state = "hoe" item_state = "hoe" - flags = FPRINT | TABLEPASS | CONDUCT | NOBLUDGEON + flags = CONDUCT | NOBLUDGEON force = 5.0 throwforce = 7.0 w_class = 2.0 @@ -270,7 +270,6 @@ name = "bottle of weedkiller" icon = 'icons/obj/chemical.dmi' icon_state = "bottle16" - flags = FPRINT | TABLEPASS var/toxicity = 0 var/weed_kill_str = 0 @@ -278,7 +277,6 @@ name = "bottle of glyphosate" icon = 'icons/obj/chemical.dmi' icon_state = "bottle16" - flags = FPRINT | TABLEPASS toxicity = 4 weed_kill_str = 2 @@ -286,7 +284,6 @@ name = "bottle of triclopyr" icon = 'icons/obj/chemical.dmi' icon_state = "bottle18" - flags = FPRINT | TABLEPASS toxicity = 6 weed_kill_str = 4 @@ -294,7 +291,6 @@ name = "bottle of 2,4-D" icon = 'icons/obj/chemical.dmi' icon_state = "bottle15" - flags = FPRINT | TABLEPASS toxicity = 8 weed_kill_str = 7 @@ -308,7 +304,7 @@ desc = "A small glass bottle. Can hold up to 10 units." icon = 'icons/obj/chemical.dmi' icon_state = "bottle16" - flags = FPRINT | TABLEPASS | OPENCONTAINER + flags = OPENCONTAINER possible_transfer_amounts = null w_class = 2.0 @@ -348,7 +344,7 @@ desc = "A very sharp axe blade upon a short fibremetal handle. It has a long history of chopping things, but now it is used for chopping wood." icon = 'icons/obj/weapons.dmi' icon_state = "hatchet" - flags = FPRINT | TABLEPASS | CONDUCT + flags = CONDUCT force = 12.0 w_class = 2.0 throwforce = 15.0 @@ -381,7 +377,7 @@ throw_speed = 1 throw_range = 3 w_class = 4.0 - flags = FPRINT | TABLEPASS | NOSHIELD + flags = NOSHIELD slot_flags = SLOT_BACK origin_tech = "materials=2;combat=2" attack_verb = list("chopped", "sliced", "cut", "reaped") diff --git a/code/modules/hydroponics/seeds.dm b/code/modules/hydroponics/seeds.dm index 948e78f96e9..a572b2c8d19 100644 --- a/code/modules/hydroponics/seeds.dm +++ b/code/modules/hydroponics/seeds.dm @@ -3,7 +3,6 @@ name = "packet of seeds" icon = 'icons/obj/seeds.dmi' icon_state = "seed" - flags = FPRINT | TABLEPASS w_class = 2.0 var/seed_type diff --git a/code/modules/library/lib_items.dm b/code/modules/library/lib_items.dm index ec39b53741e..dde3571a6dd 100644 --- a/code/modules/library/lib_items.dm +++ b/code/modules/library/lib_items.dm @@ -149,7 +149,6 @@ throw_speed = 1 throw_range = 5 w_class = 3 //upped to three because books are, y'know, pretty big. (and you could hide them inside eachother recursively forever) - flags = FPRINT | TABLEPASS attack_verb = list("bashed", "whacked", "educated") autoignition_temperature = AUTOIGNITION_PAPER @@ -274,7 +273,6 @@ throw_speed = 1 throw_range = 5 w_class = 1.0 - flags = FPRINT | TABLEPASS var/obj/machinery/librarycomp/computer // Associated computer - Modes 1 to 3 use this var/obj/item/weapon/book/book // Currently scanned book var/mode = 0 // 0 - Scan only, 1 - Scan and Set Buffer, 2 - Scan and Attempt to Check In, 3 - Scan and Attempt to Add to Inventory diff --git a/code/modules/mining/mine_items.dm b/code/modules/mining/mine_items.dm index b7d8ac6c05e..3a39126d517 100644 --- a/code/modules/mining/mine_items.dm +++ b/code/modules/mining/mine_items.dm @@ -52,7 +52,7 @@ name = "pickaxe" icon = 'icons/obj/items.dmi' icon_state = "pickaxe" - flags = FPRINT | TABLEPASS| CONDUCT + flags = CONDUCT slot_flags = SLOT_BELT force = 15.0 throwforce = 4.0 @@ -152,7 +152,7 @@ desc = "A large tool for digging and moving dirt." icon = 'icons/obj/items.dmi' icon_state = "shovel" - flags = FPRINT | TABLEPASS| CONDUCT + flags = CONDUCT slot_flags = SLOT_BELT force = 8.0 throwforce = 4.0 diff --git a/code/modules/mining/money_bag.dm b/code/modules/mining/money_bag.dm index fbcca4984bb..0c4d84c00d9 100644 --- a/code/modules/mining/money_bag.dm +++ b/code/modules/mining/money_bag.dm @@ -4,7 +4,7 @@ icon = 'icons/obj/storage.dmi' name = "Money bag" icon_state = "moneybag" - flags = FPRINT | TABLEPASS| CONDUCT + flags = CONDUCT force = 10.0 throwforce = 2.0 w_class = 4.0 diff --git a/code/modules/mob/living/carbon/brain/brain_item.dm b/code/modules/mob/living/carbon/brain/brain_item.dm index 990f2971c58..12adf40d53e 100644 --- a/code/modules/mob/living/carbon/brain/brain_item.dm +++ b/code/modules/mob/living/carbon/brain/brain_item.dm @@ -3,7 +3,6 @@ desc = "A piece of juicy meat found in a persons head." icon = 'icons/obj/surgery.dmi' icon_state = "brain2" - flags = TABLEPASS force = 1.0 w_class = 1.0 throwforce = 1.0 diff --git a/code/modules/mob/living/carbon/metroid/metroid.dm b/code/modules/mob/living/carbon/metroid/metroid.dm index cb5be464681..ce59c2d5ff5 100644 --- a/code/modules/mob/living/carbon/metroid/metroid.dm +++ b/code/modules/mob/living/carbon/metroid/metroid.dm @@ -911,7 +911,7 @@ mob/living/carbon/slime/var/temperature_resistance = T0C+75 body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS|HEAD slowdown = 1.0 flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT - flags = FPRINT | TABLEPASS | ONESIZEFITSALL | STOPSPRESSUREDMAGE + flags = ONESIZEFITSALL | STOPSPRESSUREDMAGE heat_protection = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS | HEAD max_heat_protection_temperature = FIRESUIT_MAX_HEAT_PROTECTION_TEMPERATURE cold_protection = UPPER_TORSO | LOWER_TORSO | LEGS | FEET | ARMS | HANDS | HEAD @@ -965,7 +965,7 @@ mob/living/carbon/slime/var/temperature_resistance = T0C+75 desc = "a golem's head" canremove = 0 unacidable = 1 - flags = FPRINT | TABLEPASS | STOPSPRESSUREDMAGE + flags = STOPSPRESSUREDMAGE heat_protection = HEAD max_heat_protection_temperature = FIRE_HELMET_MAX_HEAT_PROTECTION_TEMPERATURE armor = list(melee = 80, bullet = 20, laser = 20, energy = 10, bomb = 0, bio = 0, rad = 0) @@ -1142,7 +1142,6 @@ mob/living/carbon/slime/var/temperature_resistance = T0C+75 desc = "Allows you to change your slimeperson color, once." icon = 'icons/obj/device.dmi' icon_state = "t-ray0" - flags = TABLEPASS force = 1.0 w_class = 1.0 throwforce = 1.0 diff --git a/code/modules/mob/living/silicon/robot/component.dm b/code/modules/mob/living/silicon/robot/component.dm index 7d867036d5a..5817715ff99 100644 --- a/code/modules/mob/living/silicon/robot/component.dm +++ b/code/modules/mob/living/silicon/robot/component.dm @@ -168,7 +168,7 @@ icon_state = "robotanalyzer" item_state = "analyzer" desc = "A hand-held scanner able to diagnose robotic injuries." - flags = FPRINT | TABLEPASS | CONDUCT + flags = CONDUCT slot_flags = SLOT_BELT throwforce = 3 w_class = 2.0 diff --git a/code/modules/mob/living/silicon/robot/robot_modules.dm b/code/modules/mob/living/silicon/robot/robot_modules.dm index 92a8f1fd557..831c6badf1e 100644 --- a/code/modules/mob/living/silicon/robot/robot_modules.dm +++ b/code/modules/mob/living/silicon/robot/robot_modules.dm @@ -4,7 +4,7 @@ icon_state = "std_module" w_class = 100.0 item_state = "electronic" - flags = FPRINT|TABLEPASS | CONDUCT + flags = CONDUCT var/list/modules = list() var/obj/item/emag = null diff --git a/code/modules/paperwork/clipboard.dm b/code/modules/paperwork/clipboard.dm index ca128c2c10c..c00e8eac5f2 100644 --- a/code/modules/paperwork/clipboard.dm +++ b/code/modules/paperwork/clipboard.dm @@ -9,7 +9,6 @@ throw_range = 10 var/obj/item/weapon/pen/haspen //The stored pen. var/obj/item/weapon/toppaper //The topmost piece of paper. - flags = FPRINT | TABLEPASS slot_flags = SLOT_BELT /obj/item/weapon/clipboard/New() @@ -44,7 +43,7 @@ return /obj/item/weapon/clipboard/attackby(obj/item/weapon/W as obj, mob/user as mob) - + if(istype(W, /obj/item/weapon/paper) || istype(W, /obj/item/weapon/photo)) user.drop_item() W.loc = src @@ -107,20 +106,20 @@ else if(href_list["write"]) var/obj/item/weapon/P = locate(href_list["write"]) - + if(P && (P.loc == src) && istype(P, /obj/item/weapon/paper) && (P == toppaper) ) - + var/obj/item/I = usr.get_active_hand() - + if(istype(I, /obj/item/weapon/pen)) - + P.attackby(I, usr) else if(href_list["remove"]) var/obj/item/P = locate(href_list["remove"]) - + if(P && (P.loc == src) && (istype(P, /obj/item/weapon/paper) || istype(P, /obj/item/weapon/photo)) ) - + P.loc = usr.loc usr.put_in_hands(P) if(P == toppaper) @@ -133,9 +132,9 @@ else if(href_list["read"]) var/obj/item/weapon/paper/P = locate(href_list["read"]) - + if(P && (P.loc == src) && istype(P, /obj/item/weapon/paper) ) - + if(!(istype(usr, /mob/living/carbon/human) || istype(usr, /mob/dead/observer) || istype(usr, /mob/living/silicon))) usr << browse("[P.name][stars(P.info)][P.stamps]", "window=[P.name]") onclose(usr, "[P.name]") diff --git a/code/modules/paperwork/pen.dm b/code/modules/paperwork/pen.dm index fb8ba283901..6c96b62a328 100644 --- a/code/modules/paperwork/pen.dm +++ b/code/modules/paperwork/pen.dm @@ -15,7 +15,6 @@ icon = 'icons/obj/bureaucracy.dmi' icon_state = "pen" item_state = "pen" - flags = FPRINT | TABLEPASS slot_flags = SLOT_BELT | SLOT_EARS throwforce = 0 w_class = 1.0 @@ -61,7 +60,7 @@ */ /obj/item/weapon/pen/sleepypen desc = "It's a black ink pen with a sharp point and a carefully engraved \"Waffle Co.\"" - flags = FPRINT | TABLEPASS | OPENCONTAINER + flags = OPENCONTAINER origin_tech = "materials=2;syndicate=5" @@ -88,7 +87,7 @@ * Parapens */ /obj/item/weapon/pen/paralysis - flags = FPRINT | TABLEPASS | OPENCONTAINER + flags = OPENCONTAINER origin_tech = "materials=2;syndicate=5" diff --git a/code/modules/paperwork/photography.dm b/code/modules/paperwork/photography.dm index 7829a112b0e..467da7fdaaa 100644 --- a/code/modules/paperwork/photography.dm +++ b/code/modules/paperwork/photography.dm @@ -44,7 +44,7 @@ else if(istype(P, /obj/item/weapon/lighter)) burnphoto(P, user) ..() - + /obj/item/weapon/photo/proc/burnphoto(obj/item/weapon/lighter/P, mob/user) var/class = "" @@ -142,7 +142,6 @@ icon_state = "camera" item_state = "electropack" w_class = 2.0 - flags = FPRINT | CONDUCT | TABLEPASS slot_flags = SLOT_BELT var/list/matter = list("metal" = 2000) var/pictures_max = 10 @@ -363,7 +362,6 @@ icon_state = "videocam" item_state = "videocam" w_class = 2.0 - flags = FPRINT | CONDUCT | TABLEPASS slot_flags = SLOT_BELT m_amt = 2000 var/on = 0 @@ -403,4 +401,4 @@ if(get_dist(src, M) <= canhear_range) talk_into(M, msg) for(var/mob/living/carbon/human/H in watcherslist) - H.show_message(text("\blue (Newscaster) [] says, '[]'",M,msg), 1) \ No newline at end of file + H.show_message(text("\blue (Newscaster) [] says, '[]'",M,msg), 1) \ No newline at end of file diff --git a/code/modules/paperwork/stamps.dm b/code/modules/paperwork/stamps.dm index c60489d5669..04320d51d16 100644 --- a/code/modules/paperwork/stamps.dm +++ b/code/modules/paperwork/stamps.dm @@ -4,7 +4,6 @@ icon = 'icons/obj/bureaucracy.dmi' icon_state = "stamp-ok" item_state = "stamp" - flags = FPRINT | TABLEPASS throwforce = 0 w_class = 1.0 throw_speed = 7 diff --git a/code/modules/power/antimatter/shielding.dm b/code/modules/power/antimatter/shielding.dm index ae96a8f9f46..6290f15f087 100644 --- a/code/modules/power/antimatter/shielding.dm +++ b/code/modules/power/antimatter/shielding.dm @@ -206,7 +206,7 @@ proc/cardinalrange(var/center) icon_state = "box" item_state = "electronic" w_class = 4.0 - flags = FPRINT | TABLEPASS | CONDUCT + flags = CONDUCT throwforce = 5 throw_speed = 1 throw_range = 2 diff --git a/code/modules/power/cable.dm b/code/modules/power/cable.dm index c688127ad2b..53ce472cb21 100644 --- a/code/modules/power/cable.dm +++ b/code/modules/power/cable.dm @@ -216,7 +216,7 @@ throw_range = 5 m_amt = 50 g_amt = 20 - flags = TABLEPASS | FPRINT | CONDUCT + flags = CONDUCT slot_flags = SLOT_BELT attack_verb = list("whipped", "lashed", "disciplined", "flogged") diff --git a/code/modules/power/lighting.dm b/code/modules/power/lighting.dm index 353ea877b4c..5aef5c541af 100644 --- a/code/modules/power/lighting.dm +++ b/code/modules/power/lighting.dm @@ -16,7 +16,7 @@ desc = "Used for building lights." icon = 'icons/obj/lighting.dmi' icon_state = "tube-construct-item" - flags = FPRINT | TABLEPASS| CONDUCT + flags = CONDUCT var/fixture_type = "tube" var/obj/machinery/light/newlight = null var/sheets_refunded = 2 @@ -63,7 +63,7 @@ desc = "Used for building small lights." icon = 'icons/obj/lighting.dmi' icon_state = "bulb-construct-item" - flags = FPRINT | TABLEPASS| CONDUCT + flags = CONDUCT fixture_type = "bulb" sheets_refunded = 1 @@ -657,7 +657,6 @@ /obj/item/weapon/light icon = 'icons/obj/lighting.dmi' - flags = FPRINT | TABLEPASS force = 2 throwforce = 5 w_class = 1 diff --git a/code/modules/power/switch.dm b/code/modules/power/switch.dm index 05683bd9c57..8c846cdb76b 100644 --- a/code/modules/power/switch.dm +++ b/code/modules/power/switch.dm @@ -10,7 +10,6 @@ icon_state = "switch-dbl-up" var/icon_state_on = "switch-dbl-down" var/icon_state_off = "switch-dbl-up" - flags = FPRINT density = 0 anchored = 1 var/on = 0 //up is off, down is on diff --git a/code/modules/projectiles/ammunition.dm b/code/modules/projectiles/ammunition.dm index b84eb480138..fc7641ab552 100644 --- a/code/modules/projectiles/ammunition.dm +++ b/code/modules/projectiles/ammunition.dm @@ -3,7 +3,7 @@ desc = "A bullet casing." icon = 'icons/obj/ammo.dmi' icon_state = "s-casing" - flags = FPRINT | TABLEPASS | CONDUCT + flags = CONDUCT slot_flags = SLOT_BELT throwforce = 1 w_class = 1.0 @@ -57,7 +57,7 @@ desc = "A box of ammo?" icon_state = "357" icon = 'icons/obj/ammo.dmi' - flags = FPRINT | TABLEPASS | CONDUCT + flags = CONDUCT slot_flags = SLOT_BELT item_state = "syringe_kit" m_amt = 30000 diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm index bd823f3c4ee..35fbeb2de35 100644 --- a/code/modules/projectiles/gun.dm +++ b/code/modules/projectiles/gun.dm @@ -4,7 +4,7 @@ icon = 'icons/obj/gun.dmi' icon_state = "detective" item_state = "gun" - flags = FPRINT | TABLEPASS | CONDUCT + flags = CONDUCT slot_flags = SLOT_BELT m_amt = 2000 w_class = 3.0 @@ -313,10 +313,10 @@ set name = "Toggle Gunlight" set category = "Object" set desc = "Click to toggle your weapon's attached flashlight." - + if(!F) return - + var/mob/living/carbon/human/user = usr if(!isturf(user.loc)) user << "You cannot turn the light on while in this [user.loc]." diff --git a/code/modules/projectiles/guns/energy/laser.dm b/code/modules/projectiles/guns/energy/laser.dm index 51a607890a0..b2951fb8eb2 100644 --- a/code/modules/projectiles/guns/energy/laser.dm +++ b/code/modules/projectiles/guns/energy/laser.dm @@ -78,7 +78,7 @@ obj/item/weapon/gun/energy/laser/retro item_state = "laser" w_class = 4.0 force = 10 - flags = FPRINT | TABLEPASS | CONDUCT + flags = CONDUCT slot_flags = SLOT_BACK fire_sound = 'sound/weapons/lasercannonfire.ogg' origin_tech = "combat=4;materials=3;powerstorage=3" diff --git a/code/modules/projectiles/guns/energy/special.dm b/code/modules/projectiles/guns/energy/special.dm index 22d9bb2f47e..db58dedb0ea 100644 --- a/code/modules/projectiles/guns/energy/special.dm +++ b/code/modules/projectiles/guns/energy/special.dm @@ -7,7 +7,7 @@ fire_sound = 'sound/weapons/Laser.ogg' origin_tech = "combat=2;magnets=4" w_class = 4.0 - flags = FPRINT | TABLEPASS | CONDUCT + flags = CONDUCT slot_flags = SLOT_BACK projectile_type = "/obj/item/projectile/ion" diff --git a/code/modules/projectiles/guns/magic.dm b/code/modules/projectiles/guns/magic.dm index 9401783c54a..a874573aa25 100644 --- a/code/modules/projectiles/guns/magic.dm +++ b/code/modules/projectiles/guns/magic.dm @@ -5,7 +5,7 @@ icon_state = "staffofnothing" item_state = "staff" fire_sound = 'sound/weapons/emitter.ogg' - flags = FPRINT | TABLEPASS | CONDUCT + flags = CONDUCT w_class = 5 var/projectile_type = "/obj/item/projectile/magic" var/max_charges = 6 diff --git a/code/modules/projectiles/guns/projectile/crossbow.dm b/code/modules/projectiles/guns/projectile/crossbow.dm index 655fcfb92a8..eea9054fce5 100644 --- a/code/modules/projectiles/guns/projectile/crossbow.dm +++ b/code/modules/projectiles/guns/projectile/crossbow.dm @@ -7,7 +7,6 @@ icon = 'icons/obj/weapons.dmi' icon_state = "bolt" item_state = "bolt" - flags = FPRINT | TABLEPASS throwforce = 8 w_class = 3.0 sharp = 1 diff --git a/code/modules/projectiles/guns/projectile/grenade launcher.dm b/code/modules/projectiles/guns/projectile/grenade launcher.dm index 8833a63b280..d4b2c6fc167 100644 --- a/code/modules/projectiles/guns/projectile/grenade launcher.dm +++ b/code/modules/projectiles/guns/projectile/grenade launcher.dm @@ -4,7 +4,7 @@ desc = "A device that launches things." icon = 'icons/obj/weapons.dmi' w_class = 5.0 - flags = FPRINT | TABLEPASS | CONDUCT + flags = CONDUCT slot_flags = SLOT_BACK var/release_force = 0 diff --git a/code/modules/projectiles/guns/projectile/pneumatic.dm b/code/modules/projectiles/guns/projectile/pneumatic.dm index e3bcc5517a5..6729a18663e 100644 --- a/code/modules/projectiles/guns/projectile/pneumatic.dm +++ b/code/modules/projectiles/guns/projectile/pneumatic.dm @@ -5,7 +5,7 @@ icon_state = "pneumatic" item_state = "pneumatic" w_class = 5.0 - flags = FPRINT | TABLEPASS | CONDUCT + flags = CONDUCT fire_sound_text = "a loud whoosh of moving air" fire_delay = 50 fire_sound = 'sound/weapons/tablehit1.ogg' diff --git a/code/modules/projectiles/guns/projectile/rocket.dm b/code/modules/projectiles/guns/projectile/rocket.dm index 5f939e59073..d21987e4a1c 100644 --- a/code/modules/projectiles/guns/projectile/rocket.dm +++ b/code/modules/projectiles/guns/projectile/rocket.dm @@ -8,7 +8,7 @@ throw_speed = 2 throw_range = 10 force = 5.0 - flags = FPRINT | TABLEPASS | CONDUCT | USEDELAY + flags = CONDUCT | USEDELAY origin_tech = "combat=8;materials=5" projectile = /obj/item/missile var/missile_speed = 2 diff --git a/code/modules/projectiles/guns/projectile/shotgun.dm b/code/modules/projectiles/guns/projectile/shotgun.dm index 90436a500d0..a4c006512de 100644 --- a/code/modules/projectiles/guns/projectile/shotgun.dm +++ b/code/modules/projectiles/guns/projectile/shotgun.dm @@ -5,7 +5,7 @@ item_state = "shotgun" w_class = 4.0 force = 10 - flags = FPRINT | TABLEPASS | CONDUCT + flags = CONDUCT slot_flags = SLOT_BACK origin_tech = "combat=4;materials=2" var/recentpump = 0 // to prevent spammage @@ -108,7 +108,7 @@ item_state = "shotgun" w_class = 4.0 force = 10 - flags = FPRINT | TABLEPASS | CONDUCT + flags = CONDUCT slot_flags = SLOT_BACK origin_tech = "combat=3;materials=1" mag_type = "/obj/item/ammo_box/magazine/internal/cylinder/dualshot" diff --git a/code/modules/projectiles/projectile.dm b/code/modules/projectiles/projectile.dm index 5f5eef7c03d..a7a02867871 100644 --- a/code/modules/projectiles/projectile.dm +++ b/code/modules/projectiles/projectile.dm @@ -16,7 +16,6 @@ density = 1 unacidable = 1 anchored = 1 //There's a reason this is here, Mport. God fucking damn it -Agouri. Find&Fix by Pete. The reason this is here is to stop the curving of emitter shots. - flags = FPRINT | TABLEPASS pass_flags = PASSTABLE mouse_opacity = 0 hitsound = 'sound/weapons/pierce.ogg' diff --git a/code/modules/reagents/reagent_containers/borghydro.dm b/code/modules/reagents/reagent_containers/borghydro.dm index 31d68ef7b15..23ae6ce02b1 100644 --- a/code/modules/reagents/reagent_containers/borghydro.dm +++ b/code/modules/reagents/reagent_containers/borghydro.dm @@ -8,7 +8,6 @@ amount_per_transfer_from_this = 5 volume = 30 possible_transfer_amounts = null - flags = FPRINT var/mode = 1 var/charge_cost = 50 var/charge_tick = 0 diff --git a/code/modules/reagents/reagent_containers/drugs.dm b/code/modules/reagents/reagent_containers/drugs.dm index 1f9dced0500..6d8c83cf2c4 100644 --- a/code/modules/reagents/reagent_containers/drugs.dm +++ b/code/modules/reagents/reagent_containers/drugs.dm @@ -8,7 +8,7 @@ amount_per_transfer_from_this = 2 possible_transfer_amounts = 2 volume = 10 - flags = FPRINT | TABLEPASS | OPENCONTAINER + flags = OPENCONTAINER var/label_text = "" diff --git a/code/modules/reagents/reagent_containers/food/condiment.dm b/code/modules/reagents/reagent_containers/food/condiment.dm index bd61291a099..dde17fa7f9a 100644 --- a/code/modules/reagents/reagent_containers/food/condiment.dm +++ b/code/modules/reagents/reagent_containers/food/condiment.dm @@ -10,7 +10,7 @@ desc = "Just your average condiment container." icon = 'icons/obj/food.dmi' icon_state = "emptycondiment" - flags = FPRINT | TABLEPASS | OPENCONTAINER + flags = OPENCONTAINER possible_transfer_amounts = list(1,5,10) volume = 50 //Possible_states has the reagent id as key and a list of, in order, the icon_state, the name and the desc as values. Used in the on_reagent_change() to change names, descs and sprites. @@ -172,7 +172,6 @@ volume = 10 amount_per_transfer_from_this = 10 possible_transfer_amounts = 10 - flags = FPRINT | TABLEPASS possible_states = list("ketchup" = list("condi_ketchup", "Ketchup", "You feel more American already."), "capsaicin" = list("condi_hotsauce", "Hotsauce", "You can almost TASTE the stomach ulcers now!"), "soysauce" = list("condi_soysauce", "Soy Sauce", "A salty soy-based flavoring"), "frostoil" = list("condi_frostoil", "Coldsauce", "Leaves the tongue numb in it's passage"), "sodiumchloride" = list("condi_salt", "Salt Shaker", "Salt. From space oceans, presumably"), "blackpepper" = list("condi_pepper", "Pepper Mill", "Often used to flavor food or make people sneeze"), "cornoil" = list("condi_cornoil", "Corn Oil", "A delicious oil used in cooking. Made from corn"), "sugar" = list("condi_sugar", "Sugar", "Tasty spacey sugar!")) var/originalname = "condiment" //Can't use initial(name) for this. This stores the name set by condimasters. diff --git a/code/modules/reagents/reagent_containers/food/drinks.dm b/code/modules/reagents/reagent_containers/food/drinks.dm index 25a4fd2f47a..2024b18c95f 100644 --- a/code/modules/reagents/reagent_containers/food/drinks.dm +++ b/code/modules/reagents/reagent_containers/food/drinks.dm @@ -6,7 +6,7 @@ desc = "yummy" icon = 'icons/obj/drinks.dmi' icon_state = null - flags = FPRINT | TABLEPASS | OPENCONTAINER + flags = OPENCONTAINER var/gulp_size = 5 //This is now officially broken ... need to think of a nice way to fix it. possible_transfer_amounts = list(5,10,25) volume = 50 @@ -161,7 +161,7 @@ amount_per_transfer_from_this = 20 possible_transfer_amounts = null volume = 150 - flags = FPRINT | CONDUCT | TABLEPASS | OPENCONTAINER + flags = CONDUCT | OPENCONTAINER /obj/item/weapon/reagent_containers/food/drinks/golden_cup/tournament_26_06_2011 desc = "A golden cup. It will be presented to a winner of tournament 26 june and name of the winner will be graved on it." diff --git a/code/modules/reagents/reagent_containers/glass.dm b/code/modules/reagents/reagent_containers/glass.dm index 0d1b64dacd3..db87b378489 100644 --- a/code/modules/reagents/reagent_containers/glass.dm +++ b/code/modules/reagents/reagent_containers/glass.dm @@ -12,7 +12,7 @@ amount_per_transfer_from_this = 10 possible_transfer_amounts = list(5,10,15,25,30,50) volume = 50 - flags = FPRINT | TABLEPASS | OPENCONTAINER + flags = OPENCONTAINER var/label_text = "" @@ -230,7 +230,7 @@ volume = 100 amount_per_transfer_from_this = 10 possible_transfer_amounts = list(5,10,15,25,30,50,100) - flags = FPRINT | TABLEPASS | OPENCONTAINER + flags = OPENCONTAINER /obj/item/weapon/reagent_containers/glass/beaker/vial name = "vial" @@ -240,7 +240,7 @@ volume = 25 amount_per_transfer_from_this = 10 possible_transfer_amounts = list(5,10,15,25) - flags = FPRINT | TABLEPASS | OPENCONTAINER + flags = OPENCONTAINER /obj/item/weapon/reagent_containers/glass/beaker/noreact name = "cryostasis beaker" @@ -249,7 +249,7 @@ g_amt = 500 volume = 50 amount_per_transfer_from_this = 10 - flags = FPRINT | TABLEPASS | OPENCONTAINER | NOREACT + flags = OPENCONTAINER | NOREACT /obj/item/weapon/reagent_containers/glass/beaker/bluespace name = "bluespace beaker" @@ -259,7 +259,7 @@ volume = 300 amount_per_transfer_from_this = 10 possible_transfer_amounts = list(5,10,15,25,30,50,100,300) - flags = FPRINT | TABLEPASS | OPENCONTAINER + flags = OPENCONTAINER /obj/item/weapon/reagent_containers/glass/beaker/cryoxadone New() @@ -291,7 +291,7 @@ amount_per_transfer_from_this = 20 possible_transfer_amounts = list(5,10,15,25,30,50,80,100,120) volume = 120 - flags = FPRINT | OPENCONTAINER + flags = OPENCONTAINER attackby(var/obj/D, mob/user as mob) if(isprox(D)) @@ -309,7 +309,7 @@ volume = 15 amount_per_transfer_from_this = 5 possible_transfer_amounts = list(1,5,15) - flags = FPRINT | TABLEPASS | OPENCONTAINER + flags = OPENCONTAINER /* /obj/item/weapon/reagent_containers/glass/blender_jug @@ -341,7 +341,6 @@ amount_per_transfer_from_this = 20 possible_transfer_amounts = list(10,20,30,60) volume = 120 - flags = FPRINT /obj/item/weapon/reagent_containers/glass/dispenser name = "reagent glass" @@ -349,7 +348,7 @@ icon = 'icons/obj/chemical.dmi' icon_state = "beaker0" amount_per_transfer_from_this = 10 - flags = FPRINT | TABLEPASS | OPENCONTAINER + flags = OPENCONTAINER /obj/item/weapon/reagent_containers/glass/dispenser/surfactant name = "reagent glass (surfactant)" diff --git a/code/modules/reagents/reagent_containers/glass/bottle.dm b/code/modules/reagents/reagent_containers/glass/bottle.dm index 419abe144c1..5c903608707 100644 --- a/code/modules/reagents/reagent_containers/glass/bottle.dm +++ b/code/modules/reagents/reagent_containers/glass/bottle.dm @@ -9,7 +9,7 @@ item_state = "atoxinbottle" amount_per_transfer_from_this = 10 possible_transfer_amounts = list(5,10,15,25,30) - flags = FPRINT | TABLEPASS | OPENCONTAINER + flags = OPENCONTAINER volume = 30 New() diff --git a/code/modules/reagents/reagent_containers/glass/bottle/robot.dm b/code/modules/reagents/reagent_containers/glass/bottle/robot.dm index 9286e5ab03b..7c8bf02a5bb 100644 --- a/code/modules/reagents/reagent_containers/glass/bottle/robot.dm +++ b/code/modules/reagents/reagent_containers/glass/bottle/robot.dm @@ -2,7 +2,7 @@ /obj/item/weapon/reagent_containers/glass/bottle/robot amount_per_transfer_from_this = 10 possible_transfer_amounts = list(5,10,15,25,30,50,100) - flags = FPRINT | TABLEPASS | OPENCONTAINER + flags = OPENCONTAINER volume = 60 var/reagent = "" diff --git a/code/modules/reagents/reagent_containers/hypospray.dm b/code/modules/reagents/reagent_containers/hypospray.dm index cd0a0cca72f..4d19e402f3d 100644 --- a/code/modules/reagents/reagent_containers/hypospray.dm +++ b/code/modules/reagents/reagent_containers/hypospray.dm @@ -12,7 +12,7 @@ amount_per_transfer_from_this = 5 volume = 30 possible_transfer_amounts = list(1,2,3,4,5,10,15,20,25,30) - flags = FPRINT | TABLEPASS | OPENCONTAINER + flags = OPENCONTAINER slot_flags = SLOT_BELT /obj/item/weapon/reagent_containers/hypospray/attack_paw(mob/user as mob) diff --git a/code/modules/reagents/reagent_containers/spray.dm b/code/modules/reagents/reagent_containers/spray.dm index 4f53ce68f19..3d2db2468af 100644 --- a/code/modules/reagents/reagent_containers/spray.dm +++ b/code/modules/reagents/reagent_containers/spray.dm @@ -4,7 +4,7 @@ icon = 'icons/obj/janitor.dmi' icon_state = "cleaner" item_state = "cleaner" - flags = TABLEPASS|OPENCONTAINER|FPRINT|NOBLUDGEON + flags = OPENCONTAINER | NOBLUDGEON slot_flags = SLOT_BELT throwforce = 0 w_class = 2.0 diff --git a/code/modules/reagents/reagent_dispenser.dm b/code/modules/reagents/reagent_dispenser.dm index b95ea0c97a9..f358de8a103 100644 --- a/code/modules/reagents/reagent_dispenser.dm +++ b/code/modules/reagents/reagent_dispenser.dm @@ -7,7 +7,6 @@ icon_state = "watertank" density = 1 anchored = 0 - flags = FPRINT pressure_resistance = 2*ONE_ATMOSPHERE var/amount_per_transfer_from_this = 10 diff --git a/code/modules/recycling/sortingmachinery.dm b/code/modules/recycling/sortingmachinery.dm index a30e15a58ec..17f62fc9c67 100755 --- a/code/modules/recycling/sortingmachinery.dm +++ b/code/modules/recycling/sortingmachinery.dm @@ -6,7 +6,7 @@ var/obj/wrapped = null density = 1 var/sortTag = 0 - flags = FPRINT | NOBLUDGEON + flags = NOBLUDGEON mouse_drag_pointer = MOUSE_ACTIVE_POINTER attack_hand(mob/user as mob) @@ -45,7 +45,6 @@ icon_state = "deliverycrateSmall" var/obj/item/wrapped = null var/sortTag = 0 - flags = FPRINT attack_self(mob/user as mob) @@ -164,7 +163,7 @@ w_class = 1 item_state = "electronic" - flags = FPRINT | TABLEPASS | CONDUCT + flags = CONDUCT slot_flags = SLOT_BELT proc/openwindow(mob/user as mob) diff --git a/code/modules/research/xenoarchaeology/chemistry.dm b/code/modules/research/xenoarchaeology/chemistry.dm index e4701247544..f2a585835e9 100644 --- a/code/modules/research/xenoarchaeology/chemistry.dm +++ b/code/modules/research/xenoarchaeology/chemistry.dm @@ -87,7 +87,7 @@ datum amount_per_transfer_from_this = 1 possible_transfer_amounts = list(1, 2) volume = 2 - flags = FPRINT | OPENCONTAINER + flags = OPENCONTAINER obj/item/weapon/reagent_containers/glass/solution_tray/attackby(obj/item/weapon/W as obj, mob/living/user as mob) if(istype(W, /obj/item/weapon/pen)) diff --git a/code/modules/research/xenoarchaeology/tools/tools_anoscanner.dm b/code/modules/research/xenoarchaeology/tools/tools_anoscanner.dm index 7cfe69d1e35..8b1dc2f60ee 100644 --- a/code/modules/research/xenoarchaeology/tools/tools_anoscanner.dm +++ b/code/modules/research/xenoarchaeology/tools/tools_anoscanner.dm @@ -5,7 +5,6 @@ icon_state = "flashgun" item_state = "lampgreen" w_class = 1.0 - flags = FPRINT | TABLEPASS slot_flags = SLOT_BELT var/nearest_artifact_id = "unknown" var/nearest_artifact_distance = -1 diff --git a/code/modules/research/xenoarchaeology/tools/tools_coresampler.dm b/code/modules/research/xenoarchaeology/tools/tools_coresampler.dm index 344a6ccb225..a2b42a22b97 100644 --- a/code/modules/research/xenoarchaeology/tools/tools_coresampler.dm +++ b/code/modules/research/xenoarchaeology/tools/tools_coresampler.dm @@ -20,7 +20,6 @@ icon_state = "sampler0" item_state = "screwdriver_brown" w_class = 1.0 - flags = FPRINT | TABLEPASS //slot_flags = SLOT_BELT var/sampled_turf = "" var/num_stored_bags = 10 diff --git a/code/modules/research/xenoarchaeology/tools/tools_depthscanner.dm b/code/modules/research/xenoarchaeology/tools/tools_depthscanner.dm index ad9a525b716..7c55b81004a 100644 --- a/code/modules/research/xenoarchaeology/tools/tools_depthscanner.dm +++ b/code/modules/research/xenoarchaeology/tools/tools_depthscanner.dm @@ -10,7 +10,6 @@ icon_state = "crap" item_state = "analyzer" w_class = 1.0 - flags = FPRINT | TABLEPASS slot_flags = SLOT_BELT var/list/positive_locations = list() var/datum/depth_scan/current diff --git a/code/modules/virus2/helpers.dm b/code/modules/virus2/helpers.dm index e3525797d71..88d95b6839a 100644 --- a/code/modules/virus2/helpers.dm +++ b/code/modules/virus2/helpers.dm @@ -46,7 +46,6 @@ proc/get_infection_chance(var/mob/living/carbon/M, var/vector = "Airborne") //Checks if table-passing table can reach target (5 tile radius) proc/airborne_can_reach(turf/source, turf/target, var/radius=5) var/obj/dummy = new(source) - dummy.flags = FPRINT | TABLEPASS dummy.pass_flags = PASSTABLE for(var/i=0, i Date: Thu, 12 Feb 2015 18:49:26 -0500 Subject: [PATCH 02/60] ABSTRACT flag addition & handling - Adds ABSTRACT flag to relevant items, removes abstract var. - Adds checks for ABSTRACT where relevant. - Also removes extra define of golem gas mask. - Adds NODROP to changeling mutations so I don't have to do that later. --- code/_onclick/click.dm | 8 ++-- code/_onclick/other_mobs.dm | 9 +++- code/_onclick/telekinesis.dm | 2 +- .../gamemodes/changeling/powers/mutations.dm | 11 +++-- code/game/objects/items.dm | 1 - .../objects/items/weapons/storage/storage.dm | 18 +++---- code/game/objects/items/weapons/twohanded.dm | 2 +- code/modules/mob/inventory.dm | 12 +++-- code/modules/mob/living/carbon/carbon.dm | 6 +-- .../mob/living/carbon/human/examine.dm | 4 +- code/modules/mob/living/carbon/human/human.dm | 48 +++++++++---------- .../mob/living/carbon/metroid/metroid.dm | 20 +++----- code/modules/mob/mob.dm | 8 ++-- code/modules/mob/mob_grab.dm | 3 +- code/modules/mob/mob_helpers.dm | 8 ++-- 15 files changed, 81 insertions(+), 79 deletions(-) diff --git a/code/_onclick/click.dm b/code/_onclick/click.dm index edda907db4c..a65821e52fb 100644 --- a/code/_onclick/click.dm +++ b/code/_onclick/click.dm @@ -65,8 +65,6 @@ if(stat || paralysis || stunned || weakened) return - face_atom(A) // change direction to face what you clicked on - if(next_move > world.time) // in the year 2000... return @@ -76,6 +74,10 @@ var/obj/mecha/M = loc return M.click_action(A,src) + var/obj/item/W = get_active_hand() + if(W == null || !(W.flags & ABSTRACT)) + face_atom(A) + if(restrained()) RestrainedClickOn(A) return @@ -84,8 +86,6 @@ throw_item(A) return - var/obj/item/W = get_active_hand() - if(W == A) next_move = world.time + 6 if(W.flags&USEDELAY) diff --git a/code/_onclick/other_mobs.dm b/code/_onclick/other_mobs.dm index 427b286800b..c6527855100 100644 --- a/code/_onclick/other_mobs.dm +++ b/code/_onclick/other_mobs.dm @@ -17,10 +17,13 @@ /atom/proc/attack_hand(mob/user as mob) return -/mob/living/carbon/human/RestrainedClickOn(var/atom/A) +/* +/mob/living/carbon/human/RestrainedClickOn(var/atom/A) -- Handled by carbons return +*/ - +/mob/living/carbon/RestrainedClickOn(var/atom/A) + return 0 // Commented out to prevent overwriting RangedAttack in click.dm ~ Bone White /* @@ -72,6 +75,8 @@ things considerably */ /mob/living/carbon/monkey/RestrainedClickOn(var/atom/A) + if(..()) + return if(a_intent != "harm" || !ismob(A)) return if(istype(wear_mask, /obj/item/clothing/mask/muzzle)) return diff --git a/code/_onclick/telekinesis.dm b/code/_onclick/telekinesis.dm index 0eadbff6696..c06485ee0ec 100644 --- a/code/_onclick/telekinesis.dm +++ b/code/_onclick/telekinesis.dm @@ -65,7 +65,7 @@ var/const/tk_maxrange = 15 desc = "Magic" icon = 'icons/obj/magic.dmi'//Needs sprites icon_state = "2" - flags = NOBLUDGEON + flags = NOBLUDGEON | ABSTRACT //item_state = null w_class = 10.0 layer = 20 diff --git a/code/game/gamemodes/changeling/powers/mutations.dm b/code/game/gamemodes/changeling/powers/mutations.dm index 31fd7c577dd..2e28f82cf77 100644 --- a/code/game/gamemodes/changeling/powers/mutations.dm +++ b/code/game/gamemodes/changeling/powers/mutations.dm @@ -123,11 +123,11 @@ icon = 'icons/obj/weapons.dmi' icon_state = "arm_blade" item_state = "arm_blade" + flags = ABSTRACT | NODROP icon_override = 'icons/mob/in-hand/changeling.dmi' w_class = 5.0 sharp = 1 edge = 1 - canremove = 0 force = 25 throwforce = 0 //Just to be on the safe side throw_range = 0 @@ -201,7 +201,7 @@ /obj/item/weapon/shield/changeling name = "shield-like mass" desc = "A mass of tough, boney tissue. You can still see the fingers as a twisted pattern in the shield." - canremove = 0 + flags = NODROP icon = 'icons/obj/weapons.dmi' icon_state = "ling_shield" icon_override = 'icons/mob/in-hand/changeling.dmi' @@ -256,7 +256,7 @@ name = "flesh mass" icon_state = "lingspacesuit" desc = "A huge, bulky mass of pressure and temperature-resistant organic tissue, evolved to facilitate space travel." - flags = STOPSPRESSUREDMAGE + flags = STOPSPRESSUREDMAGE | NODROP allowed = list(/obj/item/device/flashlight, /obj/item/weapon/tank/emergency_oxygen, /obj/item/weapon/tank/oxygen) armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0) //No armor at all. canremove = 0 @@ -279,7 +279,7 @@ name = "flesh mass" icon_state = "lingspacehelmet" desc = "A covering of pressure and temperature-resistant organic tissue with a glass-like chitin front." - flags = HEADCOVERSEYES | BLOCKHAIR | HEADCOVERSMOUTH | STOPSPRESSUREDMAGE + flags = HEADCOVERSEYES | BLOCKHAIR | HEADCOVERSMOUTH | STOPSPRESSUREDMAGE | NODROP armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0) canremove = 0 @@ -310,6 +310,7 @@ name = "chitinous mass" desc = "A tough, hard covering of black chitin." icon_state = "lingarmor" + flags = NODROP body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS slowdown = 2 armor = list(melee = 65, bullet = 20, laser = 10, energy = 13, bomb = 0, bio = 0, rad = 0) @@ -330,7 +331,7 @@ name = "chitinous mass" desc = "A tough, hard covering of black chitin with transparent chitin in front." icon_state = "lingarmorhelmet" - flags = HEADCOVERSEYES | BLOCKHAIR + flags = HEADCOVERSEYES | BLOCKHAIR | NODROP armor = list(melee = 70, bullet = 15, laser = 7,energy = 10, bomb = 5, bio = 2, rad = 0) canremove = 0 flags_inv = HIDEEARS diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index 4a17dadcabc..4cab37f9b68 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -5,7 +5,6 @@ var/no_embed = 0 // For use in item_attack.dm var/icon/blood_overlay = null //this saves our blood splatter overlay, which will be processed not to go over the edges of the sprite var/blood_overlay_color = null - var/abstract = 0 var/item_state = null var/r_speed = 1.0 var/health = null diff --git a/code/game/objects/items/weapons/storage/storage.dm b/code/game/objects/items/weapons/storage/storage.dm index 2b7661cc702..c34c0ca0595 100644 --- a/code/game/objects/items/weapons/storage/storage.dm +++ b/code/game/objects/items/weapons/storage/storage.dm @@ -101,7 +101,7 @@ if(user.s_active == src) user.s_active = null return - + /obj/item/weapon/storage/proc/open(mob/user as mob) if (src.use_sound) playsound(src.loc, src.use_sound, 50, 1, -5) @@ -202,7 +202,7 @@ //This proc return 1 if the item can be picked up and 0 if it can't. //Set the stop_messages to stop it from printing messages /obj/item/weapon/storage/proc/can_be_inserted(obj/item/W as obj, stop_messages = 0) - if(!istype(W)) return //Not an item + if(!istype(W) || (W.flags & ABSTRACT)) return //Not an item if(src.loc == W) return 0 //Means the item is already in the storage item @@ -465,17 +465,17 @@ /atom/proc/storage_depth(atom/container) var/depth = 0 var/atom/cur_atom = src - + while (cur_atom && !(cur_atom in container.contents)) if (isarea(cur_atom)) return -1 if (istype(cur_atom.loc, /obj/item/weapon/storage)) depth++ cur_atom = cur_atom.loc - + if (!cur_atom) return -1 //inside something with a null loc. - + return depth //Like storage depth, but returns the depth to the nearest turf @@ -483,16 +483,16 @@ /atom/proc/storage_depth_turf() var/depth = 0 var/atom/cur_atom = src - + while (cur_atom && !isturf(cur_atom)) if (isarea(cur_atom)) return -1 if (istype(cur_atom.loc, /obj/item/weapon/storage)) depth++ cur_atom = cur_atom.loc - + if (!cur_atom) return -1 //inside something with a null loc. - + return depth - + diff --git a/code/game/objects/items/weapons/twohanded.dm b/code/game/objects/items/weapons/twohanded.dm index f8fa6f7149b..417cfdbbca7 100644 --- a/code/game/objects/items/weapons/twohanded.dm +++ b/code/game/objects/items/weapons/twohanded.dm @@ -107,7 +107,7 @@ w_class = 5.0 icon_state = "offhand" name = "offhand" - //flags = ABSTRACT + flags = ABSTRACT /obj/item/weapon/twohanded/offhand/unwield() del(src) diff --git a/code/modules/mob/inventory.dm b/code/modules/mob/inventory.dm index c8b38aff840..71553163b0c 100644 --- a/code/modules/mob/inventory.dm +++ b/code/modules/mob/inventory.dm @@ -22,8 +22,10 @@ //Puts the item into your l_hand if possible and calls all necessary triggers/updates. returns 1 on success. /mob/proc/put_in_l_hand(var/obj/item/W) - if(lying) return 0 - if(!istype(W)) return 0 + if(lying && !(W.flags & ABSTRACT)) + return 0 + if(!istype(W)) + return 0 if(!l_hand) W.loc = src //TODO: move to equipped? l_hand = W @@ -38,8 +40,10 @@ //Puts the item into your r_hand if possible and calls all necessary triggers/updates. returns 1 on success. /mob/proc/put_in_r_hand(var/obj/item/W) - if(lying) return 0 - if(!istype(W)) return 0 + if(lying && !(W.flags & ABSTRACT)) + return 0 + if(!istype(W)) + return 0 if(!r_hand) W.loc = src r_hand = W diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index 58fff0705ce..3fd186af332 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -473,9 +473,9 @@ var/dat = {"
[name]


-
Head(Mask): [(wear_mask ? wear_mask : "Nothing")] -
Left Hand: [(l_hand ? l_hand : "Nothing")] -
Right Hand: [(r_hand ? r_hand : "Nothing")] +
Head(Mask): [(wear_mask && !(wear_mask.flags & ABSTRACT)) ? wear_mask : "Nothing"] +
Left Hand: [(l_hand && !(l_hand.flags & ABSTRACT)) ? l_hand : "Nothing"] +
Right Hand: [(r_hand && !(r_hand.flags & ABSTRACT)) ? r_hand : "Nothing"]
Back: [(back ? back : "Nothing")] [((istype(wear_mask, /obj/item/clothing/mask) && istype(back, /obj/item/weapon/tank) && !( internal )) ? text(" Set Internal", src) : "")]
[(handcuffed ? text("Handcuffed") : text("Not Handcuffed"))]
[(internal ? text("Remove Internal") : "")] diff --git a/code/modules/mob/living/carbon/human/examine.dm b/code/modules/mob/living/carbon/human/examine.dm index f763179550e..99c5e7a1ced 100644 --- a/code/modules/mob/living/carbon/human/examine.dm +++ b/code/modules/mob/living/carbon/human/examine.dm @@ -104,14 +104,14 @@ msg += "[t_He] [t_has] \icon[back] \a [back] on [t_his] back.\n" //left hand - if(l_hand) + if(l_hand && !(l_hand.flags & ABSTRACT)) if(l_hand.blood_DNA) msg += "[t_He] [t_is] holding \icon[l_hand] [l_hand.gender==PLURAL?"some":"a"] blood-stained [l_hand.name] in [t_his] left hand!\n" else msg += "[t_He] [t_is] holding \icon[l_hand] \a [l_hand] in [t_his] left hand.\n" //right hand - if(r_hand) + if(r_hand && !(r_hand.flags & ABSTRACT)) if(r_hand.blood_DNA) msg += "[t_He] [t_is] holding \icon[r_hand] [r_hand.gender==PLURAL?"some":"a"] blood-stained [r_hand.name] in [t_his] right hand!\n" else diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index ded2a3c949e..0da3bba80fa 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -496,24 +496,24 @@ var/dat = {"
[name]


-
Head(Mask): [(wear_mask ? wear_mask : "Nothing")] -
Left Hand: [(l_hand ? l_hand : "Nothing")] -
Right Hand: [(r_hand ? r_hand : "Nothing")] -
Gloves: [(gloves ? gloves : "Nothing")] -
Eyes: [(glasses ? glasses : "Nothing")] -
Left Ear: [(l_ear ? l_ear : "Nothing")] -
Right Ear: [(r_ear ? r_ear : "Nothing")] -
Head: [(head ? head : "Nothing")] -
Shoes: [(shoes ? shoes : "Nothing")] -
Belt: [(belt ? belt : "Nothing")] [((istype(wear_mask, /obj/item/clothing/mask) && istype(belt, /obj/item/weapon/tank) && !( internal )) ? text(" Set Internal", src) : "")] -
Uniform: [(w_uniform ? w_uniform : "Nothing")] [(suit) ? ((suit.has_sensor == 1) ? text(" Sensors", src) : "") :] -
(Exo)Suit: [(wear_suit ? wear_suit : "Nothing")] -
Back: [(back ? back : "Nothing")] [((istype(wear_mask, /obj/item/clothing/mask) && istype(back, /obj/item/weapon/tank) && !( internal )) ? text(" Set Internal", src) : "")] -
ID: [(wear_id ? wear_id : "Nothing")] -
PDA: [(wear_pda ? wear_pda : "Nothing")] -
Suit Storage: [(s_store ? s_store : "Nothing")] -

Left Pocket ([l_store ? (pickpocket ? l_store.name : "Full") : "Empty"]) -
Right Pocket ([r_store ? (pickpocket ? r_store.name : "Full") : "Empty"]) +
Head(Mask): [(wear_mask && !(wear_mask.flags & ABSTRACT)) ? wear_mask : "Nothing"] +
Left Hand: [(l_hand && !(l_hand.flags & ABSTRACT)) ? l_hand : "Nothing"] +
Right Hand: [(r_hand && !(r_hand.flags&ABSTRACT)) ? r_hand : "Nothing"] +
Gloves: [(gloves && !(gloves.flags & ABSTRACT)) ? gloves : "Nothing"] +
Eyes: [(glasses && !(glasses.flags & ABSTRACT)) ? glasses : "Nothing"] +
Left Ear: [(l_ear && !(l_ear.flags & ABSTRACT)) ? l_ear : "Nothing"] +
Right Ear: [(r_ear && !(r_ear.flags & ABSTRACT)) ? r_ear : "Nothing"] +
Head: [(head && !(head.flags & ABSTRACT)) ? head : "Nothing"] +
Shoes: [(shoes && !(shoes.flags & ABSTRACT)) ? shoes : "Nothing"] +
Belt: [(belt && !(belt.flags & ABSTRACT)) ? belt : "Nothing"] [((istype(wear_mask, /obj/item/clothing/mask) && istype(belt, /obj/item/weapon/tank) && !( internal )) ? text(" Set Internal", src) : "")] +
Uniform: [(w_uniform && !(w_uniform.flags & ABSTRACT)) ? w_uniform : "Nothing"] [(suit) ? ((suit.has_sensor == 1) ? text(" Sensors", src) : "") :] +
(Exo)Suit: [(wear_suit && !(wear_suit.flags & ABSTRACT)) ? wear_suit : "Nothing"] +
Back: [(back && !(back.flags & ABSTRACT)) ? back : "Nothing"] [((istype(wear_mask, /obj/item/clothing/mask) && istype(back, /obj/item/weapon/tank) && !( internal )) ? text(" Set Internal", src) : "")] +
ID: [(wear_id && !(wear_id.flags & ABSTRACT)) ? wear_id : "Nothing"] +
PDA: [(wear_pda && !(wear_pda.flags & ABSTRACT)) ? wear_pda : "Nothing"] +
Suit Storage: [(s_store && !(s_store.flags & ABSTRACT)) ? s_store : "Nothing"] +

Left Pocket ([(l_store && !(l_store.flags & ABSTRACT)) ? (pickpocket ? l_store.name : "Full") : "Empty"]) +
Right Pocket ([(r_store && !(r_store.flags & ABSTRACT)) ? (pickpocket ? r_store.name : "Full") : "Empty"])
Empty Both Pockets

[(handcuffed ? text("Handcuffed") : text("Not Handcuffed"))]
[(legcuffed ? text("Legcuffed") : text(""))] @@ -640,9 +640,9 @@ var/obj/item/pocket_item = (pocket_id == slot_r_store ? src.r_store : src.l_store) var/obj/item/place_item = usr.get_active_hand() // Item to place in the pocket, if it's empty - if(pocket_item) + if(pocket_item && !(pocket_item.flags & ABSTRACT)) usr << "You try to empty [src]'s [pocket_side] pocket." - else if(place_item && place_item.mob_can_equip(src, pocket_id, 1)) + else if(place_item && place_item.mob_can_equip(src, pocket_id, 1) && !(place_item.flags & ABSTRACT)) usr << "You try to place [place_item] into [src]'s [pocket_side] pocket." else return @@ -1036,10 +1036,10 @@ /mob/living/carbon/human/abiotic(var/full_body = 0) - if(full_body && ((src.l_hand && !( src.l_hand.abstract )) || (src.r_hand && !( src.r_hand.abstract )) || (src.back || src.wear_mask || src.head || src.shoes || src.w_uniform || src.wear_suit || src.glasses || src.l_ear || src.r_ear || src.gloves))) + if(full_body && ((src.l_hand && !(src.l_hand.flags & ABSTRACT)) || (src.r_hand && !(src.r_hand.flags & ABSTRACT)) || (src.back || src.wear_mask || src.head || src.shoes || src.w_uniform || src.wear_suit || src.glasses || src.l_ear || src.r_ear || src.gloves))) return 1 - if( (src.l_hand && !src.l_hand.abstract) || (src.r_hand && !src.r_hand.abstract) ) + if((src.l_hand && !(src.l_hand.flags & ABSTRACT)) || (src.r_hand && !(src.r_hand.flags & ABSTRACT))) return 1 return 0 @@ -1161,14 +1161,14 @@ var/datum/organ/internal/lungs/L = internal_organs_by_name["lungs"] if(!L) return 0 - + return L.is_bruised() /mob/living/carbon/human/proc/rupture_lung() var/datum/organ/internal/lungs/L = internal_organs_by_name["lungs"] if(!L) return 0 - + if(!L.is_bruised()) src.custom_pain("You feel a stabbing pain in your chest!", 1) L.damage = L.min_bruised_damage diff --git a/code/modules/mob/living/carbon/metroid/metroid.dm b/code/modules/mob/living/carbon/metroid/metroid.dm index ce59c2d5ff5..9b597c46e47 100644 --- a/code/modules/mob/living/carbon/metroid/metroid.dm +++ b/code/modules/mob/living/carbon/metroid/metroid.dm @@ -897,6 +897,7 @@ mob/living/carbon/slime/var/temperature_resistance = T0C+75 item_state = "golem" _color = "golem" has_sensor = 0 + flags = ABSTRACT armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0) canremove = 0 @@ -911,7 +912,7 @@ mob/living/carbon/slime/var/temperature_resistance = T0C+75 body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS|HEAD slowdown = 1.0 flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT - flags = ONESIZEFITSALL | STOPSPRESSUREDMAGE + flags = ONESIZEFITSALL | STOPSPRESSUREDMAGE | ABSTRACT heat_protection = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS | HEAD max_heat_protection_temperature = FIRESUIT_MAX_HEAT_PROTECTION_TEMPERATURE cold_protection = UPPER_TORSO | LOWER_TORSO | LEGS | FEET | ARMS | HANDS | HEAD @@ -923,9 +924,9 @@ mob/living/carbon/slime/var/temperature_resistance = T0C+75 name = "golem's feet" desc = "sturdy adamantine feet" icon_state = "golem" - item_state = null + item_state = "golem" canremove = 0 - flags = NOSLIP + flags = NOSLIP | ABSTRACT | MASKINTERNALS | MASKCOVERSMOUTH slowdown = SHOES_SLOWDOWN+1 @@ -937,15 +938,7 @@ mob/living/carbon/slime/var/temperature_resistance = T0C+75 canremove = 0 siemens_coefficient = 0 unacidable = 1 - -/obj/item/clothing/mask/gas/golem - name = "golem's face" - desc = "the imposing face of an adamantine golem" - icon_state = "golem" - item_state = "golem" - canremove = 0 - siemens_coefficient = 0 - unacidable = 1 + flags = ABSTRACT /obj/item/clothing/gloves/golem @@ -955,6 +948,7 @@ mob/living/carbon/slime/var/temperature_resistance = T0C+75 item_state = null siemens_coefficient = 0 canremove = 0 + flags = ABSTRACT /obj/item/clothing/head/space/golem @@ -965,7 +959,7 @@ mob/living/carbon/slime/var/temperature_resistance = T0C+75 desc = "a golem's head" canremove = 0 unacidable = 1 - flags = STOPSPRESSUREDMAGE + flags = STOPSPRESSUREDMAGE | ABSTRACT heat_protection = HEAD max_heat_protection_temperature = FIRE_HELMET_MAX_HEAT_PROTECTION_TEMPERATURE armor = list(melee = 80, bullet = 20, laser = 20, energy = 10, bomb = 0, bio = 0, rad = 0) diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index d865cb2dde5..1e73c1ba070 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -438,9 +438,9 @@ var/list/slot_equipment_priority = list( \
[name]



Head(Mask): [(wear_mask ? wear_mask : "Nothing")] -
Left Hand: [(l_hand ? l_hand : "Nothing")] -
Right Hand: [(r_hand ? r_hand : "Nothing")] -
Back: [(back ? back : "Nothing")] [((istype(wear_mask, /obj/item/clothing/mask) && istype(back, /obj/item/weapon/tank) && !( internal )) ? text(" Set Internal", src) : "")] +
Left Hand: [(l_hand && !(l_hand.flags & ABSTRACT)) ? l_hand : "Nothing"] +
Right Hand: [(r_hand && !(r_hand.flags & ABSTRACT)) ? r_hand : "Nothing"] +
Back: [(back && !(back.flags & ABSTRACT)) ? back : "Nothing"] [((istype(wear_mask, /obj/item/clothing/mask) && istype(back, /obj/item/weapon/tank) && !( internal )) ? text(" Set Internal", src) : "")]
[(internal ? text("Remove Internal") : "")]
Empty Pockets
Refresh @@ -1235,7 +1235,7 @@ mob/proc/yank_out_object() if(jobban_isbanned(usr, "NPC")) usr << "You are banned from playing as NPC's." return - + if((usr in respawnable_list) && (stat==2 || istype(usr,/mob/dead/observer))) var/list/creatures = list("Mouse") for(var/mob/living/L in living_mob_list) diff --git a/code/modules/mob/mob_grab.dm b/code/modules/mob/mob_grab.dm index 29bc7aed076..cdda2f6d268 100644 --- a/code/modules/mob/mob_grab.dm +++ b/code/modules/mob/mob_grab.dm @@ -3,7 +3,7 @@ /obj/item/weapon/grab name = "grab" - flags = NOBLUDGEON + flags = NOBLUDGEON | ABSTRACT var/obj/screen/grab/hud = null var/mob/affecting = null var/mob/assailant = null @@ -12,7 +12,6 @@ var/last_upgrade = 0 layer = 21 - abstract = 1 item_state = "nothing" w_class = 5.0 diff --git a/code/modules/mob/mob_helpers.dm b/code/modules/mob/mob_helpers.dm index b652a106824..ee3c953fb7e 100644 --- a/code/modules/mob/mob_helpers.dm +++ b/code/modules/mob/mob_helpers.dm @@ -150,7 +150,7 @@ proc/isorgan(A) if(L && L.implanted) return 1 return 0 - + proc/isnewplayer(A) if(istype(A, /mob/new_player)) return 1 @@ -161,7 +161,7 @@ proc/hasorgans(A) /proc/hsl2rgb(h, s, l) return - + proc/hassensorlevel(A, var/level) var/mob/living/carbon/human/H = A if(istype(H) && istype(H.w_uniform, /obj/item/clothing/under)) @@ -352,10 +352,10 @@ It's fairly easy to fix if dealing with single letters but not so much with comp /mob/proc/abiotic(var/full_body = 0) - if(full_body && ((src.l_hand && !( src.l_hand.abstract )) || (src.r_hand && !( src.r_hand.abstract )) || (src.back || src.wear_mask))) + if(full_body && ((src.l_hand && !(src.l_hand.flags & ABSTRACT)) || (src.r_hand && !(src.r_hand.flags & ABSTRACT)) || (src.back || src.wear_mask))) return 1 - if((src.l_hand && !( src.l_hand.abstract )) || (src.r_hand && !( src.r_hand.abstract ))) + if((src.l_hand && !(src.l_hand.flags & ABSTRACT)) || (src.r_hand && !(src.r_hand.flags & ABSTRACT))) return 1 return 0 From 1bed62cf7509e88dc6949fbbff5a8da078cae495 Mon Sep 17 00:00:00 2001 From: ZomgPonies Date: Sun, 15 Feb 2015 10:27:22 -0500 Subject: [PATCH 03/60] Modifies the wishgranter --- code/game/machinery/wishgranter.dm | 46 +++++++++++++++++------------- 1 file changed, 26 insertions(+), 20 deletions(-) diff --git a/code/game/machinery/wishgranter.dm b/code/game/machinery/wishgranter.dm index ac2986f18a2..87561d447ab 100644 --- a/code/game/machinery/wishgranter.dm +++ b/code/game/machinery/wishgranter.dm @@ -30,8 +30,30 @@ insisting++ else - user << "You speak. [pick("I want the station to disappear","Humanity is corrupt, mankind must be destroyed","I want to be rich", "I want to rule the world","I want immortality.")]. The Wish Granter answers." - user << "Your head pounds for a moment, before your vision clears. You are the avatar of the Wish Granter, and your power is LIMITLESS! And it's all yours. You need to make sure no one can take it from you. No one can know, first." + user << "The power of the Wish Granter have turned you into the superhero the station deserves. You are a masked vigilante, and answer to no man. Will you use your newfound strength to protect the innocent, or will you hunt the guilty?" + + ticker.mode.traitors += user.mind + user.mind.special_role = "The Hero The Station Deserves" + + var/wish = input("You want to...","Wish") as null|anything in list("Protect the innocent","Hunt the guilty") + switch(wish) + if("Protect the innocent") + var/datum/objective/protect/protect = new + protect.owner = user.mind + user.mind.objectives += protect + + if("Hunt the guilty") + var/datum/objective/assassinate/assasinate = new + assasinate.owner = user.mind + user.mind.objectives += assasinate + + var/obj_count = 1 + for(var/datum/objective/OBJ in user.mind.objectives) + user << "Objective #[obj_count]: [OBJ.explanation_text]" + obj_count++ + + user << "As a superhero, you are allowed to pick an appropriate pseudonym for your new role. A costume is also strongly encouraged." + user.rename_self() charges-- insisting = 0 @@ -57,25 +79,9 @@ if (!(M_TK in user.mutations)) user.mutations.Add(M_TK) - /* Not used - if(!(HEAL in user.mutations)) - user.mutations.Add(HEAL) - */ + if(!(M_REGEN in user.mutations)) + user.mutations.Add(M_REGEN) user.update_mutations() - ticker.mode.traitors += user.mind - user.mind.special_role = "Avatar of the Wish Granter" - - var/datum/objective/silence/silence = new - silence.owner = user.mind - user.mind.objectives += silence - - var/obj_count = 1 - for(var/datum/objective/OBJ in user.mind.objectives) - user << "Objective #[obj_count]: [OBJ.explanation_text]" - obj_count++ - - user << "You have a very bad feeling about this." - return \ No newline at end of file From ad167dc54190fbba032cda86f49401afde43d7a5 Mon Sep 17 00:00:00 2001 From: Markolie Date: Mon, 16 Feb 2015 19:03:29 +0100 Subject: [PATCH 04/60] Announcement system overhaul, crew monitor system overhaul, add portable crew monitor --- code/__HELPERS/text.dm | 34 +++- code/__HELPERS/unsorted.dm | 8 +- code/_onclick/hud/screen_objects.dm | 3 +- code/_onclick/observer.dm | 2 +- code/controllers/configuration.dm | 17 ++ .../emergency_shuttle_controller.dm | 22 +-- code/datums/periodic_news.dm | 13 +- code/defines/procs/announce.dm | 121 +++++++++++++++ code/defines/procs/captain_announce.dm | 5 - code/defines/procs/command_alert.dm | 11 -- code/game/gamemodes/blob/blob.dm | 7 +- code/game/gamemodes/epidemic/epidemic.dm | 2 +- code/game/gamemodes/events.dm | 41 ++--- code/game/gamemodes/events/PortalStorm.dm | 2 +- code/game/gamemodes/events/VirusEpidemic.dm | 7 +- code/game/gamemodes/events/clang.dm | 2 +- code/game/gamemodes/events/miniblob.dm | 5 +- code/game/gamemodes/events/power_failure.dm | 12 +- code/game/gamemodes/events/wormholes.dm | 2 +- code/game/gamemodes/game_mode.dm | 5 +- .../game/gamemodes/malfunction/malfunction.dm | 5 +- .../mutiny/emergency_authentication_device.dm | 2 +- code/game/gamemodes/mutiny/mutiny.dm | 4 +- code/game/gamemodes/nations/nations.dm | 2 +- code/game/gamemodes/xenos/xenos.dm | 2 +- code/game/jobs/job/supervisor.dm | 3 +- code/game/jobs/job_controller.dm | 1 + .../game/machinery/computer/communications.dm | 32 ++-- code/game/machinery/computer/crew.dm | 108 +------------ code/game/machinery/newscaster.dm | 29 ++-- code/game/machinery/requests_console.dm | 25 +-- code/game/machinery/slotmachine.dm | 3 +- code/game/machinery/vending.dm | 2 +- code/game/objects/items/devices/PDA/PDA.dm | 9 +- .../objects/items/devices/sensor_device.dm | 18 +++ .../objects/items/weapons/storage/belt.dm | 3 +- code/game/objects/objs.dm | 12 +- .../crates_lockers/closets/secure/medical.dm | 2 + code/game/response_team.dm | 4 +- code/modules/admin/topic.dm | 10 +- code/modules/admin/verbs/randomverbs.dm | 8 +- .../awaymissions/bluespaceartillery.dm | 4 +- .../computer3/computers/communications.dm | 18 ++- code/modules/economy/Economy.dm | 8 + code/modules/events/alien_infestation.dm | 3 +- code/modules/events/blob.dm | 7 +- code/modules/events/borers.dm | 3 +- code/modules/events/brand_intelligence.dm | 2 +- code/modules/events/cargobonus.dm | 2 +- code/modules/events/carp_migration.dm | 2 +- code/modules/events/comms_blackout.dm | 2 +- .../modules/events/communications_blackout.dm | 2 +- code/modules/events/disease_outbreak.dm | 3 +- code/modules/events/electrical_storm.dm | 2 +- code/modules/events/event_container.dm | 22 +-- code/modules/events/event_dynamic.dm | 7 +- code/modules/events/grid_check.dm | 4 +- code/modules/events/infestation.dm | 2 +- code/modules/events/ion_storm.dm | 4 +- code/modules/events/mass_hallucination.dm | 2 +- code/modules/events/meteors.dm | 11 +- code/modules/events/prison_break.dm | 4 +- code/modules/events/radiation_storm.dm | 7 +- code/modules/events/rogue_drones.dm | 6 +- code/modules/events/sayuevents/meaty_ores.dm | 5 +- code/modules/events/sayuevents/wormholes.dm | 5 +- code/modules/events/spider_infestation.dm | 4 +- code/modules/events/tear.dm | 2 +- code/modules/events/tgevents/anomaly.dm | 2 +- .../events/tgevents/anomaly_bluespace.dm | 4 +- code/modules/events/tgevents/anomaly_flux.dm | 2 +- code/modules/events/tgevents/anomaly_grav.dm | 2 +- code/modules/events/tgevents/anomaly_pyro.dm | 2 +- .../modules/events/tgevents/anomaly_vortex.dm | 2 +- .../events/tgevents/brand_intelligence.dm | 2 +- code/modules/events/tgevents/immovable_rod.dm | 2 +- .../events/tgevents/mass_hallucination.dm | 2 +- .../events/tgevents/spider_infestation.dm | 33 ---- code/modules/events/tgevents/vent_clog.dm | 2 +- code/modules/events/viral_infection.dm | 3 +- code/modules/events/viral_outbreak.dm | 3 +- code/modules/events/wallrot.dm | 2 +- code/modules/mob/living/carbon/human/human.dm | 16 +- code/modules/mob/living/silicon/ai/ai.dm | 143 +++++++++++++---- .../mob/living/silicon/ai/freelook/eye.dm | 2 +- code/modules/mob/living/silicon/ai/nano.dm | 10 ++ code/modules/mob/living/silicon/ai/say.dm | 137 +++++++---------- code/modules/mob/mob_helpers.dm | 6 + code/modules/nano/modules/crew_monitor.dm | 88 +++++++++++ code/modules/nano/nanomanager.dm | 11 +- code/modules/nano/nanoprocs.dm | 11 ++ code/modules/nano/nanoui.dm | 145 ++++++++++++++---- .../security levels/security levels.dm | 26 ++-- code/modules/shuttles/shuttle_emergency.dm | 4 +- code/modules/shuttles/shuttles_multi.dm | 4 +- code/setup.dm | 8 +- config/example/config.txt | 12 ++ icons/obj/device.dmi | Bin 27223 -> 27805 bytes nano/debug.html | 2 +- paradise.dme | 9 +- sound/misc/notice1.ogg | Bin 0 -> 53513 bytes sound/misc/notice2.ogg | Bin 0 -> 6218 bytes 102 files changed, 882 insertions(+), 563 deletions(-) create mode 100644 code/defines/procs/announce.dm delete mode 100644 code/defines/procs/captain_announce.dm delete mode 100644 code/defines/procs/command_alert.dm create mode 100644 code/game/objects/items/devices/sensor_device.dm delete mode 100644 code/modules/events/tgevents/spider_infestation.dm create mode 100644 code/modules/mob/living/silicon/ai/nano.dm create mode 100644 code/modules/nano/modules/crew_monitor.dm create mode 100644 code/modules/nano/nanoprocs.dm create mode 100644 sound/misc/notice1.ogg create mode 100644 sound/misc/notice2.ogg diff --git a/code/__HELPERS/text.dm b/code/__HELPERS/text.dm index 1553550e362..cb2fad75ddb 100644 --- a/code/__HELPERS/text.dm +++ b/code/__HELPERS/text.dm @@ -82,7 +82,7 @@ // Used to get a sanitized input. /proc/stripped_input(var/mob/user, var/message = "", var/title = "", var/default = "", var/max_length=MAX_MESSAGE_LEN) var/name = input(user, message, title, default) - return strip_html_simple(name, max_length) + return strip_html_properly(name, max_length) //Filters out undesirable characters from names /proc/reject_bad_name(var/t_in, var/allow_numbers=0, var/max_length=MAX_NAME_LEN) @@ -311,4 +311,34 @@ proc/checkhtml(var/t) var/new_text = "" for(var/i = length(text); i > 0; i--) new_text += copytext(text, i, i+1) - return new_text + return new_text + +//This proc strips html properly, but it's not lazy like the other procs. +//This means that it doesn't just remove < and > and call it a day. +//Also limit the size of the input, if specified. +/proc/strip_html_properly(var/input, var/max_length = MAX_MESSAGE_LEN) + if(!input) + return + var/opentag = 1 //These store the position of < and > respectively. + var/closetag = 1 + while(1) + opentag = findtext(input, "<") + closetag = findtext(input, ">") + if(closetag && opentag) + if(closetag < opentag) + input = copytext(input, (closetag + 1)) + else + input = copytext(input, 1, opentag) + copytext(input, (closetag + 1)) + else if(closetag || opentag) + if(opentag) + input = copytext(input, 1, opentag) + else + input = copytext(input, (closetag + 1)) + else + break + if(max_length) + input = copytext(input,1,max_length) + return sanitize(input) + +/proc/trim_strip_html_properly(var/input, var/max_length = MAX_MESSAGE_LEN) + return trim(strip_html_properly(input, max_length)) diff --git a/code/__HELPERS/unsorted.dm b/code/__HELPERS/unsorted.dm index ac841e220df..fec0900cf1b 100644 --- a/code/__HELPERS/unsorted.dm +++ b/code/__HELPERS/unsorted.dm @@ -411,13 +411,7 @@ Turf and target are seperate in case you want to teleport some distance from a t //world << "[newname] is the AI!" //world << sound('sound/AI/newAI.ogg') // Set eyeobj name - if(A.eyeobj) - A.eyeobj.name = "[newname] (AI Eye)" - - // Set ai pda name - if(A.aiPDA) - A.aiPDA.owner = newname - A.aiPDA.name = newname + " (" + A.aiPDA.ownjob + ")" + A.SetName(newname) fully_replace_character_name(oldname,newname) diff --git a/code/_onclick/hud/screen_objects.dm b/code/_onclick/hud/screen_objects.dm index 52b16ad6dcf..1e07b13142a 100644 --- a/code/_onclick/hud/screen_objects.dm +++ b/code/_onclick/hud/screen_objects.dm @@ -503,8 +503,7 @@ if("Crew Monitoring") if(isAI(usr)) var/mob/living/silicon/ai/AI = usr - var/obj/machinery/computer/crew/C = locate(/obj/machinery/computer/crew) - C.attack_ai(AI) + AI.nano_crew_monitor() if("Show Crew Manifest") if(isAI(usr)) diff --git a/code/_onclick/observer.dm b/code/_onclick/observer.dm index 1fd31a5bd18..d8b5617d2a1 100644 --- a/code/_onclick/observer.dm +++ b/code/_onclick/observer.dm @@ -66,7 +66,7 @@ /obj/machinery/teleport/hub/attack_ghost(mob/user as mob) var/atom/l = loc var/obj/machinery/computer/teleporter/com = locate(/obj/machinery/computer/teleporter, locate(l.x - 2, l.y, l.z)) - if(com.locked) + if(com && com.locked) user.loc = get_turf(com.locked) /obj/effect/portal/attack_ghost(mob/user as mob) diff --git a/code/controllers/configuration.dm b/code/controllers/configuration.dm index 5806da2e51a..160137a2e5b 100644 --- a/code/controllers/configuration.dm +++ b/code/controllers/configuration.dm @@ -135,6 +135,11 @@ var/default_laws = 0 //Controls what laws the AI spawns with. + var/list/station_levels = list(1) // Defines which Z-levels the station exists on. + var/list/admin_levels= list(2) // Defines which Z-levels which are for admin functionality, for example including such areas as Central Command and the Syndicate Shuttle + var/list/contact_levels = list(1, 5) // Defines which Z-levels which, for example, a Code Red announcement may affect + var/list/player_levels = list(1, 3, 4, 5, 6) // Defines all Z-levels a character can typically reach + var/const/minutes_to_ticks = 60 * 10 // Event settings var/expected_round_length = 60 * 2 * minutes_to_ticks // 2 hours @@ -458,6 +463,18 @@ if("max_maint_drones") config.max_maint_drones = text2num(value) + if("station_levels") + config.station_levels = text2numlist(value, ";") + + if("admin_levels") + config.admin_levels = text2numlist(value, ";") + + if("contact_levels") + config.contact_levels = text2numlist(value, ";") + + if("player_levels") + config.player_levels = text2numlist(value, ";") + if("expected_round_length") config.expected_round_length = MinutesToTicks(text2num(value)) diff --git a/code/controllers/emergency_shuttle_controller.dm b/code/controllers/emergency_shuttle_controller.dm index 55b325eba3c..83a9d379434 100644 --- a/code/controllers/emergency_shuttle_controller.dm +++ b/code/controllers/emergency_shuttle_controller.dm @@ -18,7 +18,10 @@ var/global/datum/emergency_shuttle_controller/emergency_shuttle var/deny_shuttle = 0 //allows admins to prevent the shuttle from being called var/departed = 0 //if the shuttle has left the station at least once - + + var/datum/announcement/priority/emergency_shuttle_docked = new(0, new_sound = sound('sound/AI/shuttledock.ogg')) + var/datum/announcement/priority/emergency_shuttle_called = new(0, new_sound = sound('sound/AI/shuttlecalled.ogg')) + var/datum/announcement/priority/emergency_shuttle_recalled = new(0, new_sound = sound('sound/AI/shuttlerecalled.ogg')) /datum/emergency_shuttle_controller/proc/process() if (wait_for_launch) @@ -29,7 +32,7 @@ var/global/datum/emergency_shuttle_controller/emergency_shuttle if (!shuttle.location) //leaving from the station if(is_stranded()) - captain_announce("Hostile environment detected. Departure has been postponed indefinitely pending conflict resolution.") + priority_announcement.Announce("Hostile environment detected. Departure has been postponed indefinitely pending conflict resolution.") wait_for_launch = 0 return //launch the pods! @@ -49,10 +52,9 @@ var/global/datum/emergency_shuttle_controller/emergency_shuttle set_launch_countdown(SHUTTLE_LEAVETIME) //get ready to return if (evac) - captain_announce("The Emergency Shuttle has docked with the station. You have approximately [round(estimate_launch_time()/60,1)] minutes to board the Emergency Shuttle.") - world << sound('sound/AI/shuttledock.ogg') + emergency_shuttle_docked.Announce("The Emergency Shuttle has docked with the station. You have approximately [round(estimate_launch_time()/60,1)] minutes to board the Emergency Shuttle.") else - captain_announce("The scheduled Crew Transfer Shuttle has docked with the station. It will depart in approximately [round(emergency_shuttle.estimate_launch_time()/60,1)] minutes.") + priority_announcement.Announce("The scheduled Crew Transfer Shuttle has docked with the station. It will depart in approximately [round(emergency_shuttle.estimate_launch_time()/60,1)] minutes.") //arm the escape pods if (evac) @@ -81,8 +83,7 @@ var/global/datum/emergency_shuttle_controller/emergency_shuttle shuttle.move_time = SHUTTLE_TRANSIT_DURATION evac = 1 - captain_announce("An emergency evacuation shuttle has been called. It will arrive in approximately [round(estimate_arrival_time()/60)] minutes.") - world << sound('sound/AI/shuttlecalled.ogg') + emergency_shuttle_called.Announce("An emergency evacuation shuttle has been called. It will arrive in approximately [round(estimate_arrival_time()/60)] minutes.") for(var/area/A in world) if(istype(A, /area/hallway)) A.readyalert() @@ -101,7 +102,7 @@ var/global/datum/emergency_shuttle_controller/emergency_shuttle //reset the shuttle transit time if we need to shuttle.move_time = SHUTTLE_TRANSIT_DURATION - captain_announce("A crew transfer has been scheduled. The shuttle has been called. It will arrive in approximately [round(estimate_arrival_time()/60)] minutes.") + priority_announcement.Announce("A crew transfer has been scheduled. The shuttle has been called. It will arrive in approximately [round(estimate_arrival_time()/60)] minutes.") //recalls the shuttle /datum/emergency_shuttle_controller/proc/recall() @@ -111,15 +112,14 @@ var/global/datum/emergency_shuttle_controller/emergency_shuttle shuttle.cancel_launch(src) if (evac) - captain_announce("The emergency shuttle has been recalled.") - world << sound('sound/AI/shuttlerecalled.ogg') + emergency_shuttle_recalled.Announce("The emergency shuttle has been recalled.") for(var/area/A in world) if(istype(A, /area/hallway)) A.readyreset() evac = 0 else - captain_announce("The scheduled crew transfer has been cancelled.") + priority_announcement.Announce("The scheduled crew transfer has been cancelled.") /datum/emergency_shuttle_controller/proc/can_call() if (deny_shuttle) diff --git a/code/datums/periodic_news.dm b/code/datums/periodic_news.dm index 976ef536cb4..ffa52bffdc6 100644 --- a/code/datums/periodic_news.dm +++ b/code/datums/periodic_news.dm @@ -8,6 +8,7 @@ author = "Nanotrasen Editor" channel_name = "Tau Ceti Daily" can_be_redacted = 0 + message_type = "Story" revolution_inciting_event @@ -129,12 +130,6 @@ proc/check_for_newscaster_updates(type) proc/announce_newscaster_news(datum/news_announcement/news) - var/datum/feed_message/newMsg = new /datum/feed_message - newMsg.author = news.author - newMsg.is_admin_message = !news.can_be_redacted - - newMsg.body = news.message - var/datum/feed_channel/sendto for(var/datum/feed_channel/FC in news_network.network_channels) if(FC.channel_name == news.channel_name) @@ -148,6 +143,12 @@ proc/announce_newscaster_news(datum/news_announcement/news) sendto.locked = 1 sendto.is_admin_channel = 1 news_network.network_channels += sendto + + var/datum/feed_message/newMsg = new /datum/feed_message + newMsg.author = news.author ? news.author : sendto.author + newMsg.is_admin_message = !news.can_be_redacted + newMsg.body = news.message + newMsg.message_type = news.message_type sendto.messages += newMsg diff --git a/code/defines/procs/announce.dm b/code/defines/procs/announce.dm new file mode 100644 index 00000000000..7cb7799a372 --- /dev/null +++ b/code/defines/procs/announce.dm @@ -0,0 +1,121 @@ +/var/datum/announcement/priority/priority_announcement = new(do_log = 0) +/var/datum/announcement/priority/command/command_announcement = new(do_log = 0, do_newscast = 1) + +/datum/announcement + var/title = "Attention" + var/announcer = "" + var/log = 0 + var/sound + var/newscast = 0 + var/channel_name = "Station Announcements" + var/announcement_type = "Announcement" + var/disable_newscasts = 1 // Bay also adds announcements to their newscaster system - set this to 0 to also use that system + +/datum/announcement/New(var/do_log = 0, var/new_sound = null, var/do_newscast = 0) + sound = new_sound + log = do_log + newscast = do_newscast + +/datum/announcement/priority/New(var/do_log = 1, var/new_sound = sound('sound/misc/notice2.ogg'), var/do_newscast = 0) + ..(do_log, new_sound, do_newscast) + title = "Priority Announcement" + announcement_type = "Priority Announcement" + +/datum/announcement/priority/command/New(var/do_log = 1, var/new_sound = sound('sound/misc/notice2.ogg'), var/do_newscast = 0) + ..(do_log, new_sound, do_newscast) + title = "[command_name()] Update" + announcement_type = "[command_name()] Update" + +/datum/announcement/priority/security/New(var/do_log = 1, var/new_sound = sound('sound/misc/notice2.ogg'), var/do_newscast = 0) + ..(do_log, new_sound, do_newscast) + title = "Security Announcement" + announcement_type = "Security Announcement" + +/datum/announcement/proc/Announce(var/message as text, var/new_title = "", var/new_sound = null, var/do_newscast = newscast) + if(!message) + return + var/tmp/message_title = new_title ? new_title : title + var/tmp/message_sound = new_sound ? sound(new_sound) : sound + + message = trim_strip_html_properly(message) + message_title = html_encode(message_title) + + Message(message, message_title) + if(do_newscast) + NewsCast(message, message_title) + Sound(message_sound) + Log(message, message_title) + +datum/announcement/proc/Message(message as text, message_title as text) + for(var/mob/M in player_list) + if(!istype(M,/mob/new_player) && !isdeaf(M)) + M << "

[title]

" + M << "[message]" + if (announcer) + M << " -[html_encode(announcer)]" + +datum/announcement/minor/Message(message as text, message_title as text) + world << "[message]" + +datum/announcement/priority/Message(message as text, message_title as text) + world << "

[message_title]

" + world << "[message]" + if(announcer) + world << " -[html_encode(announcer)]" + world << "
" + +datum/announcement/priority/command/Message(message as text, message_title as text) + var/command + command += "

[command_name()] Update

" + if (message_title) + command += "

[message_title]

" + + command += "
[message]
" + command += "
" + for(var/mob/M in player_list) + if(!istype(M,/mob/new_player) && !isdeaf(M)) + M << command + +datum/announcement/priority/security/Message(message as text, message_title as text) + world << "[message_title]" + world << "[message]" + +datum/announcement/proc/NewsCast(message as text, message_title as text) + if(disable_newscasts) + return + if(!newscast) + return + + var/datum/news_announcement/news = new + news.channel_name = channel_name + news.author = announcer + news.message = message + news.message_type = announcement_type + news.can_be_redacted = 0 + announce_newscaster_news(news) + +datum/announcement/proc/PlaySound(var/message_sound) + if(!message_sound) + return + for(var/mob/M in player_list) + if(!istype(M,/mob/new_player) && !isdeaf(M)) + M << message_sound + +datum/announcement/proc/Sound(var/message_sound) + PlaySound(message_sound) + +datum/announcement/priority/Sound(var/message_sound) + if(sound) + world << sound + +datum/announcement/priority/command/Sound(var/message_sound) + PlaySound(message_sound) + +datum/announcement/proc/Log(message as text, message_title as text) + if(log) + log_say("[key_name(usr)] has made \a [announcement_type]: [message_title] - [message] - [announcer]") + message_admins("[key_name_admin(usr)] has made \a [announcement_type].", 1) + +/proc/GetNameAndAssignmentFromId(var/obj/item/weapon/card/id/I) + // Format currently matches that of newscaster feeds: Registered Name (Assigned Rank) + return I.assignment ? "[I.registered_name] ([I.assignment])" : I.registered_name diff --git a/code/defines/procs/captain_announce.dm b/code/defines/procs/captain_announce.dm deleted file mode 100644 index 9b91705ea56..00000000000 --- a/code/defines/procs/captain_announce.dm +++ /dev/null @@ -1,5 +0,0 @@ -/proc/captain_announce(var/text) - world << "

Priority Announcement

" - world << "[html_encode(text)]" - world << "
" - diff --git a/code/defines/procs/command_alert.dm b/code/defines/procs/command_alert.dm deleted file mode 100644 index 6545307fa1a..00000000000 --- a/code/defines/procs/command_alert.dm +++ /dev/null @@ -1,11 +0,0 @@ -/proc/command_alert(var/text, var/title = "") - var/command - command += "

[command_name()] Update

" - if (title && length(title) > 0) - command += "

[html_encode(title)]

" - - command += "
[html_encode(text)]
" - command += "
" - for(var/mob/M in player_list) - if(!istype(M,/mob/new_player)) - M << command diff --git a/code/game/gamemodes/blob/blob.dm b/code/game/gamemodes/blob/blob.dm index ccbff9b326d..32fb4496670 100644 --- a/code/game/gamemodes/blob/blob.dm +++ b/code/game/gamemodes/blob/blob.dm @@ -175,14 +175,11 @@ var/list/blob_nodes = list() return if (1) - command_alert("Nanotrasen has issued a directive 7-10 for [station_name()]. The station is to be considered quarantined.", "Biohazard Alert") - for(var/mob/M in player_list) - if(!istype(M,/mob/new_player)) - M << sound('sound/AI/blob_confirmed.ogg') + command_announcement.Announce("Nanotrasen has issued a directive 7-10 for [station_name()]. The station is to be considered quarantined.", "Biohazard Alert", new_sound = 'sound/AI/blob_confirmed.ogg') return if (2) - command_alert("The biohazard has grown out of control and will soon reach critical mass. Activate the nuclear failsafe to maintain quarantine. The Nuclear Authentication Code is [get_nuke_code()] ", "Biohazard Alert") + command_announcement.Announce("The biohazard has grown out of control and will soon reach critical mass. Activate the nuclear failsafe to maintain quarantine. The Nuclear Authentication Code is [get_nuke_code()] ", "Biohazard Alert", new_sound = 'sound/AI/blob_confirmed.ogg') set_security_level("gamma") var/obj/machinery/door/airlock/vault/V = locate(/obj/machinery/door/airlock/vault) in world if(V && V.z == 1) diff --git a/code/game/gamemodes/epidemic/epidemic.dm b/code/game/gamemodes/epidemic/epidemic.dm index b541e9b1b03..e64100e2a12 100644 --- a/code/game/gamemodes/epidemic/epidemic.dm +++ b/code/game/gamemodes/epidemic/epidemic.dm @@ -149,7 +149,7 @@ announce_to_kill_crew() stage = 2 else if(stage == 2 && cruiser_seconds() <= 60 * 5) - command_alert("Inbound cruiser detected on collision course. Scans indicate the ship to be armed and ready to fire. Estimated time of arrival: 5 minutes.", "[station_name()] Early Warning System") + command_announcement.Announce("Inbound cruiser detected on collision course. Scans indicate the ship to be armed and ready to fire. Estimated time of arrival: 5 minutes.", "[station_name()] Early Warning System") stage = 3 else if(stage == 3 && cruiser_seconds() <= 0) crew_lose() diff --git a/code/game/gamemodes/events.dm b/code/game/gamemodes/events.dm index d8002530031..a2563b01a73 100644 --- a/code/game/gamemodes/events.dm +++ b/code/game/gamemodes/events.dm @@ -30,10 +30,7 @@ eventNumbersToPickFrom += 3 switch(pick(eventNumbersToPickFrom)) if(1) - command_alert("Meteors have been detected on collision course with the station.", "Meteor Alert") - for(var/mob/M in player_list) - if(!istype(M,/mob/new_player)) - M << sound('sound/AI/meteors.ogg') + command_announcement.Announce("Meteors have been detected on collision course with the station.", "Meteor Alert", new_sound = 'sound/AI/meteors.ogg') spawn(100) meteor_wave() spawn_meteors() @@ -42,18 +39,14 @@ spawn_meteors() if(2) - command_alert("Gravitational anomalies detected on the station. There is no additional data.", "Anomaly Alert") - for(var/mob/M in player_list) - if(!istype(M,/mob/new_player)) - M << sound('sound/AI/granomalies.ogg') + command_announcement.Announce("Gravitational anomalies detected on the station. There is no additional data.", "Anomaly Alert", new_sound = 'sound/AI/granomalies.ogg') var/turf/T = pick(blobstart) var/obj/effect/bhole/bh = new /obj/effect/bhole( T.loc, 30 ) spawn(rand(50, 300)) del(bh) /* if(3) //Leaving the code in so someone can try and delag it, but this event can no longer occur randomly, per SoS's request. --NEO - command_alert("Space-time anomalies detected on the station. There is no additional data.", "Anomaly Alert") - world << sound('sound/AI/spanomalies.ogg') + command_announcement.Announce("Space-time anomalies detected on the station. There is no additional data.", "Anomaly Alert", new_sound = 'sound/AI/spanomalies.ogg') var/list/turfs = new var/turf/picked for(var/turf/simulated/floor/T in world) @@ -107,8 +100,7 @@ /* /proc/viral_outbreak(var/virus = null) -// command_alert("Confirmed outbreak of level 7 viral biohazard aboard [station_name()]. All personnel must contain the outbreak.", "Biohazard Alert") -// world << sound('sound/AI/outbreak7.ogg') +// command_announcement.Announce("Confirmed outbreak of level 7 viral biohazard aboard [station_name()]. All personnel must contain the outbreak.", "Biohazard Alert", new_sound = 'sound/AI/outbreak7.ogg') var/virus_type if(!virus) virus_type = pick(/datum/disease/dnaspread,/datum/disease/advance/flu,/datum/disease/advance/cold,/datum/disease/brainrot,/datum/disease/magnitis,/datum/disease/pierrot_throat) @@ -167,14 +159,11 @@ H.viruses += D break spawn(rand(1500, 3000)) //Delayed announcements to keep the crew on their toes. - command_alert("Confirmed outbreak of level 7 viral biohazard aboard [station_name()]. All personnel must contain the outbreak.", "Biohazard Alert") - for(var/mob/M in player_list) - M << sound('sound/AI/outbreak7.ogg') + command_announcement.Announce("Confirmed outbreak of level 7 viral biohazard aboard [station_name()]. All personnel must contain the outbreak.", "Biohazard Alert", new_sound = 'sound/AI/outbreak7.ogg') */ /proc/alien_infestation(var/spawncount = 1) // -- TLE - //command_alert("Unidentified lifesigns detected coming aboard [station_name()]. Secure any exterior access, including ducting and ventilation.", "Lifesign Alert") - //world << sound('sound/AI/aliens.ogg') + //command_announcement.Announce("Unidentified lifesigns detected coming aboard [station_name()]. Secure any exterior access, including ducting and ventilation.", "Lifesign Alert", new_sound = 'sound/AI/aliens.ogg') var/list/vents = list() for(var/obj/machinery/atmospherics/unary/vent_pump/temp_vent in machines) if(temp_vent.loc.z == 1 && !temp_vent.welded && temp_vent.network) @@ -197,7 +186,7 @@ spawncount-- spawn(rand(5000, 6000)) //Delayed announcements to keep the crew on their toes. - command_alert("Unidentified lifesigns detected coming aboard [station_name()]. Secure any exterior access, including ducting and ventilation.", "Lifesign Alert") + command_announcement.Announce("Unidentified lifesigns detected coming aboard [station_name()]. Secure any exterior access, including ducting and ventilation.", "Lifesign Alert", new_sound = 'sound/AI/aliens.ogg') for(var/mob/M in player_list) M << sound('sound/AI/aliens.ogg') @@ -217,6 +206,8 @@ if(T.z != 1) continue if(istype(H,/mob/living/carbon/human)) + if(H.species.flags & IS_SYNTHETIC) + return H.apply_effect((rand(15,75)),IRRADIATE,0) if (prob(5)) H.apply_effect((rand(90,150)),IRRADIATE,0) @@ -235,9 +226,7 @@ continue M.apply_effect((rand(15,75)),IRRADIATE,0) sleep(100) - command_alert("High levels of radiation detected near the station. Please report to the Med-bay if you feel strange.", "Anomaly Alert") - for(var/mob/M in player_list) - M << sound('sound/AI/radiation.ogg') + command_announcement.Announce("High levels of radiation detected near the station. Please report to the Med-bay if you feel strange.", "Anomaly Alert", new_sound = 'sound/AI/radiation.ogg') @@ -276,9 +265,9 @@ temp_timer.releasetime = 1 sleep(150) - command_alert("Gr3y.T1d3 virus detected in [station_name()] imprisonment subroutines. Recommend station AI involvement.", "Security Alert") + command_announcement.Announce("Gr3y.T1d3 virus detected in [station_name()] imprisonment subroutines. Recommend station AI involvement.", "Security Alert") else - world.log << "ERROR: Could not initate grey-tide. Unable find prison or brig area." + world.log << "ERROR: Could not initate grey-tide virus. Unable find prison or brig area." /proc/carp_migration() // -- Darem for(var/obj/effect/landmark/C in landmarks_list) @@ -286,13 +275,11 @@ new /mob/living/simple_animal/hostile/carp(C.loc) //sleep(100) spawn(rand(300, 600)) //Delayed announcements to keep the crew on their toes. - command_alert("Unknown biological entities have been detected near [station_name()], please stand-by.", "Lifesign Alert") - for(var/mob/M in player_list) - M << sound('sound/AI/commandreport.ogg') + command_announcement.Announce("Unknown biological entities have been detected near [station_name()], please stand-by.", "Lifesign Alert", new_sound = 'sound/AI/commandreport.ogg') /proc/lightsout(isEvent = 0, lightsoutAmount = 1,lightsoutRange = 25) //leave lightsoutAmount as 0 to break ALL lights if(isEvent) - command_alert("An Electrical storm has been detected in your area, please repair potential electronic overloads.","Electrical Storm Alert") + command_announcement.Announce("An Electrical storm has been detected in your area, please repair potential electronic overloads.","Electrical Storm Alert") if(lightsoutAmount) var/list/epicentreList = list() diff --git a/code/game/gamemodes/events/PortalStorm.dm b/code/game/gamemodes/events/PortalStorm.dm index 890755d6b8e..88e29f29032 100644 --- a/code/game/gamemodes/events/PortalStorm.dm +++ b/code/game/gamemodes/events/PortalStorm.dm @@ -1,7 +1,7 @@ /datum/event/portalstorm Announce() - command_alert("Subspace disruption detected around the vessel", "Anomaly Alert") + command_announcement.Announce("Subspace disruption detected around the vessel", "Anomaly Alert") LongTerm() var/list/turfs = list( ) diff --git a/code/game/gamemodes/events/VirusEpidemic.dm b/code/game/gamemodes/events/VirusEpidemic.dm index 54b9760a2f7..f6e005cef10 100644 --- a/code/game/gamemodes/events/VirusEpidemic.dm +++ b/code/game/gamemodes/events/VirusEpidemic.dm @@ -13,11 +13,11 @@ if(prob(100)) // no lethal diseases outside virus mode! infect_mob_random_lesser(H) if(prob(20))//don't want people to know that the virus alert = greater virus - command_alert("Probable outbreak of level [rand(1,6)] viral biohazard aboard [station_name()]. All personnel must contain the outbreak.", "Virus Alert") + command_announcement.Announce("Probable outbreak of level [rand(1,6)] viral biohazard aboard [station_name()]. All personnel must contain the outbreak.", "Virus Alert") else infect_mob_random_greater(H) if(prob(80)) - command_alert("Probable outbreak of level [rand(2,9)] viral biohazard aboard [station_name()]. All personnel must contain the outbreak.", "Virus Alert") + command_announcement.Announce("Probable outbreak of level [rand(2,9)] viral biohazard aboard [station_name()]. All personnel must contain the outbreak.", "Virus Alert") break //overall virus alert happens 26% of the time, might need to be higher else @@ -73,8 +73,7 @@ H.viruses += D break spawn(rand(3000, 6000)) //Delayed announcements to keep the crew on their toes. - command_alert("Confirmed outbreak of level 7 viral biohazard aboard [station_name()]. All personnel must contain the outbreak.", "Biohazard Alert") - world << sound('sound/AI/outbreak7.ogg') + command_announcement.Announce("Confirmed outbreak of level 7 viral biohazard aboard [station_name()]. All personnel must contain the outbreak.", "Biohazard Alert", new_sound = 'sound/AI/outbreak7.ogg') Tick() ActiveFor = Lifetime //killme diff --git a/code/game/gamemodes/events/clang.dm b/code/game/gamemodes/events/clang.dm index c74da4010e9..3eb1eece271 100644 --- a/code/game/gamemodes/events/clang.dm +++ b/code/game/gamemodes/events/clang.dm @@ -86,4 +86,4 @@ In my current plan for it, 'solid' will be defined as anything with density == 1 for(var/obj/effect/immovablerod/imm in world) return sleep(50) - command_alert("What the fuck was that?!", "General Alert") \ No newline at end of file + command_announcement.Announce("What the fuck was that?!", "General Alert") \ No newline at end of file diff --git a/code/game/gamemodes/events/miniblob.dm b/code/game/gamemodes/events/miniblob.dm index 663dff0f2ed..127e877e96b 100644 --- a/code/game/gamemodes/events/miniblob.dm +++ b/code/game/gamemodes/events/miniblob.dm @@ -12,10 +12,7 @@ spawn(3000) blobevent = 0 spawn(rand(1000, 2000)) //Delayed announcements to keep the crew on their toes. - command_alert("Confirmed outbreak of level 5 biohazard aboard [station_name()]. All personnel must contain the outbreak.", "Biohazard Alert") - for(var/mob/M in player_list) - if(!istype(M,/mob/new_player)) - M << sound('sound/AI/outbreak5.ogg') + command_announcement.Announce("Confirmed outbreak of level 5 biohazard aboard [station_name()]. All personnel must contain the outbreak.", "Biohazard Alert", new_sound = 'sound/AI/outbreak5.ogg') /proc/dotheblobbaby() if (blobevent) diff --git a/code/game/gamemodes/events/power_failure.dm b/code/game/gamemodes/events/power_failure.dm index 141efd60412..202d30b737b 100644 --- a/code/game/gamemodes/events/power_failure.dm +++ b/code/game/gamemodes/events/power_failure.dm @@ -1,9 +1,7 @@ /proc/power_failure(var/announce = 1) if(announce) - command_alert("Abnormal activity detected in [station_name()]'s powernet. As a precautionary measure, the station's power will be shut off for an indeterminate duration.", "Critical Power Failure") - for(var/mob/M in player_list) - M << sound('sound/AI/poweroff.ogg') + command_announcement.Announce("Abnormal activity detected in [station_name()]'s powernet. As a precautionary measure, the station's power will be shut off for an indeterminate duration.", "Critical Power Failure", new_sound = 'sound/AI/poweroff.ogg') var/list/skipped_areas = list(/area/turret_protected/ai) var/list/skipped_areas_apc = list(/area/engine/engineering) @@ -31,9 +29,7 @@ var/list/skipped_areas_apc = list(/area/engine/engineering) if(announce) - command_alert("Power has been restored to [station_name()]. We apologize for the inconvenience.", "Power Systems Nominal") - for(var/mob/M in player_list) - M << sound('sound/AI/poweron.ogg') + command_announcement.Announce("Power has been restored to [station_name()]. We apologize for the inconvenience.", "Power Systems Nominal", new_sound = 'sound/AI/poweron.ogg') for(var/obj/machinery/power/apc/C in machines) var/area/current_area = get_area(C) if(current_area.type in skipped_areas_apc || C.z != 1) @@ -53,9 +49,7 @@ /proc/power_restore_quick(var/announce = 1) if(announce) - command_alert("All SMESs on [station_name()] have been recharged. We apologize for the inconvenience.", "Power Systems Nominal") - for(var/mob/M in player_list) - M << sound('sound/AI/poweron.ogg') + command_announcement.Announce("All SMESs on [station_name()] have been recharged. We apologize for the inconvenience.", "Power Systems Nominal", new_sound = 'sound/AI/poweron.ogg') for(var/obj/machinery/power/smes/S in machines) if(S.z != 1) continue diff --git a/code/game/gamemodes/events/wormholes.dm b/code/game/gamemodes/events/wormholes.dm index 1ef19e24ac7..41604714dde 100644 --- a/code/game/gamemodes/events/wormholes.dm +++ b/code/game/gamemodes/events/wormholes.dm @@ -7,7 +7,7 @@ if(pick_turfs.len) //All ready. Announce that bad juju is afoot. - command_alert("Space-time anomalies detected on the station. There is no additional data.", "Anomaly Alert") + command_announcement.Announce("Space-time anomalies detected on the station. There is no additional data.", "Anomaly Alert") for(var/mob/M in player_list) if(!istype(M,/mob/new_player)) M << sound('sound/AI/spanomalies.ogg') diff --git a/code/game/gamemodes/game_mode.dm b/code/game/gamemodes/game_mode.dm index d23b4ec1958..6ad6d09c1c8 100644 --- a/code/game/gamemodes/game_mode.dm +++ b/code/game/gamemodes/game_mode.dm @@ -323,10 +323,7 @@ Implants; comm.messagetext.Add(intercepttext) /* world << sound('sound/AI/commandreport.ogg') */ - command_alert("Summary downloaded and printed out at all communications consoles.", "Enemy communication intercepted. Security Level Elevated.") - for(var/mob/M in player_list) - if(!istype(M,/mob/new_player)) - M << sound('sound/AI/intercept.ogg') + command_announcement.Announce("Summary downloaded and printed out at all communications consoles.", "Enemy communication intercepted. Security Level Elevated.", new_sound = 'sound/AI/intercept.ogg') if(security_level < SEC_LEVEL_BLUE) set_security_level(SEC_LEVEL_BLUE) diff --git a/code/game/gamemodes/malfunction/malfunction.dm b/code/game/gamemodes/malfunction/malfunction.dm index 856a7421852..8091f775041 100644 --- a/code/game/gamemodes/malfunction/malfunction.dm +++ b/code/game/gamemodes/malfunction/malfunction.dm @@ -172,7 +172,7 @@ if (alert(usr, "Are you sure you wish to initiate the takeover? The station hostile runtime detection software is bound to alert everyone. You have hacked [ticker.mode:apcs] APCs.", "Takeover:", "Yes", "No") != "Yes") return - command_alert("Hostile runtimes detected in all station systems, please deactivate your AI to prevent possible damage to its morality core.", "Anomaly Alert") + command_announcement.Announce("Hostile runtimes detected in all station systems, please deactivate your AI to prevent possible damage to its morality core.", "Anomaly Alert", new_sound = 'sound/AI/aimalf.ogg') set_security_level("delta") for(var/obj/item/weapon/pinpointer/point in world) @@ -184,9 +184,6 @@ ticker.mode:malf_mode_declared = 1 for(var/datum/mind/AI_mind in ticker.mode:malf_ai) AI_mind.current.verbs -= /datum/game_mode/malfunction/proc/takeover - for(var/mob/M in player_list) - if(!istype(M,/mob/new_player)) - M << sound('sound/AI/aimalf.ogg') /datum/game_mode/malfunction/proc/ai_win() diff --git a/code/game/gamemodes/mutiny/emergency_authentication_device.dm b/code/game/gamemodes/mutiny/emergency_authentication_device.dm index 8ddcaf47516..ba7f66345ee 100644 --- a/code/game/gamemodes/mutiny/emergency_authentication_device.dm +++ b/code/game/gamemodes/mutiny/emergency_authentication_device.dm @@ -42,7 +42,7 @@ if(emergency_shuttle.call_evac()) spawn(20 SECONDS) var/text = "[station_name()], we have confirmed your completion of Directive X. An evacuation shuttle is en route to receive your crew for debriefing." - command_alert(text, "Emergency Transmission") + command_announcement.Announce(text, "Emergency Transmission") /obj/machinery/emergency_authentication_device/attack_hand(mob/user) if(activated) diff --git a/code/game/gamemodes/mutiny/mutiny.dm b/code/game/gamemodes/mutiny/mutiny.dm index 50f72b727e2..2068f4ac09d 100644 --- a/code/game/gamemodes/mutiny/mutiny.dm +++ b/code/game/gamemodes/mutiny/mutiny.dm @@ -27,7 +27,7 @@ datum/game_mode/mutiny proc/reveal_directives() spawn(rand(1 MINUTES, 3 MINUTES)) - command_alert("Incoming emergency directive: Captain's office fax machine, [station_name()].","Emergency Transmission") + command_announcement.Announce("Incoming emergency directive: Captain's office fax machine, [station_name()].","Emergency Transmission") spawn(rand(3 MINUTES, 5 MINUTES)) send_pda_message() spawn(rand(3 MINUTES, 5 MINUTES)) @@ -67,7 +67,7 @@ datum/game_mode/mutiny "classified security operations", "science-defying raw elemental chaos" ) - command_alert("The presence of [pick(reasons)] in the region is tying up all available local emergency resources; emergency response teams cannot be called at this time.","Emergency Transmission") + command_announcement.Announce("The presence of [pick(reasons)] in the region is tying up all available local emergency resources; emergency response teams cannot be called at this time.","Emergency Transmission") // Returns an array in case we want to expand on this later. proc/get_head_loyalist_candidates() diff --git a/code/game/gamemodes/nations/nations.dm b/code/game/gamemodes/nations/nations.dm index ec180e07279..afaab542d73 100644 --- a/code/game/gamemodes/nations/nations.dm +++ b/code/game/gamemodes/nations/nations.dm @@ -28,7 +28,7 @@ datum/game_mode/nations return ..() /datum/game_mode/nations/send_intercept() - command_alert("Due to recent and COMPLETELY UNFOUNDED allegations of massive fraud and insider trading \ + command_announcement.Announce("Due to recent and COMPLETELY UNFOUNDED allegations of massive fraud and insider trading \ affecting trillions of investors, the Nanotrasen Corporation has decided to liquidate all \ assets of the Centcom Division in order to pay the massive legal fees that will be incurred \ during the following centuries long court process. Therefore, all current employment contracts \ diff --git a/code/game/gamemodes/xenos/xenos.dm b/code/game/gamemodes/xenos/xenos.dm index 0d4c7f06b1b..261de0b2255 100644 --- a/code/game/gamemodes/xenos/xenos.dm +++ b/code/game/gamemodes/xenos/xenos.dm @@ -200,7 +200,7 @@ else if(playeralienratio >= gammaratio && !gammacalled) gammacalled = 1 - command_alert("The aliens have nearly succeeded in capturing the station and exterminating the crew. Activate the nuclear failsafe to stop the alien threat once and for all. The Nuclear Authentication Code is [get_nuke_code()] ", "Alien Lifeform Alert") + command_announcement.Announce("The aliens have nearly succeeded in capturing the station and exterminating the crew. Activate the nuclear failsafe to stop the alien threat once and for all. The Nuclear Authentication Code is [get_nuke_code()] ", "Alien Lifeform Alert") set_security_level("gamma") var/obj/machinery/door/airlock/vault/V = locate(/obj/machinery/door/airlock/vault) in world if(V && V.z == 1) diff --git a/code/game/jobs/job/supervisor.dm b/code/game/jobs/job/supervisor.dm index 87537e4a571..dc5eea006e1 100644 --- a/code/game/jobs/job/supervisor.dm +++ b/code/game/jobs/job/supervisor.dm @@ -1,3 +1,4 @@ +var/datum/announcement/minor/captain_announcement = new(do_newscast = 1) /datum/job/captain title = "Captain" flag = CAPTAIN @@ -35,7 +36,7 @@ var/obj/item/weapon/implant/loyalty/L = new/obj/item/weapon/implant/loyalty(H) L.imp_in = H L.implanted = 1 - world << "Captain [H.real_name] on deck!" + captain_announcement.Announce("All hands, captain [H.real_name] on deck!") var/datum/organ/external/affected = H.organs_by_name["head"] affected.implants += L L.part = affected diff --git a/code/game/jobs/job_controller.dm b/code/game/jobs/job_controller.dm index 1e7dfe99d5f..f678b3afc1b 100644 --- a/code/game/jobs/job_controller.dm +++ b/code/game/jobs/job_controller.dm @@ -526,6 +526,7 @@ var/global/datum/controller/occupations/job_master var/obj/item/device/pda/pda = locate(/obj/item/device/pda,H) pda.owner = H.real_name pda.ownjob = C.assignment + pda.ownrank = C.rank pda.name = "PDA-[H.real_name] ([pda.ownjob])" return 1 diff --git a/code/game/machinery/computer/communications.dm b/code/game/machinery/computer/communications.dm index 23a085675e5..c8d44e03dbd 100644 --- a/code/game/machinery/computer/communications.dm +++ b/code/game/machinery/computer/communications.dm @@ -55,8 +55,14 @@ var/shuttle_call/shuttle_calls[0] var/stat_msg1 var/stat_msg2 var/display_type="blank" + + var/datum/announcement/priority/crew_announcement = new l_color = "#0000FF" + +/obj/machinery/computer/communications/New() + ..() + crew_announcement.newscast = 1 /obj/machinery/computer/communications/Topic(href, href_list) if(..(href, href_list)) @@ -83,10 +89,12 @@ var/shuttle_call/shuttle_calls[0] if (I && istype(I)) if(src.check_access(I)) authenticated = 1 - if(20 in I.access) + if(access_captain in I.access) authenticated = 2 + crew_announcement.announcer = GetNameAndAssignmentFromId(I) if("logout") authenticated = 0 + crew_announcement.announcer = "" setMenuState(usr,COMM_SCREEN_MAIN) // ALART LAVUL @@ -127,14 +135,14 @@ var/shuttle_call/shuttle_calls[0] usr << "You need to swipe your ID." if("announce") - if(src.authenticated==2 && !issilicon(usr)) - if(message_cooldown) return - var/input = stripped_input(usr, "Please choose a message to announce to the station crew.", "What?") + if(src.authenticated==2) + if(message_cooldown) + usr << "Please allow at least one minute to pass between announcements" + return + var/input = input(usr, "Please write a message to announce to the station crew.", "Priority Announcement") if(!input || !(usr in view(1,src))) return - captain_announce(input)//This should really tell who is, IE HoP, CE, HoS, RD, Captain - log_say("[key_name(usr)] has made a captain announcement: [input]") - message_admins("[key_name_admin(usr)] has made a captain announcement.", 1) + crew_announcement.Announce(input) message_cooldown = 1 spawn(600)//One minute cooldown message_cooldown = 0 @@ -204,7 +212,7 @@ var/shuttle_call/shuttle_calls[0] if(centcomm_message_cooldown) usr << "Arrays recycling. Please stand by." return - var/input = stripped_input(usr, "Please choose a message to transmit to Centcomm via quantum entanglement. Please be aware that this process is very expensive, and abuse will lead to... termination. Transmission does not guarantee a response.", "To abort, send an empty message.", "") + var/input = input(usr, "Please choose a message to transmit to Centcomm via quantum entanglement. Please be aware that this process is very expensive, and abuse will lead to... termination. Transmission does not guarantee a response.", "To abort, send an empty message.", "") if(!input || !(usr in view(1,src))) return Centcomm_announce(input, usr) @@ -398,7 +406,7 @@ var/shuttle_call/shuttle_calls[0] return if(emergency_shuttle.going_to_centcom()) - user << "The shuttle may not be called while returning to CentCom." + user << "The shuttle may not be called while returning to Central Command." return if(emergency_shuttle.online()) @@ -408,11 +416,11 @@ var/shuttle_call/shuttle_calls[0] // if force is 0, some things may stop the shuttle call if(!force) if(emergency_shuttle.deny_shuttle) - user << "Centcom does not currently have a shuttle available in your sector. Please try again later." + user << "Central Command does not currently have a shuttle available in your sector. Please try again later." return if(sent_strike_team == 1) - user << "Centcom will not allow the shuttle to be called. Consider all contracts terminated." + user << "Central Command will not allow the shuttle to be called. Consider all contracts terminated." return if(world.time < 54000) // 30 minute grace period to let the game get going @@ -426,8 +434,6 @@ var/shuttle_call/shuttle_calls[0] emergency_shuttle.call_transfer() log_game("[key_name(user)] has called the shuttle.") message_admins("[key_name_admin(user)] has called the shuttle - [formatJumpTo(user)].", 1) - captain_announce("A crew transfer has been initiated. The shuttle has been called. It will arrive in [round(emergency_shuttle.estimate_arrival_time()/60)] minutes.") - return diff --git a/code/game/machinery/computer/crew.dm b/code/game/machinery/computer/crew.dm index c459b3d1e1a..084eb974688 100644 --- a/code/game/machinery/computer/crew.dm +++ b/code/game/machinery/computer/crew.dm @@ -1,18 +1,15 @@ /obj/machinery/computer/crew - name = "Crew Monitoring Computer" + name = "crew monitoring computer" desc = "Used to monitor active health sensors built into most of the crew's uniforms." icon_state = "crew" use_power = 1 idle_power_usage = 250 active_power_usage = 500 circuit = "/obj/item/weapon/circuitboard/crew" - var/list/tracked = list( ) - - l_color = "#0000FF" - + var/obj/nano_module/crew_monitor/crew_monitor /obj/machinery/computer/crew/New() - tracked = list() + crew_monitor = new(src) ..() @@ -27,6 +24,8 @@ return ui_interact(user) +/obj/machinery/computer/crew/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1) + crew_monitor.ui_interact(user, ui_key, ui, force_open) /obj/machinery/computer/crew/update_icon() @@ -40,100 +39,5 @@ icon_state = initial(icon_state) stat &= ~NOPOWER - -/obj/machinery/computer/crew/Topic(href, href_list) - if(..()) - return 1 - if (src.z > 6) - usr << "\red Unable to establish a connection: \black You're too far away from the station!" - return 0 - if( href_list["close"] ) - var/mob/user = usr - var/datum/nanoui/ui = nanomanager.get_open_ui(user, src, "main") - usr.unset_machine() - ui.close() - return 0 - if(href_list["update"]) - src.updateDialog() - return 1 - /obj/machinery/computer/crew/interact(mob/user) - ui_interact(user) - -/obj/machinery/computer/crew/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1) - if(stat & (BROKEN|NOPOWER)) - return - user.set_machine(src) - src.scan() - - var/data[0] - var/list/crewmembers = list() - - for(var/obj/item/clothing/under/C in src.tracked) - - - var/turf/pos = get_turf(C) - - if((C) && (C.has_sensor) && (pos) && (pos.z == src.z) && C.sensor_mode) - if(istype(C.loc, /mob/living/carbon/human)) - - var/mob/living/carbon/human/H = C.loc - - var/list/crewmemberData = list() - - crewmemberData["sensor_type"] = C.sensor_mode - crewmemberData["dead"] = H.stat > 1 - crewmemberData["oxy"] = round(H.getOxyLoss(), 1) - crewmemberData["tox"] = round(H.getToxLoss(), 1) - crewmemberData["fire"] = round(H.getFireLoss(), 1) - crewmemberData["brute"] = round(H.getBruteLoss(), 1) - - crewmemberData["name"] = "Unknown" - crewmemberData["rank"] = "Unknown" - if(H.wear_id && istype(H.wear_id, /obj/item/weapon/card/id) ) - var/obj/item/weapon/card/id/I = H.wear_id - crewmemberData["name"] = I.name - crewmemberData["rank"] = I.rank - else if(H.wear_id && istype(H.wear_id, /obj/item/device/pda) ) - var/obj/item/device/pda/P = H.wear_id - crewmemberData["name"] = (P.id ? P.id.name : "Unknown") - crewmemberData["rank"] = (P.id ? P.id.rank : "Unknown") - var/area/A = get_area(H) - crewmemberData["area"] = sanitize(A.name) - crewmemberData["x"] = pos.x - crewmemberData["y"] = pos.y - - // Works around list += list2 merging lists; it's not pretty but it works - crewmembers += "temporary item" - crewmembers[crewmembers.len] = crewmemberData - - crewmembers = sortByKey(crewmembers, "name") - - data["crewmembers"] = crewmembers - - ui = nanomanager.try_update_ui(user, src, ui_key, ui, data, force_open) - if(!ui) - ui = new(user, src, ui_key, "crew_monitor.tmpl", "Crew Monitoring Computer", 900, 800) - - // adding a template with the key "mapContent" enables the map ui functionality - ui.add_template("mapContent", "crew_monitor_map_content.tmpl") - // adding a template with the key "mapHeader" replaces the map header content - ui.add_template("mapHeader", "crew_monitor_map_header.tmpl") - - // we want to show the map by default - ui.set_show_map(1) - - ui.set_initial_data(data) - ui.open() - - // should make the UI auto-update; doesn't seem to? - ui.set_auto_update(1) - - -/obj/machinery/computer/crew/proc/scan() - for(var/mob/living/carbon/human/H in mob_list) - if(istype(H.w_uniform, /obj/item/clothing/under)) - var/obj/item/clothing/under/C = H.w_uniform - if (C.has_sensor) - tracked |= C - return 1 + crew_monitor.ui_interact(user) \ No newline at end of file diff --git a/code/game/machinery/newscaster.dm b/code/game/machinery/newscaster.dm index 1c7f8ee64a0..dd0e408fd60 100644 --- a/code/game/machinery/newscaster.dm +++ b/code/game/machinery/newscaster.dm @@ -5,6 +5,7 @@ /datum/feed_message var/author ="" var/body ="" + var/message_type ="Story" //var/parent_channel var/backup_body ="" var/backup_author ="" @@ -39,6 +40,12 @@ src.backup_author = "" src.censored = 0 src.is_admin_channel = 0 + +/datum/feed_channel/proc/announce_news() + return "Breaking news from [channel_name]!" + +/datum/feed_channel/station/announce_news() + return "New Station Announcement Available" /datum/feed_network var/list/datum/feed_channel/network_channels = list() @@ -213,7 +220,7 @@ var/list/obj/machinery/newscaster/allCasters = list() //Global list that will co switch(screen) if(0) dat += {"Welcome to Newscasting Unit #[src.unit_no].
Interface & News networks Operational. -
Property of Nanotransen Inc"} +
Property of Nanotrasen"} if(news_network.wanted_issue) dat+= "
Read Wanted Issue" dat+= {"

Create Feed Channel @@ -248,7 +255,7 @@ var/list/obj/machinery/newscaster/allCasters = list() //Global list that will co dat+="No feed messages found in channel...

" else for(var/datum/feed_message/MESSAGE in CHANNEL.messages) - dat+="-[MESSAGE.body]
\[Story by [MESSAGE.author]\]
"*/ + dat+="-[MESSAGE.body]
\[[MESSAGE.message_type] by [MESSAGE.author]\]
"*/ dat+="

Refresh" dat+="
Back" @@ -334,7 +341,7 @@ var/list/obj/machinery/newscaster/allCasters = list() //Global list that will co if(MESSAGE.img) usr << browse_rsc(MESSAGE.img, "tmp_photo[i].png") dat+="

" - dat+="\[Story by [MESSAGE.author]\]
" + dat+="\[[MESSAGE.message_type] by [MESSAGE.author]\]
" dat+="

Refresh" dat+="
Back" if(10) @@ -369,7 +376,7 @@ var/list/obj/machinery/newscaster/allCasters = list() //Global list that will co dat+="No feed messages found in channel...
" else for(var/datum/feed_message/MESSAGE in src.viewing_channel.messages) - dat+="-[MESSAGE.body]
\[Story by [MESSAGE.author]\]
" + dat+="-[MESSAGE.body]
\[[MESSAGE.message_type] by [MESSAGE.author]\]
" dat+="[(MESSAGE.body == "\[REDACTED\]") ? ("Undo story censorship") : ("Censor story")] - [(MESSAGE.author == "\[REDACTED\]") ? ("Undo Author Censorship") : ("Censor message Author")]
" dat+="
Back" if(13) @@ -383,7 +390,7 @@ var/list/obj/machinery/newscaster/allCasters = list() //Global list that will co dat+="No feed messages found in channel...
" else for(var/datum/feed_message/MESSAGE in src.viewing_channel.messages) - dat+="-[MESSAGE.body]
\[Story by [MESSAGE.author]\]
" + dat+="-[MESSAGE.body]
\[[MESSAGE.message_type] by [MESSAGE.author]\]
" dat+="
Back" if(14) @@ -516,7 +523,7 @@ var/list/obj/machinery/newscaster/allCasters = list() //Global list that will co src.updateUsrDialog() else if(href_list["set_new_message"]) - src.msg = strip_html(input(usr, "Write your Feed story", "Network Channel Handler", "")) + src.msg = strip_html(input(usr, "Write your feed story", "Network Channel Handler", "")) while (findtext(src.msg," ") == 1) src.msg = copytext(src.msg,2,lentext(src.msg)+1) src.updateUsrDialog() @@ -535,13 +542,15 @@ var/list/obj/machinery/newscaster/allCasters = list() //Global list that will co if(photo) newMsg.img = photo.img feedback_inc("newscaster_stories",1) + var/announcement = "" for(var/datum/feed_channel/FC in news_network.network_channels) if(FC.channel_name == src.channel_name) FC.messages += newMsg //Adding message to the network's appropriate feed_channel + announcement = FC.announce_news() break src.screen=4 for(var/obj/machinery/newscaster/NEWSCASTER in allCasters) - NEWSCASTER.newsAlert(src.channel_name) + NEWSCASTER.newsAlert(announcement) src.updateUsrDialog() @@ -986,11 +995,11 @@ obj/item/weapon/newspaper/attackby(obj/item/weapon/W as obj, mob/user as mob) ///obj/machinery/newscaster/process() //Was thinking of doing the icon update through process, but multiple iterations per second does not // return //bode well with a newscaster network of 10+ machines. Let's just return it, as it's added in the machines list. -/obj/machinery/newscaster/proc/newsAlert(channel) //This isn't Agouri's work, for it is ugly and vile. +/obj/machinery/newscaster/proc/newsAlert(var/news_call) //This isn't Agouri's work, for it is ugly and vile. var/turf/T = get_turf(src) //Who the fuck uses spawn(600) anyway, jesus christ - if(channel) + if(news_call) for(var/mob/O in hearers(world.view-1, T)) - O.show_message("[src.name] beeps, \"Breaking news from [channel]!\"",2) + O.show_message("[src.name] beeps, \"[news_call]\"",2) src.alert = 1 src.update_icon() spawn(300) diff --git a/code/game/machinery/requests_console.dm b/code/game/machinery/requests_console.dm index d358e39c67f..16d7b16572e 100644 --- a/code/game/machinery/requests_console.dm +++ b/code/game/machinery/requests_console.dm @@ -55,6 +55,7 @@ var/list/obj/machinery/requests_console/allConsoles = list() var/dpt = ""; //the department which will be receiving the message var/priority = -1 ; //Priority of the message being sent luminosity = 0 + var/datum/announcement/announcement = new /obj/machinery/requests_console/power_change() ..() @@ -70,6 +71,10 @@ var/list/obj/machinery/requests_console/allConsoles = list() /obj/machinery/requests_console/New() ..() + + announcement.title = "[department] announcement" + announcement.newscast = 1 + name = "[department] Requests Console" allConsoles += src //req_console_departments += department @@ -189,7 +194,7 @@ var/list/obj/machinery/requests_console/allConsoles = list() else //main menu screen = 0 - announceAuth = 0 + reset_announce() if (newmessagepriority == 1) dat += text("There are new messages
") if (newmessagepriority == 2) @@ -240,17 +245,13 @@ var/list/obj/machinery/requests_console/allConsoles = list() if("2") priority = 2 else priority = -1 else - message = "" - announceAuth = 0 + reset_announce() screen = 0 if(href_list["sendAnnouncement"]) if(!announcementConsole) return - for(var/mob/M in player_list) - if(!istype(M,/mob/new_player)) - M << "[department] announcement: [message]" - announceAuth = 0 - message = "" + announcement.Announce(message) + reset_announce() screen = 0 if( href_list["department"] && message ) @@ -389,8 +390,9 @@ var/list/obj/machinery/requests_console/allConsoles = list() var/obj/item/weapon/card/id/ID = O if (access_RC_announce in ID.GetAccess()) announceAuth = 1 + announcement.announcer = ID.assignment ? "[ID.assignment] [ID.registered_name]" : ID.registered_name else - announceAuth = 0 + reset_announce() user << "\red You are not authorized to send announcements." updateUsrDialog() if (istype(O, /obj/item/weapon/stamp)) @@ -399,3 +401,8 @@ var/list/obj/machinery/requests_console/allConsoles = list() msgStamped = text("Stamped with the [T.name]") updateUsrDialog() return + +/obj/machinery/requests_console/proc/reset_announce() + announceAuth = 0 + message = "" + announcement.announcer = "" diff --git a/code/game/machinery/slotmachine.dm b/code/game/machinery/slotmachine.dm index d2d93afba2c..54355179c8e 100644 --- a/code/game/machinery/slotmachine.dm +++ b/code/game/machinery/slotmachine.dm @@ -1,3 +1,4 @@ +var/datum/announcement/minor/slotmachine_announcement = new(do_log = 0) /obj/machinery/slot_machine name = "Slot Machine" desc = "Gambling for the antisocial." @@ -55,7 +56,7 @@ if (roll == 1) for(var/mob/O in hearers(src, null)) O.show_message(text("[] says, 'JACKPOT! You win [src.money]!'", src), 1) - command_alert("Congratulations [usr.name] on winning the Jackpot!", "Jackpot Winner") + slotmachine_announcement.Announce("Congratulations [usr.name] on winning the Jackpot!", "Jackpot Winner") usr.mind.initial_account.money += src.money src.money = 0 else if (roll > 1 && roll <= 10) diff --git a/code/game/machinery/vending.dm b/code/game/machinery/vending.dm index 61139498d05..5c97db2693f 100644 --- a/code/game/machinery/vending.dm +++ b/code/game/machinery/vending.dm @@ -885,7 +885,7 @@ /obj/item/weapon/reagent_containers/glass/bottle/stoxin = 4,/obj/item/weapon/reagent_containers/glass/bottle/toxin = 4, /obj/item/weapon/reagent_containers/syringe/antiviral = 4,/obj/item/weapon/reagent_containers/syringe = 12, /obj/item/device/healthanalyzer = 5,/obj/item/weapon/reagent_containers/glass/beaker = 4, /obj/item/weapon/reagent_containers/dropper = 2, - /obj/item/stack/medical/advanced/bruise_pack = 3, /obj/item/stack/medical/advanced/ointment = 3, /obj/item/stack/medical/splint = 2) + /obj/item/stack/medical/advanced/bruise_pack = 3, /obj/item/stack/medical/advanced/ointment = 3, /obj/item/stack/medical/splint = 2, /obj/item/device/sensor_device = 2) contraband = list(/obj/item/weapon/reagent_containers/pill/tox = 3,/obj/item/weapon/reagent_containers/pill/stox = 4,/obj/item/weapon/reagent_containers/pill/antitox = 6) diff --git a/code/game/objects/items/devices/PDA/PDA.dm b/code/game/objects/items/devices/PDA/PDA.dm index 826de6fd4c4..f077fe8d177 100755 --- a/code/game/objects/items/devices/PDA/PDA.dm +++ b/code/game/objects/items/devices/PDA/PDA.dm @@ -51,6 +51,7 @@ var/global/list/obj/item/device/pda/PDAs = list() var/obj/item/weapon/card/id/id = null //Making it possible to slot an ID card into the PDA so it can function as both. var/ownjob = null //related to above + var/ownrank = null // this one is rank, never alt title var/obj/item/device/paicard/pai = null // A slot for a personal AI device @@ -217,9 +218,13 @@ var/global/list/obj/item/device/pda/PDAs = list() detonate = 0 -/obj/item/device/pda/ai/proc/set_name_and_job(newname as text, newjob as text) +/obj/item/device/pda/ai/proc/set_name_and_job(newname as text, newjob as text, newrank as null|text) owner = newname ownjob = newjob + if(newrank) + ownrank = newrank + else + ownrank = ownjob name = newname + " (" + ownjob + ")" @@ -575,6 +580,7 @@ var/global/list/obj/item/device/pda/PDAs = list() id_check(U, 1) if("UpdateInfo") ownjob = id.assignment + ownrank = id.rank name = "PDA-[owner] ([ownjob])" if("Eject")//Ejects the cart, only done from hub. if (!isnull(cartridge)) @@ -1069,6 +1075,7 @@ var/global/list/obj/item/device/pda/PDAs = list() if(!owner) owner = idcard.registered_name ownjob = idcard.assignment + ownrank = idcard.rank name = "PDA-[owner] ([ownjob])" user << "Card scanned." else diff --git a/code/game/objects/items/devices/sensor_device.dm b/code/game/objects/items/devices/sensor_device.dm new file mode 100644 index 00000000000..e32f489696b --- /dev/null +++ b/code/game/objects/items/devices/sensor_device.dm @@ -0,0 +1,18 @@ +/obj/item/device/sensor_device + name = "handheld crew monitor" + desc = "A miniature machine that tracks suit sensors across the station." + icon = 'icons/obj/device.dmi' + icon_state = "scanner" + w_class = 2.0 + slot_flags = SLOT_BELT + origin_tech = "programming=3;materials=3;magnets=3" + var/obj/nano_module/crew_monitor/crew_monitor + +/obj/item/device/sensor_device/New() + crew_monitor = new(src) + +/obj/item/device/sensor_device/attack_self(mob/user as mob) + ui_interact(user) + +/obj/item/device/sensor_device/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1) + crew_monitor.ui_interact(user, ui_key, ui, force_open) \ No newline at end of file diff --git a/code/game/objects/items/weapons/storage/belt.dm b/code/game/objects/items/weapons/storage/belt.dm index 938f9da5e72..fde55afe96a 100644 --- a/code/game/objects/items/weapons/storage/belt.dm +++ b/code/game/objects/items/weapons/storage/belt.dm @@ -95,7 +95,8 @@ "/obj/item/device/flashlight/pen", "/obj/item/clothing/mask/surgical", "/obj/item/clothing/gloves/color/latex", - "/obj/item/weapon/reagent_containers/hypospray/autoinjector" + "/obj/item/weapon/reagent_containers/hypospray/autoinjector", + "/obj/item/device/sensor_device" ) diff --git a/code/game/objects/objs.dm b/code/game/objects/objs.dm index e50de9f2d44..6049d30bd51 100644 --- a/code/game/objects/objs.dm +++ b/code/game/objects/objs.dm @@ -21,11 +21,15 @@ // Reagent ID => friendly name var/list/reagents_to_log=list() -/obj/Topic(href, href_list, var/nowindow = 0) +/obj/Topic(href, href_list, var/nowindow = 0, var/checkrange = 1) // Calling Topic without a corresponding window open causes runtime errors - if(nowindow) - return 0 - return ..() + if(!nowindow && ..()) + return 1 + + if(usr.can_interact_with_interface(nano_host(), checkrange) != STATUS_INTERACTIVE) + return 1 + add_fingerprint(usr) + return 0 /obj/Destroy() machines -= src diff --git a/code/game/objects/structures/crates_lockers/closets/secure/medical.dm b/code/game/objects/structures/crates_lockers/closets/secure/medical.dm index fcd8dafd77f..c223fa99314 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/medical.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/medical.dm @@ -234,4 +234,6 @@ sleep(2) new /obj/item/clothing/suit/space/eva/paramedic(src) new /obj/item/clothing/head/helmet/space/eva/paramedic(src) + new /obj/item/clothing/head/helmet/space/eva/paramedic(src) + new /obj/item/device/sensor_device(src) return \ No newline at end of file diff --git a/code/game/response_team.dm b/code/game/response_team.dm index 3b82543e80a..a576c38295f 100644 --- a/code/game/response_team.dm +++ b/code/game/response_team.dm @@ -142,11 +142,11 @@ proc/trigger_armed_response_team(var/force = 0) // there's only a certain chance a team will be sent if(!prob(send_team_chance)) - command_alert("It would appear that an emergency response team was requested for [station_name()]. Unfortunately, we were unable to send one at this time.", "Central Command") + command_announcement.Announce("It would appear that an emergency response team was requested for [station_name()]. Unfortunately, we were unable to send one at this time.", "Central Command") can_call_ert = 0 // Only one call per round, ladies. return - command_alert("It would appear that an emergency response team was requested for [station_name()]. We will prepare and send one as soon as possible.", "Central Command") + command_announcement.Announce("It would appear that an emergency response team was requested for [station_name()]. We will prepare and send one as soon as possible.", "Central Command") can_call_ert = 0 // Only one call per round, gentleman. send_emergency_team = 1 diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index 7438f54195e..77ddef563fb 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -2103,11 +2103,11 @@ if(gravity_is_on) log_admin("[key_name(usr)] toggled gravity on.", 1) message_admins("\blue [key_name_admin(usr)] toggled gravity on.", 1) - command_alert("Gravity generators are again functioning within normal parameters. Sorry for any inconvenience.") + command_announcement.Announce("Gravity generators are again functioning within normal parameters. Sorry for any inconvenience.") else log_admin("[key_name(usr)] toggled gravity off.", 1) message_admins("\blue [key_name_admin(usr)] toggled gravity off.", 1) - command_alert("Feedback surge detected in mass-distributions systems. Artifical gravity has been disabled whilst the system reinitializes. Further failures may result in a gravitational collapse and formation of blackholes. Have a nice day.") + command_announcement.Announce("Feedback surge detected in mass-distributions systems. Artifical gravity has been disabled whilst the system reinitializes. Further failures may result in a gravitational collapse and formation of blackholes. Have a nice day.") if("wave") feedback_inc("admin_secrets_fun_used",1) feedback_add_details("admin_secrets_fun_used","Meteor") @@ -2595,8 +2595,7 @@ if(W.z == 1 && !istype(get_area(W), /area/bridge) && !istype(get_area(W), /area/crew_quarters) && !istype(get_area(W), /area/security/prison)) W.req_access = list() message_admins("[key_name_admin(usr)] activated Egalitarian Station mode") - command_alert("Centcomm airlock control override activated. Please take this time to get acquainted with your coworkers.") - world << sound('sound/AI/commandreport.ogg') + command_announcement.Announce("Centcomm airlock control override activated. Please take this time to get acquainted with your coworkers.", new_sound = 'sound/AI/commandreport.ogg') if("dorf") feedback_inc("admin_secrets_fun_used",1) feedback_add_details("admin_secrets_fun_used","DF") @@ -2611,8 +2610,7 @@ message_admins("[key_name_admin(usr)] triggered an ion storm") var/show_log = alert(usr, "Show ion message?", "Message", "Yes", "No") if(show_log == "Yes") - command_alert("Ion storm detected near the station. Please check all AI-controlled equipment for errors.", "Anomaly Alert") - world << sound('sound/AI/ionstorm.ogg') + command_announcement.Announce("Ion storm detected near the station. Please check all AI-controlled equipment for errors.", "Anomaly Alert", new_sound = 'sound/AI/ionstorm.ogg') if("carp") feedback_inc("admin_secrets_fun_used",1) feedback_add_details("admin_secrets_fun_used","Crp") diff --git a/code/modules/admin/verbs/randomverbs.dm b/code/modules/admin/verbs/randomverbs.dm index 9b9c26f7a68..43658f3c74c 100644 --- a/code/modules/admin/verbs/randomverbs.dm +++ b/code/modules/admin/verbs/randomverbs.dm @@ -209,8 +209,7 @@ proc/cmd_admin_mute(mob/M as mob, mute_type, automute = 0) var/show_log = alert(src, "Show ion message?", "Message", "Yes", "No") if(show_log == "Yes") - command_alert("Ion storm detected near the station. Please check all AI-controlled equipment for errors.", "Anomaly Alert") - world << sound('sound/AI/ionstorm.ogg') + command_announcement.Announce("Ion storm detected near the station. Please check all AI-controlled equipment for errors.", "Anomaly Alert", new_sound = 'sound/AI/ionstorm.ogg') IonStorm(0) feedback_add_details("admin_verb","ION") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! @@ -642,8 +641,7 @@ Traitors and the like can also be revived with the previous role mostly intact. var/show_log = alert(src, "Show ion message?", "Message", "Yes", "No") if(show_log == "Yes") - command_alert("Ion storm detected near the station. Please check all AI-controlled equipment for errors.", "Anomaly Alert") - world << sound('sound/AI/ionstorm.ogg') + command_announcement.Announce("Ion storm detected near the station. Please check all AI-controlled equipment for errors.", "Anomaly Alert", new_sound = 'sound/AI/ionstorm.ogg') feedback_add_details("admin_verb","IONC") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/cmd_admin_rejuvenate(mob/living/M as mob in mob_list) @@ -686,7 +684,7 @@ Traitors and the like can also be revived with the previous role mostly intact. switch(alert("Should this be announced to the general population?",,"Yes","No")) if("Yes") - command_alert(input, customname); + command_announcement.Announce(input, customname); if("No") world << "\red New Nanotrasen Update available at all communication consoles." diff --git a/code/modules/awaymissions/bluespaceartillery.dm b/code/modules/awaymissions/bluespaceartillery.dm index 06dfa6b5bcf..03509d38ac3 100644 --- a/code/modules/awaymissions/bluespaceartillery.dm +++ b/code/modules/awaymissions/bluespaceartillery.dm @@ -42,7 +42,7 @@ if (usr.stat || usr.restrained()) return if(src.reload < 180) return if ((usr.contents.Find(src) || (in_range(src, usr) && istype(src.loc, /turf))) || (istype(usr, /mob/living/silicon))) - command_alert("Bluespace artillery fire detected. Brace for impact.") + command_announcement.Announce("Bluespace artillery fire detected. Brace for impact.") message_admins("[key_name_admin(usr)] has launched an artillery strike.", 1) var/list/L = list() for(var/turf/T in get_area_turfs(thearea.type)) @@ -55,7 +55,7 @@ var/A A = input("Area to jump bombard", "Open Fire", A) in teleportlocs var/area/thearea = teleportlocs[A] - command_alert("Bluespace artillery fire detected. Brace for impact.") + command_announcement.Announce("Bluespace artillery fire detected. Brace for impact.") spawn(30) var/list/L = list() diff --git a/code/modules/computer3/computers/communications.dm b/code/modules/computer3/computers/communications.dm index 37437fdf6aa..5a32b40643a 100644 --- a/code/modules/computer3/computers/communications.dm +++ b/code/modules/computer3/computers/communications.dm @@ -42,6 +42,12 @@ var/status_display_freq = "1435" var/stat_msg1 var/stat_msg2 + + var/datum/announcement/priority/crew_announcement = new + + New() + ..() + crew_announcement.newscast = 1 Reset() ..() @@ -68,9 +74,11 @@ authenticated = 1 if(access_captain in I.GetAccess()) authenticated = 2 + crew_announcement.announcer = GetNameAndAssignmentFromId(I) if("logout" in href_list) authenticated = 0 + crew_announcement.announcer = "" if("swipeidseclevel" in href_list) var/mob/M = usr @@ -102,13 +110,13 @@ usr << "You need to swipe your ID." if("announce" in href_list) if(authenticated==2) - if(message_cooldown) return - var/input = stripped_input(usr, "Please choose a message to announce to the station crew.", "What?") + if(message_cooldown) + usr << "Please allow at least one minute to pass between announcements" + return + var/input = input(usr, "Please write a message to announce to the station crew.", "Priority Announcement") if(!input || !interactable()) return - captain_announce(input)//This should really tell who is, IE HoP, CE, HoS, RD, Captain - log_say("[key_name(usr)] has made a captain announcement: [input]") - message_admins("[key_name_admin(usr)] has made a captain announcement.", 1) + crew_announcement.Announce(input) message_cooldown = 1 spawn(600)//One minute cooldown message_cooldown = 0 diff --git a/code/modules/economy/Economy.dm b/code/modules/economy/Economy.dm index cf78723a683..b41a080d251 100644 --- a/code/modules/economy/Economy.dm +++ b/code/modules/economy/Economy.dm @@ -67,7 +67,15 @@ var/setup_economy = 0 /proc/setup_economy() if(setup_economy) return + var/datum/feed_channel/newChannel = new /datum/feed_channel + newChannel.channel_name = "Public Station Announcements" + newChannel.author = "Automated Announcement Listing" + newChannel.locked = 1 + newChannel.is_admin_channel = 1 + news_network.network_channels += newChannel + + newChannel = new /datum/feed_channel newChannel.channel_name = "Tau Ceti Daily" newChannel.author = "CentComm Minister of Information" newChannel.locked = 1 diff --git a/code/modules/events/alien_infestation.dm b/code/modules/events/alien_infestation.dm index 13da8de1661..c6601aac260 100644 --- a/code/modules/events/alien_infestation.dm +++ b/code/modules/events/alien_infestation.dm @@ -15,8 +15,7 @@ /datum/event/alien_infestation/announce() if(successSpawn) - command_alert("Unidentified lifesigns detected coming aboard [station_name()]. Secure any exterior access, including ducting and ventilation.", "Lifesign Alert") - world << sound('sound/AI/aliens.ogg') + command_announcement.Announce("Unidentified lifesigns detected coming aboard [station_name()]. Secure any exterior access, including ducting and ventilation.", "Lifesign Alert", new_sound = 'sound/AI/aliens.ogg') /datum/event/alien_infestation/start() diff --git a/code/modules/events/blob.dm b/code/modules/events/blob.dm index 96729f0014c..64d02bfce1f 100644 --- a/code/modules/events/blob.dm +++ b/code/modules/events/blob.dm @@ -7,8 +7,7 @@ /datum/event/blob/announce() - command_alert("Confirmed outbreak of level 7 biohazard aboard [station_name()]. Nanotrasen has issued a directive 7-10. The station is to be considered quarantined.", "Biohazard Alert") - world << sound('sound/AI/blob_confirmed.ogg') + command_announcement.Announce("Confirmed outbreak of level 7 biohazard aboard [station_name()]. Nanotrasen has issued a directive 7-10. The station is to be considered quarantined.", "Biohazard Alert", new_sound = 'sound/AI/blob_confirmed.ogg') for (var/mob/living/silicon/ai/aiPlayer in player_list) if (aiPlayer.client) @@ -42,7 +41,7 @@ if(bomb && bomb.r_code && bomb.z == 1) nukecode = bomb.r_code - command_alert("The biohazard has grown out of control and will soon reach critical mass. Activate the nuclear failsafe to maintain quarantine. The Nuclear Authentication Code is [nukecode] ", "Biohazard Alert") + command_announcement.Announce("The biohazard has grown out of control and will soon reach critical mass. Activate the nuclear failsafe to maintain quarantine. The Nuclear Authentication Code is [nukecode] ", "Biohazard Alert") set_security_level("gamma") var/obj/machinery/door/airlock/vault/V = locate(/obj/machinery/door/airlock/vault) in world @@ -64,7 +63,7 @@ spawn(10) if(Blob || blob_cores.len) return - command_alert("The level 7 biohazard aboard [station_name()] has been eliminated. Directive 7-10 has been lifted, and the station is no longer quarantined.", "Biohazard Update") + command_announcement.Announce("The level 7 biohazard aboard [station_name()] has been eliminated. Directive 7-10 has been lifted, and the station is no longer quarantined.", "Biohazard Update") for (var/mob/living/silicon/ai/aiPlayer in player_list) if (aiPlayer.client) diff --git a/code/modules/events/borers.dm b/code/modules/events/borers.dm index 4f89417c2df..fe7c51fc800 100644 --- a/code/modules/events/borers.dm +++ b/code/modules/events/borers.dm @@ -12,8 +12,7 @@ /datum/event/borer_infestation/announce() if(successSpawn) - command_alert("Unidentified lifesigns detected coming aboard [station_name()]. Secure any exterior access, including ducting and ventilation.", "Lifesign Alert") - world << sound('sound/AI/aliens.ogg') + command_announcement.Announce("Unidentified lifesigns detected coming aboard [station_name()]. Secure any exterior access, including ducting and ventilation.", "Lifesign Alert", new_sound = 'sound/AI/aliens.ogg') /datum/event/borer_infestation/start() var/list/vents = list() diff --git a/code/modules/events/brand_intelligence.dm b/code/modules/events/brand_intelligence.dm index a2436f2ac75..7bf1bada95b 100644 --- a/code/modules/events/brand_intelligence.dm +++ b/code/modules/events/brand_intelligence.dm @@ -8,7 +8,7 @@ var/obj/machinery/vending/originMachine /datum/event/brand_intelligence/announce() - command_alert("Rampant brand intelligence has been detected aboard [station_name()], please stand-by.", "Machine Learning Alert") + command_announcement.Announce("Rampant brand intelligence has been detected aboard [station_name()], please stand-by.", "Machine Learning Alert") /datum/event/brand_intelligence/start() for(var/obj/machinery/vending/V in machines) diff --git a/code/modules/events/cargobonus.dm b/code/modules/events/cargobonus.dm index f0c84b86f54..fb1a3ac277e 100644 --- a/code/modules/events/cargobonus.dm +++ b/code/modules/events/cargobonus.dm @@ -2,7 +2,7 @@ announceWhen = 5 /datum/event/cargo_bonus/announce() - command_alert("Congratulations! [station_name()] was chosen for supply limit increase, please contact local cargo department for details!", "Supply Alert") + command_announcement.Announce("Congratulations! [station_name()] was chosen for supply limit increase, please contact local cargo department for details!", "Supply Alert") /datum/event/cargo_bonus/start() supply_controller.points+=rand(100,500) \ No newline at end of file diff --git a/code/modules/events/carp_migration.dm b/code/modules/events/carp_migration.dm index 7cf82ff1f67..303f5686e8e 100644 --- a/code/modules/events/carp_migration.dm +++ b/code/modules/events/carp_migration.dm @@ -8,7 +8,7 @@ endWhen = rand(600,1200) /datum/event/carp_migration/announce() - command_alert("Unknown biological entities have been detected near [station_name()], please stand-by.", "Lifesign Alert") + command_announcement.Announce("Unknown biological entities have been detected near [station_name()], please stand-by.", "Lifesign Alert") /datum/event/carp_migration/start() for(var/obj/effect/landmark/C in landmarks_list) diff --git a/code/modules/events/comms_blackout.dm b/code/modules/events/comms_blackout.dm index 2f5cbea97b3..6b948538d5d 100644 --- a/code/modules/events/comms_blackout.dm +++ b/code/modules/events/comms_blackout.dm @@ -1,6 +1,6 @@ /proc/communications_blackout(var/silent = 1) if(!silent) - command_alert("Ionospheric anomalies detected. Temporary telecommunication failure imminent. Please contact you-BZZT") + command_announcement.Announce("Ionospheric anomalies detected. Temporary telecommunication failure imminent. Please contact you-BZZT") else // AIs will always know if there's a comm blackout, rogue AIs could then lie about comm blackouts in the future while they shutdown comms for(var/mob/living/silicon/ai/A in player_list) A << "
" diff --git a/code/modules/events/communications_blackout.dm b/code/modules/events/communications_blackout.dm index d437d85684e..d39517f5343 100644 --- a/code/modules/events/communications_blackout.dm +++ b/code/modules/events/communications_blackout.dm @@ -12,7 +12,7 @@ A << "
" if(prob(30)) //most of the time, we don't want an announcement, so as to allow AIs to fake blackouts. - command_alert(alert) + command_announcement.Announce(alert) /datum/event/communications_blackout/start() for(var/obj/machinery/telecomms/T in telecomms_list) diff --git a/code/modules/events/disease_outbreak.dm b/code/modules/events/disease_outbreak.dm index a12aa2147c5..082791999a3 100644 --- a/code/modules/events/disease_outbreak.dm +++ b/code/modules/events/disease_outbreak.dm @@ -3,8 +3,7 @@ oneShot = 1 /datum/event/disease_outbreak/announce() - command_alert("Confirmed outbreak of level 7 viral biohazard aboard [station_name()]. All personnel must contain the outbreak.", "Biohazard Alert") - world << sound('sound/AI/outbreak7.ogg') + command_announcement.Announce("Confirmed outbreak of level 7 viral biohazard aboard [station_name()]. All personnel must contain the outbreak.", "Biohazard Alert", new_sound = 'sound/AI/outbreak7.ogg') /datum/event/disease_outbreak/setup() announceWhen = rand(15, 30) diff --git a/code/modules/events/electrical_storm.dm b/code/modules/events/electrical_storm.dm index 2b9b989e5e9..a8254d02c7a 100644 --- a/code/modules/events/electrical_storm.dm +++ b/code/modules/events/electrical_storm.dm @@ -3,7 +3,7 @@ var/lightsoutRange = 25 /datum/event/electrical_storm/announce() - command_alert("An electrical storm has been detected in your area, please repair potential electronic overloads.", "Electrical Storm Alert") + command_announcement.Announce("An electrical storm has been detected in your area, please repair potential electronic overloads.", "Electrical Storm Alert") /datum/event/electrical_storm/start() var/list/epicentreList = list() diff --git a/code/modules/events/event_container.dm b/code/modules/events/event_container.dm index 622e62b5172..8fe305f774a 100644 --- a/code/modules/events/event_container.dm +++ b/code/modules/events/event_container.dm @@ -145,9 +145,9 @@ var/global/list/severity_to_string = list(EVENT_LEVEL_MUNDANE = "Mundane", EVENT new /datum/event_meta(EVENT_LEVEL_MODERATE, "Nothing", /datum/event/nothing, 1230), new /datum/event_meta(EVENT_LEVEL_MODERATE, "Carp School", /datum/event/carp_migration, 100, list(ASSIGNMENT_ENGINEER = 10, ASSIGNMENT_SECURITY = 20), 1), new /datum/event_meta(EVENT_LEVEL_MODERATE, "Rogue Drones", /datum/event/rogue_drone, 20, list(ASSIGNMENT_SECURITY = 20)), - new /datum/event_meta(EVENT_LEVEL_MODERATE, "Space vines", /datum/event/spacevine, 200, list(ASSIGNMENT_ENGINEER = 10)), + new /datum/event_meta(EVENT_LEVEL_MODERATE, "Space Vines", /datum/event/spacevine, 200, list(ASSIGNMENT_ENGINEER = 10)), new /datum/event_meta(EVENT_LEVEL_MODERATE, "Meteor Shower", /datum/event/meteor_shower, 0, list(ASSIGNMENT_ENGINEER = 20)), - new /datum/event_meta(EVENT_LEVEL_MODERATE, "Meaty Ores", /datum/event/dust/meaty, 0, list(ASSIGNMENT_ENGINEER = 20)), + new /datum/event_meta(EVENT_LEVEL_MODERATE, "Meaty Ores", /datum/event/dust/meaty, 0, list(ASSIGNMENT_ENGINEER = 30)), new /datum/event_meta(EVENT_LEVEL_MODERATE, "Communication Blackout", /datum/event/communications_blackout, 500, list(ASSIGNMENT_AI = 150, ASSIGNMENT_SECURITY = 120)), new /datum/event_meta(EVENT_LEVEL_MODERATE, "Prison Break", /datum/event/prison_break, 0, list(ASSIGNMENT_SECURITY = 100)), // new /datum/event_meta(EVENT_LEVEL_MODERATE, "Grid Check", /datum/event/grid_check, 200, list(ASSIGNMENT_ENGINEER = 60)), @@ -156,18 +156,18 @@ var/global/list/severity_to_string = list(EVENT_LEVEL_MUNDANE = "Mundane", EVENT new /datum/event_meta(EVENT_LEVEL_MODERATE, "Viral Infection", /datum/event/viral_infection, 0, list(ASSIGNMENT_MEDICAL = 150)), new /datum/event_meta(EVENT_LEVEL_MODERATE, "Spider Infestation", /datum/event/spider_infestation, 100, list(ASSIGNMENT_SECURITY = 30), 1), new /datum/event_meta(EVENT_LEVEL_MODERATE, "Ion Storm", /datum/event/ionstorm, 0, list(ASSIGNMENT_AI = 50, ASSIGNMENT_CYBORG = 50, ASSIGNMENT_ENGINEER = 15, ASSIGNMENT_SCIENTIST = 5)), - new /datum/event_meta/alien(EVENT_LEVEL_MODERATE, "Alien Infestation", /datum/event/alien_infestation, 2.5, list(ASSIGNMENT_SECURITY = 1), 1, 0, 5), - new /datum/event_meta/ninja(EVENT_LEVEL_MODERATE, "Space Ninja", /datum/event/space_ninja, 0, list(ASSIGNMENT_SECURITY = 1), 1, 0, 5), + new /datum/event_meta/alien(EVENT_LEVEL_MODERATE, "Alien Infestation", /datum/event/alien_infestation, 0, list(ASSIGNMENT_SECURITY = 20), 1), + new /datum/event_meta/ninja(EVENT_LEVEL_MODERATE, "Space Ninja", /datum/event/space_ninja, 0, list(ASSIGNMENT_SECURITY = 15), 1), // NON-BAY EVENTS - new /datum/event_meta(EVENT_LEVEL_MODERATE, "Space Dust", /datum/event/dust, 50, list(ASSIGNMENT_ENGINEER = 50)), + new /datum/event_meta(EVENT_LEVEL_MODERATE, "Space Dust", /datum/event/dust, 50, list(ASSIGNMENT_ENGINEER = 50)), new /datum/event_meta(EVENT_LEVEL_MODERATE, "Dimensional Tear", /datum/event/tear, 0, list(ASSIGNMENT_SECURITY = 25)), + new /datum/event_meta(EVENT_LEVEL_MODERATE, "Vent Clog", /datum/event/vent_clog, 250), new /datum/event_meta(EVENT_LEVEL_MODERATE, "Wormholes", /datum/event/wormholes, 150), - - new /datum/event_meta(EVENT_LEVEL_MODERATE, "Pyro Anomaly", /datum/event/anomaly/anomaly_pyro, 100, list(ASSIGNMENT_ENGINEER = 60)), - new /datum/event_meta(EVENT_LEVEL_MODERATE, "Vortex Anomaly", /datum/event/anomaly/anomaly_vortex, 50, list(ASSIGNMENT_ENGINEER = 25)), - new /datum/event_meta(EVENT_LEVEL_MODERATE, "Bluespace Anomaly", /datum/event/anomaly/anomaly_bluespace, 50, list(ASSIGNMENT_ENGINEER = 25)), - new /datum/event_meta(EVENT_LEVEL_MODERATE, "Flux Anomaly", /datum/event/anomaly/anomaly_flux, 50, list(ASSIGNMENT_ENGINEER = 50)), - new /datum/event_meta(EVENT_LEVEL_MODERATE, "Gravitational Anomaly", /datum/event/anomaly/anomaly_grav, 200), +// new /datum/event_meta(EVENT_LEVEL_MODERATE, "Pyro Anomaly", /datum/event/anomaly/anomaly_pyro, 100, list(ASSIGNMENT_ENGINEER = 60)), + new /datum/event_meta(EVENT_LEVEL_MODERATE, "Vortex Anomaly", /datum/event/anomaly/anomaly_vortex, 50, list(ASSIGNMENT_ENGINEER = 25)), + new /datum/event_meta(EVENT_LEVEL_MODERATE, "Bluespace Anomaly", /datum/event/anomaly/anomaly_bluespace, 50, list(ASSIGNMENT_ENGINEER = 25)), + new /datum/event_meta(EVENT_LEVEL_MODERATE, "Flux Anomaly", /datum/event/anomaly/anomaly_flux, 50, list(ASSIGNMENT_ENGINEER = 50)), + new /datum/event_meta(EVENT_LEVEL_MODERATE, "Gravitational Anomaly", /datum/event/anomaly/anomaly_grav, 200), ) /datum/event_container/major diff --git a/code/modules/events/event_dynamic.dm b/code/modules/events/event_dynamic.dm index df494ddc245..1dd1956c7ab 100644 --- a/code/modules/events/event_dynamic.dm +++ b/code/modules/events/event_dynamic.dm @@ -79,7 +79,7 @@ var/global/list/possibleEvents = list() if(!spacevines_spawned) possibleEvents[/datum/event/spacevine] = 10 + 5 * active_with_role["Engineer"] if(minutes_passed >= 30) // Give engineers time to set up engine - possibleEvents[/datum/event/anomaly/anomaly_pyro] = 100 + 60 * active_with_role["Engineer"] +// possibleEvents[/datum/event/anomaly/anomaly_pyro] = 100 + 60 * active_with_role["Engineer"] possibleEvents[/datum/event/anomaly/anomaly_vortex] = 50 + 25 * active_with_role["Engineer"] possibleEvents[/datum/event/anomaly/anomaly_bluespace] = 50 + 25 * active_with_role["Engineer"] possibleEvents[/datum/event/anomaly/anomaly_flux] = 50 + 50 * active_with_role["Engineer"] @@ -152,10 +152,7 @@ var/global/list/possibleEvents = list() /*switch(picked_event) if("Meteor") - command_alert("Meteors have been detected on collision course with the station.", "Meteor Alert") - for(var/mob/M in player_list) - if(!istype(M,/mob/new_player)) - M << sound('sound/AI/meteors.ogg') + command_announcement.Announce("Meteors have been detected on collision course with the station.", "Meteor Alert", new_sound = 'sound/AI/meteors.ogg') spawn(100) meteor_wave(10) spawn_meteors() diff --git a/code/modules/events/grid_check.dm b/code/modules/events/grid_check.dm index 71d78d96e4a..c485827efbc 100644 --- a/code/modules/events/grid_check.dm +++ b/code/modules/events/grid_check.dm @@ -8,9 +8,7 @@ power_failure(0) /datum/event/grid_check/announce() - command_alert("Abnormal activity detected in [station_name()]'s powernet. As a precautionary measure, the station's power will be shut off for an indeterminate duration.", "Automated Grid Check") - for(var/mob/M in player_list) - M << sound('sound/AI/poweroff.ogg') + command_announcement.Announce("Abnormal activity detected in [station_name()]'s powernet. As a precautionary measure, the station's power will be shut off for an indeterminate duration.", "Automated Grid Check", new_sound = 'sound/AI/poweroff.ogg') /datum/event/grid_check/end() power_restore() diff --git a/code/modules/events/infestation.dm b/code/modules/events/infestation.dm index 8971db74853..444da4675ef 100644 --- a/code/modules/events/infestation.dm +++ b/code/modules/events/infestation.dm @@ -102,7 +102,7 @@ /datum/event/infestation/announce() - command_alert("Bioscans indicate that [vermstring] have been breeding in [locstring]. Clear them out, before this starts to affect productivity.", "Lifesign Alert") + command_announcement.Announce("Bioscans indicate that [vermstring] have been breeding in [locstring]. Clear them out, before this starts to affect productivity.", "Lifesign Alert") #undef LOC_KITCHEN #undef LOC_ATMOS diff --git a/code/modules/events/ion_storm.dm b/code/modules/events/ion_storm.dm index 7f66a4366a9..2f7703764eb 100644 --- a/code/modules/events/ion_storm.dm +++ b/code/modules/events/ion_storm.dm @@ -6,7 +6,7 @@ /datum/event/ionstorm/announce() endWhen = rand(500, 1500) -// command_alert("The station has entered an ion storm. Monitor all electronic equipment for malfunctions", "Anomaly Alert") +// command_announcement.Announce("The station has entered an ion storm. Monitor all electronic equipment for malfunctions", "Anomaly Alert") for (var/mob/living/carbon/human/player in world) if(player.client) players += player.real_name @@ -86,7 +86,7 @@ /datum/event/ionstorm/end() spawn(rand(5000,8000)) if(prob(50)) - command_alert("It has come to our attention that the station passed through an ion storm. Please monitor all electronic equipment for malfunctions.", "Anomaly Alert") + command_announcement.Announce("It has come to our attention that the station passed through an ion storm. Please monitor all electronic equipment for malfunctions.", "Anomaly Alert") /* /proc/IonStorm(botEmagChance = 10) diff --git a/code/modules/events/mass_hallucination.dm b/code/modules/events/mass_hallucination.dm index 571a9ae7d1f..b3fbea5343c 100644 --- a/code/modules/events/mass_hallucination.dm +++ b/code/modules/events/mass_hallucination.dm @@ -3,4 +3,4 @@ if(!(C.species.flags & IS_SYNTHETIC)) C.hallucination += rand(50, 100) /datum/event/mass_hallucination/announce() - command_alert("It seems that station [station_name()] is passing through a minor radiation field, this may cause some hallucination, but no further damage") \ No newline at end of file + command_announcement.Announce("It seems that station [station_name()] is passing through a minor radiation field, this may cause some hallucination, but no further damage") \ No newline at end of file diff --git a/code/modules/events/meteors.dm b/code/modules/events/meteors.dm index 0f74d65b7d9..42b0b1eda1d 100644 --- a/code/modules/events/meteors.dm +++ b/code/modules/events/meteors.dm @@ -9,15 +9,14 @@ endWhen = rand(10,25) * 3 /datum/event/meteor_wave/announce() - command_alert("Meteors have been detected on collision course with the station.", "Meteor Alert") - world << sound('sound/AI/meteors.ogg') - + command_announcement.Announce("Meteors have been detected on collision course with the station.", "Meteor Alert", new_sound = 'sound/AI/meteors.ogg') + /datum/event/meteor_wave/tick() if(IsMultiple(activeFor, 3)) spawn_meteors(rand(2,5)) /datum/event/meteor_wave/end() - command_alert("The station has cleared the meteor storm.", "Meteor Alert") + command_announcement.Announce("The station has cleared the meteor storm.", "Meteor Alert") // /datum/event/meteor_shower @@ -30,7 +29,7 @@ waves = rand(1,4) /datum/event/meteor_shower/announce() - command_alert("The station is now in a meteor shower.", "Meteor Alert") + command_announcement.Announce("The station is now in a meteor shower.", "Meteor Alert") //meteor showers are lighter and more common, /datum/event/meteor_shower/tick() @@ -44,4 +43,4 @@ endWhen = next_meteor + 1 /datum/event/meteor_shower/end() - command_alert("The station has cleared the meteor shower", "Meteor Alert") + command_announcement.Announce("The station has cleared the meteor shower", "Meteor Alert") diff --git a/code/modules/events/prison_break.dm b/code/modules/events/prison_break.dm index 87135bda526..676661f2b7e 100644 --- a/code/modules/events/prison_break.dm +++ b/code/modules/events/prison_break.dm @@ -15,7 +15,7 @@ /datum/event/prison_break/announce() if(prisonAreas && prisonAreas.len > 0) - command_alert("[pick("Gr3y.T1d3 virus","Malignant trojan")] detected in [station_name()] imprisonment subroutines. Recommend station AI involvement.", "Security Alert") + command_announcement.Announce("[pick("Gr3y.T1d3 virus","Malignant trojan")] detected in [station_name()] imprisonment subroutines. Recommend station AI involvement.", "Security Alert") else world.log << "ERROR: Could not initate grey-tide. Unable find prison or brig area." kill() @@ -30,7 +30,7 @@ /datum/event/prison_break/announce() if(prisonAreas && prisonAreas.len > 0) - command_alert("[pick("Gr3y.T1d3 virus","Malignant trojan")] detected in [station_name()] imprisonment subroutines. Recommend station AI involvement.", "Security Alert") + command_announcement.Announce("[pick("Gr3y.T1d3 virus","Malignant trojan")] detected in [station_name()] imprisonment subroutines. Recommend station AI involvement.", "Security Alert") else world.log << "ERROR: Could not initate grey-tide. Unable find prison or brig area." kill() diff --git a/code/modules/events/radiation_storm.dm b/code/modules/events/radiation_storm.dm index 58b5f60c2cc..5f57115cc11 100644 --- a/code/modules/events/radiation_storm.dm +++ b/code/modules/events/radiation_storm.dm @@ -22,8 +22,7 @@ /datum/event/radiation_storm/start() spawn() - world << sound('sound/AI/radiation.ogg') - command_alert("High levels of radiation detected near the station. Please evacuate into one of the shielded maintenance tunnels.", "Anomaly Alert") + command_announcement.Announce("High levels of radiation detected near the station. Please evacuate into one of the shielded maintenance tunnels.", "Anomaly Alert", new_sound = 'sound/AI/radiation.ogg') for(var/area/A in world) if(A.z != 1 || is_safe_zone(A)) @@ -36,7 +35,7 @@ sleep(600) - command_alert("The station has entered the radiation belt. Please remain in a sheltered area until we have passed the radiation belt.", "Anomaly Alert") + command_announcement.Announce("The station has entered the radiation belt. Please remain in a sheltered area until we have passed the radiation belt.", "Anomaly Alert") for(var/i = 0, i < 10, i++) for(var/mob/living/carbon/human/H in living_mob_list) @@ -70,7 +69,7 @@ sleep(100) - command_alert("The station has passed the radiation belt. Please report to medbay if you experience any unusual symptoms. Maintenance will lose all access again shortly.", "Anomaly Alert") + command_announcement.Announce("The station has passed the radiation belt. Please report to medbay if you experience any unusual symptoms. Maintenance will lose all access again shortly.", "Anomaly Alert") for(var/area/A in world) if(A.z != 1 || is_safe_zone(A)) diff --git a/code/modules/events/rogue_drones.dm b/code/modules/events/rogue_drones.dm index d3ccaa4d89a..d96c80f60f8 100644 --- a/code/modules/events/rogue_drones.dm +++ b/code/modules/events/rogue_drones.dm @@ -30,7 +30,7 @@ msg = "Contact has been lost with a combat drone wing operating out of the NMV Icarus. If any are sighted in the area, approach with caution." else msg = "Unidentified hackers have targetted a combat drone wing deployed from the NMV Icarus. If any are sighted in the area, approach with caution." - command_alert(msg, "Rogue drone alert") + command_announcement.Announce(msg, "Rogue drone alert") /datum/event/rogue_drone/tick() @@ -49,6 +49,6 @@ num_recovered++ if(num_recovered > drones_list.len * 0.75) - command_alert("Icarus drone control reports the malfunctioning wing has been recovered safely.", "Rogue drone alert") + command_announcement.Announce("Icarus drone control reports the malfunctioning wing has been recovered safely.", "Rogue drone alert") else - command_alert("Icarus drone control registers disappointment at the loss of the drones, but the survivors have been recovered.", "Rogue drone alert") + command_announcement.Announce("Icarus drone control registers disappointment at the loss of the drones, but the survivors have been recovered.", "Rogue drone alert") diff --git a/code/modules/events/sayuevents/meaty_ores.dm b/code/modules/events/sayuevents/meaty_ores.dm index a44708693ef..d6e640934d9 100644 --- a/code/modules/events/sayuevents/meaty_ores.dm +++ b/code/modules/events/sayuevents/meaty_ores.dm @@ -1,9 +1,8 @@ /datum/event/dust/meaty/announce() if(prob(16)) - command_alert("Unknown biological entities have been detected near [station_name()], please stand-by.", "Lifesign Alert") + command_announcement.Announce("Unknown biological entities have been detected near [station_name()], please stand-by.", "Lifesign Alert") else - command_alert("Meaty ores have been detected on collision course with the station.", "Meaty Ore Alert") - world << sound('sound/AI/meteors.ogg') + command_announcement.Announce("Meaty ores have been detected on collision course with the station.", "Meaty Ore Alert",new_sound = 'sound/AI/meteors.ogg') /datum/event/dust/meaty/setup() qnty = rand(45,125) diff --git a/code/modules/events/sayuevents/wormholes.dm b/code/modules/events/sayuevents/wormholes.dm index e120d11630d..2755768ca79 100644 --- a/code/modules/events/sayuevents/wormholes.dm +++ b/code/modules/events/sayuevents/wormholes.dm @@ -21,10 +21,7 @@ wormholes += new /obj/effect/portal/wormhole(T, null, null, -1) /datum/event/wormholes/announce() - command_alert("Space-time anomalies detected on the station. There is no additional data.", "Anomaly Alert") - for(var/mob/M in player_list) - if(!istype(M, /mob/new_player)) - M << sound('sound/AI/spanomalies.ogg') + command_announcement.Announce("Space-time anomalies detected on the station. There is no additional data.", "Anomaly Alert", new_sound = 'sound/AI/spanomalies.ogg') /datum/event/wormholes/tick() if(activeFor % shift_frequency == 0) diff --git a/code/modules/events/spider_infestation.dm b/code/modules/events/spider_infestation.dm index 7a953d3fd40..43ee40fe1d7 100644 --- a/code/modules/events/spider_infestation.dm +++ b/code/modules/events/spider_infestation.dm @@ -12,9 +12,7 @@ sent_spiders_to_station = 1 /datum/event/spider_infestation/announce() - command_alert("Unidentified lifesigns detected coming aboard [station_name()]. Secure any exterior access, including ducting and ventilation.", "Lifesign Alert") - world << sound('sound/AI/aliens.ogg') - + command_announcement.Announce("Unidentified lifesigns detected coming aboard [station_name()]. Secure any exterior access, including ducting and ventilation.", "Lifesign Alert", new_sound = 'sound/AI/aliens.ogg') /datum/event/spider_infestation/start() diff --git a/code/modules/events/tear.dm b/code/modules/events/tear.dm index d5d572c3b6a..a11455b351d 100644 --- a/code/modules/events/tear.dm +++ b/code/modules/events/tear.dm @@ -5,7 +5,7 @@ var/obj/effect/tear/TE /datum/event/tear/announce() - command_alert("A tear in the fabric of space and time has opened. Expected location: [impact_area.name].", "Anomaly Alert") + command_announcement.Announce("A tear in the fabric of space and time has opened. Expected location: [impact_area.name].", "Anomaly Alert") /datum/event/tear/start() diff --git a/code/modules/events/tgevents/anomaly.dm b/code/modules/events/tgevents/anomaly.dm index 7ab1f25c9ca..a1f951f5747 100644 --- a/code/modules/events/tgevents/anomaly.dm +++ b/code/modules/events/tgevents/anomaly.dm @@ -15,7 +15,7 @@ setup(safety_loop) /datum/event/anomaly/announce() - command_alert("Localized hyper-energetic flux wave detected on long range scanners. Expected location of impact: [impact_area.name].", "Anomaly Alert") + command_announcement.Announce("Localized hyper-energetic flux wave detected on long range scanners. Expected location of impact: [impact_area.name].", "Anomaly Alert") /datum/event/anomaly/start() var/turf/T = pick(get_area_turfs(impact_area)) diff --git a/code/modules/events/tgevents/anomaly_bluespace.dm b/code/modules/events/tgevents/anomaly_bluespace.dm index 224f6f0e2de..9a36ca226c5 100644 --- a/code/modules/events/tgevents/anomaly_bluespace.dm +++ b/code/modules/events/tgevents/anomaly_bluespace.dm @@ -4,7 +4,7 @@ endWhen = 160 /datum/event/anomaly/anomaly_bluespace/announce() - command_alert("Unstable bluespace anomaly detected on long range scanners. Expected location: [impact_area.name].", "Anomaly Alert") + command_announcement.Announce("Unstable bluespace anomaly detected on long range scanners. Expected location: [impact_area.name].", "Anomaly Alert") /datum/event/anomaly/anomaly_bluespace/start() @@ -35,7 +35,7 @@ var/turf/TO = get_turf(chosen) // the turf of origin we're travelling TO playsound(TO, 'sound/effects/phasein.ogg', 100, 1) - command_alert("Massive bluespace translocation detected.", "Anomaly Alert") + command_announcement.Announce("Massive bluespace translocation detected.", "Anomaly Alert") var/list/flashers = list() for(var/mob/living/carbon/human/M in viewers(TO, null)) diff --git a/code/modules/events/tgevents/anomaly_flux.dm b/code/modules/events/tgevents/anomaly_flux.dm index bf2cb2d18cc..d02af07b3ef 100644 --- a/code/modules/events/tgevents/anomaly_flux.dm +++ b/code/modules/events/tgevents/anomaly_flux.dm @@ -4,7 +4,7 @@ endWhen = 180 /datum/event/anomaly/anomaly_flux/announce() - command_alert("Localized hyper-energetic flux wave detected on long range scanners. Expected location: [impact_area.name].", "Anomaly Alert") + command_announcement.Announce("Localized hyper-energetic flux wave detected on long range scanners. Expected location: [impact_area.name].", "Anomaly Alert") /datum/event/anomaly/anomaly_flux/start() var/turf/T = pick(get_area_turfs(impact_area)) diff --git a/code/modules/events/tgevents/anomaly_grav.dm b/code/modules/events/tgevents/anomaly_grav.dm index c5430625ea8..0c9f3776f82 100644 --- a/code/modules/events/tgevents/anomaly_grav.dm +++ b/code/modules/events/tgevents/anomaly_grav.dm @@ -4,7 +4,7 @@ endWhen = 70 /datum/event/anomaly/anomaly_grav/announce() - command_alert("Gravitational anomaly detected on long range scanners. Expected location: [impact_area.name].", "Anomaly Alert") + command_announcement.Announce("Gravitational anomaly detected on long range scanners. Expected location: [impact_area.name].", "Anomaly Alert") /datum/event/anomaly/anomaly_grav/start() var/turf/T = pick(get_area_turfs(impact_area)) diff --git a/code/modules/events/tgevents/anomaly_pyro.dm b/code/modules/events/tgevents/anomaly_pyro.dm index 4e7f6a0b947..df4805121cd 100644 --- a/code/modules/events/tgevents/anomaly_pyro.dm +++ b/code/modules/events/tgevents/anomaly_pyro.dm @@ -4,7 +4,7 @@ endWhen = 110 /datum/event/anomaly/anomaly_pyro/announce() - command_alert("Atmospheric anomaly detected on long range scanners. Expected location: [impact_area.name].", "Anomaly Alert") + command_announcement.Announce("Atmospheric anomaly detected on long range scanners. Expected location: [impact_area.name].", "Anomaly Alert") /datum/event/anomaly/anomaly_pyro/start() var/turf/T = pick(get_area_turfs(impact_area)) diff --git a/code/modules/events/tgevents/anomaly_vortex.dm b/code/modules/events/tgevents/anomaly_vortex.dm index 6f2f999e728..c950444978e 100644 --- a/code/modules/events/tgevents/anomaly_vortex.dm +++ b/code/modules/events/tgevents/anomaly_vortex.dm @@ -4,7 +4,7 @@ endWhen = 80 /datum/event/anomaly/anomaly_vortex/announce() - command_alert("Localized high-intensity vortex anomaly detected on long range scanners. Expected location: [impact_area.name]", "Anomaly Alert") + command_announcement.Announce("Localized high-intensity vortex anomaly detected on long range scanners. Expected location: [impact_area.name]", "Anomaly Alert") /datum/event/anomaly/anomaly_vortex/start() var/turf/T = pick(get_area_turfs(impact_area)) diff --git a/code/modules/events/tgevents/brand_intelligence.dm b/code/modules/events/tgevents/brand_intelligence.dm index 893cee98cf1..1cfeba0cd08 100644 --- a/code/modules/events/tgevents/brand_intelligence.dm +++ b/code/modules/events/tgevents/brand_intelligence.dm @@ -8,7 +8,7 @@ /datum/event/brand_intelligence/announce() - command_alert("Rampant brand intelligence has been detected aboard [station_name()], please stand-by.", "Machine Learning Alert") + command_announcement.Announce("Rampant brand intelligence has been detected aboard [station_name()], please stand-by.", "Machine Learning Alert") /datum/event/brand_intelligence/start() diff --git a/code/modules/events/tgevents/immovable_rod.dm b/code/modules/events/tgevents/immovable_rod.dm index 25c3d0308d4..ec86e89981f 100644 --- a/code/modules/events/tgevents/immovable_rod.dm +++ b/code/modules/events/tgevents/immovable_rod.dm @@ -12,7 +12,7 @@ In my current plan for it, 'solid' will be defined as anything with density == 1 announceWhen = 5 /datum/event/immovable_rod/announce() - command_alert("What the fuck was that?!", "General Alert") + command_announcement.Announce("What the fuck was that?!", "General Alert") /datum/event/immovable_rod/start() var/startx = 0 diff --git a/code/modules/events/tgevents/mass_hallucination.dm b/code/modules/events/tgevents/mass_hallucination.dm index 6a34331acb3..f23a2c15510 100644 --- a/code/modules/events/tgevents/mass_hallucination.dm +++ b/code/modules/events/tgevents/mass_hallucination.dm @@ -6,4 +6,4 @@ if(!(C.species.flags & IS_SYNTHETIC)) C.hallucination += rand(50, 100) /datum/event/mass_hallucination/announce() - command_alert("It seems that station [station_name()] is passing through a minor radiation field, this may cause some hallucination, but no further damage") \ No newline at end of file + command_announcement.Announce("It seems that station [station_name()] is passing through a minor radiation field, this may cause some hallucination, but no further damage") \ No newline at end of file diff --git a/code/modules/events/tgevents/spider_infestation.dm b/code/modules/events/tgevents/spider_infestation.dm deleted file mode 100644 index 1f4cccdf418..00000000000 --- a/code/modules/events/tgevents/spider_infestation.dm +++ /dev/null @@ -1,33 +0,0 @@ -/var/global/sent_spiders_to_station = 0 - -/datum/event/spider_infestation - announceWhen = 400 - - var/spawncount = 1 - - -/datum/event/spider_infestation/setup() - announceWhen = rand(announceWhen, announceWhen + 50) - spawncount = round(num_players() * 1.5) - sent_spiders_to_station = 1 - -/datum/event/spider_infestation/announce() - command_alert("Unidentified lifesigns detected coming aboard [station_name()]. Secure any exterior access, including ducting and ventilation.", "Lifesign Alert") - world << sound('sound/AI/aliens.ogg') - - -/datum/event/spider_infestation/start() - - var/list/vents = list() - for(var/obj/machinery/atmospherics/unary/vent_pump/temp_vent in world) - if(temp_vent.loc.z == 1 && !temp_vent.welded && temp_vent.network) - if(temp_vent.network.normal_members.len > 50) - vents += temp_vent - - while((spawncount >= 1) && vents.len) - var/obj/vent = pick(vents) - var/obj/effect/spider/spiderling/S = new(vent.loc) - if(prob(66)) - S.grow_as = /mob/living/simple_animal/hostile/giant_spider/nurse - vents -= vent - spawncount-- \ No newline at end of file diff --git a/code/modules/events/tgevents/vent_clog.dm b/code/modules/events/tgevents/vent_clog.dm index 885552dff28..e66174cfa41 100755 --- a/code/modules/events/tgevents/vent_clog.dm +++ b/code/modules/events/tgevents/vent_clog.dm @@ -6,7 +6,7 @@ var/list/vents = list() /datum/event/vent_clog/announce() - command_alert("The scrubbers network is experiencing a backpressure surge. Some ejection of contents may occur.", "Atmospherics alert") + command_announcement.Announce("The scrubbers network is experiencing a backpressure surge. Some ejection of contents may occur.", "Atmospherics alert") /datum/event/vent_clog/setup() diff --git a/code/modules/events/viral_infection.dm b/code/modules/events/viral_infection.dm index 876e3453896..9ee3a47077a 100644 --- a/code/modules/events/viral_infection.dm +++ b/code/modules/events/viral_infection.dm @@ -8,8 +8,7 @@ datum/event/viral_infection/setup() severity = rand(1, 3) datum/event/viral_infection/announce() - command_alert("Confirmed outbreak of level five viral biohazard aboard [station_name()]. All personnel must contain the outbreak.", "Biohazard Alert") - world << sound('sound/AI/outbreak5.ogg') + command_announcement.Announce("Confirmed outbreak of level five viral biohazard aboard [station_name()]. All personnel must contain the outbreak.", "Biohazard Alert", new_sound = 'sound/AI/outbreak5.ogg') datum/event/viral_infection/start() var/list/candidates = list() //list of candidate keys diff --git a/code/modules/events/viral_outbreak.dm b/code/modules/events/viral_outbreak.dm index f11acd511f3..9e139f5742b 100644 --- a/code/modules/events/viral_outbreak.dm +++ b/code/modules/events/viral_outbreak.dm @@ -8,8 +8,7 @@ datum/event/viral_outbreak/setup() severity = rand(2, 4) datum/event/viral_outbreak/announce() - command_alert("Confirmed outbreak of level 7 viral biohazard aboard [station_name()]. All personnel must contain the outbreak.", "Biohazard Alert") - world << sound('sound/AI/outbreak7.ogg') + command_announcement.Announce("Confirmed outbreak of level 7 viral biohazard aboard [station_name()]. All personnel must contain the outbreak.", "Biohazard Alert", new_sound = 'sound/AI/outbreak7.ogg') datum/event/viral_outbreak/start() var/list/candidates = list() //list of candidate keys diff --git a/code/modules/events/wallrot.dm b/code/modules/events/wallrot.dm index 739ca92411b..b36f7f93760 100644 --- a/code/modules/events/wallrot.dm +++ b/code/modules/events/wallrot.dm @@ -3,7 +3,7 @@ datum/event/wallrot/setup() endWhen = announceWhen + 1 datum/event/wallrot/announce() - command_alert("Harmful fungi detected on station. Station structures may be contaminated.", "Biohazard Alert") + command_announcement.Announce("Harmful fungi detected on station. Station structures may be contaminated.", "Biohazard Alert") datum/event/wallrot/start() spawn() diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index ded2a3c949e..968fa181d89 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -538,7 +538,21 @@ var/obj/vehicle/V = AM V.RunOver(src) - +// Get rank from ID, ID inside PDA, PDA, ID in wallet, etc. +/mob/living/carbon/human/proc/get_authentification_rank(var/if_no_id = "No id", var/if_no_job = "No job") + var/obj/item/device/pda/pda = wear_id + if (istype(pda)) + if (pda.id) + return pda.id.rank + else + return pda.ownrank + else + var/obj/item/weapon/card/id/id = get_idcard() + if(id) + return id.rank ? id.rank : if_no_job + else + return if_no_id + //gets assignment from ID or ID inside PDA or PDA itself //Useful when player do something with computers /mob/living/carbon/human/proc/get_assignment(var/if_no_id = "No id", var/if_no_job = "No job") diff --git a/code/modules/mob/living/silicon/ai/ai.dm b/code/modules/mob/living/silicon/ai/ai.dm index 47464bc12e4..75e4098c754 100644 --- a/code/modules/mob/living/silicon/ai/ai.dm +++ b/code/modules/mob/living/silicon/ai/ai.dm @@ -1,3 +1,6 @@ +#define AI_CHECK_WIRELESS 1 +#define AI_CHECK_RADIO 2 + var/list/ai_list = list() //Not sure why this is necessary... @@ -77,8 +80,8 @@ var/list/ai_list = list() possibleNames -= pickedName pickedName = null - real_name = pickedName - name = real_name + aiPDA = new/obj/item/device/pda/ai(src) + SetName(pickedName) anchored = 1 canmove = 0 density = 1 @@ -96,11 +99,6 @@ var/list/ai_list = list() verbs += /mob/living/silicon/ai/proc/show_laws_verb - aiPDA = new/obj/item/device/pda/ai(src) - aiPDA.owner = name - aiPDA.ownjob = "AI" - aiPDA.name = name + " (" + aiPDA.ownjob + ")" - aiMulti = new(src) aiRadio = new(src) aiRadio.myAi = src @@ -112,7 +110,7 @@ var/list/ai_list = list() if (istype(loc, /turf)) verbs.Add(/mob/living/silicon/ai/proc/ai_network_change, \ /mob/living/silicon/ai/proc/ai_statuschange, /mob/living/silicon/ai/proc/ai_hologram_change, \ - /mob/living/silicon/ai/proc/toggle_camera_light, /mob/living/silicon/ai/proc/botcall, /mob/living/silicon/ai/proc/control_integrated_radio, /mob/living/silicon/ai/proc/control_hud, /mob/living/silicon/ai/proc/change_arrival_message, /mob/living/silicon/ai/proc/ai_store_location, /mob/living/silicon/ai/proc/ai_goto_location, /mob/living/silicon/ai/proc/ai_remove_location) + /mob/living/silicon/ai/proc/toggle_camera_light, /mob/living/silicon/ai/proc/botcall, /mob/living/silicon/ai/proc/control_integrated_radio, /mob/living/silicon/ai/proc/control_hud, /mob/living/silicon/ai/proc/change_arrival_message, /mob/living/silicon/ai/proc/ai_store_location, /mob/living/silicon/ai/proc/ai_goto_location, /mob/living/silicon/ai/proc/ai_remove_location, /mob/living/silicon/ai/proc/nano_crew_monitor) if(!safety)//Only used by AIize() to successfully spawn an AI. if (!B)//If there is no player/brain inside. @@ -155,11 +153,25 @@ var/list/ai_list = list() hud_list[IMPCHEM_HUD] = image('icons/mob/hud.dmi', src, "hudblank") hud_list[IMPTRACK_HUD] = image('icons/mob/hud.dmi', src, "hudblank") hud_list[SPECIALROLE_HUD] = image('icons/mob/hud.dmi', src, "hudblank") - hud_list[NATIONS_HUD] = image('icons/mob/hud.dmi', src, "hudblank") + hud_list[NATIONS_HUD] = image('icons/mob/hud.dmi', src, "hudblank") + init_subsystems() + ai_list += src ..() return + +/mob/living/silicon/ai/proc/SetName(pickedName as text) + real_name = pickedName + name = pickedName + if(eyeobj) + eyeobj.name = "[pickedName] (AI Eye)" + + // Set ai pda name + if(aiPDA) + aiPDA.ownjob = "AI" + aiPDA.owner = pickedName + aiPDA.name = pickedName + " (" + aiPDA.ownjob + ")" /mob/living/silicon/ai/Destroy() ai_list -= src @@ -301,14 +313,15 @@ var/list/ai_list = list() if(src.stat == 2) src << "You can't call the shuttle because you are dead!" return - if(istype(usr,/mob/living/silicon/ai)) - var/mob/living/silicon/ai/AI = src - if(AI.control_disabled) - usr << "Wireless control is disabled!" - return + + if(check_unable(AI_CHECK_WIRELESS)) + return var/confirm = alert("Are you sure you want to call the shuttle?", "Confirm Shuttle Call", "Yes", "No") + if(check_unable(AI_CHECK_WIRELESS)) + return + if(confirm == "Yes") call_shuttle_proc(src) @@ -324,14 +337,15 @@ var/list/ai_list = list() src.view_core() /mob/living/silicon/ai/verb/toggle_anchor() - set category = "AI Commands" - set name = "Toggle Floor Bolts" - if(!isturf(loc)) // if their location isn't a turf - return // stop - anchored = !anchored // Toggles the anchor + set category = "AI Commands" + set name = "Toggle Floor Bolts" + + if(!isturf(loc)) // if their location isn't a turf + return // stop + + anchored = !anchored // Toggles the anchor - src << "[anchored ? "You are now anchored." : "You are now unanchored."]" - // the message in the [] will change depending whether or not the AI is anchored + src << "[anchored ? "You are now anchored." : "You are now unanchored."]" /mob/living/silicon/ai/update_canmove() return 0 @@ -339,16 +353,35 @@ var/list/ai_list = list() /mob/living/silicon/ai/proc/ai_cancel_call() set category = "Malfunction" + if(src.stat == 2) src << "You can't send the shuttle back because you are dead!" return - if(istype(usr,/mob/living/silicon/ai)) - var/mob/living/silicon/ai/AI = src - if(AI.control_disabled) - src << "Wireless control is disabled!" - return - cancel_call_proc(src) - return + + if(check_unable(AI_CHECK_WIRELESS)) + return + + var/confirm = alert("Are you sure you want to recall the shuttle?", "Confirm Shuttle Recall", "Yes", "No") + + if(check_unable(AI_CHECK_WIRELESS)) + return + + if(confirm == "Yes") + cancel_call_proc(src) + +/mob/living/silicon/ai/proc/announcement() + set name = "Announcement" + set desc = "Create a vocal announcement by typing in the available words to create a sentence." + set category = "AI Commands" + + if(src.stat == 2) + src << "You can't call make an announcement because you are dead!" + return + + if(check_unable(AI_CHECK_WIRELESS | AI_CHECK_RADIO)) + return + + ai_announcement() /mob/living/silicon/ai/check_eye(var/mob/user as mob) if (!current) @@ -581,9 +614,9 @@ var/list/ai_list = list() src << "Critical error. System offline." return - if(control_disabled) - src << "Wireless communication is disabled." + if(check_unable(AI_CHECK_WIRELESS | AI_CHECK_RADIO)) return + var/ai_allowed_Zlevel = list(1,3,5) var/d var/area/bot_area @@ -704,6 +737,9 @@ var/list/ai_list = list() set name = "Jump To Network" unset_machine() var/cameralist[0] + + if(check_unable()) + return if(usr.stat == 2) usr << "You can't change your camera network because you are dead!" @@ -721,6 +757,9 @@ var/list/ai_list = list() cameralist[i] = i var/old_network = network network = input(U, "Which network would you like to view?") as null|anything in cameralist + + if(check_unable()) + return if(!U.eyeobj) U.view_core() @@ -752,8 +791,16 @@ var/list/ai_list = list() if(usr.stat == 2) usr <<"You cannot change your emotional status because you are dead!" return + + if(check_unable()) + return + var/list/ai_emotions = list("Very Happy", "Happy", "Neutral", "Unsure", "Confused", "Sad", "BSOD", "Blank", "Problems?", "Awesome", "Facepalm", "Friend Computer") var/emote = input("Please, select a status!", "AI Status", null, null) in ai_emotions + + if(check_unable()) + return + for (var/obj/machinery/M in machines) //change status if(istype(M, /obj/machinery/ai_status_display)) var/obj/machinery/ai_status_display/AISD = M @@ -773,6 +820,9 @@ var/list/ai_list = list() set name = "Change Hologram" set desc = "Change the default hologram available to AI to something else." set category = "AI Commands" + + if(check_unable()) + return var/input if(alert("Would you like to select a hologram based on a crew member or switch to unique avatar?",,"Crew Member","Unique")=="Crew Member") @@ -827,6 +877,9 @@ var/list/ai_list = list() if(stat != CONSCIOUS) return + + if(check_unable()) + return camera_light_on = !camera_light_on src << "Camera lights [camera_light_on ? "activated" : "deactivated"]." @@ -904,8 +957,11 @@ var/list/ai_list = list() set name = "Radio Settings" set desc = "Allows you to change settings of your radio." set category = "AI Commands" - - src << "Accessing Subspace Transceiver control..." + + if(check_unable(AI_CHECK_RADIO)) + return + + src << "Accessing Subspace Transceiver control..." if (src.aiRadio) src.aiRadio.interact(src) @@ -956,4 +1012,25 @@ var/list/ai_list = list() src << "\red You deny the request." else src << "\red You've failed to open an airlock for [target]" - return \ No newline at end of file + return + + +/mob/living/silicon/ai/proc/check_unable(var/flags = 0) + if(stat == DEAD) + usr << "\red You are dead!" + return 1 + + if((flags & AI_CHECK_WIRELESS) && src.control_disabled) + usr << "\red Wireless control is disabled!" + return 1 + if((flags & AI_CHECK_RADIO) && src.aiRadio.disabledAi) + src << "\red System Error - Transceiver Disabled!" + return 1 + return 0 + +/mob/living/silicon/ai/proc/is_in_chassis() + return istype(loc, /turf) + +#undef AI_CHECK_WIRELESS +#undef AI_CHECK_RADIO + \ No newline at end of file diff --git a/code/modules/mob/living/silicon/ai/freelook/eye.dm b/code/modules/mob/living/silicon/ai/freelook/eye.dm index 8218bec993e..ec02433c46a 100644 --- a/code/modules/mob/living/silicon/ai/freelook/eye.dm +++ b/code/modules/mob/living/silicon/ai/freelook/eye.dm @@ -134,7 +134,7 @@ src << "ERROR: Eyeobj not found. Creating new eye..." src.eyeobj = new(src.loc) src.eyeobj.ai = src - src.eyeobj.name = "[src.name] (AI Eye)" // Give it a name + src.SetName(src.name) if(client && client.eye) client.eye = src diff --git a/code/modules/mob/living/silicon/ai/nano.dm b/code/modules/mob/living/silicon/ai/nano.dm new file mode 100644 index 00000000000..f9bb7a25d79 --- /dev/null +++ b/code/modules/mob/living/silicon/ai/nano.dm @@ -0,0 +1,10 @@ +var/obj/nano_module/crew_monitor/crew_monitor + +/mob/living/silicon/ai/proc/init_subsystems() + crew_monitor = new(src) + +/mob/living/silicon/ai/proc/nano_crew_monitor() + set category = "AI Commands" + set name = "Crew Monitor" + + crew_monitor.ui_interact(usr) \ No newline at end of file diff --git a/code/modules/mob/living/silicon/ai/say.dm b/code/modules/mob/living/silicon/ai/say.dm index e535a2dedee..b596fd53541 100644 --- a/code/modules/mob/living/silicon/ai/say.dm +++ b/code/modules/mob/living/silicon/ai/say.dm @@ -1,32 +1,32 @@ /mob/living/silicon/ai/say(var/message) - if(parent && istype(parent) && parent.stat != 2) - parent.say(message) - return - //If there is a defined "parent" AI, it is actually an AI, and it is alive, anything the AI tries to say is said by the parent instead. - ..(message) + if(parent && istype(parent) && parent.stat != 2) + parent.say(message) //If there is a defined "parent" AI, it is actually an AI, and it is alive, anything the AI tries to say is said by the parent instead. + return + + ..(message) /mob/living/silicon/ai/say_understands(var/other) - if (istype(other, /mob/living/carbon/human)) - return 1 - if (istype(other, /mob/living/silicon/robot)) - return 1 - if (istype(other, /mob/living/silicon/decoy)) - return 1 - if (istype(other, /mob/living/carbon/brain)) - return 1 - if (istype(other, /mob/living/silicon/pai)) - return 1 - return ..() + if (istype(other, /mob/living/carbon/human)) + return 1 + if (istype(other, /mob/living/silicon/robot)) + return 1 + if (istype(other, /mob/living/silicon/decoy)) + return 1 + if (istype(other, /mob/living/carbon/brain)) + return 1 + if (istype(other, /mob/living/silicon/pai)) + return 1 + return ..() /mob/living/silicon/ai/say_quote(var/text) - var/ending = copytext(text, length(text)) + var/ending = copytext(text, length(text)) - if (ending == "?") - return "queries, \"[text]\""; - else if (ending == "!") - return "declares, \"[text]\""; + if (ending == "?") + return "queries, \"[text]\""; + else if (ending == "!") + return "declares, \"[text]\""; - return "states, \"[text]\""; + return "states, \"[text]\""; /mob/living/silicon/ai/proc/IsVocal() @@ -36,44 +36,28 @@ var/const/VOX_DELAY = 100 var/const/VOX_PATH = "sound/vox_fem/" /mob/living/silicon/ai/verb/announcement_help() - - set name = "Announcement Help" - set desc = "Display a list of vocal words to announce to the crew." - set category = "AI Commands" - - - var/dat = "Here is a list of words you can type into the 'Announcement' button to create sentences to vocally announce to everyone on the same level at you.
\ -
  • You can also click on the word to preview it.
  • \ -
  • You can only say 30 words for every announcement.
  • \ -
  • Do not use punctuation as you would normally, if you want a pause you can use the full stop and comma characters by separating them with spaces, like so: 'Alpha . Test , Bravo'.
\ - WARNING:
Misuse of the announcement system will get you job banned.
" - - var/index = 0 - for(var/word in vox_sounds) - index++ - dat += "[capitalize(word)]" - if(index != vox_sounds.len) - dat += " / " - - var/datum/browser/popup = new(src, "announce_help", "Announcement Help", 500, 400) - popup.set_content(dat) - popup.open() - - -/mob/living/silicon/ai/proc/announcement() - - set name = "Announcement" - set desc = "Create a vocal announcement by typing in the available words to create a sentence." + set name = "Announcement Help" + set desc = "Display a list of vocal words to announce to the crew." set category = "AI Commands" - if(src.stat == 2) - src << "You can't call the shuttle because you are dead!" - return - if(istype(usr,/mob/living/silicon/ai)) - var/mob/living/silicon/ai/AI = src - if(AI.control_disabled) - usr << "Wireless control is disabled!" - return + var/dat = "Here is a list of words you can type into the 'Announcement' button to create sentences to vocally announce to everyone on the same level at you.
\ +
  • You can also click on the word to preview it.
  • \ +
  • You can only say 30 words for every announcement.
  • \ +
  • Do not use punctuation as you would normally, if you want a pause you can use the full stop and comma characters by separating them with spaces, like so: 'Alpha . Test , Bravo'.
\ + WARNING:
Misuse of the announcement system will get you job banned.
" + + var/index = 0 + for(var/word in vox_sounds) + index++ + dat += "[capitalize(word)]" + if(index != vox_sounds.len) + dat += " / " + + var/datum/browser/popup = new(src, "announce_help", "Announcement Help", 500, 400) + popup.set_content(dat) + popup.open() + +/mob/living/silicon/ai/proc/ai_announcement() if(announcing_vox > world.time) src << "Please wait [round((announcing_vox - world.time) / 10)] seconds." return @@ -112,27 +96,24 @@ var/const/VOX_PATH = "sound/vox_fem/" /proc/play_vox_word(var/word, var/z_level, var/mob/only_listener) + word = lowertext(word) + if(vox_sounds[word]) + var/sound_file = vox_sounds[word] + var/sound/voice = sound(sound_file, wait = 1, channel = VOX_CHANNEL) + voice.status = SOUND_STREAM - word = lowertext(word) - - if(vox_sounds[word]) - - var/sound_file = vox_sounds[word] - var/sound/voice = sound(sound_file, wait = 1, channel = VOX_CHANNEL) - voice.status = SOUND_STREAM - - // If there is no single listener, broadcast to everyone in the same z level - if(!only_listener) - // Play voice for all mobs in the z level - for(var/mob/M in player_list) - if(M.client) - var/turf/T = get_turf(M) - if(T.z == z_level) - M << voice - else - only_listener << voice - return 1 - return 0 + // If there is no single listener, broadcast to everyone in the same z level + if(!only_listener) + // Play voice for all mobs in the z level + for(var/mob/M in player_list) + if(M.client) + var/turf/T = get_turf(M) + if(T.z == z_level && !isdeaf(M)) + M << voice + else + only_listener << voice + return 1 + return 0 // VOX sounds moved to /code/defines/vox_sounds.dm diff --git a/code/modules/mob/mob_helpers.dm b/code/modules/mob/mob_helpers.dm index b652a106824..b5245c14a0b 100644 --- a/code/modules/mob/mob_helpers.dm +++ b/code/modules/mob/mob_helpers.dm @@ -158,6 +158,12 @@ proc/isnewplayer(A) proc/hasorgans(A) return ishuman(A) + +proc/isdeaf(A) + if(istype(A, /mob)) + var/mob/M = A + return (M.sdisabilities & DEAF) || M.ear_deaf + return 0 /proc/hsl2rgb(h, s, l) return diff --git a/code/modules/nano/modules/crew_monitor.dm b/code/modules/nano/modules/crew_monitor.dm new file mode 100644 index 00000000000..c27c0446395 --- /dev/null +++ b/code/modules/nano/modules/crew_monitor.dm @@ -0,0 +1,88 @@ +/obj/nano_module/crew_monitor + name = "Crew monitor" + var/list/tracked = new + +/obj/nano_module/crew_monitor/Topic(href, href_list) + if(..()) return + var/turf/T = get_turf(src) + if (!T || !(T.z in config.player_levels)) + usr << "Unable to establish a connection: You're too far away from the station!" + return 0 + if(href_list["close"] ) + var/mob/user = usr + var/datum/nanoui/ui = nanomanager.get_open_ui(user, src, "main") + usr.unset_machine() + ui.close() + return 0 + if(href_list["update"]) + src.updateDialog() + return 1 + +/obj/nano_module/crew_monitor/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1) + user.set_machine(src) + src.scan() + + var/data[0] + var/turf/T = get_turf(src) + var/list/crewmembers = list() + for(var/obj/item/clothing/under/C in src.tracked) + + var/turf/pos = get_turf(C) + + if((C) && (C.has_sensor) && (pos) && (T && pos.z == T.z) && (C.sensor_mode != SUIT_SENSOR_OFF)) + if(istype(C.loc, /mob/living/carbon/human)) + + var/mob/living/carbon/human/H = C.loc + if(H.w_uniform != C) + continue + + var/list/crewmemberData = list("dead"=0, "oxy"=-1, "tox"=-1, "fire"=-1, "brute"=-1, "area"="", "x"=-1, "y"=-1) + + crewmemberData["sensor_type"] = C.sensor_mode + crewmemberData["name"] = H.get_authentification_name(if_no_id="Unknown") + crewmemberData["rank"] = H.get_authentification_rank(if_no_id="Unknown", if_no_job="No Job") + crewmemberData["assignment"] = H.get_assignment(if_no_id="Unknown", if_no_job="No Job") + + if(C.sensor_mode >= SUIT_SENSOR_BINARY) + crewmemberData["dead"] = H.stat > 1 + + if(C.sensor_mode >= SUIT_SENSOR_VITAL) + crewmemberData["oxy"] = round(H.getOxyLoss(), 1) + crewmemberData["tox"] = round(H.getToxLoss(), 1) + crewmemberData["fire"] = round(H.getFireLoss(), 1) + crewmemberData["brute"] = round(H.getBruteLoss(), 1) + + if(C.sensor_mode >= SUIT_SENSOR_TRACKING) + var/area/A = get_area(H) + crewmemberData["area"] = sanitize(A.name) + crewmemberData["x"] = pos.x + crewmemberData["y"] = pos.y + + crewmembers[++crewmembers.len] = crewmemberData + + crewmembers = sortByKey(crewmembers, "name") + + data["crewmembers"] = crewmembers + + ui = nanomanager.try_update_ui(user, src, ui_key, ui, data, force_open) + if(!ui) + ui = new(user, src, ui_key, "crew_monitor.tmpl", "Crew Monitoring Computer", 900, 800) + + // adding a template with the key "mapContent" enables the map ui functionality + ui.add_template("mapContent", "crew_monitor_map_content.tmpl") + // adding a template with the key "mapHeader" replaces the map header content + ui.add_template("mapHeader", "crew_monitor_map_header.tmpl") + + ui.set_initial_data(data) + ui.open() + + // should make the UI auto-update; doesn't seem to? + ui.set_auto_update(1) + +/obj/nano_module/crew_monitor/proc/scan() + for(var/mob/living/carbon/human/H in mob_list) + if(istype(H.w_uniform, /obj/item/clothing/under)) + var/obj/item/clothing/under/C = H.w_uniform + if (C.has_sensor) + tracked |= C + return 1 diff --git a/code/modules/nano/nanomanager.dm b/code/modules/nano/nanomanager.dm index 2ce8de3b08b..36241b2ec75 100644 --- a/code/modules/nano/nanomanager.dm +++ b/code/modules/nano/nanomanager.dm @@ -1,8 +1,9 @@ // This is the window/UI manager for Nano UI // There should only ever be one (global) instance of nanomanger /datum/nanomanager - // the list of current open /nanoui UIs + // a list of current open /nanoui UIs, grouped by src_object and ui_key var/open_uis[0] + // a list of current open /nanoui UIs, not grouped, for use in processing var/list/processing_uis = list() // a list of asset filenames which are to be sent to the client on user logon var/list/asset_files = list() @@ -26,7 +27,8 @@ filenames = flist(path) for(var/filename in filenames) if(copytext(filename, length(filename)) != "/") // filenames which end in "/" are actually directories, which we want to ignore - asset_files.Add(file(path + filename)) // add this file to asset_files for sending to clients when they connect + if(fexists(path + filename)) + asset_files.Add(fcopy_rsc(path + filename)) // add this file to asset_files for sending to clients when they connect return @@ -85,7 +87,7 @@ /** * Update all /nanoui uis attached to src_object * - * @param src_object /obj|/mob The obj or mob which the uis belong to + * @param src_object /obj|/mob The obj or mob which the uis are attached to * * @return int The number of uis updated */ @@ -97,7 +99,7 @@ var/update_count = 0 for (var/ui_key in open_uis[src_object_key]) for (var/datum/nanoui/ui in open_uis[src_object_key][ui_key]) - if(ui && ui.src_object && ui.user) + if(ui && ui.src_object && ui.user && ui.src_object.nano_host()) ui.process(1) update_count++ return update_count @@ -245,4 +247,3 @@ for(var/file in asset_files) client << browse_rsc(file) // send the file to the client - return 1 // success diff --git a/code/modules/nano/nanoprocs.dm b/code/modules/nano/nanoprocs.dm new file mode 100644 index 00000000000..81b939cf5c4 --- /dev/null +++ b/code/modules/nano/nanoprocs.dm @@ -0,0 +1,11 @@ +/atom/movable/proc/nano_host() + return src + +/obj/nano_module/nano_host() + return loc + +/atom/movable/proc/nano_can_update() + return 1 + +/obj/machinery/nano_can_update() + return !(stat & (NOPOWER|BROKEN)) diff --git a/code/modules/nano/nanoui.dm b/code/modules/nano/nanoui.dm index 01792ad0c3d..6b37eb96948 100644 --- a/code/modules/nano/nanoui.dm +++ b/code/modules/nano/nanoui.dm @@ -6,11 +6,6 @@ nanoui class (or whatever Byond calls classes) nanoui is used to open and update nano browser uis **********************************************************/ - -#define STATUS_INTERACTIVE 2 // GREEN Visability -#define STATUS_UPDATE 1 // ORANGE Visability -#define STATUS_DISABLED 0 // RED Visability - /datum/nanoui // the user who opened this ui var/mob/user @@ -143,36 +138,122 @@ nanoui is used to open and update nano browser uis * @return nothing */ /datum/nanoui/proc/update_status(var/push_update = 0) - if (istype(user, /mob/living/silicon/ai)) - set_status(STATUS_INTERACTIVE, push_update) // interactive (green visibility) - else if (istype(user, /mob/living/silicon/robot)) - if (src_object in view(7, user)) // robots can see and interact with things they can see within 7 tiles - set_status(STATUS_INTERACTIVE, push_update) // interactive (green visibility) - else - set_status(STATUS_DISABLED, push_update) // no updates, completely disabled (red visibility) + var/atom/movable/host = src_object.nano_host() + if(!host.nano_can_update()) + close() + return + + var/status = user.can_interact_with_interface(host.nano_host()) + if(status == STATUS_CLOSE) + close() else - var/dist = get_dist(src_object, user) + set_status(status, push_update) + +/* + Procs called by update_status() +*/ - if (dist > 4) - close() - return +/mob/living/silicon/pai/can_interact_with_interface(src_object) + if(src_object == src && !stat) + return STATUS_INTERACTIVE + else + return ..() - if ((allowed_user_stat > -1) && (user.stat > allowed_user_stat)) - set_status(STATUS_DISABLED, push_update) // no updates, completely disabled (red visibility) - else if (user.restrained() || user.lying) - set_status(STATUS_UPDATE, push_update) // update only (orange visibility) - else if (istype(src_object, /obj/item/device/uplink/hidden)) // You know what if they have the uplink open let them use the UI - set_status(STATUS_INTERACTIVE, push_update) // Will build in distance checks on the topics for sanity. - else if (!(src_object in view(4, user))) // If the src object is not in visable, set status to 0 - set_status(STATUS_DISABLED, push_update) // interactive (green visibility) - else if (dist <= 1) - set_status(STATUS_INTERACTIVE, push_update) // interactive (green visibility) - else if (dist <= 2) - set_status(STATUS_UPDATE, push_update) // update only (orange visibility) - else if (istype(src_object, /obj/item/device/uplink/hidden)) // You know what if they have the uplink open let them use the UI - set_status(STATUS_INTERACTIVE, push_update) // Will build in distance checks on the topics for sanity. - else if (dist <= 4) - set_status(STATUS_DISABLED, push_update) // no updates, completely disabled (red visibility) +/mob/proc/can_interact_with_interface(var/src_object) + return STATUS_CLOSE // By default no mob can do anything with NanoUI + +/mob/dead/observer/can_interact_with_interface() + if(check_rights(R_ADMIN, 0)) + return STATUS_INTERACTIVE // Admins are more equal + return STATUS_UPDATE // Ghosts can view updates + +/mob/living/silicon/robot/can_interact_with_interface(var/src_object) + if(stat || !client) + return STATUS_CLOSE + if(lockcharge || stunned || weakened) + return STATUS_DISABLED + if (src_object in view(client.view, src)) // robots can see and interact with things they can see within their view range + return STATUS_INTERACTIVE // interactive (green visibility) + return STATUS_DISABLED // no updates, completely disabled (red visibility) + +/mob/living/silicon/robot/syndicate/can_interact_with_interface(var/src_object) + . = ..() + if(. != STATUS_INTERACTIVE) + return + + if(z in config.admin_levels) // Syndicate borgs can interact with everything on the admin level + return STATUS_INTERACTIVE + if(istype(get_area(src), /area/syndicate_station) || istype(get_area(src), /area/traitor)) // If elsewhere, they can interact with everything on the syndicate shuttle and traitor station + return STATUS_INTERACTIVE + if(istype(src_object, /obj/machinery)) // And they can also interact with everything else + /*var/obj/machinery/Machine = src_object + if(Machine.emagged) // Uncomment so they can only interact with emagged machinery + return STATUS_INTERACTIVE*/ + return STATUS_INTERACTIVE + return STATUS_UPDATE + +/mob/living/silicon/ai/can_interact_with_interface(var/src_object) + if(!client || check_unable(1)) + return STATUS_CLOSE + // Prevents the AI from using Topic on admin levels (by for example viewing through the court/thunderdome cameras) + // unless it's on the same level as the object it's interacting with. + var/turf/T = get_turf(src_object) + if(!T || !(z == T.z || (T.z in config.player_levels))) + return STATUS_CLOSE + + // If an object is in view then we can interact with it + if(src_object in view(client.view, src)) + return STATUS_INTERACTIVE + + // If we're installed in a chassi, rather than transfered to an inteliCard or other container, then check if we have camera view + if(is_in_chassis()) + //stop AIs from leaving windows open and using then after they lose vision + //apc_override is needed here because AIs use their own APC when powerless + if(cameranet && !cameranet.checkTurfVis(get_turf(src_object))) + return apc_override ? STATUS_INTERACTIVE : STATUS_CLOSE + return STATUS_INTERACTIVE + + return STATUS_CLOSE + +/mob/living/proc/shared_living_nano_interaction(var/src_object) + if (src.stat != CONSCIOUS) + return STATUS_CLOSE // no updates, close the interface + else if (restrained() || lying || stat || stunned || weakened) + return STATUS_UPDATE // update only (orange visibility) + return STATUS_INTERACTIVE + +/mob/living/proc/shared_living_nano_distance(var/atom/movable/src_object) + if(!isturf(src_object.loc)) + if(src_object.loc == src) // Item in the inventory + return STATUS_INTERACTIVE + if(src.contents.Find(src_object.loc)) // A hidden uplink inside an item + return STATUS_INTERACTIVE + + if (!(src_object in view(4, src))) // If the src object is not in visable, disable updates + return STATUS_CLOSE + + var/dist = get_dist(src_object, src) + if (dist <= 1) + return STATUS_INTERACTIVE // interactive (green visibility) + else if (dist <= 2) + return STATUS_UPDATE // update only (orange visibility) + else if (dist <= 4) + return STATUS_DISABLED // no updates, completely disabled (red visibility) + return STATUS_CLOSE + +/mob/living/can_interact_with_interface(var/src_object, var/be_close = 1) + . = shared_living_nano_interaction(src_object) + if(. == STATUS_INTERACTIVE && be_close) + . = shared_living_nano_distance(src_object) + if(STATUS_INTERACTIVE) + return STATUS_UPDATE + +/mob/living/carbon/human/can_interact_with_interface(var/src_object, var/be_close = 1) + . = shared_living_nano_interaction(src_object) + if(. == STATUS_INTERACTIVE && be_close) + . = shared_living_nano_distance(src_object) + if(. == STATUS_UPDATE && (M_TK in mutations)) // If we have telekinesis and remain close enough, allow interaction. + return STATUS_INTERACTIVE /** * Set the ui to auto update (every master_controller tick) diff --git a/code/modules/security levels/security levels.dm b/code/modules/security levels/security levels.dm index b85d9589209..0fb411b2894 100644 --- a/code/modules/security levels/security levels.dm +++ b/code/modules/security levels/security levels.dm @@ -7,6 +7,8 @@ //5 = code delta //config.alert_desc_blue_downto +/var/datum/announcement/priority/security/security_announcement_up = new(do_log = 0, do_newscast = 1, new_sound = sound('sound/misc/notice1.ogg')) +/var/datum/announcement/priority/security/security_announcement_down = new(do_log = 0, do_newscast = 1) /proc/set_security_level(var/level) switch(level) @@ -27,8 +29,7 @@ if(level >= SEC_LEVEL_GREEN && level <= SEC_LEVEL_DELTA && level != security_level) switch(level) if(SEC_LEVEL_GREEN) - world << "Attention! Security level lowered to green." - world << "All threats to the station have passed. All weapons need to be holstered and privacy laws are once again fully enforced." + security_announcement_down.Announce("All threats to the station have passed. All weapons need to be holstered and privacy laws are once again fully enforced.","Attention! Security level lowered to green.") security_level = SEC_LEVEL_GREEN for(var/obj/machinery/firealarm/FA in world) @@ -38,11 +39,9 @@ if(SEC_LEVEL_BLUE) if(security_level < SEC_LEVEL_BLUE) - world << "Attention! Security level elevated to blue." - world << "The station has received reliable information about possible hostile activity on the station. Security staff may have weapons visible and random searches are permitted." + security_announcement_up.Announce("The station has received reliable information about possible hostile activity on the station. Security staff may have weapons visible and random searches are permitted.","Attention! Security level elevated to blue.") else - world << "Attention! Security level lowered to blue." - world << "The immediate threat has passed. Security may no longer have weapons drawn at all times, but may continue to have them visible. Random searches are still allowed." + security_announcement_down.Announce("The immediate threat has passed. Security may no longer have weapons drawn at all times, but may continue to have them visible. Random searches are still allowed.","Attention! Security level lowered to blue.") security_level = SEC_LEVEL_BLUE for(var/obj/machinery/firealarm/FA in world) @@ -52,11 +51,9 @@ if(SEC_LEVEL_RED) if(security_level < SEC_LEVEL_RED) - world << "Attention! Code Red!" - world << "There is an immediate and serious threat to the station. Security may have weapons unholstered at all times. Random searches are allowed and advised. The station's secure armory has been unlocked and is ready for use." + security_announcement_up.Announce("There is an immediate and serious threat to the station. Security may have weapons unholstered at all times. Random searches are allowed and advised.","Attention! Code Red!") else - world << "Attention! Code Red!" - world << "The station's self-destruct mechanism has been deactivated, but there is still an immediate and serious threat to the station. Security may have weapons unholstered at all times. Random searches are allowed and advised." + security_announcement_down.Announce("The station's self-destruct mechanism has been deactivated, but there is still an immediate and serious threat to the station. Security may have weapons unholstered at all times. Random searches are allowed and advised.","Attention! Code Red!") security_level = SEC_LEVEL_RED var/obj/machinery/door/airlock/highsecurity/red/R = locate(/obj/machinery/door/airlock/highsecurity/red) in world @@ -74,8 +71,7 @@ FA.overlays += image('icons/obj/monitors.dmi', "overlay_red") if(SEC_LEVEL_GAMMA) - world << "Attention! Gamma security level activated!" - world << "Central Command has ordered the Gamma security level on the station. Security is to have weapons equipped at all times, and all civilians are to immediately seek their nearest head for transportation to a secure location. The station's Gamma armory has been unlocked and is ready for use." + security_announcement_up.Announce("Central Command has ordered the Gamma security level on the station. Security is to have weapons equipped at all times, and all civilians are to immediately seek their nearest head for transportation to a secure location. The station's Gamma armory has been unlocked and is ready for use.","Attention! Gamma security level activated!") security_level = SEC_LEVEL_GAMMA move_gamma_ship() @@ -102,8 +98,7 @@ FA.update_icon() if(SEC_LEVEL_EPSILON) - world << "Attention! Epsilon security level activated!" - world << "Central Command has ordered the Epsilon security level on the station. Consider all contracts terminated." + security_announcement_up.Announce("Central Command has ordered the Epsilon security level on the station. Consider all contracts terminated.","Attention! Epsilon security level activated!") security_level = SEC_LEVEL_EPSILON var/obj/machinery/computer/communications/CC = locate(/obj/machinery/computer/communications,world) @@ -116,8 +111,7 @@ FA.overlays += image('icons/obj/monitors.dmi', "overlay_epsilon") if(SEC_LEVEL_DELTA) - world << "Attention! Delta security level reached!" - world << "The station's self-destruct mechanism has been engaged. All crew are instructed to obey all instructions given by heads of staff. Any violations of these orders can be punished by death. This is not a drill." + security_announcement_up.Announce("The station's self-destruct mechanism has been engaged. All crew are instructed to obey all instructions given by heads of staff. Any violations of these orders can be punished by death. This is not a drill.","Attention! Delta security level reached!") security_level = SEC_LEVEL_DELTA var/obj/machinery/computer/communications/CC = locate(/obj/machinery/computer/communications,world) diff --git a/code/modules/shuttles/shuttle_emergency.dm b/code/modules/shuttles/shuttle_emergency.dm index 29baa07c1b0..398bc9f9259 100644 --- a/code/modules/shuttles/shuttle_emergency.dm +++ b/code/modules/shuttles/shuttle_emergency.dm @@ -26,9 +26,9 @@ emergency_shuttle.departed = 1 if (emergency_shuttle.evac) - captain_announce("The Emergency Shuttle has left the station. Estimate [round(emergency_shuttle.estimate_arrival_time()/60,1)] minutes until the shuttle docks at Central Command.") + priority_announcement.Announce("The Emergency Shuttle has left the station. Estimate [round(emergency_shuttle.estimate_arrival_time()/60,1)] minutes until the shuttle docks at Central Command.") else - captain_announce("The Crew Transfer Shuttle has left the station. Estimate [round(emergency_shuttle.estimate_arrival_time()/60,1)] minutes until the shuttle docks at Central Command.") + priority_announcement.Announce("The Crew Transfer Shuttle has left the station. Estimate [round(emergency_shuttle.estimate_arrival_time()/60,1)] minutes until the shuttle docks at Central Command.") ..(origin, destination) diff --git a/code/modules/shuttles/shuttles_multi.dm b/code/modules/shuttles/shuttles_multi.dm index 3a73cafb58f..bac0384a4d3 100644 --- a/code/modules/shuttles/shuttles_multi.dm +++ b/code/modules/shuttles/shuttles_multi.dm @@ -33,14 +33,14 @@ if(cloaked || isnull(departure_message)) return - command_alert(departure_message,(announcer ? announcer : "Central Command")) + command_announcement.Announce(departure_message,(announcer ? announcer : "Central Command")) /datum/shuttle/multi_shuttle/proc/announce_arrival() if(cloaked || isnull(arrival_message)) return - command_alert(arrival_message,(announcer ? announcer : "Central Command")) + command_announcement.Announce(arrival_message,(announcer ? announcer : "Central Command")) /obj/machinery/computer/shuttle_control/multi icon_state = "syndishuttle" diff --git a/code/setup.dm b/code/setup.dm index 4906f0e6bdf..ad89e18dbbb 100644 --- a/code/setup.dm +++ b/code/setup.dm @@ -951,4 +951,10 @@ var/list/hit_appends = list("-OOF", "-ACK", "-UGH", "-HRNK", "-HURGH", "-GLORF") #define SUIT_SENSOR_OFF 0 #define SUIT_SENSOR_BINARY 1 #define SUIT_SENSOR_VITAL 2 -#define SUIT_SENSOR_TRACKING 3 \ No newline at end of file +#define SUIT_SENSOR_TRACKING 3 + +// NanoUI flags +#define STATUS_INTERACTIVE 2 // GREEN Visability +#define STATUS_UPDATE 1 // ORANGE Visability +#define STATUS_DISABLED 0 // RED Visability +#define STATUS_CLOSE -1 // Close the interface \ No newline at end of file diff --git a/config/example/config.txt b/config/example/config.txt index 1a53041a540..a26aa4575d6 100644 --- a/config/example/config.txt +++ b/config/example/config.txt @@ -246,6 +246,18 @@ GHOST_INTERACTION ## Default is "python" on Windows, "/usr/bin/env python2" on UNIX. #PYTHON_PATH pythonw +## Defines which Z-levels the station exists on. +STATION_LEVELS 1 + +## Defines which Z-levels are used for admin functionality, such as Central Command and the Syndicate Shuttle +ADMIN_LEVELS 2 + +## Defines which Z-levels which, for example, a Code Red announcement may affect +CONTACT_LEVELS 1;5 + +## Defines all Z-levels a character can typically reach +PLAYER_LEVELS 1;3;4;5;6 + ## Expected round length in minutes EXPECTED_ROUND_LENGTH 120 diff --git a/icons/obj/device.dmi b/icons/obj/device.dmi index a83f398a1b3f9e069c8293351a4ef7f15e143a71..d226cf4694948c20f38c4758e1ceb6517e77b8b5 100644 GIT binary patch delta 5866 zcmZvgc{r5s_s5?xHI_yO31u&&vQ)BU86hbmTV$I-%Dz-~=9!Q!wCojXvM+_qSZX`Qy2+xz3#Doco;nexKJp1HF)}AxOe$$lNFK9wtGq zmXO?ICdMCEP|$zh+oo=JmBUn8ICxI@8~u|sLb;PO?YEI(no(CXjPp;&eWo-GIyR&pAS-Q8|xT?w(VRhd$gT7J492BEL-#he{N(x z0y0%E7=mOJ_0A_9pA3Bul76~;tH-F@@@r%i=Tk_yy%>hllRZg4aiWO0@hrw`)k|QX zQVF^aUeRP(6Uv6Ju1l6RT~@B{pOrLBlb11g*KfcTC=8A8td+47bVqr_t zQ!L6v`u$QaqAi_{LdXTI52Px25BBwNhc!0d0D)pr`8;8}UrRB2&}w=-9~_o4ly8gU z6(C*lFkyncMl`DzEU~k*vv3x~rE?EIdiZd0|4x2>K12|flZ~OY#E%!Oe4IACA8o}3 z##ib+pIGWXHE2wJbRN8@wW_$WUtFWwNa$O4KbU2nL~L!~5InoW z@E8-*HP=scta#1|I80taLDNIo*y|1#Clqn0?Lqa>3jtNyX&CfY(O2SO-(T5fnh=ah>I5M#K>L1m>7uNCHt< zEGs}kTtw^W>MCME2*9YBNM6m)`OnmK2Y&Oa(PFMECI) zbEGyW6UE5HQL|7Ef`9?9c@dfyAc6==5So<`rs2XO0vDDQr#fTqmDQ6WIVB~xi;9b3 z0AHL=UBDdTtwDyuq^pPTV**-Eqo7ArMa8PFukR_!o%j}wh97Q%M7@bZTrDZm!oIWL zm!^TGK4ua-hUD2QC4lgpI6NmDi4lK|tfJ*AKw;Q(=D1(k5x;u8w^zoWuLRGkoT{Js z`{|Lvzb;b)0dl|M1Il8hmO!}3HpCt&5)L3D?LQuaXzO{w0G1fC`_6dEz}{rak$S62 z_eXm*lZ7V^66~Lz{zYD!0 z`SKYxVH-hF08IL-MfqbD zXqZO&l)OlnX9Kd4cNL`XEDb?{{&vMTW!#)uSq57Y!X^4YWpr;<^wYLFvM|-t2yOK3 zR4kI(#TBe~l-_DA7t;ZN`$`v#wv}m9UmEVsMTSm2qRgj!!O6_cwB7P01_#KR*KItL z7+U(Nx)J;0#Pq6HaKDN5QbVmb8m##+Y8M~vJuGo}yp{RrLp7!L zmHdqZPlRd4xfFMI8(&SotD-2{SYJ}fEAjG1Uypzr&CqpmT&;r!#&5y~vrC8=dJrd? zew~$Y{RAZ_k}B*x$6Vxo`}>LsEHf=l>g%{7F&)w}K1-jMsmN5BsA*RqhEUg9*2q)O zYl}{DbF%|gy=R2mt&MDLWpr_WjeX$_-l`o24JGV``q%na*s9?cY&B0<>VeMA&gkfu zn9xvmVNq2#s0?UZ^?pH_z!22X)_b8Nrx3Gz-N0xU4OlaIycKT1u7Iuh3CS(uaY(PbUYAh7V6qPix-4|8`F4=%NDD z>>KV7V;gyl!E?K!G6V&I-L2{S-FaPwW2=eYW5Nl7Sh@#00mf@w9H zTk;??@2RhG{tNF5sQZqA`*k6HE|w<}l4poj_5lIA<23i@y%8F_)7x|ciyHJMtN{wyQQ0VHH)#m&szKXVy!1X%vO;`3{=c~+a{OWA8# zFo2Z2)B_sFxpP)J+vyl@8QbzR+vL+inaB=6nV zILF6h;^%`;26v7Ky$=2xigEfHy1SzZ?xm!h;1Z5Ci>Nk~4|`x|M*|WJt33AqGb+|?F5YbR4E_%2vxtUQT`hPN!r_9l`^N(v z+RrY+aMd|yJn%@zWie{B69?9Lx077S8MK`|dE&t?0pckj+T_Vb&%-AalX{}GL$%nLVQq)XWAjR{F#2K&S6t;8e@IO~r7 z4JR~7e|Y$?c}1N9rOp<5HwE&Zl$oek-kJPBFF!{y)J4)ZpQ9SUI|mtGICZ(-!^$Lg z=>6EDGG~8jf3XmbNv;JOecg1wOu)!)y$sO$!r1Qi4h~(tWbqdsehyPV*_uN3p7HES zZhjT!RWp;4ra5%twq~DWrfHT&Mt$*@;uK5hwMk?`In%tM`@=$$fXA{z&w@E zJGe2_8j$(&CFr22Yh!77qBBgR;mZCEJ5D9v#Z)vOHDkHD(W}m>=s?bR8xp$)zH&>=JxrS zjall+teBg!epX!v@lGu~zEa@+giUkv!)*2i2N?MMXRw%6#YQs<-8X!>e=GiHI<|Fu z)qK8;-u~ND#K=g6=Fs}jvZ%1ItMYtsiwZaXF_0coz@S8P`H3qJe-CpjZLF~`qKu-G zIYUV!bEejdh3ga=j|ztcWnD4jhwt-m-*gL#^x5Y)V(G%dG{Hyp%7X4FJlb&06HE*w zUYPRSD{LNyeWV(nEML_FgM>gK5KpT}TPeWflc$-JrzZ_vmlketU@TUs5`mw;<1f6rb{mG%Yx|ZhwnF6Td#DsW&Cwp8lx8 zt$G;q5eZ`Vrf_e^U;gWn$EZ61#A?|ze6?+R_~BD?v9%^{;M_2K2%{Jl{`0UG4Fv|U zMFpVE$8|XQ{pjbL4HXz=-_LbW#+zSApPVCoIfb;2h&vnzdZRvFO{#F7M`gZ?rNS5A<$JN~cEV9o{HW61PzRVw0zE$6qmOv${$C@U)<19L2`aorMJ# z0Ndr%lo5HST~g0T>yuWNsQKV;S}0MH$N>9jOvdX8mqm!l8jTv8!AvHwGB|Fy#DY3B*XK-9fy zJT7~E_JHvUM|AzKeQ+_h_(kw`rdv9V_H3g1&gXow?P?n;#myD0+yH29;E}}G3F)sq8pe%9wte9KO@Otfs&M>{}YTm?criz zKugpV8pxTsLAInYjzw)ImW!pK_JRhUcH_v5-Q9lU6o`g9a$=uM#N0R=_wTrWGLQ!A z(E)?*RvrzeM~D+HC;i>q%rXuyk*}d{-xkr)uBumj(_Q8{KhW=~H=5u1mu1*C* zR4J=FS>O9!h3Dc?521vaP&#YXxNkOowPn;{cip*exG*idML2yI8bJLYAcN)NmE^zC zSo!;OiR-&%*-H0~>q|`x=_yae_7oT>Cylc6Jh&PZV^9#*<)nS@Uf!s$d0KjRC$5;@ zHluTIe;};Xk!Tz8!vnO5yCHHg#>uO^JUpyYQd0K8!K#eYbAahTvb*E_CDK!0GQvrNn&KMy4+g*q)X8>r&DnZL-Gr`5Eqos(Tc*Oaold(EuYM$L0Pqw>^gp)S7yX5N#<6R+lbygxB0l?$l9 zStUG2f&!Z()!bfSYcC=P^u+FaFAPvNt~b9M0pb;V@dHOhPeNTr1F{EJiu9W)sD;RHbC z4uA#%Cmg^9Ob*~?aLfrpPlCL}rAsCx2?pGNUBLZ+to}S$6k{3Y1HVrn{94uaFgmMa zOU>zkc_x(?L;pYzA@_#Gf8fQ%rX-#53RZ;?7+Pv#;W1}&1{a5q7HRTth{bZ4la=`o zk>IMDFH3xzltkyNB*}0Dmuf5@);$b&%uBGV`RM_#fDB-HT*G1(>J<_~yFHQdB*9Z$ z^!IX5)&hKt%oS$t^3jL)yhV=1$?|PR@~rA3_X+&(Klzew#oaHsQZ}m%c&|I|8>3LN z9oa}>J3Bj#TkPu9OmN%xNgwwn@<_S{20B4ODhnjiHSy4#ehg#%jnPEF`agUE{s9!( zSFYZL8w+pl`k!A{+uSjK&11#mnP*U-rKJT0(7!aemq)6@T3<@4NI&r^XW(`g12uJ5 ze<=X79jbBCf0=2R^T0eQ z2>ur}fd2~{UPO1Wl{)uGRQi1X{ynsxfu*PYSIbH%7rHawI zWr5YQ(&R#}L-;?Hkx~7Q<+ZJO@_WTO8`7eWM>UL%#F_*}mUZW6Y{N#fKikLo(8xia z9~S=fq3Sc&o#pnPDA0exr(h}4WN9EDZowWH6a)dX6s4a}HDo^N$k4E`sIyUP@wrT0 zVXubHA2?9aQWAwl(69f!`{14j;_!xQFXN)iW9@BOn&r=T>Z(6=`5`{i3g z#9EFa7_x0Ns`t7pQZzhaf-nVFLV%4vrx{dlCx2q??wp&(!eKuP^(az*VB?>aTeC2( z)0UNu(py_wVnFcv7Cb!o9IL3`ILY+E>em#$I^$=|l6O5)OVEu>%^10N^FQ0$O$*Z) z`tcRvAO`3O6fYx2`|f66yoJ}dVMiXwQLLfra;OmdJAUhyP(~k=bXOMUWy&6$Dhe5CjyEUPIGRRC<$MWMZYgfC$nAX#z?Yq(c%= z1f;592rXcw_k?07;R~wc>S{}!5mlULpC~3W?Inh{34BAt;-Rbx6oR$yL*YozueUIX?LQB=vGKBw{=LaX| z)8nz$t|E2$jC2S~HG#E*6=wdqgy=31 z!aX&-Q+Z0Tzb9B--89mycGU=1VeY0n`+TfFcOA84;dQz4tbizE0*?Os$%|<@;FwJr z=*Fwfn67@HW00+qHT;7kuB{Dp11f~Cl?h%E9<>-?ogpROy`0ffcPaj6f$W3Pq)$Ua zLTB?w=Hyz?XaUDx%X0o2;dk!586$l4REP?=0+2HX_BWCR2X}rh?jd6AVsqMadZRYP z$c~;8kxZp)$igsg2P30|23a@AHaAnq+W@Yxu(ghx5bUX3j1L$6E^!ca#++1B>t<7c zLV;#Ab~u#>W_pZERGQIU=K^kDN54{QB<1Y>t_ok#r6vC!hF|OlL-o-KyYx?f85okb ztRu0eCWfLMynKA;g5kD)R>{#2#>d2(i0&DB;IWW{?CC4hS~P=sI63KXV_l%`tnqTh zlQsayN6vtcdO+PFV2(IkqM;6jln6cJUWd{-CFEo~ArBP$PL(;2q}X=8L9=U>tAAj_ zDq|_NS?`@9t(DprfpaYag~Q$RFt%;{2_Y#c^q0`SN!%Oc8IzSqWZSl`m-uZ=`wcbv_ z0#8@#bEuTxcYn{!#MmC5a-oiN)sL-se<~D&^tzzOm!OhZGv+_9UZz2?c&JqkW1?qc zw(491XDY;pU-@xA>(53*%m;(dN#}j?$WH>rr8XmEz-FfjQU~NIG5iF}CM>QPh<=Ka z0Cw3F9CScyYef_UfUzADDr*`bwm$yaxlX#6_l2ZyAj$z?N0*hh|2)qNUue8~$LT7s z{K9jz+hnOGIqjL#!-st8>Kt*9XvQa~fklkgj~V*$z~Z3ri10nmi#x`(-+G*9jT0gO zS2s5ZaN)uQ*&Ip%Z?d$*`z6bl%0roUwPcTv%g4agV<=TjPWr8_tUvfXizeG1@IjER9f;PdwJHJf3zT5MF-y|zH24b~!%G=N zM7{UeEIF{yQa*$@c+OK?9J@j6gn+=p!h(~YUW{Z8vnk+>R_2nQLt;xS1>1;;Wm>zx ziZ><+Lm|P&6%)5=0|S+!^6o?e;b!LYYm*Q9;1-Ce-n@N(mES%BU(;suG@>F-%(y^x znf<6;pP(+i>FnS4oB9HM4}c;n&*)60ofQL))uD@AJlwVgOW#dmp`iRh0kfTV$%5(9Kh-%t)&7h(~(#t2x~d-MM+x0_SwwG6PZ7$i?o1cXu7 zb=bN1C;G8MFO(lB3dzmyJH*Pc?UU9fY8ZelX+l>5i*`^zh=Jk(%6Vrw|DTS2HxT22 zFu^}K#?EuPXlfX)66*uvm%yNZc(il?FeOuRFP)Nn9>fo_K1)i>7>H259(WzuH2zyb z>ctLew#z5;ZWMfXzQFy>M!2ws2+oa; z-u~c3XH{lB9XL8N!UJGCZc?0P<2#(#-{N%F*rPSbtY~!Jp63CNnvp%COXRJy&aie39u6op?>0h9ottByQyPm1;%%1+~8z+R%K9-$V zTGl-#D1(Mr_WT`mIg2TDOGA z0Ya*(e5e8-EiKKtGlBmXZJ4c3Jz=Fk=-C`s-dP>$H4wUTrD`RXD{f}3tv~T9Yu?v1 zJ1Ph(*gWwr18HU^{I<9_E+!^MHp5`V!~|F#Ep(NcKS@UipvK4T?VAFQyRV?=0L4Cn z%+;&cE@|>i^6iq+xczXqcaZ_@4zgJHTBqLv$zEPw=iJ`Qfu6scy-Pya8Ey2lDa0$t zDr>1&Eh_@%mO&N<_+Cf&Oi9qPx6eT~f#at)x2NU@{Izk=fPtD%X>)t%WUL2OxH5BK?k0-bD86&2ozi3uf(I^ZUX z<|~ahYkTGFwQ?Pq7XAJT9VSkeS(frqK?d1ETs_1pBFYMka3&yxob26RPx$zL*SITU z_6kS>XP0JZ)<)yc_<4WIQCOMtUAorjcm(A50XA;# zsG=`2N!t$<71V4ltWF?GM&WsI%7$FcQ0zUbQZH_g+!?V&-ZC>Ce*Pn#;7H(q6++ks zss;9q6Wt^esfwvO2XqGqmac79m`UUo6wFFXo2yG2J>n@5S>)?|w=2Sa%Oi4lzp*zU zBz{^KPk=;`9L>&Ce_3?!z^-(@GY41&t|TAT_8__SAQhxiw7b(5s4yJw~`en`bHMCoFawM@qP+XwChbgKWqNW=nP_bP!1KpY44# zvnf_h3{oTWmEAt9B8To38)7&4p2VL}I^5jkODb_!A$OXiCv)JlrD;BwGqjVtpT4?? z_>~m$dOvlv=Qg`tDzk-KC52mS{h*=wUD zHKg5A14!`0Y(|ui1$;ML3GK=WXR=FO+p)1P6HMD<@W+^d*j002uS zxXN0bA7*%TS>XthELWbZM{M00586~~ zMEc!baJ?qn%E>&*bllGU``yXSUS#H*XQN=`YGBJx%DpJU=dYGKq0)fuT=7H`n# zH>L1US*xEItCR|`T>SQ-t!WeWiKV^0lobL21Inx}PAUa3*4!Tu*pjEUdB@8c4zfHi zUcbH=6d3d?c&v_Y>r5{#dME1<5V_S)HDGnMiH&j#%T+x6@@Tn@ogG8g6C%BkmvKo= zxOu7YR4Vw6rR%A`faV)as5s~<@SQ23iy@2rBDLrtIx8Vz&|n?_7+CbQuUmNB4q1D$ zBj>YvHe&nz9NeL|%%F_)c?CSW#)tWF3#O zI{M6lesw@MvN=e){k+pU_?!4Tu*Vqr^4WSc4}QaT4nx}4*G0Z893$i`fuyp-*6?ir zRWlQ=(e)W}?uTSm!w82>FO=<^jNw4Lsu)@&=Zp-FHW-Rh^Cy{$&LtOVH)#2Fe(rX!)o$c%bZw443&DxH;0=k8z;`mK8lh!== za(_~eGVy;h6NbiNmeSsirj&uw3@BN_3_eED zdfwGBl=&KZNp3aFwSoJi8T}Iojebl`O}#(0)(#DQiSPo+n3kdFEN~C;Z^vz0Y2;FU zM7yf==A5O7h=^#0g*Bz8r!&$z9t}l8oVg=b=~|mx`T3Zb0HCq4u_0jL)MGrP$I`q# zOiJUzUZo^nfW{34 zL0TSx?e4*pUCM(=c)2 zI}v?}onGq#7(7Hf(+umvtfYFreA$+AS`O91Bk&R!8#(7 z^=c@WeuZ!Y^8U+EYk@89%^gG@ot=D!>Cx9eyFmJn24j8+s$bH9XwKB! zEdzQ*gy^45%!7Z&?$kd655k!g7crH^NSybphsH>5nK*F&$d>s@635ZXnsm4 zxc!-XW+lt cmBd076v;0d%zXEPAD}&YH;l9^G#wuQ2S%_|HUIzs diff --git a/nano/debug.html b/nano/debug.html index 969956bacb2..58b2be3df1a 100644 --- a/nano/debug.html +++ b/nano/debug.html @@ -16,7 +16,7 @@ - +